@ionic/core 7.3.5-nightly.20230914 → 7.4.1-dev.11694783260.13da477f
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/button-active.js +1 -1
- package/components/checkbox.js +6 -3
- package/components/data.js +31 -7
- package/components/index.js +2 -2
- package/components/index2.js +203 -429
- package/components/index3.js +429 -203
- package/components/ion-datetime-button.js +3 -0
- package/components/ion-datetime.js +132 -92
- package/components/ion-item-sliding.js +1 -1
- package/components/ion-menu.js +1 -1
- package/components/ion-modal.js +2 -2
- package/components/ion-nav.js +1 -1
- package/components/ion-range.js +3 -3
- package/components/ion-refresher.js +3 -3
- package/components/ion-reorder-group.js +1 -1
- package/components/ion-router-outlet.js +1 -1
- package/components/ion-segment.js +1 -1
- package/components/ion-toggle.js +7 -4
- package/components/ios.transition.js +1 -1
- package/components/md.transition.js +1 -1
- package/components/notch-controller.js +1 -1
- package/components/overlays.js +19 -2
- package/components/picker-column.js +1 -1
- package/components/popover.js +1 -1
- package/components/radio.js +6 -3
- package/components/swipe-back.js +1 -1
- package/css/core.css.map +1 -1
- package/css/ionic.bundle.css.map +1 -1
- package/dist/cjs/{data-967b9c15.js → data-db832785.js} +31 -7
- package/dist/cjs/index.cjs.js +11 -10
- package/dist/cjs/ion-action-sheet.cjs.entry.js +1 -1
- package/dist/cjs/ion-alert.cjs.entry.js +1 -1
- package/dist/cjs/ion-checkbox.cjs.entry.js +5 -3
- package/dist/cjs/ion-datetime-button.cjs.entry.js +4 -1
- package/dist/cjs/ion-datetime_3.cjs.entry.js +134 -95
- package/dist/cjs/ion-input.cjs.entry.js +1 -1
- package/dist/cjs/ion-loading.cjs.entry.js +2 -2
- package/dist/cjs/ion-menu_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-modal.cjs.entry.js +1 -1
- package/dist/cjs/ion-popover.cjs.entry.js +2 -2
- package/dist/cjs/ion-radio_2.cjs.entry.js +5 -3
- package/dist/cjs/ion-range.cjs.entry.js +2 -2
- package/dist/cjs/ion-select_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-textarea.cjs.entry.js +1 -1
- package/dist/cjs/ion-toast.cjs.entry.js +2 -2
- package/dist/cjs/ion-toggle.cjs.entry.js +5 -3
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{notch-controller-c27fe0b7.js → notch-controller-f4f6af5d.js} +1 -1
- package/dist/cjs/{overlays-c78a0148.js → overlays-5ec9419b.js} +21 -4
- package/dist/collection/components/checkbox/checkbox.ios.css +67 -0
- package/dist/collection/components/checkbox/checkbox.js +24 -4
- package/dist/collection/components/checkbox/checkbox.md.css +67 -0
- package/dist/collection/components/checkbox/test/item/checkbox.e2e.js +13 -0
- package/dist/collection/components/checkbox/test/label/checkbox.e2e.js +27 -0
- package/dist/collection/components/datetime/datetime.ios.css +32 -29
- package/dist/collection/components/datetime/datetime.js +137 -93
- package/dist/collection/components/datetime/datetime.md.css +20 -28
- package/dist/collection/components/datetime/test/basic/datetime.e2e.js +25 -0
- package/dist/collection/components/datetime/test/color/datetime.e2e.js +1 -1
- package/dist/collection/components/datetime/test/custom/datetime.e2e.js +27 -1
- package/dist/collection/components/datetime/test/prefer-wheel/datetime.e2e.js +15 -0
- package/dist/collection/components/datetime/test/set-value/datetime.e2e.js +9 -12
- package/dist/collection/components/datetime/utils/data.js +14 -6
- package/dist/collection/components/datetime/utils/parse.js +18 -1
- package/dist/collection/components/datetime-button/datetime-button.js +3 -0
- package/dist/collection/components/radio/radio.ios.css +67 -0
- package/dist/collection/components/radio/radio.js +24 -4
- package/dist/collection/components/radio/radio.md.css +67 -0
- package/dist/collection/components/radio/test/item/radio.e2e.js +15 -0
- package/dist/collection/components/radio/test/label-placement/radio.e2e.js +31 -0
- package/dist/collection/components/range/range.ios.css +66 -1
- package/dist/collection/components/range/range.js +3 -3
- package/dist/collection/components/range/range.md.css +66 -1
- package/dist/collection/components/range/test/item/range.e2e.js +15 -0
- package/dist/collection/components/range/test/label/range.e2e.js +59 -0
- package/dist/collection/components/toggle/test/item/toggle.e2e.js +15 -0
- package/dist/collection/components/toggle/test/label/toggle.e2e.js +27 -0
- package/dist/collection/components/toggle/toggle.ios.css +67 -1
- package/dist/collection/components/toggle/toggle.js +24 -4
- package/dist/collection/components/toggle/toggle.md.css +67 -1
- package/dist/collection/index.js +1 -0
- package/dist/collection/utils/forms/notch-controller.js +1 -1
- package/dist/collection/utils/overlays.js +19 -2
- package/dist/docs.json +147 -18
- package/dist/esm/{data-4b448e3a.js → data-009dbf15.js} +31 -7
- package/dist/esm/index.js +3 -3
- package/dist/esm/ion-action-sheet.entry.js +1 -1
- package/dist/esm/ion-alert.entry.js +1 -1
- package/dist/esm/ion-checkbox.entry.js +5 -3
- package/dist/esm/ion-datetime-button.entry.js +4 -1
- package/dist/esm/ion-datetime_3.entry.js +134 -95
- package/dist/esm/ion-input.entry.js +1 -1
- package/dist/esm/ion-loading.entry.js +2 -2
- package/dist/esm/ion-menu_3.entry.js +1 -1
- package/dist/esm/ion-modal.entry.js +1 -1
- package/dist/esm/ion-popover.entry.js +2 -2
- package/dist/esm/ion-radio_2.entry.js +5 -3
- package/dist/esm/ion-range.entry.js +2 -2
- package/dist/esm/ion-select_3.entry.js +2 -2
- package/dist/esm/ion-textarea.entry.js +1 -1
- package/dist/esm/ion-toast.entry.js +2 -2
- package/dist/esm/ion-toggle.entry.js +5 -3
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{notch-controller-cb5bbe6a.js → notch-controller-8c9c0e54.js} +1 -1
- package/dist/esm/{overlays-4565894b.js → overlays-99dddd1a.js} +19 -2
- package/dist/esm-es5/data-009dbf15.js +4 -0
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
- package/dist/esm-es5/ion-alert.entry.js +1 -1
- package/dist/esm-es5/ion-checkbox.entry.js +1 -1
- package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
- package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
- package/dist/esm-es5/ion-input.entry.js +1 -1
- package/dist/esm-es5/ion-loading.entry.js +1 -1
- package/dist/esm-es5/ion-menu_3.entry.js +1 -1
- package/dist/esm-es5/ion-modal.entry.js +1 -1
- package/dist/esm-es5/ion-popover.entry.js +1 -1
- package/dist/esm-es5/ion-radio_2.entry.js +1 -1
- package/dist/esm-es5/ion-range.entry.js +1 -1
- package/dist/esm-es5/ion-select_3.entry.js +1 -1
- package/dist/esm-es5/ion-textarea.entry.js +1 -1
- package/dist/esm-es5/ion-toast.entry.js +1 -1
- package/dist/esm-es5/ion-toggle.entry.js +1 -1
- package/dist/esm-es5/ionic.js +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/overlays-99dddd1a.js +4 -0
- package/dist/html.html-data.json +52 -4
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-95188051.system.entry.js → p-0145346f.system.entry.js} +1 -1
- package/dist/ionic/{p-28d8b87b.entry.js → p-11dda9d2.entry.js} +1 -1
- package/dist/ionic/{p-4d2807fa.entry.js → p-37c9e295.entry.js} +1 -1
- package/dist/ionic/{p-49f2eaa6.entry.js → p-3af21be1.entry.js} +1 -1
- package/dist/ionic/p-3d575698.system.entry.js +4 -0
- package/dist/ionic/{p-a037b6d5.system.entry.js → p-3d9eb4d8.system.entry.js} +1 -1
- package/dist/ionic/p-44ef7224.system.js +4 -0
- package/dist/ionic/{p-1c236453.system.entry.js → p-46058a1e.system.entry.js} +1 -1
- package/dist/ionic/p-4a0beed4.entry.js +4 -0
- package/dist/ionic/{p-5a9dc764.system.entry.js → p-5ff498c5.system.entry.js} +1 -1
- package/dist/ionic/p-60f22efc.system.entry.js +4 -0
- package/dist/ionic/p-6121347a.js +4 -0
- package/dist/ionic/{p-dc4c9086.system.entry.js → p-66488ac4.system.entry.js} +1 -1
- package/dist/ionic/p-6d640b2b.entry.js +4 -0
- package/dist/ionic/{p-d8d30fd1.system.entry.js → p-745d5ccf.system.entry.js} +1 -1
- package/dist/ionic/p-74ef17ea.system.entry.js +4 -0
- package/dist/ionic/{p-6ccffb74.system.entry.js → p-76eb5214.system.entry.js} +1 -1
- package/dist/ionic/p-7cfd253c.js +4 -0
- package/dist/ionic/p-83966577.system.entry.js +4 -0
- package/dist/ionic/{p-cd002251.entry.js → p-8761adac.entry.js} +1 -1
- package/dist/ionic/{p-11d0977d.entry.js → p-8e72b66b.entry.js} +1 -1
- package/dist/ionic/p-a6dcd80e.system.js +4 -0
- package/dist/ionic/p-aa702daf.entry.js +4 -0
- package/dist/ionic/{p-83459b99.entry.js → p-b10fca60.entry.js} +1 -1
- package/dist/ionic/{p-9eced28c.entry.js → p-b4f73fa4.entry.js} +1 -1
- package/dist/ionic/{p-23ddd787.system.entry.js → p-c528cdee.system.entry.js} +1 -1
- package/dist/ionic/p-c68a8814.system.js +1 -1
- package/dist/ionic/p-cc758251.system.entry.js +4 -0
- package/dist/ionic/{p-0ce43a8f.system.entry.js → p-d0d09178.system.entry.js} +1 -1
- package/dist/ionic/{p-072f99fd.entry.js → p-daf7b373.entry.js} +1 -1
- package/dist/ionic/p-df89f48b.system.js +4 -0
- package/dist/ionic/p-dfee12f6.entry.js +4 -0
- package/dist/ionic/{p-8db97b90.entry.js → p-e3ca182a.entry.js} +1 -1
- package/dist/ionic/p-f0c28fbd.entry.js +4 -0
- package/dist/ionic/{p-e239ab05.system.entry.js → p-fa700c09.system.entry.js} +1 -1
- package/dist/ionic/p-fdfc7b98.entry.js +4 -0
- package/dist/ionic/p-ff0611e6.system.entry.js +4 -0
- package/dist/ionic/{p-68deb933.entry.js → p-ffe9cbe5.entry.js} +1 -1
- package/dist/types/components/checkbox/checkbox.d.ts +8 -1
- package/dist/types/components/datetime/datetime.d.ts +23 -10
- package/dist/types/components/datetime/utils/data.d.ts +1 -1
- package/dist/types/components/datetime/utils/parse.d.ts +3 -3
- package/dist/types/components/radio/radio.d.ts +8 -1
- package/dist/types/components/range/range.d.ts +2 -1
- package/dist/types/components/toast/toast-interface.d.ts +3 -0
- package/dist/types/components/toggle/toggle.d.ts +8 -1
- package/dist/types/components.d.ts +40 -16
- package/dist/types/index.d.ts +1 -0
- package/dist/types/interface.d.ts +1 -0
- package/hydrate/index.js +211 -113
- package/package.json +1 -1
- package/dist/esm-es5/data-4b448e3a.js +0 -4
- package/dist/esm-es5/overlays-4565894b.js +0 -4
- package/dist/ionic/p-17e961cf.entry.js +0 -4
- package/dist/ionic/p-1b533a76.system.entry.js +0 -4
- package/dist/ionic/p-44a6f15d.system.entry.js +0 -4
- package/dist/ionic/p-4f7109fa.entry.js +0 -4
- package/dist/ionic/p-56495958.js +0 -4
- package/dist/ionic/p-601fd53c.js +0 -4
- package/dist/ionic/p-7106c152.system.js +0 -4
- package/dist/ionic/p-9eaaa910.entry.js +0 -4
- package/dist/ionic/p-af6125d1.system.entry.js +0 -4
- package/dist/ionic/p-b8d7f0eb.system.entry.js +0 -4
- package/dist/ionic/p-b9179eab.entry.js +0 -4
- package/dist/ionic/p-bfee11b2.system.js +0 -4
- package/dist/ionic/p-cc8910e7.system.js +0 -4
- package/dist/ionic/p-dc7d392d.entry.js +0 -4
- package/dist/ionic/p-e65aed58.system.entry.js +0 -4
- package/dist/ionic/p-f3ec1f2b.entry.js +0 -4
- package/dist/ionic/p-fb26fa56.system.entry.js +0 -4
- /package/dist/esm-es5/{notch-controller-cb5bbe6a.js → notch-controller-8c9c0e54.js} +0 -0
- /package/dist/ionic/{p-4b37d92d.js → p-3bad5c1a.js} +0 -0
- /package/dist/ionic/{p-46b2991d.system.js → p-ab4cff27.system.js} +0 -0
|
@@ -9,14 +9,14 @@ import { i as isRTL } from './dir-912e3e13.js';
|
|
|
9
9
|
import { c as createColorClasses, g as getClassMap } from './theme-17531cdf.js';
|
|
10
10
|
import { c as chevronBack, o as chevronForward, l as chevronDown, p as caretUpSharp, q as caretDownSharp } from './index-ecfc2c9f.js';
|
|
11
11
|
import { b as getIonMode } from './ionic-global-9080266a.js';
|
|
12
|
-
import { g as generateDayAriaLabel, a as getDay, i as isBefore, b as isAfter, c as isSameDay, d as getPreviousMonth, e as getNextMonth, v as validateParts, f as getPartsFromCalendarDay, h as getEndOfWeek, j as getStartOfWeek, k as getPreviousDay, l as getNextDay, m as getPreviousWeek, n as getNextWeek, p as parseMinParts, o as parseMaxParts, q as parseDate, w as warnIfValueOutOfBounds, r as convertToArrayOfNumbers, s as convertDataToISO, t as getToday, u as getClosestValidDate, x as getNumDaysInMonth, y as getCombinedDateColumnData, z as getMonthColumnData, A as getDayColumnData, B as getYearColumnData, C as isMonthFirstLocale, D as getTimeColumnsData, E as isLocaleDayPeriodRTL, F as getDaysOfWeek, G as getMonthAndYear, H as getDaysOfMonth, I as generateMonths, J as is24Hour, K as getLocalizedTime, L as getMonthAndDay, M as formatValue, N as getNextYear, O as getPreviousYear, P as clampDate, Q as parseAmPm, R as calculateHourFromAMPM } from './data-
|
|
12
|
+
import { g as generateDayAriaLabel, a as getDay, i as isBefore, b as isAfter, c as isSameDay, d as getPreviousMonth, e as getNextMonth, v as validateParts, f as getPartsFromCalendarDay, h as getEndOfWeek, j as getStartOfWeek, k as getPreviousDay, l as getNextDay, m as getPreviousWeek, n as getNextWeek, p as parseMinParts, o as parseMaxParts, q as parseDate, w as warnIfValueOutOfBounds, r as convertToArrayOfNumbers, s as convertDataToISO, t as getToday, u as getClosestValidDate, x as getNumDaysInMonth, y as getCombinedDateColumnData, z as getMonthColumnData, A as getDayColumnData, B as getYearColumnData, C as isMonthFirstLocale, D as getTimeColumnsData, E as isLocaleDayPeriodRTL, F as getDaysOfWeek, G as getMonthAndYear, H as getDaysOfMonth, I as generateMonths, J as is24Hour, K as getLocalizedTime, L as getMonthAndDay, M as formatValue, N as getNextYear, O as getPreviousYear, P as clampDate, Q as parseAmPm, R as calculateHourFromAMPM } from './data-009dbf15.js';
|
|
13
13
|
import { c as createLockController } from './lock-controller-e8c6c051.js';
|
|
14
|
-
import { d as createDelegateController, e as createTriggerController, B as BACKDROP, i as isCancel, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod, s as safeCall } from './overlays-
|
|
14
|
+
import { d as createDelegateController, e as createTriggerController, B as BACKDROP, i as isCancel, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod, s as safeCall } from './overlays-99dddd1a.js';
|
|
15
15
|
import { c as createAnimation } from './animation-a1d9e088.js';
|
|
16
16
|
import { b as hapticSelectionChanged, h as hapticSelectionEnd, a as hapticSelectionStart } from './haptic-6447af60.js';
|
|
17
|
+
import './index-7a14ecec.js';
|
|
17
18
|
import './framework-delegate-aa433dea.js';
|
|
18
19
|
import './hardware-back-button-39299f84.js';
|
|
19
|
-
import './index-7a14ecec.js';
|
|
20
20
|
import './capacitor-b4979570.js';
|
|
21
21
|
|
|
22
22
|
const isYearDisabled = (refYear, minParts, maxParts) => {
|
|
@@ -186,9 +186,9 @@ const getHighlightStyles = (highlightedDates, dateIsoString, el) => {
|
|
|
186
186
|
return undefined;
|
|
187
187
|
};
|
|
188
188
|
|
|
189
|
-
const datetimeIosCss = ":host{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;background:var(--background);overflow:hidden}ion-picker-column-internal{min-width:26px}:host(.datetime-size-fixed){width:auto;height:auto}:host(.datetime-size-fixed:not(.datetime-prefer-wheel)){max-width:350px}:host(.datetime-size-fixed.datetime-prefer-wheel){min-width:350px;max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content}:host(.datetime-size-cover){width:100%}:host .calendar-body,:host .datetime-year{opacity:0}:host(:not(.datetime-ready)) .datetime-year{position:absolute;pointer-events:none}:host(.datetime-ready) .calendar-body{opacity:1}:host(.datetime-ready) .datetime-year{display:none;opacity:1}:host .wheel-order-year-first .day-column{-ms-flex-order:3;order:3;text-align:end}:host .wheel-order-year-first .month-column{-ms-flex-order:2;order:2;text-align:end}:host .wheel-order-year-first .year-column{-ms-flex-order:1;order:1;text-align:start}:host .datetime-calendar,:host .datetime-year{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-flow:column;flex-flow:column}:host(.show-month-and-year) .datetime-year{display:-ms-flexbox;display:flex}@supports (background: -webkit-named-image(apple-pay-logo-black)) and (not (aspect-ratio: 1/1)){: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{position:absolute;visibility:hidden;pointer-events:none}@supports (inset-inline-start: 0){: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{inset-inline-start:-99999px}}@supports not (inset-inline-start: 0){: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{left:-99999px}:host-context([dir=rtl]):host(.show-month-and-year) .calendar-next-prev,:host-context([dir=rtl]).show-month-and-year .calendar-next-prev,:host-context([dir=rtl]):host(.show-month-and-year) .calendar-days-of-week,:host-context([dir=rtl]).show-month-and-year .calendar-days-of-week,:host-context([dir=rtl]):host(.show-month-and-year) .calendar-body,:host-context([dir=rtl]).show-month-and-year .calendar-body,:host-context([dir=rtl]):host(.show-month-and-year) .datetime-time,:host-context([dir=rtl]).show-month-and-year .datetime-time{left:unset;right:unset;right:-99999px}@supports selector(:dir(rtl)){:host(.show-month-and-year) .calendar-next-prev:dir(rtl),:host(.show-month-and-year) .calendar-days-of-week:dir(rtl),:host(.show-month-and-year) .calendar-body:dir(rtl),:host(.show-month-and-year) .datetime-time:dir(rtl){left:unset;right:unset;right:-99999px}}}}@supports (not (background: -webkit-named-image(apple-pay-logo-black))) or ((background: -webkit-named-image(apple-pay-logo-black)) and (aspect-ratio: 1/1)){: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-readonly),:host(.datetime-disabled){pointer-events:none}:host(.datetime-disabled){opacity:0.4}:host .datetime-header .datetime-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .datetime-action-buttons.has-clear-button{width:100%}:host .datetime-action-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .calendar-action-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .calendar-action-buttons ion-item,:host .calendar-action-buttons ion-button{--background:translucent}:host .calendar-action-buttons ion-item ion-label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .calendar-action-buttons ion-item ion-icon{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:0;padding-inline-end:0;padding-top:0;padding-bottom:0}:host .calendar-days-of-week{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}: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{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{-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:0px;padding-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:0px;margin-bottom:0px;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border:none;outline:none;background:none;color:currentColor;font-family:var(--ion-font-family, inherit);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:0}:host .calendar-day[disabled]{pointer-events:none;opacity:0.4}.calendar-day-highlight{border-radius:32px;-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:32px;height:32px;z-index:-1}:host .datetime-time{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host(.datetime-presentation-time) .datetime-time{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}:host ion-popover{--height:200px}:host .time-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .time-body{border-radius:8px;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px;display:-ms-flexbox;display:flex;border:none;background:var(--ion-color-step-300, #edeef0);color:var(--ion-text-color, #000);font-family:inherit;font-size:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host .time-body-active{color:var(--ion-color-base)}:host(.in-item){position:static}:host(.show-month-and-year) .calendar-action-buttons ion-item{--color:var(--ion-color-base)}:host{--background:var(--ion-color-light, #ffffff);--background-rgb:var(--ion-color-light-rgb);--title-color:var(--ion-color-step-600, #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, #cccccc);font-size:14px}:host .datetime-header .datetime-title{color:var(--title-color)}:host .datetime-header .datetime-selected-date{margin-top:10px}:host .calendar-action-buttons ion-item{--padding-start:16px;--background-hover:transparent;--background-activated:transparent;font-size:16px;font-weight:600}:host .calendar-action-buttons ion-item ion-icon,:host .calendar-action-buttons ion-buttons ion-button{color:var(--ion-color-base)}:host .calendar-action-buttons ion-buttons{padding-left:0;padding-right:0;padding-top:8px;padding-bottom:0}:host .calendar-action-buttons ion-buttons ion-button{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}:host .calendar-days-of-week{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:0;padding-bottom:0;color:var(--ion-color-step-300, #b3b3b3);font-size:12px;font-weight:600;line-height:24px;text-transform:uppercase}: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;height:calc(100% - 16px)}:host .calendar-day{font-size:20px}.calendar-day:focus .calendar-day-highlight,.calendar-day.calendar-day-active .calendar-day-highlight{opacity:0.2}.calendar-day.calendar-day-active .calendar-day-highlight{background:var(--ion-color-base)}.calendar-day:focus .calendar-day-highlight{background:var(--ion-color-base) !important}:host .calendar-day.calendar-day-today{color:var(--ion-color-base)}:host .calendar-day.calendar-day-active{color:var(--ion-color-base);font-weight:600}:host .calendar-day.calendar-day-today.calendar-day-active{color:var(--ion-color-contrast)}.calendar-day.calendar-day-today.calendar-day-active .calendar-day-highlight{background:var(--ion-color-base);opacity:1}: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:16px}: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, #cccccc)}:host .datetime-buttons ::slotted(ion-buttons),:host .datetime-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}:host .datetime-action-buttons{width:100%}";
|
|
189
|
+
const datetimeIosCss = ":host{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;background:var(--background);overflow:hidden}ion-picker-column-internal{min-width:26px}:host(.datetime-size-fixed){width:auto;height:auto}:host(.datetime-size-fixed:not(.datetime-prefer-wheel)){max-width:350px}:host(.datetime-size-fixed.datetime-prefer-wheel){min-width:350px;max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content}:host(.datetime-size-cover){width:100%}:host .calendar-body,:host .datetime-year{opacity:0}:host(:not(.datetime-ready)) .datetime-year{position:absolute;pointer-events:none}:host(.datetime-ready) .calendar-body{opacity:1}:host(.datetime-ready) .datetime-year{display:none;opacity:1}:host .wheel-order-year-first .day-column{-ms-flex-order:3;order:3;text-align:end}:host .wheel-order-year-first .month-column{-ms-flex-order:2;order:2;text-align:end}:host .wheel-order-year-first .year-column{-ms-flex-order:1;order:1;text-align:start}:host .datetime-calendar,:host .datetime-year{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-flow:column;flex-flow:column}:host(.show-month-and-year) .datetime-year{display:-ms-flexbox;display:flex}@supports (background: -webkit-named-image(apple-pay-logo-black)) and (not (aspect-ratio: 1/1)){: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{position:absolute;visibility:hidden;pointer-events:none}@supports (inset-inline-start: 0){: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{inset-inline-start:-99999px}}@supports not (inset-inline-start: 0){: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{left:-99999px}:host-context([dir=rtl]):host(.show-month-and-year) .calendar-next-prev,:host-context([dir=rtl]).show-month-and-year .calendar-next-prev,:host-context([dir=rtl]):host(.show-month-and-year) .calendar-days-of-week,:host-context([dir=rtl]).show-month-and-year .calendar-days-of-week,:host-context([dir=rtl]):host(.show-month-and-year) .calendar-body,:host-context([dir=rtl]).show-month-and-year .calendar-body,:host-context([dir=rtl]):host(.show-month-and-year) .datetime-time,:host-context([dir=rtl]).show-month-and-year .datetime-time{left:unset;right:unset;right:-99999px}@supports selector(:dir(rtl)){:host(.show-month-and-year) .calendar-next-prev:dir(rtl),:host(.show-month-and-year) .calendar-days-of-week:dir(rtl),:host(.show-month-and-year) .calendar-body:dir(rtl),:host(.show-month-and-year) .datetime-time:dir(rtl){left:unset;right:unset;right:-99999px}}}}@supports (not (background: -webkit-named-image(apple-pay-logo-black))) or ((background: -webkit-named-image(apple-pay-logo-black)) and (aspect-ratio: 1/1)){: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-readonly),:host(.datetime-disabled){pointer-events:none}:host(.datetime-disabled){opacity:0.4}:host .datetime-header .datetime-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .datetime-action-buttons.has-clear-button{width:100%}:host .datetime-action-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .calendar-action-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .calendar-action-buttons ion-item,:host .calendar-action-buttons ion-button{--background:translucent}:host .calendar-action-buttons ion-item ion-label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .calendar-action-buttons ion-item ion-icon{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:0;padding-inline-end:0;padding-top:0;padding-bottom:0}:host .calendar-days-of-week{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}: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}:host .calendar-day{border-radius:50%;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:0px;padding-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:0px;margin-bottom:0px;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border:none;outline:none;background:none;color:currentColor;font-family:var(--ion-font-family, inherit);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:0}:host .calendar-day[disabled]{pointer-events:none;opacity:0.4}.calendar-day:focus{background:rgba(var(--ion-color-base-rgb), 0.2);-webkit-box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2)}:host .datetime-time{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host(.datetime-presentation-time) .datetime-time{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}:host ion-popover{--height:200px}:host .time-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .time-body{border-radius:8px;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px;display:-ms-flexbox;display:flex;border:none;background:var(--ion-color-step-300, #edeef0);color:var(--ion-text-color, #000);font-family:inherit;font-size:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host .time-body-active{color:var(--ion-color-base)}:host(.in-item){position:static}:host(.show-month-and-year) .calendar-action-buttons ion-item{--color:var(--ion-color-base)}:host{--background:var(--ion-color-light, #ffffff);--background-rgb:var(--ion-color-light-rgb);--title-color:var(--ion-color-step-600, #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, #cccccc);font-size:14px}:host .datetime-header .datetime-title{color:var(--title-color)}:host .datetime-header .datetime-selected-date{margin-top:10px}:host .calendar-action-buttons ion-item{--padding-start:16px;--background-hover:transparent;--background-activated:transparent;font-size:16px;font-weight:600}:host .calendar-action-buttons ion-item ion-icon,:host .calendar-action-buttons ion-buttons ion-button{color:var(--ion-color-base)}:host .calendar-action-buttons ion-buttons{padding-left:0;padding-right:0;padding-top:8px;padding-bottom:0}:host .calendar-action-buttons ion-buttons ion-button{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}:host .calendar-days-of-week{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:0;padding-bottom:0;color:var(--ion-color-step-300, #b3b3b3);font-size:12px;font-weight:600;line-height:24px;text-transform:uppercase}: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:16px}:host .calendar-day{width:40px;min-width:40px;height:40px;font-size:20px}.calendar-day.calendar-day-active{background:rgba(var(--ion-color-base-rgb), 0.2)}:host .calendar-day.calendar-day-today{color:var(--ion-color-base)}:host .calendar-day.calendar-day-active{color:var(--ion-color-base);font-weight:600}:host .calendar-day.calendar-day-today.calendar-day-active{color:var(--ion-color-contrast)}:host .datetime-time{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:8px;padding-bottom:16px;font-size:16px}: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, #cccccc)}:host .datetime-buttons ::slotted(ion-buttons),:host .datetime-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}:host .datetime-action-buttons{width:100%}";
|
|
190
190
|
|
|
191
|
-
const datetimeMdCss = ":host{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;background:var(--background);overflow:hidden}ion-picker-column-internal{min-width:26px}:host(.datetime-size-fixed){width:auto;height:auto}:host(.datetime-size-fixed:not(.datetime-prefer-wheel)){max-width:350px}:host(.datetime-size-fixed.datetime-prefer-wheel){min-width:350px;max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content}:host(.datetime-size-cover){width:100%}:host .calendar-body,:host .datetime-year{opacity:0}:host(:not(.datetime-ready)) .datetime-year{position:absolute;pointer-events:none}:host(.datetime-ready) .calendar-body{opacity:1}:host(.datetime-ready) .datetime-year{display:none;opacity:1}:host .wheel-order-year-first .day-column{-ms-flex-order:3;order:3;text-align:end}:host .wheel-order-year-first .month-column{-ms-flex-order:2;order:2;text-align:end}:host .wheel-order-year-first .year-column{-ms-flex-order:1;order:1;text-align:start}:host .datetime-calendar,:host .datetime-year{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-flow:column;flex-flow:column}:host(.show-month-and-year) .datetime-year{display:-ms-flexbox;display:flex}@supports (background: -webkit-named-image(apple-pay-logo-black)) and (not (aspect-ratio: 1/1)){: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{position:absolute;visibility:hidden;pointer-events:none}@supports (inset-inline-start: 0){: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{inset-inline-start:-99999px}}@supports not (inset-inline-start: 0){: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{left:-99999px}:host-context([dir=rtl]):host(.show-month-and-year) .calendar-next-prev,:host-context([dir=rtl]).show-month-and-year .calendar-next-prev,:host-context([dir=rtl]):host(.show-month-and-year) .calendar-days-of-week,:host-context([dir=rtl]).show-month-and-year .calendar-days-of-week,:host-context([dir=rtl]):host(.show-month-and-year) .calendar-body,:host-context([dir=rtl]).show-month-and-year .calendar-body,:host-context([dir=rtl]):host(.show-month-and-year) .datetime-time,:host-context([dir=rtl]).show-month-and-year .datetime-time{left:unset;right:unset;right:-99999px}@supports selector(:dir(rtl)){:host(.show-month-and-year) .calendar-next-prev:dir(rtl),:host(.show-month-and-year) .calendar-days-of-week:dir(rtl),:host(.show-month-and-year) .calendar-body:dir(rtl),:host(.show-month-and-year) .datetime-time:dir(rtl){left:unset;right:unset;right:-99999px}}}}@supports (not (background: -webkit-named-image(apple-pay-logo-black))) or ((background: -webkit-named-image(apple-pay-logo-black)) and (aspect-ratio: 1/1)){: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-readonly),:host(.datetime-disabled){pointer-events:none}:host(.datetime-disabled){opacity:0.4}:host .datetime-header .datetime-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .datetime-action-buttons.has-clear-button{width:100%}:host .datetime-action-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .calendar-action-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .calendar-action-buttons ion-item,:host .calendar-action-buttons ion-button{--background:translucent}:host .calendar-action-buttons ion-item ion-label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .calendar-action-buttons ion-item ion-icon{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:0;padding-inline-end:0;padding-top:0;padding-bottom:0}:host .calendar-days-of-week{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}: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{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{-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:0px;padding-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:0px;margin-bottom:0px;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border:none;outline:none;background:none;color:currentColor;font-family:var(--ion-font-family, inherit);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:0}:host .calendar-day[disabled]{pointer-events:none;opacity:0.4}.calendar-day
|
|
191
|
+
const datetimeMdCss = ":host{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;background:var(--background);overflow:hidden}ion-picker-column-internal{min-width:26px}:host(.datetime-size-fixed){width:auto;height:auto}:host(.datetime-size-fixed:not(.datetime-prefer-wheel)){max-width:350px}:host(.datetime-size-fixed.datetime-prefer-wheel){min-width:350px;max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content}:host(.datetime-size-cover){width:100%}:host .calendar-body,:host .datetime-year{opacity:0}:host(:not(.datetime-ready)) .datetime-year{position:absolute;pointer-events:none}:host(.datetime-ready) .calendar-body{opacity:1}:host(.datetime-ready) .datetime-year{display:none;opacity:1}:host .wheel-order-year-first .day-column{-ms-flex-order:3;order:3;text-align:end}:host .wheel-order-year-first .month-column{-ms-flex-order:2;order:2;text-align:end}:host .wheel-order-year-first .year-column{-ms-flex-order:1;order:1;text-align:start}:host .datetime-calendar,:host .datetime-year{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-flow:column;flex-flow:column}:host(.show-month-and-year) .datetime-year{display:-ms-flexbox;display:flex}@supports (background: -webkit-named-image(apple-pay-logo-black)) and (not (aspect-ratio: 1/1)){: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{position:absolute;visibility:hidden;pointer-events:none}@supports (inset-inline-start: 0){: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{inset-inline-start:-99999px}}@supports not (inset-inline-start: 0){: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{left:-99999px}:host-context([dir=rtl]):host(.show-month-and-year) .calendar-next-prev,:host-context([dir=rtl]).show-month-and-year .calendar-next-prev,:host-context([dir=rtl]):host(.show-month-and-year) .calendar-days-of-week,:host-context([dir=rtl]).show-month-and-year .calendar-days-of-week,:host-context([dir=rtl]):host(.show-month-and-year) .calendar-body,:host-context([dir=rtl]).show-month-and-year .calendar-body,:host-context([dir=rtl]):host(.show-month-and-year) .datetime-time,:host-context([dir=rtl]).show-month-and-year .datetime-time{left:unset;right:unset;right:-99999px}@supports selector(:dir(rtl)){:host(.show-month-and-year) .calendar-next-prev:dir(rtl),:host(.show-month-and-year) .calendar-days-of-week:dir(rtl),:host(.show-month-and-year) .calendar-body:dir(rtl),:host(.show-month-and-year) .datetime-time:dir(rtl){left:unset;right:unset;right:-99999px}}}}@supports (not (background: -webkit-named-image(apple-pay-logo-black))) or ((background: -webkit-named-image(apple-pay-logo-black)) and (aspect-ratio: 1/1)){: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-readonly),:host(.datetime-disabled){pointer-events:none}:host(.datetime-disabled){opacity:0.4}:host .datetime-header .datetime-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .datetime-action-buttons.has-clear-button{width:100%}:host .datetime-action-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .calendar-action-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .calendar-action-buttons ion-item,:host .calendar-action-buttons ion-button{--background:translucent}:host .calendar-action-buttons ion-item ion-label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .calendar-action-buttons ion-item ion-icon{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:0;padding-inline-end:0;padding-top:0;padding-bottom:0}:host .calendar-days-of-week{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}: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}:host .calendar-day{border-radius:50%;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:0px;padding-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:0px;margin-bottom:0px;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border:none;outline:none;background:none;color:currentColor;font-family:var(--ion-font-family, inherit);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:0}:host .calendar-day[disabled]{pointer-events:none;opacity:0.4}.calendar-day:focus{background:rgba(var(--ion-color-base-rgb), 0.2);-webkit-box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2)}:host .datetime-time{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host(.datetime-presentation-time) .datetime-time{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}:host ion-popover{--height:200px}:host .time-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .time-body{border-radius:8px;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px;display:-ms-flexbox;display:flex;border:none;background:var(--ion-color-step-300, #edeef0);color:var(--ion-text-color, #000);font-family:inherit;font-size:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host .time-body-active{color:var(--ion-color-base)}:host(.in-item){position:static}:host(.show-month-and-year) .calendar-action-buttons ion-item{--color:var(--ion-color-base)}:host{--background:var(--ion-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:12px;text-transform:uppercase}:host .datetime-header .datetime-selected-date{margin-top:30px;font-size:34px}:host .datetime-calendar .calendar-action-buttons ion-item{--padding-start:20px}:host .calendar-action-buttons ion-item,:host .calendar-action-buttons ion-button{--color:var(--ion-color-step-650, #595959)}: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, gray);font-size:14px;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:14px}:host .calendar-day.calendar-day-today{border:1px solid var(--ion-color-base);color:var(--ion-color-base)}:host .calendar-day.calendar-day-active{color:var(--ion-color-contrast)}.calendar-day.calendar-day-active{border:1px solid var(--ion-color-base);background: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, #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}:host .datetime-view-buttons ion-button{color:var(--ion-color-step-800, #333333)}";
|
|
192
192
|
|
|
193
193
|
const Datetime = class {
|
|
194
194
|
constructor(hostRef) {
|
|
@@ -202,11 +202,6 @@ const Datetime = class {
|
|
|
202
202
|
this.ionRender = createEvent(this, "ionRender", 7);
|
|
203
203
|
this.inputId = `ion-dt-${datetimeIds++}`;
|
|
204
204
|
this.prevPresentation = null;
|
|
205
|
-
/**
|
|
206
|
-
* Duplicate reference to `activeParts` that does not trigger a re-render of the component.
|
|
207
|
-
* Allows caching an instance of the `activeParts` in between render cycles.
|
|
208
|
-
*/
|
|
209
|
-
this.activePartsClone = [];
|
|
210
205
|
this.warnIfIncorrectValueUsage = () => {
|
|
211
206
|
const { multiple, value } = this;
|
|
212
207
|
if (!multiple && Array.isArray(value)) {
|
|
@@ -234,9 +229,9 @@ const Datetime = class {
|
|
|
234
229
|
* data. This should be used when rendering an
|
|
235
230
|
* interface in an environment where the `value`
|
|
236
231
|
* may not be set. This function works
|
|
237
|
-
* by returning the first selected date
|
|
238
|
-
*
|
|
239
|
-
*
|
|
232
|
+
* by returning the first selected date and then
|
|
233
|
+
* falling back to defaultParts if no active date
|
|
234
|
+
* is selected.
|
|
240
235
|
*/
|
|
241
236
|
this.getActivePartsWithFallback = () => {
|
|
242
237
|
var _a;
|
|
@@ -244,8 +239,8 @@ const Datetime = class {
|
|
|
244
239
|
return (_a = this.getActivePart()) !== null && _a !== void 0 ? _a : defaultParts;
|
|
245
240
|
};
|
|
246
241
|
this.getActivePart = () => {
|
|
247
|
-
const {
|
|
248
|
-
return Array.isArray(
|
|
242
|
+
const { activeParts } = this;
|
|
243
|
+
return Array.isArray(activeParts) ? activeParts[0] : activeParts;
|
|
249
244
|
};
|
|
250
245
|
this.closeParentOverlay = () => {
|
|
251
246
|
const popoverOrModal = this.el.closest('ion-modal, ion-popover');
|
|
@@ -257,7 +252,7 @@ const Datetime = class {
|
|
|
257
252
|
this.workingParts = Object.assign({}, parts);
|
|
258
253
|
};
|
|
259
254
|
this.setActiveParts = (parts, removeDate = false) => {
|
|
260
|
-
const { multiple, minParts, maxParts,
|
|
255
|
+
const { multiple, minParts, maxParts, activeParts } = this;
|
|
261
256
|
/**
|
|
262
257
|
* When setting the active parts, it is possible
|
|
263
258
|
* to set invalid data. For example,
|
|
@@ -271,16 +266,7 @@ const Datetime = class {
|
|
|
271
266
|
const validatedParts = validateParts(parts, minParts, maxParts);
|
|
272
267
|
this.setWorkingParts(validatedParts);
|
|
273
268
|
if (multiple) {
|
|
274
|
-
|
|
275
|
-
* We read from activePartsClone here because valueChanged() only updates that,
|
|
276
|
-
* so it's the more reliable source of truth. If we read from activeParts, then
|
|
277
|
-
* if you click July 1, manually set the value to July 2, and then click July 3,
|
|
278
|
-
* the new value would be [July 1, July 3], ignoring the value set.
|
|
279
|
-
*
|
|
280
|
-
* We can then pass the new value to activeParts (rather than activePartsClone)
|
|
281
|
-
* since the clone will be updated automatically by activePartsChanged().
|
|
282
|
-
*/
|
|
283
|
-
const activePartsArray = Array.isArray(activePartsClone) ? activePartsClone : [activePartsClone];
|
|
269
|
+
const activePartsArray = Array.isArray(activeParts) ? activeParts : [activeParts];
|
|
284
270
|
if (removeDate) {
|
|
285
271
|
this.activeParts = activePartsArray.filter((p) => !isSameDay(p, validatedParts));
|
|
286
272
|
}
|
|
@@ -405,7 +391,7 @@ const Datetime = class {
|
|
|
405
391
|
/**
|
|
406
392
|
* Get the number of padding days so
|
|
407
393
|
* we know how much to offset our next selector by
|
|
408
|
-
* to grab the correct
|
|
394
|
+
* to grab the correct calendar-day element.
|
|
409
395
|
*/
|
|
410
396
|
const padding = currentMonth.querySelectorAll('.calendar-day-padding');
|
|
411
397
|
const { day } = this.workingParts;
|
|
@@ -416,7 +402,7 @@ const Datetime = class {
|
|
|
416
402
|
* Get the calendar day element
|
|
417
403
|
* and focus it.
|
|
418
404
|
*/
|
|
419
|
-
const dayEl = currentMonth.querySelector(`.calendar-day:nth-of-type(${padding.length + day})`);
|
|
405
|
+
const dayEl = currentMonth.querySelector(`.calendar-day-wrapper:nth-of-type(${padding.length + day}) .calendar-day`);
|
|
420
406
|
if (dayEl) {
|
|
421
407
|
dayEl.focus();
|
|
422
408
|
}
|
|
@@ -497,6 +483,19 @@ const Datetime = class {
|
|
|
497
483
|
const monthBox = month.getBoundingClientRect();
|
|
498
484
|
if (Math.abs(monthBox.x - box.x) > 2)
|
|
499
485
|
return;
|
|
486
|
+
/**
|
|
487
|
+
* If we're force-rendering a month, assume we've
|
|
488
|
+
* scrolled to that and return it.
|
|
489
|
+
*
|
|
490
|
+
* If forceRenderDate is ever used in a context where the
|
|
491
|
+
* forced month is not immediately auto-scrolled to, this
|
|
492
|
+
* should be updated to also check whether `month` has the
|
|
493
|
+
* same month and year as the forced date.
|
|
494
|
+
*/
|
|
495
|
+
const { forceRenderDate } = this;
|
|
496
|
+
if (forceRenderDate !== undefined) {
|
|
497
|
+
return { month: forceRenderDate.month, year: forceRenderDate.year, day: forceRenderDate.day };
|
|
498
|
+
}
|
|
500
499
|
/**
|
|
501
500
|
* From here, we can determine if the start
|
|
502
501
|
* month or the end month was scrolled into view.
|
|
@@ -551,6 +550,9 @@ const Datetime = class {
|
|
|
551
550
|
this.setWorkingParts(Object.assign(Object.assign({}, this.workingParts), { month, day: day, year }));
|
|
552
551
|
calendarBodyRef.scrollLeft = workingMonth.clientWidth * (isRTL(this.el) ? -1 : 1);
|
|
553
552
|
calendarBodyRef.style.removeProperty('overflow');
|
|
553
|
+
if (this.resolveForceDateScrolling) {
|
|
554
|
+
this.resolveForceDateScrolling();
|
|
555
|
+
}
|
|
554
556
|
});
|
|
555
557
|
};
|
|
556
558
|
/**
|
|
@@ -605,10 +607,17 @@ const Datetime = class {
|
|
|
605
607
|
}
|
|
606
608
|
};
|
|
607
609
|
this.processValue = (value) => {
|
|
608
|
-
const hasValue = value !== null && value !== undefined;
|
|
610
|
+
const hasValue = value !== null && value !== undefined && (!Array.isArray(value) || value.length > 0);
|
|
609
611
|
const valueToProcess = hasValue ? parseDate(value) : this.defaultParts;
|
|
610
|
-
const { minParts, maxParts } = this;
|
|
612
|
+
const { minParts, maxParts, workingParts, el } = this;
|
|
611
613
|
this.warnIfIncorrectValueUsage();
|
|
614
|
+
/**
|
|
615
|
+
* Return early if the value wasn't parsed correctly, such as
|
|
616
|
+
* if an improperly formatted date string was provided.
|
|
617
|
+
*/
|
|
618
|
+
if (!valueToProcess) {
|
|
619
|
+
return;
|
|
620
|
+
}
|
|
612
621
|
/**
|
|
613
622
|
* Datetime should only warn of out of bounds values
|
|
614
623
|
* if set by the user. If the `value` is undefined,
|
|
@@ -626,16 +635,9 @@ const Datetime = class {
|
|
|
626
635
|
* that the values don't necessarily have to be in order.
|
|
627
636
|
*/
|
|
628
637
|
const singleValue = Array.isArray(valueToProcess) ? valueToProcess[0] : valueToProcess;
|
|
629
|
-
const
|
|
638
|
+
const targetValue = clampDate(singleValue, minParts, maxParts);
|
|
639
|
+
const { month, day, year, hour, minute } = targetValue;
|
|
630
640
|
const ampm = parseAmPm(hour);
|
|
631
|
-
this.setWorkingParts({
|
|
632
|
-
month,
|
|
633
|
-
day,
|
|
634
|
-
year,
|
|
635
|
-
hour,
|
|
636
|
-
minute,
|
|
637
|
-
ampm,
|
|
638
|
-
});
|
|
639
641
|
/**
|
|
640
642
|
* Since `activeParts` indicates a value that
|
|
641
643
|
* been explicitly selected either by the
|
|
@@ -665,6 +667,62 @@ const Datetime = class {
|
|
|
665
667
|
*/
|
|
666
668
|
this.activeParts = [];
|
|
667
669
|
}
|
|
670
|
+
/**
|
|
671
|
+
* Only animate if:
|
|
672
|
+
* 1. We're using grid style (wheel style pickers should just jump to new value)
|
|
673
|
+
* 2. The month and/or year actually changed, and both are defined (otherwise there's nothing to animate to)
|
|
674
|
+
* 3. The calendar body is visible (prevents animation when in collapsed datetime-button, for example)
|
|
675
|
+
* 4. The month/year picker is not open (since you wouldn't see the animation anyway)
|
|
676
|
+
*/
|
|
677
|
+
const didChangeMonth = (month !== undefined && month !== workingParts.month) || (year !== undefined && year !== workingParts.year);
|
|
678
|
+
const bodyIsVisible = el.classList.contains('datetime-ready');
|
|
679
|
+
const { isGridStyle, showMonthAndYear } = this;
|
|
680
|
+
if (isGridStyle && didChangeMonth && bodyIsVisible && !showMonthAndYear) {
|
|
681
|
+
this.animateToDate(targetValue);
|
|
682
|
+
}
|
|
683
|
+
else {
|
|
684
|
+
/**
|
|
685
|
+
* We only need to do this if we didn't just animate to a new month,
|
|
686
|
+
* since that calls prevMonth/nextMonth which calls setWorkingParts for us.
|
|
687
|
+
*/
|
|
688
|
+
this.setWorkingParts({
|
|
689
|
+
month,
|
|
690
|
+
day,
|
|
691
|
+
year,
|
|
692
|
+
hour,
|
|
693
|
+
minute,
|
|
694
|
+
ampm,
|
|
695
|
+
});
|
|
696
|
+
}
|
|
697
|
+
};
|
|
698
|
+
this.animateToDate = async (targetValue) => {
|
|
699
|
+
const { workingParts } = this;
|
|
700
|
+
/**
|
|
701
|
+
* Tell other render functions that we need to force the
|
|
702
|
+
* target month to appear in place of the actual next/prev month.
|
|
703
|
+
* Because this is a State variable, a rerender will be triggered
|
|
704
|
+
* automatically, updating the rendered months.
|
|
705
|
+
*/
|
|
706
|
+
this.forceRenderDate = targetValue;
|
|
707
|
+
/**
|
|
708
|
+
* Flag that we've started scrolling to the forced date.
|
|
709
|
+
* The resolve function will be called by the datetime's
|
|
710
|
+
* scroll listener when it's done updating everything.
|
|
711
|
+
* This is a replacement for making prev/nextMonth async,
|
|
712
|
+
* since the logic we're waiting on is in a listener.
|
|
713
|
+
*/
|
|
714
|
+
const forceDateScrollingPromise = new Promise((resolve) => {
|
|
715
|
+
this.resolveForceDateScrolling = resolve;
|
|
716
|
+
});
|
|
717
|
+
/**
|
|
718
|
+
* Animate smoothly to the forced month. This will also update
|
|
719
|
+
* workingParts and correct the surrounding months for us.
|
|
720
|
+
*/
|
|
721
|
+
const targetMonthIsBefore = isBefore(targetValue, workingParts);
|
|
722
|
+
targetMonthIsBefore ? this.prevMonth() : this.nextMonth();
|
|
723
|
+
await forceDateScrollingPromise;
|
|
724
|
+
this.resolveForceDateScrolling = undefined;
|
|
725
|
+
this.forceRenderDate = undefined;
|
|
668
726
|
};
|
|
669
727
|
this.onFocus = () => {
|
|
670
728
|
this.ionFocus.emit();
|
|
@@ -720,6 +778,7 @@ const Datetime = class {
|
|
|
720
778
|
ampm: 'pm',
|
|
721
779
|
};
|
|
722
780
|
this.isTimePopoverOpen = false;
|
|
781
|
+
this.forceRenderDate = undefined;
|
|
723
782
|
this.color = 'primary';
|
|
724
783
|
this.name = this.inputId;
|
|
725
784
|
this.disabled = false;
|
|
@@ -759,6 +818,11 @@ const Datetime = class {
|
|
|
759
818
|
maxChanged() {
|
|
760
819
|
this.processMaxParts();
|
|
761
820
|
}
|
|
821
|
+
get isGridStyle() {
|
|
822
|
+
const { presentation, preferWheel } = this;
|
|
823
|
+
const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
|
|
824
|
+
return hasDatePresentation && !preferWheel;
|
|
825
|
+
}
|
|
762
826
|
yearValuesChanged() {
|
|
763
827
|
this.parsedYearValues = convertToArrayOfNumbers(this.yearValues);
|
|
764
828
|
}
|
|
@@ -774,51 +838,13 @@ const Datetime = class {
|
|
|
774
838
|
minuteValuesChanged() {
|
|
775
839
|
this.parsedMinuteValues = convertToArrayOfNumbers(this.minuteValues);
|
|
776
840
|
}
|
|
777
|
-
activePartsChanged() {
|
|
778
|
-
this.activePartsClone = this.activeParts;
|
|
779
|
-
}
|
|
780
841
|
/**
|
|
781
842
|
* Update the datetime value when the value changes
|
|
782
843
|
*/
|
|
783
|
-
valueChanged() {
|
|
784
|
-
const { value
|
|
844
|
+
async valueChanged() {
|
|
845
|
+
const { value } = this;
|
|
785
846
|
if (this.hasValue()) {
|
|
786
|
-
this.
|
|
787
|
-
/**
|
|
788
|
-
* Clones the value of the `activeParts` to the private clone, to update
|
|
789
|
-
* the date display on the current render cycle without causing another render.
|
|
790
|
-
*
|
|
791
|
-
* This allows us to update the current value's date/time display without
|
|
792
|
-
* refocusing or shifting the user's display (leaves the user in place).
|
|
793
|
-
*/
|
|
794
|
-
const valueDateParts = parseDate(value);
|
|
795
|
-
if (valueDateParts) {
|
|
796
|
-
warnIfValueOutOfBounds(valueDateParts, minParts, maxParts);
|
|
797
|
-
if (Array.isArray(valueDateParts)) {
|
|
798
|
-
this.activePartsClone = [...valueDateParts];
|
|
799
|
-
}
|
|
800
|
-
else {
|
|
801
|
-
const { month, day, year, hour, minute } = valueDateParts;
|
|
802
|
-
const ampm = hour != null ? (hour >= 12 ? 'pm' : 'am') : undefined;
|
|
803
|
-
this.activePartsClone = Object.assign(Object.assign({}, this.activeParts), { month,
|
|
804
|
-
day,
|
|
805
|
-
year,
|
|
806
|
-
hour,
|
|
807
|
-
minute,
|
|
808
|
-
ampm });
|
|
809
|
-
/**
|
|
810
|
-
* The working parts am/pm value must be updated when the value changes, to
|
|
811
|
-
* ensure the time picker hour column values are generated correctly.
|
|
812
|
-
*
|
|
813
|
-
* Note that we don't need to do this if valueDateParts is an array, since
|
|
814
|
-
* multiple="true" does not apply to time pickers.
|
|
815
|
-
*/
|
|
816
|
-
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { ampm }));
|
|
817
|
-
}
|
|
818
|
-
}
|
|
819
|
-
else {
|
|
820
|
-
printIonWarning(`Unable to parse date string: ${value}. Please provide a valid ISO 8601 datetime string.`);
|
|
821
|
-
}
|
|
847
|
+
this.processValue(value);
|
|
822
848
|
}
|
|
823
849
|
this.emitStyle();
|
|
824
850
|
this.ionValueChange.emit({ value });
|
|
@@ -1021,8 +1047,6 @@ const Datetime = class {
|
|
|
1021
1047
|
printIonWarning('The highlightedDates property is not supported with preferWheel="true".', el);
|
|
1022
1048
|
}
|
|
1023
1049
|
}
|
|
1024
|
-
this.processMinParts();
|
|
1025
|
-
this.processMaxParts();
|
|
1026
1050
|
const hourValues = (this.parsedHourValues = convertToArrayOfNumbers(this.hourValues));
|
|
1027
1051
|
const minuteValues = (this.parsedMinuteValues = convertToArrayOfNumbers(this.minuteValues));
|
|
1028
1052
|
const monthValues = (this.parsedMonthValues = convertToArrayOfNumbers(this.monthValues));
|
|
@@ -1030,6 +1054,8 @@ const Datetime = class {
|
|
|
1030
1054
|
const dayValues = (this.parsedDayValues = convertToArrayOfNumbers(this.dayValues));
|
|
1031
1055
|
const todayParts = (this.todayParts = parseDate(getToday()));
|
|
1032
1056
|
this.defaultParts = getClosestValidDate(todayParts, monthValues, dayValues, yearValues, hourValues, minuteValues);
|
|
1057
|
+
this.processMinParts();
|
|
1058
|
+
this.processMaxParts();
|
|
1033
1059
|
this.processValue(this.value);
|
|
1034
1060
|
this.emitStyle();
|
|
1035
1061
|
}
|
|
@@ -1414,7 +1440,7 @@ const Datetime = class {
|
|
|
1414
1440
|
const { el, highlightedDates, isDateEnabled, multiple } = this;
|
|
1415
1441
|
const referenceParts = { month, day, year };
|
|
1416
1442
|
const isCalendarPadding = day === null;
|
|
1417
|
-
const { isActive, isToday, ariaLabel, ariaSelected, disabled, text } = getCalendarDayState(this.locale, referenceParts, this.
|
|
1443
|
+
const { isActive, isToday, ariaLabel, ariaSelected, disabled, text } = getCalendarDayState(this.locale, referenceParts, this.activeParts, this.todayParts, this.minParts, this.maxParts, this.parsedDayValues);
|
|
1418
1444
|
const dateIsoString = convertDataToISO(referenceParts);
|
|
1419
1445
|
let isCalDayDisabled = isCalMonthDisabled || disabled;
|
|
1420
1446
|
if (!isCalDayDisabled && isDateEnabled !== undefined) {
|
|
@@ -1438,14 +1464,30 @@ const Datetime = class {
|
|
|
1438
1464
|
if (highlightedDates !== undefined && !isActive && day !== null) {
|
|
1439
1465
|
dateStyle = getHighlightStyles(highlightedDates, dateIsoString, el);
|
|
1440
1466
|
}
|
|
1441
|
-
|
|
1467
|
+
let dateParts = undefined;
|
|
1468
|
+
// "Filler days" at the beginning of the grid should not get the calendar day
|
|
1469
|
+
// CSS parts added to them
|
|
1470
|
+
if (!isCalendarPadding) {
|
|
1471
|
+
dateParts = `calendar-day${isActive ? ' active' : ''}${isToday ? ' today' : ''}${isCalDayDisabled ? ' disabled' : ''}`;
|
|
1472
|
+
}
|
|
1473
|
+
return (h("div", { class: "calendar-day-wrapper" }, h("button", {
|
|
1474
|
+
// We need to use !important for the inline styles here because
|
|
1475
|
+
// otherwise the CSS shadow parts will override these styles.
|
|
1476
|
+
// See https://github.com/WICG/webcomponents/issues/847
|
|
1477
|
+
// Both the CSS shadow parts and highlightedDates styles are
|
|
1478
|
+
// provided by the developer, but highlightedDates styles should
|
|
1479
|
+
// always take priority.
|
|
1480
|
+
ref: (el) => {
|
|
1481
|
+
if (el) {
|
|
1482
|
+
el.style.setProperty('color', `${dateStyle ? dateStyle.textColor : ''}`, 'important');
|
|
1483
|
+
el.style.setProperty('background-color', `${dateStyle ? dateStyle.backgroundColor : ''}`, 'important');
|
|
1484
|
+
}
|
|
1485
|
+
}, tabindex: "-1", "data-day": day, "data-month": month, "data-year": year, "data-index": index, "data-day-of-week": dayOfWeek, disabled: isCalDayDisabled, class: {
|
|
1442
1486
|
'calendar-day-padding': isCalendarPadding,
|
|
1443
1487
|
'calendar-day': true,
|
|
1444
1488
|
'calendar-day-active': isActive,
|
|
1445
1489
|
'calendar-day-today': isToday,
|
|
1446
|
-
},
|
|
1447
|
-
color: dateStyle.textColor,
|
|
1448
|
-
}, "aria-hidden": isCalendarPadding ? 'true' : null, "aria-selected": ariaSelected, "aria-label": ariaLabel, onClick: () => {
|
|
1490
|
+
}, part: dateParts, "aria-hidden": isCalendarPadding ? 'true' : null, "aria-selected": ariaSelected, "aria-label": ariaLabel, onClick: () => {
|
|
1449
1491
|
if (isCalendarPadding) {
|
|
1450
1492
|
return;
|
|
1451
1493
|
}
|
|
@@ -1465,13 +1507,12 @@ const Datetime = class {
|
|
|
1465
1507
|
day,
|
|
1466
1508
|
year }));
|
|
1467
1509
|
}
|
|
1468
|
-
}
|
|
1469
|
-
|
|
1470
|
-
} }), text));
|
|
1510
|
+
}
|
|
1511
|
+
}, text)));
|
|
1471
1512
|
}))));
|
|
1472
1513
|
}
|
|
1473
1514
|
renderCalendarBody() {
|
|
1474
|
-
return (h("div", { class: "calendar-body ion-focusable", ref: (el) => (this.calendarBodyRef = el), tabindex: "0" }, generateMonths(this.workingParts).map(({ month, year }) => {
|
|
1515
|
+
return (h("div", { class: "calendar-body ion-focusable", ref: (el) => (this.calendarBodyRef = el), tabindex: "0" }, generateMonths(this.workingParts, this.forceRenderDate).map(({ month, year }) => {
|
|
1475
1516
|
return this.renderMonth(month, year);
|
|
1476
1517
|
})));
|
|
1477
1518
|
}
|
|
@@ -1626,14 +1667,13 @@ const Datetime = class {
|
|
|
1626
1667
|
}
|
|
1627
1668
|
}
|
|
1628
1669
|
render() {
|
|
1629
|
-
const { name, value, disabled, el, color, readonly, showMonthAndYear, preferWheel, presentation, size } = this;
|
|
1670
|
+
const { name, value, disabled, el, color, readonly, showMonthAndYear, preferWheel, presentation, size, isGridStyle, } = this;
|
|
1630
1671
|
const mode = getIonMode(this);
|
|
1631
1672
|
const isMonthAndYearPresentation = presentation === 'year' || presentation === 'month' || presentation === 'month-year';
|
|
1632
1673
|
const shouldShowMonthAndYear = showMonthAndYear || isMonthAndYearPresentation;
|
|
1633
1674
|
const monthYearPickerOpen = showMonthAndYear && !isMonthAndYearPresentation;
|
|
1634
1675
|
const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
|
|
1635
1676
|
const hasWheelVariant = hasDatePresentation && preferWheel;
|
|
1636
|
-
const hasGrid = hasDatePresentation && !preferWheel;
|
|
1637
1677
|
renderHiddenInput(true, el, name, formatValue(value), disabled);
|
|
1638
1678
|
return (h(Host, { "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses(color, {
|
|
1639
1679
|
[mode]: true,
|
|
@@ -1644,7 +1684,7 @@ const Datetime = class {
|
|
|
1644
1684
|
[`datetime-presentation-${presentation}`]: true,
|
|
1645
1685
|
[`datetime-size-${size}`]: true,
|
|
1646
1686
|
[`datetime-prefer-wheel`]: hasWheelVariant,
|
|
1647
|
-
[`datetime-grid`]:
|
|
1687
|
+
[`datetime-grid`]: isGridStyle,
|
|
1648
1688
|
})) }, this.renderDatetime(mode)));
|
|
1649
1689
|
}
|
|
1650
1690
|
get el() { return getElement(this); }
|
|
@@ -1657,7 +1697,6 @@ const Datetime = class {
|
|
|
1657
1697
|
"dayValues": ["dayValuesChanged"],
|
|
1658
1698
|
"hourValues": ["hourValuesChanged"],
|
|
1659
1699
|
"minuteValues": ["minuteValuesChanged"],
|
|
1660
|
-
"activeParts": ["activePartsChanged"],
|
|
1661
1700
|
"value": ["valueChanged"]
|
|
1662
1701
|
}; }
|
|
1663
1702
|
};
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { r as registerInstance, d as createEvent, h, H as Host, f as getElement, i as forceUpdate } from './index-adfb2000.js';
|
|
5
5
|
import { c as createLegacyFormController } from './form-controller-ed77647a.js';
|
|
6
|
-
import { c as createNotchController } from './notch-controller-
|
|
6
|
+
import { c as createNotchController } from './notch-controller-8c9c0e54.js';
|
|
7
7
|
import { j as debounceEvent, i as inheritAriaAttributes, k as inheritAttributes, h as findItemLabel } from './helpers-3379ba19.js';
|
|
8
8
|
import { p as printIonWarning } from './index-595d62c9.js';
|
|
9
9
|
import { c as createSlotMutationController, g as getCounterText } from './input.utils-ec063df4.js';
|
|
@@ -5,14 +5,14 @@ import { r as registerInstance, d as createEvent, h, H as Host, f as getElement
|
|
|
5
5
|
import { E as ENABLE_HTML_CONTENT_DEFAULT, a as sanitizeDOMString } from './config-96c9ace3.js';
|
|
6
6
|
import { r as raf } from './helpers-3379ba19.js';
|
|
7
7
|
import { c as createLockController } from './lock-controller-e8c6c051.js';
|
|
8
|
-
import { d as createDelegateController, e as createTriggerController, B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod } from './overlays-
|
|
8
|
+
import { d as createDelegateController, e as createTriggerController, B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod } from './overlays-99dddd1a.js';
|
|
9
9
|
import { g as getClassMap } from './theme-17531cdf.js';
|
|
10
10
|
import { c as config, b as getIonMode } from './ionic-global-9080266a.js';
|
|
11
11
|
import { c as createAnimation } from './animation-a1d9e088.js';
|
|
12
|
+
import './index-7a14ecec.js';
|
|
12
13
|
import './framework-delegate-aa433dea.js';
|
|
13
14
|
import './hardware-back-button-39299f84.js';
|
|
14
15
|
import './index-595d62c9.js';
|
|
15
|
-
import './index-7a14ecec.js';
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* iOS Loading Enter Animation
|
|
@@ -7,7 +7,7 @@ import { d as doc } from './index-7a14ecec.js';
|
|
|
7
7
|
import { G as GESTURE_CONTROLLER } from './gesture-controller-0fa396c4.js';
|
|
8
8
|
import { p as isEndSide, i as inheritAriaAttributes, o as assert, l as clamp } from './helpers-3379ba19.js';
|
|
9
9
|
import { m as menuController } from './index-48f5e259.js';
|
|
10
|
-
import { q as getOverlay } from './overlays-
|
|
10
|
+
import { q as getOverlay } from './overlays-99dddd1a.js';
|
|
11
11
|
import { c as config, b as getIonMode } from './ionic-global-9080266a.js';
|
|
12
12
|
import { c as createColorClasses, h as hostContext } from './theme-17531cdf.js';
|
|
13
13
|
import { u as menuOutline, v as menuSharp } from './index-ecfc2c9f.js';
|
|
@@ -8,7 +8,7 @@ import { g as getElementRoot, l as clamp, r as raf, k as inheritAttributes, m as
|
|
|
8
8
|
import { c as createLockController } from './lock-controller-e8c6c051.js';
|
|
9
9
|
import { p as printIonWarning } from './index-595d62c9.js';
|
|
10
10
|
import { g as getCapacitor } from './capacitor-b4979570.js';
|
|
11
|
-
import { G as GESTURE, e as createTriggerController, B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, n as activeAnimations, g as dismiss, h as eventMethod } from './overlays-
|
|
11
|
+
import { G as GESTURE, e as createTriggerController, B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, n as activeAnimations, g as dismiss, h as eventMethod } from './overlays-99dddd1a.js';
|
|
12
12
|
import { g as getClassMap } from './theme-17531cdf.js';
|
|
13
13
|
import { e as deepReady, w as waitForMount } from './index-01839411.js';
|
|
14
14
|
import { b as getIonMode, c as config } from './ionic-global-9080266a.js';
|
|
@@ -6,13 +6,13 @@ import { C as CoreDelegate, a as attachComponent, d as detachComponent } from '.
|
|
|
6
6
|
import { r as raf, g as getElementRoot, a as addEventListener, m as hasLazyBuild } from './helpers-3379ba19.js';
|
|
7
7
|
import { c as createLockController } from './lock-controller-e8c6c051.js';
|
|
8
8
|
import { p as printIonWarning } from './index-595d62c9.js';
|
|
9
|
-
import { B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, o as focusFirstDescendant, g as dismiss, h as eventMethod } from './overlays-
|
|
9
|
+
import { B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, o as focusFirstDescendant, g as dismiss, h as eventMethod } from './overlays-99dddd1a.js';
|
|
10
10
|
import { b as getIonMode, a as isPlatform } from './ionic-global-9080266a.js';
|
|
11
11
|
import { g as getClassMap } from './theme-17531cdf.js';
|
|
12
12
|
import { e as deepReady, w as waitForMount } from './index-01839411.js';
|
|
13
13
|
import { c as createAnimation } from './animation-a1d9e088.js';
|
|
14
|
-
import './hardware-back-button-39299f84.js';
|
|
15
14
|
import './index-7a14ecec.js';
|
|
15
|
+
import './hardware-back-button-39299f84.js';
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* Returns the dimensions of the popover
|