@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
3 lines (2 loc) • 1.52 kB
JavaScript
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.8/LICENSE.txt */
import{handlesGroup as r}from"../handleUtils.js";import{clone as t}from"../lang.js";function n(r){return r.__accessor__??null}function e(r,t){return null!=r?.metadata?.[t]}function i(r,t){const e=n(r);return e?e.getDependsInfo(r,t,""):""}function u(r,t,n){if(n){return a(r,t,{policy:n,path:""})}return a(r,t,null)}function a(r,n,e){return n?Object.keys(n).reduce((r,i)=>{const u=i;if("__proto__"===u)return r;let o=null,s="merge";if(e&&(o=e.path?`${e.path}.${i}`:i,s=e.policy(o)),"replace"===s)return r[u]=n[u],r;if("replace-arrays"===s&&Array.isArray(r[u]))return r[u]=n[u],r;if(void 0===r[u])return r[u]=t(n[u]),r;let c=r[u],l=n[u];if(c===l)return r;if(Array.isArray(l)||Array.isArray(r))c=c?Array.isArray(c)?r[u]=c.slice():r[u]=[c]:r[u]=[],l&&(Array.isArray(l)||(l=[l]),l.forEach(r=>{c.includes(r)||c.push(r)}));else if(l&&"object"==typeof l)if(e){const t=e.path;e.path=o,r[u]=a(c,l,e),e.path=t}else r[u]=a(c,l,null);else r.hasOwnProperty(i)&&!n.hasOwnProperty(i)||(r[u]=l);return r},r||{}):r}function o(r){return Array.isArray(r)?r:r.split(".")}function s(r){return r.includes(",")?r.split(",").map(r=>r.trim()):[r.trim()]}function c(r){if(Array.isArray(r)){const t=[];for(const n of r)t.push(...s(n));return t}return s(r)}function l(t,n,e,i){const u=c(n);if(1!==u.length){const n=u.map(r=>i(t,r,e));return r(n)}return i(t,u[0],e)}export{i as getDependsInfo,n as getProperties,e as isPropertyDeclared,u as merge,l as parse,o as pathToArray,c as splitPath};