@arcgis/map-components
Version:
ArcGIS Map Components
5 lines (4 loc) • 3.88 kB
JavaScript
/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.32/esri/copyright.txt for details.
v4.32.13 */
import{b as y,c as a}from"./JM4XJJFL.js";import{b as r}from"./AX2MGWNF.js";import{j as h,k as w,o as _}from"./NIZJVZRG.js";var P=(d,s)=>(i,e)=>v(i,d,e),p=class extends y{constructor(s,i,e){super(s,i,e),this._watchedViewModelProperties=new Map,this._watchedVisibleElementsProperties={},this._isBindingViewModel={value:!0},Object.defineProperty(this.exports,"viewModel",{value:a.makeGetterProxy(s,this._watchedViewModelProperties,this._isBindingViewModel)}),Object.defineProperty(this.exports,"visibleElements",{value:this._makeVisibleElementsBinder()})}hostConnected(){super.hostConnected(),this._isBindingViewModel.value=!1,this.component.manager.loadedCalled&&r(this.component)}async hostLoad(){if(this._watchedProperties.delete("viewModel"),await super.hostLoad(),this.component.manager.destroyed)return;this._watchMetaProperties(),this.onLifecycle(()=>this.reactiveUtils.watch(()=>this._instance.viewModel,e=>{this.component.viewModel=e},{initial:!0}));let s=this._instance.viewModel;typeof s=="object"&&(a.watchComponentUpdates(this,s,this._watchedViewModelProperties),a.watchAccessorUpdates(this,s,this._watchedViewModelProperties));let i=Object.entries(this._watchedVisibleElementsProperties);i.length>0&&this.onLifecycle(()=>i.map(([e,t])=>{let o=this._instance.visibleElements??{},n;for(let c of t.slice(0,-1))if(typeof o[c]=="object"&&o[c]!==null)o=o[c];else{n=!!o[c];break}n===void 0&&(n=!!(o[t.slice(-1)[0]]??!0)),e.startsWith("hide");let m=e.startsWith("hide")||e.startsWith("show")?e.startsWith("hide"):n,l=this.component;return typeof l[e]=="boolean"?this._updateWidgetVisibleElement(t,l[e],m):l[e]=!1,h(this.component,e,c=>this._updateWidgetVisibleElement(t,c,m))}))}_updateWidgetVisibleElement(s,i,e){let t=this._instance.visibleElements??{};for(let n of s.slice(0,-1))(typeof t[n]!="object"||t[n]===null)&&(t[n]={}),t=t[n];let o=!!(e?!i:i);t[s.at(-1)]=o}hostLoaded(){let{el:s}=this.component;s.childElem??=document.createElement("div"),this._instance.container=s.childElem;let i=!1,e=this.component.el.view;Object.defineProperty(this.component.el,"view",{get:()=>this._instance.view??this._instance.viewModel?.view,set:t=>{!("view"in this._instance)&&typeof this._instance.viewModel=="object"?this._instance.viewModel.view=t:this._instance.view=t,!("map"in this._instance)&&typeof this._instance.viewModel=="object"?this._instance.viewModel.map=t.map:this._instance.map=t.map,this._watchViewDestroy(),t&&!i&&(i=!0,this.component.arcgisReady.emit())},configurable:!0,enumerable:!0}),e&&(this._instance.view=e),this.component.el.isConnected&&(r(this.component),this._watchViewDestroy())}hostDisconnected(){typeof this.component.el.childElem=="object"&&this.component.el.view?.ui?.remove(this.component.el.childElem)}hostDestroy(){super.hostDestroy(),this._watchViewDestroyHandle?.remove()}_watchMetaProperties(){h(this.component,"position",s=>{this.component.el.childElem!=null&&typeof s=="string"&&r(this.component)}),h(this.component,"referenceElement",()=>r(this.component))}_makeVisibleElementsBinder(){return new Proxy({},{has:(s,i)=>typeof i=="string"||Reflect.has(s,i),get:(s,i)=>{if(typeof i=="symbol"||i in Promise.prototype)return Reflect.get(s,i);let e=[i],t=this._makeRecursiveProxy(e);return w(this.component,o=>{let n=o;this.component[n]=!1,this._watchedVisibleElementsProperties[n]=e},t)}})}_makeRecursiveProxy(s){let i=new Proxy({},{get:(e,t)=>{let o=Reflect.get(e,t);return typeof t=="symbol"||t in Promise.prototype?o:(s.push(t),i)}});return i}_watchViewDestroy(){this._watchViewDestroyHandle?.remove(),this._watchViewDestroyHandle=this.reactiveUtils.when(()=>this.component.el.view?.destroyed===!0,()=>void this.component.destroy().catch(console.error),{sync:!0})}},v=_(p);export{P as a};