@ionic/core 7.6.7-dev.11706571117.1bcbc36b → 7.6.7-dev.11706824245.18d35376
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/action-sheet.js +2 -2
- package/components/alert.js +2 -2
- package/components/backdrop.js +0 -12
- package/components/button.js +2 -2
- package/components/checkbox.js +2 -2
- package/components/data.js +1 -1
- package/components/gesture-controller.js +1 -1
- package/components/ion-back-button.js +1 -1
- package/components/ion-badge.js +2 -2
- package/components/ion-breadcrumb.js +2 -2
- package/components/ion-card-subtitle.js +2 -2
- package/components/ion-card-title.js +1 -1
- package/components/ion-card.js +2 -2
- package/components/ion-content.js +3 -4
- package/components/ion-datetime-button.js +2 -2
- package/components/ion-datetime.js +40 -64
- package/components/ion-fab-button.js +2 -2
- package/components/ion-infinite-scroll-content.js +2 -2
- package/components/ion-input.js +2 -2
- package/components/ion-item-divider.js +2 -2
- package/components/ion-item-option.js +2 -2
- package/components/ion-item-options.js +2 -2
- package/components/ion-loading.js +2 -2
- package/components/ion-menu-button.js +1 -1
- package/components/ion-menu.js +21 -15
- package/components/ion-modal.js +2 -2
- package/components/ion-nav.js +7 -3
- package/components/ion-picker-column-option.d.ts +11 -0
- package/components/ion-picker-column-option.js +9 -0
- package/components/ion-picker-column.js +2 -2
- package/components/ion-picker-legacy-column.d.ts +11 -0
- package/components/ion-picker-legacy-column.js +9 -0
- package/components/{ion-picker-internal.d.ts → ion-picker-legacy.d.ts} +4 -4
- package/components/ion-picker-legacy.js +309 -0
- package/components/ion-picker.js +1 -309
- package/components/ion-progress-bar.js +2 -2
- package/components/ion-range.js +2 -2
- package/components/ion-refresher-content.js +1 -1
- package/components/ion-refresher.js +2 -2
- package/components/ion-router-link.js +1 -1
- package/components/ion-searchbar.js +2 -2
- package/components/ion-segment-button.js +2 -2
- package/components/ion-select.js +2 -2
- package/components/ion-split-pane.js +26 -15
- package/components/ion-tab-bar.js +2 -2
- package/components/ion-textarea.js +2 -2
- package/components/ion-toast.js +2 -2
- package/components/ion-toggle.js +2 -2
- package/components/ion-toolbar.js +2 -2
- package/components/item.js +2 -8
- package/components/label.js +1 -1
- package/components/list-header.js +2 -2
- package/components/note.js +2 -2
- package/components/overlays.js +11 -4
- package/components/picker-column-option.js +122 -0
- package/components/picker-column.js +351 -322
- package/components/picker-column2.js +379 -0
- package/components/{picker-internal.js → picker.js} +29 -22
- package/components/popover.js +1 -1
- package/components/radio.js +2 -2
- package/components/select-popover.js +1 -1
- package/css/core.css +101 -34
- package/css/core.css.map +1 -1
- package/css/global.bundle.css +1 -1
- package/css/ionic.bundle.css +1 -1
- package/css/ionic.bundle.css.map +1 -1
- package/css/themes/dark.always.css +160 -0
- package/css/themes/dark.always.css.map +1 -0
- package/css/themes/dark.class.css +160 -0
- package/css/themes/dark.class.css.map +1 -0
- package/css/themes/dark.css +3 -0
- package/css/themes/dark.css.map +1 -0
- package/css/themes/dark.system.css +162 -0
- package/css/themes/dark.system.css.map +1 -0
- package/css/themes/high-contrast-dark.always.css +177 -0
- package/css/themes/high-contrast-dark.always.css.map +1 -0
- package/css/themes/high-contrast-dark.class.css +177 -0
- package/css/themes/high-contrast-dark.class.css.map +1 -0
- package/css/themes/high-contrast-dark.css +3 -0
- package/css/themes/high-contrast-dark.css.map +1 -0
- package/css/themes/high-contrast-dark.system.css +179 -0
- package/css/themes/high-contrast-dark.system.css.map +1 -0
- package/css/themes/high-contrast-light.always.css +93 -0
- package/css/themes/high-contrast-light.always.css.map +1 -0
- package/css/themes/high-contrast-light.class.css +93 -0
- package/css/themes/high-contrast-light.class.css.map +1 -0
- package/css/themes/high-contrast-light.css +3 -0
- package/css/themes/high-contrast-light.css.map +1 -0
- package/css/themes/high-contrast-light.system.css +95 -0
- package/css/themes/high-contrast-light.system.css.map +1 -0
- package/css/typography.css +1 -1
- package/dist/cjs/{button-active-85665616.js → button-active-d432e262.js} +1 -1
- package/dist/cjs/{data-a5109f09.js → data-e2bf21de.js} +1 -1
- package/dist/cjs/{gesture-controller-c40c045a.js → gesture-controller-9436f482.js} +1 -0
- package/dist/cjs/{index-d1b59ffa.js → index-ee07ed59.js} +1 -1
- package/dist/cjs/index.cjs.js +3 -3
- package/dist/cjs/ion-action-sheet.cjs.entry.js +6 -6
- package/dist/cjs/ion-alert.cjs.entry.js +6 -6
- package/dist/cjs/ion-app_8.cjs.entry.js +6 -7
- package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-back-button.cjs.entry.js +1 -1
- package/dist/cjs/ion-backdrop.cjs.entry.js +0 -12
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-card_5.cjs.entry.js +5 -5
- package/dist/cjs/ion-checkbox.cjs.entry.js +2 -2
- package/dist/cjs/ion-datetime-button.cjs.entry.js +3 -3
- package/dist/cjs/ion-datetime_3.cjs.entry.js +37 -57
- package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-input.cjs.entry.js +2 -2
- package/dist/cjs/ion-item-option_3.cjs.entry.js +5 -5
- package/dist/cjs/ion-item_8.cjs.entry.js +9 -14
- package/dist/cjs/ion-loading.cjs.entry.js +4 -3
- package/dist/cjs/ion-menu_3.cjs.entry.js +25 -20
- package/dist/cjs/ion-modal.cjs.entry.js +5 -5
- package/dist/cjs/ion-nav_2.cjs.entry.js +6 -3
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +104 -0
- package/dist/cjs/{ion-picker-column-internal.cjs.entry.js → ion-picker-column.cjs.entry.js} +104 -87
- package/dist/cjs/{ion-picker-internal.cjs.entry.js → ion-picker.cjs.entry.js} +26 -19
- package/dist/cjs/ion-popover.cjs.entry.js +3 -2
- package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
- package/dist/cjs/ion-radio_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-range.cjs.entry.js +3 -3
- package/dist/cjs/ion-refresher_2.cjs.entry.js +6 -6
- package/dist/cjs/ion-reorder_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-route_4.cjs.entry.js +1 -1
- package/dist/cjs/ion-searchbar.cjs.entry.js +2 -2
- package/dist/cjs/ion-segment_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-select_3.cjs.entry.js +5 -4
- package/dist/cjs/ion-split-pane.cjs.entry.js +24 -14
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
- package/dist/cjs/ion-toast.cjs.entry.js +5 -5
- package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{overlays-8285b485.js → overlays-3afa911d.js} +11 -4
- package/dist/cjs/{swipe-back-2a858bbd.js → swipe-back-b8f2330b.js} +2 -2
- package/dist/collection/collection-manifest.json +7 -6
- package/dist/collection/components/action-sheet/action-sheet.ios.css +7 -7
- package/dist/collection/components/action-sheet/action-sheet.md.css +1 -1
- package/dist/collection/components/action-sheet/test/a11y/action-sheet.e2e.js +23 -14
- package/dist/collection/components/alert/alert.ios.css +12 -12
- package/dist/collection/components/alert/alert.md.css +17 -17
- package/dist/collection/components/alert/test/a11y/alert.e2e.js +22 -9
- package/dist/collection/components/back-button/back-button.ios.css +1 -1
- package/dist/collection/components/back-button/test/a11y/back-button.e2e.js +21 -0
- package/dist/collection/components/backdrop/backdrop.js +0 -12
- package/dist/collection/components/badge/badge.ios.css +1 -1
- package/dist/collection/components/badge/badge.md.css +1 -1
- package/dist/collection/components/badge/test/a11y/badge.e2e.js +18 -0
- package/dist/collection/components/breadcrumb/breadcrumb.ios.css +9 -9
- package/dist/collection/components/breadcrumb/breadcrumb.md.css +9 -9
- package/dist/collection/components/button/button.ios.css +11 -11
- package/dist/collection/components/button/button.md.css +9 -9
- package/dist/collection/components/button/test/a11y/button.e2e.js +48 -0
- package/dist/collection/components/button/test/basic/button.e2e.js +1 -1
- package/dist/collection/components/button/test/wrap/button.e2e.js +12 -24
- package/dist/collection/components/card/card.ios.css +1 -1
- package/dist/collection/components/card/card.md.css +1 -1
- package/dist/collection/components/card-subtitle/card-subtitle.ios.css +1 -1
- package/dist/collection/components/card-subtitle/card-subtitle.md.css +1 -1
- package/dist/collection/components/card-title/card-title.md.css +1 -1
- package/dist/collection/components/checkbox/checkbox.ios.css +2 -2
- package/dist/collection/components/checkbox/checkbox.md.css +2 -2
- package/dist/collection/components/checkbox/test/a11y/checkbox.e2e.js +11 -2
- package/dist/collection/components/content/content.css +0 -4
- package/dist/collection/components/content/content.js +2 -3
- package/dist/collection/components/datetime/datetime.ios.css +98 -45
- package/dist/collection/components/datetime/datetime.js +24 -36
- package/dist/collection/components/datetime/datetime.md.css +100 -42
- package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +4 -4
- package/dist/collection/components/datetime/test/a11y/datetime.spec.js +6 -9
- package/dist/collection/components/datetime/test/basic/datetime.e2e.js +22 -12
- package/dist/collection/components/datetime/test/datetime.e2e.js +3 -3
- package/dist/collection/components/datetime/test/disable-dates/datetime.e2e.js +1 -1
- package/dist/collection/components/datetime/test/disabled/datetime.e2e.js +4 -4
- package/dist/collection/components/datetime/test/disabled/datetime.spec.js +4 -4
- package/dist/collection/components/datetime/test/display/datetime.e2e.js +9 -9
- package/dist/collection/components/datetime/test/locale/datetime.e2e.js +5 -5
- package/dist/collection/components/datetime/test/minmax/datetime.e2e.js +17 -17
- package/dist/collection/components/datetime/test/month-year-picker/datetime.e2e.js +2 -2
- package/dist/collection/components/datetime/test/multiple/datetime.e2e.js +2 -2
- package/dist/collection/components/datetime/test/position/datetime.e2e.js +1 -1
- package/dist/collection/components/datetime/test/prefer-wheel/datetime.e2e.js +75 -73
- package/dist/collection/components/datetime/test/presentation/datetime.e2e.js +4 -4
- package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +8 -8
- package/dist/collection/components/datetime/test/set-value/datetime.e2e.js +4 -4
- package/dist/collection/components/datetime/test/time-label/datetime.e2e.js +2 -2
- package/dist/collection/components/datetime/test/values/datetime.e2e.js +19 -16
- package/dist/collection/components/datetime/utils/data.js +1 -1
- package/dist/collection/components/datetime-button/datetime-button.css +1 -1
- package/dist/collection/components/datetime-button/test/basic/datetime-button.e2e.js +14 -14
- package/dist/collection/components/datetime-button/test/disabled/datetime-button.e2e.js +2 -2
- package/dist/collection/components/datetime-button/test/multiple/datetime-button.e2e.js +6 -6
- package/dist/collection/components/fab-button/fab-button.ios.css +13 -13
- package/dist/collection/components/fab-button/fab-button.md.css +4 -4
- package/dist/collection/components/fab-button/test/a11y/fab-button.e2e.js +50 -0
- package/dist/collection/components/header/test/condense/header.e2e.js +2 -2
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +3 -3
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +3 -3
- package/dist/collection/components/input/input.ios.css +8 -8
- package/dist/collection/components/input/input.md.css +16 -16
- package/dist/collection/components/input/test/a11y/input.e2e.js +41 -3
- package/dist/collection/components/item/item.ios.css +44 -7
- package/dist/collection/components/item/item.js +0 -7
- package/dist/collection/components/item/item.md.css +52 -15
- package/dist/collection/components/item-divider/item-divider.ios.css +2 -2
- package/dist/collection/components/item-divider/item-divider.md.css +3 -3
- package/dist/collection/components/item-option/item-option.ios.css +2 -2
- package/dist/collection/components/item-option/item-option.md.css +1 -1
- package/dist/collection/components/item-options/item-options.ios.css +1 -1
- package/dist/collection/components/item-options/item-options.md.css +1 -1
- package/dist/collection/components/item-sliding/test/a11y/item-sliding.e2e.js +28 -0
- package/dist/collection/components/label/label.md.css +2 -2
- package/dist/collection/components/label/test/a11y/label.e2e.js +20 -0
- package/dist/collection/components/list-header/list-header.ios.css +2 -2
- package/dist/collection/components/list-header/list-header.md.css +1 -1
- package/dist/collection/components/loading/loading.ios.css +2 -2
- package/dist/collection/components/loading/loading.md.css +3 -3
- package/dist/collection/components/loading/test/a11y/loading.e2e.js +21 -5
- package/dist/collection/components/menu/menu.ios.css +64 -3
- package/dist/collection/components/menu/menu.js +19 -13
- package/dist/collection/components/menu/menu.md.css +64 -3
- package/dist/collection/components/menu-button/menu-button.ios.css +1 -1
- package/dist/collection/components/menu-button/test/a11y/menu-button.e2e.js +14 -0
- package/dist/collection/components/modal/modal.ios.css +1 -1
- package/dist/collection/components/modal/modal.md.css +1 -1
- package/dist/collection/components/modal/test/standalone/modal.e2e.js +1 -1
- package/dist/collection/components/nav/nav.js +22 -2
- package/dist/collection/components/nav/test/nav-controller.spec.js +36 -36
- package/dist/collection/components/note/note.ios.css +1 -1
- package/dist/collection/components/note/note.md.css +1 -1
- package/dist/collection/components/note/test/a11y/note.e2e.js +6 -6
- package/dist/collection/components/picker/picker.ios.css +112 -211
- package/dist/collection/components/picker/picker.js +488 -738
- package/dist/collection/components/picker/picker.md.css +108 -198
- package/dist/collection/components/{picker-internal/test/a11y/picker-internal.e2e.js → picker/test/a11y/picker.e2e.js} +2 -2
- package/dist/collection/components/picker/test/basic/picker.e2e.js +99 -13
- package/dist/collection/components/picker/test/custom/picker.e2e.js +85 -0
- package/dist/collection/components/{picker-internal/test/keyboard-entry/picker-internal.e2e.js → picker/test/keyboard-entry/picker.e2e.js} +79 -42
- package/dist/collection/components/{picker-column-internal/picker-column-internal.md.css → picker-column/picker-column.css} +96 -83
- package/dist/collection/components/picker-column/picker-column.js +499 -335
- package/dist/collection/components/{picker-column-internal/test/basic/picker-column-internal.e2e.js → picker-column/test/basic/picker-column.e2e.js} +8 -8
- package/dist/collection/components/picker-column/test/disabled/picker-column.e2e.js +91 -0
- package/dist/collection/components/picker-column/test/slots/picker-column.e2e.js +39 -0
- package/dist/collection/components/picker-column-option/picker-column-option.ios.css +87 -0
- package/dist/collection/components/picker-column-option/picker-column-option.js +173 -0
- package/dist/collection/components/{picker-column-internal/picker-column-internal.ios.css → picker-column-option/picker-column-option.md.css} +6 -53
- package/dist/collection/components/picker-column-option/test/a11y/picker-column-option.e2e.js +18 -0
- package/dist/collection/components/picker-column-option/test/basic/picker-column-option.e2e.js +37 -0
- package/dist/collection/components/picker-column-option/test/picker-column-option.spec.js +29 -0
- package/dist/collection/components/{picker-internal/picker-internal.ios.css → picker-legacy/picker.ios.css} +205 -100
- package/dist/collection/components/picker-legacy/picker.js +811 -0
- package/dist/collection/components/{picker-internal/picker-internal.md.css → picker-legacy/picker.md.css} +194 -98
- package/dist/collection/components/picker-legacy/test/basic/picker.e2e.js +25 -0
- package/dist/collection/components/{picker → picker-legacy}/test/is-open/picker.e2e.js +4 -4
- package/dist/collection/components/{picker → picker-legacy}/test/picker-id.spec.js +5 -5
- package/dist/collection/components/{picker → picker-legacy}/test/trigger/picker.e2e.js +1 -1
- package/dist/collection/components/picker-legacy-column/picker-column.js +419 -0
- package/dist/collection/components/{picker-column → picker-legacy-column}/picker-column.md.css +1 -1
- package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column-aria.spec.js +3 -3
- package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column-dynamic.spec.js +2 -2
- package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column.spec.js +2 -2
- package/dist/collection/components/{picker-column → picker-legacy-column}/test/standalone/picker-column.e2e.js +3 -3
- package/dist/collection/components/popover/popover.ios.css +1 -1
- package/dist/collection/components/progress-bar/progress-bar.ios.css +2 -2
- package/dist/collection/components/progress-bar/progress-bar.md.css +2 -2
- package/dist/collection/components/progress-bar/test/a11y/progress-bar.e2e.js +24 -0
- package/dist/collection/components/radio/radio.ios.css +2 -2
- package/dist/collection/components/radio/radio.md.css +2 -2
- package/dist/collection/components/radio/test/a11y/radio.e2e.js +114 -81
- package/dist/collection/components/range/range.ios.css +3 -3
- package/dist/collection/components/range/range.md.css +5 -5
- package/dist/collection/components/range/test/a11y/range.e2e.js +18 -8
- package/dist/collection/components/refresher/refresher.ios.css +1 -1
- package/dist/collection/components/refresher/refresher.md.css +4 -4
- package/dist/collection/components/refresher/test/a11y/refresher.e2e.js +25 -0
- package/dist/collection/components/refresher/test/test.utils.js +1 -1
- package/dist/collection/components/refresher-content/refresher-content.js +1 -1
- package/dist/collection/components/ripple-effect/test/basic/ripple-effect.e2e.js +2 -2
- package/dist/collection/components/router-link/router-link.css +1 -1
- package/dist/collection/components/router-link/test/a11y/router-link.e2e.js +23 -0
- package/dist/collection/components/searchbar/searchbar.ios.css +4 -4
- package/dist/collection/components/searchbar/searchbar.md.css +4 -4
- package/dist/collection/components/segment/test/a11y/segment.e2e.js +23 -0
- package/dist/collection/components/segment-button/segment-button.ios.css +3 -3
- package/dist/collection/components/segment-button/segment-button.md.css +2 -2
- package/dist/collection/components/select/select.ios.css +5 -5
- package/dist/collection/components/select/select.md.css +14 -14
- package/dist/collection/components/select/test/a11y/select.e2e.js +68 -4
- package/dist/collection/components/select-popover/select-popover.md.css +4 -4
- package/dist/collection/components/select-popover/test/a11y/select-popover.e2e.js +32 -0
- package/dist/collection/components/split-pane/split-pane.ios.css +3 -55
- package/dist/collection/components/split-pane/split-pane.js +46 -12
- package/dist/collection/components/split-pane/split-pane.md.css +3 -55
- package/dist/collection/components/split-pane/test/wrapped-menu/split-pane.e2e.js +41 -0
- package/dist/collection/components/tab-bar/tab-bar.ios.css +4 -4
- package/dist/collection/components/tab-bar/tab-bar.md.css +3 -3
- package/dist/collection/components/tabs/tabs.js +6 -18
- package/dist/collection/components/textarea/test/a11y/textarea.e2e.js +41 -3
- package/dist/collection/components/textarea/textarea.ios.css +7 -7
- package/dist/collection/components/textarea/textarea.md.css +15 -15
- package/dist/collection/components/toast/test/a11y/toast.e2e.js +89 -24
- package/dist/collection/components/toast/toast.ios.css +3 -3
- package/dist/collection/components/toast/toast.md.css +5 -5
- package/dist/collection/components/toggle/test/a11y/toggle.e2e.js +8 -2
- package/dist/collection/components/toggle/toggle.ios.css +2 -2
- package/dist/collection/components/toggle/toggle.md.css +2 -2
- package/dist/collection/components/toolbar/toolbar.ios.css +2 -2
- package/dist/collection/components/toolbar/toolbar.md.css +1 -1
- package/dist/collection/css/test/a11y/typography.e2e.js +18 -0
- package/dist/collection/themes/test/colors/theme.e2e.js +170 -0
- package/dist/collection/utils/gesture/gesture-controller.js +1 -1
- package/dist/collection/utils/overlays.js +11 -4
- package/dist/collection/utils/test/overlays/overlays-scroll-blocking.spec.js +65 -0
- package/dist/collection/utils/test/playwright/generator.js +1 -0
- package/dist/collection/utils/test/playwright/page/utils/set-content.js +1 -1
- package/dist/docs.json +508 -66
- package/dist/esm/{button-active-b62776db.js → button-active-3bcbd115.js} +1 -1
- package/dist/esm/{data-775093f5.js → data-6a31d701.js} +1 -1
- package/dist/esm/{gesture-controller-1bf57181.js → gesture-controller-314a54f6.js} +1 -1
- package/dist/esm/{index-2cf77112.js → index-39782642.js} +2 -2
- package/dist/esm/index.js +3 -3
- package/dist/esm/ion-action-sheet.entry.js +6 -6
- package/dist/esm/ion-alert.entry.js +6 -6
- package/dist/esm/ion-app_8.entry.js +6 -7
- package/dist/esm/ion-avatar_3.entry.js +2 -2
- package/dist/esm/ion-back-button.entry.js +1 -1
- package/dist/esm/ion-backdrop.entry.js +0 -12
- package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
- package/dist/esm/ion-button_2.entry.js +2 -2
- package/dist/esm/ion-card_5.entry.js +5 -5
- package/dist/esm/ion-checkbox.entry.js +2 -2
- package/dist/esm/ion-datetime-button.entry.js +3 -3
- package/dist/esm/ion-datetime_3.entry.js +36 -56
- package/dist/esm/ion-fab_3.entry.js +2 -2
- package/dist/esm/ion-infinite-scroll_2.entry.js +2 -2
- package/dist/esm/ion-input.entry.js +2 -2
- package/dist/esm/ion-item-option_3.entry.js +5 -5
- package/dist/esm/ion-item_8.entry.js +9 -14
- package/dist/esm/ion-loading.entry.js +4 -3
- package/dist/esm/ion-menu_3.entry.js +25 -20
- package/dist/esm/ion-modal.entry.js +5 -5
- package/dist/esm/ion-nav_2.entry.js +6 -3
- package/dist/esm/ion-picker-column-option.entry.js +100 -0
- package/dist/esm/{ion-picker-column-internal.entry.js → ion-picker-column.entry.js} +104 -87
- package/dist/esm/{ion-picker-internal.entry.js → ion-picker.entry.js} +26 -19
- package/dist/esm/ion-popover.entry.js +3 -2
- package/dist/esm/ion-progress-bar.entry.js +2 -2
- package/dist/esm/ion-radio_2.entry.js +2 -2
- package/dist/esm/ion-range.entry.js +3 -3
- package/dist/esm/ion-refresher_2.entry.js +6 -6
- package/dist/esm/ion-reorder_2.entry.js +1 -1
- package/dist/esm/ion-route_4.entry.js +1 -1
- package/dist/esm/ion-searchbar.entry.js +2 -2
- package/dist/esm/ion-segment_2.entry.js +3 -3
- package/dist/esm/ion-select_3.entry.js +5 -4
- package/dist/esm/ion-split-pane.entry.js +24 -14
- package/dist/esm/ion-tab-bar_2.entry.js +2 -2
- package/dist/esm/ion-textarea.entry.js +2 -2
- package/dist/esm/ion-toast.entry.js +5 -5
- package/dist/esm/ion-toggle.entry.js +3 -3
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{overlays-bb824d56.js → overlays-8b24f0d5.js} +11 -4
- package/dist/esm/{swipe-back-a6f386fc.js → swipe-back-a8ca7f93.js} +2 -2
- package/dist/esm-es5/{button-active-b62776db.js → button-active-3bcbd115.js} +1 -1
- package/dist/esm-es5/{gesture-controller-1bf57181.js → gesture-controller-314a54f6.js} +1 -1
- package/dist/esm-es5/{index-2cf77112.js → index-39782642.js} +1 -1
- 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-app_8.entry.js +1 -1
- package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
- package/dist/esm-es5/ion-back-button.entry.js +1 -1
- package/dist/esm-es5/ion-backdrop.entry.js +1 -1
- package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
- package/dist/esm-es5/ion-button_2.entry.js +1 -1
- package/dist/esm-es5/ion-card_5.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-fab_3.entry.js +1 -1
- package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
- package/dist/esm-es5/ion-input.entry.js +1 -1
- package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
- package/dist/esm-es5/ion-item_8.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-nav_2.entry.js +1 -1
- package/dist/esm-es5/ion-picker-column-option.entry.js +4 -0
- package/dist/esm-es5/ion-picker-column.entry.js +4 -0
- package/dist/esm-es5/ion-picker.entry.js +4 -0
- package/dist/esm-es5/ion-popover.entry.js +1 -1
- package/dist/esm-es5/ion-progress-bar.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-refresher_2.entry.js +1 -1
- package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
- package/dist/esm-es5/ion-route_4.entry.js +1 -1
- package/dist/esm-es5/ion-searchbar.entry.js +1 -1
- package/dist/esm-es5/ion-segment_2.entry.js +1 -1
- package/dist/esm-es5/ion-select_3.entry.js +1 -1
- package/dist/esm-es5/ion-split-pane.entry.js +1 -1
- package/dist/esm-es5/ion-tab-bar_2.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-8b24f0d5.js +4 -0
- package/dist/esm-es5/swipe-back-a8ca7f93.js +4 -0
- package/dist/html.html-data.json +152 -1
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-249633a4.entry.js → p-0055506a.entry.js} +1 -1
- package/dist/ionic/p-0708a9c1.system.js +4 -0
- package/dist/ionic/{p-b6f6f00e.entry.js → p-07d725a7.entry.js} +1 -1
- package/dist/ionic/{p-c1c57873.system.entry.js → p-0a0a84ce.system.entry.js} +1 -1
- package/dist/ionic/p-0ac49b0c.system.entry.js +4 -0
- package/dist/ionic/p-0d3c5eaa.system.entry.js +4 -0
- package/dist/ionic/{p-5a85d71d.entry.js → p-0d850325.entry.js} +1 -1
- package/dist/ionic/p-0f55b1b0.entry.js +4 -0
- package/dist/ionic/p-10607f89.entry.js +4 -0
- package/dist/ionic/{p-d2707f9d.system.js → p-114ea79c.system.js} +1 -1
- package/dist/ionic/p-14196559.entry.js +4 -0
- package/dist/ionic/p-14b8100f.system.entry.js +4 -0
- package/dist/ionic/p-15878390.system.entry.js +4 -0
- package/dist/ionic/{p-f3478ed6.system.entry.js → p-16e781a6.system.entry.js} +1 -1
- package/dist/ionic/p-1a5f0313.system.js +1 -1
- package/dist/ionic/p-1c445de9.entry.js +4 -0
- package/dist/ionic/{p-c7c8429a.system.js → p-20d469d0.system.js} +1 -1
- package/dist/ionic/p-2800e6d5.system.entry.js +4 -0
- package/dist/ionic/p-283d8f5e.system.entry.js +4 -0
- package/dist/ionic/{p-8084e9cb.entry.js → p-28525772.entry.js} +1 -1
- package/dist/ionic/p-2aa29487.system.entry.js +4 -0
- package/dist/ionic/{p-54c92c77.entry.js → p-305423e0.entry.js} +1 -1
- package/dist/ionic/p-327211c1.entry.js +4 -0
- package/dist/ionic/{p-bc6d16ca.entry.js → p-32b129a2.entry.js} +1 -1
- package/dist/ionic/{p-b43cf55f.entry.js → p-34f05cec.entry.js} +1 -1
- package/dist/ionic/p-3587df88.system.entry.js +4 -0
- package/dist/ionic/p-381ca6f8.system.entry.js +4 -0
- package/dist/ionic/p-3cf67784.entry.js +4 -0
- package/dist/ionic/{p-31b2326e.system.js → p-3e1e14d9.system.js} +1 -1
- package/dist/ionic/{p-3b83e483.system.entry.js → p-3f3ae637.system.entry.js} +2 -2
- package/dist/ionic/p-4a13a07c.system.entry.js +4 -0
- package/dist/ionic/p-4eaf5dcd.system.entry.js +4 -0
- package/dist/ionic/p-5186ff3f.system.entry.js +4 -0
- package/dist/ionic/p-51abefb7.system.js +4 -0
- package/dist/ionic/p-59a95822.entry.js +4 -0
- package/dist/ionic/p-659086a2.system.entry.js +4 -0
- package/dist/ionic/p-6793b96e.system.entry.js +4 -0
- package/dist/ionic/{p-7bae84aa.entry.js → p-69926b34.entry.js} +1 -1
- package/dist/ionic/p-6b0c8263.entry.js +4 -0
- package/dist/ionic/p-71f30cfc.system.entry.js +4 -0
- package/dist/ionic/p-7a3e1f37.system.entry.js +4 -0
- package/dist/ionic/p-7ae141f1.entry.js +4 -0
- package/dist/ionic/p-7e8ef0bb.system.entry.js +4 -0
- package/dist/ionic/p-89c5f8ba.system.entry.js +4 -0
- package/dist/ionic/{p-cdce5ba3.system.entry.js → p-8a1d33e3.system.entry.js} +1 -1
- package/dist/ionic/{p-1f7fc88d.entry.js → p-8aaade76.entry.js} +1 -1
- package/dist/ionic/{p-f5d2dc9b.js → p-8ededb41.js} +1 -1
- package/dist/ionic/p-94265b3d.entry.js +4 -0
- package/dist/ionic/{p-35e1a80f.system.entry.js → p-943caced.system.entry.js} +1 -1
- package/dist/ionic/{p-2c3842e8.system.entry.js → p-97657f32.system.entry.js} +1 -1
- package/dist/ionic/p-97e39972.system.entry.js +4 -0
- package/dist/ionic/p-9b930e4f.entry.js +4 -0
- package/dist/ionic/{p-bb3615f7.js → p-9b97df10.js} +1 -1
- package/dist/ionic/{p-db798370.system.entry.js → p-9cbfb298.system.entry.js} +1 -1
- package/dist/ionic/{p-c3bfe92d.entry.js → p-a114831c.entry.js} +1 -1
- package/dist/ionic/p-a60a1ce5.js +4 -0
- package/dist/ionic/{p-1052ef2b.entry.js → p-ae8747aa.entry.js} +1 -1
- package/dist/ionic/p-b13f5e6a.entry.js +4 -0
- package/dist/ionic/{p-10c34f0a.system.entry.js → p-b6e4e9ce.system.entry.js} +1 -1
- package/dist/ionic/p-b8213f04.entry.js +4 -0
- package/dist/ionic/p-b8fbc01d.entry.js +4 -0
- package/dist/ionic/p-c33d312f.js +4 -0
- package/dist/ionic/{p-85e04029.entry.js → p-c6a6ffe6.entry.js} +1 -1
- package/dist/ionic/{p-688a36c7.entry.js → p-c7bdd72f.entry.js} +1 -1
- package/dist/ionic/{p-df62accd.entry.js → p-c9028fdc.entry.js} +1 -1
- package/dist/ionic/{p-5c2da581.system.entry.js → p-cb0cfc39.system.entry.js} +1 -1
- package/dist/ionic/{p-5628d04e.entry.js → p-cd6a60d2.entry.js} +1 -1
- package/dist/ionic/{p-7510e462.entry.js → p-d545e325.entry.js} +1 -1
- package/dist/ionic/p-d5a21de8.entry.js +4 -0
- package/dist/ionic/p-d6674fed.entry.js +4 -0
- package/dist/ionic/p-db00f04e.entry.js +4 -0
- package/dist/ionic/p-ddf79d90.system.entry.js +4 -0
- package/dist/ionic/p-def451e2.system.entry.js +4 -0
- package/dist/ionic/p-df5134fa.entry.js +4 -0
- package/dist/ionic/{p-8f1ebb7d.system.js → p-df75bd2c.system.js} +1 -1
- package/dist/ionic/p-df7aaa62.entry.js +4 -0
- package/dist/ionic/p-dfd21411.system.entry.js +4 -0
- package/dist/ionic/p-e22bf111.js +4 -0
- package/dist/ionic/p-e652d9e4.entry.js +4 -0
- package/dist/ionic/p-e9a36c6f.entry.js +4 -0
- package/dist/ionic/p-ea9a8424.system.entry.js +4 -0
- package/dist/ionic/{p-41aa2662.entry.js → p-eeb87a49.entry.js} +1 -1
- package/dist/ionic/p-ef6ec008.system.entry.js +4 -0
- package/dist/ionic/p-ef9e6f77.system.entry.js +4 -0
- package/dist/ionic/{p-7751def0.system.entry.js → p-f003e500.system.entry.js} +1 -1
- package/dist/ionic/p-f27b18ba.system.entry.js +4 -0
- package/dist/ionic/p-f62122bb.system.entry.js +4 -0
- package/dist/ionic/p-f864df50.system.entry.js +4 -0
- package/dist/ionic/{p-1a0bf247.system.entry.js → p-fc58a772.system.entry.js} +1 -1
- package/dist/ionic/p-fdc3ff96.entry.js +4 -0
- package/dist/types/components/backdrop/backdrop.d.ts +0 -3
- package/dist/types/components/datetime/datetime.d.ts +0 -1
- package/dist/types/components/datetime/utils/data.d.ts +11 -7
- package/dist/types/components/item/item.d.ts +0 -1
- package/dist/types/components/menu/menu.d.ts +12 -2
- package/dist/types/components/nav/nav.d.ts +4 -1
- package/dist/types/components/picker/picker-interfaces.d.ts +8 -0
- package/dist/types/components/picker/picker.d.ts +75 -129
- package/dist/types/components/picker-column/picker-column-interfaces.d.ts +4 -0
- package/dist/types/components/picker-column/picker-column.d.ts +99 -39
- package/dist/types/components/picker-column-option/picker-column-option.d.ts +66 -0
- package/dist/types/components/picker-legacy/picker.d.ts +158 -0
- package/dist/types/components/picker-legacy-column/picker-column.d.ts +46 -0
- package/dist/types/components/split-pane/split-pane.d.ts +14 -2
- package/dist/types/components/tabs/tabs-interface.d.ts +3 -4
- package/dist/types/components/tabs/tabs.d.ts +6 -3
- package/dist/types/components.d.ts +163 -128
- package/dist/types/interface.d.ts +1 -1
- package/dist/types/utils/config.d.ts +2 -2
- package/dist/types/utils/gesture/gesture-controller.d.ts +1 -0
- package/dist/types/utils/overlays.d.ts +5 -2
- package/dist/types/utils/test/playwright/generator.d.ts +3 -1
- package/hydrate/index.js +1491 -1379
- package/package.json +2 -2
- package/components/ion-picker-column-internal.d.ts +0 -11
- package/components/ion-picker-column-internal.js +0 -9
- package/components/ion-picker-internal.js +0 -9
- package/components/picker-column-internal.js +0 -390
- package/dist/collection/components/item/test/item.spec.js +0 -20
- package/dist/collection/components/picker-column-internal/picker-column-internal.js +0 -566
- package/dist/collection/components/picker-column-internal/test/disabled/picker-column-internal.e2e.js +0 -162
- package/dist/collection/components/picker-internal/picker-internal.js +0 -560
- package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +0 -118
- package/dist/esm-es5/ion-picker-column-internal.entry.js +0 -4
- package/dist/esm-es5/ion-picker-internal.entry.js +0 -4
- package/dist/esm-es5/overlays-bb824d56.js +0 -4
- package/dist/esm-es5/swipe-back-a6f386fc.js +0 -4
- package/dist/ionic/p-024e2739.entry.js +0 -4
- package/dist/ionic/p-06128c8c.entry.js +0 -4
- package/dist/ionic/p-06f72943.system.entry.js +0 -4
- package/dist/ionic/p-0d2b6901.entry.js +0 -4
- package/dist/ionic/p-127ff448.entry.js +0 -4
- package/dist/ionic/p-35ce400e.system.js +0 -4
- package/dist/ionic/p-3dbaaa5b.system.entry.js +0 -4
- package/dist/ionic/p-3de38800.system.entry.js +0 -4
- package/dist/ionic/p-41040a92.system.entry.js +0 -4
- package/dist/ionic/p-436bd99a.entry.js +0 -4
- package/dist/ionic/p-49c52149.system.entry.js +0 -4
- package/dist/ionic/p-4dc3bc8b.entry.js +0 -4
- package/dist/ionic/p-525b6ac4.system.entry.js +0 -4
- package/dist/ionic/p-5aecd304.system.entry.js +0 -4
- package/dist/ionic/p-5f698182.entry.js +0 -4
- package/dist/ionic/p-61bf9f6f.system.entry.js +0 -4
- package/dist/ionic/p-6899d5af.entry.js +0 -4
- package/dist/ionic/p-6a6477b2.js +0 -4
- package/dist/ionic/p-6b9eee40.system.entry.js +0 -4
- package/dist/ionic/p-6ba863b1.system.entry.js +0 -4
- package/dist/ionic/p-6e165986.system.entry.js +0 -4
- package/dist/ionic/p-719ad110.system.entry.js +0 -4
- package/dist/ionic/p-73547cf9.entry.js +0 -4
- package/dist/ionic/p-7a02dd61.system.entry.js +0 -4
- package/dist/ionic/p-7ffe791a.system.js +0 -4
- package/dist/ionic/p-80ddd0c1.entry.js +0 -4
- package/dist/ionic/p-87e10168.system.entry.js +0 -4
- package/dist/ionic/p-89c28901.system.entry.js +0 -4
- package/dist/ionic/p-8bad1486.system.entry.js +0 -4
- package/dist/ionic/p-90000ff6.js +0 -4
- package/dist/ionic/p-928e945d.system.entry.js +0 -4
- package/dist/ionic/p-9cf0846d.system.entry.js +0 -4
- package/dist/ionic/p-a0953474.entry.js +0 -4
- package/dist/ionic/p-a2d75455.entry.js +0 -4
- package/dist/ionic/p-a706cf11.system.entry.js +0 -4
- package/dist/ionic/p-aca77953.entry.js +0 -4
- package/dist/ionic/p-afafbba0.entry.js +0 -4
- package/dist/ionic/p-b09c8228.entry.js +0 -4
- package/dist/ionic/p-ba4890eb.system.entry.js +0 -4
- package/dist/ionic/p-beeceaf5.system.entry.js +0 -4
- package/dist/ionic/p-c10cc51e.system.entry.js +0 -4
- package/dist/ionic/p-c4177035.entry.js +0 -4
- package/dist/ionic/p-c48a9ef3.system.entry.js +0 -4
- package/dist/ionic/p-cb301b9a.entry.js +0 -4
- package/dist/ionic/p-d6beb1c9.system.entry.js +0 -4
- package/dist/ionic/p-dc1d883c.system.entry.js +0 -4
- package/dist/ionic/p-e150f8fc.entry.js +0 -4
- package/dist/ionic/p-e814f9c0.entry.js +0 -4
- package/dist/ionic/p-eb210b21.system.entry.js +0 -4
- package/dist/ionic/p-eb80ca40.entry.js +0 -4
- package/dist/ionic/p-f48a49ae.system.entry.js +0 -4
- package/dist/ionic/p-f865bc9a.entry.js +0 -4
- package/dist/ionic/p-fd1a0431.js +0 -4
- package/dist/types/components/picker-column-internal/picker-column-internal-interfaces.d.ts +0 -5
- package/dist/types/components/picker-column-internal/picker-column-internal.d.ts +0 -102
- package/dist/types/components/picker-internal/picker-internal-interfaces.d.ts +0 -8
- package/dist/types/components/picker-internal/picker-internal.d.ts +0 -102
- /package/dist/collection/components/{picker-internal/picker-internal-interfaces.js → picker/picker-interfaces.js} +0 -0
- /package/dist/collection/components/{picker-column-internal/picker-column-internal-interfaces.js → picker-column/picker-column-interfaces.js} +0 -0
- /package/dist/collection/components/{picker → picker-legacy}/animations/ios.enter.js +0 -0
- /package/dist/collection/components/{picker → picker-legacy}/animations/ios.leave.js +0 -0
- /package/dist/collection/components/{picker → picker-legacy}/picker-interface.js +0 -0
- /package/dist/collection/components/{picker-column → picker-legacy-column}/picker-column.ios.css +0 -0
- /package/dist/collection/components/{picker-column → picker-legacy-column}/test/test.utils.js +0 -0
- /package/dist/esm-es5/{data-775093f5.js → data-6a31d701.js} +0 -0
- /package/dist/ionic/{p-87bb3735.system.js → p-7ff4359e.system.js} +0 -0
- /package/dist/ionic/{p-18cae04f.js → p-a64accf5.js} +0 -0
- /package/dist/types/components/{picker → picker-legacy}/animations/ios.enter.d.ts +0 -0
- /package/dist/types/components/{picker → picker-legacy}/animations/ios.leave.d.ts +0 -0
- /package/dist/types/components/{picker → picker-legacy}/picker-interface.d.ts +0 -0
- /package/dist/types/components/{picker-column → picker-legacy-column}/test/test.utils.d.ts +0 -0
|
@@ -1015,7 +1015,7 @@ export class Datetime {
|
|
|
1015
1015
|
const renderArray = forcePresentation === 'time-date'
|
|
1016
1016
|
? [this.renderTimePickerColumns(forcePresentation), this.renderDatePickerColumns(forcePresentation)]
|
|
1017
1017
|
: [this.renderDatePickerColumns(forcePresentation), this.renderTimePickerColumns(forcePresentation)];
|
|
1018
|
-
return h("ion-picker
|
|
1018
|
+
return h("ion-picker", null, renderArray);
|
|
1019
1019
|
}
|
|
1020
1020
|
renderDatePickerColumns(forcePresentation) {
|
|
1021
1021
|
return forcePresentation === 'date-time' || forcePresentation === 'time-date'
|
|
@@ -1074,7 +1074,7 @@ export class Datetime {
|
|
|
1074
1074
|
const todayString = workingParts.day !== null
|
|
1075
1075
|
? `${workingParts.year}-${workingParts.month}-${workingParts.day}`
|
|
1076
1076
|
: `${defaultParts.year}-${defaultParts.month}-${defaultParts.day}`;
|
|
1077
|
-
return (h("ion-picker-column
|
|
1077
|
+
return (h("ion-picker-column", { class: "date-column", color: this.color, disabled: disabled, value: todayString, onIonChange: (ev) => {
|
|
1078
1078
|
// TODO(FW-1823) Remove this when iOS 14 support is dropped.
|
|
1079
1079
|
// Due to a Safari 14 issue we need to destroy
|
|
1080
1080
|
// the scroll listener before we update state
|
|
@@ -1090,7 +1090,7 @@ export class Datetime {
|
|
|
1090
1090
|
// the working parts have been updated.
|
|
1091
1091
|
this.initializeCalendarListener();
|
|
1092
1092
|
ev.stopPropagation();
|
|
1093
|
-
} }));
|
|
1093
|
+
} }, items.map((item) => (h("ion-picker-column-option", { part: item.value === todayString ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: item.value, disabled: item.disabled, value: item.value }, item.text)))));
|
|
1094
1094
|
}
|
|
1095
1095
|
renderIndividualDatePickerColumns(forcePresentation) {
|
|
1096
1096
|
const { workingParts, isDateEnabled } = this;
|
|
@@ -1158,7 +1158,8 @@ export class Datetime {
|
|
|
1158
1158
|
}
|
|
1159
1159
|
const { disabled, workingParts } = this;
|
|
1160
1160
|
const activePart = this.getActivePartsWithFallback();
|
|
1161
|
-
|
|
1161
|
+
const pickerColumnValue = (_a = (workingParts.day !== null ? workingParts.day : this.defaultParts.day)) !== null && _a !== void 0 ? _a : undefined;
|
|
1162
|
+
return (h("ion-picker-column", { class: "day-column", color: this.color, disabled: disabled, value: pickerColumnValue, onIonChange: (ev) => {
|
|
1162
1163
|
// TODO(FW-1823) Remove this when iOS 14 support is dropped.
|
|
1163
1164
|
// Due to a Safari 14 issue we need to destroy
|
|
1164
1165
|
// the scroll listener before we update state
|
|
@@ -1172,7 +1173,7 @@ export class Datetime {
|
|
|
1172
1173
|
// the working parts have been updated.
|
|
1173
1174
|
this.initializeCalendarListener();
|
|
1174
1175
|
ev.stopPropagation();
|
|
1175
|
-
} }));
|
|
1176
|
+
} }, days.map((day) => (h("ion-picker-column-option", { part: day.value === pickerColumnValue ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: day.value, disabled: day.disabled, value: day.value }, day.text)))));
|
|
1176
1177
|
}
|
|
1177
1178
|
renderMonthPickerColumn(months) {
|
|
1178
1179
|
if (months.length === 0) {
|
|
@@ -1180,7 +1181,7 @@ export class Datetime {
|
|
|
1180
1181
|
}
|
|
1181
1182
|
const { disabled, workingParts } = this;
|
|
1182
1183
|
const activePart = this.getActivePartsWithFallback();
|
|
1183
|
-
return (h("ion-picker-column
|
|
1184
|
+
return (h("ion-picker-column", { class: "month-column", color: this.color, disabled: disabled, value: workingParts.month, onIonChange: (ev) => {
|
|
1184
1185
|
// TODO(FW-1823) Remove this when iOS 14 support is dropped.
|
|
1185
1186
|
// Due to a Safari 14 issue we need to destroy
|
|
1186
1187
|
// the scroll listener before we update state
|
|
@@ -1194,7 +1195,7 @@ export class Datetime {
|
|
|
1194
1195
|
// the working parts have been updated.
|
|
1195
1196
|
this.initializeCalendarListener();
|
|
1196
1197
|
ev.stopPropagation();
|
|
1197
|
-
} }));
|
|
1198
|
+
} }, months.map((month) => (h("ion-picker-column-option", { part: month.value === workingParts.month ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: month.value, disabled: month.disabled, value: month.value }, month.text)))));
|
|
1198
1199
|
}
|
|
1199
1200
|
renderYearPickerColumn(years) {
|
|
1200
1201
|
if (years.length === 0) {
|
|
@@ -1202,7 +1203,7 @@ export class Datetime {
|
|
|
1202
1203
|
}
|
|
1203
1204
|
const { disabled, workingParts } = this;
|
|
1204
1205
|
const activePart = this.getActivePartsWithFallback();
|
|
1205
|
-
return (h("ion-picker-column
|
|
1206
|
+
return (h("ion-picker-column", { class: "year-column", color: this.color, disabled: disabled, value: workingParts.year, onIonChange: (ev) => {
|
|
1206
1207
|
// TODO(FW-1823) Remove this when iOS 14 support is dropped.
|
|
1207
1208
|
// Due to a Safari 14 issue we need to destroy
|
|
1208
1209
|
// the scroll listener before we update state
|
|
@@ -1216,7 +1217,7 @@ export class Datetime {
|
|
|
1216
1217
|
// the working parts have been updated.
|
|
1217
1218
|
this.initializeCalendarListener();
|
|
1218
1219
|
ev.stopPropagation();
|
|
1219
|
-
} }));
|
|
1220
|
+
} }, years.map((year) => (h("ion-picker-column-option", { part: year.value === workingParts.year ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: year.value, disabled: year.disabled, value: year.value }, year.text)))));
|
|
1220
1221
|
}
|
|
1221
1222
|
renderTimePickerColumns(forcePresentation) {
|
|
1222
1223
|
if (['date', 'month', 'month-year', 'year'].includes(forcePresentation)) {
|
|
@@ -1245,22 +1246,22 @@ export class Datetime {
|
|
|
1245
1246
|
if (hoursData.length === 0)
|
|
1246
1247
|
return [];
|
|
1247
1248
|
const activePart = this.getActivePartsWithFallback();
|
|
1248
|
-
return (h("ion-picker-column
|
|
1249
|
+
return (h("ion-picker-column", { color: this.color, disabled: disabled, value: activePart.hour, numericInput: true, onIonChange: (ev) => {
|
|
1249
1250
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { hour: ev.detail.value }));
|
|
1250
1251
|
this.setActiveParts(Object.assign(Object.assign({}, activePart), { hour: ev.detail.value }));
|
|
1251
1252
|
ev.stopPropagation();
|
|
1252
|
-
} }));
|
|
1253
|
+
} }, hoursData.map((hour) => (h("ion-picker-column-option", { part: hour.value === activePart.hour ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: hour.value, disabled: hour.disabled, value: hour.value }, hour.text)))));
|
|
1253
1254
|
}
|
|
1254
1255
|
renderMinutePickerColumn(minutesData) {
|
|
1255
1256
|
const { disabled, workingParts } = this;
|
|
1256
1257
|
if (minutesData.length === 0)
|
|
1257
1258
|
return [];
|
|
1258
1259
|
const activePart = this.getActivePartsWithFallback();
|
|
1259
|
-
return (h("ion-picker-column
|
|
1260
|
+
return (h("ion-picker-column", { color: this.color, disabled: disabled, value: activePart.minute, numericInput: true, onIonChange: (ev) => {
|
|
1260
1261
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { minute: ev.detail.value }));
|
|
1261
1262
|
this.setActiveParts(Object.assign(Object.assign({}, activePart), { minute: ev.detail.value }));
|
|
1262
1263
|
ev.stopPropagation();
|
|
1263
|
-
} }));
|
|
1264
|
+
} }, minutesData.map((minute) => (h("ion-picker-column-option", { part: minute.value === activePart.minute ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: minute.value, disabled: minute.disabled, value: minute.value }, minute.text)))));
|
|
1264
1265
|
}
|
|
1265
1266
|
renderDayPeriodPickerColumn(dayPeriodData) {
|
|
1266
1267
|
const { disabled, workingParts } = this;
|
|
@@ -1269,12 +1270,12 @@ export class Datetime {
|
|
|
1269
1270
|
}
|
|
1270
1271
|
const activePart = this.getActivePartsWithFallback();
|
|
1271
1272
|
const isDayPeriodRTL = isLocaleDayPeriodRTL(this.locale);
|
|
1272
|
-
return (h("ion-picker-column
|
|
1273
|
+
return (h("ion-picker-column", { style: isDayPeriodRTL ? { order: '-1' } : {}, color: this.color, disabled: disabled, value: activePart.ampm, onIonChange: (ev) => {
|
|
1273
1274
|
const hour = calculateHourFromAMPM(workingParts, ev.detail.value);
|
|
1274
1275
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { ampm: ev.detail.value, hour }));
|
|
1275
1276
|
this.setActiveParts(Object.assign(Object.assign({}, activePart), { ampm: ev.detail.value, hour }));
|
|
1276
1277
|
ev.stopPropagation();
|
|
1277
|
-
} }));
|
|
1278
|
+
} }, dayPeriodData.map((dayPeriod) => (h("ion-picker-column-option", { part: dayPeriod.value === activePart.ampm ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: dayPeriod.value, disabled: dayPeriod.disabled, value: dayPeriod.value }, dayPeriod.text)))));
|
|
1278
1279
|
}
|
|
1279
1280
|
renderWheelView(forcePresentation) {
|
|
1280
1281
|
const { locale } = this;
|
|
@@ -1295,26 +1296,11 @@ export class Datetime {
|
|
|
1295
1296
|
const nextMonthDisabled = disabled || isNextMonthDisabled(this.workingParts, this.maxParts);
|
|
1296
1297
|
// don't use the inheritAttributes util because it removes dir from the host, and we still need that
|
|
1297
1298
|
const hostDir = this.el.getAttribute('dir') || undefined;
|
|
1298
|
-
return (h("div", { class: "calendar-header" }, h("div", { class: "calendar-action-buttons" }, h("div", { class: "calendar-month-year" }, h("
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
*
|
|
1304
|
-
* Currently there is not a way to set the aria-label on the inner button
|
|
1305
|
-
* on the `ion-item` and have it be reactive to changes. This is a workaround
|
|
1306
|
-
* until we either refactor `ion-item` to a button or Stencil adds a way to
|
|
1307
|
-
* have reactive props for built-in properties, such as `aria-label`.
|
|
1308
|
-
*/
|
|
1309
|
-
const { monthYearToggleItemRef } = this;
|
|
1310
|
-
if (monthYearToggleItemRef) {
|
|
1311
|
-
const btn = (_a = monthYearToggleItemRef.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-native');
|
|
1312
|
-
if (btn) {
|
|
1313
|
-
const monthYearAriaLabel = this.showMonthAndYear ? 'Hide year picker' : 'Show year picker';
|
|
1314
|
-
btn.setAttribute('aria-label', monthYearAriaLabel);
|
|
1315
|
-
}
|
|
1316
|
-
}
|
|
1317
|
-
} }, h("ion-label", null, getMonthAndYear(this.locale, this.workingParts), h("ion-icon", { "aria-hidden": "true", icon: this.showMonthAndYear ? expandedIcon : collapsedIcon, lazy: false, flipRtl: true })))), h("div", { class: "calendar-next-prev" }, h("ion-buttons", null, h("ion-button", { "aria-label": "Previous month", disabled: prevMonthDisabled, onClick: () => this.prevMonth() }, h("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: chevronBack, lazy: false, flipRtl: true })), h("ion-button", { "aria-label": "Next month", disabled: nextMonthDisabled, onClick: () => this.nextMonth() }, h("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: chevronForward, lazy: false, flipRtl: true }))))), h("div", { class: "calendar-days-of-week", "aria-hidden": "true" }, getDaysOfWeek(this.locale, mode, this.firstDayOfWeek % 7).map((d) => {
|
|
1299
|
+
return (h("div", { class: "calendar-header" }, h("div", { class: "calendar-action-buttons" }, h("div", { class: "calendar-month-year" }, h("button", { class: {
|
|
1300
|
+
'calendar-month-year-toggle': true,
|
|
1301
|
+
'ion-activatable': true,
|
|
1302
|
+
'ion-focusable': true,
|
|
1303
|
+
}, part: "month-year-button", disabled: disabled, "aria-label": this.showMonthAndYear ? 'Hide year picker' : 'Show year picker', onClick: () => this.toggleMonthAndYearView() }, h("span", { id: "toggle-wrapper" }, getMonthAndYear(this.locale, this.workingParts), h("ion-icon", { "aria-hidden": "true", icon: this.showMonthAndYear ? expandedIcon : collapsedIcon, lazy: false, flipRtl: true })), mode === 'md' && h("ion-ripple-effect", null))), h("div", { class: "calendar-next-prev" }, h("ion-buttons", null, h("ion-button", { "aria-label": "Previous month", disabled: prevMonthDisabled, onClick: () => this.prevMonth() }, h("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: chevronBack, lazy: false, flipRtl: true })), h("ion-button", { "aria-label": "Next month", disabled: nextMonthDisabled, onClick: () => this.nextMonth() }, h("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: chevronForward, lazy: false, flipRtl: true }))))), h("div", { class: "calendar-days-of-week", "aria-hidden": "true" }, getDaysOfWeek(this.locale, mode, this.firstDayOfWeek % 7).map((d) => {
|
|
1318
1304
|
return h("div", { class: "day-of-week" }, d);
|
|
1319
1305
|
}))));
|
|
1320
1306
|
}
|
|
@@ -1475,7 +1461,7 @@ export class Datetime {
|
|
|
1475
1461
|
* This will correctly scroll the element position to the correct time value,
|
|
1476
1462
|
* before the popover is fully presented.
|
|
1477
1463
|
*/
|
|
1478
|
-
const cols = ev.target.querySelectorAll('ion-picker-column
|
|
1464
|
+
const cols = ev.target.querySelectorAll('ion-picker-column');
|
|
1479
1465
|
// TODO (FW-615): Potentially remove this when intersection observers are fixed in picker column
|
|
1480
1466
|
cols.forEach((col) => col.scrollActiveItemIntoView());
|
|
1481
1467
|
}, style: {
|
|
@@ -2406,3 +2392,5 @@ export class Datetime {
|
|
|
2406
2392
|
}
|
|
2407
2393
|
}
|
|
2408
2394
|
let datetimeIds = 0;
|
|
2395
|
+
const WHEEL_ITEM_PART = 'wheel-item';
|
|
2396
|
+
const WHEEL_ITEM_ACTIVE_PART = `active`;
|
|
@@ -61,6 +61,8 @@
|
|
|
61
61
|
*
|
|
62
62
|
* @prop --wheel-highlight-background: The background of the highlight under the selected
|
|
63
63
|
* item when using a wheel style layout, or in the month/year picker for grid style layouts.
|
|
64
|
+
* @prop --wheel-highlight-border-radius: The border radius of the highlight under the selected
|
|
65
|
+
* item when using a wheel style layout, or in the month/year picker for grid style layouts.
|
|
64
66
|
* @prop --wheel-fade-background-rgb: The color of the gradient covering non-selected items
|
|
65
67
|
* when using a wheel style layout, or in the month/year picker for grid style layouts. Must
|
|
66
68
|
* be in RGB format, e.g. `255, 255, 255`.
|
|
@@ -71,19 +73,6 @@
|
|
|
71
73
|
overflow: hidden;
|
|
72
74
|
}
|
|
73
75
|
|
|
74
|
-
/**
|
|
75
|
-
* When using the wheel picker to switch
|
|
76
|
-
* between months, sometimes the allowed
|
|
77
|
-
* dates may be filtered. As a result, it
|
|
78
|
-
* is possible to get a layout shift as
|
|
79
|
-
* the picker column will shrink to fit the
|
|
80
|
-
* widest item in the column. Setting a minimum
|
|
81
|
-
* width avoids this layout shifting.
|
|
82
|
-
*/
|
|
83
|
-
ion-picker-column-internal {
|
|
84
|
-
min-width: 26px;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
76
|
:host(.datetime-size-fixed) {
|
|
88
77
|
width: auto;
|
|
89
78
|
height: auto;
|
|
@@ -94,7 +83,7 @@ ion-picker-column-internal {
|
|
|
94
83
|
}
|
|
95
84
|
|
|
96
85
|
/**
|
|
97
|
-
* This ensures that the picker is
|
|
86
|
+
* This ensures that the picker is appropriately
|
|
98
87
|
* sized and never truncates the text.
|
|
99
88
|
*/
|
|
100
89
|
:host(.datetime-size-fixed.datetime-prefer-wheel) {
|
|
@@ -317,24 +306,8 @@ ion-picker-column-internal {
|
|
|
317
306
|
justify-content: space-between;
|
|
318
307
|
}
|
|
319
308
|
|
|
320
|
-
:host .calendar-action-buttons ion-item,
|
|
321
309
|
:host .calendar-action-buttons ion-button {
|
|
322
|
-
--background:
|
|
323
|
-
}
|
|
324
|
-
|
|
325
|
-
:host .calendar-action-buttons ion-item ion-label {
|
|
326
|
-
display: flex;
|
|
327
|
-
align-items: center;
|
|
328
|
-
width: auto;
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
:host .calendar-action-buttons ion-item ion-icon {
|
|
332
|
-
-webkit-padding-start: 4px;
|
|
333
|
-
padding-inline-start: 4px;
|
|
334
|
-
-webkit-padding-end: 0;
|
|
335
|
-
padding-inline-end: 0;
|
|
336
|
-
padding-top: 0;
|
|
337
|
-
padding-bottom: 0;
|
|
310
|
+
--background: transparent;
|
|
338
311
|
}
|
|
339
312
|
|
|
340
313
|
:host .calendar-days-of-week {
|
|
@@ -500,7 +473,7 @@ ion-picker-column-internal {
|
|
|
500
473
|
padding-bottom: 6px;
|
|
501
474
|
display: flex;
|
|
502
475
|
border: none;
|
|
503
|
-
background: var(--ion-color-step-300, #edeef0);
|
|
476
|
+
background: var(--ion-color-step-300, var(--ion-background-color-step-300, #edeef0));
|
|
504
477
|
color: var(--ion-text-color, #000);
|
|
505
478
|
font-family: inherit;
|
|
506
479
|
font-size: inherit;
|
|
@@ -516,8 +489,72 @@ ion-picker-column-internal {
|
|
|
516
489
|
position: static;
|
|
517
490
|
}
|
|
518
491
|
|
|
519
|
-
:host(.show-month-and-year) .calendar-action-buttons
|
|
520
|
-
|
|
492
|
+
:host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle {
|
|
493
|
+
color: var(--ion-color-base);
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
.calendar-month-year {
|
|
497
|
+
min-width: 0;
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
.calendar-month-year-toggle {
|
|
501
|
+
font-family: inherit;
|
|
502
|
+
font-size: inherit;
|
|
503
|
+
font-style: inherit;
|
|
504
|
+
font-weight: inherit;
|
|
505
|
+
letter-spacing: inherit;
|
|
506
|
+
text-decoration: inherit;
|
|
507
|
+
text-indent: inherit;
|
|
508
|
+
text-overflow: inherit;
|
|
509
|
+
text-transform: inherit;
|
|
510
|
+
text-align: inherit;
|
|
511
|
+
white-space: inherit;
|
|
512
|
+
color: inherit;
|
|
513
|
+
position: relative;
|
|
514
|
+
border: 0;
|
|
515
|
+
outline: none;
|
|
516
|
+
background: transparent;
|
|
517
|
+
cursor: pointer;
|
|
518
|
+
z-index: 1;
|
|
519
|
+
}
|
|
520
|
+
.calendar-month-year-toggle::after {
|
|
521
|
+
left: 0;
|
|
522
|
+
right: 0;
|
|
523
|
+
top: 0;
|
|
524
|
+
bottom: 0;
|
|
525
|
+
position: absolute;
|
|
526
|
+
content: "";
|
|
527
|
+
opacity: 0;
|
|
528
|
+
transition: opacity 15ms linear, background-color 15ms linear;
|
|
529
|
+
z-index: -1;
|
|
530
|
+
}
|
|
531
|
+
.calendar-month-year-toggle.ion-focused::after {
|
|
532
|
+
background: currentColor;
|
|
533
|
+
}
|
|
534
|
+
.calendar-month-year-toggle:disabled {
|
|
535
|
+
opacity: 0.3;
|
|
536
|
+
pointer-events: none;
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
.calendar-month-year-toggle ion-icon {
|
|
540
|
+
-webkit-padding-start: 4px;
|
|
541
|
+
padding-inline-start: 4px;
|
|
542
|
+
-webkit-padding-end: 0;
|
|
543
|
+
padding-inline-end: 0;
|
|
544
|
+
padding-top: 0;
|
|
545
|
+
padding-bottom: 0;
|
|
546
|
+
flex-shrink: 0;
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
.calendar-month-year-toggle #toggle-wrapper {
|
|
550
|
+
display: inline-flex;
|
|
551
|
+
align-items: center;
|
|
552
|
+
}
|
|
553
|
+
|
|
554
|
+
ion-picker {
|
|
555
|
+
--highlight-background: var(--wheel-highlight-background);
|
|
556
|
+
--highlight-border-radius: var(--wheel-highlight-border-radius);
|
|
557
|
+
--fade-background-rgb: var(--wheel-fade-background-rgb);
|
|
521
558
|
}
|
|
522
559
|
|
|
523
560
|
/**
|
|
@@ -576,7 +613,7 @@ ion-picker-column-internal {
|
|
|
576
613
|
* }
|
|
577
614
|
*/
|
|
578
615
|
:host {
|
|
579
|
-
--background: var(--ion-color-step-100, #ffffff);
|
|
616
|
+
--background: var(--ion-color-step-100, var(--ion-background-color-step-100, #ffffff));
|
|
580
617
|
--title-color: var(--ion-color-contrast);
|
|
581
618
|
}
|
|
582
619
|
|
|
@@ -601,15 +638,36 @@ ion-picker-column-internal {
|
|
|
601
638
|
font-size: 2.125rem;
|
|
602
639
|
}
|
|
603
640
|
|
|
604
|
-
:host .
|
|
605
|
-
--
|
|
641
|
+
:host .calendar-action-buttons ion-button {
|
|
642
|
+
--color: var(--ion-color-step-650, var(--ion-text-color-step-350, #595959));
|
|
606
643
|
}
|
|
607
644
|
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
645
|
+
.calendar-month-year-toggle {
|
|
646
|
+
-webkit-padding-start: 20px;
|
|
647
|
+
padding-inline-start: 20px;
|
|
648
|
+
-webkit-padding-end: 16px;
|
|
649
|
+
padding-inline-end: 16px;
|
|
650
|
+
padding-top: 12px;
|
|
651
|
+
padding-bottom: 12px;
|
|
652
|
+
min-height: 48px;
|
|
653
|
+
background: transparent;
|
|
654
|
+
color: var(--ion-color-step-650, var(--ion-text-color-step-350, #595959));
|
|
655
|
+
z-index: 1;
|
|
656
|
+
}
|
|
657
|
+
.calendar-month-year-toggle.ion-focused::after {
|
|
658
|
+
opacity: 0.04;
|
|
611
659
|
}
|
|
612
660
|
|
|
661
|
+
.calendar-month-year-toggle ion-ripple-effect {
|
|
662
|
+
color: currentColor;
|
|
663
|
+
}
|
|
664
|
+
|
|
665
|
+
@media (any-hover: hover) {
|
|
666
|
+
.calendar-month-year-toggle.ion-activatable:not(.ion-focused):hover::after {
|
|
667
|
+
background: currentColor;
|
|
668
|
+
opacity: 0.04;
|
|
669
|
+
}
|
|
670
|
+
}
|
|
613
671
|
:host .calendar-days-of-week {
|
|
614
672
|
-webkit-padding-start: 10px;
|
|
615
673
|
padding-inline-start: 10px;
|
|
@@ -617,7 +675,7 @@ ion-picker-column-internal {
|
|
|
617
675
|
padding-inline-end: 10px;
|
|
618
676
|
padding-top: 0px;
|
|
619
677
|
padding-bottom: 0px;
|
|
620
|
-
color: var(--ion-color-step-500, gray);
|
|
678
|
+
color: var(--ion-color-step-500, var(--ion-text-color-step-500, gray));
|
|
621
679
|
font-size: 0.875rem;
|
|
622
680
|
line-height: 36px;
|
|
623
681
|
}
|
|
@@ -679,7 +737,7 @@ ion-picker-column-internal {
|
|
|
679
737
|
}
|
|
680
738
|
|
|
681
739
|
:host .time-header {
|
|
682
|
-
color: var(--ion-color-step-650, #595959);
|
|
740
|
+
color: var(--ion-color-step-650, var(--ion-text-color-step-350, #595959));
|
|
683
741
|
}
|
|
684
742
|
|
|
685
743
|
/**
|
|
@@ -21,7 +21,7 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
|
21
21
|
</div>
|
|
22
22
|
`, config);
|
|
23
23
|
const container = page.locator('#container');
|
|
24
|
-
await page.
|
|
24
|
+
await page.waitForSelector('.datetime-ready');
|
|
25
25
|
await expect(container).toHaveScreenshot(screenshot(`datetime-scale`));
|
|
26
26
|
});
|
|
27
27
|
});
|
|
@@ -38,7 +38,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
38
38
|
`, config);
|
|
39
39
|
const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab';
|
|
40
40
|
const datetime = page.locator('ion-datetime');
|
|
41
|
-
const monthYearButton = page.locator('.calendar-month-year
|
|
41
|
+
const monthYearButton = page.locator('.calendar-month-year-toggle');
|
|
42
42
|
const prevButton = page.locator('.calendar-next-prev ion-button:nth-child(1)');
|
|
43
43
|
const nextButton = page.locator('.calendar-next-prev ion-button:nth-child(2)');
|
|
44
44
|
await page.keyboard.press(tabKey);
|
|
@@ -64,7 +64,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
64
64
|
|
|
65
65
|
<ion-datetime value="2022-02-22T16:30:00" show-default-buttons="true" show-clear-button="true"></ion-datetime>
|
|
66
66
|
`, config);
|
|
67
|
-
await page.
|
|
67
|
+
await page.waitForSelector('.datetime-ready');
|
|
68
68
|
const clearButton = page.locator('#clear-button button');
|
|
69
69
|
const selectedDay = page.locator('.calendar-day-active');
|
|
70
70
|
await expect(selectedDay).toHaveText('22');
|
|
@@ -80,7 +80,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
80
80
|
|
|
81
81
|
<ion-datetime value="2022-02-28"></ion-datetime>
|
|
82
82
|
`, config);
|
|
83
|
-
await page.
|
|
83
|
+
await page.waitForSelector('.datetime-ready');
|
|
84
84
|
const calendarMonthYear = page.locator('ion-datetime .calendar-month-year');
|
|
85
85
|
const calendarBody = page.locator('.calendar-body');
|
|
86
86
|
await expect(calendarMonthYear).toHaveText('February 2022');
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
4
|
import { newSpecPage } from "@stencil/core/testing";
|
|
5
|
-
import { Item } from "../../../item/item";
|
|
6
5
|
import { Datetime } from "../../datetime";
|
|
7
6
|
describe('datetime', () => {
|
|
8
7
|
beforeEach(() => {
|
|
@@ -18,25 +17,23 @@ describe('datetime', () => {
|
|
|
18
17
|
let page;
|
|
19
18
|
beforeEach(async () => {
|
|
20
19
|
page = await newSpecPage({
|
|
21
|
-
components: [Datetime
|
|
20
|
+
components: [Datetime],
|
|
22
21
|
html: `<ion-datetime></ion-datetime>`,
|
|
23
22
|
});
|
|
24
23
|
});
|
|
25
24
|
it('should have aria-label "Show year picker" when collapsed', async () => {
|
|
26
25
|
const datetime = page.body.querySelector('ion-datetime');
|
|
27
|
-
const
|
|
28
|
-
const monthYearToggleBtn = item.shadowRoot.querySelector('button');
|
|
26
|
+
const monthYearToggleBtn = datetime.shadowRoot.querySelector('.calendar-month-year .calendar-month-year-toggle');
|
|
29
27
|
const ariaLabel = monthYearToggleBtn.getAttribute('aria-label');
|
|
30
28
|
expect(ariaLabel).toContain('Show year picker');
|
|
31
29
|
});
|
|
32
30
|
it('should have aria-label "Hide year picker" when expanded', async () => {
|
|
33
31
|
const datetime = page.body.querySelector('ion-datetime');
|
|
34
|
-
const
|
|
35
|
-
|
|
32
|
+
const monthYearToggleBtn = datetime.shadowRoot.querySelector('.calendar-month-year .calendar-month-year-toggle');
|
|
33
|
+
monthYearToggleBtn.click();
|
|
36
34
|
await page.waitForChanges();
|
|
37
|
-
const
|
|
38
|
-
const
|
|
39
|
-
const ariaLabel = monthYearToggleBtn.getAttribute('aria-label');
|
|
35
|
+
const monthYearToggleBtnAfter = datetime.shadowRoot.querySelector('.calendar-month-year .calendar-month-year-toggle');
|
|
36
|
+
const ariaLabel = monthYearToggleBtnAfter.getAttribute('aria-label');
|
|
40
37
|
expect(ariaLabel).toContain('Hide year picker');
|
|
41
38
|
});
|
|
42
39
|
});
|
|
@@ -82,7 +82,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
82
82
|
}
|
|
83
83
|
</script>
|
|
84
84
|
`, config);
|
|
85
|
-
await page.
|
|
85
|
+
await page.waitForSelector('.datetime-ready');
|
|
86
86
|
const datetime = page.locator('ion-datetime');
|
|
87
87
|
const ionChange = await page.spyOnEvent('ionChange');
|
|
88
88
|
// Oct 1, 2022
|
|
@@ -188,7 +188,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
|
188
188
|
await page.setContent(`
|
|
189
189
|
<ion-datetime value="2022-05-03"></ion-datetime>
|
|
190
190
|
`, config);
|
|
191
|
-
await page.
|
|
191
|
+
await page.waitForSelector('.datetime-ready');
|
|
192
192
|
const calendarBody = page.locator('ion-datetime .calendar-body');
|
|
193
193
|
const calendarHeader = page.locator('ion-datetime .calendar-month-year');
|
|
194
194
|
await expect(calendarHeader).toHaveText(/May 2022/);
|
|
@@ -200,7 +200,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
|
200
200
|
await page.setContent(`
|
|
201
201
|
<ion-datetime value="2022-05-03"></ion-datetime>
|
|
202
202
|
`, config);
|
|
203
|
-
await page.
|
|
203
|
+
await page.waitForSelector('.datetime-ready');
|
|
204
204
|
const calendarBody = page.locator('ion-datetime .calendar-body');
|
|
205
205
|
const calendarHeader = page.locator('ion-datetime .calendar-month-year');
|
|
206
206
|
await expect(calendarHeader).toHaveText(/May 2022/);
|
|
@@ -213,7 +213,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
|
213
213
|
await page.setContent(`
|
|
214
214
|
<ion-datetime value="2022-05-03"></ion-datetime>
|
|
215
215
|
`, config);
|
|
216
|
-
await page.
|
|
216
|
+
await page.waitForSelector('.datetime-ready');
|
|
217
217
|
const calendarBody = page.locator('ion-datetime .calendar-body');
|
|
218
218
|
const calendarHeader = page.locator('ion-datetime .calendar-month-year');
|
|
219
219
|
await expect(calendarHeader).toHaveText(/May 2022/);
|
|
@@ -237,7 +237,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
237
237
|
await page.setContent(`
|
|
238
238
|
<ion-datetime></ion-datetime>
|
|
239
239
|
`, config);
|
|
240
|
-
await page.
|
|
240
|
+
await page.waitForSelector('.datetime-ready');
|
|
241
241
|
const monthYearButton = page.locator('ion-datetime .calendar-month-year');
|
|
242
242
|
const monthYearInterface = page.locator('ion-datetime .datetime-year');
|
|
243
243
|
const datetime = page.locator('ion-datetime');
|
|
@@ -249,7 +249,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
249
249
|
await expect(datetime).not.toHaveClass(/datetime-ready/);
|
|
250
250
|
await datetime.evaluate((el) => el.style.removeProperty('display'));
|
|
251
251
|
await expect(datetime).toBeVisible();
|
|
252
|
-
await page.
|
|
252
|
+
await page.waitForSelector('.datetime-ready');
|
|
253
253
|
// month/year interface should be reset
|
|
254
254
|
await expect(monthYearInterface).toBeHidden();
|
|
255
255
|
});
|
|
@@ -287,7 +287,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
287
287
|
await page.setContent(`
|
|
288
288
|
<ion-datetime value="2022-11-10" show-clear-button="true"></ion-datetime>
|
|
289
289
|
`, config);
|
|
290
|
-
await page.
|
|
290
|
+
await page.waitForSelector('.datetime-ready');
|
|
291
291
|
const selectedDay = page.locator('ion-datetime .calendar-day-active');
|
|
292
292
|
await expect(selectedDay).toHaveText('10');
|
|
293
293
|
await page.click('ion-datetime #clear-button');
|
|
@@ -306,7 +306,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
|
306
306
|
await page.setContent(`
|
|
307
307
|
<ion-datetime presentation="date" value="2022-01-02"></ion-datetime>
|
|
308
308
|
`, config);
|
|
309
|
-
await page.
|
|
309
|
+
await page.waitForSelector('.datetime-ready');
|
|
310
310
|
const ionChange = await page.spyOnEvent('ionChange');
|
|
311
311
|
const calendarButtons = page.locator('.calendar-day:not([disabled])');
|
|
312
312
|
await calendarButtons.nth(0).click();
|
|
@@ -317,7 +317,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
|
317
317
|
await page.setContent(`
|
|
318
318
|
<ion-datetime presentation="date" value="2022-01-02"></ion-datetime>
|
|
319
319
|
`, config);
|
|
320
|
-
await page.
|
|
320
|
+
await page.waitForSelector('.datetime-ready');
|
|
321
321
|
const ionChange = await page.spyOnEvent('ionChange');
|
|
322
322
|
const datetime = page.locator('ion-datetime');
|
|
323
323
|
await datetime.evaluate((el) => (el.value = '2022-01-01'));
|
|
@@ -349,7 +349,7 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
|
349
349
|
</script>
|
|
350
350
|
`, config);
|
|
351
351
|
const datetime = page.locator('ion-datetime');
|
|
352
|
-
await page.
|
|
352
|
+
await page.waitForSelector('.datetime-ready');
|
|
353
353
|
await expect(datetime.locator('.calendar-day-today')).toHaveScreenshot(screenshot(`datetime-today-calendar-button`));
|
|
354
354
|
});
|
|
355
355
|
});
|
|
@@ -369,7 +369,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, screenshot, co
|
|
|
369
369
|
<ion-datetime value="2021-01-01"></ion-datetime>
|
|
370
370
|
`, config);
|
|
371
371
|
const datetime = page.locator('ion-datetime');
|
|
372
|
-
await page.
|
|
372
|
+
await page.waitForSelector('.datetime-ready');
|
|
373
373
|
await expect(datetime).toHaveScreenshot(screenshot(`date-highlight-start-of-month`));
|
|
374
374
|
await datetime.evaluate((el) => (el.value = '2021-01-31'));
|
|
375
375
|
await page.waitForChanges();
|
|
@@ -387,7 +387,7 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
|
387
387
|
await page.setContent(`
|
|
388
388
|
<ion-datetime value="2023-08-01"></ion-datetime>
|
|
389
389
|
`, config);
|
|
390
|
-
await page.
|
|
390
|
+
await page.waitForSelector('.datetime-ready');
|
|
391
391
|
const datetime = page.locator('ion-datetime');
|
|
392
392
|
const day = datetime.locator(`.calendar-day[data-day='1'][data-month='8']`);
|
|
393
393
|
await day.focus();
|
|
@@ -401,4 +401,14 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
|
401
401
|
await expect(datetime).toHaveScreenshot(screenshot(`datetime-focus-calendar-day`));
|
|
402
402
|
});
|
|
403
403
|
});
|
|
404
|
+
test.describe(title('datetime: calendar month toggle'), () => {
|
|
405
|
+
test('should have focus styles', async ({ page }) => {
|
|
406
|
+
await page.setContent('<ion-datetime value="2021-01-01"></ion-datetime>', config);
|
|
407
|
+
const datetime = page.locator('ion-datetime');
|
|
408
|
+
await page.waitForSelector('.datetime-ready');
|
|
409
|
+
const monthYearToggle = datetime.locator('.calendar-month-year-toggle');
|
|
410
|
+
monthYearToggle.evaluate((el) => el.classList.add('ion-focused'));
|
|
411
|
+
await expect(datetime).toHaveScreenshot(screenshot(`date-month-toggle-focused`));
|
|
412
|
+
});
|
|
413
|
+
});
|
|
404
414
|
});
|
|
@@ -9,11 +9,11 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
|
9
9
|
await page.setContent(`
|
|
10
10
|
<ion-datetime locale="en-US" presentation="date" value="2022-01-31"></ion-datetime>
|
|
11
11
|
`, config);
|
|
12
|
-
await page.
|
|
12
|
+
await page.waitForSelector('.datetime-ready');
|
|
13
13
|
});
|
|
14
14
|
test('should switch the calendar header when moving to a month with a different number of days', async ({ page, }) => {
|
|
15
15
|
const monthYearToggle = page.locator('ion-datetime .calendar-month-year');
|
|
16
|
-
const monthColumnItems = page.locator('ion-datetime .month-column
|
|
16
|
+
const monthColumnItems = page.locator('ion-datetime .month-column ion-picker-column-option');
|
|
17
17
|
await expect(monthYearToggle).toContainText('January 2022');
|
|
18
18
|
await monthYearToggle.click();
|
|
19
19
|
await page.waitForChanges();
|
|
@@ -24,7 +24,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
|
24
24
|
});
|
|
25
25
|
test('should adjust the selected day when moving to a month with a different number of days', async ({ page }) => {
|
|
26
26
|
const monthYearToggle = page.locator('ion-datetime .calendar-month-year');
|
|
27
|
-
const monthColumnItems = page.locator('ion-datetime .month-column
|
|
27
|
+
const monthColumnItems = page.locator('ion-datetime .month-column ion-picker-column-option');
|
|
28
28
|
const datetime = page.locator('ion-datetime');
|
|
29
29
|
const ionChange = await page.spyOnEvent('ionChange');
|
|
30
30
|
await monthYearToggle.click();
|
|
@@ -99,7 +99,7 @@ configs({ directions: ['ltr'], modes: ['ios'] }).forEach(({ title, config }) =>
|
|
|
99
99
|
test.describe('check example usages', () => {
|
|
100
100
|
test.beforeEach(async ({ page }) => {
|
|
101
101
|
await page.goto('/src/components/datetime/test/disable-dates', config);
|
|
102
|
-
await page.
|
|
102
|
+
await page.waitForSelector('.datetime-ready');
|
|
103
103
|
});
|
|
104
104
|
test('should disable a specific date', async ({ page }) => {
|
|
105
105
|
const disabledDay = queryAllDisabledDays(page, '#specificDate');
|