UNPKG

@arcgis/core

Version:

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

6 lines (5 loc) 1.29 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.33/esri/copyright.txt for details. */ import{_ as o}from"../chunks/tslib.es6.js";import s from"./Accessor.js";import"./has.js";import{tryClone as t}from"./lang.js";import"./Logger.js";import{assertIsSome as e}from"./maybe.js";import{OriginId as r}from"./accessorSupport/PropertyOrigin.js";import{getProperties as n}from"./accessorSupport/utils.js";import{subclass as c}from"./accessorSupport/decorators/subclass.js";const i=s=>{let i=class extends s{clone(){const o=n(this);e(o,"unable to clone instance of non-accessor class");const s=o.metadata,c=o.store,i={},l=new Map;for(const e in s){const o=s[e],n=c?.originOf(e),a=o.clonable;if(o.readOnly||!1===a||n!==r.USER&&n!==r.DEFAULTS&&n!==r.WEB_MAP&&n!==r.WEB_SCENE)continue;const f=this[e];let p=null;p="function"==typeof a?a(f):"reference"===a?f:t(f),null!=f&&null==p||(n===r.DEFAULTS?l.set(e,p):i[e]=p)}const a=new(0,Object.getPrototypeOf(this).constructor)(i);if(l.size){const o=n(a)?.store;if(o)for(const[s,t]of l)o.set(s,t,r.DEFAULTS)}return a}};return i=o([c("esri.core.Clonable")],i),i};let l=class extends(i(s)){};l=o([c("esri.core.Clonable")],l),function(o){o.ClonableMixin=i}(l||(l={}));const a=l;export{a as default};