@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
3 lines (2 loc) • 1.19 kB
JavaScript
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.8/LICENSE.txt */
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 n(t){return new r({fromNetworkElement:i(t.fromFeature,t.utilityNetwork),toNetworkElement:i(t.toFeature,t.utilityNetwork),associationType:t.associationType,globalId:e()})}function i(e,r){const n=t(e.sourceLayer)?e.sourceLayer.parent:e.sourceLayer;if(n&&"globalIdField"in n&&n.globalIdField&&"layerId"in n){const t=e.attributes[n.globalIdField],i=r.getSourceIdByLayerId(n.layerId);if(!t||null==i)return;const s=n.fieldsIndex.get("assetGroup").name,a=n.fieldsIndex.get("assetType").name,l=e.attributes[s],u=e.attributes[a],d="junction"===r.getSourceTypeById(i)?r.getTerminalConfiguration(e):void 0,m=d?.terminals.at(0)?.id,p=n.fieldsIndex.get("firstUnit")?.name,y=n.fieldsIndex.get("lastUnit")?.name;return new o({globalId:t,networkSourceId:i,assetGroupCode:l,assetTypeCode:u,terminalId:null!=p&&null!=y?m??1:m})}}export{n as createAssociation};