Files
doneit-web/_platforms/browser/www/5277-es2015.04473933aba538454de2.js
T

1 line
18 KiB
JavaScript
Raw Normal View History

2021-08-18 18:58:02 +01:00
(self.webpackChunkgabinete_digital=self.webpackChunkgabinete_digital||[]).push([[5277],{25277:function(t,e,r){"use strict";r.r(e),r.d(e,{ion_range:function(){return s}});var n=r(31667),i=r(36177),a=r(13772),o=r(61269);const s=class{constructor(t){(0,n.r)(this,t),this.ionChange=(0,n.e)(this,"ionChange",7),this.ionStyle=(0,n.e)(this,"ionStyle",7),this.ionFocus=(0,n.e)(this,"ionFocus",7),this.ionBlur=(0,n.e)(this,"ionBlur",7),this.didLoad=!1,this.noUpdate=!1,this.hasFocus=!1,this.ratioA=0,this.ratioB=0,this.debounce=0,this.name="",this.dualKnobs=!1,this.min=0,this.max=100,this.pin=!1,this.snaps=!1,this.step=1,this.ticks=!0,this.disabled=!1,this.value=0,this.clampBounds=t=>(0,a.h)(this.min,t,this.max),this.ensureValueInBounds=t=>this.dualKnobs?{lower:this.clampBounds(t.lower),upper:this.clampBounds(t.upper)}:this.clampBounds(t),this.setupGesture=async()=>{const t=this.rangeSlider;t&&(this.gesture=(await Promise.resolve().then(r.bind(r,97279))).createGesture({el:t,gestureName:"range",gesturePriority:100,threshold:0,onStart:t=>this.onStart(t),onMove:t=>this.onMove(t),onEnd:t=>this.onEnd(t)}),this.gesture.enable(!this.disabled))},this.handleKeyboard=(t,e)=>{let r=this.step;r=r>0?r:1,r/=this.max-this.min,e||(r*=-1),"A"===t?this.ratioA=(0,a.h)(0,this.ratioA+r,1):this.ratioB=(0,a.h)(0,this.ratioB+r,1),this.updateValue()},this.onBlur=()=>{this.hasFocus&&(this.hasFocus=!1,this.ionBlur.emit(),this.emitStyle())},this.onFocus=()=>{this.hasFocus||(this.hasFocus=!0,this.ionFocus.emit(),this.emitStyle())}}debounceChanged(){this.ionChange=(0,a.e)(this.ionChange,this.debounce)}minChanged(){this.noUpdate||this.updateRatio()}maxChanged(){this.noUpdate||this.updateRatio()}disabledChanged(){this.gesture&&this.gesture.enable(!this.disabled),this.emitStyle()}valueChanged(t){this.noUpdate||this.updateRatio(),t=this.ensureValueInBounds(t),this.ionChange.emit({value:t})}componentDidLoad(){this.setupGesture(),this.didLoad=!0}connectedCallback(){this.updateRatio(),this.debounceChanged(),this.disabledChanged(),this.didLoad&&this.setupGesture()}disconnectedCallback(){this.gesture&&(this.gesture.destroy(),this.gesture=void 0)}getValue(){const t=this.value||0;return this.dualKnobs?"object"==typeof t?t:{lower:0,upper:t}:"object"==typeof t?t.upper:t}emitStyle(){this.ionStyle.emit({interactive:!0,"interactive-disabled":this.disabled})}onStart(t){const e=this.rect=this.rangeSlider.getBoundingClientRect(),r=t.currentX;let n=(0,a.h)(0,(r-e.left)/e.width,1);"rtl"===document.dir&&(n=1-n),this.pressedKnob=!this.dualKnobs||Math.abs(this.ratioA-n)<Math.abs(this.ratioB-n)?"A":"B",this.setFocus(this.pressedKnob),this.update(r)}onMove(t){this.update(t.currentX)}onEnd(t){this.update(t.currentX),this.pressedKnob=void 0}update(t){const e=this.rect;let r=(0,a.h)(0,(t-e.left)/e.width,1);"rtl"===document.dir&&(r=1-r),this.snaps&&(r=g(d(r,this.min,this.max,this.step),this.min,this.max)),"A"===this.pressedKnob?this.ratioA=r:this.ratioB=r,this.updateValue()}get valA(){return d(this.ratioA,this.min,this.max,this.step)}get valB(){return d(this.ratioB,this.min,this.max,this.step)}get ratioLower(){return this.dualKnobs?Math.min(this.ratioA,this.ratioB):0}get ratioUpper(){return this.dualKnobs?Math.max(this.ratioA,this.ratioB):this.ratioA}updateRatio(){const t=this.getValue(),{min:e,max:r}=this;this.dualKnobs?(this.ratioA=g(t.lower,e,r),this.ratioB=g(t.upper,e,r)):this.ratioA=g(t,e,r)}updateValue(){this.noUpdate=!0;const{valA:t,valB:e}=this;this.value=this.dualKnobs?{lower:Math.min(t,e),upper:Math.max(t,e)}:t,this.noUpdate=!1}setFocus(t){if(this.el.shadowRoot){const e=this.el.shadowRoot.querySelector("A"===t?".range-knob-a":".range-knob-b");e&&e.focus()}}render(){const{min:t,max:e,step:r,el:s,handleKeyboard:d,pressedKnob:b,disabled:h,pin:p,ratioLower:c,ratioUpper:u}=this,m=(0,i.b)(this),k="rtl"===document.dir,x=k?"right":"left",f=t=>({[x]:t[x]}),v={[x]:100*c+"%",[k?"left":"right"]:100-100*u+"%"},w=[];if(this.snaps&&this.ticks)for(let n=t;n<=e;n+=r){const r=g(n,t,e),i={ratio:r,active:r>=c&&r<=u};i[x]=100*r+"%",w.push(i)}return(0,a.d)(!0,s,this.name,JSON.stringify(this.getValue()),h)