/*! * (C) Ionic http://ionicframework.com - MIT License */ import{r as t,d as r,h as e,H as i,f as o}from"./p-f419feca.js";import{g as n}from"./p-1b3ffb2f.js";const a=class{constructor(e){t(this,e),this.ionInputModeChange=r(this,"ionInputModeChange",7),this.useInputMode=!1,this.isInHighlightBounds=t=>{const{highlightEl:r}=this;if(!r)return!1;const e=r.getBoundingClientRect();return!(t.clientXe.right||t.clientYe.bottom)},this.onFocusOut=t=>{const{relatedTarget:r}=t;(!r||"ION-PICKER-COLUMN-INTERNAL"!==r.tagName&&r!==this.inputEl)&&this.exitInputMode()},this.onFocusIn=t=>{const{target:r}=t;"ION-PICKER-COLUMN-INTERNAL"!==r.tagName||this.actionOnClick||(r.numericInput?this.enterInputMode(r,!1):this.exitInputMode())},this.onClick=()=>{const{actionOnClick:t}=this;t&&(t(),this.actionOnClick=void 0)},this.onPointerDown=t=>{const{useInputMode:r,inputModeColumn:e,el:i}=this;if(this.isInHighlightBounds(t))if(r)this.actionOnClick="ION-PICKER-COLUMN-INTERNAL"===t.target.tagName?e&&e===t.target?()=>{this.enterInputMode()}:()=>{this.enterInputMode(t.target)}:()=>{this.exitInputMode()};else{const r=1===i.querySelectorAll("ion-picker-column-internal.picker-column-numeric-input").length?t.target:void 0;this.actionOnClick=()=>{this.enterInputMode(r)}}else this.actionOnClick=()=>{this.exitInputMode()}},this.enterInputMode=(t,r=!0)=>{const{inputEl:e,el:i}=this;e&&i.querySelector("ion-picker-column-internal.picker-column-numeric-input")&&(this.useInputMode=!0,this.inputModeColumn=t,r?(this.destroyKeypressListener&&(this.destroyKeypressListener(),this.destroyKeypressListener=void 0),e.focus()):(i.addEventListener("keypress",this.onKeyPress),this.destroyKeypressListener=()=>{i.removeEventListener("keypress",this.onKeyPress)}),this.emitInputModeChange())},this.onKeyPress=t=>{const{inputEl:r}=this;if(!r)return;const e=parseInt(t.key,10);Number.isNaN(e)||(r.value+=t.key,this.onInputChange())},this.selectSingleColumn=()=>{const{inputEl:t,inputModeColumn:r,singleColumnSearchTimeout:e}=this;if(!t||!r)return;const i=r.items.filter((t=>!0!==t.disabled));if(e&&clearTimeout(e),this.singleColumnSearchTimeout=setTimeout((()=>{t.value="",this.singleColumnSearchTimeout=void 0}),1e3),t.value.length>=3){const r=t.value.substring(t.value.length-2);return t.value=r,void this.selectSingleColumn()}const o=i.find((({text:r})=>r.replace(/^0+(?=[1-9])|0+(?=0$)/,"")===t.value));if(o)r.setValue(o.value);else if(2===t.value.length){const r=t.value.substring(t.value.length-1);t.value=r,this.selectSingleColumn()}},this.searchColumn=(t,r,e="start")=>{const i="start"===e?/^0+/:/0$/,o=t.items.find((({text:t,disabled:e})=>!0!==e&&t.replace(i,"")===r));o&&t.setValue(o.value)},this.selectMultiColumn=()=>{const{inputEl:t,el:r}=this;if(!t)return;const e=Array.from(r.querySelectorAll("ion-picker-column-internal")).filter((t=>t.numericInput)),i=e[0],o=e[1];let n,a=t.value;switch(a.length){case 1:this.searchColumn(i,a);break;case 2:const r=t.value.substring(0,1);a="0"===r||"1"===r?t.value:r,this.searchColumn(i,a),1===a.length&&(n=t.value.substring(t.value.length-1),this.searchColumn(o,n,"end"));break;case 3:const e=t.value.substring(0,1);a="0"===e||"1"===e?t.value.substring(0,2):e,this.searchColumn(i,a),n=t.value.substring(1===a.length?1:2),this.searchColumn(o,n,"end");break;case 4:const s=t.value.substring(0,1);a="0"===s||"1"===s?t.value.substring(0,2):s,this.searchColumn(i,a);const c=t.value.substring(1===a.length?1:2,t.value.length);this.searchColumn(o,c,"end");break;default:const l=t.value.substring(t.value.length-4);t.value=l,this.selectMultiColumn()}},this.onInputChange=()=>{const{useInputMode:t,inputEl:r,inputModeColumn:e}=this;t&&r&&(e?this.selectSingleColumn():this.selectMultiColumn())},this.emitInputModeChange=()=>{const{useInputMode:t,inputModeColumn:r}=this;this.ionInputModeChange.emit({useInputMode:t,inputModeColumn:r})}}preventTouchStartPropagation(t){t.stopPropagation()}componentWillLoad(){n(this.el).addEventListener("focusin",this.onFocusIn),n(this.el).addEventListener("focusout",this.onFocusOut)}async exitInputMode(){const{inputEl:t,useInputMode:r}=this;r&&t&&(this.useInputMode=!1,this.inputModeColumn=void 0,t.blur(),t.value="",this.destroyKeypressListener&&(this.destroyKeypressListener(),this.destroyKeypressListener=void 0),this.emitInputModeChange())}render(){return e(i,{key:"49581a3c11cd7808555c576c46b833ac9d60f71a",onPointerDown:t=>this.onPointerDown(t),onClick:()=>this.onClick()},e("input",{key:"92628e29f76914b955aa11d4e45797a941821159","aria-hidden":"true",tabindex:-1,inputmode:"numeric",type:"number",onKeyDown:t=>{var r;"Enter"===t.key&&(null===(r=this.inputEl)||void 0===r||r.blur())},ref:t=>this.inputEl=t,onInput:()=>this.onInputChange(),onBlur:()=>this.exitInputMode()}),e("div",{key:"455d7ef6dd1425e882d86f49e0d817883fe222b2",class:"picker-before"}),e("div",{key:"0351296cf171d22840542eb178ec3fae1e90f5d5",class:"picker-after"}),e("div",{key:"b4ecaa88d0bbbd69e72b3d4f27ad3bd91f3da84d",class:"picker-highlight",ref:t=>this.highlightEl=t}),e("slot",{key:"fac29c179707002861f39d2ba1ea53479d0d9b74"}))}get el(){return o(this)}};a.style={ios:":host{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:200px;direction:ltr;z-index:0}:host .picker-before,:host .picker-after{position:absolute;width:100%;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:1;pointer-events:none}:host .picker-before{top:0;height:83px}@supports (inset-inline-start: 0){:host .picker-before{inset-inline-start:0}}@supports not (inset-inline-start: 0){:host .picker-before{left:0}:host-context([dir=rtl]) .picker-before{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){:host(:dir(rtl)) .picker-before{left:unset;right:unset;right:0}}}:host .picker-after{top:116px;height:84px}@supports (inset-inline-start: 0){:host .picker-after{inset-inline-start:0}}@supports not (inset-inline-start: 0){:host .picker-after{left:0}:host-context([dir=rtl]) .picker-after{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){:host(:dir(rtl)) .picker-after{left:unset;right:unset;right:0}}}:host .picker-highlight{border-radius:8px;left:0;right:0;top:50%;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0;position:absolute;width:calc(100% - 16px);height:34px;-webkit-transform:translateY(-50%);transform:translateY(-50%);background:var(--wheel-highlight-background);z-index:-1}:host input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}:host ::slotted(ion-picker-column-internal:first-of-type){text-align:start}:host ::slotted(ion-picker-column-internal:last-of-type){text-align:end}:host ::slotted(ion-picker-column-internal:only-child){text-align:center}:host .picker-before{background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, rgba(var(--wheel-fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), to(rgba(var(--wheel-fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8)));background:linear-gradient(to bottom, rgba(var(--wheel-fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 20%, rgba(var(--wheel-fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8) 100%)}:host .picker-after{background:-webkit-gradient(linear, left bottom, left top, color-stop(20%, rgba(var(--wheel-fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), to(rgba(var(--wheel-fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8)));background:linear-gradient(to top, rgba(var(--wheel-fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 20%, rgba(var(--wheel-fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8) 100%)}:host .picker-highlight{background:var(--wheel-highlight-background, var(--ion-color-step-150, #eeeeef))}",md:":host{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:200px;direction:ltr;z-index:0}:host .picker-before,:host .picker-after{position:absolute;width:100%;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:1;pointer-events:none}:host .picker-before{top:0;height:83px}@supports (inset-inline-start: 0){:host .picker-before{inset-inline-start:0}}@supports not (inset-inline-start: 0){:host .picker-before{left:0}:host-context([dir=rtl]) .picker-before{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){:host(:dir(rtl)) .picker-before{left:unset;right:unset;right:0}}}:host .picker-after{top:116px;height:84px}@supports (inset-inline-start: 0){:host .picker-after{inset-inline-start:0}}@supports not (inset-inline-start: 0){:host .picker-after{left:0}:host-context([dir=rtl]) .picker-after{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){:host(:dir(rtl)) .picker-after{left:unset;right:unset;right:0}}}:host .picker-highlight{border-radius:8px;left:0;right:0;top:50%;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0;position:absolute;width:calc(100% - 16px);height:34px;-webkit-transform:translateY(-50%);transform:translateY(-50%);background:var(--wheel-highlight-background);z-index:-1}:host input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}:host ::slotted(ion-picker-column-internal:first-of-type){text-align:start}:host ::slotted(ion-picker-column-internal:last-of-type){text-align:end}:host ::slotted(ion-picker-column-internal:only-child){text-align:center}:host .picker-before{background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, rgba(var(--wheel-fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), color-stop(90%, rgba(var(--wheel-fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0)));background:linear-gradient(to bottom, rgba(var(--wheel-fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 20%, rgba(var(--wheel-fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0) 90%)}:host .picker-after{background:-webkit-gradient(linear, left bottom, left top, color-stop(30%, rgba(var(--wheel-fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), color-stop(90%, rgba(var(--wheel-fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0)));background:linear-gradient(to top, rgba(var(--wheel-fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 30%, rgba(var(--wheel-fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0) 90%)}"};export{a as ion_picker_internal}