"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SObject = void 0; var SObjectObserver_1 = require("./SObjectObserver"); var SObject = (function () { function SObject() { this.name = ""; this.listeners = {}; this.id = ""; } SObject.prototype.connect = function (name, receiver, callback) { var observerList = this.listeners[name]; if (!observerList) { this.listeners[name] = []; } else { for (var _i = 0, observerList_1 = observerList; _i < observerList_1.length; _i++) { var observer = observerList_1[_i]; if (observer.compar(receiver)) { return; } } } this.listeners[name].push(new SObjectObserver_1.SObjectObserver(receiver, callback)); }; SObject.prototype.disconnect = function (name, receiver) { var observerList = this.listeners[name]; if (!observerList) { return; } var length = observerList.length; for (var i = 0; i < length; i++) { var observer = observerList[i]; if (observer.compar(receiver)) { observerList.splice(i, 1); break; } } if (observerList.length == 0) { delete this.listeners[name]; } }; SObject.prototype.$emit = function (name) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } var observerList = this.listeners[name]; if (!observerList) { return; } for (var _a = 0, observerList_2 = observerList; _a < observerList_2.length; _a++) { var observer = observerList_2[_a]; observer.notify(this, args); } }; return SObject; }()); exports.SObject = SObject;