UNPKG

@arcgis/core

Version:

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

6 lines (5 loc) 1.44 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.33/esri/copyright.txt for details. */ import{clone as i}from"../lang.js";import{OriginId as r}from"./PropertyOrigin.js";class s{constructor(){this._values=new Map,this.multipleOriginsSupported=!1}clone(r){const t=new s;return this._values.forEach(((s,e)=>{r&&r.has(e)||t.set(e,i(s.value),s.origin)})),t}get(i,r){r=this._normalizeOrigin(r);const s=this._values.get(i);return null==r||s?.origin===r?s?.value:void 0}originOf(i){return this._values.get(i)?.origin??r.USER}keys(i){i=this._normalizeOrigin(i);const r=[...this._values.keys()];return null==i?r:r.filter((r=>this._values.get(r)?.origin===i))}set(i,s,e){if((e=this._normalizeOrigin(e))===r.DEFAULTS){const r=this._values.get(i);if(null!=r?.origin&&r.origin>e)return}this._values.set(i,new t(s,e))}delete(i,r){null!=(r=this._normalizeOrigin(r))&&this._values.get(i)?.origin!==r||this._values.delete(i)}has(i,r){return null!=(r=this._normalizeOrigin(r))?this._values.get(i)?.origin===r:this._values.has(i)}isAtOrigin(i,r){return r=this._normalizeOrigin(r),this.has(i,r)&&this.originOf(i)===r}isBelowOrigin(i,r){return r=this._normalizeOrigin(r),!this.has(i)||this.originOf(i)<r}forEach(i){this._values.forEach((({value:r},s)=>i(r,s)))}_normalizeOrigin(i){if(null!=i)return i===r.DEFAULTS?i:r.USER}}class t{constructor(i,r){this.value=i,this.origin=r}}export{s as DefaultsStore};