@ionic/core 7.6.2-dev.11702674537.125883cb → 7.6.2-dev.11702924017.193c825c
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 +4 -4
- package/components/backdrop.js +0 -12
- package/components/button-active.js +1 -1
- 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/css/ionic.bundle.css +1 -1
- package/css/ionic.bundle.css.map +1 -1
- package/css/utils.bundle.css +0 -67
- package/css/utils.bundle.css.map +1 -1
- package/dist/cjs/{button-active-962fe442.js → button-active-466dfc8a.js} +2 -2
- package/dist/cjs/{data-a5109f09.js → data-e2bf21de.js} +1 -1
- package/dist/cjs/{gesture-controller-c40c045a.js → gesture-controller-9436f482.js} +1 -0
- package/dist/cjs/{index-d1b59ffa.js → index-ee07ed59.js} +1 -1
- package/dist/cjs/index.cjs.js +3 -3
- package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -8
- 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-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/action-sheet/action-sheet.ios.css +9 -2
- package/dist/collection/components/action-sheet/action-sheet.js +2 -2
- package/dist/collection/components/action-sheet/action-sheet.md.css +9 -2
- package/dist/collection/components/action-sheet/test/basic/action-sheet-rendering.e2e.js +20 -0
- 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/utils/gesture/button-active.js +1 -1
- 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 +484 -42
- package/dist/esm/{button-active-308d3edd.js → button-active-2758ff14.js} +2 -2
- package/dist/esm/{data-775093f5.js → data-6a31d701.js} +1 -1
- package/dist/esm/{gesture-controller-1bf57181.js → gesture-controller-314a54f6.js} +1 -1
- package/dist/esm/{index-2cf77112.js → index-39782642.js} +2 -2
- package/dist/esm/index.js +3 -3
- package/dist/esm/ion-action-sheet.entry.js +8 -8
- 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-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-2758ff14.js +4 -0
- 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-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-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-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-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-c1701827.entry.js → p-3dc1b0f9.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-73fbf18d.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-7c0d778d.system.js +4 -0
- package/dist/ionic/p-80ad9792.system.js +4 -0
- package/dist/ionic/p-85a67421.system.entry.js +4 -0
- package/dist/ionic/p-8ad6d643.entry.js +4 -0
- 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-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-28740823.system.entry.js → p-d2634efe.system.entry.js} +1 -1
- package/dist/ionic/p-d3525765.js +4 -0
- 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-06abe918.system.entry.js → p-f6cae0b2.system.entry.js} +1 -1
- package/dist/ionic/p-f8c5008f.entry.js +4 -0
- package/dist/types/components/action-sheet/action-sheet-interface.d.ts +1 -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 +1502 -1401
- 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/css/themes/dark.always.css +0 -23
- package/css/themes/dark.always.css.map +0 -1
- package/css/themes/dark.class.css +0 -23
- package/css/themes/dark.class.css.map +0 -1
- package/css/themes/dark.css +0 -3
- package/css/themes/dark.css.map +0 -1
- package/css/themes/dark.media.css +0 -25
- package/css/themes/dark.media.css.map +0 -1
- 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/button-active-308d3edd.js +0 -4
- 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-0235067a.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-648ad047.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/ionic/p-f6e9c227.system.js +0 -4
- package/dist/ionic/p-f894e0ad.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
|
@@ -2,25 +2,13 @@
|
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
4
|
import { Host, h } from "@stencil/core";
|
|
5
|
-
import { GESTURE_CONTROLLER } from "../../utils/gesture/index";
|
|
6
5
|
import { getIonMode } from "../../global/ionic-global";
|
|
7
6
|
export class Backdrop {
|
|
8
7
|
constructor() {
|
|
9
|
-
this.blocker = GESTURE_CONTROLLER.createBlocker({
|
|
10
|
-
disableScroll: true,
|
|
11
|
-
});
|
|
12
8
|
this.visible = true;
|
|
13
9
|
this.tappable = true;
|
|
14
10
|
this.stopPropagation = true;
|
|
15
11
|
}
|
|
16
|
-
connectedCallback() {
|
|
17
|
-
if (this.stopPropagation) {
|
|
18
|
-
this.blocker.block();
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
disconnectedCallback() {
|
|
22
|
-
this.blocker.unblock();
|
|
23
|
-
}
|
|
24
12
|
onMouseDown(ev) {
|
|
25
13
|
this.emitTap(ev);
|
|
26
14
|
}
|
|
@@ -6,33 +6,29 @@ import { configs, test } from "../../../../utils/test/playwright/index";
|
|
|
6
6
|
configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
7
7
|
test.describe(title('button: wrap'), () => {
|
|
8
8
|
test('should render button with long text', async ({ page }) => {
|
|
9
|
-
// TODO(FW-4599): remove ion-text-wrap class
|
|
10
9
|
await page.setContent(`
|
|
11
|
-
<ion-button
|
|
10
|
+
<ion-button>This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends</ion-button>
|
|
12
11
|
`, config);
|
|
13
12
|
const button = page.locator('ion-button');
|
|
14
13
|
await expect(button).toHaveScreenshot(screenshot(`button-wrap`));
|
|
15
14
|
});
|
|
16
15
|
test('should render small button with long text', async ({ page }) => {
|
|
17
|
-
// TODO(FW-4599): remove ion-text-wrap class
|
|
18
16
|
await page.setContent(`
|
|
19
|
-
<ion-button
|
|
17
|
+
<ion-button size="small">This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends</ion-button>
|
|
20
18
|
`, config);
|
|
21
19
|
const button = page.locator('ion-button');
|
|
22
20
|
await expect(button).toHaveScreenshot(screenshot(`button-wrap-small`));
|
|
23
21
|
});
|
|
24
22
|
test('should render large button with long text', async ({ page }) => {
|
|
25
|
-
// TODO(FW-4599): remove ion-text-wrap class
|
|
26
23
|
await page.setContent(`
|
|
27
|
-
<ion-button
|
|
24
|
+
<ion-button size="large">This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends</ion-button>
|
|
28
25
|
`, config);
|
|
29
26
|
const button = page.locator('ion-button');
|
|
30
27
|
await expect(button).toHaveScreenshot(screenshot(`button-wrap-large`));
|
|
31
28
|
});
|
|
32
29
|
test('should render button with long text and icons', async ({ page }) => {
|
|
33
|
-
// TODO(FW-4599): remove ion-text-wrap class
|
|
34
30
|
await page.setContent(`
|
|
35
|
-
<ion-button
|
|
31
|
+
<ion-button>
|
|
36
32
|
<ion-icon slot="start" name="heart"></ion-icon>
|
|
37
33
|
This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends
|
|
38
34
|
<ion-icon slot="end" name="star"></ion-icon>
|
|
@@ -42,17 +38,15 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
|
42
38
|
await expect(button).toHaveScreenshot(screenshot(`button-wrap-icons`));
|
|
43
39
|
});
|
|
44
40
|
test('should render block button with long text', async ({ page }) => {
|
|
45
|
-
// TODO(FW-4599): remove ion-text-wrap class
|
|
46
41
|
await page.setContent(`
|
|
47
|
-
<ion-button
|
|
42
|
+
<ion-button expand="block">This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends</ion-button>
|
|
48
43
|
`, config);
|
|
49
44
|
const button = page.locator('ion-button');
|
|
50
45
|
await expect(button).toHaveScreenshot(screenshot(`button-wrap-block`));
|
|
51
46
|
});
|
|
52
47
|
test('should render block button with long text and icons', async ({ page }) => {
|
|
53
|
-
// TODO(FW-4599): remove ion-text-wrap class
|
|
54
48
|
await page.setContent(`
|
|
55
|
-
<ion-button
|
|
49
|
+
<ion-button expand="block">
|
|
56
50
|
<ion-icon slot="start" name="heart"></ion-icon>
|
|
57
51
|
This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends
|
|
58
52
|
<ion-icon slot="end" name="star"></ion-icon>
|
|
@@ -62,17 +56,15 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
|
62
56
|
await expect(button).toHaveScreenshot(screenshot(`button-wrap-block-icons`));
|
|
63
57
|
});
|
|
64
58
|
test('should render full button with long text', async ({ page }) => {
|
|
65
|
-
// TODO(FW-4599): remove ion-text-wrap class
|
|
66
59
|
await page.setContent(`
|
|
67
|
-
<ion-button
|
|
60
|
+
<ion-button expand="full">This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends</ion-button>
|
|
68
61
|
`, config);
|
|
69
62
|
const button = page.locator('ion-button');
|
|
70
63
|
await expect(button).toHaveScreenshot(screenshot(`button-wrap-full`));
|
|
71
64
|
});
|
|
72
65
|
test('should render full button with long text and icons', async ({ page }) => {
|
|
73
|
-
// TODO(FW-4599): remove ion-text-wrap class
|
|
74
66
|
await page.setContent(`
|
|
75
|
-
<ion-button
|
|
67
|
+
<ion-button expand="full">
|
|
76
68
|
<ion-icon slot="start" name="heart"></ion-icon>
|
|
77
69
|
This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends
|
|
78
70
|
<ion-icon slot="end" name="star"></ion-icon>
|
|
@@ -82,10 +74,9 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
|
82
74
|
await expect(button).toHaveScreenshot(screenshot(`button-wrap-full-icons`));
|
|
83
75
|
});
|
|
84
76
|
test('should render an item button with long text', async ({ page }) => {
|
|
85
|
-
// TODO(FW-4599): remove ion-text-wrap class
|
|
86
77
|
await page.setContent(`
|
|
87
78
|
<ion-item>
|
|
88
|
-
<ion-button
|
|
79
|
+
<ion-button slot="end">
|
|
89
80
|
This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends
|
|
90
81
|
</ion-button>
|
|
91
82
|
</ion-item>
|
|
@@ -94,10 +85,9 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
|
94
85
|
await expect(item).toHaveScreenshot(screenshot(`button-wrap-item-button`));
|
|
95
86
|
});
|
|
96
87
|
test('should render an item button with long text and icons', async ({ page }) => {
|
|
97
|
-
// TODO(FW-4599): remove ion-text-wrap class
|
|
98
88
|
await page.setContent(`
|
|
99
89
|
<ion-item>
|
|
100
|
-
<ion-button
|
|
90
|
+
<ion-button slot="end">
|
|
101
91
|
<ion-icon slot="start" name="heart"></ion-icon>
|
|
102
92
|
This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends
|
|
103
93
|
<ion-icon slot="end" name="star"></ion-icon>
|
|
@@ -108,11 +98,10 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
|
108
98
|
await expect(item).toHaveScreenshot(screenshot(`button-wrap-item-button-icons`));
|
|
109
99
|
});
|
|
110
100
|
test('should render a list header button with long text', async ({ page }) => {
|
|
111
|
-
// TODO(FW-4599): remove ion-text-wrap class
|
|
112
101
|
await page.setContent(`
|
|
113
102
|
<ion-list-header>
|
|
114
103
|
<ion-label>List Header</ion-label>
|
|
115
|
-
<ion-button
|
|
104
|
+
<ion-button>
|
|
116
105
|
This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends
|
|
117
106
|
</ion-button>
|
|
118
107
|
</ion-list-header>
|
|
@@ -121,11 +110,10 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
|
121
110
|
await expect(listHeader).toHaveScreenshot(screenshot(`button-wrap-list-header-button`));
|
|
122
111
|
});
|
|
123
112
|
test('should render a toolbar button with long text', async ({ page }) => {
|
|
124
|
-
// TODO(FW-4599): remove ion-text-wrap class
|
|
125
113
|
await page.setContent(`
|
|
126
114
|
<ion-toolbar>
|
|
127
115
|
<ion-buttons slot="end">
|
|
128
|
-
<ion-button
|
|
116
|
+
<ion-button>
|
|
129
117
|
This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends
|
|
130
118
|
</ion-button>
|
|
131
119
|
</ion-buttons>
|
|
@@ -61,6 +61,8 @@
|
|
|
61
61
|
*
|
|
62
62
|
* @prop --wheel-highlight-background: The background of the highlight under the selected
|
|
63
63
|
* item when using a wheel style layout, or in the month/year picker for grid style layouts.
|
|
64
|
+
* @prop --wheel-highlight-border-radius: The border radius of the highlight under the selected
|
|
65
|
+
* item when using a wheel style layout, or in the month/year picker for grid style layouts.
|
|
64
66
|
* @prop --wheel-fade-background-rgb: The color of the gradient covering non-selected items
|
|
65
67
|
* when using a wheel style layout, or in the month/year picker for grid style layouts. Must
|
|
66
68
|
* be in RGB format, e.g. `255, 255, 255`.
|
|
@@ -71,19 +73,6 @@
|
|
|
71
73
|
overflow: hidden;
|
|
72
74
|
}
|
|
73
75
|
|
|
74
|
-
/**
|
|
75
|
-
* When using the wheel picker to switch
|
|
76
|
-
* between months, sometimes the allowed
|
|
77
|
-
* dates may be filtered. As a result, it
|
|
78
|
-
* is possible to get a layout shift as
|
|
79
|
-
* the picker column will shrink to fit the
|
|
80
|
-
* widest item in the column. Setting a minimum
|
|
81
|
-
* width avoids this layout shifting.
|
|
82
|
-
*/
|
|
83
|
-
ion-picker-column-internal {
|
|
84
|
-
min-width: 26px;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
76
|
:host(.datetime-size-fixed) {
|
|
88
77
|
width: auto;
|
|
89
78
|
height: auto;
|
|
@@ -94,7 +83,7 @@ ion-picker-column-internal {
|
|
|
94
83
|
}
|
|
95
84
|
|
|
96
85
|
/**
|
|
97
|
-
* This ensures that the picker is
|
|
86
|
+
* This ensures that the picker is appropriately
|
|
98
87
|
* sized and never truncates the text.
|
|
99
88
|
*/
|
|
100
89
|
:host(.datetime-size-fixed.datetime-prefer-wheel) {
|
|
@@ -317,24 +306,8 @@ ion-picker-column-internal {
|
|
|
317
306
|
justify-content: space-between;
|
|
318
307
|
}
|
|
319
308
|
|
|
320
|
-
:host .calendar-action-buttons ion-item,
|
|
321
309
|
:host .calendar-action-buttons ion-button {
|
|
322
|
-
--background:
|
|
323
|
-
}
|
|
324
|
-
|
|
325
|
-
:host .calendar-action-buttons ion-item ion-label {
|
|
326
|
-
display: flex;
|
|
327
|
-
align-items: center;
|
|
328
|
-
width: auto;
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
:host .calendar-action-buttons ion-item ion-icon {
|
|
332
|
-
-webkit-padding-start: 4px;
|
|
333
|
-
padding-inline-start: 4px;
|
|
334
|
-
-webkit-padding-end: 0;
|
|
335
|
-
padding-inline-end: 0;
|
|
336
|
-
padding-top: 0;
|
|
337
|
-
padding-bottom: 0;
|
|
310
|
+
--background: transparent;
|
|
338
311
|
}
|
|
339
312
|
|
|
340
313
|
:host .calendar-days-of-week {
|
|
@@ -516,8 +489,72 @@ ion-picker-column-internal {
|
|
|
516
489
|
position: static;
|
|
517
490
|
}
|
|
518
491
|
|
|
519
|
-
:host(.show-month-and-year) .calendar-action-buttons
|
|
520
|
-
|
|
492
|
+
:host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle {
|
|
493
|
+
color: var(--ion-color-base);
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
.calendar-month-year {
|
|
497
|
+
min-width: 0;
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
.calendar-month-year-toggle {
|
|
501
|
+
font-family: inherit;
|
|
502
|
+
font-size: inherit;
|
|
503
|
+
font-style: inherit;
|
|
504
|
+
font-weight: inherit;
|
|
505
|
+
letter-spacing: inherit;
|
|
506
|
+
text-decoration: inherit;
|
|
507
|
+
text-indent: inherit;
|
|
508
|
+
text-overflow: inherit;
|
|
509
|
+
text-transform: inherit;
|
|
510
|
+
text-align: inherit;
|
|
511
|
+
white-space: inherit;
|
|
512
|
+
color: inherit;
|
|
513
|
+
position: relative;
|
|
514
|
+
border: 0;
|
|
515
|
+
outline: none;
|
|
516
|
+
background: transparent;
|
|
517
|
+
cursor: pointer;
|
|
518
|
+
z-index: 1;
|
|
519
|
+
}
|
|
520
|
+
.calendar-month-year-toggle::after {
|
|
521
|
+
left: 0;
|
|
522
|
+
right: 0;
|
|
523
|
+
top: 0;
|
|
524
|
+
bottom: 0;
|
|
525
|
+
position: absolute;
|
|
526
|
+
content: "";
|
|
527
|
+
opacity: 0;
|
|
528
|
+
transition: opacity 15ms linear, background-color 15ms linear;
|
|
529
|
+
z-index: -1;
|
|
530
|
+
}
|
|
531
|
+
.calendar-month-year-toggle.ion-focused::after {
|
|
532
|
+
background: currentColor;
|
|
533
|
+
}
|
|
534
|
+
.calendar-month-year-toggle:disabled {
|
|
535
|
+
opacity: 0.3;
|
|
536
|
+
pointer-events: none;
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
.calendar-month-year-toggle ion-icon {
|
|
540
|
+
-webkit-padding-start: 4px;
|
|
541
|
+
padding-inline-start: 4px;
|
|
542
|
+
-webkit-padding-end: 0;
|
|
543
|
+
padding-inline-end: 0;
|
|
544
|
+
padding-top: 0;
|
|
545
|
+
padding-bottom: 0;
|
|
546
|
+
flex-shrink: 0;
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
.calendar-month-year-toggle #toggle-wrapper {
|
|
550
|
+
display: inline-flex;
|
|
551
|
+
align-items: center;
|
|
552
|
+
}
|
|
553
|
+
|
|
554
|
+
ion-picker {
|
|
555
|
+
--highlight-background: var(--wheel-highlight-background);
|
|
556
|
+
--highlight-border-radius: var(--wheel-highlight-border-radius);
|
|
557
|
+
--fade-background-rgb: var(--wheel-fade-background-rgb);
|
|
521
558
|
}
|
|
522
559
|
|
|
523
560
|
/**
|
|
@@ -606,15 +643,31 @@ ion-picker-column-internal {
|
|
|
606
643
|
margin-top: 10px;
|
|
607
644
|
}
|
|
608
645
|
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
646
|
+
.calendar-month-year-toggle {
|
|
647
|
+
-webkit-padding-start: 16px;
|
|
648
|
+
padding-inline-start: 16px;
|
|
649
|
+
-webkit-padding-end: 16px;
|
|
650
|
+
padding-inline-end: 16px;
|
|
651
|
+
padding-top: 0px;
|
|
652
|
+
padding-bottom: 0px;
|
|
653
|
+
min-height: 44px;
|
|
613
654
|
font-size: min(1rem, 25.6px);
|
|
614
655
|
font-weight: 600;
|
|
615
656
|
}
|
|
657
|
+
.calendar-month-year-toggle.ion-focused::after {
|
|
658
|
+
opacity: 0.15;
|
|
659
|
+
}
|
|
660
|
+
|
|
661
|
+
.calendar-month-year-toggle #toggle-wrapper {
|
|
662
|
+
-webkit-margin-start: 0;
|
|
663
|
+
margin-inline-start: 0;
|
|
664
|
+
-webkit-margin-end: 8px;
|
|
665
|
+
margin-inline-end: 8px;
|
|
666
|
+
margin-top: 10px;
|
|
667
|
+
margin-bottom: 10px;
|
|
668
|
+
}
|
|
616
669
|
|
|
617
|
-
:host .calendar-action-buttons
|
|
670
|
+
:host .calendar-action-buttons .calendar-month-year-toggle ion-icon,
|
|
618
671
|
:host .calendar-action-buttons ion-buttons ion-button {
|
|
619
672
|
color: var(--ion-color-base);
|
|
620
673
|
}
|
|
@@ -996,7 +996,7 @@ export class Datetime {
|
|
|
996
996
|
const renderArray = forcePresentation === 'time-date'
|
|
997
997
|
? [this.renderTimePickerColumns(forcePresentation), this.renderDatePickerColumns(forcePresentation)]
|
|
998
998
|
: [this.renderDatePickerColumns(forcePresentation), this.renderTimePickerColumns(forcePresentation)];
|
|
999
|
-
return h("ion-picker
|
|
999
|
+
return h("ion-picker", null, renderArray);
|
|
1000
1000
|
}
|
|
1001
1001
|
renderDatePickerColumns(forcePresentation) {
|
|
1002
1002
|
return forcePresentation === 'date-time' || forcePresentation === 'time-date'
|
|
@@ -1055,7 +1055,7 @@ export class Datetime {
|
|
|
1055
1055
|
const todayString = workingParts.day !== null
|
|
1056
1056
|
? `${workingParts.year}-${workingParts.month}-${workingParts.day}`
|
|
1057
1057
|
: `${defaultParts.year}-${defaultParts.month}-${defaultParts.day}`;
|
|
1058
|
-
return (h("ion-picker-column
|
|
1058
|
+
return (h("ion-picker-column", { class: "date-column", color: this.color, disabled: disabled, value: todayString, onIonChange: (ev) => {
|
|
1059
1059
|
// TODO(FW-1823) Remove this when iOS 14 support is dropped.
|
|
1060
1060
|
// Due to a Safari 14 issue we need to destroy
|
|
1061
1061
|
// the scroll listener before we update state
|
|
@@ -1071,7 +1071,7 @@ export class Datetime {
|
|
|
1071
1071
|
// the working parts have been updated.
|
|
1072
1072
|
this.initializeCalendarListener();
|
|
1073
1073
|
ev.stopPropagation();
|
|
1074
|
-
} }));
|
|
1074
|
+
} }, items.map((item) => (h("ion-picker-column-option", { part: item.value === todayString ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: item.value, disabled: item.disabled, value: item.value }, item.text)))));
|
|
1075
1075
|
}
|
|
1076
1076
|
renderIndividualDatePickerColumns(forcePresentation) {
|
|
1077
1077
|
const { workingParts, isDateEnabled } = this;
|
|
@@ -1139,7 +1139,8 @@ export class Datetime {
|
|
|
1139
1139
|
}
|
|
1140
1140
|
const { disabled, workingParts } = this;
|
|
1141
1141
|
const activePart = this.getActivePartsWithFallback();
|
|
1142
|
-
|
|
1142
|
+
const pickerColumnValue = (_a = (workingParts.day !== null ? workingParts.day : this.defaultParts.day)) !== null && _a !== void 0 ? _a : undefined;
|
|
1143
|
+
return (h("ion-picker-column", { class: "day-column", color: this.color, disabled: disabled, value: pickerColumnValue, onIonChange: (ev) => {
|
|
1143
1144
|
// TODO(FW-1823) Remove this when iOS 14 support is dropped.
|
|
1144
1145
|
// Due to a Safari 14 issue we need to destroy
|
|
1145
1146
|
// the scroll listener before we update state
|
|
@@ -1153,7 +1154,7 @@ export class Datetime {
|
|
|
1153
1154
|
// the working parts have been updated.
|
|
1154
1155
|
this.initializeCalendarListener();
|
|
1155
1156
|
ev.stopPropagation();
|
|
1156
|
-
} }));
|
|
1157
|
+
} }, days.map((day) => (h("ion-picker-column-option", { part: day.value === pickerColumnValue ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: day.value, disabled: day.disabled, value: day.value }, day.text)))));
|
|
1157
1158
|
}
|
|
1158
1159
|
renderMonthPickerColumn(months) {
|
|
1159
1160
|
if (months.length === 0) {
|
|
@@ -1161,7 +1162,7 @@ export class Datetime {
|
|
|
1161
1162
|
}
|
|
1162
1163
|
const { disabled, workingParts } = this;
|
|
1163
1164
|
const activePart = this.getActivePartsWithFallback();
|
|
1164
|
-
return (h("ion-picker-column
|
|
1165
|
+
return (h("ion-picker-column", { class: "month-column", color: this.color, disabled: disabled, value: workingParts.month, onIonChange: (ev) => {
|
|
1165
1166
|
// TODO(FW-1823) Remove this when iOS 14 support is dropped.
|
|
1166
1167
|
// Due to a Safari 14 issue we need to destroy
|
|
1167
1168
|
// the scroll listener before we update state
|
|
@@ -1175,7 +1176,7 @@ export class Datetime {
|
|
|
1175
1176
|
// the working parts have been updated.
|
|
1176
1177
|
this.initializeCalendarListener();
|
|
1177
1178
|
ev.stopPropagation();
|
|
1178
|
-
} }));
|
|
1179
|
+
} }, months.map((month) => (h("ion-picker-column-option", { part: month.value === workingParts.month ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: month.value, disabled: month.disabled, value: month.value }, month.text)))));
|
|
1179
1180
|
}
|
|
1180
1181
|
renderYearPickerColumn(years) {
|
|
1181
1182
|
if (years.length === 0) {
|
|
@@ -1183,7 +1184,7 @@ export class Datetime {
|
|
|
1183
1184
|
}
|
|
1184
1185
|
const { disabled, workingParts } = this;
|
|
1185
1186
|
const activePart = this.getActivePartsWithFallback();
|
|
1186
|
-
return (h("ion-picker-column
|
|
1187
|
+
return (h("ion-picker-column", { class: "year-column", color: this.color, disabled: disabled, value: workingParts.year, onIonChange: (ev) => {
|
|
1187
1188
|
// TODO(FW-1823) Remove this when iOS 14 support is dropped.
|
|
1188
1189
|
// Due to a Safari 14 issue we need to destroy
|
|
1189
1190
|
// the scroll listener before we update state
|
|
@@ -1197,7 +1198,7 @@ export class Datetime {
|
|
|
1197
1198
|
// the working parts have been updated.
|
|
1198
1199
|
this.initializeCalendarListener();
|
|
1199
1200
|
ev.stopPropagation();
|
|
1200
|
-
} }));
|
|
1201
|
+
} }, years.map((year) => (h("ion-picker-column-option", { part: year.value === workingParts.year ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: year.value, disabled: year.disabled, value: year.value }, year.text)))));
|
|
1201
1202
|
}
|
|
1202
1203
|
renderTimePickerColumns(forcePresentation) {
|
|
1203
1204
|
if (['date', 'month', 'month-year', 'year'].includes(forcePresentation)) {
|
|
@@ -1226,22 +1227,22 @@ export class Datetime {
|
|
|
1226
1227
|
if (hoursData.length === 0)
|
|
1227
1228
|
return [];
|
|
1228
1229
|
const activePart = this.getActivePartsWithFallback();
|
|
1229
|
-
return (h("ion-picker-column
|
|
1230
|
+
return (h("ion-picker-column", { color: this.color, disabled: disabled, value: activePart.hour, numericInput: true, onIonChange: (ev) => {
|
|
1230
1231
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { hour: ev.detail.value }));
|
|
1231
1232
|
this.setActiveParts(Object.assign(Object.assign({}, activePart), { hour: ev.detail.value }));
|
|
1232
1233
|
ev.stopPropagation();
|
|
1233
|
-
} }));
|
|
1234
|
+
} }, hoursData.map((hour) => (h("ion-picker-column-option", { part: hour.value === activePart.hour ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: hour.value, disabled: hour.disabled, value: hour.value }, hour.text)))));
|
|
1234
1235
|
}
|
|
1235
1236
|
renderMinutePickerColumn(minutesData) {
|
|
1236
1237
|
const { disabled, workingParts } = this;
|
|
1237
1238
|
if (minutesData.length === 0)
|
|
1238
1239
|
return [];
|
|
1239
1240
|
const activePart = this.getActivePartsWithFallback();
|
|
1240
|
-
return (h("ion-picker-column
|
|
1241
|
+
return (h("ion-picker-column", { color: this.color, disabled: disabled, value: activePart.minute, numericInput: true, onIonChange: (ev) => {
|
|
1241
1242
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { minute: ev.detail.value }));
|
|
1242
1243
|
this.setActiveParts(Object.assign(Object.assign({}, activePart), { minute: ev.detail.value }));
|
|
1243
1244
|
ev.stopPropagation();
|
|
1244
|
-
} }));
|
|
1245
|
+
} }, minutesData.map((minute) => (h("ion-picker-column-option", { part: minute.value === activePart.minute ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: minute.value, disabled: minute.disabled, value: minute.value }, minute.text)))));
|
|
1245
1246
|
}
|
|
1246
1247
|
renderDayPeriodPickerColumn(dayPeriodData) {
|
|
1247
1248
|
const { disabled, workingParts } = this;
|
|
@@ -1250,12 +1251,12 @@ export class Datetime {
|
|
|
1250
1251
|
}
|
|
1251
1252
|
const activePart = this.getActivePartsWithFallback();
|
|
1252
1253
|
const isDayPeriodRTL = isLocaleDayPeriodRTL(this.locale);
|
|
1253
|
-
return (h("ion-picker-column
|
|
1254
|
+
return (h("ion-picker-column", { style: isDayPeriodRTL ? { order: '-1' } : {}, color: this.color, disabled: disabled, value: activePart.ampm, onIonChange: (ev) => {
|
|
1254
1255
|
const hour = calculateHourFromAMPM(workingParts, ev.detail.value);
|
|
1255
1256
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { ampm: ev.detail.value, hour }));
|
|
1256
1257
|
this.setActiveParts(Object.assign(Object.assign({}, activePart), { ampm: ev.detail.value, hour }));
|
|
1257
1258
|
ev.stopPropagation();
|
|
1258
|
-
} }));
|
|
1259
|
+
} }, dayPeriodData.map((dayPeriod) => (h("ion-picker-column-option", { part: dayPeriod.value === activePart.ampm ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: dayPeriod.value, disabled: dayPeriod.disabled, value: dayPeriod.value }, dayPeriod.text)))));
|
|
1259
1260
|
}
|
|
1260
1261
|
renderWheelView(forcePresentation) {
|
|
1261
1262
|
const { locale } = this;
|
|
@@ -1276,26 +1277,11 @@ export class Datetime {
|
|
|
1276
1277
|
const nextMonthDisabled = disabled || isNextMonthDisabled(this.workingParts, this.maxParts);
|
|
1277
1278
|
// don't use the inheritAttributes util because it removes dir from the host, and we still need that
|
|
1278
1279
|
const hostDir = this.el.getAttribute('dir') || undefined;
|
|
1279
|
-
return (h("div", { class: "calendar-header" }, h("div", { class: "calendar-action-buttons" }, h("div", { class: "calendar-month-year" }, h("
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
*
|
|
1285
|
-
* Currently there is not a way to set the aria-label on the inner button
|
|
1286
|
-
* on the `ion-item` and have it be reactive to changes. This is a workaround
|
|
1287
|
-
* until we either refactor `ion-item` to a button or Stencil adds a way to
|
|
1288
|
-
* have reactive props for built-in properties, such as `aria-label`.
|
|
1289
|
-
*/
|
|
1290
|
-
const { monthYearToggleItemRef } = this;
|
|
1291
|
-
if (monthYearToggleItemRef) {
|
|
1292
|
-
const btn = (_a = monthYearToggleItemRef.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-native');
|
|
1293
|
-
if (btn) {
|
|
1294
|
-
const monthYearAriaLabel = this.showMonthAndYear ? 'Hide year picker' : 'Show year picker';
|
|
1295
|
-
btn.setAttribute('aria-label', monthYearAriaLabel);
|
|
1296
|
-
}
|
|
1297
|
-
}
|
|
1298
|
-
} }, h("ion-label", null, getMonthAndYear(this.locale, this.workingParts), h("ion-icon", { "aria-hidden": "true", icon: this.showMonthAndYear ? expandedIcon : collapsedIcon, lazy: false, flipRtl: true })))), h("div", { class: "calendar-next-prev" }, h("ion-buttons", null, h("ion-button", { "aria-label": "Previous month", disabled: prevMonthDisabled, onClick: () => this.prevMonth() }, h("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: chevronBack, lazy: false, flipRtl: true })), h("ion-button", { "aria-label": "Next month", disabled: nextMonthDisabled, onClick: () => this.nextMonth() }, h("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: chevronForward, lazy: false, flipRtl: true }))))), h("div", { class: "calendar-days-of-week", "aria-hidden": "true" }, getDaysOfWeek(this.locale, mode, this.firstDayOfWeek % 7).map((d) => {
|
|
1280
|
+
return (h("div", { class: "calendar-header" }, h("div", { class: "calendar-action-buttons" }, h("div", { class: "calendar-month-year" }, h("button", { class: {
|
|
1281
|
+
'calendar-month-year-toggle': true,
|
|
1282
|
+
'ion-activatable': true,
|
|
1283
|
+
'ion-focusable': true,
|
|
1284
|
+
}, part: "month-year-button", disabled: disabled, "aria-label": this.showMonthAndYear ? 'Hide year picker' : 'Show year picker', onClick: () => this.toggleMonthAndYearView() }, h("span", { id: "toggle-wrapper" }, getMonthAndYear(this.locale, this.workingParts), h("ion-icon", { "aria-hidden": "true", icon: this.showMonthAndYear ? expandedIcon : collapsedIcon, lazy: false, flipRtl: true })), mode === 'md' && h("ion-ripple-effect", null))), h("div", { class: "calendar-next-prev" }, h("ion-buttons", null, h("ion-button", { "aria-label": "Previous month", disabled: prevMonthDisabled, onClick: () => this.prevMonth() }, h("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: chevronBack, lazy: false, flipRtl: true })), h("ion-button", { "aria-label": "Next month", disabled: nextMonthDisabled, onClick: () => this.nextMonth() }, h("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: chevronForward, lazy: false, flipRtl: true }))))), h("div", { class: "calendar-days-of-week", "aria-hidden": "true" }, getDaysOfWeek(this.locale, mode, this.firstDayOfWeek % 7).map((d) => {
|
|
1299
1285
|
return h("div", { class: "day-of-week" }, d);
|
|
1300
1286
|
}))));
|
|
1301
1287
|
}
|
|
@@ -1456,7 +1442,7 @@ export class Datetime {
|
|
|
1456
1442
|
* This will correctly scroll the element position to the correct time value,
|
|
1457
1443
|
* before the popover is fully presented.
|
|
1458
1444
|
*/
|
|
1459
|
-
const cols = ev.target.querySelectorAll('ion-picker-column
|
|
1445
|
+
const cols = ev.target.querySelectorAll('ion-picker-column');
|
|
1460
1446
|
// TODO (FW-615): Potentially remove this when intersection observers are fixed in picker column
|
|
1461
1447
|
cols.forEach((col) => col.scrollActiveItemIntoView());
|
|
1462
1448
|
}, style: {
|
|
@@ -2384,3 +2370,5 @@ export class Datetime {
|
|
|
2384
2370
|
}
|
|
2385
2371
|
}
|
|
2386
2372
|
let datetimeIds = 0;
|
|
2373
|
+
const WHEEL_ITEM_PART = 'wheel-item';
|
|
2374
|
+
const WHEEL_ITEM_ACTIVE_PART = `active`;
|