UNPKG

@arcgis/core

Version:

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

6 lines (5 loc) 2.28 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.32/esri/copyright.txt for details. */ import{_ as e}from"../../../chunks/tslib.es6.js";import o from"../../../core/Error.js";import r from"../../../core/JSONSupport.js";import t from"../../../core/Loadable.js";import s from"../../../core/Promise.js";import{property as a}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/has.js";import"../../../core/Logger.js";import"../../../core/RandomLCG.js";import{reader as l}from"../../../core/accessorSupport/decorators/reader.js";import{subclass as p}from"../../../core/accessorSupport/decorators/subclass.js";import{getSharedTemplateProvider as i}from"../SharedTemplateProvider.js";import{SharedTemplateDefinitionRequiredPropsNotSetError as m}from"../support/sharedTemplateErrors.js";import{namedEditingToolGUIDDict as d}from"../support/toolNames.js";let c=class extends(t.LoadableMixin(s.EsriPromiseMixin(r))){constructor(){super(...arguments),this.excludedTools=[],this.featureService=null,this.makeSharedTemplateFromJSON=null,this.view=null}readExcludedTools(e){return e.map((e=>d.fromJSON(e)))}load(e){return this.addResolvingPromise(this._load(e)),Promise.resolve(this)}async _load(e){const r=this.allParts,{featureService:t,makeSharedTemplateFromJSON:s,view:a}=this;if(null==t||null==s||null==a)throw new m;for(const o of r)o.assertIsSupportedPart();const l=i(a,{makeSharedTemplateFromJSON:s}),p=r.filter((e=>null==e.template)),d=await l.getTemplates({templateIds:p.map((e=>e.templateId)),featureService:t,signal:e?.signal}),c=new Map(d.map((e=>[e.templateId,e])));for(const i of p){const e=c.get(i.templateId);if(null==e)throw new o(`Failed to retrieve template for template ID ${i.templateId}`);i.template=e}await Promise.all(r.map((o=>o.template?.load(e))))}};e([a({readOnly:!0})],c.prototype,"type",void 0),e([a({constructOnly:!0})],c.prototype,"excludedTools",void 0),e([l("excludedTools")],c.prototype,"readExcludedTools",null),e([a()],c.prototype,"featureService",void 0),e([a()],c.prototype,"makeSharedTemplateFromJSON",void 0),e([a()],c.prototype,"view",void 0),c=e([p("esri.editing.sharedTemplates.templateDefinitions.TemplateDefinitionBase")],c);export{c as TemplateDefinitionBase};