UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

3 lines (2 loc) 1.72 kB
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.8/LICENSE.txt */ import{clone as t}from"../lang.js";import{originIdNum as s}from"./PropertyOrigin.js";class i{constructor(){this._propertyOriginMap=new Map,this._originStores=new Array(s),this._values=new Map,this.multipleOriginsSupported=!0}clone(r){const e=new i,o=this._originStores[0];o&&o.forEach((s,i)=>{e.set(i,t(s),0)});for(let i=2;i<s;i++){const s=this._originStores[i];s&&s.forEach((s,o)=>{r&&r.has(o)||e.set(o,t(s),i)})}return e}get(t,s){const i=void 0===s?this._values:this._originStores[s];return i?i.get(t):void 0}keys(t){const s=null==t?this._values:this._originStores[t];return s?[...s.keys()]:[]}set(t,s,i=7){let r=this._originStores[i];if(r||(r=new Map,this._originStores[i]=r),r.set(t,s),!this._values.has(t)||this._propertyOriginMap.get(t)<=i){const r=this._values.get(t);return this._values.set(t,s),this._propertyOriginMap.set(t,i),r!==s}return!1}delete(t,s=7){const i=this._originStores[s];if(!i)return;const r=i.get(t);if(i.delete(t),this._values.has(t)&&this._propertyOriginMap.get(t)===s){this._values.delete(t);for(let i=s-1;i>=0;i--){const s=this._originStores[i];if(s&&s.has(t)){this._values.set(t,s.get(t)),this._propertyOriginMap.set(t,i);break}}}return r}has(t,s){const i=void 0===s?this._values:this._originStores[s];return!!i&&i.has(t)}revert(t,s){for(;s>0&&!this.has(t,s);)--s;const i=this._originStores[s],r=i?.get(t),e=this._values.get(t);return this._values.set(t,r),this._propertyOriginMap.set(t,s),e!==r}originOf(t){return this._propertyOriginMap.get(t)||0}isAtOrigin(t,s){return this.has(t,s)&&this.originOf(t)===s}isBelowOrigin(t,s){return!this.has(t)||this.originOf(t)<s}forEach(t){this._values.forEach(t)}}export{i as default};