@ionic/core 8.8.20-dev.11791573097.1f843ab0 → 8.8.20-dev.11792194859.16be5d7f
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-datetime-button.js +1 -1
- package/components/ion-datetime.js +1 -1
- package/components/{p-BE21dB_a.js → p-Bpr3edV8.js} +1 -1
- package/dist/cjs/ion-datetime-button.cjs.entry.js +28 -10
- package/dist/cjs/ion-datetime_3.cjs.entry.js +354 -30
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/datetime/datetime.ionic.css +144 -1
- package/dist/collection/components/datetime/datetime.ios.css +118 -0
- package/dist/collection/components/datetime/datetime.js +407 -27
- package/dist/collection/components/datetime/datetime.md.css +117 -0
- package/dist/collection/components/datetime/utils/state.js +18 -1
- package/dist/collection/components/datetime-button/datetime-button.js +28 -10
- package/dist/docs.json +151 -1
- package/dist/esm/{format-2WlZcMvG.js → format-BNGmd1mx.js} +1 -1
- package/dist/esm/ion-datetime-button.entry.js +29 -11
- package/dist/esm/ion-datetime_3.entry.js +355 -31
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/html.html-data.json +20 -0
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-4aa6153d.entry.js +4 -0
- package/dist/ionic/p-4f2e482f.entry.js +4 -0
- package/dist/ionic/{p-7k7Q1A38.js → p-CrgdPEJR.js} +1 -1
- package/dist/types/components/datetime/datetime-interface.d.ts +4 -0
- package/dist/types/components/datetime/datetime.d.ts +66 -2
- package/dist/types/components/datetime/utils/state.d.ts +5 -2
- package/dist/types/components.d.ts +33 -0
- package/hydrate/index.js +390 -40
- package/hydrate/index.mjs +390 -40
- package/package.json +1 -1
- package/dist/ionic/p-3a4f9b8a.entry.js +0 -4
- package/dist/ionic/p-f6768728.entry.js +0 -4
package/hydrate/index.mjs
CHANGED
|
@@ -16425,7 +16425,7 @@ const isDayDisabled = (refParts, minParts, maxParts, dayValues) => {
|
|
|
16425
16425
|
* Given a locale, a date, the selected date(s), and today's date,
|
|
16426
16426
|
* generate the state for a given calendar day button.
|
|
16427
16427
|
*/
|
|
16428
|
-
const getCalendarDayState = (locale, refParts, activeParts, todayParts, minParts, maxParts, dayValues) => {
|
|
16428
|
+
const getCalendarDayState = (locale, refParts, activeParts, todayParts, minParts, maxParts, dayValues, rangeParts) => {
|
|
16429
16429
|
/**
|
|
16430
16430
|
* activeParts signals what day(s) are currently selected in the datetime.
|
|
16431
16431
|
* If multiple="true", this will be an array, but the logic in this util
|
|
@@ -16441,6 +16441,20 @@ const getCalendarDayState = (locale, refParts, activeParts, todayParts, minParts
|
|
|
16441
16441
|
const isActive = activePartsArray.find((parts) => isSameDay(refParts, parts)) !== undefined;
|
|
16442
16442
|
const isToday = isSameDay(refParts, todayParts);
|
|
16443
16443
|
const disabled = isDayDisabled(refParts, minParts, maxParts, dayValues);
|
|
16444
|
+
/**
|
|
16445
|
+
* Range state: determine if this day is the range start, end, or in between.
|
|
16446
|
+
*/
|
|
16447
|
+
let isRangeStart = false;
|
|
16448
|
+
let isRangeEnd = false;
|
|
16449
|
+
let isInRange = false;
|
|
16450
|
+
if (rangeParts) {
|
|
16451
|
+
const { start, end } = rangeParts;
|
|
16452
|
+
isRangeStart = isSameDay(refParts, start);
|
|
16453
|
+
if (end) {
|
|
16454
|
+
isRangeEnd = isSameDay(refParts, end);
|
|
16455
|
+
isInRange = !disabled && !isRangeStart && !isRangeEnd && isAfter(refParts, start) && isBefore(refParts, end);
|
|
16456
|
+
}
|
|
16457
|
+
}
|
|
16444
16458
|
/**
|
|
16445
16459
|
* Note that we always return one object regardless of whether activeParts
|
|
16446
16460
|
* was an array, since we pare down to one value for isActive.
|
|
@@ -16449,6 +16463,9 @@ const getCalendarDayState = (locale, refParts, activeParts, todayParts, minParts
|
|
|
16449
16463
|
disabled,
|
|
16450
16464
|
isActive,
|
|
16451
16465
|
isToday,
|
|
16466
|
+
isRangeStart,
|
|
16467
|
+
isRangeEnd,
|
|
16468
|
+
isInRange,
|
|
16452
16469
|
ariaSelected: isActive ? 'true' : null,
|
|
16453
16470
|
ariaLabel: generateDayAriaLabel(locale, isToday, refParts),
|
|
16454
16471
|
text: refParts.day != null ? getDay(locale, refParts) : null,
|
|
@@ -16566,11 +16583,11 @@ const checkForPresentationFormatMismatch = (el, presentation, formatOptions) =>
|
|
|
16566
16583
|
}
|
|
16567
16584
|
};
|
|
16568
16585
|
|
|
16569
|
-
const datetimeIonicCss = () => `: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;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:0;min-height:0;overflow:visible}.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-radius-025, 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-primitives-neutral-500, #9fa5ad)}.calendar-day.calendar-day-today{color:var(--token-semantics-primary-base, 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-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):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 .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))}`;
|
|
16586
|
+
const datetimeIonicCss = () => `: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-range-start::before,:host .calendar-day-wrapper-in-range::before,:host .calendar-day-wrapper-range-end::before{position:absolute;top:50%;height:var(--range-track-height);-webkit-transform:translateY(-50%);transform:translateY(-50%);background:var(--range-background);content:"";z-index:-1}:host .calendar-day-wrapper-range-start::before{inset-inline-start:50%;inset-inline-end:0}:host .calendar-day-wrapper-in-range::before{inset-inline-start:0;inset-inline-end:0}:host .calendar-day-wrapper-range-end::before{inset-inline-start:0;inset-inline-end:50%}:host .calendar-day-wrapper-range-start.calendar-day-wrapper-range-end::before{display:none}:host(.datetime-disabled) .calendar-day-wrapper-range-start,:host(.datetime-disabled) .calendar-day-wrapper-in-range,:host(.datetime-disabled) .calendar-day-wrapper-range-end{opacity:0.4}:host(.datetime-disabled) .calendar-day-wrapper-range-start .calendar-day[disabled],:host(.datetime-disabled) .calendar-day-wrapper-in-range .calendar-day[disabled],:host(.datetime-disabled) .calendar-day-wrapper-range-end .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-primitives-neutral-500, #9fa5ad)}.calendar-day.calendar-day-today{color:var(--token-semantics-primary-base, 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-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):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-semantics-primary-100, var(--token-primitives-blue-100, #f0f2ff));--range-track-height:var(--token-scale-1200, 48px)}.calendar-day.calendar-day-range-start{border-radius:var(--token-border-radius-full, 999px) 0 0 var(--token-border-radius-full, 999px);background:var(--token-semantics-primary-100, var(--token-primitives-blue-100, #f0f2ff));color:var(--token-text-default, var(--token-primitives-neutral-1200, #242528))}.calendar-day.calendar-day-range-end{border-radius:0 var(--token-border-radius-full, 999px) var(--token-border-radius-full, 999px) 0;background:var(--token-semantics-primary-100, var(--token-primitives-blue-100, #f0f2ff));color:var(--token-text-default, var(--token-primitives-neutral-1200, #242528))}.calendar-day.calendar-day-range-start.calendar-day-range-end{border-radius:var(--token-border-radius-full, 999px)}.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-semantics-primary-base, var(--token-semantics-primary-700, var(--token-primitives-blue-700, #105cef)))}.calendar-day.calendar-day-today.calendar-day-range-start,.calendar-day.calendar-day-today.calendar-day-range-end{color:var(--token-semantics-primary-base, var(--token-semantics-primary-700, var(--token-primitives-blue-700, #105cef)))}@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,.calendar-day.calendar-day-in-range:not([disabled]):not(:active):hover{background:var(--token-semantics-primary-200, var(--token-primitives-blue-200, #e4e8ff))}}.calendar-day.calendar-day-range-start:active,.calendar-day.calendar-day-range-end:active,.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(:not(.datetime-readonly)) .calendar-day.calendar-day-range-start[disabled],:host(:not(.datetime-readonly)) .calendar-day.calendar-day-range-end[disabled],:host(:not(.datetime-readonly)) .calendar-day.calendar-day-in-range[disabled]{color:var(--token-primitives-neutral-500, #9fa5ad);opacity:1}:host(.datetime-readonly) .calendar-day.calendar-day-range-start[disabled],:host(.datetime-readonly) .calendar-day.calendar-day-range-end[disabled]{color:var(--token-text-default, var(--token-primitives-neutral-1200, #242528))}: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],: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-semantics-primary-base, var(--token-semantics-primary-700, var(--token-primitives-blue-700, #105cef)))}: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))}`;
|
|
16570
16587
|
|
|
16571
|
-
const datetimeIosCss = () => `: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;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:0;min-height:0;overflow:visible}.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:current-color(base, 0.2);-webkit-box-shadow:0px 0px 0px 4px current-color(base, 0.2);box-shadow:0px 0px 0px 4px current-color(base, 0.2)}.calendar-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-base)}:host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle{color:var(--ion-color-base)}.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-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-base-rgb), 0.2);font-size:min(1.375rem, 35.2px)}:host .calendar-day.calendar-day-today{color:var(--ion-color-base)}:host .calendar-day.calendar-day-active,:host .calendar-day.calendar-day-adjacent-day.calendar-day-active{color:var(--ion-color-base);font-weight:600}:host .calendar-day.calendar-day-today.calendar-day-active{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host .calendar-day.calendar-day-adjacent-day{color:var(--ion-color-step-300, var(--ion-text-color-step-700, #b3b3b3))}:host .datetime-time{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:8px;padding-bottom:16px;font-size:min(1rem, 25.6px)}:host .datetime-time .time-header{font-weight:600}:host .datetime-buttons{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;border-top:0.55px solid var(--ion-color-step-200, var(--ion-background-color-step-200, #cccccc))}:host .datetime-buttons,::slotted([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%}`;
|
|
16588
|
+
const datetimeIosCss = () => `: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-range-start::before,:host .calendar-day-wrapper-in-range::before,:host .calendar-day-wrapper-range-end::before{position:absolute;top:50%;height:var(--range-track-height);-webkit-transform:translateY(-50%);transform:translateY(-50%);background:var(--range-background);content:"";z-index:-1}:host .calendar-day-wrapper-range-start::before{inset-inline-start:50%;inset-inline-end:0}:host .calendar-day-wrapper-in-range::before{inset-inline-start:0;inset-inline-end:0}:host .calendar-day-wrapper-range-end::before{inset-inline-start:0;inset-inline-end:50%}:host .calendar-day-wrapper-range-start.calendar-day-wrapper-range-end::before{display:none}:host(.datetime-disabled) .calendar-day-wrapper-range-start,:host(.datetime-disabled) .calendar-day-wrapper-in-range,:host(.datetime-disabled) .calendar-day-wrapper-range-end{opacity:0.4}:host(.datetime-disabled) .calendar-day-wrapper-range-start .calendar-day[disabled],:host(.datetime-disabled) .calendar-day-wrapper-in-range .calendar-day[disabled],:host(.datetime-disabled) .calendar-day-wrapper-range-end .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:current-color(base, 0.2);-webkit-box-shadow:0px 0px 0px 4px current-color(base, 0.2);box-shadow:0px 0px 0px 4px current-color(base, 0.2)}.calendar-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-base)}:host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle{color:var(--ion-color-base)}.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-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-base-rgb), 0.2);font-size:min(1.375rem, 35.2px)}:host .calendar-day.calendar-day-today{color:var(--ion-color-base)}:host .calendar-day.calendar-day-active,:host .calendar-day.calendar-day-adjacent-day.calendar-day-active{color:var(--ion-color-base);font-weight:600}:host .calendar-day.calendar-day-today.calendar-day-active{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host .calendar-day.calendar-day-adjacent-day{color:var(--ion-color-step-300, var(--ion-text-color-step-700, #b3b3b3))}:host{--range-background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2);--range-track-height:40px}:host(.ion-color){--range-background:rgba(var(--ion-color-base-rgb), 0.2)}:host .calendar-day.calendar-day-range-start{border-radius:50% 0 0 50%;background:var(--ion-color-primary, #0054e9);color:var(--ion-color-primary-contrast, #fff);font-weight:600}:host .calendar-day.calendar-day-range-end{border-radius:0 50% 50% 0;background:var(--ion-color-primary, #0054e9);color:var(--ion-color-primary-contrast, #fff);font-weight:600}:host .calendar-day.calendar-day-range-start.calendar-day-range-end{border-radius:50%}:host .calendar-day.calendar-day-in-range{border-radius:0;background:none}: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 .calendar-day.calendar-day-today.calendar-day-in-range{color:var(--ion-color-primary, #0054e9)}:host(.ion-color) .calendar-day.calendar-day-today.calendar-day-in-range{color:var(--ion-color-base)}: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%}`;
|
|
16572
16589
|
|
|
16573
|
-
const datetimeMdCss = () => `: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;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:0;min-height:0;overflow:visible}.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:current-color(base, 0.2);-webkit-box-shadow:0px 0px 0px 4px current-color(base, 0.2);box-shadow:0px 0px 0px 4px current-color(base, 0.2)}.calendar-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-base)}:host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle{color:var(--ion-color-base)}.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-contrast)}:host .datetime-header{-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:20px;padding-inline-end:20px;padding-top:20px;padding-bottom:20px;background:var(--ion-color-base);color:var(--title-color)}:host .datetime-header .datetime-title{font-size:0.75rem;text-transform:uppercase}:host .datetime-header .datetime-selected-date{margin-top:30px;font-size:2.125rem}:host .calendar-action-buttons ion-button{--color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959))}.calendar-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-base);color:var(--ion-color-base)}:host .calendar-day.calendar-day-active,:host .calendar-day.calendar-day-adjacent-day.calendar-day-active{color:var(--ion-color-contrast)}.calendar-day.calendar-day-active,.calendar-day.calendar-day-active:focus{border:1px solid var(--ion-color-base);background:var(--ion-color-base)}:host .calendar-day.calendar-day-adjacent-day{color:var(--ion-color-step-500, var(--ion-text-color-step-500, gray))}:host .datetime-time{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:8px;padding-bottom:8px}:host .time-header{color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959))}:host(.datetime-presentation-month) .datetime-year,:host(.datetime-presentation-year) .datetime-year,:host(.datetime-presentation-month-year) .datetime-year{margin-top:20px;margin-bottom:20px}:host .datetime-buttons{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:10px;padding-bottom:10px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end}`;
|
|
16590
|
+
const datetimeMdCss = () => `: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-range-start::before,:host .calendar-day-wrapper-in-range::before,:host .calendar-day-wrapper-range-end::before{position:absolute;top:50%;height:var(--range-track-height);-webkit-transform:translateY(-50%);transform:translateY(-50%);background:var(--range-background);content:"";z-index:-1}:host .calendar-day-wrapper-range-start::before{inset-inline-start:50%;inset-inline-end:0}:host .calendar-day-wrapper-in-range::before{inset-inline-start:0;inset-inline-end:0}:host .calendar-day-wrapper-range-end::before{inset-inline-start:0;inset-inline-end:50%}:host .calendar-day-wrapper-range-start.calendar-day-wrapper-range-end::before{display:none}:host(.datetime-disabled) .calendar-day-wrapper-range-start,:host(.datetime-disabled) .calendar-day-wrapper-in-range,:host(.datetime-disabled) .calendar-day-wrapper-range-end{opacity:0.4}:host(.datetime-disabled) .calendar-day-wrapper-range-start .calendar-day[disabled],:host(.datetime-disabled) .calendar-day-wrapper-in-range .calendar-day[disabled],:host(.datetime-disabled) .calendar-day-wrapper-range-end .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:current-color(base, 0.2);-webkit-box-shadow:0px 0px 0px 4px current-color(base, 0.2);box-shadow:0px 0px 0px 4px current-color(base, 0.2)}.calendar-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-base)}:host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle{color:var(--ion-color-base)}.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-contrast)}:host .datetime-header{-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:20px;padding-inline-end:20px;padding-top:20px;padding-bottom:20px;background:var(--ion-color-base);color:var(--title-color)}:host .datetime-header .datetime-title{font-size:0.75rem;text-transform:uppercase}:host .datetime-header .datetime-selected-date{margin-top:30px;font-size:2.125rem}:host .calendar-action-buttons ion-button{--color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959))}.calendar-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-base);color:var(--ion-color-base)}:host .calendar-day.calendar-day-active,:host .calendar-day.calendar-day-adjacent-day.calendar-day-active{color:var(--ion-color-contrast)}.calendar-day.calendar-day-active,.calendar-day.calendar-day-active:focus{border:1px solid var(--ion-color-base);background:var(--ion-color-base)}:host .calendar-day.calendar-day-adjacent-day{color:var(--ion-color-step-500, var(--ion-text-color-step-500, gray))}:host{--range-background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2);--range-track-height:42px}:host(.ion-color){--range-background:rgba(var(--ion-color-base-rgb), 0.2)}:host .calendar-day.calendar-day-range-start{border-radius:50% 0 0 50%;background:var(--ion-color-primary, #0054e9);color:var(--ion-color-primary-contrast, #fff)}:host .calendar-day.calendar-day-range-end{border-radius:0 50% 50% 0;background:var(--ion-color-primary, #0054e9);color:var(--ion-color-primary-contrast, #fff)}:host .calendar-day.calendar-day-range-start.calendar-day-range-end{border-radius:50%}:host .calendar-day.calendar-day-in-range{border-radius:0;background:none}: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 .calendar-day.calendar-day-today.calendar-day-in-range{border:none;color:var(--ion-color-primary, #0054e9)}:host(.ion-color) .calendar-day.calendar-day-today.calendar-day-in-range{color:var(--ion-color-base)}: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}`;
|
|
16574
16591
|
|
|
16575
16592
|
/**
|
|
16576
16593
|
* @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
|
|
@@ -16603,6 +16620,11 @@ const datetimeMdCss = () => `:host{display:-ms-flexbox;display:flex;-ms-flex-flo
|
|
|
16603
16620
|
* @part calendar-day today - The calendar day that contains the current day.
|
|
16604
16621
|
* @part calendar-day disabled - The calendar day that is disabled.
|
|
16605
16622
|
*
|
|
16623
|
+
* @part range-start - The calendar day button that is the start of a range selection.
|
|
16624
|
+
* @part range-end - The calendar day button that is the end of a range selection.
|
|
16625
|
+
* @part range-selection - The calendar day button that is part of a range selection (includes start and end).
|
|
16626
|
+
* @part range-track - The calendar day wrapper element whose ::before pseudo-element draws the range highlight track.
|
|
16627
|
+
*
|
|
16606
16628
|
* @part datetime-header - The datetime header contains the content for the `title` slot and the selected date.
|
|
16607
16629
|
* @part datetime-title - The element that contains the `title` slot content.
|
|
16608
16630
|
* @part datetime-selected-date - The element that contains the selected date.
|
|
@@ -16700,8 +16722,22 @@ class Datetime {
|
|
|
16700
16722
|
/**
|
|
16701
16723
|
* If `true`, multiple dates can be selected at once. Only
|
|
16702
16724
|
* applies to `presentation="date"` and `preferWheel="false"`.
|
|
16725
|
+
*
|
|
16726
|
+
* @deprecated Use `selectionMode="multiple"` instead.
|
|
16703
16727
|
*/
|
|
16704
16728
|
this.multiple = false;
|
|
16729
|
+
/**
|
|
16730
|
+
* The text shown in the datetime header when the start of the range
|
|
16731
|
+
* is empty, also used by screen readers to announce the start date.
|
|
16732
|
+
* Only applies when `selectionMode="range"`.
|
|
16733
|
+
*/
|
|
16734
|
+
this.startDateLabel = 'Start date';
|
|
16735
|
+
/**
|
|
16736
|
+
* The text shown in the datetime header when the end of the range
|
|
16737
|
+
* is empty, also used by screen readers to announce the end date.
|
|
16738
|
+
* Only applies when `selectionMode="range"`.
|
|
16739
|
+
*/
|
|
16740
|
+
this.endDateLabel = 'End date';
|
|
16705
16741
|
/**
|
|
16706
16742
|
* If `true`, a header will be shown above the calendar
|
|
16707
16743
|
* picker. This will include both the slotted title, and
|
|
@@ -16754,8 +16790,8 @@ class Datetime {
|
|
|
16754
16790
|
*/
|
|
16755
16791
|
this.preferWheel = false;
|
|
16756
16792
|
this.warnIfIncorrectValueUsage = () => {
|
|
16757
|
-
const {
|
|
16758
|
-
if (!
|
|
16793
|
+
const { value } = this;
|
|
16794
|
+
if (!this.isMultipleMode && !this.isRangeMode && Array.isArray(value)) {
|
|
16759
16795
|
/**
|
|
16760
16796
|
* We do some processing on the `value` array so
|
|
16761
16797
|
* that it looks more like an array when logged to
|
|
@@ -16764,7 +16800,13 @@ class Datetime {
|
|
|
16764
16800
|
* Default toString() behavior: a,b
|
|
16765
16801
|
* Custom behavior: ['a', 'b']
|
|
16766
16802
|
*/
|
|
16767
|
-
printIonWarning(`[ion-datetime] - An array of values was passed, but multiple
|
|
16803
|
+
printIonWarning(`[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.
|
|
16804
|
+
|
|
16805
|
+
Value Passed: [${value.map((v) => `'${v}'`).join(', ')}]
|
|
16806
|
+
`, this.el);
|
|
16807
|
+
}
|
|
16808
|
+
if (this.isRangeMode && Array.isArray(value) && value.length > 2) {
|
|
16809
|
+
printIonWarning(`[ion-datetime] - More than 2 values were passed with selectionMode="range". Only the first and last values will be used.
|
|
16768
16810
|
|
|
16769
16811
|
Value Passed: [${value.map((v) => `'${v}'`).join(', ')}]
|
|
16770
16812
|
`, this.el);
|
|
@@ -16791,6 +16833,9 @@ class Datetime {
|
|
|
16791
16833
|
};
|
|
16792
16834
|
this.getActivePart = () => {
|
|
16793
16835
|
const { activeParts } = this;
|
|
16836
|
+
if (this.isRangeParts(activeParts)) {
|
|
16837
|
+
return activeParts.start;
|
|
16838
|
+
}
|
|
16794
16839
|
return Array.isArray(activeParts) ? activeParts[0] : activeParts;
|
|
16795
16840
|
};
|
|
16796
16841
|
this.closeParentOverlay = (role) => {
|
|
@@ -16802,6 +16847,33 @@ class Datetime {
|
|
|
16802
16847
|
this.setWorkingParts = (parts) => {
|
|
16803
16848
|
this.workingParts = Object.assign({}, parts);
|
|
16804
16849
|
};
|
|
16850
|
+
/**
|
|
16851
|
+
* Checks whether the span from start to end contains any disabled day.
|
|
16852
|
+
* Used by range mode to prevent selecting across disabled dates.
|
|
16853
|
+
*/
|
|
16854
|
+
this.rangeContainsDisabledDate = (start, end) => {
|
|
16855
|
+
const { minParts, maxParts, parsedDayValues, isDateEnabled } = this;
|
|
16856
|
+
let cursor = getNextDay(start);
|
|
16857
|
+
while (isBefore(cursor, end) || isSameDay(cursor, end)) {
|
|
16858
|
+
if (isSameDay(cursor, end))
|
|
16859
|
+
break;
|
|
16860
|
+
if (isDayDisabled(cursor, minParts, maxParts, parsedDayValues)) {
|
|
16861
|
+
return true;
|
|
16862
|
+
}
|
|
16863
|
+
if (isDateEnabled) {
|
|
16864
|
+
try {
|
|
16865
|
+
if (!isDateEnabled(convertDataToISO(cursor))) {
|
|
16866
|
+
return true;
|
|
16867
|
+
}
|
|
16868
|
+
}
|
|
16869
|
+
catch (_a) {
|
|
16870
|
+
// Swallow user callback exceptions during validation
|
|
16871
|
+
}
|
|
16872
|
+
}
|
|
16873
|
+
cursor = getNextDay(cursor);
|
|
16874
|
+
}
|
|
16875
|
+
return false;
|
|
16876
|
+
};
|
|
16805
16877
|
this.setActiveParts = (parts, removeDate = false) => {
|
|
16806
16878
|
/** if the datetime component is in readonly mode,
|
|
16807
16879
|
* allow browsing of the calendar without changing
|
|
@@ -16810,7 +16882,7 @@ class Datetime {
|
|
|
16810
16882
|
if (this.readonly) {
|
|
16811
16883
|
return;
|
|
16812
16884
|
}
|
|
16813
|
-
const {
|
|
16885
|
+
const { minParts, maxParts, activeParts } = this;
|
|
16814
16886
|
/**
|
|
16815
16887
|
* When setting the active parts, it is possible
|
|
16816
16888
|
* to set invalid data. For example,
|
|
@@ -16823,7 +16895,10 @@ class Datetime {
|
|
|
16823
16895
|
*/
|
|
16824
16896
|
const validatedParts = validateParts(parts, minParts, maxParts);
|
|
16825
16897
|
this.setWorkingParts(validatedParts);
|
|
16826
|
-
if (
|
|
16898
|
+
if (this.isRangeMode) {
|
|
16899
|
+
this.setActivePartsRange(validatedParts);
|
|
16900
|
+
}
|
|
16901
|
+
else if (this.isMultipleMode) {
|
|
16827
16902
|
const activePartsArray = Array.isArray(activeParts) ? activeParts : [activeParts];
|
|
16828
16903
|
if (removeDate) {
|
|
16829
16904
|
this.activeParts = activePartsArray.filter((p) => !isSameDay(p, validatedParts));
|
|
@@ -16841,6 +16916,70 @@ class Datetime {
|
|
|
16841
16916
|
}
|
|
16842
16917
|
this.confirm();
|
|
16843
16918
|
};
|
|
16919
|
+
/**
|
|
16920
|
+
* Handles range selection logic when a day is clicked.
|
|
16921
|
+
*
|
|
16922
|
+
* Creating a new range: first click sets start, second sets end.
|
|
16923
|
+
* Modifying an existing range:
|
|
16924
|
+
* - Before range → new start
|
|
16925
|
+
* - Within range → new end
|
|
16926
|
+
* - After range → new end
|
|
16927
|
+
* If the resulting span contains a disabled date, start a new range instead.
|
|
16928
|
+
*/
|
|
16929
|
+
this.setActivePartsRange = (parts) => {
|
|
16930
|
+
const current = this.rangeParts;
|
|
16931
|
+
if (!current) {
|
|
16932
|
+
// No range yet — start a new one
|
|
16933
|
+
this.activeParts = { start: parts };
|
|
16934
|
+
return;
|
|
16935
|
+
}
|
|
16936
|
+
const { start, end } = current;
|
|
16937
|
+
if (end) {
|
|
16938
|
+
// A complete range exists
|
|
16939
|
+
if (isBefore(parts, start)) {
|
|
16940
|
+
// Before range → new start
|
|
16941
|
+
this.activeParts = { start: parts };
|
|
16942
|
+
}
|
|
16943
|
+
else if (isSameDay(parts, start) || (isAfter(parts, start) && isBefore(parts, end))) {
|
|
16944
|
+
// Within range (including start) → set new end
|
|
16945
|
+
if (this.rangeContainsDisabledDate(start, parts)) {
|
|
16946
|
+
this.activeParts = { start: parts };
|
|
16947
|
+
}
|
|
16948
|
+
else {
|
|
16949
|
+
this.activeParts = { start, end: parts };
|
|
16950
|
+
}
|
|
16951
|
+
}
|
|
16952
|
+
else {
|
|
16953
|
+
// After or equal to end → new end
|
|
16954
|
+
if (this.rangeContainsDisabledDate(start, parts)) {
|
|
16955
|
+
this.activeParts = { start: parts };
|
|
16956
|
+
}
|
|
16957
|
+
else {
|
|
16958
|
+
this.activeParts = { start, end: parts };
|
|
16959
|
+
}
|
|
16960
|
+
}
|
|
16961
|
+
}
|
|
16962
|
+
else {
|
|
16963
|
+
// Only start date, no end yet
|
|
16964
|
+
if (isSameDay(parts, start)) {
|
|
16965
|
+
// Same day → single-day range
|
|
16966
|
+
this.activeParts = { start, end: parts };
|
|
16967
|
+
}
|
|
16968
|
+
else if (isBefore(parts, start)) {
|
|
16969
|
+
// Before start → new start
|
|
16970
|
+
this.activeParts = { start: parts };
|
|
16971
|
+
}
|
|
16972
|
+
else {
|
|
16973
|
+
// After start → set end if no disabled dates in between
|
|
16974
|
+
if (this.rangeContainsDisabledDate(start, parts)) {
|
|
16975
|
+
this.activeParts = { start: parts };
|
|
16976
|
+
}
|
|
16977
|
+
else {
|
|
16978
|
+
this.activeParts = { start, end: parts };
|
|
16979
|
+
}
|
|
16980
|
+
}
|
|
16981
|
+
}
|
|
16982
|
+
};
|
|
16844
16983
|
this.initializeKeyboardListeners = () => {
|
|
16845
16984
|
const calendarBodyRef = this.calendarBodyRef;
|
|
16846
16985
|
if (!calendarBodyRef) {
|
|
@@ -17238,6 +17377,43 @@ class Datetime {
|
|
|
17238
17377
|
if (hasValue) {
|
|
17239
17378
|
warnIfValueOutOfBounds(valueToProcess, minParts, maxParts);
|
|
17240
17379
|
}
|
|
17380
|
+
/**
|
|
17381
|
+
* Range mode: convert the value array into DatetimeRangeParts.
|
|
17382
|
+
*/
|
|
17383
|
+
if (this.isRangeMode) {
|
|
17384
|
+
if (hasValue && Array.isArray(valueToProcess)) {
|
|
17385
|
+
let rangeValues = valueToProcess;
|
|
17386
|
+
// If more than 2 entries, use first and last
|
|
17387
|
+
if (rangeValues.length > 2) {
|
|
17388
|
+
rangeValues = [rangeValues[0], rangeValues[rangeValues.length - 1]];
|
|
17389
|
+
}
|
|
17390
|
+
let startParts = rangeValues[0];
|
|
17391
|
+
let endParts = rangeValues.length > 1 ? rangeValues[1] : undefined;
|
|
17392
|
+
// Normalize reversed pairs so earlier date is start
|
|
17393
|
+
if (endParts && isAfter(startParts, endParts)) {
|
|
17394
|
+
const temp = startParts;
|
|
17395
|
+
startParts = endParts;
|
|
17396
|
+
endParts = temp;
|
|
17397
|
+
}
|
|
17398
|
+
this.activeParts = endParts ? { start: startParts, end: endParts } : { start: startParts };
|
|
17399
|
+
// Navigate calendar to the start date
|
|
17400
|
+
const targetValue = clampDate(startParts, minParts, maxParts);
|
|
17401
|
+
const { month, day, year } = targetValue;
|
|
17402
|
+
const didChangeMonth = (month !== undefined && month !== workingParts.month) || (year !== undefined && year !== workingParts.year);
|
|
17403
|
+
const bodyIsVisible = el.classList.contains('datetime-ready');
|
|
17404
|
+
const { isGridStyle, showMonthAndYear } = this;
|
|
17405
|
+
if (isGridStyle && didChangeMonth && bodyIsVisible && !showMonthAndYear) {
|
|
17406
|
+
this.animateToDate(targetValue);
|
|
17407
|
+
}
|
|
17408
|
+
else {
|
|
17409
|
+
this.setWorkingParts({ month, day, year, hour: 0, minute: 0, ampm: 'am' });
|
|
17410
|
+
}
|
|
17411
|
+
}
|
|
17412
|
+
else {
|
|
17413
|
+
this.activeParts = [];
|
|
17414
|
+
}
|
|
17415
|
+
return;
|
|
17416
|
+
}
|
|
17241
17417
|
/**
|
|
17242
17418
|
* If there are multiple values, clamp to the last one.
|
|
17243
17419
|
* This is because the last value is the one that the user
|
|
@@ -17398,6 +17574,27 @@ class Datetime {
|
|
|
17398
17574
|
const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
|
|
17399
17575
|
return hasDatePresentation && !preferWheel;
|
|
17400
17576
|
}
|
|
17577
|
+
get isMultipleMode() {
|
|
17578
|
+
return this.selectionMode === 'multiple' || (this.selectionMode === undefined && this.multiple);
|
|
17579
|
+
}
|
|
17580
|
+
get isRangeMode() {
|
|
17581
|
+
return this.selectionMode === 'range';
|
|
17582
|
+
}
|
|
17583
|
+
/**
|
|
17584
|
+
* Type guard: returns true if the given activeParts is a DatetimeRangeParts object.
|
|
17585
|
+
*/
|
|
17586
|
+
isRangeParts(parts) {
|
|
17587
|
+
return this.isRangeMode && parts !== null && typeof parts === 'object' && !Array.isArray(parts) && 'start' in parts;
|
|
17588
|
+
}
|
|
17589
|
+
/**
|
|
17590
|
+
* Returns the current range parts if in range mode, or undefined otherwise.
|
|
17591
|
+
*/
|
|
17592
|
+
get rangeParts() {
|
|
17593
|
+
if (this.isRangeParts(this.activeParts)) {
|
|
17594
|
+
return this.activeParts;
|
|
17595
|
+
}
|
|
17596
|
+
return undefined;
|
|
17597
|
+
}
|
|
17401
17598
|
yearValuesChanged() {
|
|
17402
17599
|
this.parsedYearValues = convertToArrayOfNumbers(this.yearValues);
|
|
17403
17600
|
}
|
|
@@ -17433,6 +17630,18 @@ class Datetime {
|
|
|
17433
17630
|
*/
|
|
17434
17631
|
async confirm(closeOverlay = false) {
|
|
17435
17632
|
const { isCalendarPicker, activeParts, preferWheel, workingParts } = this;
|
|
17633
|
+
/**
|
|
17634
|
+
* In range mode, only confirm when both start and end are selected.
|
|
17635
|
+
*/
|
|
17636
|
+
if (this.isRangeMode) {
|
|
17637
|
+
if (this.isRangeParts(activeParts) && activeParts.end) {
|
|
17638
|
+
this.setValue([convertDataToISO(activeParts.start), convertDataToISO(activeParts.end)]);
|
|
17639
|
+
}
|
|
17640
|
+
if (closeOverlay) {
|
|
17641
|
+
this.closeParentOverlay(CONFIRM_ROLE);
|
|
17642
|
+
}
|
|
17643
|
+
return;
|
|
17644
|
+
}
|
|
17436
17645
|
/**
|
|
17437
17646
|
* We only update the value if the presentation is not a calendar picker.
|
|
17438
17647
|
*/
|
|
@@ -17467,6 +17676,22 @@ class Datetime {
|
|
|
17467
17676
|
* @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.
|
|
17468
17677
|
*/
|
|
17469
17678
|
async reset(startDate) {
|
|
17679
|
+
if (this.isRangeMode) {
|
|
17680
|
+
/**
|
|
17681
|
+
* In range mode, reset clears the full range. If a startDate
|
|
17682
|
+
* is provided, the calendar navigates to that month without
|
|
17683
|
+
* selecting anything so the user begins a fresh selection.
|
|
17684
|
+
*/
|
|
17685
|
+
this.activeParts = [];
|
|
17686
|
+
if (startDate) {
|
|
17687
|
+
const parsed = parseDate(startDate);
|
|
17688
|
+
if (parsed) {
|
|
17689
|
+
const target = Array.isArray(parsed) ? parsed[0] : parsed;
|
|
17690
|
+
this.setWorkingParts(target);
|
|
17691
|
+
}
|
|
17692
|
+
}
|
|
17693
|
+
return;
|
|
17694
|
+
}
|
|
17470
17695
|
this.processValue(startDate);
|
|
17471
17696
|
}
|
|
17472
17697
|
/**
|
|
@@ -17478,6 +17703,14 @@ class Datetime {
|
|
|
17478
17703
|
* @param closeOverlay If `true`, closes the parent overlay. Defaults to `false`.
|
|
17479
17704
|
*/
|
|
17480
17705
|
async cancel(closeOverlay = false) {
|
|
17706
|
+
/**
|
|
17707
|
+
* In range mode, clear the visible selection (including partial ranges)
|
|
17708
|
+
* so the component returns to an empty state. The value property is
|
|
17709
|
+
* left untouched, matching single/multiple mode behavior.
|
|
17710
|
+
*/
|
|
17711
|
+
if (this.isRangeMode) {
|
|
17712
|
+
this.activeParts = [];
|
|
17713
|
+
}
|
|
17481
17714
|
this.ionCancel.emit();
|
|
17482
17715
|
if (closeOverlay) {
|
|
17483
17716
|
this.closeParentOverlay(CANCEL_ROLE);
|
|
@@ -17658,8 +17891,11 @@ class Datetime {
|
|
|
17658
17891
|
});
|
|
17659
17892
|
}
|
|
17660
17893
|
componentWillLoad() {
|
|
17661
|
-
const { el, formatOptions, highlightedDates, multiple, presentation, preferWheel } = this;
|
|
17662
|
-
if (multiple) {
|
|
17894
|
+
const { el, formatOptions, highlightedDates, multiple, selectionMode, presentation, preferWheel } = this;
|
|
17895
|
+
if (selectionMode === undefined && multiple) {
|
|
17896
|
+
printIonWarning('[ion-datetime] - The "multiple" property is deprecated. Use selectionMode="multiple" instead.', el);
|
|
17897
|
+
}
|
|
17898
|
+
if (this.isMultipleMode) {
|
|
17663
17899
|
if (presentation !== 'date') {
|
|
17664
17900
|
printIonWarning('[ion-datetime] - Multiple date selection is only supported for presentation="date".', el);
|
|
17665
17901
|
}
|
|
@@ -17667,6 +17903,17 @@ class Datetime {
|
|
|
17667
17903
|
printIonWarning('[ion-datetime] - Multiple date selection is not supported with preferWheel="true".', el);
|
|
17668
17904
|
}
|
|
17669
17905
|
}
|
|
17906
|
+
if (this.isRangeMode) {
|
|
17907
|
+
if (presentation !== 'date') {
|
|
17908
|
+
printIonWarning('[ion-datetime] - Range selection is only supported for presentation="date".', el);
|
|
17909
|
+
}
|
|
17910
|
+
if (preferWheel) {
|
|
17911
|
+
printIonWarning('[ion-datetime] - Range selection is not supported with preferWheel="true".', el);
|
|
17912
|
+
}
|
|
17913
|
+
}
|
|
17914
|
+
if (selectionMode !== undefined && multiple) {
|
|
17915
|
+
printIonWarning('[ion-datetime] - Both "selectionMode" and "multiple" are set. "selectionMode" takes precedence.', el);
|
|
17916
|
+
}
|
|
17670
17917
|
if (highlightedDates !== undefined) {
|
|
17671
17918
|
if (presentation !== 'date' && presentation !== 'date-time' && presentation !== 'time-date') {
|
|
17672
17919
|
printIonWarning('[ion-datetime] - The highlightedDates property is only supported with the date, date-time, and time-date presentations.', el);
|
|
@@ -17721,6 +17968,12 @@ class Datetime {
|
|
|
17721
17968
|
* is disabled or readonly.
|
|
17722
17969
|
*/
|
|
17723
17970
|
const isButtonDisabled = disabled || readonly;
|
|
17971
|
+
/**
|
|
17972
|
+
* In range mode, the confirm button should be disabled until
|
|
17973
|
+
* both a start and end date have been selected.
|
|
17974
|
+
*/
|
|
17975
|
+
const isRangeIncomplete = this.isRangeMode && (!this.isRangeParts(this.activeParts) || !this.activeParts.end);
|
|
17976
|
+
const isConfirmDisabled = isButtonDisabled || isRangeIncomplete;
|
|
17724
17977
|
const confirmFill = theme === 'ionic' ? 'solid' : undefined;
|
|
17725
17978
|
const hasSlottedButtons = this.el.querySelector('[slot="buttons"]') !== null;
|
|
17726
17979
|
if (!hasSlottedButtons && !showDefaultButtons && !showClearButton) {
|
|
@@ -17740,7 +17993,7 @@ class Datetime {
|
|
|
17740
17993
|
return (hAsync("div", { class: "datetime-footer" }, hAsync("div", { class: "datetime-buttons" }, hAsync("div", { class: {
|
|
17741
17994
|
['datetime-action-buttons']: true,
|
|
17742
17995
|
['has-clear-button']: this.showClearButton,
|
|
17743
|
-
} }, hAsync("slot", { name: "buttons" }, showDefaultButtons && (hAsync("ion-button", { id: "cancel-button", color: this.color, onClick: () => this.cancel(true), disabled: isButtonDisabled }, this.cancelText)), hAsync("div", { class: "datetime-action-buttons-container" }, showClearButton && (hAsync("ion-button", { id: "clear-button", color: this.color, onClick: () => clearButtonClick(), disabled: isButtonDisabled }, this.clearText)), showDefaultButtons && (hAsync("ion-button", { id: "confirm-button", fill: confirmFill, color: this.color, onClick: () => this.confirm(true), disabled:
|
|
17996
|
+
} }, hAsync("slot", { name: "buttons" }, showDefaultButtons && (hAsync("ion-button", { id: "cancel-button", color: this.color, onClick: () => this.cancel(true), disabled: isButtonDisabled }, this.cancelText)), hAsync("div", { class: "datetime-action-buttons-container" }, showClearButton && (hAsync("ion-button", { id: "clear-button", color: this.color, onClick: () => clearButtonClick(), disabled: isButtonDisabled }, this.clearText)), showDefaultButtons && (hAsync("ion-button", { id: "confirm-button", fill: confirmFill, color: this.color, onClick: () => this.confirm(true), disabled: isConfirmDisabled }, this.doneText))))))));
|
|
17744
17997
|
}
|
|
17745
17998
|
/**
|
|
17746
17999
|
* Wheel picker render methods
|
|
@@ -18040,7 +18293,7 @@ class Datetime {
|
|
|
18040
18293
|
'calendar-month-disabled': !isWorkingMonth && swipeDisabled,
|
|
18041
18294
|
} }, hAsync("div", { class: "calendar-month-grid" }, getDaysOfMonth(month, year, this.firstDayOfWeek % 7, this.showAdjacentDays).map((dateObject, index) => {
|
|
18042
18295
|
const { day, dayOfWeek, isAdjacentDay } = dateObject;
|
|
18043
|
-
const { el, highlightedDates, isDateEnabled,
|
|
18296
|
+
const { el, highlightedDates, isDateEnabled, showAdjacentDays } = this;
|
|
18044
18297
|
let _month = month;
|
|
18045
18298
|
let _year = year;
|
|
18046
18299
|
if (showAdjacentDays && isAdjacentDay && day !== null) {
|
|
@@ -18069,7 +18322,7 @@ class Datetime {
|
|
|
18069
18322
|
}
|
|
18070
18323
|
const referenceParts = { month: _month, day, year: _year, isAdjacentDay };
|
|
18071
18324
|
const isCalendarPadding = day === null;
|
|
18072
|
-
const { isActive, isToday, ariaLabel, ariaSelected, disabled: isDayDisabled, text, } = getCalendarDayState(this.locale, referenceParts, this.activeParts, this.todayParts, this.minParts, this.maxParts, this.parsedDayValues);
|
|
18325
|
+
const { isActive, isToday, ariaLabel, ariaSelected, disabled: isDayDisabled, isRangeStart, isRangeEnd, isInRange, text, } = getCalendarDayState(this.locale, referenceParts, this.isRangeParts(this.activeParts) ? [] : this.activeParts, this.todayParts, this.minParts, this.maxParts, this.parsedDayValues, this.rangeParts);
|
|
18073
18326
|
const dateIsoString = convertDataToISO(referenceParts);
|
|
18074
18327
|
let isCalDayDisabled = isCalMonthDisabled || isDayDisabled;
|
|
18075
18328
|
if (!isCalDayDisabled && isDateEnabled !== undefined) {
|
|
@@ -18092,24 +18345,50 @@ class Datetime {
|
|
|
18092
18345
|
*/
|
|
18093
18346
|
const isCalDayConstrained = isCalDayDisabled && isDatetimeDisabled;
|
|
18094
18347
|
const isButtonDisabled = isCalDayDisabled || isDatetimeDisabled;
|
|
18348
|
+
/**
|
|
18349
|
+
* Determine if this day is part of the range selection.
|
|
18350
|
+
* Range styling takes priority over highlightedDates.
|
|
18351
|
+
*/
|
|
18352
|
+
const isPartOfRange = isRangeStart || isRangeEnd || isInRange;
|
|
18095
18353
|
let dateStyle = undefined;
|
|
18096
18354
|
/**
|
|
18097
|
-
* Custom highlight styles should not override the style for selected dates
|
|
18098
|
-
* nor apply to "filler days" at the start of the grid.
|
|
18355
|
+
* Custom highlight styles should not override the style for selected dates
|
|
18356
|
+
* or range selection, nor apply to "filler days" at the start of the grid.
|
|
18099
18357
|
*/
|
|
18100
|
-
if (highlightedDates !== undefined && !isActive && day !== null && !isAdjacentDay) {
|
|
18358
|
+
if (highlightedDates !== undefined && !isActive && !isPartOfRange && day !== null && !isAdjacentDay) {
|
|
18101
18359
|
dateStyle = getHighlightStyles(highlightedDates, dateIsoString, el);
|
|
18102
18360
|
}
|
|
18103
18361
|
let dateParts = undefined;
|
|
18104
18362
|
// "Filler days" at the beginning of the grid should not get the calendar day
|
|
18105
18363
|
// CSS parts added to them
|
|
18106
18364
|
if (!isCalendarPadding && !isAdjacentDay) {
|
|
18107
|
-
dateParts = `calendar-day${isActive ? ' active' : ''}${isToday ? ' today' : ''}${isCalDayDisabled ? ' disabled' : ''}`;
|
|
18365
|
+
dateParts = `calendar-day${isActive || isRangeStart || isRangeEnd ? ' active' : ''}${isToday ? ' today' : ''}${isCalDayDisabled ? ' disabled' : ''}${isRangeStart ? ' range-start range-selection' : ''}${isRangeEnd ? ' range-end range-selection' : ''}${isInRange ? ' range-selection' : ''}`;
|
|
18108
18366
|
}
|
|
18109
18367
|
else if (isAdjacentDay) {
|
|
18110
18368
|
dateParts = `calendar-day${isCalDayDisabled ? ' disabled' : ''}`;
|
|
18111
18369
|
}
|
|
18112
|
-
|
|
18370
|
+
/**
|
|
18371
|
+
* Build the wrapper's shadow part attribute for range track styling.
|
|
18372
|
+
*/
|
|
18373
|
+
const wrapperParts = isPartOfRange && !isCalendarPadding && !isAdjacentDay ? 'range-track' : undefined;
|
|
18374
|
+
/**
|
|
18375
|
+
* Build the aria-label for range mode accessibility.
|
|
18376
|
+
*/
|
|
18377
|
+
let rangeAriaLabel = ariaLabel;
|
|
18378
|
+
if (this.isRangeMode && ariaLabel) {
|
|
18379
|
+
if (isRangeStart) {
|
|
18380
|
+
rangeAriaLabel = `${ariaLabel}, ${this.startDateLabel}`;
|
|
18381
|
+
}
|
|
18382
|
+
if (isRangeEnd) {
|
|
18383
|
+
rangeAriaLabel = `${ariaLabel}, ${this.endDateLabel}`;
|
|
18384
|
+
}
|
|
18385
|
+
}
|
|
18386
|
+
return (hAsync("div", { class: {
|
|
18387
|
+
'calendar-day-wrapper': true,
|
|
18388
|
+
'calendar-day-wrapper-range-start': isRangeStart,
|
|
18389
|
+
'calendar-day-wrapper-in-range': isInRange,
|
|
18390
|
+
'calendar-day-wrapper-range-end': isRangeEnd,
|
|
18391
|
+
}, part: wrapperParts }, hAsync("button", {
|
|
18113
18392
|
// We need to use !important for the inline styles here because
|
|
18114
18393
|
// otherwise the CSS shadow parts will override these styles.
|
|
18115
18394
|
// See https://github.com/WICG/webcomponents/issues/847
|
|
@@ -18125,25 +18404,37 @@ class Datetime {
|
|
|
18125
18404
|
}, tabindex: "-1", "data-day": day, "data-month": _month, "data-year": _year, "data-index": index, "data-day-of-week": dayOfWeek, disabled: isButtonDisabled, class: {
|
|
18126
18405
|
'calendar-day-padding': isCalendarPadding,
|
|
18127
18406
|
'calendar-day': true,
|
|
18128
|
-
'calendar-day-active': isActive,
|
|
18407
|
+
'calendar-day-active': isActive || isRangeStart || isRangeEnd,
|
|
18129
18408
|
'calendar-day-constrained': isCalDayConstrained,
|
|
18130
18409
|
'calendar-day-today': isToday,
|
|
18131
18410
|
'calendar-day-adjacent-day': isAdjacentDay,
|
|
18132
|
-
|
|
18411
|
+
'calendar-day-range-start': isRangeStart,
|
|
18412
|
+
'calendar-day-range-end': isRangeEnd,
|
|
18413
|
+
'calendar-day-in-range': isInRange,
|
|
18414
|
+
}, part: dateParts, "aria-hidden": isCalendarPadding ? 'true' : null, "aria-selected": isActive || isRangeStart || isRangeEnd ? 'true' : ariaSelected, "aria-label": rangeAriaLabel, onClick: () => {
|
|
18133
18415
|
if (isCalendarPadding) {
|
|
18134
18416
|
return;
|
|
18135
18417
|
}
|
|
18136
18418
|
if (isAdjacentDay) {
|
|
18137
18419
|
// The user selected a day outside the current month. Ignore this button, as the month will be re-rendered.
|
|
18138
18420
|
this.el.blur();
|
|
18139
|
-
|
|
18421
|
+
if (!this.isRangeMode) {
|
|
18422
|
+
this.activeParts = Object.assign(Object.assign({}, activePart), referenceParts);
|
|
18423
|
+
}
|
|
18140
18424
|
this.animateToDate(referenceParts);
|
|
18141
|
-
this.
|
|
18425
|
+
if (this.isRangeMode) {
|
|
18426
|
+
this.setActiveParts(referenceParts);
|
|
18427
|
+
}
|
|
18428
|
+
else {
|
|
18429
|
+
this.confirm();
|
|
18430
|
+
}
|
|
18142
18431
|
}
|
|
18143
18432
|
else {
|
|
18144
18433
|
this.setWorkingParts(Object.assign(Object.assign({}, this.workingParts), referenceParts));
|
|
18145
|
-
|
|
18146
|
-
|
|
18434
|
+
if (this.isRangeMode) {
|
|
18435
|
+
this.setActiveParts(referenceParts);
|
|
18436
|
+
}
|
|
18437
|
+
else if (this.isMultipleMode) {
|
|
18147
18438
|
this.setActiveParts(referenceParts, isActive);
|
|
18148
18439
|
}
|
|
18149
18440
|
else {
|
|
@@ -18214,10 +18505,23 @@ class Datetime {
|
|
|
18214
18505
|
}
|
|
18215
18506
|
getHeaderSelectedDateText() {
|
|
18216
18507
|
var _a;
|
|
18217
|
-
const { activeParts, formatOptions,
|
|
18508
|
+
const { activeParts, formatOptions, titleSelectedDatesFormatter } = this;
|
|
18218
18509
|
const isArray = Array.isArray(activeParts);
|
|
18510
|
+
const dateFormatOptions = (_a = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.date) !== null && _a !== void 0 ? _a : { weekday: 'short', month: 'short', day: 'numeric' };
|
|
18219
18511
|
let headerText;
|
|
18220
|
-
if (
|
|
18512
|
+
if (this.isRangeMode) {
|
|
18513
|
+
headerText = this.getRangeHeaderText(dateFormatOptions);
|
|
18514
|
+
if (titleSelectedDatesFormatter !== undefined) {
|
|
18515
|
+
try {
|
|
18516
|
+
const rangeValues = this.getRangeValueArray();
|
|
18517
|
+
headerText = titleSelectedDatesFormatter(rangeValues);
|
|
18518
|
+
}
|
|
18519
|
+
catch (e) {
|
|
18520
|
+
printIonError('[ion-datetime] - Exception in provided `titleSelectedDatesFormatter`:', e);
|
|
18521
|
+
}
|
|
18522
|
+
}
|
|
18523
|
+
}
|
|
18524
|
+
else if (this.isMultipleMode && isArray && activeParts.length !== 1) {
|
|
18221
18525
|
headerText = `${activeParts.length} days`; // default/fallback for multiple selection
|
|
18222
18526
|
if (titleSelectedDatesFormatter !== undefined) {
|
|
18223
18527
|
try {
|
|
@@ -18230,10 +18534,35 @@ class Datetime {
|
|
|
18230
18534
|
}
|
|
18231
18535
|
else {
|
|
18232
18536
|
// for exactly 1 day selected (multiple set or not), show a formatted version of that
|
|
18233
|
-
headerText = getLocalizedDateTime(this.locale, this.getActivePartsWithFallback(),
|
|
18537
|
+
headerText = getLocalizedDateTime(this.locale, this.getActivePartsWithFallback(), dateFormatOptions);
|
|
18234
18538
|
}
|
|
18235
18539
|
return headerText;
|
|
18236
18540
|
}
|
|
18541
|
+
/**
|
|
18542
|
+
* Returns the formatted range header text.
|
|
18543
|
+
* Shows "Start date - End date" with placeholders from startDateLabel/endDateLabel.
|
|
18544
|
+
*/
|
|
18545
|
+
getRangeHeaderText(dateFormatOptions) {
|
|
18546
|
+
const range = this.rangeParts;
|
|
18547
|
+
if (!range) {
|
|
18548
|
+
return `${this.startDateLabel} - ${this.endDateLabel}`;
|
|
18549
|
+
}
|
|
18550
|
+
const startText = getLocalizedDateTime(this.locale, range.start, dateFormatOptions);
|
|
18551
|
+
const endText = range.end ? getLocalizedDateTime(this.locale, range.end, dateFormatOptions) : this.endDateLabel;
|
|
18552
|
+
return `${startText} - ${endText}`;
|
|
18553
|
+
}
|
|
18554
|
+
/**
|
|
18555
|
+
* Returns the current range value as an ISO string array for
|
|
18556
|
+
* titleSelectedDatesFormatter and ionChange.
|
|
18557
|
+
*/
|
|
18558
|
+
getRangeValueArray() {
|
|
18559
|
+
const range = this.rangeParts;
|
|
18560
|
+
if (!range)
|
|
18561
|
+
return [];
|
|
18562
|
+
if (!range.end)
|
|
18563
|
+
return [convertDataToISO(range.start)];
|
|
18564
|
+
return [convertDataToISO(range.start), convertDataToISO(range.end)];
|
|
18565
|
+
}
|
|
18237
18566
|
renderHeader(showExpandedHeader = true) {
|
|
18238
18567
|
const hasSlottedTitle = this.el.querySelector('[slot="title"]') !== null;
|
|
18239
18568
|
if (!hasSlottedTitle && !this.showDefaultTitle) {
|
|
@@ -18391,7 +18720,7 @@ class Datetime {
|
|
|
18391
18720
|
const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
|
|
18392
18721
|
const hasWheelVariant = hasDatePresentation && preferWheel;
|
|
18393
18722
|
renderHiddenInput(true, el, name, formatValue(value), disabled);
|
|
18394
|
-
return (hAsync(Host, { key: '
|
|
18723
|
+
return (hAsync(Host, { key: '8ec46f2a5bc855c3d6210f72305b66655ad59b93', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses$1(color, {
|
|
18395
18724
|
[theme]: true,
|
|
18396
18725
|
['datetime-readonly']: readonly,
|
|
18397
18726
|
['datetime-disabled']: disabled,
|
|
@@ -18401,7 +18730,7 @@ class Datetime {
|
|
|
18401
18730
|
[`datetime-size-${size}`]: true,
|
|
18402
18731
|
[`datetime-prefer-wheel`]: hasWheelVariant,
|
|
18403
18732
|
[`datetime-grid`]: isGridStyle,
|
|
18404
|
-
})) }, hAsync("div", { key: '
|
|
18733
|
+
})) }, hAsync("div", { key: 'b7bf9b1e681b8d1a5a24a27c758a528c03a203fc', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(theme)));
|
|
18405
18734
|
}
|
|
18406
18735
|
get el() { return getElement(this); }
|
|
18407
18736
|
static get watchers() { return {
|
|
@@ -18470,6 +18799,9 @@ class Datetime {
|
|
|
18470
18799
|
"firstDayOfWeek": [2, "first-day-of-week"],
|
|
18471
18800
|
"titleSelectedDatesFormatter": [16],
|
|
18472
18801
|
"multiple": [4],
|
|
18802
|
+
"selectionMode": [1, "selection-mode"],
|
|
18803
|
+
"startDateLabel": [1, "start-date-label"],
|
|
18804
|
+
"endDateLabel": [1, "end-date-label"],
|
|
18473
18805
|
"highlightedDates": [16],
|
|
18474
18806
|
"value": [1025],
|
|
18475
18807
|
"showDefaultTitle": [4, "show-default-title"],
|
|
@@ -18554,12 +18886,12 @@ class DatetimeButton {
|
|
|
18554
18886
|
* to the locale specified on ion-datetime.
|
|
18555
18887
|
*/
|
|
18556
18888
|
this.setDateTimeText = async () => {
|
|
18557
|
-
var _a, _b, _c, _d
|
|
18889
|
+
var _a, _b, _c, _d;
|
|
18558
18890
|
const { datetimeEl, datetimePresentation } = this;
|
|
18559
18891
|
if (!datetimeEl) {
|
|
18560
18892
|
return;
|
|
18561
18893
|
}
|
|
18562
|
-
const { value, locale, formatOptions, hourCycle, preferWheel, multiple, titleSelectedDatesFormatter } = datetimeEl;
|
|
18894
|
+
const { value, locale, formatOptions, hourCycle, preferWheel, multiple, selectionMode, titleSelectedDatesFormatter, } = datetimeEl;
|
|
18563
18895
|
const parsedValues = this.getParsedDateValues(value);
|
|
18564
18896
|
/**
|
|
18565
18897
|
* Both ion-datetime and ion-datetime-button default to today's date and
|
|
@@ -18571,6 +18903,8 @@ class DatetimeButton {
|
|
|
18571
18903
|
if (!parsedDatetimes) {
|
|
18572
18904
|
return;
|
|
18573
18905
|
}
|
|
18906
|
+
const isRangeMode = selectionMode === 'range';
|
|
18907
|
+
const isMultipleMode = selectionMode === 'multiple' || (selectionMode === undefined && multiple);
|
|
18574
18908
|
/**
|
|
18575
18909
|
* If developers incorrectly use multiple="true"
|
|
18576
18910
|
* with non "date" datetimes, then just select
|
|
@@ -18580,11 +18914,12 @@ class DatetimeButton {
|
|
|
18580
18914
|
*/
|
|
18581
18915
|
const firstParsedDatetime = parsedDatetimes[0];
|
|
18582
18916
|
const computedHourCycle = getHourCycle(locale, hourCycle);
|
|
18917
|
+
const dateFormatOptions = (_a = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.date) !== null && _a !== void 0 ? _a : { month: 'short', day: 'numeric', year: 'numeric' };
|
|
18583
18918
|
this.dateText = this.timeText = undefined;
|
|
18584
18919
|
switch (datetimePresentation) {
|
|
18585
18920
|
case 'date-time':
|
|
18586
18921
|
case 'time-date':
|
|
18587
|
-
const dateText = getLocalizedDateTime(locale, firstParsedDatetime,
|
|
18922
|
+
const dateText = getLocalizedDateTime(locale, firstParsedDatetime, dateFormatOptions);
|
|
18588
18923
|
const timeText = getLocalizedTime(locale, firstParsedDatetime, computedHourCycle, formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.time);
|
|
18589
18924
|
if (preferWheel) {
|
|
18590
18925
|
this.dateText = `${dateText} ${timeText}`;
|
|
@@ -18595,7 +18930,22 @@ class DatetimeButton {
|
|
|
18595
18930
|
}
|
|
18596
18931
|
break;
|
|
18597
18932
|
case 'date':
|
|
18598
|
-
if (
|
|
18933
|
+
if (isRangeMode && parsedValues.length === 2) {
|
|
18934
|
+
// Range mode: display "startDate - endDate"
|
|
18935
|
+
const startDate = getLocalizedDateTime(locale, parsedDatetimes[0], dateFormatOptions);
|
|
18936
|
+
const endDate = getLocalizedDateTime(locale, parsedDatetimes.length > 1 ? parsedDatetimes[1] : parsedDatetimes[0], dateFormatOptions);
|
|
18937
|
+
let rangeText = `${startDate} - ${endDate}`;
|
|
18938
|
+
if (titleSelectedDatesFormatter !== undefined) {
|
|
18939
|
+
try {
|
|
18940
|
+
rangeText = titleSelectedDatesFormatter(parsedValues);
|
|
18941
|
+
}
|
|
18942
|
+
catch (e) {
|
|
18943
|
+
printIonError('[ion-datetime-button] - Exception in provided `titleSelectedDatesFormatter`:', e);
|
|
18944
|
+
}
|
|
18945
|
+
}
|
|
18946
|
+
this.dateText = rangeText;
|
|
18947
|
+
}
|
|
18948
|
+
else if (isMultipleMode && parsedValues.length !== 1) {
|
|
18599
18949
|
let headerText = `${parsedValues.length} days`; // default/fallback for multiple selection
|
|
18600
18950
|
if (titleSelectedDatesFormatter !== undefined) {
|
|
18601
18951
|
try {
|
|
@@ -18608,20 +18958,20 @@ class DatetimeButton {
|
|
|
18608
18958
|
this.dateText = headerText;
|
|
18609
18959
|
}
|
|
18610
18960
|
else {
|
|
18611
|
-
this.dateText = getLocalizedDateTime(locale, firstParsedDatetime,
|
|
18961
|
+
this.dateText = getLocalizedDateTime(locale, firstParsedDatetime, dateFormatOptions);
|
|
18612
18962
|
}
|
|
18613
18963
|
break;
|
|
18614
18964
|
case 'time':
|
|
18615
18965
|
this.timeText = getLocalizedTime(locale, firstParsedDatetime, computedHourCycle, formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.time);
|
|
18616
18966
|
break;
|
|
18617
18967
|
case 'month-year':
|
|
18618
|
-
this.dateText = getLocalizedDateTime(locale, firstParsedDatetime, (
|
|
18968
|
+
this.dateText = getLocalizedDateTime(locale, firstParsedDatetime, (_b = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.date) !== null && _b !== void 0 ? _b : { month: 'long', year: 'numeric' });
|
|
18619
18969
|
break;
|
|
18620
18970
|
case 'month':
|
|
18621
|
-
this.dateText = getLocalizedDateTime(locale, firstParsedDatetime, (
|
|
18971
|
+
this.dateText = getLocalizedDateTime(locale, firstParsedDatetime, (_c = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.time) !== null && _c !== void 0 ? _c : { month: 'long' });
|
|
18622
18972
|
break;
|
|
18623
18973
|
case 'year':
|
|
18624
|
-
this.dateText = getLocalizedDateTime(locale, firstParsedDatetime, (
|
|
18974
|
+
this.dateText = getLocalizedDateTime(locale, firstParsedDatetime, (_d = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.time) !== null && _d !== void 0 ? _d : { year: 'numeric' });
|
|
18625
18975
|
break;
|
|
18626
18976
|
}
|
|
18627
18977
|
};
|
|
@@ -18842,11 +19192,11 @@ class DatetimeButton {
|
|
|
18842
19192
|
render() {
|
|
18843
19193
|
const { color, dateText, timeText, selectedButton, datetimeActive, disabled } = this;
|
|
18844
19194
|
const theme = getIonTheme(this);
|
|
18845
|
-
return (hAsync(Host, { key: '
|
|
19195
|
+
return (hAsync(Host, { key: 'b1bc06c9642af956c42e886af07e27176ba4a13a', class: createColorClasses$1(color, {
|
|
18846
19196
|
[theme]: true,
|
|
18847
19197
|
[`${selectedButton}-active`]: datetimeActive,
|
|
18848
19198
|
['datetime-button-disabled']: disabled,
|
|
18849
|
-
}) }, dateText && (hAsync("button", { key: '
|
|
19199
|
+
}) }, dateText && (hAsync("button", { key: '3939366688b3be6db62b70b6a3b717819934560f', class: "ion-activatable", id: "date-button", "aria-expanded": datetimeActive ? 'true' : 'false', onClick: this.handleDateClick, disabled: disabled, part: "native", ref: (el) => (this.dateTargetEl = el) }, hAsync("slot", { key: 'e4cf933fcfdb2c7559806af448c4ec8dfd5a5e14', name: "date-target" }, dateText), theme === 'md' && hAsync("ion-ripple-effect", { key: 'b1c11e4c67bce14f5dfa8b69a15cde5b367b1c4a' }))), timeText && (hAsync("button", { key: '708c2070eecabf09e3db6d8f8a45a76ecd53ccf8', class: "ion-activatable", id: "time-button", "aria-expanded": datetimeActive ? 'true' : 'false', onClick: this.handleTimeClick, disabled: disabled, part: "native", ref: (el) => (this.timeTargetEl = el) }, hAsync("slot", { key: '2885629c3fb033b234bfae0ec9038874e109b0de', name: "time-target" }, timeText), theme === 'md' && hAsync("ion-ripple-effect", { key: '4eed69bef9ed46fb1fd53605bcd05cd104e2505b' })))));
|
|
18850
19200
|
}
|
|
18851
19201
|
get el() { return getElement(this); }
|
|
18852
19202
|
static get style() { return {
|