forms-reactive
Version:
Reactive Form Web Component
2 lines • 7.37 kB
JavaScript
import{r as t,c as i,h as s,e,H as n}from"./p-3e1171f6.js";import{a as o,d as h,r}from"./p-5fdca19f.js";import{n as a}from"./p-c1432a35.js";import{w as d}from"./p-75038a3f.js";import{g as l}from"./p-9c83f640.js";import"./p-8613551a.js";const c="ion-item-sliding{display:block;position:relative;width:100%;overflow:hidden;user-select:none}ion-item-sliding .item{user-select:none}.item-sliding-active-slide .item{position:relative;transition:transform 500ms cubic-bezier(0.36, 0.66, 0.04, 1);opacity:1;z-index:2;pointer-events:none;will-change:transform}.item-sliding-closing ion-item-options{pointer-events:none}.item-sliding-active-swipe-end .item-options-end .item-option-expandable{padding-left:100%;order:1;transition-duration:0.6s;transition-property:padding-left}:host-context([dir=rtl]) .item-sliding-active-swipe-end .item-options-end .item-option-expandable{order:-1}[dir=rtl] .item-sliding-active-swipe-end .item-options-end .item-option-expandable{order:-1}@supports selector(:dir(rtl)){.item-sliding-active-swipe-end .item-options-end .item-option-expandable:dir(rtl){order:-1}}.item-sliding-active-swipe-start .item-options-start .item-option-expandable{padding-right:100%;order:-1;transition-duration:0.6s;transition-property:padding-right}:host-context([dir=rtl]) .item-sliding-active-swipe-start .item-options-start .item-option-expandable{order:1}[dir=rtl] .item-sliding-active-swipe-start .item-options-start .item-option-expandable{order:1}@supports selector(:dir(rtl)){.item-sliding-active-swipe-start .item-options-start .item-option-expandable:dir(rtl){order:1}}";const f=c;const p=30;const m=.55;let u;const g=class{constructor(s){t(this,s);this.ionDrag=i(this,"ionDrag",7);this.item=null;this.openAmount=0;this.initialOpenAmount=0;this.optsWidthRightSide=0;this.optsWidthLeftSide=0;this.sides=0;this.optsDirty=true;this.contentEl=null;this.initialContentScrollY=true;this.state=2;this.disabled=false}disabledChanged(){if(this.gesture){this.gesture.enable(!this.disabled)}}async connectedCallback(){const{el:t}=this;this.item=t.querySelector("ion-item");this.contentEl=o(t);this.mutationObserver=d(t,"ion-item-option",(async()=>{await this.updateOptions()}));await this.updateOptions();this.gesture=(await import("./p-52ed752a.js")).createGesture({el:t,gestureName:"item-swipe",gesturePriority:100,threshold:5,canStart:t=>this.canStart(t),onStart:()=>this.onStart(),onMove:t=>this.onMove(t),onEnd:t=>this.onEnd(t)});this.disabledChanged()}disconnectedCallback(){if(this.gesture){this.gesture.destroy();this.gesture=undefined}this.item=null;this.leftOptions=this.rightOptions=undefined;if(u===this.el){u=undefined}if(this.mutationObserver){this.mutationObserver.disconnect();this.mutationObserver=undefined}}getOpenAmount(){return Promise.resolve(this.openAmount)}getSlidingRatio(){return Promise.resolve(this.getSlidingRatioSync())}async open(t){var i;const s=this.item=(i=this.item)!==null&&i!==void 0?i:this.el.querySelector("ion-item");if(s===null){return}const e=this.getOptions(t);if(!e){return}if(t===undefined){t=e===this.leftOptions?"start":"end"}t=a(t)?"end":"start";const n=this.openAmount<0;const o=this.openAmount>0;if(n&&e===this.leftOptions){return}if(o&&e===this.rightOptions){return}this.closeOpened();this.state=4;requestAnimationFrame((()=>{this.calculateOptsWidth();const i=t==="end"?this.optsWidthRightSide:-this.optsWidthLeftSide;u=this.el;this.setOpenAmount(i,false);this.state=t==="end"?8:16}))}async close(){this.setOpenAmount(0,true)}async closeOpened(){if(u!==undefined){u.close();u=undefined;return true}return false}getOptions(t){if(t===undefined){return this.leftOptions||this.rightOptions}else if(t==="start"){return this.leftOptions}else{return this.rightOptions}}async updateOptions(){const t=this.el.querySelectorAll("ion-item-options");let i=0;this.leftOptions=this.rightOptions=undefined;for(let s=0;s<t.length;s++){const e=t.item(s);const n=e.componentOnReady!==undefined?await e.componentOnReady():e;const o=a(n.side)?"end":"start";if(o==="start"){this.leftOptions=n;i|=1}else{this.rightOptions=n;i|=2}}this.optsDirty=true;this.sides=i}canStart(t){const i=document.dir==="rtl";const s=i?window.innerWidth-t.startX<15:t.startX<15;if(s){return false}const e=u;if(e&&e!==this.el){this.closeOpened()}return!!(this.rightOptions||this.leftOptions)}onStart(){this.item=this.el.querySelector("ion-item");const{contentEl:t}=this;if(t){this.initialContentScrollY=h(t)}u=this.el;if(this.tmr!==undefined){clearTimeout(this.tmr);this.tmr=undefined}if(this.openAmount===0){this.optsDirty=true;this.state=4}this.initialOpenAmount=this.openAmount;if(this.item){this.item.style.transition="none"}}onMove(t){if(this.optsDirty){this.calculateOptsWidth()}let i=this.initialOpenAmount-t.deltaX;switch(this.sides){case 2:i=Math.max(0,i);break;case 1:i=Math.min(0,i);break;case 3:break;case 0:return;default:console.warn("invalid ItemSideFlags value",this.sides);break}let s;if(i>this.optsWidthRightSide){s=this.optsWidthRightSide;i=s+(i-s)*m}else if(i<-this.optsWidthLeftSide){s=-this.optsWidthLeftSide;i=s+(i-s)*m}this.setOpenAmount(i,false)}onEnd(t){const{contentEl:i,initialContentScrollY:s}=this;if(i){r(i,s)}const e=t.velocityX;let n=this.openAmount>0?this.optsWidthRightSide:-this.optsWidthLeftSide;const o=this.openAmount>0===!(e<0);const h=Math.abs(e)>.3;const a=Math.abs(this.openAmount)<Math.abs(n/2);if(b(o,h,a)){n=0}const d=this.state;this.setOpenAmount(n,true);if((d&32)!==0&&this.rightOptions){this.rightOptions.fireSwipeEvent()}else if((d&64)!==0&&this.leftOptions){this.leftOptions.fireSwipeEvent()}}calculateOptsWidth(){this.optsWidthRightSide=0;if(this.rightOptions){this.rightOptions.style.display="flex";this.optsWidthRightSide=this.rightOptions.offsetWidth;this.rightOptions.style.display=""}this.optsWidthLeftSide=0;if(this.leftOptions){this.leftOptions.style.display="flex";this.optsWidthLeftSide=this.leftOptions.offsetWidth;this.leftOptions.style.display=""}this.optsDirty=false}setOpenAmount(t,i){if(this.tmr!==undefined){clearTimeout(this.tmr);this.tmr=undefined}if(!this.item){return}const{el:s}=this;const e=this.item.style;this.openAmount=t;if(i){e.transition=""}if(t>0){this.state=t>=this.optsWidthRightSide+p?8|32:8}else if(t<0){this.state=t<=-this.optsWidthLeftSide-p?16|64:16}else{s.classList.add("item-sliding-closing");if(this.gesture){this.gesture.enable(false)}this.tmr=setTimeout((()=>{this.state=2;this.tmr=undefined;if(this.gesture){this.gesture.enable(!this.disabled)}s.classList.remove("item-sliding-closing")}),600);u=undefined;e.transform="";return}e.transform=`translate3d(${-t}px,0,0)`;this.ionDrag.emit({amount:t,ratio:this.getSlidingRatioSync()})}getSlidingRatioSync(){if(this.openAmount>0){return this.openAmount/this.optsWidthRightSide}else if(this.openAmount<0){return this.openAmount/this.optsWidthLeftSide}else{return 0}}render(){const t=l(this);return s(n,{key:"22f83febcbc1bc27e4ddbd7fcbe590de60a10e89",class:{[t]:true,"item-sliding-active-slide":this.state!==2,"item-sliding-active-options-end":(this.state&8)!==0,"item-sliding-active-options-start":(this.state&16)!==0,"item-sliding-active-swipe-end":(this.state&32)!==0,"item-sliding-active-swipe-start":(this.state&64)!==0}})}get el(){return e(this)}static get watchers(){return{disabled:["disabledChanged"]}}};const b=(t,i,s)=>!i&&s||t&&i;g.style=f;export{g as ion_item_sliding};
//# sourceMappingURL=p-b71d3d23.entry.js.map