@ionic/core 9.0.7-dev.11790871695.14a4111c → 9.0.7-dev.11791305593.188c8151
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/index.js +1 -1
- package/components/ion-action-sheet.js +1 -1
- package/components/ion-alert.js +1 -1
- package/components/ion-app.js +1 -1
- package/components/ion-content.js +1 -1
- package/components/ion-datetime.js +1 -1
- package/components/ion-input-otp.js +1 -1
- package/components/ion-loading.js +1 -1
- package/components/ion-menu-button.js +1 -1
- package/components/ion-menu-toggle.js +1 -1
- package/components/ion-menu.js +1 -1
- package/components/ion-modal.js +1 -1
- package/components/ion-popover.js +1 -1
- package/components/ion-select-modal.js +1 -1
- package/components/ion-select-popover.js +1 -1
- package/components/ion-select.js +1 -1
- package/components/ion-toast.js +1 -1
- package/components/{p-BinR4_P7.js → p-4QPSgC9s.js} +1 -1
- package/components/{p-CiXOsJF2.js → p-BHFF2Rku.js} +1 -1
- package/components/{p-DPyjiKOq.js → p-BRCkmCrc.js} +1 -1
- package/components/p-BsOZAFNI.js +4 -0
- package/components/p-CArDvZQz.js +4 -0
- package/components/{p-PPagT42x.js → p-CB2RQcuo.js} +1 -1
- package/components/p-CKtw0kcb.js +4 -0
- package/components/{p-CvzE7FFp.js → p-CZlKzXag.js} +1 -1
- package/components/p-CgwJ4NuD.js +4 -0
- package/components/{p-CQjNc-Pz.js → p-DjbwrsJd.js} +1 -1
- package/components/p-vg8joG77.js +4 -0
- package/css/core.css.map +1 -1
- package/css/display.css.map +1 -1
- package/css/flex-utils.css.map +1 -1
- package/css/float-elements.css +1 -1
- package/css/float-elements.css.map +1 -1
- package/css/global.bundle.css.map +1 -1
- package/css/ionic.bundle.css +1 -1
- package/css/ionic.bundle.css.map +1 -1
- package/css/padding.css.map +1 -1
- package/css/structure.css.map +1 -1
- package/css/text-alignment.css.map +1 -1
- package/css/text-transformation.css.map +1 -1
- package/css/typography.css.map +1 -1
- package/css/utils.bundle.css +1 -1
- package/css/utils.bundle.css.map +1 -1
- package/dist/cjs/{index-CElfU-dK.js → index-fm08amr6.js} +2 -1
- package/dist/cjs/index.cjs.js +2 -2
- package/dist/cjs/ion-action-sheet.cjs.entry.js +1 -1
- package/dist/cjs/ion-alert.cjs.entry.js +1 -1
- package/dist/cjs/ion-app_8.cjs.entry.js +2 -2
- package/dist/cjs/ion-datetime.cjs.entry.js +1 -1
- package/dist/cjs/ion-input-otp.cjs.entry.js +30 -5
- package/dist/cjs/ion-loading.cjs.entry.js +1 -1
- package/dist/cjs/ion-menu_3.cjs.entry.js +5 -4
- package/dist/cjs/ion-modal.cjs.entry.js +1 -1
- package/dist/cjs/ion-popover.cjs.entry.js +1 -1
- package/dist/cjs/ion-select-modal.cjs.entry.js +1 -1
- package/dist/cjs/ion-select_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-toast.cjs.entry.js +1 -1
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{overlays-C68wNDWY.js → overlays-CEt1Pxnd.js} +75 -16
- package/dist/collection/components/input-otp/input-otp.js +29 -3
- package/dist/collection/components/menu/menu.js +4 -3
- package/dist/collection/utils/hardware-back-button.js +41 -12
- package/dist/collection/utils/menu-controller/index.js +2 -1
- package/dist/collection/utils/overlays.js +30 -4
- package/dist/docs.json +1 -1
- package/dist/esm/{index-B9jhwvmO.js → index-CzPyKjAQ.js} +2 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/ion-action-sheet.entry.js +1 -1
- package/dist/esm/ion-alert.entry.js +1 -1
- package/dist/esm/ion-app_8.entry.js +2 -2
- package/dist/esm/ion-datetime.entry.js +1 -1
- package/dist/esm/ion-input-otp.entry.js +30 -5
- package/dist/esm/ion-loading.entry.js +1 -1
- package/dist/esm/ion-menu_3.entry.js +5 -4
- package/dist/esm/ion-modal.entry.js +1 -1
- package/dist/esm/ion-popover.entry.js +1 -1
- package/dist/esm/ion-select-modal.entry.js +1 -1
- package/dist/esm/ion-select_3.entry.js +1 -1
- package/dist/esm/ion-toast.entry.js +1 -1
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{overlays-BQnV0HAU.js → overlays-D5W_ly69.js} +74 -17
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-3a5faaa8.entry.js → p-0111c108.entry.js} +1 -1
- package/dist/ionic/{p-636349e2.entry.js → p-22160ced.entry.js} +1 -1
- package/dist/ionic/{p-24b0a961.entry.js → p-5112a8ba.entry.js} +1 -1
- package/dist/ionic/{p-f9057f70.entry.js → p-5edc856b.entry.js} +1 -1
- package/dist/ionic/{p-3bd7e5df.entry.js → p-8a00d904.entry.js} +1 -1
- package/dist/ionic/p-C036rEeA.js +4 -0
- package/dist/ionic/p-OJpZr8fg.js +4 -0
- package/dist/ionic/p-b3346b86.entry.js +4 -0
- package/dist/ionic/{p-efa00ce5.entry.js → p-b798b4ec.entry.js} +1 -1
- package/dist/ionic/{p-30dcf43b.entry.js → p-d0451c11.entry.js} +1 -1
- package/dist/ionic/{p-76309bab.entry.js → p-e063a7bf.entry.js} +1 -1
- package/dist/ionic/p-f5dfb3a0.entry.js +4 -0
- package/dist/ionic/{p-b1164028.entry.js → p-ff664022.entry.js} +1 -1
- package/dist/ionic/{p-7441ed2b.entry.js → p-ffd45970.entry.js} +1 -1
- package/dist/types/components/input-otp/input-otp.d.ts +7 -0
- package/dist/types/utils/config.d.ts +4 -1
- package/dist/types/utils/hardware-back-button.d.ts +11 -0
- package/dist/types/utils/overlays.d.ts +5 -2
- package/hydrate/index.js +43 -10
- package/hydrate/index.mjs +43 -10
- package/package.json +1 -1
- package/components/p-BNnmwjuy.js +0 -4
- package/components/p-BsLM9eQu.js +0 -4
- package/components/p-DGLuPe1e.js +0 -4
- package/components/p-WMQuK_Tj.js +0 -4
- package/components/p-q2WJ5Igc.js +0 -4
- package/dist/ionic/p-83448626.entry.js +0 -4
- package/dist/ionic/p-Ba6ZV-qU.js +0 -4
- package/dist/ionic/p-DZUqAr_6.js +0 -4
- package/dist/ionic/p-edcb63e5.entry.js +0 -4
package/dist/ionic/p-DZUqAr_6.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
-
*/
|
|
4
|
-
import{w as t,p as n,c as e,g as o,n as i,f as a,m as s}from"./p-B4xjg_Qu.js";import{i as r,c as d,a as c}from"./p-D9OR05yj.js";import{b as l}from"./p-CrAPHbJ3.js";import{C as u}from"./p-B4ELlbJE.js";import{B as m}from"./p-B_gJaBk0.js";const p=()=>r.get("experimentalCloseWatcher",!1)&&void 0!==t&&"CloseWatcher"in t,f=99;var h=Object.freeze({__proto__:null,MENU_BACK_BUTTON_PRIORITY:99,OVERLAY_BACK_BUTTON_PRIORITY:100,blockHardwareBackButton:()=>{document.addEventListener("backbutton",(()=>{}))},shouldUseCloseWatcher:p,startHardwareBackButton:()=>{const n=document;let e=!1;const o=()=>{if(e)return;let t=0,o=[];const i=new CustomEvent("ionBackButton",{bubbles:!1,detail:{register(n,e){o.push({priority:n,handler:e,id:t++})}}});n.dispatchEvent(i);const a=()=>{if(o.length>0){let t={priority:Number.MIN_SAFE_INTEGER,handler:()=>{},id:-1};o.forEach((n=>{n.priority>=t.priority&&(t=n)})),e=!0,o=o.filter((n=>n.id!==t.id)),(async t=>{try{if(t?.handler){const n=t.handler(a);null!=n&&await n}}catch(t){d("[ion-app] - Exception in startHardwareBackButton:",t)}})(t).then((()=>e=!1))}};a()};if(p()){let n;const e=()=>{n?.destroy(),n=new t.CloseWatcher,n.onclose=()=>{o(),e()}};e()}else n.addEventListener("backbutton",o)}});const b='[tabindex]:not([tabindex^="-"]):not([hidden]):not([disabled]), input:not([type=hidden]):not([tabindex^="-"]):not([hidden]):not([disabled]), textarea:not([tabindex^="-"]):not([hidden]):not([disabled]), button:not([tabindex^="-"]):not([hidden]):not([disabled]), select:not([tabindex^="-"]):not([hidden]):not([disabled]), ion-checkbox:not([tabindex^="-"]):not([hidden]):not([disabled]), ion-radio:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable[disabled="false"]:not([tabindex^="-"]):not([hidden])',v=(t,n)=>{const e=t.querySelector(b);y(e,n??t)},w=(t,n)=>{const e=Array.from(t.querySelectorAll(b));y(e.length>0?e[e.length-1]:null,n??t)},y=(t,e)=>{let o=t;const i=t?.shadowRoot;if(i&&(o=i.querySelector(b)||t),o){const t=o.closest("ion-radio-group");t?t.setFocus():n(o)}else e.focus()};let g=0,k=0;const x=new WeakMap,B=t=>"ION-TOAST"!==t.tagName&&!1!==t.focusTrap&&(t=>!1!==t.showBackdrop&&!((t.backdropBreakpoint??0)>0))(t),O=t=>({create:n=>P(t,n),dismiss:(n,e,o)=>M(document,n,e,t,o),getTop:async()=>H(document,t)}),T=O("ion-alert"),C=O("ion-action-sheet"),_=O("ion-loading"),A=O("ion-modal"),j=O("ion-popover"),I=O("ion-toast"),E=t=>{"undefined"!=typeof document&&R(document);const n=g++;t.overlayIndex=n},N=t=>(t.hasAttribute("id")||(t.id="ion-overlay-"+ ++k),t.id),P=(t,n)=>"undefined"!=typeof window&&void 0!==window.customElements?window.customElements.whenDefined(t).then((()=>{const o=document.createElement(t);return o.classList.add("overlay-hidden"),Object.assign(o,{...n,hasController:!0}),G(document).appendChild(o),new Promise((t=>e(o,t)))})):Promise.resolve(),D=(t,e)=>{let o=t;const i=t?.shadowRoot;i&&(o=i.querySelector(b)||t),o?n(o):e.focus()},R=t=>{0===g&&(g=1,t.addEventListener("focus",(n=>{((t,n)=>{const e=H(n,"ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover"),i=t.target;e&&i&&(e.classList.contains(dt)||(e.shadowRoot?(()=>{if(e.contains(i))e.lastFocus=i;else if("ION-TOAST"===i.tagName)D(e.lastFocus,e);else{const t=e.lastFocus;v(e),t===n.activeElement&&w(e),e.lastFocus=n.activeElement}})():(()=>{if(e===i)e.lastFocus=void 0;else if("ION-TOAST"===i.tagName)D(e.lastFocus,e);else{const t=o(e);if(!t.contains(i))return;const a=t.querySelector(".ion-overlay-wrapper");if(!a)return;if(a.contains(i)||i===t.querySelector("ion-backdrop"))e.lastFocus=i;else{const t=e.lastFocus;v(a,e),t===n.activeElement&&w(a,e),e.lastFocus=n.activeElement}}})()))})(n,t)}),!0),t.addEventListener("ionBackButton",(n=>{const e=H(t);e?.backdropDismiss&&n.detail.register(100,(()=>{e.dismiss(void 0,ot)}))})),p()||t.addEventListener("keydown",(n=>{if("Escape"===n.key){const n=H(t);n?.backdropDismiss&&n.dismiss(void 0,ot)}})))},M=(t,n,e,o,i)=>{const a=H(t,o,i);return a?a.dismiss(n,e):Promise.reject("overlay does not exist")},S=(t,n)=>((t,n)=>(void 0===n&&(n="ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover,ion-toast"),Array.from(t.querySelectorAll(n)).filter((t=>t.overlayIndex>0))))(t,n).filter((t=>!t.classList.contains("overlay-hidden"))),H=(t,n,e)=>{const o=S(t,n);return(void 0===e?o:o.filter((t=>t.id===e))).slice(-1)[0]},L=()=>G(document).querySelector("ion-router-outlet, #ion-view-container-root"),U=(t=!1)=>{const n=L();n&&(t?n.setAttribute("aria-hidden","true"):n.removeAttribute("aria-hidden"))},W=()=>{"undefined"!=typeof document&&(S(document).some((t=>B(t)))||(U(!1),document.body.classList.remove(m)))},J=t=>{L()?.contains(t)||U(!0),document.body.classList.add(m)},V=t=>{if("undefined"==typeof document)return;const n=t;B(n)&&J(n)},Y=async(t,n,e,i,a)=>{if(t.presented)return;"ION-TOAST"!==t.el.tagName&&$(t.el);const s=t.el,d=B(s);t.presented=!0,t.willPresent.emit(),d&&J(s),t.willPresentShorthand?.emit();const c=l(t),u=t.enterAnimation?t.enterAnimation:r.get(n,"ios"===c?e:i);if(await K(t,u,t.el,a)&&(t.didPresent.emit(),t.didPresentShorthand?.emit()),t.keyboardClose&&(null===document.activeElement||!t.el.contains(document.activeElement))){const n=o(t.el).querySelector('[role="dialog"][tabindex]')??t.el;try{n.focus({preventScroll:!0})}catch{n.focus()}}t.el.removeAttribute("aria-hidden"),t.el.removeAttribute("inert")},$=async t=>{let n=document.activeElement;if(!n)return;n.blur();const e=n?.shadowRoot;e&&(n=e.querySelector(b)||n),await t.onDidDismiss(),null!==document.activeElement&&document.activeElement!==document.body||n.focus()},F=async(t,n,e,o,a,s,c)=>{if(!t.presented)return!1;const u=(void 0!==i?S(i):[]).filter((t=>B(t))),p=t.el;B(p)&&1===u.length&&u[0].id===p.id&&(U(!1),document.body.classList.remove(m)),t.presented=!1;try{t.el.style.setProperty("pointer-events","none"),t.willDismiss.emit({data:n,role:e}),t.willDismissShorthand?.emit({data:n,role:e});const i=l(t),d=t.leaveAnimation?t.leaveAnimation:r.get(o,"ios"===i?a:s);e!==it&&await K(t,d,t.el,c),t.didDismiss.emit({data:n,role:e}),t.didDismissShorthand?.emit({data:n,role:e}),(x.get(t)||[]).forEach((t=>t.destroy())),x.delete(t),t.el.classList.add("overlay-hidden"),t.el.style.removeProperty("pointer-events"),void 0!==t.el.lastFocus&&(t.el.lastFocus=void 0)}catch(n){d(`[${t.el.tagName.toLowerCase()}] - `,n)}return t.el.remove(),!0},G=t=>t.querySelector("ion-app")||t.body,K=async(t,n,e,o)=>{e.classList.remove("overlay-hidden");const i=n(t.el,o);t.animated&&r.getBoolean("animated",!0)||i.duration(0),t.keyboardClose&&i.beforeAddWrite((()=>{const t=e.ownerDocument.activeElement;t?.matches("input,ion-input, ion-textarea")&&t.blur()}));const a=x.get(t)||[];return x.set(t,[...a,i]),await i.play(),!0},q=(t,n)=>{let e;const o=new Promise((t=>e=t));return z(t,n,(t=>{e(t.detail)})),o},z=(t,n,e)=>{const o=i=>{s(t,n,o),e(i)};a(t,n,o)},Q=t=>"cancel"===t||t===ot,X=t=>t(),Z=(t,n)=>{if("function"==typeof t)return r.get("_zoneGate",X)((()=>{try{return t(n)}catch(t){throw t}}))},tt=["","100%","100vw","100vh","100dvw","100dvh","100svw","100svh"],nt=["auto","fit-content","min-content","max-content"],et=t=>{const n=t.trim().toLowerCase();return tt.includes(n)?"fullscreen":nt.some((t=>n.endsWith(t)))?"content":"definite"},ot="backdrop",it="gesture",at=39,st=t=>{let n,e=!1;const o=u(),i=(i=!1)=>{if(n&&!i)return{delegate:n,inline:e};const{el:a,hasController:s,delegate:r}=t;return e=null!==a.parentNode&&!s,n=e?r||o:r,{inline:e,delegate:n}};return{attachViewToDom:async n=>{const{delegate:e}=i(!0);if(e)return await e.attachViewToDom(t.el,n);const{hasController:o}=t;if(o&&void 0!==n)throw new Error("framework delegate is missing");return null},removeViewFromDom:()=>{const{delegate:n}=i();n&&void 0!==t.el&&n.removeViewFromDom(t.el.parentElement,t.el)}}},rt=()=>{let t;const n=()=>{t&&(t(),t=void 0)};return{addClickListener:(e,o)=>{n();const i=void 0!==o?document.getElementById(o):null;i?t=((t,n)=>{const e=()=>{n.present()};return t.addEventListener("click",e),()=>{t.removeEventListener("click",e)}})(i,e):c(`[${e.tagName.toLowerCase()}] - A trigger element with the ID "${o}" was not found in the DOM. The trigger element must be in the DOM when the "trigger" property is set on an overlay component.`,e)},removeClickListener:n}},dt="ion-disable-focus-trap";export{ot as B,dt as F,it as G,f as M,at as O,T as a,C as b,st as c,rt as d,Y as e,F as f,q as g,E as h,Q as i,W as j,N as k,_ as l,A as m,et as n,v as o,j as p,H as q,V as r,Z as s,I as t,w as u,p as v,h as w}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
-
*/
|
|
4
|
-
import{r as i,d as o,a as t,h as n,F as s,f as r,g as p}from"./p-D9OR05yj.js";import{i as e}from"./p-B4xjg_Qu.js";import{i as a}from"./p-Dojwmvde.js";import{c as l}from"./p-byZM6qHV.js";import{b as d}from"./p-CrAPHbJ3.js";const c=class{constructor(t){i(this,t),this.ionInput=o(this,"ionInput",7),this.ionChange=o(this,"ionChange",7),this.ionComplete=o(this,"ionComplete",7),this.ionBlur=o(this,"ionBlur",7),this.ionFocus=o(this,"ionFocus",7),this.inheritedAttributes={},this.inputRefs=[],this.inputId="ion-input-otp-"+u++,this.parsedSeparators=[],this.isKeyboardNavigation=!1,this.inputValues=[],this.hasFocus=!1,this.previousInputValues=[],this.autocapitalize="off",this.disabled=!1,this.fill="outline",this.length=4,this.readonly=!1,this.shape="round",this.size="medium",this.type="number",this.value="",this.onFocus=i=>o=>{const{inputRefs:t}=this;this.hasFocus||(this.ionFocus.emit(o),this.focusedValue=this.value),this.hasFocus=!0;let n=i;if(!this.isKeyboardNavigation){const o=this.inputValues[i]?i:this.getFirstEmptyIndex();n=-1===o?this.length-1:o,this.inputRefs[n]?.focus()}t.forEach(((i,o)=>{i.tabIndex=o===n?0:-1})),this.isKeyboardNavigation=!1},this.onBlur=i=>{const{inputRefs:o}=this,t=i.relatedTarget;null!=t&&o.includes(t)||(this.hasFocus=!1,this.updateTabIndexes(),this.ionBlur.emit(i),this.focusedValue!==this.value&&this.emitIonChange(i))},this.onKeyDown=i=>o=>{const{disabled:t,length:n,readonly:s}=this,r=a(this.el),p=o.target;if(!t)if(!s||"Backspace"!==o.key&&"Delete"!==o.key){if(!(p.selectionStart!==p.selectionEnd||(o.metaKey||o.ctrlKey)&&["a","c","v","x","r","z","y"].includes(o.key.toLowerCase())))if("Backspace"===o.key)if(this.inputValues[i]){for(let o=i;o<n-1;o++)this.inputValues[o]=this.inputValues[o+1];this.inputValues[n-1]="";for(let i=0;i<n;i++)this.inputRefs[i].value=this.inputValues[i]||"";this.updateValue(o),o.preventDefault()}else!this.inputValues[i]&&i>0&&this.focusPrevious(i);else if("ArrowLeft"===o.key||"ArrowRight"===o.key){this.isKeyboardNavigation=!0,o.preventDefault();const t="ArrowLeft"===o.key;t&&r||!t&&!r?this.inputValues[i]&&i<n-1&&this.focusNext(i):this.focusPrevious(i)}else if("Tab"===o.key)return void(this.isKeyboardNavigation=!0)}else o.preventDefault()},this.onInput=i=>o=>{const{disabled:t,length:n,readonly:s,validKeyPattern:r}=this,p=o.target,e=p.value,a=this.previousInputValues[i]||"";if(t||s)return;if(e.length-a.length>1){const i=e.split("").filter((i=>r.test(i))).slice(0,n);0===i.length&&requestAnimationFrame((()=>{this.inputRefs.forEach((i=>{i.value=""}))}));for(let o=0;o<n;o++)this.inputValues[o]=i[o]||"",this.inputRefs[o].value=i[o]||"";return this.updateValue(o),setTimeout((()=>{const o=i.length<n?i.length:n-1;this.inputRefs[o]?.focus()}),20),void(this.previousInputValues=[...this.inputValues])}if(e.length>0&&!r.test(e[e.length-1]))return p.value=this.inputValues[i]||"",void(this.previousInputValues=[...this.inputValues]);if(0===p.selectionStart&&p.selectionEnd===e.length||!this.inputValues[i])return this.inputValues[i]=e,p.value=e,this.updateValue(o),this.focusNext(i),void(this.previousInputValues=[...this.inputValues]);if(this.inputValues[i]&&""===this.inputValues[this.inputValues.length-1]&&2===e.length){let t=o.data;if(t||(t=e.split("").find(((i,o)=>i!==a[o]))||e[e.length-1]),!r.test(t))return p.value=this.inputValues[i]||"",void(this.previousInputValues=[...this.inputValues]);for(let o=this.inputValues.length-1;o>i;o--)this.inputValues[o]=this.inputValues[o-1],this.inputRefs[o].value=this.inputValues[o]||"";return this.inputValues[i]=t,this.inputRefs[i].value=t,this.updateValue(o),void(this.previousInputValues=[...this.inputValues])}const l=e[(p.selectionStart??e.length)-1]??e[0];if(!r.test(l))return p.value=this.inputValues[i]||"",void(this.previousInputValues=[...this.inputValues]);this.inputValues[i]=l,p.value=l,this.updateValue(o),this.previousInputValues=[...this.inputValues]},this.onPaste=i=>{const{disabled:o,inputRefs:t,length:n,readonly:s,validKeyPattern:r}=this;if(i.preventDefault(),o||s)return;const p=i.clipboardData?.getData("text");if(!p)return void this.emitIonInput(i);const e=p.split("").filter((i=>r.test(i))).slice(0,n);e.forEach(((i,o)=>{o<n&&(this.inputRefs[o].value=i,this.inputValues[o]=i)})),this.value=e.join(""),this.updateValue(i);const a=e.length<n?e.length:n-1;t[a]?.focus()}}async setFocus(i){if("number"==typeof i){const o=Math.max(0,Math.min(i,this.length-1));this.inputRefs[o]?.focus()}else{const i=this.getTabbableIndex();this.inputRefs[i]?.focus()}}valueChanged(){this.initializeValues(),this.updateTabIndexes()}processSeparators(){const{separators:i,length:o}=this;if(void 0===i)return void(this.parsedSeparators=[]);if("string"==typeof i&&"all"!==i&&!/^(\d+)(,\d+)*$/.test(i))return t(`[ion-input-otp] - Invalid separators format. Expected a comma-separated list of numbers, an array of numbers, or "all". Received: ${i}`,this.el),void(this.parsedSeparators=[]);let n;n="all"===i?Array.from({length:o-1},((i,o)=>o+1)):Array.isArray(i)?i:i.split(",").map((i=>parseInt(i,10))).filter((i=>!isNaN(i))),n.filter(((i,o)=>n.indexOf(i)!==o)).length>0&&t(`[ion-input-otp] - Duplicate separator positions are not allowed. Received: ${i}`,this.el);const s=n.filter((i=>i>o));s.length>0&&t(`[ion-input-otp] - The following separator positions are greater than the input length (${o}): ${s.join(", ")}. These separators will be ignored.`,this.el),this.parsedSeparators=n.filter((i=>i<=o))}componentWillLoad(){this.inheritedAttributes=e(this.el),this.processSeparators(),this.initializeValues()}componentDidLoad(){this.updateTabIndexes()}get validKeyPattern(){return new RegExp(`^${this.getPattern()}$`,"u")}getPattern(){const{pattern:i,type:o}=this;return i||("number"===o?"[\\p{N}]":"[\\p{L}\\p{N}]")}getInputmode(){const{inputmode:i}=this;return i||("number"==this.type?"numeric":"text")}initializeValues(){this.inputValues=Array(this.length).fill(""),null!=this.value&&0!==String(this.value).length&&(String(this.value).split("").slice(0,this.length).forEach(((i,o)=>{this.validKeyPattern.test(i)&&(this.inputValues[o]=i)})),this.value=this.inputValues.join(""),this.previousInputValues=[...this.inputValues])}updateValue(i){const{inputValues:o,length:t}=this,n=o.join("");this.value=n,this.emitIonInput(i),n.length===t&&this.ionComplete.emit({value:n})}emitIonChange(i){const{value:o}=this,t=null==o?o:o.toString();this.ionChange.emit({value:t,event:i})}emitIonInput(i){const{value:o}=this,t=null==o?o:o.toString();this.ionInput.emit({value:t,event:i})}focusNext(i){const{inputRefs:o,length:t}=this;i<t-1&&o[i+1]?.focus()}focusPrevious(i){const{inputRefs:o}=this;i>0&&o[i-1]?.focus()}getFirstEmptyIndex(){const{inputValues:i,length:o}=this;return Array.from({length:o},((o,t)=>i[t]||"")).findIndex((i=>!i||""===i))??-1}getTabbableIndex(){const{length:i}=this,o=this.getFirstEmptyIndex();return-1===o?i-1:o}updateTabIndexes(){const{inputRefs:i,inputValues:o,length:t}=this;let n=-1;for(let i=0;i<t;i++)if(!o[i]||""===o[i]){n=i;break}i.forEach(((i,s)=>{const r=-1===n?s===t-1:n===s;i.tabIndex=r?0:-1,i.setAttribute("aria-hidden",o[s]&&""!==o[s]||r?"false":"true")}))}showSeparator(i){const{length:o}=this;return this.parsedSeparators.includes(i+1)&&i<o-1}render(){const{autocapitalize:i,color:o,disabled:t,el:p,fill:e,hasFocus:a,inheritedAttributes:c,inputId:u,inputRefs:h,inputValues:g,length:v,readonly:f,shape:m,size:b}=this,x=d(this),w=this.getInputmode(),k=this.getTabbableIndex(),y=this.getPattern(),z=""!==p.querySelector(".input-otp-description")?.textContent?.trim();return n(r,{key:"bd37661e13cde21feff30c663e6813ce3fff0d9a",class:l(o,{[x]:!0,"has-focus":a,[`input-otp-size-${b}`]:!0,[`input-otp-shape-${m}`]:!0,[`input-otp-fill-${e}`]:!0,"input-otp-disabled":t,"input-otp-readonly":f})},n("div",{key:"5e206f870024f1ecfebda999ff31e6e815774deb",role:"group","aria-label":"One-time password input",class:"input-otp-group",...c},Array.from({length:v}).map(((o,r)=>n(s,null,n("div",{class:"native-wrapper"},n("input",{class:"native-input",id:`${u}-${r}`,"aria-label":`Input ${r+1} of ${v}`,type:"text",autoCapitalize:i,inputmode:w,pattern:y,disabled:t,readOnly:f,tabIndex:r===k?0:-1,value:g[r]||"",autocomplete:"one-time-code",ref:i=>h[r]=i,onInput:this.onInput(r),onBlur:this.onBlur,onFocus:this.onFocus(r),onKeyDown:this.onKeyDown(r),onPaste:this.onPaste})),this.showSeparator(r)&&n("div",{class:"input-otp-separator"}))))),n("div",{key:"c268f838ddab2c8d6a612a11c7d38e6ca076436d",class:{"input-otp-description":!0,"input-otp-description-hidden":!z}},n("slot",{key:"c0736359b26f609b795e399fc1ad9b540632af18"})))}get el(){return p(this)}static get watchers(){return{value:[{valueChanged:0}],separators:[{processSeparators:0}],length:[{processSeparators:0}]}}};let u=0;c.style={ios:".sc-ion-input-otp-ios-h{--margin-top:0;--margin-end:0;--margin-bottom:0;--margin-start:0;--padding-top:16px;--padding-end:0;--padding-bottom:16px;--padding-start:0;--color:initial;--min-width:40px;--separator-width:8px;--separator-height:var(--separator-width);--separator-border-radius:999px;--separator-color:var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);--highlight-color:var(--highlight-color-focused);display:block;position:relative;font-size:0.875rem}.input-otp-group.sc-ion-input-otp-ios{-webkit-margin-start:var(--margin-start);margin-inline-start:var(--margin-start);-webkit-margin-end:var(--margin-end);margin-inline-end:var(--margin-end);margin-top:var(--margin-top);margin-bottom:var(--margin-bottom);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.native-wrapper.sc-ion-input-otp-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:var(--min-width)}.native-input.sc-ion-input-otp-ios{border-radius:var(--border-radius);width:var(--width);min-width:inherit;height:var(--height);border-width:var(--border-width);border-style:solid;border-color:var(--border-color);background:var(--background);color:var(--color);font-size:inherit;text-align:center;-webkit-appearance:none;-moz-appearance:none;appearance:none}.has-focus.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios{caret-color:var(--highlight-color)}.input-otp-description.sc-ion-input-otp-ios{color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem;line-height:1.25rem;text-align:center}.input-otp-description-hidden.sc-ion-input-otp-ios{display:none}.input-otp-separator.sc-ion-input-otp-ios{border-radius:var(--separator-border-radius);-ms-flex-negative:0;flex-shrink:0;width:var(--separator-width);height:var(--separator-height);background:var(--separator-color)}.input-otp-size-small.sc-ion-input-otp-ios-h{--width:40px;--height:40px}.input-otp-size-small.sc-ion-input-otp-ios-h .input-otp-group.sc-ion-input-otp-ios{gap:8px}.input-otp-size-medium.sc-ion-input-otp-ios-h{--width:48px;--height:48px}.input-otp-size-large.sc-ion-input-otp-ios-h{--width:56px;--height:56px}.input-otp-size-medium.sc-ion-input-otp-ios-h .input-otp-group.sc-ion-input-otp-ios,.input-otp-size-large.sc-ion-input-otp-ios-h .input-otp-group.sc-ion-input-otp-ios{gap:12px}.input-otp-shape-round.sc-ion-input-otp-ios-h{--border-radius:16px}.input-otp-shape-soft.sc-ion-input-otp-ios-h{--border-radius:8px}.input-otp-shape-rectangular.sc-ion-input-otp-ios-h{--border-radius:0}.input-otp-fill-outline.sc-ion-input-otp-ios-h{--background:none}.input-otp-fill-solid.sc-ion-input-otp-ios-h{--border-color:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2));--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2))}.input-otp-disabled.sc-ion-input-otp-ios-h{--color:var(--ion-color-step-350, var(--ion-text-color-step-650, #a6a6a6))}.input-otp-fill-outline.input-otp-disabled.sc-ion-input-otp-ios-h{--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2));--border-color:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.input-otp-disabled.sc-ion-input-otp-ios-h,.input-otp-disabled.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios:disabled{cursor:not-allowed}.has-focus.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios:focus{--border-color:var(--highlight-color);outline:none}.input-otp-fill-outline.input-otp-readonly.sc-ion-input-otp-ios-h{--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2))}.input-otp-fill-solid.input-otp-disabled.sc-ion-input-otp-ios-h,.input-otp-fill-solid.input-otp-readonly.sc-ion-input-otp-ios-h{--border-color:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6));--background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.ion-touched.ion-invalid.sc-ion-input-otp-ios-h{--highlight-color:var(--highlight-color-invalid)}.ion-valid.sc-ion-input-otp-ios-h{--highlight-color:var(--highlight-color-valid)}.has-focus.ion-valid.sc-ion-input-otp-ios-h,.ion-touched.ion-invalid.sc-ion-input-otp-ios-h{--border-color:var(--highlight-color)}.ion-color.sc-ion-input-otp-ios-h{--highlight-color-focused:var(--ion-color-base)}.input-otp-fill-outline.ion-color.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios,.input-otp-fill-solid.ion-color.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios:focus{border-color:rgba(var(--ion-color-base-rgb), 0.6)}.input-otp-fill-outline.ion-color.ion-invalid.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios,.input-otp-fill-solid.ion-color.ion-invalid.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios,.input-otp-fill-outline.ion-color.has-focus.ion-invalid.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios,.input-otp-fill-solid.ion-color.has-focus.ion-invalid.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios{border-color:var(--ion-color-danger, #c5000f)}.input-otp-fill-outline.ion-color.ion-valid.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios,.input-otp-fill-solid.ion-color.ion-valid.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios,.input-otp-fill-outline.ion-color.has-focus.ion-valid.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios,.input-otp-fill-solid.ion-color.has-focus.ion-valid.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios{border-color:var(--ion-color-success, #2dd55b)}.input-otp-fill-outline.input-otp-disabled.ion-color.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios{border-color:rgba(var(--ion-color-base-rgb), 0.3)}.sc-ion-input-otp-ios-h{--border-width:0.55px}.has-focus.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios:focus{--border-width:1px}.input-otp-fill-outline.sc-ion-input-otp-ios-h{--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))))}",md:".sc-ion-input-otp-md-h{--margin-top:0;--margin-end:0;--margin-bottom:0;--margin-start:0;--padding-top:16px;--padding-end:0;--padding-bottom:16px;--padding-start:0;--color:initial;--min-width:40px;--separator-width:8px;--separator-height:var(--separator-width);--separator-border-radius:999px;--separator-color:var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);--highlight-color:var(--highlight-color-focused);display:block;position:relative;font-size:0.875rem}.input-otp-group.sc-ion-input-otp-md{-webkit-margin-start:var(--margin-start);margin-inline-start:var(--margin-start);-webkit-margin-end:var(--margin-end);margin-inline-end:var(--margin-end);margin-top:var(--margin-top);margin-bottom:var(--margin-bottom);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.native-wrapper.sc-ion-input-otp-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:var(--min-width)}.native-input.sc-ion-input-otp-md{border-radius:var(--border-radius);width:var(--width);min-width:inherit;height:var(--height);border-width:var(--border-width);border-style:solid;border-color:var(--border-color);background:var(--background);color:var(--color);font-size:inherit;text-align:center;-webkit-appearance:none;-moz-appearance:none;appearance:none}.has-focus.sc-ion-input-otp-md-h .native-input.sc-ion-input-otp-md{caret-color:var(--highlight-color)}.input-otp-description.sc-ion-input-otp-md{color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem;line-height:1.25rem;text-align:center}.input-otp-description-hidden.sc-ion-input-otp-md{display:none}.input-otp-separator.sc-ion-input-otp-md{border-radius:var(--separator-border-radius);-ms-flex-negative:0;flex-shrink:0;width:var(--separator-width);height:var(--separator-height);background:var(--separator-color)}.input-otp-size-small.sc-ion-input-otp-md-h{--width:40px;--height:40px}.input-otp-size-small.sc-ion-input-otp-md-h .input-otp-group.sc-ion-input-otp-md{gap:8px}.input-otp-size-medium.sc-ion-input-otp-md-h{--width:48px;--height:48px}.input-otp-size-large.sc-ion-input-otp-md-h{--width:56px;--height:56px}.input-otp-size-medium.sc-ion-input-otp-md-h .input-otp-group.sc-ion-input-otp-md,.input-otp-size-large.sc-ion-input-otp-md-h .input-otp-group.sc-ion-input-otp-md{gap:12px}.input-otp-shape-round.sc-ion-input-otp-md-h{--border-radius:16px}.input-otp-shape-soft.sc-ion-input-otp-md-h{--border-radius:8px}.input-otp-shape-rectangular.sc-ion-input-otp-md-h{--border-radius:0}.input-otp-fill-outline.sc-ion-input-otp-md-h{--background:none}.input-otp-fill-solid.sc-ion-input-otp-md-h{--border-color:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2));--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2))}.input-otp-disabled.sc-ion-input-otp-md-h{--color:var(--ion-color-step-350, var(--ion-text-color-step-650, #a6a6a6))}.input-otp-fill-outline.input-otp-disabled.sc-ion-input-otp-md-h{--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2));--border-color:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.input-otp-disabled.sc-ion-input-otp-md-h,.input-otp-disabled.sc-ion-input-otp-md-h .native-input.sc-ion-input-otp-md:disabled{cursor:not-allowed}.has-focus.sc-ion-input-otp-md-h .native-input.sc-ion-input-otp-md:focus{--border-color:var(--highlight-color);outline:none}.input-otp-fill-outline.input-otp-readonly.sc-ion-input-otp-md-h{--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2))}.input-otp-fill-solid.input-otp-disabled.sc-ion-input-otp-md-h,.input-otp-fill-solid.input-otp-readonly.sc-ion-input-otp-md-h{--border-color:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6));--background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.ion-touched.ion-invalid.sc-ion-input-otp-md-h{--highlight-color:var(--highlight-color-invalid)}.ion-valid.sc-ion-input-otp-md-h{--highlight-color:var(--highlight-color-valid)}.has-focus.ion-valid.sc-ion-input-otp-md-h,.ion-touched.ion-invalid.sc-ion-input-otp-md-h{--border-color:var(--highlight-color)}.ion-color.sc-ion-input-otp-md-h{--highlight-color-focused:var(--ion-color-base)}.input-otp-fill-outline.ion-color.sc-ion-input-otp-md-h .native-input.sc-ion-input-otp-md,.input-otp-fill-solid.ion-color.sc-ion-input-otp-md-h .native-input.sc-ion-input-otp-md:focus{border-color:rgba(var(--ion-color-base-rgb), 0.6)}.input-otp-fill-outline.ion-color.ion-invalid.sc-ion-input-otp-md-h .native-input.sc-ion-input-otp-md,.input-otp-fill-solid.ion-color.ion-invalid.sc-ion-input-otp-md-h .native-input.sc-ion-input-otp-md,.input-otp-fill-outline.ion-color.has-focus.ion-invalid.sc-ion-input-otp-md-h .native-input.sc-ion-input-otp-md,.input-otp-fill-solid.ion-color.has-focus.ion-invalid.sc-ion-input-otp-md-h .native-input.sc-ion-input-otp-md{border-color:var(--ion-color-danger, #c5000f)}.input-otp-fill-outline.ion-color.ion-valid.sc-ion-input-otp-md-h .native-input.sc-ion-input-otp-md,.input-otp-fill-solid.ion-color.ion-valid.sc-ion-input-otp-md-h .native-input.sc-ion-input-otp-md,.input-otp-fill-outline.ion-color.has-focus.ion-valid.sc-ion-input-otp-md-h .native-input.sc-ion-input-otp-md,.input-otp-fill-solid.ion-color.has-focus.ion-valid.sc-ion-input-otp-md-h .native-input.sc-ion-input-otp-md{border-color:var(--ion-color-success, #2dd55b)}.input-otp-fill-outline.input-otp-disabled.ion-color.sc-ion-input-otp-md-h .native-input.sc-ion-input-otp-md{border-color:rgba(var(--ion-color-base-rgb), 0.3)}.sc-ion-input-otp-md-h{--border-width:1px}.has-focus.sc-ion-input-otp-md-h .native-input.sc-ion-input-otp-md:focus{--border-width:2px}.input-otp-fill-outline.sc-ion-input-otp-md-h{--border-color:var(--ion-color-step-300, var(--ion-background-color-step-300, #b3b3b3))}"};export{c as ion_input_otp}
|