@ionic/core 7.6.2-dev.11703182244.1165aeec → 7.6.2-dev.11704729332.13b412c8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/action-sheet.js +1 -1
- package/components/alert.js +2 -2
- package/components/backdrop.js +0 -12
- package/components/button.js +2 -2
- package/components/checkbox.js +2 -2
- package/components/data.js +1 -1
- package/components/gesture-controller.js +1 -1
- package/components/ion-back-button.js +1 -1
- package/components/ion-badge.js +2 -2
- package/components/ion-content.js +3 -4
- package/components/ion-datetime.js +40 -64
- package/components/ion-fab-button.js +2 -2
- package/components/ion-input.js +2 -2
- package/components/ion-item-option.js +2 -2
- package/components/ion-loading.js +1 -1
- package/components/ion-menu-button.js +1 -1
- package/components/ion-picker-column-option.d.ts +11 -0
- package/components/ion-picker-column-option.js +9 -0
- package/components/ion-picker-column.js +2 -2
- package/components/ion-picker-legacy-column.d.ts +11 -0
- package/components/ion-picker-legacy-column.js +9 -0
- package/components/{ion-picker-internal.d.ts → ion-picker-legacy.d.ts} +4 -4
- package/components/ion-picker-legacy.js +309 -0
- package/components/ion-picker.js +1 -309
- package/components/ion-progress-bar.js +2 -2
- package/components/ion-range.js +2 -2
- package/components/ion-refresher-content.js +1 -1
- package/components/ion-refresher.js +1 -1
- package/components/ion-router-link.js +1 -1
- package/components/ion-searchbar.js +1 -1
- package/components/ion-segment-button.js +1 -1
- package/components/ion-select.js +2 -2
- package/components/ion-tab-bar.js +2 -2
- package/components/ion-textarea.js +2 -2
- package/components/ion-toast.js +2 -2
- package/components/ion-toggle.js +2 -2
- package/components/item.js +2 -2
- package/components/label.js +1 -1
- package/components/overlays.js +11 -4
- package/components/picker-column-option.js +122 -0
- package/components/picker-column.js +351 -322
- package/components/picker-column2.js +379 -0
- package/components/{picker-internal.js → picker.js} +29 -22
- package/components/radio-group.js +1 -9
- package/components/radio.js +2 -2
- package/components/select-popover.js +1 -1
- package/css/core.css +35 -34
- package/css/core.css.map +1 -1
- package/css/global.bundle.css +1 -1
- package/css/ionic.bundle.css +1 -1
- package/css/ionic.bundle.css.map +1 -1
- package/css/themes/dark.always.css +122 -0
- package/css/themes/dark.always.css.map +1 -0
- package/css/themes/dark.class.css +122 -0
- package/css/themes/dark.class.css.map +1 -0
- package/css/themes/dark.css +3 -0
- package/css/themes/dark.css.map +1 -0
- package/css/themes/dark.system.css +124 -0
- package/css/themes/dark.system.css.map +1 -0
- package/css/typography.css +1 -1
- package/dist/cjs/{button-active-962fe442.js → button-active-5bf1cac0.js} +1 -1
- package/dist/cjs/{data-a5109f09.js → data-e2bf21de.js} +1 -1
- package/dist/cjs/{gesture-controller-c40c045a.js → gesture-controller-9436f482.js} +1 -0
- package/dist/cjs/{index-d1b59ffa.js → index-ee07ed59.js} +1 -1
- package/dist/cjs/index.cjs.js +3 -3
- package/dist/cjs/ion-action-sheet.cjs.entry.js +5 -5
- package/dist/cjs/ion-alert.cjs.entry.js +6 -6
- package/dist/cjs/ion-app_8.cjs.entry.js +4 -5
- package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-back-button.cjs.entry.js +1 -1
- package/dist/cjs/ion-backdrop.cjs.entry.js +0 -12
- package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-checkbox.cjs.entry.js +2 -2
- package/dist/cjs/ion-datetime-button.cjs.entry.js +1 -1
- package/dist/cjs/ion-datetime_3.cjs.entry.js +37 -57
- package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-input.cjs.entry.js +2 -2
- 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 +3 -2
- package/dist/cjs/ion-menu_3.cjs.entry.js +4 -4
- package/dist/cjs/ion-modal.cjs.entry.js +3 -3
- package/dist/cjs/ion-nav_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +104 -0
- package/dist/cjs/{ion-picker-column-internal.cjs.entry.js → ion-picker-column.cjs.entry.js} +104 -87
- package/dist/cjs/{ion-picker-internal.cjs.entry.js → ion-picker.cjs.entry.js} +26 -19
- package/dist/cjs/ion-popover.cjs.entry.js +2 -1
- package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
- package/dist/cjs/ion-radio_2.cjs.entry.js +3 -11
- package/dist/cjs/ion-range.cjs.entry.js +3 -3
- package/dist/cjs/ion-refresher_2.cjs.entry.js +5 -5
- package/dist/cjs/ion-reorder_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-route_4.cjs.entry.js +1 -1
- package/dist/cjs/ion-searchbar.cjs.entry.js +1 -1
- package/dist/cjs/ion-segment_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-select_3.cjs.entry.js +5 -4
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
- package/dist/cjs/ion-toast.cjs.entry.js +5 -5
- package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{overlays-e77cc023.js → overlays-7773cbe1.js} +11 -4
- package/dist/cjs/{swipe-back-2a858bbd.js → swipe-back-b8f2330b.js} +2 -2
- package/dist/collection/collection-manifest.json +7 -6
- package/dist/collection/components/action-sheet/action-sheet.ios.css +3 -3
- package/dist/collection/components/action-sheet/test/a11y/action-sheet.e2e.js +23 -14
- package/dist/collection/components/alert/alert.ios.css +6 -6
- package/dist/collection/components/alert/alert.md.css +6 -6
- package/dist/collection/components/alert/test/a11y/alert.e2e.js +22 -9
- package/dist/collection/components/back-button/back-button.ios.css +1 -1
- package/dist/collection/components/back-button/test/a11y/back-button.e2e.js +21 -0
- package/dist/collection/components/backdrop/backdrop.js +0 -12
- package/dist/collection/components/badge/badge.ios.css +1 -1
- package/dist/collection/components/badge/badge.md.css +1 -1
- package/dist/collection/components/badge/test/a11y/badge.e2e.js +18 -0
- package/dist/collection/components/button/button.ios.css +11 -11
- package/dist/collection/components/button/button.md.css +9 -9
- package/dist/collection/components/button/test/a11y/button.e2e.js +48 -0
- package/dist/collection/components/button/test/wrap/button.e2e.js +12 -24
- package/dist/collection/components/checkbox/checkbox.ios.css +2 -2
- package/dist/collection/components/checkbox/checkbox.md.css +2 -2
- package/dist/collection/components/checkbox/test/a11y/checkbox.e2e.js +11 -2
- package/dist/collection/components/content/content.css +0 -4
- package/dist/collection/components/content/content.js +2 -3
- package/dist/collection/components/datetime/datetime.ios.css +91 -38
- package/dist/collection/components/datetime/datetime.js +24 -36
- 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/fab-button/fab-button.ios.css +13 -13
- package/dist/collection/components/fab-button/fab-button.md.css +4 -4
- package/dist/collection/components/fab-button/test/a11y/fab-button.e2e.js +50 -0
- package/dist/collection/components/input/input.ios.css +3 -3
- package/dist/collection/components/input/input.md.css +3 -3
- package/dist/collection/components/input/test/a11y/input.e2e.js +41 -3
- package/dist/collection/components/item/item.ios.css +3 -3
- package/dist/collection/components/item/item.md.css +4 -4
- package/dist/collection/components/item-option/item-option.ios.css +2 -2
- package/dist/collection/components/item-option/item-option.md.css +1 -1
- package/dist/collection/components/item-sliding/test/a11y/item-sliding.e2e.js +28 -0
- package/dist/collection/components/label/label.md.css +1 -1
- package/dist/collection/components/label/test/a11y/label.e2e.js +20 -0
- package/dist/collection/components/loading/loading.md.css +1 -1
- package/dist/collection/components/loading/test/a11y/loading.e2e.js +21 -5
- package/dist/collection/components/menu-button/menu-button.ios.css +1 -1
- package/dist/collection/components/menu-button/test/a11y/menu-button.e2e.js +14 -0
- package/dist/collection/components/picker/picker.ios.css +112 -211
- package/dist/collection/components/picker/picker.js +472 -744
- 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}/picker-column.md.css +1 -1
- package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column-aria.spec.js +3 -3
- package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column-dynamic.spec.js +2 -2
- package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column.spec.js +2 -2
- package/dist/collection/components/{picker-column → picker-legacy-column}/test/standalone/picker-column.e2e.js +3 -3
- package/dist/collection/components/progress-bar/progress-bar.ios.css +2 -2
- package/dist/collection/components/progress-bar/progress-bar.md.css +2 -2
- package/dist/collection/components/progress-bar/test/a11y/progress-bar.e2e.js +24 -0
- package/dist/collection/components/radio/radio.ios.css +2 -2
- package/dist/collection/components/radio/radio.md.css +2 -2
- package/dist/collection/components/radio/test/a11y/radio.e2e.js +101 -68
- package/dist/collection/components/radio-group/radio-group.js +1 -9
- package/dist/collection/components/range/range.ios.css +1 -1
- package/dist/collection/components/range/range.md.css +3 -3
- package/dist/collection/components/range/test/a11y/range.e2e.js +18 -8
- package/dist/collection/components/refresher/refresher.md.css +2 -2
- package/dist/collection/components/refresher/test/a11y/refresher.e2e.js +25 -0
- package/dist/collection/components/refresher-content/refresher-content.js +1 -1
- package/dist/collection/components/router-link/router-link.css +1 -1
- package/dist/collection/components/router-link/test/a11y/router-link.e2e.js +23 -0
- package/dist/collection/components/searchbar/searchbar.ios.css +1 -1
- package/dist/collection/components/segment/test/a11y/segment.e2e.js +23 -0
- package/dist/collection/components/segment-button/segment-button.md.css +2 -2
- package/dist/collection/components/select/select.ios.css +3 -3
- package/dist/collection/components/select/select.md.css +3 -3
- package/dist/collection/components/select/test/a11y/select.e2e.js +68 -4
- package/dist/collection/components/select-popover/select-popover.md.css +4 -4
- package/dist/collection/components/select-popover/test/a11y/select-popover.e2e.js +32 -0
- package/dist/collection/components/tab-bar/tab-bar.ios.css +1 -1
- package/dist/collection/components/tab-bar/tab-bar.md.css +1 -1
- package/dist/collection/components/textarea/test/a11y/textarea.e2e.js +41 -3
- package/dist/collection/components/textarea/textarea.ios.css +3 -3
- package/dist/collection/components/textarea/textarea.md.css +3 -3
- package/dist/collection/components/toast/test/a11y/toast.e2e.js +56 -24
- package/dist/collection/components/toast/toast.ios.css +1 -1
- package/dist/collection/components/toast/toast.md.css +2 -2
- package/dist/collection/components/toggle/test/a11y/toggle.e2e.js +8 -2
- package/dist/collection/components/toggle/toggle.ios.css +1 -1
- package/dist/collection/components/toggle/toggle.md.css +2 -2
- package/dist/collection/css/test/a11y/typography.e2e.js +18 -0
- package/dist/collection/themes/test/colors/theme.e2e.js +114 -0
- package/dist/collection/utils/gesture/gesture-controller.js +1 -1
- package/dist/collection/utils/overlays.js +11 -4
- package/dist/collection/utils/test/overlays/overlays-scroll-blocking.spec.js +65 -0
- package/dist/collection/utils/test/playwright/generator.js +1 -0
- package/dist/collection/utils/test/playwright/page/utils/set-content.js +1 -1
- package/dist/docs.json +478 -41
- package/dist/esm/{button-active-308d3edd.js → button-active-48379dd2.js} +1 -1
- package/dist/esm/{data-775093f5.js → data-6a31d701.js} +1 -1
- package/dist/esm/{gesture-controller-1bf57181.js → gesture-controller-314a54f6.js} +1 -1
- package/dist/esm/{index-2cf77112.js → index-39782642.js} +2 -2
- package/dist/esm/index.js +3 -3
- package/dist/esm/ion-action-sheet.entry.js +5 -5
- package/dist/esm/ion-alert.entry.js +6 -6
- package/dist/esm/ion-app_8.entry.js +4 -5
- package/dist/esm/ion-avatar_3.entry.js +2 -2
- package/dist/esm/ion-back-button.entry.js +1 -1
- package/dist/esm/ion-backdrop.entry.js +0 -12
- package/dist/esm/ion-button_2.entry.js +2 -2
- package/dist/esm/ion-checkbox.entry.js +2 -2
- package/dist/esm/ion-datetime-button.entry.js +1 -1
- package/dist/esm/ion-datetime_3.entry.js +36 -56
- package/dist/esm/ion-fab_3.entry.js +2 -2
- package/dist/esm/ion-input.entry.js +2 -2
- 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 +3 -2
- package/dist/esm/ion-menu_3.entry.js +4 -4
- package/dist/esm/ion-modal.entry.js +3 -3
- package/dist/esm/ion-nav_2.entry.js +1 -1
- package/dist/esm/ion-picker-column-option.entry.js +100 -0
- package/dist/esm/{ion-picker-column-internal.entry.js → ion-picker-column.entry.js} +104 -87
- package/dist/esm/{ion-picker-internal.entry.js → ion-picker.entry.js} +26 -19
- package/dist/esm/ion-popover.entry.js +2 -1
- package/dist/esm/ion-progress-bar.entry.js +2 -2
- package/dist/esm/ion-radio_2.entry.js +3 -11
- package/dist/esm/ion-range.entry.js +3 -3
- package/dist/esm/ion-refresher_2.entry.js +5 -5
- package/dist/esm/ion-reorder_2.entry.js +1 -1
- package/dist/esm/ion-route_4.entry.js +1 -1
- package/dist/esm/ion-searchbar.entry.js +1 -1
- package/dist/esm/ion-segment_2.entry.js +2 -2
- package/dist/esm/ion-select_3.entry.js +5 -4
- package/dist/esm/ion-tab-bar_2.entry.js +2 -2
- package/dist/esm/ion-textarea.entry.js +2 -2
- package/dist/esm/ion-toast.entry.js +5 -5
- package/dist/esm/ion-toggle.entry.js +3 -3
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{overlays-b33f6bca.js → overlays-94dac1cb.js} +11 -4
- package/dist/esm/{swipe-back-a6f386fc.js → swipe-back-a8ca7f93.js} +2 -2
- package/dist/esm-es5/{button-active-308d3edd.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-2cf77112.js → index-39782642.js} +1 -1
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
- package/dist/esm-es5/ion-alert.entry.js +1 -1
- package/dist/esm-es5/ion-app_8.entry.js +1 -1
- package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
- package/dist/esm-es5/ion-back-button.entry.js +1 -1
- package/dist/esm-es5/ion-backdrop.entry.js +1 -1
- package/dist/esm-es5/ion-button_2.entry.js +1 -1
- package/dist/esm-es5/ion-checkbox.entry.js +1 -1
- package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
- package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
- package/dist/esm-es5/ion-fab_3.entry.js +1 -1
- package/dist/esm-es5/ion-input.entry.js +1 -1
- package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
- package/dist/esm-es5/ion-item_8.entry.js +1 -1
- package/dist/esm-es5/ion-loading.entry.js +1 -1
- package/dist/esm-es5/ion-menu_3.entry.js +1 -1
- package/dist/esm-es5/ion-modal.entry.js +1 -1
- package/dist/esm-es5/ion-nav_2.entry.js +1 -1
- package/dist/esm-es5/ion-picker-column-option.entry.js +4 -0
- package/dist/esm-es5/ion-picker-column.entry.js +4 -0
- package/dist/esm-es5/ion-picker.entry.js +4 -0
- package/dist/esm-es5/ion-popover.entry.js +1 -1
- package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
- package/dist/esm-es5/ion-radio_2.entry.js +1 -1
- package/dist/esm-es5/ion-range.entry.js +1 -1
- package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
- package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
- package/dist/esm-es5/ion-route_4.entry.js +1 -1
- package/dist/esm-es5/ion-searchbar.entry.js +1 -1
- package/dist/esm-es5/ion-segment_2.entry.js +1 -1
- package/dist/esm-es5/ion-select_3.entry.js +1 -1
- package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
- package/dist/esm-es5/ion-textarea.entry.js +1 -1
- package/dist/esm-es5/ion-toast.entry.js +1 -1
- package/dist/esm-es5/ion-toggle.entry.js +1 -1
- package/dist/esm-es5/ionic.js +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/overlays-94dac1cb.js +4 -0
- package/dist/esm-es5/swipe-back-a8ca7f93.js +4 -0
- package/dist/html.html-data.json +152 -1
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-61e4d3ec.entry.js → p-068950da.entry.js} +1 -1
- package/dist/ionic/{p-c1701827.entry.js → p-0832dedf.entry.js} +1 -1
- package/dist/ionic/{p-f6e9c227.system.js → p-11c55ac8.system.js} +1 -1
- package/dist/ionic/{p-f2bfd3d7.entry.js → p-13d4dfe7.entry.js} +1 -1
- package/dist/ionic/p-19d9ceb8.system.js +1 -1
- package/dist/ionic/{p-afa9f205.system.js → p-1ab2642a.system.js} +1 -1
- package/dist/ionic/{p-11a3973f.entry.js → p-1b14f0f8.entry.js} +1 -1
- package/dist/ionic/{p-0235067a.js → p-1b60cc53.js} +1 -1
- package/dist/ionic/p-1c453add.system.entry.js +4 -0
- package/dist/ionic/{p-11bf2ad0.system.entry.js → p-1d5b03e3.system.entry.js} +1 -1
- package/dist/ionic/{p-c7c8429a.system.js → p-20d469d0.system.js} +1 -1
- package/dist/ionic/{p-6b0ce9b4.system.entry.js → p-25312768.system.entry.js} +1 -1
- package/dist/ionic/{p-f894e0ad.entry.js → p-2724403e.entry.js} +1 -1
- package/dist/ionic/p-283bc1a1.system.entry.js +4 -0
- package/dist/ionic/{p-2df97906.system.entry.js → p-308b6cf2.system.entry.js} +1 -1
- package/dist/ionic/{p-abd5d0d5.system.entry.js → p-354682e8.system.entry.js} +1 -1
- package/dist/ionic/p-3717e641.system.entry.js +4 -0
- package/dist/ionic/{p-19c379da.system.entry.js → p-3796194b.system.entry.js} +1 -1
- package/dist/ionic/{p-bdf71399.entry.js → p-385bb983.entry.js} +1 -1
- package/dist/ionic/{p-745e3339.system.entry.js → p-3af5faf8.system.entry.js} +1 -1
- package/dist/ionic/{p-31b2326e.system.js → p-3e1e14d9.system.js} +1 -1
- package/dist/ionic/{p-a42ef163.system.entry.js → p-456e19bb.system.entry.js} +1 -1
- package/dist/ionic/p-47e42aa3.system.entry.js +4 -0
- package/dist/ionic/{p-529b24fb.entry.js → p-4abb1251.entry.js} +1 -1
- package/dist/ionic/p-51abefb7.system.js +4 -0
- package/dist/ionic/{p-22827063.system.entry.js → p-530bb2af.system.entry.js} +1 -1
- package/dist/ionic/{p-96d4814f.system.entry.js → p-590447a5.system.entry.js} +1 -1
- package/dist/ionic/{p-1b27ac67.entry.js → p-5aec2208.entry.js} +1 -1
- package/dist/ionic/p-5cbfce20.entry.js +4 -0
- package/dist/ionic/{p-26c4bf85.entry.js → p-5f1b0512.entry.js} +1 -1
- package/dist/ionic/{p-10ec9af7.system.entry.js → p-5ff211d0.system.entry.js} +1 -1
- package/dist/ionic/{p-254ec7c0.system.entry.js → p-662a9a47.system.entry.js} +2 -2
- package/dist/ionic/{p-2894d5f6.entry.js → p-713af1fe.entry.js} +1 -1
- package/dist/ionic/p-7c0d778d.system.js +4 -0
- package/dist/ionic/{p-6e0539ea.system.entry.js → p-7dade589.system.entry.js} +1 -1
- package/dist/ionic/{p-a821750c.system.entry.js → p-8a25bf30.system.entry.js} +1 -1
- package/dist/ionic/p-8ad6d643.entry.js +4 -0
- package/dist/ionic/p-8b160fba.entry.js +4 -0
- package/dist/ionic/{p-799da666.entry.js → p-8e961825.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-b964aba3.entry.js → p-92bfb607.entry.js} +1 -1
- package/dist/ionic/p-97aaf697.system.entry.js +4 -0
- package/dist/ionic/{p-4685218a.system.entry.js → p-9a8bc8f3.system.entry.js} +1 -1
- package/dist/ionic/{p-bb3615f7.js → p-9b97df10.js} +1 -1
- package/dist/ionic/{p-3e8d5e53.entry.js → p-9c48f42f.entry.js} +1 -1
- package/dist/ionic/{p-9fda6824.system.entry.js → p-9f94e34a.system.entry.js} +1 -1
- package/dist/ionic/p-a17a9130.entry.js +4 -0
- package/dist/ionic/{p-7dcf795f.entry.js → p-a29db3a0.entry.js} +1 -1
- package/dist/ionic/p-a41eaff2.system.entry.js +4 -0
- package/dist/ionic/p-a60a1ce5.js +4 -0
- package/dist/ionic/{p-648ad047.system.entry.js → p-a6e5f54e.system.entry.js} +1 -1
- package/dist/ionic/{p-aee39e06.entry.js → p-aa8b021d.entry.js} +1 -1
- package/dist/ionic/{p-6855f26a.entry.js → p-aa975ff8.entry.js} +1 -1
- package/dist/ionic/{p-043aa6cc.system.entry.js → p-b59fe3bd.system.entry.js} +1 -1
- package/dist/ionic/p-b7e03ff0.system.entry.js +4 -0
- package/dist/ionic/{p-767f1a92.entry.js → p-bc01c384.entry.js} +1 -1
- package/dist/ionic/{p-a3ca2e64.entry.js → p-bec6ae40.entry.js} +1 -1
- package/dist/ionic/p-c001b24f.entry.js +4 -0
- package/dist/ionic/{p-06abe918.system.entry.js → p-c16fbc5f.system.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-0cc80201.entry.js → p-c6e9ef77.entry.js} +1 -1
- package/dist/ionic/{p-ddd48faf.system.entry.js → p-cc700688.system.entry.js} +1 -1
- package/dist/ionic/p-cd3e1a06.entry.js +4 -0
- package/dist/ionic/p-cf350317.entry.js +4 -0
- package/dist/ionic/{p-da666998.system.entry.js → p-d01449a3.system.entry.js} +1 -1
- package/dist/ionic/{p-84b567a6.entry.js → p-d08e0136.entry.js} +1 -1
- package/dist/ionic/p-d1ad57d5.system.entry.js +4 -0
- package/dist/ionic/{p-28740823.system.entry.js → p-d2634efe.system.entry.js} +1 -1
- package/dist/ionic/{p-41208f54.system.entry.js → p-d88ed181.system.entry.js} +1 -1
- package/dist/ionic/p-dc63dccb.system.entry.js +4 -0
- package/dist/ionic/{p-11786dc7.entry.js → p-df6f50ef.entry.js} +1 -1
- package/dist/ionic/{p-c5acfeb1.entry.js → p-e403ff07.entry.js} +1 -1
- package/dist/ionic/{p-ae4b7df8.entry.js → p-e9431a58.entry.js} +1 -1
- package/dist/ionic/p-ec0a9b2c.system.entry.js +4 -0
- package/dist/ionic/{p-2a583966.entry.js → p-ee8b825e.entry.js} +1 -1
- package/dist/ionic/p-f0717d98.js +4 -0
- package/dist/ionic/{p-42925096.system.entry.js → p-f0dbd73e.system.entry.js} +1 -1
- package/dist/ionic/{p-806a9810.entry.js → p-f38c1f8d.entry.js} +1 -1
- package/dist/ionic/p-f60807dd.system.entry.js +4 -0
- package/dist/ionic/p-fc17f198.entry.js +4 -0
- package/dist/types/components/backdrop/backdrop.d.ts +0 -3
- package/dist/types/components/datetime/datetime.d.ts +0 -1
- package/dist/types/components/datetime/utils/data.d.ts +11 -7
- package/dist/types/components/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.d.ts +154 -122
- 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/hydrate/index.js +1540 -1448
- package/package.json +1 -1
- 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 -565
- 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/ion-picker-column-internal.entry.js +0 -4
- package/dist/esm-es5/ion-picker-internal.entry.js +0 -4
- package/dist/esm-es5/overlays-b33f6bca.js +0 -4
- package/dist/esm-es5/swipe-back-a6f386fc.js +0 -4
- package/dist/ionic/p-12a62500.entry.js +0 -4
- package/dist/ionic/p-1c249831.entry.js +0 -4
- package/dist/ionic/p-35ce400e.system.js +0 -4
- package/dist/ionic/p-3671f1b9.system.js +0 -4
- package/dist/ionic/p-47bb15a1.entry.js +0 -4
- package/dist/ionic/p-4981ea0a.system.entry.js +0 -4
- package/dist/ionic/p-4d145435.entry.js +0 -4
- package/dist/ionic/p-507ddbfe.system.entry.js +0 -4
- package/dist/ionic/p-6a6477b2.js +0 -4
- package/dist/ionic/p-6ab03751.js +0 -4
- package/dist/ionic/p-6c277fa2.system.entry.js +0 -4
- package/dist/ionic/p-6fba0ce1.system.entry.js +0 -4
- package/dist/ionic/p-7dc892f8.entry.js +0 -4
- package/dist/ionic/p-85f48531.entry.js +0 -4
- package/dist/ionic/p-8f301ac5.system.entry.js +0 -4
- package/dist/ionic/p-932f2259.system.entry.js +0 -4
- package/dist/ionic/p-a3013394.entry.js +0 -4
- package/dist/ionic/p-b1f29949.system.entry.js +0 -4
- package/dist/ionic/p-b7a2ffc9.system.entry.js +0 -4
- package/dist/ionic/p-beeed22c.system.entry.js +0 -4
- package/dist/ionic/p-cd1b920b.entry.js +0 -4
- package/dist/ionic/p-da5e2652.entry.js +0 -4
- package/dist/ionic/p-dc71e4ef.system.entry.js +0 -4
- package/dist/ionic/p-ec652bc0.system.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/collection/components/{picker-internal/picker-internal-interfaces.js → picker/picker-interfaces.js} +0 -0
- /package/dist/collection/components/{picker-column-internal/picker-column-internal-interfaces.js → picker-column/picker-column-interfaces.js} +0 -0
- /package/dist/collection/components/{picker → picker-legacy}/animations/ios.enter.js +0 -0
- /package/dist/collection/components/{picker → picker-legacy}/animations/ios.leave.js +0 -0
- /package/dist/collection/components/{picker → picker-legacy}/picker-interface.js +0 -0
- /package/dist/collection/components/{picker-column → picker-legacy-column}/picker-column.ios.css +0 -0
- /package/dist/collection/components/{picker-column → picker-legacy-column}/test/test.utils.js +0 -0
- /package/dist/esm-es5/{data-775093f5.js → data-6a31d701.js} +0 -0
- /package/dist/ionic/{p-87bb3735.system.js → p-7ff4359e.system.js} +0 -0
- /package/dist/ionic/{p-18cae04f.js → p-a64accf5.js} +0 -0
- /package/dist/types/components/{picker → picker-legacy}/animations/ios.enter.d.ts +0 -0
- /package/dist/types/components/{picker → picker-legacy}/animations/ios.leave.d.ts +0 -0
- /package/dist/types/components/{picker → picker-legacy}/picker-interface.d.ts +0 -0
- /package/dist/types/components/{picker-column → picker-legacy-column}/test/test.utils.d.ts +0 -0
|
@@ -8,18 +8,18 @@ import { g as getElementRoot, l as clamp, r as raf, k as inheritAttributes, m as
|
|
|
8
8
|
import { c as createLockController } from './lock-controller-316928be.js';
|
|
9
9
|
import { p as printIonWarning } from './index-9b0d46f4.js';
|
|
10
10
|
import { g as getCapacitor } from './capacitor-59395cbd.js';
|
|
11
|
-
import { G as GESTURE, O as OVERLAY_GESTURE_PRIORITY, e as createTriggerController, B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, n as activeAnimations, g as dismiss, h as eventMethod } from './overlays-
|
|
11
|
+
import { G as GESTURE, O as OVERLAY_GESTURE_PRIORITY, e as createTriggerController, B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, n as activeAnimations, g as dismiss, h as eventMethod } from './overlays-94dac1cb.js';
|
|
12
12
|
import { g as getClassMap } from './theme-01f3f29c.js';
|
|
13
13
|
import { e as deepReady, w as waitForMount } from './index-4743453d.js';
|
|
14
14
|
import { b as getIonMode, c as config } from './ionic-global-1f99b929.js';
|
|
15
15
|
import { KEYBOARD_DID_OPEN } from './keyboard-52278bd7.js';
|
|
16
16
|
import { c as createAnimation } from './animation-dde8cc0d.js';
|
|
17
17
|
import { g as getTimeGivenProgression } from './cubic-bezier-fe2083dc.js';
|
|
18
|
-
import { createGesture } from './index-
|
|
18
|
+
import { createGesture } from './index-39782642.js';
|
|
19
19
|
import { w as win } from './index-a5d50daf.js';
|
|
20
|
+
import './gesture-controller-314a54f6.js';
|
|
20
21
|
import './hardware-back-button-b2bc76db.js';
|
|
21
22
|
import './keyboard-73175e24.js';
|
|
22
|
-
import './gesture-controller-1bf57181.js';
|
|
23
23
|
|
|
24
24
|
var Style;
|
|
25
25
|
(function (Style) {
|
|
@@ -131,7 +131,7 @@ const Nav = class {
|
|
|
131
131
|
// We want to set this flag before any watch callbacks are manually called
|
|
132
132
|
this.didLoad = true;
|
|
133
133
|
this.rootChanged();
|
|
134
|
-
this.gesture = (await import('./swipe-back-
|
|
134
|
+
this.gesture = (await import('./swipe-back-a8ca7f93.js')).createSwipeBackGesture(this.el, this.canStart.bind(this), this.onStart.bind(this), this.onMove.bind(this), this.onEnd.bind(this));
|
|
135
135
|
this.swipeGestureChanged();
|
|
136
136
|
}
|
|
137
137
|
connectedCallback() {
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
+
*/
|
|
4
|
+
import { r as registerInstance, h, H as Host, f as getElement } from './index-b7d870cf.js';
|
|
5
|
+
import { k as inheritAttributes } from './helpers-ae653409.js';
|
|
6
|
+
import { c as createColorClasses } from './theme-01f3f29c.js';
|
|
7
|
+
import { b as getIonMode } from './ionic-global-1f99b929.js';
|
|
8
|
+
|
|
9
|
+
const pickerColumnOptionIosCss = "button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) button{cursor:default}";
|
|
10
|
+
|
|
11
|
+
const pickerColumnOptionMdCss = "button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) button{cursor:default}:host(.option-active){color:var(--ion-color-base)}";
|
|
12
|
+
|
|
13
|
+
const PickerColumnOption = class {
|
|
14
|
+
constructor(hostRef) {
|
|
15
|
+
registerInstance(this, hostRef);
|
|
16
|
+
/**
|
|
17
|
+
* We keep track of the parent picker column
|
|
18
|
+
* so we can update the value of it when
|
|
19
|
+
* clicking an enable option.
|
|
20
|
+
*/
|
|
21
|
+
this.pickerColumn = null;
|
|
22
|
+
this.ariaLabel = null;
|
|
23
|
+
this.disabled = false;
|
|
24
|
+
this.value = undefined;
|
|
25
|
+
this.color = 'primary';
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The aria-label of the option has changed after the
|
|
29
|
+
* first render and needs to be updated within the component.
|
|
30
|
+
*
|
|
31
|
+
* @param ariaLbl The new aria-label value.
|
|
32
|
+
*/
|
|
33
|
+
onAriaLabelChange(ariaLbl) {
|
|
34
|
+
this.ariaLabel = ariaLbl;
|
|
35
|
+
}
|
|
36
|
+
componentWillLoad() {
|
|
37
|
+
const inheritedAttributes = inheritAttributes(this.el, ['aria-label']);
|
|
38
|
+
/**
|
|
39
|
+
* The initial value of `aria-label` needs to be set for
|
|
40
|
+
* the first render.
|
|
41
|
+
|
|
42
|
+
*/
|
|
43
|
+
this.ariaLabel = inheritedAttributes['aria-label'] || null;
|
|
44
|
+
}
|
|
45
|
+
connectedCallback() {
|
|
46
|
+
this.pickerColumn = this.el.closest('ion-picker-column');
|
|
47
|
+
}
|
|
48
|
+
disconnectedCallback() {
|
|
49
|
+
this.pickerColumn = null;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* The column options can load at any time
|
|
53
|
+
* so the options needs to tell the
|
|
54
|
+
* parent picker column when it is loaded
|
|
55
|
+
* so the picker column can ensure it is
|
|
56
|
+
* centered in the view.
|
|
57
|
+
*
|
|
58
|
+
* We intentionally run this for every
|
|
59
|
+
* option. If we only ran this from
|
|
60
|
+
* the selected option then if the newly
|
|
61
|
+
* loaded options were not selected then
|
|
62
|
+
* scrollActiveItemIntoView would not be called.
|
|
63
|
+
*/
|
|
64
|
+
componentDidLoad() {
|
|
65
|
+
const { pickerColumn } = this;
|
|
66
|
+
if (pickerColumn !== null) {
|
|
67
|
+
pickerColumn.scrollActiveItemIntoView();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* When an option is clicked, update the
|
|
72
|
+
* parent picker column value. This
|
|
73
|
+
* component will handle centering the option
|
|
74
|
+
* in the column view.
|
|
75
|
+
*/
|
|
76
|
+
onClick() {
|
|
77
|
+
const { pickerColumn } = this;
|
|
78
|
+
if (pickerColumn !== null) {
|
|
79
|
+
pickerColumn.setValue(this.value);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
render() {
|
|
83
|
+
const { color, disabled, ariaLabel } = this;
|
|
84
|
+
const mode = getIonMode(this);
|
|
85
|
+
return (h(Host, { class: createColorClasses(color, {
|
|
86
|
+
[mode]: true,
|
|
87
|
+
['option-disabled']: disabled,
|
|
88
|
+
}) }, h("button", { tabindex: "-1", "aria-label": ariaLabel, disabled: disabled, onClick: () => this.onClick() }, h("slot", null))));
|
|
89
|
+
}
|
|
90
|
+
get el() { return getElement(this); }
|
|
91
|
+
static get watchers() { return {
|
|
92
|
+
"aria-label": ["onAriaLabelChange"]
|
|
93
|
+
}; }
|
|
94
|
+
};
|
|
95
|
+
PickerColumnOption.style = {
|
|
96
|
+
ios: pickerColumnOptionIosCss,
|
|
97
|
+
md: pickerColumnOptionMdCss
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
export { PickerColumnOption as ion_picker_column_option };
|
|
@@ -2,18 +2,16 @@
|
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
4
|
import { r as registerInstance, d as createEvent, h, H as Host, f as getElement } from './index-b7d870cf.js';
|
|
5
|
+
import { d as doc } from './index-a5d50daf.js';
|
|
5
6
|
import { r as raf, g as getElementRoot } from './helpers-ae653409.js';
|
|
6
7
|
import { a as hapticSelectionStart, b as hapticSelectionChanged, h as hapticSelectionEnd } from './haptic-554688a5.js';
|
|
7
8
|
import { a as isPlatform, b as getIonMode } from './ionic-global-1f99b929.js';
|
|
8
9
|
import { c as createColorClasses } from './theme-01f3f29c.js';
|
|
9
10
|
import './capacitor-59395cbd.js';
|
|
10
|
-
import './index-a5d50daf.js';
|
|
11
11
|
|
|
12
|
-
const
|
|
12
|
+
const pickerColumnCss = ":host{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;max-width:100%;height:200px;font-size:22px;text-align:center}.picker-opts{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0px;padding-bottom:0px;min-width:26px;max-height:200px;outline:none;text-align:inherit;-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;overflow-x:hidden;overflow-y:scroll;scrollbar-width:none}.picker-item-empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.picker-opts::-webkit-scrollbar{display:none}::slotted(ion-picker-column-option){display:block;scroll-snap-align:center}.picker-item-empty,:host(:not([disabled])) ::slotted(ion-picker-column-option.option-disabled){scroll-snap-align:none}::slotted([slot=prefix]),::slotted([slot=suffix]){max-width:200px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::slotted([slot=prefix]){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-ms-flex-pack:end;justify-content:end}::slotted([slot=suffix]){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-ms-flex-pack:start;justify-content:start}:host(.picker-column-disabled) .picker-opts{overflow-y:hidden}:host(.picker-column-disabled) ::slotted(ion-picker-column-option){cursor:default;opacity:0.4;pointer-events:none}@media (any-hover: hover){:host(:focus) .picker-opts{outline:none;background:rgba(var(--ion-color-base-rgb), 0.2)}}";
|
|
13
13
|
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
const PickerColumnInternal = class {
|
|
14
|
+
const PickerColumn = class {
|
|
17
15
|
constructor(hostRef) {
|
|
18
16
|
registerInstance(this, hostRef);
|
|
19
17
|
this.ionChange = createEvent(this, "ionChange", 7);
|
|
@@ -21,11 +19,11 @@ const PickerColumnInternal = class {
|
|
|
21
19
|
this.isColumnVisible = false;
|
|
22
20
|
this.canExitInputMode = true;
|
|
23
21
|
this.centerPickerItemInView = (target, smooth = true, canExitInputMode = true) => {
|
|
24
|
-
const {
|
|
25
|
-
if (isColumnVisible) {
|
|
22
|
+
const { isColumnVisible, scrollEl } = this;
|
|
23
|
+
if (isColumnVisible && scrollEl) {
|
|
26
24
|
// (Vertical offset from parent) - (three empty picker rows) + (half the height of the target to ensure the scroll triggers)
|
|
27
25
|
const top = target.offsetTop - 3 * target.clientHeight + target.clientHeight / 2;
|
|
28
|
-
if (
|
|
26
|
+
if (scrollEl.scrollTop !== top) {
|
|
29
27
|
/**
|
|
30
28
|
* Setting this flag prevents input
|
|
31
29
|
* mode from exiting in the picker column's
|
|
@@ -34,7 +32,7 @@ const PickerColumnInternal = class {
|
|
|
34
32
|
* of these can cause a scroll to occur.
|
|
35
33
|
*/
|
|
36
34
|
this.canExitInputMode = canExitInputMode;
|
|
37
|
-
|
|
35
|
+
scrollEl.scroll({
|
|
38
36
|
top,
|
|
39
37
|
left: 0,
|
|
40
38
|
behavior: smooth ? 'smooth' : undefined,
|
|
@@ -45,11 +43,9 @@ const PickerColumnInternal = class {
|
|
|
45
43
|
this.setPickerItemActiveState = (item, isActive) => {
|
|
46
44
|
if (isActive) {
|
|
47
45
|
item.classList.add(PICKER_ITEM_ACTIVE_CLASS);
|
|
48
|
-
item.part.add(PICKER_ITEM_ACTIVE_PART);
|
|
49
46
|
}
|
|
50
47
|
else {
|
|
51
48
|
item.classList.remove(PICKER_ITEM_ACTIVE_CLASS);
|
|
52
|
-
item.part.remove(PICKER_ITEM_ACTIVE_PART);
|
|
53
49
|
}
|
|
54
50
|
};
|
|
55
51
|
/**
|
|
@@ -103,11 +99,13 @@ const PickerColumnInternal = class {
|
|
|
103
99
|
* be disabled on Android.
|
|
104
100
|
*/
|
|
105
101
|
const enableHaptics = isPlatform('ios');
|
|
106
|
-
const { el } = this;
|
|
102
|
+
const { el, scrollEl } = this;
|
|
107
103
|
let timeout;
|
|
108
104
|
let activeEl = this.activeItem;
|
|
109
105
|
const scrollCallback = () => {
|
|
110
106
|
raf(() => {
|
|
107
|
+
if (!scrollEl)
|
|
108
|
+
return;
|
|
111
109
|
if (timeout) {
|
|
112
110
|
clearTimeout(timeout);
|
|
113
111
|
timeout = undefined;
|
|
@@ -120,21 +118,54 @@ const PickerColumnInternal = class {
|
|
|
120
118
|
* Select item in the center of the column
|
|
121
119
|
* which is the month/year that we want to select
|
|
122
120
|
*/
|
|
123
|
-
const bbox =
|
|
121
|
+
const bbox = scrollEl.getBoundingClientRect();
|
|
124
122
|
const centerX = bbox.x + bbox.width / 2;
|
|
125
123
|
const centerY = bbox.y + bbox.height / 2;
|
|
126
|
-
|
|
127
|
-
|
|
124
|
+
/**
|
|
125
|
+
* elementFromPoint returns the top-most element.
|
|
126
|
+
* This means that if an ion-backdrop is overlaying the
|
|
127
|
+
* picker then the appropriate picker column option will
|
|
128
|
+
* not be selected. To account for this, we use elementsFromPoint
|
|
129
|
+
* and use an Array.find to find the appropriate column option
|
|
130
|
+
* at that point.
|
|
131
|
+
*
|
|
132
|
+
* Additionally, the picker column could be used in the
|
|
133
|
+
* Shadow DOM (i.e. in ion-datetime) so we need to make
|
|
134
|
+
* sure we are choosing the correct host otherwise
|
|
135
|
+
* the elements returns by elementsFromPoint will be
|
|
136
|
+
* retargeted. To account for this, we check to see
|
|
137
|
+
* if the picker column has a parent shadow root. If
|
|
138
|
+
* so, we use that shadow root when doing elementsFromPoint.
|
|
139
|
+
* Otherwise, we just use the document.
|
|
140
|
+
*/
|
|
141
|
+
const rootNode = el.getRootNode();
|
|
142
|
+
const hasParentShadow = rootNode instanceof ShadowRoot;
|
|
143
|
+
const referenceNode = hasParentShadow ? rootNode : doc;
|
|
144
|
+
/**
|
|
145
|
+
* If the reference node is undefined
|
|
146
|
+
* then it's likely that doc is undefined
|
|
147
|
+
* due to being in an SSR environment.
|
|
148
|
+
*/
|
|
149
|
+
if (referenceNode === undefined) {
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
const elementsAtPoint = referenceNode.elementsFromPoint(centerX, centerY);
|
|
153
|
+
/**
|
|
154
|
+
* elementsFromPoint can returns multiple elements
|
|
155
|
+
* so find the relevant picker column option if one exists.
|
|
156
|
+
*/
|
|
157
|
+
const newActiveElement = elementsAtPoint.find((el) => el.tagName === 'ION-PICKER-COLUMN-OPTION');
|
|
158
|
+
if (activeEl !== undefined) {
|
|
128
159
|
this.setPickerItemActiveState(activeEl, false);
|
|
129
160
|
}
|
|
130
|
-
if (
|
|
161
|
+
if (newActiveElement === undefined || newActiveElement.disabled) {
|
|
131
162
|
return;
|
|
132
163
|
}
|
|
133
164
|
/**
|
|
134
165
|
* If we are selecting a new value,
|
|
135
166
|
* we need to run haptics again.
|
|
136
167
|
*/
|
|
137
|
-
if (
|
|
168
|
+
if (newActiveElement !== activeEl) {
|
|
138
169
|
enableHaptics && hapticSelectionChanged();
|
|
139
170
|
if (this.canExitInputMode) {
|
|
140
171
|
/**
|
|
@@ -151,8 +182,8 @@ const PickerColumnInternal = class {
|
|
|
151
182
|
this.exitInputMode();
|
|
152
183
|
}
|
|
153
184
|
}
|
|
154
|
-
activeEl =
|
|
155
|
-
this.setPickerItemActiveState(
|
|
185
|
+
activeEl = newActiveElement;
|
|
186
|
+
this.setPickerItemActiveState(newActiveElement, true);
|
|
156
187
|
timeout = setTimeout(() => {
|
|
157
188
|
this.isScrolling = false;
|
|
158
189
|
enableHaptics && hapticSelectionEnd();
|
|
@@ -174,20 +205,7 @@ const PickerColumnInternal = class {
|
|
|
174
205
|
* case, we should exit input mode.
|
|
175
206
|
*/
|
|
176
207
|
this.canExitInputMode = true;
|
|
177
|
-
|
|
178
|
-
/**
|
|
179
|
-
* If no value it is
|
|
180
|
-
* possible we hit one of the
|
|
181
|
-
* empty padding columns.
|
|
182
|
-
*/
|
|
183
|
-
if (dataIndex === null) {
|
|
184
|
-
return;
|
|
185
|
-
}
|
|
186
|
-
const index = parseInt(dataIndex, 10);
|
|
187
|
-
const selectedItem = this.items[index];
|
|
188
|
-
if (selectedItem.value !== this.value) {
|
|
189
|
-
this.setValue(selectedItem.value);
|
|
190
|
-
}
|
|
208
|
+
this.setValue(newActiveElement.value);
|
|
191
209
|
}, 250);
|
|
192
210
|
});
|
|
193
211
|
};
|
|
@@ -196,9 +214,11 @@ const PickerColumnInternal = class {
|
|
|
196
214
|
* does not fire when component is initially shown.
|
|
197
215
|
*/
|
|
198
216
|
raf(() => {
|
|
199
|
-
|
|
217
|
+
if (!scrollEl)
|
|
218
|
+
return;
|
|
219
|
+
scrollEl.addEventListener('scroll', scrollCallback);
|
|
200
220
|
this.destroyScrollListener = () => {
|
|
201
|
-
|
|
221
|
+
scrollEl.removeEventListener('scroll', scrollCallback);
|
|
202
222
|
};
|
|
203
223
|
});
|
|
204
224
|
};
|
|
@@ -226,7 +246,6 @@ const PickerColumnInternal = class {
|
|
|
226
246
|
};
|
|
227
247
|
this.isActive = false;
|
|
228
248
|
this.disabled = false;
|
|
229
|
-
this.items = [];
|
|
230
249
|
this.value = undefined;
|
|
231
250
|
this.color = 'primary';
|
|
232
251
|
this.numericInput = false;
|
|
@@ -237,7 +256,7 @@ const PickerColumnInternal = class {
|
|
|
237
256
|
* Only scroll the active item into view when the picker column
|
|
238
257
|
* is actively visible to the user.
|
|
239
258
|
*/
|
|
240
|
-
this.scrollActiveItemIntoView();
|
|
259
|
+
this.scrollActiveItemIntoView(true);
|
|
241
260
|
}
|
|
242
261
|
}
|
|
243
262
|
/**
|
|
@@ -275,36 +294,33 @@ const PickerColumnInternal = class {
|
|
|
275
294
|
}
|
|
276
295
|
};
|
|
277
296
|
new IntersectionObserver(visibleCallback, { threshold: 0.001 }).observe(this.el);
|
|
278
|
-
const parentEl = (this.parentEl = this.el.closest('ion-picker
|
|
297
|
+
const parentEl = (this.parentEl = this.el.closest('ion-picker'));
|
|
279
298
|
if (parentEl !== null) {
|
|
280
299
|
// TODO(FW-2832): type
|
|
281
300
|
parentEl.addEventListener('ionInputModeChange', (ev) => this.inputModeChange(ev));
|
|
282
301
|
}
|
|
283
302
|
}
|
|
284
303
|
componentDidRender() {
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
*
|
|
298
|
-
*/
|
|
299
|
-
this.setValue(items[0].value);
|
|
304
|
+
const { el, activeItem, isColumnVisible, value } = this;
|
|
305
|
+
if (isColumnVisible && !activeItem) {
|
|
306
|
+
const firstOption = el.querySelector('ion-picker-column-option');
|
|
307
|
+
/**
|
|
308
|
+
* If the picker column does not have an active item and the current value
|
|
309
|
+
* does not match the first item in the picker column, that means
|
|
310
|
+
* the value is out of bounds. In this case, we assign the value to the
|
|
311
|
+
* first item to match the scroll position of the column.
|
|
312
|
+
*
|
|
313
|
+
*/
|
|
314
|
+
if (firstOption !== null && firstOption.value !== value) {
|
|
315
|
+
this.setValue(firstOption.value);
|
|
300
316
|
}
|
|
301
317
|
}
|
|
302
318
|
}
|
|
303
319
|
/** @internal */
|
|
304
|
-
async scrollActiveItemIntoView() {
|
|
320
|
+
async scrollActiveItemIntoView(smooth = false) {
|
|
305
321
|
const activeEl = this.activeItem;
|
|
306
322
|
if (activeEl) {
|
|
307
|
-
this.centerPickerItemInView(activeEl,
|
|
323
|
+
this.centerPickerItemInView(activeEl, smooth, false);
|
|
308
324
|
}
|
|
309
325
|
}
|
|
310
326
|
/**
|
|
@@ -315,52 +331,53 @@ const PickerColumnInternal = class {
|
|
|
315
331
|
* @internal
|
|
316
332
|
*/
|
|
317
333
|
async setValue(value) {
|
|
318
|
-
|
|
334
|
+
if (this.disabled === true || this.value === value) {
|
|
335
|
+
return;
|
|
336
|
+
}
|
|
319
337
|
this.value = value;
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
338
|
+
this.ionChange.emit({ value });
|
|
339
|
+
}
|
|
340
|
+
/**
|
|
341
|
+
* Sets focus on the scrollable container within the picker column.
|
|
342
|
+
* Use this method instead of the global `pickerColumn.focus()`.
|
|
343
|
+
*/
|
|
344
|
+
async setFocus() {
|
|
345
|
+
if (this.scrollEl) {
|
|
346
|
+
this.scrollEl.focus();
|
|
323
347
|
}
|
|
324
348
|
}
|
|
325
349
|
get activeItem() {
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
350
|
+
const { value } = this;
|
|
351
|
+
const options = Array.from(this.el.querySelectorAll('ion-picker-column-option'));
|
|
352
|
+
return options.find((option) => {
|
|
353
|
+
/**
|
|
354
|
+
* If the whole picker column is disabled, the current value should appear active
|
|
355
|
+
* If the current value item is specifically disabled, it should not appear active
|
|
356
|
+
*/
|
|
357
|
+
if (!this.disabled && option.disabled) {
|
|
358
|
+
return false;
|
|
359
|
+
}
|
|
360
|
+
return option.value === value;
|
|
361
|
+
});
|
|
330
362
|
}
|
|
331
363
|
render() {
|
|
332
|
-
const {
|
|
364
|
+
const { color, disabled, isActive, numericInput } = this;
|
|
333
365
|
const mode = getIonMode(this);
|
|
334
|
-
|
|
335
|
-
* exportparts is needed so ion-datetime can expose the parts
|
|
336
|
-
* from two layers of shadow nesting. If this causes problems,
|
|
337
|
-
* the attribute can be moved to datetime.tsx and set on every
|
|
338
|
-
* instance of ion-picker-column-internal there instead.
|
|
339
|
-
*/
|
|
340
|
-
return (h(Host, { exportparts: `${PICKER_ITEM_PART}, ${PICKER_ITEM_ACTIVE_PART}`, disabled: pickerDisabled, tabindex: pickerDisabled ? null : 0, class: createColorClasses(color, {
|
|
366
|
+
return (h(Host, { class: createColorClasses(color, {
|
|
341
367
|
[mode]: true,
|
|
342
368
|
['picker-column-active']: isActive,
|
|
343
369
|
['picker-column-numeric-input']: numericInput,
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
}, "data-value": item.value, "data-index": index, onClick: (ev) => {
|
|
349
|
-
this.centerPickerItemInView(ev.target, true);
|
|
350
|
-
}, disabled: isItemDisabled, part: PICKER_ITEM_PART }, item.text));
|
|
351
|
-
}), h("div", { class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0")));
|
|
370
|
+
['picker-column-disabled']: disabled,
|
|
371
|
+
}) }, h("slot", { name: "prefix" }), h("div", { class: "picker-opts", tabindex: disabled ? undefined : 0, ref: (el) => {
|
|
372
|
+
this.scrollEl = el;
|
|
373
|
+
} }, h("div", { class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("slot", null), h("div", { class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), h("slot", { name: "suffix" })));
|
|
352
374
|
}
|
|
353
375
|
get el() { return getElement(this); }
|
|
354
376
|
static get watchers() { return {
|
|
355
377
|
"value": ["valueChange"]
|
|
356
378
|
}; }
|
|
357
379
|
};
|
|
358
|
-
const PICKER_ITEM_ACTIVE_CLASS = '
|
|
359
|
-
|
|
360
|
-
const PICKER_ITEM_ACTIVE_PART = 'active';
|
|
361
|
-
PickerColumnInternal.style = {
|
|
362
|
-
ios: pickerColumnInternalIosCss,
|
|
363
|
-
md: pickerColumnInternalMdCss
|
|
364
|
-
};
|
|
380
|
+
const PICKER_ITEM_ACTIVE_CLASS = 'option-active';
|
|
381
|
+
PickerColumn.style = pickerColumnCss;
|
|
365
382
|
|
|
366
|
-
export {
|
|
383
|
+
export { PickerColumn as ion_picker_column };
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
import { r as registerInstance, d as createEvent, h, H as Host, f as getElement } from './index-b7d870cf.js';
|
|
5
5
|
import { g as getElementRoot } from './helpers-ae653409.js';
|
|
6
6
|
|
|
7
|
-
const
|
|
7
|
+
const pickerIosCss = ":host{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:200px;direction:ltr;z-index:0}:host .picker-before,:host .picker-after{position:absolute;width:100%;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:1;pointer-events:none}:host .picker-before{top:0;height:83px}@supports (inset-inline-start: 0){:host .picker-before{inset-inline-start:0}}@supports not (inset-inline-start: 0){:host .picker-before{left:0}:host-context([dir=rtl]) .picker-before{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){:host(:dir(rtl)) .picker-before{left:unset;right:unset;right:0}}}:host .picker-after{top:116px;height:84px}@supports (inset-inline-start: 0){:host .picker-after{inset-inline-start:0}}@supports not (inset-inline-start: 0){:host .picker-after{left:0}:host-context([dir=rtl]) .picker-after{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){:host(:dir(rtl)) .picker-after{left:unset;right:unset;right:0}}}:host .picker-highlight{border-radius:var(--highlight-border-radius, 8px);left:0;right:0;top:50%;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0;position:absolute;width:calc(100% - 16px);height:34px;-webkit-transform:translateY(-50%);transform:translateY(-50%);background:var(--highlight-background);z-index:-1}:host input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}:host ::slotted(ion-picker-column:first-of-type){text-align:start}:host ::slotted(ion-picker-column:last-of-type){text-align:end}:host ::slotted(ion-picker-column:only-child){text-align:center}:host .picker-before{background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), to(rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8)));background:linear-gradient(to bottom, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8) 100%)}:host .picker-after{background:-webkit-gradient(linear, left bottom, left top, color-stop(20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), to(rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8)));background:linear-gradient(to top, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8) 100%)}:host .picker-highlight{background:var(--highlight-background, var(--ion-color-step-150, #eeeeef))}";
|
|
8
8
|
|
|
9
|
-
const
|
|
9
|
+
const pickerMdCss = ":host{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:200px;direction:ltr;z-index:0}:host .picker-before,:host .picker-after{position:absolute;width:100%;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:1;pointer-events:none}:host .picker-before{top:0;height:83px}@supports (inset-inline-start: 0){:host .picker-before{inset-inline-start:0}}@supports not (inset-inline-start: 0){:host .picker-before{left:0}:host-context([dir=rtl]) .picker-before{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){:host(:dir(rtl)) .picker-before{left:unset;right:unset;right:0}}}:host .picker-after{top:116px;height:84px}@supports (inset-inline-start: 0){:host .picker-after{inset-inline-start:0}}@supports not (inset-inline-start: 0){:host .picker-after{left:0}:host-context([dir=rtl]) .picker-after{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){:host(:dir(rtl)) .picker-after{left:unset;right:unset;right:0}}}:host .picker-highlight{border-radius:var(--highlight-border-radius, 8px);left:0;right:0;top:50%;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0;position:absolute;width:calc(100% - 16px);height:34px;-webkit-transform:translateY(-50%);transform:translateY(-50%);background:var(--highlight-background);z-index:-1}:host input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}:host ::slotted(ion-picker-column:first-of-type){text-align:start}:host ::slotted(ion-picker-column:last-of-type){text-align:end}:host ::slotted(ion-picker-column:only-child){text-align:center}:host .picker-before{background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), color-stop(90%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0)));background:linear-gradient(to bottom, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0) 90%)}:host .picker-after{background:-webkit-gradient(linear, left bottom, left top, color-stop(30%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), color-stop(90%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0)));background:linear-gradient(to top, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 30%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0) 90%)}";
|
|
10
10
|
|
|
11
|
-
const
|
|
11
|
+
const Picker = class {
|
|
12
12
|
constructor(hostRef) {
|
|
13
13
|
registerInstance(this, hostRef);
|
|
14
14
|
this.ionInputModeChange = createEvent(this, "ionInputModeChange", 7);
|
|
@@ -40,7 +40,7 @@ const PickerInternal = class {
|
|
|
40
40
|
this.onFocusOut = (ev) => {
|
|
41
41
|
// TODO(FW-2832): type
|
|
42
42
|
const { relatedTarget } = ev;
|
|
43
|
-
if (!relatedTarget || (relatedTarget.tagName !== 'ION-PICKER-COLUMN
|
|
43
|
+
if (!relatedTarget || (relatedTarget.tagName !== 'ION-PICKER-COLUMN' && relatedTarget !== this.inputEl)) {
|
|
44
44
|
this.exitInputMode();
|
|
45
45
|
}
|
|
46
46
|
};
|
|
@@ -58,7 +58,7 @@ const PickerInternal = class {
|
|
|
58
58
|
* make sure that this function only ever runs when
|
|
59
59
|
* focusing a picker column.
|
|
60
60
|
*/
|
|
61
|
-
if (target.tagName !== 'ION-PICKER-COLUMN
|
|
61
|
+
if (target.tagName !== 'ION-PICKER-COLUMN') {
|
|
62
62
|
return;
|
|
63
63
|
}
|
|
64
64
|
/**
|
|
@@ -125,7 +125,7 @@ const PickerInternal = class {
|
|
|
125
125
|
* since we just tapped the highlight and
|
|
126
126
|
* not a column.
|
|
127
127
|
*/
|
|
128
|
-
if (ev.target.tagName === 'ION-PICKER-COLUMN
|
|
128
|
+
if (ev.target.tagName === 'ION-PICKER-COLUMN') {
|
|
129
129
|
/**
|
|
130
130
|
* If user taps 2 different columns
|
|
131
131
|
* then we should just switch to input mode
|
|
@@ -159,7 +159,7 @@ const PickerInternal = class {
|
|
|
159
159
|
* If there is only 1 numeric input column
|
|
160
160
|
* then we should skip multi column input.
|
|
161
161
|
*/
|
|
162
|
-
const columns = el.querySelectorAll('ion-picker-column
|
|
162
|
+
const columns = el.querySelectorAll('ion-picker-column.picker-column-numeric-input');
|
|
163
163
|
const columnEl = columns.length === 1 ? ev.target : undefined;
|
|
164
164
|
this.actionOnClick = () => {
|
|
165
165
|
this.enterInputMode(columnEl);
|
|
@@ -193,7 +193,7 @@ const PickerInternal = class {
|
|
|
193
193
|
* Only active input mode if there is at
|
|
194
194
|
* least one column that accepts numeric input.
|
|
195
195
|
*/
|
|
196
|
-
const hasInputColumn = el.querySelector('ion-picker-column
|
|
196
|
+
const hasInputColumn = el.querySelector('ion-picker-column.picker-column-numeric-input');
|
|
197
197
|
if (!hasInputColumn) {
|
|
198
198
|
return;
|
|
199
199
|
}
|
|
@@ -246,7 +246,7 @@ const PickerInternal = class {
|
|
|
246
246
|
if (!inputEl || !inputModeColumn) {
|
|
247
247
|
return;
|
|
248
248
|
}
|
|
249
|
-
const
|
|
249
|
+
const options = Array.from(inputModeColumn.querySelectorAll('ion-picker-column-option')).filter((el) => el.disabled !== true);
|
|
250
250
|
/**
|
|
251
251
|
* If users pause for a bit, the search
|
|
252
252
|
* value should be reset similar to how a
|
|
@@ -286,8 +286,13 @@ const PickerInternal = class {
|
|
|
286
286
|
* 0+(?=[1-9]) --> Match 1 or more zeros that are followed by 1-9
|
|
287
287
|
* 0+(?=0$) --> Match 1 or more zeros that must be followed by one 0 and end.
|
|
288
288
|
*/
|
|
289
|
-
const findItemFromCompleteValue =
|
|
290
|
-
|
|
289
|
+
const findItemFromCompleteValue = options.find(({ textContent }) => {
|
|
290
|
+
/**
|
|
291
|
+
* Keyboard entry is currently only used inside of Datetime
|
|
292
|
+
* where we guarantee textContent is set.
|
|
293
|
+
* If we end up exposing this feature publicly we should revisit this assumption.
|
|
294
|
+
*/
|
|
295
|
+
const parsedText = textContent.replace(/^0+(?=[1-9])|0+(?=0$)/, '');
|
|
291
296
|
return parsedText === inputEl.value;
|
|
292
297
|
});
|
|
293
298
|
if (findItemFromCompleteValue) {
|
|
@@ -312,9 +317,11 @@ const PickerInternal = class {
|
|
|
312
317
|
*/
|
|
313
318
|
this.searchColumn = (colEl, value, zeroBehavior = 'start') => {
|
|
314
319
|
const behavior = zeroBehavior === 'start' ? /^0+/ : /0$/;
|
|
315
|
-
const
|
|
316
|
-
|
|
317
|
-
|
|
320
|
+
const option = Array.from(colEl.querySelectorAll('ion-picker-column-option')).find((el) => {
|
|
321
|
+
return el.disabled !== true && el.textContent.replace(behavior, '') === value;
|
|
322
|
+
});
|
|
323
|
+
if (option) {
|
|
324
|
+
colEl.setValue(option.value);
|
|
318
325
|
}
|
|
319
326
|
};
|
|
320
327
|
this.selectMultiColumn = () => {
|
|
@@ -322,7 +329,7 @@ const PickerInternal = class {
|
|
|
322
329
|
if (!inputEl) {
|
|
323
330
|
return;
|
|
324
331
|
}
|
|
325
|
-
const numericPickers = Array.from(el.querySelectorAll('ion-picker-column
|
|
332
|
+
const numericPickers = Array.from(el.querySelectorAll('ion-picker-column')).filter((col) => col.numericInput);
|
|
326
333
|
const firstColumn = numericPickers[0];
|
|
327
334
|
const lastColumn = numericPickers[1];
|
|
328
335
|
let value = inputEl.value;
|
|
@@ -474,9 +481,9 @@ const PickerInternal = class {
|
|
|
474
481
|
}
|
|
475
482
|
get el() { return getElement(this); }
|
|
476
483
|
};
|
|
477
|
-
|
|
478
|
-
ios:
|
|
479
|
-
md:
|
|
484
|
+
Picker.style = {
|
|
485
|
+
ios: pickerIosCss,
|
|
486
|
+
md: pickerMdCss
|
|
480
487
|
};
|
|
481
488
|
|
|
482
|
-
export {
|
|
489
|
+
export { Picker as ion_picker };
|
|
@@ -6,12 +6,13 @@ import { C as CoreDelegate, a as attachComponent, d as detachComponent } from '.
|
|
|
6
6
|
import { r as raf, g as getElementRoot, a as addEventListener, m as hasLazyBuild } from './helpers-ae653409.js';
|
|
7
7
|
import { c as createLockController } from './lock-controller-316928be.js';
|
|
8
8
|
import { p as printIonWarning } from './index-9b0d46f4.js';
|
|
9
|
-
import { B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, o as focusFirstDescendant, g as dismiss, h as eventMethod } from './overlays-
|
|
9
|
+
import { B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, o as focusFirstDescendant, g as dismiss, h as eventMethod } from './overlays-94dac1cb.js';
|
|
10
10
|
import { b as getIonMode, a as isPlatform } from './ionic-global-1f99b929.js';
|
|
11
11
|
import { g as getClassMap } from './theme-01f3f29c.js';
|
|
12
12
|
import { e as deepReady, w as waitForMount } from './index-4743453d.js';
|
|
13
13
|
import { c as createAnimation } from './animation-dde8cc0d.js';
|
|
14
14
|
import './index-a5d50daf.js';
|
|
15
|
+
import './gesture-controller-314a54f6.js';
|
|
15
16
|
import './hardware-back-button-b2bc76db.js';
|
|
16
17
|
|
|
17
18
|
/**
|