UNPKG

@winged/core

Version:

Morden webapp framekwork made only for ts developers. (UNDER DEVELOPMENT, PLEASE DO NOT USE)

1 lines 42 kB
{"id":"src/viewModel/Observable.ts","dependencies":[{"name":"/home/giyya/workspace/view-next/packages/core/tsconfig.json","includedInParent":true,"mtime":1533107964952},{"name":"/home/giyya/workspace/view-next/packages/core/package.json","includedInParent":true,"mtime":1533108697710}],"generated":{"js":"'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Observable = /** @class */function () {\n function Observable() {\n this._observableId = ++Observable.idCounter;\n this._watchedTargets = {};\n this._watchers = [];\n }\n Observable.prototype._watchBy = function (context, callback) {\n this._watchers.push({ context: context, callback: callback });\n };\n Observable.prototype._stopWatchBy = function (context) {\n this._watchers = this._watchers.filter(function (w) {\n return w.context !== context;\n });\n };\n Observable.prototype._emitValueChange = function (modificationTree) {\n for (var _i = 0, _a = this._watchers; _i < _a.length; _i++) {\n var callback = _a[_i].callback;\n callback(modificationTree);\n }\n };\n Observable.prototype._registerChild = function (field, child) {\n var _this = this;\n var id = child._observableId;\n if (!child._watchedTargets[id]) {\n child._watchedTargets[id] = {\n target: child,\n watcherCount: 0\n };\n }\n child._watchedTargets[id].watcherCount++;\n child._watchBy(this, function (modificationTree) {\n var _a;\n var s;\n if (typeof field === 'function') {\n s = field();\n } else {\n s = field;\n }\n _this._emitValueChange((_a = {}, _a[s] = modificationTree, _a));\n });\n };\n Observable.prototype._unregisterChild = function (childOrChildId) {\n var id;\n if (childOrChildId instanceof Observable) {\n id = childOrChildId._observableId + '';\n } else {\n id = childOrChildId;\n }\n var watchInfo = this._watchedTargets[id];\n if (watchInfo.watcherCount > 1) {\n watchInfo.watcherCount--;\n } else {\n this._watchedTargets[id].target._stopWatchBy(this);\n delete this._watchedTargets[id];\n }\n };\n Observable.idCounter = 0;\n return Observable;\n}();\nexports.Observable = Observable;","map":{"mappings":[{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":5,"column":0},"generated":{"line":6,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":5,"column":0},"generated":{"line":6,"column":4}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":5,"column":0},"generated":{"line":6,"column":17}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":5,"column":0},"generated":{"line":6,"column":30}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":5,"column":0},"generated":{"line":6,"column":42}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":5,"column":0},"generated":{"line":7,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":5,"column":0},"generated":{"line":7,"column":13}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":5,"column":0},"generated":{"line":7,"column":23}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":5,"column":0},"generated":{"line":7,"column":26}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":7,"column":18},"generated":{"line":8,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":7,"column":18},"generated":{"line":8,"column":13}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":7,"column":18},"generated":{"line":8,"column":26}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":7,"column":34},"generated":{"line":8,"column":29}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":7,"column":36},"generated":{"line":8,"column":31}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":7,"column":47},"generated":{"line":8,"column":42}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":7,"column":18},"generated":{"line":8,"column":51}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":9,"column":12},"generated":{"line":9,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":9,"column":12},"generated":{"line":9,"column":13}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":9,"column":12},"generated":{"line":9,"column":28}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":11,"column":6},"generated":{"line":9,"column":31}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":9,"column":12},"generated":{"line":9,"column":33}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":12,"column":12},"generated":{"line":10,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":12,"column":12},"generated":{"line":10,"column":13}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":12,"column":12},"generated":{"line":10,"column":22}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":15,"column":7},"generated":{"line":10,"column":25}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":12,"column":12},"generated":{"line":10,"column":27}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":66,"column":1},"generated":{"line":11,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":17,"column":9},"generated":{"line":12,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":17,"column":9},"generated":{"line":12,"column":15}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":17,"column":9},"generated":{"line":12,"column":24}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":17,"column":9},"generated":{"line":12,"column":25}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":17,"column":9},"generated":{"line":12,"column":33}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":17,"column":2},"generated":{"line":12,"column":36}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":17,"column":18},"generated":{"line":12,"column":46}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":17,"column":2},"generated":{"line":12,"column":53}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":17,"column":32},"generated":{"line":12,"column":55}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":17,"column":2},"generated":{"line":12,"column":63}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":17,"column":57},"generated":{"line":12,"column":65}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":18,"column":4},"generated":{"line":13,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":18,"column":9},"generated":{"line":13,"column":13}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":18,"column":4},"generated":{"line":13,"column":22}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":18,"column":19},"generated":{"line":13,"column":23}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":18,"column":4},"generated":{"line":13,"column":27}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":18,"column":24},"generated":{"line":13,"column":28}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":18,"column":26},"generated":{"line":13,"column":30}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":18,"column":33},"generated":{"line":13,"column":39}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":18,"column":24},"generated":{"line":13,"column":46}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":18,"column":35},"generated":{"line":13,"column":48}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":18,"column":43},"generated":{"line":13,"column":58}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":18,"column":24},"generated":{"line":13,"column":66}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":18,"column":4},"generated":{"line":13,"column":68}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":19,"column":3},"generated":{"line":14,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":17,"column":9},"generated":{"line":14,"column":5}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":21,"column":9},"generated":{"line":15,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":21,"column":9},"generated":{"line":15,"column":15}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":21,"column":9},"generated":{"line":15,"column":24}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":21,"column":9},"generated":{"line":15,"column":25}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":21,"column":9},"generated":{"line":15,"column":37}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":21,"column":2},"generated":{"line":15,"column":40}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":21,"column":22},"generated":{"line":15,"column":50}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":21,"column":2},"generated":{"line":15,"column":57}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":21,"column":34},"generated":{"line":15,"column":59}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":22,"column":4},"generated":{"line":16,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":22,"column":9},"generated":{"line":16,"column":13}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":22,"column":4},"generated":{"line":16,"column":22}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":22,"column":21},"generated":{"line":16,"column":25}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":22,"column":26},"generated":{"line":16,"column":30}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":22,"column":21},"generated":{"line":16,"column":39}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":22,"column":36},"generated":{"line":16,"column":40}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":22,"column":21},"generated":{"line":16,"column":46}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":22,"column":43},"generated":{"line":16,"column":47}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":22,"column":44},"generated":{"line":16,"column":57}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":22,"column":43},"generated":{"line":16,"column":58}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":22,"column":45},"generated":{"line":16,"column":60}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":22,"column":50},"generated":{"line":17,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":22,"column":50},"generated":{"line":17,"column":19}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":22,"column":52},"generated":{"line":17,"column":21}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":22,"column":50},"generated":{"line":17,"column":28}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":22,"column":64},"generated":{"line":17,"column":33}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":22,"column":50},"generated":{"line":17,"column":40}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":22,"column":71},"generated":{"line":18,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":22,"column":21},"generated":{"line":18,"column":9}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":22,"column":4},"generated":{"line":18,"column":10}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":23,"column":3},"generated":{"line":19,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":21,"column":9},"generated":{"line":19,"column":5}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":25,"column":12},"generated":{"line":20,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":25,"column":12},"generated":{"line":20,"column":15}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":25,"column":12},"generated":{"line":20,"column":24}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":25,"column":12},"generated":{"line":20,"column":25}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":25,"column":12},"generated":{"line":20,"column":41}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":25,"column":2},"generated":{"line":20,"column":44}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":25,"column":29},"generated":{"line":20,"column":54}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":25,"column":2},"generated":{"line":20,"column":70}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":25,"column":63},"generated":{"line":20,"column":72}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":26,"column":4},"generated":{"line":21,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":26,"column":31},"generated":{"line":21,"column":13}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":26,"column":31},"generated":{"line":21,"column":17}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":26,"column":31},"generated":{"line":21,"column":22}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":26,"column":31},"generated":{"line":21,"column":23}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":26,"column":31},"generated":{"line":21,"column":25}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":26,"column":31},"generated":{"line":21,"column":30}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":26,"column":36},"generated":{"line":21,"column":35}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":26,"column":4},"generated":{"line":21,"column":44}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":26,"column":31},"generated":{"line":21,"column":46}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":26,"column":31},"generated":{"line":21,"column":51}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":26,"column":31},"generated":{"line":21,"column":54}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":26,"column":4},"generated":{"line":21,"column":60}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":26,"column":31},"generated":{"line":21,"column":62}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":26,"column":4},"generated":{"line":21,"column":66}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":26,"column":47},"generated":{"line":21,"column":68}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":26,"column":17},"generated":{"line":22,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":26,"column":17},"generated":{"line":22,"column":16}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":26,"column":17},"generated":{"line":22,"column":27}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":26,"column":17},"generated":{"line":22,"column":30}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":26,"column":17},"generated":{"line":22,"column":32}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":26,"column":17},"generated":{"line":22,"column":34}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":26,"column":17},"generated":{"line":22,"column":42}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":27,"column":6},"generated":{"line":23,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":27,"column":15},"generated":{"line":23,"column":21}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":27,"column":6},"generated":{"line":23,"column":37}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":28,"column":5},"generated":{"line":24,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":29,"column":3},"generated":{"line":25,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":25,"column":12},"generated":{"line":25,"column":5}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":31,"column":12},"generated":{"line":26,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":31,"column":12},"generated":{"line":26,"column":15}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":31,"column":12},"generated":{"line":26,"column":24}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":31,"column":12},"generated":{"line":26,"column":25}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":31,"column":12},"generated":{"line":26,"column":39}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":31,"column":2},"generated":{"line":26,"column":42}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":31,"column":27},"generated":{"line":26,"column":52}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":31,"column":2},"generated":{"line":26,"column":57}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":31,"column":57},"generated":{"line":26,"column":59}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":31,"column":2},"generated":{"line":26,"column":64}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":31,"column":74},"generated":{"line":26,"column":66}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":31,"column":2},"generated":{"line":27,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":31,"column":2},"generated":{"line":27,"column":12}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":31,"column":2},"generated":{"line":27,"column":20}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":31,"column":2},"generated":{"line":27,"column":24}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":32,"column":4},"generated":{"line":28,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":32,"column":10},"generated":{"line":28,"column":12}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":32,"column":15},"generated":{"line":28,"column":17}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":32,"column":21},"generated":{"line":28,"column":23}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":32,"column":4},"generated":{"line":28,"column":36}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":33,"column":4},"generated":{"line":29,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":33,"column":8},"generated":{"line":29,"column":12}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":33,"column":9},"generated":{"line":29,"column":13}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":33,"column":15},"generated":{"line":29,"column":19}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":33,"column":9},"generated":{"line":29,"column":34}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":33,"column":31},"generated":{"line":29,"column":35}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":33,"column":9},"generated":{"line":29,"column":37}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":33,"column":4},"generated":{"line":29,"column":38}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":33,"column":36},"generated":{"line":29,"column":40}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":34,"column":6},"generated":{"line":30,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":34,"column":12},"generated":{"line":30,"column":18}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":34,"column":6},"generated":{"line":30,"column":33}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":34,"column":28},"generated":{"line":30,"column":34}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":34,"column":6},"generated":{"line":30,"column":36}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":34,"column":34},"generated":{"line":30,"column":40}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":35,"column":8},"generated":{"line":31,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":35,"column":16},"generated":{"line":31,"column":24}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":34,"column":34},"generated":{"line":31,"column":29}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":36,"column":8},"generated":{"line":32,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":36,"column":22},"generated":{"line":32,"column":30}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":34,"column":34},"generated":{"line":33,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":34,"column":6},"generated":{"line":33,"column":13}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":38,"column":5},"generated":{"line":34,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":39,"column":4},"generated":{"line":35,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":39,"column":10},"generated":{"line":35,"column":14}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":39,"column":4},"generated":{"line":35,"column":29}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":39,"column":26},"generated":{"line":35,"column":30}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":39,"column":4},"generated":{"line":35,"column":32}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":39,"column":30},"generated":{"line":35,"column":34}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":39,"column":4},"generated":{"line":35,"column":46}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":40,"column":4},"generated":{"line":36,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":40,"column":10},"generated":{"line":36,"column":14}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":40,"column":4},"generated":{"line":36,"column":22}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":40,"column":19},"generated":{"line":36,"column":23}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":40,"column":4},"generated":{"line":36,"column":27}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":40,"column":25},"generated":{"line":36,"column":29}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":40,"column":26},"generated":{"line":36,"column":39}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":40,"column":25},"generated":{"line":36,"column":55}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":40,"column":42},"generated":{"line":36,"column":57}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":41,"column":6},"generated":{"line":38,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":41,"column":10},"generated":{"line":38,"column":16}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":41,"column":6},"generated":{"line":38,"column":17}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":42,"column":6},"generated":{"line":39,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":42,"column":10},"generated":{"line":39,"column":16}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":42,"column":17},"generated":{"line":39,"column":23}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":42,"column":10},"generated":{"line":39,"column":28}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":42,"column":27},"generated":{"line":39,"column":33}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":42,"column":6},"generated":{"line":39,"column":43}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":42,"column":39},"generated":{"line":39,"column":45}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":43,"column":8},"generated":{"line":40,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":43,"column":12},"generated":{"line":40,"column":20}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":43,"column":8},"generated":{"line":40,"column":27}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":44,"column":7},"generated":{"line":41,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":42,"column":6},"generated":{"line":41,"column":13}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":44,"column":13},"generated":{"line":41,"column":19}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":45,"column":8},"generated":{"line":42,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":45,"column":12},"generated":{"line":42,"column":20}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":45,"column":8},"generated":{"line":42,"column":25}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":46,"column":7},"generated":{"line":43,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":47,"column":6},"generated":{"line":44,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":47,"column":11},"generated":{"line":44,"column":18}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":47,"column":6},"generated":{"line":44,"column":34}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":47,"column":27},"generated":{"line":44,"column":36}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":47,"column":27},"generated":{"line":44,"column":41}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":47,"column":27},"generated":{"line":44,"column":43}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":47,"column":30},"generated":{"line":44,"column":45}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":47,"column":31},"generated":{"line":44,"column":48}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":47,"column":30},"generated":{"line":44,"column":49}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":47,"column":35},"generated":{"line":44,"column":53}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":47,"column":27},"generated":{"line":44,"column":69}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":47,"column":51},"generated":{"line":44,"column":71}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":47,"column":6},"generated":{"line":44,"column":73}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":48,"column":5},"generated":{"line":45,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":40,"column":4},"generated":{"line":45,"column":9}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":49,"column":3},"generated":{"line":46,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":31,"column":12},"generated":{"line":46,"column":5}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":51,"column":12},"generated":{"line":47,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":51,"column":12},"generated":{"line":47,"column":15}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":51,"column":12},"generated":{"line":47,"column":24}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":51,"column":12},"generated":{"line":47,"column":25}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":51,"column":12},"generated":{"line":47,"column":41}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":47,"column":44}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":51,"column":29},"generated":{"line":47,"column":54}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":51,"column":2},"generated":{"line":47,"column":68}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":51,"column":64},"generated":{"line":47,"column":70}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":52,"column":4},"generated":{"line":48,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":52,"column":8},"generated":{"line":48,"column":12}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":52,"column":4},"generated":{"line":48,"column":14}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":53,"column":4},"generated":{"line":49,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":53,"column":8},"generated":{"line":49,"column":12}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":53,"column":34},"generated":{"line":49,"column":38}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":53,"column":4},"generated":{"line":49,"column":48}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":53,"column":46},"generated":{"line":49,"column":50}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":54,"column":6},"generated":{"line":50,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":54,"column":11},"generated":{"line":50,"column":17}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":54,"column":26},"generated":{"line":50,"column":32}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":54,"column":11},"generated":{"line":50,"column":45}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":54,"column":42},"generated":{"line":50,"column":48}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":54,"column":6},"generated":{"line":50,"column":50}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":55,"column":5},"generated":{"line":51,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":53,"column":4},"generated":{"line":51,"column":9}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":55,"column":11},"generated":{"line":51,"column":15}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":56,"column":6},"generated":{"line":52,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":56,"column":11},"generated":{"line":52,"column":17}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":56,"column":6},"generated":{"line":52,"column":31}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":57,"column":5},"generated":{"line":53,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":58,"column":4},"generated":{"line":54,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":58,"column":10},"generated":{"line":54,"column":12}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":58,"column":22},"generated":{"line":54,"column":24}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":58,"column":27},"generated":{"line":54,"column":29}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":58,"column":22},"generated":{"line":54,"column":44}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":58,"column":43},"generated":{"line":54,"column":45}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":58,"column":22},"generated":{"line":54,"column":47}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":58,"column":4},"generated":{"line":54,"column":48}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":59,"column":4},"generated":{"line":55,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":59,"column":8},"generated":{"line":55,"column":12}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":59,"column":18},"generated":{"line":55,"column":22}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":59,"column":8},"generated":{"line":55,"column":34}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":59,"column":33},"generated":{"line":55,"column":37}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":59,"column":4},"generated":{"line":55,"column":38}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":59,"column":36},"generated":{"line":55,"column":40}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":60,"column":6},"generated":{"line":56,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":60,"column":16},"generated":{"line":56,"column":22}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":60,"column":6},"generated":{"line":56,"column":34}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":61,"column":5},"generated":{"line":57,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":59,"column":4},"generated":{"line":57,"column":9}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":61,"column":11},"generated":{"line":57,"column":15}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":62,"column":6},"generated":{"line":58,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":62,"column":11},"generated":{"line":58,"column":17}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":62,"column":6},"generated":{"line":58,"column":32}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":62,"column":27},"generated":{"line":58,"column":33}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":62,"column":6},"generated":{"line":58,"column":35}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":62,"column":31},"generated":{"line":58,"column":37}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":62,"column":6},"generated":{"line":58,"column":43}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":62,"column":38},"generated":{"line":58,"column":44}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":62,"column":6},"generated":{"line":58,"column":56}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":62,"column":51},"generated":{"line":58,"column":57}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":62,"column":6},"generated":{"line":58,"column":61}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":63,"column":6},"generated":{"line":59,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":63,"column":13},"generated":{"line":59,"column":19}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":63,"column":18},"generated":{"line":59,"column":24}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":63,"column":13},"generated":{"line":59,"column":39}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":63,"column":34},"generated":{"line":59,"column":40}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":63,"column":13},"generated":{"line":59,"column":42}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":63,"column":6},"generated":{"line":59,"column":43}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":64,"column":5},"generated":{"line":60,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":65,"column":3},"generated":{"line":61,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":51,"column":12},"generated":{"line":61,"column":5}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":6,"column":17},"generated":{"line":62,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":6,"column":17},"generated":{"line":62,"column":15}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":6,"column":17},"generated":{"line":62,"column":24}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":6,"column":29},"generated":{"line":62,"column":27}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":6,"column":17},"generated":{"line":62,"column":28}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":66,"column":0},"generated":{"line":63,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":66,"column":0},"generated":{"line":63,"column":11}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":66,"column":0},"generated":{"line":63,"column":21}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":5,"column":0},"generated":{"line":64,"column":0}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":5,"column":0},"generated":{"line":64,"column":1}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":5,"column":0},"generated":{"line":64,"column":3}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":5,"column":22},"generated":{"line":65,"column":8}},{"source":"src/viewModel/Observable.ts","name":null,"original":{"line":5,"column":22},"generated":{"line":65,"column":21}}],"sources":{"src/viewModel/Observable.ts":"import { ModificationTree } from '../types'\n\ntype WatcherCallback = (modificationTree: ModificationTree) => void\n\nexport abstract class Observable {\n private static idCounter = 0\n public readonly _observableId = ++Observable.idCounter\n\n protected _watchedTargets: {\n [id: string]: { target: Observable, watcherCount: number }\n } = {}\n protected _watchers: Array<{\n context: any;\n callback: WatcherCallback;\n }> = []\n\n public _watchBy(context: any, callback: WatcherCallback) {\n this._watchers.push({ context, callback } as any)\n }\n\n public _stopWatchBy(context: any) {\n this._watchers = this._watchers.filter((w) => w.context !== context)\n }\n\n protected _emitValueChange(modificationTree: ModificationTree) {\n for (const { callback } of this._watchers) {\n callback(modificationTree)\n }\n }\n\n protected _registerChild(field: () => string | string, child: Observable) {\n const id = child._observableId\n if (!child._watchedTargets[id]) {\n child._watchedTargets[id] = {\n target: child,\n watcherCount: 0\n }\n }\n child._watchedTargets[id].watcherCount++\n child._watchBy(this, (modificationTree) => {\n let s: string\n if (typeof field === 'function') {\n s = field()\n } else {\n s = field\n }\n this._emitValueChange({ [s]: modificationTree })\n })\n }\n\n protected _unregisterChild(childOrChildId: Observable | string) {\n let id: string\n if (childOrChildId instanceof Observable) {\n id = childOrChildId._observableId + ''\n } else {\n id = childOrChildId\n }\n const watchInfo = this._watchedTargets[id]\n if (watchInfo.watcherCount > 1) {\n watchInfo.watcherCount--\n } else {\n this._watchedTargets[id].target._stopWatchBy(this)\n delete this._watchedTargets[id]\n }\n }\n}\n"},"lineCount":null}},"hash":"5e19952f9323e1a5e5edca24b5f587b0","cacheData":{"env":{}}}