@ionic/core 7.5.8-dev.11702398696.1ab62ea9 → 7.5.8-dev.11703088210.14a72b83
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/backdrop.js +12 -0
- package/components/data.js +1 -1
- package/components/gesture-controller.js +1 -1
- package/components/ion-content.js +1 -1
- package/components/ion-datetime.js +64 -40
- package/components/ion-input.js +0 -2
- package/components/ion-picker-column-internal.d.ts +11 -0
- package/components/ion-picker-column-internal.js +9 -0
- package/components/ion-picker-column.js +2 -2
- package/components/{ion-picker-legacy.d.ts → ion-picker-internal.d.ts} +4 -4
- package/components/ion-picker-internal.js +9 -0
- package/components/ion-picker.js +309 -1
- package/components/ion-refresher-content.js +10 -3
- package/components/ion-refresher.js +4 -183
- package/components/ion-searchbar.js +0 -2
- package/components/ion-textarea.js +0 -2
- package/components/overlays.js +4 -11
- package/components/picker-column-internal.js +390 -0
- package/components/picker-column.js +322 -351
- package/components/{picker.js → picker-internal.js} +22 -29
- package/components/refresher.utils.js +196 -0
- package/dist/cjs/{app-globals-0af482c7.js → app-globals-28656db1.js} +1 -1
- package/dist/cjs/{button-active-9d7e0640.js → button-active-75b38d77.js} +2 -2
- package/dist/cjs/{data-e7526b58.js → data-36b9094e.js} +1 -1
- package/dist/cjs/{gesture-controller-9436f482.js → gesture-controller-c40c045a.js} +0 -1
- package/dist/cjs/{index-5cbb20f9.js → index-097270a3.js} +1 -1
- package/dist/cjs/{index-bbb4336c.js → index-b0102f48.js} +1 -39
- package/dist/cjs/{index-d4c2e02c.js → index-cb3e0ab7.js} +3 -3
- package/dist/cjs/{index-ee07ed59.js → index-d1b59ffa.js} +1 -1
- package/dist/cjs/index.cjs.js +9 -9
- package/dist/cjs/ion-accordion_2.cjs.entry.js +2 -2
- 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 -6
- package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
- package/dist/cjs/ion-backdrop.cjs.entry.js +14 -2
- 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 +2 -2
- package/dist/cjs/ion-checkbox.cjs.entry.js +2 -2
- package/dist/cjs/ion-chip.cjs.entry.js +2 -2
- package/dist/cjs/ion-col_3.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 +58 -38
- package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-img.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 -4
- package/dist/cjs/ion-item-option_3.cjs.entry.js +3 -3
- package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
- package/dist/cjs/ion-loading.cjs.entry.js +3 -4
- package/dist/cjs/ion-menu_3.cjs.entry.js +6 -6
- package/dist/cjs/ion-modal.cjs.entry.js +6 -6
- package/dist/cjs/ion-nav_2.cjs.entry.js +4 -4
- package/dist/cjs/{ion-picker-column.cjs.entry.js → ion-picker-column-internal.cjs.entry.js} +89 -106
- package/dist/cjs/{ion-picker.cjs.entry.js → ion-picker-internal.cjs.entry.js} +20 -27
- package/dist/cjs/ion-popover.cjs.entry.js +4 -5
- 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 +32 -17
- package/dist/cjs/ion-reorder_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
- package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
- package/dist/cjs/ion-searchbar.cjs.entry.js +2 -4
- package/dist/cjs/ion-segment_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-select_3.cjs.entry.js +3 -4
- package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
- package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-tab_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-text.cjs.entry.js +2 -2
- package/dist/cjs/ion-textarea.cjs.entry.js +2 -4
- package/dist/cjs/ion-toast.cjs.entry.js +3 -4
- package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
- package/dist/cjs/{ionic-global-f4a2093b.js → ionic-global-62510d64.js} +1 -1
- package/dist/cjs/ionic.cjs.js +5 -5
- package/dist/cjs/{ios.transition-a4ffb5a2.js → ios.transition-d9c0e4fb.js} +2 -2
- package/dist/cjs/loader.cjs.js +4 -4
- package/dist/cjs/{md.transition-292abe1c.js → md.transition-4fac8a87.js} +2 -2
- package/dist/cjs/{overlays-e8e05b0e.js → overlays-b1471172.js} +5 -12
- package/dist/cjs/{status-tap-415acac6.js → status-tap-0aa8e1f2.js} +1 -1
- package/dist/cjs/{swipe-back-b8f2330b.js → swipe-back-2a858bbd.js} +2 -2
- package/dist/collection/collection-manifest.json +7 -8
- package/dist/collection/components/backdrop/backdrop.js +12 -0
- package/dist/collection/components/content/content.css +4 -0
- package/dist/collection/components/datetime/datetime.ios.css +37 -91
- package/dist/collection/components/datetime/datetime.js +36 -24
- package/dist/collection/components/datetime/datetime.md.css +37 -96
- package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +1 -1
- package/dist/collection/components/datetime/test/a11y/datetime.spec.js +9 -6
- package/dist/collection/components/datetime/test/basic/datetime.e2e.js +0 -10
- package/dist/collection/components/datetime/test/datetime.e2e.js +2 -2
- package/dist/collection/components/datetime/test/disabled/datetime.spec.js +4 -4
- package/dist/collection/components/datetime/test/locale/datetime.e2e.js +2 -2
- package/dist/collection/components/datetime/test/minmax/datetime.e2e.js +6 -6
- package/dist/collection/components/datetime/test/month-year-picker/datetime.e2e.js +1 -1
- package/dist/collection/components/datetime/test/prefer-wheel/datetime.e2e.js +41 -43
- package/dist/collection/components/datetime/test/presentation/datetime.e2e.js +1 -1
- package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +4 -4
- package/dist/collection/components/datetime/test/values/datetime.e2e.js +12 -15
- package/dist/collection/components/datetime/utils/data.js +1 -1
- package/dist/collection/components/input/input.js +2 -4
- package/dist/collection/components/picker/picker.ios.css +211 -112
- package/dist/collection/components/picker/picker.js +743 -468
- package/dist/collection/components/picker/picker.md.css +198 -108
- package/dist/collection/components/picker/test/basic/picker.e2e.js +13 -99
- package/dist/collection/components/{picker-legacy → picker}/test/is-open/picker.e2e.js +4 -4
- package/dist/collection/components/{picker-legacy → picker}/test/picker-id.spec.js +5 -5
- package/dist/collection/components/{picker-legacy → picker}/test/trigger/picker.e2e.js +1 -1
- package/dist/collection/components/picker-column/picker-column.js +335 -497
- package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column-aria.spec.js +3 -3
- package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column-dynamic.spec.js +2 -2
- package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column.spec.js +2 -2
- package/dist/collection/components/{picker-legacy-column → picker-column}/test/standalone/picker-column.e2e.js +3 -3
- package/dist/collection/components/{picker-column-option/picker-column-option.md.css → picker-column-internal/picker-column-internal.ios.css} +53 -6
- package/dist/collection/components/picker-column-internal/picker-column-internal.js +565 -0
- package/dist/collection/components/{picker-column/picker-column.css → picker-column-internal/picker-column-internal.md.css} +83 -96
- package/dist/collection/components/{picker-column/test/basic/picker-column.e2e.js → picker-column-internal/test/basic/picker-column-internal.e2e.js} +8 -8
- package/dist/collection/components/picker-column-internal/test/disabled/picker-column-internal.e2e.js +162 -0
- package/dist/collection/components/{picker-legacy/picker.md.css → picker-internal/picker-internal.ios.css} +100 -192
- package/dist/collection/components/picker-internal/picker-internal.js +544 -0
- package/dist/collection/components/{picker-legacy/picker.ios.css → picker-internal/picker-internal.md.css} +98 -207
- package/dist/collection/components/{picker/test/a11y/picker.e2e.js → picker-internal/test/a11y/picker-internal.e2e.js} +2 -2
- package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +118 -0
- package/dist/collection/components/{picker/test/keyboard-entry/picker.e2e.js → picker-internal/test/keyboard-entry/picker-internal.e2e.js} +32 -63
- package/dist/collection/components/refresher/refresher.utils.js +19 -11
- package/dist/collection/components/refresher-content/refresher-content.js +9 -3
- package/dist/collection/components/searchbar/searchbar.js +1 -3
- package/dist/collection/components/textarea/textarea.js +2 -4
- package/dist/collection/utils/gesture/gesture-controller.js +1 -1
- package/dist/collection/utils/overlays.js +4 -11
- package/dist/docs.json +47 -505
- package/dist/esm/{app-globals-722340c4.js → app-globals-c23144fc.js} +1 -1
- package/dist/esm/{button-active-ed9d848c.js → button-active-7013b5a1.js} +2 -2
- package/dist/esm/{data-4b9508c9.js → data-f5c75b4e.js} +1 -1
- package/dist/esm/{gesture-controller-314a54f6.js → gesture-controller-1bf57181.js} +1 -1
- package/dist/esm/{index-39782642.js → index-2cf77112.js} +2 -2
- package/dist/esm/{index-08d686eb.js → index-39329c6f.js} +1 -39
- package/dist/esm/{index-80492ed3.js → index-7a818ed3.js} +1 -1
- package/dist/esm/{index-d8817fb0.js → index-bebaae5d.js} +3 -3
- package/dist/esm/index.js +9 -9
- package/dist/esm/ion-accordion_2.entry.js +2 -2
- 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 -6
- package/dist/esm/ion-avatar_3.entry.js +2 -2
- package/dist/esm/ion-back-button.entry.js +2 -2
- package/dist/esm/ion-backdrop.entry.js +14 -2
- 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 +2 -2
- package/dist/esm/ion-checkbox.entry.js +2 -2
- package/dist/esm/ion-chip.entry.js +2 -2
- package/dist/esm/ion-col_3.entry.js +2 -2
- package/dist/esm/ion-datetime-button.entry.js +3 -3
- package/dist/esm/ion-datetime_3.entry.js +57 -37
- package/dist/esm/ion-fab_3.entry.js +2 -2
- package/dist/esm/ion-img.entry.js +2 -2
- package/dist/esm/ion-infinite-scroll_2.entry.js +2 -2
- package/dist/esm/ion-input.entry.js +2 -4
- package/dist/esm/ion-item-option_3.entry.js +3 -3
- package/dist/esm/ion-item_8.entry.js +2 -2
- package/dist/esm/ion-loading.entry.js +3 -4
- package/dist/esm/ion-menu_3.entry.js +6 -6
- package/dist/esm/ion-modal.entry.js +6 -6
- package/dist/esm/ion-nav_2.entry.js +4 -4
- package/dist/esm/{ion-picker-column.entry.js → ion-picker-column-internal.entry.js} +89 -106
- package/dist/esm/{ion-picker.entry.js → ion-picker-internal.entry.js} +20 -27
- package/dist/esm/ion-popover.entry.js +4 -5
- 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 +32 -17
- package/dist/esm/ion-reorder_2.entry.js +3 -3
- package/dist/esm/ion-ripple-effect.entry.js +2 -2
- package/dist/esm/ion-route_4.entry.js +2 -2
- package/dist/esm/ion-searchbar.entry.js +2 -4
- package/dist/esm/ion-segment_2.entry.js +3 -3
- package/dist/esm/ion-select_3.entry.js +3 -4
- package/dist/esm/ion-spinner.entry.js +2 -2
- package/dist/esm/ion-split-pane.entry.js +2 -2
- package/dist/esm/ion-tab-bar_2.entry.js +2 -2
- package/dist/esm/ion-tab_2.entry.js +1 -1
- package/dist/esm/ion-text.entry.js +2 -2
- package/dist/esm/ion-textarea.entry.js +2 -4
- package/dist/esm/ion-toast.entry.js +3 -4
- package/dist/esm/ion-toggle.entry.js +3 -3
- package/dist/esm/{ionic-global-c0cda98e.js → ionic-global-6c78e871.js} +1 -1
- package/dist/esm/ionic.js +6 -6
- package/dist/esm/{ios.transition-fd16bec1.js → ios.transition-daa373e9.js} +2 -2
- package/dist/esm/loader.js +5 -5
- package/dist/esm/{md.transition-94ac93e1.js → md.transition-91c3d3cc.js} +2 -2
- package/dist/esm/{overlays-fbc5cab5.js → overlays-64e67e2c.js} +5 -12
- package/dist/esm/{status-tap-2b93b1b5.js → status-tap-9dd45200.js} +1 -1
- package/dist/esm/{swipe-back-a8ca7f93.js → swipe-back-a6f386fc.js} +2 -2
- package/dist/esm-es5/app-globals-c23144fc.js +4 -0
- package/dist/esm-es5/{button-active-ed9d848c.js → button-active-7013b5a1.js} +1 -1
- package/dist/esm-es5/{gesture-controller-314a54f6.js → gesture-controller-1bf57181.js} +1 -1
- package/dist/esm-es5/{index-39782642.js → index-2cf77112.js} +1 -1
- package/dist/esm-es5/{index-08d686eb.js → index-39329c6f.js} +1 -1
- package/dist/esm-es5/{index-80492ed3.js → index-7a818ed3.js} +1 -1
- package/dist/esm-es5/{index-d8817fb0.js → index-bebaae5d.js} +1 -1
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/ion-accordion_2.entry.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-chip.entry.js +1 -1
- package/dist/esm-es5/ion-col_3.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-img.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-internal.entry.js +4 -0
- package/dist/esm-es5/ion-picker-internal.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-ripple-effect.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-spinner.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-tab_2.entry.js +1 -1
- package/dist/esm-es5/ion-text.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-global-c0cda98e.js → ionic-global-6c78e871.js} +1 -1
- package/dist/esm-es5/ionic.js +1 -1
- package/dist/esm-es5/{ios.transition-fd16bec1.js → ios.transition-daa373e9.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/{md.transition-94ac93e1.js → md.transition-91c3d3cc.js} +1 -1
- package/dist/esm-es5/overlays-64e67e2c.js +4 -0
- package/dist/esm-es5/{status-tap-2b93b1b5.js → status-tap-9dd45200.js} +1 -1
- package/dist/esm-es5/swipe-back-a6f386fc.js +4 -0
- package/dist/html.html-data.json +3 -154
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/ionic.js +1 -1
- package/dist/ionic/{p-30029cc2.system.js → p-0263eb49.system.js} +1 -1
- package/dist/ionic/p-06600f70.js +4 -0
- package/dist/ionic/p-0827d00e.system.entry.js +4 -0
- package/dist/ionic/{p-9738fd82.js → p-12cdcb59.js} +1 -1
- package/dist/ionic/{p-1161a793.entry.js → p-161d0916.entry.js} +1 -1
- package/dist/ionic/{p-1d624e03.system.js → p-1631b52f.system.js} +1 -1
- package/dist/ionic/{p-34c39c48.entry.js → p-18032a93.entry.js} +1 -1
- package/dist/ionic/p-19545a49.system.entry.js +4 -0
- package/dist/ionic/{p-cfe57b1b.entry.js → p-1c6c6098.entry.js} +1 -1
- package/dist/ionic/{p-6e70dd1a.system.entry.js → p-1cbc21e2.system.entry.js} +1 -1
- package/dist/ionic/p-1e7daa1f.entry.js +4 -0
- package/dist/ionic/{p-2092f39f.entry.js → p-1ff22253.entry.js} +1 -1
- package/dist/ionic/{p-5ecae037.js → p-21f015cf.js} +1 -1
- package/dist/ionic/{p-3fd26bd6.system.entry.js → p-23a27e78.system.entry.js} +1 -1
- package/dist/ionic/p-2507b0c0.entry.js +4 -0
- package/dist/ionic/{p-22e5af95.entry.js → p-2657f213.entry.js} +1 -1
- package/dist/ionic/{p-6fd64e7c.system.entry.js → p-27a5f2c7.system.entry.js} +1 -1
- package/dist/ionic/{p-4a081ea9.entry.js → p-27e6473f.entry.js} +1 -1
- package/dist/ionic/{p-6ad34705.system.entry.js → p-2a7e6572.system.entry.js} +1 -1
- package/dist/ionic/{p-77965464.system.entry.js → p-2ac9d078.system.entry.js} +1 -1
- package/dist/ionic/{p-4fb51e61.system.entry.js → p-2cd9cb80.system.entry.js} +1 -1
- package/dist/ionic/{p-17da5ed1.entry.js → p-312221db.entry.js} +1 -1
- package/dist/ionic/{p-a225bf0f.system.entry.js → p-315ad733.system.entry.js} +1 -1
- package/dist/ionic/{p-3e1e14d9.system.js → p-31b2326e.system.js} +1 -1
- package/dist/ionic/p-33f3cd49.entry.js +4 -0
- package/dist/ionic/{p-5b365ca7.system.js → p-34d6f520.system.js} +1 -1
- package/dist/ionic/{p-b133e9b4.entry.js → p-3535a36c.entry.js} +1 -1
- package/dist/ionic/p-35ce400e.system.js +4 -0
- package/dist/ionic/{p-93000a81.system.entry.js → p-3acad8ff.system.entry.js} +1 -1
- package/dist/ionic/{p-b5f9f14c.entry.js → p-3cb5466e.entry.js} +1 -1
- package/dist/ionic/{p-1fc72959.entry.js → p-3f5ae764.entry.js} +1 -1
- package/dist/ionic/{p-42ba3902.entry.js → p-405f1a72.entry.js} +1 -1
- package/dist/ionic/{p-96dbbac1.system.entry.js → p-41f7af3f.system.entry.js} +1 -1
- package/dist/ionic/{p-3fe96156.system.js → p-426bdba9.system.js} +1 -1
- package/dist/ionic/p-45db7949.system.entry.js +4 -0
- package/dist/ionic/{p-21c3515a.entry.js → p-46dbd723.entry.js} +1 -1
- package/dist/ionic/{p-ef126ae8.system.entry.js → p-4f71a9cf.system.entry.js} +1 -1
- package/dist/ionic/{p-a4afcc88.entry.js → p-53a3283e.entry.js} +1 -1
- package/dist/ionic/{p-4a36430f.system.entry.js → p-57c0d5bf.system.entry.js} +1 -1
- package/dist/ionic/p-58dd7c15.entry.js +4 -0
- package/dist/ionic/{p-b4a51c42.system.js → p-58ff9e5b.system.js} +1 -1
- package/dist/ionic/{p-cde52378.system.entry.js → p-5a7d5905.system.entry.js} +1 -1
- package/dist/ionic/p-5c7f13cd.system.entry.js +4 -0
- package/dist/ionic/{p-e8e86f69.system.entry.js → p-5f127075.system.entry.js} +1 -1
- package/dist/ionic/{p-4a31c99f.entry.js → p-5f46d93e.entry.js} +1 -1
- package/dist/ionic/{p-18ba8221.entry.js → p-5fb707e0.entry.js} +1 -1
- package/dist/ionic/{p-6fbecbda.entry.js → p-64af4468.entry.js} +1 -1
- package/dist/ionic/{p-232d1f22.entry.js → p-6744eca5.entry.js} +1 -1
- package/dist/ionic/{p-8f5d30f5.entry.js → p-67598744.entry.js} +1 -1
- package/dist/ionic/p-6a6477b2.js +4 -0
- package/dist/ionic/{p-7b725280.entry.js → p-6cf08720.entry.js} +1 -1
- package/dist/ionic/{p-6d72fb44.entry.js → p-70ecb18b.entry.js} +1 -1
- package/dist/ionic/{p-6b7c55cd.entry.js → p-71d986ae.entry.js} +1 -1
- package/dist/ionic/p-742e11cf.system.entry.js +4 -0
- package/dist/ionic/{p-f7a36cd0.system.js → p-7484b1d6.system.js} +1 -1
- package/dist/ionic/p-78ebf1b6.system.entry.js +4 -0
- package/dist/ionic/{p-b7010c69.system.entry.js → p-7ae5ca1f.system.entry.js} +1 -1
- package/dist/ionic/{p-c847fb35.system.entry.js → p-8261be6c.system.entry.js} +1 -1
- package/dist/ionic/p-83fada9e.system.entry.js +4 -0
- package/dist/ionic/{p-353b349d.entry.js → p-86c2bbc8.entry.js} +1 -1
- package/dist/ionic/{p-1208f939.entry.js → p-89026d53.entry.js} +1 -1
- package/dist/ionic/{p-9c229210.system.entry.js → p-89cfbc88.system.entry.js} +2 -2
- package/dist/ionic/p-8a10752d.entry.js +4 -0
- package/dist/ionic/{p-e7ea9815.system.entry.js → p-8a75f7bf.system.entry.js} +1 -1
- package/dist/ionic/{p-32303650.system.entry.js → p-8c202d6e.system.entry.js} +1 -1
- package/dist/ionic/{p-a9e3b5be.system.entry.js → p-90db28f8.system.entry.js} +1 -1
- package/dist/ionic/{p-d662d908.js → p-91f9e81b.js} +1 -1
- package/dist/ionic/{p-f910cc73.system.entry.js → p-93dac17a.system.entry.js} +1 -1
- package/dist/ionic/{p-b3b3efba.system.entry.js → p-98ac0e27.system.entry.js} +2 -2
- package/dist/ionic/{p-a98dc0c1.entry.js → p-99fe0543.entry.js} +1 -1
- package/dist/ionic/{p-c9a21dfd.system.entry.js → p-9f376964.system.entry.js} +1 -1
- package/dist/ionic/{p-0e53f8ea.system.entry.js → p-a0945c3a.system.entry.js} +1 -1
- package/dist/ionic/{p-9709ebd8.system.entry.js → p-a0db3de9.system.entry.js} +1 -1
- package/dist/ionic/{p-5d42b6b4.entry.js → p-a1b4dba7.entry.js} +1 -1
- package/dist/ionic/{p-3f6270b3.entry.js → p-a3a145d3.entry.js} +1 -1
- package/dist/ionic/{p-5a68960f.entry.js → p-a5c81b99.entry.js} +1 -1
- package/dist/ionic/{p-98f3d827.entry.js → p-a70b5d24.entry.js} +1 -1
- package/dist/ionic/{p-ab9456e9.system.entry.js → p-a843a90e.system.entry.js} +1 -1
- package/dist/ionic/{p-b752714f.system.entry.js → p-a99f14a7.system.entry.js} +1 -1
- package/dist/ionic/{p-564af202.system.entry.js → p-aac289d2.system.entry.js} +1 -1
- package/dist/ionic/{p-57477107.system.js → p-abab375b.system.js} +1 -1
- package/dist/ionic/{p-31158892.js → p-ac4a7fc0.js} +1 -1
- package/dist/ionic/{p-c3c3333a.js → p-acdd8148.js} +1 -1
- package/dist/ionic/{p-54dfc9b5.system.js → p-ad78c421.system.js} +1 -1
- package/dist/ionic/{p-caf21b46.system.entry.js → p-ad953217.system.entry.js} +1 -1
- package/dist/ionic/p-af959b5d.entry.js +4 -0
- package/dist/ionic/{p-b6f5e4f2.system.entry.js → p-b0fcf130.system.entry.js} +1 -1
- package/dist/ionic/p-b11ceee2.entry.js +4 -0
- package/dist/ionic/p-b5e33ebc.system.entry.js +4 -0
- package/dist/ionic/{p-2938823a.system.entry.js → p-b81a8111.system.entry.js} +1 -1
- package/dist/ionic/p-b8f2134e.js +4 -0
- package/dist/ionic/{p-9b97df10.js → p-bb3615f7.js} +1 -1
- package/dist/ionic/p-bbe3feee.entry.js +4 -0
- package/dist/ionic/{p-fbf3a689.system.entry.js → p-bc97b5cd.system.entry.js} +1 -1
- package/dist/ionic/{p-d37b441e.entry.js → p-c04accad.entry.js} +1 -1
- package/dist/ionic/{p-e3584231.system.js → p-c5ae50be.system.js} +1 -1
- package/dist/ionic/{p-20d469d0.system.js → p-c7c8429a.system.js} +1 -1
- package/dist/ionic/{p-c18de88a.system.entry.js → p-ca32685b.system.entry.js} +1 -1
- package/dist/ionic/p-cde72008.js +4 -0
- package/dist/ionic/p-d0251fc4.entry.js +4 -0
- package/dist/ionic/p-d1530ea9.entry.js +4 -0
- package/dist/ionic/{p-51a087d6.entry.js → p-d3e123c0.entry.js} +1 -1
- package/dist/ionic/p-ddccf1f4.js +4 -0
- package/dist/ionic/{p-2ab4e925.system.entry.js → p-df361680.system.entry.js} +1 -1
- package/dist/ionic/p-e145b9f9.entry.js +4 -0
- package/dist/ionic/{p-4155f352.system.js → p-e26030f8.system.js} +1 -1
- package/dist/ionic/{p-c91ccbfa.system.entry.js → p-e3c44332.system.entry.js} +1 -1
- package/dist/ionic/{p-f8a5bb89.entry.js → p-e4045e04.entry.js} +1 -1
- package/dist/ionic/{p-535d2a67.entry.js → p-e8e530fc.entry.js} +1 -1
- package/dist/ionic/p-eab6401e.js +4 -0
- package/dist/ionic/p-edc5c693.system.entry.js +4 -0
- package/dist/ionic/{p-4911a5d6.entry.js → p-ee4a54e3.entry.js} +1 -1
- package/dist/ionic/{p-5bebc7b3.system.entry.js → p-eef8d7e8.system.entry.js} +1 -1
- package/dist/ionic/p-f0384573.system.entry.js +4 -0
- package/dist/ionic/p-f10de9d5.system.js +4 -0
- package/dist/ionic/{p-0add7211.entry.js → p-f34d6a49.entry.js} +1 -1
- package/dist/ionic/p-f444fea5.entry.js +4 -0
- package/dist/ionic/{p-8ededb41.js → p-f5d2dc9b.js} +1 -1
- package/dist/ionic/{p-d3b030b8.system.js → p-f8c5a0dd.system.js} +1 -1
- package/dist/ionic/p-fcf49977.system.entry.js +4 -0
- package/dist/types/components/backdrop/backdrop.d.ts +3 -0
- package/dist/types/components/datetime/datetime.d.ts +1 -0
- package/dist/types/components/datetime/utils/data.d.ts +7 -11
- package/dist/types/components/input/input.d.ts +1 -5
- package/dist/types/components/menu/menu.d.ts +1 -1
- package/dist/types/components/picker/picker.d.ts +131 -74
- package/dist/types/components/picker-column/picker-column.d.ts +39 -99
- package/dist/types/components/picker-column-internal/picker-column-internal-interfaces.d.ts +5 -0
- package/dist/types/components/picker-column-internal/picker-column-internal.d.ts +102 -0
- package/dist/types/components/picker-internal/picker-internal-interfaces.d.ts +8 -0
- package/dist/types/components/picker-internal/picker-internal.d.ts +102 -0
- package/dist/types/components/refresher/refresher.utils.d.ts +16 -0
- package/dist/types/components/searchbar/searchbar.d.ts +0 -2
- package/dist/types/components/textarea/textarea.d.ts +1 -5
- package/dist/types/components.d.ts +129 -162
- 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 +0 -1
- package/dist/types/utils/overlays.d.ts +2 -5
- package/hydrate/index.d.ts +1 -1
- package/hydrate/index.js +948 -1040
- package/package.json +2 -2
- package/components/ion-picker-column-option.d.ts +0 -11
- package/components/ion-picker-column-option.js +0 -9
- package/components/ion-picker-legacy-column.d.ts +0 -11
- package/components/ion-picker-legacy-column.js +0 -9
- package/components/ion-picker-legacy.js +0 -309
- package/components/picker-column-option.js +0 -122
- package/components/picker-column2.js +0 -379
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +0 -104
- package/dist/collection/components/picker/test/custom/picker.e2e.js +0 -85
- package/dist/collection/components/picker-column/test/disabled/picker-column.e2e.js +0 -91
- package/dist/collection/components/picker-column/test/slots/picker-column.e2e.js +0 -39
- package/dist/collection/components/picker-column-option/picker-column-option.ios.css +0 -87
- package/dist/collection/components/picker-column-option/picker-column-option.js +0 -173
- package/dist/collection/components/picker-column-option/test/a11y/picker-column-option.e2e.js +0 -18
- package/dist/collection/components/picker-column-option/test/basic/picker-column-option.e2e.js +0 -37
- package/dist/collection/components/picker-column-option/test/picker-column-option.spec.js +0 -29
- package/dist/collection/components/picker-legacy/picker.js +0 -817
- package/dist/collection/components/picker-legacy/test/basic/picker.e2e.js +0 -25
- package/dist/collection/components/picker-legacy-column/picker-column.js +0 -419
- package/dist/collection/utils/test/overlays/overlays-scroll-blocking.spec.js +0 -65
- package/dist/esm/ion-picker-column-option.entry.js +0 -100
- package/dist/esm-es5/app-globals-722340c4.js +0 -4
- package/dist/esm-es5/ion-picker-column-option.entry.js +0 -4
- package/dist/esm-es5/ion-picker-column.entry.js +0 -4
- package/dist/esm-es5/ion-picker.entry.js +0 -4
- package/dist/esm-es5/overlays-fbc5cab5.js +0 -4
- package/dist/esm-es5/swipe-back-a8ca7f93.js +0 -4
- package/dist/ionic/p-1786bc72.js +0 -4
- package/dist/ionic/p-26798a7b.system.entry.js +0 -4
- package/dist/ionic/p-27bcbbc7.system.entry.js +0 -4
- package/dist/ionic/p-350f7292.system.entry.js +0 -4
- package/dist/ionic/p-36d194c5.entry.js +0 -4
- package/dist/ionic/p-3993ae66.entry.js +0 -4
- package/dist/ionic/p-3ba01a9c.system.entry.js +0 -4
- package/dist/ionic/p-4890093d.js +0 -4
- package/dist/ionic/p-51abefb7.system.js +0 -4
- package/dist/ionic/p-563c41f0.system.entry.js +0 -4
- package/dist/ionic/p-588fdf40.entry.js +0 -4
- package/dist/ionic/p-5a1aac13.system.entry.js +0 -4
- package/dist/ionic/p-73190c5f.entry.js +0 -4
- package/dist/ionic/p-73aa7604.entry.js +0 -4
- package/dist/ionic/p-76d3765d.js +0 -4
- package/dist/ionic/p-8017aad2.system.entry.js +0 -4
- package/dist/ionic/p-846ee227.entry.js +0 -4
- package/dist/ionic/p-8c97cdc0.entry.js +0 -4
- package/dist/ionic/p-8e42850f.entry.js +0 -4
- package/dist/ionic/p-8fa6583d.system.js +0 -4
- package/dist/ionic/p-91af3c52.system.entry.js +0 -4
- package/dist/ionic/p-a60a1ce5.js +0 -4
- package/dist/ionic/p-a8baa23e.entry.js +0 -4
- package/dist/ionic/p-a9a80f5b.entry.js +0 -4
- package/dist/ionic/p-afcf4620.entry.js +0 -4
- package/dist/ionic/p-b4d31b30.system.entry.js +0 -4
- package/dist/ionic/p-c41bff4e.system.entry.js +0 -4
- package/dist/ionic/p-ca8938f4.js +0 -4
- package/dist/ionic/p-da15f571.system.entry.js +0 -4
- package/dist/ionic/p-e4d90573.js +0 -4
- package/dist/ionic/p-ea69616e.entry.js +0 -4
- package/dist/ionic/p-fe4dde76.entry.js +0 -4
- package/dist/ionic/p-ffd5dba4.system.entry.js +0 -4
- package/dist/types/components/picker/picker-interfaces.d.ts +0 -8
- package/dist/types/components/picker-column/picker-column-interfaces.d.ts +0 -4
- package/dist/types/components/picker-column-option/picker-column-option.d.ts +0 -66
- package/dist/types/components/picker-legacy/picker.d.ts +0 -158
- package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
- /package/dist/collection/components/{picker-legacy → picker}/animations/ios.enter.js +0 -0
- /package/dist/collection/components/{picker-legacy → picker}/animations/ios.leave.js +0 -0
- /package/dist/collection/components/picker/{picker-interfaces.js → picker-interface.js} +0 -0
- /package/dist/collection/components/{picker-legacy-column → picker-column}/picker-column.ios.css +0 -0
- /package/dist/collection/components/{picker-legacy-column → picker-column}/picker-column.md.css +0 -0
- /package/dist/collection/components/{picker-legacy-column → picker-column}/test/test.utils.js +0 -0
- /package/dist/collection/components/{picker-column/picker-column-interfaces.js → picker-column-internal/picker-column-internal-interfaces.js} +0 -0
- /package/dist/collection/components/{picker-legacy/picker-interface.js → picker-internal/picker-internal-interfaces.js} +0 -0
- /package/dist/esm-es5/{data-4b9508c9.js → data-f5c75b4e.js} +0 -0
- /package/dist/ionic/{p-368f5215.js → p-2aea8b1e.js} +0 -0
- /package/dist/ionic/{p-f58981c2.system.js → p-82e3d633.system.js} +0 -0
- /package/dist/types/components/{picker-legacy → picker}/animations/ios.enter.d.ts +0 -0
- /package/dist/types/components/{picker-legacy → picker}/animations/ios.leave.d.ts +0 -0
- /package/dist/types/components/{picker-legacy → picker}/picker-interface.d.ts +0 -0
- /package/dist/types/components/{picker-legacy-column → picker-column}/test/test.utils.d.ts +0 -0
|
@@ -61,8 +61,6 @@
|
|
|
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.
|
|
66
64
|
* @prop --wheel-fade-background-rgb: The color of the gradient covering non-selected items
|
|
67
65
|
* when using a wheel style layout, or in the month/year picker for grid style layouts. Must
|
|
68
66
|
* be in RGB format, e.g. `255, 255, 255`.
|
|
@@ -73,6 +71,19 @@
|
|
|
73
71
|
overflow: hidden;
|
|
74
72
|
}
|
|
75
73
|
|
|
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
|
+
|
|
76
87
|
:host(.datetime-size-fixed) {
|
|
77
88
|
width: auto;
|
|
78
89
|
height: auto;
|
|
@@ -83,7 +94,7 @@
|
|
|
83
94
|
}
|
|
84
95
|
|
|
85
96
|
/**
|
|
86
|
-
* This ensures that the picker is
|
|
97
|
+
* This ensures that the picker is apppropriately
|
|
87
98
|
* sized and never truncates the text.
|
|
88
99
|
*/
|
|
89
100
|
:host(.datetime-size-fixed.datetime-prefer-wheel) {
|
|
@@ -306,8 +317,23 @@
|
|
|
306
317
|
justify-content: space-between;
|
|
307
318
|
}
|
|
308
319
|
|
|
320
|
+
:host .calendar-action-buttons ion-item,
|
|
309
321
|
:host .calendar-action-buttons ion-button {
|
|
310
|
-
--background:
|
|
322
|
+
--background: translucent;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
:host .calendar-action-buttons ion-item ion-label {
|
|
326
|
+
display: flex;
|
|
327
|
+
align-items: center;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
:host .calendar-action-buttons ion-item ion-icon {
|
|
331
|
+
-webkit-padding-start: 4px;
|
|
332
|
+
padding-inline-start: 4px;
|
|
333
|
+
-webkit-padding-end: 0;
|
|
334
|
+
padding-inline-end: 0;
|
|
335
|
+
padding-top: 0;
|
|
336
|
+
padding-bottom: 0;
|
|
311
337
|
}
|
|
312
338
|
|
|
313
339
|
:host .calendar-days-of-week {
|
|
@@ -489,72 +515,8 @@
|
|
|
489
515
|
position: static;
|
|
490
516
|
}
|
|
491
517
|
|
|
492
|
-
:host(.show-month-and-year) .calendar-action-buttons
|
|
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);
|
|
518
|
+
:host(.show-month-and-year) .calendar-action-buttons ion-item {
|
|
519
|
+
--color: var(--ion-color-base);
|
|
558
520
|
}
|
|
559
521
|
|
|
560
522
|
/**
|
|
@@ -643,31 +605,15 @@ ion-picker {
|
|
|
643
605
|
margin-top: 10px;
|
|
644
606
|
}
|
|
645
607
|
|
|
646
|
-
.calendar-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
-
|
|
650
|
-
padding-inline-end: 16px;
|
|
651
|
-
padding-top: 0px;
|
|
652
|
-
padding-bottom: 0px;
|
|
653
|
-
min-height: 44px;
|
|
608
|
+
:host .calendar-action-buttons ion-item {
|
|
609
|
+
--padding-start: 16px;
|
|
610
|
+
--background-hover: transparent;
|
|
611
|
+
--background-activated: transparent;
|
|
654
612
|
font-size: min(1rem, 25.6px);
|
|
655
613
|
font-weight: 600;
|
|
656
614
|
}
|
|
657
|
-
.calendar-month-year-toggle.ion-focused::after {
|
|
658
|
-
opacity: 0.15;
|
|
659
|
-
}
|
|
660
|
-
|
|
661
|
-
.calendar-month-year-toggle #toggle-wrapper {
|
|
662
|
-
-webkit-margin-start: 0;
|
|
663
|
-
margin-inline-start: 0;
|
|
664
|
-
-webkit-margin-end: 8px;
|
|
665
|
-
margin-inline-end: 8px;
|
|
666
|
-
margin-top: 10px;
|
|
667
|
-
margin-bottom: 10px;
|
|
668
|
-
}
|
|
669
615
|
|
|
670
|
-
:host .calendar-action-buttons
|
|
616
|
+
:host .calendar-action-buttons ion-item ion-icon,
|
|
671
617
|
:host .calendar-action-buttons ion-buttons ion-button {
|
|
672
618
|
color: var(--ion-color-base);
|
|
673
619
|
}
|
|
@@ -977,7 +977,7 @@ export class Datetime {
|
|
|
977
977
|
const renderArray = forcePresentation === 'time-date'
|
|
978
978
|
? [this.renderTimePickerColumns(forcePresentation), this.renderDatePickerColumns(forcePresentation)]
|
|
979
979
|
: [this.renderDatePickerColumns(forcePresentation), this.renderTimePickerColumns(forcePresentation)];
|
|
980
|
-
return h("ion-picker", null, renderArray);
|
|
980
|
+
return h("ion-picker-internal", null, renderArray);
|
|
981
981
|
}
|
|
982
982
|
renderDatePickerColumns(forcePresentation) {
|
|
983
983
|
return forcePresentation === 'date-time' || forcePresentation === 'time-date'
|
|
@@ -1036,7 +1036,7 @@ export class Datetime {
|
|
|
1036
1036
|
const todayString = workingParts.day !== null
|
|
1037
1037
|
? `${workingParts.year}-${workingParts.month}-${workingParts.day}`
|
|
1038
1038
|
: `${defaultParts.year}-${defaultParts.month}-${defaultParts.day}`;
|
|
1039
|
-
return (h("ion-picker-column", { class: "date-column", color: this.color, disabled: disabled, value: todayString, onIonChange: (ev) => {
|
|
1039
|
+
return (h("ion-picker-column-internal", { class: "date-column", color: this.color, disabled: disabled, items: items, value: todayString, onIonChange: (ev) => {
|
|
1040
1040
|
// TODO(FW-1823) Remove this when iOS 14 support is dropped.
|
|
1041
1041
|
// Due to a Safari 14 issue we need to destroy
|
|
1042
1042
|
// the scroll listener before we update state
|
|
@@ -1052,7 +1052,7 @@ export class Datetime {
|
|
|
1052
1052
|
// the working parts have been updated.
|
|
1053
1053
|
this.initializeCalendarListener();
|
|
1054
1054
|
ev.stopPropagation();
|
|
1055
|
-
} }
|
|
1055
|
+
} }));
|
|
1056
1056
|
}
|
|
1057
1057
|
renderIndividualDatePickerColumns(forcePresentation) {
|
|
1058
1058
|
const { workingParts, isDateEnabled } = this;
|
|
@@ -1120,8 +1120,7 @@ export class Datetime {
|
|
|
1120
1120
|
}
|
|
1121
1121
|
const { disabled, workingParts } = this;
|
|
1122
1122
|
const activePart = this.getActivePartsWithFallback();
|
|
1123
|
-
|
|
1124
|
-
return (h("ion-picker-column", { class: "day-column", color: this.color, disabled: disabled, value: pickerColumnValue, onIonChange: (ev) => {
|
|
1123
|
+
return (h("ion-picker-column-internal", { class: "day-column", color: this.color, disabled: disabled, items: days, value: (_a = (workingParts.day !== null ? workingParts.day : this.defaultParts.day)) !== null && _a !== void 0 ? _a : undefined, onIonChange: (ev) => {
|
|
1125
1124
|
// TODO(FW-1823) Remove this when iOS 14 support is dropped.
|
|
1126
1125
|
// Due to a Safari 14 issue we need to destroy
|
|
1127
1126
|
// the scroll listener before we update state
|
|
@@ -1135,7 +1134,7 @@ export class Datetime {
|
|
|
1135
1134
|
// the working parts have been updated.
|
|
1136
1135
|
this.initializeCalendarListener();
|
|
1137
1136
|
ev.stopPropagation();
|
|
1138
|
-
} }
|
|
1137
|
+
} }));
|
|
1139
1138
|
}
|
|
1140
1139
|
renderMonthPickerColumn(months) {
|
|
1141
1140
|
if (months.length === 0) {
|
|
@@ -1143,7 +1142,7 @@ export class Datetime {
|
|
|
1143
1142
|
}
|
|
1144
1143
|
const { disabled, workingParts } = this;
|
|
1145
1144
|
const activePart = this.getActivePartsWithFallback();
|
|
1146
|
-
return (h("ion-picker-column", { class: "month-column", color: this.color, disabled: disabled, value: workingParts.month, onIonChange: (ev) => {
|
|
1145
|
+
return (h("ion-picker-column-internal", { class: "month-column", color: this.color, disabled: disabled, items: months, value: workingParts.month, onIonChange: (ev) => {
|
|
1147
1146
|
// TODO(FW-1823) Remove this when iOS 14 support is dropped.
|
|
1148
1147
|
// Due to a Safari 14 issue we need to destroy
|
|
1149
1148
|
// the scroll listener before we update state
|
|
@@ -1157,7 +1156,7 @@ export class Datetime {
|
|
|
1157
1156
|
// the working parts have been updated.
|
|
1158
1157
|
this.initializeCalendarListener();
|
|
1159
1158
|
ev.stopPropagation();
|
|
1160
|
-
} }
|
|
1159
|
+
} }));
|
|
1161
1160
|
}
|
|
1162
1161
|
renderYearPickerColumn(years) {
|
|
1163
1162
|
if (years.length === 0) {
|
|
@@ -1165,7 +1164,7 @@ export class Datetime {
|
|
|
1165
1164
|
}
|
|
1166
1165
|
const { disabled, workingParts } = this;
|
|
1167
1166
|
const activePart = this.getActivePartsWithFallback();
|
|
1168
|
-
return (h("ion-picker-column", { class: "year-column", color: this.color, disabled: disabled, value: workingParts.year, onIonChange: (ev) => {
|
|
1167
|
+
return (h("ion-picker-column-internal", { class: "year-column", color: this.color, disabled: disabled, items: years, value: workingParts.year, onIonChange: (ev) => {
|
|
1169
1168
|
// TODO(FW-1823) Remove this when iOS 14 support is dropped.
|
|
1170
1169
|
// Due to a Safari 14 issue we need to destroy
|
|
1171
1170
|
// the scroll listener before we update state
|
|
@@ -1179,7 +1178,7 @@ export class Datetime {
|
|
|
1179
1178
|
// the working parts have been updated.
|
|
1180
1179
|
this.initializeCalendarListener();
|
|
1181
1180
|
ev.stopPropagation();
|
|
1182
|
-
} }
|
|
1181
|
+
} }));
|
|
1183
1182
|
}
|
|
1184
1183
|
renderTimePickerColumns(forcePresentation) {
|
|
1185
1184
|
if (['date', 'month', 'month-year', 'year'].includes(forcePresentation)) {
|
|
@@ -1208,22 +1207,22 @@ export class Datetime {
|
|
|
1208
1207
|
if (hoursData.length === 0)
|
|
1209
1208
|
return [];
|
|
1210
1209
|
const activePart = this.getActivePartsWithFallback();
|
|
1211
|
-
return (h("ion-picker-column", { color: this.color, disabled: disabled, value: activePart.hour, numericInput: true, onIonChange: (ev) => {
|
|
1210
|
+
return (h("ion-picker-column-internal", { color: this.color, disabled: disabled, value: activePart.hour, items: hoursData, numericInput: true, onIonChange: (ev) => {
|
|
1212
1211
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { hour: ev.detail.value }));
|
|
1213
1212
|
this.setActiveParts(Object.assign(Object.assign({}, activePart), { hour: ev.detail.value }));
|
|
1214
1213
|
ev.stopPropagation();
|
|
1215
|
-
} }
|
|
1214
|
+
} }));
|
|
1216
1215
|
}
|
|
1217
1216
|
renderMinutePickerColumn(minutesData) {
|
|
1218
1217
|
const { disabled, workingParts } = this;
|
|
1219
1218
|
if (minutesData.length === 0)
|
|
1220
1219
|
return [];
|
|
1221
1220
|
const activePart = this.getActivePartsWithFallback();
|
|
1222
|
-
return (h("ion-picker-column", { color: this.color, disabled: disabled, value: activePart.minute, numericInput: true, onIonChange: (ev) => {
|
|
1221
|
+
return (h("ion-picker-column-internal", { color: this.color, disabled: disabled, value: activePart.minute, items: minutesData, numericInput: true, onIonChange: (ev) => {
|
|
1223
1222
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { minute: ev.detail.value }));
|
|
1224
1223
|
this.setActiveParts(Object.assign(Object.assign({}, activePart), { minute: ev.detail.value }));
|
|
1225
1224
|
ev.stopPropagation();
|
|
1226
|
-
} }
|
|
1225
|
+
} }));
|
|
1227
1226
|
}
|
|
1228
1227
|
renderDayPeriodPickerColumn(dayPeriodData) {
|
|
1229
1228
|
const { disabled, workingParts } = this;
|
|
@@ -1232,12 +1231,12 @@ export class Datetime {
|
|
|
1232
1231
|
}
|
|
1233
1232
|
const activePart = this.getActivePartsWithFallback();
|
|
1234
1233
|
const isDayPeriodRTL = isLocaleDayPeriodRTL(this.locale);
|
|
1235
|
-
return (h("ion-picker-column", { style: isDayPeriodRTL ? { order: '-1' } : {}, color: this.color, disabled: disabled, value: activePart.ampm, onIonChange: (ev) => {
|
|
1234
|
+
return (h("ion-picker-column-internal", { style: isDayPeriodRTL ? { order: '-1' } : {}, color: this.color, disabled: disabled, value: activePart.ampm, items: dayPeriodData, onIonChange: (ev) => {
|
|
1236
1235
|
const hour = calculateHourFromAMPM(workingParts, ev.detail.value);
|
|
1237
1236
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { ampm: ev.detail.value, hour }));
|
|
1238
1237
|
this.setActiveParts(Object.assign(Object.assign({}, activePart), { ampm: ev.detail.value, hour }));
|
|
1239
1238
|
ev.stopPropagation();
|
|
1240
|
-
} }
|
|
1239
|
+
} }));
|
|
1241
1240
|
}
|
|
1242
1241
|
renderWheelView(forcePresentation) {
|
|
1243
1242
|
const { locale } = this;
|
|
@@ -1258,11 +1257,26 @@ export class Datetime {
|
|
|
1258
1257
|
const nextMonthDisabled = disabled || isNextMonthDisabled(this.workingParts, this.maxParts);
|
|
1259
1258
|
// don't use the inheritAttributes util because it removes dir from the host, and we still need that
|
|
1260
1259
|
const hostDir = this.el.getAttribute('dir') || undefined;
|
|
1261
|
-
return (h("div", { class: "calendar-header" }, h("div", { class: "calendar-action-buttons" }, h("div", { class: "calendar-month-year" }, h("
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1260
|
+
return (h("div", { class: "calendar-header" }, h("div", { class: "calendar-action-buttons" }, h("div", { class: "calendar-month-year" }, h("ion-item", { part: "month-year-button", ref: (el) => (this.monthYearToggleItemRef = el), button: true, "aria-label": "Show year picker", detail: false, lines: "none", disabled: disabled, onClick: () => {
|
|
1261
|
+
var _a;
|
|
1262
|
+
this.toggleMonthAndYearView();
|
|
1263
|
+
/**
|
|
1264
|
+
* TODO: FW-3547
|
|
1265
|
+
*
|
|
1266
|
+
* Currently there is not a way to set the aria-label on the inner button
|
|
1267
|
+
* on the `ion-item` and have it be reactive to changes. This is a workaround
|
|
1268
|
+
* until we either refactor `ion-item` to a button or Stencil adds a way to
|
|
1269
|
+
* have reactive props for built-in properties, such as `aria-label`.
|
|
1270
|
+
*/
|
|
1271
|
+
const { monthYearToggleItemRef } = this;
|
|
1272
|
+
if (monthYearToggleItemRef) {
|
|
1273
|
+
const btn = (_a = monthYearToggleItemRef.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-native');
|
|
1274
|
+
if (btn) {
|
|
1275
|
+
const monthYearAriaLabel = this.showMonthAndYear ? 'Hide year picker' : 'Show year picker';
|
|
1276
|
+
btn.setAttribute('aria-label', monthYearAriaLabel);
|
|
1277
|
+
}
|
|
1278
|
+
}
|
|
1279
|
+
} }, 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) => {
|
|
1266
1280
|
return h("div", { class: "day-of-week" }, d);
|
|
1267
1281
|
}))));
|
|
1268
1282
|
}
|
|
@@ -1423,7 +1437,7 @@ export class Datetime {
|
|
|
1423
1437
|
* This will correctly scroll the element position to the correct time value,
|
|
1424
1438
|
* before the popover is fully presented.
|
|
1425
1439
|
*/
|
|
1426
|
-
const cols = ev.target.querySelectorAll('ion-picker-column');
|
|
1440
|
+
const cols = ev.target.querySelectorAll('ion-picker-column-internal');
|
|
1427
1441
|
// TODO (FW-615): Potentially remove this when intersection observers are fixed in picker column
|
|
1428
1442
|
cols.forEach((col) => col.scrollActiveItemIntoView());
|
|
1429
1443
|
}, style: {
|
|
@@ -2351,5 +2365,3 @@ export class Datetime {
|
|
|
2351
2365
|
}
|
|
2352
2366
|
}
|
|
2353
2367
|
let datetimeIds = 0;
|
|
2354
|
-
const WHEEL_ITEM_PART = 'wheel-item';
|
|
2355
|
-
const WHEEL_ITEM_ACTIVE_PART = `active`;
|
|
@@ -61,8 +61,6 @@
|
|
|
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.
|
|
66
64
|
* @prop --wheel-fade-background-rgb: The color of the gradient covering non-selected items
|
|
67
65
|
* when using a wheel style layout, or in the month/year picker for grid style layouts. Must
|
|
68
66
|
* be in RGB format, e.g. `255, 255, 255`.
|
|
@@ -73,6 +71,19 @@
|
|
|
73
71
|
overflow: hidden;
|
|
74
72
|
}
|
|
75
73
|
|
|
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
|
+
|
|
76
87
|
:host(.datetime-size-fixed) {
|
|
77
88
|
width: auto;
|
|
78
89
|
height: auto;
|
|
@@ -83,7 +94,7 @@
|
|
|
83
94
|
}
|
|
84
95
|
|
|
85
96
|
/**
|
|
86
|
-
* This ensures that the picker is
|
|
97
|
+
* This ensures that the picker is apppropriately
|
|
87
98
|
* sized and never truncates the text.
|
|
88
99
|
*/
|
|
89
100
|
:host(.datetime-size-fixed.datetime-prefer-wheel) {
|
|
@@ -306,8 +317,23 @@
|
|
|
306
317
|
justify-content: space-between;
|
|
307
318
|
}
|
|
308
319
|
|
|
320
|
+
:host .calendar-action-buttons ion-item,
|
|
309
321
|
:host .calendar-action-buttons ion-button {
|
|
310
|
-
--background:
|
|
322
|
+
--background: translucent;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
:host .calendar-action-buttons ion-item ion-label {
|
|
326
|
+
display: flex;
|
|
327
|
+
align-items: center;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
:host .calendar-action-buttons ion-item ion-icon {
|
|
331
|
+
-webkit-padding-start: 4px;
|
|
332
|
+
padding-inline-start: 4px;
|
|
333
|
+
-webkit-padding-end: 0;
|
|
334
|
+
padding-inline-end: 0;
|
|
335
|
+
padding-top: 0;
|
|
336
|
+
padding-bottom: 0;
|
|
311
337
|
}
|
|
312
338
|
|
|
313
339
|
:host .calendar-days-of-week {
|
|
@@ -489,72 +515,8 @@
|
|
|
489
515
|
position: static;
|
|
490
516
|
}
|
|
491
517
|
|
|
492
|
-
:host(.show-month-and-year) .calendar-action-buttons
|
|
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);
|
|
518
|
+
:host(.show-month-and-year) .calendar-action-buttons ion-item {
|
|
519
|
+
--color: var(--ion-color-base);
|
|
558
520
|
}
|
|
559
521
|
|
|
560
522
|
/**
|
|
@@ -638,36 +600,15 @@ ion-picker {
|
|
|
638
600
|
font-size: 2.125rem;
|
|
639
601
|
}
|
|
640
602
|
|
|
641
|
-
:host .calendar-action-buttons ion-
|
|
642
|
-
--
|
|
603
|
+
:host .datetime-calendar .calendar-action-buttons ion-item {
|
|
604
|
+
--padding-start: 20px;
|
|
643
605
|
}
|
|
644
606
|
|
|
645
|
-
.calendar-
|
|
646
|
-
|
|
647
|
-
|
|
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, #595959);
|
|
655
|
-
z-index: 1;
|
|
656
|
-
}
|
|
657
|
-
.calendar-month-year-toggle.ion-focused::after {
|
|
658
|
-
opacity: 0.04;
|
|
659
|
-
}
|
|
660
|
-
|
|
661
|
-
.calendar-month-year-toggle ion-ripple-effect {
|
|
662
|
-
color: currentColor;
|
|
607
|
+
:host .calendar-action-buttons ion-item,
|
|
608
|
+
:host .calendar-action-buttons ion-button {
|
|
609
|
+
--color: var(--ion-color-step-650, #595959);
|
|
663
610
|
}
|
|
664
611
|
|
|
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
|
-
}
|
|
671
612
|
:host .calendar-days-of-week {
|
|
672
613
|
-webkit-padding-start: 10px;
|
|
673
614
|
padding-inline-start: 10px;
|
|
@@ -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 ion-item');
|
|
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);
|
|
@@ -2,6 +2,7 @@
|
|
|
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";
|
|
5
6
|
import { Datetime } from "../../datetime";
|
|
6
7
|
describe('datetime', () => {
|
|
7
8
|
beforeEach(() => {
|
|
@@ -17,23 +18,25 @@ describe('datetime', () => {
|
|
|
17
18
|
let page;
|
|
18
19
|
beforeEach(async () => {
|
|
19
20
|
page = await newSpecPage({
|
|
20
|
-
components: [Datetime],
|
|
21
|
+
components: [Datetime, Item],
|
|
21
22
|
html: `<ion-datetime></ion-datetime>`,
|
|
22
23
|
});
|
|
23
24
|
});
|
|
24
25
|
it('should have aria-label "Show year picker" when collapsed', async () => {
|
|
25
26
|
const datetime = page.body.querySelector('ion-datetime');
|
|
26
|
-
const
|
|
27
|
+
const item = datetime.shadowRoot.querySelector('.calendar-month-year ion-item');
|
|
28
|
+
const monthYearToggleBtn = item.shadowRoot.querySelector('button');
|
|
27
29
|
const ariaLabel = monthYearToggleBtn.getAttribute('aria-label');
|
|
28
30
|
expect(ariaLabel).toContain('Show year picker');
|
|
29
31
|
});
|
|
30
32
|
it('should have aria-label "Hide year picker" when expanded', async () => {
|
|
31
33
|
const datetime = page.body.querySelector('ion-datetime');
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
+
const item = datetime.shadowRoot.querySelector('.calendar-month-year ion-item');
|
|
35
|
+
item.click();
|
|
34
36
|
await page.waitForChanges();
|
|
35
|
-
const
|
|
36
|
-
const
|
|
37
|
+
const itemAfter = datetime.shadowRoot.querySelector('.calendar-month-year ion-item');
|
|
38
|
+
const monthYearToggleBtn = itemAfter.shadowRoot.querySelector('button');
|
|
39
|
+
const ariaLabel = monthYearToggleBtn.getAttribute('aria-label');
|
|
37
40
|
expect(ariaLabel).toContain('Hide year picker');
|
|
38
41
|
});
|
|
39
42
|
});
|
|
@@ -372,14 +372,4 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
|
372
372
|
await expect(datetime).toHaveScreenshot(screenshot(`datetime-focus-calendar-day`));
|
|
373
373
|
});
|
|
374
374
|
});
|
|
375
|
-
test.describe(title('datetime: calendar month toggle'), () => {
|
|
376
|
-
test('should have focus styles', async ({ page }) => {
|
|
377
|
-
await page.setContent('<ion-datetime value="2021-01-01"></ion-datetime>', config);
|
|
378
|
-
const datetime = page.locator('ion-datetime');
|
|
379
|
-
await page.waitForSelector('.datetime-ready');
|
|
380
|
-
const monthYearToggle = datetime.locator('.calendar-month-year-toggle');
|
|
381
|
-
monthYearToggle.evaluate((el) => el.classList.add('ion-focused'));
|
|
382
|
-
await expect(datetime).toHaveScreenshot(screenshot(`date-month-toggle-focused`));
|
|
383
|
-
});
|
|
384
|
-
});
|
|
385
375
|
});
|
|
@@ -13,7 +13,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
|
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 .picker-item:not(.picker-item-empty)');
|
|
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 .picker-item:not(.picker-item-empty)');
|
|
28
28
|
const datetime = page.locator('ion-datetime');
|
|
29
29
|
const ionChange = await page.spyOnEvent('ionChange');
|
|
30
30
|
await monthYearToggle.click();
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
import { h } from "@stencil/core";
|
|
5
5
|
import { newSpecPage } from "@stencil/core/testing";
|
|
6
6
|
import { Datetime } from "../../../datetime/datetime";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
7
|
+
import { PickerColumnInternal } from "../../../picker-column-internal/picker-column-internal";
|
|
8
|
+
import { PickerInternal } from "../../../picker-internal/picker-internal";
|
|
9
9
|
describe('ion-datetime disabled', () => {
|
|
10
10
|
beforeEach(() => {
|
|
11
11
|
// IntersectionObserver isn't available in test environment
|
|
@@ -19,12 +19,12 @@ describe('ion-datetime disabled', () => {
|
|
|
19
19
|
});
|
|
20
20
|
it('picker should be disabled in prefer wheel mode', async () => {
|
|
21
21
|
const page = await newSpecPage({
|
|
22
|
-
components: [Datetime,
|
|
22
|
+
components: [Datetime, PickerColumnInternal, PickerInternal],
|
|
23
23
|
template: () => (h("ion-datetime", { id: "inline-datetime-wheel", disabled: true, "prefer-wheel": true, value: "2022-04-21T00:00:00" })),
|
|
24
24
|
});
|
|
25
25
|
await page.waitForChanges();
|
|
26
26
|
const datetime = page.body.querySelector('ion-datetime');
|
|
27
|
-
const columns = datetime.shadowRoot.querySelectorAll('ion-picker-column');
|
|
27
|
+
const columns = datetime.shadowRoot.querySelectorAll('ion-picker-column-internal');
|
|
28
28
|
await expect(columns.length).toEqual(4);
|
|
29
29
|
columns.forEach((column) => {
|
|
30
30
|
expect(column.disabled).toBe(true);
|
|
@@ -85,10 +85,10 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
85
85
|
});
|
|
86
86
|
test('should correctly localize year column data', async ({ page }) => {
|
|
87
87
|
await page.setContent(`
|
|
88
|
-
<ion-datetime prefer-wheel="true" locale="ar-EG" presentation="date" value="2022-01-01"
|
|
88
|
+
<ion-datetime prefer-wheel="true" locale="ar-EG" presentation="date" value="2022-01-01"></ion-datetime>
|
|
89
89
|
`, config);
|
|
90
90
|
await page.waitForSelector('.datetime-ready');
|
|
91
|
-
const datetimeYear = page.locator('ion-datetime .year-column
|
|
91
|
+
const datetimeYear = page.locator('ion-datetime .year-column .picker-item[data-value="2022"]');
|
|
92
92
|
await expect(datetimeYear).toHaveText('٢٠٢٢');
|
|
93
93
|
});
|
|
94
94
|
});
|