@ionic/core 7.5.7-dev.11701270755.14f050ad → 7.5.7-dev.11701274462.156e6f06
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/animation.js +12 -11
- package/components/backdrop.js +12 -0
- package/components/checkbox.js +2 -0
- package/components/data.js +1 -1
- package/components/gesture-controller.js +1 -1
- package/components/index4.js +10 -12
- package/components/index5.js +0 -22
- package/components/input-shims.js +12 -7
- package/components/input.utils.js +3 -2
- package/components/ion-content.js +1 -1
- package/components/ion-datetime.js +61 -28
- package/components/ion-input.js +31 -8
- package/components/ion-modal.js +2 -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 +299 -1
- package/components/ion-range.js +2 -0
- package/components/ion-select.js +44 -29
- package/components/ion-skeleton-text.js +14 -1
- package/components/ion-textarea.js +30 -7
- package/components/ion-toast.js +419 -74
- package/components/ion-toggle.js +2 -0
- package/components/item.js +2 -2
- package/components/label.js +2 -2
- package/components/overlays.js +6 -12
- package/components/picker-column-internal.js +390 -0
- package/components/picker-column.js +320 -331
- package/components/{picker.js → picker-internal.js} +16 -16
- package/components/radio-group.js +2 -0
- package/components/radio.js +42 -2
- package/dist/cjs/{animation-1083855c.js → animation-d101aa7a.js} +13 -12
- package/dist/cjs/{button-active-cd07b55b.js → button-active-ba107e4e.js} +2 -2
- package/dist/cjs/{capacitor-2ffba62a.js → capacitor-f68447d3.js} +1 -1
- package/dist/cjs/compare-with-utils-c0444525.js +44 -0
- package/dist/cjs/{data-4845b494.js → data-c8d21093.js} +1 -1
- package/dist/cjs/{gesture-controller-d6a3f907.js → gesture-controller-b46721be.js} +0 -1
- package/dist/cjs/{haptic-678abc9f.js → haptic-a74c2767.js} +1 -1
- package/dist/cjs/{index-0f8b33f8.js → index-0ee995e4.js} +1 -1
- package/dist/cjs/{index-d7561763.js → index-4f0c67e1.js} +11 -13
- package/dist/cjs/{index-573877f3.js → index-56d41f51.js} +2 -2
- package/dist/cjs/index-c8d52405.js +10 -0
- package/dist/cjs/{index-9f379eaa.js → index-e9634bc9.js} +1 -1
- package/dist/cjs/index.cjs.js +10 -10
- package/dist/cjs/{input-shims-b0a75a01.js → input-shims-3e3f35b9.js} +15 -10
- package/dist/cjs/{input.utils-0fe3097c.js → input.utils-bdb6953c.js} +4 -3
- package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -8
- package/dist/cjs/ion-alert.cjs.entry.js +8 -8
- package/dist/cjs/ion-app_8.cjs.entry.js +10 -10
- package/dist/cjs/ion-backdrop.cjs.entry.js +12 -0
- package/dist/cjs/ion-checkbox.cjs.entry.js +2 -0
- package/dist/cjs/ion-datetime-button.cjs.entry.js +1 -1
- package/dist/cjs/ion-datetime_3.cjs.entry.js +43 -30
- package/dist/cjs/ion-input.cjs.entry.js +34 -11
- package/dist/cjs/ion-item-option_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-item_8.cjs.entry.js +17 -4
- package/dist/cjs/ion-loading.cjs.entry.js +3 -4
- package/dist/cjs/ion-menu_3.cjs.entry.js +7 -7
- package/dist/cjs/ion-modal.cjs.entry.js +10 -10
- package/dist/cjs/ion-nav_2.cjs.entry.js +2 -2
- package/dist/cjs/{ion-picker-column.cjs.entry.js → ion-picker-column-internal.cjs.entry.js} +12 -12
- package/dist/cjs/{ion-picker.cjs.entry.js → ion-picker-internal.cjs.entry.js} +13 -13
- package/dist/cjs/ion-popover.cjs.entry.js +4 -5
- package/dist/cjs/ion-radio_2.cjs.entry.js +6 -1
- package/dist/cjs/ion-range.cjs.entry.js +3 -1
- package/dist/cjs/ion-refresher_2.cjs.entry.js +7 -7
- package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-segment_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-select_3.cjs.entry.js +51 -36
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-textarea.cjs.entry.js +33 -10
- package/dist/cjs/ion-toast.cjs.entry.js +434 -93
- package/dist/cjs/ion-toggle.cjs.entry.js +6 -4
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/{ios.transition-ac909bc8.js → ios.transition-f4caf640.js} +3 -3
- package/dist/cjs/{keyboard-fd7db491.js → keyboard-43df0428.js} +1 -1
- package/dist/cjs/{keyboard-38f2bb7b.js → keyboard-840107b3.js} +3 -3
- package/dist/cjs/{keyboard-controller-50beb83a.js → keyboard-controller-019f42df.js} +2 -2
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{md.transition-907af519.js → md.transition-33331e93.js} +3 -3
- package/dist/cjs/{notch-controller-f4f6af5d.js → notch-controller-c22d1344.js} +1 -1
- package/dist/cjs/{overlays-dbb71984.js → overlays-4d8897dc.js} +7 -12
- package/dist/cjs/{swipe-back-a6dc6e5d.js → swipe-back-d0412fb6.js} +2 -2
- package/dist/collection/collection-manifest.json +6 -7
- package/dist/collection/components/backdrop/backdrop.js +12 -0
- package/dist/collection/components/checkbox/checkbox.js +2 -0
- package/dist/collection/components/content/content.css +4 -0
- package/dist/collection/components/datetime/datetime.ios.css +26 -84
- package/dist/collection/components/datetime/datetime.js +29 -14
- package/dist/collection/components/datetime/datetime.md.css +26 -89
- 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/disabled/datetime.spec.js +4 -4
- package/dist/collection/components/datetime/test/minmax/datetime.e2e.js +5 -5
- 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 +2 -2
- package/dist/collection/components/datetime/test/presentation/datetime.e2e.js +1 -1
- package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +2 -2
- package/dist/collection/components/datetime/test/values/datetime.e2e.js +5 -5
- package/dist/collection/components/datetime/utils/data.js +1 -1
- package/dist/collection/components/input/input.ios.css +10 -3
- package/dist/collection/components/input/input.js +31 -6
- package/dist/collection/components/input/input.md.css +13 -12
- package/dist/collection/components/input/test/slot/input.e2e.js +51 -0
- package/dist/collection/components/item/item.ios.css +26 -3
- package/dist/collection/components/item/item.md.css +26 -3
- package/dist/collection/components/item/test/basic/item.e2e.js +1 -1
- package/dist/collection/components/item/test/disabled/item.e2e.js +0 -1
- package/dist/collection/components/label/label.ios.css +14 -3
- package/dist/collection/components/label/label.md.css +14 -3
- package/dist/collection/components/modal/gestures/swipe-to-close.js +2 -1
- package/dist/collection/components/note/test/a11y/note.e2e.js +43 -0
- package/dist/collection/components/picker/picker.ios.css +205 -100
- package/dist/collection/components/picker/picker.js +735 -463
- package/dist/collection/components/picker/picker.md.css +194 -98
- package/dist/collection/components/picker/test/basic/picker.e2e.js +13 -106
- 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.ios.css +176 -59
- package/dist/collection/components/picker-column/picker-column.js +333 -478
- package/dist/collection/components/picker-column/picker-column.md.css +113 -63
- 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-internal/picker-column-internal.ios.css +138 -0
- package/dist/collection/components/picker-column-internal/picker-column-internal.js +565 -0
- package/dist/collection/components/{picker-legacy-column/picker-column.md.css → picker-column-internal/picker-column-internal.md.css} +63 -113
- package/dist/collection/components/{picker-column/test/basic/picker-column.e2e.js → picker-column-internal/test/basic/picker-column-internal.e2e.js} +7 -7
- package/dist/collection/components/{picker-column/test/disabled/picker-column.e2e.js → picker-column-internal/test/disabled/picker-column-internal.e2e.js} +39 -39
- 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-column/picker-column.ios.css → picker-internal/picker-internal.md.css} +101 -98
- 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} +20 -20
- package/dist/collection/components/radio/radio.js +5 -2
- package/dist/collection/components/radio-group/radio-group.js +24 -0
- package/dist/collection/components/radio-group/test/radio-group.spec.js +69 -0
- package/dist/collection/components/range/range.js +2 -0
- package/dist/collection/components/select/select.ios.css +61 -7
- package/dist/collection/components/select/select.js +45 -28
- package/dist/collection/components/select/select.md.css +64 -19
- package/dist/collection/components/select/test/item/select.e2e.js +13 -0
- package/dist/collection/components/select/test/label/select.e2e.js +1 -1
- package/dist/collection/components/select/test/legacy/wrapping/select.e2e.js +1 -1
- package/dist/collection/components/select/test/slot/select.e2e.js +67 -0
- package/dist/collection/components/skeleton-text/skeleton-text.js +39 -0
- package/dist/collection/components/textarea/test/slot/textarea.e2e.js +51 -0
- package/dist/collection/components/textarea/textarea.ios.css +37 -5
- package/dist/collection/components/textarea/textarea.js +30 -5
- package/dist/collection/components/textarea/textarea.md.css +47 -14
- package/dist/collection/components/toast/animations/ios.enter.js +2 -1
- package/dist/collection/components/toast/animations/md.enter.js +4 -3
- package/dist/collection/components/toast/animations/utils.js +20 -14
- package/dist/collection/components/toast/gestures/swipe-to-dismiss.js +267 -0
- package/dist/collection/components/toast/test/swipe-gesture/toast.e2e.js +84 -0
- package/dist/collection/components/toast/test/toast-config.spec.js +25 -0
- package/dist/collection/components/toast/test/toast.spec.js +80 -0
- package/dist/collection/components/toast/toast.ios.css +10 -10
- package/dist/collection/components/toast/toast.js +104 -1
- package/dist/collection/components/toast/toast.md.css +10 -0
- package/dist/collection/components/toggle/toggle.js +2 -0
- package/dist/collection/utils/animation/animation.js +12 -11
- package/dist/collection/utils/animation/test/animation.spec.js +16 -0
- package/dist/collection/utils/browser/index.js +0 -22
- package/dist/collection/utils/forms/compare-with-utils.js +39 -0
- package/dist/collection/utils/forms/index.js +1 -0
- package/dist/collection/utils/gesture/gesture-controller.js +1 -1
- package/dist/collection/utils/input-shims/input-shims.js +12 -6
- package/dist/collection/utils/menu-controller/index.js +10 -12
- package/dist/collection/utils/overlays.js +5 -11
- package/dist/collection/utils/slot-mutation-controller.js +3 -2
- package/dist/docs.json +166 -385
- package/dist/esm/{animation-8aa13916.js → animation-cf3dd234.js} +13 -12
- package/dist/esm/{button-active-5b0516e7.js → button-active-47196c40.js} +2 -2
- package/dist/esm/{capacitor-b4979570.js → capacitor-f1f25364.js} +1 -1
- package/dist/esm/compare-with-utils-4928c09d.js +41 -0
- package/dist/esm/{data-12e24f00.js → data-44d9e816.js} +1 -1
- package/dist/esm/{gesture-controller-3723db7c.js → gesture-controller-0fa396c4.js} +1 -1
- package/dist/esm/{haptic-1243b917.js → haptic-1a66d69f.js} +1 -1
- package/dist/esm/{index-0aa6e61f.js → index-23c05a55.js} +11 -13
- package/dist/esm/{index-6a0ccabb.js → index-702b3cd3.js} +2 -2
- package/dist/esm/index-a5d50daf.js +7 -0
- package/dist/esm/{index-f0cc4e14.js → index-c9e82353.js} +1 -1
- package/dist/esm/{index-32cbee52.js → index-ff313b19.js} +2 -2
- package/dist/esm/index.js +10 -10
- package/dist/esm/{input-shims-d0c93e5d.js → input-shims-1d767845.js} +14 -9
- package/dist/esm/{input.utils-ec063df4.js → input.utils-2cf5e372.js} +4 -3
- package/dist/esm/ion-action-sheet.entry.js +8 -8
- package/dist/esm/ion-alert.entry.js +8 -8
- package/dist/esm/ion-app_8.entry.js +10 -10
- package/dist/esm/ion-backdrop.entry.js +12 -0
- package/dist/esm/ion-checkbox.entry.js +2 -0
- package/dist/esm/ion-datetime-button.entry.js +1 -1
- package/dist/esm/ion-datetime_3.entry.js +42 -29
- package/dist/esm/ion-input.entry.js +34 -11
- package/dist/esm/ion-item-option_3.entry.js +1 -1
- package/dist/esm/ion-item_8.entry.js +17 -4
- package/dist/esm/ion-loading.entry.js +3 -4
- package/dist/esm/ion-menu_3.entry.js +7 -7
- package/dist/esm/ion-modal.entry.js +10 -10
- package/dist/esm/ion-nav_2.entry.js +2 -2
- package/dist/esm/{ion-picker-column.entry.js → ion-picker-column-internal.entry.js} +12 -12
- package/dist/esm/{ion-picker.entry.js → ion-picker-internal.entry.js} +13 -13
- package/dist/esm/ion-popover.entry.js +4 -5
- package/dist/esm/ion-radio_2.entry.js +6 -1
- package/dist/esm/ion-range.entry.js +3 -1
- package/dist/esm/ion-refresher_2.entry.js +7 -7
- package/dist/esm/ion-reorder_2.entry.js +4 -4
- package/dist/esm/ion-segment_2.entry.js +1 -1
- package/dist/esm/ion-select_3.entry.js +47 -32
- package/dist/esm/ion-tab-bar_2.entry.js +4 -4
- package/dist/esm/ion-textarea.entry.js +33 -10
- package/dist/esm/ion-toast.entry.js +417 -76
- package/dist/esm/ion-toggle.entry.js +6 -4
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/{ios.transition-1651c430.js → ios.transition-c3e77862.js} +3 -3
- package/dist/esm/{keyboard-b551279d.js → keyboard-9f771a04.js} +3 -3
- package/dist/esm/{keyboard-b063f012.js → keyboard-b6230bfb.js} +1 -1
- package/dist/esm/{keyboard-controller-0c2dce71.js → keyboard-controller-3f0faa10.js} +2 -2
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{md.transition-66f18369.js → md.transition-1173eca9.js} +3 -3
- package/dist/esm/{notch-controller-8c9c0e54.js → notch-controller-3f79197e.js} +1 -1
- package/dist/esm/{overlays-789cd7a7.js → overlays-34169295.js} +7 -13
- package/dist/esm/{swipe-back-cc4c2bcb.js → swipe-back-0f3bfc8e.js} +2 -2
- package/dist/esm-es5/{animation-8aa13916.js → animation-cf3dd234.js} +1 -1
- package/dist/esm-es5/{button-active-5b0516e7.js → button-active-47196c40.js} +1 -1
- package/dist/esm-es5/{capacitor-b4979570.js → capacitor-f1f25364.js} +1 -1
- package/dist/esm-es5/compare-with-utils-4928c09d.js +4 -0
- package/dist/esm-es5/{gesture-controller-3723db7c.js → gesture-controller-0fa396c4.js} +1 -1
- package/dist/esm-es5/{haptic-1243b917.js → haptic-1a66d69f.js} +1 -1
- package/dist/esm-es5/index-23c05a55.js +4 -0
- package/dist/esm-es5/{index-6a0ccabb.js → index-702b3cd3.js} +1 -1
- package/dist/esm-es5/index-c9e82353.js +4 -0
- package/dist/esm-es5/{index-32cbee52.js → index-ff313b19.js} +1 -1
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/input-shims-1d767845.js +4 -0
- package/dist/esm-es5/input.utils-2cf5e372.js +4 -0
- 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-backdrop.entry.js +1 -1
- package/dist/esm-es5/ion-checkbox.entry.js +1 -1
- package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
- package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
- package/dist/esm-es5/ion-input.entry.js +1 -1
- package/dist/esm-es5/ion-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-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-segment_2.entry.js +1 -1
- package/dist/esm-es5/ion-select_3.entry.js +1 -1
- package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
- package/dist/esm-es5/ion-textarea.entry.js +1 -1
- package/dist/esm-es5/ion-toast.entry.js +1 -1
- package/dist/esm-es5/ion-toggle.entry.js +1 -1
- package/dist/esm-es5/ionic.js +1 -1
- package/dist/esm-es5/{ios.transition-1651c430.js → ios.transition-c3e77862.js} +1 -1
- package/dist/esm-es5/{keyboard-b551279d.js → keyboard-9f771a04.js} +1 -1
- package/dist/esm-es5/{keyboard-b063f012.js → keyboard-b6230bfb.js} +1 -1
- package/dist/esm-es5/{keyboard-controller-0c2dce71.js → keyboard-controller-3f0faa10.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/md.transition-1173eca9.js +4 -0
- package/dist/esm-es5/{notch-controller-8c9c0e54.js → notch-controller-3f79197e.js} +1 -1
- package/dist/esm-es5/overlays-34169295.js +4 -0
- package/dist/esm-es5/swipe-back-0f3bfc8e.js +4 -0
- package/dist/html.html-data.json +15 -120
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-02d8fdba.system.entry.js → p-03ed6107.system.entry.js} +1 -1
- package/dist/ionic/p-0547e914.entry.js +4 -0
- package/dist/ionic/{p-81c818e7.js → p-11cb4e19.js} +1 -1
- package/dist/ionic/p-131761b4.entry.js +4 -0
- package/dist/ionic/p-196f2123.system.entry.js +4 -0
- package/dist/ionic/{p-64ed03a3.entry.js → p-1abc74d9.entry.js} +1 -1
- package/dist/ionic/p-1cf5e8d6.entry.js +4 -0
- package/dist/ionic/{p-c4042875.system.js → p-21b4981c.system.js} +1 -1
- package/dist/ionic/p-2207f3c2.js +4 -0
- package/dist/ionic/p-27eb8a91.system.entry.js +4 -0
- package/dist/ionic/p-2a41d4d1.js +4 -0
- package/dist/ionic/p-31189dae.entry.js +4 -0
- package/dist/ionic/p-314c4dee.js +4 -0
- package/dist/ionic/{p-4f3e2767.system.entry.js → p-37c69d34.system.entry.js} +1 -1
- package/dist/ionic/p-385c51f8.system.entry.js +4 -0
- package/dist/ionic/{p-477a182e.entry.js → p-3abf5b7a.entry.js} +1 -1
- package/dist/ionic/p-3bc3d880.system.js +4 -0
- package/dist/ionic/{p-56224549.entry.js → p-3de79805.entry.js} +1 -1
- package/dist/ionic/{p-9e6bf9ed.entry.js → p-3e655d4c.entry.js} +1 -1
- package/dist/ionic/p-40903d34.system.js +1 -1
- package/dist/ionic/p-43716898.js +4 -0
- package/dist/ionic/p-450a26bf.js +4 -0
- package/dist/ionic/p-485668f0.entry.js +4 -0
- package/dist/ionic/p-48c59094.system.entry.js +4 -0
- package/dist/ionic/p-494e75ad.js +4 -0
- package/dist/ionic/{p-cb62e3fc.system.entry.js → p-4c80afe1.system.entry.js} +1 -1
- package/dist/ionic/{p-0e23256e.system.entry.js → p-54824705.system.entry.js} +1 -1
- package/dist/ionic/p-561cc050.system.js +4 -0
- package/dist/ionic/{p-4a142496.system.entry.js → p-587afb80.system.entry.js} +1 -1
- package/dist/ionic/{p-8cf94fc1.js → p-5885e9af.js} +1 -1
- package/dist/ionic/p-5bd4e009.entry.js +4 -0
- package/dist/ionic/{p-b3e79338.system.entry.js → p-5e6bc319.system.entry.js} +1 -1
- package/dist/ionic/{p-939d903b.entry.js → p-64ab3eb3.entry.js} +1 -1
- package/dist/ionic/p-671dbd61.js +4 -0
- package/dist/ionic/{p-702d85d8.system.js → p-67951604.system.js} +1 -1
- package/dist/ionic/{p-835e0346.entry.js → p-6797887a.entry.js} +1 -1
- package/dist/ionic/p-693cabd5.entry.js +4 -0
- package/dist/ionic/{p-b923f3d7.js → p-6a309574.js} +1 -1
- package/dist/ionic/{p-a4cda7a8.system.entry.js → p-6e23777e.system.entry.js} +1 -1
- package/dist/ionic/{p-06e6d235.system.entry.js → p-7047a40c.system.entry.js} +2 -2
- package/dist/ionic/p-70dcf429.js +4 -0
- package/dist/ionic/p-710cea83.system.js +4 -0
- package/dist/ionic/p-7b44e419.js +4 -0
- package/dist/ionic/p-80a9b397.entry.js +4 -0
- package/dist/ionic/{p-9b5301cc.system.entry.js → p-823890d5.system.entry.js} +1 -1
- package/dist/ionic/{p-a57f223c.system.js → p-83a455fd.system.js} +1 -1
- package/dist/ionic/{p-baa7cb1e.entry.js → p-8ad82eb3.entry.js} +1 -1
- package/dist/ionic/{p-c1229981.entry.js → p-8b15ca22.entry.js} +1 -1
- package/dist/ionic/{p-a7e2ac5c.js → p-8b1be026.js} +1 -1
- package/dist/ionic/p-8dbdb163.system.js +4 -0
- package/dist/ionic/p-8ddfecbf.entry.js +4 -0
- package/dist/ionic/{p-b4b4bb29.system.js → p-9292fd42.system.js} +1 -1
- package/dist/ionic/{p-41477ad9.system.js → p-958f1c70.system.js} +1 -1
- package/dist/ionic/{p-5ce11143.entry.js → p-965677f1.entry.js} +1 -1
- package/dist/ionic/p-98712253.system.entry.js +4 -0
- package/dist/ionic/p-9c6787e2.entry.js +4 -0
- package/dist/ionic/{p-6500b298.system.js → p-9e852ff1.system.js} +1 -1
- package/dist/ionic/p-a11c1aff.system.entry.js +4 -0
- package/dist/ionic/{p-419eb426.js → p-a135e3ba.js} +1 -1
- package/dist/ionic/p-a31099a4.entry.js +4 -0
- package/dist/ionic/p-a6bc00ab.entry.js +4 -0
- package/dist/ionic/p-a9c3699b.system.entry.js +4 -0
- package/dist/ionic/p-ad4b4f73.system.entry.js +4 -0
- package/dist/ionic/{p-ab4cff27.system.js → p-aec8a70a.system.js} +1 -1
- package/dist/ionic/p-b673ee9b.entry.js +4 -0
- package/dist/ionic/p-be0f6600.system.js +4 -0
- package/dist/ionic/p-beb64be7.system.entry.js +4 -0
- package/dist/ionic/{p-dd837fa8.entry.js → p-c1e725db.entry.js} +1 -1
- package/dist/ionic/p-c2db1374.system.js +4 -0
- package/dist/ionic/p-c3547c7a.system.js +4 -0
- package/dist/ionic/{p-c7fd81ba.system.js → p-c4de53af.system.js} +1 -1
- package/dist/ionic/p-c700acef.system.js +4 -0
- package/dist/ionic/p-c919498d.entry.js +4 -0
- package/dist/ionic/{p-3f88eab8.system.entry.js → p-cc615985.system.entry.js} +1 -1
- package/dist/ionic/p-d48872b1.system.js +4 -0
- package/dist/ionic/p-d4fba36b.system.entry.js +4 -0
- package/dist/ionic/{p-22813b28.system.entry.js → p-d61a2cee.system.entry.js} +1 -1
- package/dist/ionic/{p-c31fc05f.system.entry.js → p-db5043df.system.entry.js} +1 -1
- package/dist/ionic/{p-100ef961.js → p-e0b06b65.js} +1 -1
- package/dist/ionic/p-e5b8f2f7.js +4 -0
- package/dist/ionic/{p-3bad5c1a.js → p-e5fd9f10.js} +1 -1
- package/dist/ionic/{p-302091ab.js → p-e627ed84.js} +1 -1
- package/dist/ionic/{p-ccdcb022.system.js → p-e7d20dfb.system.js} +1 -1
- package/dist/ionic/{p-14b4348c.system.js → p-e9e5755c.system.js} +1 -1
- package/dist/ionic/p-ea9addc8.system.entry.js +4 -0
- package/dist/ionic/p-f36112b4.entry.js +4 -0
- package/dist/ionic/p-f43f4102.entry.js +4 -0
- package/dist/ionic/p-f5d78105.entry.js +4 -0
- package/dist/ionic/p-f7769c83.js +4 -0
- package/dist/ionic/{p-bba2ce59.system.js → p-f9a641fa.system.js} +1 -1
- package/dist/ionic/{p-2e1794df.system.js → p-fa8d4788.system.js} +1 -1
- package/dist/ionic/p-fcb148dc.system.entry.js +4 -0
- package/dist/ionic/p-fcc23f25.system.entry.js +4 -0
- package/dist/ionic/{p-878c7aa5.system.entry.js → p-fce6b76a.system.entry.js} +1 -1
- package/dist/ionic/p-fdcf04c3.system.entry.js +4 -0
- package/dist/ionic/{p-a0b6d438.js → p-fe1f93f2.js} +1 -1
- 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 +2 -2
- package/dist/types/components/input/input.d.ts +2 -0
- 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 -94
- 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/radio-group/radio-group-interface.d.ts +1 -0
- package/dist/types/components/radio-group/radio-group.d.ts +8 -1
- package/dist/types/components/router/router.d.ts +2 -1
- package/dist/types/components/select/select.d.ts +6 -1
- package/dist/types/components/skeleton-text/skeleton-text.d.ts +9 -1
- package/dist/types/components/textarea/textarea.d.ts +2 -0
- package/dist/types/components/toast/animations/utils.d.ts +15 -4
- package/dist/types/components/toast/gestures/swipe-to-dismiss.d.ts +9 -0
- package/dist/types/components/toast/toast-interface.d.ts +2 -0
- package/dist/types/components/toast/toast.d.ts +28 -1
- package/dist/types/components.d.ts +159 -157
- package/dist/types/interface.d.ts +2 -6
- package/dist/types/utils/animation/animation-interface.d.ts +4 -4
- package/dist/types/utils/browser/index.d.ts +11 -2
- package/dist/types/utils/config.d.ts +2 -2
- package/dist/types/utils/forms/compare-with-utils.d.ts +18 -0
- package/dist/types/utils/forms/index.d.ts +1 -0
- package/dist/types/utils/gesture/gesture-controller.d.ts +0 -1
- package/dist/types/utils/hardware-back-button.d.ts +4 -0
- package/dist/types/utils/overlays.d.ts +3 -5
- package/dist/types/utils/slot-mutation-controller.d.ts +2 -2
- package/hydrate/index.js +2003 -1567
- package/package.json +1 -1
- package/components/ion-picker-column-option.d.ts +0 -11
- package/components/ion-picker-column-option.js +0 -52
- 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-column2.js +0 -379
- package/dist/cjs/index-306a7476.js +0 -32
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +0 -35
- package/dist/collection/components/item/test/text/item.e2e.js +0 -14
- package/dist/collection/components/picker-column-option/picker-column-option.js +0 -68
- package/dist/collection/components/picker-column-option/test/a11y/picker-column-option.e2e.js +0 -18
- package/dist/collection/components/picker-legacy/picker.ios.css +0 -367
- 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/index-7a14ecec.js +0 -29
- package/dist/esm/ion-picker-column-option.entry.js +0 -31
- package/dist/esm-es5/index-0aa6e61f.js +0 -4
- package/dist/esm-es5/index-f0cc4e14.js +0 -4
- package/dist/esm-es5/input-shims-d0c93e5d.js +0 -4
- package/dist/esm-es5/input.utils-ec063df4.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/md.transition-66f18369.js +0 -4
- package/dist/esm-es5/overlays-789cd7a7.js +0 -4
- package/dist/esm-es5/swipe-back-cc4c2bcb.js +0 -4
- package/dist/ionic/p-0c244faf.entry.js +0 -4
- package/dist/ionic/p-20cf4994.js +0 -4
- package/dist/ionic/p-234b9617.system.entry.js +0 -4
- package/dist/ionic/p-25c34422.system.entry.js +0 -4
- package/dist/ionic/p-276afddd.js +0 -4
- package/dist/ionic/p-2804781b.entry.js +0 -4
- package/dist/ionic/p-2ad38423.system.entry.js +0 -4
- package/dist/ionic/p-2ba9414e.entry.js +0 -4
- package/dist/ionic/p-2e8e0045.js +0 -4
- package/dist/ionic/p-332f64af.system.entry.js +0 -4
- package/dist/ionic/p-352c0232.system.entry.js +0 -4
- package/dist/ionic/p-3602001b.system.js +0 -4
- package/dist/ionic/p-3632220b.system.js +0 -4
- package/dist/ionic/p-39074595.entry.js +0 -4
- package/dist/ionic/p-439e20ef.entry.js +0 -4
- package/dist/ionic/p-4cd588b3.system.entry.js +0 -4
- package/dist/ionic/p-67aab78f.js +0 -4
- package/dist/ionic/p-67eecef4.system.js +0 -4
- package/dist/ionic/p-6893f6e4.entry.js +0 -4
- package/dist/ionic/p-77e7a9c8.entry.js +0 -4
- package/dist/ionic/p-7c66a566.system.entry.js +0 -4
- package/dist/ionic/p-8b4ab236.entry.js +0 -4
- package/dist/ionic/p-9403b297.system.entry.js +0 -4
- package/dist/ionic/p-966cf574.system.entry.js +0 -4
- package/dist/ionic/p-97c65aa5.js +0 -4
- package/dist/ionic/p-992d3bad.entry.js +0 -4
- package/dist/ionic/p-9ab6f3e6.system.js +0 -4
- package/dist/ionic/p-9b89cbde.js +0 -4
- package/dist/ionic/p-9c967a65.system.entry.js +0 -4
- package/dist/ionic/p-a21b8d05.entry.js +0 -4
- package/dist/ionic/p-b0cee324.entry.js +0 -4
- package/dist/ionic/p-b1142133.entry.js +0 -4
- package/dist/ionic/p-b4cbb736.js +0 -4
- package/dist/ionic/p-b6a8588f.entry.js +0 -4
- package/dist/ionic/p-b6f8ee31.entry.js +0 -4
- package/dist/ionic/p-ba70d455.entry.js +0 -4
- package/dist/ionic/p-bd7a3269.entry.js +0 -4
- package/dist/ionic/p-c32bf078.system.entry.js +0 -4
- package/dist/ionic/p-cc196b34.js +0 -4
- package/dist/ionic/p-d1de1188.js +0 -4
- package/dist/ionic/p-d21bfe66.system.entry.js +0 -4
- package/dist/ionic/p-d3952bd5.system.entry.js +0 -4
- package/dist/ionic/p-dc565ca3.js +0 -4
- package/dist/ionic/p-dfa756ed.system.js +0 -4
- package/dist/ionic/p-e88ed07f.system.js +0 -4
- package/dist/ionic/p-eb07ec1a.system.entry.js +0 -4
- package/dist/ionic/p-eb5697b5.system.js +0 -4
- package/dist/ionic/p-ee800093.entry.js +0 -4
- package/dist/ionic/p-f0559c5d.system.entry.js +0 -4
- package/dist/ionic/p-fdd22426.entry.js +0 -4
- package/dist/ionic/p-ff5a10f9.system.js +0 -4
- package/dist/types/components/picker/picker-interfaces.d.ts +0 -8
- package/dist/types/components/picker-column-option/picker-column-option.d.ts +0 -16
- 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}/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-12e24f00.js → data-44d9e816.js} +0 -0
- /package/dist/esm-es5/{index-7a14ecec.js → index-a5d50daf.js} +0 -0
- /package/dist/ionic/{p-bb849ebb.js → p-17240d90.js} +0 -0
- /package/dist/ionic/{p-0e94957a.system.js → p-792919fd.system.js} +0 -0
- /package/dist/ionic/{p-b347cfd1.js → p-7b30edcc.js} +0 -0
- /package/dist/ionic/{p-e4219e27.system.js → p-b8c3f071.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
- /package/dist/types/components/{picker-column/picker-column-interfaces.d.ts → picker-column-internal/picker-column-internal-interfaces.d.ts} +0 -0
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"components/col/col.js",
|
|
25
25
|
"components/content/content.js",
|
|
26
26
|
"components/datetime/datetime.js",
|
|
27
|
-
"components/picker-column/picker-column.js",
|
|
28
|
-
"components/picker/picker.js",
|
|
27
|
+
"components/picker-column-internal/picker-column-internal.js",
|
|
28
|
+
"components/picker-internal/picker-internal.js",
|
|
29
29
|
"components/datetime-button/datetime-button.js",
|
|
30
30
|
"components/fab/fab.js",
|
|
31
31
|
"components/fab-button/fab-button.js",
|
|
@@ -55,9 +55,8 @@
|
|
|
55
55
|
"components/nav/nav.js",
|
|
56
56
|
"components/nav-link/nav-link.js",
|
|
57
57
|
"components/note/note.js",
|
|
58
|
-
"components/picker
|
|
59
|
-
"components/picker-
|
|
60
|
-
"components/picker-legacy-column/picker-column.js",
|
|
58
|
+
"components/picker/picker.js",
|
|
59
|
+
"components/picker-column/picker-column.js",
|
|
61
60
|
"components/popover/popover.js",
|
|
62
61
|
"components/progress-bar/progress-bar.js",
|
|
63
62
|
"components/range/range.js",
|
|
@@ -288,8 +287,8 @@
|
|
|
288
287
|
{
|
|
289
288
|
"components": [
|
|
290
289
|
"ion-datetime",
|
|
291
|
-
"ion-picker
|
|
292
|
-
"ion-picker-
|
|
290
|
+
"ion-picker",
|
|
291
|
+
"ion-picker-column"
|
|
293
292
|
]
|
|
294
293
|
},
|
|
295
294
|
{
|
|
@@ -2,13 +2,25 @@
|
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
4
|
import { Host, h } from "@stencil/core";
|
|
5
|
+
import { GESTURE_CONTROLLER } from "../../utils/gesture/index";
|
|
5
6
|
import { getIonMode } from "../../global/ionic-global";
|
|
6
7
|
export class Backdrop {
|
|
7
8
|
constructor() {
|
|
9
|
+
this.blocker = GESTURE_CONTROLLER.createBlocker({
|
|
10
|
+
disableScroll: true,
|
|
11
|
+
});
|
|
8
12
|
this.visible = true;
|
|
9
13
|
this.tappable = true;
|
|
10
14
|
this.stopPropagation = true;
|
|
11
15
|
}
|
|
16
|
+
connectedCallback() {
|
|
17
|
+
if (this.stopPropagation) {
|
|
18
|
+
this.blocker.block();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
disconnectedCallback() {
|
|
22
|
+
this.blocker.unblock();
|
|
23
|
+
}
|
|
12
24
|
onMouseDown(ev) {
|
|
13
25
|
this.emitTap(ev);
|
|
14
26
|
}
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
* widest item in the column. Setting a minimum
|
|
81
81
|
* width avoids this layout shifting.
|
|
82
82
|
*/
|
|
83
|
-
ion-picker-column {
|
|
83
|
+
ion-picker-column-internal {
|
|
84
84
|
min-width: 26px;
|
|
85
85
|
}
|
|
86
86
|
|
|
@@ -94,7 +94,7 @@ ion-picker-column {
|
|
|
94
94
|
}
|
|
95
95
|
|
|
96
96
|
/**
|
|
97
|
-
* This ensures that the picker is
|
|
97
|
+
* This ensures that the picker is apppropriately
|
|
98
98
|
* sized and never truncates the text.
|
|
99
99
|
*/
|
|
100
100
|
:host(.datetime-size-fixed.datetime-prefer-wheel) {
|
|
@@ -317,8 +317,24 @@ ion-picker-column {
|
|
|
317
317
|
justify-content: space-between;
|
|
318
318
|
}
|
|
319
319
|
|
|
320
|
+
:host .calendar-action-buttons ion-item,
|
|
320
321
|
:host .calendar-action-buttons ion-button {
|
|
321
|
-
--background:
|
|
322
|
+
--background: translucent;
|
|
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;
|
|
322
338
|
}
|
|
323
339
|
|
|
324
340
|
:host .calendar-days-of-week {
|
|
@@ -500,66 +516,8 @@ ion-picker-column {
|
|
|
500
516
|
position: static;
|
|
501
517
|
}
|
|
502
518
|
|
|
503
|
-
:host(.show-month-and-year) .calendar-action-buttons
|
|
504
|
-
color: var(--ion-color-base);
|
|
505
|
-
}
|
|
506
|
-
|
|
507
|
-
.calendar-month-year {
|
|
508
|
-
min-width: 0;
|
|
509
|
-
}
|
|
510
|
-
|
|
511
|
-
.calendar-month-year-toggle {
|
|
512
|
-
font-family: inherit;
|
|
513
|
-
font-size: inherit;
|
|
514
|
-
font-style: inherit;
|
|
515
|
-
font-weight: inherit;
|
|
516
|
-
letter-spacing: inherit;
|
|
517
|
-
text-decoration: inherit;
|
|
518
|
-
text-indent: inherit;
|
|
519
|
-
text-overflow: inherit;
|
|
520
|
-
text-transform: inherit;
|
|
521
|
-
text-align: inherit;
|
|
522
|
-
white-space: inherit;
|
|
523
|
-
color: inherit;
|
|
524
|
-
position: relative;
|
|
525
|
-
border: 0;
|
|
526
|
-
outline: none;
|
|
527
|
-
background: transparent;
|
|
528
|
-
cursor: pointer;
|
|
529
|
-
z-index: 1;
|
|
530
|
-
}
|
|
531
|
-
.calendar-month-year-toggle::after {
|
|
532
|
-
left: 0;
|
|
533
|
-
right: 0;
|
|
534
|
-
top: 0;
|
|
535
|
-
bottom: 0;
|
|
536
|
-
position: absolute;
|
|
537
|
-
content: "";
|
|
538
|
-
opacity: 0;
|
|
539
|
-
transition: opacity 15ms linear, background-color 15ms linear;
|
|
540
|
-
z-index: -1;
|
|
541
|
-
}
|
|
542
|
-
.calendar-month-year-toggle.ion-focused::after {
|
|
543
|
-
background: currentColor;
|
|
544
|
-
}
|
|
545
|
-
.calendar-month-year-toggle:disabled {
|
|
546
|
-
opacity: 0.3;
|
|
547
|
-
pointer-events: none;
|
|
548
|
-
}
|
|
549
|
-
|
|
550
|
-
.calendar-month-year-toggle ion-icon {
|
|
551
|
-
-webkit-padding-start: 4px;
|
|
552
|
-
padding-inline-start: 4px;
|
|
553
|
-
-webkit-padding-end: 0;
|
|
554
|
-
padding-inline-end: 0;
|
|
555
|
-
padding-top: 0;
|
|
556
|
-
padding-bottom: 0;
|
|
557
|
-
flex-shrink: 0;
|
|
558
|
-
}
|
|
559
|
-
|
|
560
|
-
.calendar-month-year-toggle #toggle-wrapper {
|
|
561
|
-
display: inline-flex;
|
|
562
|
-
align-items: center;
|
|
519
|
+
:host(.show-month-and-year) .calendar-action-buttons ion-item {
|
|
520
|
+
--color: var(--ion-color-base);
|
|
563
521
|
}
|
|
564
522
|
|
|
565
523
|
/**
|
|
@@ -648,31 +606,15 @@ ion-picker-column {
|
|
|
648
606
|
margin-top: 10px;
|
|
649
607
|
}
|
|
650
608
|
|
|
651
|
-
.calendar-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
-
|
|
655
|
-
padding-inline-end: 16px;
|
|
656
|
-
padding-top: 0px;
|
|
657
|
-
padding-bottom: 0px;
|
|
658
|
-
min-height: 44px;
|
|
609
|
+
:host .calendar-action-buttons ion-item {
|
|
610
|
+
--padding-start: 16px;
|
|
611
|
+
--background-hover: transparent;
|
|
612
|
+
--background-activated: transparent;
|
|
659
613
|
font-size: min(1rem, 25.6px);
|
|
660
614
|
font-weight: 600;
|
|
661
615
|
}
|
|
662
|
-
.calendar-month-year-toggle.ion-focused::after {
|
|
663
|
-
opacity: 0.15;
|
|
664
|
-
}
|
|
665
|
-
|
|
666
|
-
.calendar-month-year-toggle #toggle-wrapper {
|
|
667
|
-
-webkit-margin-start: 0;
|
|
668
|
-
margin-inline-start: 0;
|
|
669
|
-
-webkit-margin-end: 8px;
|
|
670
|
-
margin-inline-end: 8px;
|
|
671
|
-
margin-top: 10px;
|
|
672
|
-
margin-bottom: 10px;
|
|
673
|
-
}
|
|
674
616
|
|
|
675
|
-
:host .calendar-action-buttons
|
|
617
|
+
:host .calendar-action-buttons ion-item ion-icon,
|
|
676
618
|
:host .calendar-action-buttons ion-buttons ion-button {
|
|
677
619
|
color: var(--ion-color-base);
|
|
678
620
|
}
|
|
@@ -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, items: items, 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
|
|
@@ -1120,7 +1120,7 @@ export class Datetime {
|
|
|
1120
1120
|
}
|
|
1121
1121
|
const { disabled, workingParts } = this;
|
|
1122
1122
|
const activePart = this.getActivePartsWithFallback();
|
|
1123
|
-
return (h("ion-picker-column", { 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) => {
|
|
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) => {
|
|
1124
1124
|
// TODO(FW-1823) Remove this when iOS 14 support is dropped.
|
|
1125
1125
|
// Due to a Safari 14 issue we need to destroy
|
|
1126
1126
|
// the scroll listener before we update state
|
|
@@ -1142,7 +1142,7 @@ export class Datetime {
|
|
|
1142
1142
|
}
|
|
1143
1143
|
const { disabled, workingParts } = this;
|
|
1144
1144
|
const activePart = this.getActivePartsWithFallback();
|
|
1145
|
-
return (h("ion-picker-column", { class: "month-column", color: this.color, disabled: disabled, items: months, 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) => {
|
|
1146
1146
|
// TODO(FW-1823) Remove this when iOS 14 support is dropped.
|
|
1147
1147
|
// Due to a Safari 14 issue we need to destroy
|
|
1148
1148
|
// the scroll listener before we update state
|
|
@@ -1164,7 +1164,7 @@ export class Datetime {
|
|
|
1164
1164
|
}
|
|
1165
1165
|
const { disabled, workingParts } = this;
|
|
1166
1166
|
const activePart = this.getActivePartsWithFallback();
|
|
1167
|
-
return (h("ion-picker-column", { class: "year-column", color: this.color, disabled: disabled, items: years, 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) => {
|
|
1168
1168
|
// TODO(FW-1823) Remove this when iOS 14 support is dropped.
|
|
1169
1169
|
// Due to a Safari 14 issue we need to destroy
|
|
1170
1170
|
// the scroll listener before we update state
|
|
@@ -1207,7 +1207,7 @@ export class Datetime {
|
|
|
1207
1207
|
if (hoursData.length === 0)
|
|
1208
1208
|
return [];
|
|
1209
1209
|
const activePart = this.getActivePartsWithFallback();
|
|
1210
|
-
return (h("ion-picker-column", { color: this.color, disabled: disabled, value: activePart.hour, items: hoursData, 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) => {
|
|
1211
1211
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { hour: ev.detail.value }));
|
|
1212
1212
|
this.setActiveParts(Object.assign(Object.assign({}, activePart), { hour: ev.detail.value }));
|
|
1213
1213
|
ev.stopPropagation();
|
|
@@ -1218,7 +1218,7 @@ export class Datetime {
|
|
|
1218
1218
|
if (minutesData.length === 0)
|
|
1219
1219
|
return [];
|
|
1220
1220
|
const activePart = this.getActivePartsWithFallback();
|
|
1221
|
-
return (h("ion-picker-column", { color: this.color, disabled: disabled, value: activePart.minute, items: minutesData, 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) => {
|
|
1222
1222
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { minute: ev.detail.value }));
|
|
1223
1223
|
this.setActiveParts(Object.assign(Object.assign({}, activePart), { minute: ev.detail.value }));
|
|
1224
1224
|
ev.stopPropagation();
|
|
@@ -1231,7 +1231,7 @@ export class Datetime {
|
|
|
1231
1231
|
}
|
|
1232
1232
|
const activePart = this.getActivePartsWithFallback();
|
|
1233
1233
|
const isDayPeriodRTL = isLocaleDayPeriodRTL(this.locale);
|
|
1234
|
-
return (h("ion-picker-column", { style: isDayPeriodRTL ? { order: '-1' } : {}, color: this.color, disabled: disabled, value: activePart.ampm, items: dayPeriodData, 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) => {
|
|
1235
1235
|
const hour = calculateHourFromAMPM(workingParts, ev.detail.value);
|
|
1236
1236
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { ampm: ev.detail.value, hour }));
|
|
1237
1237
|
this.setActiveParts(Object.assign(Object.assign({}, activePart), { ampm: ev.detail.value, hour }));
|
|
@@ -1257,11 +1257,26 @@ export class Datetime {
|
|
|
1257
1257
|
const nextMonthDisabled = disabled || isNextMonthDisabled(this.workingParts, this.maxParts);
|
|
1258
1258
|
// don't use the inheritAttributes util because it removes dir from the host, and we still need that
|
|
1259
1259
|
const hostDir = this.el.getAttribute('dir') || undefined;
|
|
1260
|
-
return (h("div", { class: "calendar-header" }, h("div", { class: "calendar-action-buttons" }, h("div", { class: "calendar-month-year" }, h("
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
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) => {
|
|
1265
1280
|
return h("div", { class: "day-of-week" }, d);
|
|
1266
1281
|
}))));
|
|
1267
1282
|
}
|
|
@@ -1422,7 +1437,7 @@ export class Datetime {
|
|
|
1422
1437
|
* This will correctly scroll the element position to the correct time value,
|
|
1423
1438
|
* before the popover is fully presented.
|
|
1424
1439
|
*/
|
|
1425
|
-
const cols = ev.target.querySelectorAll('ion-picker-column');
|
|
1440
|
+
const cols = ev.target.querySelectorAll('ion-picker-column-internal');
|
|
1426
1441
|
// TODO (FW-615): Potentially remove this when intersection observers are fixed in picker column
|
|
1427
1442
|
cols.forEach((col) => col.scrollActiveItemIntoView());
|
|
1428
1443
|
}, style: {
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
* widest item in the column. Setting a minimum
|
|
81
81
|
* width avoids this layout shifting.
|
|
82
82
|
*/
|
|
83
|
-
ion-picker-column {
|
|
83
|
+
ion-picker-column-internal {
|
|
84
84
|
min-width: 26px;
|
|
85
85
|
}
|
|
86
86
|
|
|
@@ -94,7 +94,7 @@ ion-picker-column {
|
|
|
94
94
|
}
|
|
95
95
|
|
|
96
96
|
/**
|
|
97
|
-
* This ensures that the picker is
|
|
97
|
+
* This ensures that the picker is apppropriately
|
|
98
98
|
* sized and never truncates the text.
|
|
99
99
|
*/
|
|
100
100
|
:host(.datetime-size-fixed.datetime-prefer-wheel) {
|
|
@@ -317,8 +317,24 @@ ion-picker-column {
|
|
|
317
317
|
justify-content: space-between;
|
|
318
318
|
}
|
|
319
319
|
|
|
320
|
+
:host .calendar-action-buttons ion-item,
|
|
320
321
|
:host .calendar-action-buttons ion-button {
|
|
321
|
-
--background:
|
|
322
|
+
--background: translucent;
|
|
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;
|
|
322
338
|
}
|
|
323
339
|
|
|
324
340
|
:host .calendar-days-of-week {
|
|
@@ -500,66 +516,8 @@ ion-picker-column {
|
|
|
500
516
|
position: static;
|
|
501
517
|
}
|
|
502
518
|
|
|
503
|
-
:host(.show-month-and-year) .calendar-action-buttons
|
|
504
|
-
color: var(--ion-color-base);
|
|
505
|
-
}
|
|
506
|
-
|
|
507
|
-
.calendar-month-year {
|
|
508
|
-
min-width: 0;
|
|
509
|
-
}
|
|
510
|
-
|
|
511
|
-
.calendar-month-year-toggle {
|
|
512
|
-
font-family: inherit;
|
|
513
|
-
font-size: inherit;
|
|
514
|
-
font-style: inherit;
|
|
515
|
-
font-weight: inherit;
|
|
516
|
-
letter-spacing: inherit;
|
|
517
|
-
text-decoration: inherit;
|
|
518
|
-
text-indent: inherit;
|
|
519
|
-
text-overflow: inherit;
|
|
520
|
-
text-transform: inherit;
|
|
521
|
-
text-align: inherit;
|
|
522
|
-
white-space: inherit;
|
|
523
|
-
color: inherit;
|
|
524
|
-
position: relative;
|
|
525
|
-
border: 0;
|
|
526
|
-
outline: none;
|
|
527
|
-
background: transparent;
|
|
528
|
-
cursor: pointer;
|
|
529
|
-
z-index: 1;
|
|
530
|
-
}
|
|
531
|
-
.calendar-month-year-toggle::after {
|
|
532
|
-
left: 0;
|
|
533
|
-
right: 0;
|
|
534
|
-
top: 0;
|
|
535
|
-
bottom: 0;
|
|
536
|
-
position: absolute;
|
|
537
|
-
content: "";
|
|
538
|
-
opacity: 0;
|
|
539
|
-
transition: opacity 15ms linear, background-color 15ms linear;
|
|
540
|
-
z-index: -1;
|
|
541
|
-
}
|
|
542
|
-
.calendar-month-year-toggle.ion-focused::after {
|
|
543
|
-
background: currentColor;
|
|
544
|
-
}
|
|
545
|
-
.calendar-month-year-toggle:disabled {
|
|
546
|
-
opacity: 0.3;
|
|
547
|
-
pointer-events: none;
|
|
548
|
-
}
|
|
549
|
-
|
|
550
|
-
.calendar-month-year-toggle ion-icon {
|
|
551
|
-
-webkit-padding-start: 4px;
|
|
552
|
-
padding-inline-start: 4px;
|
|
553
|
-
-webkit-padding-end: 0;
|
|
554
|
-
padding-inline-end: 0;
|
|
555
|
-
padding-top: 0;
|
|
556
|
-
padding-bottom: 0;
|
|
557
|
-
flex-shrink: 0;
|
|
558
|
-
}
|
|
559
|
-
|
|
560
|
-
.calendar-month-year-toggle #toggle-wrapper {
|
|
561
|
-
display: inline-flex;
|
|
562
|
-
align-items: center;
|
|
519
|
+
:host(.show-month-and-year) .calendar-action-buttons ion-item {
|
|
520
|
+
--color: var(--ion-color-base);
|
|
563
521
|
}
|
|
564
522
|
|
|
565
523
|
/**
|
|
@@ -643,36 +601,15 @@ ion-picker-column {
|
|
|
643
601
|
font-size: 2.125rem;
|
|
644
602
|
}
|
|
645
603
|
|
|
646
|
-
:host .calendar-action-buttons ion-
|
|
647
|
-
--
|
|
648
|
-
}
|
|
649
|
-
|
|
650
|
-
.calendar-month-year-toggle {
|
|
651
|
-
-webkit-padding-start: 20px;
|
|
652
|
-
padding-inline-start: 20px;
|
|
653
|
-
-webkit-padding-end: 16px;
|
|
654
|
-
padding-inline-end: 16px;
|
|
655
|
-
padding-top: 12px;
|
|
656
|
-
padding-bottom: 12px;
|
|
657
|
-
min-height: 48px;
|
|
658
|
-
background: transparent;
|
|
659
|
-
color: var(--ion-color-step-650, #595959);
|
|
660
|
-
z-index: 1;
|
|
661
|
-
}
|
|
662
|
-
.calendar-month-year-toggle.ion-focused::after {
|
|
663
|
-
opacity: 0.04;
|
|
604
|
+
:host .datetime-calendar .calendar-action-buttons ion-item {
|
|
605
|
+
--padding-start: 20px;
|
|
664
606
|
}
|
|
665
607
|
|
|
666
|
-
.calendar-
|
|
667
|
-
|
|
608
|
+
:host .calendar-action-buttons ion-item,
|
|
609
|
+
:host .calendar-action-buttons ion-button {
|
|
610
|
+
--color: var(--ion-color-step-650, #595959);
|
|
668
611
|
}
|
|
669
612
|
|
|
670
|
-
@media (any-hover: hover) {
|
|
671
|
-
.calendar-month-year-toggle.ion-activatable:not(.ion-focused):hover::after {
|
|
672
|
-
background: currentColor;
|
|
673
|
-
opacity: 0.04;
|
|
674
|
-
}
|
|
675
|
-
}
|
|
676
613
|
:host .calendar-days-of-week {
|
|
677
614
|
-webkit-padding-start: 10px;
|
|
678
615
|
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
|
});
|
|
@@ -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);
|
|
@@ -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:nth-child(1) .picker-item:not(.picker-item-empty)');
|
|
85
|
-
const minutes = page.locator('ion-popover ion-picker-column:nth-child(2) .picker-item:not(.picker-item-empty)');
|
|
84
|
+
const hours = page.locator('ion-popover ion-picker-column-internal:nth-child(1) .picker-item:not(.picker-item-empty)');
|
|
85
|
+
const minutes = page.locator('ion-popover ion-picker-column-internal:nth-child(2) .picker-item:not(.picker-item-empty)');
|
|
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:first-of-type .picker-item:not(.picker-item-empty)');
|
|
162
|
+
const hourPickerItems = page.locator('ion-datetime ion-picker-column-internal:first-of-type .picker-item:not(.picker-item-empty)');
|
|
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:first-of-type .picker-item:not(.picker-item-empty)');
|
|
178
|
+
const hourPickerItems = page.locator('ion-datetime ion-picker-column-internal:first-of-type .picker-item:not(.picker-item-empty)');
|
|
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', () => {
|
|
@@ -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:nth-child(1) .picker-item:not(.picker-item-empty)');
|
|
261
|
+
const hours = page.locator('ion-popover ion-picker-column-internal:nth-child(1) .picker-item:not(.picker-item-empty)');
|
|
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 > ion-item');
|
|
20
20
|
await pickerButton.click();
|
|
21
21
|
await page.waitForChanges();
|
|
22
22
|
await expect(datetimeFooter).not.toBeVisible();
|
|
@@ -228,7 +228,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
|
228
228
|
></ion-datetime>
|
|
229
229
|
`, config);
|
|
230
230
|
await page.waitForSelector('.datetime-ready');
|
|
231
|
-
const columns = page.locator('ion-picker-column');
|
|
231
|
+
const columns = page.locator('ion-picker-column-internal');
|
|
232
232
|
await expect(columns.nth(0)).toHaveClass(/month-column/);
|
|
233
233
|
await expect(columns.nth(1)).toHaveClass(/day-column/);
|
|
234
234
|
await expect(columns.nth(2)).toHaveClass(/year-column/);
|
|
@@ -243,7 +243,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
|
243
243
|
></ion-datetime>
|
|
244
244
|
`, config);
|
|
245
245
|
await page.waitForSelector('.datetime-ready');
|
|
246
|
-
const columns = page.locator('ion-picker-column');
|
|
246
|
+
const columns = page.locator('ion-picker-column-internal');
|
|
247
247
|
await expect(columns.nth(0)).toHaveClass(/day-column/);
|
|
248
248
|
await expect(columns.nth(1)).toHaveClass(/month-column/);
|
|
249
249
|
await expect(columns.nth(2)).toHaveClass(/year-column/);
|