12345 |
- /*
- All material copyright ESRI, All Rights Reserved, unless otherwise specified.
- See https://js.arcgis.com/4.25/esri/copyright.txt for details.
- */
- import{_ as i}from"../../chunks/tslib.es6.js";import t from"../../core/Accessor.js";import e from"../../core/Collection.js";import s from"../../core/Handles.js";import{watch as r,initial as o,on as l}from"../../core/reactiveUtils.js";import{property as n}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/accessorSupport/ensureType.js";import{subclass as a}from"../../core/accessorSupport/decorators/subclass.js";import p from"../../views/layers/support/ClipRect.js";function c(i,t){const e=10**t;return Math.round(i*e)/e}const h={left:0,right:0,top:0,bottom:0};let y=class extends t{constructor(i){super(i),this._handles=new s,this._leadingClips=new Map,this._trailingClips=new Map,this.direction="horizontal",this.leadingLayers=new e,this.max=100,this.min=0,this.precision=4,this.step=.5,this.stepMultiplier=10,this.trailingLayers=new e,this.view=null}initialize(){this._handles.add([r((()=>[this.view,this.view?.ready,this.position,this.direction]),(()=>this._clipLayers()),o),l((()=>this.leadingLayers),"change",(()=>this._clipLeadingLayers())),l((()=>this.trailingLayers),"change",(()=>this._clipTrailingLayers()))])}destroy(){this._removeExistingClips(),this._handles.destroy(),this._handles=null}get position(){return 25}set position(i){const{precision:t,min:e,max:s}=this;this._set("position",c(Math.max(Math.min(i,s),e),t))}get state(){const{view:i}=this;return i&&i.ready?"ready":"disabled"}_clipLayers(){this._clipLeadingLayers(),this._clipTrailingLayers()}_clipLeadingLayers(){this._removeClips("leading");const{leadingLayers:i}=this;i.forEach((i=>this._clipLayer({layer:i,type:"leading"})))}_clipTrailingLayers(){this._removeClips("trailing");const{trailingLayers:i}=this;i.forEach((i=>this._clipLayer({layer:i,type:"trailing"})))}async _getLayerView(i){const{view:t}=this;if(!i||!t)return null;const e=await t.whenLayerView(i);return"clips"in e?e:null}_getVerticalClipRect(i){const{position:t}=this;return"leading"===i?new p({...h,bottom:100-t+"%"}):"trailing"===i?new p({...h,top:`${t}%`}):null}_getHorizontalClipRect(i){const{position:t}=this;return"leading"===i?new p({...h,right:100-t+"%"}):"trailing"===i?new p({...h,left:`${t}%`}):null}_getClipRect(i){const{direction:t}=this;return"vertical"===t?this._getVerticalClipRect(i):"horizontal"===t?this._getHorizontalClipRect(i):null}async _clipLayer(i){const{_leadingClips:t,_trailingClips:e}=this,{layer:s,type:r}=i,o="trailing"===r?e:"leading"===r?t:null,l=await this._getLayerView(s);if(!(l&&"clips"in l&&o&&l.hasOwnProperty("clips")))return;const n=o.get(l);n&&l.clips.remove(n);const a=this._getClipRect(r);a&&(o.set(l,a),l.clips.add(a))}_removeClips(i){const{_leadingClips:t,_trailingClips:e}=this,s="trailing"===i?e:"leading"===i?t:null;s&&(s.forEach(((i,t)=>{t&&t.hasOwnProperty("clips")&&t.clips.remove(i)})),s.clear())}_removeExistingClips(){this._removeClips("leading"),this._removeClips("trailing")}};i([n()],y.prototype,"direction",void 0),i([n({type:e,nonNullable:!0})],y.prototype,"leadingLayers",void 0),i([n({readOnly:!0})],y.prototype,"max",void 0),i([n({readOnly:!0})],y.prototype,"min",void 0),i([n()],y.prototype,"position",null),i([n()],y.prototype,"precision",void 0),i([n({readOnly:!0})],y.prototype,"state",null),i([n()],y.prototype,"step",void 0),i([n()],y.prototype,"stepMultiplier",void 0),i([n({type:e,nonNullable:!0})],y.prototype,"trailingLayers",void 0),i([n()],y.prototype,"view",void 0),y=i([a("esri.widgets.Swipe.SwipeViewModel")],y);const d=y;export{d as default};
|