@ionic/core 7.6.2-dev.11702924017.193c825c → 7.6.2-dev.11702926577.1a448647
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 +12 -0
- 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 +64 -40
- package/components/ion-picker-column-internal.d.ts +11 -0
- package/components/ion-picker-column-internal.js +9 -0
- package/components/ion-picker-column.js +2 -2
- package/components/{ion-picker-legacy.d.ts → ion-picker-internal.d.ts} +4 -4
- package/components/ion-picker-internal.js +9 -0
- package/components/ion-picker.js +309 -1
- package/components/overlays.js +4 -11
- package/components/picker-column-internal.js +390 -0
- package/components/picker-column.js +322 -351
- package/components/{picker.js → picker-internal.js} +22 -29
- package/dist/cjs/{button-active-466dfc8a.js → button-active-962fe442.js} +2 -2
- package/dist/cjs/{data-e2bf21de.js → data-a5109f09.js} +1 -1
- package/dist/cjs/{gesture-controller-9436f482.js → gesture-controller-c40c045a.js} +0 -1
- package/dist/cjs/{index-ee07ed59.js → index-d1b59ffa.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 +12 -0
- 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 +56 -36
- package/dist/cjs/ion-item-option_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-loading.cjs.entry.js +1 -2
- 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.cjs.entry.js → ion-picker-column-internal.cjs.entry.js} +87 -104
- package/dist/cjs/{ion-picker.cjs.entry.js → ion-picker-internal.cjs.entry.js} +19 -26
- package/dist/cjs/ion-popover.cjs.entry.js +1 -2
- 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 +1 -2
- 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-7773cbe1.js → overlays-e77cc023.js} +4 -11
- package/dist/cjs/{swipe-back-b8f2330b.js → swipe-back-2a858bbd.js} +2 -2
- package/dist/collection/collection-manifest.json +6 -7
- package/dist/collection/components/action-sheet/action-sheet.ios.css +2 -9
- package/dist/collection/components/action-sheet/action-sheet.js +2 -2
- package/dist/collection/components/action-sheet/action-sheet.md.css +2 -9
- package/dist/collection/components/action-sheet/test/basic/action-sheet-rendering.e2e.js +0 -20
- package/dist/collection/components/backdrop/backdrop.js +12 -0
- 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 +24 -12
- package/dist/collection/components/content/content.css +4 -0
- package/dist/collection/components/datetime/datetime.ios.css +38 -91
- package/dist/collection/components/datetime/datetime.js +36 -24
- package/dist/collection/components/datetime/datetime.md.css +38 -96
- package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +1 -1
- package/dist/collection/components/datetime/test/a11y/datetime.spec.js +9 -6
- package/dist/collection/components/datetime/test/basic/datetime.e2e.js +0 -10
- package/dist/collection/components/datetime/test/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 +41 -43
- 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 +12 -15
- package/dist/collection/components/datetime/utils/data.js +1 -1
- package/dist/collection/components/picker/picker.ios.css +211 -112
- package/dist/collection/components/picker/picker.js +744 -472
- package/dist/collection/components/picker/picker.md.css +198 -108
- package/dist/collection/components/picker/test/basic/picker.e2e.js +13 -99
- package/dist/collection/components/{picker-legacy → picker}/test/is-open/picker.e2e.js +4 -4
- package/dist/collection/components/{picker-legacy → picker}/test/picker-id.spec.js +5 -5
- package/dist/collection/components/{picker-legacy → picker}/test/trigger/picker.e2e.js +1 -1
- package/dist/collection/components/picker-column/picker-column.js +335 -497
- package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column-aria.spec.js +3 -3
- package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column-dynamic.spec.js +2 -2
- package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column.spec.js +2 -2
- package/dist/collection/components/{picker-legacy-column → picker-column}/test/standalone/picker-column.e2e.js +3 -3
- package/dist/collection/components/{picker-column-option/picker-column-option.md.css → picker-column-internal/picker-column-internal.ios.css} +53 -6
- package/dist/collection/components/picker-column-internal/picker-column-internal.js +565 -0
- package/dist/collection/components/{picker-column/picker-column.css → picker-column-internal/picker-column-internal.md.css} +83 -96
- package/dist/collection/components/{picker-column/test/basic/picker-column.e2e.js → picker-column-internal/test/basic/picker-column-internal.e2e.js} +8 -8
- package/dist/collection/components/picker-column-internal/test/disabled/picker-column-internal.e2e.js +162 -0
- package/dist/collection/components/{picker-legacy/picker.md.css → picker-internal/picker-internal.ios.css} +100 -192
- package/dist/collection/components/picker-internal/picker-internal.js +544 -0
- package/dist/collection/components/{picker-legacy/picker.ios.css → picker-internal/picker-internal.md.css} +98 -207
- package/dist/collection/components/{picker/test/a11y/picker.e2e.js → picker-internal/test/a11y/picker-internal.e2e.js} +2 -2
- package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +118 -0
- package/dist/collection/components/{picker/test/keyboard-entry/picker.e2e.js → picker-internal/test/keyboard-entry/picker-internal.e2e.js} +32 -63
- 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 +4 -11
- package/dist/docs.json +42 -484
- package/dist/esm/{button-active-2758ff14.js → button-active-308d3edd.js} +2 -2
- package/dist/esm/{data-6a31d701.js → data-775093f5.js} +1 -1
- package/dist/esm/{gesture-controller-314a54f6.js → gesture-controller-1bf57181.js} +1 -1
- package/dist/esm/{index-39782642.js → index-2cf77112.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 +12 -0
- 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 +55 -35
- package/dist/esm/ion-item-option_3.entry.js +1 -1
- package/dist/esm/ion-loading.entry.js +1 -2
- 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.entry.js → ion-picker-column-internal.entry.js} +87 -104
- package/dist/esm/{ion-picker.entry.js → ion-picker-internal.entry.js} +19 -26
- package/dist/esm/ion-popover.entry.js +1 -2
- 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 +1 -2
- 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-94dac1cb.js → overlays-b33f6bca.js} +4 -11
- package/dist/esm/{swipe-back-a8ca7f93.js → swipe-back-a6f386fc.js} +2 -2
- package/dist/esm-es5/button-active-308d3edd.js +4 -0
- package/dist/esm-es5/{gesture-controller-314a54f6.js → gesture-controller-1bf57181.js} +1 -1
- package/dist/esm-es5/{index-39782642.js → index-2cf77112.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-internal.entry.js +4 -0
- package/dist/esm-es5/ion-picker-internal.entry.js +4 -0
- package/dist/esm-es5/ion-popover.entry.js +1 -1
- package/dist/esm-es5/ion-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-b33f6bca.js +4 -0
- package/dist/esm-es5/swipe-back-a6f386fc.js +4 -0
- package/dist/html.html-data.json +1 -152
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-0235067a.js +4 -0
- package/dist/ionic/{p-f6cae0b2.system.entry.js → p-06abe918.system.entry.js} +1 -1
- package/dist/ionic/{p-5ff211d0.system.entry.js → p-10ec9af7.system.entry.js} +1 -1
- package/dist/ionic/{p-10339dcc.entry.js → p-11786dc7.entry.js} +1 -1
- package/dist/ionic/{p-1b14f0f8.entry.js → p-11a3973f.entry.js} +1 -1
- package/dist/ionic/p-12a62500.entry.js +4 -0
- package/dist/ionic/p-19d9ceb8.system.js +1 -1
- package/dist/ionic/{p-642ac927.entry.js → p-1b27ac67.entry.js} +1 -1
- package/dist/ionic/p-1c249831.entry.js +4 -0
- package/dist/ionic/{p-e2737fef.system.entry.js → p-22827063.system.entry.js} +1 -1
- package/dist/ionic/{p-d2634efe.system.entry.js → p-28740823.system.entry.js} +1 -1
- package/dist/ionic/{p-c01803db.entry.js → p-2894d5f6.entry.js} +1 -1
- package/dist/ionic/{p-b2b5d761.entry.js → p-2a583966.entry.js} +1 -1
- package/dist/ionic/{p-beed2450.system.entry.js → p-2df97906.system.entry.js} +1 -1
- package/dist/ionic/{p-3e1e14d9.system.js → p-31b2326e.system.js} +1 -1
- package/dist/ionic/p-35ce400e.system.js +4 -0
- package/dist/ionic/p-3671f1b9.system.js +4 -0
- package/dist/ionic/{p-bb3fd397.entry.js → p-3e8d5e53.entry.js} +1 -1
- package/dist/ionic/p-47bb15a1.entry.js +4 -0
- package/dist/ionic/p-4d145435.entry.js +4 -0
- package/dist/ionic/p-507ddbfe.system.entry.js +4 -0
- package/dist/ionic/p-648ad047.system.entry.js +4 -0
- package/dist/ionic/p-6a6477b2.js +4 -0
- package/dist/ionic/p-6ab03751.js +4 -0
- package/dist/ionic/{p-25312768.system.entry.js → p-6b0ce9b4.system.entry.js} +1 -1
- package/dist/ionic/p-6c277fa2.system.entry.js +4 -0
- package/dist/ionic/p-6fba0ce1.system.entry.js +4 -0
- package/dist/ionic/{p-3af5faf8.system.entry.js → p-745e3339.system.entry.js} +1 -1
- package/dist/ionic/{p-ba5d9e27.entry.js → p-767f1a92.entry.js} +1 -1
- package/dist/ionic/p-7dc892f8.entry.js +4 -0
- package/dist/ionic/p-85f48531.entry.js +4 -0
- package/dist/ionic/p-8f301ac5.system.entry.js +4 -0
- package/dist/ionic/p-932f2259.system.entry.js +4 -0
- package/dist/ionic/{p-0e908476.system.entry.js → p-96d4814f.system.entry.js} +1 -1
- package/dist/ionic/{p-964dcdb2.system.entry.js → p-9fda6824.system.entry.js} +1 -1
- package/dist/ionic/{p-bec6ae40.entry.js → p-a3ca2e64.entry.js} +1 -1
- package/dist/ionic/{p-4793c14c.system.entry.js → p-a42ef163.system.entry.js} +1 -1
- package/dist/ionic/{p-6e4c7340.system.entry.js → p-a821750c.system.entry.js} +1 -1
- package/dist/ionic/{p-ed8402d6.entry.js → p-aee39e06.entry.js} +1 -1
- package/dist/ionic/{p-1ab2642a.system.js → p-afa9f205.system.js} +1 -1
- package/dist/ionic/p-b1f29949.system.entry.js +4 -0
- package/dist/ionic/p-b7a2ffc9.system.entry.js +4 -0
- package/dist/ionic/{p-92bfb607.entry.js → p-b964aba3.entry.js} +1 -1
- package/dist/ionic/{p-9b97df10.js → p-bb3615f7.js} +1 -1
- package/dist/ionic/{p-3dc1b0f9.entry.js → p-c1701827.entry.js} +1 -1
- package/dist/ionic/{p-20755eb0.entry.js → p-c5acfeb1.entry.js} +1 -1
- package/dist/ionic/{p-20d469d0.system.js → p-c7c8429a.system.js} +1 -1
- package/dist/ionic/p-cd1b920b.entry.js +4 -0
- package/dist/ionic/p-da5e2652.entry.js +4 -0
- package/dist/ionic/{p-3b434dee.system.entry.js → p-dc71e4ef.system.entry.js} +1 -1
- package/dist/ionic/{p-db05ecb6.system.entry.js → p-ddd48faf.system.entry.js} +1 -1
- package/dist/ionic/p-ec652bc0.system.entry.js +4 -0
- package/dist/ionic/{p-13d4dfe7.entry.js → p-f2bfd3d7.entry.js} +1 -1
- package/dist/ionic/{p-8ededb41.js → p-f5d2dc9b.js} +1 -1
- package/dist/ionic/p-f6e9c227.system.js +4 -0
- package/dist/ionic/p-f894e0ad.entry.js +4 -0
- package/dist/types/components/action-sheet/action-sheet-interface.d.ts +0 -1
- package/dist/types/components/backdrop/backdrop.d.ts +3 -0
- package/dist/types/components/datetime/datetime.d.ts +1 -0
- package/dist/types/components/datetime/utils/data.d.ts +7 -11
- package/dist/types/components/menu/menu.d.ts +1 -1
- package/dist/types/components/picker/picker.d.ts +129 -75
- package/dist/types/components/picker-column/picker-column.d.ts +39 -99
- package/dist/types/components/picker-column-internal/picker-column-internal-interfaces.d.ts +5 -0
- package/dist/types/components/picker-column-internal/picker-column-internal.d.ts +102 -0
- package/dist/types/components/picker-internal/picker-internal-interfaces.d.ts +8 -0
- package/dist/types/components/picker-internal/picker-internal.d.ts +102 -0
- package/dist/types/components.d.ts +122 -154
- 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 +0 -1
- package/dist/types/utils/overlays.d.ts +2 -5
- package/hydrate/index.js +1199 -1300
- package/package.json +2 -2
- package/components/ion-picker-column-option.d.ts +0 -11
- package/components/ion-picker-column-option.js +0 -9
- package/components/ion-picker-legacy-column.d.ts +0 -11
- package/components/ion-picker-legacy-column.js +0 -9
- package/components/ion-picker-legacy.js +0 -309
- package/components/picker-column-option.js +0 -122
- package/components/picker-column2.js +0 -379
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +0 -104
- package/dist/collection/components/picker/test/custom/picker.e2e.js +0 -85
- package/dist/collection/components/picker-column/test/disabled/picker-column.e2e.js +0 -91
- package/dist/collection/components/picker-column/test/slots/picker-column.e2e.js +0 -39
- package/dist/collection/components/picker-column-option/picker-column-option.ios.css +0 -87
- package/dist/collection/components/picker-column-option/picker-column-option.js +0 -173
- package/dist/collection/components/picker-column-option/test/a11y/picker-column-option.e2e.js +0 -18
- package/dist/collection/components/picker-column-option/test/basic/picker-column-option.e2e.js +0 -37
- package/dist/collection/components/picker-column-option/test/picker-column-option.spec.js +0 -29
- package/dist/collection/components/picker-legacy/picker.js +0 -817
- package/dist/collection/components/picker-legacy/test/basic/picker.e2e.js +0 -25
- package/dist/collection/components/picker-legacy-column/picker-column.js +0 -419
- package/dist/collection/utils/test/overlays/overlays-scroll-blocking.spec.js +0 -65
- package/dist/esm/ion-picker-column-option.entry.js +0 -100
- package/dist/esm-es5/button-active-2758ff14.js +0 -4
- package/dist/esm-es5/ion-picker-column-option.entry.js +0 -4
- package/dist/esm-es5/ion-picker-column.entry.js +0 -4
- package/dist/esm-es5/ion-picker.entry.js +0 -4
- package/dist/esm-es5/overlays-94dac1cb.js +0 -4
- package/dist/esm-es5/swipe-back-a8ca7f93.js +0 -4
- package/dist/ionic/p-26ff1180.entry.js +0 -4
- package/dist/ionic/p-2f449cdf.system.entry.js +0 -4
- package/dist/ionic/p-3717e641.system.entry.js +0 -4
- package/dist/ionic/p-51abefb7.system.js +0 -4
- package/dist/ionic/p-71483cbb.entry.js +0 -4
- package/dist/ionic/p-73fbf18d.entry.js +0 -4
- package/dist/ionic/p-75a3e35b.entry.js +0 -4
- package/dist/ionic/p-77d78f68.system.entry.js +0 -4
- package/dist/ionic/p-7c0d778d.system.js +0 -4
- package/dist/ionic/p-80ad9792.system.js +0 -4
- package/dist/ionic/p-85a67421.system.entry.js +0 -4
- package/dist/ionic/p-8ad6d643.entry.js +0 -4
- package/dist/ionic/p-9164a09d.entry.js +0 -4
- package/dist/ionic/p-a1bd098f.system.entry.js +0 -4
- package/dist/ionic/p-a41eaff2.system.entry.js +0 -4
- package/dist/ionic/p-a60a1ce5.js +0 -4
- package/dist/ionic/p-c001b24f.entry.js +0 -4
- package/dist/ionic/p-c19bf524.entry.js +0 -4
- package/dist/ionic/p-c6176849.system.entry.js +0 -4
- package/dist/ionic/p-cf350317.entry.js +0 -4
- package/dist/ionic/p-d3525765.js +0 -4
- package/dist/ionic/p-dc63dccb.system.entry.js +0 -4
- package/dist/ionic/p-f0717d98.js +0 -4
- package/dist/ionic/p-f0dea903.system.entry.js +0 -4
- package/dist/ionic/p-f60807dd.system.entry.js +0 -4
- package/dist/ionic/p-f8c5008f.entry.js +0 -4
- package/dist/types/components/picker/picker-interfaces.d.ts +0 -8
- package/dist/types/components/picker-column/picker-column-interfaces.d.ts +0 -4
- package/dist/types/components/picker-column-option/picker-column-option.d.ts +0 -66
- package/dist/types/components/picker-legacy/picker.d.ts +0 -158
- package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
- /package/dist/collection/components/{picker-legacy → picker}/animations/ios.enter.js +0 -0
- /package/dist/collection/components/{picker-legacy → picker}/animations/ios.leave.js +0 -0
- /package/dist/collection/components/picker/{picker-interfaces.js → picker-interface.js} +0 -0
- /package/dist/collection/components/{picker-legacy-column → picker-column}/picker-column.ios.css +0 -0
- /package/dist/collection/components/{picker-legacy-column → picker-column}/picker-column.md.css +0 -0
- /package/dist/collection/components/{picker-legacy-column → picker-column}/test/test.utils.js +0 -0
- /package/dist/collection/components/{picker-column/picker-column-interfaces.js → picker-column-internal/picker-column-internal-interfaces.js} +0 -0
- /package/dist/collection/components/{picker-legacy/picker-interface.js → picker-internal/picker-internal-interfaces.js} +0 -0
- /package/dist/esm-es5/{data-6a31d701.js → data-775093f5.js} +0 -0
- /package/dist/ionic/{p-a64accf5.js → p-18cae04f.js} +0 -0
- /package/dist/ionic/{p-7ff4359e.system.js → p-87bb3735.system.js} +0 -0
- /package/dist/types/components/{picker-legacy → picker}/animations/ios.enter.d.ts +0 -0
- /package/dist/types/components/{picker-legacy → picker}/animations/ios.leave.d.ts +0 -0
- /package/dist/types/components/{picker-legacy → picker}/picker-interface.d.ts +0 -0
- /package/dist/types/components/{picker-legacy-column → picker-column}/test/test.utils.d.ts +0 -0
|
@@ -2,13 +2,25 @@
|
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
4
|
import { Host, h } from "@stencil/core";
|
|
5
|
+
import { GESTURE_CONTROLLER } from "../../utils/gesture/index";
|
|
5
6
|
import { getIonMode } from "../../global/ionic-global";
|
|
6
7
|
export class Backdrop {
|
|
7
8
|
constructor() {
|
|
9
|
+
this.blocker = GESTURE_CONTROLLER.createBlocker({
|
|
10
|
+
disableScroll: true,
|
|
11
|
+
});
|
|
8
12
|
this.visible = true;
|
|
9
13
|
this.tappable = true;
|
|
10
14
|
this.stopPropagation = true;
|
|
11
15
|
}
|
|
16
|
+
connectedCallback() {
|
|
17
|
+
if (this.stopPropagation) {
|
|
18
|
+
this.blocker.block();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
disconnectedCallback() {
|
|
22
|
+
this.blocker.unblock();
|
|
23
|
+
}
|
|
12
24
|
onMouseDown(ev) {
|
|
13
25
|
this.emitTap(ev);
|
|
14
26
|
}
|
|
@@ -6,29 +6,33 @@ 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
|
|
9
10
|
await page.setContent(`
|
|
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>
|
|
11
|
+
<ion-button class="ion-text-wrap">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>
|
|
11
12
|
`, config);
|
|
12
13
|
const button = page.locator('ion-button');
|
|
13
14
|
await expect(button).toHaveScreenshot(screenshot(`button-wrap`));
|
|
14
15
|
});
|
|
15
16
|
test('should render small button with long text', async ({ page }) => {
|
|
17
|
+
// TODO(FW-4599): remove ion-text-wrap class
|
|
16
18
|
await page.setContent(`
|
|
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>
|
|
19
|
+
<ion-button class="ion-text-wrap" 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>
|
|
18
20
|
`, config);
|
|
19
21
|
const button = page.locator('ion-button');
|
|
20
22
|
await expect(button).toHaveScreenshot(screenshot(`button-wrap-small`));
|
|
21
23
|
});
|
|
22
24
|
test('should render large button with long text', async ({ page }) => {
|
|
25
|
+
// TODO(FW-4599): remove ion-text-wrap class
|
|
23
26
|
await page.setContent(`
|
|
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>
|
|
27
|
+
<ion-button class="ion-text-wrap" 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>
|
|
25
28
|
`, config);
|
|
26
29
|
const button = page.locator('ion-button');
|
|
27
30
|
await expect(button).toHaveScreenshot(screenshot(`button-wrap-large`));
|
|
28
31
|
});
|
|
29
32
|
test('should render button with long text and icons', async ({ page }) => {
|
|
33
|
+
// TODO(FW-4599): remove ion-text-wrap class
|
|
30
34
|
await page.setContent(`
|
|
31
|
-
<ion-button>
|
|
35
|
+
<ion-button class="ion-text-wrap">
|
|
32
36
|
<ion-icon slot="start" name="heart"></ion-icon>
|
|
33
37
|
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
|
|
34
38
|
<ion-icon slot="end" name="star"></ion-icon>
|
|
@@ -38,15 +42,17 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
|
38
42
|
await expect(button).toHaveScreenshot(screenshot(`button-wrap-icons`));
|
|
39
43
|
});
|
|
40
44
|
test('should render block button with long text', async ({ page }) => {
|
|
45
|
+
// TODO(FW-4599): remove ion-text-wrap class
|
|
41
46
|
await page.setContent(`
|
|
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>
|
|
47
|
+
<ion-button class="ion-text-wrap" 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>
|
|
43
48
|
`, config);
|
|
44
49
|
const button = page.locator('ion-button');
|
|
45
50
|
await expect(button).toHaveScreenshot(screenshot(`button-wrap-block`));
|
|
46
51
|
});
|
|
47
52
|
test('should render block button with long text and icons', async ({ page }) => {
|
|
53
|
+
// TODO(FW-4599): remove ion-text-wrap class
|
|
48
54
|
await page.setContent(`
|
|
49
|
-
<ion-button expand="block">
|
|
55
|
+
<ion-button class="ion-text-wrap" expand="block">
|
|
50
56
|
<ion-icon slot="start" name="heart"></ion-icon>
|
|
51
57
|
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
|
|
52
58
|
<ion-icon slot="end" name="star"></ion-icon>
|
|
@@ -56,15 +62,17 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
|
56
62
|
await expect(button).toHaveScreenshot(screenshot(`button-wrap-block-icons`));
|
|
57
63
|
});
|
|
58
64
|
test('should render full button with long text', async ({ page }) => {
|
|
65
|
+
// TODO(FW-4599): remove ion-text-wrap class
|
|
59
66
|
await page.setContent(`
|
|
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>
|
|
67
|
+
<ion-button class="ion-text-wrap" 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>
|
|
61
68
|
`, config);
|
|
62
69
|
const button = page.locator('ion-button');
|
|
63
70
|
await expect(button).toHaveScreenshot(screenshot(`button-wrap-full`));
|
|
64
71
|
});
|
|
65
72
|
test('should render full button with long text and icons', async ({ page }) => {
|
|
73
|
+
// TODO(FW-4599): remove ion-text-wrap class
|
|
66
74
|
await page.setContent(`
|
|
67
|
-
<ion-button expand="full">
|
|
75
|
+
<ion-button class="ion-text-wrap" expand="full">
|
|
68
76
|
<ion-icon slot="start" name="heart"></ion-icon>
|
|
69
77
|
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
|
|
70
78
|
<ion-icon slot="end" name="star"></ion-icon>
|
|
@@ -74,9 +82,10 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
|
74
82
|
await expect(button).toHaveScreenshot(screenshot(`button-wrap-full-icons`));
|
|
75
83
|
});
|
|
76
84
|
test('should render an item button with long text', async ({ page }) => {
|
|
85
|
+
// TODO(FW-4599): remove ion-text-wrap class
|
|
77
86
|
await page.setContent(`
|
|
78
87
|
<ion-item>
|
|
79
|
-
<ion-button slot="end">
|
|
88
|
+
<ion-button class="ion-text-wrap" slot="end">
|
|
80
89
|
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
|
|
81
90
|
</ion-button>
|
|
82
91
|
</ion-item>
|
|
@@ -85,9 +94,10 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
|
85
94
|
await expect(item).toHaveScreenshot(screenshot(`button-wrap-item-button`));
|
|
86
95
|
});
|
|
87
96
|
test('should render an item button with long text and icons', async ({ page }) => {
|
|
97
|
+
// TODO(FW-4599): remove ion-text-wrap class
|
|
88
98
|
await page.setContent(`
|
|
89
99
|
<ion-item>
|
|
90
|
-
<ion-button slot="end">
|
|
100
|
+
<ion-button class="ion-text-wrap" slot="end">
|
|
91
101
|
<ion-icon slot="start" name="heart"></ion-icon>
|
|
92
102
|
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
|
|
93
103
|
<ion-icon slot="end" name="star"></ion-icon>
|
|
@@ -98,10 +108,11 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
|
98
108
|
await expect(item).toHaveScreenshot(screenshot(`button-wrap-item-button-icons`));
|
|
99
109
|
});
|
|
100
110
|
test('should render a list header button with long text', async ({ page }) => {
|
|
111
|
+
// TODO(FW-4599): remove ion-text-wrap class
|
|
101
112
|
await page.setContent(`
|
|
102
113
|
<ion-list-header>
|
|
103
114
|
<ion-label>List Header</ion-label>
|
|
104
|
-
<ion-button>
|
|
115
|
+
<ion-button class="ion-text-wrap">
|
|
105
116
|
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
|
|
106
117
|
</ion-button>
|
|
107
118
|
</ion-list-header>
|
|
@@ -110,10 +121,11 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
|
110
121
|
await expect(listHeader).toHaveScreenshot(screenshot(`button-wrap-list-header-button`));
|
|
111
122
|
});
|
|
112
123
|
test('should render a toolbar button with long text', async ({ page }) => {
|
|
124
|
+
// TODO(FW-4599): remove ion-text-wrap class
|
|
113
125
|
await page.setContent(`
|
|
114
126
|
<ion-toolbar>
|
|
115
127
|
<ion-buttons slot="end">
|
|
116
|
-
<ion-button>
|
|
128
|
+
<ion-button class="ion-text-wrap">
|
|
117
129
|
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
|
|
118
130
|
</ion-button>
|
|
119
131
|
</ion-buttons>
|
|
@@ -61,8 +61,6 @@
|
|
|
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.
|
|
66
64
|
* @prop --wheel-fade-background-rgb: The color of the gradient covering non-selected items
|
|
67
65
|
* when using a wheel style layout, or in the month/year picker for grid style layouts. Must
|
|
68
66
|
* be in RGB format, e.g. `255, 255, 255`.
|
|
@@ -73,6 +71,19 @@
|
|
|
73
71
|
overflow: hidden;
|
|
74
72
|
}
|
|
75
73
|
|
|
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
|
+
|
|
76
87
|
:host(.datetime-size-fixed) {
|
|
77
88
|
width: auto;
|
|
78
89
|
height: auto;
|
|
@@ -83,7 +94,7 @@
|
|
|
83
94
|
}
|
|
84
95
|
|
|
85
96
|
/**
|
|
86
|
-
* This ensures that the picker is
|
|
97
|
+
* This ensures that the picker is apppropriately
|
|
87
98
|
* sized and never truncates the text.
|
|
88
99
|
*/
|
|
89
100
|
:host(.datetime-size-fixed.datetime-prefer-wheel) {
|
|
@@ -306,8 +317,24 @@
|
|
|
306
317
|
justify-content: space-between;
|
|
307
318
|
}
|
|
308
319
|
|
|
320
|
+
:host .calendar-action-buttons ion-item,
|
|
309
321
|
:host .calendar-action-buttons ion-button {
|
|
310
|
-
--background:
|
|
322
|
+
--background: translucent;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
:host .calendar-action-buttons ion-item ion-label {
|
|
326
|
+
display: flex;
|
|
327
|
+
align-items: center;
|
|
328
|
+
width: auto;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
:host .calendar-action-buttons ion-item ion-icon {
|
|
332
|
+
-webkit-padding-start: 4px;
|
|
333
|
+
padding-inline-start: 4px;
|
|
334
|
+
-webkit-padding-end: 0;
|
|
335
|
+
padding-inline-end: 0;
|
|
336
|
+
padding-top: 0;
|
|
337
|
+
padding-bottom: 0;
|
|
311
338
|
}
|
|
312
339
|
|
|
313
340
|
:host .calendar-days-of-week {
|
|
@@ -489,72 +516,8 @@
|
|
|
489
516
|
position: static;
|
|
490
517
|
}
|
|
491
518
|
|
|
492
|
-
:host(.show-month-and-year) .calendar-action-buttons
|
|
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);
|
|
519
|
+
:host(.show-month-and-year) .calendar-action-buttons ion-item {
|
|
520
|
+
--color: var(--ion-color-base);
|
|
558
521
|
}
|
|
559
522
|
|
|
560
523
|
/**
|
|
@@ -643,31 +606,15 @@ ion-picker {
|
|
|
643
606
|
margin-top: 10px;
|
|
644
607
|
}
|
|
645
608
|
|
|
646
|
-
.calendar-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
-
|
|
650
|
-
padding-inline-end: 16px;
|
|
651
|
-
padding-top: 0px;
|
|
652
|
-
padding-bottom: 0px;
|
|
653
|
-
min-height: 44px;
|
|
609
|
+
:host .calendar-action-buttons ion-item {
|
|
610
|
+
--padding-start: 16px;
|
|
611
|
+
--background-hover: transparent;
|
|
612
|
+
--background-activated: transparent;
|
|
654
613
|
font-size: min(1rem, 25.6px);
|
|
655
614
|
font-weight: 600;
|
|
656
615
|
}
|
|
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
|
-
}
|
|
669
616
|
|
|
670
|
-
:host .calendar-action-buttons
|
|
617
|
+
:host .calendar-action-buttons ion-item ion-icon,
|
|
671
618
|
:host .calendar-action-buttons ion-buttons ion-button {
|
|
672
619
|
color: var(--ion-color-base);
|
|
673
620
|
}
|
|
@@ -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", null, renderArray);
|
|
999
|
+
return h("ion-picker-internal", 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", { class: "date-column", color: this.color, disabled: disabled, value: todayString, onIonChange: (ev) => {
|
|
1058
|
+
return (h("ion-picker-column-internal", { class: "date-column", color: this.color, disabled: disabled, items: items, 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
|
+
} }));
|
|
1075
1075
|
}
|
|
1076
1076
|
renderIndividualDatePickerColumns(forcePresentation) {
|
|
1077
1077
|
const { workingParts, isDateEnabled } = this;
|
|
@@ -1139,8 +1139,7 @@ export class Datetime {
|
|
|
1139
1139
|
}
|
|
1140
1140
|
const { disabled, workingParts } = this;
|
|
1141
1141
|
const activePart = this.getActivePartsWithFallback();
|
|
1142
|
-
|
|
1143
|
-
return (h("ion-picker-column", { class: "day-column", color: this.color, disabled: disabled, value: pickerColumnValue, onIonChange: (ev) => {
|
|
1142
|
+
return (h("ion-picker-column-internal", { class: "day-column", color: this.color, disabled: disabled, items: days, value: (_a = (workingParts.day !== null ? workingParts.day : this.defaultParts.day)) !== null && _a !== void 0 ? _a : undefined, onIonChange: (ev) => {
|
|
1144
1143
|
// TODO(FW-1823) Remove this when iOS 14 support is dropped.
|
|
1145
1144
|
// Due to a Safari 14 issue we need to destroy
|
|
1146
1145
|
// the scroll listener before we update state
|
|
@@ -1154,7 +1153,7 @@ export class Datetime {
|
|
|
1154
1153
|
// the working parts have been updated.
|
|
1155
1154
|
this.initializeCalendarListener();
|
|
1156
1155
|
ev.stopPropagation();
|
|
1157
|
-
} }
|
|
1156
|
+
} }));
|
|
1158
1157
|
}
|
|
1159
1158
|
renderMonthPickerColumn(months) {
|
|
1160
1159
|
if (months.length === 0) {
|
|
@@ -1162,7 +1161,7 @@ export class Datetime {
|
|
|
1162
1161
|
}
|
|
1163
1162
|
const { disabled, workingParts } = this;
|
|
1164
1163
|
const activePart = this.getActivePartsWithFallback();
|
|
1165
|
-
return (h("ion-picker-column", { class: "month-column", color: this.color, disabled: disabled, value: workingParts.month, onIonChange: (ev) => {
|
|
1164
|
+
return (h("ion-picker-column-internal", { class: "month-column", color: this.color, disabled: disabled, items: months, value: workingParts.month, onIonChange: (ev) => {
|
|
1166
1165
|
// TODO(FW-1823) Remove this when iOS 14 support is dropped.
|
|
1167
1166
|
// Due to a Safari 14 issue we need to destroy
|
|
1168
1167
|
// the scroll listener before we update state
|
|
@@ -1176,7 +1175,7 @@ export class Datetime {
|
|
|
1176
1175
|
// the working parts have been updated.
|
|
1177
1176
|
this.initializeCalendarListener();
|
|
1178
1177
|
ev.stopPropagation();
|
|
1179
|
-
} }
|
|
1178
|
+
} }));
|
|
1180
1179
|
}
|
|
1181
1180
|
renderYearPickerColumn(years) {
|
|
1182
1181
|
if (years.length === 0) {
|
|
@@ -1184,7 +1183,7 @@ export class Datetime {
|
|
|
1184
1183
|
}
|
|
1185
1184
|
const { disabled, workingParts } = this;
|
|
1186
1185
|
const activePart = this.getActivePartsWithFallback();
|
|
1187
|
-
return (h("ion-picker-column", { class: "year-column", color: this.color, disabled: disabled, value: workingParts.year, onIonChange: (ev) => {
|
|
1186
|
+
return (h("ion-picker-column-internal", { class: "year-column", color: this.color, disabled: disabled, items: years, value: workingParts.year, onIonChange: (ev) => {
|
|
1188
1187
|
// TODO(FW-1823) Remove this when iOS 14 support is dropped.
|
|
1189
1188
|
// Due to a Safari 14 issue we need to destroy
|
|
1190
1189
|
// the scroll listener before we update state
|
|
@@ -1198,7 +1197,7 @@ export class Datetime {
|
|
|
1198
1197
|
// the working parts have been updated.
|
|
1199
1198
|
this.initializeCalendarListener();
|
|
1200
1199
|
ev.stopPropagation();
|
|
1201
|
-
} }
|
|
1200
|
+
} }));
|
|
1202
1201
|
}
|
|
1203
1202
|
renderTimePickerColumns(forcePresentation) {
|
|
1204
1203
|
if (['date', 'month', 'month-year', 'year'].includes(forcePresentation)) {
|
|
@@ -1227,22 +1226,22 @@ export class Datetime {
|
|
|
1227
1226
|
if (hoursData.length === 0)
|
|
1228
1227
|
return [];
|
|
1229
1228
|
const activePart = this.getActivePartsWithFallback();
|
|
1230
|
-
return (h("ion-picker-column", { color: this.color, disabled: disabled, value: activePart.hour, numericInput: true, onIonChange: (ev) => {
|
|
1229
|
+
return (h("ion-picker-column-internal", { color: this.color, disabled: disabled, value: activePart.hour, items: hoursData, numericInput: true, onIonChange: (ev) => {
|
|
1231
1230
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { hour: ev.detail.value }));
|
|
1232
1231
|
this.setActiveParts(Object.assign(Object.assign({}, activePart), { hour: ev.detail.value }));
|
|
1233
1232
|
ev.stopPropagation();
|
|
1234
|
-
} }
|
|
1233
|
+
} }));
|
|
1235
1234
|
}
|
|
1236
1235
|
renderMinutePickerColumn(minutesData) {
|
|
1237
1236
|
const { disabled, workingParts } = this;
|
|
1238
1237
|
if (minutesData.length === 0)
|
|
1239
1238
|
return [];
|
|
1240
1239
|
const activePart = this.getActivePartsWithFallback();
|
|
1241
|
-
return (h("ion-picker-column", { color: this.color, disabled: disabled, value: activePart.minute, numericInput: true, onIonChange: (ev) => {
|
|
1240
|
+
return (h("ion-picker-column-internal", { color: this.color, disabled: disabled, value: activePart.minute, items: minutesData, numericInput: true, onIonChange: (ev) => {
|
|
1242
1241
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { minute: ev.detail.value }));
|
|
1243
1242
|
this.setActiveParts(Object.assign(Object.assign({}, activePart), { minute: ev.detail.value }));
|
|
1244
1243
|
ev.stopPropagation();
|
|
1245
|
-
} }
|
|
1244
|
+
} }));
|
|
1246
1245
|
}
|
|
1247
1246
|
renderDayPeriodPickerColumn(dayPeriodData) {
|
|
1248
1247
|
const { disabled, workingParts } = this;
|
|
@@ -1251,12 +1250,12 @@ export class Datetime {
|
|
|
1251
1250
|
}
|
|
1252
1251
|
const activePart = this.getActivePartsWithFallback();
|
|
1253
1252
|
const isDayPeriodRTL = isLocaleDayPeriodRTL(this.locale);
|
|
1254
|
-
return (h("ion-picker-column", { style: isDayPeriodRTL ? { order: '-1' } : {}, color: this.color, disabled: disabled, value: activePart.ampm, onIonChange: (ev) => {
|
|
1253
|
+
return (h("ion-picker-column-internal", { style: isDayPeriodRTL ? { order: '-1' } : {}, color: this.color, disabled: disabled, value: activePart.ampm, items: dayPeriodData, onIonChange: (ev) => {
|
|
1255
1254
|
const hour = calculateHourFromAMPM(workingParts, ev.detail.value);
|
|
1256
1255
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { ampm: ev.detail.value, hour }));
|
|
1257
1256
|
this.setActiveParts(Object.assign(Object.assign({}, activePart), { ampm: ev.detail.value, hour }));
|
|
1258
1257
|
ev.stopPropagation();
|
|
1259
|
-
} }
|
|
1258
|
+
} }));
|
|
1260
1259
|
}
|
|
1261
1260
|
renderWheelView(forcePresentation) {
|
|
1262
1261
|
const { locale } = this;
|
|
@@ -1277,11 +1276,26 @@ export class Datetime {
|
|
|
1277
1276
|
const nextMonthDisabled = disabled || isNextMonthDisabled(this.workingParts, this.maxParts);
|
|
1278
1277
|
// don't use the inheritAttributes util because it removes dir from the host, and we still need that
|
|
1279
1278
|
const hostDir = this.el.getAttribute('dir') || undefined;
|
|
1280
|
-
return (h("div", { class: "calendar-header" }, h("div", { class: "calendar-action-buttons" }, h("div", { class: "calendar-month-year" }, h("
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1279
|
+
return (h("div", { class: "calendar-header" }, h("div", { class: "calendar-action-buttons" }, h("div", { class: "calendar-month-year" }, h("ion-item", { part: "month-year-button", ref: (el) => (this.monthYearToggleItemRef = el), button: true, "aria-label": "Show year picker", detail: false, lines: "none", disabled: disabled, onClick: () => {
|
|
1280
|
+
var _a;
|
|
1281
|
+
this.toggleMonthAndYearView();
|
|
1282
|
+
/**
|
|
1283
|
+
* TODO: FW-3547
|
|
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) => {
|
|
1285
1299
|
return h("div", { class: "day-of-week" }, d);
|
|
1286
1300
|
}))));
|
|
1287
1301
|
}
|
|
@@ -1442,7 +1456,7 @@ export class Datetime {
|
|
|
1442
1456
|
* This will correctly scroll the element position to the correct time value,
|
|
1443
1457
|
* before the popover is fully presented.
|
|
1444
1458
|
*/
|
|
1445
|
-
const cols = ev.target.querySelectorAll('ion-picker-column');
|
|
1459
|
+
const cols = ev.target.querySelectorAll('ion-picker-column-internal');
|
|
1446
1460
|
// TODO (FW-615): Potentially remove this when intersection observers are fixed in picker column
|
|
1447
1461
|
cols.forEach((col) => col.scrollActiveItemIntoView());
|
|
1448
1462
|
}, style: {
|
|
@@ -2370,5 +2384,3 @@ export class Datetime {
|
|
|
2370
2384
|
}
|
|
2371
2385
|
}
|
|
2372
2386
|
let datetimeIds = 0;
|
|
2373
|
-
const WHEEL_ITEM_PART = 'wheel-item';
|
|
2374
|
-
const WHEEL_ITEM_ACTIVE_PART = `active`;
|