@ionic/core 7.6.2-dev.11702957417.1622fcc0 → 7.6.2-dev.11704390532.1202188d
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 +0 -12
- package/components/button.js +2 -2
- 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 +40 -64
- 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/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/dist/cjs/{app-globals-cd7be47d.js → app-globals-7def22c8.js} +1 -1
- package/dist/cjs/{button-active-21b0334e.js → button-active-5bf1cac0.js} +2 -2
- 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-862c03dc.js → index-17ab7794.js} +3 -3
- package/dist/cjs/{index-4e68b270.js → index-3b012034.js} +1 -1
- package/dist/cjs/{index-1699be56.js → index-50dcfe2f.js} +16 -24
- package/dist/cjs/{index-d1b59ffa.js → index-ee07ed59.js} +1 -1
- package/dist/cjs/index.cjs.js +9 -9
- package/dist/cjs/ion-accordion_2.cjs.entry.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 -6
- package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-back-button.cjs.entry.js +3 -3
- package/dist/cjs/ion-backdrop.cjs.entry.js +2 -14
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-button_2.cjs.entry.js +4 -4
- 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 +39 -59
- package/dist/cjs/ion-fab_3.cjs.entry.js +3 -3
- 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 +3 -3
- package/dist/cjs/ion-item-option_3.cjs.entry.js +3 -3
- package/dist/cjs/ion-item_8.cjs.entry.js +3 -3
- package/dist/cjs/ion-loading.cjs.entry.js +4 -3
- package/dist/cjs/ion-menu_3.cjs.entry.js +7 -7
- 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-option.cjs.entry.js +104 -0
- package/dist/cjs/{ion-picker-column-internal.cjs.entry.js → ion-picker-column.cjs.entry.js} +106 -89
- package/dist/cjs/{ion-picker-internal.cjs.entry.js → ion-picker.cjs.entry.js} +27 -20
- package/dist/cjs/ion-popover.cjs.entry.js +5 -4
- 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 +4 -4
- 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 +3 -3
- 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-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 -2
- package/dist/cjs/ion-toast.cjs.entry.js +5 -5
- package/dist/cjs/ion-toggle.cjs.entry.js +4 -4
- package/dist/cjs/{ionic-global-592bef9e.js → ionic-global-a4edbf03.js} +1 -1
- package/dist/cjs/ionic.cjs.js +5 -5
- package/dist/cjs/{ios.transition-1ac35be5.js → ios.transition-b5353f3e.js} +2 -2
- package/dist/cjs/loader.cjs.js +4 -4
- package/dist/cjs/{md.transition-df2947e8.js → md.transition-67157dd9.js} +2 -2
- package/dist/cjs/{overlays-e10edfa0.js → overlays-7773cbe1.js} +12 -5
- package/dist/cjs/{status-tap-23a3173f.js → status-tap-b5d77c08.js} +1 -1
- package/dist/cjs/{swipe-back-2a858bbd.js → swipe-back-b8f2330b.js} +2 -2
- package/dist/collection/collection-manifest.json +8 -7
- package/dist/collection/components/accordion-group/accordion-group.js +4 -6
- package/dist/collection/components/action-sheet/action-sheet.js +10 -6
- package/dist/collection/components/alert/alert.js +10 -6
- package/dist/collection/components/app/app.js +2 -3
- package/dist/collection/components/backdrop/backdrop.js +0 -12
- package/dist/collection/components/button/button.ios.css +1 -1
- package/dist/collection/components/button/button.md.css +1 -1
- package/dist/collection/components/button/test/wrap/button.e2e.js +12 -24
- package/dist/collection/components/content/content.css +0 -4
- package/dist/collection/components/content/content.js +40 -24
- package/dist/collection/components/datetime/datetime.ios.css +91 -38
- package/dist/collection/components/datetime/datetime.js +30 -45
- package/dist/collection/components/datetime/datetime.md.css +96 -38
- package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +1 -1
- package/dist/collection/components/datetime/test/a11y/datetime.spec.js +6 -9
- package/dist/collection/components/datetime/test/basic/datetime.e2e.js +10 -0
- 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 +43 -41
- 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 +15 -12
- package/dist/collection/components/datetime/utils/data.js +1 -1
- package/dist/collection/components/icon/test/dir/heart-broken.svg +0 -0
- package/dist/collection/components/item/test/icons/heart-broken.svg +0 -0
- package/dist/collection/components/item-sliding/item-sliding.js +5 -3
- package/dist/collection/components/loading/loading.js +10 -6
- package/dist/collection/components/menu/menu.js +10 -15
- package/dist/collection/components/modal/modal.js +12 -9
- package/dist/collection/components/nav/nav.js +190 -114
- package/dist/collection/components/picker/picker.ios.css +112 -211
- package/dist/collection/components/picker/picker.js +472 -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} +63 -32
- 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 +497 -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.md.css → picker-legacy/picker.ios.css} +207 -98
- package/dist/collection/components/picker-legacy/picker.js +817 -0
- package/dist/collection/components/{picker-internal/picker-internal.ios.css → picker-legacy/picker.md.css} +192 -100
- 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}/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.js +21 -18
- package/dist/collection/components/radio/radio.js +4 -6
- package/dist/collection/components/refresher/refresher.js +0 -3
- package/dist/collection/components/reorder-group/reorder-group.js +5 -3
- package/dist/collection/components/ripple-effect/ripple-effect.js +10 -6
- package/dist/collection/components/router/router.js +14 -12
- package/dist/collection/components/router-outlet/router-outlet.js +14 -21
- package/dist/collection/components/select/select.js +5 -3
- package/dist/collection/components/tabs/tabs.js +12 -9
- package/dist/collection/components/toast/toast.js +10 -6
- 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/docs.d.ts +21 -1
- package/dist/docs.json +1050 -812
- package/dist/esm/{app-globals-736d53f6.js → app-globals-8c62bec2.js} +1 -1
- package/dist/esm/{button-active-7836d6bf.js → button-active-48379dd2.js} +2 -2
- 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-c4ebf628.js → index-1193f005.js} +1 -1
- package/dist/esm/{index-2cf77112.js → index-39782642.js} +2 -2
- package/dist/esm/{index-6b0e432e.js → index-4743453d.js} +3 -3
- package/dist/esm/{index-78d39194.js → index-b7d870cf.js} +16 -24
- package/dist/esm/index.js +9 -9
- package/dist/esm/ion-accordion_2.entry.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 -6
- package/dist/esm/ion-avatar_3.entry.js +2 -2
- package/dist/esm/ion-back-button.entry.js +3 -3
- package/dist/esm/ion-backdrop.entry.js +2 -14
- package/dist/esm/ion-breadcrumb_2.entry.js +3 -3
- package/dist/esm/ion-button_2.entry.js +4 -4
- 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 +38 -58
- package/dist/esm/ion-fab_3.entry.js +3 -3
- 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 +3 -3
- package/dist/esm/ion-item-option_3.entry.js +3 -3
- package/dist/esm/ion-item_8.entry.js +3 -3
- package/dist/esm/ion-loading.entry.js +4 -3
- package/dist/esm/ion-menu_3.entry.js +7 -7
- 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-option.entry.js +100 -0
- package/dist/esm/{ion-picker-column-internal.entry.js → ion-picker-column.entry.js} +106 -89
- package/dist/esm/{ion-picker-internal.entry.js → ion-picker.entry.js} +27 -20
- package/dist/esm/ion-popover.entry.js +5 -4
- 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 +4 -4
- 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 +3 -3
- package/dist/esm/ion-segment_2.entry.js +3 -3
- package/dist/esm/ion-select_3.entry.js +5 -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 -2
- package/dist/esm/ion-toast.entry.js +5 -5
- package/dist/esm/ion-toggle.entry.js +4 -4
- package/dist/esm/{ionic-global-6270e632.js → ionic-global-1f99b929.js} +1 -1
- package/dist/esm/ionic.js +6 -6
- package/dist/esm/{ios.transition-cfb6d320.js → ios.transition-3376ccb2.js} +2 -2
- package/dist/esm/loader.js +5 -5
- package/dist/esm/{md.transition-77e73830.js → md.transition-f992779f.js} +2 -2
- package/dist/esm/{overlays-55cf1508.js → overlays-94dac1cb.js} +12 -5
- package/dist/esm/polyfills/core-js.js +0 -0
- package/dist/esm/polyfills/dom.js +0 -0
- package/dist/esm/polyfills/es5-html-element.js +0 -0
- package/dist/esm/polyfills/index.js +0 -0
- package/dist/esm/polyfills/system.js +0 -0
- package/dist/esm/{status-tap-92380b33.js → status-tap-16fd8f3d.js} +1 -1
- package/dist/esm/{swipe-back-a6f386fc.js → swipe-back-a8ca7f93.js} +2 -2
- package/dist/esm-es5/app-globals-8c62bec2.js +4 -0
- package/dist/esm-es5/{button-active-7836d6bf.js → button-active-48379dd2.js} +1 -1
- package/dist/esm-es5/{gesture-controller-1bf57181.js → gesture-controller-314a54f6.js} +1 -1
- package/dist/esm-es5/{index-c4ebf628.js → index-1193f005.js} +1 -1
- package/dist/esm-es5/{index-2cf77112.js → index-39782642.js} +1 -1
- package/dist/esm-es5/{index-6b0e432e.js → index-4743453d.js} +1 -1
- package/dist/esm-es5/index-b7d870cf.js +5 -0
- 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-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-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-6270e632.js → ionic-global-1f99b929.js} +1 -1
- package/dist/esm-es5/ionic.js +1 -1
- package/dist/esm-es5/{ios.transition-cfb6d320.js → ios.transition-3376ccb2.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/md.transition-f992779f.js +4 -0
- package/dist/esm-es5/overlays-94dac1cb.js +4 -0
- package/dist/esm-es5/{status-tap-92380b33.js → status-tap-16fd8f3d.js} +1 -1
- package/dist/esm-es5/swipe-back-a8ca7f93.js +4 -0
- package/dist/html.html-data.json +152 -13
- 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-70dd9d79.js → p-04377cfa.js} +1 -1
- package/dist/ionic/{p-f7cb002f.system.entry.js → p-043aa6cc.system.entry.js} +1 -1
- package/dist/ionic/{p-394865a5.js → p-0509fd34.js} +1 -1
- package/dist/ionic/{p-8345c94e.entry.js → p-0550f802.entry.js} +1 -1
- package/dist/ionic/{p-3ef606fa.system.js → p-0aa78a8d.system.js} +1 -1
- package/dist/ionic/{p-a692f502.entry.js → p-0cc80201.entry.js} +1 -1
- package/dist/ionic/{p-149c8c11.system.entry.js → p-0dfa4ab4.system.entry.js} +1 -1
- package/dist/ionic/{p-b710b39c.system.entry.js → p-0e908476.system.entry.js} +1 -1
- package/dist/ionic/{p-61cdea9d.system.entry.js → p-0ebc87b7.system.entry.js} +1 -1
- package/dist/ionic/{p-e5a6f367.entry.js → p-10339dcc.entry.js} +1 -1
- package/dist/ionic/{p-aa4e59fb.system.entry.js → p-11bf2ad0.system.entry.js} +1 -1
- package/dist/ionic/{p-6e58bc9b.system.js → p-11c55ac8.system.js} +1 -1
- package/dist/ionic/{p-26af79a8.entry.js → p-13d4dfe7.entry.js} +1 -1
- package/dist/ionic/{p-c491c7ce.system.js → p-1501b945.system.js} +1 -1
- package/dist/ionic/{p-ef2445a2.system.entry.js → p-19c379da.system.entry.js} +1 -1
- package/dist/ionic/{p-6d74d882.system.js → p-19d9ceb8.system.js} +1 -1
- package/dist/ionic/{p-8f1e7b4c.system.js → p-1ab2642a.system.js} +1 -1
- package/dist/ionic/{p-ca2ea280.entry.js → p-1b14f0f8.entry.js} +1 -1
- package/dist/ionic/p-1b60cc53.js +4 -0
- package/dist/ionic/{p-d9b88ba6.entry.js → p-20755eb0.entry.js} +1 -1
- package/dist/ionic/{p-c7c8429a.system.js → p-20d469d0.system.js} +1 -1
- package/dist/ionic/{p-93c75152.system.entry.js → p-20e0e75d.system.entry.js} +1 -1
- package/dist/ionic/{p-2c7ee8fe.system.entry.js → p-25312768.system.entry.js} +1 -1
- package/dist/ionic/{p-4b3d1d68.entry.js → p-26c4bf85.entry.js} +1 -1
- package/dist/ionic/p-26ff1180.entry.js +4 -0
- package/dist/ionic/p-290d3fe9.js +5 -0
- package/dist/ionic/p-2f449cdf.system.entry.js +4 -0
- package/dist/ionic/{p-12a41623.entry.js → p-3313c481.entry.js} +1 -1
- package/dist/ionic/{p-42eaba59.system.entry.js → p-332ea4d3.system.entry.js} +1 -1
- package/dist/ionic/p-3717e641.system.entry.js +4 -0
- package/dist/ionic/{p-1ccbe3ee.system.entry.js → p-38531958.system.entry.js} +1 -1
- package/dist/ionic/{p-ec49bd1f.system.entry.js → p-3af5faf8.system.entry.js} +1 -1
- package/dist/ionic/{p-ca6fb31a.system.entry.js → p-3b434dee.system.entry.js} +1 -1
- package/dist/ionic/{p-ed3b7404.entry.js → p-3dfc522b.entry.js} +1 -1
- package/dist/ionic/{p-31b2326e.system.js → p-3e1e14d9.system.js} +1 -1
- package/dist/ionic/{p-dbe4f2bc.system.entry.js → p-41208f54.system.entry.js} +1 -1
- package/dist/ionic/{p-c2e60d23.system.entry.js → p-42925096.system.entry.js} +1 -1
- package/dist/ionic/{p-e6327ff5.system.entry.js → p-4489dd20.system.entry.js} +1 -1
- package/dist/ionic/{p-f501137d.js → p-44a56556.js} +1 -1
- package/dist/ionic/{p-47c90ee4.entry.js → p-44dc52e5.entry.js} +1 -1
- package/dist/ionic/{p-322e9039.system.entry.js → p-4685218a.system.entry.js} +1 -1
- package/dist/ionic/{p-990912bd.system.entry.js → p-4793c14c.system.entry.js} +1 -1
- package/dist/ionic/{p-0a617e59.system.entry.js → p-4981ea0a.system.entry.js} +1 -1
- package/dist/ionic/p-51abefb7.system.js +4 -0
- package/dist/ionic/{p-00afbe80.entry.js → p-529b24fb.entry.js} +1 -1
- package/dist/ionic/{p-10f2a748.system.js → p-52cfafe9.system.js} +1 -1
- package/dist/ionic/{p-c66b0166.system.js → p-5ad1fe3b.system.js} +1 -1
- package/dist/ionic/{p-a13d22c3.system.entry.js → p-5ff211d0.system.entry.js} +1 -1
- package/dist/ionic/{p-ce7ef475.entry.js → p-60959b71.entry.js} +1 -1
- package/dist/ionic/{p-cea29c88.entry.js → p-61e4d3ec.entry.js} +1 -1
- package/dist/ionic/{p-6eb35f60.entry.js → p-642ac927.entry.js} +1 -1
- package/dist/ionic/{p-a610605e.entry.js → p-6855f26a.entry.js} +1 -1
- package/dist/ionic/{p-5d5d621a.system.entry.js → p-69641343.system.entry.js} +1 -1
- package/dist/ionic/{p-d7da1178.system.entry.js → p-6e0539ea.system.entry.js} +1 -1
- package/dist/ionic/{p-3d0221e5.system.entry.js → p-6e4c7340.system.entry.js} +1 -1
- package/dist/ionic/p-71483cbb.entry.js +4 -0
- package/dist/ionic/p-75a3e35b.entry.js +4 -0
- package/dist/ionic/p-77d78f68.system.entry.js +4 -0
- package/dist/ionic/{p-d3f2db71.entry.js → p-799da666.entry.js} +1 -1
- package/dist/ionic/{p-c8237c3c.system.entry.js → p-7be412e8.system.entry.js} +1 -1
- package/dist/ionic/p-7c0d778d.system.js +4 -0
- package/dist/ionic/{p-c661d124.entry.js → p-7dcf795f.entry.js} +1 -1
- package/dist/ionic/{p-e89d7c8a.js → p-7fae5c36.js} +1 -1
- package/dist/ionic/{p-9b837aa0.entry.js → p-803efb5d.entry.js} +1 -1
- package/dist/ionic/{p-22c7b943.entry.js → p-806a9810.entry.js} +1 -1
- package/dist/ionic/{p-e579a727.entry.js → p-80c6c078.entry.js} +1 -1
- package/dist/ionic/{p-494983ab.entry.js → p-84b567a6.entry.js} +1 -1
- package/dist/ionic/p-8ad6d643.entry.js +4 -0
- package/dist/ionic/{p-2bdd791d.system.entry.js → p-8ce4e506.system.entry.js} +1 -1
- package/dist/ionic/{p-f5d2dc9b.js → p-8ededb41.js} +1 -1
- package/dist/ionic/p-9164a09d.entry.js +4 -0
- package/dist/ionic/{p-ca730236.entry.js → p-928ee57a.entry.js} +1 -1
- package/dist/ionic/{p-754bcac2.entry.js → p-92bfb607.entry.js} +1 -1
- package/dist/ionic/{p-106e9ce9.entry.js → p-92d35b6a.entry.js} +1 -1
- package/dist/ionic/{p-b794b87a.entry.js → p-950c05ad.entry.js} +1 -1
- package/dist/ionic/{p-a74e7199.system.entry.js → p-964dcdb2.system.entry.js} +1 -1
- package/dist/ionic/{p-a2cd14c6.js → p-97174c1e.js} +1 -1
- package/dist/ionic/p-98f35d98.js +4 -0
- package/dist/ionic/{p-4fbc0c3b.system.js → p-9a68d8ef.system.js} +1 -1
- package/dist/ionic/{p-bb3615f7.js → p-9b97df10.js} +1 -1
- package/dist/ionic/{p-28a04f26.system.js → p-9f94c72e.system.js} +1 -1
- package/dist/ionic/{p-de161adf.entry.js → p-9fb45814.entry.js} +1 -1
- package/dist/ionic/p-a06501e3.entry.js +4 -0
- package/dist/ionic/{p-0029c932.system.js → p-a074be82.system.js} +1 -1
- package/dist/ionic/p-a1bd098f.system.entry.js +4 -0
- package/dist/ionic/{p-b62c0f2e.entry.js → p-a3013394.entry.js} +1 -1
- package/dist/ionic/p-a41eaff2.system.entry.js +4 -0
- package/dist/ionic/{p-f30eb152.system.js → p-a49931aa.system.js} +1 -1
- package/dist/ionic/p-a60a1ce5.js +4 -0
- package/dist/ionic/{p-336ea079.system.entry.js → p-abd5d0d5.system.entry.js} +1 -1
- package/dist/ionic/{p-e4d320f7.entry.js → p-ae4b7df8.entry.js} +1 -1
- package/dist/ionic/{p-b3931df6.entry.js → p-b2b5d761.entry.js} +1 -1
- package/dist/ionic/{p-82e7b12b.system.entry.js → p-b7058a0e.system.entry.js} +1 -1
- package/dist/ionic/{p-e3f8c30f.system.entry.js → p-b8a9e195.system.entry.js} +1 -1
- package/dist/ionic/{p-220ba811.entry.js → p-ba5d9e27.entry.js} +1 -1
- package/dist/ionic/{p-36704958.entry.js → p-bb3fd397.entry.js} +1 -1
- package/dist/ionic/{p-aa75cca3.entry.js → p-bec6ae40.entry.js} +1 -1
- package/dist/ionic/{p-909a997a.system.entry.js → p-beed2450.system.entry.js} +1 -1
- package/dist/ionic/{p-a0f9488c.system.entry.js → p-beeed22c.system.entry.js} +1 -1
- package/dist/ionic/p-c001b24f.entry.js +4 -0
- package/dist/ionic/{p-3dd34db9.entry.js → p-c01803db.entry.js} +1 -1
- package/dist/ionic/{p-532acc35.entry.js → p-c08fe2c0.entry.js} +1 -1
- package/dist/ionic/p-c19bf524.entry.js +4 -0
- package/dist/ionic/p-c6176849.system.entry.js +4 -0
- package/dist/ionic/{p-72ad8f87.system.entry.js → p-cb8dff22.system.entry.js} +1 -1
- package/dist/ionic/{p-4b6089e6.js → p-cd574dfa.js} +1 -1
- package/dist/ionic/p-cf350317.entry.js +4 -0
- package/dist/ionic/{p-7c7ffd26.entry.js → p-cf53213c.entry.js} +1 -1
- package/dist/ionic/{p-33a569df.system.entry.js → p-d2634efe.system.entry.js} +1 -1
- package/dist/ionic/{p-be650493.system.entry.js → p-d93eed83.system.entry.js} +1 -1
- package/dist/ionic/{p-e292e49b.system.entry.js → p-da666998.system.entry.js} +1 -1
- package/dist/ionic/{p-0f244e47.system.entry.js → p-db05ecb6.system.entry.js} +1 -1
- package/dist/ionic/p-dc63dccb.system.entry.js +4 -0
- package/dist/ionic/{p-39d6d212.system.entry.js → p-e2737fef.system.entry.js} +1 -1
- package/dist/ionic/p-e2903cdc.system.entry.js +4 -0
- package/dist/ionic/{p-26afb1cb.entry.js → p-e33d1ebc.entry.js} +1 -1
- package/dist/ionic/{p-478c4f2e.entry.js → p-ed8402d6.entry.js} +1 -1
- package/dist/ionic/{p-7fb31fb2.system.entry.js → p-f0504446.system.entry.js} +1 -1
- package/dist/ionic/p-f0717d98.js +4 -0
- package/dist/ionic/p-f0dea903.system.entry.js +4 -0
- package/dist/ionic/p-f60807dd.system.entry.js +4 -0
- package/dist/ionic/p-f8c5008f.entry.js +4 -0
- package/dist/node_modules/ionicons/dist/collection/components/icon/icon.css +144 -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/menu/menu.d.ts +1 -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/refresher/refresher.d.ts +0 -3
- package/dist/types/components.d.ts +154 -130
- 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/platform.utils.d.ts +9 -9
- package/dist/types/utils/test/playwright/page/utils/goto.d.ts +1 -1
- package/hydrate/index.d.ts +1 -1
- package/hydrate/index.js +1083 -2677
- package/package.json +32 -34
- 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/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 -544
- package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +0 -118
- package/dist/esm-es5/app-globals-736d53f6.js +0 -4
- package/dist/esm-es5/index-78d39194.js +0 -5
- 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/md.transition-77e73830.js +0 -4
- package/dist/esm-es5/overlays-55cf1508.js +0 -4
- package/dist/esm-es5/swipe-back-a6f386fc.js +0 -4
- package/dist/ionic/p-026707ab.js +0 -4
- package/dist/ionic/p-22e959cb.entry.js +0 -4
- package/dist/ionic/p-2c7cce0a.entry.js +0 -4
- package/dist/ionic/p-35ce400e.system.js +0 -4
- package/dist/ionic/p-38be1c0f.system.entry.js +0 -4
- package/dist/ionic/p-4225fa09.js +0 -4
- package/dist/ionic/p-45e296d3.system.entry.js +0 -4
- package/dist/ionic/p-586de692.system.entry.js +0 -4
- package/dist/ionic/p-5eea0433.system.entry.js +0 -4
- package/dist/ionic/p-60a574c1.entry.js +0 -4
- package/dist/ionic/p-6a6477b2.js +0 -4
- package/dist/ionic/p-73f47fce.system.entry.js +0 -4
- package/dist/ionic/p-76cab6f8.js +0 -4
- package/dist/ionic/p-7c057cbc.entry.js +0 -4
- package/dist/ionic/p-7e07c38f.js +0 -5
- package/dist/ionic/p-86b88102.system.entry.js +0 -4
- package/dist/ionic/p-8ac48377.system.entry.js +0 -4
- package/dist/ionic/p-9e098902.entry.js +0 -4
- package/dist/ionic/p-a37e738b.system.js +0 -4
- package/dist/ionic/p-abcd194b.system.entry.js +0 -4
- package/dist/ionic/p-b74c1510.entry.js +0 -4
- package/dist/ionic/p-cd9c4ffe.system.entry.js +0 -4
- package/dist/ionic/p-d6f34fe9.entry.js +0 -4
- package/dist/ionic/p-de3aa772.entry.js +0 -4
- package/dist/ionic/p-ffb54fd5.entry.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/cjs/{index-677c4d13.js → index-09471526.js} +0 -0
- /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}/picker-column.md.css +0 -0
- /package/dist/collection/components/{picker-column → picker-legacy-column}/test/test.utils.js +0 -0
- /package/dist/esm/{index-4d016006.js → index-c132c5f1.js} +0 -0
- /package/dist/esm-es5/{data-775093f5.js → data-6a31d701.js} +0 -0
- /package/dist/esm-es5/{index-4d016006.js → index-c132c5f1.js} +0 -0
- /package/dist/ionic/{p-87bb3735.system.js → p-7ff4359e.system.js} +0 -0
- /package/dist/ionic/{p-0c55ffe1.system.js → p-8050b9b9.system.js} +0 -0
- /package/dist/ionic/{p-18cae04f.js → p-a64accf5.js} +0 -0
- /package/dist/ionic/{p-e90d610c.js → p-ea96fa73.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
|
@@ -996,7 +996,7 @@ export class Datetime {
|
|
|
996
996
|
const renderArray = forcePresentation === 'time-date'
|
|
997
997
|
? [this.renderTimePickerColumns(forcePresentation), this.renderDatePickerColumns(forcePresentation)]
|
|
998
998
|
: [this.renderDatePickerColumns(forcePresentation), this.renderTimePickerColumns(forcePresentation)];
|
|
999
|
-
return h("ion-picker
|
|
999
|
+
return h("ion-picker", null, renderArray);
|
|
1000
1000
|
}
|
|
1001
1001
|
renderDatePickerColumns(forcePresentation) {
|
|
1002
1002
|
return forcePresentation === 'date-time' || forcePresentation === 'time-date'
|
|
@@ -1055,7 +1055,7 @@ export class Datetime {
|
|
|
1055
1055
|
const todayString = workingParts.day !== null
|
|
1056
1056
|
? `${workingParts.year}-${workingParts.month}-${workingParts.day}`
|
|
1057
1057
|
: `${defaultParts.year}-${defaultParts.month}-${defaultParts.day}`;
|
|
1058
|
-
return (h("ion-picker-column
|
|
1058
|
+
return (h("ion-picker-column", { class: "date-column", color: this.color, disabled: disabled, value: todayString, onIonChange: (ev) => {
|
|
1059
1059
|
// TODO(FW-1823) Remove this when iOS 14 support is dropped.
|
|
1060
1060
|
// Due to a Safari 14 issue we need to destroy
|
|
1061
1061
|
// the scroll listener before we update state
|
|
@@ -1071,7 +1071,7 @@ export class Datetime {
|
|
|
1071
1071
|
// the working parts have been updated.
|
|
1072
1072
|
this.initializeCalendarListener();
|
|
1073
1073
|
ev.stopPropagation();
|
|
1074
|
-
} }));
|
|
1074
|
+
} }, 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)))));
|
|
1075
1075
|
}
|
|
1076
1076
|
renderIndividualDatePickerColumns(forcePresentation) {
|
|
1077
1077
|
const { workingParts, isDateEnabled } = this;
|
|
@@ -1139,7 +1139,8 @@ export class Datetime {
|
|
|
1139
1139
|
}
|
|
1140
1140
|
const { disabled, workingParts } = this;
|
|
1141
1141
|
const activePart = this.getActivePartsWithFallback();
|
|
1142
|
-
|
|
1142
|
+
const pickerColumnValue = (_a = (workingParts.day !== null ? workingParts.day : this.defaultParts.day)) !== null && _a !== void 0 ? _a : undefined;
|
|
1143
|
+
return (h("ion-picker-column", { class: "day-column", color: this.color, disabled: disabled, value: pickerColumnValue, onIonChange: (ev) => {
|
|
1143
1144
|
// TODO(FW-1823) Remove this when iOS 14 support is dropped.
|
|
1144
1145
|
// Due to a Safari 14 issue we need to destroy
|
|
1145
1146
|
// the scroll listener before we update state
|
|
@@ -1153,7 +1154,7 @@ export class Datetime {
|
|
|
1153
1154
|
// the working parts have been updated.
|
|
1154
1155
|
this.initializeCalendarListener();
|
|
1155
1156
|
ev.stopPropagation();
|
|
1156
|
-
} }));
|
|
1157
|
+
} }, 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)))));
|
|
1157
1158
|
}
|
|
1158
1159
|
renderMonthPickerColumn(months) {
|
|
1159
1160
|
if (months.length === 0) {
|
|
@@ -1161,7 +1162,7 @@ export class Datetime {
|
|
|
1161
1162
|
}
|
|
1162
1163
|
const { disabled, workingParts } = this;
|
|
1163
1164
|
const activePart = this.getActivePartsWithFallback();
|
|
1164
|
-
return (h("ion-picker-column
|
|
1165
|
+
return (h("ion-picker-column", { class: "month-column", color: this.color, disabled: disabled, value: workingParts.month, onIonChange: (ev) => {
|
|
1165
1166
|
// TODO(FW-1823) Remove this when iOS 14 support is dropped.
|
|
1166
1167
|
// Due to a Safari 14 issue we need to destroy
|
|
1167
1168
|
// the scroll listener before we update state
|
|
@@ -1175,7 +1176,7 @@ export class Datetime {
|
|
|
1175
1176
|
// the working parts have been updated.
|
|
1176
1177
|
this.initializeCalendarListener();
|
|
1177
1178
|
ev.stopPropagation();
|
|
1178
|
-
} }));
|
|
1179
|
+
} }, 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)))));
|
|
1179
1180
|
}
|
|
1180
1181
|
renderYearPickerColumn(years) {
|
|
1181
1182
|
if (years.length === 0) {
|
|
@@ -1183,7 +1184,7 @@ export class Datetime {
|
|
|
1183
1184
|
}
|
|
1184
1185
|
const { disabled, workingParts } = this;
|
|
1185
1186
|
const activePart = this.getActivePartsWithFallback();
|
|
1186
|
-
return (h("ion-picker-column
|
|
1187
|
+
return (h("ion-picker-column", { class: "year-column", color: this.color, disabled: disabled, value: workingParts.year, onIonChange: (ev) => {
|
|
1187
1188
|
// TODO(FW-1823) Remove this when iOS 14 support is dropped.
|
|
1188
1189
|
// Due to a Safari 14 issue we need to destroy
|
|
1189
1190
|
// the scroll listener before we update state
|
|
@@ -1197,7 +1198,7 @@ export class Datetime {
|
|
|
1197
1198
|
// the working parts have been updated.
|
|
1198
1199
|
this.initializeCalendarListener();
|
|
1199
1200
|
ev.stopPropagation();
|
|
1200
|
-
} }));
|
|
1201
|
+
} }, 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)))));
|
|
1201
1202
|
}
|
|
1202
1203
|
renderTimePickerColumns(forcePresentation) {
|
|
1203
1204
|
if (['date', 'month', 'month-year', 'year'].includes(forcePresentation)) {
|
|
@@ -1226,22 +1227,22 @@ export class Datetime {
|
|
|
1226
1227
|
if (hoursData.length === 0)
|
|
1227
1228
|
return [];
|
|
1228
1229
|
const activePart = this.getActivePartsWithFallback();
|
|
1229
|
-
return (h("ion-picker-column
|
|
1230
|
+
return (h("ion-picker-column", { color: this.color, disabled: disabled, value: activePart.hour, numericInput: true, onIonChange: (ev) => {
|
|
1230
1231
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { hour: ev.detail.value }));
|
|
1231
1232
|
this.setActiveParts(Object.assign(Object.assign({}, activePart), { hour: ev.detail.value }));
|
|
1232
1233
|
ev.stopPropagation();
|
|
1233
|
-
} }));
|
|
1234
|
+
} }, 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)))));
|
|
1234
1235
|
}
|
|
1235
1236
|
renderMinutePickerColumn(minutesData) {
|
|
1236
1237
|
const { disabled, workingParts } = this;
|
|
1237
1238
|
if (minutesData.length === 0)
|
|
1238
1239
|
return [];
|
|
1239
1240
|
const activePart = this.getActivePartsWithFallback();
|
|
1240
|
-
return (h("ion-picker-column
|
|
1241
|
+
return (h("ion-picker-column", { color: this.color, disabled: disabled, value: activePart.minute, numericInput: true, onIonChange: (ev) => {
|
|
1241
1242
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { minute: ev.detail.value }));
|
|
1242
1243
|
this.setActiveParts(Object.assign(Object.assign({}, activePart), { minute: ev.detail.value }));
|
|
1243
1244
|
ev.stopPropagation();
|
|
1244
|
-
} }));
|
|
1245
|
+
} }, 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)))));
|
|
1245
1246
|
}
|
|
1246
1247
|
renderDayPeriodPickerColumn(dayPeriodData) {
|
|
1247
1248
|
const { disabled, workingParts } = this;
|
|
@@ -1250,12 +1251,12 @@ export class Datetime {
|
|
|
1250
1251
|
}
|
|
1251
1252
|
const activePart = this.getActivePartsWithFallback();
|
|
1252
1253
|
const isDayPeriodRTL = isLocaleDayPeriodRTL(this.locale);
|
|
1253
|
-
return (h("ion-picker-column
|
|
1254
|
+
return (h("ion-picker-column", { style: isDayPeriodRTL ? { order: '-1' } : {}, color: this.color, disabled: disabled, value: activePart.ampm, onIonChange: (ev) => {
|
|
1254
1255
|
const hour = calculateHourFromAMPM(workingParts, ev.detail.value);
|
|
1255
1256
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { ampm: ev.detail.value, hour }));
|
|
1256
1257
|
this.setActiveParts(Object.assign(Object.assign({}, activePart), { ampm: ev.detail.value, hour }));
|
|
1257
1258
|
ev.stopPropagation();
|
|
1258
|
-
} }));
|
|
1259
|
+
} }, 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)))));
|
|
1259
1260
|
}
|
|
1260
1261
|
renderWheelView(forcePresentation) {
|
|
1261
1262
|
const { locale } = this;
|
|
@@ -1276,26 +1277,11 @@ export class Datetime {
|
|
|
1276
1277
|
const nextMonthDisabled = disabled || isNextMonthDisabled(this.workingParts, this.maxParts);
|
|
1277
1278
|
// don't use the inheritAttributes util because it removes dir from the host, and we still need that
|
|
1278
1279
|
const hostDir = this.el.getAttribute('dir') || undefined;
|
|
1279
|
-
return (h("div", { class: "calendar-header" }, h("div", { class: "calendar-action-buttons" }, h("div", { class: "calendar-month-year" }, h("
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
*
|
|
1285
|
-
* Currently there is not a way to set the aria-label on the inner button
|
|
1286
|
-
* on the `ion-item` and have it be reactive to changes. This is a workaround
|
|
1287
|
-
* until we either refactor `ion-item` to a button or Stencil adds a way to
|
|
1288
|
-
* have reactive props for built-in properties, such as `aria-label`.
|
|
1289
|
-
*/
|
|
1290
|
-
const { monthYearToggleItemRef } = this;
|
|
1291
|
-
if (monthYearToggleItemRef) {
|
|
1292
|
-
const btn = (_a = monthYearToggleItemRef.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-native');
|
|
1293
|
-
if (btn) {
|
|
1294
|
-
const monthYearAriaLabel = this.showMonthAndYear ? 'Hide year picker' : 'Show year picker';
|
|
1295
|
-
btn.setAttribute('aria-label', monthYearAriaLabel);
|
|
1296
|
-
}
|
|
1297
|
-
}
|
|
1298
|
-
} }, 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) => {
|
|
1280
|
+
return (h("div", { class: "calendar-header" }, h("div", { class: "calendar-action-buttons" }, h("div", { class: "calendar-month-year" }, h("button", { class: {
|
|
1281
|
+
'calendar-month-year-toggle': true,
|
|
1282
|
+
'ion-activatable': true,
|
|
1283
|
+
'ion-focusable': true,
|
|
1284
|
+
}, 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) => {
|
|
1299
1285
|
return h("div", { class: "day-of-week" }, d);
|
|
1300
1286
|
}))));
|
|
1301
1287
|
}
|
|
@@ -1456,7 +1442,7 @@ export class Datetime {
|
|
|
1456
1442
|
* This will correctly scroll the element position to the correct time value,
|
|
1457
1443
|
* before the popover is fully presented.
|
|
1458
1444
|
*/
|
|
1459
|
-
const cols = ev.target.querySelectorAll('ion-picker-column
|
|
1445
|
+
const cols = ev.target.querySelectorAll('ion-picker-column');
|
|
1460
1446
|
// TODO (FW-615): Potentially remove this when intersection observers are fixed in picker column
|
|
1461
1447
|
cols.forEach((col) => col.scrollActiveItemIntoView());
|
|
1462
1448
|
}, style: {
|
|
@@ -2293,9 +2279,8 @@ export class Datetime {
|
|
|
2293
2279
|
"complexType": {
|
|
2294
2280
|
"signature": "(closeOverlay?: boolean) => Promise<void>",
|
|
2295
2281
|
"parameters": [{
|
|
2296
|
-
"
|
|
2297
|
-
"
|
|
2298
|
-
"docs": ""
|
|
2282
|
+
"tags": [],
|
|
2283
|
+
"text": ""
|
|
2299
2284
|
}],
|
|
2300
2285
|
"references": {
|
|
2301
2286
|
"Promise": {
|
|
@@ -2314,9 +2299,8 @@ export class Datetime {
|
|
|
2314
2299
|
"complexType": {
|
|
2315
2300
|
"signature": "(startDate?: string) => Promise<void>",
|
|
2316
2301
|
"parameters": [{
|
|
2317
|
-
"
|
|
2318
|
-
"
|
|
2319
|
-
"docs": ""
|
|
2302
|
+
"tags": [],
|
|
2303
|
+
"text": ""
|
|
2320
2304
|
}],
|
|
2321
2305
|
"references": {
|
|
2322
2306
|
"Promise": {
|
|
@@ -2335,9 +2319,8 @@ export class Datetime {
|
|
|
2335
2319
|
"complexType": {
|
|
2336
2320
|
"signature": "(closeOverlay?: boolean) => Promise<void>",
|
|
2337
2321
|
"parameters": [{
|
|
2338
|
-
"
|
|
2339
|
-
"
|
|
2340
|
-
"docs": ""
|
|
2322
|
+
"tags": [],
|
|
2323
|
+
"text": ""
|
|
2341
2324
|
}],
|
|
2342
2325
|
"references": {
|
|
2343
2326
|
"Promise": {
|
|
@@ -2387,3 +2370,5 @@ export class Datetime {
|
|
|
2387
2370
|
}
|
|
2388
2371
|
}
|
|
2389
2372
|
let datetimeIds = 0;
|
|
2373
|
+
const WHEEL_ITEM_PART = 'wheel-item';
|
|
2374
|
+
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 {
|
|
@@ -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
|
/**
|
|
@@ -601,15 +638,36 @@ ion-picker-column-internal {
|
|
|
601
638
|
font-size: 2.125rem;
|
|
602
639
|
}
|
|
603
640
|
|
|
604
|
-
:host .datetime-calendar .calendar-action-buttons ion-item {
|
|
605
|
-
--padding-start: 20px;
|
|
606
|
-
}
|
|
607
|
-
|
|
608
|
-
:host .calendar-action-buttons ion-item,
|
|
609
641
|
:host .calendar-action-buttons ion-button {
|
|
610
642
|
--color: var(--ion-color-step-650, #595959);
|
|
611
643
|
}
|
|
612
644
|
|
|
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, #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;
|
|
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;
|
|
@@ -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);
|
|
@@ -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
|
});
|
|
@@ -372,4 +372,14 @@ 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
|
+
});
|
|
375
385
|
});
|
|
@@ -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 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();
|
|
@@ -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 { PickerColumn } from "../../../picker-column/picker-column";
|
|
8
|
+
import { Picker } from "../../../picker/picker";
|
|
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, PickerColumn, Picker],
|
|
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');
|
|
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"></ion-datetime>
|
|
88
|
+
<ion-datetime prefer-wheel="true" locale="ar-EG" presentation="date" value="2022-01-01" max="2022" min="2022"></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 ion-picker-column-option').nth(0);
|
|
92
92
|
await expect(datetimeYear).toHaveText('٢٠٢٢');
|
|
93
93
|
});
|
|
94
94
|
});
|
|
@@ -81,8 +81,8 @@ configs({ directions: ['ltr'], modes: ['ios'] }).forEach(({ title, config }) =>
|
|
|
81
81
|
const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent');
|
|
82
82
|
await page.click('.time-body');
|
|
83
83
|
await ionPopoverDidPresent.next();
|
|
84
|
-
const hours = page.locator('ion-popover ion-picker-column
|
|
85
|
-
const minutes = page.locator('ion-popover ion-picker-column
|
|
84
|
+
const hours = page.locator('ion-popover ion-picker-column:nth-child(1) ion-picker-column-option');
|
|
85
|
+
const minutes = page.locator('ion-popover ion-picker-column:nth-child(2) ion-picker-column-option');
|
|
86
86
|
expect(await hours.count()).toBe(12);
|
|
87
87
|
expect(await minutes.count()).toBe(60);
|
|
88
88
|
});
|
|
@@ -159,7 +159,7 @@ configs({ directions: ['ltr'], modes: ['ios'] }).forEach(({ title, config }) =>
|
|
|
159
159
|
value="2022-04-25T08:30:00"
|
|
160
160
|
></ion-datetime>
|
|
161
161
|
`, config);
|
|
162
|
-
const hourPickerItems = page.locator('ion-datetime ion-picker-column
|
|
162
|
+
const hourPickerItems = page.locator('ion-datetime ion-picker-column:first-of-type ion-picker-column-option');
|
|
163
163
|
await expect(hourPickerItems).toHaveText(['8', '9', '10', '11']);
|
|
164
164
|
});
|
|
165
165
|
test('should include 12PM when minimum is greater than 12', async ({ page }) => {
|
|
@@ -175,7 +175,7 @@ configs({ directions: ['ltr'], modes: ['ios'] }).forEach(({ title, config }) =>
|
|
|
175
175
|
value="2022-07-29T12:00:00"
|
|
176
176
|
></ion-datetime>
|
|
177
177
|
`, config);
|
|
178
|
-
const hourPickerItems = page.locator('ion-datetime ion-picker-column
|
|
178
|
+
const hourPickerItems = page.locator('ion-datetime ion-picker-column:first-of-type ion-picker-column-option');
|
|
179
179
|
await expect(hourPickerItems).toHaveText(['12', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11']);
|
|
180
180
|
});
|
|
181
181
|
test.describe('minmax value adjustment when out of bounds', () => {
|
|
@@ -218,7 +218,7 @@ configs({ directions: ['ltr'], modes: ['ios'] }).forEach(({ title, config }) =>
|
|
|
218
218
|
></ion-datetime>
|
|
219
219
|
`, config);
|
|
220
220
|
const datetime = page.locator('ion-datetime');
|
|
221
|
-
const monthColumnItems = page.locator('ion-datetime .month-column
|
|
221
|
+
const monthColumnItems = page.locator('ion-datetime .month-column ion-picker-column-option');
|
|
222
222
|
const ionChange = await page.spyOnEvent('ionChange');
|
|
223
223
|
await page.waitForSelector('.datetime-ready');
|
|
224
224
|
await monthColumnItems.nth(0).click(); // switch to January
|
|
@@ -258,7 +258,7 @@ configs({ directions: ['ltr'], modes: ['ios'] }).forEach(({ title, config }) =>
|
|
|
258
258
|
const timeButton = page.locator('ion-datetime .time-body');
|
|
259
259
|
await timeButton.click();
|
|
260
260
|
await ionPopoverDidPresent.next();
|
|
261
|
-
const hours = page.locator('ion-popover ion-picker-column
|
|
261
|
+
const hours = page.locator('ion-popover ion-picker-column:nth-child(1) ion-picker-column-option');
|
|
262
262
|
await expect(await hours.count()).toBe(4);
|
|
263
263
|
});
|
|
264
264
|
});
|
|
@@ -16,7 +16,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
16
16
|
test('should hide the footer when picker is open', async ({ page }) => {
|
|
17
17
|
const datetimeFooter = page.locator('#date-time .datetime-footer');
|
|
18
18
|
await expect(datetimeFooter).toBeVisible();
|
|
19
|
-
const pickerButton = page.locator('#date-time .calendar-month-year >
|
|
19
|
+
const pickerButton = page.locator('#date-time .calendar-month-year > .calendar-month-year-toggle');
|
|
20
20
|
await pickerButton.click();
|
|
21
21
|
await page.waitForChanges();
|
|
22
22
|
await expect(datetimeFooter).not.toBeVisible();
|