@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 1.17 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
*/
import{trackAccess as e}from"./accessorSupport/tracking.js";import{SimpleObservable as s}from"./accessorSupport/tracking/SimpleObservable.js";class t{constructor(e){this._observable=new s,this._set=new Set(e)}get size(){return e(this._observable),this._set.size}add(e){const s=this._set.size;return this._set.add(e),this._set.size!==s&&this._observable.notify(),this}clear(){this._set.size>0&&(this._set.clear(),this._observable.notify())}delete(e){const s=this._set.delete(e);return s&&this._observable.notify(),s}entries(){return e(this._observable),this._set.entries()}forEach(s,t){e(this._observable),this._set.forEach(((e,r)=>s.call(t,e,r,this)),t)}has(s){return e(this._observable),this._set.has(s)}keys(){return e(this._observable),this._set.keys()}values(){return e(this._observable),this._set.values()}[Symbol.iterator](){return e(this._observable),this._set[Symbol.iterator]()}[Symbol.dispose](){this._observable.destroy()}get[Symbol.toStringTag](){return this._set[Symbol.toStringTag]}}export{t as default};