@ionic/core 7.6.2-dev.11703182244.1165aeec → 7.6.2-dev.11704390532.1202188d
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/backdrop.js +0 -12
- package/components/button.js +2 -2
- package/components/data.js +1 -1
- package/components/gesture-controller.js +1 -1
- package/components/ion-content.js +1 -1
- package/components/ion-datetime.js +40 -64
- package/components/ion-picker-column-option.d.ts +11 -0
- package/components/ion-picker-column-option.js +9 -0
- package/components/ion-picker-column.js +2 -2
- package/components/ion-picker-legacy-column.d.ts +11 -0
- package/components/ion-picker-legacy-column.js +9 -0
- package/components/{ion-picker-internal.d.ts → ion-picker-legacy.d.ts} +4 -4
- package/components/ion-picker-legacy.js +309 -0
- package/components/ion-picker.js +1 -309
- package/components/overlays.js +11 -4
- package/components/picker-column-option.js +122 -0
- package/components/picker-column.js +351 -322
- package/components/picker-column2.js +379 -0
- package/components/{picker-internal.js → picker.js} +29 -22
- package/components/radio-group.js +1 -9
- 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 +4 -4
- package/dist/cjs/ion-alert.cjs.entry.js +4 -4
- package/dist/cjs/ion-app_8.cjs.entry.js +2 -2
- 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-datetime-button.cjs.entry.js +1 -1
- package/dist/cjs/ion-datetime_3.cjs.entry.js +36 -56
- package/dist/cjs/ion-item-option_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-loading.cjs.entry.js +2 -1
- package/dist/cjs/ion-menu_3.cjs.entry.js +3 -3
- 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-radio_2.cjs.entry.js +1 -9
- package/dist/cjs/ion-range.cjs.entry.js +1 -1
- package/dist/cjs/ion-refresher_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-reorder_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-segment_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-select_3.cjs.entry.js +2 -1
- package/dist/cjs/ion-toast.cjs.entry.js +3 -3
- package/dist/cjs/ion-toggle.cjs.entry.js +1 -1
- 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/backdrop/backdrop.js +0 -12
- package/dist/collection/components/button/button.ios.css +1 -1
- package/dist/collection/components/button/button.md.css +1 -1
- package/dist/collection/components/button/test/wrap/button.e2e.js +12 -24
- package/dist/collection/components/content/content.css +0 -4
- package/dist/collection/components/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/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}/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/radio-group/radio-group.js +1 -9
- package/dist/collection/utils/gesture/gesture-controller.js +1 -1
- package/dist/collection/utils/overlays.js +11 -4
- package/dist/collection/utils/test/overlays/overlays-scroll-blocking.spec.js +65 -0
- package/dist/docs.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 +4 -4
- package/dist/esm/ion-alert.entry.js +4 -4
- package/dist/esm/ion-app_8.entry.js +2 -2
- package/dist/esm/ion-backdrop.entry.js +0 -12
- package/dist/esm/ion-button_2.entry.js +2 -2
- package/dist/esm/ion-datetime-button.entry.js +1 -1
- package/dist/esm/ion-datetime_3.entry.js +35 -55
- package/dist/esm/ion-item-option_3.entry.js +1 -1
- package/dist/esm/ion-loading.entry.js +2 -1
- package/dist/esm/ion-menu_3.entry.js +3 -3
- 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-radio_2.entry.js +1 -9
- package/dist/esm/ion-range.entry.js +1 -1
- package/dist/esm/ion-refresher_2.entry.js +3 -3
- package/dist/esm/ion-reorder_2.entry.js +1 -1
- package/dist/esm/ion-segment_2.entry.js +1 -1
- package/dist/esm/ion-select_3.entry.js +2 -1
- package/dist/esm/ion-toast.entry.js +3 -3
- package/dist/esm/ion-toggle.entry.js +1 -1
- 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-backdrop.entry.js +1 -1
- package/dist/esm-es5/ion-button_2.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-item-option_3.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-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-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-254ec7c0.system.entry.js → p-0dfa4ab4.system.entry.js} +2 -2
- package/dist/ionic/{p-96d4814f.system.entry.js → p-0e908476.system.entry.js} +1 -1
- package/dist/ionic/{p-11786dc7.entry.js → p-10339dcc.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-c5acfeb1.entry.js → p-20755eb0.entry.js} +1 -1
- package/dist/ionic/{p-c7c8429a.system.js → p-20d469d0.system.js} +1 -1
- package/dist/ionic/{p-6b0ce9b4.system.entry.js → p-25312768.system.entry.js} +1 -1
- package/dist/ionic/p-26ff1180.entry.js +4 -0
- package/dist/ionic/p-2f449cdf.system.entry.js +4 -0
- package/dist/ionic/p-3717e641.system.entry.js +4 -0
- package/dist/ionic/{p-745e3339.system.entry.js → p-3af5faf8.system.entry.js} +1 -1
- package/dist/ionic/{p-dc71e4ef.system.entry.js → p-3b434dee.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-4793c14c.system.entry.js} +1 -1
- package/dist/ionic/p-51abefb7.system.js +4 -0
- package/dist/ionic/{p-10ec9af7.system.entry.js → p-5ff211d0.system.entry.js} +1 -1
- package/dist/ionic/{p-1b27ac67.entry.js → p-642ac927.entry.js} +1 -1
- package/dist/ionic/{p-a821750c.system.entry.js → p-6e4c7340.system.entry.js} +1 -1
- package/dist/ionic/p-71483cbb.entry.js +4 -0
- package/dist/ionic/p-75a3e35b.entry.js +4 -0
- package/dist/ionic/p-77d78f68.system.entry.js +4 -0
- package/dist/ionic/{p-06abe918.system.entry.js → p-7be412e8.system.entry.js} +1 -1
- package/dist/ionic/p-7c0d778d.system.js +4 -0
- package/dist/ionic/{p-c1701827.entry.js → p-80c6c078.entry.js} +1 -1
- package/dist/ionic/p-8ad6d643.entry.js +4 -0
- package/dist/ionic/{p-648ad047.system.entry.js → p-8ce4e506.system.entry.js} +1 -1
- package/dist/ionic/{p-f5d2dc9b.js → p-8ededb41.js} +1 -1
- package/dist/ionic/p-9164a09d.entry.js +4 -0
- package/dist/ionic/{p-b964aba3.entry.js → p-92bfb607.entry.js} +1 -1
- package/dist/ionic/{p-f894e0ad.entry.js → p-92d35b6a.entry.js} +1 -1
- package/dist/ionic/{p-9fda6824.system.entry.js → p-964dcdb2.system.entry.js} +1 -1
- package/dist/ionic/{p-bb3615f7.js → p-9b97df10.js} +1 -1
- package/dist/ionic/p-a1bd098f.system.entry.js +4 -0
- package/dist/ionic/p-a41eaff2.system.entry.js +4 -0
- package/dist/ionic/p-a60a1ce5.js +4 -0
- package/dist/ionic/{p-2a583966.entry.js → p-b2b5d761.entry.js} +1 -1
- package/dist/ionic/{p-767f1a92.entry.js → p-ba5d9e27.entry.js} +1 -1
- package/dist/ionic/{p-3e8d5e53.entry.js → p-bb3fd397.entry.js} +1 -1
- package/dist/ionic/{p-a3ca2e64.entry.js → p-bec6ae40.entry.js} +1 -1
- package/dist/ionic/{p-2df97906.system.entry.js → p-beed2450.system.entry.js} +1 -1
- package/dist/ionic/p-c001b24f.entry.js +4 -0
- package/dist/ionic/{p-2894d5f6.entry.js → p-c01803db.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-cf350317.entry.js +4 -0
- package/dist/ionic/{p-bdf71399.entry.js → p-cf53213c.entry.js} +1 -1
- package/dist/ionic/{p-28740823.system.entry.js → p-d2634efe.system.entry.js} +1 -1
- package/dist/ionic/{p-ddd48faf.system.entry.js → p-db05ecb6.system.entry.js} +1 -1
- package/dist/ionic/p-dc63dccb.system.entry.js +4 -0
- package/dist/ionic/{p-22827063.system.entry.js → p-e2737fef.system.entry.js} +1 -1
- package/dist/ionic/{p-aee39e06.entry.js → p-ed8402d6.entry.js} +1 -1
- package/dist/ionic/p-f0717d98.js +4 -0
- package/dist/ionic/p-f0dea903.system.entry.js +4 -0
- package/dist/ionic/p-f60807dd.system.entry.js +4 -0
- package/dist/ionic/p-f8c5008f.entry.js +4 -0
- package/dist/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 +1497 -1404
- 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-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-b1f29949.system.entry.js +0 -4
- package/dist/ionic/p-b7a2ffc9.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-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}/picker-column.md.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
|
@@ -143,7 +143,7 @@ const ItemSliding = class {
|
|
|
143
143
|
await this.updateOptions();
|
|
144
144
|
});
|
|
145
145
|
await this.updateOptions();
|
|
146
|
-
this.gesture = (await Promise.resolve().then(function () { return require('./index-
|
|
146
|
+
this.gesture = (await Promise.resolve().then(function () { return require('./index-ee07ed59.js'); })).createGesture({
|
|
147
147
|
el,
|
|
148
148
|
gestureName: 'item-swipe',
|
|
149
149
|
gesturePriority: 100,
|
|
@@ -9,12 +9,13 @@ const index = require('./index-50dcfe2f.js');
|
|
|
9
9
|
const config = require('./config-4f60b98a.js');
|
|
10
10
|
const helpers = require('./helpers-76bb7efb.js');
|
|
11
11
|
const lockController = require('./lock-controller-6585a42a.js');
|
|
12
|
-
const overlays = require('./overlays-
|
|
12
|
+
const overlays = require('./overlays-7773cbe1.js');
|
|
13
13
|
const theme = require('./theme-d1c573d2.js');
|
|
14
14
|
const ionicGlobal = require('./ionic-global-a4edbf03.js');
|
|
15
15
|
const animation = require('./animation-9b401d39.js');
|
|
16
16
|
require('./index-c8d52405.js');
|
|
17
17
|
require('./framework-delegate-1c29b14a.js');
|
|
18
|
+
require('./gesture-controller-9436f482.js');
|
|
18
19
|
require('./hardware-back-button-76833cac.js');
|
|
19
20
|
require('./index-5915f9b3.js');
|
|
20
21
|
|
|
@@ -7,10 +7,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
7
7
|
|
|
8
8
|
const index = require('./index-50dcfe2f.js');
|
|
9
9
|
const cubicBezier = require('./cubic-bezier-f2dccc53.js');
|
|
10
|
-
const gestureController = require('./gesture-controller-
|
|
10
|
+
const gestureController = require('./gesture-controller-9436f482.js');
|
|
11
11
|
const helpers = require('./helpers-76bb7efb.js');
|
|
12
12
|
const index$1 = require('./index-3b012034.js');
|
|
13
|
-
const overlays = require('./overlays-
|
|
13
|
+
const overlays = require('./overlays-7773cbe1.js');
|
|
14
14
|
const ionicGlobal = require('./ionic-global-a4edbf03.js');
|
|
15
15
|
const theme = require('./theme-d1c573d2.js');
|
|
16
16
|
const index$2 = require('./index-09471526.js');
|
|
@@ -133,7 +133,7 @@ const Menu = class {
|
|
|
133
133
|
// register this menu with the app's menu controller
|
|
134
134
|
index$1.menuController._register(this);
|
|
135
135
|
this.menuChanged();
|
|
136
|
-
this.gesture = (await Promise.resolve().then(function () { return require('./index-
|
|
136
|
+
this.gesture = (await Promise.resolve().then(function () { return require('./index-ee07ed59.js'); })).createGesture({
|
|
137
137
|
el: document,
|
|
138
138
|
gestureName: 'menu-swipe',
|
|
139
139
|
gesturePriority: 30,
|
|
@@ -12,18 +12,18 @@ const helpers = require('./helpers-76bb7efb.js');
|
|
|
12
12
|
const lockController = require('./lock-controller-6585a42a.js');
|
|
13
13
|
const index$4 = require('./index-5915f9b3.js');
|
|
14
14
|
const capacitor = require('./capacitor-c04564bf.js');
|
|
15
|
-
const overlays = require('./overlays-
|
|
15
|
+
const overlays = require('./overlays-7773cbe1.js');
|
|
16
16
|
const theme = require('./theme-d1c573d2.js');
|
|
17
17
|
const index$5 = require('./index-17ab7794.js');
|
|
18
18
|
const ionicGlobal = require('./ionic-global-a4edbf03.js');
|
|
19
19
|
const keyboard = require('./keyboard-af1bb365.js');
|
|
20
20
|
const animation = require('./animation-9b401d39.js');
|
|
21
21
|
const cubicBezier = require('./cubic-bezier-f2dccc53.js');
|
|
22
|
-
const index$1 = require('./index-
|
|
22
|
+
const index$1 = require('./index-ee07ed59.js');
|
|
23
23
|
const index = require('./index-c8d52405.js');
|
|
24
|
+
require('./gesture-controller-9436f482.js');
|
|
24
25
|
require('./hardware-back-button-76833cac.js');
|
|
25
26
|
require('./keyboard-0272231f.js');
|
|
26
|
-
require('./gesture-controller-c40c045a.js');
|
|
27
27
|
|
|
28
28
|
var Style;
|
|
29
29
|
(function (Style) {
|
|
@@ -135,7 +135,7 @@ const Nav = class {
|
|
|
135
135
|
// We want to set this flag before any watch callbacks are manually called
|
|
136
136
|
this.didLoad = true;
|
|
137
137
|
this.rootChanged();
|
|
138
|
-
this.gesture = (await Promise.resolve().then(function () { return require('./swipe-back-
|
|
138
|
+
this.gesture = (await Promise.resolve().then(function () { return require('./swipe-back-b8f2330b.js'); })).createSwipeBackGesture(this.el, this.canStart.bind(this), this.onStart.bind(this), this.onMove.bind(this), this.onEnd.bind(this));
|
|
139
139
|
this.swipeGestureChanged();
|
|
140
140
|
}
|
|
141
141
|
connectedCallback() {
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
+
*/
|
|
4
|
+
'use strict';
|
|
5
|
+
|
|
6
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
7
|
+
|
|
8
|
+
const index = require('./index-50dcfe2f.js');
|
|
9
|
+
const helpers = require('./helpers-76bb7efb.js');
|
|
10
|
+
const theme = require('./theme-d1c573d2.js');
|
|
11
|
+
const ionicGlobal = require('./ionic-global-a4edbf03.js');
|
|
12
|
+
|
|
13
|
+
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}";
|
|
14
|
+
|
|
15
|
+
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)}";
|
|
16
|
+
|
|
17
|
+
const PickerColumnOption = class {
|
|
18
|
+
constructor(hostRef) {
|
|
19
|
+
index.registerInstance(this, hostRef);
|
|
20
|
+
/**
|
|
21
|
+
* We keep track of the parent picker column
|
|
22
|
+
* so we can update the value of it when
|
|
23
|
+
* clicking an enable option.
|
|
24
|
+
*/
|
|
25
|
+
this.pickerColumn = null;
|
|
26
|
+
this.ariaLabel = null;
|
|
27
|
+
this.disabled = false;
|
|
28
|
+
this.value = undefined;
|
|
29
|
+
this.color = 'primary';
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* The aria-label of the option has changed after the
|
|
33
|
+
* first render and needs to be updated within the component.
|
|
34
|
+
*
|
|
35
|
+
* @param ariaLbl The new aria-label value.
|
|
36
|
+
*/
|
|
37
|
+
onAriaLabelChange(ariaLbl) {
|
|
38
|
+
this.ariaLabel = ariaLbl;
|
|
39
|
+
}
|
|
40
|
+
componentWillLoad() {
|
|
41
|
+
const inheritedAttributes = helpers.inheritAttributes(this.el, ['aria-label']);
|
|
42
|
+
/**
|
|
43
|
+
* The initial value of `aria-label` needs to be set for
|
|
44
|
+
* the first render.
|
|
45
|
+
|
|
46
|
+
*/
|
|
47
|
+
this.ariaLabel = inheritedAttributes['aria-label'] || null;
|
|
48
|
+
}
|
|
49
|
+
connectedCallback() {
|
|
50
|
+
this.pickerColumn = this.el.closest('ion-picker-column');
|
|
51
|
+
}
|
|
52
|
+
disconnectedCallback() {
|
|
53
|
+
this.pickerColumn = null;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* The column options can load at any time
|
|
57
|
+
* so the options needs to tell the
|
|
58
|
+
* parent picker column when it is loaded
|
|
59
|
+
* so the picker column can ensure it is
|
|
60
|
+
* centered in the view.
|
|
61
|
+
*
|
|
62
|
+
* We intentionally run this for every
|
|
63
|
+
* option. If we only ran this from
|
|
64
|
+
* the selected option then if the newly
|
|
65
|
+
* loaded options were not selected then
|
|
66
|
+
* scrollActiveItemIntoView would not be called.
|
|
67
|
+
*/
|
|
68
|
+
componentDidLoad() {
|
|
69
|
+
const { pickerColumn } = this;
|
|
70
|
+
if (pickerColumn !== null) {
|
|
71
|
+
pickerColumn.scrollActiveItemIntoView();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* When an option is clicked, update the
|
|
76
|
+
* parent picker column value. This
|
|
77
|
+
* component will handle centering the option
|
|
78
|
+
* in the column view.
|
|
79
|
+
*/
|
|
80
|
+
onClick() {
|
|
81
|
+
const { pickerColumn } = this;
|
|
82
|
+
if (pickerColumn !== null) {
|
|
83
|
+
pickerColumn.setValue(this.value);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
render() {
|
|
87
|
+
const { color, disabled, ariaLabel } = this;
|
|
88
|
+
const mode = ionicGlobal.getIonMode(this);
|
|
89
|
+
return (index.h(index.Host, { class: theme.createColorClasses(color, {
|
|
90
|
+
[mode]: true,
|
|
91
|
+
['option-disabled']: disabled,
|
|
92
|
+
}) }, index.h("button", { tabindex: "-1", "aria-label": ariaLabel, disabled: disabled, onClick: () => this.onClick() }, index.h("slot", null))));
|
|
93
|
+
}
|
|
94
|
+
get el() { return index.getElement(this); }
|
|
95
|
+
static get watchers() { return {
|
|
96
|
+
"aria-label": ["onAriaLabelChange"]
|
|
97
|
+
}; }
|
|
98
|
+
};
|
|
99
|
+
PickerColumnOption.style = {
|
|
100
|
+
ios: pickerColumnOptionIosCss,
|
|
101
|
+
md: pickerColumnOptionMdCss
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
exports.ion_picker_column_option = PickerColumnOption;
|
|
@@ -6,18 +6,16 @@
|
|
|
6
6
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
7
7
|
|
|
8
8
|
const index = require('./index-50dcfe2f.js');
|
|
9
|
+
const index$1 = require('./index-c8d52405.js');
|
|
9
10
|
const helpers = require('./helpers-76bb7efb.js');
|
|
10
11
|
const haptic = require('./haptic-b882e0bb.js');
|
|
11
12
|
const ionicGlobal = require('./ionic-global-a4edbf03.js');
|
|
12
13
|
const theme = require('./theme-d1c573d2.js');
|
|
13
14
|
require('./capacitor-c04564bf.js');
|
|
14
|
-
require('./index-c8d52405.js');
|
|
15
15
|
|
|
16
|
-
const
|
|
16
|
+
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)}}";
|
|
17
17
|
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
const PickerColumnInternal = class {
|
|
18
|
+
const PickerColumn = class {
|
|
21
19
|
constructor(hostRef) {
|
|
22
20
|
index.registerInstance(this, hostRef);
|
|
23
21
|
this.ionChange = index.createEvent(this, "ionChange", 7);
|
|
@@ -25,11 +23,11 @@ const PickerColumnInternal = class {
|
|
|
25
23
|
this.isColumnVisible = false;
|
|
26
24
|
this.canExitInputMode = true;
|
|
27
25
|
this.centerPickerItemInView = (target, smooth = true, canExitInputMode = true) => {
|
|
28
|
-
const {
|
|
29
|
-
if (isColumnVisible) {
|
|
26
|
+
const { isColumnVisible, scrollEl } = this;
|
|
27
|
+
if (isColumnVisible && scrollEl) {
|
|
30
28
|
// (Vertical offset from parent) - (three empty picker rows) + (half the height of the target to ensure the scroll triggers)
|
|
31
29
|
const top = target.offsetTop - 3 * target.clientHeight + target.clientHeight / 2;
|
|
32
|
-
if (
|
|
30
|
+
if (scrollEl.scrollTop !== top) {
|
|
33
31
|
/**
|
|
34
32
|
* Setting this flag prevents input
|
|
35
33
|
* mode from exiting in the picker column's
|
|
@@ -38,7 +36,7 @@ const PickerColumnInternal = class {
|
|
|
38
36
|
* of these can cause a scroll to occur.
|
|
39
37
|
*/
|
|
40
38
|
this.canExitInputMode = canExitInputMode;
|
|
41
|
-
|
|
39
|
+
scrollEl.scroll({
|
|
42
40
|
top,
|
|
43
41
|
left: 0,
|
|
44
42
|
behavior: smooth ? 'smooth' : undefined,
|
|
@@ -49,11 +47,9 @@ const PickerColumnInternal = class {
|
|
|
49
47
|
this.setPickerItemActiveState = (item, isActive) => {
|
|
50
48
|
if (isActive) {
|
|
51
49
|
item.classList.add(PICKER_ITEM_ACTIVE_CLASS);
|
|
52
|
-
item.part.add(PICKER_ITEM_ACTIVE_PART);
|
|
53
50
|
}
|
|
54
51
|
else {
|
|
55
52
|
item.classList.remove(PICKER_ITEM_ACTIVE_CLASS);
|
|
56
|
-
item.part.remove(PICKER_ITEM_ACTIVE_PART);
|
|
57
53
|
}
|
|
58
54
|
};
|
|
59
55
|
/**
|
|
@@ -107,11 +103,13 @@ const PickerColumnInternal = class {
|
|
|
107
103
|
* be disabled on Android.
|
|
108
104
|
*/
|
|
109
105
|
const enableHaptics = ionicGlobal.isPlatform('ios');
|
|
110
|
-
const { el } = this;
|
|
106
|
+
const { el, scrollEl } = this;
|
|
111
107
|
let timeout;
|
|
112
108
|
let activeEl = this.activeItem;
|
|
113
109
|
const scrollCallback = () => {
|
|
114
110
|
helpers.raf(() => {
|
|
111
|
+
if (!scrollEl)
|
|
112
|
+
return;
|
|
115
113
|
if (timeout) {
|
|
116
114
|
clearTimeout(timeout);
|
|
117
115
|
timeout = undefined;
|
|
@@ -124,21 +122,54 @@ const PickerColumnInternal = class {
|
|
|
124
122
|
* Select item in the center of the column
|
|
125
123
|
* which is the month/year that we want to select
|
|
126
124
|
*/
|
|
127
|
-
const bbox =
|
|
125
|
+
const bbox = scrollEl.getBoundingClientRect();
|
|
128
126
|
const centerX = bbox.x + bbox.width / 2;
|
|
129
127
|
const centerY = bbox.y + bbox.height / 2;
|
|
130
|
-
|
|
131
|
-
|
|
128
|
+
/**
|
|
129
|
+
* elementFromPoint returns the top-most element.
|
|
130
|
+
* This means that if an ion-backdrop is overlaying the
|
|
131
|
+
* picker then the appropriate picker column option will
|
|
132
|
+
* not be selected. To account for this, we use elementsFromPoint
|
|
133
|
+
* and use an Array.find to find the appropriate column option
|
|
134
|
+
* at that point.
|
|
135
|
+
*
|
|
136
|
+
* Additionally, the picker column could be used in the
|
|
137
|
+
* Shadow DOM (i.e. in ion-datetime) so we need to make
|
|
138
|
+
* sure we are choosing the correct host otherwise
|
|
139
|
+
* the elements returns by elementsFromPoint will be
|
|
140
|
+
* retargeted. To account for this, we check to see
|
|
141
|
+
* if the picker column has a parent shadow root. If
|
|
142
|
+
* so, we use that shadow root when doing elementsFromPoint.
|
|
143
|
+
* Otherwise, we just use the document.
|
|
144
|
+
*/
|
|
145
|
+
const rootNode = el.getRootNode();
|
|
146
|
+
const hasParentShadow = rootNode instanceof ShadowRoot;
|
|
147
|
+
const referenceNode = hasParentShadow ? rootNode : index$1.doc;
|
|
148
|
+
/**
|
|
149
|
+
* If the reference node is undefined
|
|
150
|
+
* then it's likely that doc is undefined
|
|
151
|
+
* due to being in an SSR environment.
|
|
152
|
+
*/
|
|
153
|
+
if (referenceNode === undefined) {
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
const elementsAtPoint = referenceNode.elementsFromPoint(centerX, centerY);
|
|
157
|
+
/**
|
|
158
|
+
* elementsFromPoint can returns multiple elements
|
|
159
|
+
* so find the relevant picker column option if one exists.
|
|
160
|
+
*/
|
|
161
|
+
const newActiveElement = elementsAtPoint.find((el) => el.tagName === 'ION-PICKER-COLUMN-OPTION');
|
|
162
|
+
if (activeEl !== undefined) {
|
|
132
163
|
this.setPickerItemActiveState(activeEl, false);
|
|
133
164
|
}
|
|
134
|
-
if (
|
|
165
|
+
if (newActiveElement === undefined || newActiveElement.disabled) {
|
|
135
166
|
return;
|
|
136
167
|
}
|
|
137
168
|
/**
|
|
138
169
|
* If we are selecting a new value,
|
|
139
170
|
* we need to run haptics again.
|
|
140
171
|
*/
|
|
141
|
-
if (
|
|
172
|
+
if (newActiveElement !== activeEl) {
|
|
142
173
|
enableHaptics && haptic.hapticSelectionChanged();
|
|
143
174
|
if (this.canExitInputMode) {
|
|
144
175
|
/**
|
|
@@ -155,8 +186,8 @@ const PickerColumnInternal = class {
|
|
|
155
186
|
this.exitInputMode();
|
|
156
187
|
}
|
|
157
188
|
}
|
|
158
|
-
activeEl =
|
|
159
|
-
this.setPickerItemActiveState(
|
|
189
|
+
activeEl = newActiveElement;
|
|
190
|
+
this.setPickerItemActiveState(newActiveElement, true);
|
|
160
191
|
timeout = setTimeout(() => {
|
|
161
192
|
this.isScrolling = false;
|
|
162
193
|
enableHaptics && haptic.hapticSelectionEnd();
|
|
@@ -178,20 +209,7 @@ const PickerColumnInternal = class {
|
|
|
178
209
|
* case, we should exit input mode.
|
|
179
210
|
*/
|
|
180
211
|
this.canExitInputMode = true;
|
|
181
|
-
|
|
182
|
-
/**
|
|
183
|
-
* If no value it is
|
|
184
|
-
* possible we hit one of the
|
|
185
|
-
* empty padding columns.
|
|
186
|
-
*/
|
|
187
|
-
if (dataIndex === null) {
|
|
188
|
-
return;
|
|
189
|
-
}
|
|
190
|
-
const index = parseInt(dataIndex, 10);
|
|
191
|
-
const selectedItem = this.items[index];
|
|
192
|
-
if (selectedItem.value !== this.value) {
|
|
193
|
-
this.setValue(selectedItem.value);
|
|
194
|
-
}
|
|
212
|
+
this.setValue(newActiveElement.value);
|
|
195
213
|
}, 250);
|
|
196
214
|
});
|
|
197
215
|
};
|
|
@@ -200,9 +218,11 @@ const PickerColumnInternal = class {
|
|
|
200
218
|
* does not fire when component is initially shown.
|
|
201
219
|
*/
|
|
202
220
|
helpers.raf(() => {
|
|
203
|
-
|
|
221
|
+
if (!scrollEl)
|
|
222
|
+
return;
|
|
223
|
+
scrollEl.addEventListener('scroll', scrollCallback);
|
|
204
224
|
this.destroyScrollListener = () => {
|
|
205
|
-
|
|
225
|
+
scrollEl.removeEventListener('scroll', scrollCallback);
|
|
206
226
|
};
|
|
207
227
|
});
|
|
208
228
|
};
|
|
@@ -230,7 +250,6 @@ const PickerColumnInternal = class {
|
|
|
230
250
|
};
|
|
231
251
|
this.isActive = false;
|
|
232
252
|
this.disabled = false;
|
|
233
|
-
this.items = [];
|
|
234
253
|
this.value = undefined;
|
|
235
254
|
this.color = 'primary';
|
|
236
255
|
this.numericInput = false;
|
|
@@ -241,7 +260,7 @@ const PickerColumnInternal = class {
|
|
|
241
260
|
* Only scroll the active item into view when the picker column
|
|
242
261
|
* is actively visible to the user.
|
|
243
262
|
*/
|
|
244
|
-
this.scrollActiveItemIntoView();
|
|
263
|
+
this.scrollActiveItemIntoView(true);
|
|
245
264
|
}
|
|
246
265
|
}
|
|
247
266
|
/**
|
|
@@ -279,36 +298,33 @@ const PickerColumnInternal = class {
|
|
|
279
298
|
}
|
|
280
299
|
};
|
|
281
300
|
new IntersectionObserver(visibleCallback, { threshold: 0.001 }).observe(this.el);
|
|
282
|
-
const parentEl = (this.parentEl = this.el.closest('ion-picker
|
|
301
|
+
const parentEl = (this.parentEl = this.el.closest('ion-picker'));
|
|
283
302
|
if (parentEl !== null) {
|
|
284
303
|
// TODO(FW-2832): type
|
|
285
304
|
parentEl.addEventListener('ionInputModeChange', (ev) => this.inputModeChange(ev));
|
|
286
305
|
}
|
|
287
306
|
}
|
|
288
307
|
componentDidRender() {
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
*
|
|
302
|
-
*/
|
|
303
|
-
this.setValue(items[0].value);
|
|
308
|
+
const { el, activeItem, isColumnVisible, value } = this;
|
|
309
|
+
if (isColumnVisible && !activeItem) {
|
|
310
|
+
const firstOption = el.querySelector('ion-picker-column-option');
|
|
311
|
+
/**
|
|
312
|
+
* If the picker column does not have an active item and the current value
|
|
313
|
+
* does not match the first item in the picker column, that means
|
|
314
|
+
* the value is out of bounds. In this case, we assign the value to the
|
|
315
|
+
* first item to match the scroll position of the column.
|
|
316
|
+
*
|
|
317
|
+
*/
|
|
318
|
+
if (firstOption !== null && firstOption.value !== value) {
|
|
319
|
+
this.setValue(firstOption.value);
|
|
304
320
|
}
|
|
305
321
|
}
|
|
306
322
|
}
|
|
307
323
|
/** @internal */
|
|
308
|
-
async scrollActiveItemIntoView() {
|
|
324
|
+
async scrollActiveItemIntoView(smooth = false) {
|
|
309
325
|
const activeEl = this.activeItem;
|
|
310
326
|
if (activeEl) {
|
|
311
|
-
this.centerPickerItemInView(activeEl,
|
|
327
|
+
this.centerPickerItemInView(activeEl, smooth, false);
|
|
312
328
|
}
|
|
313
329
|
}
|
|
314
330
|
/**
|
|
@@ -319,52 +335,53 @@ const PickerColumnInternal = class {
|
|
|
319
335
|
* @internal
|
|
320
336
|
*/
|
|
321
337
|
async setValue(value) {
|
|
322
|
-
|
|
338
|
+
if (this.disabled === true || this.value === value) {
|
|
339
|
+
return;
|
|
340
|
+
}
|
|
323
341
|
this.value = value;
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
342
|
+
this.ionChange.emit({ value });
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* Sets focus on the scrollable container within the picker column.
|
|
346
|
+
* Use this method instead of the global `pickerColumn.focus()`.
|
|
347
|
+
*/
|
|
348
|
+
async setFocus() {
|
|
349
|
+
if (this.scrollEl) {
|
|
350
|
+
this.scrollEl.focus();
|
|
327
351
|
}
|
|
328
352
|
}
|
|
329
353
|
get activeItem() {
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
354
|
+
const { value } = this;
|
|
355
|
+
const options = Array.from(this.el.querySelectorAll('ion-picker-column-option'));
|
|
356
|
+
return options.find((option) => {
|
|
357
|
+
/**
|
|
358
|
+
* If the whole picker column is disabled, the current value should appear active
|
|
359
|
+
* If the current value item is specifically disabled, it should not appear active
|
|
360
|
+
*/
|
|
361
|
+
if (!this.disabled && option.disabled) {
|
|
362
|
+
return false;
|
|
363
|
+
}
|
|
364
|
+
return option.value === value;
|
|
365
|
+
});
|
|
334
366
|
}
|
|
335
367
|
render() {
|
|
336
|
-
const {
|
|
368
|
+
const { color, disabled, isActive, numericInput } = this;
|
|
337
369
|
const mode = ionicGlobal.getIonMode(this);
|
|
338
|
-
|
|
339
|
-
* exportparts is needed so ion-datetime can expose the parts
|
|
340
|
-
* from two layers of shadow nesting. If this causes problems,
|
|
341
|
-
* the attribute can be moved to datetime.tsx and set on every
|
|
342
|
-
* instance of ion-picker-column-internal there instead.
|
|
343
|
-
*/
|
|
344
|
-
return (index.h(index.Host, { exportparts: `${PICKER_ITEM_PART}, ${PICKER_ITEM_ACTIVE_PART}`, disabled: pickerDisabled, tabindex: pickerDisabled ? null : 0, class: theme.createColorClasses(color, {
|
|
370
|
+
return (index.h(index.Host, { class: theme.createColorClasses(color, {
|
|
345
371
|
[mode]: true,
|
|
346
372
|
['picker-column-active']: isActive,
|
|
347
373
|
['picker-column-numeric-input']: numericInput,
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
}, "data-value": item.value, "data-index": index$1, onClick: (ev) => {
|
|
353
|
-
this.centerPickerItemInView(ev.target, true);
|
|
354
|
-
}, disabled: isItemDisabled, part: PICKER_ITEM_PART }, item.text));
|
|
355
|
-
}), index.h("div", { class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("div", { class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("div", { class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0")));
|
|
374
|
+
['picker-column-disabled']: disabled,
|
|
375
|
+
}) }, index.h("slot", { name: "prefix" }), index.h("div", { class: "picker-opts", tabindex: disabled ? undefined : 0, ref: (el) => {
|
|
376
|
+
this.scrollEl = el;
|
|
377
|
+
} }, index.h("div", { class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("div", { class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("div", { class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("slot", null), index.h("div", { class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("div", { class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("div", { class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), index.h("slot", { name: "suffix" })));
|
|
356
378
|
}
|
|
357
379
|
get el() { return index.getElement(this); }
|
|
358
380
|
static get watchers() { return {
|
|
359
381
|
"value": ["valueChange"]
|
|
360
382
|
}; }
|
|
361
383
|
};
|
|
362
|
-
const PICKER_ITEM_ACTIVE_CLASS = '
|
|
363
|
-
|
|
364
|
-
const PICKER_ITEM_ACTIVE_PART = 'active';
|
|
365
|
-
PickerColumnInternal.style = {
|
|
366
|
-
ios: pickerColumnInternalIosCss,
|
|
367
|
-
md: pickerColumnInternalMdCss
|
|
368
|
-
};
|
|
384
|
+
const PICKER_ITEM_ACTIVE_CLASS = 'option-active';
|
|
385
|
+
PickerColumn.style = pickerColumnCss;
|
|
369
386
|
|
|
370
|
-
exports.
|
|
387
|
+
exports.ion_picker_column = PickerColumn;
|