// All material copyright Esri, All Rights Reserved, unless otherwise specified. // See https://js.arcgis.com/4.30/esri/copyright.txt for details. //>>built define("../chunks/tslib.es6 ../intl ../core/deprecate ../core/domUtils ../core/Evented ../core/events ../core/has ../core/lang ../core/Logger ../core/maybe ../core/Promise ../core/promiseUtils ../core/reactiveUtils ../core/uuid ../core/accessorSupport/decorators/property ../core/accessorSupport/decorators/cast ../core/accessorSupport/decorators/subclass ../core/accessorSupport/tracking ../core/accessorSupport/tracking/SimpleTrackingTarget ../libs/maquette-advanced-projector/projector ../chunks/componentsUtils ./support/jsxWidgetSupport ./support/symbols ./support/tests ./support/vnodeCache ./support/widgetUtils ../intl/locale ../intl/messages".split(" "), function(g,z,E,F,f,A,W,G,u,B,H,v,t,I,h,J,K,L,M,N,O,w,C,P,q,Q,R,S){function D(a,b){const k=Object.prototype.hasOwnProperty;for(const d in b)k.call(b,d)&&k.call(a,d)&&(null!=a[d]&&null!=b[d]&&"object"===typeof a[d]&&"object"===typeof b[d]?D(a[d],b[d]):a[d]=b[d]);return a}let T=0;const V=N.createAdvancedProjector({postProcessProjectionOptions(a){const b=a.eventHandlerInterceptor,k=/capture$/i;a.eventHandlerInterceptor=(d,n,l,e)=>{const c=b?.(d,n,l,e),p=k.test(d);d=d.replace(k,"");if(!(d.toLowerCase()in l)||p){const m=d[2].toLowerCase()+d.slice(3),r=x=>c?.call(l,x);l.addEventListener(m,r,p);const U=e.afterRemoved;e.afterRemoved=x=>{U?.(x);l.removeEventListener(m,r,p)}}return c}},handleInterceptedEvent(a,b,k,d){const {eventPhase:n,type:l}=d,e=n===Event.CAPTURING_PHASE;let c=`on${l}${e?"capture":""}`;b=b.properties;if(!(b&&c in b||(c=`on${l[0].toUpperCase()}${l.slice(1)}${e?"Capture":""}`,b&&c in b)))return;q.clearVNodeCache();a.scheduleRender();b[c].call(b.bind||k,d)}});let y=!1;f=class extends H.EsriPromiseMixin(f.EventedAccessor){constructor(a, b){super(a,b);this._attached=!1;this._projector=V;this._readyForTrueRender=!1;this.key=this;this.autoRenderingEnabled=!0;this._loadLocale=v.debounce(async()=>{if(this._messageBundleProps?.length){const e=await Promise.allSettled(this._messageBundleProps.map(async({bundlePath:c,propertyName:p})=>{this.destroyed||(c=await S.fetchMessageBundle(c),this.uiStrings&&Object.keys(this.uiStrings)&&(c=D(G.clone(c),this.uiStrings)),this[p]=c)}));if(this.destroyed)return;for(const c of e)"rejected"===c.status&& u.getLogger(this).error("widget-intl:locale-error",this.declaredClass,c.reason)}await this.loadLocale()});O.commitAssetPath();const k="esri-widget-uid-"+I.generateUUID(),d=this.render.bind(this);this._trackingTarget=new M.SimpleTrackingTarget(()=>{this.autoRenderingEnabled&&this.scheduleRender()});const n=()=>({vnodeSelector:"div",properties:{key:`${k}-hidden`,class:"",styles:{display:"none"}},domNode:null,children:void 0,text:void 0}),l=()=>{if(!this._readyForTrueRender||this.destroyed)return null; const e=d()??n(),c=e.properties??(e.properties={});c.key??(c.key=k);if(w.isWidgetConstructor(e.vnodeSelector)){if(!this.visible)return n()}else{this.visible?c.styles||(c.styles={}):(c.class="",c.styles={display:"none"});let m;(m=c.styles).display??(m.display="")}let p=0;e.children?.forEach(m=>{if(!w.isWidgetConstructor(m.vnodeSelector)){m.properties??(m.properties={});var r;(r=m.properties).key??(r.key=`${this.id}--${p++}`)}});return w.processWidgets(this,e)};this.render=()=>{if(y)return l();let e= q.getVNodeCache(this)??null;if(e)return e;this._trackingTarget.clear();y=!0;try{e=L.runTracked(this._trackingTarget,l)}catch(c){throw u.getLogger(this).error(c),c;}finally{y=!1}e&&q.setVNodeCache(this,e);return e};(a=this.beforeFirstRender())?this._resourcesFetch=a.then(()=>{this._readyForTrueRender=!0;this._postInitialize()}):(this._resourcesFetch=Promise.resolve().then(()=>{this._postInitialize()}),this._readyForTrueRender=!0);this.addResolvingPromise(this._resourcesFetch);P.registerLoading(this._resourcesFetch)}normalizeCtorArgs(a, b){a={...a};b&&(a.container=b);return a}postInitialize(){}beforeFirstRender(){const a=this.loadDependencies();return this._messageBundleProps?.length||a?Promise.all([a,this._loadLocale()]).then(()=>{}).catch(v.throwIfNotAbortError):null}loadDependencies(){return null}loadLocale(){return null}destroy(){this.destroyed||(B.destroyMaybe(this._trackingTarget),B.destroyMaybe(this.viewModel),this._detach(this.container),this._set("container",null),this._emitter.clear(),this.render=()=>null,this._projector= null,q.deleteVNodeCache(this))}set container(a){this._get("container")||this._set("container",a)}castContainer(a){return F.byId(a)}get domNode(){return this.container}set domNode(a){this.container=a}get icon(){return null}set icon(a){this._overrideIfSome("icon",a)}get id(){return this._get("id")||this.container?.id||Date.now().toString(16)+"-widget-"+T++}set id(a){a&&this._set("id",a)}get label(){return this.declaredClass.split(".").pop()}set label(a){this._overrideIfSome("label",a)}get renderable(){return this._resourcesFetch}get visible(){return this._get("visible")}set visible(a){this._set("visible", a)}get [(z=C.widgetSymbol,C.widgetTestDataSymbol)](){return{projector:this._projector}}render(){throw Error("not implemented");}scheduleRender(){this.destroyed||(q.deleteVNodeCache(this),this._projector.scheduleRender())}own(a){E.deprecatedFunction(u.getLogger(this),"`Widget.own()` is deprecated in favor of 'Widget.addHandles()'",{replacement:"Widget.addHandles()",version:"4.28"});this.addHandles(a)}classes(...a){return Q.classes.apply(this,a)}renderNow(){q.deleteVNodeCache(this);this._projector.renderNow()}_postInitialize(){if(!this.destroyed){this.scheduleRender(); this._delegatedEventNames?.length&&this.addHandles(t.watch(()=>this.viewModel,(b,k)=>{k&&this.removeHandles("delegated-events");b&&A.isEventedOrEventTarget(b)&&this.addHandles(this._delegatedEventNames.map(d=>A.on(b,d,n=>{this.emit(d,n)})),"delegated-events")},t.syncAndInitial));this.postInitialize();var a=async()=>{await this._loadLocale().catch(v.throwIfNotAbortError);this.scheduleRender()};this.addHandles([R.onLocaleChange(a),t.watch(()=>this.uiStrings,a),t.when(()=>this.container,b=>{this.destroyed|| this._attach(b)},{initial:!0,once:!0})])}}_attach(a){a&&(this._projector.merge(a,this.render),this._attached=!0)}_detach(a){this._attached&&(this._projector.detach(this.render),this._attached=!1);a?.parentNode?.removeChild(a)}};f[z]=!0;g.__decorate([h.property()],f.prototype,"_readyForTrueRender",void 0);g.__decorate([h.property({value:null})],f.prototype,"container",null);g.__decorate([J.cast("container")],f.prototype,"castContainer",null);g.__decorate([h.property()],f.prototype,"icon",null);g.__decorate([h.property()], f.prototype,"id",null);g.__decorate([h.property()],f.prototype,"label",null);g.__decorate([h.property()],f.prototype,"renderable",null);g.__decorate([h.property()],f.prototype,"uiStrings",void 0);g.__decorate([h.property()],f.prototype,"viewModel",void 0);g.__decorate([h.property({value:!0})],f.prototype,"visible",null);g.__decorate([h.property()],f.prototype,"key",void 0);g.__decorate([h.property()],f.prototype,"children",void 0);g.__decorate([h.property()],f.prototype,"afterCreate",void 0);g.__decorate([h.property()], f.prototype,"afterUpdate",void 0);g.__decorate([h.property()],f.prototype,"afterRemoved",void 0);return f=g.__decorate([K.subclass("esri.widgets.Widget")],f)});