UNPKG

@arcgis/core

Version:

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

3 lines (2 loc) 2.31 kB
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.8/LICENSE.txt */ import{__decorate as e}from"tslib";import o from"../../../core/Error.js";import{JSONSupport as t}from"../../../core/JSONSupport.js";import{LoadableMixin as r}from"../../../core/Loadable.js";import{EsriPromiseMixin as l}from"../../../core/Promise.js";import{property as a,subclass as s}from"../../../core/accessorSupport/decorators.js";import{getSharedTemplateProvider as p}from"../SharedTemplateProvider.js";import{SharedTemplateDefinitionRequiredPropsNotSetError as m}from"../support/sharedTemplateErrors.js";import{namedEditingToolGUIDDict as i}from"../support/toolNames.js";import{reader as d}from"../../../core/accessorSupport/decorators/reader.js";import{writer as c}from"../../../core/accessorSupport/decorators/writer.js";let n=class extends(r(l(t))){constructor(){super(...arguments),this.excludedTools=[],this.featureService=null,this.makeSharedTemplateFromJSON=null,this.view=null}readExcludedTools(e){const o=e.map(e=>i.fromJSON(e));return Array.from(new Set(o))}writeExcludedTools(e,o){e?.length&&(o.excludedTools=e.map(e=>i.toJSON(e.toLowerCase())))}load(e){return this.addResolvingPromise(this._load(e)),Promise.resolve(this)}async _load(e){const t=this.allParts,{featureService:r,makeSharedTemplateFromJSON:l,view:a}=this;if(null==r||null==l||null==a)throw new m;for(const o of t)o.assertIsSupportedPart();const s=p(a,{makeSharedTemplateFromJSON:l}),i=t.filter(e=>null==e.template),d=await s.getTemplates({templateIds:i.map(e=>e.templateId),featureService:r,signal:e?.signal}),c=new Map(d.map(e=>[e.templateId,e]));for(const p of i){const e=c.get(p.templateId);if(null==e)throw new o("internal:missing-template",`Failed to retrieve template for template ID ${p.templateId}`);p.template=e}await Promise.all(t.map(o=>o.template?.load(e)))}};e([a({readOnly:!0})],n.prototype,"type",void 0),e([a({constructOnly:!0})],n.prototype,"excludedTools",void 0),e([d("excludedTools")],n.prototype,"readExcludedTools",null),e([c("excludedTools")],n.prototype,"writeExcludedTools",null),e([a()],n.prototype,"featureService",void 0),e([a()],n.prototype,"makeSharedTemplateFromJSON",void 0),e([a()],n.prototype,"view",void 0),n=e([s("esri.editing.sharedTemplates.templateDefinitions.TemplateDefinitionBase")],n);export{n as TemplateDefinitionBase};