@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
3 lines (2 loc) • 3.06 kB
JavaScript
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.8/LICENSE.txt */
import{idToReadableName as e,idToWritableName as r,writableNameToId as i}from"../../core/accessorSupport/PropertyOrigin.js";import{getProperties as t}from"../../core/accessorSupport/utils.js";import{isFeatureServiceLayer as p}from"./layerUtils.js";const o=e=>"feature"===e.type&&!e.isTable,n={feature:{predicate:p,propertyGroups:[{id:"attribute-table-template",properties:["attributeTableTemplate"]},{id:"blend-mode",properties:["blendMode"],predicate:o},{id:"charts",properties:["charts"]},{id:"custom-parameters",properties:["customParameters"]},{id:"definition-expression",properties:["definitionExpression"]},{id:"display-filter",properties:["displayFilterInfo","displayFilterEnabled"],predicate:o},{id:"effect",properties:["effect","featureEffect"],predicate:o},{id:"feature-reduction",properties:["featureReduction"],predicate:o},{id:"field-configurations",property:"fieldConfigurations",dependency:"popupTemplate"},{id:"floor-info",properties:["floorInfo"],predicate:o},{id:"form-template",properties:["formTemplate"]},{id:"labels",properties:["labelingInfo","labelsVisible"],predicate:o},{id:"legend-enabled",properties:["legendEnabled"],predicate:o},{id:"opacity",properties:["opacity"],predicate:o},{id:"order-by",properties:["orderBy"],predicate:o},{id:"popup",properties:["popupTemplate","popupEnabled"]},{id:"refresh-interval",properties:["refreshInterval"]},{id:"renderer",properties:["renderer"],predicate:o},{id:"scale-range",properties:["minScale","maxScale"],predicate:o},{id:"use-view-time",properties:["useViewTime"]},{id:"visibility-time-extent",properties:["visibilityTimeExtent"],predicate:o}]}};function s(e){const r=n[e.type];return r?.propertyGroups.filter(r=>!r.predicate||r.predicate(e))??[]}function d(e){return"dependency"in e}function c(e){const r=s(e),i=[];for(const t of r)d(t)?i.push(t.property):i.push(...t.properties);return i}function a(e,r,i){return e.originIdOf(r)<i?"source":"overridden"}function f(e,r,i,t){return a(e,1===e.originIdOf(r)?t:r,i)}function u(e,r,t){const p=i(t),o=[],n=[];if(d(r)){const{property:i,dependency:t}=r;n.push(f(e,i,p,t)),o.push(i)}else{const{properties:i}=r;n.push(...i.map(r=>a(e,r,p))),o.push(...i)}return{id:r.id,properties:o,status:n.reduce((e,r)=>e===r?e:"overridden")}}function l(r,t,p){const o=i(p);r.revertToOrigin(t,e(o-1))}function m(e,r,i){let p=e.originIdOf(r);1!==p&&(l(e,r,i),p=e.originIdOf(r),p<2&&t(e)?.clearOverride(r))}function y(e,t,p){const o=i(p),n=e.originIdOf(t);n<o&&1!==n&&e.updateOrigin(t,r(o))}function b(e){const r=n[e.type];return!(!r||r.predicate&&!r.predicate(e))}function g(e,r){if(!b(e))return;const i=s(e).map(i=>u(e,i,r));return{propertyGroupOriginInfos:i,status:i.map(e=>e.status).reduce((e,r)=>e===r?e:"mixed")}}function h(e,r){if(b(e))for(const i of s(e))if(d(i))m(e,i.property,r);else for(const t of i.properties)l(e,t,r)}function I(e,r){if(!b(e))return;const i=c(e);for(const t of i)y(e,t,r)}export{h as clearOverrides,I as disconnectFromSource,g as getLayerOriginInfo,b as isSupportedLayer};