// 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 ../core/accessorSupport/decorators/property ../core/has ../core/Logger ../core/RandomLCG ../core/accessorSupport/decorators/subclass ./Widget ./support/globalCss ./support/legacyIcon ./support/widgetUtils ./support/decorators/messageBundle ./support/jsxFactory ./Swipe/SwipeViewModel".split(" "),function(e,f,d,z,A,w,x,r,t,B,y,n,u){const v={handle:!0,divider:!0};d=class extends x{constructor(a,b){super(a,b);this.disabled=!1;this.messages=null;this.viewModel=new u;this._pointerOffset= 0;this._container=null;this._onContainerPointerDown=this._onContainerPointerDown.bind(this);this._onContainerPointerMove=this._onContainerPointerMove.bind(this);this._onContainerPointerUp=this._onContainerPointerUp.bind(this)}get direction(){return this.viewModel.direction}set direction(a){this.viewModel.direction=a}get dragLabel(){return this.messages?.dragLabel??""}set dragLabel(a){this._overrideIfSome("dragLabel",a)}get icon(){return"compare"}set icon(a){this._overrideIfSome("icon",a)}get label(){return this.messages?.widgetLabel?? ""}set label(a){this._overrideIfSome("label",a)}get leadingLayers(){return this.viewModel.leadingLayers}set leadingLayers(a){this.viewModel.leadingLayers=a}get position(){return this.viewModel.position}set position(a){this.viewModel.position=a}get trailingLayers(){return this.viewModel.trailingLayers}set trailingLayers(a){this.viewModel.trailingLayers=a}get view(){return this.viewModel.view}set view(a){this.viewModel.view=a}set visibleElements(a){this._set("visibleElements",{...v,...a})}get visibleElements(){return this._get("visibleElements")|| v}render(){const {state:a,direction:b}=this.viewModel,c="disabled"===a||this.disabled;return n.tsx("div",{class:this.classes("esri-swipe",r.globalCss.widget,{[r.globalCss.disabled]:c,["esri-swipe--disabled"]:c,["esri-swipe--vertical"]:"vertical"===b,["esri-swipe--horizontal"]:"horizontal"===b})},"disabled"===a?null:this._renderContainer())}_renderHandle(){var {direction:a}=this.viewModel,{visibleElements:b}=this;a={[t.legacyIcon.dragHorizontal]:"vertical"===a,[t.legacyIcon.dragVertical]:"horizontal"=== a};b=this.classes("esri-swipe__handle",!b.handle&&"esri-swipe__handle--hidden");return n.tsx("div",{class:b,key:"handle",role:"presentation"},n.tsx("span",{"aria-hidden":"true",class:this.classes("esri-swipe__handle-icon",a)}))}_renderDivider(){const {visibleElements:a}=this;return a&&a.divider?n.tsx("div",{class:"esri-swipe__divider",key:"divider",role:"presentation"}):null}_renderContent(){return[this._renderDivider(),this._renderHandle()]}_renderContainer(){const {disabled:a,dragLabel:b,viewModel:c}= this,{max:h,min:m,direction:k,position:p}=c,g=`${p}%`,l={top:"vertical"===k?g:void 0,left:"vertical"===k?void 0:g},q=this._renderContent();return a?n.tsx("div",{class:"esri-swipe__container",key:"container",role:"presentation",styles:l},q):n.tsx("div",{afterCreate:this._afterContainerCreate,"aria-label":b,"aria-orientation":k,"aria-valuemax":`${h}`,"aria-valuemin":`${m}`,"aria-valuenow":`${p}`,"aria-valuetext":g,bind:this,class:"esri-swipe__container",key:"container",onkeydown:this._onContainerKeyDown, role:"slider",styles:l,tabIndex:0,title:b,"touch-action":"none"},q)}_afterContainerCreate(a){this._container=a;a.addEventListener("pointerdown",this._onContainerPointerDown)}_calculatePointerOffset(a){const {direction:b}=this;var c=a.target;const h=("vertical"===b?c.clientHeight:c.clientWidth)/2,m=c.getBoundingClientRect();c=a.clientX-m.left;a=a.clientY-m.top;this._pointerOffset="vertical"===b?a-h:c-h}_onContainerPointerDown(a){a.preventDefault();this._container&&document.activeElement!==this.container&& this._container.focus();this._calculatePointerOffset(a);document.addEventListener("pointerup",this._onContainerPointerUp);document.addEventListener("pointermove",this._onContainerPointerMove)}_onContainerPointerUp(a){a.preventDefault();document.removeEventListener("pointerup",this._onContainerPointerUp);document.removeEventListener("pointermove",this._onContainerPointerMove)}_onContainerPointerMove(a){a.preventDefault();const {_pointerOffset:b,container:c,direction:h}=this,{clientX:m,clientY:k}=a, {top:p,left:g,width:l,height:q}=c.getBoundingClientRect();this.position=("vertical"===h?k-p-b:m-g-b)/("vertical"===h?q:l)*100}_getKeyPosition(a){const {key:b}=a,{position:c}=this,{max:h,min:m,step:k,stepMultiplier:p,direction:g}=this.viewModel,l=k*p;"ArrowUp ArrowDown ArrowLeft ArrowRight Home End PageUp PageDown".split(" ").includes(b)&&(a.preventDefault(),a.stopPropagation());return("vertical"===g?"ArrowDown"===b||"ArrowRight"===b:"ArrowUp"===b||"ArrowRight"===b)?c+(a.shiftKey?l:k):("vertical"=== g?"ArrowUp"===b||"ArrowLeft"===b:"ArrowDown"===b||"ArrowLeft"===b)?c-(a.shiftKey?l:k):"Home"===b?m:"End"===b?h:("vertical"===g?"PageDown"===b:"PageUp"===b)?c+l:("vertical"===g?"PageUp"===b:"PageDown"===b)?c-l:null}_onContainerKeyDown(a){a=this._getKeyPosition(a);"number"===typeof a&&(this.position=a)}};e.__decorate([f.property()],d.prototype,"direction",null);e.__decorate([f.property()],d.prototype,"disabled",void 0);e.__decorate([f.property()],d.prototype,"dragLabel",null);e.__decorate([f.property()], d.prototype,"icon",null);e.__decorate([f.property()],d.prototype,"label",null);e.__decorate([f.property()],d.prototype,"leadingLayers",null);e.__decorate([f.property(),y.messageBundle("esri/widgets/Swipe/t9n/Swipe")],d.prototype,"messages",void 0);e.__decorate([f.property()],d.prototype,"position",null);e.__decorate([f.property()],d.prototype,"trailingLayers",null);e.__decorate([f.property()],d.prototype,"view",null);e.__decorate([f.property({type:u})],d.prototype,"viewModel",void 0);e.__decorate([f.property()], d.prototype,"visibleElements",null);return d=e.__decorate([w.subclass("esri.widgets.Swipe")],d)});