UNPKG

@arcgis/core

Version:

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

6 lines (5 loc) 1.16 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.33/esri/copyright.txt for details. */ import{generateBracedUUID as e}from"../../../../core/uuid.js";import{isSubtypeSublayer as t}from"../../../../layers/support/layerUtils.js";import r from"../../../../rest/networks/support/Association.js";import o from"../../../../rest/networks/support/NetworkElement.js";function i(t){return new r({fromNetworkElement:s(t.fromFeature,t.utilityNetwork),toNetworkElement:s(t.toFeature,t.utilityNetwork),associationType:t.associationType,globalId:e()})}function s(e,r){const i=t(e.sourceLayer)?e.sourceLayer.parent:e.sourceLayer;if(i&&"globalIdField"in i&&"layerId"in i&&i.globalIdField){const t=r.getSourceIdByLayerId(i.layerId),s="junction"===r.getSourceTypeById(t)?r.getTerminalConfiguration(e):void 0,a=s?.terminals.at(0)?.id,n=i.fieldsIndex.get("assetGroup").name,l=i.fieldsIndex.get("assetType").name,u=e.attributes[n],d=e.attributes[l],p=e.attributes[i.globalIdField];if(p&&null!=t)return new o({globalId:p,networkSourceId:t,assetGroupCode:u,assetTypeCode:d,terminalId:a})}}export{i as createAssociation};