@ionic/core 9.0.11-dev.11793889755.165fa328 → 9.0.11-dev.11793890855.1bf6a6e5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/ion-accordion.js +1 -1
- package/components/ion-datetime-button.js +1 -1
- package/components/ion-datetime.js +1 -1
- package/components/{p-BCQSEpww.js → p-B7ExaLVL.js} +1 -1
- package/css/ionic/bundle.ionic.css +1 -1
- package/css/ionic/bundle.ionic.css.map +1 -1
- package/css/ionic/core.ionic.css +1 -1
- package/css/ionic/core.ionic.css.map +1 -1
- package/dist/cjs/ion-accordion_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-datetime-button.cjs.entry.js +33 -6
- package/dist/cjs/ion-datetime.cjs.entry.js +339 -37
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/accordion/accordion.ionic.css +11 -6
- package/dist/collection/components/datetime/datetime.ionic.css +211 -5
- package/dist/collection/components/datetime/datetime.ios.css +164 -0
- package/dist/collection/components/datetime/datetime.js +394 -36
- package/dist/collection/components/datetime/datetime.md.css +152 -0
- package/dist/collection/components/datetime/utils/state.js +18 -1
- package/dist/collection/components/datetime-button/datetime-button.js +34 -6
- package/dist/docs.json +153 -3
- package/dist/esm/{format-NT7iHsbA.js → format-DUHrIiJq.js} +1 -1
- package/dist/esm/ion-accordion_2.entry.js +1 -1
- package/dist/esm/ion-datetime-button.entry.js +34 -7
- package/dist/esm/ion-datetime.entry.js +340 -38
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/html.html-data.json +21 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-0f694e87.entry.js → p-8b107444.entry.js} +1 -1
- package/dist/ionic/{p-BtccSO5J.js → p-CaOPF8Xt.js} +1 -1
- package/dist/ionic/p-ceca04fb.entry.js +4 -0
- package/dist/ionic/p-ec99dc1f.entry.js +4 -0
- package/dist/types/components/datetime/datetime-interface.d.ts +4 -0
- package/dist/types/components/datetime/datetime.d.ts +73 -6
- package/dist/types/components/datetime/utils/state.d.ts +5 -2
- package/dist/types/components.d.ts +37 -4
- package/hydrate/index.js +381 -44
- package/hydrate/index.mjs +381 -44
- package/package.json +1 -1
- package/dist/ionic/p-0743a26a.entry.js +0 -4
- package/dist/ionic/p-ad46d2fd.entry.js +0 -4
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
+
*/
|
|
4
|
+
import{c as e,a as t,r as a,d as n,w as i,i as r,h as o,f as d,g as s}from"./p-hR6kxzTq.js";import{startFocusVisible as l}from"./p-BYk20Mf5.js";import{r as c,g as h,a as p}from"./p-B36ii-hs.js";import{F as m}from"./p-CXkgZKSx.js";import{i as g}from"./p-Dj4J3LkD.js";import{c as y}from"./p-BUF_V-Kg.js";import{b,c as f,d as u,e as x,f as v}from"./p-BkJpfpXI.js";import{b as k,c as w}from"./p-DOdxt_P_.js";import{r as C,g as j,a as z,b as P,c as $,d as D,e as I,f as S,h as A,i as E,j as T,k as M,l as O,m as R,n as V,o as U,p as W,q as B,s as H,v as F,t as Y,u as L,w as G,x as Z,y as N,z as q,A as _,B as J,C as K,D as X,E as Q,F as ee,G as te,H as ae,I as ne,J as ie,K as re,L as oe,M as de,N as se,O as le,P as ce,Q as he}from"./p-CaOPF8Xt.js";import"./p-ZjP4CjeZ.js";import"./p-Co3ilg7B.js";import"./p-B_gJaBk0.js";const pe=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59],me=[0,1,2,3,4,5,6,7,8,9,10,11],ge=[0,1,2,3,4,5,6,7,8,9,10,11],ye=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23],be=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,0],fe=(e,t,a="h12",n,i,r,o)=>{const d=D(e,a),s=R(d);let l=(e=>{switch(e){case"h11":return me;case"h12":return ge;case"h23":return ye;case"h24":return be;default:throw new Error(`Invalid hour cycle "${e}"`)}})(d),c=pe,h=!0,p=!0;if(r&&(l=l.filter((e=>r.includes(e)))),o&&(c=c.filter((e=>o.includes(e)))),n)if(M(t,n)){if(void 0!==n.hour&&(l=l.filter((e=>(s?e:"pm"===t.ampm?(e+12)%24:e)>=n.hour)),h=n.hour<13),void 0!==n.minute){let e=!1;void 0!==n.hour&&void 0!==t.hour&&t.hour>n.hour&&(e=!0),c=c.filter((t=>!!e||t>=n.minute))}}else T(t,n)&&(l=[],c=[],h=p=!1);return i&&(M(t,i)?(void 0!==i.hour&&(l=l.filter((e=>(s?e:"pm"===t.ampm?(e+12)%24:e)<=i.hour)),p=i.hour>=12),void 0!==i.minute&&t.hour===i.hour&&(c=c.filter((e=>e<=i.minute)))):O(t,i)&&(l=[],c=[],h=p=!1)),{hours:l,minutes:c,am:h,pm:p}},ue=(e,t)=>{const a={month:e.month,year:e.year,day:e.day};if(void 0!==t&&(e.month!==t.month||e.year!==t.year)){const n={month:t.month,year:t.year,day:t.day};return T(n,a)?[n,a,j(e)]:[z(e),a,n]}return[z(e),a,j(e)]},xe=(e,t,a,n,i,r={day:"numeric"})=>{const{month:o,year:d}=t,s=[],l=V(o,d),c=null!=n?.day&&n.year===d&&n.month===o?n.day:l,h=null!=a?.day&&a.year===d&&a.month===o?a.day:1;if(void 0!==i){let t=i;t=t.filter((e=>e>=h&&e<=c)),t.forEach((t=>{const a=new Date(`${o}/${t}/${d} GMT+0000`),n=new Intl.DateTimeFormat(e,{...r,timeZone:"UTC"}).format(a);s.push({text:n,value:t})}))}else for(let t=h;t<=c;t++){const a=new Date(`${o}/${t}/${d} GMT+0000`),n=new Intl.DateTimeFormat(e,{...r,timeZone:"UTC"}).format(a);s.push({text:n,value:t})}return s},ve=(e,t)=>e.month===t.month&&e.year===t.year?[e]:[e,...ve(j(e),t)],ke=(e,t,a,n)=>null===e.day||void 0!==n&&!n.includes(e.day)||!(!t||!T(e,t))||!(!a||!O(e,a)),we=(e,t,a,n,i,r,o,d)=>{const s=void 0!==(Array.isArray(a)?a:[a]).find((e=>M(t,e))),l=M(t,n),c=ke(t,i,r,o);let h=!1,p=!1,m=!1;if(d){const{start:e,end:a}=d;h=M(t,e),a&&(p=M(t,a),m=!c&&!h&&!p&&O(t,e)&&T(t,a))}return{disabled:c,isActive:s,isToday:l,isRangeStart:h,isRangeEnd:p,isInRange:m,ariaSelected:s?"true":null,ariaLabel:W(e,l,t),text:null!=t.day?U(e,t):null}},Ce=(e,{minParts:t,maxParts:a})=>!!((e,t,a)=>!!(t&&t.year>e)||!!(a&&a.year<e))(e.year,t,a)||!!(t&&T(e,t)||a&&O(e,a)),je=(e,a)=>{(a?.date?.timeZone||a?.date?.timeZoneName||a?.time?.timeZone||a?.time?.timeZoneName)&&t('[ion-datetime] - "timeZone" and "timeZoneName" are not supported in "formatOptions".',e)},ze=(e,a,n)=>{if(n)switch(a){case"date":case"month-year":case"month":case"year":void 0===n.date&&t(`[ion-datetime] - The '${a}' presentation requires a date object in formatOptions.`,e);break;case"time":void 0===n.time&&t("[ion-datetime] - The 'time' presentation requires a time object in formatOptions.",e);break;case"date-time":case"time-date":void 0===n.date&&void 0===n.time&&t(`[ion-datetime] - The '${a}' presentation requires either a date or time object (or both) in formatOptions.`,e)}},Pe=class{constructor(e){a(this,e),this.ionCancel=n(this,"ionCancel",7),this.ionChange=n(this,"ionChange",7),this.ionValueChange=n(this,"ionValueChange",7),this.ionFocus=n(this,"ionFocus",7),this.ionBlur=n(this,"ionBlur",7),this.ionStyle=n(this,"ionStyle",7),this.ionRender=n(this,"ionRender",7),this.inputId="ion-dt-"+$e++,this.hasUnconfirmedSelection=!1,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.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.startDateLabel="Start date",this.endDateLabel="End date",this.showDefaultTitle=!1,this.showDefaultButtons=!1,this.showClearButton=!1,this.showDefaultTimeLabel=!0,this.size="fixed",this.preferWheel=!1,this.warnIfIncorrectValueUsage=()=>{const{value:e}=this;this.isMultipleMode||this.isRangeMode||!Array.isArray(e)||t(`[ion-datetime] - An array of values was passed, but neither selectionMode="multiple" nor selectionMode="range" is set. This is incorrect usage and may result in unexpected behaviors.\n\n Value Passed: [${e.map((e=>`'${e}'`)).join(", ")}]\n`,this.el),this.isRangeMode&&Array.isArray(e)&&e.length>2&&t(`[ion-datetime] - More than 2 values were passed with selectionMode="range". Only the first and last values will be used.\n\n Value Passed: [${e.map((e=>`'${e}'`)).join(", ")}]\n`,this.el)},this.setValue=e=>{this.value=e,this.ionChange.emit({value:e})},this.getActivePartsWithFallback=()=>{const{defaultParts:e}=this;return this.getActivePart()??e},this.getActivePart=()=>{const{activeParts:e}=this;return this.isRangeParts(e)?e.start:Array.isArray(e)?e[0]:e},this.closeParentOverlay=e=>{const t=this.el.closest("ion-modal, ion-popover");return t&&t.dismiss(void 0,e),null!==t},this.setWorkingParts=e=>{this.workingParts={...e}},this.rangeContainsDisabledDate=(e,t)=>{const{minParts:a,maxParts:n,parsedDayValues:i,parsedMonthValues:r,parsedYearValues:o,isDateEnabled:d}=this;let s=B(e);for(;T(s,t);){if(ke(s,a,n,i)||void 0!==r&&!r.includes(s.month)||void 0!==o&&!o.includes(s.year))return!0;if(d)try{if(!d(H(s)))return!0}catch{}s=B(s)}return!1},this.setActiveParts=(e,t=!1)=>{if(this.readonly)return;this.hasUnconfirmedSelection=!0;const{minParts:a,maxParts:n,activeParts:i}=this,r=F(e,a,n);if(this.setWorkingParts(r),this.isRangeMode)this.setActivePartsRange(r);else if(this.isMultipleMode){const e=Array.isArray(i)?i:[i];this.activeParts=t?e.filter((e=>!M(e,r))):[...e,r]}else this.activeParts={...r};null!==this.el.querySelector('[slot="buttons"]')||this.showDefaultButtons||this.confirm()},this.setActivePartsRange=e=>{const t=this.rangeParts;this.activeParts=!t||T(e,t.start)||this.rangeContainsDisabledDate(t.start,e)?{start:e}:{start:t.start,end:e}},this.initializeKeyboardListeners=()=>{const e=this.calendarBodyRef;if(!e)return;const t=this.el.shadowRoot,a=e.querySelector(".calendar-month:nth-of-type(2)"),n=new MutationObserver((t=>{const n=t[0];!n.oldValue?.includes("ion-focused")&&e.classList.contains("ion-focused")&&this.focusWorkingDay(a)}));n.observe(e,{attributeFilter:["class"],attributeOldValue:!0}),this.destroyKeyboardMO=()=>{n?.disconnect()},e.addEventListener("keydown",(e=>{const n=t.activeElement;if(!n||!n.classList.contains("calendar-day"))return;const i=Y(n);let r;switch(e.key){case"ArrowDown":e.preventDefault(),r=J(i);break;case"ArrowUp":e.preventDefault(),r=_(i);break;case"ArrowRight":e.preventDefault(),r=B(i);break;case"ArrowLeft":e.preventDefault(),r=q(i);break;case"Home":e.preventDefault(),r=N(i);break;case"End":e.preventDefault(),r=Z(i);break;case"PageUp":e.preventDefault(),r=e.shiftKey?G(i):z(i);break;case"PageDown":e.preventDefault(),r=e.shiftKey?L(i):j(i);break;default:return}ke(r,this.minParts,this.maxParts)||(this.setWorkingParts({...this.workingParts,...r}),requestAnimationFrame((()=>this.focusWorkingDay(a))))}))},this.focusWorkingDay=e=>{const{day:t,month:a,year:n}=this.workingParts,i=new Date(`${a}/1/${n}`).getDay();if(null===t)return;const r=e.querySelector(`.calendar-day-wrapper:nth-of-type(${(i>=this.firstDayOfWeek?i-this.firstDayOfWeek:7-(this.firstDayOfWeek-i))+t}) .calendar-day`);r&&r.focus()},this.processMinParts=()=>{const{min:e,defaultParts:t}=this;this.minParts=void 0!==e?K(e,t):void 0},this.processMaxParts=()=>{const{max:e,defaultParts:t}=this;this.maxParts=void 0!==e?X(e,t):void 0},this.initializeCalendarListener=()=>{const e=this.calendarBodyRef;if(!e)return;const t=e.querySelectorAll(".calendar-month"),a=t[0],n=t[1],r=t[2],o="ios"===k(this)&&"undefined"!=typeof navigator&&navigator.maxTouchPoints>1;i((()=>{e.scrollLeft=a.clientWidth*(g(this.el)?-1:1);const t=t=>{const n=e.getBoundingClientRect(),i=(g(this.el)?e.scrollLeft>=-2:e.scrollLeft<=2)?a:r,o=i.getBoundingClientRect();if(Math.abs(o.x-n.x)>2)return;const{forceRenderDate:d}=this;return void 0!==d?{month:d.month,year:d.year,day:d.day}:i===a?z(t):i===r?j(t):void 0},d=()=>{o&&(e.style.removeProperty("pointer-events"),l=!1);const a=t(this.workingParts);if(!a)return;const{month:r,day:d,year:s}=a;Ce({month:r,year:s,day:null},{minParts:{...this.minParts,day:null},maxParts:{...this.maxParts,day:null}})||(e.style.setProperty("overflow","hidden"),i((()=>{this.setWorkingParts({...this.workingParts,month:r,day:d,year:s}),e.scrollLeft=n.clientWidth*(g(this.el)?-1:1),e.style.removeProperty("overflow"),this.resolveForceDateScrolling&&this.resolveForceDateScrolling();const t=this.el.shadowRoot.activeElement;t&&t.classList.contains("calendar-day")&&t.closest(".calendar-body")?.focus()})))};let s,l=!1;const c=()=>{s&&clearTimeout(s),!l&&o&&(e.style.setProperty("pointer-events","none"),l=!0),s=setTimeout(d,50)};e.addEventListener("scroll",c),this.destroyCalendarListener=()=>{e.removeEventListener("scroll",c)}}))},this.destroyInteractionListeners=()=>{const{destroyCalendarListener:e,destroyKeyboardMO:t}=this;void 0!==e&&e(),void 0!==t&&t()},this.ensureReadyIfVisible=()=>{this.el.classList.contains("datetime-ready")||this.hasLayoutBox()&&this.markReady()},this.hasLayoutBox=()=>{const{width:e,height:t}=this.el.getBoundingClientRect();return e>0&&t>0},this.markReady=()=>{this.el.classList.contains("datetime-ready")||(this.initializeListeners(),i((()=>{this.el.classList.add("datetime-ready")})))},this.loadTimeoutCleanup=()=>{this.loadTimeout&&(clearTimeout(this.loadTimeout),this.loadTimeout=void 0)},this.processValue=(e,t=!0)=>{this.hasUnconfirmedSelection=!1;const a=null!=e&&""!==e&&(!Array.isArray(e)||e.length>0),n=a?Q(e):this.defaultParts,{minParts:i,maxParts:r,workingParts:o,el:d}=this;if(this.warnIfIncorrectValueUsage(),!n)return;if(a&&ee(n,i,r),this.isRangeMode){let e;if(a&&Array.isArray(n)){let t=n;t.length>2&&(t=[t[0],t[t.length-1]]);let a=t[0],i=t.length>1?t[1]:void 0;if(i&&O(a,i)){const e=a;a=i,i=e}this.activeParts=i?{start:a,end:i}:{start:a},e=a,i&&i.month===o.month&&i.year===o.year&&(e=i)}else this.activeParts=[],e=Array.isArray(n)?n[0]:n;const t=te(e,i,r),{month:s,day:l,year:c}=t,h=void 0!==s&&s!==o.month||void 0!==c&&c!==o.year,p=d.classList.contains("datetime-ready"),{isGridStyle:m,showMonthAndYear:g}=this;return void(m&&h&&p&&!g?this.animateToDate(t):this.setWorkingParts({month:s,day:l,year:c,hour:0,minute:0,ampm:"am"}))}const s=Array.isArray(n)?n[n.length-1]:n,l=te(s,i,r),{month:c,day:h,year:p,hour:m,minute:g}=l,y=ae(m);this.activeParts=a?Array.isArray(n)?[...n]:{month:c,day:h,year:p,hour:m,minute:g,ampm:y}:[];const b=void 0!==c&&c!==o.month||void 0!==p&&p!==o.year,f=d.classList.contains("datetime-ready"),{isGridStyle:u,showMonthAndYear:x}=this;u&&b&&f&&!x&&t?this.animateToDate(l):this.setWorkingParts({month:c,day:h,year:p,hour:m,minute:g,ampm:y})},this.animateToDate=async e=>{const{workingParts:t}=this;this.forceRenderDate=e;const a=new Promise((e=>{this.resolveForceDateScrolling=e}));T(e,t)?this.prevMonth():this.nextMonth(),await a,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 e=this.calendarBodyRef;if(!e)return;const t=e.querySelector(".calendar-month:last-of-type");if(!t)return;const a=2*t.offsetWidth,n=r.getBoolean("animated",!0)?"smooth":"instant";e.scrollTo({top:0,left:a*(g(this.el)?-1:1),behavior:n})},this.prevMonth=()=>{const e=this.calendarBodyRef;if(!e)return;const t=e.querySelector(".calendar-month:first-of-type");if(!t)return;const a=2*t.offsetWidth,n=r.getBoolean("animated",!0)?"smooth":"instant";e.scrollTo({top:0,left:a*(g(this.el)?1:-1),behavior:n})},this.toggleMonthAndYearView=()=>{this.showMonthAndYear=!this.showMonthAndYear}}formatOptionsChanged(){const{el:e,formatOptions:t,presentation:a}=this;ze(e,a,t),je(e,t)}disabledChanged(){this.emitStyle()}minChanged(){this.processMinParts()}maxChanged(){this.processMaxParts()}presentationChanged(){const{el:e,formatOptions:t,presentation:a}=this;ze(e,a,t)}get isGridStyle(){const{presentation:e,preferWheel:t}=this;return("date"===e||"date-time"===e||"time-date"===e)&&!t}get isMultipleMode(){return"multiple"===this.selectionMode||void 0===this.selectionMode&&this.multiple}get isRangeMode(){return"range"===this.selectionMode}isRangeParts(e){return this.isRangeMode&&null!==e&&"object"==typeof e&&!Array.isArray(e)&&"start"in e}get rangeParts(){if(this.isRangeParts(this.activeParts))return this.activeParts}yearValuesChanged(){this.parsedYearValues=ne(this.yearValues)}monthValuesChanged(){this.parsedMonthValues=ne(this.monthValues)}dayValuesChanged(){this.parsedDayValues=ne(this.dayValues)}hourValuesChanged(){this.parsedHourValues=ne(this.hourValues)}minuteValuesChanged(){this.parsedMinuteValues=ne(this.minuteValues)}async valueChanged(){const{value:e}=this;this.hasValue()&&this.processValue(e),this.emitStyle(),this.ionValueChange.emit({value:e})}async confirm(e=!1){const{isCalendarPicker:t,activeParts:a,preferWheel:n,workingParts:i}=this;if(this.isRangeMode){if(!this.isRangeParts(a)||!a.end)return;return this.setValue([H(a.start),H(a.end)]),void(e&&this.closeParentOverlay(Ie))}if(void 0!==a||!t){const e=Array.isArray(a);this.setValue(e&&0===a.length?n?H(i):void 0:H(a))}this.hasUnconfirmedSelection=!1,e&&this.closeParentOverlay(Ie)}async reset(e){if(this.isRangeMode){if(this.activeParts=[],this.hasUnconfirmedSelection=!1,e){const t=Q(e);if(t){const e=Array.isArray(t)?t[0]:t;this.setWorkingParts(te(e,this.minParts,this.maxParts))}}}else this.processValue(e)}async cancel(e=!1){this.ionCancel.emit(),e&&this.closeParentOverlay(De)||this.processValue(this.value)}async getDefaultPart(){return this.defaultParts}get isCalendarPicker(){const{presentation:e}=this;return"date"===e||"date-time"===e||"time-date"===e}connectedCallback(){this.clearFocusVisible=l(this.el).destroy,this.loadTimeout=setTimeout((()=>{this.ensureReadyIfVisible()}),100),this.initializeOverlayPresentListener()}disconnectedCallback(){this.clearFocusVisible&&(this.clearFocusVisible(),this.clearFocusVisible=void 0),this.loadTimeoutCleanup(),this.destroyOverlayPresentListener&&(this.destroyOverlayPresentListener(),this.destroyOverlayPresentListener=void 0)}initializeOverlayPresentListener(){const e=this.el.closest("ion-modal, ion-popover");if(!e)return;const t="ION-MODAL"===e.tagName?"ionModalWillPresent":"ionPopoverWillPresent",a=t=>{t.target===e&&this.hasUnconfirmedSelection&&this.processValue(this.value,!1)};e.addEventListener(t,a),this.destroyOverlayPresentListener=()=>e.removeEventListener(t,a)}initializeListeners(){this.initializeCalendarListener(),this.initializeKeyboardListeners()}componentDidLoad(){const{el:e,intersectionTrackerRef:t}=this,a=new IntersectionObserver((e=>{e[e.length-1].isIntersecting&&this.markReady()}),{threshold:.01,root:e});c((()=>a?.observe(t))),this.loadTimeoutCleanup(),this.loadTimeout=setTimeout((()=>{this.ensureReadyIfVisible()}),100);const n=new IntersectionObserver((e=>{e[e.length-1].isIntersecting||this.hasLayoutBox()||(this.destroyInteractionListeners(),this.showMonthAndYear=!1,i((()=>{this.el.classList.remove("datetime-ready")})))}),{threshold:0,root:e});c((()=>n?.observe(t)));const r=h(this.el);r.addEventListener("ionFocus",(e=>e.stopPropagation())),r.addEventListener("ionBlur",(e=>e.stopPropagation()))}componentDidRender(){const{presentation:e,prevPresentation:t,calendarBodyRef:a,minParts:n,preferWheel:i,forceRenderDate:r}=this,o=!i&&["date-time","time-date","date"].includes(e);if(void 0!==n&&o&&a){const e=a.querySelector(".calendar-month:nth-of-type(1)");e&&void 0===r&&(a.scrollLeft=e.clientWidth*(g(this.el)?-1:1))}null!==t?e!==t&&(this.prevPresentation=e,this.destroyInteractionListeners(),this.initializeListeners(),this.showMonthAndYear=!1,c((()=>{this.ionRender.emit()}))):this.prevPresentation=e}componentWillLoad(){const{el:e,formatOptions:a,highlightedDates:n,multiple:i,selectionMode:r,presentation:o,preferWheel:d}=this;void 0===r&&i&&t('[ion-datetime] - The "multiple" property is deprecated. Use selectionMode="multiple" instead.',e),this.isMultipleMode&&("date"!==o&&t('[ion-datetime] - Multiple date selection is only supported for presentation="date".',e),d&&t('[ion-datetime] - Multiple date selection is not supported with preferWheel="true".',e)),this.isRangeMode&&("date"!==o&&t('[ion-datetime] - Range selection is only supported for presentation="date".',e),d&&t('[ion-datetime] - Range selection is not supported with preferWheel="true".',e)),void 0!==r&&i&&t('[ion-datetime] - Both "selectionMode" and "multiple" are set. "selectionMode" takes precedence.',e),void 0!==n&&("date"!==o&&"date-time"!==o&&"time-date"!==o&&t("[ion-datetime] - The highlightedDates property is only supported with the date, date-time, and time-date presentations.",e),d&&t('[ion-datetime] - The highlightedDates property is not supported with preferWheel="true".',e)),a&&(ze(e,o,a),je(e,a));const s=this.parsedHourValues=ne(this.hourValues),l=this.parsedMinuteValues=ne(this.minuteValues),c=this.parsedMonthValues=ne(this.monthValues),h=this.parsedYearValues=ne(this.yearValues),p=this.parsedDayValues=ne(this.dayValues),m=this.todayParts=Q(C(new Date).toISOString());this.processMinParts(),this.processMaxParts(),this.defaultParts=ie({refParts:m,monthValues:c,dayValues:p,yearValues:h,hourValues:s,minuteValues:l,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 e=w(this),{disabled:t,readonly:a,showDefaultButtons:n,showClearButton:i}=this,r=t||a,d=this.isRangeMode&&(!this.isRangeParts(this.activeParts)||!this.activeParts.end),s=r||d,l="ionic"===e?"solid":void 0;if(null===this.el.querySelector('[slot="buttons"]')&&!n&&!i)return;const c=()=>{this.reset(),this.setValue(void 0)};return o("div",{class:"datetime-footer"},o("div",{class:"datetime-buttons"},o("div",{class:{"datetime-action-buttons":!0,"has-clear-button":this.showClearButton}},o("slot",{name:"buttons"},n&&o("ion-button",{id:"cancel-button",color:this.color,onClick:()=>this.cancel(!0),disabled:r},this.cancelText),o("div",{class:"datetime-action-buttons-container"},i&&o("ion-button",{id:"clear-button",color:this.color,onClick:()=>c(),disabled:r},this.clearText),n&&o("ion-button",{id:"confirm-button",fill:l,color:this.color,onClick:()=>this.confirm(!0),disabled:s},this.doneText))))))}renderWheelPicker(e=this.presentation){const t="time-date"===e?[this.renderTimePickerColumns(e),this.renderDatePickerColumns(e)]:[this.renderDatePickerColumns(e),this.renderTimePickerColumns(e)];return o("ion-picker",{class:m},t)}renderDatePickerColumns(e){return"date-time"===e||"time-date"===e?this.renderCombinedDatePickerColumn():this.renderIndividualDatePickerColumns(e)}renderCombinedDatePickerColumn(){const{defaultParts:t,disabled:a,workingParts:n,locale:i,minParts:r,maxParts:d,todayParts:s,isDateEnabled:l}=this,c=ue(n),h=c[c.length-1];c[0].day=1,h.day=V(h.month,h.year);const p=((e,t,a,n,i,r)=>{let o=[],d=[],s=ve(a,n);return r&&(s=s.filter((({month:e})=>r.includes(e)))),s.forEach((r=>{const s={month:r.month,day:null,year:r.year},l=xe(e,s,a,n,i,{month:"short",day:"numeric",weekday:"short"}),c=[],h=[];l.forEach((a=>{const n=M({...s,day:a.value},t);h.push({text:n?P(e):a.text,value:`${s.year}-${s.month}-${a.value}`}),c.push({month:s.month,year:s.year,day:a.value})})),d=[...d,...c],o=[...o,...h]})),{parts:d,items:o}})(i,s,void 0!==r&&O(r,c[0])?r:c[0],void 0!==d&&T(d,h)?d:h,this.parsedDayValues,this.parsedMonthValues);let m=p.items;const g=p.parts;l&&(m=m.map(((t,a)=>{const n=g[a];let i;try{i=!l(H(n))}catch(t){e("[ion-datetime] - Exception thrown from provided `isDateEnabled` function. Please check your function and try again.",t)}return{...t,disabled:i}})));const y=null!==n.day?`${n.year}-${n.month}-${n.day}`:`${t.year}-${t.month}-${t.day}`;return o("ion-picker-column",{part:Se,"aria-label":"Select a date",class:"date-column",color:this.color,disabled:a,value:y,onIonChange:e=>{const{value:t}=e.detail,a=g.find((({month:e,day:a,year:n})=>t===`${n}-${e}-${a}`)),n=this.getActivePartsWithFallback();this.setWorkingParts({...this.workingParts,...a}),this.setActiveParts({...n,...a}),e.stopPropagation()}},m.map((e=>o("ion-picker-column-option",{color:this.color,part:e.value===y?`${Ae} ${Ee}`:Ae,key:e.value,disabled:e.disabled,value:e.value},e.text))))}renderIndividualDatePickerColumns(t){const{workingParts:a,isDateEnabled:n}=this,i="year"!==t&&"time"!==t?((e,t,a,n,i,r={month:"long"})=>{const{year:o}=t,d=[];if(void 0!==i){let t=i;void 0!==n?.month&&(t=t.filter((e=>e<=n.month))),void 0!==a?.month&&(t=t.filter((e=>e>=a.month))),t.forEach((t=>{const a=new Date(`${t}/1/${o} GMT+0000`),n=new Intl.DateTimeFormat(e,{...r,timeZone:"UTC"}).format(a);d.push({text:n,value:t})}))}else{const t=n&&n.year===o?n.month:12;for(let n=a&&a.year===o?a.month:1;n<=t;n++){const t=new Date(`${n}/1/${o} GMT+0000`),a=new Intl.DateTimeFormat(e,{...r,timeZone:"UTC"}).format(t);d.push({text:a,value:n})}}return d})(this.locale,a,this.minParts,this.maxParts,this.parsedMonthValues):[];let r="date"===t?xe(this.locale,a,this.minParts,this.maxParts,this.parsedDayValues):[];n&&(r=r.map((t=>{const{value:i}=t,r="string"==typeof i?parseInt(i):i,o={month:a.month,day:r,year:a.year};let d;try{d=!n(H(o))}catch(t){e("[ion-datetime] - Exception thrown from provided `isDateEnabled` function. Please check your function and try again.",t)}return{...t,disabled:d}})));const o="month"!==t&&"time"!==t?((e,t,a,n,i)=>{let r=[];if(void 0!==i)r=i,void 0!==n?.year&&(r=r.filter((e=>e<=n.year))),void 0!==a?.year&&(r=r.filter((e=>e>=a.year)));else{const{year:e}=t,i=n?.year??e;for(let t=a?.year??e-100;t<=i;t++)r.push(t)}return r.map((a=>({text:$(e,{year:a,month:t.month,day:t.day}),value:a})))})(this.locale,this.defaultParts,this.minParts,this.maxParts,this.parsedYearValues):[];let d=[];return d=re(this.locale,{month:"numeric",day:"numeric"})?[this.renderMonthPickerColumn(i),this.renderDayPickerColumn(r),this.renderYearPickerColumn(o)]:[this.renderDayPickerColumn(r),this.renderMonthPickerColumn(i),this.renderYearPickerColumn(o)],d}renderDayPickerColumn(e){if(0===e.length)return[];const{disabled:t,workingParts:a}=this,n=(null!==a.day?a.day:this.defaultParts.day)??void 0;return o("ion-picker-column",{part:Se,"aria-label":"Select a day",class:"day-column",color:this.color,disabled:t,value:n,onIonChange:e=>{const t=this.getActivePartsWithFallback();this.setWorkingParts({...this.workingParts,day:e.detail.value}),this.setActiveParts({...t,day:e.detail.value}),e.stopPropagation()}},e.map((e=>o("ion-picker-column-option",{color:this.color,part:e.value===n?`${Ae} ${Ee}`:Ae,key:e.value,disabled:e.disabled,value:e.value},e.text))))}renderMonthPickerColumn(e){if(0===e.length)return[];const{disabled:t,workingParts:a}=this;return o("ion-picker-column",{part:Se,"aria-label":"Select a month",class:"month-column",color:this.color,disabled:t,value:a.month,onIonChange:e=>{const t=this.getActivePartsWithFallback();this.setWorkingParts({...this.workingParts,month:e.detail.value}),this.isMultipleMode||this.isRangeMode||this.setActiveParts({...t,month:e.detail.value}),e.stopPropagation()}},e.map((e=>o("ion-picker-column-option",{color:this.color,part:e.value===a.month?`${Ae} ${Ee}`:Ae,key:e.value,disabled:e.disabled,value:e.value},e.text))))}renderYearPickerColumn(e){if(0===e.length)return[];const{disabled:t,workingParts:a}=this;return o("ion-picker-column",{part:Se,"aria-label":"Select a year",class:"year-column",color:this.color,disabled:t,value:a.year,onIonChange:e=>{const t=this.getActivePartsWithFallback();this.setWorkingParts({...this.workingParts,year:e.detail.value}),this.isMultipleMode||this.isRangeMode||this.setActiveParts({...t,year:e.detail.value}),e.stopPropagation()}},e.map((e=>o("ion-picker-column-option",{color:this.color,part:e.value===a.year?`${Ae} ${Ee}`:Ae,key:e.value,disabled:e.disabled,value:e.value},e.text))))}renderTimePickerColumns(e){if(["date","month","month-year","year"].includes(e))return[];const t=void 0!==this.getActivePart(),{hoursData:a,minutesData:n,dayPeriodData:i}=((e,t,a,n,i,r,o)=>{const d=D(e,this.hourCycle),s=R(d),{hours:l,minutes:c,am:h,pm:p}=fe(e,t,d,n,i,r,o),m=l.map((e=>({text:S(e,d),value:I(e,s,t.ampm)}))),g=c.map((e=>({text:A(e),value:e}))),y=[];return h&&!s&&y.push({text:E(e,"am"),value:"am"}),p&&!s&&y.push({text:E(e,"pm"),value:"pm"}),{minutesData:g,hoursData:m,dayPeriodData:y}})(this.locale,this.workingParts,0,t?this.minParts:void 0,t?this.maxParts:void 0,this.parsedHourValues,this.parsedMinuteValues);return[this.renderHourPickerColumn(a),this.renderMinutePickerColumn(n),this.renderDayPeriodPickerColumn(i)]}renderHourPickerColumn(e){const{disabled:t}=this;if(0===e.length)return[];const a=this.getActivePartsWithFallback();return o("ion-picker-column",{part:Se,"aria-label":"Select an hour",color:this.color,disabled:t,value:a.hour,numericInput:!0,onIonChange:e=>{this.setWorkingParts({...this.workingParts,hour:e.detail.value}),this.setActiveParts({...this.getActivePartsWithFallback(),hour:e.detail.value}),e.stopPropagation()}},e.map((e=>o("ion-picker-column-option",{color:this.color,part:e.value===a.hour?`${Ae} ${Ee}`:Ae,key:e.value,disabled:e.disabled,value:e.value},e.text))))}renderMinutePickerColumn(e){const{disabled:t}=this;if(0===e.length)return[];const a=this.getActivePartsWithFallback();return o("ion-picker-column",{part:Se,"aria-label":"Select a minute",color:this.color,disabled:t,value:a.minute,numericInput:!0,onIonChange:e=>{this.setWorkingParts({...this.workingParts,minute:e.detail.value}),this.setActiveParts({...this.getActivePartsWithFallback(),minute:e.detail.value}),e.stopPropagation()}},e.map((e=>o("ion-picker-column-option",{color:this.color,part:e.value===a.minute?`${Ae} ${Ee}`:Ae,key:e.value,disabled:e.disabled,value:e.value},e.text))))}renderDayPeriodPickerColumn(e){const{disabled:t}=this;if(0===e.length)return[];const a=this.getActivePartsWithFallback(),n=oe(this.locale);return o("ion-picker-column",{part:Se,"aria-label":"Select a day period",style:n?{order:"-1"}:{},color:this.color,disabled:t,value:a.ampm,onIonChange:e=>{const t=this.workingParts,a=de(t,e.detail.value);this.setWorkingParts({...t,ampm:e.detail.value,hour:a}),this.setActiveParts({...this.getActivePartsWithFallback(),ampm:e.detail.value,hour:a}),e.stopPropagation()}},e.map((e=>o("ion-picker-column-option",{color:this.color,part:e.value===a.ampm?`${Ae} ${Ee}`:Ae,key:e.value,disabled:e.disabled,value:e.value},e.text))))}renderWheelView(e){const{locale:t}=this,a=re(t)?"month-first":"year-first";return o("div",{class:{[`wheel-order-${a}`]:!0}},this.renderWheelPicker(e))}renderCalendarHeader(e){const{disabled:t,datetimeNextIcon:a,datetimePreviousIcon:n,datetimeCollapsedIcon:i,datetimeExpandedIcon:r}=this,d=t||((e,t,a)=>{const n={...z(this.workingParts),day:null};return Ce(n,{minParts:t,maxParts:a})})(0,this.minParts,this.maxParts),s=t||((e,t)=>{const a={...j(this.workingParts),day:null};return Ce(a,{maxParts:t})})(0,this.maxParts),l=g(this.el)?"rtl":"ltr";return o("div",{class:"calendar-header",part:"calendar-header"},o("div",{class:"calendar-action-buttons"},o("div",{class:"calendar-month-year"},o("button",{class:{"calendar-month-year-toggle":!0,"ion-activatable":!0,"ion-focusable":!0},part:"month-year-button",disabled:t,"aria-label":this.showMonthAndYear?"Hide year picker":"Show year picker",onClick:()=>this.toggleMonthAndYearView()},o("span",{id:"toggle-wrapper"},se(this.locale,this.workingParts),"ionic"!==e&&o("ion-icon",{dir:l,"aria-hidden":"true",icon:this.showMonthAndYear?r:i,lazy:!1,flipRtl:!0})),"md"===e&&o("ion-ripple-effect",null))),o("div",{class:"calendar-next-prev"},o("ion-button",{"aria-label":"Previous month",disabled:d,onClick:()=>this.prevMonth(),part:"navigation-button previous-button"},o("ion-icon",{dir:l,"aria-hidden":"true",slot:"icon-only",icon:n,lazy:!1,flipRtl:!0})),o("ion-button",{"aria-label":"Next month",disabled:s,onClick:()=>this.nextMonth(),part:"navigation-button next-button"},o("ion-icon",{dir:l,"aria-hidden":"true",slot:"icon-only",icon:a,lazy:!1,flipRtl:!0})))),o("div",{class:"calendar-days-of-week","aria-hidden":"true",part:"calendar-days-of-week"},((e,t,a=0)=>{const n=new Intl.DateTimeFormat(this.locale,{weekday:"md"===t?"narrow":"short"}),i=new Date("11/01/2020"),r=[];for(let e=a;e<a+7;e++){const t=new Date(i);t.setDate(t.getDate()+e),r.push(n.format(t))}return r})(0,e,this.firstDayOfWeek%7).map((e=>o("div",{class:"day-of-week"},e)))))}renderMonth(t,a){const{disabled:n,readonly:i}=this,r=void 0===this.parsedYearValues||this.parsedYearValues.includes(a),d=void 0===this.parsedMonthValues||this.parsedMonthValues.includes(t),s=!r||!d,l=n||i,c=n||Ce({month:t,year:a,day:null},{minParts:{...this.minParts,day:null},maxParts:{...this.maxParts,day:null}}),h=this.workingParts.month===t&&this.workingParts.year===a,p=this.getActivePartsWithFallback();return o("div",{"aria-hidden":h?null:"true",class:{"calendar-month":!0,"calendar-month-disabled":!h&&c}},o("div",{class:"calendar-month-grid"},((e,t,a,n=!1)=>{const i=V(e,t);let r;r=1===e?V(12,t-1):V(e-1,t);const o=new Date(`${e}/1/${t}`).getDay(),d=o>=a?o-(a+1):6-(a-o);let s=[];for(let e=1;e<=i;e++)s.push({day:e,dayOfWeek:(d+e)%7,isAdjacentDay:!1});if(n){for(let e=0;e<=d;e++)s=[{day:r-e,dayOfWeek:(r-e)%7,isAdjacentDay:!0},...s];const e=41-(i+d);for(let t=0;t<e;t++)s.push({day:t+1,dayOfWeek:(i+d+t)%7,isAdjacentDay:!0})}else for(let e=0;e<=d;e++)s=[{day:null,dayOfWeek:null,isAdjacentDay:!1},...s];return s})(t,a,this.firstDayOfWeek%7,this.showAdjacentDays).map(((n,i)=>{const{day:r,dayOfWeek:d,isAdjacentDay:c}=n,{el:h,highlightedDates:m,isDateEnabled:g,showAdjacentDays:y}=this;let b=t,f=a;y&&c&&null!==r&&(r>20?1===t?(f=a-1,b=12):b=t-1:r<15&&(12===t?(f=a+1,b=1):b=t+1));const u={month:b,day:r,year:f,isAdjacentDay:c},x=null===r,{isActive:v,isToday:k,ariaLabel:w,ariaSelected:C,disabled:j,isRangeStart:z,isRangeEnd:P,isInRange:$,text:D}=we(this.locale,u,this.isRangeParts(this.activeParts)?[]:this.activeParts,this.todayParts,this.minParts,this.maxParts,this.parsedDayValues,this.rangeParts),I=H(u);let S=s||j;if(!S&&void 0!==g)try{S=!g(I)}catch(t){e("[ion-datetime] - Exception thrown from provided `isDateEnabled` function. Please check your function and try again.",h,t)}const A=S&&l,E=S||l,T=z||P||$;let M,O;void 0===m||v||T||null===r||c||(M=((t,a,n)=>{if(Array.isArray(t)){const e=a.split("T")[0],n=t.find((t=>t.date===e));if(n)return{textColor:n.textColor,backgroundColor:n.backgroundColor,border:n.border}}else try{return t(a)}catch(t){e("[ion-datetime] - Exception thrown from provided `highlightedDates` callback. Please check your function and try again.",n,t)}})(m,I,h)),x||c?c&&(O=`calendar-day${S?" disabled":""}${z?" range-start range-selection":""}${P?" range-end range-selection":""}${$?" range-selection":""}`):O=`calendar-day${v||z||P?" active":""}${k?" today":""}${S?" disabled":""}${z?" range-start range-selection":""}${P?" range-end range-selection":""}${$?" range-selection":""}`;const R=T&&void 0!==this.rangeParts?.end&&!x?"range-track":void 0;let V=w;return this.isRangeMode&&w&&(z&&(V+=`, ${this.startDateLabel}`),P&&(V+=`, ${this.endDateLabel}`)),o("div",{class:{"calendar-day-wrapper":!0,"calendar-day-wrapper-range-start":z&&void 0!==this.rangeParts?.end,"calendar-day-wrapper-in-range":$,"calendar-day-wrapper-range-end":P},part:R},o("button",{ref:e=>{e&&(e.style.setProperty("color",`${M?M.textColor:""}`,"important"),e.style.setProperty("background-color",`${M?M.backgroundColor:""}`,"important"),e.style.setProperty("border",`${M?M.border:""}`,"important"))},tabindex:"-1","data-day":r,"data-month":b,"data-year":f,"data-index":i,"data-day-of-week":d,disabled:E,class:{"calendar-day-padding":x,"calendar-day":!0,"calendar-day-active":v||z||P,"calendar-day-constrained":A,"calendar-day-today":k,"calendar-day-adjacent-day":c,"calendar-day-range-start":z,"calendar-day-range-end":P,"calendar-day-in-range":$},part:O,"aria-hidden":x?"true":null,"aria-selected":v||z||P?"true":C,"aria-label":V,onClick:()=>{x||(c?(this.el.blur(),this.isRangeMode||(this.activeParts={...p,...u}),this.isRangeMode?this.animateToDate(u).then((()=>this.setActiveParts(u))):(this.animateToDate(u),this.confirm())):(this.setWorkingParts({...this.workingParts,...u}),this.isRangeMode?this.setActiveParts(u):this.isMultipleMode?this.setActiveParts(u,v):this.setActiveParts({...p,...u})))}},D))}))))}renderCalendarBody(){return o("div",{class:"calendar-body ion-focusable",ref:e=>this.calendarBodyRef=e,tabindex:"0"},ue(this.workingParts,this.forceRenderDate).map((({month:e,year:t})=>this.renderMonth(e,t))))}renderCalendar(e){return o("div",{class:"datetime-calendar",key:"datetime-calendar"},this.renderCalendarHeader(e),this.renderCalendarBody(),this.isRangeMode&&o("div",{class:"datetime-range-announcement","aria-live":"polite",role:"status"},this.getHeaderSelectedDateText()))}renderTimeLabel(){if(null!==this.el.querySelector('[slot="time-label"]')||this.showDefaultTimeLabel)return o("slot",{name:"time-label"},"Time")}renderTimeOverlay(){const{disabled:e,hourCycle:t,isTimePopoverOpen:a,locale:n,formatOptions:i}=this,r=D(n,t),d=this.getActivePartsWithFallback();return[o("div",{class:"time-header"},this.renderTimeLabel()),o("button",{class:{"time-body":!0,"time-body-active":a},part:"time-button"+(a?" active":""),"aria-expanded":"false","aria-haspopup":"true",disabled:e,onClick:async e=>{const{popoverRef:t}=this;t&&(this.isTimePopoverOpen=!0,t.present(new CustomEvent("ionShadowTarget",{detail:{ionShadowTarget:e.target}})),await t.onWillDismiss(),this.isTimePopoverOpen=!1)}},le(n,d,r,i?.time)),o("ion-popover",{alignment:"center",translucent:!0,overlayIndex:1,arrow:!1,onWillPresent:e=>{e.target.querySelectorAll("ion-picker-column").forEach((e=>e.scrollActiveItemIntoView()))},style:{"--offset-y":"-10px","--min-width":"fit-content"},keyboardEvents:!0,ref:e=>this.popoverRef=e},this.renderWheelPicker("time"))]}getHeaderSelectedDateText(){const{activeParts:t,formatOptions:a,titleSelectedDatesFormatter:n}=this,i=Array.isArray(t),r=a?.date??{weekday:"short",month:"short",day:"numeric"};let o;if(this.isRangeMode){if(o=this.getRangeHeaderText(a?.date??{month:"short",day:"numeric"}),void 0!==n)try{o=n(this.getRangeValueArray())}catch(t){e("[ion-datetime] - Exception in provided `titleSelectedDatesFormatter`:",t)}}else if(this.isMultipleMode&&i&&1!==t.length){if(o=`${t.length} days`,void 0!==n)try{o=n(H(t))}catch(t){e("[ion-datetime] - Exception in provided `titleSelectedDatesFormatter`:",t)}}else o=ce(this.locale,this.getActivePartsWithFallback(),r);return o}getRangeHeaderText(e){const t=this.rangeParts;return t?`${ce(this.locale,t.start,e)} - ${t.end?ce(this.locale,t.end,e):this.endDateLabel}`:`${this.startDateLabel} - ${this.endDateLabel}`}getRangeValueArray(){const e=this.rangeParts;return e?e.end?[H(e.start),H(e.end)]:[H(e.start)]:[]}renderHeader(e=!0){if(null!==this.el.querySelector('[slot="title"]')||this.showDefaultTitle)return o("div",{class:"datetime-header",part:"datetime-header"},o("div",{class:"datetime-title",part:"datetime-title"},o("slot",{name:"title"},"Select Date")),e&&o("div",{class:"datetime-selected-date",part:"datetime-selected-date"},this.getHeaderSelectedDateText()))}renderTime(){const{presentation:e}=this;return o("div",{class:"datetime-time"},"time"===e?this.renderWheelPicker():this.renderTimeOverlay())}renderCalendarViewMonthYearPicker(){return o("div",{class:"datetime-year"},this.renderWheelView("month-year"))}renderDatetime(e){const{presentation:t,preferWheel:a}=this;if(a&&("date"===t||"date-time"===t||"time-date"===t))return[this.renderHeader(!1),this.renderWheelView(),this.renderFooter()];switch(t){case"date-time":return[this.renderHeader(),this.renderCalendar(e),this.renderCalendarViewMonthYearPicker(),this.renderTime(),this.renderFooter()];case"time-date":return[this.renderHeader(),this.renderTime(),this.renderCalendar(e),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(e),this.renderCalendarViewMonthYearPicker(),this.renderFooter()]}}get datetimeNextIcon(){return r.get("datetimeNextIcon",b)}get datetimePreviousIcon(){return r.get("datetimePreviousIcon",f)}get datetimeCollapsedIcon(){const e=w(this);return r.get("datetimeCollapsedIcon","ios"===e?b:u)}get datetimeExpandedIcon(){const e=w(this);return r.get("datetimeExpandedIcon","ios"===e?x:v)}render(){const{name:e,value:t,disabled:a,el:n,color:i,readonly:r,showMonthAndYear:s,preferWheel:l,presentation:c,size:h,isGridStyle:m}=this,g=w(this),b="year"===c||"month"===c||"month-year"===c,f=s||b,u=s&&!b,x=("date"===c||"date-time"===c||"time-date"===c)&&l;return p(!0,n,e,he(t),a),o(d,{key:"2510c26c29afd1a34d6ee71a9ffa00b4a7dd716e","aria-disabled":a?"true":null,onFocus:this.onFocus,onBlur:this.onBlur,class:{...y(i,{[g]:!0,"datetime-readonly":r,"datetime-disabled":a,"show-month-and-year":f,"month-year-picker-open":u,[`datetime-presentation-${c}`]:!0,[`datetime-size-${h}`]:!0,"datetime-prefer-wheel":x,"datetime-grid":m,"datetime-range":this.isRangeMode})}},o("div",{key:"b245de6585c7dc5ccfa6f0f8be8474206380acfe",class:"intersection-tracker",ref:e=>this.intersectionTrackerRef=e}),this.renderDatetime(g))}get el(){return s(this)}static get watchers(){return{formatOptions:[{formatOptionsChanged:0}],disabled:[{disabledChanged:0}],min:[{minChanged:0}],max:[{maxChanged:0}],presentation:[{presentationChanged:0}],yearValues:[{yearValuesChanged:0}],monthValues:[{monthValuesChanged:0}],dayValues:[{dayValuesChanged:0}],hourValues:[{hourValuesChanged:0}],minuteValues:[{minuteValuesChanged:0}],value:[{valueChanged:0}]}}};let $e=0;const De="datetime-cancel",Ie="datetime-confirm",Se="wheel",Ae="wheel-item",Ee="active";Pe.style={ionic:':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-cover){width:100%}:host(:not(.datetime-ready)) .datetime-year{position:absolute;pointer-events:none}:host(.datetime-ready) .datetime-year{display:none}: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,::slotted([slot=buttons]),.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-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;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:0;min-height:0;overflow:visible;z-index:0}:host .calendar-day-wrapper:focus-within{z-index:1}.datetime-range-announcement{-webkit-margin-start:-1px;margin-inline-start:-1px;-webkit-margin-end:-1px;margin-inline-end:-1px;margin-top:-1px;margin-bottom:-1px;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;position:absolute;width:1px;height:1px;border:0;white-space:nowrap;overflow:hidden;clip:rect(0, 0, 0, 0)}:host .calendar-day-wrapper-in-range::before,:host .calendar-day-wrapper-range-start::before,:host .calendar-day-wrapper-range-end::before{position:absolute;top:50%;inset-inline-start:0;inset-inline-end:0;height:var(--range-track-height);-webkit-transform:translateY(-50%);transform:translateY(-50%);background:-webkit-gradient(linear, left top, left bottom, from(var(--range-background)), to(var(--range-background))), -webkit-gradient(linear, left top, left bottom, from(var(--background)), to(var(--background)));background:linear-gradient(var(--range-background), var(--range-background)), linear-gradient(var(--background), var(--background));content:"";z-index:-1}:host .calendar-day-wrapper-range-start::before{inset-inline-start:50%}:host .calendar-day-wrapper-range-end::before{inset-inline-end:50%}:host .calendar-day-wrapper-in-range:not(:nth-child(7n)):has(+.calendar-day-wrapper-in-range)::before,:host .calendar-day-wrapper-in-range:not(:nth-child(7n)):has(+.calendar-day-wrapper-range-end)::before,:host .calendar-day-wrapper-range-start:not(:nth-child(7n)):has(+.calendar-day-wrapper-in-range)::before,:host .calendar-day-wrapper-range-start:not(:nth-child(7n)):has(+.calendar-day-wrapper-range-end)::before{inset-inline-end:-1px}:host .calendar-day-wrapper-in-range:nth-child(7n)::before,:host .calendar-day-wrapper-range-start:nth-child(7n)::before{inset-inline-end:calc(var(--range-track-edge-overflow, 0px) * -1)}:host .calendar-day-wrapper-in-range:nth-child(7n+1)::before,:host .calendar-day-wrapper-range-end:nth-child(7n+1)::before{inset-inline-start:calc(var(--range-track-edge-overflow, 0px) * -1)}:host .calendar-day-wrapper-range-start.calendar-day-wrapper-range-end::before{display:none}:host(.datetime-disabled.datetime-range) .calendar-month-grid{opacity:0.4}:host(.datetime-disabled.datetime-range) .calendar-month-grid .calendar-day[disabled]{opacity:1}.calendar-day{-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;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:0}.calendar-day[disabled]{pointer-events:none}:host .datetime-time{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .time-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .time-body{display:-ms-flexbox;display:flex;border:none;font-family:inherit;font-size:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host(.in-item){position:static}.calendar-month-year{min-width:0}.calendar-month-year-toggle{color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;white-space:inherit;position:relative;border:0;outline:none;background:transparent;cursor:pointer;z-index:1}.calendar-month-year-toggle ion-icon{-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}:host{--background:var(--token-bg-surface-default, var(--token-primitives-base-white, #ffffff));--focus-ring-color:var(--token-border-focus-default, var(--token-semantics-primary-400, var(--token-primitives-blue-400, #b5c0f7)));--focus-ring-width:var(--token-border-size-050, var(--token-scale-050, 2px));--body-opacity:0;--year-opacity:0}:host .calendar-body{opacity:var(--body-opacity)}:host .datetime-year{opacity:var(--year-opacity)}:host(.datetime-ready) .calendar-body{--body-opacity:1}:host(.datetime-ready) .datetime-year{--year-opacity:1}:host .datetime-header{-webkit-padding-start:var(--token-space-400, var(--token-scale-400, 16px));padding-inline-start:var(--token-space-400, var(--token-scale-400, 16px));-webkit-padding-end:var(--token-space-400, var(--token-scale-400, 16px));padding-inline-end:var(--token-space-400, var(--token-scale-400, 16px));padding-top:var(--token-space-200, var(--token-scale-200, 8px));padding-bottom:var(--token-space-400, var(--token-scale-400, 16px));display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:start;-ms-flex-pack:justify;justify-content:space-between;height:var(--token-scale-1400, 56px);margin-bottom:var(--token-space-200, var(--token-scale-200, 8px));border-bottom:solid var(--token-border-size-025, var(--token-scale-025, 1px)) var(--token-primitives-neutral-400, #d0d7df)}:host .datetime-header .datetime-title{font-family:var(--token-font-family, -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");font-size:var(--token-font-size-450, 1.125rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-0, 0);line-height:1.555556;color:var(--token-primitives-neutral-800, #6c727a)}:host .datetime-header .datetime-selected-date{font-family:var(--token-font-family, -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");font-size:var(--token-font-size-350, 0.875rem);font-weight:var(--token-font-weight-regular, 400);letter-spacing:var(--token-font-letter-spacing-0, 0);line-height:1.714286;color:var(--token-primitives-neutral-1000, #383e45)}.calendar-action-buttons{padding-top:var(--token-space-200, var(--token-scale-200, 8px));padding-bottom:var(--token-space-200, var(--token-scale-200, 8px));-ms-flex-align:center;align-items:center;height:var(--token-scale-1400, 56px);-webkit-box-sizing:border-box;box-sizing:border-box}.calendar-month-year{-ms-flex:1 0 0px;flex:1 0 0}.calendar-month-year-toggle{border-radius:var(--token-border-radius-full, 999px);font-family:var(--token-font-family, -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");font-size:var(--token-font-size-400, 1rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-100, 0.01em);line-height:1.5;-webkit-padding-start:var(--token-space-400, var(--token-scale-400, 16px));padding-inline-start:var(--token-space-400, var(--token-scale-400, 16px));-webkit-padding-end:var(--token-space-400, var(--token-scale-400, 16px));padding-inline-end:var(--token-space-400, var(--token-scale-400, 16px));padding-top:var(--token-space-200, var(--token-scale-200, 8px));padding-bottom:var(--token-space-200, var(--token-scale-200, 8px));min-width:var(--token-scale-1600, 64px);min-height:var(--token-scale-1000, 40px);border:var(--focus-ring-width) solid transparent;color:var(--token-semantics-primary-base, var(--token-semantics-primary-700, var(--token-primitives-blue-700, #105cef)))}@media (any-hover: hover){.calendar-month-year-toggle:hover{background:var(--token-primitives-neutral-200, #ebeef2)}}.calendar-month-year-toggle.ion-focused{border-color:var(--focus-ring-color)}.calendar-month-year-toggle.ion-activated{background:var(--token-primitives-neutral-200, #ebeef2)}.calendar-next-prev ion-button.button-has-icon-only{--color:var(--token-primitives-neutral-1000, #383e45);--background-activated:var(--token-primitives-neutral-200, #ebeef2);--background-hover:var(--token-primitives-neutral-200, #ebeef2);--background-hover-opacity:1;min-height:var(--token-scale-1000, 40px)}.calendar-next-prev ion-button.button-has-icon-only.ion-focused::part(native){border:var(--token-border-size-050, var(--token-scale-050, 2px)) solid var(--token-border-focus-default, var(--token-semantics-primary-400, var(--token-primitives-blue-400, #b5c0f7)));outline:none}.calendar-days-of-week{font-family:var(--token-font-family, -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");font-size:var(--token-font-size-300, 0.75rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-150, 0.015em);line-height:1.666667;text-transform:uppercase;-ms-flex-line-pack:center;align-content:center;height:var(--token-scale-1200, 48px);color:var(--token-primitives-neutral-800, #6c727a)}.calendar-day{border-radius:var(--token-border-radius-full, 999px);-webkit-padding-start:var(--token-space-100, var(--token-scale-100, 4px));padding-inline-start:var(--token-space-100, var(--token-scale-100, 4px));-webkit-padding-end:var(--token-space-100, var(--token-scale-100, 4px));padding-inline-end:var(--token-space-100, var(--token-scale-100, 4px));padding-top:var(--token-space-100, var(--token-scale-100, 4px));padding-bottom:var(--token-space-100, var(--token-scale-100, 4px));font-family:var(--token-font-family, -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");font-size:var(--token-font-size-350, 0.875rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-100, 0.01em);line-height:1.428571;width:var(--token-scale-1200, 48px);min-width:var(--token-scale-1200, 48px);height:var(--token-scale-1200, 48px);color:var(--token-text-default, var(--token-primitives-neutral-1200, #242528))}.calendar-day[disabled]:not(.calendar-day-constrained){color:var(--token-text-disabled, var(--token-primitives-neutral-500, #9fa5ad))}.calendar-day.calendar-day-today{color:var(--token-text-select, var(--token-semantics-primary-700, var(--token-primitives-blue-700, #105cef)))}.calendar-day.calendar-day-active,.calendar-day.calendar-day-active.calendar-day-adjacent-day{background:var(--token-bg-primary-subtle-default, var(--token-semantics-primary-100, var(--token-primitives-blue-100, #f0f2ff)))}.calendar-day:focus-visible{border:var(--focus-ring-width) solid var(--focus-ring-color)}@media (any-hover: hover){.calendar-day:not([disabled]):not(:active):not(.calendar-day-in-range):hover{background:var(--token-semantics-primary-200, var(--token-primitives-blue-200, #e4e8ff))}}.calendar-day:active,.calendar-day.calendar-day-adjacent-day:active{background:var(--token-bg-primary-subtle-press, var(--token-semantics-primary-300, var(--token-primitives-blue-300, #d0d7fa)))}.calendar-day.calendar-day-adjacent-day{color:var(--token-text-subtlest, var(--token-primitives-neutral-800, #6c727a))}.calendar-day.calendar-day-active.calendar-day-adjacent-day{color:var(--token-text-default, var(--token-primitives-neutral-1200, #242528))}:host{--range-background:var(--token-bg-primary-subtle-default, var(--token-semantics-primary-100, var(--token-primitives-blue-100, #f0f2ff)));--range-track-height:var(--token-scale-1200, 48px)}:host .calendar-day.calendar-day-range-start,:host .calendar-day.calendar-day-range-end{border-radius:var(--token-border-radius-full, 999px);background:var(--token-bg-primary-base-default, var(--token-semantics-primary-base, var(--token-semantics-primary-700, var(--token-primitives-blue-700, #105cef))));color:var(--token-text-inverse, var(--token-primitives-base-white, #ffffff))}.calendar-day.calendar-day-in-range{border-radius:0;background:none;color:var(--token-text-default, var(--token-primitives-neutral-1200, #242528))}.calendar-day.calendar-day-today.calendar-day-in-range{color:var(--token-text-select, var(--token-semantics-primary-700, var(--token-primitives-blue-700, #105cef)))}:host .calendar-day.calendar-day-today.calendar-day-range-start,:host .calendar-day.calendar-day-today.calendar-day-range-end{color:var(--token-text-inverse, var(--token-primitives-base-white, #ffffff))}@media (any-hover: hover){.calendar-day.calendar-day-range-start:not([disabled]):not(:active):hover,.calendar-day.calendar-day-range-end:not([disabled]):not(:active):hover{background:var(--token-bg-primary-base-press, var(--token-semantics-primary-900, var(--token-primitives-blue-900, #0d4bc3)))}}.calendar-day.calendar-day-range-start:active,.calendar-day.calendar-day-range-end:active{background:var(--token-bg-primary-base-press, var(--token-semantics-primary-900, var(--token-primitives-blue-900, #0d4bc3)))}.calendar-day.calendar-day-in-range:active{background:var(--token-bg-primary-subtle-press, var(--token-semantics-primary-300, var(--token-primitives-blue-300, #d0d7fa)))}:host(.datetime-disabled.datetime-range) .calendar-day[disabled]:not(.calendar-day-constrained){color:var(--token-text-default, var(--token-primitives-neutral-1200, #242528))}:host(.datetime-disabled.datetime-range) .calendar-day.calendar-day-adjacent-day[disabled]{color:var(--token-text-subtlest, var(--token-primitives-neutral-800, #6c727a))}:host(.datetime-disabled.datetime-range) .calendar-day.calendar-day-today[disabled]{color:var(--token-text-select, var(--token-semantics-primary-700, var(--token-primitives-blue-700, #105cef)))}:host(.datetime-disabled.datetime-range) .calendar-day.calendar-day-range-start[disabled],:host(.datetime-disabled.datetime-range) .calendar-day.calendar-day-range-end[disabled]{color:var(--token-text-inverse, var(--token-primitives-base-white, #ffffff))}:host(.datetime-readonly) .calendar-day.calendar-day-range-start[disabled],:host(.datetime-readonly) .calendar-day.calendar-day-range-end[disabled]{color:var(--token-text-inverse, var(--token-primitives-base-white, #ffffff))}:host(.datetime-readonly) .calendar-day.calendar-day-in-range[disabled]{color:var(--token-text-default, var(--token-primitives-neutral-1200, #242528))}:host(.datetime-readonly) .calendar-day.calendar-day-today.calendar-day-in-range[disabled]{color:var(--token-text-select, var(--token-semantics-primary-700, var(--token-primitives-blue-700, #105cef)))}:host(.datetime-readonly) .calendar-day.calendar-day-today.calendar-day-range-start[disabled],:host(.datetime-readonly) .calendar-day.calendar-day-today.calendar-day-range-end[disabled]{color:var(--token-text-inverse, var(--token-primitives-base-white, #ffffff))}:host .datetime-time{-webkit-padding-start:var(--token-space-400, var(--token-scale-400, 16px));padding-inline-start:var(--token-space-400, var(--token-scale-400, 16px));-webkit-padding-end:var(--token-space-400, var(--token-scale-400, 16px));padding-inline-end:var(--token-space-400, var(--token-scale-400, 16px));padding-top:var(--token-space-100, var(--token-scale-100, 4px));padding-bottom:var(--token-space-100, var(--token-scale-100, 4px))}:host .datetime-time .time-header{font-family:var(--token-font-family, -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");font-size:var(--token-font-size-400, 1rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-100, 0.01em);line-height:1.5;color:var(--token-primitives-neutral-800, #6c727a)}:host .datetime-time button{-webkit-padding-start:var(--token-space-200, var(--token-scale-200, 8px));padding-inline-start:var(--token-space-200, var(--token-scale-200, 8px));-webkit-padding-end:var(--token-space-200, var(--token-scale-200, 8px));padding-inline-end:var(--token-space-200, var(--token-scale-200, 8px));padding-top:var(--token-space-0, var(--token-scale-0, 0px));padding-bottom:var(--token-space-0, var(--token-scale-0, 0px));font-family:var(--token-font-family, -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");font-size:var(--token-font-size-350, 0.875rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-0, 0);line-height:1.714286;border-radius:var(--token-border-radius-full, 999px);display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;height:var(--token-scale-800, 32px);background-color:var(--token-primitives-neutral-100, #f6f7fa);color:var(--token-text-default, var(--token-primitives-neutral-1200, #242528))}:host .datetime-footer{padding-left:0;padding-right:0;padding-top:var(--token-space-200, var(--token-scale-200, 8px));padding-bottom:0;margin-left:0;margin-right:0;margin-top:var(--token-space-200, var(--token-scale-200, 8px));margin-bottom:0;border-left:0;border-right:0;border-top:solid var(--token-border-size-025, var(--token-scale-025, 1px)) var(--token-primitives-neutral-400, #d0d7df);border-bottom:0}:host .datetime-buttons .datetime-action-buttons,.datetime-action-buttons .datetime-action-buttons-container,::slotted([slot=buttons]){-ms-flex-flow:column;flex-flow:column;-ms-flex-align:stretch;align-items:stretch;gap:var(--token-space-200, var(--token-scale-200, 8px))}',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-cover){width:100%}:host(:not(.datetime-ready)) .datetime-year{position:absolute;pointer-events:none}:host(.datetime-ready) .datetime-year{display:none}: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,::slotted([slot=buttons]),.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-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;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:0;min-height:0;overflow:visible;z-index:0}:host .calendar-day-wrapper:focus-within{z-index:1}.datetime-range-announcement{-webkit-margin-start:-1px;margin-inline-start:-1px;-webkit-margin-end:-1px;margin-inline-end:-1px;margin-top:-1px;margin-bottom:-1px;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;position:absolute;width:1px;height:1px;border:0;white-space:nowrap;overflow:hidden;clip:rect(0, 0, 0, 0)}:host .calendar-day-wrapper-in-range::before,:host .calendar-day-wrapper-range-start::before,:host .calendar-day-wrapper-range-end::before{position:absolute;top:50%;inset-inline-start:0;inset-inline-end:0;height:var(--range-track-height);-webkit-transform:translateY(-50%);transform:translateY(-50%);background:-webkit-gradient(linear, left top, left bottom, from(var(--range-background)), to(var(--range-background))), -webkit-gradient(linear, left top, left bottom, from(var(--background)), to(var(--background)));background:linear-gradient(var(--range-background), var(--range-background)), linear-gradient(var(--background), var(--background));content:"";z-index:-1}:host .calendar-day-wrapper-range-start::before{inset-inline-start:50%}:host .calendar-day-wrapper-range-end::before{inset-inline-end:50%}:host .calendar-day-wrapper-in-range:not(:nth-child(7n)):has(+.calendar-day-wrapper-in-range)::before,:host .calendar-day-wrapper-in-range:not(:nth-child(7n)):has(+.calendar-day-wrapper-range-end)::before,:host .calendar-day-wrapper-range-start:not(:nth-child(7n)):has(+.calendar-day-wrapper-in-range)::before,:host .calendar-day-wrapper-range-start:not(:nth-child(7n)):has(+.calendar-day-wrapper-range-end)::before{inset-inline-end:-1px}:host .calendar-day-wrapper-in-range:nth-child(7n)::before,:host .calendar-day-wrapper-range-start:nth-child(7n)::before{inset-inline-end:calc(var(--range-track-edge-overflow, 0px) * -1)}:host .calendar-day-wrapper-in-range:nth-child(7n+1)::before,:host .calendar-day-wrapper-range-end:nth-child(7n+1)::before{inset-inline-start:calc(var(--range-track-edge-overflow, 0px) * -1)}:host .calendar-day-wrapper-range-start.calendar-day-wrapper-range-end::before{display:none}:host(.datetime-disabled.datetime-range) .calendar-month-grid{opacity:0.4}:host(.datetime-disabled.datetime-range) .calendar-month-grid .calendar-day[disabled]{opacity:1}.calendar-day{-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;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:0}.calendar-day[disabled]{pointer-events:none}:host .datetime-time{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .time-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .time-body{display:-ms-flexbox;display:flex;border:none;font-family:inherit;font-size:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host(.in-item){position:static}.calendar-month-year{min-width:0}.calendar-month-year-toggle{color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;white-space:inherit;position:relative;border:0;outline:none;background:transparent;cursor:pointer;z-index:1}.calendar-month-year-toggle ion-icon{-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}:host{}:host(.datetime-size-fixed:not(.datetime-prefer-wheel)){max-width:350px}:host .calendar-body,:host .datetime-year{opacity:0}:host(.datetime-ready) .calendar-body,:host(.datetime-ready) .datetime-year{opacity:1}: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 .calendar-action-buttons ion-button{--background:transparent}.calendar-day{border-radius:50%;font-family:var(--ion-font-family, inherit)}:host .calendar-day[disabled]{opacity:0.4}.calendar-day:not(.calendar-day-adjacent-day):focus{background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2);-webkit-box-shadow:0px 0px 0px 4px rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2)}:host(.ion-color) .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 .calendar-next-prev{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:start}.calendar-next-prev ion-button ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}: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-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;background:var(--ion-color-step-300, var(--ion-background-color-step-300, #edeef0));color:var(--ion-text-color, #000)}:host .time-body-active{color:var(--ion-color-primary, #0054e9)}:host(.ion-color) .time-body-active{color:var(--ion-color-base)}:host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle{color:var(--ion-color-primary, #0054e9)}:host(.ion-color.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle{color:var(--ion-color-base)}:host .datetime-action-buttons ion-button{--color:var(--ion-color-primary, #0054e9)}.calendar-month-year-toggle::after{right:0;left: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}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 .datetime-action-buttons{-ms-flex-pack:justify;justify-content:space-between}: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-button{color:var(--ion-color-primary, #0054e9)}:host(.ion-color) .calendar-action-buttons .calendar-month-year-toggle ion-icon,:host(.ion-color) .calendar-action-buttons ion-button{color:var(--ion-color-base)}:host .calendar-action-buttons ion-button{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}:host .calendar-action-buttons .calendar-next-prev{-ms-flex-align:stretch;align-items:stretch}.calendar-next-prev ion-button{--padding-top:0;--padding-bottom:0;--padding-start:5px;--padding-end:5px;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;min-height:32px}.calendar-next-prev ion-button ion-icon[slot=icon-only]{font-size:1.65em;line-height:0.67}: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-primary-rgb, 0, 84, 233), 0.2);font-size:min(1.375rem, 35.2px)}:host(.ion-color) .calendar-day.calendar-day-active{background:rgba(var(--ion-color-base-rgb), 0.2)}:host .calendar-day.calendar-day-today{color:var(--ion-color-primary, #0054e9)}:host(.ion-color) .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-primary, #0054e9);font-weight:600}:host(.ion-color) .calendar-day.calendar-day-active,:host(.ion-color) .calendar-day.calendar-day-adjacent-day.calendar-day-active{color:var(--ion-color-base)}:host .calendar-day.calendar-day-today.calendar-day-active{background:var(--ion-color-primary, #0054e9);color:var(--ion-color-primary-contrast, #fff)}:host(.ion-color) .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{--range-background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.12);--range-track-height:40px;--range-track-edge-overflow:8px}:host(.ion-color){--range-background:rgba(var(--ion-color-base-rgb), 0.12)}:host(.datetime-range) .calendar-day-wrapper{height:auto}:host .calendar-day.calendar-day-range-start,:host .calendar-day.calendar-day-range-end{border-radius:50%;background:var(--ion-color-primary, #0054e9);color:var(--ion-color-primary-contrast, #fff);font-weight:600}:host(.ion-color) .calendar-day.calendar-day-range-start,:host(.ion-color) .calendar-day.calendar-day-range-end{background:var(--ion-color-base);color:var(--ion-color-contrast)}: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([slot=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,::slotted([slot=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-cover){width:100%}:host(:not(.datetime-ready)) .datetime-year{position:absolute;pointer-events:none}:host(.datetime-ready) .datetime-year{display:none}: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,::slotted([slot=buttons]),.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-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;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:0;min-height:0;overflow:visible;z-index:0}:host .calendar-day-wrapper:focus-within{z-index:1}.datetime-range-announcement{-webkit-margin-start:-1px;margin-inline-start:-1px;-webkit-margin-end:-1px;margin-inline-end:-1px;margin-top:-1px;margin-bottom:-1px;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;position:absolute;width:1px;height:1px;border:0;white-space:nowrap;overflow:hidden;clip:rect(0, 0, 0, 0)}:host .calendar-day-wrapper-in-range::before,:host .calendar-day-wrapper-range-start::before,:host .calendar-day-wrapper-range-end::before{position:absolute;top:50%;inset-inline-start:0;inset-inline-end:0;height:var(--range-track-height);-webkit-transform:translateY(-50%);transform:translateY(-50%);background:-webkit-gradient(linear, left top, left bottom, from(var(--range-background)), to(var(--range-background))), -webkit-gradient(linear, left top, left bottom, from(var(--background)), to(var(--background)));background:linear-gradient(var(--range-background), var(--range-background)), linear-gradient(var(--background), var(--background));content:"";z-index:-1}:host .calendar-day-wrapper-range-start::before{inset-inline-start:50%}:host .calendar-day-wrapper-range-end::before{inset-inline-end:50%}:host .calendar-day-wrapper-in-range:not(:nth-child(7n)):has(+.calendar-day-wrapper-in-range)::before,:host .calendar-day-wrapper-in-range:not(:nth-child(7n)):has(+.calendar-day-wrapper-range-end)::before,:host .calendar-day-wrapper-range-start:not(:nth-child(7n)):has(+.calendar-day-wrapper-in-range)::before,:host .calendar-day-wrapper-range-start:not(:nth-child(7n)):has(+.calendar-day-wrapper-range-end)::before{inset-inline-end:-1px}:host .calendar-day-wrapper-in-range:nth-child(7n)::before,:host .calendar-day-wrapper-range-start:nth-child(7n)::before{inset-inline-end:calc(var(--range-track-edge-overflow, 0px) * -1)}:host .calendar-day-wrapper-in-range:nth-child(7n+1)::before,:host .calendar-day-wrapper-range-end:nth-child(7n+1)::before{inset-inline-start:calc(var(--range-track-edge-overflow, 0px) * -1)}:host .calendar-day-wrapper-range-start.calendar-day-wrapper-range-end::before{display:none}:host(.datetime-disabled.datetime-range) .calendar-month-grid{opacity:0.4}:host(.datetime-disabled.datetime-range) .calendar-month-grid .calendar-day[disabled]{opacity:1}.calendar-day{-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;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:0}.calendar-day[disabled]{pointer-events:none}:host .datetime-time{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .time-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .time-body{display:-ms-flexbox;display:flex;border:none;font-family:inherit;font-size:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host(.in-item){position:static}.calendar-month-year{min-width:0}.calendar-month-year-toggle{color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;white-space:inherit;position:relative;border:0;outline:none;background:transparent;cursor:pointer;z-index:1}.calendar-month-year-toggle ion-icon{-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}:host{}:host(.datetime-size-fixed:not(.datetime-prefer-wheel)){max-width:350px}:host .calendar-body,:host .datetime-year{opacity:0}:host(.datetime-ready) .calendar-body,:host(.datetime-ready) .datetime-year{opacity:1}: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 .calendar-action-buttons ion-button{--background:transparent}.calendar-day{border-radius:50%;font-family:var(--ion-font-family, inherit)}:host .calendar-day[disabled]{opacity:0.4}.calendar-day:not(.calendar-day-adjacent-day):focus{background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2);-webkit-box-shadow:0px 0px 0px 4px rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2)}:host(.ion-color) .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 .calendar-next-prev{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:start}.calendar-next-prev ion-button ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}: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-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;background:var(--ion-color-step-300, var(--ion-background-color-step-300, #edeef0));color:var(--ion-text-color, #000)}:host .time-body-active{color:var(--ion-color-primary, #0054e9)}:host(.ion-color) .time-body-active{color:var(--ion-color-base)}:host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle{color:var(--ion-color-primary, #0054e9)}:host(.ion-color.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle{color:var(--ion-color-base)}:host .datetime-action-buttons ion-button{--color:var(--ion-color-primary, #0054e9)}.calendar-month-year-toggle::after{right:0;left: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}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 .datetime-action-buttons{-ms-flex-pack:justify;justify-content:space-between}:host{--background:var(--ion-color-step-100, var(--ion-background-color-step-100, #ffffff));--title-color:var(--ion-color-primary-contrast, #fff)}:host(.ion-color){--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-primary, #0054e9);color:var(--title-color)}:host(.ion-color) .datetime-header{background:var(--ion-color-base)}: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-next-prev ion-button{--padding-top:12px;--padding-end:12px;--padding-bottom:12px;--padding-start:12px;--border-radius:50%;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:3rem;height:3rem}.calendar-next-prev ion-button ion-icon[slot=icon-only]{font-size:1.8em}.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-primary, #0054e9);color:var(--ion-color-primary, #0054e9)}:host(.ion-color) .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-primary-contrast, #fff)}:host(.ion-color) .calendar-day.calendar-day-active,:host(.ion-color) .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-primary, #0054e9);background:var(--ion-color-primary, #0054e9)}:host(.ion-color) .calendar-day.calendar-day-active,:host(.ion-color) .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{--range-background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.12);--range-track-height:42px;--range-track-edge-overflow:10px}:host(.ion-color){--range-background:rgba(var(--ion-color-base-rgb), 0.12)}:host .calendar-day.calendar-day-range-start,:host .calendar-day.calendar-day-range-end{border-radius:50%;background:var(--ion-color-primary, #0054e9);color:var(--ion-color-primary-contrast, #fff)}:host(.ion-color) .calendar-day.calendar-day-range-start,:host(.ion-color) .calendar-day.calendar-day-range-end{background:var(--ion-color-base);color:var(--ion-color-contrast)}: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}'};export{Pe as ion_datetime}
|
|
@@ -36,6 +36,10 @@ export type DatetimeHighlight = {
|
|
|
36
36
|
date: string;
|
|
37
37
|
} & DatetimeHighlightStyle;
|
|
38
38
|
export type DatetimeHighlightCallback = (dateIsoString: string) => DatetimeHighlightStyle | undefined;
|
|
39
|
+
export interface DatetimeRangeParts {
|
|
40
|
+
start: DatetimeParts;
|
|
41
|
+
end?: DatetimeParts;
|
|
42
|
+
}
|
|
39
43
|
export type DatetimeHourCycle = 'h11' | 'h12' | 'h23' | 'h24';
|
|
40
44
|
/**
|
|
41
45
|
* FormatOptions must include date and/or time; it cannot be an empty object
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ComponentInterface, EventEmitter } from '../../stencil-public-runtime';
|
|
2
2
|
import type { Color, StyleEventDetail } from '../../interface';
|
|
3
|
-
import type { DatetimePresentation, DatetimeChangeEventDetail, DatetimeParts, TitleSelectedDatesFormatter, DatetimeHighlight, DatetimeHighlightCallback, DatetimeHourCycle, FormatOptions } from './datetime-interface';
|
|
3
|
+
import type { DatetimePresentation, DatetimeChangeEventDetail, DatetimeParts, DatetimeRangeParts, TitleSelectedDatesFormatter, DatetimeHighlight, DatetimeHighlightCallback, DatetimeHourCycle, FormatOptions } from './datetime-interface';
|
|
4
4
|
/**
|
|
5
5
|
* @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
|
|
6
6
|
* @virtualProp {"ios" | "md" | "ionic"} theme - The theme determines the visual appearance of the component.
|
|
@@ -32,6 +32,11 @@ import type { DatetimePresentation, DatetimeChangeEventDetail, DatetimeParts, Ti
|
|
|
32
32
|
* @part calendar-day today - The calendar day that contains the current day.
|
|
33
33
|
* @part calendar-day disabled - The calendar day that is disabled.
|
|
34
34
|
*
|
|
35
|
+
* @part range-start - The calendar day button that is the start of a range selection.
|
|
36
|
+
* @part range-end - The calendar day button that is the end of a range selection.
|
|
37
|
+
* @part range-selection - The calendar day button that is part of a range selection (includes start and end).
|
|
38
|
+
* @part range-track - The track that connects the start and end days of a range selection.
|
|
39
|
+
*
|
|
35
40
|
* @part datetime-header - The datetime header contains the content for the `title` slot and the selected date.
|
|
36
41
|
* @part datetime-title - The element that contains the `title` slot content.
|
|
37
42
|
* @part datetime-selected-date - The element that contains the selected date.
|
|
@@ -65,7 +70,7 @@ export declare class Datetime implements ComponentInterface {
|
|
|
65
70
|
private prevPresentation;
|
|
66
71
|
private resolveForceDateScrolling?;
|
|
67
72
|
showMonthAndYear: boolean;
|
|
68
|
-
activeParts: DatetimeParts | DatetimeParts[];
|
|
73
|
+
activeParts: DatetimeParts | DatetimeParts[] | DatetimeRangeParts;
|
|
69
74
|
workingParts: DatetimeParts;
|
|
70
75
|
el: HTMLIonDatetimeElement;
|
|
71
76
|
isTimePopoverOpen: boolean;
|
|
@@ -155,6 +160,16 @@ export declare class Datetime implements ComponentInterface {
|
|
|
155
160
|
presentation: DatetimePresentation;
|
|
156
161
|
protected presentationChanged(): void;
|
|
157
162
|
private get isGridStyle();
|
|
163
|
+
private get isMultipleMode();
|
|
164
|
+
private get isRangeMode();
|
|
165
|
+
/**
|
|
166
|
+
* Type guard: returns true if the given activeParts is a DatetimeRangeParts object.
|
|
167
|
+
*/
|
|
168
|
+
private isRangeParts;
|
|
169
|
+
/**
|
|
170
|
+
* Returns the current range parts if in range mode, or undefined otherwise.
|
|
171
|
+
*/
|
|
172
|
+
private get rangeParts();
|
|
158
173
|
/**
|
|
159
174
|
* The text to display on the picker's cancel button.
|
|
160
175
|
*/
|
|
@@ -227,9 +242,10 @@ export declare class Datetime implements ComponentInterface {
|
|
|
227
242
|
firstDayOfWeek: number;
|
|
228
243
|
/**
|
|
229
244
|
* A callback used to format the header text that shows how many
|
|
230
|
-
* dates are selected.
|
|
231
|
-
*
|
|
232
|
-
*
|
|
245
|
+
* dates are selected. In multiple mode this is only used when
|
|
246
|
+
* there are 0 or more than 1 selected. In range mode it is
|
|
247
|
+
* always called with `[startDate]` or `[startDate, endDate]`.
|
|
248
|
+
* By default, the header text is set to "numberOfDates days".
|
|
233
249
|
*
|
|
234
250
|
* See https://ionicframework.com/docs/troubleshooting/runtime#accessing-this
|
|
235
251
|
* if you need to access `this` from within the callback.
|
|
@@ -238,8 +254,31 @@ export declare class Datetime implements ComponentInterface {
|
|
|
238
254
|
/**
|
|
239
255
|
* If `true`, multiple dates can be selected at once. Only
|
|
240
256
|
* applies to `presentation="date"` and `preferWheel="false"`.
|
|
257
|
+
*
|
|
258
|
+
* @deprecated Use `selectionMode="multiple"` instead.
|
|
241
259
|
*/
|
|
242
260
|
multiple: boolean;
|
|
261
|
+
/**
|
|
262
|
+
* Controls the date selection behavior.
|
|
263
|
+
* `'multiple'` enables selecting multiple individual dates.
|
|
264
|
+
* `'range'` enables selecting a start and end date range.
|
|
265
|
+
* When unset, single-date selection is used.
|
|
266
|
+
*
|
|
267
|
+
* Range selection only works with `presentation="date"` and `preferWheel="false"`.
|
|
268
|
+
*/
|
|
269
|
+
selectionMode?: 'multiple' | 'range';
|
|
270
|
+
/**
|
|
271
|
+
* The text shown in the datetime header when the start of the range
|
|
272
|
+
* is empty, also used by screen readers to announce the start date.
|
|
273
|
+
* Only applies when `selectionMode="range"`.
|
|
274
|
+
*/
|
|
275
|
+
startDateLabel: string;
|
|
276
|
+
/**
|
|
277
|
+
* The text shown in the datetime header when the end of the range
|
|
278
|
+
* is empty, also used by screen readers to announce the end date.
|
|
279
|
+
* Only applies when `selectionMode="range"`.
|
|
280
|
+
*/
|
|
281
|
+
endDateLabel: string;
|
|
243
282
|
/**
|
|
244
283
|
* Used to apply custom text and background colors to specific dates.
|
|
245
284
|
*
|
|
@@ -252,7 +291,9 @@ export declare class Datetime implements ComponentInterface {
|
|
|
252
291
|
highlightedDates?: DatetimeHighlight[] | DatetimeHighlightCallback;
|
|
253
292
|
/**
|
|
254
293
|
* The value of the datetime as a valid ISO 8601 datetime string.
|
|
255
|
-
*
|
|
294
|
+
* Should be an array of strings when using `multiple="true"` or
|
|
295
|
+
* `selectionMode="range"`. For range mode the array contains
|
|
296
|
+
* `[startDate, endDate]`, or `[startDate]` for a partial selection.
|
|
256
297
|
*/
|
|
257
298
|
value?: string | string[] | null;
|
|
258
299
|
/**
|
|
@@ -400,7 +441,23 @@ export declare class Datetime implements ComponentInterface {
|
|
|
400
441
|
private getActivePart;
|
|
401
442
|
private closeParentOverlay;
|
|
402
443
|
private setWorkingParts;
|
|
444
|
+
/**
|
|
445
|
+
* Checks whether the span from start to end contains any disabled day.
|
|
446
|
+
* Used by range mode to prevent selecting across disabled dates.
|
|
447
|
+
*/
|
|
448
|
+
private rangeContainsDisabledDate;
|
|
403
449
|
private setActiveParts;
|
|
450
|
+
/**
|
|
451
|
+
* Handles range selection logic when a day is clicked.
|
|
452
|
+
*
|
|
453
|
+
* Creating a new range: first click sets start, second sets end.
|
|
454
|
+
* Modifying an existing range:
|
|
455
|
+
* - Before range → new start
|
|
456
|
+
* - Within range → new end
|
|
457
|
+
* - After range → new end
|
|
458
|
+
* If the resulting span contains a disabled date, start a new range instead.
|
|
459
|
+
*/
|
|
460
|
+
private setActivePartsRange;
|
|
404
461
|
private get isCalendarPicker();
|
|
405
462
|
private initializeKeyboardListeners;
|
|
406
463
|
private focusWorkingDay;
|
|
@@ -488,6 +545,16 @@ export declare class Datetime implements ComponentInterface {
|
|
|
488
545
|
private renderTimeLabel;
|
|
489
546
|
private renderTimeOverlay;
|
|
490
547
|
private getHeaderSelectedDateText;
|
|
548
|
+
/**
|
|
549
|
+
* Returns the formatted range header text.
|
|
550
|
+
* Shows "Start date - End date" with placeholders from startDateLabel/endDateLabel.
|
|
551
|
+
*/
|
|
552
|
+
private getRangeHeaderText;
|
|
553
|
+
/**
|
|
554
|
+
* Returns the current range value as an ISO string array for
|
|
555
|
+
* titleSelectedDatesFormatter and ionChange.
|
|
556
|
+
*/
|
|
557
|
+
private getRangeValueArray;
|
|
491
558
|
private renderHeader;
|
|
492
559
|
/**
|
|
493
560
|
* Render time picker inside of datetime.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DatetimeHighlight, DatetimeHighlightCallback, DatetimeHighlightStyle, DatetimeParts } from '../datetime-interface';
|
|
1
|
+
import type { DatetimeHighlight, DatetimeHighlightCallback, DatetimeHighlightStyle, DatetimeParts, DatetimeRangeParts } from '../datetime-interface';
|
|
2
2
|
export declare const isYearDisabled: (refYear: number, minParts?: DatetimeParts, maxParts?: DatetimeParts) => boolean;
|
|
3
3
|
/**
|
|
4
4
|
* Returns true if a given day should
|
|
@@ -10,10 +10,13 @@ export declare const isDayDisabled: (refParts: DatetimeParts, minParts?: Datetim
|
|
|
10
10
|
* Given a locale, a date, the selected date(s), and today's date,
|
|
11
11
|
* generate the state for a given calendar day button.
|
|
12
12
|
*/
|
|
13
|
-
export declare const getCalendarDayState: (locale: string, refParts: DatetimeParts, activeParts: DatetimeParts | DatetimeParts[], todayParts: DatetimeParts, minParts?: DatetimeParts, maxParts?: DatetimeParts, dayValues?: number[]) => {
|
|
13
|
+
export declare const getCalendarDayState: (locale: string, refParts: DatetimeParts, activeParts: DatetimeParts | DatetimeParts[], todayParts: DatetimeParts, minParts?: DatetimeParts, maxParts?: DatetimeParts, dayValues?: number[], rangeParts?: DatetimeRangeParts) => {
|
|
14
14
|
disabled: boolean;
|
|
15
15
|
isActive: boolean;
|
|
16
16
|
isToday: boolean;
|
|
17
|
+
isRangeStart: boolean;
|
|
18
|
+
isRangeEnd: boolean;
|
|
19
|
+
isInRange: boolean;
|
|
17
20
|
ariaSelected: string | null;
|
|
18
21
|
ariaLabel: string | null;
|
|
19
22
|
text: string | null;
|
|
@@ -1162,6 +1162,11 @@ export namespace Components {
|
|
|
1162
1162
|
* @default 'Done'
|
|
1163
1163
|
*/
|
|
1164
1164
|
"doneText": string;
|
|
1165
|
+
/**
|
|
1166
|
+
* The text shown in the datetime header when the end of the range is empty, also used by screen readers to announce the end date. Only applies when `selectionMode="range"`.
|
|
1167
|
+
* @default 'End date'
|
|
1168
|
+
*/
|
|
1169
|
+
"endDateLabel": string;
|
|
1165
1170
|
/**
|
|
1166
1171
|
* The first day of the week to use for `ion-datetime`. The default value is `0` and represents Sunday.
|
|
1167
1172
|
* @default 0
|
|
@@ -1218,6 +1223,7 @@ export namespace Components {
|
|
|
1218
1223
|
"monthValues"?: number[] | number | string;
|
|
1219
1224
|
/**
|
|
1220
1225
|
* If `true`, multiple dates can be selected at once. Only applies to `presentation="date"` and `preferWheel="false"`.
|
|
1226
|
+
* @deprecated Use `selectionMode="multiple"` instead.
|
|
1221
1227
|
* @default false
|
|
1222
1228
|
*/
|
|
1223
1229
|
"multiple": boolean;
|
|
@@ -1246,6 +1252,10 @@ export namespace Components {
|
|
|
1246
1252
|
* @param startDate A valid [ISO-8601 string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#date_time_string_format) to reset the datetime state to.
|
|
1247
1253
|
*/
|
|
1248
1254
|
"reset": (startDate?: string) => Promise<void>;
|
|
1255
|
+
/**
|
|
1256
|
+
* Controls the date selection behavior. `'multiple'` enables selecting multiple individual dates. `'range'` enables selecting a start and end date range. When unset, single-date selection is used. Range selection only works with `presentation="date"` and `preferWheel="false"`.
|
|
1257
|
+
*/
|
|
1258
|
+
"selectionMode"?: 'multiple' | 'range';
|
|
1249
1259
|
/**
|
|
1250
1260
|
* If `true`, the datetime calendar displays a six-week (42-day) layout, including days from the previous and next months to fill the grid. These adjacent days are selectable unless disabled.
|
|
1251
1261
|
* @default false
|
|
@@ -1276,16 +1286,21 @@ export namespace Components {
|
|
|
1276
1286
|
* @default 'fixed'
|
|
1277
1287
|
*/
|
|
1278
1288
|
"size": 'cover' | 'fixed';
|
|
1289
|
+
/**
|
|
1290
|
+
* The text shown in the datetime header when the start of the range is empty, also used by screen readers to announce the start date. Only applies when `selectionMode="range"`.
|
|
1291
|
+
* @default 'Start date'
|
|
1292
|
+
*/
|
|
1293
|
+
"startDateLabel": string;
|
|
1279
1294
|
/**
|
|
1280
1295
|
* The theme determines the visual appearance of the component.
|
|
1281
1296
|
*/
|
|
1282
1297
|
"theme"?: "ios" | "md" | "ionic";
|
|
1283
1298
|
/**
|
|
1284
|
-
* A callback used to format the header text that shows how many dates are selected.
|
|
1299
|
+
* A callback used to format the header text that shows how many dates are selected. In multiple mode this is only used when there are 0 or more than 1 selected. In range mode it is always called with `[startDate]` or `[startDate, endDate]`. By default, the header text is set to "numberOfDates days". See https://ionicframework.com/docs/troubleshooting/runtime#accessing-this if you need to access `this` from within the callback.
|
|
1285
1300
|
*/
|
|
1286
1301
|
"titleSelectedDatesFormatter"?: TitleSelectedDatesFormatter;
|
|
1287
1302
|
/**
|
|
1288
|
-
* The value of the datetime as a valid ISO 8601 datetime string.
|
|
1303
|
+
* The value of the datetime as a valid ISO 8601 datetime string. Should be an array of strings when using `multiple="true"` or `selectionMode="range"`. For range mode the array contains `[startDate, endDate]`, or `[startDate]` for a partial selection.
|
|
1289
1304
|
*/
|
|
1290
1305
|
"value"?: string | string[] | null;
|
|
1291
1306
|
/**
|
|
@@ -7044,6 +7059,11 @@ declare namespace LocalJSX {
|
|
|
7044
7059
|
* @default 'Done'
|
|
7045
7060
|
*/
|
|
7046
7061
|
"doneText"?: string;
|
|
7062
|
+
/**
|
|
7063
|
+
* The text shown in the datetime header when the end of the range is empty, also used by screen readers to announce the end date. Only applies when `selectionMode="range"`.
|
|
7064
|
+
* @default 'End date'
|
|
7065
|
+
*/
|
|
7066
|
+
"endDateLabel"?: string;
|
|
7047
7067
|
/**
|
|
7048
7068
|
* The first day of the week to use for `ion-datetime`. The default value is `0` and represents Sunday.
|
|
7049
7069
|
* @default 0
|
|
@@ -7096,6 +7116,7 @@ declare namespace LocalJSX {
|
|
|
7096
7116
|
"monthValues"?: number[] | number | string;
|
|
7097
7117
|
/**
|
|
7098
7118
|
* If `true`, multiple dates can be selected at once. Only applies to `presentation="date"` and `preferWheel="false"`.
|
|
7119
|
+
* @deprecated Use `selectionMode="multiple"` instead.
|
|
7099
7120
|
* @default false
|
|
7100
7121
|
*/
|
|
7101
7122
|
"multiple"?: boolean;
|
|
@@ -7135,6 +7156,10 @@ declare namespace LocalJSX {
|
|
|
7135
7156
|
* @default false
|
|
7136
7157
|
*/
|
|
7137
7158
|
"readonly"?: boolean;
|
|
7159
|
+
/**
|
|
7160
|
+
* Controls the date selection behavior. `'multiple'` enables selecting multiple individual dates. `'range'` enables selecting a start and end date range. When unset, single-date selection is used. Range selection only works with `presentation="date"` and `preferWheel="false"`.
|
|
7161
|
+
*/
|
|
7162
|
+
"selectionMode"?: 'multiple' | 'range';
|
|
7138
7163
|
/**
|
|
7139
7164
|
* If `true`, the datetime calendar displays a six-week (42-day) layout, including days from the previous and next months to fill the grid. These adjacent days are selectable unless disabled.
|
|
7140
7165
|
* @default false
|
|
@@ -7165,16 +7190,21 @@ declare namespace LocalJSX {
|
|
|
7165
7190
|
* @default 'fixed'
|
|
7166
7191
|
*/
|
|
7167
7192
|
"size"?: 'cover' | 'fixed';
|
|
7193
|
+
/**
|
|
7194
|
+
* The text shown in the datetime header when the start of the range is empty, also used by screen readers to announce the start date. Only applies when `selectionMode="range"`.
|
|
7195
|
+
* @default 'Start date'
|
|
7196
|
+
*/
|
|
7197
|
+
"startDateLabel"?: string;
|
|
7168
7198
|
/**
|
|
7169
7199
|
* The theme determines the visual appearance of the component.
|
|
7170
7200
|
*/
|
|
7171
7201
|
"theme"?: "ios" | "md" | "ionic";
|
|
7172
7202
|
/**
|
|
7173
|
-
* A callback used to format the header text that shows how many dates are selected.
|
|
7203
|
+
* A callback used to format the header text that shows how many dates are selected. In multiple mode this is only used when there are 0 or more than 1 selected. In range mode it is always called with `[startDate]` or `[startDate, endDate]`. By default, the header text is set to "numberOfDates days". See https://ionicframework.com/docs/troubleshooting/runtime#accessing-this if you need to access `this` from within the callback.
|
|
7174
7204
|
*/
|
|
7175
7205
|
"titleSelectedDatesFormatter"?: TitleSelectedDatesFormatter;
|
|
7176
7206
|
/**
|
|
7177
|
-
* The value of the datetime as a valid ISO 8601 datetime string.
|
|
7207
|
+
* The value of the datetime as a valid ISO 8601 datetime string. Should be an array of strings when using `multiple="true"` or `selectionMode="range"`. For range mode the array contains `[startDate, endDate]`, or `[startDate]` for a partial selection.
|
|
7178
7208
|
*/
|
|
7179
7209
|
"value"?: string | string[] | null;
|
|
7180
7210
|
/**
|
|
@@ -10545,6 +10575,9 @@ declare namespace LocalJSX {
|
|
|
10545
10575
|
"locale": string;
|
|
10546
10576
|
"firstDayOfWeek": number;
|
|
10547
10577
|
"multiple": boolean;
|
|
10578
|
+
"selectionMode": 'multiple' | 'range';
|
|
10579
|
+
"startDateLabel": string;
|
|
10580
|
+
"endDateLabel": string;
|
|
10548
10581
|
"value": string | string[] | null;
|
|
10549
10582
|
"showDefaultTitle": boolean;
|
|
10550
10583
|
"showDefaultButtons": boolean;
|