{"version":3,"sources":["node_modules/@arcgis/core/core/support/UpdatingHandles.js"],"sourcesContent":["/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.28/esri/copyright.txt for details.\n*/\nimport { _ as s } from \"../../chunks/tslib.es6.js\";\nimport e from \"../Accessor.js\";\nimport { makeHandle as t } from \"../handleUtils.js\";\nimport { watch as i, when as n, on as d, sync as a } from \"../reactiveUtils.js\";\nimport { schedule as r } from \"../scheduling.js\";\nimport { property as o } from \"../accessorSupport/decorators/property.js\";\nimport { subclass as l } from \"../accessorSupport/decorators/subclass.js\";\nlet h = class extends e {\n constructor() {\n super(...arguments), this.updating = !1, this._handleId = 0, this._scheduleHandleId = 0, this._pendingPromises = new Set();\n }\n destroy() {\n this.removeAll();\n }\n add(s, e, t = {}) {\n return this._installWatch(s, e, t, i);\n }\n addWhen(s, e, t = {}) {\n return this._installWatch(s, e, t, n);\n }\n addOnCollectionChange(s, e, {\n initial: i = !1,\n final: n = !1\n } = {}) {\n const r = ++this._handleId;\n return this.addHandles([d(s, \"after-changes\", this._createSyncUpdatingCallback(), a), d(s, \"change\", e, {\n onListenerAdd: i ? s => e({\n added: s.toArray(),\n removed: []\n }) : void 0,\n onListenerRemove: n ? s => e({\n added: [],\n removed: s.toArray()\n }) : void 0\n })], r), t(() => this.removeHandles(r));\n }\n addPromise(s) {\n if (null == s) return s;\n const e = ++this._handleId;\n this.addHandles(t(() => {\n this._pendingPromises.delete(s) && (0 !== this._pendingPromises.size || this.hasHandles(c) || this._set(\"updating\", !1));\n }), e), this._pendingPromises.add(s), this._set(\"updating\", !0);\n const i = () => this.removeHandles(e);\n return s.then(i, i), s;\n }\n removeAll() {\n this._pendingPromises.clear(), this.removeAllHandles(), this._set(\"updating\", !1);\n }\n _installWatch(s, e, i = {}, n) {\n const d = ++this._handleId;\n i.sync || this._installSyncUpdatingWatch(s, d);\n const a = n(s, e, i);\n return this.addHandles(a, d), t(() => this.removeHandles(d));\n }\n _installSyncUpdatingWatch(s, e) {\n const t = this._createSyncUpdatingCallback(),\n n = i(s, t, {\n sync: !0,\n equals: () => !1\n });\n return this.addHandles(n, e), n;\n }\n _createSyncUpdatingCallback() {\n return () => {\n this.removeHandles(c), ++this._scheduleHandleId;\n const s = this._scheduleHandleId;\n this._get(\"updating\") || this._set(\"updating\", !0), this.addHandles(r(() => {\n s === this._scheduleHandleId && (this._set(\"updating\", this._pendingPromises.size > 0), this.removeHandles(c));\n }), c);\n };\n }\n};\ns([o({\n readOnly: !0\n})], h.prototype, \"updating\", void 0), h = s([l(\"esri.core.support.UpdatingHandles\")], h);\nconst c = -42;\nexport { h as UpdatingHandles };"],"mappings":"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","names":["e","s","c","d"],"x_google_ignoreList":[0]}