@ionic/core 8.7.17-dev.11770319814.172b4f50 → 8.7.17-dev.11771359170.1fda0949

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.
@@ -0,0 +1,4 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ import{j as t,f as e,r as i,c as a,w as o,h as n,d as r,g as s}from"./p-C8IsBmNU.js";import{startFocusVisible as d}from"./p-BmVRXR1y.js";import{r as l,g as c,a as h,e as p}from"./p-CTfR9YZG.js";import{F as m,d as b,e as g,B as u,i as f,j as y,k as x,f as k,g as v,h as w,s as j}from"./p-DdR6rpbR.js";import{i as C}from"./p-C53feagD.js";import{c as O,g as P}from"./p-DiVJyqlX.js";import{l as z,o as D,p as $,q as M,c as T}from"./p-DV3sJJW8.js";import{b as A}from"./p-BFvmZNyx.js";import{i as V,a as S,g as I,b as W,c as F,d as E,e as B,v as R,f as L,h as Y,j as q,k as H,l as N,m as G,n as Z,o as _,p as U,q as X,r as J,s as K,w as Q,t as tt,u as et,x as it,y as at,z as ot,A as nt,B as rt,C as st,D as dt,E as lt,F as ct,G as ht,H as pt,I as mt,J as bt,K as gt,L as ut,M as ft,N as yt,O as xt,P as kt,Q as vt,R as wt}from"./p-D0dMcSkw.js";import{c as jt}from"./p-B-hirT0v.js";import{c as Ct}from"./p-DDb5r57F.js";import{a as Ot,h as Pt,b as zt}from"./p-CKvCXMs9.js";import"./p-ZjP4CjeZ.js";import"./p-B0q1YL7N.js";import"./p-D-eFFUkA.js";import"./p-BTEOs1at.js";import"./p-CIGNaXM1.js";const Dt=(t,e,i,a)=>null===t.day||void 0!==a&&!a.includes(t.day)||!(!e||!V(t,e))||!(!i||!S(t,i)),$t=(t,e,i,a,o,n,r)=>{const s=void 0!==(Array.isArray(i)?i:[i]).find((t=>F(e,t))),d=F(e,a);return{disabled:Dt(e,o,n,r),isActive:s,isToday:d,ariaSelected:s?"true":null,ariaLabel:B(t,d,e),text:null!=e.day?E(t,e):null}},Mt=(t,{minParts:e,maxParts:i})=>!!((t,e,i)=>!!(e&&e.year>t)||!!(i&&i.year<t))(t.year,e,i)||!!(e&&V(t,e)||i&&S(t,i)),Tt=(t,i)=>{var a,o,n,r;((null===(a=null==i?void 0:i.date)||void 0===a?void 0:a.timeZone)||(null===(o=null==i?void 0:i.date)||void 0===o?void 0:o.timeZoneName)||(null===(n=null==i?void 0:i.time)||void 0===n?void 0:n.timeZone)||(null===(r=null==i?void 0:i.time)||void 0===r?void 0:r.timeZoneName))&&e('[ion-datetime] - "timeZone" and "timeZoneName" are not supported in "formatOptions".',t)},At=(t,i,a)=>{if(a)switch(i){case"date":case"month-year":case"month":case"year":void 0===a.date&&e(`[ion-datetime] - The '${i}' presentation requires a date object in formatOptions.`,t);break;case"time":void 0===a.time&&e("[ion-datetime] - The 'time' presentation requires a time object in formatOptions.",t);break;case"date-time":case"time-date":void 0===a.date&&void 0===a.time&&e(`[ion-datetime] - The '${i}' presentation requires either a date or time object (or both) in formatOptions.`,t)}},Vt=class{constructor(t){i(this,t),this.ionCancel=a(this,"ionCancel",7),this.ionChange=a(this,"ionChange",7),this.ionValueChange=a(this,"ionValueChange",7),this.ionFocus=a(this,"ionFocus",7),this.ionBlur=a(this,"ionBlur",7),this.ionStyle=a(this,"ionStyle",7),this.ionRender=a(this,"ionRender",7),this.inputId="ion-dt-"+St++,this.prevPresentation=null,this.showMonthAndYear=!1,this.activeParts=[],this.workingParts={month:5,day:28,year:2021,hour:13,minute:52,ampm:"pm",isAdjacentDay:!1},this.isTimePopoverOpen=!1,this.color="primary",this.name=this.inputId,this.disabled=!1,this.readonly=!1,this.showAdjacentDays=!1,this.presentation="date-time",this.cancelText="Cancel",this.doneText="Done",this.clearText="Clear",this.locale="default",this.firstDayOfWeek=0,this.multiple=!1,this.showDefaultTitle=!1,this.showDefaultButtons=!1,this.showClearButton=!1,this.showDefaultTimeLabel=!0,this.size="fixed",this.preferWheel=!1,this.warnIfIncorrectValueUsage=()=>{const{multiple:t,value:i}=this;!t&&Array.isArray(i)&&e(`[ion-datetime] - An array of values was passed, but multiple is "false". This is incorrect usage and may result in unexpected behaviors. To dismiss this warning, pass a string to the "value" property when multiple="false".\n\n Value Passed: [${i.map((t=>`'${t}'`)).join(", ")}]\n`,this.el)},this.setValue=t=>{this.value=t,this.ionChange.emit({value:t})},this.getActivePartsWithFallback=()=>{var t;const{defaultParts:e}=this;return null!==(t=this.getActivePart())&&void 0!==t?t:e},this.getActivePart=()=>{const{activeParts:t}=this;return Array.isArray(t)?t[0]:t},this.closeParentOverlay=t=>{const e=this.el.closest("ion-modal, ion-popover");e&&e.dismiss(void 0,t)},this.setWorkingParts=t=>{this.workingParts=Object.assign({},t)},this.setActiveParts=(t,e=!1)=>{if(this.readonly)return;const{multiple:i,minParts:a,maxParts:o,activeParts:n}=this,r=R(t,a,o);if(this.setWorkingParts(r),i){const t=Array.isArray(n)?n:[n];this.activeParts=e?t.filter((t=>!F(t,r))):[...t,r]}else this.activeParts=Object.assign({},r);null!==this.el.querySelector('[slot="buttons"]')||this.showDefaultButtons||this.confirm()},this.initializeKeyboardListeners=()=>{const t=this.calendarBodyRef;if(!t)return;const e=this.el.shadowRoot,i=t.querySelector(".calendar-month:nth-of-type(2)"),a=new MutationObserver((e=>{var a;!(null===(a=e[0].oldValue)||void 0===a?void 0:a.includes("ion-focused"))&&t.classList.contains("ion-focused")&&this.focusWorkingDay(i)}));a.observe(t,{attributeFilter:["class"],attributeOldValue:!0}),this.destroyKeyboardMO=()=>{null==a||a.disconnect()},t.addEventListener("keydown",(t=>{const a=e.activeElement;if(!a||!a.classList.contains("calendar-day"))return;const o=L(a);let n;switch(t.key){case"ArrowDown":t.preventDefault(),n=U(o);break;case"ArrowUp":t.preventDefault(),n=_(o);break;case"ArrowRight":t.preventDefault(),n=Z(o);break;case"ArrowLeft":t.preventDefault(),n=G(o);break;case"Home":t.preventDefault(),n=N(o);break;case"End":t.preventDefault(),n=H(o);break;case"PageUp":t.preventDefault(),n=t.shiftKey?q(o):I(o);break;case"PageDown":t.preventDefault(),n=t.shiftKey?Y(o):W(o);break;default:return}Dt(n,this.minParts,this.maxParts)||(this.setWorkingParts(Object.assign(Object.assign({},this.workingParts),n)),requestAnimationFrame((()=>this.focusWorkingDay(i))))}))},this.focusWorkingDay=t=>{const{day:e,month:i,year:a}=this.workingParts,o=new Date(`${i}/1/${a}`).getDay();if(null===e)return;const n=t.querySelector(`.calendar-day-wrapper:nth-of-type(${(o>=this.firstDayOfWeek?o-this.firstDayOfWeek:7-(this.firstDayOfWeek-o))+e}) .calendar-day`);n&&n.focus()},this.processMinParts=()=>{const{min:t,defaultParts:e}=this;this.minParts=void 0!==t?X(t,e):void 0},this.processMaxParts=()=>{const{max:t,defaultParts:e}=this;this.maxParts=void 0!==t?J(t,e):void 0},this.initializeCalendarListener=()=>{const t=this.calendarBodyRef;if(!t)return;const e=t.querySelectorAll(".calendar-month"),i=e[0],a=e[1],n=e[2],r="ios"===A(this)&&"undefined"!=typeof navigator&&navigator.maxTouchPoints>1;o((()=>{t.scrollLeft=i.clientWidth*(C(this.el)?-1:1);const e=e=>{const a=t.getBoundingClientRect(),o=(C(this.el)?t.scrollLeft>=-2:t.scrollLeft<=2)?i:n,r=o.getBoundingClientRect();if(Math.abs(r.x-a.x)>2)return;const{forceRenderDate:s}=this;return void 0!==s?{month:s.month,year:s.year,day:s.day}:o===i?I(e):o===n?W(e):void 0},s=()=>{r&&(t.style.removeProperty("pointer-events"),l=!1);const i=e(this.workingParts);if(!i)return;const{month:n,day:s,year:d}=i;Mt({month:n,year:d,day:null},{minParts:Object.assign(Object.assign({},this.minParts),{day:null}),maxParts:Object.assign(Object.assign({},this.maxParts),{day:null})})||(t.style.setProperty("overflow","hidden"),o((()=>{this.setWorkingParts(Object.assign(Object.assign({},this.workingParts),{month:n,day:s,year:d})),t.scrollLeft=a.clientWidth*(C(this.el)?-1:1),t.style.removeProperty("overflow"),this.resolveForceDateScrolling&&this.resolveForceDateScrolling()})))};let d,l=!1;const c=()=>{d&&clearTimeout(d),!l&&r&&(t.style.setProperty("pointer-events","none"),l=!0),d=setTimeout(s,50)};t.addEventListener("scroll",c),this.destroyCalendarListener=()=>{t.removeEventListener("scroll",c)}}))},this.destroyInteractionListeners=()=>{const{destroyCalendarListener:t,destroyKeyboardMO:e}=this;void 0!==t&&t(),void 0!==e&&e()},this.ensureReadyIfVisible=()=>{if(this.el.classList.contains("datetime-ready"))return;const t=this.el.getBoundingClientRect();0!==t.width&&0!==t.height&&(this.initializeListeners(),o((()=>{this.el.classList.add("datetime-ready")})))},this.processValue=t=>{const e=null!=t&&""!==t&&(!Array.isArray(t)||t.length>0),i=e?K(t):this.defaultParts,{minParts:a,maxParts:o,workingParts:n,el:r}=this;if(this.warnIfIncorrectValueUsage(),!i)return;e&&Q(i,a,o);const s=Array.isArray(i)?i[i.length-1]:i,d=et(s,a,o),{month:l,day:c,year:h,hour:p,minute:m}=d,b=tt(p);this.activeParts=e?Array.isArray(i)?[...i]:{month:l,day:c,year:h,hour:p,minute:m,ampm:b}:[];const g=void 0!==l&&l!==n.month||void 0!==h&&h!==n.year,u=r.classList.contains("datetime-ready"),{isGridStyle:f,showMonthAndYear:y}=this;f&&g&&u&&!y?this.animateToDate(d):this.setWorkingParts({month:l,day:c,year:h,hour:p,minute:m,ampm:b})},this.animateToDate=async t=>{const{workingParts:e}=this;this.forceRenderDate=t;const i=new Promise((t=>{this.resolveForceDateScrolling=t}));V(t,e)?this.prevMonth():this.nextMonth(),await i,this.resolveForceDateScrolling=void 0,this.forceRenderDate=void 0},this.onFocus=()=>{this.ionFocus.emit()},this.onBlur=()=>{this.ionBlur.emit()},this.hasValue=()=>null!=this.value,this.nextMonth=()=>{const t=this.calendarBodyRef;if(!t)return;const e=t.querySelector(".calendar-month:last-of-type");e&&t.scrollTo({top:0,left:2*e.offsetWidth*(C(this.el)?-1:1),behavior:"smooth"})},this.prevMonth=()=>{const t=this.calendarBodyRef;t&&t.querySelector(".calendar-month:first-of-type")&&t.scrollTo({top:0,left:0,behavior:"smooth"})},this.toggleMonthAndYearView=()=>{this.showMonthAndYear=!this.showMonthAndYear}}formatOptionsChanged(){const{el:t,formatOptions:e,presentation:i}=this;At(t,i,e),Tt(t,e)}disabledChanged(){this.emitStyle()}minChanged(){this.processMinParts()}maxChanged(){this.processMaxParts()}presentationChanged(){const{el:t,formatOptions:e,presentation:i}=this;At(t,i,e)}get isGridStyle(){const{presentation:t,preferWheel:e}=this;return("date"===t||"date-time"===t||"time-date"===t)&&!e}yearValuesChanged(){this.parsedYearValues=it(this.yearValues)}monthValuesChanged(){this.parsedMonthValues=it(this.monthValues)}dayValuesChanged(){this.parsedDayValues=it(this.dayValues)}hourValuesChanged(){this.parsedHourValues=it(this.hourValues)}minuteValuesChanged(){this.parsedMinuteValues=it(this.minuteValues)}async valueChanged(){const{value:t}=this;this.hasValue()&&this.processValue(t),this.emitStyle(),this.ionValueChange.emit({value:t})}async confirm(t=!1){const{isCalendarPicker:e,activeParts:i,preferWheel:a,workingParts:o}=this;if(void 0!==i||!e){const t=Array.isArray(i);this.setValue(t&&0===i.length?a?at(o):void 0:at(i))}t&&this.closeParentOverlay(Wt)}async reset(t){this.processValue(t)}async cancel(t=!1){this.ionCancel.emit(),t&&this.closeParentOverlay(It)}get isCalendarPicker(){const{presentation:t}=this;return"date"===t||"date-time"===t||"time-date"===t}connectedCallback(){this.clearFocusVisible=d(this.el).destroy}disconnectedCallback(){this.clearFocusVisible&&(this.clearFocusVisible(),this.clearFocusVisible=void 0)}initializeListeners(){this.initializeCalendarListener(),this.initializeKeyboardListeners()}componentDidLoad(){const{el:t,intersectionTrackerRef:e}=this,i=new IntersectionObserver((t=>{t[0].isIntersecting&&(this.initializeListeners(),o((()=>{this.el.classList.add("datetime-ready")})))}),{threshold:.01,root:t});l((()=>null==i?void 0:i.observe(e))),setTimeout((()=>{this.ensureReadyIfVisible()}),100);const a=new IntersectionObserver((t=>{t[0].isIntersecting||(this.destroyInteractionListeners(),this.showMonthAndYear=!1,o((()=>{this.el.classList.remove("datetime-ready")})))}),{threshold:0,root:t});l((()=>null==a?void 0:a.observe(e)));const n=c(this.el);n.addEventListener("ionFocus",(t=>t.stopPropagation())),n.addEventListener("ionBlur",(t=>t.stopPropagation()))}componentDidRender(){const{presentation:t,prevPresentation:e,calendarBodyRef:i,minParts:a,preferWheel:o,forceRenderDate:n}=this,r=!o&&["date-time","time-date","date"].includes(t);if(void 0!==a&&r&&i){const t=i.querySelector(".calendar-month:nth-of-type(1)");t&&void 0===n&&(i.scrollLeft=t.clientWidth*(C(this.el)?-1:1))}null!==e?t!==e&&(this.prevPresentation=t,this.destroyInteractionListeners(),this.initializeListeners(),this.showMonthAndYear=!1,l((()=>{this.ionRender.emit()}))):this.prevPresentation=t}componentWillLoad(){const{el:t,formatOptions:i,highlightedDates:a,multiple:o,presentation:n,preferWheel:r}=this;o&&("date"!==n&&e('[ion-datetime] - Multiple date selection is only supported for presentation="date".',t),r&&e('[ion-datetime] - Multiple date selection is not supported with preferWheel="true".',t)),void 0!==a&&("date"!==n&&"date-time"!==n&&"time-date"!==n&&e("[ion-datetime] - The highlightedDates property is only supported with the date, date-time, and time-date presentations.",t),r&&e('[ion-datetime] - The highlightedDates property is not supported with preferWheel="true".',t)),i&&(At(t,n,i),Tt(t,i));const s=this.parsedHourValues=it(this.hourValues),d=this.parsedMinuteValues=it(this.minuteValues),l=this.parsedMonthValues=it(this.monthValues),c=this.parsedYearValues=it(this.yearValues),h=this.parsedDayValues=it(this.dayValues),p=this.todayParts=K(ot());this.processMinParts(),this.processMaxParts(),this.defaultParts=nt({refParts:p,monthValues:l,dayValues:h,yearValues:c,hourValues:s,minuteValues:d,minParts:this.minParts,maxParts:this.maxParts}),this.processValue(this.value),this.emitStyle()}emitStyle(){this.ionStyle.emit({interactive:!0,datetime:!0,"interactive-disabled":this.disabled})}renderFooter(){const{disabled:t,readonly:e,showDefaultButtons:i,showClearButton:a}=this,o=t||e;if(null===this.el.querySelector('[slot="buttons"]')&&!i&&!a)return;const r=()=>{this.reset(),this.setValue(void 0)};return n("div",{class:"datetime-footer"},n("div",{class:"datetime-buttons"},n("div",{class:{"datetime-action-buttons":!0,"has-clear-button":this.showClearButton}},n("slot",{name:"buttons"},n("ion-buttons",null,i&&n("ion-button",{id:"cancel-button",color:this.color,onClick:()=>this.cancel(!0),disabled:o},this.cancelText),n("div",{class:"datetime-action-buttons-container"},a&&n("ion-button",{id:"clear-button",color:this.color,onClick:()=>r(),disabled:o},this.clearText),i&&n("ion-button",{id:"confirm-button",color:this.color,onClick:()=>this.confirm(!0),disabled:o},this.doneText)))))))}renderWheelPicker(t=this.presentation){const e="time-date"===t?[this.renderTimePickerColumns(t),this.renderDatePickerColumns(t)]:[this.renderDatePickerColumns(t),this.renderTimePickerColumns(t)];return n("ion-picker",{class:m},e)}renderDatePickerColumns(t){return"date-time"===t||"time-date"===t?this.renderCombinedDatePickerColumn():this.renderIndividualDatePickerColumns(t)}renderCombinedDatePickerColumn(){const{defaultParts:e,disabled:i,workingParts:a,locale:o,minParts:r,maxParts:s,todayParts:d,isDateEnabled:l}=this,c=this.getActivePartsWithFallback(),h=rt(a),p=h[h.length-1];h[0].day=1,p.day=st(p.month,p.year);const m=void 0!==r&&S(r,h[0])?r:h[0],b=void 0!==s&&V(s,p)?s:p,g=dt(o,d,m,b,this.parsedDayValues,this.parsedMonthValues);let u=g.items;const f=g.parts;l&&(u=u.map(((e,i)=>{const a=f[i];let o;try{o=!l(at(a))}catch(e){t("[ion-datetime] - Exception thrown from provided `isDateEnabled` function. Please check your function and try again.",e)}return Object.assign(Object.assign({},e),{disabled:o})})));const y=null!==a.day?`${a.year}-${a.month}-${a.day}`:`${e.year}-${e.month}-${e.day}`;return n("ion-picker-column",{part:Ft,"aria-label":"Select a date",class:"date-column",color:this.color,disabled:i,value:y,onIonChange:t=>{const{value:e}=t.detail,i=f.find((({month:t,day:i,year:a})=>e===`${a}-${t}-${i}`));this.setWorkingParts(Object.assign(Object.assign({},a),i)),this.setActiveParts(Object.assign(Object.assign({},c),i)),t.stopPropagation()}},u.map((t=>n("ion-picker-column-option",{part:t.value===y?`${Et} ${Bt}`:Et,key:t.value,disabled:t.disabled,value:t.value},t.text))))}renderIndividualDatePickerColumns(e){const{workingParts:i,isDateEnabled:a}=this,o="year"!==e&&"time"!==e?lt(this.locale,i,this.minParts,this.maxParts,this.parsedMonthValues):[];let n="date"===e?ct(this.locale,i,this.minParts,this.maxParts,this.parsedDayValues):[];a&&(n=n.map((e=>{const{value:o}=e,n="string"==typeof o?parseInt(o):o,r={month:i.month,day:n,year:i.year};let s;try{s=!a(at(r))}catch(e){t("[ion-datetime] - Exception thrown from provided `isDateEnabled` function. Please check your function and try again.",e)}return Object.assign(Object.assign({},e),{disabled:s})})));const r="month"!==e&&"time"!==e?ht(this.locale,this.defaultParts,this.minParts,this.maxParts,this.parsedYearValues):[];let s=[];return s=pt(this.locale,{month:"numeric",day:"numeric"})?[this.renderMonthPickerColumn(o),this.renderDayPickerColumn(n),this.renderYearPickerColumn(r)]:[this.renderDayPickerColumn(n),this.renderMonthPickerColumn(o),this.renderYearPickerColumn(r)],s}renderDayPickerColumn(t){var e;if(0===t.length)return[];const{disabled:i,workingParts:a}=this,o=this.getActivePartsWithFallback(),r=null!==(e=null!==a.day?a.day:this.defaultParts.day)&&void 0!==e?e:void 0;return n("ion-picker-column",{part:Ft,"aria-label":"Select a day",class:"day-column",color:this.color,disabled:i,value:r,onIonChange:t=>{this.setWorkingParts(Object.assign(Object.assign({},a),{day:t.detail.value})),this.setActiveParts(Object.assign(Object.assign({},o),{day:t.detail.value})),t.stopPropagation()}},t.map((t=>n("ion-picker-column-option",{part:t.value===r?`${Et} ${Bt}`:Et,key:t.value,disabled:t.disabled,value:t.value},t.text))))}renderMonthPickerColumn(t){if(0===t.length)return[];const{disabled:e,workingParts:i}=this,a=this.getActivePartsWithFallback();return n("ion-picker-column",{part:Ft,"aria-label":"Select a month",class:"month-column",color:this.color,disabled:e,value:i.month,onIonChange:t=>{this.setWorkingParts(Object.assign(Object.assign({},i),{month:t.detail.value})),this.setActiveParts(Object.assign(Object.assign({},a),{month:t.detail.value})),t.stopPropagation()}},t.map((t=>n("ion-picker-column-option",{part:t.value===i.month?`${Et} ${Bt}`:Et,key:t.value,disabled:t.disabled,value:t.value},t.text))))}renderYearPickerColumn(t){if(0===t.length)return[];const{disabled:e,workingParts:i}=this,a=this.getActivePartsWithFallback();return n("ion-picker-column",{part:Ft,"aria-label":"Select a year",class:"year-column",color:this.color,disabled:e,value:i.year,onIonChange:t=>{this.setWorkingParts(Object.assign(Object.assign({},i),{year:t.detail.value})),this.setActiveParts(Object.assign(Object.assign({},a),{year:t.detail.value})),t.stopPropagation()}},t.map((t=>n("ion-picker-column-option",{part:t.value===i.year?`${Et} ${Bt}`:Et,key:t.value,disabled:t.disabled,value:t.value},t.text))))}renderTimePickerColumns(t){if(["date","month","month-year","year"].includes(t))return[];const e=void 0!==this.getActivePart(),{hoursData:i,minutesData:a,dayPeriodData:o}=mt(this.locale,this.workingParts,this.hourCycle,e?this.minParts:void 0,e?this.maxParts:void 0,this.parsedHourValues,this.parsedMinuteValues);return[this.renderHourPickerColumn(i),this.renderMinutePickerColumn(a),this.renderDayPeriodPickerColumn(o)]}renderHourPickerColumn(t){const{disabled:e,workingParts:i}=this;if(0===t.length)return[];const a=this.getActivePartsWithFallback();return n("ion-picker-column",{part:Ft,"aria-label":"Select an hour",color:this.color,disabled:e,value:a.hour,numericInput:!0,onIonChange:t=>{this.setWorkingParts(Object.assign(Object.assign({},i),{hour:t.detail.value})),this.setActiveParts(Object.assign(Object.assign({},this.getActivePartsWithFallback()),{hour:t.detail.value})),t.stopPropagation()}},t.map((t=>n("ion-picker-column-option",{part:t.value===a.hour?`${Et} ${Bt}`:Et,key:t.value,disabled:t.disabled,value:t.value},t.text))))}renderMinutePickerColumn(t){const{disabled:e,workingParts:i}=this;if(0===t.length)return[];const a=this.getActivePartsWithFallback();return n("ion-picker-column",{part:Ft,"aria-label":"Select a minute",color:this.color,disabled:e,value:a.minute,numericInput:!0,onIonChange:t=>{this.setWorkingParts(Object.assign(Object.assign({},i),{minute:t.detail.value})),this.setActiveParts(Object.assign(Object.assign({},this.getActivePartsWithFallback()),{minute:t.detail.value})),t.stopPropagation()}},t.map((t=>n("ion-picker-column-option",{part:t.value===a.minute?`${Et} ${Bt}`:Et,key:t.value,disabled:t.disabled,value:t.value},t.text))))}renderDayPeriodPickerColumn(t){const{disabled:e,workingParts:i}=this;if(0===t.length)return[];const a=this.getActivePartsWithFallback(),o=bt(this.locale);return n("ion-picker-column",{part:Ft,"aria-label":"Select a day period",style:o?{order:"-1"}:{},color:this.color,disabled:e,value:a.ampm,onIonChange:t=>{const e=gt(i,t.detail.value);this.setWorkingParts(Object.assign(Object.assign({},i),{ampm:t.detail.value,hour:e})),this.setActiveParts(Object.assign(Object.assign({},this.getActivePartsWithFallback()),{ampm:t.detail.value,hour:e})),t.stopPropagation()}},t.map((t=>n("ion-picker-column-option",{part:t.value===a.ampm?`${Et} ${Bt}`:Et,key:t.value,disabled:t.disabled,value:t.value},t.text))))}renderWheelView(t){const{locale:e}=this,i=pt(e)?"month-first":"year-first";return n("div",{class:{[`wheel-order-${i}`]:!0}},this.renderWheelPicker(t))}renderCalendarHeader(t){const{disabled:e}=this,i="ios"===t?z:D,a="ios"===t?$:M,o=e||((t,e,i)=>{const a=Object.assign(Object.assign({},I(this.workingParts)),{day:null});return Mt(a,{minParts:e,maxParts:i})})(0,this.minParts,this.maxParts),r=e||((t,e)=>{const i=Object.assign(Object.assign({},W(this.workingParts)),{day:null});return Mt(i,{maxParts:e})})(0,this.maxParts),s=this.el.getAttribute("dir")||void 0;return n("div",{class:"calendar-header",part:"calendar-header"},n("div",{class:"calendar-action-buttons"},n("div",{class:"calendar-month-year"},n("button",{class:{"calendar-month-year-toggle":!0,"ion-activatable":!0,"ion-focusable":!0},part:"month-year-button",disabled:e,"aria-label":this.showMonthAndYear?"Hide year picker":"Show year picker",onClick:()=>this.toggleMonthAndYearView()},n("span",{id:"toggle-wrapper"},ft(this.locale,this.workingParts),n("ion-icon",{"aria-hidden":"true",icon:this.showMonthAndYear?i:a,lazy:!1,flipRtl:!0})),"md"===t&&n("ion-ripple-effect",null))),n("div",{class:"calendar-next-prev"},n("ion-buttons",null,n("ion-button",{"aria-label":"Previous month",disabled:o,onClick:()=>this.prevMonth(),part:"prev-next-buttons prev-button"},n("ion-icon",{dir:s,"aria-hidden":"true",slot:"icon-only",icon:T,lazy:!1,flipRtl:!0})),n("ion-button",{"aria-label":"Next month",disabled:r,onClick:()=>this.nextMonth(),part:"prev-next-buttons next-button"},n("ion-icon",{dir:s,"aria-hidden":"true",slot:"icon-only",icon:$,lazy:!1,flipRtl:!0}))))),n("div",{class:"calendar-days-of-week","aria-hidden":"true",part:"days-of-week"},ut(this.locale,t,this.firstDayOfWeek%7).map((t=>n("div",{class:"day-of-week"},t)))))}renderMonth(e,i){const{disabled:a,readonly:o}=this,r=void 0===this.parsedYearValues||this.parsedYearValues.includes(i),s=void 0===this.parsedMonthValues||this.parsedMonthValues.includes(e),d=!r||!s,l=a||o,c=a||Mt({month:e,year:i,day:null},{minParts:Object.assign(Object.assign({},this.minParts),{day:null}),maxParts:Object.assign(Object.assign({},this.maxParts),{day:null})}),h=this.workingParts.month===e&&this.workingParts.year===i,p=this.getActivePartsWithFallback();return n("div",{"aria-hidden":h?null:"true",class:{"calendar-month":!0,"calendar-month-disabled":!h&&c}},n("div",{class:"calendar-month-grid"},yt(e,i,this.firstDayOfWeek%7,this.showAdjacentDays).map(((a,o)=>{const{day:r,dayOfWeek:s,isAdjacentDay:c}=a,{el:h,highlightedDates:m,isDateEnabled:b,multiple:g,showAdjacentDays:u}=this;let f=e,y=i;u&&c&&null!==r&&(r>20?1===e?(y=i-1,f=12):f=e-1:r<15&&(12===e?(y=i+1,f=1):f=e+1));const x={month:f,day:r,year:y,isAdjacentDay:c},k=null===r,{isActive:v,isToday:w,ariaLabel:j,ariaSelected:C,disabled:O,text:P}=$t(this.locale,x,this.activeParts,this.todayParts,this.minParts,this.maxParts,this.parsedDayValues),z=at(x);let D=d||O;if(!D&&void 0!==b)try{D=!b(z)}catch(e){t("[ion-datetime] - Exception thrown from provided `isDateEnabled` function. Please check your function and try again.",h,e)}const $=D&&l,M=D||l;let T,A;return void 0===m||v||null===r||c||(T=((e,i,a)=>{if(Array.isArray(e)){const t=i.split("T")[0],a=e.find((e=>e.date===t));if(a)return{textColor:a.textColor,backgroundColor:a.backgroundColor,border:a.border}}else try{return e(i)}catch(e){t("[ion-datetime] - Exception thrown from provided `highlightedDates` callback. Please check your function and try again.",a,e)}})(m,z,h)),k||c?c&&(A="calendar-day"+(D?" disabled":"")):A=`calendar-day${v?" active":""}${w?" today":""}${D?" disabled":""}`,n("div",{class:"calendar-day-wrapper"},n("button",{ref:t=>{t&&(t.style.setProperty("color",`${T?T.textColor:""}`,"important"),t.style.setProperty("background-color",`${T?T.backgroundColor:""}`,"important"),t.style.setProperty("border",`${T?T.border:""}`,"important"))},tabindex:"-1","data-day":r,"data-month":f,"data-year":y,"data-index":o,"data-day-of-week":s,disabled:M,class:{"calendar-day-padding":k,"calendar-day":!0,"calendar-day-active":v,"calendar-day-constrained":$,"calendar-day-today":w,"calendar-day-adjacent-day":c},part:A,"aria-hidden":k?"true":null,"aria-selected":C,"aria-label":j,onClick:()=>{k||(c?(this.el.blur(),this.activeParts=Object.assign(Object.assign({},p),x),this.animateToDate(x),this.confirm()):(this.setWorkingParts(Object.assign(Object.assign({},this.workingParts),x)),g?this.setActiveParts(x,v):this.setActiveParts(Object.assign(Object.assign({},p),x))))}},P))}))))}renderCalendarBody(){return n("div",{class:"calendar-body ion-focusable",ref:t=>this.calendarBodyRef=t,tabindex:"0"},rt(this.workingParts,this.forceRenderDate).map((({month:t,year:e})=>this.renderMonth(t,e))))}renderCalendar(t){return n("div",{class:"datetime-calendar",key:"datetime-calendar"},this.renderCalendarHeader(t),this.renderCalendarBody())}renderTimeLabel(){if(null!==this.el.querySelector('[slot="time-label"]')||this.showDefaultTimeLabel)return n("slot",{name:"time-label"},"Time")}renderTimeOverlay(){const{disabled:t,hourCycle:e,isTimePopoverOpen:i,locale:a,formatOptions:o}=this,r=xt(a,e),s=this.getActivePartsWithFallback();return[n("div",{class:"time-header"},this.renderTimeLabel()),n("button",{class:{"time-body":!0,"time-body-active":i},part:"time-button"+(i?" active":""),"aria-expanded":"false","aria-haspopup":"true",disabled:t,onClick:async t=>{const{popoverRef:e}=this;e&&(this.isTimePopoverOpen=!0,e.present(new CustomEvent("ionShadowTarget",{detail:{ionShadowTarget:t.target}})),await e.onWillDismiss(),this.isTimePopoverOpen=!1)}},kt(a,s,r,null==o?void 0:o.time)),n("ion-popover",{alignment:"center",translucent:!0,overlayIndex:1,arrow:!1,onWillPresent:t=>{t.target.querySelectorAll("ion-picker-column").forEach((t=>t.scrollActiveItemIntoView()))},style:{"--offset-y":"-10px","--min-width":"fit-content"},keyboardEvents:!0,ref:t=>this.popoverRef=t},this.renderWheelPicker("time"))]}getHeaderSelectedDateText(){var e;const{activeParts:i,formatOptions:a,multiple:o,titleSelectedDatesFormatter:n}=this,r=Array.isArray(i);let s;if(o&&r&&1!==i.length){if(s=`${i.length} days`,void 0!==n)try{s=n(at(i))}catch(e){t("[ion-datetime] - Exception in provided `titleSelectedDatesFormatter`:",e)}}else s=vt(this.locale,this.getActivePartsWithFallback(),null!==(e=null==a?void 0:a.date)&&void 0!==e?e:{weekday:"short",month:"short",day:"numeric"});return s}renderHeader(t=!0){if(null!==this.el.querySelector('[slot="title"]')||this.showDefaultTitle)return n("div",{class:"datetime-header",part:"datetime-header"},n("div",{class:"datetime-title"},n("slot",{name:"title"},"Select Date")),t&&n("div",{class:"datetime-selected-date"},this.getHeaderSelectedDateText()))}renderTime(){const{presentation:t}=this;return n("div",{class:"datetime-time"},"time"===t?this.renderWheelPicker():this.renderTimeOverlay())}renderCalendarViewMonthYearPicker(){return n("div",{class:"datetime-year"},this.renderWheelView("month-year"))}renderDatetime(t){const{presentation:e,preferWheel:i}=this;if(i&&("date"===e||"date-time"===e||"time-date"===e))return[this.renderHeader(!1),this.renderWheelView(),this.renderFooter()];switch(e){case"date-time":return[this.renderHeader(),this.renderCalendar(t),this.renderCalendarViewMonthYearPicker(),this.renderTime(),this.renderFooter()];case"time-date":return[this.renderHeader(),this.renderTime(),this.renderCalendar(t),this.renderCalendarViewMonthYearPicker(),this.renderFooter()];case"time":return[this.renderHeader(!1),this.renderTime(),this.renderFooter()];case"month":case"month-year":case"year":return[this.renderHeader(!1),this.renderWheelView(),this.renderFooter()];default:return[this.renderHeader(),this.renderCalendar(t),this.renderCalendarViewMonthYearPicker(),this.renderFooter()]}}render(){const{name:t,value:e,disabled:i,el:a,color:o,readonly:s,showMonthAndYear:d,preferWheel:l,presentation:c,size:p,isGridStyle:m}=this,b=A(this),g="year"===c||"month"===c||"month-year"===c,u=d||g,f=d&&!g,y=("date"===c||"date-time"===c||"time-date"===c)&&l;return h(!0,a,t,wt(e),i),n(r,{key:"3d0787ecb3ad104c4a60d68a6e57140f018a70f2","aria-disabled":i?"true":null,onFocus:this.onFocus,onBlur:this.onBlur,class:Object.assign({},O(o,{[b]:!0,"datetime-readonly":s,"datetime-disabled":i,"show-month-and-year":u,"month-year-picker-open":f,[`datetime-presentation-${c}`]:!0,[`datetime-size-${p}`]:!0,"datetime-prefer-wheel":y,"datetime-grid":m}))},n("div",{key:"6b245a0033d5ddd1918bc839f142141bf5ec54c5",class:"intersection-tracker",ref:t=>this.intersectionTrackerRef=t}),this.renderDatetime(b))}get el(){return s(this)}static get watchers(){return{formatOptions:["formatOptionsChanged"],disabled:["disabledChanged"],min:["minChanged"],max:["maxChanged"],presentation:["presentationChanged"],yearValues:["yearValuesChanged"],monthValues:["monthValuesChanged"],dayValues:["dayValuesChanged"],hourValues:["hourValuesChanged"],minuteValues:["minuteValuesChanged"],value:["valueChanged"]}}};let St=0;const It="datetime-cancel",Wt="datetime-confirm",Ft="wheel",Et="wheel-item",Bt="active";Vt.style={ios:':host{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;background:var(--background);overflow:hidden}:host(.datetime-size-fixed){width:auto;height:auto}:host(.datetime-size-fixed:not(.datetime-prefer-wheel)){max-width:350px}:host(.datetime-size-fixed.datetime-prefer-wheel){min-width:350px;max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content}:host(.datetime-size-cover){width:100%}:host .calendar-body,:host .datetime-year{opacity:0}:host(:not(.datetime-ready)) .datetime-year{position:absolute;pointer-events:none}:host(.datetime-ready) .calendar-body{opacity:1}:host(.datetime-ready) .datetime-year{display:none;opacity:1}:host .wheel-order-year-first .day-column{-ms-flex-order:3;order:3;text-align:end}:host .wheel-order-year-first .month-column{-ms-flex-order:2;order:2;text-align:end}:host .wheel-order-year-first .year-column{-ms-flex-order:1;order:1;text-align:start}:host .datetime-calendar,:host .datetime-year{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-flow:column;flex-flow:column}:host(.show-month-and-year) .datetime-year{display:-ms-flexbox;display:flex}:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{display:none}:host(.month-year-picker-open) .datetime-footer{display:none}:host(.datetime-disabled){pointer-events:none}:host(.datetime-disabled) .calendar-days-of-week,:host(.datetime-disabled) .datetime-time{opacity:0.4}:host(.datetime-readonly){pointer-events:none;}:host(.datetime-readonly) .calendar-action-buttons,:host(.datetime-readonly) .calendar-body,:host(.datetime-readonly) .datetime-year{pointer-events:initial}:host(.datetime-readonly) .calendar-day[disabled]:not(.calendar-day-constrained),:host(.datetime-readonly) .datetime-action-buttons ion-button[disabled]{opacity:1}:host .datetime-header .datetime-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .datetime-action-buttons.has-clear-button{width:100%}:host .datetime-action-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.datetime-action-buttons .datetime-action-buttons-container{display:-ms-flexbox;display:flex}:host .calendar-action-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .calendar-action-buttons ion-button{--background:transparent}:host .calendar-days-of-week{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}.calendar-days-of-week .day-of-week{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0}:host .calendar-body{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-webkit-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;overflow-x:scroll;overflow-y:hidden;scrollbar-width:none;outline:none}:host .calendar-body .calendar-month{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;scroll-snap-align:start;scroll-snap-stop:always;-ms-flex-negative:0;flex-shrink:0;width:100%}:host .calendar-body .calendar-month-disabled{scroll-snap-align:none}:host .calendar-body::-webkit-scrollbar{display:none}:host .calendar-body .calendar-month-grid{display:grid;grid-template-columns:repeat(7, 1fr)}:host .calendar-day-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:0;min-height:0;overflow:visible}.calendar-day{border-radius:50%;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:0px;padding-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:0px;margin-bottom:0px;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border:none;outline:none;background:none;color:currentColor;font-family:var(--ion-font-family, inherit);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:0}:host .calendar-day[disabled]{pointer-events:none;opacity:0.4}.calendar-day:not(.calendar-day-adjacent-day):focus{background:rgba(var(--ion-color-base-rgb), 0.2);-webkit-box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2)}:host .datetime-time{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host(.datetime-presentation-time) .datetime-time{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}:host ion-popover{--height:200px}:host .time-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .time-body{border-radius:8px;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px;display:-ms-flexbox;display:flex;border:none;background:var(--ion-color-step-300, var(--ion-background-color-step-300, #edeef0));color:var(--ion-text-color, #000);font-family:inherit;font-size:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host .time-body-active{color:var(--ion-color-base)}:host(.in-item){position:static}:host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle{color:var(--ion-color-base)}.calendar-month-year{min-width:0}.calendar-month-year-toggle{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;position:relative;border:0;outline:none;background:transparent;cursor:pointer;z-index:1}.calendar-month-year-toggle::after{left:0;right:0;top:0;bottom:0;position:absolute;content:"";opacity:0;-webkit-transition:opacity 15ms linear, background-color 15ms linear;transition:opacity 15ms linear, background-color 15ms linear;z-index:-1}.calendar-month-year-toggle.ion-focused::after{background:currentColor}.calendar-month-year-toggle:disabled{opacity:0.3;pointer-events:none}.calendar-month-year-toggle ion-icon{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:0;padding-inline-end:0;padding-top:0;padding-bottom:0;-ms-flex-negative:0;flex-shrink:0}.calendar-month-year-toggle #toggle-wrapper{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center}ion-picker{--highlight-background:var(--wheel-highlight-background);--highlight-border-radius:var(--wheel-highlight-border-radius);--fade-background-rgb:var(--wheel-fade-background-rgb)}:host{--background:var(--ion-color-light, #f4f5f8);--background-rgb:var(--ion-color-light-rgb, 244, 245, 248);--title-color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}:host(.datetime-presentation-date-time:not(.datetime-prefer-wheel)),:host(.datetime-presentation-time-date:not(.datetime-prefer-wheel)),:host(.datetime-presentation-date:not(.datetime-prefer-wheel)){min-height:350px}:host .datetime-header{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:16px;padding-bottom:16px;border-bottom:0.55px solid var(--ion-color-step-200, var(--ion-background-color-step-200, #cccccc));font-size:min(0.875rem, 22.4px)}:host .datetime-header .datetime-title{color:var(--title-color)}:host .datetime-header .datetime-selected-date{margin-top:10px}.calendar-month-year-toggle{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0px;padding-bottom:0px;min-height:44px;font-size:min(1rem, 25.6px);font-weight:600}.calendar-month-year-toggle.ion-focused::after{opacity:0.15}.calendar-month-year-toggle #toggle-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:8px;margin-inline-end:8px;margin-top:10px;margin-bottom:10px}:host .calendar-action-buttons .calendar-month-year-toggle ion-icon,:host .calendar-action-buttons ion-buttons ion-button{color:var(--ion-color-base)}:host .calendar-action-buttons ion-buttons{padding-left:0;padding-right:0;padding-top:8px;padding-bottom:0}:host .calendar-action-buttons ion-buttons ion-button{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}:host .calendar-days-of-week{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:0;padding-bottom:0;color:var(--ion-color-step-300, var(--ion-text-color-step-700, #b3b3b3));font-size:min(0.75rem, 19.2px);font-weight:600;line-height:24px;text-transform:uppercase}@supports (border-radius: mod(1px, 1px)){.calendar-days-of-week .day-of-week{width:clamp(20px, calc(mod(min(1rem, 24px), 24px) * 10), 100%);height:24px;overflow:hidden}.calendar-day{border-radius:max(8px, mod(min(1rem, 24px), 24px) * 10)}}@supports ((border-radius: mod(1px, 1px)) and (background: -webkit-named-image(apple-pay-logo-black)) and (not (contain-intrinsic-size: none))) or (not (border-radius: mod(1px, 1px))){.calendar-days-of-week .day-of-week{width:auto;height:auto;overflow:initial}.calendar-day{border-radius:32px}}:host .calendar-body .calendar-month .calendar-month-grid{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;-ms-flex-align:center;align-items:center;height:calc(100% - 16px)}:host .calendar-day-wrapper{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;height:0;min-height:1rem}:host .calendar-day{width:40px;min-width:40px;height:40px;font-size:min(1.25rem, 32px)}.calendar-day.calendar-day-active{background:rgba(var(--ion-color-base-rgb), 0.2);font-size:min(1.375rem, 35.2px)}:host .calendar-day.calendar-day-today{color:var(--ion-color-base)}:host .calendar-day.calendar-day-active,:host .calendar-day.calendar-day-adjacent-day.calendar-day-active{color:var(--ion-color-base);font-weight:600}:host .calendar-day.calendar-day-today.calendar-day-active{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host .calendar-day.calendar-day-adjacent-day{color:var(--ion-color-step-300, var(--ion-text-color-step-700, #b3b3b3))}:host .datetime-time{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:8px;padding-bottom:16px;font-size:min(1rem, 25.6px)}:host .datetime-time .time-header{font-weight:600}:host .datetime-buttons{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;border-top:0.55px solid var(--ion-color-step-200, var(--ion-background-color-step-200, #cccccc))}:host .datetime-buttons ::slotted(ion-buttons),:host .datetime-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}:host .datetime-action-buttons{width:100%}',md:':host{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;background:var(--background);overflow:hidden}:host(.datetime-size-fixed){width:auto;height:auto}:host(.datetime-size-fixed:not(.datetime-prefer-wheel)){max-width:350px}:host(.datetime-size-fixed.datetime-prefer-wheel){min-width:350px;max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content}:host(.datetime-size-cover){width:100%}:host .calendar-body,:host .datetime-year{opacity:0}:host(:not(.datetime-ready)) .datetime-year{position:absolute;pointer-events:none}:host(.datetime-ready) .calendar-body{opacity:1}:host(.datetime-ready) .datetime-year{display:none;opacity:1}:host .wheel-order-year-first .day-column{-ms-flex-order:3;order:3;text-align:end}:host .wheel-order-year-first .month-column{-ms-flex-order:2;order:2;text-align:end}:host .wheel-order-year-first .year-column{-ms-flex-order:1;order:1;text-align:start}:host .datetime-calendar,:host .datetime-year{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-flow:column;flex-flow:column}:host(.show-month-and-year) .datetime-year{display:-ms-flexbox;display:flex}:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{display:none}:host(.month-year-picker-open) .datetime-footer{display:none}:host(.datetime-disabled){pointer-events:none}:host(.datetime-disabled) .calendar-days-of-week,:host(.datetime-disabled) .datetime-time{opacity:0.4}:host(.datetime-readonly){pointer-events:none;}:host(.datetime-readonly) .calendar-action-buttons,:host(.datetime-readonly) .calendar-body,:host(.datetime-readonly) .datetime-year{pointer-events:initial}:host(.datetime-readonly) .calendar-day[disabled]:not(.calendar-day-constrained),:host(.datetime-readonly) .datetime-action-buttons ion-button[disabled]{opacity:1}:host .datetime-header .datetime-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .datetime-action-buttons.has-clear-button{width:100%}:host .datetime-action-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.datetime-action-buttons .datetime-action-buttons-container{display:-ms-flexbox;display:flex}:host .calendar-action-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .calendar-action-buttons ion-button{--background:transparent}:host .calendar-days-of-week{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}.calendar-days-of-week .day-of-week{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0}:host .calendar-body{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-webkit-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;overflow-x:scroll;overflow-y:hidden;scrollbar-width:none;outline:none}:host .calendar-body .calendar-month{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;scroll-snap-align:start;scroll-snap-stop:always;-ms-flex-negative:0;flex-shrink:0;width:100%}:host .calendar-body .calendar-month-disabled{scroll-snap-align:none}:host .calendar-body::-webkit-scrollbar{display:none}:host .calendar-body .calendar-month-grid{display:grid;grid-template-columns:repeat(7, 1fr)}:host .calendar-day-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:0;min-height:0;overflow:visible}.calendar-day{border-radius:50%;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:0px;padding-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:0px;margin-bottom:0px;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border:none;outline:none;background:none;color:currentColor;font-family:var(--ion-font-family, inherit);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:0}:host .calendar-day[disabled]{pointer-events:none;opacity:0.4}.calendar-day:not(.calendar-day-adjacent-day):focus{background:rgba(var(--ion-color-base-rgb), 0.2);-webkit-box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2)}:host .datetime-time{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host(.datetime-presentation-time) .datetime-time{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}:host ion-popover{--height:200px}:host .time-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .time-body{border-radius:8px;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px;display:-ms-flexbox;display:flex;border:none;background:var(--ion-color-step-300, var(--ion-background-color-step-300, #edeef0));color:var(--ion-text-color, #000);font-family:inherit;font-size:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host .time-body-active{color:var(--ion-color-base)}:host(.in-item){position:static}:host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle{color:var(--ion-color-base)}.calendar-month-year{min-width:0}.calendar-month-year-toggle{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;position:relative;border:0;outline:none;background:transparent;cursor:pointer;z-index:1}.calendar-month-year-toggle::after{left:0;right:0;top:0;bottom:0;position:absolute;content:"";opacity:0;-webkit-transition:opacity 15ms linear, background-color 15ms linear;transition:opacity 15ms linear, background-color 15ms linear;z-index:-1}.calendar-month-year-toggle.ion-focused::after{background:currentColor}.calendar-month-year-toggle:disabled{opacity:0.3;pointer-events:none}.calendar-month-year-toggle ion-icon{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:0;padding-inline-end:0;padding-top:0;padding-bottom:0;-ms-flex-negative:0;flex-shrink:0}.calendar-month-year-toggle #toggle-wrapper{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center}ion-picker{--highlight-background:var(--wheel-highlight-background);--highlight-border-radius:var(--wheel-highlight-border-radius);--fade-background-rgb:var(--wheel-fade-background-rgb)}:host{--background:var(--ion-color-step-100, var(--ion-background-color-step-100, #ffffff));--title-color:var(--ion-color-contrast)}:host .datetime-header{-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:20px;padding-inline-end:20px;padding-top:20px;padding-bottom:20px;background:var(--ion-color-base);color:var(--title-color)}:host .datetime-header .datetime-title{font-size:0.75rem;text-transform:uppercase}:host .datetime-header .datetime-selected-date{margin-top:30px;font-size:2.125rem}:host .calendar-action-buttons ion-button{--color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959))}.calendar-month-year-toggle{-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:12px;padding-bottom:12px;min-height:48px;background:transparent;color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959));z-index:1}.calendar-month-year-toggle.ion-focused::after{opacity:0.04}.calendar-month-year-toggle ion-ripple-effect{color:currentColor}@media (any-hover: hover){.calendar-month-year-toggle.ion-activatable:not(.ion-focused):hover::after{background:currentColor;opacity:0.04}}:host .calendar-days-of-week{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:0px;padding-bottom:0px;color:var(--ion-color-step-500, var(--ion-text-color-step-500, gray));font-size:0.875rem;line-height:36px}:host .calendar-body .calendar-month .calendar-month-grid{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:4px;padding-bottom:4px;grid-template-rows:repeat(6, 1fr)}:host .calendar-day{width:42px;min-width:42px;height:42px;font-size:0.875rem}:host .calendar-day.calendar-day-today{border:1px solid var(--ion-color-base);color:var(--ion-color-base)}:host .calendar-day.calendar-day-active,:host .calendar-day.calendar-day-adjacent-day.calendar-day-active{color:var(--ion-color-contrast)}.calendar-day.calendar-day-active,.calendar-day.calendar-day-active:focus{border:1px solid var(--ion-color-base);background:var(--ion-color-base)}:host .calendar-day.calendar-day-adjacent-day{color:var(--ion-color-step-500, var(--ion-text-color-step-500, gray))}:host .datetime-time{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:8px;padding-bottom:8px}:host .time-header{color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959))}:host(.datetime-presentation-month) .datetime-year,:host(.datetime-presentation-year) .datetime-year,:host(.datetime-presentation-month-year) .datetime-year{margin-top:20px;margin-bottom:20px}:host .datetime-buttons{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:10px;padding-bottom:10px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end}'};const Rt=t=>{const e=Ct(),i=Ct(),a=Ct();return i.addElement(t.querySelector("ion-backdrop")).fromTo("opacity",.01,"var(--backdrop-opacity)").beforeStyles({"pointer-events":"none"}).afterClearStyles(["pointer-events"]),a.addElement(t.querySelector(".picker-wrapper")).fromTo("transform","translateY(100%)","translateY(0%)"),e.addElement(t).easing("cubic-bezier(.36,.66,.04,1)").duration(400).addAnimation([i,a])},Lt=t=>{const e=Ct(),i=Ct(),a=Ct();return i.addElement(t.querySelector("ion-backdrop")).fromTo("opacity","var(--backdrop-opacity)",.01),a.addElement(t.querySelector(".picker-wrapper")).fromTo("transform","translateY(0%)","translateY(100%)"),e.addElement(t).easing("cubic-bezier(.36,.66,.04,1)").duration(400).addAnimation([i,a])},Yt=class{constructor(t){i(this,t),this.didPresent=a(this,"ionPickerDidPresent",7),this.willPresent=a(this,"ionPickerWillPresent",7),this.willDismiss=a(this,"ionPickerWillDismiss",7),this.didDismiss=a(this,"ionPickerDidDismiss",7),this.didPresentShorthand=a(this,"didPresent",7),this.willPresentShorthand=a(this,"willPresent",7),this.willDismissShorthand=a(this,"willDismiss",7),this.didDismissShorthand=a(this,"didDismiss",7),this.delegateController=b(this),this.lockController=jt(),this.triggerController=g(),this.presented=!1,this.hasController=!1,this.keyboardClose=!0,this.buttons=[],this.columns=[],this.duration=0,this.showBackdrop=!0,this.backdropDismiss=!0,this.animated=!0,this.isOpen=!1,this.onBackdropTap=()=>{this.dismiss(void 0,u)},this.dispatchCancelHandler=t=>{if(f(t.detail.role)){const t=this.buttons.find((t=>"cancel"===t.role));this.callButtonHandler(t)}}}onIsOpenChange(t,e){!0===t&&!1===e?this.present():!1===t&&!0===e&&this.dismiss()}triggerChanged(){const{trigger:t,el:e,triggerController:i}=this;t&&i.addClickListener(e,t)}connectedCallback(){y(this.el),this.triggerChanged()}disconnectedCallback(){this.triggerController.removeClickListener()}componentWillLoad(){var t;(null===(t=this.htmlAttributes)||void 0===t?void 0:t.id)||x(this.el)}componentDidLoad(){e("[ion-picker-legacy] - ion-picker-legacy and ion-picker-legacy-column have been deprecated in favor of new versions of the ion-picker and ion-picker-column components. These new components display inline with your page content allowing for more presentation flexibility than before.",this.el),!0===this.isOpen&&l((()=>this.present())),this.triggerChanged()}async present(){const t=await this.lockController.lock();await this.delegateController.attachViewToDom(),await k(this,"pickerEnter",Rt,Rt,void 0),this.duration>0&&(this.durationTimeout=setTimeout((()=>this.dismiss()),this.duration)),t()}async dismiss(t,e){const i=await this.lockController.lock();this.durationTimeout&&clearTimeout(this.durationTimeout);const a=await v(this,t,e,"pickerLeave",Lt,Lt);return a&&this.delegateController.removeViewFromDom(),i(),a}onDidDismiss(){return w(this.el,"ionPickerDidDismiss")}onWillDismiss(){return w(this.el,"ionPickerWillDismiss")}getColumn(t){return Promise.resolve(this.columns.find((e=>e.name===t)))}async buttonClick(t){const e=t.role;return f(e)?this.dismiss(void 0,e):await this.callButtonHandler(t)?this.dismiss(this.getSelected(),t.role):Promise.resolve()}async callButtonHandler(t){return!t||!1!==await j(t.handler,this.getSelected())}getSelected(){const t={};return this.columns.forEach(((e,i)=>{const a=void 0!==e.selectedIndex?e.options[e.selectedIndex]:void 0;t[e.name]={text:a?a.text:void 0,value:a?a.value:void 0,columnIndex:i}})),t}render(){const{htmlAttributes:t}=this,e=A(this);return n(r,Object.assign({key:"b95440747eb80cba23ae676d399d5e5816722c58","aria-modal":"true",tabindex:"-1"},t,{style:{zIndex:`${2e4+this.overlayIndex}`},class:Object.assign({[e]:!0,[`picker-${e}`]:!0,"overlay-hidden":!0},P(this.cssClass)),onIonBackdropTap:this.onBackdropTap,onIonPickerWillDismiss:this.dispatchCancelHandler}),n("ion-backdrop",{key:"169d1c83ef40e7fcb134219a585298b403a70b0f",visible:this.showBackdrop,tappable:this.backdropDismiss}),n("div",{key:"98518e5f5cea2dfb8dfa63d9545e9ae3a5765023",tabindex:"0","aria-hidden":"true"}),n("div",{key:"151755ab8eb23f9adafbfe201349398f5a69dee7",class:"picker-wrapper ion-overlay-wrapper",role:"dialog"},n("div",{key:"5dcf93b2f4fe8f4fce7c7aec8f85ef45a03ef470",class:"picker-toolbar"},this.buttons.map((t=>n("div",{class:qt(t)},n("button",{type:"button",onClick:()=>this.buttonClick(t),class:Ht(t)},t.text))))),n("div",{key:"fd5d66708edd38adc5a4d2fad7298969398a05e3",class:"picker-columns"},n("div",{key:"1b5830fd6cef1016af7736792c514965d6cb38a8",class:"picker-above-highlight"}),this.presented&&this.columns.map((t=>n("ion-picker-legacy-column",{col:t}))),n("div",{key:"c6edeca7afd69e13c9c66ba36f261974fd0f8f78",class:"picker-below-highlight"}))),n("div",{key:"e2a4b24710e30579b14b82dbfd3761b2187797b5",tabindex:"0","aria-hidden":"true"}))}get el(){return s(this)}static get watchers(){return{isOpen:["onIsOpenChange"],trigger:["triggerChanged"]}}},qt=t=>({[`picker-toolbar-${t.role}`]:void 0!==t.role,"picker-toolbar-button":!0}),Ht=t=>Object.assign({"picker-button":!0,"ion-activatable":!0},P(t.cssClass));Yt.style={ios:".sc-ion-picker-legacy-ios-h{--border-radius:0;--border-style:solid;--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--max-height:auto;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.sc-ion-picker-legacy-ios-h{inset-inline-start:0}.overlay-hidden.sc-ion-picker-legacy-ios-h{display:none}.picker-wrapper.sc-ion-picker-legacy-ios{border-radius:var(--border-radius);left:0;right:0;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:auto;margin-bottom:auto;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;overflow:hidden;z-index:10}.picker-toolbar.sc-ion-picker-legacy-ios{width:100%;background:transparent;contain:strict;z-index:1}.picker-button.sc-ion-picker-legacy-ios{border:0;font-family:inherit}.picker-button.sc-ion-picker-legacy-ios:active,.picker-button.sc-ion-picker-legacy-ios:focus{outline:none}.picker-columns.sc-ion-picker-legacy-ios{display:-ms-flexbox;display:flex;position:relative;-ms-flex-pack:center;justify-content:center;margin-bottom:var(--ion-safe-area-bottom, 0);contain:strict;overflow:hidden}.picker-above-highlight.sc-ion-picker-legacy-ios,.picker-below-highlight.sc-ion-picker-legacy-ios{display:none;pointer-events:none}.sc-ion-picker-legacy-ios-h{--background:var(--ion-background-color, #fff);--border-width:1px 0 0;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));--height:260px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.26);color:var(--ion-item-color, var(--ion-text-color, #000))}.picker-toolbar.sc-ion-picker-legacy-ios{display:-ms-flexbox;display:flex;height:44px;border-bottom:0.55px solid var(--border-color)}.picker-toolbar-button.sc-ion-picker-legacy-ios{-ms-flex:1;flex:1;text-align:end}.picker-toolbar-button.sc-ion-picker-legacy-ios:last-child .picker-button.sc-ion-picker-legacy-ios{font-weight:600}.picker-toolbar-button.sc-ion-picker-legacy-ios:first-child{font-weight:normal;text-align:start}.picker-button.sc-ion-picker-legacy-ios,.picker-button.ion-activated.sc-ion-picker-legacy-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-padding-start:1em;padding-inline-start:1em;-webkit-padding-end:1em;padding-inline-end:1em;padding-top:0;padding-bottom:0;height:44px;background:transparent;color:var(--ion-color-primary, #0054e9);font-size:16px}.picker-columns.sc-ion-picker-legacy-ios{height:215px;-webkit-perspective:1000px;perspective:1000px}.picker-above-highlight.sc-ion-picker-legacy-ios{top:0;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);display:block;position:absolute;width:100%;height:81px;border-bottom:1px solid var(--border-color);background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, var(--background, var(--ion-background-color, #fff))), to(rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8)));background:linear-gradient(to bottom, var(--background, var(--ion-background-color, #fff)) 20%, rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8) 100%);z-index:10}.picker-above-highlight.sc-ion-picker-legacy-ios{inset-inline-start:0}.picker-below-highlight.sc-ion-picker-legacy-ios{top:115px;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);display:block;position:absolute;width:100%;height:119px;border-top:1px solid var(--border-color);background:-webkit-gradient(linear, left bottom, left top, color-stop(30%, var(--background, var(--ion-background-color, #fff))), to(rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8)));background:linear-gradient(to top, var(--background, var(--ion-background-color, #fff)) 30%, rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8) 100%);z-index:11}.picker-below-highlight.sc-ion-picker-legacy-ios{inset-inline-start:0}",md:".sc-ion-picker-legacy-md-h{--border-radius:0;--border-style:solid;--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--max-height:auto;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.sc-ion-picker-legacy-md-h{inset-inline-start:0}.overlay-hidden.sc-ion-picker-legacy-md-h{display:none}.picker-wrapper.sc-ion-picker-legacy-md{border-radius:var(--border-radius);left:0;right:0;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:auto;margin-bottom:auto;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;overflow:hidden;z-index:10}.picker-toolbar.sc-ion-picker-legacy-md{width:100%;background:transparent;contain:strict;z-index:1}.picker-button.sc-ion-picker-legacy-md{border:0;font-family:inherit}.picker-button.sc-ion-picker-legacy-md:active,.picker-button.sc-ion-picker-legacy-md:focus{outline:none}.picker-columns.sc-ion-picker-legacy-md{display:-ms-flexbox;display:flex;position:relative;-ms-flex-pack:center;justify-content:center;margin-bottom:var(--ion-safe-area-bottom, 0);contain:strict;overflow:hidden}.picker-above-highlight.sc-ion-picker-legacy-md,.picker-below-highlight.sc-ion-picker-legacy-md{display:none;pointer-events:none}.sc-ion-picker-legacy-md-h{--background:var(--ion-background-color, #fff);--border-width:0.55px 0 0;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.13)))));--height:260px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.26);color:var(--ion-item-color, var(--ion-text-color, #000))}.picker-toolbar.sc-ion-picker-legacy-md{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end;height:44px}.picker-button.sc-ion-picker-legacy-md,.picker-button.ion-activated.sc-ion-picker-legacy-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-padding-start:1.1em;padding-inline-start:1.1em;-webkit-padding-end:1.1em;padding-inline-end:1.1em;padding-top:0;padding-bottom:0;height:44px;background:transparent;color:var(--ion-color-primary, #0054e9);font-size:14px;font-weight:500;text-transform:uppercase;-webkit-box-shadow:none;box-shadow:none}.picker-columns.sc-ion-picker-legacy-md{height:216px;-webkit-perspective:1800px;perspective:1800px}.picker-above-highlight.sc-ion-picker-legacy-md{top:0;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);position:absolute;width:100%;height:81px;border-bottom:1px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.13)))));background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, var(--ion-background-color, #fff)), to(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)));background:linear-gradient(to bottom, var(--ion-background-color, #fff) 20%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 100%);z-index:10}.picker-above-highlight.sc-ion-picker-legacy-md{inset-inline-start:0}.picker-below-highlight.sc-ion-picker-legacy-md{top:115px;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);position:absolute;width:100%;height:119px;border-top:1px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.13)))));background:-webkit-gradient(linear, left bottom, left top, color-stop(30%, var(--ion-background-color, #fff)), to(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)));background:linear-gradient(to top, var(--ion-background-color, #fff) 30%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 100%);z-index:11}.picker-below-highlight.sc-ion-picker-legacy-md{inset-inline-start:0}"};const Nt=class{constructor(t){i(this,t),this.ionPickerColChange=a(this,"ionPickerColChange",7),this.optHeight=0,this.rotateFactor=0,this.scaleFactor=1,this.velocity=0,this.y=0,this.noAnimate=!0,this.colDidChange=!1}colChanged(){this.colDidChange=!0}async connectedCallback(){let t=0,e=.81;"ios"===A(this)&&(t=-.46,e=1),this.rotateFactor=t,this.scaleFactor=e,this.gesture=(await import("./p-Cl0B-RWe.js")).createGesture({el:this.el,gestureName:"picker-swipe",gesturePriority:100,threshold:0,passive:!1,onStart:t=>this.onStart(t),onMove:t=>this.onMove(t),onEnd:t=>this.onEnd(t)}),this.gesture.enable(),this.tmrId=setTimeout((()=>{this.noAnimate=!1,this.refresh(!0)}),250)}componentDidLoad(){this.onDomChange()}componentDidUpdate(){this.colDidChange&&(this.onDomChange(!0,!1),this.colDidChange=!1)}disconnectedCallback(){void 0!==this.rafId&&cancelAnimationFrame(this.rafId),this.tmrId&&clearTimeout(this.tmrId),this.gesture&&(this.gesture.destroy(),this.gesture=void 0)}emitColChange(){this.ionPickerColChange.emit(this.col)}setSelected(t,e){const i=t>-1?-t*this.optHeight:0;this.velocity=0,void 0!==this.rafId&&cancelAnimationFrame(this.rafId),this.update(i,e,!0),this.emitColChange()}update(t,e,i){if(!this.optsEl)return;let a=0,o=0;const{col:n,rotateFactor:r}=this,s=n.selectedIndex,d=n.selectedIndex=this.indexForY(-t),l=0===e?"":e+"ms",c=`scale(${this.scaleFactor})`,h=this.optsEl.children;for(let i=0;i<h.length;i++){const s=h[i],p=n.options[i],m=i*this.optHeight+t;let b="";if(0!==r){const t=m*r;Math.abs(t)<=90?(a=0,o=90,b=`rotateX(${t}deg) `):a=-9999}else o=0,a=m;const g=d===i;b+=`translate3d(0px,${a}px,${o}px) `,1===this.scaleFactor||g||(b+=c),this.noAnimate?(p.duration=0,s.style.transitionDuration=""):e!==p.duration&&(p.duration=e,s.style.transitionDuration=l),b!==p.transform&&(p.transform=b),s.style.transform=b,p.selected=g,g?s.classList.add(Gt):s.classList.remove(Gt)}this.col.prevSelected=s,i&&(this.y=t),this.lastIndex!==d&&(Ot(),this.lastIndex=d)}decelerate(){if(0!==this.velocity){this.velocity*=Zt,this.velocity=this.velocity>0?Math.max(this.velocity,1):Math.min(this.velocity,-1);let t=this.y+this.velocity;t>this.minY?(t=this.minY,this.velocity=0):t<this.maxY&&(t=this.maxY,this.velocity=0),this.update(t,0,!0),Math.round(t)%this.optHeight!=0||Math.abs(this.velocity)>1?this.rafId=requestAnimationFrame((()=>this.decelerate())):(this.velocity=0,this.emitColChange(),Pt())}else if(this.y%this.optHeight!=0){const t=Math.abs(this.y%this.optHeight);this.velocity=t>this.optHeight/2?1:-1,this.decelerate()}}indexForY(t){return Math.min(Math.max(Math.abs(Math.round(t/this.optHeight)),0),this.col.options.length-1)}onStart(t){t.event.cancelable&&t.event.preventDefault(),t.event.stopPropagation(),zt(),void 0!==this.rafId&&cancelAnimationFrame(this.rafId);const e=this.col.options;let i=e.length-1,a=0;for(let t=0;t<e.length;t++)e[t].disabled||(i=Math.min(i,t),a=Math.max(a,t));this.minY=-i*this.optHeight,this.maxY=-a*this.optHeight}onMove(t){t.event.cancelable&&t.event.preventDefault(),t.event.stopPropagation();let e=this.y+t.deltaY;e>this.minY?(e=Math.pow(e,.8),this.bounceFrom=e):e<this.maxY?(e+=Math.pow(this.maxY-e,.9),this.bounceFrom=e):this.bounceFrom=0,this.update(e,0,!1)}onEnd(t){if(this.bounceFrom>0)return this.update(this.minY,100,!0),void this.emitColChange();if(this.bounceFrom<0)return this.update(this.maxY,100,!0),void this.emitColChange();if(this.velocity=p(-90,23*t.velocityY,_t),0===this.velocity&&0===t.deltaY){const e=t.event.target.closest(".picker-opt");(null==e?void 0:e.hasAttribute("opt-index"))&&this.setSelected(parseInt(e.getAttribute("opt-index"),10),Ut)}else{if(this.y+=t.deltaY,Math.abs(t.velocityY)<.05){const e=t.deltaY>0,i=Math.abs(this.y)%this.optHeight/this.optHeight;e&&i>.5?this.velocity=-1*Math.abs(this.velocity):!e&&i<=.5&&(this.velocity=Math.abs(this.velocity))}this.decelerate()}}refresh(t,e){var i;let a=this.col.options.length-1,o=0;const n=this.col.options;for(let t=0;t<n.length;t++)n[t].disabled||(a=Math.min(a,t),o=Math.max(o,t));if(0!==this.velocity)return;const r=p(a,null!==(i=this.col.selectedIndex)&&void 0!==i?i:0,o);if(this.col.prevSelected!==r||t){const t=r*this.optHeight*-1,i=e?Ut:0;this.velocity=0,this.update(t,i,!0)}}onDomChange(t,e){const i=this.optsEl;i&&(this.optHeight=i.firstElementChild?i.firstElementChild.clientHeight:0),this.refresh(t,e)}render(){const t=this.col,e=A(this);return n(r,{key:"ed32d108dd94f0302fb453c31a3497ebae65ec37",class:Object.assign({[e]:!0,"picker-col":!0,"picker-opts-left":"left"===this.col.align,"picker-opts-right":"right"===this.col.align},P(t.cssClass)),style:{"max-width":this.col.columnWidth}},t.prefix&&n("div",{key:"9f0634890e66fd4ae74f826d1eea3431de121393",class:"picker-prefix",style:{width:t.prefixWidth}},t.prefix),n("div",{key:"337e996e5be91af16446085fe22436f213b771eb",class:"picker-opts",style:{maxWidth:t.optionsWidth},ref:t=>this.optsEl=t},t.options.map(((t,e)=>n("button",{"aria-label":t.ariaLabel,class:{"picker-opt":!0,"picker-opt-disabled":!!t.disabled},"opt-index":e},t.text)))),t.suffix&&n("div",{key:"d69a132599d78d9e5107f12228978cfce4e43098",class:"picker-suffix",style:{width:t.suffixWidth}},t.suffix))}get el(){return s(this)}static get watchers(){return{col:["colChanged"]}}},Gt="picker-opt-selected",Zt=.97,_t=90,Ut=150;Nt.style={ios:".picker-col{display:-ms-flexbox;display:flex;position:relative;-ms-flex:1;flex:1;-ms-flex-pack:center;justify-content:center;height:100%;-webkit-box-sizing:content-box;box-sizing:content-box;contain:content}.picker-opts{position:relative;-ms-flex:1;flex:1;max-width:100%}.picker-opt{top:0;display:block;position:absolute;width:100%;border:0;text-align:center;text-overflow:ellipsis;white-space:nowrap;contain:strict;overflow:hidden;will-change:transform}.picker-opt{inset-inline-start:0}.picker-opt.picker-opt-disabled{pointer-events:none}.picker-opt-disabled{opacity:0}.picker-opts-left{-ms-flex-pack:start;justify-content:flex-start}.picker-opts-right{-ms-flex-pack:end;justify-content:flex-end}.picker-opt:active,.picker-opt:focus{outline:none}.picker-prefix{position:relative;-ms-flex:1;flex:1;text-align:end;white-space:nowrap}.picker-suffix{position:relative;-ms-flex:1;flex:1;text-align:start;white-space:nowrap}.picker-col{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:0;padding-bottom:0;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.picker-prefix,.picker-suffix,.picker-opts{top:77px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;color:inherit;font-size:20px;line-height:42px;pointer-events:none}.picker-opt{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-transform-origin:center center;transform-origin:center center;height:46px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out;background:transparent;color:inherit;font-size:20px;line-height:42px;-webkit-backface-visibility:hidden;backface-visibility:hidden;pointer-events:auto}:host-context([dir=rtl]) .picker-opt{-webkit-transform-origin:calc(100% - center) center;transform-origin:calc(100% - center) center}[dir=rtl] .picker-opt{-webkit-transform-origin:calc(100% - center) center;transform-origin:calc(100% - center) center}@supports selector(:dir(rtl)){.picker-opt:dir(rtl){-webkit-transform-origin:calc(100% - center) center;transform-origin:calc(100% - center) center}}",md:".picker-col{display:-ms-flexbox;display:flex;position:relative;-ms-flex:1;flex:1;-ms-flex-pack:center;justify-content:center;height:100%;-webkit-box-sizing:content-box;box-sizing:content-box;contain:content}.picker-opts{position:relative;-ms-flex:1;flex:1;max-width:100%}.picker-opt{top:0;display:block;position:absolute;width:100%;border:0;text-align:center;text-overflow:ellipsis;white-space:nowrap;contain:strict;overflow:hidden;will-change:transform}.picker-opt{inset-inline-start:0}.picker-opt.picker-opt-disabled{pointer-events:none}.picker-opt-disabled{opacity:0}.picker-opts-left{-ms-flex-pack:start;justify-content:flex-start}.picker-opts-right{-ms-flex-pack:end;justify-content:flex-end}.picker-opt:active,.picker-opt:focus{outline:none}.picker-prefix{position:relative;-ms-flex:1;flex:1;text-align:end;white-space:nowrap}.picker-suffix{position:relative;-ms-flex:1;flex:1;text-align:start;white-space:nowrap}.picker-col{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:0;padding-bottom:0;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.picker-prefix,.picker-suffix,.picker-opts{top:77px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;color:inherit;font-size:22px;line-height:42px;pointer-events:none}.picker-opt{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;height:43px;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out;background:transparent;color:inherit;font-size:22px;line-height:42px;-webkit-backface-visibility:hidden;backface-visibility:hidden;pointer-events:auto}.picker-prefix,.picker-suffix,.picker-opt.picker-opt-selected{color:var(--ion-color-primary, #0054e9)}"};export{Vt as ion_datetime,Yt as ion_picker_legacy,Nt as ion_picker_legacy_column}
@@ -17,14 +17,21 @@ import type { DatetimePresentation, DatetimeChangeEventDetail, DatetimeParts, Ti
17
17
  * layout with `presentation="date-time"` or `"time-date"`.
18
18
  * @part time-button active - The time picker button when the picker is open.
19
19
  *
20
+ * @part calendar-header - The calendar header manages the date navigation controls (month/year picker and prev/next buttons) and the days of the week when using a grid style layout.
20
21
  * @part month-year-button - The button that opens the month/year picker when
21
22
  * using a grid style layout.
23
+ * @part prev-next-buttons - The buttons used to navigate to the next or previous month when using a grid style layout.
24
+ * @part prev-button - The button used to navigate to the previous month when using a grid style layout.
25
+ * @part next-button - The button used to navigate to the next month when using a grid style layout.
26
+ * @part days-of-week - The container for the day-of-the-week header (both weekdays and weekends) when using a grid style layout.
22
27
  *
23
28
  * @part calendar-day - The individual buttons that display a day inside of the datetime
24
29
  * calendar.
25
30
  * @part calendar-day active - The currently selected calendar day.
26
31
  * @part calendar-day today - The calendar day that contains the current day.
27
32
  * @part calendar-day disabled - The calendar day that is disabled.
33
+ *
34
+ * @part datetime-header - The datetime header contains the content for the `title` slot and the selected date.
28
35
  */
29
36
  export declare class Datetime implements ComponentInterface {
30
37
  private inputId;
@@ -1,14 +1,7 @@
1
1
  export interface RefresherEventDetail {
2
2
  complete(): void;
3
3
  }
4
- export interface RefresherPullEndEventDetail {
5
- reason: 'complete' | 'cancel';
6
- }
7
4
  export interface RefresherCustomEvent extends CustomEvent {
8
5
  detail: RefresherEventDetail;
9
6
  target: HTMLIonRefresherElement;
10
7
  }
11
- export interface RefresherPullEndCustomEvent extends CustomEvent {
12
- detail: RefresherPullEndEventDetail;
13
- target: HTMLIonRefresherElement;
14
- }
@@ -1,5 +1,5 @@
1
1
  import type { ComponentInterface, EventEmitter } from '../../stencil-public-runtime';
2
- import type { RefresherEventDetail, RefresherPullEndEventDetail } from './refresher-interface';
2
+ import type { RefresherEventDetail } from './refresher-interface';
3
3
  /**
4
4
  * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
5
5
  */
@@ -65,8 +65,8 @@ export declare class Refresher implements ComponentInterface {
65
65
  * than `1`. The default value is `1` which is equal to the speed of the cursor.
66
66
  * If a negative value is passed in, the factor will be `1` instead.
67
67
  *
68
- * For example, If the value passed is `1.2` and the content is dragged by
69
- * `10` pixels, instead of `10` pixels, the content will be pulled by `12` pixels
68
+ * For example: If the value passed is `1.2` and the content is dragged by
69
+ * `10` pixels, instead of `10` pixels the content will be pulled by `12` pixels
70
70
  * (an increase of 20 percent). If the value passed is `0.8`, the dragged amount
71
71
  * will be `8` pixels, less than the amount the cursor has moved.
72
72
  *
@@ -92,21 +92,8 @@ export declare class Refresher implements ComponentInterface {
92
92
  ionPull: EventEmitter<void>;
93
93
  /**
94
94
  * Emitted when the user begins to start pulling down.
95
- * TODO(FW-7044): Remove this in a major release
96
- *
97
- * @deprecated Use `ionPullStart` instead.
98
95
  */
99
96
  ionStart: EventEmitter<void>;
100
- /**
101
- * Emitted when the user begins to start pulling down.
102
- */
103
- ionPullStart: EventEmitter<void>;
104
- /**
105
- * Emitted when the refresher has returned to the inactive state
106
- * after a pull gesture. This fires whether the refresh completed
107
- * successfully or was canceled.
108
- */
109
- ionPullEnd: EventEmitter<RefresherPullEndEventDetail>;
110
97
  private checkNativeRefresher;
111
98
  private destroyNativeRefresher;
112
99
  private resetNativeRefresher;
@@ -29,7 +29,7 @@ import { PickerButton, PickerColumn } from "./components/picker-legacy/picker-in
29
29
  import { PopoverSize, PositionAlign, PositionReference, PositionSide, TriggerAction } from "./components/popover/popover-interface";
30
30
  import { RadioGroupChangeEventDetail, RadioGroupCompareFn } from "./components/radio-group/radio-group-interface";
31
31
  import { PinFormatter, RangeChangeEventDetail, RangeKnobMoveEndEventDetail, RangeKnobMoveStartEventDetail, RangeValue } from "./components/range/range-interface";
32
- import { RefresherEventDetail, RefresherPullEndEventDetail } from "./components/refresher/refresher-interface";
32
+ import { RefresherEventDetail } from "./components/refresher/refresher-interface";
33
33
  import { ItemReorderEventDetail, ReorderEndEventDetail, ReorderMoveEventDetail } from "./components/reorder-group/reorder-group-interface";
34
34
  import { NavigationHookCallback } from "./components/route/route-interface";
35
35
  import { SearchbarChangeEventDetail, SearchbarInputEventDetail } from "./components/searchbar/searchbar-interface";
@@ -67,7 +67,7 @@ export { PickerButton, PickerColumn } from "./components/picker-legacy/picker-in
67
67
  export { PopoverSize, PositionAlign, PositionReference, PositionSide, TriggerAction } from "./components/popover/popover-interface";
68
68
  export { RadioGroupChangeEventDetail, RadioGroupCompareFn } from "./components/radio-group/radio-group-interface";
69
69
  export { PinFormatter, RangeChangeEventDetail, RangeKnobMoveEndEventDetail, RangeKnobMoveStartEventDetail, RangeValue } from "./components/range/range-interface";
70
- export { RefresherEventDetail, RefresherPullEndEventDetail } from "./components/refresher/refresher-interface";
70
+ export { RefresherEventDetail } from "./components/refresher/refresher-interface";
71
71
  export { ItemReorderEventDetail, ReorderEndEventDetail, ReorderMoveEventDetail } from "./components/reorder-group/reorder-group-interface";
72
72
  export { NavigationHookCallback } from "./components/route/route-interface";
73
73
  export { SearchbarChangeEventDetail, SearchbarInputEventDetail } from "./components/searchbar/searchbar-interface";
@@ -2745,7 +2745,7 @@ export namespace Components {
2745
2745
  */
2746
2746
  "mode"?: "ios" | "md";
2747
2747
  /**
2748
- * How much to multiply the pull speed by. To slow the pull animation down, pass a number less than `1`. To speed up the pull, pass a number greater than `1`. The default value is `1` which is equal to the speed of the cursor. If a negative value is passed in, the factor will be `1` instead. For example, If the value passed is `1.2` and the content is dragged by `10` pixels, instead of `10` pixels, the content will be pulled by `12` pixels (an increase of 20 percent). If the value passed is `0.8`, the dragged amount will be `8` pixels, less than the amount the cursor has moved. Does not apply when the refresher content uses a spinner, enabling the native refresher.
2748
+ * How much to multiply the pull speed by. To slow the pull animation down, pass a number less than `1`. To speed up the pull, pass a number greater than `1`. The default value is `1` which is equal to the speed of the cursor. If a negative value is passed in, the factor will be `1` instead. For example: If the value passed is `1.2` and the content is dragged by `10` pixels, instead of `10` pixels the content will be pulled by `12` pixels (an increase of 20 percent). If the value passed is `0.8`, the dragged amount will be `8` pixels, less than the amount the cursor has moved. Does not apply when the refresher content uses a spinner, enabling the native refresher.
2749
2749
  * @default 1
2750
2750
  */
2751
2751
  "pullFactor": number;
@@ -4749,8 +4749,6 @@ declare global {
4749
4749
  "ionRefresh": RefresherEventDetail;
4750
4750
  "ionPull": void;
4751
4751
  "ionStart": void;
4752
- "ionPullStart": void;
4753
- "ionPullEnd": RefresherPullEndEventDetail;
4754
4752
  }
4755
4753
  interface HTMLIonRefresherElement extends Components.IonRefresher, HTMLStencilElement {
4756
4754
  addEventListener<K extends keyof HTMLIonRefresherElementEventMap>(type: K, listener: (this: HTMLIonRefresherElement, ev: IonRefresherCustomEvent<HTMLIonRefresherElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
@@ -7886,25 +7884,16 @@ declare namespace LocalJSX {
7886
7884
  * Emitted while the user is pulling down the content and exposing the refresher.
7887
7885
  */
7888
7886
  "onIonPull"?: (event: IonRefresherCustomEvent<void>) => void;
7889
- /**
7890
- * Emitted when the refresher has returned to the inactive state after a pull gesture. This fires whether the refresh completed successfully or was canceled.
7891
- */
7892
- "onIonPullEnd"?: (event: IonRefresherCustomEvent<RefresherPullEndEventDetail>) => void;
7893
- /**
7894
- * Emitted when the user begins to start pulling down.
7895
- */
7896
- "onIonPullStart"?: (event: IonRefresherCustomEvent<void>) => void;
7897
7887
  /**
7898
7888
  * Emitted when the user lets go of the content and has pulled down further than the `pullMin` or pulls the content down and exceeds the pullMax. Updates the refresher state to `refreshing`. The `complete()` method should be called when the async operation has completed.
7899
7889
  */
7900
7890
  "onIonRefresh"?: (event: IonRefresherCustomEvent<RefresherEventDetail>) => void;
7901
7891
  /**
7902
- * Emitted when the user begins to start pulling down. TODO(FW-7044): Remove this in a major release
7903
- * @deprecated Use `ionPullStart` instead.
7892
+ * Emitted when the user begins to start pulling down.
7904
7893
  */
7905
7894
  "onIonStart"?: (event: IonRefresherCustomEvent<void>) => void;
7906
7895
  /**
7907
- * How much to multiply the pull speed by. To slow the pull animation down, pass a number less than `1`. To speed up the pull, pass a number greater than `1`. The default value is `1` which is equal to the speed of the cursor. If a negative value is passed in, the factor will be `1` instead. For example, If the value passed is `1.2` and the content is dragged by `10` pixels, instead of `10` pixels, the content will be pulled by `12` pixels (an increase of 20 percent). If the value passed is `0.8`, the dragged amount will be `8` pixels, less than the amount the cursor has moved. Does not apply when the refresher content uses a spinner, enabling the native refresher.
7896
+ * How much to multiply the pull speed by. To slow the pull animation down, pass a number less than `1`. To speed up the pull, pass a number greater than `1`. The default value is `1` which is equal to the speed of the cursor. If a negative value is passed in, the factor will be `1` instead. For example: If the value passed is `1.2` and the content is dragged by `10` pixels, instead of `10` pixels the content will be pulled by `12` pixels (an increase of 20 percent). If the value passed is `0.8`, the dragged amount will be `8` pixels, less than the amount the cursor has moved. Does not apply when the refresher content uses a spinner, enabling the native refresher.
7908
7897
  * @default 1
7909
7898
  */
7910
7899
  "pullFactor"?: number;
@@ -24,7 +24,7 @@ export { PopoverOptions } from './components/popover/popover-interface';
24
24
  export { RadioGroupCustomEvent } from './components/radio-group/radio-group-interface';
25
25
  export { RangeCustomEvent, PinFormatter } from './components/range/range-interface';
26
26
  export { RouterCustomEvent } from './components/router/utils/interface';
27
- export { RefresherCustomEvent, RefresherPullEndCustomEvent } from './components/refresher/refresher-interface';
27
+ export { RefresherCustomEvent } from './components/refresher/refresher-interface';
28
28
  export {
29
29
  ItemReorderCustomEvent,
30
30
  ReorderEndCustomEvent,
package/hydrate/index.js CHANGED
@@ -12880,14 +12880,21 @@ const datetimeMdCss = ":host{display:-ms-flexbox;display:flex;-ms-flex-flow:colu
12880
12880
  * layout with `presentation="date-time"` or `"time-date"`.
12881
12881
  * @part time-button active - The time picker button when the picker is open.
12882
12882
  *
12883
+ * @part calendar-header - The calendar header manages the date navigation controls (month/year picker and prev/next buttons) and the days of the week when using a grid style layout.
12883
12884
  * @part month-year-button - The button that opens the month/year picker when
12884
12885
  * using a grid style layout.
12886
+ * @part prev-next-buttons - The buttons used to navigate to the next or previous month when using a grid style layout.
12887
+ * @part prev-button - The button used to navigate to the previous month when using a grid style layout.
12888
+ * @part next-button - The button used to navigate to the next month when using a grid style layout.
12889
+ * @part days-of-week - The container for the day-of-the-week header (both weekdays and weekends) when using a grid style layout.
12885
12890
  *
12886
12891
  * @part calendar-day - The individual buttons that display a day inside of the datetime
12887
12892
  * calendar.
12888
12893
  * @part calendar-day active - The currently selected calendar day.
12889
12894
  * @part calendar-day today - The calendar day that contains the current day.
12890
12895
  * @part calendar-day disabled - The calendar day that is disabled.
12896
+ *
12897
+ * @part datetime-header - The datetime header contains the content for the `title` slot and the selected date.
12891
12898
  */
12892
12899
  class Datetime {
12893
12900
  constructor(hostRef) {
@@ -14229,11 +14236,11 @@ class Datetime {
14229
14236
  const nextMonthDisabled = disabled || isNextMonthDisabled(this.workingParts, this.maxParts);
14230
14237
  // don't use the inheritAttributes util because it removes dir from the host, and we still need that
14231
14238
  const hostDir = this.el.getAttribute('dir') || undefined;
14232
- return (hAsync("div", { class: "calendar-header" }, hAsync("div", { class: "calendar-action-buttons" }, hAsync("div", { class: "calendar-month-year" }, hAsync("button", { class: {
14239
+ return (hAsync("div", { class: "calendar-header", part: "calendar-header" }, hAsync("div", { class: "calendar-action-buttons" }, hAsync("div", { class: "calendar-month-year" }, hAsync("button", { class: {
14233
14240
  'calendar-month-year-toggle': true,
14234
14241
  'ion-activatable': true,
14235
14242
  'ion-focusable': true,
14236
- }, part: "month-year-button", disabled: disabled, "aria-label": this.showMonthAndYear ? 'Hide year picker' : 'Show year picker', onClick: () => this.toggleMonthAndYearView() }, hAsync("span", { id: "toggle-wrapper" }, getMonthAndYear(this.locale, this.workingParts), hAsync("ion-icon", { "aria-hidden": "true", icon: this.showMonthAndYear ? expandedIcon : collapsedIcon, lazy: false, flipRtl: true })), mode === 'md' && hAsync("ion-ripple-effect", null))), hAsync("div", { class: "calendar-next-prev" }, hAsync("ion-buttons", null, hAsync("ion-button", { "aria-label": "Previous month", disabled: prevMonthDisabled, onClick: () => this.prevMonth() }, hAsync("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: chevronBack, lazy: false, flipRtl: true })), hAsync("ion-button", { "aria-label": "Next month", disabled: nextMonthDisabled, onClick: () => this.nextMonth() }, hAsync("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: chevronForward, lazy: false, flipRtl: true }))))), hAsync("div", { class: "calendar-days-of-week", "aria-hidden": "true" }, getDaysOfWeek(this.locale, mode, this.firstDayOfWeek % 7).map((d) => {
14243
+ }, part: "month-year-button", disabled: disabled, "aria-label": this.showMonthAndYear ? 'Hide year picker' : 'Show year picker', onClick: () => this.toggleMonthAndYearView() }, hAsync("span", { id: "toggle-wrapper" }, getMonthAndYear(this.locale, this.workingParts), hAsync("ion-icon", { "aria-hidden": "true", icon: this.showMonthAndYear ? expandedIcon : collapsedIcon, lazy: false, flipRtl: true })), mode === 'md' && hAsync("ion-ripple-effect", null))), hAsync("div", { class: "calendar-next-prev" }, hAsync("ion-buttons", null, hAsync("ion-button", { "aria-label": "Previous month", disabled: prevMonthDisabled, onClick: () => this.prevMonth(), part: "prev-next-buttons prev-button" }, hAsync("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: chevronBack, lazy: false, flipRtl: true })), hAsync("ion-button", { "aria-label": "Next month", disabled: nextMonthDisabled, onClick: () => this.nextMonth(), part: "prev-next-buttons next-button" }, hAsync("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: chevronForward, lazy: false, flipRtl: true }))))), hAsync("div", { class: "calendar-days-of-week", "aria-hidden": "true", part: "days-of-week" }, getDaysOfWeek(this.locale, mode, this.firstDayOfWeek % 7).map((d) => {
14237
14244
  return hAsync("div", { class: "day-of-week" }, d);
14238
14245
  }))));
14239
14246
  }
@@ -14465,7 +14472,7 @@ class Datetime {
14465
14472
  if (!hasSlottedTitle && !this.showDefaultTitle) {
14466
14473
  return;
14467
14474
  }
14468
- return (hAsync("div", { class: "datetime-header" }, hAsync("div", { class: "datetime-title" }, hAsync("slot", { name: "title" }, "Select Date")), showExpandedHeader && hAsync("div", { class: "datetime-selected-date" }, this.getHeaderSelectedDateText())));
14475
+ return (hAsync("div", { class: "datetime-header", part: "datetime-header" }, hAsync("div", { class: "datetime-title" }, hAsync("slot", { name: "title" }, "Select Date")), showExpandedHeader && hAsync("div", { class: "datetime-selected-date" }, this.getHeaderSelectedDateText())));
14469
14476
  }
14470
14477
  /**
14471
14478
  * Render time picker inside of datetime.
@@ -14545,7 +14552,7 @@ class Datetime {
14545
14552
  const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
14546
14553
  const hasWheelVariant = hasDatePresentation && preferWheel;
14547
14554
  renderHiddenInput(true, el, name, formatValue(value), disabled);
14548
- return (hAsync(Host, { key: '19e20c9b6b5f9467e91a2567b6dc7d9d38b56cc3', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses$1(color, {
14555
+ return (hAsync(Host, { key: '3d0787ecb3ad104c4a60d68a6e57140f018a70f2', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses$1(color, {
14549
14556
  [mode]: true,
14550
14557
  ['datetime-readonly']: readonly,
14551
14558
  ['datetime-disabled']: disabled,
@@ -14555,7 +14562,7 @@ class Datetime {
14555
14562
  [`datetime-size-${size}`]: true,
14556
14563
  [`datetime-prefer-wheel`]: hasWheelVariant,
14557
14564
  [`datetime-grid`]: isGridStyle,
14558
- })) }, hAsync("div", { key: 'e31b5ef76cd6262dafd39f2d21980887880ec32e', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
14565
+ })) }, hAsync("div", { key: '6b245a0033d5ddd1918bc839f142141bf5ec54c5', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
14559
14566
  }
14560
14567
  get el() { return getElement(this); }
14561
14568
  static get watchers() { return {
@@ -29700,8 +29707,6 @@ class Refresher {
29700
29707
  this.ionRefresh = createEvent(this, "ionRefresh", 7);
29701
29708
  this.ionPull = createEvent(this, "ionPull", 7);
29702
29709
  this.ionStart = createEvent(this, "ionStart", 7);
29703
- this.ionPullStart = createEvent(this, "ionPullStart", 7);
29704
- this.ionPullEnd = createEvent(this, "ionPullEnd", 7);
29705
29710
  this.appliedStyles = false;
29706
29711
  this.didStart = false;
29707
29712
  this.progress = 0;
@@ -29756,8 +29761,8 @@ class Refresher {
29756
29761
  * than `1`. The default value is `1` which is equal to the speed of the cursor.
29757
29762
  * If a negative value is passed in, the factor will be `1` instead.
29758
29763
  *
29759
- * For example, If the value passed is `1.2` and the content is dragged by
29760
- * `10` pixels, instead of `10` pixels, the content will be pulled by `12` pixels
29764
+ * For example: If the value passed is `1.2` and the content is dragged by
29765
+ * `10` pixels, instead of `10` pixels the content will be pulled by `12` pixels
29761
29766
  * (an increase of 20 percent). If the value passed is `0.8`, the dragged amount
29762
29767
  * will be `8` pixels, less than the amount the cursor has moved.
29763
29768
  *
@@ -29807,9 +29812,6 @@ class Refresher {
29807
29812
  this.animations = [];
29808
29813
  this.progress = 0;
29809
29814
  this.state = 1 /* RefresherState.Inactive */;
29810
- this.ionPullEnd.emit({
29811
- reason: state === 32 /* RefresherState.Completing */ ? 'complete' : 'cancel',
29812
- });
29813
29815
  }
29814
29816
  async setupiOSNativeRefresher(pullingSpinner, refreshingSpinner) {
29815
29817
  this.elementToTransform = this.scrollEl;
@@ -29842,7 +29844,6 @@ class Refresher {
29842
29844
  if (!this.didStart) {
29843
29845
  this.didStart = true;
29844
29846
  this.ionStart.emit();
29845
- this.ionPullStart.emit();
29846
29847
  }
29847
29848
  // emit "pulling" on every move
29848
29849
  if (this.pointerDown) {
@@ -29918,7 +29919,6 @@ class Refresher {
29918
29919
  this.lastVelocityY = ev.velocityY;
29919
29920
  },
29920
29921
  onEnd: () => {
29921
- const hadStarted = this.didStart;
29922
29922
  this.pointerDown = false;
29923
29923
  this.didStart = false;
29924
29924
  if (this.needsCompletion) {
@@ -29928,13 +29928,6 @@ class Refresher {
29928
29928
  else if (this.didRefresh) {
29929
29929
  readTask(() => translateElement(this.elementToTransform, `${this.el.clientHeight}px`));
29930
29930
  }
29931
- else if (hadStarted) {
29932
- /**
29933
- * User started pulling but released before reaching the refresh threshold.
29934
- * Emit ionPullEnd to complete the event pair.
29935
- */
29936
- this.ionPullEnd.emit({ reason: 'cancel' });
29937
- }
29938
29931
  },
29939
29932
  });
29940
29933
  this.disabledChanged();
@@ -29981,7 +29974,6 @@ class Refresher {
29981
29974
  ev.data.animation = animation;
29982
29975
  animation.progressStart(false, 0);
29983
29976
  this.ionStart.emit();
29984
- this.ionPullStart.emit();
29985
29977
  this.animations.push(animation);
29986
29978
  return;
29987
29979
  }
@@ -30004,7 +29996,6 @@ class Refresher {
30004
29996
  this.animations = [];
30005
29997
  this.gesture.enable(true);
30006
29998
  this.state = 1 /* RefresherState.Inactive */;
30007
- this.ionPullEnd.emit({ reason: 'cancel' });
30008
29999
  });
30009
30000
  return;
30010
30001
  }
@@ -30249,7 +30240,6 @@ class Refresher {
30249
30240
  if (!this.didStart) {
30250
30241
  this.didStart = true;
30251
30242
  this.ionStart.emit();
30252
- this.ionPullStart.emit();
30253
30243
  }
30254
30244
  // emit "pulling" on every move
30255
30245
  this.ionPull.emit();
@@ -30293,15 +30283,6 @@ class Refresher {
30293
30283
  * available right away.
30294
30284
  */
30295
30285
  this.restoreOverflowStyle();
30296
- /**
30297
- * If ionPullStart was emitted, we need to emit ionPullEnd
30298
- * even though the gesture was aborted before reaching the
30299
- * pulling threshold.
30300
- */
30301
- if (this.didStart) {
30302
- this.didStart = false;
30303
- this.ionPullEnd.emit({ reason: 'cancel' });
30304
- }
30305
30286
  }
30306
30287
  }
30307
30288
  beginRefresh() {
@@ -30348,9 +30329,6 @@ class Refresher {
30348
30329
  if (this.contentFullscreen && this.backgroundContentEl) {
30349
30330
  (_a = this.backgroundContentEl) === null || _a === void 0 ? void 0 : _a.style.removeProperty('--offset-top');
30350
30331
  }
30351
- this.ionPullEnd.emit({
30352
- reason: state === 32 /* RefresherState.Completing */ ? 'complete' : 'cancel',
30353
- });
30354
30332
  }, 600);
30355
30333
  // reset the styles on the scroll element
30356
30334
  // set that the refresh is actively cancelling/completing
@@ -30404,7 +30382,7 @@ class Refresher {
30404
30382
  }
30405
30383
  render() {
30406
30384
  const mode = getIonMode$1(this);
30407
- return (hAsync(Host, { key: 'bed0c2f44c32ecac24b7d8326ac7c7ef1d12c44f', slot: "fixed", class: {
30385
+ return (hAsync(Host, { key: '2d1bd880877b698604542ab2d602d38b9504d975', slot: "fixed", class: {
30408
30386
  [mode]: true,
30409
30387
  // Used internally for styling
30410
30388
  [`refresher-${mode}`]: true,