@ionic/core 7.6.2-dev.11702914017.1ae72da5 → 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/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/components/refresher/refresher.js +0 -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 +485 -69
- 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 -13
- 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/refresher/refresher.d.ts +0 -3
- package/dist/types/components.d.ts +154 -130
- 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 +1500 -1402
- package/package.json +1 -1
- package/components/ion-picker-column-internal.d.ts +0 -11
- package/components/ion-picker-column-internal.js +0 -9
- package/components/ion-picker-internal.js +0 -9
- package/components/picker-column-internal.js +0 -390
- package/dist/collection/components/picker-column-internal/picker-column-internal.js +0 -565
- package/dist/collection/components/picker-column-internal/test/disabled/picker-column-internal.e2e.js +0 -162
- package/dist/collection/components/picker-internal/picker-internal.js +0 -544
- package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +0 -118
- package/dist/esm-es5/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
package/hydrate/index.js
CHANGED
|
@@ -7976,7 +7976,7 @@ const createButtonActiveGesture = (el, isButton) => {
|
|
|
7976
7976
|
return;
|
|
7977
7977
|
}
|
|
7978
7978
|
const target = document.elementFromPoint(x, y);
|
|
7979
|
-
if (!target || !isButton(target)) {
|
|
7979
|
+
if (!target || !isButton(target) || target.disabled) {
|
|
7980
7980
|
clearActiveButton();
|
|
7981
7981
|
return;
|
|
7982
7982
|
}
|
|
@@ -8334,7 +8334,7 @@ const focusLastDescendant = (ref, overlay) => {
|
|
|
8334
8334
|
* Should NOT include: Toast
|
|
8335
8335
|
*/
|
|
8336
8336
|
const trapKeyboardFocus = (ev, doc) => {
|
|
8337
|
-
const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker,ion-popover');
|
|
8337
|
+
const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover');
|
|
8338
8338
|
const target = ev.target;
|
|
8339
8339
|
/**
|
|
8340
8340
|
* If no active overlay, ignore this event.
|
|
@@ -8519,7 +8519,7 @@ const dismissOverlay = (doc, data, role, overlayTag, id) => {
|
|
|
8519
8519
|
*/
|
|
8520
8520
|
const getOverlays = (doc, selector) => {
|
|
8521
8521
|
if (selector === undefined) {
|
|
8522
|
-
selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker,ion-popover,ion-toast';
|
|
8522
|
+
selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover,ion-toast';
|
|
8523
8523
|
}
|
|
8524
8524
|
return Array.from(doc.querySelectorAll(selector)).filter((c) => c.overlayIndex > 0);
|
|
8525
8525
|
};
|
|
@@ -8585,6 +8585,7 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
|
|
|
8585
8585
|
return;
|
|
8586
8586
|
}
|
|
8587
8587
|
setRootAriaHidden(true);
|
|
8588
|
+
document.body.classList.add(BACKDROP_NO_SCROLL);
|
|
8588
8589
|
overlay.presented = true;
|
|
8589
8590
|
overlay.willPresent.emit();
|
|
8590
8591
|
(_a = overlay.willPresentShorthand) === null || _a === void 0 ? void 0 : _a.emit();
|
|
@@ -8647,12 +8648,14 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
|
|
|
8647
8648
|
if (!overlay.presented) {
|
|
8648
8649
|
return false;
|
|
8649
8650
|
}
|
|
8651
|
+
const lastOverlay = doc !== undefined && getPresentedOverlays(doc).length === 1;
|
|
8650
8652
|
/**
|
|
8651
8653
|
* If this is the last visible overlay then
|
|
8652
8654
|
* we want to re-add the root to the accessibility tree.
|
|
8653
8655
|
*/
|
|
8654
|
-
if (
|
|
8656
|
+
if (lastOverlay) {
|
|
8655
8657
|
setRootAriaHidden(false);
|
|
8658
|
+
document.body.classList.remove(BACKDROP_NO_SCROLL);
|
|
8656
8659
|
}
|
|
8657
8660
|
overlay.presented = false;
|
|
8658
8661
|
try {
|
|
@@ -10062,9 +10065,9 @@ const mdLeaveAnimation$5 = (baseEl) => {
|
|
|
10062
10065
|
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
10063
10066
|
};
|
|
10064
10067
|
|
|
10065
|
-
const actionSheetIosCss = ".sc-ion-action-sheet-ios-h{--color:initial;--button-color-activated:var(--button-color);--button-color-focused:var(--button-color);--button-color-hover:var(--button-color);--button-color-selected:var(--button-color);--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--height:auto;--max-height:calc(100% - (var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:block;position:fixed;outline:none;font-family:var(--ion-font-family, inherit);-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-action-sheet-ios-h{display:none}.action-sheet-wrapper.sc-ion-action-sheet-ios{left:0;right:0;bottom:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:block;position:absolute;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);z-index:10;pointer-events:none}.action-sheet-button.sc-ion-action-sheet-ios{display:block;position:relative;width:100%;border:0;outline:none;background:var(--button-background);color:var(--button-color);font-family:inherit;overflow:hidden}.action-sheet-button-inner.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;pointer-events:none;width:100%;height:100%;z-index:1}.action-sheet-container.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:end;justify-content:flex-end;height:100%;max-height:calc(100vh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)));max-height:calc(100dvh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)))}.action-sheet-group.sc-ion-action-sheet-ios{-ms-flex-negative:2;flex-shrink:2;overscroll-behavior-y:contain;overflow-y:auto;-webkit-overflow-scrolling:touch;pointer-events:all;background:var(--background)}@media (any-pointer: coarse){.action-sheet-group.sc-ion-action-sheet-ios::-webkit-scrollbar{display:none}}.action-sheet-group-cancel.sc-ion-action-sheet-ios{-ms-flex-negative:0;flex-shrink:0;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-ios::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\"\";opacity:0}.action-sheet-selected.sc-ion-action-sheet-ios{color:var(--button-color-selected)}.action-sheet-selected.sc-ion-action-sheet-ios::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-button.ion-activated.sc-ion-action-sheet-ios{color:var(--button-color-activated)}.action-sheet-button.ion-activated.sc-ion-action-sheet-ios::after{background:var(--button-background-activated);opacity:var(--button-background-activated-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-ios{color:var(--button-color-focused)}.action-sheet-button.ion-focused.sc-ion-action-sheet-ios::after{background:var(--button-background-focused);opacity:var(--button-background-focused-opacity)}@media (any-hover: hover){.action-sheet-button.sc-ion-action-sheet-ios:hover{color:var(--button-color-hover)}.action-sheet-button.sc-ion-action-sheet-ios:hover::after{background:var(--button-background-hover);opacity:var(--button-background-hover-opacity)}}.sc-ion-action-sheet-ios-h{--background:var(--ion-overlay-background-color, var(--ion-color-step-100, #f9f9f9));--backdrop-opacity:var(--ion-backdrop-opacity, 0.4);--button-background:linear-gradient(0deg, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08), rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08) 50%, transparent 50%) bottom/100% 1px no-repeat transparent;--button-background-activated:var(--ion-text-color, #000);--button-background-activated-opacity:.08;--button-background-hover:currentColor;--button-background-hover-opacity:.04;--button-background-focused:currentColor;--button-background-focused-opacity:.12;--button-background-selected:var(--ion-color-step-150, var(--ion-background-color, #fff));--button-background-selected-opacity:1;--button-color:var(--ion-color-primary, #3880ff);--color:var(--ion-color-step-400, #999999);text-align:center}.action-sheet-wrapper.sc-ion-action-sheet-ios{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:var(--ion-safe-area-top, 0);margin-bottom:var(--ion-safe-area-bottom, 0)}.action-sheet-container.sc-ion-action-sheet-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:0;padding-bottom:0}.action-sheet-group.sc-ion-action-sheet-ios{border-radius:13px;margin-bottom:8px}.action-sheet-group.sc-ion-action-sheet-ios:first-child{margin-top:10px}.action-sheet-group.sc-ion-action-sheet-ios:last-child{margin-bottom:10px}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-group.sc-ion-action-sheet-ios{background-color:transparent;-webkit-backdrop-filter:saturate(280%) blur(20px);backdrop-filter:saturate(280%) blur(20px)}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-title.sc-ion-action-sheet-ios,.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-button.sc-ion-action-sheet-ios{background-color:transparent;background-image:-webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)), to(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8))), -webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4)), color-stop(50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4)), color-stop(50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)));background-image:linear-gradient(0deg, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8), rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 100%), linear-gradient(0deg, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4), rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4) 50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 50%);background-repeat:no-repeat;background-position:top, bottom;background-size:100% calc(100% - 1px), 100% 1px;-webkit-backdrop-filter:saturate(120%);backdrop-filter:saturate(120%)}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-button.ion-activated.sc-ion-action-sheet-ios{background-color:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.7);background-image:none}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-cancel.sc-ion-action-sheet-ios{background:var(--button-background-selected)}}.action-sheet-title.sc-ion-action-sheet-ios{background:-webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08)), color-stop(50%, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08)), color-stop(50%, transparent)) bottom/100% 1px no-repeat transparent;background:linear-gradient(0deg, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08), rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08) 50%, transparent 50%) bottom/100% 1px no-repeat transparent}.action-sheet-title.sc-ion-action-sheet-ios{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:14px;padding-bottom:13px;color:var(--color, var(--ion-color-step-400, #999999));font-size:max(13px, 0.8125rem);font-weight:400;text-align:center}.action-sheet-title.action-sheet-has-sub-title.sc-ion-action-sheet-ios{font-weight:600}.action-sheet-sub-title.sc-ion-action-sheet-ios{padding-left:0;padding-right:0;padding-top:6px;padding-bottom:0;font-size:max(13px, 0.8125rem);font-weight:400}.action-sheet-button.sc-ion-action-sheet-ios{-webkit-padding-start:14px;padding-inline-start:14px;-webkit-padding-end:14px;padding-inline-end:14px;padding-top:14px;padding-bottom:14px;min-height:56px;font-size:max(20px, 1.25rem);contain:content}.action-sheet-button.sc-ion-action-sheet-ios .action-sheet-icon.sc-ion-action-sheet-ios{-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:max(28px, 1.75rem);pointer-events:none}.action-sheet-button.sc-ion-action-sheet-ios:last-child{background-image:none}.action-sheet-selected.sc-ion-action-sheet-ios{font-weight:bold}.action-sheet-cancel.sc-ion-action-sheet-ios{font-weight:600}.action-sheet-cancel.sc-ion-action-sheet-ios::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-destructive.sc-ion-action-sheet-ios,.action-sheet-destructive.ion-activated.sc-ion-action-sheet-ios,.action-sheet-destructive.ion-focused.sc-ion-action-sheet-ios{color:var(--ion-color-danger, #eb445a)}@media (any-hover: hover){.action-sheet-destructive.sc-ion-action-sheet-ios:hover{color:var(--ion-color-danger, #eb445a)}}";
|
|
10068
|
+
const actionSheetIosCss = ".sc-ion-action-sheet-ios-h{--color:initial;--button-color-activated:var(--button-color);--button-color-focused:var(--button-color);--button-color-hover:var(--button-color);--button-color-selected:var(--button-color);--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--height:auto;--max-height:calc(100% - (var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:block;position:fixed;outline:none;font-family:var(--ion-font-family, inherit);-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-action-sheet-ios-h{display:none}.action-sheet-wrapper.sc-ion-action-sheet-ios{left:0;right:0;bottom:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:block;position:absolute;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);z-index:10;pointer-events:none}.action-sheet-button.sc-ion-action-sheet-ios{display:block;position:relative;width:100%;border:0;outline:none;background:var(--button-background);color:var(--button-color);font-family:inherit;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-ios:disabled{color:var(--button-color-disabled);opacity:0.4}.action-sheet-button-inner.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;pointer-events:none;width:100%;height:100%;z-index:1}.action-sheet-container.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:end;justify-content:flex-end;height:100%;max-height:calc(100vh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)));max-height:calc(100dvh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)))}.action-sheet-group.sc-ion-action-sheet-ios{-ms-flex-negative:2;flex-shrink:2;overscroll-behavior-y:contain;overflow-y:auto;-webkit-overflow-scrolling:touch;pointer-events:all;background:var(--background)}@media (any-pointer: coarse){.action-sheet-group.sc-ion-action-sheet-ios::-webkit-scrollbar{display:none}}.action-sheet-group-cancel.sc-ion-action-sheet-ios{-ms-flex-negative:0;flex-shrink:0;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-ios::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\"\";opacity:0}.action-sheet-selected.sc-ion-action-sheet-ios{color:var(--button-color-selected)}.action-sheet-selected.sc-ion-action-sheet-ios::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-button.ion-activated.sc-ion-action-sheet-ios{color:var(--button-color-activated)}.action-sheet-button.ion-activated.sc-ion-action-sheet-ios::after{background:var(--button-background-activated);opacity:var(--button-background-activated-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-ios{color:var(--button-color-focused)}.action-sheet-button.ion-focused.sc-ion-action-sheet-ios::after{background:var(--button-background-focused);opacity:var(--button-background-focused-opacity)}@media (any-hover: hover){.action-sheet-button.sc-ion-action-sheet-ios:not(:disabled):hover{color:var(--button-color-hover)}.action-sheet-button.sc-ion-action-sheet-ios:not(:disabled):hover::after{background:var(--button-background-hover);opacity:var(--button-background-hover-opacity)}}.sc-ion-action-sheet-ios-h{--background:var(--ion-overlay-background-color, var(--ion-color-step-100, #f9f9f9));--backdrop-opacity:var(--ion-backdrop-opacity, 0.4);--button-background:linear-gradient(0deg, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08), rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08) 50%, transparent 50%) bottom/100% 1px no-repeat transparent;--button-background-activated:var(--ion-text-color, #000);--button-background-activated-opacity:.08;--button-background-hover:currentColor;--button-background-hover-opacity:.04;--button-background-focused:currentColor;--button-background-focused-opacity:.12;--button-background-selected:var(--ion-color-step-150, var(--ion-background-color, #fff));--button-background-selected-opacity:1;--button-color:var(--ion-color-primary, #3880ff);--button-color-disabled:var(--ion-color-step-850, #262626);--color:var(--ion-color-step-400, #999999);text-align:center}.action-sheet-wrapper.sc-ion-action-sheet-ios{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:var(--ion-safe-area-top, 0);margin-bottom:var(--ion-safe-area-bottom, 0)}.action-sheet-container.sc-ion-action-sheet-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:0;padding-bottom:0}.action-sheet-group.sc-ion-action-sheet-ios{border-radius:13px;margin-bottom:8px}.action-sheet-group.sc-ion-action-sheet-ios:first-child{margin-top:10px}.action-sheet-group.sc-ion-action-sheet-ios:last-child{margin-bottom:10px}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-group.sc-ion-action-sheet-ios{background-color:transparent;-webkit-backdrop-filter:saturate(280%) blur(20px);backdrop-filter:saturate(280%) blur(20px)}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-title.sc-ion-action-sheet-ios,.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-button.sc-ion-action-sheet-ios{background-color:transparent;background-image:-webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)), to(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8))), -webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4)), color-stop(50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4)), color-stop(50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)));background-image:linear-gradient(0deg, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8), rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 100%), linear-gradient(0deg, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4), rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4) 50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 50%);background-repeat:no-repeat;background-position:top, bottom;background-size:100% calc(100% - 1px), 100% 1px;-webkit-backdrop-filter:saturate(120%);backdrop-filter:saturate(120%)}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-button.ion-activated.sc-ion-action-sheet-ios{background-color:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.7);background-image:none}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-cancel.sc-ion-action-sheet-ios{background:var(--button-background-selected)}}.action-sheet-title.sc-ion-action-sheet-ios{background:-webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08)), color-stop(50%, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08)), color-stop(50%, transparent)) bottom/100% 1px no-repeat transparent;background:linear-gradient(0deg, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08), rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08) 50%, transparent 50%) bottom/100% 1px no-repeat transparent}.action-sheet-title.sc-ion-action-sheet-ios{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:14px;padding-bottom:13px;color:var(--color, var(--ion-color-step-400, #999999));font-size:max(13px, 0.8125rem);font-weight:400;text-align:center}.action-sheet-title.action-sheet-has-sub-title.sc-ion-action-sheet-ios{font-weight:600}.action-sheet-sub-title.sc-ion-action-sheet-ios{padding-left:0;padding-right:0;padding-top:6px;padding-bottom:0;font-size:max(13px, 0.8125rem);font-weight:400}.action-sheet-button.sc-ion-action-sheet-ios{-webkit-padding-start:14px;padding-inline-start:14px;-webkit-padding-end:14px;padding-inline-end:14px;padding-top:14px;padding-bottom:14px;min-height:56px;font-size:max(20px, 1.25rem);contain:content}.action-sheet-button.sc-ion-action-sheet-ios .action-sheet-icon.sc-ion-action-sheet-ios{-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:max(28px, 1.75rem);pointer-events:none}.action-sheet-button.sc-ion-action-sheet-ios:last-child{background-image:none}.action-sheet-selected.sc-ion-action-sheet-ios{font-weight:bold}.action-sheet-cancel.sc-ion-action-sheet-ios{font-weight:600}.action-sheet-cancel.sc-ion-action-sheet-ios::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-destructive.sc-ion-action-sheet-ios,.action-sheet-destructive.ion-activated.sc-ion-action-sheet-ios,.action-sheet-destructive.ion-focused.sc-ion-action-sheet-ios{color:var(--ion-color-danger, #eb445a)}@media (any-hover: hover){.action-sheet-destructive.sc-ion-action-sheet-ios:hover{color:var(--ion-color-danger, #eb445a)}}";
|
|
10066
10069
|
|
|
10067
|
-
const actionSheetMdCss = ".sc-ion-action-sheet-md-h{--color:initial;--button-color-activated:var(--button-color);--button-color-focused:var(--button-color);--button-color-hover:var(--button-color);--button-color-selected:var(--button-color);--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--height:auto;--max-height:calc(100% - (var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:block;position:fixed;outline:none;font-family:var(--ion-font-family, inherit);-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-action-sheet-md-h{display:none}.action-sheet-wrapper.sc-ion-action-sheet-md{left:0;right:0;bottom:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:block;position:absolute;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);z-index:10;pointer-events:none}.action-sheet-button.sc-ion-action-sheet-md{display:block;position:relative;width:100%;border:0;outline:none;background:var(--button-background);color:var(--button-color);font-family:inherit;overflow:hidden}.action-sheet-button-inner.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;pointer-events:none;width:100%;height:100%;z-index:1}.action-sheet-container.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:end;justify-content:flex-end;height:100%;max-height:calc(100vh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)));max-height:calc(100dvh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)))}.action-sheet-group.sc-ion-action-sheet-md{-ms-flex-negative:2;flex-shrink:2;overscroll-behavior-y:contain;overflow-y:auto;-webkit-overflow-scrolling:touch;pointer-events:all;background:var(--background)}@media (any-pointer: coarse){.action-sheet-group.sc-ion-action-sheet-md::-webkit-scrollbar{display:none}}.action-sheet-group-cancel.sc-ion-action-sheet-md{-ms-flex-negative:0;flex-shrink:0;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-md::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\"\";opacity:0}.action-sheet-selected.sc-ion-action-sheet-md{color:var(--button-color-selected)}.action-sheet-selected.sc-ion-action-sheet-md::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-button.ion-activated.sc-ion-action-sheet-md{color:var(--button-color-activated)}.action-sheet-button.ion-activated.sc-ion-action-sheet-md::after{background:var(--button-background-activated);opacity:var(--button-background-activated-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-md{color:var(--button-color-focused)}.action-sheet-button.ion-focused.sc-ion-action-sheet-md::after{background:var(--button-background-focused);opacity:var(--button-background-focused-opacity)}@media (any-hover: hover){.action-sheet-button.sc-ion-action-sheet-md:hover{color:var(--button-color-hover)}.action-sheet-button.sc-ion-action-sheet-md:hover::after{background:var(--button-background-hover);opacity:var(--button-background-hover-opacity)}}.sc-ion-action-sheet-md-h{--background:var(--ion-overlay-background-color, var(--ion-background-color, #fff));--backdrop-opacity:var(--ion-backdrop-opacity, 0.32);--button-background:transparent;--button-background-selected:currentColor;--button-background-selected-opacity:0;--button-background-activated:transparent;--button-background-activated-opacity:0;--button-background-hover:currentColor;--button-background-hover-opacity:.04;--button-background-focused:currentColor;--button-background-focused-opacity:.12;--button-color:var(--ion-color-step-850, #262626);--color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54)}.action-sheet-wrapper.sc-ion-action-sheet-md{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:var(--ion-safe-area-top, 0);margin-bottom:0}.action-sheet-title.sc-ion-action-sheet-md{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:20px;padding-bottom:17px;min-height:60px;color:var(--color, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54));font-size:1rem;text-align:start}.action-sheet-sub-title.sc-ion-action-sheet-md{padding-left:0;padding-right:0;padding-top:16px;padding-bottom:0;font-size:0.875rem}.action-sheet-group.sc-ion-action-sheet-md:first-child{padding-top:0}.action-sheet-group.sc-ion-action-sheet-md:last-child{padding-bottom:var(--ion-safe-area-bottom)}.action-sheet-button.sc-ion-action-sheet-md{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:12px;padding-bottom:12px;position:relative;min-height:52px;font-size:1rem;text-align:start;contain:content;overflow:hidden}.action-sheet-icon.sc-ion-action-sheet-md{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:32px;margin-inline-end:32px;margin-top:0;margin-bottom:0;color:var(--color);font-size:1.5rem}.action-sheet-button-inner.sc-ion-action-sheet-md{-ms-flex-pack:start;justify-content:flex-start}.action-sheet-selected.sc-ion-action-sheet-md{font-weight:bold}";
|
|
10070
|
+
const actionSheetMdCss = ".sc-ion-action-sheet-md-h{--color:initial;--button-color-activated:var(--button-color);--button-color-focused:var(--button-color);--button-color-hover:var(--button-color);--button-color-selected:var(--button-color);--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--height:auto;--max-height:calc(100% - (var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:block;position:fixed;outline:none;font-family:var(--ion-font-family, inherit);-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-action-sheet-md-h{display:none}.action-sheet-wrapper.sc-ion-action-sheet-md{left:0;right:0;bottom:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:block;position:absolute;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);z-index:10;pointer-events:none}.action-sheet-button.sc-ion-action-sheet-md{display:block;position:relative;width:100%;border:0;outline:none;background:var(--button-background);color:var(--button-color);font-family:inherit;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-md:disabled{color:var(--button-color-disabled);opacity:0.4}.action-sheet-button-inner.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;pointer-events:none;width:100%;height:100%;z-index:1}.action-sheet-container.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:end;justify-content:flex-end;height:100%;max-height:calc(100vh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)));max-height:calc(100dvh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)))}.action-sheet-group.sc-ion-action-sheet-md{-ms-flex-negative:2;flex-shrink:2;overscroll-behavior-y:contain;overflow-y:auto;-webkit-overflow-scrolling:touch;pointer-events:all;background:var(--background)}@media (any-pointer: coarse){.action-sheet-group.sc-ion-action-sheet-md::-webkit-scrollbar{display:none}}.action-sheet-group-cancel.sc-ion-action-sheet-md{-ms-flex-negative:0;flex-shrink:0;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-md::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\"\";opacity:0}.action-sheet-selected.sc-ion-action-sheet-md{color:var(--button-color-selected)}.action-sheet-selected.sc-ion-action-sheet-md::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-button.ion-activated.sc-ion-action-sheet-md{color:var(--button-color-activated)}.action-sheet-button.ion-activated.sc-ion-action-sheet-md::after{background:var(--button-background-activated);opacity:var(--button-background-activated-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-md{color:var(--button-color-focused)}.action-sheet-button.ion-focused.sc-ion-action-sheet-md::after{background:var(--button-background-focused);opacity:var(--button-background-focused-opacity)}@media (any-hover: hover){.action-sheet-button.sc-ion-action-sheet-md:not(:disabled):hover{color:var(--button-color-hover)}.action-sheet-button.sc-ion-action-sheet-md:not(:disabled):hover::after{background:var(--button-background-hover);opacity:var(--button-background-hover-opacity)}}.sc-ion-action-sheet-md-h{--background:var(--ion-overlay-background-color, var(--ion-background-color, #fff));--backdrop-opacity:var(--ion-backdrop-opacity, 0.32);--button-background:transparent;--button-background-selected:currentColor;--button-background-selected-opacity:0;--button-background-activated:transparent;--button-background-activated-opacity:0;--button-background-hover:currentColor;--button-background-hover-opacity:.04;--button-background-focused:currentColor;--button-background-focused-opacity:.12;--button-color:var(--ion-color-step-850, #262626);--button-color-disabled:var(--button-color);--color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54)}.action-sheet-wrapper.sc-ion-action-sheet-md{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:var(--ion-safe-area-top, 0);margin-bottom:0}.action-sheet-title.sc-ion-action-sheet-md{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:20px;padding-bottom:17px;min-height:60px;color:var(--color, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54));font-size:1rem;text-align:start}.action-sheet-sub-title.sc-ion-action-sheet-md{padding-left:0;padding-right:0;padding-top:16px;padding-bottom:0;font-size:0.875rem}.action-sheet-group.sc-ion-action-sheet-md:first-child{padding-top:0}.action-sheet-group.sc-ion-action-sheet-md:last-child{padding-bottom:var(--ion-safe-area-bottom)}.action-sheet-button.sc-ion-action-sheet-md{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:12px;padding-bottom:12px;position:relative;min-height:52px;font-size:1rem;text-align:start;contain:content;overflow:hidden}.action-sheet-icon.sc-ion-action-sheet-md{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:32px;margin-inline-end:32px;margin-top:0;margin-bottom:0;color:var(--color);font-size:1.5rem}.action-sheet-button-inner.sc-ion-action-sheet-md{-ms-flex-pack:start;justify-content:flex-start}.action-sheet-selected.sc-ion-action-sheet-md{font-weight:bold}";
|
|
10068
10071
|
|
|
10069
10072
|
/**
|
|
10070
10073
|
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
@@ -10255,7 +10258,7 @@ class ActionSheet {
|
|
|
10255
10258
|
}, class: Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'action-sheet-translucent': this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), hAsync("ion-backdrop", { tappable: this.backdropDismiss }), hAsync("div", { tabindex: "0" }), hAsync("div", { class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, hAsync("div", { class: "action-sheet-container" }, hAsync("div", { class: "action-sheet-group", ref: (el) => (this.groupEl = el) }, header !== undefined && (hAsync("div", { id: headerID, class: {
|
|
10256
10259
|
'action-sheet-title': true,
|
|
10257
10260
|
'action-sheet-has-sub-title': this.subHeader !== undefined,
|
|
10258
|
-
} }, header, this.subHeader && hAsync("div", { class: "action-sheet-sub-title" }, this.subHeader))), buttons.map((b) => (hAsync("button", Object.assign({}, b.htmlAttributes, { type: "button", id: b.id, class: buttonClass$3(b), onClick: () => this.buttonClick(b) }), hAsync("span", { class: "action-sheet-button-inner" }, b.icon && hAsync("ion-icon", { icon: b.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" }), b.text), mode === 'md' && hAsync("ion-ripple-effect", null))))), cancelButton && (hAsync("div", { class: "action-sheet-group action-sheet-group-cancel" }, hAsync("button", Object.assign({}, cancelButton.htmlAttributes, { type: "button", class: buttonClass$3(cancelButton), onClick: () => this.buttonClick(cancelButton) }), hAsync("span", { class: "action-sheet-button-inner" }, cancelButton.icon && (hAsync("ion-icon", { icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), mode === 'md' && hAsync("ion-ripple-effect", null)))))), hAsync("div", { tabindex: "0" })));
|
|
10261
|
+
} }, header, this.subHeader && hAsync("div", { class: "action-sheet-sub-title" }, this.subHeader))), buttons.map((b) => (hAsync("button", Object.assign({}, b.htmlAttributes, { type: "button", id: b.id, class: buttonClass$3(b), onClick: () => this.buttonClick(b), disabled: b.disabled }), hAsync("span", { class: "action-sheet-button-inner" }, b.icon && hAsync("ion-icon", { icon: b.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" }), b.text), mode === 'md' && hAsync("ion-ripple-effect", null))))), cancelButton && (hAsync("div", { class: "action-sheet-group action-sheet-group-cancel" }, hAsync("button", Object.assign({}, cancelButton.htmlAttributes, { type: "button", class: buttonClass$3(cancelButton), onClick: () => this.buttonClick(cancelButton), disabled: cancelButton.disabled }), hAsync("span", { class: "action-sheet-button-inner" }, cancelButton.icon && (hAsync("ion-icon", { icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), mode === 'md' && hAsync("ion-ripple-effect", null)))))), hAsync("div", { tabindex: "0" })));
|
|
10259
10262
|
}
|
|
10260
10263
|
get el() { return getElement(this); }
|
|
10261
10264
|
static get watchers() { return {
|
|
@@ -10297,7 +10300,7 @@ class ActionSheet {
|
|
|
10297
10300
|
}; }
|
|
10298
10301
|
}
|
|
10299
10302
|
const buttonClass$3 = (button) => {
|
|
10300
|
-
return Object.assign({ 'action-sheet-button': true, 'ion-activatable':
|
|
10303
|
+
return Object.assign({ 'action-sheet-button': true, 'ion-activatable': !button.disabled, 'ion-focusable': !button.disabled, [`action-sheet-${button.role}`]: button.role !== undefined }, getClassMap(button.cssClass));
|
|
10301
10304
|
};
|
|
10302
10305
|
|
|
10303
10306
|
const ENABLE_HTML_CONTENT_DEFAULT = false;
|
|
@@ -11170,21 +11173,10 @@ class Backdrop {
|
|
|
11170
11173
|
constructor(hostRef) {
|
|
11171
11174
|
registerInstance(this, hostRef);
|
|
11172
11175
|
this.ionBackdropTap = createEvent(this, "ionBackdropTap", 7);
|
|
11173
|
-
this.blocker = GESTURE_CONTROLLER.createBlocker({
|
|
11174
|
-
disableScroll: true,
|
|
11175
|
-
});
|
|
11176
11176
|
this.visible = true;
|
|
11177
11177
|
this.tappable = true;
|
|
11178
11178
|
this.stopPropagation = true;
|
|
11179
11179
|
}
|
|
11180
|
-
connectedCallback() {
|
|
11181
|
-
if (this.stopPropagation) {
|
|
11182
|
-
this.blocker.block();
|
|
11183
|
-
}
|
|
11184
|
-
}
|
|
11185
|
-
disconnectedCallback() {
|
|
11186
|
-
this.blocker.unblock();
|
|
11187
|
-
}
|
|
11188
11180
|
onMouseDown(ev) {
|
|
11189
11181
|
this.emitTap(ev);
|
|
11190
11182
|
}
|
|
@@ -11513,9 +11505,9 @@ class Breadcrumbs {
|
|
|
11513
11505
|
}; }
|
|
11514
11506
|
}
|
|
11515
11507
|
|
|
11516
|
-
const buttonIosCss = "/*!@:host*/.sc-ion-button-ios-h{--overflow:hidden;--ripple-color:currentColor;--border-width:initial;--border-color:initial;--border-style:initial;--color-activated:var(--color);--color-focused:var(--color);--color-hover:var(--color);--box-shadow:none;display:inline-block;width:auto;color:var(--color);font-family:var(--ion-font-family, inherit);text-align:center;text-decoration:none;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:top;vertical-align:-webkit-baseline-middle;-webkit-font-kerning:none;font-kerning:none}/*!@:host(.button-disabled)*/.button-disabled.sc-ion-button-ios-h{cursor:default;opacity:0.5;pointer-events:none}/*!@:host(.button-solid)*/.button-solid.sc-ion-button-ios-h{--background:var(--ion-color-primary, #3880ff);--color:var(--ion-color-primary-contrast, #fff)}/*!@:host(.button-outline)*/.button-outline.sc-ion-button-ios-h{--border-color:var(--ion-color-primary, #3880ff);--background:transparent;--color:var(--ion-color-primary, #3880ff)}/*!@:host(.button-clear)*/.button-clear.sc-ion-button-ios-h{--border-width:0;--background:transparent;--color:var(--ion-color-primary, #3880ff)}/*!@:host(.button-block)*/.button-block.sc-ion-button-ios-h{display:block}/*!@:host(.button-block) .button-native*/.button-block.sc-ion-button-ios-h .button-native.sc-ion-button-ios{margin-left:0;margin-right:0;width:100%;clear:both;contain:content}/*!@:host(.button-block) .button-native::after*/.button-block.sc-ion-button-ios-h .button-native.sc-ion-button-ios::after{clear:both}/*!@:host(.button-full)*/.button-full.sc-ion-button-ios-h{display:block}/*!@:host(.button-full) .button-native*/.button-full.sc-ion-button-ios-h .button-native.sc-ion-button-ios{margin-left:0;margin-right:0;width:100%;contain:content}/*!@:host(.button-full:not(.button-round)) .button-native*/.button-full.sc-ion-button-ios-h:not(.button-round) .button-native.sc-ion-button-ios{border-radius:0;border-right-width:0;border-left-width:0}/*!@.button-native*/.button-native.sc-ion-button-ios{border-radius:var(--border-radius);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;width:100%;height:100%;min-height:inherit;-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);outline:none;background:var(--background);line-height:1;-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);contain:layout style;cursor:pointer;opacity:var(--opacity);overflow:var(--overflow);z-index:0;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}/*!@.button-native::-moz-focus-inner*/.button-native.sc-ion-button-ios::-moz-focus-inner{border:0}/*!@.button-inner*/.button-inner.sc-ion-button-ios{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;z-index:1}/*!@::slotted([slot=start]),\n::slotted([slot=end])*/.sc-ion-button-ios-s>[slot=start],.sc-ion-button-ios-s>[slot=end]{-ms-flex-negative:0;flex-shrink:0}/*!@::slotted(ion-icon)*/.sc-ion-button-ios-s>ion-icon{font-size:1.35em;pointer-events:none}/*!@::slotted(ion-icon[slot=start])*/.sc-ion-button-ios-s>ion-icon[slot=start]{-webkit-margin-start:-0.3em;margin-inline-start:-0.3em;-webkit-margin-end:0.3em;margin-inline-end:0.3em;margin-top:0;margin-bottom:0}/*!@::slotted(ion-icon[slot=end])*/.sc-ion-button-ios-s>ion-icon[slot=end]{-webkit-margin-start:0.3em;margin-inline-start:0.3em;-webkit-margin-end:-0.2em;margin-inline-end:-0.2em;margin-top:0;margin-bottom:0}/*!@::slotted(ion-icon[slot=icon-only])*/.sc-ion-button-ios-s>ion-icon[slot=icon-only]{font-size:1.8em}/*!@ion-ripple-effect*/ion-ripple-effect.sc-ion-button-ios{color:var(--ripple-color)}/*!@.button-native::after*/.button-native.sc-ion-button-ios::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\"\";opacity:0}/*!@:host(.ion-focused)*/.ion-focused.sc-ion-button-ios-h{color:var(--color-focused)}/*!@:host(.ion-focused) .button-native::after*/.ion-focused.sc-ion-button-ios-h .button-native.sc-ion-button-ios::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}@media (any-hover: hover){/*!@:host(:hover)*/.sc-ion-button-ios-h:hover{color:var(--color-hover)}/*!@:host(:hover) .button-native::after*/.sc-ion-button-ios-h:hover .button-native.sc-ion-button-ios::after{background:var(--background-hover);opacity:var(--background-hover-opacity)}}/*!@:host(.ion-activated)*/.ion-activated.sc-ion-button-ios-h{color:var(--color-activated)}/*!@:host(.ion-activated) .button-native::after*/.ion-activated.sc-ion-button-ios-h .button-native.sc-ion-button-ios::after{background:var(--background-activated);opacity:var(--background-activated-opacity)}/*!@:host(.button-solid.ion-color) .button-native*/.button-solid.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios{background:var(--ion-color-base);color:var(--ion-color-contrast)}/*!@:host(.button-outline.ion-color) .button-native*/.button-outline.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios{border-color:var(--ion-color-base);background:transparent;color:var(--ion-color-base)}/*!@:host(.button-clear.ion-color) .button-native*/.button-clear.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios{background:transparent;color:var(--ion-color-base)}/*!@:host(.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native*/.in-toolbar.sc-ion-button-ios-h:not(.ion-color):not(.in-toolbar-color) .button-native.sc-ion-button-ios{color:var(--ion-toolbar-color, var(--color))}/*!@:host(.button-outline.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native*/.button-outline.in-toolbar.sc-ion-button-ios-h:not(.ion-color):not(.in-toolbar-color) .button-native.sc-ion-button-ios{border-color:var(--ion-toolbar-color, var(--color, var(--border-color)))}/*!@:host(.button-solid.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native*/.button-solid.in-toolbar.sc-ion-button-ios-h:not(.ion-color):not(.in-toolbar-color) .button-native.sc-ion-button-ios{background:var(--ion-toolbar-color, var(--background));color:var(--ion-toolbar-background, var(--color))}/*!@:host(.button-outline.ion-activated.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native*/.button-outline.ion-activated.in-toolbar.sc-ion-button-ios-h:not(.ion-color):not(.in-toolbar-color) .button-native.sc-ion-button-ios{background:var(--ion-toolbar-color, var(--color));color:var(--ion-toolbar-background, var(--background), var(--ion-color-primary-contrast, #fff))}/*!@:host*/.sc-ion-button-ios-h{--border-radius:14px;--padding-top:13px;--padding-bottom:13px;--padding-start:1em;--padding-end:1em;--transition:background-color, opacity 100ms linear;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;margin-top:4px;margin-bottom:4px;min-height:3.1em;font-size:min(1rem, 48px);font-weight:500;letter-spacing:0}/*!@:host(.button-solid)*/.button-solid.sc-ion-button-ios-h{--background-activated:var(--ion-color-primary-shade, #3171e0);--background-focused:var(--ion-color-primary-shade, #3171e0);--background-hover:var(--ion-color-primary-tint, #4c8dff);--background-activated-opacity:1;--background-focused-opacity:1;--background-hover-opacity:1}/*!@:host(.button-outline)*/.button-outline.sc-ion-button-ios-h{--border-radius:14px;--border-width:1px;--border-style:solid;--background-activated:var(--ion-color-primary, #3880ff);--background-focused:var(--ion-color-primary, #3880ff);--background-hover:transparent;--background-focused-opacity:.1;--color-activated:var(--ion-color-primary-contrast, #fff)}/*!@:host(.button-clear)*/.button-clear.sc-ion-button-ios-h{--background-activated:transparent;--background-activated-opacity:0;--background-focused:var(--ion-color-primary, #3880ff);--background-hover:transparent;--background-focused-opacity:.1;font-size:min(1.0625rem, 51px);font-weight:normal}/*!@:host(.in-buttons)*/.in-buttons.sc-ion-button-ios-h{font-size:clamp(17px, 1.0625rem, 21.08px);font-weight:400}/*!@:host(.button-large)*/.button-large.sc-ion-button-ios-h{--border-radius:16px;--padding-top:17px;--padding-start:1em;--padding-end:1em;--padding-bottom:17px;min-height:3.1em;font-size:min(1.25rem, 60px)}/*!@:host(.button-small)*/.button-small.sc-ion-button-ios-h{--border-radius:6px;--padding-top:4px;--padding-start:0.9em;--padding-end:0.9em;--padding-bottom:4px;min-height:2.1em;font-size:min(0.8125rem, 39px)}/*!@:host(.button-has-icon-only)*/.button-has-icon-only.sc-ion-button-ios-h{--padding-top:0;--padding-bottom:0}/*!@:host(.button-round)*/.button-round.sc-ion-button-ios-h{--border-radius:64px;--padding-top:0;--padding-start:26px;--padding-end:26px;--padding-bottom:0}/*!@:host(.button-strong)*/.button-strong.sc-ion-button-ios-h{font-weight:600}/*!@:host(.button-outline.ion-focused.ion-color) .button-native,\n:host(.button-clear.ion-focused.ion-color) .button-native*/.button-outline.ion-focused.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios,.button-clear.ion-focused.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios{color:var(--ion-color-base)}/*!@:host(.button-outline.ion-focused.ion-color) .button-native::after,\n:host(.button-clear.ion-focused.ion-color) .button-native::after*/.button-outline.ion-focused.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios::after,.button-clear.ion-focused.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios::after{background:var(--ion-color-base)}/*!@:host(.button-solid.ion-color.ion-focused) .button-native::after*/.button-solid.ion-color.ion-focused.sc-ion-button-ios-h .button-native.sc-ion-button-ios::after{background:var(--ion-color-shade)}@media (any-hover: hover){/*!@:host(.button-clear:not(.ion-activated):hover),\n :host(.button-outline:not(.ion-activated):hover)*/.button-clear.sc-ion-button-ios-h:not(.ion-activated):hover,.button-outline.sc-ion-button-ios-h:not(.ion-activated):hover{opacity:0.6}/*!@:host(.button-clear.ion-color:hover) .button-native,\n :host(.button-outline.ion-color:hover) .button-native*/.button-clear.ion-color.sc-ion-button-ios-h:hover .button-native.sc-ion-button-ios,.button-outline.ion-color.sc-ion-button-ios-h:hover .button-native.sc-ion-button-ios{color:var(--ion-color-base)}/*!@:host(.button-clear.ion-color:hover) .button-native::after,\n :host(.button-outline.ion-color:hover) .button-native::after*/.button-clear.ion-color.sc-ion-button-ios-h:hover .button-native.sc-ion-button-ios::after,.button-outline.ion-color.sc-ion-button-ios-h:hover .button-native.sc-ion-button-ios::after{background:transparent}/*!@:host(.button-solid.ion-color:hover) .button-native::after*/.button-solid.ion-color.sc-ion-button-ios-h:hover .button-native.sc-ion-button-ios::after{background:var(--ion-color-tint)}/*!@:host(:hover.button-solid.in-toolbar:not(.ion-color):not(.in-toolbar-color):not(.ion-activated)) .button-native::after*/.sc-ion-button-ios-h:hover.button-solid.in-toolbar:not(.ion-color):not(.in-toolbar-color):not(.ion-activated) .button-native.sc-ion-button-ios::after{background:#fff;opacity:0.1}}/*!@:host(.button-clear.ion-activated)*/.button-clear.ion-activated.sc-ion-button-ios-h{opacity:0.4}/*!@:host(.button-outline.ion-activated.ion-color) .button-native*/.button-outline.ion-activated.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios{color:var(--ion-color-contrast)}/*!@:host(.button-outline.ion-activated.ion-color) .button-native::after*/.button-outline.ion-activated.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios::after{background:var(--ion-color-base)}/*!@:host(.button-solid.ion-color.ion-activated) .button-native::after*/.button-solid.ion-color.ion-activated.sc-ion-button-ios-h .button-native.sc-ion-button-ios::after{background:var(--ion-color-shade)}";
|
|
11508
|
+
const buttonIosCss = "/*!@:host*/.sc-ion-button-ios-h{--overflow:hidden;--ripple-color:currentColor;--border-width:initial;--border-color:initial;--border-style:initial;--color-activated:var(--color);--color-focused:var(--color);--color-hover:var(--color);--box-shadow:none;display:inline-block;width:auto;color:var(--color);font-family:var(--ion-font-family, inherit);text-align:center;text-decoration:none;white-space:normal;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:top;vertical-align:-webkit-baseline-middle;-webkit-font-kerning:none;font-kerning:none}/*!@:host(.button-disabled)*/.button-disabled.sc-ion-button-ios-h{cursor:default;opacity:0.5;pointer-events:none}/*!@:host(.button-solid)*/.button-solid.sc-ion-button-ios-h{--background:var(--ion-color-primary, #3880ff);--color:var(--ion-color-primary-contrast, #fff)}/*!@:host(.button-outline)*/.button-outline.sc-ion-button-ios-h{--border-color:var(--ion-color-primary, #3880ff);--background:transparent;--color:var(--ion-color-primary, #3880ff)}/*!@:host(.button-clear)*/.button-clear.sc-ion-button-ios-h{--border-width:0;--background:transparent;--color:var(--ion-color-primary, #3880ff)}/*!@:host(.button-block)*/.button-block.sc-ion-button-ios-h{display:block}/*!@:host(.button-block) .button-native*/.button-block.sc-ion-button-ios-h .button-native.sc-ion-button-ios{margin-left:0;margin-right:0;width:100%;clear:both;contain:content}/*!@:host(.button-block) .button-native::after*/.button-block.sc-ion-button-ios-h .button-native.sc-ion-button-ios::after{clear:both}/*!@:host(.button-full)*/.button-full.sc-ion-button-ios-h{display:block}/*!@:host(.button-full) .button-native*/.button-full.sc-ion-button-ios-h .button-native.sc-ion-button-ios{margin-left:0;margin-right:0;width:100%;contain:content}/*!@:host(.button-full:not(.button-round)) .button-native*/.button-full.sc-ion-button-ios-h:not(.button-round) .button-native.sc-ion-button-ios{border-radius:0;border-right-width:0;border-left-width:0}/*!@.button-native*/.button-native.sc-ion-button-ios{border-radius:var(--border-radius);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;width:100%;height:100%;min-height:inherit;-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);outline:none;background:var(--background);line-height:1;-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);contain:layout style;cursor:pointer;opacity:var(--opacity);overflow:var(--overflow);z-index:0;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}/*!@.button-native::-moz-focus-inner*/.button-native.sc-ion-button-ios::-moz-focus-inner{border:0}/*!@.button-inner*/.button-inner.sc-ion-button-ios{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;z-index:1}/*!@::slotted([slot=start]),\n::slotted([slot=end])*/.sc-ion-button-ios-s>[slot=start],.sc-ion-button-ios-s>[slot=end]{-ms-flex-negative:0;flex-shrink:0}/*!@::slotted(ion-icon)*/.sc-ion-button-ios-s>ion-icon{font-size:1.35em;pointer-events:none}/*!@::slotted(ion-icon[slot=start])*/.sc-ion-button-ios-s>ion-icon[slot=start]{-webkit-margin-start:-0.3em;margin-inline-start:-0.3em;-webkit-margin-end:0.3em;margin-inline-end:0.3em;margin-top:0;margin-bottom:0}/*!@::slotted(ion-icon[slot=end])*/.sc-ion-button-ios-s>ion-icon[slot=end]{-webkit-margin-start:0.3em;margin-inline-start:0.3em;-webkit-margin-end:-0.2em;margin-inline-end:-0.2em;margin-top:0;margin-bottom:0}/*!@::slotted(ion-icon[slot=icon-only])*/.sc-ion-button-ios-s>ion-icon[slot=icon-only]{font-size:1.8em}/*!@ion-ripple-effect*/ion-ripple-effect.sc-ion-button-ios{color:var(--ripple-color)}/*!@.button-native::after*/.button-native.sc-ion-button-ios::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\"\";opacity:0}/*!@:host(.ion-focused)*/.ion-focused.sc-ion-button-ios-h{color:var(--color-focused)}/*!@:host(.ion-focused) .button-native::after*/.ion-focused.sc-ion-button-ios-h .button-native.sc-ion-button-ios::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}@media (any-hover: hover){/*!@:host(:hover)*/.sc-ion-button-ios-h:hover{color:var(--color-hover)}/*!@:host(:hover) .button-native::after*/.sc-ion-button-ios-h:hover .button-native.sc-ion-button-ios::after{background:var(--background-hover);opacity:var(--background-hover-opacity)}}/*!@:host(.ion-activated)*/.ion-activated.sc-ion-button-ios-h{color:var(--color-activated)}/*!@:host(.ion-activated) .button-native::after*/.ion-activated.sc-ion-button-ios-h .button-native.sc-ion-button-ios::after{background:var(--background-activated);opacity:var(--background-activated-opacity)}/*!@:host(.button-solid.ion-color) .button-native*/.button-solid.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios{background:var(--ion-color-base);color:var(--ion-color-contrast)}/*!@:host(.button-outline.ion-color) .button-native*/.button-outline.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios{border-color:var(--ion-color-base);background:transparent;color:var(--ion-color-base)}/*!@:host(.button-clear.ion-color) .button-native*/.button-clear.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios{background:transparent;color:var(--ion-color-base)}/*!@:host(.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native*/.in-toolbar.sc-ion-button-ios-h:not(.ion-color):not(.in-toolbar-color) .button-native.sc-ion-button-ios{color:var(--ion-toolbar-color, var(--color))}/*!@:host(.button-outline.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native*/.button-outline.in-toolbar.sc-ion-button-ios-h:not(.ion-color):not(.in-toolbar-color) .button-native.sc-ion-button-ios{border-color:var(--ion-toolbar-color, var(--color, var(--border-color)))}/*!@:host(.button-solid.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native*/.button-solid.in-toolbar.sc-ion-button-ios-h:not(.ion-color):not(.in-toolbar-color) .button-native.sc-ion-button-ios{background:var(--ion-toolbar-color, var(--background));color:var(--ion-toolbar-background, var(--color))}/*!@:host(.button-outline.ion-activated.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native*/.button-outline.ion-activated.in-toolbar.sc-ion-button-ios-h:not(.ion-color):not(.in-toolbar-color) .button-native.sc-ion-button-ios{background:var(--ion-toolbar-color, var(--color));color:var(--ion-toolbar-background, var(--background), var(--ion-color-primary-contrast, #fff))}/*!@:host*/.sc-ion-button-ios-h{--border-radius:14px;--padding-top:13px;--padding-bottom:13px;--padding-start:1em;--padding-end:1em;--transition:background-color, opacity 100ms linear;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;margin-top:4px;margin-bottom:4px;min-height:3.1em;font-size:min(1rem, 48px);font-weight:500;letter-spacing:0}/*!@:host(.button-solid)*/.button-solid.sc-ion-button-ios-h{--background-activated:var(--ion-color-primary-shade, #3171e0);--background-focused:var(--ion-color-primary-shade, #3171e0);--background-hover:var(--ion-color-primary-tint, #4c8dff);--background-activated-opacity:1;--background-focused-opacity:1;--background-hover-opacity:1}/*!@:host(.button-outline)*/.button-outline.sc-ion-button-ios-h{--border-radius:14px;--border-width:1px;--border-style:solid;--background-activated:var(--ion-color-primary, #3880ff);--background-focused:var(--ion-color-primary, #3880ff);--background-hover:transparent;--background-focused-opacity:.1;--color-activated:var(--ion-color-primary-contrast, #fff)}/*!@:host(.button-clear)*/.button-clear.sc-ion-button-ios-h{--background-activated:transparent;--background-activated-opacity:0;--background-focused:var(--ion-color-primary, #3880ff);--background-hover:transparent;--background-focused-opacity:.1;font-size:min(1.0625rem, 51px);font-weight:normal}/*!@:host(.in-buttons)*/.in-buttons.sc-ion-button-ios-h{font-size:clamp(17px, 1.0625rem, 21.08px);font-weight:400}/*!@:host(.button-large)*/.button-large.sc-ion-button-ios-h{--border-radius:16px;--padding-top:17px;--padding-start:1em;--padding-end:1em;--padding-bottom:17px;min-height:3.1em;font-size:min(1.25rem, 60px)}/*!@:host(.button-small)*/.button-small.sc-ion-button-ios-h{--border-radius:6px;--padding-top:4px;--padding-start:0.9em;--padding-end:0.9em;--padding-bottom:4px;min-height:2.1em;font-size:min(0.8125rem, 39px)}/*!@:host(.button-has-icon-only)*/.button-has-icon-only.sc-ion-button-ios-h{--padding-top:0;--padding-bottom:0}/*!@:host(.button-round)*/.button-round.sc-ion-button-ios-h{--border-radius:64px;--padding-top:0;--padding-start:26px;--padding-end:26px;--padding-bottom:0}/*!@:host(.button-strong)*/.button-strong.sc-ion-button-ios-h{font-weight:600}/*!@:host(.button-outline.ion-focused.ion-color) .button-native,\n:host(.button-clear.ion-focused.ion-color) .button-native*/.button-outline.ion-focused.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios,.button-clear.ion-focused.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios{color:var(--ion-color-base)}/*!@:host(.button-outline.ion-focused.ion-color) .button-native::after,\n:host(.button-clear.ion-focused.ion-color) .button-native::after*/.button-outline.ion-focused.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios::after,.button-clear.ion-focused.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios::after{background:var(--ion-color-base)}/*!@:host(.button-solid.ion-color.ion-focused) .button-native::after*/.button-solid.ion-color.ion-focused.sc-ion-button-ios-h .button-native.sc-ion-button-ios::after{background:var(--ion-color-shade)}@media (any-hover: hover){/*!@:host(.button-clear:not(.ion-activated):hover),\n :host(.button-outline:not(.ion-activated):hover)*/.button-clear.sc-ion-button-ios-h:not(.ion-activated):hover,.button-outline.sc-ion-button-ios-h:not(.ion-activated):hover{opacity:0.6}/*!@:host(.button-clear.ion-color:hover) .button-native,\n :host(.button-outline.ion-color:hover) .button-native*/.button-clear.ion-color.sc-ion-button-ios-h:hover .button-native.sc-ion-button-ios,.button-outline.ion-color.sc-ion-button-ios-h:hover .button-native.sc-ion-button-ios{color:var(--ion-color-base)}/*!@:host(.button-clear.ion-color:hover) .button-native::after,\n :host(.button-outline.ion-color:hover) .button-native::after*/.button-clear.ion-color.sc-ion-button-ios-h:hover .button-native.sc-ion-button-ios::after,.button-outline.ion-color.sc-ion-button-ios-h:hover .button-native.sc-ion-button-ios::after{background:transparent}/*!@:host(.button-solid.ion-color:hover) .button-native::after*/.button-solid.ion-color.sc-ion-button-ios-h:hover .button-native.sc-ion-button-ios::after{background:var(--ion-color-tint)}/*!@:host(:hover.button-solid.in-toolbar:not(.ion-color):not(.in-toolbar-color):not(.ion-activated)) .button-native::after*/.sc-ion-button-ios-h:hover.button-solid.in-toolbar:not(.ion-color):not(.in-toolbar-color):not(.ion-activated) .button-native.sc-ion-button-ios::after{background:#fff;opacity:0.1}}/*!@:host(.button-clear.ion-activated)*/.button-clear.ion-activated.sc-ion-button-ios-h{opacity:0.4}/*!@:host(.button-outline.ion-activated.ion-color) .button-native*/.button-outline.ion-activated.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios{color:var(--ion-color-contrast)}/*!@:host(.button-outline.ion-activated.ion-color) .button-native::after*/.button-outline.ion-activated.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios::after{background:var(--ion-color-base)}/*!@:host(.button-solid.ion-color.ion-activated) .button-native::after*/.button-solid.ion-color.ion-activated.sc-ion-button-ios-h .button-native.sc-ion-button-ios::after{background:var(--ion-color-shade)}";
|
|
11517
11509
|
|
|
11518
|
-
const buttonMdCss = "/*!@:host*/.sc-ion-button-md-h{--overflow:hidden;--ripple-color:currentColor;--border-width:initial;--border-color:initial;--border-style:initial;--color-activated:var(--color);--color-focused:var(--color);--color-hover:var(--color);--box-shadow:none;display:inline-block;width:auto;color:var(--color);font-family:var(--ion-font-family, inherit);text-align:center;text-decoration:none;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:top;vertical-align:-webkit-baseline-middle;-webkit-font-kerning:none;font-kerning:none}/*!@:host(.button-disabled)*/.button-disabled.sc-ion-button-md-h{cursor:default;opacity:0.5;pointer-events:none}/*!@:host(.button-solid)*/.button-solid.sc-ion-button-md-h{--background:var(--ion-color-primary, #3880ff);--color:var(--ion-color-primary-contrast, #fff)}/*!@:host(.button-outline)*/.button-outline.sc-ion-button-md-h{--border-color:var(--ion-color-primary, #3880ff);--background:transparent;--color:var(--ion-color-primary, #3880ff)}/*!@:host(.button-clear)*/.button-clear.sc-ion-button-md-h{--border-width:0;--background:transparent;--color:var(--ion-color-primary, #3880ff)}/*!@:host(.button-block)*/.button-block.sc-ion-button-md-h{display:block}/*!@:host(.button-block) .button-native*/.button-block.sc-ion-button-md-h .button-native.sc-ion-button-md{margin-left:0;margin-right:0;width:100%;clear:both;contain:content}/*!@:host(.button-block) .button-native::after*/.button-block.sc-ion-button-md-h .button-native.sc-ion-button-md::after{clear:both}/*!@:host(.button-full)*/.button-full.sc-ion-button-md-h{display:block}/*!@:host(.button-full) .button-native*/.button-full.sc-ion-button-md-h .button-native.sc-ion-button-md{margin-left:0;margin-right:0;width:100%;contain:content}/*!@:host(.button-full:not(.button-round)) .button-native*/.button-full.sc-ion-button-md-h:not(.button-round) .button-native.sc-ion-button-md{border-radius:0;border-right-width:0;border-left-width:0}/*!@.button-native*/.button-native.sc-ion-button-md{border-radius:var(--border-radius);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;width:100%;height:100%;min-height:inherit;-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);outline:none;background:var(--background);line-height:1;-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);contain:layout style;cursor:pointer;opacity:var(--opacity);overflow:var(--overflow);z-index:0;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}/*!@.button-native::-moz-focus-inner*/.button-native.sc-ion-button-md::-moz-focus-inner{border:0}/*!@.button-inner*/.button-inner.sc-ion-button-md{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;z-index:1}/*!@::slotted([slot=start]),\n::slotted([slot=end])*/.sc-ion-button-md-s>[slot=start],.sc-ion-button-md-s>[slot=end]{-ms-flex-negative:0;flex-shrink:0}/*!@::slotted(ion-icon)*/.sc-ion-button-md-s>ion-icon{font-size:1.35em;pointer-events:none}/*!@::slotted(ion-icon[slot=start])*/.sc-ion-button-md-s>ion-icon[slot=start]{-webkit-margin-start:-0.3em;margin-inline-start:-0.3em;-webkit-margin-end:0.3em;margin-inline-end:0.3em;margin-top:0;margin-bottom:0}/*!@::slotted(ion-icon[slot=end])*/.sc-ion-button-md-s>ion-icon[slot=end]{-webkit-margin-start:0.3em;margin-inline-start:0.3em;-webkit-margin-end:-0.2em;margin-inline-end:-0.2em;margin-top:0;margin-bottom:0}/*!@::slotted(ion-icon[slot=icon-only])*/.sc-ion-button-md-s>ion-icon[slot=icon-only]{font-size:1.8em}/*!@ion-ripple-effect*/ion-ripple-effect.sc-ion-button-md{color:var(--ripple-color)}/*!@.button-native::after*/.button-native.sc-ion-button-md::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\"\";opacity:0}/*!@:host(.ion-focused)*/.ion-focused.sc-ion-button-md-h{color:var(--color-focused)}/*!@:host(.ion-focused) .button-native::after*/.ion-focused.sc-ion-button-md-h .button-native.sc-ion-button-md::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}@media (any-hover: hover){/*!@:host(:hover)*/.sc-ion-button-md-h:hover{color:var(--color-hover)}/*!@:host(:hover) .button-native::after*/.sc-ion-button-md-h:hover .button-native.sc-ion-button-md::after{background:var(--background-hover);opacity:var(--background-hover-opacity)}}/*!@:host(.ion-activated)*/.ion-activated.sc-ion-button-md-h{color:var(--color-activated)}/*!@:host(.ion-activated) .button-native::after*/.ion-activated.sc-ion-button-md-h .button-native.sc-ion-button-md::after{background:var(--background-activated);opacity:var(--background-activated-opacity)}/*!@:host(.button-solid.ion-color) .button-native*/.button-solid.ion-color.sc-ion-button-md-h .button-native.sc-ion-button-md{background:var(--ion-color-base);color:var(--ion-color-contrast)}/*!@:host(.button-outline.ion-color) .button-native*/.button-outline.ion-color.sc-ion-button-md-h .button-native.sc-ion-button-md{border-color:var(--ion-color-base);background:transparent;color:var(--ion-color-base)}/*!@:host(.button-clear.ion-color) .button-native*/.button-clear.ion-color.sc-ion-button-md-h .button-native.sc-ion-button-md{background:transparent;color:var(--ion-color-base)}/*!@:host(.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native*/.in-toolbar.sc-ion-button-md-h:not(.ion-color):not(.in-toolbar-color) .button-native.sc-ion-button-md{color:var(--ion-toolbar-color, var(--color))}/*!@:host(.button-outline.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native*/.button-outline.in-toolbar.sc-ion-button-md-h:not(.ion-color):not(.in-toolbar-color) .button-native.sc-ion-button-md{border-color:var(--ion-toolbar-color, var(--color, var(--border-color)))}/*!@:host(.button-solid.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native*/.button-solid.in-toolbar.sc-ion-button-md-h:not(.ion-color):not(.in-toolbar-color) .button-native.sc-ion-button-md{background:var(--ion-toolbar-color, var(--background));color:var(--ion-toolbar-background, var(--color))}/*!@:host(.button-outline.ion-activated.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native*/.button-outline.ion-activated.in-toolbar.sc-ion-button-md-h:not(.ion-color):not(.in-toolbar-color) .button-native.sc-ion-button-md{background:var(--ion-toolbar-color, var(--color));color:var(--ion-toolbar-background, var(--background), var(--ion-color-primary-contrast, #fff))}/*!@:host*/.sc-ion-button-md-h{--border-radius:4px;--padding-top:8px;--padding-bottom:8px;--padding-start:1.1em;--padding-end:1.1em;--transition:box-shadow 280ms cubic-bezier(.4, 0, .2, 1),\n background-color 15ms linear,\n color 15ms linear;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;margin-top:4px;margin-bottom:4px;min-height:36px;font-size:0.875rem;font-weight:500;letter-spacing:0.06em;text-transform:uppercase}/*!@:host(.button-solid)*/.button-solid.sc-ion-button-md-h{--background-activated:transparent;--background-hover:var(--ion-color-primary-contrast, #fff);--background-focused:var(--ion-color-primary-contrast, #fff);--background-activated-opacity:0;--background-focused-opacity:.24;--background-hover-opacity:.08;--box-shadow:0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12)}/*!@:host(.button-solid.ion-activated)*/.button-solid.ion-activated.sc-ion-button-md-h{--box-shadow:0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12)}/*!@:host(.button-outline)*/.button-outline.sc-ion-button-md-h{--border-width:2px;--border-style:solid;--box-shadow:none;--background-activated:transparent;--background-focused:var(--ion-color-primary, #3880ff);--background-hover:var(--ion-color-primary, #3880ff);--background-activated-opacity:0;--background-focused-opacity:.12;--background-hover-opacity:.04}/*!@:host(.button-outline.ion-activated.ion-color) .button-native*/.button-outline.ion-activated.ion-color.sc-ion-button-md-h .button-native.sc-ion-button-md{background:transparent}/*!@:host(.button-clear)*/.button-clear.sc-ion-button-md-h{--background-activated:transparent;--background-focused:var(--ion-color-primary, #3880ff);--background-hover:var(--ion-color-primary, #3880ff);--background-activated-opacity:0;--background-focused-opacity:.12;--background-hover-opacity:.04}/*!@:host(.button-round)*/.button-round.sc-ion-button-md-h{--border-radius:64px;--padding-top:0;--padding-start:26px;--padding-end:26px;--padding-bottom:0}/*!@:host(.button-large)*/.button-large.sc-ion-button-md-h{--padding-top:14px;--padding-start:1em;--padding-end:1em;--padding-bottom:14px;min-height:2.8em;font-size:1.25rem}/*!@:host(.button-small)*/.button-small.sc-ion-button-md-h{--padding-top:4px;--padding-start:0.9em;--padding-end:0.9em;--padding-bottom:4px;min-height:2.1em;font-size:0.8125rem}/*!@:host(.button-has-icon-only)*/.button-has-icon-only.sc-ion-button-md-h{--padding-top:0;--padding-bottom:0}/*!@:host(.button-strong)*/.button-strong.sc-ion-button-md-h{font-weight:bold}/*!@::slotted(ion-icon[slot=icon-only])*/.sc-ion-button-md-s>ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}/*!@:host(.button-solid.ion-color.ion-focused) .button-native::after*/.button-solid.ion-color.ion-focused.sc-ion-button-md-h .button-native.sc-ion-button-md::after{background:var(--ion-color-contrast)}/*!@:host(.button-clear.ion-color.ion-focused) .button-native::after,\n:host(.button-outline.ion-color.ion-focused) .button-native::after*/.button-clear.ion-color.ion-focused.sc-ion-button-md-h .button-native.sc-ion-button-md::after,.button-outline.ion-color.ion-focused.sc-ion-button-md-h .button-native.sc-ion-button-md::after{background:var(--ion-color-base)}@media (any-hover: hover){/*!@:host(.button-solid.ion-color:hover) .button-native::after*/.button-solid.ion-color.sc-ion-button-md-h:hover .button-native.sc-ion-button-md::after{background:var(--ion-color-contrast)}/*!@:host(.button-clear.ion-color:hover) .button-native::after,\n :host(.button-outline.ion-color:hover) .button-native::after*/.button-clear.ion-color.sc-ion-button-md-h:hover .button-native.sc-ion-button-md::after,.button-outline.ion-color.sc-ion-button-md-h:hover .button-native.sc-ion-button-md::after{background:var(--ion-color-base)}}";
|
|
11510
|
+
const buttonMdCss = "/*!@:host*/.sc-ion-button-md-h{--overflow:hidden;--ripple-color:currentColor;--border-width:initial;--border-color:initial;--border-style:initial;--color-activated:var(--color);--color-focused:var(--color);--color-hover:var(--color);--box-shadow:none;display:inline-block;width:auto;color:var(--color);font-family:var(--ion-font-family, inherit);text-align:center;text-decoration:none;white-space:normal;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:top;vertical-align:-webkit-baseline-middle;-webkit-font-kerning:none;font-kerning:none}/*!@:host(.button-disabled)*/.button-disabled.sc-ion-button-md-h{cursor:default;opacity:0.5;pointer-events:none}/*!@:host(.button-solid)*/.button-solid.sc-ion-button-md-h{--background:var(--ion-color-primary, #3880ff);--color:var(--ion-color-primary-contrast, #fff)}/*!@:host(.button-outline)*/.button-outline.sc-ion-button-md-h{--border-color:var(--ion-color-primary, #3880ff);--background:transparent;--color:var(--ion-color-primary, #3880ff)}/*!@:host(.button-clear)*/.button-clear.sc-ion-button-md-h{--border-width:0;--background:transparent;--color:var(--ion-color-primary, #3880ff)}/*!@:host(.button-block)*/.button-block.sc-ion-button-md-h{display:block}/*!@:host(.button-block) .button-native*/.button-block.sc-ion-button-md-h .button-native.sc-ion-button-md{margin-left:0;margin-right:0;width:100%;clear:both;contain:content}/*!@:host(.button-block) .button-native::after*/.button-block.sc-ion-button-md-h .button-native.sc-ion-button-md::after{clear:both}/*!@:host(.button-full)*/.button-full.sc-ion-button-md-h{display:block}/*!@:host(.button-full) .button-native*/.button-full.sc-ion-button-md-h .button-native.sc-ion-button-md{margin-left:0;margin-right:0;width:100%;contain:content}/*!@:host(.button-full:not(.button-round)) .button-native*/.button-full.sc-ion-button-md-h:not(.button-round) .button-native.sc-ion-button-md{border-radius:0;border-right-width:0;border-left-width:0}/*!@.button-native*/.button-native.sc-ion-button-md{border-radius:var(--border-radius);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;width:100%;height:100%;min-height:inherit;-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);outline:none;background:var(--background);line-height:1;-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);contain:layout style;cursor:pointer;opacity:var(--opacity);overflow:var(--overflow);z-index:0;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}/*!@.button-native::-moz-focus-inner*/.button-native.sc-ion-button-md::-moz-focus-inner{border:0}/*!@.button-inner*/.button-inner.sc-ion-button-md{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;z-index:1}/*!@::slotted([slot=start]),\n::slotted([slot=end])*/.sc-ion-button-md-s>[slot=start],.sc-ion-button-md-s>[slot=end]{-ms-flex-negative:0;flex-shrink:0}/*!@::slotted(ion-icon)*/.sc-ion-button-md-s>ion-icon{font-size:1.35em;pointer-events:none}/*!@::slotted(ion-icon[slot=start])*/.sc-ion-button-md-s>ion-icon[slot=start]{-webkit-margin-start:-0.3em;margin-inline-start:-0.3em;-webkit-margin-end:0.3em;margin-inline-end:0.3em;margin-top:0;margin-bottom:0}/*!@::slotted(ion-icon[slot=end])*/.sc-ion-button-md-s>ion-icon[slot=end]{-webkit-margin-start:0.3em;margin-inline-start:0.3em;-webkit-margin-end:-0.2em;margin-inline-end:-0.2em;margin-top:0;margin-bottom:0}/*!@::slotted(ion-icon[slot=icon-only])*/.sc-ion-button-md-s>ion-icon[slot=icon-only]{font-size:1.8em}/*!@ion-ripple-effect*/ion-ripple-effect.sc-ion-button-md{color:var(--ripple-color)}/*!@.button-native::after*/.button-native.sc-ion-button-md::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\"\";opacity:0}/*!@:host(.ion-focused)*/.ion-focused.sc-ion-button-md-h{color:var(--color-focused)}/*!@:host(.ion-focused) .button-native::after*/.ion-focused.sc-ion-button-md-h .button-native.sc-ion-button-md::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}@media (any-hover: hover){/*!@:host(:hover)*/.sc-ion-button-md-h:hover{color:var(--color-hover)}/*!@:host(:hover) .button-native::after*/.sc-ion-button-md-h:hover .button-native.sc-ion-button-md::after{background:var(--background-hover);opacity:var(--background-hover-opacity)}}/*!@:host(.ion-activated)*/.ion-activated.sc-ion-button-md-h{color:var(--color-activated)}/*!@:host(.ion-activated) .button-native::after*/.ion-activated.sc-ion-button-md-h .button-native.sc-ion-button-md::after{background:var(--background-activated);opacity:var(--background-activated-opacity)}/*!@:host(.button-solid.ion-color) .button-native*/.button-solid.ion-color.sc-ion-button-md-h .button-native.sc-ion-button-md{background:var(--ion-color-base);color:var(--ion-color-contrast)}/*!@:host(.button-outline.ion-color) .button-native*/.button-outline.ion-color.sc-ion-button-md-h .button-native.sc-ion-button-md{border-color:var(--ion-color-base);background:transparent;color:var(--ion-color-base)}/*!@:host(.button-clear.ion-color) .button-native*/.button-clear.ion-color.sc-ion-button-md-h .button-native.sc-ion-button-md{background:transparent;color:var(--ion-color-base)}/*!@:host(.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native*/.in-toolbar.sc-ion-button-md-h:not(.ion-color):not(.in-toolbar-color) .button-native.sc-ion-button-md{color:var(--ion-toolbar-color, var(--color))}/*!@:host(.button-outline.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native*/.button-outline.in-toolbar.sc-ion-button-md-h:not(.ion-color):not(.in-toolbar-color) .button-native.sc-ion-button-md{border-color:var(--ion-toolbar-color, var(--color, var(--border-color)))}/*!@:host(.button-solid.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native*/.button-solid.in-toolbar.sc-ion-button-md-h:not(.ion-color):not(.in-toolbar-color) .button-native.sc-ion-button-md{background:var(--ion-toolbar-color, var(--background));color:var(--ion-toolbar-background, var(--color))}/*!@:host(.button-outline.ion-activated.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native*/.button-outline.ion-activated.in-toolbar.sc-ion-button-md-h:not(.ion-color):not(.in-toolbar-color) .button-native.sc-ion-button-md{background:var(--ion-toolbar-color, var(--color));color:var(--ion-toolbar-background, var(--background), var(--ion-color-primary-contrast, #fff))}/*!@:host*/.sc-ion-button-md-h{--border-radius:4px;--padding-top:8px;--padding-bottom:8px;--padding-start:1.1em;--padding-end:1.1em;--transition:box-shadow 280ms cubic-bezier(.4, 0, .2, 1),\n background-color 15ms linear,\n color 15ms linear;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;margin-top:4px;margin-bottom:4px;min-height:36px;font-size:0.875rem;font-weight:500;letter-spacing:0.06em;text-transform:uppercase}/*!@:host(.button-solid)*/.button-solid.sc-ion-button-md-h{--background-activated:transparent;--background-hover:var(--ion-color-primary-contrast, #fff);--background-focused:var(--ion-color-primary-contrast, #fff);--background-activated-opacity:0;--background-focused-opacity:.24;--background-hover-opacity:.08;--box-shadow:0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12)}/*!@:host(.button-solid.ion-activated)*/.button-solid.ion-activated.sc-ion-button-md-h{--box-shadow:0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12)}/*!@:host(.button-outline)*/.button-outline.sc-ion-button-md-h{--border-width:2px;--border-style:solid;--box-shadow:none;--background-activated:transparent;--background-focused:var(--ion-color-primary, #3880ff);--background-hover:var(--ion-color-primary, #3880ff);--background-activated-opacity:0;--background-focused-opacity:.12;--background-hover-opacity:.04}/*!@:host(.button-outline.ion-activated.ion-color) .button-native*/.button-outline.ion-activated.ion-color.sc-ion-button-md-h .button-native.sc-ion-button-md{background:transparent}/*!@:host(.button-clear)*/.button-clear.sc-ion-button-md-h{--background-activated:transparent;--background-focused:var(--ion-color-primary, #3880ff);--background-hover:var(--ion-color-primary, #3880ff);--background-activated-opacity:0;--background-focused-opacity:.12;--background-hover-opacity:.04}/*!@:host(.button-round)*/.button-round.sc-ion-button-md-h{--border-radius:64px;--padding-top:0;--padding-start:26px;--padding-end:26px;--padding-bottom:0}/*!@:host(.button-large)*/.button-large.sc-ion-button-md-h{--padding-top:14px;--padding-start:1em;--padding-end:1em;--padding-bottom:14px;min-height:2.8em;font-size:1.25rem}/*!@:host(.button-small)*/.button-small.sc-ion-button-md-h{--padding-top:4px;--padding-start:0.9em;--padding-end:0.9em;--padding-bottom:4px;min-height:2.1em;font-size:0.8125rem}/*!@:host(.button-has-icon-only)*/.button-has-icon-only.sc-ion-button-md-h{--padding-top:0;--padding-bottom:0}/*!@:host(.button-strong)*/.button-strong.sc-ion-button-md-h{font-weight:bold}/*!@::slotted(ion-icon[slot=icon-only])*/.sc-ion-button-md-s>ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}/*!@:host(.button-solid.ion-color.ion-focused) .button-native::after*/.button-solid.ion-color.ion-focused.sc-ion-button-md-h .button-native.sc-ion-button-md::after{background:var(--ion-color-contrast)}/*!@:host(.button-clear.ion-color.ion-focused) .button-native::after,\n:host(.button-outline.ion-color.ion-focused) .button-native::after*/.button-clear.ion-color.ion-focused.sc-ion-button-md-h .button-native.sc-ion-button-md::after,.button-outline.ion-color.ion-focused.sc-ion-button-md-h .button-native.sc-ion-button-md::after{background:var(--ion-color-base)}@media (any-hover: hover){/*!@:host(.button-solid.ion-color:hover) .button-native::after*/.button-solid.ion-color.sc-ion-button-md-h:hover .button-native.sc-ion-button-md::after{background:var(--ion-color-contrast)}/*!@:host(.button-clear.ion-color:hover) .button-native::after,\n :host(.button-outline.ion-color:hover) .button-native::after*/.button-clear.ion-color.sc-ion-button-md-h:hover .button-native.sc-ion-button-md::after,.button-outline.ion-color.sc-ion-button-md-h:hover .button-native.sc-ion-button-md::after{background:var(--ion-color-base)}}";
|
|
11519
11511
|
|
|
11520
11512
|
/**
|
|
11521
11513
|
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
@@ -12675,7 +12667,7 @@ const isRTL$1 = (hostEl) => {
|
|
|
12675
12667
|
return (document === null || document === void 0 ? void 0 : document.dir.toLowerCase()) === 'rtl';
|
|
12676
12668
|
};
|
|
12677
12669
|
|
|
12678
|
-
const contentCss = "/*!@:host*/.sc-ion-content-h{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;-ms-flex:1;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}/*!@:host(.ion-color) .inner-scroll*/.ion-color.sc-ion-content-h .inner-scroll.sc-ion-content{background:var(--ion-color-base);color:var(--ion-color-contrast)}
|
|
12670
|
+
const contentCss = "/*!@:host*/.sc-ion-content-h{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;-ms-flex:1;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}/*!@:host(.ion-color) .inner-scroll*/.ion-color.sc-ion-content-h .inner-scroll.sc-ion-content{background:var(--ion-color-base);color:var(--ion-color-contrast)}/*!@#background-content*/#background-content.sc-ion-content{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}/*!@.inner-scroll*/.inner-scroll.sc-ion-content{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom));position:absolute;color:var(--color);-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;-ms-touch-action:pan-x pan-y pinch-zoom;touch-action:pan-x pan-y pinch-zoom}/*!@.scroll-y,\n.scroll-x*/.scroll-y.sc-ion-content,.scroll-x.sc-ion-content{-webkit-overflow-scrolling:touch;z-index:0;will-change:scroll-position}/*!@.scroll-y*/.scroll-y.sc-ion-content{overflow-y:var(--overflow);overscroll-behavior-y:contain}/*!@.scroll-x*/.scroll-x.sc-ion-content{overflow-x:var(--overflow);overscroll-behavior-x:contain}/*!@.overscroll::before,\n.overscroll::after*/.overscroll.sc-ion-content::before,.overscroll.sc-ion-content::after{position:absolute;width:1px;height:1px;content:\"\"}/*!@.overscroll::before*/.overscroll.sc-ion-content::before{bottom:-1px}/*!@.overscroll::after*/.overscroll.sc-ion-content::after{top:-1px}/*!@:host(.content-sizing)*/.content-sizing.sc-ion-content-h{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-height:0;contain:none}/*!@:host(.content-sizing) .inner-scroll*/.content-sizing.sc-ion-content-h .inner-scroll.sc-ion-content{position:relative;top:0;bottom:0;margin-top:calc(var(--offset-top) * -1);margin-bottom:calc(var(--offset-bottom) * -1)}/*!@.transition-effect*/.transition-effect.sc-ion-content{display:none;position:absolute;width:100%;height:100vh;opacity:0;pointer-events:none}/*!@:host(.content-ltr) .transition-effect*/.content-ltr.sc-ion-content-h .transition-effect.sc-ion-content{left:-100%}/*!@:host(.content-rtl) .transition-effect*/.content-rtl.sc-ion-content-h .transition-effect.sc-ion-content{right:-100%}/*!@.transition-cover*/.transition-cover.sc-ion-content{position:absolute;right:0;width:100%;height:100%;background:black;opacity:0.1}/*!@.transition-shadow*/.transition-shadow.sc-ion-content{display:block;position:absolute;width:100%;height:100%;-webkit-box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03);box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03)}/*!@:host(.content-ltr) .transition-shadow*/.content-ltr.sc-ion-content-h .transition-shadow.sc-ion-content{right:0}/*!@:host(.content-rtl) .transition-shadow*/.content-rtl.sc-ion-content-h .transition-shadow.sc-ion-content{left:0;-webkit-transform:scaleX(-1);transform:scaleX(-1)}/*!@::slotted([slot=fixed])*/.sc-ion-content-s>[slot=fixed]{position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0)}";
|
|
12679
12671
|
|
|
12680
12672
|
/**
|
|
12681
12673
|
* @slot - Content is placed in the scrollable area if provided without a slot.
|
|
@@ -14597,7 +14589,7 @@ const getMonthColumnData = (locale, refParts, minParts, maxParts, monthValues, f
|
|
|
14597
14589
|
* @param minParts The minimum bound on the date that can be returned
|
|
14598
14590
|
* @param maxParts The maximum bound on the date that can be returned
|
|
14599
14591
|
* @param dayValues The allowed date values
|
|
14600
|
-
* @returns Date data to be used in ion-picker-column
|
|
14592
|
+
* @returns Date data to be used in ion-picker-column
|
|
14601
14593
|
*/
|
|
14602
14594
|
const getDayColumnData = (locale, refParts, minParts, maxParts, dayValues, formatOptions = {
|
|
14603
14595
|
day: 'numeric',
|
|
@@ -14944,9 +14936,9 @@ const getHighlightStyles = (highlightedDates, dateIsoString, el) => {
|
|
|
14944
14936
|
return undefined;
|
|
14945
14937
|
};
|
|
14946
14938
|
|
|
14947
|
-
const datetimeIosCss = "/*!@:host*/.sc-ion-datetime-ios-h{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;background:var(--background);overflow:hidden}/*!@ion-picker-column-internal*/ion-picker-column-internal.sc-ion-datetime-ios{min-width:26px}/*!@:host(.datetime-size-fixed)*/.datetime-size-fixed.sc-ion-datetime-ios-h{width:auto;height:auto}/*!@:host(.datetime-size-fixed:not(.datetime-prefer-wheel))*/.datetime-size-fixed.sc-ion-datetime-ios-h:not(.datetime-prefer-wheel){max-width:350px}/*!@:host(.datetime-size-fixed.datetime-prefer-wheel)*/.datetime-size-fixed.datetime-prefer-wheel.sc-ion-datetime-ios-h{min-width:350px;max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content}/*!@:host(.datetime-size-cover)*/.datetime-size-cover.sc-ion-datetime-ios-h{width:100%}/*!@:host .calendar-body,\n:host .datetime-year*/.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios,.sc-ion-datetime-ios-h .datetime-year.sc-ion-datetime-ios{opacity:0}/*!@:host(:not(.datetime-ready)) .datetime-year*/.sc-ion-datetime-ios-h:not(.datetime-ready) .datetime-year.sc-ion-datetime-ios{position:absolute;pointer-events:none}/*!@:host(.datetime-ready) .calendar-body*/.datetime-ready.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios{opacity:1}/*!@:host(.datetime-ready) .datetime-year*/.datetime-ready.sc-ion-datetime-ios-h .datetime-year.sc-ion-datetime-ios{display:none;opacity:1}/*!@:host .wheel-order-year-first .day-column*/.sc-ion-datetime-ios-h .wheel-order-year-first.sc-ion-datetime-ios .day-column.sc-ion-datetime-ios{-ms-flex-order:3;order:3;text-align:end}/*!@:host .wheel-order-year-first .month-column*/.sc-ion-datetime-ios-h .wheel-order-year-first.sc-ion-datetime-ios .month-column.sc-ion-datetime-ios{-ms-flex-order:2;order:2;text-align:end}/*!@:host .wheel-order-year-first .year-column*/.sc-ion-datetime-ios-h .wheel-order-year-first.sc-ion-datetime-ios .year-column.sc-ion-datetime-ios{-ms-flex-order:1;order:1;text-align:start}/*!@:host .datetime-calendar,\n:host .datetime-year*/.sc-ion-datetime-ios-h .datetime-calendar.sc-ion-datetime-ios,.sc-ion-datetime-ios-h .datetime-year.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-flow:column;flex-flow:column}/*!@:host(.show-month-and-year) .datetime-year*/.show-month-and-year.sc-ion-datetime-ios-h .datetime-year.sc-ion-datetime-ios{display:-ms-flexbox;display:flex}@supports (background: -webkit-named-image(apple-pay-logo-black)) and (not (aspect-ratio: 1/1)){/*!@:host(.show-month-and-year) .calendar-next-prev,\n :host(.show-month-and-year) .calendar-days-of-week,\n :host(.show-month-and-year) .calendar-body,\n :host(.show-month-and-year) .datetime-time*/.show-month-and-year.sc-ion-datetime-ios-h .calendar-next-prev.sc-ion-datetime-ios,.show-month-and-year.sc-ion-datetime-ios-h .calendar-days-of-week.sc-ion-datetime-ios,.show-month-and-year.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios,.show-month-and-year.sc-ion-datetime-ios-h .datetime-time.sc-ion-datetime-ios{position:absolute;visibility:hidden;pointer-events:none}/*!@@supports (inset-inline-start: 0)*/@supports .sc-ion-datetime-ios (inset-inline-start.sc-ion-datetime-ios: 0).sc-ion-datetime-ios{.sc-ion-datetime-ios-h.show-month-and-year .calendar-next-prev,.sc-ion-datetime-ios-h.show-month-and-year .calendar-days-of-week,.sc-ion-datetime-ios-h.show-month-and-year .calendar-body,.sc-ion-datetime-ios-h.show-month-and-year .datetime-time{inset-inline-start:-99999px}}/*!@@supports not (inset-inline-start: 0)*/@supports .sc-ion-datetime-ios not.sc-ion-datetime-ios (inset-inline-start.sc-ion-datetime-ios: 0).sc-ion-datetime-ios{.sc-ion-datetime-ios-h.show-month-and-year .calendar-next-prev,.sc-ion-datetime-ios-h.show-month-and-year .calendar-days-of-week,.sc-ion-datetime-ios-h.show-month-and-year .calendar-body,.sc-ion-datetime-ios-h.show-month-and-year .datetime-time{left:-99999px}.sc-ion-datetime-ios-h[dir=rtl].sc-ion-datetime-ios-h.show-month-and-year .calendar-next-prev,[dir=rtl] .sc-ion-datetime-ios-h.sc-ion-datetime-ios-h.show-month-and-year .calendar-next-prev,.sc-ion-datetime-ios-h[dir=rtl].show-month-and-year .calendar-next-prev,[dir=rtl] .sc-ion-datetime-ios-h.show-month-and-year .calendar-next-prev,.sc-ion-datetime-ios-h[dir=rtl].sc-ion-datetime-ios-h.show-month-and-year .calendar-days-of-week,[dir=rtl] .sc-ion-datetime-ios-h.sc-ion-datetime-ios-h.show-month-and-year .calendar-days-of-week,.sc-ion-datetime-ios-h[dir=rtl].show-month-and-year .calendar-days-of-week,[dir=rtl] .sc-ion-datetime-ios-h.show-month-and-year .calendar-days-of-week,.sc-ion-datetime-ios-h[dir=rtl].sc-ion-datetime-ios-h.show-month-and-year .calendar-body,[dir=rtl] .sc-ion-datetime-ios-h.sc-ion-datetime-ios-h.show-month-and-year .calendar-body,.sc-ion-datetime-ios-h[dir=rtl].show-month-and-year .calendar-body,[dir=rtl] .sc-ion-datetime-ios-h.show-month-and-year .calendar-body,.sc-ion-datetime-ios-h[dir=rtl].sc-ion-datetime-ios-h.show-month-and-year .datetime-time,[dir=rtl] .sc-ion-datetime-ios-h.sc-ion-datetime-ios-h.show-month-and-year .datetime-time,.sc-ion-datetime-ios-h[dir=rtl].show-month-and-year .datetime-time,[dir=rtl] .sc-ion-datetime-ios-h.show-month-and-year .datetime-time{left:unset;right:unset;right:-99999px}@supports selector(:dir(rtl)){.sc-ion-datetime-ios-h.show-month-and-year:dir(rtl) .calendar-next-prev,.sc-ion-datetime-ios-h.show-month-and-year:dir(rtl) .calendar-days-of-week,.sc-ion-datetime-ios-h.show-month-and-year:dir(rtl) .calendar-body,.sc-ion-datetime-ios-h.show-month-and-year:dir(rtl) .datetime-time{left:unset;right:unset;right:-99999px}}}}@supports (not (background: -webkit-named-image(apple-pay-logo-black))) or ((background: -webkit-named-image(apple-pay-logo-black)) and (aspect-ratio: 1/1)){/*!@:host(.show-month-and-year) .calendar-next-prev,\n :host(.show-month-and-year) .calendar-days-of-week,\n :host(.show-month-and-year) .calendar-body,\n :host(.show-month-and-year) .datetime-time*/.show-month-and-year.sc-ion-datetime-ios-h .calendar-next-prev.sc-ion-datetime-ios,.show-month-and-year.sc-ion-datetime-ios-h .calendar-days-of-week.sc-ion-datetime-ios,.show-month-and-year.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios,.show-month-and-year.sc-ion-datetime-ios-h .datetime-time.sc-ion-datetime-ios{display:none}}/*!@:host(.month-year-picker-open) .datetime-footer*/.month-year-picker-open.sc-ion-datetime-ios-h .datetime-footer.sc-ion-datetime-ios{display:none}/*!@:host(.datetime-disabled)*/.datetime-disabled.sc-ion-datetime-ios-h{pointer-events:none}/*!@:host(.datetime-disabled) .calendar-days-of-week,\n:host(.datetime-disabled) .datetime-time*/.datetime-disabled.sc-ion-datetime-ios-h .calendar-days-of-week.sc-ion-datetime-ios,.datetime-disabled.sc-ion-datetime-ios-h .datetime-time.sc-ion-datetime-ios{opacity:0.4}/*!@:host(.datetime-readonly)*/.datetime-readonly.sc-ion-datetime-ios-h{pointer-events:none}/*!@:host(.datetime-readonly) .calendar-action-buttons,\n:host(.datetime-readonly) .calendar-body,\n:host(.datetime-readonly) .datetime-year*/.datetime-readonly.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios,.datetime-readonly.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios,.datetime-readonly.sc-ion-datetime-ios-h .datetime-year.sc-ion-datetime-ios{pointer-events:initial}/*!@:host(.datetime-readonly) .calendar-day[disabled]:not(.calendar-day-constrained),\n:host(.datetime-readonly) .datetime-action-buttons ion-button[disabled]*/.datetime-readonly.sc-ion-datetime-ios-h .calendar-day[disabled].sc-ion-datetime-ios:not(.calendar-day-constrained),.datetime-readonly.sc-ion-datetime-ios-h .datetime-action-buttons.sc-ion-datetime-ios ion-button[disabled].sc-ion-datetime-ios{opacity:1}/*!@:host .datetime-header .datetime-title*/.sc-ion-datetime-ios-h .datetime-header.sc-ion-datetime-ios .datetime-title.sc-ion-datetime-ios{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}/*!@:host .datetime-action-buttons.has-clear-button*/.sc-ion-datetime-ios-h .datetime-action-buttons.has-clear-button.sc-ion-datetime-ios{width:100%}/*!@:host .datetime-action-buttons ion-buttons*/.sc-ion-datetime-ios-h .datetime-action-buttons.sc-ion-datetime-ios ion-buttons.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}/*!@.datetime-action-buttons .datetime-action-buttons-container*/.datetime-action-buttons.sc-ion-datetime-ios .datetime-action-buttons-container.sc-ion-datetime-ios{display:-ms-flexbox;display:flex}/*!@:host .calendar-action-buttons*/.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}/*!@:host .calendar-action-buttons ion-item,\n:host .calendar-action-buttons ion-button*/.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios ion-item.sc-ion-datetime-ios,.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios ion-button.sc-ion-datetime-ios{--background:translucent}/*!@:host .calendar-action-buttons ion-item ion-label*/.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios ion-item.sc-ion-datetime-ios ion-label.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;width:auto}/*!@:host .calendar-action-buttons ion-item ion-icon*/.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios ion-item.sc-ion-datetime-ios ion-icon.sc-ion-datetime-ios{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:0;padding-inline-end:0;padding-top:0;padding-bottom:0}/*!@:host .calendar-days-of-week*/.sc-ion-datetime-ios-h .calendar-days-of-week.sc-ion-datetime-ios{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}/*!@.calendar-days-of-week .day-of-week*/.calendar-days-of-week.sc-ion-datetime-ios .day-of-week.sc-ion-datetime-ios{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0}/*!@:host .calendar-body*/.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-webkit-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;overflow-x:scroll;overflow-y:hidden;scrollbar-width:none;outline:none}/*!@:host .calendar-body .calendar-month*/.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios .calendar-month.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;scroll-snap-align:start;scroll-snap-stop:always;-ms-flex-negative:0;flex-shrink:0;width:100%}/*!@:host .calendar-body .calendar-month-disabled*/.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios .calendar-month-disabled.sc-ion-datetime-ios{scroll-snap-align:none}/*!@:host .calendar-body::-webkit-scrollbar*/.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios::-webkit-scrollbar{display:none}/*!@:host .calendar-body .calendar-month-grid*/.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios .calendar-month-grid.sc-ion-datetime-ios{display:grid;grid-template-columns:repeat(7, 1fr)}/*!@:host .calendar-day-wrapper*/.sc-ion-datetime-ios-h .calendar-day-wrapper.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:0;min-height:0;overflow:visible}/*!@.calendar-day*/.calendar-day.sc-ion-datetime-ios{border-radius:50%;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:0px;padding-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:0px;margin-bottom:0px;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border:none;outline:none;background:none;color:currentColor;font-family:var(--ion-font-family, inherit);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:0}/*!@:host .calendar-day[disabled]*/.sc-ion-datetime-ios-h .calendar-day[disabled].sc-ion-datetime-ios{pointer-events:none;opacity:0.4}/*!@.calendar-day:focus*/.calendar-day.sc-ion-datetime-ios:focus{background:rgba(var(--ion-color-base-rgb), 0.2);-webkit-box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2)}/*!@:host .datetime-time*/.sc-ion-datetime-ios-h .datetime-time.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}/*!@:host(.datetime-presentation-time) .datetime-time*/.datetime-presentation-time.sc-ion-datetime-ios-h .datetime-time.sc-ion-datetime-ios{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}/*!@:host ion-popover*/.sc-ion-datetime-ios-h ion-popover.sc-ion-datetime-ios{--height:200px}/*!@:host .time-header*/.sc-ion-datetime-ios-h .time-header.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}/*!@:host .time-body*/.sc-ion-datetime-ios-h .time-body.sc-ion-datetime-ios{border-radius:8px;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px;display:-ms-flexbox;display:flex;border:none;background:var(--ion-color-step-300, #edeef0);color:var(--ion-text-color, #000);font-family:inherit;font-size:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}/*!@:host .time-body-active*/.sc-ion-datetime-ios-h .time-body-active.sc-ion-datetime-ios{color:var(--ion-color-base)}/*!@:host(.in-item)*/.in-item.sc-ion-datetime-ios-h{position:static}/*!@:host(.show-month-and-year) .calendar-action-buttons ion-item*/.show-month-and-year.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios ion-item.sc-ion-datetime-ios{--color:var(--ion-color-base)}/*!@:host*/.sc-ion-datetime-ios-h{--background:var(--ion-color-light, #ffffff);--background-rgb:var(--ion-color-light-rgb);--title-color:var(--ion-color-step-600, #666666)}/*!@:host(.datetime-presentation-date-time:not(.datetime-prefer-wheel)),\n:host(.datetime-presentation-time-date:not(.datetime-prefer-wheel)),\n:host(.datetime-presentation-date:not(.datetime-prefer-wheel))*/.datetime-presentation-date-time.sc-ion-datetime-ios-h:not(.datetime-prefer-wheel),.datetime-presentation-time-date.sc-ion-datetime-ios-h:not(.datetime-prefer-wheel),.datetime-presentation-date.sc-ion-datetime-ios-h:not(.datetime-prefer-wheel){min-height:350px}/*!@:host .datetime-header*/.sc-ion-datetime-ios-h .datetime-header.sc-ion-datetime-ios{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:16px;padding-bottom:16px;border-bottom:0.55px solid var(--ion-color-step-200, #cccccc);font-size:min(0.875rem, 22.4px)}/*!@:host .datetime-header .datetime-title*/.sc-ion-datetime-ios-h .datetime-header.sc-ion-datetime-ios .datetime-title.sc-ion-datetime-ios{color:var(--title-color)}/*!@:host .datetime-header .datetime-selected-date*/.sc-ion-datetime-ios-h .datetime-header.sc-ion-datetime-ios .datetime-selected-date.sc-ion-datetime-ios{margin-top:10px}/*!@:host .calendar-action-buttons ion-item*/.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios ion-item.sc-ion-datetime-ios{--padding-start:16px;--background-hover:transparent;--background-activated:transparent;font-size:min(1rem, 25.6px);font-weight:600}/*!@:host .calendar-action-buttons ion-item ion-icon,\n:host .calendar-action-buttons ion-buttons ion-button*/.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios ion-item.sc-ion-datetime-ios ion-icon.sc-ion-datetime-ios,.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios ion-buttons.sc-ion-datetime-ios ion-button.sc-ion-datetime-ios{color:var(--ion-color-base)}/*!@:host .calendar-action-buttons ion-buttons*/.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios ion-buttons.sc-ion-datetime-ios{padding-left:0;padding-right:0;padding-top:8px;padding-bottom:0}/*!@:host .calendar-action-buttons ion-buttons ion-button*/.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios ion-buttons.sc-ion-datetime-ios ion-button.sc-ion-datetime-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}/*!@:host .calendar-days-of-week*/.sc-ion-datetime-ios-h .calendar-days-of-week.sc-ion-datetime-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:0;padding-bottom:0;color:var(--ion-color-step-300, #b3b3b3);font-size:min(0.75rem, 19.2px);font-weight:600;line-height:24px;text-transform:uppercase}@supports (border-radius: mod(1px, 1px)){/*!@.calendar-days-of-week .day-of-week*/.calendar-days-of-week.sc-ion-datetime-ios .day-of-week.sc-ion-datetime-ios{width:clamp(20px, calc(mod(min(1rem, 24px), 24px) * 10), 100%);height:24px;overflow:hidden}/*!@.calendar-day*/.calendar-day.sc-ion-datetime-ios{border-radius:max(8px, mod(min(1rem, 24px), 24px) * 10)}}@supports ((border-radius: mod(1px, 1px)) and (background: -webkit-named-image(apple-pay-logo-black)) and (not (contain-intrinsic-size: none))) or (not (border-radius: mod(1px, 1px))){/*!@.calendar-days-of-week .day-of-week*/.calendar-days-of-week.sc-ion-datetime-ios .day-of-week.sc-ion-datetime-ios{width:auto;height:auto;overflow:initial}/*!@.calendar-day*/.calendar-day.sc-ion-datetime-ios{border-radius:32px}}/*!@:host .calendar-body .calendar-month .calendar-month-grid*/.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios .calendar-month.sc-ion-datetime-ios .calendar-month-grid.sc-ion-datetime-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;-ms-flex-align:center;align-items:center;height:calc(100% - 16px)}/*!@:host .calendar-day-wrapper*/.sc-ion-datetime-ios-h .calendar-day-wrapper.sc-ion-datetime-ios{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;height:0;min-height:1rem}/*!@:host .calendar-day*/.sc-ion-datetime-ios-h .calendar-day.sc-ion-datetime-ios{width:40px;min-width:40px;height:40px;font-size:min(1.25rem, 32px)}/*!@.calendar-day.calendar-day-active*/.calendar-day.calendar-day-active.sc-ion-datetime-ios{background:rgba(var(--ion-color-base-rgb), 0.2)}/*!@:host .calendar-day.calendar-day-today*/.sc-ion-datetime-ios-h .calendar-day.calendar-day-today.sc-ion-datetime-ios{color:var(--ion-color-base)}/*!@:host .calendar-day.calendar-day-active*/.sc-ion-datetime-ios-h .calendar-day.calendar-day-active.sc-ion-datetime-ios{color:var(--ion-color-base);font-weight:600}/*!@:host .calendar-day.calendar-day-today.calendar-day-active*/.sc-ion-datetime-ios-h .calendar-day.calendar-day-today.calendar-day-active.sc-ion-datetime-ios{color:var(--ion-color-contrast)}/*!@:host .datetime-time*/.sc-ion-datetime-ios-h .datetime-time.sc-ion-datetime-ios{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:8px;padding-bottom:16px;font-size:min(1rem, 25.6px)}/*!@:host .datetime-time .time-header*/.sc-ion-datetime-ios-h .datetime-time.sc-ion-datetime-ios .time-header.sc-ion-datetime-ios{font-weight:600}/*!@:host .datetime-buttons*/.sc-ion-datetime-ios-h .datetime-buttons.sc-ion-datetime-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;border-top:0.55px solid var(--ion-color-step-200, #cccccc)}/*!@:host .datetime-buttons ::slotted(ion-buttons),\n:host .datetime-buttons ion-buttons*/.sc-ion-datetime-ios-h .datetime-buttons .sc-ion-datetime-ios-s>ion-buttons,.sc-ion-datetime-ios-h .datetime-buttons.sc-ion-datetime-ios ion-buttons.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}/*!@:host .datetime-action-buttons*/.sc-ion-datetime-ios-h .datetime-action-buttons.sc-ion-datetime-ios{width:100%}";
|
|
14939
|
+
const datetimeIosCss = "/*!@:host*/.sc-ion-datetime-ios-h{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;background:var(--background);overflow:hidden}/*!@:host(.datetime-size-fixed)*/.datetime-size-fixed.sc-ion-datetime-ios-h{width:auto;height:auto}/*!@:host(.datetime-size-fixed:not(.datetime-prefer-wheel))*/.datetime-size-fixed.sc-ion-datetime-ios-h:not(.datetime-prefer-wheel){max-width:350px}/*!@:host(.datetime-size-fixed.datetime-prefer-wheel)*/.datetime-size-fixed.datetime-prefer-wheel.sc-ion-datetime-ios-h{min-width:350px;max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content}/*!@:host(.datetime-size-cover)*/.datetime-size-cover.sc-ion-datetime-ios-h{width:100%}/*!@:host .calendar-body,\n:host .datetime-year*/.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios,.sc-ion-datetime-ios-h .datetime-year.sc-ion-datetime-ios{opacity:0}/*!@:host(:not(.datetime-ready)) .datetime-year*/.sc-ion-datetime-ios-h:not(.datetime-ready) .datetime-year.sc-ion-datetime-ios{position:absolute;pointer-events:none}/*!@:host(.datetime-ready) .calendar-body*/.datetime-ready.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios{opacity:1}/*!@:host(.datetime-ready) .datetime-year*/.datetime-ready.sc-ion-datetime-ios-h .datetime-year.sc-ion-datetime-ios{display:none;opacity:1}/*!@:host .wheel-order-year-first .day-column*/.sc-ion-datetime-ios-h .wheel-order-year-first.sc-ion-datetime-ios .day-column.sc-ion-datetime-ios{-ms-flex-order:3;order:3;text-align:end}/*!@:host .wheel-order-year-first .month-column*/.sc-ion-datetime-ios-h .wheel-order-year-first.sc-ion-datetime-ios .month-column.sc-ion-datetime-ios{-ms-flex-order:2;order:2;text-align:end}/*!@:host .wheel-order-year-first .year-column*/.sc-ion-datetime-ios-h .wheel-order-year-first.sc-ion-datetime-ios .year-column.sc-ion-datetime-ios{-ms-flex-order:1;order:1;text-align:start}/*!@:host .datetime-calendar,\n:host .datetime-year*/.sc-ion-datetime-ios-h .datetime-calendar.sc-ion-datetime-ios,.sc-ion-datetime-ios-h .datetime-year.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-flow:column;flex-flow:column}/*!@:host(.show-month-and-year) .datetime-year*/.show-month-and-year.sc-ion-datetime-ios-h .datetime-year.sc-ion-datetime-ios{display:-ms-flexbox;display:flex}@supports (background: -webkit-named-image(apple-pay-logo-black)) and (not (aspect-ratio: 1/1)){/*!@:host(.show-month-and-year) .calendar-next-prev,\n :host(.show-month-and-year) .calendar-days-of-week,\n :host(.show-month-and-year) .calendar-body,\n :host(.show-month-and-year) .datetime-time*/.show-month-and-year.sc-ion-datetime-ios-h .calendar-next-prev.sc-ion-datetime-ios,.show-month-and-year.sc-ion-datetime-ios-h .calendar-days-of-week.sc-ion-datetime-ios,.show-month-and-year.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios,.show-month-and-year.sc-ion-datetime-ios-h .datetime-time.sc-ion-datetime-ios{position:absolute;visibility:hidden;pointer-events:none}/*!@@supports (inset-inline-start: 0)*/@supports .sc-ion-datetime-ios (inset-inline-start.sc-ion-datetime-ios: 0).sc-ion-datetime-ios{.sc-ion-datetime-ios-h.show-month-and-year .calendar-next-prev,.sc-ion-datetime-ios-h.show-month-and-year .calendar-days-of-week,.sc-ion-datetime-ios-h.show-month-and-year .calendar-body,.sc-ion-datetime-ios-h.show-month-and-year .datetime-time{inset-inline-start:-99999px}}/*!@@supports not (inset-inline-start: 0)*/@supports .sc-ion-datetime-ios not.sc-ion-datetime-ios (inset-inline-start.sc-ion-datetime-ios: 0).sc-ion-datetime-ios{.sc-ion-datetime-ios-h.show-month-and-year .calendar-next-prev,.sc-ion-datetime-ios-h.show-month-and-year .calendar-days-of-week,.sc-ion-datetime-ios-h.show-month-and-year .calendar-body,.sc-ion-datetime-ios-h.show-month-and-year .datetime-time{left:-99999px}.sc-ion-datetime-ios-h[dir=rtl].sc-ion-datetime-ios-h.show-month-and-year .calendar-next-prev,[dir=rtl] .sc-ion-datetime-ios-h.sc-ion-datetime-ios-h.show-month-and-year .calendar-next-prev,.sc-ion-datetime-ios-h[dir=rtl].show-month-and-year .calendar-next-prev,[dir=rtl] .sc-ion-datetime-ios-h.show-month-and-year .calendar-next-prev,.sc-ion-datetime-ios-h[dir=rtl].sc-ion-datetime-ios-h.show-month-and-year .calendar-days-of-week,[dir=rtl] .sc-ion-datetime-ios-h.sc-ion-datetime-ios-h.show-month-and-year .calendar-days-of-week,.sc-ion-datetime-ios-h[dir=rtl].show-month-and-year .calendar-days-of-week,[dir=rtl] .sc-ion-datetime-ios-h.show-month-and-year .calendar-days-of-week,.sc-ion-datetime-ios-h[dir=rtl].sc-ion-datetime-ios-h.show-month-and-year .calendar-body,[dir=rtl] .sc-ion-datetime-ios-h.sc-ion-datetime-ios-h.show-month-and-year .calendar-body,.sc-ion-datetime-ios-h[dir=rtl].show-month-and-year .calendar-body,[dir=rtl] .sc-ion-datetime-ios-h.show-month-and-year .calendar-body,.sc-ion-datetime-ios-h[dir=rtl].sc-ion-datetime-ios-h.show-month-and-year .datetime-time,[dir=rtl] .sc-ion-datetime-ios-h.sc-ion-datetime-ios-h.show-month-and-year .datetime-time,.sc-ion-datetime-ios-h[dir=rtl].show-month-and-year .datetime-time,[dir=rtl] .sc-ion-datetime-ios-h.show-month-and-year .datetime-time{left:unset;right:unset;right:-99999px}@supports selector(:dir(rtl)){.sc-ion-datetime-ios-h.show-month-and-year:dir(rtl) .calendar-next-prev,.sc-ion-datetime-ios-h.show-month-and-year:dir(rtl) .calendar-days-of-week,.sc-ion-datetime-ios-h.show-month-and-year:dir(rtl) .calendar-body,.sc-ion-datetime-ios-h.show-month-and-year:dir(rtl) .datetime-time{left:unset;right:unset;right:-99999px}}}}@supports (not (background: -webkit-named-image(apple-pay-logo-black))) or ((background: -webkit-named-image(apple-pay-logo-black)) and (aspect-ratio: 1/1)){/*!@:host(.show-month-and-year) .calendar-next-prev,\n :host(.show-month-and-year) .calendar-days-of-week,\n :host(.show-month-and-year) .calendar-body,\n :host(.show-month-and-year) .datetime-time*/.show-month-and-year.sc-ion-datetime-ios-h .calendar-next-prev.sc-ion-datetime-ios,.show-month-and-year.sc-ion-datetime-ios-h .calendar-days-of-week.sc-ion-datetime-ios,.show-month-and-year.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios,.show-month-and-year.sc-ion-datetime-ios-h .datetime-time.sc-ion-datetime-ios{display:none}}/*!@:host(.month-year-picker-open) .datetime-footer*/.month-year-picker-open.sc-ion-datetime-ios-h .datetime-footer.sc-ion-datetime-ios{display:none}/*!@:host(.datetime-disabled)*/.datetime-disabled.sc-ion-datetime-ios-h{pointer-events:none}/*!@:host(.datetime-disabled) .calendar-days-of-week,\n:host(.datetime-disabled) .datetime-time*/.datetime-disabled.sc-ion-datetime-ios-h .calendar-days-of-week.sc-ion-datetime-ios,.datetime-disabled.sc-ion-datetime-ios-h .datetime-time.sc-ion-datetime-ios{opacity:0.4}/*!@:host(.datetime-readonly)*/.datetime-readonly.sc-ion-datetime-ios-h{pointer-events:none}/*!@:host(.datetime-readonly) .calendar-action-buttons,\n:host(.datetime-readonly) .calendar-body,\n:host(.datetime-readonly) .datetime-year*/.datetime-readonly.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios,.datetime-readonly.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios,.datetime-readonly.sc-ion-datetime-ios-h .datetime-year.sc-ion-datetime-ios{pointer-events:initial}/*!@:host(.datetime-readonly) .calendar-day[disabled]:not(.calendar-day-constrained),\n:host(.datetime-readonly) .datetime-action-buttons ion-button[disabled]*/.datetime-readonly.sc-ion-datetime-ios-h .calendar-day[disabled].sc-ion-datetime-ios:not(.calendar-day-constrained),.datetime-readonly.sc-ion-datetime-ios-h .datetime-action-buttons.sc-ion-datetime-ios ion-button[disabled].sc-ion-datetime-ios{opacity:1}/*!@:host .datetime-header .datetime-title*/.sc-ion-datetime-ios-h .datetime-header.sc-ion-datetime-ios .datetime-title.sc-ion-datetime-ios{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}/*!@:host .datetime-action-buttons.has-clear-button*/.sc-ion-datetime-ios-h .datetime-action-buttons.has-clear-button.sc-ion-datetime-ios{width:100%}/*!@:host .datetime-action-buttons ion-buttons*/.sc-ion-datetime-ios-h .datetime-action-buttons.sc-ion-datetime-ios ion-buttons.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}/*!@.datetime-action-buttons .datetime-action-buttons-container*/.datetime-action-buttons.sc-ion-datetime-ios .datetime-action-buttons-container.sc-ion-datetime-ios{display:-ms-flexbox;display:flex}/*!@:host .calendar-action-buttons*/.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}/*!@:host .calendar-action-buttons ion-button*/.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios ion-button.sc-ion-datetime-ios{--background:transparent}/*!@:host .calendar-days-of-week*/.sc-ion-datetime-ios-h .calendar-days-of-week.sc-ion-datetime-ios{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}/*!@.calendar-days-of-week .day-of-week*/.calendar-days-of-week.sc-ion-datetime-ios .day-of-week.sc-ion-datetime-ios{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0}/*!@:host .calendar-body*/.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-webkit-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;overflow-x:scroll;overflow-y:hidden;scrollbar-width:none;outline:none}/*!@:host .calendar-body .calendar-month*/.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios .calendar-month.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;scroll-snap-align:start;scroll-snap-stop:always;-ms-flex-negative:0;flex-shrink:0;width:100%}/*!@:host .calendar-body .calendar-month-disabled*/.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios .calendar-month-disabled.sc-ion-datetime-ios{scroll-snap-align:none}/*!@:host .calendar-body::-webkit-scrollbar*/.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios::-webkit-scrollbar{display:none}/*!@:host .calendar-body .calendar-month-grid*/.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios .calendar-month-grid.sc-ion-datetime-ios{display:grid;grid-template-columns:repeat(7, 1fr)}/*!@:host .calendar-day-wrapper*/.sc-ion-datetime-ios-h .calendar-day-wrapper.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:0;min-height:0;overflow:visible}/*!@.calendar-day*/.calendar-day.sc-ion-datetime-ios{border-radius:50%;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:0px;padding-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:0px;margin-bottom:0px;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border:none;outline:none;background:none;color:currentColor;font-family:var(--ion-font-family, inherit);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:0}/*!@:host .calendar-day[disabled]*/.sc-ion-datetime-ios-h .calendar-day[disabled].sc-ion-datetime-ios{pointer-events:none;opacity:0.4}/*!@.calendar-day:focus*/.calendar-day.sc-ion-datetime-ios:focus{background:rgba(var(--ion-color-base-rgb), 0.2);-webkit-box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2)}/*!@:host .datetime-time*/.sc-ion-datetime-ios-h .datetime-time.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}/*!@:host(.datetime-presentation-time) .datetime-time*/.datetime-presentation-time.sc-ion-datetime-ios-h .datetime-time.sc-ion-datetime-ios{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}/*!@:host ion-popover*/.sc-ion-datetime-ios-h ion-popover.sc-ion-datetime-ios{--height:200px}/*!@:host .time-header*/.sc-ion-datetime-ios-h .time-header.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}/*!@:host .time-body*/.sc-ion-datetime-ios-h .time-body.sc-ion-datetime-ios{border-radius:8px;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px;display:-ms-flexbox;display:flex;border:none;background:var(--ion-color-step-300, #edeef0);color:var(--ion-text-color, #000);font-family:inherit;font-size:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}/*!@:host .time-body-active*/.sc-ion-datetime-ios-h .time-body-active.sc-ion-datetime-ios{color:var(--ion-color-base)}/*!@:host(.in-item)*/.in-item.sc-ion-datetime-ios-h{position:static}/*!@:host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle*/.show-month-and-year.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios .calendar-month-year-toggle.sc-ion-datetime-ios{color:var(--ion-color-base)}/*!@.calendar-month-year*/.calendar-month-year.sc-ion-datetime-ios{min-width:0}/*!@.calendar-month-year-toggle*/.calendar-month-year-toggle.sc-ion-datetime-ios{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;position:relative;border:0;outline:none;background:transparent;cursor:pointer;z-index:1}/*!@.calendar-month-year-toggle::after*/.calendar-month-year-toggle.sc-ion-datetime-ios::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\"\";opacity:0;-webkit-transition:opacity 15ms linear, background-color 15ms linear;transition:opacity 15ms linear, background-color 15ms linear;z-index:-1}/*!@.calendar-month-year-toggle.ion-focused::after*/.calendar-month-year-toggle.ion-focused.sc-ion-datetime-ios::after{background:currentColor}/*!@.calendar-month-year-toggle:disabled*/.calendar-month-year-toggle.sc-ion-datetime-ios:disabled{opacity:0.3;pointer-events:none}/*!@.calendar-month-year-toggle ion-icon*/.calendar-month-year-toggle.sc-ion-datetime-ios ion-icon.sc-ion-datetime-ios{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:0;padding-inline-end:0;padding-top:0;padding-bottom:0;-ms-flex-negative:0;flex-shrink:0}/*!@.calendar-month-year-toggle #toggle-wrapper*/.calendar-month-year-toggle.sc-ion-datetime-ios #toggle-wrapper.sc-ion-datetime-ios{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center}/*!@ion-picker*/ion-picker.sc-ion-datetime-ios{--highlight-background:var(--wheel-highlight-background);--highlight-border-radius:var(--wheel-highlight-border-radius);--fade-background-rgb:var(--wheel-fade-background-rgb)}/*!@:host*/.sc-ion-datetime-ios-h{--background:var(--ion-color-light, #ffffff);--background-rgb:var(--ion-color-light-rgb);--title-color:var(--ion-color-step-600, #666666)}/*!@:host(.datetime-presentation-date-time:not(.datetime-prefer-wheel)),\n:host(.datetime-presentation-time-date:not(.datetime-prefer-wheel)),\n:host(.datetime-presentation-date:not(.datetime-prefer-wheel))*/.datetime-presentation-date-time.sc-ion-datetime-ios-h:not(.datetime-prefer-wheel),.datetime-presentation-time-date.sc-ion-datetime-ios-h:not(.datetime-prefer-wheel),.datetime-presentation-date.sc-ion-datetime-ios-h:not(.datetime-prefer-wheel){min-height:350px}/*!@:host .datetime-header*/.sc-ion-datetime-ios-h .datetime-header.sc-ion-datetime-ios{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:16px;padding-bottom:16px;border-bottom:0.55px solid var(--ion-color-step-200, #cccccc);font-size:min(0.875rem, 22.4px)}/*!@:host .datetime-header .datetime-title*/.sc-ion-datetime-ios-h .datetime-header.sc-ion-datetime-ios .datetime-title.sc-ion-datetime-ios{color:var(--title-color)}/*!@:host .datetime-header .datetime-selected-date*/.sc-ion-datetime-ios-h .datetime-header.sc-ion-datetime-ios .datetime-selected-date.sc-ion-datetime-ios{margin-top:10px}/*!@.calendar-month-year-toggle*/.calendar-month-year-toggle.sc-ion-datetime-ios{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0px;padding-bottom:0px;min-height:44px;font-size:min(1rem, 25.6px);font-weight:600}/*!@.calendar-month-year-toggle.ion-focused::after*/.calendar-month-year-toggle.ion-focused.sc-ion-datetime-ios::after{opacity:0.15}/*!@.calendar-month-year-toggle #toggle-wrapper*/.calendar-month-year-toggle.sc-ion-datetime-ios #toggle-wrapper.sc-ion-datetime-ios{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:8px;margin-inline-end:8px;margin-top:10px;margin-bottom:10px}/*!@:host .calendar-action-buttons .calendar-month-year-toggle ion-icon,\n:host .calendar-action-buttons ion-buttons ion-button*/.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios .calendar-month-year-toggle.sc-ion-datetime-ios ion-icon.sc-ion-datetime-ios,.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios ion-buttons.sc-ion-datetime-ios ion-button.sc-ion-datetime-ios{color:var(--ion-color-base)}/*!@:host .calendar-action-buttons ion-buttons*/.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios ion-buttons.sc-ion-datetime-ios{padding-left:0;padding-right:0;padding-top:8px;padding-bottom:0}/*!@:host .calendar-action-buttons ion-buttons ion-button*/.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios ion-buttons.sc-ion-datetime-ios ion-button.sc-ion-datetime-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}/*!@:host .calendar-days-of-week*/.sc-ion-datetime-ios-h .calendar-days-of-week.sc-ion-datetime-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:0;padding-bottom:0;color:var(--ion-color-step-300, #b3b3b3);font-size:min(0.75rem, 19.2px);font-weight:600;line-height:24px;text-transform:uppercase}@supports (border-radius: mod(1px, 1px)){/*!@.calendar-days-of-week .day-of-week*/.calendar-days-of-week.sc-ion-datetime-ios .day-of-week.sc-ion-datetime-ios{width:clamp(20px, calc(mod(min(1rem, 24px), 24px) * 10), 100%);height:24px;overflow:hidden}/*!@.calendar-day*/.calendar-day.sc-ion-datetime-ios{border-radius:max(8px, mod(min(1rem, 24px), 24px) * 10)}}@supports ((border-radius: mod(1px, 1px)) and (background: -webkit-named-image(apple-pay-logo-black)) and (not (contain-intrinsic-size: none))) or (not (border-radius: mod(1px, 1px))){/*!@.calendar-days-of-week .day-of-week*/.calendar-days-of-week.sc-ion-datetime-ios .day-of-week.sc-ion-datetime-ios{width:auto;height:auto;overflow:initial}/*!@.calendar-day*/.calendar-day.sc-ion-datetime-ios{border-radius:32px}}/*!@:host .calendar-body .calendar-month .calendar-month-grid*/.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios .calendar-month.sc-ion-datetime-ios .calendar-month-grid.sc-ion-datetime-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;-ms-flex-align:center;align-items:center;height:calc(100% - 16px)}/*!@:host .calendar-day-wrapper*/.sc-ion-datetime-ios-h .calendar-day-wrapper.sc-ion-datetime-ios{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;height:0;min-height:1rem}/*!@:host .calendar-day*/.sc-ion-datetime-ios-h .calendar-day.sc-ion-datetime-ios{width:40px;min-width:40px;height:40px;font-size:min(1.25rem, 32px)}/*!@.calendar-day.calendar-day-active*/.calendar-day.calendar-day-active.sc-ion-datetime-ios{background:rgba(var(--ion-color-base-rgb), 0.2)}/*!@:host .calendar-day.calendar-day-today*/.sc-ion-datetime-ios-h .calendar-day.calendar-day-today.sc-ion-datetime-ios{color:var(--ion-color-base)}/*!@:host .calendar-day.calendar-day-active*/.sc-ion-datetime-ios-h .calendar-day.calendar-day-active.sc-ion-datetime-ios{color:var(--ion-color-base);font-weight:600}/*!@:host .calendar-day.calendar-day-today.calendar-day-active*/.sc-ion-datetime-ios-h .calendar-day.calendar-day-today.calendar-day-active.sc-ion-datetime-ios{color:var(--ion-color-contrast)}/*!@:host .datetime-time*/.sc-ion-datetime-ios-h .datetime-time.sc-ion-datetime-ios{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:8px;padding-bottom:16px;font-size:min(1rem, 25.6px)}/*!@:host .datetime-time .time-header*/.sc-ion-datetime-ios-h .datetime-time.sc-ion-datetime-ios .time-header.sc-ion-datetime-ios{font-weight:600}/*!@:host .datetime-buttons*/.sc-ion-datetime-ios-h .datetime-buttons.sc-ion-datetime-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;border-top:0.55px solid var(--ion-color-step-200, #cccccc)}/*!@:host .datetime-buttons ::slotted(ion-buttons),\n:host .datetime-buttons ion-buttons*/.sc-ion-datetime-ios-h .datetime-buttons .sc-ion-datetime-ios-s>ion-buttons,.sc-ion-datetime-ios-h .datetime-buttons.sc-ion-datetime-ios ion-buttons.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}/*!@:host .datetime-action-buttons*/.sc-ion-datetime-ios-h .datetime-action-buttons.sc-ion-datetime-ios{width:100%}";
|
|
14948
14940
|
|
|
14949
|
-
const datetimeMdCss = "/*!@:host*/.sc-ion-datetime-md-h{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;background:var(--background);overflow:hidden}/*!@ion-picker-column-internal*/ion-picker-column-internal.sc-ion-datetime-md{min-width:26px}/*!@:host(.datetime-size-fixed)*/.datetime-size-fixed.sc-ion-datetime-md-h{width:auto;height:auto}/*!@:host(.datetime-size-fixed:not(.datetime-prefer-wheel))*/.datetime-size-fixed.sc-ion-datetime-md-h:not(.datetime-prefer-wheel){max-width:350px}/*!@:host(.datetime-size-fixed.datetime-prefer-wheel)*/.datetime-size-fixed.datetime-prefer-wheel.sc-ion-datetime-md-h{min-width:350px;max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content}/*!@:host(.datetime-size-cover)*/.datetime-size-cover.sc-ion-datetime-md-h{width:100%}/*!@:host .calendar-body,\n:host .datetime-year*/.sc-ion-datetime-md-h .calendar-body.sc-ion-datetime-md,.sc-ion-datetime-md-h .datetime-year.sc-ion-datetime-md{opacity:0}/*!@:host(:not(.datetime-ready)) .datetime-year*/.sc-ion-datetime-md-h:not(.datetime-ready) .datetime-year.sc-ion-datetime-md{position:absolute;pointer-events:none}/*!@:host(.datetime-ready) .calendar-body*/.datetime-ready.sc-ion-datetime-md-h .calendar-body.sc-ion-datetime-md{opacity:1}/*!@:host(.datetime-ready) .datetime-year*/.datetime-ready.sc-ion-datetime-md-h .datetime-year.sc-ion-datetime-md{display:none;opacity:1}/*!@:host .wheel-order-year-first .day-column*/.sc-ion-datetime-md-h .wheel-order-year-first.sc-ion-datetime-md .day-column.sc-ion-datetime-md{-ms-flex-order:3;order:3;text-align:end}/*!@:host .wheel-order-year-first .month-column*/.sc-ion-datetime-md-h .wheel-order-year-first.sc-ion-datetime-md .month-column.sc-ion-datetime-md{-ms-flex-order:2;order:2;text-align:end}/*!@:host .wheel-order-year-first .year-column*/.sc-ion-datetime-md-h .wheel-order-year-first.sc-ion-datetime-md .year-column.sc-ion-datetime-md{-ms-flex-order:1;order:1;text-align:start}/*!@:host .datetime-calendar,\n:host .datetime-year*/.sc-ion-datetime-md-h .datetime-calendar.sc-ion-datetime-md,.sc-ion-datetime-md-h .datetime-year.sc-ion-datetime-md{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-flow:column;flex-flow:column}/*!@:host(.show-month-and-year) .datetime-year*/.show-month-and-year.sc-ion-datetime-md-h .datetime-year.sc-ion-datetime-md{display:-ms-flexbox;display:flex}@supports (background: -webkit-named-image(apple-pay-logo-black)) and (not (aspect-ratio: 1/1)){/*!@:host(.show-month-and-year) .calendar-next-prev,\n :host(.show-month-and-year) .calendar-days-of-week,\n :host(.show-month-and-year) .calendar-body,\n :host(.show-month-and-year) .datetime-time*/.show-month-and-year.sc-ion-datetime-md-h .calendar-next-prev.sc-ion-datetime-md,.show-month-and-year.sc-ion-datetime-md-h .calendar-days-of-week.sc-ion-datetime-md,.show-month-and-year.sc-ion-datetime-md-h .calendar-body.sc-ion-datetime-md,.show-month-and-year.sc-ion-datetime-md-h .datetime-time.sc-ion-datetime-md{position:absolute;visibility:hidden;pointer-events:none}/*!@@supports (inset-inline-start: 0)*/@supports .sc-ion-datetime-md (inset-inline-start.sc-ion-datetime-md: 0).sc-ion-datetime-md{.sc-ion-datetime-md-h.show-month-and-year .calendar-next-prev,.sc-ion-datetime-md-h.show-month-and-year .calendar-days-of-week,.sc-ion-datetime-md-h.show-month-and-year .calendar-body,.sc-ion-datetime-md-h.show-month-and-year .datetime-time{inset-inline-start:-99999px}}/*!@@supports not (inset-inline-start: 0)*/@supports .sc-ion-datetime-md not.sc-ion-datetime-md (inset-inline-start.sc-ion-datetime-md: 0).sc-ion-datetime-md{.sc-ion-datetime-md-h.show-month-and-year .calendar-next-prev,.sc-ion-datetime-md-h.show-month-and-year .calendar-days-of-week,.sc-ion-datetime-md-h.show-month-and-year .calendar-body,.sc-ion-datetime-md-h.show-month-and-year .datetime-time{left:-99999px}.sc-ion-datetime-md-h[dir=rtl].sc-ion-datetime-md-h.show-month-and-year .calendar-next-prev,[dir=rtl] .sc-ion-datetime-md-h.sc-ion-datetime-md-h.show-month-and-year .calendar-next-prev,.sc-ion-datetime-md-h[dir=rtl].show-month-and-year .calendar-next-prev,[dir=rtl] .sc-ion-datetime-md-h.show-month-and-year .calendar-next-prev,.sc-ion-datetime-md-h[dir=rtl].sc-ion-datetime-md-h.show-month-and-year .calendar-days-of-week,[dir=rtl] .sc-ion-datetime-md-h.sc-ion-datetime-md-h.show-month-and-year .calendar-days-of-week,.sc-ion-datetime-md-h[dir=rtl].show-month-and-year .calendar-days-of-week,[dir=rtl] .sc-ion-datetime-md-h.show-month-and-year .calendar-days-of-week,.sc-ion-datetime-md-h[dir=rtl].sc-ion-datetime-md-h.show-month-and-year .calendar-body,[dir=rtl] .sc-ion-datetime-md-h.sc-ion-datetime-md-h.show-month-and-year .calendar-body,.sc-ion-datetime-md-h[dir=rtl].show-month-and-year .calendar-body,[dir=rtl] .sc-ion-datetime-md-h.show-month-and-year .calendar-body,.sc-ion-datetime-md-h[dir=rtl].sc-ion-datetime-md-h.show-month-and-year .datetime-time,[dir=rtl] .sc-ion-datetime-md-h.sc-ion-datetime-md-h.show-month-and-year .datetime-time,.sc-ion-datetime-md-h[dir=rtl].show-month-and-year .datetime-time,[dir=rtl] .sc-ion-datetime-md-h.show-month-and-year .datetime-time{left:unset;right:unset;right:-99999px}@supports selector(:dir(rtl)){.sc-ion-datetime-md-h.show-month-and-year:dir(rtl) .calendar-next-prev,.sc-ion-datetime-md-h.show-month-and-year:dir(rtl) .calendar-days-of-week,.sc-ion-datetime-md-h.show-month-and-year:dir(rtl) .calendar-body,.sc-ion-datetime-md-h.show-month-and-year:dir(rtl) .datetime-time{left:unset;right:unset;right:-99999px}}}}@supports (not (background: -webkit-named-image(apple-pay-logo-black))) or ((background: -webkit-named-image(apple-pay-logo-black)) and (aspect-ratio: 1/1)){/*!@:host(.show-month-and-year) .calendar-next-prev,\n :host(.show-month-and-year) .calendar-days-of-week,\n :host(.show-month-and-year) .calendar-body,\n :host(.show-month-and-year) .datetime-time*/.show-month-and-year.sc-ion-datetime-md-h .calendar-next-prev.sc-ion-datetime-md,.show-month-and-year.sc-ion-datetime-md-h .calendar-days-of-week.sc-ion-datetime-md,.show-month-and-year.sc-ion-datetime-md-h .calendar-body.sc-ion-datetime-md,.show-month-and-year.sc-ion-datetime-md-h .datetime-time.sc-ion-datetime-md{display:none}}/*!@:host(.month-year-picker-open) .datetime-footer*/.month-year-picker-open.sc-ion-datetime-md-h .datetime-footer.sc-ion-datetime-md{display:none}/*!@:host(.datetime-disabled)*/.datetime-disabled.sc-ion-datetime-md-h{pointer-events:none}/*!@:host(.datetime-disabled) .calendar-days-of-week,\n:host(.datetime-disabled) .datetime-time*/.datetime-disabled.sc-ion-datetime-md-h .calendar-days-of-week.sc-ion-datetime-md,.datetime-disabled.sc-ion-datetime-md-h .datetime-time.sc-ion-datetime-md{opacity:0.4}/*!@:host(.datetime-readonly)*/.datetime-readonly.sc-ion-datetime-md-h{pointer-events:none}/*!@:host(.datetime-readonly) .calendar-action-buttons,\n:host(.datetime-readonly) .calendar-body,\n:host(.datetime-readonly) .datetime-year*/.datetime-readonly.sc-ion-datetime-md-h .calendar-action-buttons.sc-ion-datetime-md,.datetime-readonly.sc-ion-datetime-md-h .calendar-body.sc-ion-datetime-md,.datetime-readonly.sc-ion-datetime-md-h .datetime-year.sc-ion-datetime-md{pointer-events:initial}/*!@:host(.datetime-readonly) .calendar-day[disabled]:not(.calendar-day-constrained),\n:host(.datetime-readonly) .datetime-action-buttons ion-button[disabled]*/.datetime-readonly.sc-ion-datetime-md-h .calendar-day[disabled].sc-ion-datetime-md:not(.calendar-day-constrained),.datetime-readonly.sc-ion-datetime-md-h .datetime-action-buttons.sc-ion-datetime-md ion-button[disabled].sc-ion-datetime-md{opacity:1}/*!@:host .datetime-header .datetime-title*/.sc-ion-datetime-md-h .datetime-header.sc-ion-datetime-md .datetime-title.sc-ion-datetime-md{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}/*!@:host .datetime-action-buttons.has-clear-button*/.sc-ion-datetime-md-h .datetime-action-buttons.has-clear-button.sc-ion-datetime-md{width:100%}/*!@:host .datetime-action-buttons ion-buttons*/.sc-ion-datetime-md-h .datetime-action-buttons.sc-ion-datetime-md ion-buttons.sc-ion-datetime-md{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}/*!@.datetime-action-buttons .datetime-action-buttons-container*/.datetime-action-buttons.sc-ion-datetime-md .datetime-action-buttons-container.sc-ion-datetime-md{display:-ms-flexbox;display:flex}/*!@:host .calendar-action-buttons*/.sc-ion-datetime-md-h .calendar-action-buttons.sc-ion-datetime-md{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}/*!@:host .calendar-action-buttons ion-item,\n:host .calendar-action-buttons ion-button*/.sc-ion-datetime-md-h .calendar-action-buttons.sc-ion-datetime-md ion-item.sc-ion-datetime-md,.sc-ion-datetime-md-h .calendar-action-buttons.sc-ion-datetime-md ion-button.sc-ion-datetime-md{--background:translucent}/*!@:host .calendar-action-buttons ion-item ion-label*/.sc-ion-datetime-md-h .calendar-action-buttons.sc-ion-datetime-md ion-item.sc-ion-datetime-md ion-label.sc-ion-datetime-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;width:auto}/*!@:host .calendar-action-buttons ion-item ion-icon*/.sc-ion-datetime-md-h .calendar-action-buttons.sc-ion-datetime-md ion-item.sc-ion-datetime-md ion-icon.sc-ion-datetime-md{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:0;padding-inline-end:0;padding-top:0;padding-bottom:0}/*!@:host .calendar-days-of-week*/.sc-ion-datetime-md-h .calendar-days-of-week.sc-ion-datetime-md{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}/*!@.calendar-days-of-week .day-of-week*/.calendar-days-of-week.sc-ion-datetime-md .day-of-week.sc-ion-datetime-md{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0}/*!@:host .calendar-body*/.sc-ion-datetime-md-h .calendar-body.sc-ion-datetime-md{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-webkit-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;overflow-x:scroll;overflow-y:hidden;scrollbar-width:none;outline:none}/*!@:host .calendar-body .calendar-month*/.sc-ion-datetime-md-h .calendar-body.sc-ion-datetime-md .calendar-month.sc-ion-datetime-md{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;scroll-snap-align:start;scroll-snap-stop:always;-ms-flex-negative:0;flex-shrink:0;width:100%}/*!@:host .calendar-body .calendar-month-disabled*/.sc-ion-datetime-md-h .calendar-body.sc-ion-datetime-md .calendar-month-disabled.sc-ion-datetime-md{scroll-snap-align:none}/*!@:host .calendar-body::-webkit-scrollbar*/.sc-ion-datetime-md-h .calendar-body.sc-ion-datetime-md::-webkit-scrollbar{display:none}/*!@:host .calendar-body .calendar-month-grid*/.sc-ion-datetime-md-h .calendar-body.sc-ion-datetime-md .calendar-month-grid.sc-ion-datetime-md{display:grid;grid-template-columns:repeat(7, 1fr)}/*!@:host .calendar-day-wrapper*/.sc-ion-datetime-md-h .calendar-day-wrapper.sc-ion-datetime-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:0;min-height:0;overflow:visible}/*!@.calendar-day*/.calendar-day.sc-ion-datetime-md{border-radius:50%;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:0px;padding-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:0px;margin-bottom:0px;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border:none;outline:none;background:none;color:currentColor;font-family:var(--ion-font-family, inherit);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:0}/*!@:host .calendar-day[disabled]*/.sc-ion-datetime-md-h .calendar-day[disabled].sc-ion-datetime-md{pointer-events:none;opacity:0.4}/*!@.calendar-day:focus*/.calendar-day.sc-ion-datetime-md:focus{background:rgba(var(--ion-color-base-rgb), 0.2);-webkit-box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2)}/*!@:host .datetime-time*/.sc-ion-datetime-md-h .datetime-time.sc-ion-datetime-md{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}/*!@:host(.datetime-presentation-time) .datetime-time*/.datetime-presentation-time.sc-ion-datetime-md-h .datetime-time.sc-ion-datetime-md{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}/*!@:host ion-popover*/.sc-ion-datetime-md-h ion-popover.sc-ion-datetime-md{--height:200px}/*!@:host .time-header*/.sc-ion-datetime-md-h .time-header.sc-ion-datetime-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}/*!@:host .time-body*/.sc-ion-datetime-md-h .time-body.sc-ion-datetime-md{border-radius:8px;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px;display:-ms-flexbox;display:flex;border:none;background:var(--ion-color-step-300, #edeef0);color:var(--ion-text-color, #000);font-family:inherit;font-size:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}/*!@:host .time-body-active*/.sc-ion-datetime-md-h .time-body-active.sc-ion-datetime-md{color:var(--ion-color-base)}/*!@:host(.in-item)*/.in-item.sc-ion-datetime-md-h{position:static}/*!@:host(.show-month-and-year) .calendar-action-buttons ion-item*/.show-month-and-year.sc-ion-datetime-md-h .calendar-action-buttons.sc-ion-datetime-md ion-item.sc-ion-datetime-md{--color:var(--ion-color-base)}/*!@:host*/.sc-ion-datetime-md-h{--background:var(--ion-color-step-100, #ffffff);--title-color:var(--ion-color-contrast)}/*!@:host .datetime-header*/.sc-ion-datetime-md-h .datetime-header.sc-ion-datetime-md{-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:20px;padding-inline-end:20px;padding-top:20px;padding-bottom:20px;background:var(--ion-color-base);color:var(--title-color)}/*!@:host .datetime-header .datetime-title*/.sc-ion-datetime-md-h .datetime-header.sc-ion-datetime-md .datetime-title.sc-ion-datetime-md{font-size:0.75rem;text-transform:uppercase}/*!@:host .datetime-header .datetime-selected-date*/.sc-ion-datetime-md-h .datetime-header.sc-ion-datetime-md .datetime-selected-date.sc-ion-datetime-md{margin-top:30px;font-size:2.125rem}/*!@:host .datetime-calendar .calendar-action-buttons ion-item*/.sc-ion-datetime-md-h .datetime-calendar.sc-ion-datetime-md .calendar-action-buttons.sc-ion-datetime-md ion-item.sc-ion-datetime-md{--padding-start:20px}/*!@:host .calendar-action-buttons ion-item,\n:host .calendar-action-buttons ion-button*/.sc-ion-datetime-md-h .calendar-action-buttons.sc-ion-datetime-md ion-item.sc-ion-datetime-md,.sc-ion-datetime-md-h .calendar-action-buttons.sc-ion-datetime-md ion-button.sc-ion-datetime-md{--color:var(--ion-color-step-650, #595959)}/*!@:host .calendar-days-of-week*/.sc-ion-datetime-md-h .calendar-days-of-week.sc-ion-datetime-md{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:0px;padding-bottom:0px;color:var(--ion-color-step-500, gray);font-size:0.875rem;line-height:36px}/*!@:host .calendar-body .calendar-month .calendar-month-grid*/.sc-ion-datetime-md-h .calendar-body.sc-ion-datetime-md .calendar-month.sc-ion-datetime-md .calendar-month-grid.sc-ion-datetime-md{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:4px;padding-bottom:4px;grid-template-rows:repeat(6, 1fr)}/*!@:host .calendar-day*/.sc-ion-datetime-md-h .calendar-day.sc-ion-datetime-md{width:42px;min-width:42px;height:42px;font-size:0.875rem}/*!@:host .calendar-day.calendar-day-today*/.sc-ion-datetime-md-h .calendar-day.calendar-day-today.sc-ion-datetime-md{border:1px solid var(--ion-color-base);color:var(--ion-color-base)}/*!@:host .calendar-day.calendar-day-active*/.sc-ion-datetime-md-h .calendar-day.calendar-day-active.sc-ion-datetime-md{color:var(--ion-color-contrast)}/*!@.calendar-day.calendar-day-active*/.calendar-day.calendar-day-active.sc-ion-datetime-md{border:1px solid var(--ion-color-base);background:var(--ion-color-base)}/*!@:host .datetime-time*/.sc-ion-datetime-md-h .datetime-time.sc-ion-datetime-md{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:8px;padding-bottom:8px}/*!@:host .time-header*/.sc-ion-datetime-md-h .time-header.sc-ion-datetime-md{color:var(--ion-color-step-650, #595959)}/*!@:host(.datetime-presentation-month) .datetime-year,\n:host(.datetime-presentation-year) .datetime-year,\n:host(.datetime-presentation-month-year) .datetime-year*/.datetime-presentation-month.sc-ion-datetime-md-h .datetime-year.sc-ion-datetime-md,.datetime-presentation-year.sc-ion-datetime-md-h .datetime-year.sc-ion-datetime-md,.datetime-presentation-month-year.sc-ion-datetime-md-h .datetime-year.sc-ion-datetime-md{margin-top:20px;margin-bottom:20px}/*!@:host .datetime-buttons*/.sc-ion-datetime-md-h .datetime-buttons.sc-ion-datetime-md{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:10px;padding-bottom:10px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end}";
|
|
14941
|
+
const datetimeMdCss = "/*!@:host*/.sc-ion-datetime-md-h{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;background:var(--background);overflow:hidden}/*!@:host(.datetime-size-fixed)*/.datetime-size-fixed.sc-ion-datetime-md-h{width:auto;height:auto}/*!@:host(.datetime-size-fixed:not(.datetime-prefer-wheel))*/.datetime-size-fixed.sc-ion-datetime-md-h:not(.datetime-prefer-wheel){max-width:350px}/*!@:host(.datetime-size-fixed.datetime-prefer-wheel)*/.datetime-size-fixed.datetime-prefer-wheel.sc-ion-datetime-md-h{min-width:350px;max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content}/*!@:host(.datetime-size-cover)*/.datetime-size-cover.sc-ion-datetime-md-h{width:100%}/*!@:host .calendar-body,\n:host .datetime-year*/.sc-ion-datetime-md-h .calendar-body.sc-ion-datetime-md,.sc-ion-datetime-md-h .datetime-year.sc-ion-datetime-md{opacity:0}/*!@:host(:not(.datetime-ready)) .datetime-year*/.sc-ion-datetime-md-h:not(.datetime-ready) .datetime-year.sc-ion-datetime-md{position:absolute;pointer-events:none}/*!@:host(.datetime-ready) .calendar-body*/.datetime-ready.sc-ion-datetime-md-h .calendar-body.sc-ion-datetime-md{opacity:1}/*!@:host(.datetime-ready) .datetime-year*/.datetime-ready.sc-ion-datetime-md-h .datetime-year.sc-ion-datetime-md{display:none;opacity:1}/*!@:host .wheel-order-year-first .day-column*/.sc-ion-datetime-md-h .wheel-order-year-first.sc-ion-datetime-md .day-column.sc-ion-datetime-md{-ms-flex-order:3;order:3;text-align:end}/*!@:host .wheel-order-year-first .month-column*/.sc-ion-datetime-md-h .wheel-order-year-first.sc-ion-datetime-md .month-column.sc-ion-datetime-md{-ms-flex-order:2;order:2;text-align:end}/*!@:host .wheel-order-year-first .year-column*/.sc-ion-datetime-md-h .wheel-order-year-first.sc-ion-datetime-md .year-column.sc-ion-datetime-md{-ms-flex-order:1;order:1;text-align:start}/*!@:host .datetime-calendar,\n:host .datetime-year*/.sc-ion-datetime-md-h .datetime-calendar.sc-ion-datetime-md,.sc-ion-datetime-md-h .datetime-year.sc-ion-datetime-md{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-flow:column;flex-flow:column}/*!@:host(.show-month-and-year) .datetime-year*/.show-month-and-year.sc-ion-datetime-md-h .datetime-year.sc-ion-datetime-md{display:-ms-flexbox;display:flex}@supports (background: -webkit-named-image(apple-pay-logo-black)) and (not (aspect-ratio: 1/1)){/*!@:host(.show-month-and-year) .calendar-next-prev,\n :host(.show-month-and-year) .calendar-days-of-week,\n :host(.show-month-and-year) .calendar-body,\n :host(.show-month-and-year) .datetime-time*/.show-month-and-year.sc-ion-datetime-md-h .calendar-next-prev.sc-ion-datetime-md,.show-month-and-year.sc-ion-datetime-md-h .calendar-days-of-week.sc-ion-datetime-md,.show-month-and-year.sc-ion-datetime-md-h .calendar-body.sc-ion-datetime-md,.show-month-and-year.sc-ion-datetime-md-h .datetime-time.sc-ion-datetime-md{position:absolute;visibility:hidden;pointer-events:none}/*!@@supports (inset-inline-start: 0)*/@supports .sc-ion-datetime-md (inset-inline-start.sc-ion-datetime-md: 0).sc-ion-datetime-md{.sc-ion-datetime-md-h.show-month-and-year .calendar-next-prev,.sc-ion-datetime-md-h.show-month-and-year .calendar-days-of-week,.sc-ion-datetime-md-h.show-month-and-year .calendar-body,.sc-ion-datetime-md-h.show-month-and-year .datetime-time{inset-inline-start:-99999px}}/*!@@supports not (inset-inline-start: 0)*/@supports .sc-ion-datetime-md not.sc-ion-datetime-md (inset-inline-start.sc-ion-datetime-md: 0).sc-ion-datetime-md{.sc-ion-datetime-md-h.show-month-and-year .calendar-next-prev,.sc-ion-datetime-md-h.show-month-and-year .calendar-days-of-week,.sc-ion-datetime-md-h.show-month-and-year .calendar-body,.sc-ion-datetime-md-h.show-month-and-year .datetime-time{left:-99999px}.sc-ion-datetime-md-h[dir=rtl].sc-ion-datetime-md-h.show-month-and-year .calendar-next-prev,[dir=rtl] .sc-ion-datetime-md-h.sc-ion-datetime-md-h.show-month-and-year .calendar-next-prev,.sc-ion-datetime-md-h[dir=rtl].show-month-and-year .calendar-next-prev,[dir=rtl] .sc-ion-datetime-md-h.show-month-and-year .calendar-next-prev,.sc-ion-datetime-md-h[dir=rtl].sc-ion-datetime-md-h.show-month-and-year .calendar-days-of-week,[dir=rtl] .sc-ion-datetime-md-h.sc-ion-datetime-md-h.show-month-and-year .calendar-days-of-week,.sc-ion-datetime-md-h[dir=rtl].show-month-and-year .calendar-days-of-week,[dir=rtl] .sc-ion-datetime-md-h.show-month-and-year .calendar-days-of-week,.sc-ion-datetime-md-h[dir=rtl].sc-ion-datetime-md-h.show-month-and-year .calendar-body,[dir=rtl] .sc-ion-datetime-md-h.sc-ion-datetime-md-h.show-month-and-year .calendar-body,.sc-ion-datetime-md-h[dir=rtl].show-month-and-year .calendar-body,[dir=rtl] .sc-ion-datetime-md-h.show-month-and-year .calendar-body,.sc-ion-datetime-md-h[dir=rtl].sc-ion-datetime-md-h.show-month-and-year .datetime-time,[dir=rtl] .sc-ion-datetime-md-h.sc-ion-datetime-md-h.show-month-and-year .datetime-time,.sc-ion-datetime-md-h[dir=rtl].show-month-and-year .datetime-time,[dir=rtl] .sc-ion-datetime-md-h.show-month-and-year .datetime-time{left:unset;right:unset;right:-99999px}@supports selector(:dir(rtl)){.sc-ion-datetime-md-h.show-month-and-year:dir(rtl) .calendar-next-prev,.sc-ion-datetime-md-h.show-month-and-year:dir(rtl) .calendar-days-of-week,.sc-ion-datetime-md-h.show-month-and-year:dir(rtl) .calendar-body,.sc-ion-datetime-md-h.show-month-and-year:dir(rtl) .datetime-time{left:unset;right:unset;right:-99999px}}}}@supports (not (background: -webkit-named-image(apple-pay-logo-black))) or ((background: -webkit-named-image(apple-pay-logo-black)) and (aspect-ratio: 1/1)){/*!@:host(.show-month-and-year) .calendar-next-prev,\n :host(.show-month-and-year) .calendar-days-of-week,\n :host(.show-month-and-year) .calendar-body,\n :host(.show-month-and-year) .datetime-time*/.show-month-and-year.sc-ion-datetime-md-h .calendar-next-prev.sc-ion-datetime-md,.show-month-and-year.sc-ion-datetime-md-h .calendar-days-of-week.sc-ion-datetime-md,.show-month-and-year.sc-ion-datetime-md-h .calendar-body.sc-ion-datetime-md,.show-month-and-year.sc-ion-datetime-md-h .datetime-time.sc-ion-datetime-md{display:none}}/*!@:host(.month-year-picker-open) .datetime-footer*/.month-year-picker-open.sc-ion-datetime-md-h .datetime-footer.sc-ion-datetime-md{display:none}/*!@:host(.datetime-disabled)*/.datetime-disabled.sc-ion-datetime-md-h{pointer-events:none}/*!@:host(.datetime-disabled) .calendar-days-of-week,\n:host(.datetime-disabled) .datetime-time*/.datetime-disabled.sc-ion-datetime-md-h .calendar-days-of-week.sc-ion-datetime-md,.datetime-disabled.sc-ion-datetime-md-h .datetime-time.sc-ion-datetime-md{opacity:0.4}/*!@:host(.datetime-readonly)*/.datetime-readonly.sc-ion-datetime-md-h{pointer-events:none}/*!@:host(.datetime-readonly) .calendar-action-buttons,\n:host(.datetime-readonly) .calendar-body,\n:host(.datetime-readonly) .datetime-year*/.datetime-readonly.sc-ion-datetime-md-h .calendar-action-buttons.sc-ion-datetime-md,.datetime-readonly.sc-ion-datetime-md-h .calendar-body.sc-ion-datetime-md,.datetime-readonly.sc-ion-datetime-md-h .datetime-year.sc-ion-datetime-md{pointer-events:initial}/*!@:host(.datetime-readonly) .calendar-day[disabled]:not(.calendar-day-constrained),\n:host(.datetime-readonly) .datetime-action-buttons ion-button[disabled]*/.datetime-readonly.sc-ion-datetime-md-h .calendar-day[disabled].sc-ion-datetime-md:not(.calendar-day-constrained),.datetime-readonly.sc-ion-datetime-md-h .datetime-action-buttons.sc-ion-datetime-md ion-button[disabled].sc-ion-datetime-md{opacity:1}/*!@:host .datetime-header .datetime-title*/.sc-ion-datetime-md-h .datetime-header.sc-ion-datetime-md .datetime-title.sc-ion-datetime-md{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}/*!@:host .datetime-action-buttons.has-clear-button*/.sc-ion-datetime-md-h .datetime-action-buttons.has-clear-button.sc-ion-datetime-md{width:100%}/*!@:host .datetime-action-buttons ion-buttons*/.sc-ion-datetime-md-h .datetime-action-buttons.sc-ion-datetime-md ion-buttons.sc-ion-datetime-md{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}/*!@.datetime-action-buttons .datetime-action-buttons-container*/.datetime-action-buttons.sc-ion-datetime-md .datetime-action-buttons-container.sc-ion-datetime-md{display:-ms-flexbox;display:flex}/*!@:host .calendar-action-buttons*/.sc-ion-datetime-md-h .calendar-action-buttons.sc-ion-datetime-md{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}/*!@:host .calendar-action-buttons ion-button*/.sc-ion-datetime-md-h .calendar-action-buttons.sc-ion-datetime-md ion-button.sc-ion-datetime-md{--background:transparent}/*!@:host .calendar-days-of-week*/.sc-ion-datetime-md-h .calendar-days-of-week.sc-ion-datetime-md{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}/*!@.calendar-days-of-week .day-of-week*/.calendar-days-of-week.sc-ion-datetime-md .day-of-week.sc-ion-datetime-md{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0}/*!@:host .calendar-body*/.sc-ion-datetime-md-h .calendar-body.sc-ion-datetime-md{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-webkit-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;overflow-x:scroll;overflow-y:hidden;scrollbar-width:none;outline:none}/*!@:host .calendar-body .calendar-month*/.sc-ion-datetime-md-h .calendar-body.sc-ion-datetime-md .calendar-month.sc-ion-datetime-md{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;scroll-snap-align:start;scroll-snap-stop:always;-ms-flex-negative:0;flex-shrink:0;width:100%}/*!@:host .calendar-body .calendar-month-disabled*/.sc-ion-datetime-md-h .calendar-body.sc-ion-datetime-md .calendar-month-disabled.sc-ion-datetime-md{scroll-snap-align:none}/*!@:host .calendar-body::-webkit-scrollbar*/.sc-ion-datetime-md-h .calendar-body.sc-ion-datetime-md::-webkit-scrollbar{display:none}/*!@:host .calendar-body .calendar-month-grid*/.sc-ion-datetime-md-h .calendar-body.sc-ion-datetime-md .calendar-month-grid.sc-ion-datetime-md{display:grid;grid-template-columns:repeat(7, 1fr)}/*!@:host .calendar-day-wrapper*/.sc-ion-datetime-md-h .calendar-day-wrapper.sc-ion-datetime-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:0;min-height:0;overflow:visible}/*!@.calendar-day*/.calendar-day.sc-ion-datetime-md{border-radius:50%;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:0px;padding-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:0px;margin-bottom:0px;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border:none;outline:none;background:none;color:currentColor;font-family:var(--ion-font-family, inherit);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:0}/*!@:host .calendar-day[disabled]*/.sc-ion-datetime-md-h .calendar-day[disabled].sc-ion-datetime-md{pointer-events:none;opacity:0.4}/*!@.calendar-day:focus*/.calendar-day.sc-ion-datetime-md:focus{background:rgba(var(--ion-color-base-rgb), 0.2);-webkit-box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2)}/*!@:host .datetime-time*/.sc-ion-datetime-md-h .datetime-time.sc-ion-datetime-md{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}/*!@:host(.datetime-presentation-time) .datetime-time*/.datetime-presentation-time.sc-ion-datetime-md-h .datetime-time.sc-ion-datetime-md{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}/*!@:host ion-popover*/.sc-ion-datetime-md-h ion-popover.sc-ion-datetime-md{--height:200px}/*!@:host .time-header*/.sc-ion-datetime-md-h .time-header.sc-ion-datetime-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}/*!@:host .time-body*/.sc-ion-datetime-md-h .time-body.sc-ion-datetime-md{border-radius:8px;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px;display:-ms-flexbox;display:flex;border:none;background:var(--ion-color-step-300, #edeef0);color:var(--ion-text-color, #000);font-family:inherit;font-size:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}/*!@:host .time-body-active*/.sc-ion-datetime-md-h .time-body-active.sc-ion-datetime-md{color:var(--ion-color-base)}/*!@:host(.in-item)*/.in-item.sc-ion-datetime-md-h{position:static}/*!@:host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle*/.show-month-and-year.sc-ion-datetime-md-h .calendar-action-buttons.sc-ion-datetime-md .calendar-month-year-toggle.sc-ion-datetime-md{color:var(--ion-color-base)}/*!@.calendar-month-year*/.calendar-month-year.sc-ion-datetime-md{min-width:0}/*!@.calendar-month-year-toggle*/.calendar-month-year-toggle.sc-ion-datetime-md{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;position:relative;border:0;outline:none;background:transparent;cursor:pointer;z-index:1}/*!@.calendar-month-year-toggle::after*/.calendar-month-year-toggle.sc-ion-datetime-md::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\"\";opacity:0;-webkit-transition:opacity 15ms linear, background-color 15ms linear;transition:opacity 15ms linear, background-color 15ms linear;z-index:-1}/*!@.calendar-month-year-toggle.ion-focused::after*/.calendar-month-year-toggle.ion-focused.sc-ion-datetime-md::after{background:currentColor}/*!@.calendar-month-year-toggle:disabled*/.calendar-month-year-toggle.sc-ion-datetime-md:disabled{opacity:0.3;pointer-events:none}/*!@.calendar-month-year-toggle ion-icon*/.calendar-month-year-toggle.sc-ion-datetime-md ion-icon.sc-ion-datetime-md{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:0;padding-inline-end:0;padding-top:0;padding-bottom:0;-ms-flex-negative:0;flex-shrink:0}/*!@.calendar-month-year-toggle #toggle-wrapper*/.calendar-month-year-toggle.sc-ion-datetime-md #toggle-wrapper.sc-ion-datetime-md{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center}/*!@ion-picker*/ion-picker.sc-ion-datetime-md{--highlight-background:var(--wheel-highlight-background);--highlight-border-radius:var(--wheel-highlight-border-radius);--fade-background-rgb:var(--wheel-fade-background-rgb)}/*!@:host*/.sc-ion-datetime-md-h{--background:var(--ion-color-step-100, #ffffff);--title-color:var(--ion-color-contrast)}/*!@:host .datetime-header*/.sc-ion-datetime-md-h .datetime-header.sc-ion-datetime-md{-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:20px;padding-inline-end:20px;padding-top:20px;padding-bottom:20px;background:var(--ion-color-base);color:var(--title-color)}/*!@:host .datetime-header .datetime-title*/.sc-ion-datetime-md-h .datetime-header.sc-ion-datetime-md .datetime-title.sc-ion-datetime-md{font-size:0.75rem;text-transform:uppercase}/*!@:host .datetime-header .datetime-selected-date*/.sc-ion-datetime-md-h .datetime-header.sc-ion-datetime-md .datetime-selected-date.sc-ion-datetime-md{margin-top:30px;font-size:2.125rem}/*!@:host .calendar-action-buttons ion-button*/.sc-ion-datetime-md-h .calendar-action-buttons.sc-ion-datetime-md ion-button.sc-ion-datetime-md{--color:var(--ion-color-step-650, #595959)}/*!@.calendar-month-year-toggle*/.calendar-month-year-toggle.sc-ion-datetime-md{-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:12px;padding-bottom:12px;min-height:48px;background:transparent;color:var(--ion-color-step-650, #595959);z-index:1}/*!@.calendar-month-year-toggle.ion-focused::after*/.calendar-month-year-toggle.ion-focused.sc-ion-datetime-md::after{opacity:0.04}/*!@.calendar-month-year-toggle ion-ripple-effect*/.calendar-month-year-toggle.sc-ion-datetime-md ion-ripple-effect.sc-ion-datetime-md{color:currentColor}@media (any-hover: hover){/*!@.calendar-month-year-toggle.ion-activatable:not(.ion-focused):hover::after*/.calendar-month-year-toggle.ion-activatable.sc-ion-datetime-md:not(.ion-focused):hover::after{background:currentColor;opacity:0.04}}/*!@:host .calendar-days-of-week*/.sc-ion-datetime-md-h .calendar-days-of-week.sc-ion-datetime-md{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:0px;padding-bottom:0px;color:var(--ion-color-step-500, gray);font-size:0.875rem;line-height:36px}/*!@:host .calendar-body .calendar-month .calendar-month-grid*/.sc-ion-datetime-md-h .calendar-body.sc-ion-datetime-md .calendar-month.sc-ion-datetime-md .calendar-month-grid.sc-ion-datetime-md{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:4px;padding-bottom:4px;grid-template-rows:repeat(6, 1fr)}/*!@:host .calendar-day*/.sc-ion-datetime-md-h .calendar-day.sc-ion-datetime-md{width:42px;min-width:42px;height:42px;font-size:0.875rem}/*!@:host .calendar-day.calendar-day-today*/.sc-ion-datetime-md-h .calendar-day.calendar-day-today.sc-ion-datetime-md{border:1px solid var(--ion-color-base);color:var(--ion-color-base)}/*!@:host .calendar-day.calendar-day-active*/.sc-ion-datetime-md-h .calendar-day.calendar-day-active.sc-ion-datetime-md{color:var(--ion-color-contrast)}/*!@.calendar-day.calendar-day-active*/.calendar-day.calendar-day-active.sc-ion-datetime-md{border:1px solid var(--ion-color-base);background:var(--ion-color-base)}/*!@:host .datetime-time*/.sc-ion-datetime-md-h .datetime-time.sc-ion-datetime-md{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:8px;padding-bottom:8px}/*!@:host .time-header*/.sc-ion-datetime-md-h .time-header.sc-ion-datetime-md{color:var(--ion-color-step-650, #595959)}/*!@:host(.datetime-presentation-month) .datetime-year,\n:host(.datetime-presentation-year) .datetime-year,\n:host(.datetime-presentation-month-year) .datetime-year*/.datetime-presentation-month.sc-ion-datetime-md-h .datetime-year.sc-ion-datetime-md,.datetime-presentation-year.sc-ion-datetime-md-h .datetime-year.sc-ion-datetime-md,.datetime-presentation-month-year.sc-ion-datetime-md-h .datetime-year.sc-ion-datetime-md{margin-top:20px;margin-bottom:20px}/*!@:host .datetime-buttons*/.sc-ion-datetime-md-h .datetime-buttons.sc-ion-datetime-md{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:10px;padding-bottom:10px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end}";
|
|
14950
14942
|
|
|
14951
14943
|
/**
|
|
14952
14944
|
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
@@ -15936,7 +15928,7 @@ class Datetime {
|
|
|
15936
15928
|
const renderArray = forcePresentation === 'time-date'
|
|
15937
15929
|
? [this.renderTimePickerColumns(forcePresentation), this.renderDatePickerColumns(forcePresentation)]
|
|
15938
15930
|
: [this.renderDatePickerColumns(forcePresentation), this.renderTimePickerColumns(forcePresentation)];
|
|
15939
|
-
return hAsync("ion-picker
|
|
15931
|
+
return hAsync("ion-picker", null, renderArray);
|
|
15940
15932
|
}
|
|
15941
15933
|
renderDatePickerColumns(forcePresentation) {
|
|
15942
15934
|
return forcePresentation === 'date-time' || forcePresentation === 'time-date'
|
|
@@ -15995,7 +15987,7 @@ class Datetime {
|
|
|
15995
15987
|
const todayString = workingParts.day !== null
|
|
15996
15988
|
? `${workingParts.year}-${workingParts.month}-${workingParts.day}`
|
|
15997
15989
|
: `${defaultParts.year}-${defaultParts.month}-${defaultParts.day}`;
|
|
15998
|
-
return (hAsync("ion-picker-column
|
|
15990
|
+
return (hAsync("ion-picker-column", { class: "date-column", color: this.color, disabled: disabled, value: todayString, onIonChange: (ev) => {
|
|
15999
15991
|
// TODO(FW-1823) Remove this when iOS 14 support is dropped.
|
|
16000
15992
|
// Due to a Safari 14 issue we need to destroy
|
|
16001
15993
|
// the scroll listener before we update state
|
|
@@ -16011,7 +16003,7 @@ class Datetime {
|
|
|
16011
16003
|
// the working parts have been updated.
|
|
16012
16004
|
this.initializeCalendarListener();
|
|
16013
16005
|
ev.stopPropagation();
|
|
16014
|
-
} }));
|
|
16006
|
+
} }, items.map((item) => (hAsync("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)))));
|
|
16015
16007
|
}
|
|
16016
16008
|
renderIndividualDatePickerColumns(forcePresentation) {
|
|
16017
16009
|
const { workingParts, isDateEnabled } = this;
|
|
@@ -16079,7 +16071,8 @@ class Datetime {
|
|
|
16079
16071
|
}
|
|
16080
16072
|
const { disabled, workingParts } = this;
|
|
16081
16073
|
const activePart = this.getActivePartsWithFallback();
|
|
16082
|
-
|
|
16074
|
+
const pickerColumnValue = (_a = (workingParts.day !== null ? workingParts.day : this.defaultParts.day)) !== null && _a !== void 0 ? _a : undefined;
|
|
16075
|
+
return (hAsync("ion-picker-column", { class: "day-column", color: this.color, disabled: disabled, value: pickerColumnValue, onIonChange: (ev) => {
|
|
16083
16076
|
// TODO(FW-1823) Remove this when iOS 14 support is dropped.
|
|
16084
16077
|
// Due to a Safari 14 issue we need to destroy
|
|
16085
16078
|
// the scroll listener before we update state
|
|
@@ -16093,7 +16086,7 @@ class Datetime {
|
|
|
16093
16086
|
// the working parts have been updated.
|
|
16094
16087
|
this.initializeCalendarListener();
|
|
16095
16088
|
ev.stopPropagation();
|
|
16096
|
-
} }));
|
|
16089
|
+
} }, days.map((day) => (hAsync("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)))));
|
|
16097
16090
|
}
|
|
16098
16091
|
renderMonthPickerColumn(months) {
|
|
16099
16092
|
if (months.length === 0) {
|
|
@@ -16101,7 +16094,7 @@ class Datetime {
|
|
|
16101
16094
|
}
|
|
16102
16095
|
const { disabled, workingParts } = this;
|
|
16103
16096
|
const activePart = this.getActivePartsWithFallback();
|
|
16104
|
-
return (hAsync("ion-picker-column
|
|
16097
|
+
return (hAsync("ion-picker-column", { class: "month-column", color: this.color, disabled: disabled, value: workingParts.month, onIonChange: (ev) => {
|
|
16105
16098
|
// TODO(FW-1823) Remove this when iOS 14 support is dropped.
|
|
16106
16099
|
// Due to a Safari 14 issue we need to destroy
|
|
16107
16100
|
// the scroll listener before we update state
|
|
@@ -16115,7 +16108,7 @@ class Datetime {
|
|
|
16115
16108
|
// the working parts have been updated.
|
|
16116
16109
|
this.initializeCalendarListener();
|
|
16117
16110
|
ev.stopPropagation();
|
|
16118
|
-
} }));
|
|
16111
|
+
} }, months.map((month) => (hAsync("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)))));
|
|
16119
16112
|
}
|
|
16120
16113
|
renderYearPickerColumn(years) {
|
|
16121
16114
|
if (years.length === 0) {
|
|
@@ -16123,7 +16116,7 @@ class Datetime {
|
|
|
16123
16116
|
}
|
|
16124
16117
|
const { disabled, workingParts } = this;
|
|
16125
16118
|
const activePart = this.getActivePartsWithFallback();
|
|
16126
|
-
return (hAsync("ion-picker-column
|
|
16119
|
+
return (hAsync("ion-picker-column", { class: "year-column", color: this.color, disabled: disabled, value: workingParts.year, onIonChange: (ev) => {
|
|
16127
16120
|
// TODO(FW-1823) Remove this when iOS 14 support is dropped.
|
|
16128
16121
|
// Due to a Safari 14 issue we need to destroy
|
|
16129
16122
|
// the scroll listener before we update state
|
|
@@ -16137,7 +16130,7 @@ class Datetime {
|
|
|
16137
16130
|
// the working parts have been updated.
|
|
16138
16131
|
this.initializeCalendarListener();
|
|
16139
16132
|
ev.stopPropagation();
|
|
16140
|
-
} }));
|
|
16133
|
+
} }, years.map((year) => (hAsync("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)))));
|
|
16141
16134
|
}
|
|
16142
16135
|
renderTimePickerColumns(forcePresentation) {
|
|
16143
16136
|
if (['date', 'month', 'month-year', 'year'].includes(forcePresentation)) {
|
|
@@ -16166,22 +16159,22 @@ class Datetime {
|
|
|
16166
16159
|
if (hoursData.length === 0)
|
|
16167
16160
|
return [];
|
|
16168
16161
|
const activePart = this.getActivePartsWithFallback();
|
|
16169
|
-
return (hAsync("ion-picker-column
|
|
16162
|
+
return (hAsync("ion-picker-column", { color: this.color, disabled: disabled, value: activePart.hour, numericInput: true, onIonChange: (ev) => {
|
|
16170
16163
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { hour: ev.detail.value }));
|
|
16171
16164
|
this.setActiveParts(Object.assign(Object.assign({}, activePart), { hour: ev.detail.value }));
|
|
16172
16165
|
ev.stopPropagation();
|
|
16173
|
-
} }));
|
|
16166
|
+
} }, hoursData.map((hour) => (hAsync("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)))));
|
|
16174
16167
|
}
|
|
16175
16168
|
renderMinutePickerColumn(minutesData) {
|
|
16176
16169
|
const { disabled, workingParts } = this;
|
|
16177
16170
|
if (minutesData.length === 0)
|
|
16178
16171
|
return [];
|
|
16179
16172
|
const activePart = this.getActivePartsWithFallback();
|
|
16180
|
-
return (hAsync("ion-picker-column
|
|
16173
|
+
return (hAsync("ion-picker-column", { color: this.color, disabled: disabled, value: activePart.minute, numericInput: true, onIonChange: (ev) => {
|
|
16181
16174
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { minute: ev.detail.value }));
|
|
16182
16175
|
this.setActiveParts(Object.assign(Object.assign({}, activePart), { minute: ev.detail.value }));
|
|
16183
16176
|
ev.stopPropagation();
|
|
16184
|
-
} }));
|
|
16177
|
+
} }, minutesData.map((minute) => (hAsync("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)))));
|
|
16185
16178
|
}
|
|
16186
16179
|
renderDayPeriodPickerColumn(dayPeriodData) {
|
|
16187
16180
|
const { disabled, workingParts } = this;
|
|
@@ -16190,12 +16183,12 @@ class Datetime {
|
|
|
16190
16183
|
}
|
|
16191
16184
|
const activePart = this.getActivePartsWithFallback();
|
|
16192
16185
|
const isDayPeriodRTL = isLocaleDayPeriodRTL(this.locale);
|
|
16193
|
-
return (hAsync("ion-picker-column
|
|
16186
|
+
return (hAsync("ion-picker-column", { style: isDayPeriodRTL ? { order: '-1' } : {}, color: this.color, disabled: disabled, value: activePart.ampm, onIonChange: (ev) => {
|
|
16194
16187
|
const hour = calculateHourFromAMPM(workingParts, ev.detail.value);
|
|
16195
16188
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { ampm: ev.detail.value, hour }));
|
|
16196
16189
|
this.setActiveParts(Object.assign(Object.assign({}, activePart), { ampm: ev.detail.value, hour }));
|
|
16197
16190
|
ev.stopPropagation();
|
|
16198
|
-
} }));
|
|
16191
|
+
} }, dayPeriodData.map((dayPeriod) => (hAsync("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)))));
|
|
16199
16192
|
}
|
|
16200
16193
|
renderWheelView(forcePresentation) {
|
|
16201
16194
|
const { locale } = this;
|
|
@@ -16216,26 +16209,11 @@ class Datetime {
|
|
|
16216
16209
|
const nextMonthDisabled = disabled || isNextMonthDisabled(this.workingParts, this.maxParts);
|
|
16217
16210
|
// don't use the inheritAttributes util because it removes dir from the host, and we still need that
|
|
16218
16211
|
const hostDir = this.el.getAttribute('dir') || undefined;
|
|
16219
|
-
return (hAsync("div", { class: "calendar-header" }, hAsync("div", { class: "calendar-action-buttons" }, hAsync("div", { class: "calendar-month-year" }, hAsync("
|
|
16220
|
-
|
|
16221
|
-
|
|
16222
|
-
|
|
16223
|
-
|
|
16224
|
-
*
|
|
16225
|
-
* Currently there is not a way to set the aria-label on the inner button
|
|
16226
|
-
* on the `ion-item` and have it be reactive to changes. This is a workaround
|
|
16227
|
-
* until we either refactor `ion-item` to a button or Stencil adds a way to
|
|
16228
|
-
* have reactive props for built-in properties, such as `aria-label`.
|
|
16229
|
-
*/
|
|
16230
|
-
const { monthYearToggleItemRef } = this;
|
|
16231
|
-
if (monthYearToggleItemRef) {
|
|
16232
|
-
const btn = (_a = monthYearToggleItemRef.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-native');
|
|
16233
|
-
if (btn) {
|
|
16234
|
-
const monthYearAriaLabel = this.showMonthAndYear ? 'Hide year picker' : 'Show year picker';
|
|
16235
|
-
btn.setAttribute('aria-label', monthYearAriaLabel);
|
|
16236
|
-
}
|
|
16237
|
-
}
|
|
16238
|
-
} }, hAsync("ion-label", null, getMonthAndYear(this.locale, this.workingParts), hAsync("ion-icon", { "aria-hidden": "true", icon: this.showMonthAndYear ? expandedIcon : collapsedIcon, lazy: false, flipRtl: true })))), hAsync("div", { class: "calendar-next-prev" }, hAsync("ion-buttons", null, hAsync("ion-button", { "aria-label": "Previous month", disabled: prevMonthDisabled, onClick: () => this.prevMonth() }, hAsync("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: chevronBack, lazy: false, flipRtl: true })), hAsync("ion-button", { "aria-label": "Next month", disabled: nextMonthDisabled, onClick: () => this.nextMonth() }, hAsync("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: chevronForward, lazy: false, flipRtl: true }))))), hAsync("div", { class: "calendar-days-of-week", "aria-hidden": "true" }, getDaysOfWeek(this.locale, mode, this.firstDayOfWeek % 7).map((d) => {
|
|
16212
|
+
return (hAsync("div", { class: "calendar-header" }, hAsync("div", { class: "calendar-action-buttons" }, hAsync("div", { class: "calendar-month-year" }, hAsync("button", { class: {
|
|
16213
|
+
'calendar-month-year-toggle': true,
|
|
16214
|
+
'ion-activatable': true,
|
|
16215
|
+
'ion-focusable': true,
|
|
16216
|
+
}, part: "month-year-button", disabled: disabled, "aria-label": this.showMonthAndYear ? 'Hide year picker' : 'Show year picker', onClick: () => this.toggleMonthAndYearView() }, hAsync("span", { id: "toggle-wrapper" }, getMonthAndYear(this.locale, this.workingParts), hAsync("ion-icon", { "aria-hidden": "true", icon: this.showMonthAndYear ? expandedIcon : collapsedIcon, lazy: false, flipRtl: true })), mode === 'md' && hAsync("ion-ripple-effect", null))), hAsync("div", { class: "calendar-next-prev" }, hAsync("ion-buttons", null, hAsync("ion-button", { "aria-label": "Previous month", disabled: prevMonthDisabled, onClick: () => this.prevMonth() }, hAsync("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: chevronBack, lazy: false, flipRtl: true })), hAsync("ion-button", { "aria-label": "Next month", disabled: nextMonthDisabled, onClick: () => this.nextMonth() }, hAsync("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: chevronForward, lazy: false, flipRtl: true }))))), hAsync("div", { class: "calendar-days-of-week", "aria-hidden": "true" }, getDaysOfWeek(this.locale, mode, this.firstDayOfWeek % 7).map((d) => {
|
|
16239
16217
|
return hAsync("div", { class: "day-of-week" }, d);
|
|
16240
16218
|
}))));
|
|
16241
16219
|
}
|
|
@@ -16396,7 +16374,7 @@ class Datetime {
|
|
|
16396
16374
|
* This will correctly scroll the element position to the correct time value,
|
|
16397
16375
|
* before the popover is fully presented.
|
|
16398
16376
|
*/
|
|
16399
|
-
const cols = ev.target.querySelectorAll('ion-picker-column
|
|
16377
|
+
const cols = ev.target.querySelectorAll('ion-picker-column');
|
|
16400
16378
|
// TODO (FW-615): Potentially remove this when intersection observers are fixed in picker column
|
|
16401
16379
|
cols.forEach((col) => col.scrollActiveItemIntoView());
|
|
16402
16380
|
}, style: {
|
|
@@ -16590,6 +16568,8 @@ class Datetime {
|
|
|
16590
16568
|
}; }
|
|
16591
16569
|
}
|
|
16592
16570
|
let datetimeIds = 0;
|
|
16571
|
+
const WHEEL_ITEM_PART = 'wheel-item';
|
|
16572
|
+
const WHEEL_ITEM_ACTIVE_PART = `active`;
|
|
16593
16573
|
|
|
16594
16574
|
const iosDatetimeButtonCss = "/*!@:host*/.sc-ion-datetime-button-ios-h{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}/*!@:host button*/.sc-ion-datetime-button-ios-h button.sc-ion-datetime-button-ios{border-radius:8px;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;margin-top:0px;margin-bottom:0px;position:relative;-webkit-transition:150ms color ease-in-out;transition:150ms color ease-in-out;border:none;background:var(--ion-color-step-300, #edeef0);color:var(--ion-text-color, #000);font-family:inherit;font-size:1rem;cursor:pointer;overflow:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none}/*!@:host(.time-active) #time-button,\n:host(.date-active) #date-button*/.time-active.sc-ion-datetime-button-ios-h #time-button.sc-ion-datetime-button-ios,.date-active.sc-ion-datetime-button-ios-h #date-button.sc-ion-datetime-button-ios{color:var(--ion-color-base)}/*!@:host(.datetime-button-disabled)*/.datetime-button-disabled.sc-ion-datetime-button-ios-h{pointer-events:none}/*!@:host(.datetime-button-disabled) button*/.datetime-button-disabled.sc-ion-datetime-button-ios-h button.sc-ion-datetime-button-ios{opacity:0.4}";
|
|
16595
16575
|
|
|
@@ -24687,1516 +24667,1636 @@ class Note {
|
|
|
24687
24667
|
}; }
|
|
24688
24668
|
}
|
|
24689
24669
|
|
|
24690
|
-
|
|
24691
|
-
* iOS Picker Enter Animation
|
|
24692
|
-
*/
|
|
24693
|
-
const iosEnterAnimation$2 = (baseEl) => {
|
|
24694
|
-
const baseAnimation = createAnimation();
|
|
24695
|
-
const backdropAnimation = createAnimation();
|
|
24696
|
-
const wrapperAnimation = createAnimation();
|
|
24697
|
-
backdropAnimation
|
|
24698
|
-
.addElement(baseEl.querySelector('ion-backdrop'))
|
|
24699
|
-
.fromTo('opacity', 0.01, 'var(--backdrop-opacity)')
|
|
24700
|
-
.beforeStyles({
|
|
24701
|
-
'pointer-events': 'none',
|
|
24702
|
-
})
|
|
24703
|
-
.afterClearStyles(['pointer-events']);
|
|
24704
|
-
wrapperAnimation
|
|
24705
|
-
.addElement(baseEl.querySelector('.picker-wrapper'))
|
|
24706
|
-
.fromTo('transform', 'translateY(100%)', 'translateY(0%)');
|
|
24707
|
-
return baseAnimation
|
|
24708
|
-
.addElement(baseEl)
|
|
24709
|
-
.easing('cubic-bezier(.36,.66,.04,1)')
|
|
24710
|
-
.duration(400)
|
|
24711
|
-
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
24712
|
-
};
|
|
24713
|
-
|
|
24714
|
-
/**
|
|
24715
|
-
* iOS Picker Leave Animation
|
|
24716
|
-
*/
|
|
24717
|
-
const iosLeaveAnimation$2 = (baseEl) => {
|
|
24718
|
-
const baseAnimation = createAnimation();
|
|
24719
|
-
const backdropAnimation = createAnimation();
|
|
24720
|
-
const wrapperAnimation = createAnimation();
|
|
24721
|
-
backdropAnimation
|
|
24722
|
-
.addElement(baseEl.querySelector('ion-backdrop'))
|
|
24723
|
-
.fromTo('opacity', 'var(--backdrop-opacity)', 0.01);
|
|
24724
|
-
wrapperAnimation
|
|
24725
|
-
.addElement(baseEl.querySelector('.picker-wrapper'))
|
|
24726
|
-
.fromTo('transform', 'translateY(0%)', 'translateY(100%)');
|
|
24727
|
-
return baseAnimation
|
|
24728
|
-
.addElement(baseEl)
|
|
24729
|
-
.easing('cubic-bezier(.36,.66,.04,1)')
|
|
24730
|
-
.duration(400)
|
|
24731
|
-
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
24732
|
-
};
|
|
24733
|
-
|
|
24734
|
-
const pickerIosCss = ".sc-ion-picker-ios-h{--border-radius:0;--border-style:solid;--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--max-height:auto;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}@supports (inset-inline-start: 0){.sc-ion-picker-ios-h{inset-inline-start:0}}@supports not (inset-inline-start: 0){.sc-ion-picker-ios-h{left:0}[dir=rtl].sc-ion-picker-ios-h,[dir=rtl] .sc-ion-picker-ios-h{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.sc-ion-picker-ios-h:dir(rtl){left:unset;right:unset;right:0}}}.overlay-hidden.sc-ion-picker-ios-h{display:none}.picker-wrapper.sc-ion-picker-ios{border-radius:var(--border-radius);left:0;right:0;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:auto;margin-bottom:auto;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;overflow:hidden;z-index:10}.picker-toolbar.sc-ion-picker-ios{width:100%;background:transparent;contain:strict;z-index:1}.picker-button.sc-ion-picker-ios{border:0;font-family:inherit}.picker-button.sc-ion-picker-ios:active,.picker-button.sc-ion-picker-ios:focus{outline:none}.picker-columns.sc-ion-picker-ios{display:-ms-flexbox;display:flex;position:relative;-ms-flex-pack:center;justify-content:center;margin-bottom:var(--ion-safe-area-bottom, 0);contain:strict;overflow:hidden}.picker-above-highlight.sc-ion-picker-ios,.picker-below-highlight.sc-ion-picker-ios{display:none;pointer-events:none}.sc-ion-picker-ios-h{--background:var(--ion-background-color, #fff);--border-width:1px 0 0;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, #c8c7cc)));--height:260px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.26);color:var(--ion-item-color, var(--ion-text-color, #000))}.picker-toolbar.sc-ion-picker-ios{display:-ms-flexbox;display:flex;height:44px;border-bottom:0.55px solid var(--border-color)}.picker-toolbar-button.sc-ion-picker-ios{-ms-flex:1;flex:1;text-align:end}.picker-toolbar-button.sc-ion-picker-ios:last-child .picker-button.sc-ion-picker-ios{font-weight:600}.picker-toolbar-button.sc-ion-picker-ios:first-child{font-weight:normal;text-align:start}.picker-button.sc-ion-picker-ios,.picker-button.ion-activated.sc-ion-picker-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-padding-start:1em;padding-inline-start:1em;-webkit-padding-end:1em;padding-inline-end:1em;padding-top:0;padding-bottom:0;height:44px;background:transparent;color:var(--ion-color-primary, #3880ff);font-size:16px}.picker-columns.sc-ion-picker-ios{height:215px;-webkit-perspective:1000px;perspective:1000px}.picker-above-highlight.sc-ion-picker-ios{top:0;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);display:block;position:absolute;width:100%;height:81px;border-bottom:1px solid var(--border-color);background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, var(--background, var(--ion-background-color, #fff))), to(rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8)));background:linear-gradient(to bottom, var(--background, var(--ion-background-color, #fff)) 20%, rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8) 100%);z-index:10}@supports (inset-inline-start: 0){.picker-above-highlight.sc-ion-picker-ios{inset-inline-start:0}}@supports not (inset-inline-start: 0){.picker-above-highlight.sc-ion-picker-ios{left:0}[dir=rtl].sc-ion-picker-ios-h .picker-above-highlight.sc-ion-picker-ios,[dir=rtl] .sc-ion-picker-ios-h .picker-above-highlight.sc-ion-picker-ios{left:unset;right:unset;right:0}[dir=rtl].sc-ion-picker-ios .picker-above-highlight.sc-ion-picker-ios{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.picker-above-highlight.sc-ion-picker-ios:dir(rtl){left:unset;right:unset;right:0}}}.picker-below-highlight.sc-ion-picker-ios{top:115px;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);display:block;position:absolute;width:100%;height:119px;border-top:1px solid var(--border-color);background:-webkit-gradient(linear, left bottom, left top, color-stop(30%, var(--background, var(--ion-background-color, #fff))), to(rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8)));background:linear-gradient(to top, var(--background, var(--ion-background-color, #fff)) 30%, rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8) 100%);z-index:11}@supports (inset-inline-start: 0){.picker-below-highlight.sc-ion-picker-ios{inset-inline-start:0}}@supports not (inset-inline-start: 0){.picker-below-highlight.sc-ion-picker-ios{left:0}[dir=rtl].sc-ion-picker-ios-h .picker-below-highlight.sc-ion-picker-ios,[dir=rtl] .sc-ion-picker-ios-h .picker-below-highlight.sc-ion-picker-ios{left:unset;right:unset;right:0}[dir=rtl].sc-ion-picker-ios .picker-below-highlight.sc-ion-picker-ios{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.picker-below-highlight.sc-ion-picker-ios:dir(rtl){left:unset;right:unset;right:0}}}";
|
|
24670
|
+
const pickerIosCss$1 = "/*!@:host*/.sc-ion-picker-ios-h{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:200px;direction:ltr;z-index:0}/*!@:host .picker-before,\n:host .picker-after*/.sc-ion-picker-ios-h .picker-before.sc-ion-picker-ios,.sc-ion-picker-ios-h .picker-after.sc-ion-picker-ios{position:absolute;width:100%;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:1;pointer-events:none}/*!@:host .picker-before*/.sc-ion-picker-ios-h .picker-before.sc-ion-picker-ios{top:0;height:83px}@supports (inset-inline-start: 0){/*!@:host .picker-before*/.sc-ion-picker-ios-h .picker-before.sc-ion-picker-ios{inset-inline-start:0}}@supports not (inset-inline-start: 0){/*!@:host .picker-before*/.sc-ion-picker-ios-h .picker-before.sc-ion-picker-ios{left:0}/*!@:host-context([dir=rtl]) .picker-before*/[dir=rtl].sc-ion-picker-ios-h .picker-before.sc-ion-picker-ios,[dir=rtl] .sc-ion-picker-ios-h .picker-before.sc-ion-picker-ios{left:unset;right:unset;right:0}/*!@@supports selector(:dir(rtl))*/@supports .sc-ion-picker-ios selector(.sc-ion-picker-ios:dir(rtl)){.sc-ion-picker-ios-h:dir(rtl) .picker-before{left:unset;right:unset;right:0}}}/*!@:host .picker-after*/.sc-ion-picker-ios-h .picker-after.sc-ion-picker-ios{top:116px;height:84px}@supports (inset-inline-start: 0){/*!@:host .picker-after*/.sc-ion-picker-ios-h .picker-after.sc-ion-picker-ios{inset-inline-start:0}}@supports not (inset-inline-start: 0){/*!@:host .picker-after*/.sc-ion-picker-ios-h .picker-after.sc-ion-picker-ios{left:0}/*!@:host-context([dir=rtl]) .picker-after*/[dir=rtl].sc-ion-picker-ios-h .picker-after.sc-ion-picker-ios,[dir=rtl] .sc-ion-picker-ios-h .picker-after.sc-ion-picker-ios{left:unset;right:unset;right:0}/*!@@supports selector(:dir(rtl))*/@supports .sc-ion-picker-ios selector(.sc-ion-picker-ios:dir(rtl)){.sc-ion-picker-ios-h:dir(rtl) .picker-after{left:unset;right:unset;right:0}}}/*!@:host .picker-highlight*/.sc-ion-picker-ios-h .picker-highlight.sc-ion-picker-ios{border-radius:var(--highlight-border-radius, 8px);left:0;right:0;top:50%;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0;position:absolute;width:calc(100% - 16px);height:34px;-webkit-transform:translateY(-50%);transform:translateY(-50%);background:var(--highlight-background);z-index:-1}/*!@:host input*/.sc-ion-picker-ios-h input.sc-ion-picker-ios{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}/*!@:host ::slotted(ion-picker-column:first-of-type)*/.sc-ion-picker-ios-h .sc-ion-picker-ios-s>ion-picker-column:first-of-type{text-align:start}/*!@:host ::slotted(ion-picker-column:last-of-type)*/.sc-ion-picker-ios-h .sc-ion-picker-ios-s>ion-picker-column:last-of-type{text-align:end}/*!@:host ::slotted(ion-picker-column:only-child)*/.sc-ion-picker-ios-h .sc-ion-picker-ios-s>ion-picker-column:only-child{text-align:center}/*!@:host .picker-before*/.sc-ion-picker-ios-h .picker-before.sc-ion-picker-ios{background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), to(rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8)));background:linear-gradient(to bottom, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8) 100%)}/*!@:host .picker-after*/.sc-ion-picker-ios-h .picker-after.sc-ion-picker-ios{background:-webkit-gradient(linear, left bottom, left top, color-stop(20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), to(rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8)));background:linear-gradient(to top, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8) 100%)}/*!@:host .picker-highlight*/.sc-ion-picker-ios-h .picker-highlight.sc-ion-picker-ios{background:var(--highlight-background, var(--ion-color-step-150, #eeeeef))}";
|
|
24735
24671
|
|
|
24736
|
-
const pickerMdCss = "
|
|
24672
|
+
const pickerMdCss$1 = "/*!@:host*/.sc-ion-picker-md-h{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:200px;direction:ltr;z-index:0}/*!@:host .picker-before,\n:host .picker-after*/.sc-ion-picker-md-h .picker-before.sc-ion-picker-md,.sc-ion-picker-md-h .picker-after.sc-ion-picker-md{position:absolute;width:100%;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:1;pointer-events:none}/*!@:host .picker-before*/.sc-ion-picker-md-h .picker-before.sc-ion-picker-md{top:0;height:83px}@supports (inset-inline-start: 0){/*!@:host .picker-before*/.sc-ion-picker-md-h .picker-before.sc-ion-picker-md{inset-inline-start:0}}@supports not (inset-inline-start: 0){/*!@:host .picker-before*/.sc-ion-picker-md-h .picker-before.sc-ion-picker-md{left:0}/*!@:host-context([dir=rtl]) .picker-before*/[dir=rtl].sc-ion-picker-md-h .picker-before.sc-ion-picker-md,[dir=rtl] .sc-ion-picker-md-h .picker-before.sc-ion-picker-md{left:unset;right:unset;right:0}/*!@@supports selector(:dir(rtl))*/@supports .sc-ion-picker-md selector(.sc-ion-picker-md:dir(rtl)){.sc-ion-picker-md-h:dir(rtl) .picker-before{left:unset;right:unset;right:0}}}/*!@:host .picker-after*/.sc-ion-picker-md-h .picker-after.sc-ion-picker-md{top:116px;height:84px}@supports (inset-inline-start: 0){/*!@:host .picker-after*/.sc-ion-picker-md-h .picker-after.sc-ion-picker-md{inset-inline-start:0}}@supports not (inset-inline-start: 0){/*!@:host .picker-after*/.sc-ion-picker-md-h .picker-after.sc-ion-picker-md{left:0}/*!@:host-context([dir=rtl]) .picker-after*/[dir=rtl].sc-ion-picker-md-h .picker-after.sc-ion-picker-md,[dir=rtl] .sc-ion-picker-md-h .picker-after.sc-ion-picker-md{left:unset;right:unset;right:0}/*!@@supports selector(:dir(rtl))*/@supports .sc-ion-picker-md selector(.sc-ion-picker-md:dir(rtl)){.sc-ion-picker-md-h:dir(rtl) .picker-after{left:unset;right:unset;right:0}}}/*!@:host .picker-highlight*/.sc-ion-picker-md-h .picker-highlight.sc-ion-picker-md{border-radius:var(--highlight-border-radius, 8px);left:0;right:0;top:50%;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0;position:absolute;width:calc(100% - 16px);height:34px;-webkit-transform:translateY(-50%);transform:translateY(-50%);background:var(--highlight-background);z-index:-1}/*!@:host input*/.sc-ion-picker-md-h input.sc-ion-picker-md{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}/*!@:host ::slotted(ion-picker-column:first-of-type)*/.sc-ion-picker-md-h .sc-ion-picker-md-s>ion-picker-column:first-of-type{text-align:start}/*!@:host ::slotted(ion-picker-column:last-of-type)*/.sc-ion-picker-md-h .sc-ion-picker-md-s>ion-picker-column:last-of-type{text-align:end}/*!@:host ::slotted(ion-picker-column:only-child)*/.sc-ion-picker-md-h .sc-ion-picker-md-s>ion-picker-column:only-child{text-align:center}/*!@:host .picker-before*/.sc-ion-picker-md-h .picker-before.sc-ion-picker-md{background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), color-stop(90%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0)));background:linear-gradient(to bottom, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0) 90%)}/*!@:host .picker-after*/.sc-ion-picker-md-h .picker-after.sc-ion-picker-md{background:-webkit-gradient(linear, left bottom, left top, color-stop(30%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), color-stop(90%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0)));background:linear-gradient(to top, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 30%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0) 90%)}";
|
|
24737
24673
|
|
|
24738
|
-
// TODO(FW-2832): types
|
|
24739
24674
|
/**
|
|
24740
24675
|
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
24741
24676
|
*/
|
|
24742
|
-
class Picker {
|
|
24677
|
+
class Picker$1 {
|
|
24743
24678
|
constructor(hostRef) {
|
|
24744
24679
|
registerInstance(this, hostRef);
|
|
24745
|
-
this.
|
|
24746
|
-
this.
|
|
24747
|
-
this.
|
|
24748
|
-
|
|
24749
|
-
|
|
24750
|
-
|
|
24751
|
-
|
|
24752
|
-
|
|
24753
|
-
|
|
24754
|
-
|
|
24755
|
-
|
|
24756
|
-
|
|
24757
|
-
|
|
24680
|
+
this.ionInputModeChange = createEvent(this, "ionInputModeChange", 7);
|
|
24681
|
+
this.useInputMode = false;
|
|
24682
|
+
this.isInHighlightBounds = (ev) => {
|
|
24683
|
+
const { highlightEl } = this;
|
|
24684
|
+
if (!highlightEl) {
|
|
24685
|
+
return false;
|
|
24686
|
+
}
|
|
24687
|
+
const bbox = highlightEl.getBoundingClientRect();
|
|
24688
|
+
/**
|
|
24689
|
+
* Check to see if the user clicked
|
|
24690
|
+
* outside the bounds of the highlight.
|
|
24691
|
+
*/
|
|
24692
|
+
const outsideX = ev.clientX < bbox.left || ev.clientX > bbox.right;
|
|
24693
|
+
const outsideY = ev.clientY < bbox.top || ev.clientY > bbox.bottom;
|
|
24694
|
+
if (outsideX || outsideY) {
|
|
24695
|
+
return false;
|
|
24696
|
+
}
|
|
24697
|
+
return true;
|
|
24758
24698
|
};
|
|
24759
|
-
|
|
24760
|
-
|
|
24761
|
-
|
|
24762
|
-
|
|
24763
|
-
|
|
24699
|
+
/**
|
|
24700
|
+
* If we are no longer focused
|
|
24701
|
+
* on a picker column, then we should
|
|
24702
|
+
* exit input mode. An exception is made
|
|
24703
|
+
* for the input in the picker since having
|
|
24704
|
+
* that focused means we are still in input mode.
|
|
24705
|
+
*/
|
|
24706
|
+
this.onFocusOut = (ev) => {
|
|
24707
|
+
// TODO(FW-2832): type
|
|
24708
|
+
const { relatedTarget } = ev;
|
|
24709
|
+
if (!relatedTarget || (relatedTarget.tagName !== 'ION-PICKER-COLUMN' && relatedTarget !== this.inputEl)) {
|
|
24710
|
+
this.exitInputMode();
|
|
24764
24711
|
}
|
|
24765
24712
|
};
|
|
24766
|
-
this.presented = false;
|
|
24767
|
-
this.overlayIndex = undefined;
|
|
24768
|
-
this.delegate = undefined;
|
|
24769
|
-
this.hasController = false;
|
|
24770
|
-
this.keyboardClose = true;
|
|
24771
|
-
this.enterAnimation = undefined;
|
|
24772
|
-
this.leaveAnimation = undefined;
|
|
24773
|
-
this.buttons = [];
|
|
24774
|
-
this.columns = [];
|
|
24775
|
-
this.cssClass = undefined;
|
|
24776
|
-
this.duration = 0;
|
|
24777
|
-
this.showBackdrop = true;
|
|
24778
|
-
this.backdropDismiss = true;
|
|
24779
|
-
this.animated = true;
|
|
24780
|
-
this.htmlAttributes = undefined;
|
|
24781
|
-
this.isOpen = false;
|
|
24782
|
-
this.trigger = undefined;
|
|
24783
|
-
}
|
|
24784
|
-
onIsOpenChange(newValue, oldValue) {
|
|
24785
|
-
if (newValue === true && oldValue === false) {
|
|
24786
|
-
this.present();
|
|
24787
|
-
}
|
|
24788
|
-
else if (newValue === false && oldValue === true) {
|
|
24789
|
-
this.dismiss();
|
|
24790
|
-
}
|
|
24791
|
-
}
|
|
24792
|
-
triggerChanged() {
|
|
24793
|
-
const { trigger, el, triggerController } = this;
|
|
24794
|
-
if (trigger) {
|
|
24795
|
-
triggerController.addClickListener(el, trigger);
|
|
24796
|
-
}
|
|
24797
|
-
}
|
|
24798
|
-
connectedCallback() {
|
|
24799
|
-
prepareOverlay(this.el);
|
|
24800
|
-
this.triggerChanged();
|
|
24801
|
-
}
|
|
24802
|
-
disconnectedCallback() {
|
|
24803
|
-
this.triggerController.removeClickListener();
|
|
24804
|
-
}
|
|
24805
|
-
componentWillLoad() {
|
|
24806
|
-
setOverlayId(this.el);
|
|
24807
|
-
}
|
|
24808
|
-
componentDidLoad() {
|
|
24809
24713
|
/**
|
|
24810
|
-
*
|
|
24811
|
-
*
|
|
24714
|
+
* When picker columns receive focus
|
|
24715
|
+
* the parent picker needs to determine
|
|
24716
|
+
* whether to enter/exit input mode.
|
|
24812
24717
|
*/
|
|
24813
|
-
|
|
24814
|
-
|
|
24815
|
-
|
|
24718
|
+
this.onFocusIn = (ev) => {
|
|
24719
|
+
// TODO(FW-2832): type
|
|
24720
|
+
const { target } = ev;
|
|
24721
|
+
/**
|
|
24722
|
+
* Due to browser differences in how/when focus
|
|
24723
|
+
* is dispatched on certain elements, we need to
|
|
24724
|
+
* make sure that this function only ever runs when
|
|
24725
|
+
* focusing a picker column.
|
|
24726
|
+
*/
|
|
24727
|
+
if (target.tagName !== 'ION-PICKER-COLUMN') {
|
|
24728
|
+
return;
|
|
24729
|
+
}
|
|
24730
|
+
/**
|
|
24731
|
+
* If we have actionOnClick
|
|
24732
|
+
* then this means the user focused
|
|
24733
|
+
* a picker column via mouse or
|
|
24734
|
+
* touch (i.e. a PointerEvent). As a result,
|
|
24735
|
+
* we should not enter/exit input mode
|
|
24736
|
+
* until the click event has fired, which happens
|
|
24737
|
+
* after the `focusin` event.
|
|
24738
|
+
*
|
|
24739
|
+
* Otherwise, the user likely focused
|
|
24740
|
+
* the column using their keyboard and
|
|
24741
|
+
* we should enter/exit input mode automatically.
|
|
24742
|
+
*/
|
|
24743
|
+
if (!this.actionOnClick) {
|
|
24744
|
+
const columnEl = target;
|
|
24745
|
+
const allowInput = columnEl.numericInput;
|
|
24746
|
+
if (allowInput) {
|
|
24747
|
+
this.enterInputMode(columnEl, false);
|
|
24748
|
+
}
|
|
24749
|
+
else {
|
|
24750
|
+
this.exitInputMode();
|
|
24751
|
+
}
|
|
24752
|
+
}
|
|
24753
|
+
};
|
|
24816
24754
|
/**
|
|
24817
|
-
*
|
|
24818
|
-
*
|
|
24819
|
-
*
|
|
24820
|
-
* As a result, the watcher callback may not be fired.
|
|
24821
|
-
* We work around this by manually calling the watcher
|
|
24822
|
-
* callback when the component has loaded and the watcher
|
|
24823
|
-
* is configured.
|
|
24755
|
+
* On click we need to run an actionOnClick
|
|
24756
|
+
* function that has been set in onPointerDown
|
|
24757
|
+
* so that we enter/exit input mode correctly.
|
|
24824
24758
|
*/
|
|
24825
|
-
this.
|
|
24826
|
-
|
|
24827
|
-
|
|
24828
|
-
|
|
24829
|
-
|
|
24830
|
-
async present() {
|
|
24831
|
-
const unlock = await this.lockController.lock();
|
|
24832
|
-
await this.delegateController.attachViewToDom();
|
|
24833
|
-
await present(this, 'pickerEnter', iosEnterAnimation$2, iosEnterAnimation$2, undefined);
|
|
24834
|
-
if (this.duration > 0) {
|
|
24835
|
-
this.durationTimeout = setTimeout(() => this.dismiss(), this.duration);
|
|
24836
|
-
}
|
|
24837
|
-
unlock();
|
|
24838
|
-
}
|
|
24839
|
-
/**
|
|
24840
|
-
* Dismiss the picker overlay after it has been presented.
|
|
24841
|
-
*
|
|
24842
|
-
* @param data Any data to emit in the dismiss events.
|
|
24843
|
-
* @param role The role of the element that is dismissing the picker.
|
|
24844
|
-
* This can be useful in a button handler for determining which button was
|
|
24845
|
-
* clicked to dismiss the picker.
|
|
24846
|
-
* Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
|
|
24847
|
-
*/
|
|
24848
|
-
async dismiss(data, role) {
|
|
24849
|
-
const unlock = await this.lockController.lock();
|
|
24850
|
-
if (this.durationTimeout) {
|
|
24851
|
-
clearTimeout(this.durationTimeout);
|
|
24852
|
-
}
|
|
24853
|
-
const dismissed = await dismiss(this, data, role, 'pickerLeave', iosLeaveAnimation$2, iosLeaveAnimation$2);
|
|
24854
|
-
if (dismissed) {
|
|
24855
|
-
this.delegateController.removeViewFromDom();
|
|
24856
|
-
}
|
|
24857
|
-
unlock();
|
|
24858
|
-
return dismissed;
|
|
24859
|
-
}
|
|
24860
|
-
/**
|
|
24861
|
-
* Returns a promise that resolves when the picker did dismiss.
|
|
24862
|
-
*/
|
|
24863
|
-
onDidDismiss() {
|
|
24864
|
-
return eventMethod(this.el, 'ionPickerDidDismiss');
|
|
24865
|
-
}
|
|
24866
|
-
/**
|
|
24867
|
-
* Returns a promise that resolves when the picker will dismiss.
|
|
24868
|
-
*/
|
|
24869
|
-
onWillDismiss() {
|
|
24870
|
-
return eventMethod(this.el, 'ionPickerWillDismiss');
|
|
24871
|
-
}
|
|
24872
|
-
/**
|
|
24873
|
-
* Get the column that matches the specified name.
|
|
24874
|
-
*
|
|
24875
|
-
* @param name The name of the column.
|
|
24876
|
-
*/
|
|
24877
|
-
getColumn(name) {
|
|
24878
|
-
return Promise.resolve(this.columns.find((column) => column.name === name));
|
|
24879
|
-
}
|
|
24880
|
-
async buttonClick(button) {
|
|
24881
|
-
const role = button.role;
|
|
24882
|
-
if (isCancel(role)) {
|
|
24883
|
-
return this.dismiss(undefined, role);
|
|
24884
|
-
}
|
|
24885
|
-
const shouldDismiss = await this.callButtonHandler(button);
|
|
24886
|
-
if (shouldDismiss) {
|
|
24887
|
-
return this.dismiss(this.getSelected(), button.role);
|
|
24888
|
-
}
|
|
24889
|
-
return Promise.resolve();
|
|
24890
|
-
}
|
|
24891
|
-
async callButtonHandler(button) {
|
|
24892
|
-
if (button) {
|
|
24893
|
-
// a handler has been provided, execute it
|
|
24894
|
-
// pass the handler the values from the inputs
|
|
24895
|
-
const rtn = await safeCall(button.handler, this.getSelected());
|
|
24896
|
-
if (rtn === false) {
|
|
24897
|
-
// if the return value of the handler is false then do not dismiss
|
|
24898
|
-
return false;
|
|
24759
|
+
this.onClick = () => {
|
|
24760
|
+
const { actionOnClick } = this;
|
|
24761
|
+
if (actionOnClick) {
|
|
24762
|
+
actionOnClick();
|
|
24763
|
+
this.actionOnClick = undefined;
|
|
24899
24764
|
}
|
|
24900
|
-
}
|
|
24901
|
-
|
|
24902
|
-
|
|
24903
|
-
|
|
24904
|
-
|
|
24905
|
-
|
|
24906
|
-
|
|
24907
|
-
|
|
24908
|
-
|
|
24909
|
-
|
|
24910
|
-
|
|
24911
|
-
};
|
|
24912
|
-
|
|
24913
|
-
|
|
24914
|
-
|
|
24915
|
-
|
|
24916
|
-
|
|
24917
|
-
|
|
24918
|
-
|
|
24919
|
-
|
|
24920
|
-
|
|
24921
|
-
|
|
24922
|
-
|
|
24923
|
-
|
|
24924
|
-
|
|
24925
|
-
|
|
24926
|
-
|
|
24927
|
-
|
|
24928
|
-
|
|
24929
|
-
|
|
24930
|
-
|
|
24931
|
-
|
|
24932
|
-
|
|
24933
|
-
|
|
24934
|
-
|
|
24935
|
-
|
|
24936
|
-
|
|
24937
|
-
|
|
24938
|
-
|
|
24939
|
-
|
|
24940
|
-
|
|
24941
|
-
|
|
24942
|
-
|
|
24943
|
-
|
|
24944
|
-
|
|
24945
|
-
|
|
24946
|
-
|
|
24947
|
-
|
|
24948
|
-
|
|
24949
|
-
|
|
24950
|
-
|
|
24951
|
-
|
|
24952
|
-
|
|
24953
|
-
|
|
24954
|
-
|
|
24955
|
-
|
|
24956
|
-
|
|
24957
|
-
"onWillDismiss": [64],
|
|
24958
|
-
"getColumn": [64]
|
|
24959
|
-
},
|
|
24960
|
-
"$listeners$": undefined,
|
|
24961
|
-
"$lazyBundleId$": "-",
|
|
24962
|
-
"$attrsToReflect$": []
|
|
24963
|
-
}; }
|
|
24964
|
-
}
|
|
24965
|
-
const buttonWrapperClass = (button) => {
|
|
24966
|
-
return {
|
|
24967
|
-
[`picker-toolbar-${button.role}`]: button.role !== undefined,
|
|
24968
|
-
'picker-toolbar-button': true,
|
|
24969
|
-
};
|
|
24970
|
-
};
|
|
24971
|
-
const buttonClass$1 = (button) => {
|
|
24972
|
-
return Object.assign({ 'picker-button': true, 'ion-activatable': true }, getClassMap(button.cssClass));
|
|
24973
|
-
};
|
|
24974
|
-
|
|
24975
|
-
const pickerColumnIosCss = ".picker-col{display:-ms-flexbox;display:flex;position:relative;-ms-flex:1;flex:1;-ms-flex-pack:center;justify-content:center;height:100%;-webkit-box-sizing:content-box;box-sizing:content-box;contain:content}.picker-opts{position:relative;-ms-flex:1;flex:1;max-width:100%}.picker-opt{top:0;display:block;position:absolute;width:100%;border:0;text-align:center;text-overflow:ellipsis;white-space:nowrap;contain:strict;overflow:hidden;will-change:transform}@supports (inset-inline-start: 0){.picker-opt{inset-inline-start:0}}@supports not (inset-inline-start: 0){.picker-opt{left:0}:host-context([dir=rtl]) .picker-opt{left:unset;right:unset;right:0}[dir=rtl] .picker-opt{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.picker-opt:dir(rtl){left:unset;right:unset;right:0}}}.picker-opt.picker-opt-disabled{pointer-events:none}.picker-opt-disabled{opacity:0}.picker-opts-left{-ms-flex-pack:start;justify-content:flex-start}.picker-opts-right{-ms-flex-pack:end;justify-content:flex-end}.picker-opt:active,.picker-opt:focus{outline:none}.picker-prefix{position:relative;-ms-flex:1;flex:1;text-align:end;white-space:nowrap}.picker-suffix{position:relative;-ms-flex:1;flex:1;text-align:start;white-space:nowrap}.picker-col{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:0;padding-bottom:0;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.picker-prefix,.picker-suffix,.picker-opts{top:77px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;color:inherit;font-size:20px;line-height:42px;pointer-events:none}.picker-opt{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-transform-origin:center center;transform-origin:center center;height:46px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out;background:transparent;color:inherit;font-size:20px;line-height:42px;-webkit-backface-visibility:hidden;backface-visibility:hidden;pointer-events:auto}:host-context([dir=rtl]) .picker-opt{-webkit-transform-origin:calc(100% - center) center;transform-origin:calc(100% - center) center}[dir=rtl] .picker-opt{-webkit-transform-origin:calc(100% - center) center;transform-origin:calc(100% - center) center}@supports selector(:dir(rtl)){.picker-opt:dir(rtl){-webkit-transform-origin:calc(100% - center) center;transform-origin:calc(100% - center) center}}";
|
|
24976
|
-
|
|
24977
|
-
const pickerColumnMdCss = ".picker-col{display:-ms-flexbox;display:flex;position:relative;-ms-flex:1;flex:1;-ms-flex-pack:center;justify-content:center;height:100%;-webkit-box-sizing:content-box;box-sizing:content-box;contain:content}.picker-opts{position:relative;-ms-flex:1;flex:1;max-width:100%}.picker-opt{top:0;display:block;position:absolute;width:100%;border:0;text-align:center;text-overflow:ellipsis;white-space:nowrap;contain:strict;overflow:hidden;will-change:transform}@supports (inset-inline-start: 0){.picker-opt{inset-inline-start:0}}@supports not (inset-inline-start: 0){.picker-opt{left:0}:host-context([dir=rtl]) .picker-opt{left:unset;right:unset;right:0}[dir=rtl] .picker-opt{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.picker-opt:dir(rtl){left:unset;right:unset;right:0}}}.picker-opt.picker-opt-disabled{pointer-events:none}.picker-opt-disabled{opacity:0}.picker-opts-left{-ms-flex-pack:start;justify-content:flex-start}.picker-opts-right{-ms-flex-pack:end;justify-content:flex-end}.picker-opt:active,.picker-opt:focus{outline:none}.picker-prefix{position:relative;-ms-flex:1;flex:1;text-align:end;white-space:nowrap}.picker-suffix{position:relative;-ms-flex:1;flex:1;text-align:start;white-space:nowrap}.picker-col{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:0;padding-bottom:0;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.picker-prefix,.picker-suffix,.picker-opts{top:77px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;color:inherit;font-size:22px;line-height:42px;pointer-events:none}.picker-opt{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;height:43px;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out;background:transparent;color:inherit;font-size:22px;line-height:42px;-webkit-backface-visibility:hidden;backface-visibility:hidden;pointer-events:auto}.picker-prefix,.picker-suffix,.picker-opt.picker-opt-selected{color:var(--ion-color-primary, #3880ff)}";
|
|
24978
|
-
|
|
24979
|
-
/**
|
|
24980
|
-
* @internal
|
|
24981
|
-
*/
|
|
24982
|
-
class PickerColumnCmp {
|
|
24983
|
-
constructor(hostRef) {
|
|
24984
|
-
registerInstance(this, hostRef);
|
|
24985
|
-
this.ionPickerColChange = createEvent(this, "ionPickerColChange", 7);
|
|
24986
|
-
this.optHeight = 0;
|
|
24987
|
-
this.rotateFactor = 0;
|
|
24988
|
-
this.scaleFactor = 1;
|
|
24989
|
-
this.velocity = 0;
|
|
24990
|
-
this.y = 0;
|
|
24991
|
-
this.noAnimate = true;
|
|
24992
|
-
// `colDidChange` is a flag that gets set when the column is changed
|
|
24993
|
-
// dynamically. When this flag is set, the column will refresh
|
|
24994
|
-
// after the component re-renders to incorporate the new column data.
|
|
24995
|
-
// This is necessary because `this.refresh` queries for the option elements,
|
|
24996
|
-
// so it needs to wait for the latest elements to be available in the DOM.
|
|
24997
|
-
// Ex: column is created with 3 options. User updates the column data
|
|
24998
|
-
// to have 5 options. The column will still think it only has 3 options.
|
|
24999
|
-
this.colDidChange = false;
|
|
25000
|
-
this.col = undefined;
|
|
25001
|
-
}
|
|
25002
|
-
colChanged() {
|
|
25003
|
-
this.colDidChange = true;
|
|
25004
|
-
}
|
|
25005
|
-
async connectedCallback() {
|
|
25006
|
-
let pickerRotateFactor = 0;
|
|
25007
|
-
let pickerScaleFactor = 0.81;
|
|
25008
|
-
const mode = getIonMode$1(this);
|
|
25009
|
-
if (mode === 'ios') {
|
|
25010
|
-
pickerRotateFactor = -0.46;
|
|
25011
|
-
pickerScaleFactor = 1;
|
|
25012
|
-
}
|
|
25013
|
-
this.rotateFactor = pickerRotateFactor;
|
|
25014
|
-
this.scaleFactor = pickerScaleFactor;
|
|
25015
|
-
this.gesture = (await Promise.resolve().then(function () { return index; })).createGesture({
|
|
25016
|
-
el: this.el,
|
|
25017
|
-
gestureName: 'picker-swipe',
|
|
25018
|
-
gesturePriority: 100,
|
|
25019
|
-
threshold: 0,
|
|
25020
|
-
passive: false,
|
|
25021
|
-
onStart: (ev) => this.onStart(ev),
|
|
25022
|
-
onMove: (ev) => this.onMove(ev),
|
|
25023
|
-
onEnd: (ev) => this.onEnd(ev),
|
|
25024
|
-
});
|
|
25025
|
-
this.gesture.enable();
|
|
25026
|
-
// Options have not been initialized yet
|
|
25027
|
-
// Animation must be disabled through the `noAnimate` flag
|
|
25028
|
-
// Otherwise, the options will render
|
|
25029
|
-
// at the top of the column and transition down
|
|
25030
|
-
this.tmrId = setTimeout(() => {
|
|
25031
|
-
this.noAnimate = false;
|
|
25032
|
-
// After initialization, `refresh()` will be called
|
|
25033
|
-
// At this point, animation will be enabled. The options will
|
|
25034
|
-
// animate as they are being selected.
|
|
25035
|
-
this.refresh(true);
|
|
25036
|
-
}, 250);
|
|
25037
|
-
}
|
|
25038
|
-
componentDidLoad() {
|
|
25039
|
-
this.onDomChange();
|
|
25040
|
-
}
|
|
25041
|
-
componentDidUpdate() {
|
|
25042
|
-
// Options may have changed since last update.
|
|
25043
|
-
if (this.colDidChange) {
|
|
25044
|
-
// Animation must be disabled through the `onDomChange` parameter.
|
|
25045
|
-
// Otherwise, the recently added options will render
|
|
25046
|
-
// at the top of the column and transition down
|
|
25047
|
-
this.onDomChange(true, false);
|
|
25048
|
-
this.colDidChange = false;
|
|
25049
|
-
}
|
|
25050
|
-
}
|
|
25051
|
-
disconnectedCallback() {
|
|
25052
|
-
if (this.rafId !== undefined)
|
|
25053
|
-
cancelAnimationFrame(this.rafId);
|
|
25054
|
-
if (this.tmrId)
|
|
25055
|
-
clearTimeout(this.tmrId);
|
|
25056
|
-
if (this.gesture) {
|
|
25057
|
-
this.gesture.destroy();
|
|
25058
|
-
this.gesture = undefined;
|
|
25059
|
-
}
|
|
25060
|
-
}
|
|
25061
|
-
emitColChange() {
|
|
25062
|
-
this.ionPickerColChange.emit(this.col);
|
|
25063
|
-
}
|
|
25064
|
-
setSelected(selectedIndex, duration) {
|
|
25065
|
-
// if there is a selected index, then figure out it's y position
|
|
25066
|
-
// if there isn't a selected index, then just use the top y position
|
|
25067
|
-
const y = selectedIndex > -1 ? -(selectedIndex * this.optHeight) : 0;
|
|
25068
|
-
this.velocity = 0;
|
|
25069
|
-
// set what y position we're at
|
|
25070
|
-
if (this.rafId !== undefined)
|
|
25071
|
-
cancelAnimationFrame(this.rafId);
|
|
25072
|
-
this.update(y, duration, true);
|
|
25073
|
-
this.emitColChange();
|
|
25074
|
-
}
|
|
25075
|
-
update(y, duration, saveY) {
|
|
25076
|
-
if (!this.optsEl) {
|
|
25077
|
-
return;
|
|
25078
|
-
}
|
|
25079
|
-
// ensure we've got a good round number :)
|
|
25080
|
-
let translateY = 0;
|
|
25081
|
-
let translateZ = 0;
|
|
25082
|
-
const { col, rotateFactor } = this;
|
|
25083
|
-
const prevSelected = col.selectedIndex;
|
|
25084
|
-
const selectedIndex = (col.selectedIndex = this.indexForY(-y));
|
|
25085
|
-
const durationStr = duration === 0 ? '' : duration + 'ms';
|
|
25086
|
-
const scaleStr = `scale(${this.scaleFactor})`;
|
|
25087
|
-
const children = this.optsEl.children;
|
|
25088
|
-
for (let i = 0; i < children.length; i++) {
|
|
25089
|
-
const button = children[i];
|
|
25090
|
-
const opt = col.options[i];
|
|
25091
|
-
const optOffset = i * this.optHeight + y;
|
|
25092
|
-
let transform = '';
|
|
25093
|
-
if (rotateFactor !== 0) {
|
|
25094
|
-
const rotateX = optOffset * rotateFactor;
|
|
25095
|
-
if (Math.abs(rotateX) <= 90) {
|
|
25096
|
-
translateY = 0;
|
|
25097
|
-
translateZ = 90;
|
|
25098
|
-
transform = `rotateX(${rotateX}deg) `;
|
|
24765
|
+
};
|
|
24766
|
+
/**
|
|
24767
|
+
* Clicking a column also focuses the column on
|
|
24768
|
+
* certain browsers, so we use onPointerDown
|
|
24769
|
+
* to tell the onFocusIn function that users
|
|
24770
|
+
* are trying to click the column rather than
|
|
24771
|
+
* focus the column using the keyboard. When the
|
|
24772
|
+
* user completes the click, the onClick function
|
|
24773
|
+
* runs and runs the actionOnClick callback.
|
|
24774
|
+
*/
|
|
24775
|
+
this.onPointerDown = (ev) => {
|
|
24776
|
+
const { useInputMode, inputModeColumn, el } = this;
|
|
24777
|
+
if (this.isInHighlightBounds(ev)) {
|
|
24778
|
+
/**
|
|
24779
|
+
* If we were already in
|
|
24780
|
+
* input mode, then we should determine
|
|
24781
|
+
* if we tapped a particular column and
|
|
24782
|
+
* should switch to input mode for
|
|
24783
|
+
* that specific column.
|
|
24784
|
+
*/
|
|
24785
|
+
if (useInputMode) {
|
|
24786
|
+
/**
|
|
24787
|
+
* If we tapped a picker column
|
|
24788
|
+
* then we should either switch to input
|
|
24789
|
+
* mode for that column or all columns.
|
|
24790
|
+
* Otherwise we should exit input mode
|
|
24791
|
+
* since we just tapped the highlight and
|
|
24792
|
+
* not a column.
|
|
24793
|
+
*/
|
|
24794
|
+
if (ev.target.tagName === 'ION-PICKER-COLUMN') {
|
|
24795
|
+
/**
|
|
24796
|
+
* If user taps 2 different columns
|
|
24797
|
+
* then we should just switch to input mode
|
|
24798
|
+
* for the new column rather than switching to
|
|
24799
|
+
* input mode for all columns.
|
|
24800
|
+
*/
|
|
24801
|
+
if (inputModeColumn && inputModeColumn === ev.target) {
|
|
24802
|
+
this.actionOnClick = () => {
|
|
24803
|
+
this.enterInputMode();
|
|
24804
|
+
};
|
|
24805
|
+
}
|
|
24806
|
+
else {
|
|
24807
|
+
this.actionOnClick = () => {
|
|
24808
|
+
this.enterInputMode(ev.target);
|
|
24809
|
+
};
|
|
24810
|
+
}
|
|
24811
|
+
}
|
|
24812
|
+
else {
|
|
24813
|
+
this.actionOnClick = () => {
|
|
24814
|
+
this.exitInputMode();
|
|
24815
|
+
};
|
|
24816
|
+
}
|
|
24817
|
+
/**
|
|
24818
|
+
* If we were not already in
|
|
24819
|
+
* input mode, then we should
|
|
24820
|
+
* enter input mode for all columns.
|
|
24821
|
+
*/
|
|
25099
24822
|
}
|
|
25100
24823
|
else {
|
|
25101
|
-
|
|
24824
|
+
/**
|
|
24825
|
+
* If there is only 1 numeric input column
|
|
24826
|
+
* then we should skip multi column input.
|
|
24827
|
+
*/
|
|
24828
|
+
const columns = el.querySelectorAll('ion-picker-column.picker-column-numeric-input');
|
|
24829
|
+
const columnEl = columns.length === 1 ? ev.target : undefined;
|
|
24830
|
+
this.actionOnClick = () => {
|
|
24831
|
+
this.enterInputMode(columnEl);
|
|
24832
|
+
};
|
|
24833
|
+
}
|
|
24834
|
+
return;
|
|
24835
|
+
}
|
|
24836
|
+
this.actionOnClick = () => {
|
|
24837
|
+
this.exitInputMode();
|
|
24838
|
+
};
|
|
24839
|
+
};
|
|
24840
|
+
/**
|
|
24841
|
+
* Enters input mode to allow
|
|
24842
|
+
* for text entry of numeric values.
|
|
24843
|
+
* If on mobile, we focus a hidden input
|
|
24844
|
+
* field so that the on screen keyboard
|
|
24845
|
+
* is brought up. When tabbing using a
|
|
24846
|
+
* keyboard, picker columns receive an outline
|
|
24847
|
+
* to indicate they are focused. As a result,
|
|
24848
|
+
* we should not focus the hidden input as it
|
|
24849
|
+
* would cause the outline to go away, preventing
|
|
24850
|
+
* users from having any visual indication of which
|
|
24851
|
+
* column is focused.
|
|
24852
|
+
*/
|
|
24853
|
+
this.enterInputMode = (columnEl, focusInput = true) => {
|
|
24854
|
+
const { inputEl, el } = this;
|
|
24855
|
+
if (!inputEl) {
|
|
24856
|
+
return;
|
|
24857
|
+
}
|
|
24858
|
+
/**
|
|
24859
|
+
* Only active input mode if there is at
|
|
24860
|
+
* least one column that accepts numeric input.
|
|
24861
|
+
*/
|
|
24862
|
+
const hasInputColumn = el.querySelector('ion-picker-column.picker-column-numeric-input');
|
|
24863
|
+
if (!hasInputColumn) {
|
|
24864
|
+
return;
|
|
24865
|
+
}
|
|
24866
|
+
/**
|
|
24867
|
+
* If columnEl is undefined then
|
|
24868
|
+
* it is assumed that all numeric pickers
|
|
24869
|
+
* are eligible for text entry.
|
|
24870
|
+
* (i.e. hour and minute columns)
|
|
24871
|
+
*/
|
|
24872
|
+
this.useInputMode = true;
|
|
24873
|
+
this.inputModeColumn = columnEl;
|
|
24874
|
+
/**
|
|
24875
|
+
* Users with a keyboard and mouse can
|
|
24876
|
+
* activate input mode where the input is
|
|
24877
|
+
* focused as well as when it is not focused,
|
|
24878
|
+
* so we need to make sure we clean up any
|
|
24879
|
+
* old listeners.
|
|
24880
|
+
*/
|
|
24881
|
+
if (focusInput) {
|
|
24882
|
+
if (this.destroyKeypressListener) {
|
|
24883
|
+
this.destroyKeypressListener();
|
|
24884
|
+
this.destroyKeypressListener = undefined;
|
|
25102
24885
|
}
|
|
24886
|
+
inputEl.focus();
|
|
25103
24887
|
}
|
|
25104
24888
|
else {
|
|
25105
|
-
|
|
25106
|
-
|
|
24889
|
+
el.addEventListener('keypress', this.onKeyPress);
|
|
24890
|
+
this.destroyKeypressListener = () => {
|
|
24891
|
+
el.removeEventListener('keypress', this.onKeyPress);
|
|
24892
|
+
};
|
|
25107
24893
|
}
|
|
25108
|
-
|
|
25109
|
-
|
|
25110
|
-
|
|
25111
|
-
|
|
24894
|
+
this.emitInputModeChange();
|
|
24895
|
+
};
|
|
24896
|
+
this.onKeyPress = (ev) => {
|
|
24897
|
+
const { inputEl } = this;
|
|
24898
|
+
if (!inputEl) {
|
|
24899
|
+
return;
|
|
25112
24900
|
}
|
|
25113
|
-
|
|
25114
|
-
|
|
25115
|
-
|
|
25116
|
-
|
|
24901
|
+
const parsedValue = parseInt(ev.key, 10);
|
|
24902
|
+
/**
|
|
24903
|
+
* Only numbers should be allowed
|
|
24904
|
+
*/
|
|
24905
|
+
if (!Number.isNaN(parsedValue)) {
|
|
24906
|
+
inputEl.value += ev.key;
|
|
24907
|
+
this.onInputChange();
|
|
25117
24908
|
}
|
|
25118
|
-
|
|
25119
|
-
|
|
25120
|
-
|
|
24909
|
+
};
|
|
24910
|
+
this.selectSingleColumn = () => {
|
|
24911
|
+
const { inputEl, inputModeColumn, singleColumnSearchTimeout } = this;
|
|
24912
|
+
if (!inputEl || !inputModeColumn) {
|
|
24913
|
+
return;
|
|
25121
24914
|
}
|
|
25122
|
-
|
|
25123
|
-
|
|
25124
|
-
|
|
24915
|
+
const options = Array.from(inputModeColumn.querySelectorAll('ion-picker-column-option')).filter((el) => el.disabled !== true);
|
|
24916
|
+
/**
|
|
24917
|
+
* If users pause for a bit, the search
|
|
24918
|
+
* value should be reset similar to how a
|
|
24919
|
+
* <select> behaves. So typing "34", waiting,
|
|
24920
|
+
* then typing "5" should select "05".
|
|
24921
|
+
*/
|
|
24922
|
+
if (singleColumnSearchTimeout) {
|
|
24923
|
+
clearTimeout(singleColumnSearchTimeout);
|
|
25125
24924
|
}
|
|
25126
|
-
|
|
24925
|
+
this.singleColumnSearchTimeout = setTimeout(() => {
|
|
24926
|
+
inputEl.value = '';
|
|
24927
|
+
this.singleColumnSearchTimeout = undefined;
|
|
24928
|
+
}, 1000);
|
|
25127
24929
|
/**
|
|
25128
|
-
*
|
|
25129
|
-
*
|
|
24930
|
+
* For values that are longer than 2 digits long
|
|
24931
|
+
* we should shift the value over 1 character
|
|
24932
|
+
* to the left. So typing "456" would result in "56".
|
|
24933
|
+
* TODO: If we want to support more than just
|
|
24934
|
+
* time entry, we should update this value to be
|
|
24935
|
+
* the max length of all of the picker items.
|
|
25130
24936
|
*/
|
|
25131
|
-
|
|
25132
|
-
|
|
25133
|
-
|
|
24937
|
+
if (inputEl.value.length >= 3) {
|
|
24938
|
+
const startIndex = inputEl.value.length - 2;
|
|
24939
|
+
const newString = inputEl.value.substring(startIndex);
|
|
24940
|
+
inputEl.value = newString;
|
|
24941
|
+
this.selectSingleColumn();
|
|
24942
|
+
return;
|
|
25134
24943
|
}
|
|
25135
|
-
|
|
25136
|
-
|
|
24944
|
+
/**
|
|
24945
|
+
* Checking the value of the input gets priority
|
|
24946
|
+
* first. For example, if the value of the input
|
|
24947
|
+
* is "1" and we entered "2", then the complete value
|
|
24948
|
+
* is "12" and we should select hour 12.
|
|
24949
|
+
*
|
|
24950
|
+
* Regex removes any leading zeros from values like "02",
|
|
24951
|
+
* but it keeps a single zero if there are only zeros in the string.
|
|
24952
|
+
* 0+(?=[1-9]) --> Match 1 or more zeros that are followed by 1-9
|
|
24953
|
+
* 0+(?=0$) --> Match 1 or more zeros that must be followed by one 0 and end.
|
|
24954
|
+
*/
|
|
24955
|
+
const findItemFromCompleteValue = options.find(({ textContent }) => {
|
|
24956
|
+
/**
|
|
24957
|
+
* Keyboard entry is currently only used inside of Datetime
|
|
24958
|
+
* where we guarantee textContent is set.
|
|
24959
|
+
* If we end up exposing this feature publicly we should revisit this assumption.
|
|
24960
|
+
*/
|
|
24961
|
+
const parsedText = textContent.replace(/^0+(?=[1-9])|0+(?=0$)/, '');
|
|
24962
|
+
return parsedText === inputEl.value;
|
|
24963
|
+
});
|
|
24964
|
+
if (findItemFromCompleteValue) {
|
|
24965
|
+
inputModeColumn.setValue(findItemFromCompleteValue.value);
|
|
24966
|
+
return;
|
|
25137
24967
|
}
|
|
25138
|
-
|
|
25139
|
-
|
|
25140
|
-
|
|
25141
|
-
|
|
25142
|
-
|
|
25143
|
-
|
|
25144
|
-
|
|
25145
|
-
|
|
25146
|
-
|
|
25147
|
-
}
|
|
25148
|
-
|
|
25149
|
-
|
|
25150
|
-
|
|
25151
|
-
|
|
25152
|
-
|
|
25153
|
-
|
|
25154
|
-
|
|
25155
|
-
|
|
25156
|
-
|
|
25157
|
-
|
|
25158
|
-
|
|
25159
|
-
|
|
24968
|
+
/**
|
|
24969
|
+
* If we typed "56" to get minute 56, then typed "7",
|
|
24970
|
+
* we should select "07" as "567" is not a valid minute.
|
|
24971
|
+
*/
|
|
24972
|
+
if (inputEl.value.length === 2) {
|
|
24973
|
+
const changedCharacter = inputEl.value.substring(inputEl.value.length - 1);
|
|
24974
|
+
inputEl.value = changedCharacter;
|
|
24975
|
+
this.selectSingleColumn();
|
|
24976
|
+
}
|
|
24977
|
+
};
|
|
24978
|
+
/**
|
|
24979
|
+
* Searches a list of column items for a particular
|
|
24980
|
+
* value. This is currently used for numeric values.
|
|
24981
|
+
* The zeroBehavior can be set to account for leading
|
|
24982
|
+
* or trailing zeros when looking at the item text.
|
|
24983
|
+
*/
|
|
24984
|
+
this.searchColumn = (colEl, value, zeroBehavior = 'start') => {
|
|
24985
|
+
const behavior = zeroBehavior === 'start' ? /^0+/ : /0$/;
|
|
24986
|
+
const option = Array.from(colEl.querySelectorAll('ion-picker-column-option')).find((el) => {
|
|
24987
|
+
return el.disabled !== true && el.textContent.replace(behavior, '') === value;
|
|
24988
|
+
});
|
|
24989
|
+
if (option) {
|
|
24990
|
+
colEl.setValue(option.value);
|
|
24991
|
+
}
|
|
24992
|
+
};
|
|
24993
|
+
this.selectMultiColumn = () => {
|
|
24994
|
+
const { inputEl, el } = this;
|
|
24995
|
+
if (!inputEl) {
|
|
24996
|
+
return;
|
|
24997
|
+
}
|
|
24998
|
+
const numericPickers = Array.from(el.querySelectorAll('ion-picker-column')).filter((col) => col.numericInput);
|
|
24999
|
+
const firstColumn = numericPickers[0];
|
|
25000
|
+
const lastColumn = numericPickers[1];
|
|
25001
|
+
let value = inputEl.value;
|
|
25002
|
+
let minuteValue;
|
|
25003
|
+
switch (value.length) {
|
|
25004
|
+
case 1:
|
|
25005
|
+
this.searchColumn(firstColumn, value);
|
|
25006
|
+
break;
|
|
25007
|
+
case 2:
|
|
25008
|
+
/**
|
|
25009
|
+
* If the first character is `0` or `1` it is
|
|
25010
|
+
* possible that users are trying to type `09`
|
|
25011
|
+
* or `11` into the hour field, so we should look
|
|
25012
|
+
* at that first.
|
|
25013
|
+
*/
|
|
25014
|
+
const firstCharacter = inputEl.value.substring(0, 1);
|
|
25015
|
+
value = firstCharacter === '0' || firstCharacter === '1' ? inputEl.value : firstCharacter;
|
|
25016
|
+
this.searchColumn(firstColumn, value);
|
|
25017
|
+
/**
|
|
25018
|
+
* If only checked the first value,
|
|
25019
|
+
* we can check the second value
|
|
25020
|
+
* for a match in the minutes column
|
|
25021
|
+
*/
|
|
25022
|
+
if (value.length === 1) {
|
|
25023
|
+
minuteValue = inputEl.value.substring(inputEl.value.length - 1);
|
|
25024
|
+
this.searchColumn(lastColumn, minuteValue, 'end');
|
|
25025
|
+
}
|
|
25026
|
+
break;
|
|
25027
|
+
case 3:
|
|
25028
|
+
/**
|
|
25029
|
+
* If the first character is `0` or `1` it is
|
|
25030
|
+
* possible that users are trying to type `09`
|
|
25031
|
+
* or `11` into the hour field, so we should look
|
|
25032
|
+
* at that first.
|
|
25033
|
+
*/
|
|
25034
|
+
const firstCharacterAgain = inputEl.value.substring(0, 1);
|
|
25035
|
+
value =
|
|
25036
|
+
firstCharacterAgain === '0' || firstCharacterAgain === '1'
|
|
25037
|
+
? inputEl.value.substring(0, 2)
|
|
25038
|
+
: firstCharacterAgain;
|
|
25039
|
+
this.searchColumn(firstColumn, value);
|
|
25040
|
+
/**
|
|
25041
|
+
* If only checked the first value,
|
|
25042
|
+
* we can check the second value
|
|
25043
|
+
* for a match in the minutes column
|
|
25044
|
+
*/
|
|
25045
|
+
minuteValue = value.length === 1 ? inputEl.value.substring(1) : inputEl.value.substring(2);
|
|
25046
|
+
this.searchColumn(lastColumn, minuteValue, 'end');
|
|
25047
|
+
break;
|
|
25048
|
+
case 4:
|
|
25049
|
+
/**
|
|
25050
|
+
* If the first character is `0` or `1` it is
|
|
25051
|
+
* possible that users are trying to type `09`
|
|
25052
|
+
* or `11` into the hour field, so we should look
|
|
25053
|
+
* at that first.
|
|
25054
|
+
*/
|
|
25055
|
+
const firstCharacterAgainAgain = inputEl.value.substring(0, 1);
|
|
25056
|
+
value =
|
|
25057
|
+
firstCharacterAgainAgain === '0' || firstCharacterAgainAgain === '1'
|
|
25058
|
+
? inputEl.value.substring(0, 2)
|
|
25059
|
+
: firstCharacterAgainAgain;
|
|
25060
|
+
this.searchColumn(firstColumn, value);
|
|
25061
|
+
/**
|
|
25062
|
+
* If only checked the first value,
|
|
25063
|
+
* we can check the second value
|
|
25064
|
+
* for a match in the minutes column
|
|
25065
|
+
*/
|
|
25066
|
+
const minuteValueAgain = value.length === 1
|
|
25067
|
+
? inputEl.value.substring(1, inputEl.value.length)
|
|
25068
|
+
: inputEl.value.substring(2, inputEl.value.length);
|
|
25069
|
+
this.searchColumn(lastColumn, minuteValueAgain, 'end');
|
|
25070
|
+
break;
|
|
25071
|
+
default:
|
|
25072
|
+
const startIndex = inputEl.value.length - 4;
|
|
25073
|
+
const newString = inputEl.value.substring(startIndex);
|
|
25074
|
+
inputEl.value = newString;
|
|
25075
|
+
this.selectMultiColumn();
|
|
25076
|
+
break;
|
|
25160
25077
|
}
|
|
25161
|
-
|
|
25162
|
-
|
|
25163
|
-
|
|
25164
|
-
|
|
25078
|
+
};
|
|
25079
|
+
/**
|
|
25080
|
+
* Searches the value of the active column
|
|
25081
|
+
* to determine which value users are trying
|
|
25082
|
+
* to select
|
|
25083
|
+
*/
|
|
25084
|
+
this.onInputChange = () => {
|
|
25085
|
+
const { useInputMode, inputEl, inputModeColumn } = this;
|
|
25086
|
+
if (!useInputMode || !inputEl) {
|
|
25087
|
+
return;
|
|
25165
25088
|
}
|
|
25166
|
-
|
|
25167
|
-
|
|
25168
|
-
if (notLockedIn) {
|
|
25169
|
-
// isn't locked in yet, keep decelerating until it is
|
|
25170
|
-
this.rafId = requestAnimationFrame(() => this.decelerate());
|
|
25089
|
+
if (inputModeColumn) {
|
|
25090
|
+
this.selectSingleColumn();
|
|
25171
25091
|
}
|
|
25172
25092
|
else {
|
|
25173
|
-
this.
|
|
25174
|
-
this.emitColChange();
|
|
25175
|
-
hapticSelectionEnd();
|
|
25176
|
-
}
|
|
25177
|
-
}
|
|
25178
|
-
else if (this.y % this.optHeight !== 0) {
|
|
25179
|
-
// needs to still get locked into a position so options line up
|
|
25180
|
-
const currentPos = Math.abs(this.y % this.optHeight);
|
|
25181
|
-
// create a velocity in the direction it needs to scroll
|
|
25182
|
-
this.velocity = currentPos > this.optHeight / 2 ? 1 : -1;
|
|
25183
|
-
this.decelerate();
|
|
25184
|
-
}
|
|
25185
|
-
}
|
|
25186
|
-
indexForY(y) {
|
|
25187
|
-
return Math.min(Math.max(Math.abs(Math.round(y / this.optHeight)), 0), this.col.options.length - 1);
|
|
25188
|
-
}
|
|
25189
|
-
onStart(detail) {
|
|
25190
|
-
// We have to prevent default in order to block scrolling under the picker
|
|
25191
|
-
// but we DO NOT have to stop propagation, since we still want
|
|
25192
|
-
// some "click" events to capture
|
|
25193
|
-
if (detail.event.cancelable) {
|
|
25194
|
-
detail.event.preventDefault();
|
|
25195
|
-
}
|
|
25196
|
-
detail.event.stopPropagation();
|
|
25197
|
-
hapticSelectionStart();
|
|
25198
|
-
// reset everything
|
|
25199
|
-
if (this.rafId !== undefined)
|
|
25200
|
-
cancelAnimationFrame(this.rafId);
|
|
25201
|
-
const options = this.col.options;
|
|
25202
|
-
let minY = options.length - 1;
|
|
25203
|
-
let maxY = 0;
|
|
25204
|
-
for (let i = 0; i < options.length; i++) {
|
|
25205
|
-
if (!options[i].disabled) {
|
|
25206
|
-
minY = Math.min(minY, i);
|
|
25207
|
-
maxY = Math.max(maxY, i);
|
|
25093
|
+
this.selectMultiColumn();
|
|
25208
25094
|
}
|
|
25209
|
-
}
|
|
25210
|
-
|
|
25211
|
-
|
|
25095
|
+
};
|
|
25096
|
+
/**
|
|
25097
|
+
* Emit ionInputModeChange. Picker columns
|
|
25098
|
+
* listen for this event to determine whether
|
|
25099
|
+
* or not their column is "active" for text input.
|
|
25100
|
+
*/
|
|
25101
|
+
this.emitInputModeChange = () => {
|
|
25102
|
+
const { useInputMode, inputModeColumn } = this;
|
|
25103
|
+
this.ionInputModeChange.emit({
|
|
25104
|
+
useInputMode,
|
|
25105
|
+
inputModeColumn,
|
|
25106
|
+
});
|
|
25107
|
+
};
|
|
25212
25108
|
}
|
|
25213
|
-
|
|
25214
|
-
|
|
25215
|
-
|
|
25216
|
-
|
|
25217
|
-
|
|
25218
|
-
|
|
25219
|
-
|
|
25220
|
-
|
|
25221
|
-
|
|
25222
|
-
|
|
25223
|
-
this.bounceFrom = y;
|
|
25224
|
-
}
|
|
25225
|
-
else if (y < this.maxY) {
|
|
25226
|
-
// scrolling down below scroll area
|
|
25227
|
-
y += Math.pow(this.maxY - y, 0.9);
|
|
25228
|
-
this.bounceFrom = y;
|
|
25229
|
-
}
|
|
25230
|
-
else {
|
|
25231
|
-
this.bounceFrom = 0;
|
|
25232
|
-
}
|
|
25233
|
-
this.update(y, 0, false);
|
|
25109
|
+
/**
|
|
25110
|
+
* When the picker is interacted with
|
|
25111
|
+
* we need to prevent touchstart so other
|
|
25112
|
+
* gestures do not fire. For example,
|
|
25113
|
+
* scrolling on the wheel picker
|
|
25114
|
+
* in ion-datetime should not cause
|
|
25115
|
+
* a card modal to swipe to close.
|
|
25116
|
+
*/
|
|
25117
|
+
preventTouchStartPropagation(ev) {
|
|
25118
|
+
ev.stopPropagation();
|
|
25234
25119
|
}
|
|
25235
|
-
|
|
25236
|
-
|
|
25237
|
-
|
|
25238
|
-
this.update(this.minY, 100, true);
|
|
25239
|
-
this.emitColChange();
|
|
25240
|
-
return;
|
|
25241
|
-
}
|
|
25242
|
-
else if (this.bounceFrom < 0) {
|
|
25243
|
-
// bounce back down
|
|
25244
|
-
this.update(this.maxY, 100, true);
|
|
25245
|
-
this.emitColChange();
|
|
25246
|
-
return;
|
|
25247
|
-
}
|
|
25248
|
-
this.velocity = clamp(-MAX_PICKER_SPEED, detail.velocityY * 23, MAX_PICKER_SPEED);
|
|
25249
|
-
if (this.velocity === 0 && detail.deltaY === 0) {
|
|
25250
|
-
const opt = detail.event.target.closest('.picker-opt');
|
|
25251
|
-
if (opt === null || opt === void 0 ? void 0 : opt.hasAttribute('opt-index')) {
|
|
25252
|
-
this.setSelected(parseInt(opt.getAttribute('opt-index'), 10), TRANSITION_DURATION);
|
|
25253
|
-
}
|
|
25254
|
-
}
|
|
25255
|
-
else {
|
|
25256
|
-
this.y += detail.deltaY;
|
|
25257
|
-
if (Math.abs(detail.velocityY) < 0.05) {
|
|
25258
|
-
const isScrollingUp = detail.deltaY > 0;
|
|
25259
|
-
const optHeightFraction = (Math.abs(this.y) % this.optHeight) / this.optHeight;
|
|
25260
|
-
if (isScrollingUp && optHeightFraction > 0.5) {
|
|
25261
|
-
this.velocity = Math.abs(this.velocity) * -1;
|
|
25262
|
-
}
|
|
25263
|
-
else if (!isScrollingUp && optHeightFraction <= 0.5) {
|
|
25264
|
-
this.velocity = Math.abs(this.velocity);
|
|
25265
|
-
}
|
|
25266
|
-
}
|
|
25267
|
-
this.decelerate();
|
|
25268
|
-
}
|
|
25120
|
+
componentWillLoad() {
|
|
25121
|
+
getElementRoot(this.el).addEventListener('focusin', this.onFocusIn);
|
|
25122
|
+
getElementRoot(this.el).addEventListener('focusout', this.onFocusOut);
|
|
25269
25123
|
}
|
|
25270
|
-
|
|
25271
|
-
|
|
25272
|
-
|
|
25273
|
-
|
|
25274
|
-
|
|
25275
|
-
|
|
25276
|
-
|
|
25277
|
-
|
|
25278
|
-
|
|
25279
|
-
}
|
|
25280
|
-
}
|
|
25281
|
-
/**
|
|
25282
|
-
* Only update selected value if column has a
|
|
25283
|
-
* velocity of 0. If it does not, then the
|
|
25284
|
-
* column is animating might land on
|
|
25285
|
-
* a value different than the value at
|
|
25286
|
-
* selectedIndex
|
|
25287
|
-
*/
|
|
25288
|
-
if (this.velocity !== 0) {
|
|
25124
|
+
/**
|
|
25125
|
+
* @internal
|
|
25126
|
+
* Exits text entry mode for the picker
|
|
25127
|
+
* This method blurs the hidden input
|
|
25128
|
+
* and cause the keyboard to dismiss.
|
|
25129
|
+
*/
|
|
25130
|
+
async exitInputMode() {
|
|
25131
|
+
const { inputEl, useInputMode } = this;
|
|
25132
|
+
if (!useInputMode || !inputEl) {
|
|
25289
25133
|
return;
|
|
25290
25134
|
}
|
|
25291
|
-
|
|
25292
|
-
|
|
25293
|
-
|
|
25294
|
-
|
|
25295
|
-
|
|
25296
|
-
this.
|
|
25297
|
-
|
|
25298
|
-
}
|
|
25299
|
-
onDomChange(forceRefresh, animated) {
|
|
25300
|
-
const colEl = this.optsEl;
|
|
25301
|
-
if (colEl) {
|
|
25302
|
-
// DOM READ
|
|
25303
|
-
// We perfom a DOM read over a rendered item, this needs to happen after the first render or after the the column has changed
|
|
25304
|
-
this.optHeight = colEl.firstElementChild ? colEl.firstElementChild.clientHeight : 0;
|
|
25135
|
+
this.useInputMode = false;
|
|
25136
|
+
this.inputModeColumn = undefined;
|
|
25137
|
+
inputEl.blur();
|
|
25138
|
+
inputEl.value = '';
|
|
25139
|
+
if (this.destroyKeypressListener) {
|
|
25140
|
+
this.destroyKeypressListener();
|
|
25141
|
+
this.destroyKeypressListener = undefined;
|
|
25305
25142
|
}
|
|
25306
|
-
this.
|
|
25143
|
+
this.emitInputModeChange();
|
|
25307
25144
|
}
|
|
25308
25145
|
render() {
|
|
25309
|
-
|
|
25310
|
-
const mode = getIonMode$1(this);
|
|
25311
|
-
return (hAsync(Host, { class: Object.assign({ [mode]: true, 'picker-col': true, 'picker-opts-left': this.col.align === 'left', 'picker-opts-right': this.col.align === 'right' }, getClassMap(col.cssClass)), style: {
|
|
25312
|
-
'max-width': this.col.columnWidth,
|
|
25313
|
-
} }, col.prefix && (hAsync("div", { class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), hAsync("div", { class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (hAsync("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (hAsync("div", { class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
|
|
25146
|
+
return (hAsync(Host, { onPointerDown: (ev) => this.onPointerDown(ev), onClick: () => this.onClick() }, hAsync("input", { "aria-hidden": "true", tabindex: -1, inputmode: "numeric", type: "number", ref: (el) => (this.inputEl = el), onInput: () => this.onInputChange(), onBlur: () => this.exitInputMode() }), hAsync("div", { class: "picker-before" }), hAsync("div", { class: "picker-after" }), hAsync("div", { class: "picker-highlight", ref: (el) => (this.highlightEl = el) }), hAsync("slot", null)));
|
|
25314
25147
|
}
|
|
25315
25148
|
get el() { return getElement(this); }
|
|
25316
|
-
static get watchers() { return {
|
|
25317
|
-
"col": ["colChanged"]
|
|
25318
|
-
}; }
|
|
25319
25149
|
static get style() { return {
|
|
25320
|
-
ios:
|
|
25321
|
-
md:
|
|
25150
|
+
ios: pickerIosCss$1,
|
|
25151
|
+
md: pickerMdCss$1
|
|
25322
25152
|
}; }
|
|
25323
25153
|
static get cmpMeta() { return {
|
|
25324
|
-
"$flags$":
|
|
25325
|
-
"$tagName$": "ion-picker
|
|
25154
|
+
"$flags$": 41,
|
|
25155
|
+
"$tagName$": "ion-picker",
|
|
25326
25156
|
"$members$": {
|
|
25327
|
-
"
|
|
25157
|
+
"exitInputMode": [64]
|
|
25328
25158
|
},
|
|
25329
|
-
"$listeners$":
|
|
25159
|
+
"$listeners$": [[1, "touchstart", "preventTouchStartPropagation"]],
|
|
25330
25160
|
"$lazyBundleId$": "-",
|
|
25331
25161
|
"$attrsToReflect$": []
|
|
25332
25162
|
}; }
|
|
25333
25163
|
}
|
|
25334
|
-
const PICKER_OPT_SELECTED = 'picker-opt-selected';
|
|
25335
|
-
const DECELERATION_FRICTION = 0.97;
|
|
25336
|
-
const MAX_PICKER_SPEED = 90;
|
|
25337
|
-
const TRANSITION_DURATION = 150;
|
|
25338
25164
|
|
|
25339
|
-
|
|
25165
|
+
/**
|
|
25166
|
+
* iOS Picker Enter Animation
|
|
25167
|
+
*/
|
|
25168
|
+
const iosEnterAnimation$2 = (baseEl) => {
|
|
25169
|
+
const baseAnimation = createAnimation();
|
|
25170
|
+
const backdropAnimation = createAnimation();
|
|
25171
|
+
const wrapperAnimation = createAnimation();
|
|
25172
|
+
backdropAnimation
|
|
25173
|
+
.addElement(baseEl.querySelector('ion-backdrop'))
|
|
25174
|
+
.fromTo('opacity', 0.01, 'var(--backdrop-opacity)')
|
|
25175
|
+
.beforeStyles({
|
|
25176
|
+
'pointer-events': 'none',
|
|
25177
|
+
})
|
|
25178
|
+
.afterClearStyles(['pointer-events']);
|
|
25179
|
+
wrapperAnimation
|
|
25180
|
+
.addElement(baseEl.querySelector('.picker-wrapper'))
|
|
25181
|
+
.fromTo('transform', 'translateY(100%)', 'translateY(0%)');
|
|
25182
|
+
return baseAnimation
|
|
25183
|
+
.addElement(baseEl)
|
|
25184
|
+
.easing('cubic-bezier(.36,.66,.04,1)')
|
|
25185
|
+
.duration(400)
|
|
25186
|
+
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
25187
|
+
};
|
|
25188
|
+
|
|
25189
|
+
/**
|
|
25190
|
+
* iOS Picker Leave Animation
|
|
25191
|
+
*/
|
|
25192
|
+
const iosLeaveAnimation$2 = (baseEl) => {
|
|
25193
|
+
const baseAnimation = createAnimation();
|
|
25194
|
+
const backdropAnimation = createAnimation();
|
|
25195
|
+
const wrapperAnimation = createAnimation();
|
|
25196
|
+
backdropAnimation
|
|
25197
|
+
.addElement(baseEl.querySelector('ion-backdrop'))
|
|
25198
|
+
.fromTo('opacity', 'var(--backdrop-opacity)', 0.01);
|
|
25199
|
+
wrapperAnimation
|
|
25200
|
+
.addElement(baseEl.querySelector('.picker-wrapper'))
|
|
25201
|
+
.fromTo('transform', 'translateY(0%)', 'translateY(100%)');
|
|
25202
|
+
return baseAnimation
|
|
25203
|
+
.addElement(baseEl)
|
|
25204
|
+
.easing('cubic-bezier(.36,.66,.04,1)')
|
|
25205
|
+
.duration(400)
|
|
25206
|
+
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
25207
|
+
};
|
|
25208
|
+
|
|
25209
|
+
const pickerIosCss = ".sc-ion-picker-legacy-ios-h{--border-radius:0;--border-style:solid;--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--max-height:auto;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}@supports (inset-inline-start: 0){.sc-ion-picker-legacy-ios-h{inset-inline-start:0}}@supports not (inset-inline-start: 0){.sc-ion-picker-legacy-ios-h{left:0}[dir=rtl].sc-ion-picker-legacy-ios-h,[dir=rtl] .sc-ion-picker-legacy-ios-h{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.sc-ion-picker-legacy-ios-h:dir(rtl){left:unset;right:unset;right:0}}}.overlay-hidden.sc-ion-picker-legacy-ios-h{display:none}.picker-wrapper.sc-ion-picker-legacy-ios{border-radius:var(--border-radius);left:0;right:0;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:auto;margin-bottom:auto;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;overflow:hidden;z-index:10}.picker-toolbar.sc-ion-picker-legacy-ios{width:100%;background:transparent;contain:strict;z-index:1}.picker-button.sc-ion-picker-legacy-ios{border:0;font-family:inherit}.picker-button.sc-ion-picker-legacy-ios:active,.picker-button.sc-ion-picker-legacy-ios:focus{outline:none}.picker-columns.sc-ion-picker-legacy-ios{display:-ms-flexbox;display:flex;position:relative;-ms-flex-pack:center;justify-content:center;margin-bottom:var(--ion-safe-area-bottom, 0);contain:strict;overflow:hidden}.picker-above-highlight.sc-ion-picker-legacy-ios,.picker-below-highlight.sc-ion-picker-legacy-ios{display:none;pointer-events:none}.sc-ion-picker-legacy-ios-h{--background:var(--ion-background-color, #fff);--border-width:1px 0 0;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, #c8c7cc)));--height:260px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.26);color:var(--ion-item-color, var(--ion-text-color, #000))}.picker-toolbar.sc-ion-picker-legacy-ios{display:-ms-flexbox;display:flex;height:44px;border-bottom:0.55px solid var(--border-color)}.picker-toolbar-button.sc-ion-picker-legacy-ios{-ms-flex:1;flex:1;text-align:end}.picker-toolbar-button.sc-ion-picker-legacy-ios:last-child .picker-button.sc-ion-picker-legacy-ios{font-weight:600}.picker-toolbar-button.sc-ion-picker-legacy-ios:first-child{font-weight:normal;text-align:start}.picker-button.sc-ion-picker-legacy-ios,.picker-button.ion-activated.sc-ion-picker-legacy-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-padding-start:1em;padding-inline-start:1em;-webkit-padding-end:1em;padding-inline-end:1em;padding-top:0;padding-bottom:0;height:44px;background:transparent;color:var(--ion-color-primary, #3880ff);font-size:16px}.picker-columns.sc-ion-picker-legacy-ios{height:215px;-webkit-perspective:1000px;perspective:1000px}.picker-above-highlight.sc-ion-picker-legacy-ios{top:0;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);display:block;position:absolute;width:100%;height:81px;border-bottom:1px solid var(--border-color);background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, var(--background, var(--ion-background-color, #fff))), to(rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8)));background:linear-gradient(to bottom, var(--background, var(--ion-background-color, #fff)) 20%, rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8) 100%);z-index:10}@supports (inset-inline-start: 0){.picker-above-highlight.sc-ion-picker-legacy-ios{inset-inline-start:0}}@supports not (inset-inline-start: 0){.picker-above-highlight.sc-ion-picker-legacy-ios{left:0}[dir=rtl].sc-ion-picker-legacy-ios-h .picker-above-highlight.sc-ion-picker-legacy-ios,[dir=rtl] .sc-ion-picker-legacy-ios-h .picker-above-highlight.sc-ion-picker-legacy-ios{left:unset;right:unset;right:0}[dir=rtl].sc-ion-picker-legacy-ios .picker-above-highlight.sc-ion-picker-legacy-ios{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.picker-above-highlight.sc-ion-picker-legacy-ios:dir(rtl){left:unset;right:unset;right:0}}}.picker-below-highlight.sc-ion-picker-legacy-ios{top:115px;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);display:block;position:absolute;width:100%;height:119px;border-top:1px solid var(--border-color);background:-webkit-gradient(linear, left bottom, left top, color-stop(30%, var(--background, var(--ion-background-color, #fff))), to(rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8)));background:linear-gradient(to top, var(--background, var(--ion-background-color, #fff)) 30%, rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8) 100%);z-index:11}@supports (inset-inline-start: 0){.picker-below-highlight.sc-ion-picker-legacy-ios{inset-inline-start:0}}@supports not (inset-inline-start: 0){.picker-below-highlight.sc-ion-picker-legacy-ios{left:0}[dir=rtl].sc-ion-picker-legacy-ios-h .picker-below-highlight.sc-ion-picker-legacy-ios,[dir=rtl] .sc-ion-picker-legacy-ios-h .picker-below-highlight.sc-ion-picker-legacy-ios{left:unset;right:unset;right:0}[dir=rtl].sc-ion-picker-legacy-ios .picker-below-highlight.sc-ion-picker-legacy-ios{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.picker-below-highlight.sc-ion-picker-legacy-ios:dir(rtl){left:unset;right:unset;right:0}}}";
|
|
25340
25210
|
|
|
25341
|
-
const
|
|
25211
|
+
const pickerMdCss = ".sc-ion-picker-legacy-md-h{--border-radius:0;--border-style:solid;--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--max-height:auto;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}@supports (inset-inline-start: 0){.sc-ion-picker-legacy-md-h{inset-inline-start:0}}@supports not (inset-inline-start: 0){.sc-ion-picker-legacy-md-h{left:0}[dir=rtl].sc-ion-picker-legacy-md-h,[dir=rtl] .sc-ion-picker-legacy-md-h{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.sc-ion-picker-legacy-md-h:dir(rtl){left:unset;right:unset;right:0}}}.overlay-hidden.sc-ion-picker-legacy-md-h{display:none}.picker-wrapper.sc-ion-picker-legacy-md{border-radius:var(--border-radius);left:0;right:0;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:auto;margin-bottom:auto;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;overflow:hidden;z-index:10}.picker-toolbar.sc-ion-picker-legacy-md{width:100%;background:transparent;contain:strict;z-index:1}.picker-button.sc-ion-picker-legacy-md{border:0;font-family:inherit}.picker-button.sc-ion-picker-legacy-md:active,.picker-button.sc-ion-picker-legacy-md:focus{outline:none}.picker-columns.sc-ion-picker-legacy-md{display:-ms-flexbox;display:flex;position:relative;-ms-flex-pack:center;justify-content:center;margin-bottom:var(--ion-safe-area-bottom, 0);contain:strict;overflow:hidden}.picker-above-highlight.sc-ion-picker-legacy-md,.picker-below-highlight.sc-ion-picker-legacy-md{display:none;pointer-events:none}.sc-ion-picker-legacy-md-h{--background:var(--ion-background-color, #fff);--border-width:0.55px 0 0;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))));--height:260px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.26);color:var(--ion-item-color, var(--ion-text-color, #000))}.picker-toolbar.sc-ion-picker-legacy-md{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end;height:44px}.picker-button.sc-ion-picker-legacy-md,.picker-button.ion-activated.sc-ion-picker-legacy-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-padding-start:1.1em;padding-inline-start:1.1em;-webkit-padding-end:1.1em;padding-inline-end:1.1em;padding-top:0;padding-bottom:0;height:44px;background:transparent;color:var(--ion-color-primary, #3880ff);font-size:14px;font-weight:500;text-transform:uppercase;-webkit-box-shadow:none;box-shadow:none}.picker-columns.sc-ion-picker-legacy-md{height:216px;-webkit-perspective:1800px;perspective:1800px}.picker-above-highlight.sc-ion-picker-legacy-md{top:0;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);position:absolute;width:100%;height:81px;border-bottom:1px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))));background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, var(--ion-background-color, #fff)), to(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)));background:linear-gradient(to bottom, var(--ion-background-color, #fff) 20%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 100%);z-index:10}@supports (inset-inline-start: 0){.picker-above-highlight.sc-ion-picker-legacy-md{inset-inline-start:0}}@supports not (inset-inline-start: 0){.picker-above-highlight.sc-ion-picker-legacy-md{left:0}[dir=rtl].sc-ion-picker-legacy-md-h .picker-above-highlight.sc-ion-picker-legacy-md,[dir=rtl] .sc-ion-picker-legacy-md-h .picker-above-highlight.sc-ion-picker-legacy-md{left:unset;right:unset;right:0}[dir=rtl].sc-ion-picker-legacy-md .picker-above-highlight.sc-ion-picker-legacy-md{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.picker-above-highlight.sc-ion-picker-legacy-md:dir(rtl){left:unset;right:unset;right:0}}}.picker-below-highlight.sc-ion-picker-legacy-md{top:115px;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);position:absolute;width:100%;height:119px;border-top:1px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))));background:-webkit-gradient(linear, left bottom, left top, color-stop(30%, var(--ion-background-color, #fff)), to(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)));background:linear-gradient(to top, var(--ion-background-color, #fff) 30%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 100%);z-index:11}@supports (inset-inline-start: 0){.picker-below-highlight.sc-ion-picker-legacy-md{inset-inline-start:0}}@supports not (inset-inline-start: 0){.picker-below-highlight.sc-ion-picker-legacy-md{left:0}[dir=rtl].sc-ion-picker-legacy-md-h .picker-below-highlight.sc-ion-picker-legacy-md,[dir=rtl] .sc-ion-picker-legacy-md-h .picker-below-highlight.sc-ion-picker-legacy-md{left:unset;right:unset;right:0}[dir=rtl].sc-ion-picker-legacy-md .picker-below-highlight.sc-ion-picker-legacy-md{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.picker-below-highlight.sc-ion-picker-legacy-md:dir(rtl){left:unset;right:unset;right:0}}}";
|
|
25342
25212
|
|
|
25213
|
+
// TODO(FW-2832): types
|
|
25343
25214
|
/**
|
|
25344
25215
|
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
25345
|
-
* @internal
|
|
25346
25216
|
*/
|
|
25347
|
-
class
|
|
25217
|
+
class Picker {
|
|
25348
25218
|
constructor(hostRef) {
|
|
25349
25219
|
registerInstance(this, hostRef);
|
|
25350
|
-
this.
|
|
25351
|
-
this.
|
|
25352
|
-
this.
|
|
25353
|
-
this.
|
|
25354
|
-
this.
|
|
25355
|
-
|
|
25356
|
-
|
|
25357
|
-
|
|
25358
|
-
|
|
25359
|
-
|
|
25360
|
-
|
|
25361
|
-
|
|
25362
|
-
|
|
25363
|
-
* scroll callback. This is useful when the user manually
|
|
25364
|
-
* taps an item or types on the keyboard as both
|
|
25365
|
-
* of these can cause a scroll to occur.
|
|
25366
|
-
*/
|
|
25367
|
-
this.canExitInputMode = canExitInputMode;
|
|
25368
|
-
el.scroll({
|
|
25369
|
-
top,
|
|
25370
|
-
left: 0,
|
|
25371
|
-
behavior: smooth ? 'smooth' : undefined,
|
|
25372
|
-
});
|
|
25373
|
-
}
|
|
25374
|
-
}
|
|
25375
|
-
};
|
|
25376
|
-
this.setPickerItemActiveState = (item, isActive) => {
|
|
25377
|
-
if (isActive) {
|
|
25378
|
-
item.classList.add(PICKER_ITEM_ACTIVE_CLASS);
|
|
25379
|
-
item.part.add(PICKER_ITEM_ACTIVE_PART);
|
|
25380
|
-
}
|
|
25381
|
-
else {
|
|
25382
|
-
item.classList.remove(PICKER_ITEM_ACTIVE_CLASS);
|
|
25383
|
-
item.part.remove(PICKER_ITEM_ACTIVE_PART);
|
|
25384
|
-
}
|
|
25385
|
-
};
|
|
25386
|
-
/**
|
|
25387
|
-
* When ionInputModeChange is emitted, each column
|
|
25388
|
-
* needs to check if it is the one being made available
|
|
25389
|
-
* for text entry.
|
|
25390
|
-
*/
|
|
25391
|
-
this.inputModeChange = (ev) => {
|
|
25392
|
-
if (!this.numericInput) {
|
|
25393
|
-
return;
|
|
25394
|
-
}
|
|
25395
|
-
const { useInputMode, inputModeColumn } = ev.detail;
|
|
25396
|
-
/**
|
|
25397
|
-
* If inputModeColumn is undefined then this means
|
|
25398
|
-
* all numericInput columns are being selected.
|
|
25399
|
-
*/
|
|
25400
|
-
const isColumnActive = inputModeColumn === undefined || inputModeColumn === this.el;
|
|
25401
|
-
if (!useInputMode || !isColumnActive) {
|
|
25402
|
-
this.setInputModeActive(false);
|
|
25403
|
-
return;
|
|
25404
|
-
}
|
|
25405
|
-
this.setInputModeActive(true);
|
|
25220
|
+
this.didPresent = createEvent(this, "ionPickerDidPresent", 7);
|
|
25221
|
+
this.willPresent = createEvent(this, "ionPickerWillPresent", 7);
|
|
25222
|
+
this.willDismiss = createEvent(this, "ionPickerWillDismiss", 7);
|
|
25223
|
+
this.didDismiss = createEvent(this, "ionPickerDidDismiss", 7);
|
|
25224
|
+
this.didPresentShorthand = createEvent(this, "didPresent", 7);
|
|
25225
|
+
this.willPresentShorthand = createEvent(this, "willPresent", 7);
|
|
25226
|
+
this.willDismissShorthand = createEvent(this, "willDismiss", 7);
|
|
25227
|
+
this.didDismissShorthand = createEvent(this, "didDismiss", 7);
|
|
25228
|
+
this.delegateController = createDelegateController(this);
|
|
25229
|
+
this.lockController = createLockController();
|
|
25230
|
+
this.triggerController = createTriggerController();
|
|
25231
|
+
this.onBackdropTap = () => {
|
|
25232
|
+
this.dismiss(undefined, BACKDROP);
|
|
25406
25233
|
};
|
|
25407
|
-
|
|
25408
|
-
|
|
25409
|
-
|
|
25410
|
-
|
|
25411
|
-
|
|
25412
|
-
* whatever value was selected at the
|
|
25413
|
-
* start of the scroll interaction.
|
|
25414
|
-
*/
|
|
25415
|
-
this.setInputModeActive = (state) => {
|
|
25416
|
-
if (this.isScrolling) {
|
|
25417
|
-
this.scrollEndCallback = () => {
|
|
25418
|
-
this.isActive = state;
|
|
25419
|
-
};
|
|
25420
|
-
return;
|
|
25234
|
+
this.dispatchCancelHandler = (ev) => {
|
|
25235
|
+
const role = ev.detail.role;
|
|
25236
|
+
if (isCancel(role)) {
|
|
25237
|
+
const cancelButton = this.buttons.find((b) => b.role === 'cancel');
|
|
25238
|
+
this.callButtonHandler(cancelButton);
|
|
25421
25239
|
}
|
|
25422
|
-
this.isActive = state;
|
|
25423
|
-
};
|
|
25424
|
-
/**
|
|
25425
|
-
* When the column scrolls, the component
|
|
25426
|
-
* needs to determine which item is centered
|
|
25427
|
-
* in the view and will emit an ionChange with
|
|
25428
|
-
* the item object.
|
|
25429
|
-
*/
|
|
25430
|
-
this.initializeScrollListener = () => {
|
|
25431
|
-
/**
|
|
25432
|
-
* The haptics for the wheel picker are
|
|
25433
|
-
* an iOS-only feature. As a result, they should
|
|
25434
|
-
* be disabled on Android.
|
|
25435
|
-
*/
|
|
25436
|
-
const enableHaptics = isPlatform('ios');
|
|
25437
|
-
const { el } = this;
|
|
25438
|
-
let timeout;
|
|
25439
|
-
let activeEl = this.activeItem;
|
|
25440
|
-
const scrollCallback = () => {
|
|
25441
|
-
raf(() => {
|
|
25442
|
-
if (timeout) {
|
|
25443
|
-
clearTimeout(timeout);
|
|
25444
|
-
timeout = undefined;
|
|
25445
|
-
}
|
|
25446
|
-
if (!this.isScrolling) {
|
|
25447
|
-
enableHaptics && hapticSelectionStart();
|
|
25448
|
-
this.isScrolling = true;
|
|
25449
|
-
}
|
|
25450
|
-
/**
|
|
25451
|
-
* Select item in the center of the column
|
|
25452
|
-
* which is the month/year that we want to select
|
|
25453
|
-
*/
|
|
25454
|
-
const bbox = el.getBoundingClientRect();
|
|
25455
|
-
const centerX = bbox.x + bbox.width / 2;
|
|
25456
|
-
const centerY = bbox.y + bbox.height / 2;
|
|
25457
|
-
const activeElement = el.shadowRoot.elementFromPoint(centerX, centerY);
|
|
25458
|
-
if (activeEl !== null) {
|
|
25459
|
-
this.setPickerItemActiveState(activeEl, false);
|
|
25460
|
-
}
|
|
25461
|
-
if (activeElement === null || activeElement.disabled) {
|
|
25462
|
-
return;
|
|
25463
|
-
}
|
|
25464
|
-
/**
|
|
25465
|
-
* If we are selecting a new value,
|
|
25466
|
-
* we need to run haptics again.
|
|
25467
|
-
*/
|
|
25468
|
-
if (activeElement !== activeEl) {
|
|
25469
|
-
enableHaptics && hapticSelectionChanged();
|
|
25470
|
-
if (this.canExitInputMode) {
|
|
25471
|
-
/**
|
|
25472
|
-
* The native iOS wheel picker
|
|
25473
|
-
* only dismisses the keyboard
|
|
25474
|
-
* once the selected item has changed
|
|
25475
|
-
* as a result of a swipe
|
|
25476
|
-
* from the user. If `canExitInputMode` is
|
|
25477
|
-
* `false` then this means that the
|
|
25478
|
-
* scroll is happening as a result of
|
|
25479
|
-
* the `value` property programmatically changing
|
|
25480
|
-
* either by an application or by the user via the keyboard.
|
|
25481
|
-
*/
|
|
25482
|
-
this.exitInputMode();
|
|
25483
|
-
}
|
|
25484
|
-
}
|
|
25485
|
-
activeEl = activeElement;
|
|
25486
|
-
this.setPickerItemActiveState(activeElement, true);
|
|
25487
|
-
timeout = setTimeout(() => {
|
|
25488
|
-
this.isScrolling = false;
|
|
25489
|
-
enableHaptics && hapticSelectionEnd();
|
|
25490
|
-
/**
|
|
25491
|
-
* Certain tasks (such as those that
|
|
25492
|
-
* cause re-renders) should only be done
|
|
25493
|
-
* once scrolling has finished, otherwise
|
|
25494
|
-
* flickering may occur.
|
|
25495
|
-
*/
|
|
25496
|
-
const { scrollEndCallback } = this;
|
|
25497
|
-
if (scrollEndCallback) {
|
|
25498
|
-
scrollEndCallback();
|
|
25499
|
-
this.scrollEndCallback = undefined;
|
|
25500
|
-
}
|
|
25501
|
-
/**
|
|
25502
|
-
* Reset this flag as the
|
|
25503
|
-
* next scroll interaction could
|
|
25504
|
-
* be a scroll from the user. In this
|
|
25505
|
-
* case, we should exit input mode.
|
|
25506
|
-
*/
|
|
25507
|
-
this.canExitInputMode = true;
|
|
25508
|
-
const dataIndex = activeElement.getAttribute('data-index');
|
|
25509
|
-
/**
|
|
25510
|
-
* If no value it is
|
|
25511
|
-
* possible we hit one of the
|
|
25512
|
-
* empty padding columns.
|
|
25513
|
-
*/
|
|
25514
|
-
if (dataIndex === null) {
|
|
25515
|
-
return;
|
|
25516
|
-
}
|
|
25517
|
-
const index = parseInt(dataIndex, 10);
|
|
25518
|
-
const selectedItem = this.items[index];
|
|
25519
|
-
if (selectedItem.value !== this.value) {
|
|
25520
|
-
this.setValue(selectedItem.value);
|
|
25521
|
-
}
|
|
25522
|
-
}, 250);
|
|
25523
|
-
});
|
|
25524
|
-
};
|
|
25525
|
-
/**
|
|
25526
|
-
* Wrap this in an raf so that the scroll callback
|
|
25527
|
-
* does not fire when component is initially shown.
|
|
25528
|
-
*/
|
|
25529
|
-
raf(() => {
|
|
25530
|
-
el.addEventListener('scroll', scrollCallback);
|
|
25531
|
-
this.destroyScrollListener = () => {
|
|
25532
|
-
el.removeEventListener('scroll', scrollCallback);
|
|
25533
|
-
};
|
|
25534
|
-
});
|
|
25535
25240
|
};
|
|
25241
|
+
this.presented = false;
|
|
25242
|
+
this.overlayIndex = undefined;
|
|
25243
|
+
this.delegate = undefined;
|
|
25244
|
+
this.hasController = false;
|
|
25245
|
+
this.keyboardClose = true;
|
|
25246
|
+
this.enterAnimation = undefined;
|
|
25247
|
+
this.leaveAnimation = undefined;
|
|
25248
|
+
this.buttons = [];
|
|
25249
|
+
this.columns = [];
|
|
25250
|
+
this.cssClass = undefined;
|
|
25251
|
+
this.duration = 0;
|
|
25252
|
+
this.showBackdrop = true;
|
|
25253
|
+
this.backdropDismiss = true;
|
|
25254
|
+
this.animated = true;
|
|
25255
|
+
this.htmlAttributes = undefined;
|
|
25256
|
+
this.isOpen = false;
|
|
25257
|
+
this.trigger = undefined;
|
|
25258
|
+
}
|
|
25259
|
+
onIsOpenChange(newValue, oldValue) {
|
|
25260
|
+
if (newValue === true && oldValue === false) {
|
|
25261
|
+
this.present();
|
|
25262
|
+
}
|
|
25263
|
+
else if (newValue === false && oldValue === true) {
|
|
25264
|
+
this.dismiss();
|
|
25265
|
+
}
|
|
25266
|
+
}
|
|
25267
|
+
triggerChanged() {
|
|
25268
|
+
const { trigger, el, triggerController } = this;
|
|
25269
|
+
if (trigger) {
|
|
25270
|
+
triggerController.addClickListener(el, trigger);
|
|
25271
|
+
}
|
|
25272
|
+
}
|
|
25273
|
+
connectedCallback() {
|
|
25274
|
+
prepareOverlay(this.el);
|
|
25275
|
+
this.triggerChanged();
|
|
25276
|
+
}
|
|
25277
|
+
disconnectedCallback() {
|
|
25278
|
+
this.triggerController.removeClickListener();
|
|
25279
|
+
}
|
|
25280
|
+
componentWillLoad() {
|
|
25281
|
+
setOverlayId(this.el);
|
|
25282
|
+
}
|
|
25283
|
+
componentDidLoad() {
|
|
25284
|
+
printIonWarning('ion-picker-legacy and ion-picker-legacy-column have been deprecated in favor of new versions of the ion-picker and ion-picker-column components. These new components display inline with your page content allowing for more presentation flexibility than before.', this.el);
|
|
25536
25285
|
/**
|
|
25537
|
-
*
|
|
25538
|
-
*
|
|
25539
|
-
* when the selected item changes during scroll, so
|
|
25540
|
-
* we know that the user likely wants to scroll
|
|
25541
|
-
* instead of type.
|
|
25286
|
+
* If picker was rendered with isOpen="true"
|
|
25287
|
+
* then we should open picker immediately.
|
|
25542
25288
|
*/
|
|
25543
|
-
this.
|
|
25544
|
-
|
|
25545
|
-
if (parentEl == null)
|
|
25546
|
-
return;
|
|
25547
|
-
parentEl.exitInputMode();
|
|
25548
|
-
/**
|
|
25549
|
-
* setInputModeActive only takes
|
|
25550
|
-
* effect once scrolling stops to avoid
|
|
25551
|
-
* a component re-render while scrolling.
|
|
25552
|
-
* However, we want the visual active
|
|
25553
|
-
* indicator to go away immediately, so
|
|
25554
|
-
* we call classList.remove here.
|
|
25555
|
-
*/
|
|
25556
|
-
this.el.classList.remove('picker-column-active');
|
|
25557
|
-
};
|
|
25558
|
-
this.isActive = false;
|
|
25559
|
-
this.disabled = false;
|
|
25560
|
-
this.items = [];
|
|
25561
|
-
this.value = undefined;
|
|
25562
|
-
this.color = 'primary';
|
|
25563
|
-
this.numericInput = false;
|
|
25564
|
-
}
|
|
25565
|
-
valueChange() {
|
|
25566
|
-
if (this.isColumnVisible) {
|
|
25567
|
-
/**
|
|
25568
|
-
* Only scroll the active item into view when the picker column
|
|
25569
|
-
* is actively visible to the user.
|
|
25570
|
-
*/
|
|
25571
|
-
this.scrollActiveItemIntoView();
|
|
25289
|
+
if (this.isOpen === true) {
|
|
25290
|
+
raf(() => this.present());
|
|
25572
25291
|
}
|
|
25573
25292
|
}
|
|
25574
25293
|
/**
|
|
25575
|
-
*
|
|
25576
|
-
* when the picker is visible, otherwise
|
|
25577
|
-
* the container will have a scroll
|
|
25578
|
-
* height of 0px.
|
|
25294
|
+
* Present the picker overlay after it has been created.
|
|
25579
25295
|
*/
|
|
25580
|
-
|
|
25581
|
-
const
|
|
25582
|
-
|
|
25583
|
-
|
|
25584
|
-
|
|
25585
|
-
|
|
25586
|
-
/**
|
|
25587
|
-
* Because this initial call to scrollActiveItemIntoView has to fire before
|
|
25588
|
-
* the scroll listener is set up, we need to manage the active class manually.
|
|
25589
|
-
*/
|
|
25590
|
-
const oldActive = getElementRoot(el).querySelector(`.${PICKER_ITEM_ACTIVE_CLASS}`);
|
|
25591
|
-
if (oldActive) {
|
|
25592
|
-
this.setPickerItemActiveState(oldActive, false);
|
|
25593
|
-
}
|
|
25594
|
-
this.scrollActiveItemIntoView();
|
|
25595
|
-
if (activeItem) {
|
|
25596
|
-
this.setPickerItemActiveState(activeItem, true);
|
|
25597
|
-
}
|
|
25598
|
-
this.initializeScrollListener();
|
|
25599
|
-
}
|
|
25600
|
-
else {
|
|
25601
|
-
this.isColumnVisible = false;
|
|
25602
|
-
if (this.destroyScrollListener) {
|
|
25603
|
-
this.destroyScrollListener();
|
|
25604
|
-
this.destroyScrollListener = undefined;
|
|
25605
|
-
}
|
|
25606
|
-
}
|
|
25607
|
-
};
|
|
25608
|
-
new IntersectionObserver(visibleCallback, { threshold: 0.001 }).observe(this.el);
|
|
25609
|
-
const parentEl = (this.parentEl = this.el.closest('ion-picker-internal'));
|
|
25610
|
-
if (parentEl !== null) {
|
|
25611
|
-
// TODO(FW-2832): type
|
|
25612
|
-
parentEl.addEventListener('ionInputModeChange', (ev) => this.inputModeChange(ev));
|
|
25296
|
+
async present() {
|
|
25297
|
+
const unlock = await this.lockController.lock();
|
|
25298
|
+
await this.delegateController.attachViewToDom();
|
|
25299
|
+
await present(this, 'pickerEnter', iosEnterAnimation$2, iosEnterAnimation$2, undefined);
|
|
25300
|
+
if (this.duration > 0) {
|
|
25301
|
+
this.durationTimeout = setTimeout(() => this.dismiss(), this.duration);
|
|
25613
25302
|
}
|
|
25303
|
+
unlock();
|
|
25614
25304
|
}
|
|
25615
|
-
|
|
25616
|
-
|
|
25617
|
-
|
|
25618
|
-
|
|
25619
|
-
|
|
25620
|
-
|
|
25621
|
-
|
|
25622
|
-
|
|
25623
|
-
|
|
25624
|
-
|
|
25625
|
-
|
|
25626
|
-
|
|
25627
|
-
|
|
25628
|
-
*
|
|
25629
|
-
*/
|
|
25630
|
-
this.setValue(items[0].value);
|
|
25631
|
-
}
|
|
25305
|
+
/**
|
|
25306
|
+
* Dismiss the picker overlay after it has been presented.
|
|
25307
|
+
*
|
|
25308
|
+
* @param data Any data to emit in the dismiss events.
|
|
25309
|
+
* @param role The role of the element that is dismissing the picker.
|
|
25310
|
+
* This can be useful in a button handler for determining which button was
|
|
25311
|
+
* clicked to dismiss the picker.
|
|
25312
|
+
* Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
|
|
25313
|
+
*/
|
|
25314
|
+
async dismiss(data, role) {
|
|
25315
|
+
const unlock = await this.lockController.lock();
|
|
25316
|
+
if (this.durationTimeout) {
|
|
25317
|
+
clearTimeout(this.durationTimeout);
|
|
25632
25318
|
}
|
|
25633
|
-
|
|
25634
|
-
|
|
25635
|
-
|
|
25636
|
-
const activeEl = this.activeItem;
|
|
25637
|
-
if (activeEl) {
|
|
25638
|
-
this.centerPickerItemInView(activeEl, false, false);
|
|
25319
|
+
const dismissed = await dismiss(this, data, role, 'pickerLeave', iosLeaveAnimation$2, iosLeaveAnimation$2);
|
|
25320
|
+
if (dismissed) {
|
|
25321
|
+
this.delegateController.removeViewFromDom();
|
|
25639
25322
|
}
|
|
25323
|
+
unlock();
|
|
25324
|
+
return dismissed;
|
|
25640
25325
|
}
|
|
25641
25326
|
/**
|
|
25642
|
-
*
|
|
25643
|
-
* This is used when we need to fire ionChange from
|
|
25644
|
-
* user-generated events that cannot be caught with normal
|
|
25645
|
-
* input/change event listeners.
|
|
25646
|
-
* @internal
|
|
25327
|
+
* Returns a promise that resolves when the picker did dismiss.
|
|
25647
25328
|
*/
|
|
25648
|
-
|
|
25649
|
-
|
|
25650
|
-
|
|
25651
|
-
|
|
25652
|
-
|
|
25653
|
-
|
|
25329
|
+
onDidDismiss() {
|
|
25330
|
+
return eventMethod(this.el, 'ionPickerDidDismiss');
|
|
25331
|
+
}
|
|
25332
|
+
/**
|
|
25333
|
+
* Returns a promise that resolves when the picker will dismiss.
|
|
25334
|
+
*/
|
|
25335
|
+
onWillDismiss() {
|
|
25336
|
+
return eventMethod(this.el, 'ionPickerWillDismiss');
|
|
25337
|
+
}
|
|
25338
|
+
/**
|
|
25339
|
+
* Get the column that matches the specified name.
|
|
25340
|
+
*
|
|
25341
|
+
* @param name The name of the column.
|
|
25342
|
+
*/
|
|
25343
|
+
getColumn(name) {
|
|
25344
|
+
return Promise.resolve(this.columns.find((column) => column.name === name));
|
|
25345
|
+
}
|
|
25346
|
+
async buttonClick(button) {
|
|
25347
|
+
const role = button.role;
|
|
25348
|
+
if (isCancel(role)) {
|
|
25349
|
+
return this.dismiss(undefined, role);
|
|
25350
|
+
}
|
|
25351
|
+
const shouldDismiss = await this.callButtonHandler(button);
|
|
25352
|
+
if (shouldDismiss) {
|
|
25353
|
+
return this.dismiss(this.getSelected(), button.role);
|
|
25654
25354
|
}
|
|
25355
|
+
return Promise.resolve();
|
|
25655
25356
|
}
|
|
25656
|
-
|
|
25657
|
-
|
|
25658
|
-
|
|
25659
|
-
|
|
25660
|
-
|
|
25357
|
+
async callButtonHandler(button) {
|
|
25358
|
+
if (button) {
|
|
25359
|
+
// a handler has been provided, execute it
|
|
25360
|
+
// pass the handler the values from the inputs
|
|
25361
|
+
const rtn = await safeCall(button.handler, this.getSelected());
|
|
25362
|
+
if (rtn === false) {
|
|
25363
|
+
// if the return value of the handler is false then do not dismiss
|
|
25364
|
+
return false;
|
|
25365
|
+
}
|
|
25366
|
+
}
|
|
25367
|
+
return true;
|
|
25368
|
+
}
|
|
25369
|
+
getSelected() {
|
|
25370
|
+
const selected = {};
|
|
25371
|
+
this.columns.forEach((col, index) => {
|
|
25372
|
+
const selectedColumn = col.selectedIndex !== undefined ? col.options[col.selectedIndex] : undefined;
|
|
25373
|
+
selected[col.name] = {
|
|
25374
|
+
text: selectedColumn ? selectedColumn.text : undefined,
|
|
25375
|
+
value: selectedColumn ? selectedColumn.value : undefined,
|
|
25376
|
+
columnIndex: index,
|
|
25377
|
+
};
|
|
25378
|
+
});
|
|
25379
|
+
return selected;
|
|
25661
25380
|
}
|
|
25662
25381
|
render() {
|
|
25663
|
-
const {
|
|
25382
|
+
const { htmlAttributes } = this;
|
|
25664
25383
|
const mode = getIonMode$1(this);
|
|
25665
|
-
|
|
25666
|
-
|
|
25667
|
-
|
|
25668
|
-
|
|
25669
|
-
|
|
25670
|
-
*/
|
|
25671
|
-
return (hAsync(Host, { exportparts: `${PICKER_ITEM_PART}, ${PICKER_ITEM_ACTIVE_PART}`, disabled: pickerDisabled, tabindex: pickerDisabled ? null : 0, class: createColorClasses$1(color, {
|
|
25672
|
-
[mode]: true,
|
|
25673
|
-
['picker-column-active']: isActive,
|
|
25674
|
-
['picker-column-numeric-input']: numericInput,
|
|
25675
|
-
}) }, hAsync("div", { class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), items.map((item, index) => {
|
|
25676
|
-
const isItemDisabled = pickerDisabled || item.disabled || false;
|
|
25677
|
-
return (hAsync("button", { tabindex: "-1", class: {
|
|
25678
|
-
'picker-item': true,
|
|
25679
|
-
}, "data-value": item.value, "data-index": index, onClick: (ev) => {
|
|
25680
|
-
this.centerPickerItemInView(ev.target, true);
|
|
25681
|
-
}, disabled: isItemDisabled, part: PICKER_ITEM_PART }, item.text));
|
|
25682
|
-
}), hAsync("div", { class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0")));
|
|
25384
|
+
return (hAsync(Host, Object.assign({ "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
|
|
25385
|
+
zIndex: `${20000 + this.overlayIndex}`,
|
|
25386
|
+
}, class: Object.assign({ [mode]: true,
|
|
25387
|
+
// Used internally for styling
|
|
25388
|
+
[`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), hAsync("ion-backdrop", { visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { tabindex: "0" }), hAsync("div", { class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, hAsync("div", { class: "picker-toolbar" }, this.buttons.map((b) => (hAsync("div", { class: buttonWrapperClass(b) }, hAsync("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass$1(b) }, b.text))))), hAsync("div", { class: "picker-columns" }, hAsync("div", { class: "picker-above-highlight" }), this.presented && this.columns.map((c) => hAsync("ion-picker-legacy-column", { col: c })), hAsync("div", { class: "picker-below-highlight" }))), hAsync("div", { tabindex: "0" })));
|
|
25683
25389
|
}
|
|
25684
25390
|
get el() { return getElement(this); }
|
|
25685
25391
|
static get watchers() { return {
|
|
25686
|
-
"
|
|
25392
|
+
"isOpen": ["onIsOpenChange"],
|
|
25393
|
+
"trigger": ["triggerChanged"]
|
|
25687
25394
|
}; }
|
|
25688
25395
|
static get style() { return {
|
|
25689
|
-
ios:
|
|
25690
|
-
md:
|
|
25396
|
+
ios: pickerIosCss,
|
|
25397
|
+
md: pickerMdCss
|
|
25691
25398
|
}; }
|
|
25692
25399
|
static get cmpMeta() { return {
|
|
25693
|
-
"$flags$":
|
|
25694
|
-
"$tagName$": "ion-picker-
|
|
25400
|
+
"$flags$": 34,
|
|
25401
|
+
"$tagName$": "ion-picker-legacy",
|
|
25695
25402
|
"$members$": {
|
|
25696
|
-
"
|
|
25697
|
-
"
|
|
25698
|
-
"
|
|
25699
|
-
"
|
|
25700
|
-
"
|
|
25701
|
-
"
|
|
25702
|
-
"
|
|
25703
|
-
"
|
|
25403
|
+
"overlayIndex": [2, "overlay-index"],
|
|
25404
|
+
"delegate": [16],
|
|
25405
|
+
"hasController": [4, "has-controller"],
|
|
25406
|
+
"keyboardClose": [4, "keyboard-close"],
|
|
25407
|
+
"enterAnimation": [16],
|
|
25408
|
+
"leaveAnimation": [16],
|
|
25409
|
+
"buttons": [16],
|
|
25410
|
+
"columns": [16],
|
|
25411
|
+
"cssClass": [1, "css-class"],
|
|
25412
|
+
"duration": [2],
|
|
25413
|
+
"showBackdrop": [4, "show-backdrop"],
|
|
25414
|
+
"backdropDismiss": [4, "backdrop-dismiss"],
|
|
25415
|
+
"animated": [4],
|
|
25416
|
+
"htmlAttributes": [16],
|
|
25417
|
+
"isOpen": [4, "is-open"],
|
|
25418
|
+
"trigger": [1],
|
|
25419
|
+
"presented": [32],
|
|
25420
|
+
"present": [64],
|
|
25421
|
+
"dismiss": [64],
|
|
25422
|
+
"onDidDismiss": [64],
|
|
25423
|
+
"onWillDismiss": [64],
|
|
25424
|
+
"getColumn": [64]
|
|
25704
25425
|
},
|
|
25705
25426
|
"$listeners$": undefined,
|
|
25706
25427
|
"$lazyBundleId$": "-",
|
|
25707
|
-
"$attrsToReflect$": [
|
|
25428
|
+
"$attrsToReflect$": []
|
|
25708
25429
|
}; }
|
|
25709
25430
|
}
|
|
25710
|
-
const
|
|
25711
|
-
|
|
25712
|
-
|
|
25713
|
-
|
|
25714
|
-
|
|
25715
|
-
|
|
25716
|
-
const
|
|
25431
|
+
const buttonWrapperClass = (button) => {
|
|
25432
|
+
return {
|
|
25433
|
+
[`picker-toolbar-${button.role}`]: button.role !== undefined,
|
|
25434
|
+
'picker-toolbar-button': true,
|
|
25435
|
+
};
|
|
25436
|
+
};
|
|
25437
|
+
const buttonClass$1 = (button) => {
|
|
25438
|
+
return Object.assign({ 'picker-button': true, 'ion-activatable': true }, getClassMap(button.cssClass));
|
|
25439
|
+
};
|
|
25717
25440
|
|
|
25718
|
-
|
|
25719
|
-
|
|
25720
|
-
|
|
25721
|
-
|
|
25722
|
-
|
|
25723
|
-
|
|
25724
|
-
|
|
25725
|
-
|
|
25726
|
-
|
|
25727
|
-
|
|
25728
|
-
|
|
25729
|
-
|
|
25730
|
-
|
|
25731
|
-
|
|
25732
|
-
|
|
25733
|
-
|
|
25734
|
-
|
|
25735
|
-
|
|
25736
|
-
|
|
25737
|
-
|
|
25738
|
-
|
|
25739
|
-
|
|
25740
|
-
|
|
25441
|
+
const pickerColumnCss = "/*!@:host*/.sc-ion-picker-column-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;max-width:100%;height:200px;font-size:22px;text-align:center}/*!@.picker-opts*/.picker-opts.sc-ion-picker-column{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0px;padding-bottom:0px;min-width:26px;max-height:200px;outline:none;text-align:inherit;-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;overflow-x:hidden;overflow-y:scroll;scrollbar-width:none}/*!@.picker-item-empty*/.picker-item-empty.sc-ion-picker-column{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}/*!@.picker-opts::-webkit-scrollbar*/.picker-opts.sc-ion-picker-column::-webkit-scrollbar{display:none}/*!@::slotted(ion-picker-column-option)*/.sc-ion-picker-column-s>ion-picker-column-option{display:block;scroll-snap-align:center}/*!@.picker-item-empty,\n:host(:not([disabled])) ::slotted(ion-picker-column-option.option-disabled)*/.picker-item-empty.sc-ion-picker-column,.sc-ion-picker-column-h:not([disabled]).sc-ion-picker-column-s>ion-picker-column-option.option-disabled,.sc-ion-picker-column-h:not([disabled]) .sc-ion-picker-column-s>ion-picker-column-option.option-disabled{scroll-snap-align:none}/*!@::slotted([slot=prefix]), ::slotted([slot=suffix])*/.sc-ion-picker-column-s>[slot=prefix],.sc-ion-picker-column-s>[slot=suffix]{max-width:200px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}/*!@::slotted([slot=prefix])*/.sc-ion-picker-column-s>[slot=prefix]{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-ms-flex-pack:end;justify-content:end}/*!@::slotted([slot=suffix])*/.sc-ion-picker-column-s>[slot=suffix]{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-ms-flex-pack:start;justify-content:start}/*!@:host(.picker-column-disabled) .picker-opts*/.picker-column-disabled.sc-ion-picker-column-h .picker-opts.sc-ion-picker-column{overflow-y:hidden}/*!@:host(.picker-column-disabled) ::slotted(ion-picker-column-option)*/.sc-ion-picker-column-h.picker-column-disabled .sc-ion-picker-column-s>ion-picker-column-option{cursor:default;opacity:0.4;pointer-events:none}@media (any-hover: hover){/*!@:host(:focus) .picker-opts*/.sc-ion-picker-column-h:focus .picker-opts.sc-ion-picker-column{outline:none;background:rgba(var(--ion-color-base-rgb), 0.2)}}";
|
|
25442
|
+
|
|
25443
|
+
/**
|
|
25444
|
+
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
25445
|
+
*
|
|
25446
|
+
* @slot prefix - Content to show on the left side of the picker options.
|
|
25447
|
+
* @slot suffix - Content to show on the right side of the picker options.
|
|
25448
|
+
*/
|
|
25449
|
+
class PickerColumn {
|
|
25450
|
+
constructor(hostRef) {
|
|
25451
|
+
registerInstance(this, hostRef);
|
|
25452
|
+
this.ionChange = createEvent(this, "ionChange", 7);
|
|
25453
|
+
this.isScrolling = false;
|
|
25454
|
+
this.isColumnVisible = false;
|
|
25455
|
+
this.canExitInputMode = true;
|
|
25456
|
+
this.centerPickerItemInView = (target, smooth = true, canExitInputMode = true) => {
|
|
25457
|
+
const { isColumnVisible, scrollEl } = this;
|
|
25458
|
+
if (isColumnVisible && scrollEl) {
|
|
25459
|
+
// (Vertical offset from parent) - (three empty picker rows) + (half the height of the target to ensure the scroll triggers)
|
|
25460
|
+
const top = target.offsetTop - 3 * target.clientHeight + target.clientHeight / 2;
|
|
25461
|
+
if (scrollEl.scrollTop !== top) {
|
|
25462
|
+
/**
|
|
25463
|
+
* Setting this flag prevents input
|
|
25464
|
+
* mode from exiting in the picker column's
|
|
25465
|
+
* scroll callback. This is useful when the user manually
|
|
25466
|
+
* taps an item or types on the keyboard as both
|
|
25467
|
+
* of these can cause a scroll to occur.
|
|
25468
|
+
*/
|
|
25469
|
+
this.canExitInputMode = canExitInputMode;
|
|
25470
|
+
scrollEl.scroll({
|
|
25471
|
+
top,
|
|
25472
|
+
left: 0,
|
|
25473
|
+
behavior: smooth ? 'smooth' : undefined,
|
|
25474
|
+
});
|
|
25475
|
+
}
|
|
25741
25476
|
}
|
|
25742
|
-
return true;
|
|
25743
25477
|
};
|
|
25744
|
-
|
|
25745
|
-
|
|
25746
|
-
|
|
25747
|
-
|
|
25748
|
-
|
|
25749
|
-
|
|
25750
|
-
*/
|
|
25751
|
-
this.onFocusOut = (ev) => {
|
|
25752
|
-
// TODO(FW-2832): type
|
|
25753
|
-
const { relatedTarget } = ev;
|
|
25754
|
-
if (!relatedTarget || (relatedTarget.tagName !== 'ION-PICKER-COLUMN-INTERNAL' && relatedTarget !== this.inputEl)) {
|
|
25755
|
-
this.exitInputMode();
|
|
25478
|
+
this.setPickerItemActiveState = (item, isActive) => {
|
|
25479
|
+
if (isActive) {
|
|
25480
|
+
item.classList.add(PICKER_ITEM_ACTIVE_CLASS);
|
|
25481
|
+
}
|
|
25482
|
+
else {
|
|
25483
|
+
item.classList.remove(PICKER_ITEM_ACTIVE_CLASS);
|
|
25756
25484
|
}
|
|
25757
25485
|
};
|
|
25758
25486
|
/**
|
|
25759
|
-
* When
|
|
25760
|
-
* the
|
|
25761
|
-
*
|
|
25487
|
+
* When ionInputModeChange is emitted, each column
|
|
25488
|
+
* needs to check if it is the one being made available
|
|
25489
|
+
* for text entry.
|
|
25762
25490
|
*/
|
|
25763
|
-
this.
|
|
25764
|
-
|
|
25765
|
-
const { target } = ev;
|
|
25766
|
-
/**
|
|
25767
|
-
* Due to browser differences in how/when focus
|
|
25768
|
-
* is dispatched on certain elements, we need to
|
|
25769
|
-
* make sure that this function only ever runs when
|
|
25770
|
-
* focusing a picker column.
|
|
25771
|
-
*/
|
|
25772
|
-
if (target.tagName !== 'ION-PICKER-COLUMN-INTERNAL') {
|
|
25491
|
+
this.inputModeChange = (ev) => {
|
|
25492
|
+
if (!this.numericInput) {
|
|
25773
25493
|
return;
|
|
25774
25494
|
}
|
|
25495
|
+
const { useInputMode, inputModeColumn } = ev.detail;
|
|
25775
25496
|
/**
|
|
25776
|
-
* If
|
|
25777
|
-
*
|
|
25778
|
-
* a picker column via mouse or
|
|
25779
|
-
* touch (i.e. a PointerEvent). As a result,
|
|
25780
|
-
* we should not enter/exit input mode
|
|
25781
|
-
* until the click event has fired, which happens
|
|
25782
|
-
* after the `focusin` event.
|
|
25783
|
-
*
|
|
25784
|
-
* Otherwise, the user likely focused
|
|
25785
|
-
* the column using their keyboard and
|
|
25786
|
-
* we should enter/exit input mode automatically.
|
|
25497
|
+
* If inputModeColumn is undefined then this means
|
|
25498
|
+
* all numericInput columns are being selected.
|
|
25787
25499
|
*/
|
|
25788
|
-
|
|
25789
|
-
|
|
25790
|
-
|
|
25791
|
-
|
|
25792
|
-
this.enterInputMode(columnEl, false);
|
|
25793
|
-
}
|
|
25794
|
-
else {
|
|
25795
|
-
this.exitInputMode();
|
|
25796
|
-
}
|
|
25500
|
+
const isColumnActive = inputModeColumn === undefined || inputModeColumn === this.el;
|
|
25501
|
+
if (!useInputMode || !isColumnActive) {
|
|
25502
|
+
this.setInputModeActive(false);
|
|
25503
|
+
return;
|
|
25797
25504
|
}
|
|
25505
|
+
this.setInputModeActive(true);
|
|
25798
25506
|
};
|
|
25799
25507
|
/**
|
|
25800
|
-
*
|
|
25801
|
-
*
|
|
25802
|
-
*
|
|
25508
|
+
* Setting isActive will cause a re-render.
|
|
25509
|
+
* As a result, we do not want to cause the
|
|
25510
|
+
* re-render mid scroll as this will cause
|
|
25511
|
+
* the picker column to jump back to
|
|
25512
|
+
* whatever value was selected at the
|
|
25513
|
+
* start of the scroll interaction.
|
|
25803
25514
|
*/
|
|
25804
|
-
this.
|
|
25805
|
-
|
|
25806
|
-
|
|
25807
|
-
|
|
25808
|
-
|
|
25515
|
+
this.setInputModeActive = (state) => {
|
|
25516
|
+
if (this.isScrolling) {
|
|
25517
|
+
this.scrollEndCallback = () => {
|
|
25518
|
+
this.isActive = state;
|
|
25519
|
+
};
|
|
25520
|
+
return;
|
|
25809
25521
|
}
|
|
25522
|
+
this.isActive = state;
|
|
25810
25523
|
};
|
|
25811
25524
|
/**
|
|
25812
|
-
*
|
|
25813
|
-
*
|
|
25814
|
-
*
|
|
25815
|
-
*
|
|
25816
|
-
* focus the column using the keyboard. When the
|
|
25817
|
-
* user completes the click, the onClick function
|
|
25818
|
-
* runs and runs the actionOnClick callback.
|
|
25525
|
+
* When the column scrolls, the component
|
|
25526
|
+
* needs to determine which item is centered
|
|
25527
|
+
* in the view and will emit an ionChange with
|
|
25528
|
+
* the item object.
|
|
25819
25529
|
*/
|
|
25820
|
-
this.
|
|
25821
|
-
|
|
25822
|
-
|
|
25823
|
-
|
|
25824
|
-
|
|
25825
|
-
|
|
25826
|
-
|
|
25827
|
-
|
|
25828
|
-
|
|
25829
|
-
|
|
25830
|
-
|
|
25530
|
+
this.initializeScrollListener = () => {
|
|
25531
|
+
/**
|
|
25532
|
+
* The haptics for the wheel picker are
|
|
25533
|
+
* an iOS-only feature. As a result, they should
|
|
25534
|
+
* be disabled on Android.
|
|
25535
|
+
*/
|
|
25536
|
+
const enableHaptics = isPlatform('ios');
|
|
25537
|
+
const { el, scrollEl } = this;
|
|
25538
|
+
let timeout;
|
|
25539
|
+
let activeEl = this.activeItem;
|
|
25540
|
+
const scrollCallback = () => {
|
|
25541
|
+
raf(() => {
|
|
25542
|
+
if (!scrollEl)
|
|
25543
|
+
return;
|
|
25544
|
+
if (timeout) {
|
|
25545
|
+
clearTimeout(timeout);
|
|
25546
|
+
timeout = undefined;
|
|
25547
|
+
}
|
|
25548
|
+
if (!this.isScrolling) {
|
|
25549
|
+
enableHaptics && hapticSelectionStart();
|
|
25550
|
+
this.isScrolling = true;
|
|
25551
|
+
}
|
|
25831
25552
|
/**
|
|
25832
|
-
*
|
|
25833
|
-
*
|
|
25834
|
-
* mode for that column or all columns.
|
|
25835
|
-
* Otherwise we should exit input mode
|
|
25836
|
-
* since we just tapped the highlight and
|
|
25837
|
-
* not a column.
|
|
25553
|
+
* Select item in the center of the column
|
|
25554
|
+
* which is the month/year that we want to select
|
|
25838
25555
|
*/
|
|
25839
|
-
|
|
25840
|
-
|
|
25841
|
-
|
|
25842
|
-
|
|
25843
|
-
|
|
25844
|
-
|
|
25845
|
-
|
|
25846
|
-
|
|
25847
|
-
|
|
25848
|
-
|
|
25849
|
-
|
|
25850
|
-
|
|
25851
|
-
|
|
25852
|
-
|
|
25853
|
-
|
|
25854
|
-
|
|
25855
|
-
|
|
25856
|
-
|
|
25857
|
-
|
|
25858
|
-
|
|
25859
|
-
|
|
25860
|
-
|
|
25556
|
+
const bbox = scrollEl.getBoundingClientRect();
|
|
25557
|
+
const centerX = bbox.x + bbox.width / 2;
|
|
25558
|
+
const centerY = bbox.y + bbox.height / 2;
|
|
25559
|
+
/**
|
|
25560
|
+
* elementFromPoint returns the top-most element.
|
|
25561
|
+
* This means that if an ion-backdrop is overlaying the
|
|
25562
|
+
* picker then the appropriate picker column option will
|
|
25563
|
+
* not be selected. To account for this, we use elementsFromPoint
|
|
25564
|
+
* and use an Array.find to find the appropriate column option
|
|
25565
|
+
* at that point.
|
|
25566
|
+
*
|
|
25567
|
+
* Additionally, the picker column could be used in the
|
|
25568
|
+
* Shadow DOM (i.e. in ion-datetime) so we need to make
|
|
25569
|
+
* sure we are choosing the correct host otherwise
|
|
25570
|
+
* the elements returns by elementsFromPoint will be
|
|
25571
|
+
* retargeted. To account for this, we check to see
|
|
25572
|
+
* if the picker column has a parent shadow root. If
|
|
25573
|
+
* so, we use that shadow root when doing elementsFromPoint.
|
|
25574
|
+
* Otherwise, we just use the document.
|
|
25575
|
+
*/
|
|
25576
|
+
const rootNode = el.getRootNode();
|
|
25577
|
+
const hasParentShadow = rootNode instanceof ShadowRoot;
|
|
25578
|
+
const referenceNode = hasParentShadow ? rootNode : doc;
|
|
25579
|
+
/**
|
|
25580
|
+
* If the reference node is undefined
|
|
25581
|
+
* then it's likely that doc is undefined
|
|
25582
|
+
* due to being in an SSR environment.
|
|
25583
|
+
*/
|
|
25584
|
+
if (referenceNode === undefined) {
|
|
25585
|
+
return;
|
|
25861
25586
|
}
|
|
25587
|
+
const elementsAtPoint = referenceNode.elementsFromPoint(centerX, centerY);
|
|
25862
25588
|
/**
|
|
25863
|
-
*
|
|
25864
|
-
*
|
|
25865
|
-
* enter input mode for all columns.
|
|
25589
|
+
* elementsFromPoint can returns multiple elements
|
|
25590
|
+
* so find the relevant picker column option if one exists.
|
|
25866
25591
|
*/
|
|
25867
|
-
|
|
25868
|
-
|
|
25592
|
+
const newActiveElement = elementsAtPoint.find((el) => el.tagName === 'ION-PICKER-COLUMN-OPTION');
|
|
25593
|
+
if (activeEl !== undefined) {
|
|
25594
|
+
this.setPickerItemActiveState(activeEl, false);
|
|
25595
|
+
}
|
|
25596
|
+
if (newActiveElement === undefined || newActiveElement.disabled) {
|
|
25597
|
+
return;
|
|
25598
|
+
}
|
|
25869
25599
|
/**
|
|
25870
|
-
* If
|
|
25871
|
-
*
|
|
25600
|
+
* If we are selecting a new value,
|
|
25601
|
+
* we need to run haptics again.
|
|
25872
25602
|
*/
|
|
25873
|
-
|
|
25874
|
-
|
|
25875
|
-
|
|
25876
|
-
|
|
25877
|
-
|
|
25878
|
-
|
|
25879
|
-
|
|
25880
|
-
|
|
25881
|
-
|
|
25882
|
-
|
|
25603
|
+
if (newActiveElement !== activeEl) {
|
|
25604
|
+
enableHaptics && hapticSelectionChanged();
|
|
25605
|
+
if (this.canExitInputMode) {
|
|
25606
|
+
/**
|
|
25607
|
+
* The native iOS wheel picker
|
|
25608
|
+
* only dismisses the keyboard
|
|
25609
|
+
* once the selected item has changed
|
|
25610
|
+
* as a result of a swipe
|
|
25611
|
+
* from the user. If `canExitInputMode` is
|
|
25612
|
+
* `false` then this means that the
|
|
25613
|
+
* scroll is happening as a result of
|
|
25614
|
+
* the `value` property programmatically changing
|
|
25615
|
+
* either by an application or by the user via the keyboard.
|
|
25616
|
+
*/
|
|
25617
|
+
this.exitInputMode();
|
|
25618
|
+
}
|
|
25619
|
+
}
|
|
25620
|
+
activeEl = newActiveElement;
|
|
25621
|
+
this.setPickerItemActiveState(newActiveElement, true);
|
|
25622
|
+
timeout = setTimeout(() => {
|
|
25623
|
+
this.isScrolling = false;
|
|
25624
|
+
enableHaptics && hapticSelectionEnd();
|
|
25625
|
+
/**
|
|
25626
|
+
* Certain tasks (such as those that
|
|
25627
|
+
* cause re-renders) should only be done
|
|
25628
|
+
* once scrolling has finished, otherwise
|
|
25629
|
+
* flickering may occur.
|
|
25630
|
+
*/
|
|
25631
|
+
const { scrollEndCallback } = this;
|
|
25632
|
+
if (scrollEndCallback) {
|
|
25633
|
+
scrollEndCallback();
|
|
25634
|
+
this.scrollEndCallback = undefined;
|
|
25635
|
+
}
|
|
25636
|
+
/**
|
|
25637
|
+
* Reset this flag as the
|
|
25638
|
+
* next scroll interaction could
|
|
25639
|
+
* be a scroll from the user. In this
|
|
25640
|
+
* case, we should exit input mode.
|
|
25641
|
+
*/
|
|
25642
|
+
this.canExitInputMode = true;
|
|
25643
|
+
this.setValue(newActiveElement.value);
|
|
25644
|
+
}, 250);
|
|
25645
|
+
});
|
|
25883
25646
|
};
|
|
25647
|
+
/**
|
|
25648
|
+
* Wrap this in an raf so that the scroll callback
|
|
25649
|
+
* does not fire when component is initially shown.
|
|
25650
|
+
*/
|
|
25651
|
+
raf(() => {
|
|
25652
|
+
if (!scrollEl)
|
|
25653
|
+
return;
|
|
25654
|
+
scrollEl.addEventListener('scroll', scrollCallback);
|
|
25655
|
+
this.destroyScrollListener = () => {
|
|
25656
|
+
scrollEl.removeEventListener('scroll', scrollCallback);
|
|
25657
|
+
};
|
|
25658
|
+
});
|
|
25884
25659
|
};
|
|
25885
25660
|
/**
|
|
25886
|
-
*
|
|
25887
|
-
*
|
|
25888
|
-
*
|
|
25889
|
-
*
|
|
25890
|
-
*
|
|
25891
|
-
* keyboard, picker columns receive an outline
|
|
25892
|
-
* to indicate they are focused. As a result,
|
|
25893
|
-
* we should not focus the hidden input as it
|
|
25894
|
-
* would cause the outline to go away, preventing
|
|
25895
|
-
* users from having any visual indication of which
|
|
25896
|
-
* column is focused.
|
|
25661
|
+
* Tells the parent picker to
|
|
25662
|
+
* exit text entry mode. This is only called
|
|
25663
|
+
* when the selected item changes during scroll, so
|
|
25664
|
+
* we know that the user likely wants to scroll
|
|
25665
|
+
* instead of type.
|
|
25897
25666
|
*/
|
|
25898
|
-
this.
|
|
25899
|
-
const {
|
|
25900
|
-
if (
|
|
25667
|
+
this.exitInputMode = () => {
|
|
25668
|
+
const { parentEl } = this;
|
|
25669
|
+
if (parentEl == null)
|
|
25901
25670
|
return;
|
|
25902
|
-
|
|
25671
|
+
parentEl.exitInputMode();
|
|
25903
25672
|
/**
|
|
25904
|
-
*
|
|
25905
|
-
*
|
|
25673
|
+
* setInputModeActive only takes
|
|
25674
|
+
* effect once scrolling stops to avoid
|
|
25675
|
+
* a component re-render while scrolling.
|
|
25676
|
+
* However, we want the visual active
|
|
25677
|
+
* indicator to go away immediately, so
|
|
25678
|
+
* we call classList.remove here.
|
|
25906
25679
|
*/
|
|
25907
|
-
|
|
25908
|
-
|
|
25909
|
-
|
|
25680
|
+
this.el.classList.remove('picker-column-active');
|
|
25681
|
+
};
|
|
25682
|
+
this.isActive = false;
|
|
25683
|
+
this.disabled = false;
|
|
25684
|
+
this.value = undefined;
|
|
25685
|
+
this.color = 'primary';
|
|
25686
|
+
this.numericInput = false;
|
|
25687
|
+
}
|
|
25688
|
+
valueChange() {
|
|
25689
|
+
if (this.isColumnVisible) {
|
|
25690
|
+
/**
|
|
25691
|
+
* Only scroll the active item into view when the picker column
|
|
25692
|
+
* is actively visible to the user.
|
|
25693
|
+
*/
|
|
25694
|
+
this.scrollActiveItemIntoView(true);
|
|
25695
|
+
}
|
|
25696
|
+
}
|
|
25697
|
+
/**
|
|
25698
|
+
* Only setup scroll listeners
|
|
25699
|
+
* when the picker is visible, otherwise
|
|
25700
|
+
* the container will have a scroll
|
|
25701
|
+
* height of 0px.
|
|
25702
|
+
*/
|
|
25703
|
+
componentWillLoad() {
|
|
25704
|
+
const visibleCallback = (entries) => {
|
|
25705
|
+
const ev = entries[0];
|
|
25706
|
+
if (ev.isIntersecting) {
|
|
25707
|
+
const { activeItem, el } = this;
|
|
25708
|
+
this.isColumnVisible = true;
|
|
25709
|
+
/**
|
|
25710
|
+
* Because this initial call to scrollActiveItemIntoView has to fire before
|
|
25711
|
+
* the scroll listener is set up, we need to manage the active class manually.
|
|
25712
|
+
*/
|
|
25713
|
+
const oldActive = getElementRoot(el).querySelector(`.${PICKER_ITEM_ACTIVE_CLASS}`);
|
|
25714
|
+
if (oldActive) {
|
|
25715
|
+
this.setPickerItemActiveState(oldActive, false);
|
|
25716
|
+
}
|
|
25717
|
+
this.scrollActiveItemIntoView();
|
|
25718
|
+
if (activeItem) {
|
|
25719
|
+
this.setPickerItemActiveState(activeItem, true);
|
|
25720
|
+
}
|
|
25721
|
+
this.initializeScrollListener();
|
|
25722
|
+
}
|
|
25723
|
+
else {
|
|
25724
|
+
this.isColumnVisible = false;
|
|
25725
|
+
if (this.destroyScrollListener) {
|
|
25726
|
+
this.destroyScrollListener();
|
|
25727
|
+
this.destroyScrollListener = undefined;
|
|
25728
|
+
}
|
|
25910
25729
|
}
|
|
25730
|
+
};
|
|
25731
|
+
new IntersectionObserver(visibleCallback, { threshold: 0.001 }).observe(this.el);
|
|
25732
|
+
const parentEl = (this.parentEl = this.el.closest('ion-picker'));
|
|
25733
|
+
if (parentEl !== null) {
|
|
25734
|
+
// TODO(FW-2832): type
|
|
25735
|
+
parentEl.addEventListener('ionInputModeChange', (ev) => this.inputModeChange(ev));
|
|
25736
|
+
}
|
|
25737
|
+
}
|
|
25738
|
+
componentDidRender() {
|
|
25739
|
+
const { el, activeItem, isColumnVisible, value } = this;
|
|
25740
|
+
if (isColumnVisible && !activeItem) {
|
|
25741
|
+
const firstOption = el.querySelector('ion-picker-column-option');
|
|
25911
25742
|
/**
|
|
25912
|
-
* If
|
|
25913
|
-
*
|
|
25914
|
-
*
|
|
25915
|
-
*
|
|
25743
|
+
* If the picker column does not have an active item and the current value
|
|
25744
|
+
* does not match the first item in the picker column, that means
|
|
25745
|
+
* the value is out of bounds. In this case, we assign the value to the
|
|
25746
|
+
* first item to match the scroll position of the column.
|
|
25747
|
+
*
|
|
25916
25748
|
*/
|
|
25917
|
-
|
|
25918
|
-
|
|
25749
|
+
if (firstOption !== null && firstOption.value !== value) {
|
|
25750
|
+
this.setValue(firstOption.value);
|
|
25751
|
+
}
|
|
25752
|
+
}
|
|
25753
|
+
}
|
|
25754
|
+
/** @internal */
|
|
25755
|
+
async scrollActiveItemIntoView(smooth = false) {
|
|
25756
|
+
const activeEl = this.activeItem;
|
|
25757
|
+
if (activeEl) {
|
|
25758
|
+
this.centerPickerItemInView(activeEl, smooth, false);
|
|
25759
|
+
}
|
|
25760
|
+
}
|
|
25761
|
+
/**
|
|
25762
|
+
* Sets the value prop and fires the ionChange event.
|
|
25763
|
+
* This is used when we need to fire ionChange from
|
|
25764
|
+
* user-generated events that cannot be caught with normal
|
|
25765
|
+
* input/change event listeners.
|
|
25766
|
+
* @internal
|
|
25767
|
+
*/
|
|
25768
|
+
async setValue(value) {
|
|
25769
|
+
if (this.disabled === true || this.value === value) {
|
|
25770
|
+
return;
|
|
25771
|
+
}
|
|
25772
|
+
this.value = value;
|
|
25773
|
+
this.ionChange.emit({ value });
|
|
25774
|
+
}
|
|
25775
|
+
/**
|
|
25776
|
+
* Sets focus on the scrollable container within the picker column.
|
|
25777
|
+
* Use this method instead of the global `pickerColumn.focus()`.
|
|
25778
|
+
*/
|
|
25779
|
+
async setFocus() {
|
|
25780
|
+
if (this.scrollEl) {
|
|
25781
|
+
this.scrollEl.focus();
|
|
25782
|
+
}
|
|
25783
|
+
}
|
|
25784
|
+
get activeItem() {
|
|
25785
|
+
const { value } = this;
|
|
25786
|
+
const options = Array.from(this.el.querySelectorAll('ion-picker-column-option'));
|
|
25787
|
+
return options.find((option) => {
|
|
25919
25788
|
/**
|
|
25920
|
-
*
|
|
25921
|
-
*
|
|
25922
|
-
* focused as well as when it is not focused,
|
|
25923
|
-
* so we need to make sure we clean up any
|
|
25924
|
-
* old listeners.
|
|
25789
|
+
* If the whole picker column is disabled, the current value should appear active
|
|
25790
|
+
* If the current value item is specifically disabled, it should not appear active
|
|
25925
25791
|
*/
|
|
25926
|
-
if (
|
|
25927
|
-
|
|
25928
|
-
|
|
25929
|
-
|
|
25792
|
+
if (!this.disabled && option.disabled) {
|
|
25793
|
+
return false;
|
|
25794
|
+
}
|
|
25795
|
+
return option.value === value;
|
|
25796
|
+
});
|
|
25797
|
+
}
|
|
25798
|
+
render() {
|
|
25799
|
+
const { color, disabled, isActive, numericInput } = this;
|
|
25800
|
+
const mode = getIonMode$1(this);
|
|
25801
|
+
return (hAsync(Host, { class: createColorClasses$1(color, {
|
|
25802
|
+
[mode]: true,
|
|
25803
|
+
['picker-column-active']: isActive,
|
|
25804
|
+
['picker-column-numeric-input']: numericInput,
|
|
25805
|
+
['picker-column-disabled']: disabled,
|
|
25806
|
+
}) }, hAsync("slot", { name: "prefix" }), hAsync("div", { class: "picker-opts", tabindex: disabled ? undefined : 0, ref: (el) => {
|
|
25807
|
+
this.scrollEl = el;
|
|
25808
|
+
} }, hAsync("div", { class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("slot", null), hAsync("div", { class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), hAsync("slot", { name: "suffix" })));
|
|
25809
|
+
}
|
|
25810
|
+
get el() { return getElement(this); }
|
|
25811
|
+
static get watchers() { return {
|
|
25812
|
+
"value": ["valueChange"]
|
|
25813
|
+
}; }
|
|
25814
|
+
static get style() { return pickerColumnCss; }
|
|
25815
|
+
static get cmpMeta() { return {
|
|
25816
|
+
"$flags$": 9,
|
|
25817
|
+
"$tagName$": "ion-picker-column",
|
|
25818
|
+
"$members$": {
|
|
25819
|
+
"disabled": [4],
|
|
25820
|
+
"value": [1032],
|
|
25821
|
+
"color": [513],
|
|
25822
|
+
"numericInput": [4, "numeric-input"],
|
|
25823
|
+
"isActive": [32],
|
|
25824
|
+
"scrollActiveItemIntoView": [64],
|
|
25825
|
+
"setValue": [64],
|
|
25826
|
+
"setFocus": [64]
|
|
25827
|
+
},
|
|
25828
|
+
"$listeners$": undefined,
|
|
25829
|
+
"$lazyBundleId$": "-",
|
|
25830
|
+
"$attrsToReflect$": [["color", "color"]]
|
|
25831
|
+
}; }
|
|
25832
|
+
}
|
|
25833
|
+
const PICKER_ITEM_ACTIVE_CLASS = 'option-active';
|
|
25834
|
+
|
|
25835
|
+
const pickerColumnIosCss = ".picker-col{display:-ms-flexbox;display:flex;position:relative;-ms-flex:1;flex:1;-ms-flex-pack:center;justify-content:center;height:100%;-webkit-box-sizing:content-box;box-sizing:content-box;contain:content}.picker-opts{position:relative;-ms-flex:1;flex:1;max-width:100%}.picker-opt{top:0;display:block;position:absolute;width:100%;border:0;text-align:center;text-overflow:ellipsis;white-space:nowrap;contain:strict;overflow:hidden;will-change:transform}@supports (inset-inline-start: 0){.picker-opt{inset-inline-start:0}}@supports not (inset-inline-start: 0){.picker-opt{left:0}:host-context([dir=rtl]) .picker-opt{left:unset;right:unset;right:0}[dir=rtl] .picker-opt{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.picker-opt:dir(rtl){left:unset;right:unset;right:0}}}.picker-opt.picker-opt-disabled{pointer-events:none}.picker-opt-disabled{opacity:0}.picker-opts-left{-ms-flex-pack:start;justify-content:flex-start}.picker-opts-right{-ms-flex-pack:end;justify-content:flex-end}.picker-opt:active,.picker-opt:focus{outline:none}.picker-prefix{position:relative;-ms-flex:1;flex:1;text-align:end;white-space:nowrap}.picker-suffix{position:relative;-ms-flex:1;flex:1;text-align:start;white-space:nowrap}.picker-col{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:0;padding-bottom:0;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.picker-prefix,.picker-suffix,.picker-opts{top:77px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;color:inherit;font-size:20px;line-height:42px;pointer-events:none}.picker-opt{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-transform-origin:center center;transform-origin:center center;height:46px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out;background:transparent;color:inherit;font-size:20px;line-height:42px;-webkit-backface-visibility:hidden;backface-visibility:hidden;pointer-events:auto}:host-context([dir=rtl]) .picker-opt{-webkit-transform-origin:calc(100% - center) center;transform-origin:calc(100% - center) center}[dir=rtl] .picker-opt{-webkit-transform-origin:calc(100% - center) center;transform-origin:calc(100% - center) center}@supports selector(:dir(rtl)){.picker-opt:dir(rtl){-webkit-transform-origin:calc(100% - center) center;transform-origin:calc(100% - center) center}}";
|
|
25836
|
+
|
|
25837
|
+
const pickerColumnMdCss = ".picker-col{display:-ms-flexbox;display:flex;position:relative;-ms-flex:1;flex:1;-ms-flex-pack:center;justify-content:center;height:100%;-webkit-box-sizing:content-box;box-sizing:content-box;contain:content}.picker-opts{position:relative;-ms-flex:1;flex:1;max-width:100%}.picker-opt{top:0;display:block;position:absolute;width:100%;border:0;text-align:center;text-overflow:ellipsis;white-space:nowrap;contain:strict;overflow:hidden;will-change:transform}@supports (inset-inline-start: 0){.picker-opt{inset-inline-start:0}}@supports not (inset-inline-start: 0){.picker-opt{left:0}:host-context([dir=rtl]) .picker-opt{left:unset;right:unset;right:0}[dir=rtl] .picker-opt{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.picker-opt:dir(rtl){left:unset;right:unset;right:0}}}.picker-opt.picker-opt-disabled{pointer-events:none}.picker-opt-disabled{opacity:0}.picker-opts-left{-ms-flex-pack:start;justify-content:flex-start}.picker-opts-right{-ms-flex-pack:end;justify-content:flex-end}.picker-opt:active,.picker-opt:focus{outline:none}.picker-prefix{position:relative;-ms-flex:1;flex:1;text-align:end;white-space:nowrap}.picker-suffix{position:relative;-ms-flex:1;flex:1;text-align:start;white-space:nowrap}.picker-col{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:0;padding-bottom:0;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.picker-prefix,.picker-suffix,.picker-opts{top:77px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;color:inherit;font-size:22px;line-height:42px;pointer-events:none}.picker-opt{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;height:43px;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out;background:transparent;color:inherit;font-size:22px;line-height:42px;-webkit-backface-visibility:hidden;backface-visibility:hidden;pointer-events:auto}.picker-prefix,.picker-suffix,.picker-opt.picker-opt-selected{color:var(--ion-color-primary, #3880ff)}";
|
|
25838
|
+
|
|
25839
|
+
/**
|
|
25840
|
+
* @internal
|
|
25841
|
+
*/
|
|
25842
|
+
class PickerColumnCmp {
|
|
25843
|
+
constructor(hostRef) {
|
|
25844
|
+
registerInstance(this, hostRef);
|
|
25845
|
+
this.ionPickerColChange = createEvent(this, "ionPickerColChange", 7);
|
|
25846
|
+
this.optHeight = 0;
|
|
25847
|
+
this.rotateFactor = 0;
|
|
25848
|
+
this.scaleFactor = 1;
|
|
25849
|
+
this.velocity = 0;
|
|
25850
|
+
this.y = 0;
|
|
25851
|
+
this.noAnimate = true;
|
|
25852
|
+
// `colDidChange` is a flag that gets set when the column is changed
|
|
25853
|
+
// dynamically. When this flag is set, the column will refresh
|
|
25854
|
+
// after the component re-renders to incorporate the new column data.
|
|
25855
|
+
// This is necessary because `this.refresh` queries for the option elements,
|
|
25856
|
+
// so it needs to wait for the latest elements to be available in the DOM.
|
|
25857
|
+
// Ex: column is created with 3 options. User updates the column data
|
|
25858
|
+
// to have 5 options. The column will still think it only has 3 options.
|
|
25859
|
+
this.colDidChange = false;
|
|
25860
|
+
this.col = undefined;
|
|
25861
|
+
}
|
|
25862
|
+
colChanged() {
|
|
25863
|
+
this.colDidChange = true;
|
|
25864
|
+
}
|
|
25865
|
+
async connectedCallback() {
|
|
25866
|
+
let pickerRotateFactor = 0;
|
|
25867
|
+
let pickerScaleFactor = 0.81;
|
|
25868
|
+
const mode = getIonMode$1(this);
|
|
25869
|
+
if (mode === 'ios') {
|
|
25870
|
+
pickerRotateFactor = -0.46;
|
|
25871
|
+
pickerScaleFactor = 1;
|
|
25872
|
+
}
|
|
25873
|
+
this.rotateFactor = pickerRotateFactor;
|
|
25874
|
+
this.scaleFactor = pickerScaleFactor;
|
|
25875
|
+
this.gesture = (await Promise.resolve().then(function () { return index; })).createGesture({
|
|
25876
|
+
el: this.el,
|
|
25877
|
+
gestureName: 'picker-swipe',
|
|
25878
|
+
gesturePriority: 100,
|
|
25879
|
+
threshold: 0,
|
|
25880
|
+
passive: false,
|
|
25881
|
+
onStart: (ev) => this.onStart(ev),
|
|
25882
|
+
onMove: (ev) => this.onMove(ev),
|
|
25883
|
+
onEnd: (ev) => this.onEnd(ev),
|
|
25884
|
+
});
|
|
25885
|
+
this.gesture.enable();
|
|
25886
|
+
// Options have not been initialized yet
|
|
25887
|
+
// Animation must be disabled through the `noAnimate` flag
|
|
25888
|
+
// Otherwise, the options will render
|
|
25889
|
+
// at the top of the column and transition down
|
|
25890
|
+
this.tmrId = setTimeout(() => {
|
|
25891
|
+
this.noAnimate = false;
|
|
25892
|
+
// After initialization, `refresh()` will be called
|
|
25893
|
+
// At this point, animation will be enabled. The options will
|
|
25894
|
+
// animate as they are being selected.
|
|
25895
|
+
this.refresh(true);
|
|
25896
|
+
}, 250);
|
|
25897
|
+
}
|
|
25898
|
+
componentDidLoad() {
|
|
25899
|
+
this.onDomChange();
|
|
25900
|
+
}
|
|
25901
|
+
componentDidUpdate() {
|
|
25902
|
+
// Options may have changed since last update.
|
|
25903
|
+
if (this.colDidChange) {
|
|
25904
|
+
// Animation must be disabled through the `onDomChange` parameter.
|
|
25905
|
+
// Otherwise, the recently added options will render
|
|
25906
|
+
// at the top of the column and transition down
|
|
25907
|
+
this.onDomChange(true, false);
|
|
25908
|
+
this.colDidChange = false;
|
|
25909
|
+
}
|
|
25910
|
+
}
|
|
25911
|
+
disconnectedCallback() {
|
|
25912
|
+
if (this.rafId !== undefined)
|
|
25913
|
+
cancelAnimationFrame(this.rafId);
|
|
25914
|
+
if (this.tmrId)
|
|
25915
|
+
clearTimeout(this.tmrId);
|
|
25916
|
+
if (this.gesture) {
|
|
25917
|
+
this.gesture.destroy();
|
|
25918
|
+
this.gesture = undefined;
|
|
25919
|
+
}
|
|
25920
|
+
}
|
|
25921
|
+
emitColChange() {
|
|
25922
|
+
this.ionPickerColChange.emit(this.col);
|
|
25923
|
+
}
|
|
25924
|
+
setSelected(selectedIndex, duration) {
|
|
25925
|
+
// if there is a selected index, then figure out it's y position
|
|
25926
|
+
// if there isn't a selected index, then just use the top y position
|
|
25927
|
+
const y = selectedIndex > -1 ? -(selectedIndex * this.optHeight) : 0;
|
|
25928
|
+
this.velocity = 0;
|
|
25929
|
+
// set what y position we're at
|
|
25930
|
+
if (this.rafId !== undefined)
|
|
25931
|
+
cancelAnimationFrame(this.rafId);
|
|
25932
|
+
this.update(y, duration, true);
|
|
25933
|
+
this.emitColChange();
|
|
25934
|
+
}
|
|
25935
|
+
update(y, duration, saveY) {
|
|
25936
|
+
if (!this.optsEl) {
|
|
25937
|
+
return;
|
|
25938
|
+
}
|
|
25939
|
+
// ensure we've got a good round number :)
|
|
25940
|
+
let translateY = 0;
|
|
25941
|
+
let translateZ = 0;
|
|
25942
|
+
const { col, rotateFactor } = this;
|
|
25943
|
+
const prevSelected = col.selectedIndex;
|
|
25944
|
+
const selectedIndex = (col.selectedIndex = this.indexForY(-y));
|
|
25945
|
+
const durationStr = duration === 0 ? '' : duration + 'ms';
|
|
25946
|
+
const scaleStr = `scale(${this.scaleFactor})`;
|
|
25947
|
+
const children = this.optsEl.children;
|
|
25948
|
+
for (let i = 0; i < children.length; i++) {
|
|
25949
|
+
const button = children[i];
|
|
25950
|
+
const opt = col.options[i];
|
|
25951
|
+
const optOffset = i * this.optHeight + y;
|
|
25952
|
+
let transform = '';
|
|
25953
|
+
if (rotateFactor !== 0) {
|
|
25954
|
+
const rotateX = optOffset * rotateFactor;
|
|
25955
|
+
if (Math.abs(rotateX) <= 90) {
|
|
25956
|
+
translateY = 0;
|
|
25957
|
+
translateZ = 90;
|
|
25958
|
+
transform = `rotateX(${rotateX}deg) `;
|
|
25959
|
+
}
|
|
25960
|
+
else {
|
|
25961
|
+
translateY = -9999;
|
|
25930
25962
|
}
|
|
25931
|
-
inputEl.focus();
|
|
25932
25963
|
}
|
|
25933
25964
|
else {
|
|
25934
|
-
|
|
25935
|
-
|
|
25936
|
-
el.removeEventListener('keypress', this.onKeyPress);
|
|
25937
|
-
};
|
|
25965
|
+
translateZ = 0;
|
|
25966
|
+
translateY = optOffset;
|
|
25938
25967
|
}
|
|
25939
|
-
|
|
25940
|
-
|
|
25941
|
-
|
|
25942
|
-
|
|
25943
|
-
if (!inputEl) {
|
|
25944
|
-
return;
|
|
25968
|
+
const selected = selectedIndex === i;
|
|
25969
|
+
transform += `translate3d(0px,${translateY}px,${translateZ}px) `;
|
|
25970
|
+
if (this.scaleFactor !== 1 && !selected) {
|
|
25971
|
+
transform += scaleStr;
|
|
25945
25972
|
}
|
|
25946
|
-
|
|
25947
|
-
|
|
25948
|
-
|
|
25949
|
-
|
|
25950
|
-
if (!Number.isNaN(parsedValue)) {
|
|
25951
|
-
inputEl.value += ev.key;
|
|
25952
|
-
this.onInputChange();
|
|
25973
|
+
// Update transition duration
|
|
25974
|
+
if (this.noAnimate) {
|
|
25975
|
+
opt.duration = 0;
|
|
25976
|
+
button.style.transitionDuration = '';
|
|
25953
25977
|
}
|
|
25954
|
-
|
|
25955
|
-
|
|
25956
|
-
|
|
25957
|
-
if (!inputEl || !inputModeColumn) {
|
|
25958
|
-
return;
|
|
25978
|
+
else if (duration !== opt.duration) {
|
|
25979
|
+
opt.duration = duration;
|
|
25980
|
+
button.style.transitionDuration = durationStr;
|
|
25959
25981
|
}
|
|
25960
|
-
|
|
25961
|
-
|
|
25962
|
-
|
|
25963
|
-
* value should be reset similar to how a
|
|
25964
|
-
* <select> behaves. So typing "34", waiting,
|
|
25965
|
-
* then typing "5" should select "05".
|
|
25966
|
-
*/
|
|
25967
|
-
if (singleColumnSearchTimeout) {
|
|
25968
|
-
clearTimeout(singleColumnSearchTimeout);
|
|
25982
|
+
// Update transform
|
|
25983
|
+
if (transform !== opt.transform) {
|
|
25984
|
+
opt.transform = transform;
|
|
25969
25985
|
}
|
|
25970
|
-
|
|
25971
|
-
inputEl.value = '';
|
|
25972
|
-
this.singleColumnSearchTimeout = undefined;
|
|
25973
|
-
}, 1000);
|
|
25986
|
+
button.style.transform = transform;
|
|
25974
25987
|
/**
|
|
25975
|
-
*
|
|
25976
|
-
*
|
|
25977
|
-
* to the left. So typing "456" would result in "56".
|
|
25978
|
-
* TODO: If we want to support more than just
|
|
25979
|
-
* time entry, we should update this value to be
|
|
25980
|
-
* the max length of all of the picker items.
|
|
25988
|
+
* Ensure that the select column
|
|
25989
|
+
* item has the selected class
|
|
25981
25990
|
*/
|
|
25982
|
-
|
|
25983
|
-
|
|
25984
|
-
|
|
25985
|
-
inputEl.value = newString;
|
|
25986
|
-
this.selectSingleColumn();
|
|
25987
|
-
return;
|
|
25991
|
+
opt.selected = selected;
|
|
25992
|
+
if (selected) {
|
|
25993
|
+
button.classList.add(PICKER_OPT_SELECTED);
|
|
25988
25994
|
}
|
|
25989
|
-
|
|
25990
|
-
|
|
25991
|
-
* first. For example, if the value of the input
|
|
25992
|
-
* is "1" and we entered "2", then the complete value
|
|
25993
|
-
* is "12" and we should select hour 12.
|
|
25994
|
-
*
|
|
25995
|
-
* Regex removes any leading zeros from values like "02",
|
|
25996
|
-
* but it keeps a single zero if there are only zeros in the string.
|
|
25997
|
-
* 0+(?=[1-9]) --> Match 1 or more zeros that are followed by 1-9
|
|
25998
|
-
* 0+(?=0$) --> Match 1 or more zeros that must be followed by one 0 and end.
|
|
25999
|
-
*/
|
|
26000
|
-
const findItemFromCompleteValue = values.find(({ text }) => {
|
|
26001
|
-
const parsedText = text.replace(/^0+(?=[1-9])|0+(?=0$)/, '');
|
|
26002
|
-
return parsedText === inputEl.value;
|
|
26003
|
-
});
|
|
26004
|
-
if (findItemFromCompleteValue) {
|
|
26005
|
-
inputModeColumn.setValue(findItemFromCompleteValue.value);
|
|
26006
|
-
return;
|
|
25995
|
+
else {
|
|
25996
|
+
button.classList.remove(PICKER_OPT_SELECTED);
|
|
26007
25997
|
}
|
|
26008
|
-
|
|
26009
|
-
|
|
26010
|
-
|
|
26011
|
-
|
|
26012
|
-
|
|
26013
|
-
|
|
26014
|
-
|
|
26015
|
-
|
|
25998
|
+
}
|
|
25999
|
+
this.col.prevSelected = prevSelected;
|
|
26000
|
+
if (saveY) {
|
|
26001
|
+
this.y = y;
|
|
26002
|
+
}
|
|
26003
|
+
if (this.lastIndex !== selectedIndex) {
|
|
26004
|
+
// have not set a last index yet
|
|
26005
|
+
hapticSelectionChanged();
|
|
26006
|
+
this.lastIndex = selectedIndex;
|
|
26007
|
+
}
|
|
26008
|
+
}
|
|
26009
|
+
decelerate() {
|
|
26010
|
+
if (this.velocity !== 0) {
|
|
26011
|
+
// still decelerating
|
|
26012
|
+
this.velocity *= DECELERATION_FRICTION;
|
|
26013
|
+
// do not let it go slower than a velocity of 1
|
|
26014
|
+
this.velocity = this.velocity > 0 ? Math.max(this.velocity, 1) : Math.min(this.velocity, -1);
|
|
26015
|
+
let y = this.y + this.velocity;
|
|
26016
|
+
if (y > this.minY) {
|
|
26017
|
+
// whoops, it's trying to scroll up farther than the options we have!
|
|
26018
|
+
y = this.minY;
|
|
26019
|
+
this.velocity = 0;
|
|
26016
26020
|
}
|
|
26017
|
-
|
|
26018
|
-
|
|
26019
|
-
|
|
26020
|
-
|
|
26021
|
-
|
|
26022
|
-
|
|
26023
|
-
|
|
26024
|
-
|
|
26025
|
-
|
|
26026
|
-
|
|
26027
|
-
|
|
26028
|
-
|
|
26021
|
+
else if (y < this.maxY) {
|
|
26022
|
+
// gahh, it's trying to scroll down farther than we can!
|
|
26023
|
+
y = this.maxY;
|
|
26024
|
+
this.velocity = 0;
|
|
26025
|
+
}
|
|
26026
|
+
this.update(y, 0, true);
|
|
26027
|
+
const notLockedIn = Math.round(y) % this.optHeight !== 0 || Math.abs(this.velocity) > 1;
|
|
26028
|
+
if (notLockedIn) {
|
|
26029
|
+
// isn't locked in yet, keep decelerating until it is
|
|
26030
|
+
this.rafId = requestAnimationFrame(() => this.decelerate());
|
|
26031
|
+
}
|
|
26032
|
+
else {
|
|
26033
|
+
this.velocity = 0;
|
|
26034
|
+
this.emitColChange();
|
|
26035
|
+
hapticSelectionEnd();
|
|
26036
|
+
}
|
|
26037
|
+
}
|
|
26038
|
+
else if (this.y % this.optHeight !== 0) {
|
|
26039
|
+
// needs to still get locked into a position so options line up
|
|
26040
|
+
const currentPos = Math.abs(this.y % this.optHeight);
|
|
26041
|
+
// create a velocity in the direction it needs to scroll
|
|
26042
|
+
this.velocity = currentPos > this.optHeight / 2 ? 1 : -1;
|
|
26043
|
+
this.decelerate();
|
|
26044
|
+
}
|
|
26045
|
+
}
|
|
26046
|
+
indexForY(y) {
|
|
26047
|
+
return Math.min(Math.max(Math.abs(Math.round(y / this.optHeight)), 0), this.col.options.length - 1);
|
|
26048
|
+
}
|
|
26049
|
+
onStart(detail) {
|
|
26050
|
+
// We have to prevent default in order to block scrolling under the picker
|
|
26051
|
+
// but we DO NOT have to stop propagation, since we still want
|
|
26052
|
+
// some "click" events to capture
|
|
26053
|
+
if (detail.event.cancelable) {
|
|
26054
|
+
detail.event.preventDefault();
|
|
26055
|
+
}
|
|
26056
|
+
detail.event.stopPropagation();
|
|
26057
|
+
hapticSelectionStart();
|
|
26058
|
+
// reset everything
|
|
26059
|
+
if (this.rafId !== undefined)
|
|
26060
|
+
cancelAnimationFrame(this.rafId);
|
|
26061
|
+
const options = this.col.options;
|
|
26062
|
+
let minY = options.length - 1;
|
|
26063
|
+
let maxY = 0;
|
|
26064
|
+
for (let i = 0; i < options.length; i++) {
|
|
26065
|
+
if (!options[i].disabled) {
|
|
26066
|
+
minY = Math.min(minY, i);
|
|
26067
|
+
maxY = Math.max(maxY, i);
|
|
26068
|
+
}
|
|
26069
|
+
}
|
|
26070
|
+
this.minY = -(minY * this.optHeight);
|
|
26071
|
+
this.maxY = -(maxY * this.optHeight);
|
|
26072
|
+
}
|
|
26073
|
+
onMove(detail) {
|
|
26074
|
+
if (detail.event.cancelable) {
|
|
26075
|
+
detail.event.preventDefault();
|
|
26076
|
+
}
|
|
26077
|
+
detail.event.stopPropagation();
|
|
26078
|
+
// update the scroll position relative to pointer start position
|
|
26079
|
+
let y = this.y + detail.deltaY;
|
|
26080
|
+
if (y > this.minY) {
|
|
26081
|
+
// scrolling up higher than scroll area
|
|
26082
|
+
y = Math.pow(y, 0.8);
|
|
26083
|
+
this.bounceFrom = y;
|
|
26084
|
+
}
|
|
26085
|
+
else if (y < this.maxY) {
|
|
26086
|
+
// scrolling down below scroll area
|
|
26087
|
+
y += Math.pow(this.maxY - y, 0.9);
|
|
26088
|
+
this.bounceFrom = y;
|
|
26089
|
+
}
|
|
26090
|
+
else {
|
|
26091
|
+
this.bounceFrom = 0;
|
|
26092
|
+
}
|
|
26093
|
+
this.update(y, 0, false);
|
|
26094
|
+
}
|
|
26095
|
+
onEnd(detail) {
|
|
26096
|
+
if (this.bounceFrom > 0) {
|
|
26097
|
+
// bounce back up
|
|
26098
|
+
this.update(this.minY, 100, true);
|
|
26099
|
+
this.emitColChange();
|
|
26100
|
+
return;
|
|
26101
|
+
}
|
|
26102
|
+
else if (this.bounceFrom < 0) {
|
|
26103
|
+
// bounce back down
|
|
26104
|
+
this.update(this.maxY, 100, true);
|
|
26105
|
+
this.emitColChange();
|
|
26106
|
+
return;
|
|
26107
|
+
}
|
|
26108
|
+
this.velocity = clamp(-MAX_PICKER_SPEED, detail.velocityY * 23, MAX_PICKER_SPEED);
|
|
26109
|
+
if (this.velocity === 0 && detail.deltaY === 0) {
|
|
26110
|
+
const opt = detail.event.target.closest('.picker-opt');
|
|
26111
|
+
if (opt === null || opt === void 0 ? void 0 : opt.hasAttribute('opt-index')) {
|
|
26112
|
+
this.setSelected(parseInt(opt.getAttribute('opt-index'), 10), TRANSITION_DURATION);
|
|
26029
26113
|
}
|
|
26030
|
-
}
|
|
26031
|
-
|
|
26032
|
-
|
|
26033
|
-
if (
|
|
26034
|
-
|
|
26114
|
+
}
|
|
26115
|
+
else {
|
|
26116
|
+
this.y += detail.deltaY;
|
|
26117
|
+
if (Math.abs(detail.velocityY) < 0.05) {
|
|
26118
|
+
const isScrollingUp = detail.deltaY > 0;
|
|
26119
|
+
const optHeightFraction = (Math.abs(this.y) % this.optHeight) / this.optHeight;
|
|
26120
|
+
if (isScrollingUp && optHeightFraction > 0.5) {
|
|
26121
|
+
this.velocity = Math.abs(this.velocity) * -1;
|
|
26122
|
+
}
|
|
26123
|
+
else if (!isScrollingUp && optHeightFraction <= 0.5) {
|
|
26124
|
+
this.velocity = Math.abs(this.velocity);
|
|
26125
|
+
}
|
|
26035
26126
|
}
|
|
26036
|
-
|
|
26037
|
-
|
|
26038
|
-
|
|
26039
|
-
|
|
26040
|
-
|
|
26041
|
-
|
|
26042
|
-
|
|
26043
|
-
|
|
26044
|
-
|
|
26045
|
-
|
|
26046
|
-
|
|
26047
|
-
|
|
26048
|
-
* possible that users are trying to type `09`
|
|
26049
|
-
* or `11` into the hour field, so we should look
|
|
26050
|
-
* at that first.
|
|
26051
|
-
*/
|
|
26052
|
-
const firstCharacter = inputEl.value.substring(0, 1);
|
|
26053
|
-
value = firstCharacter === '0' || firstCharacter === '1' ? inputEl.value : firstCharacter;
|
|
26054
|
-
this.searchColumn(firstColumn, value);
|
|
26055
|
-
/**
|
|
26056
|
-
* If only checked the first value,
|
|
26057
|
-
* we can check the second value
|
|
26058
|
-
* for a match in the minutes column
|
|
26059
|
-
*/
|
|
26060
|
-
if (value.length === 1) {
|
|
26061
|
-
minuteValue = inputEl.value.substring(inputEl.value.length - 1);
|
|
26062
|
-
this.searchColumn(lastColumn, minuteValue, 'end');
|
|
26063
|
-
}
|
|
26064
|
-
break;
|
|
26065
|
-
case 3:
|
|
26066
|
-
/**
|
|
26067
|
-
* If the first character is `0` or `1` it is
|
|
26068
|
-
* possible that users are trying to type `09`
|
|
26069
|
-
* or `11` into the hour field, so we should look
|
|
26070
|
-
* at that first.
|
|
26071
|
-
*/
|
|
26072
|
-
const firstCharacterAgain = inputEl.value.substring(0, 1);
|
|
26073
|
-
value =
|
|
26074
|
-
firstCharacterAgain === '0' || firstCharacterAgain === '1'
|
|
26075
|
-
? inputEl.value.substring(0, 2)
|
|
26076
|
-
: firstCharacterAgain;
|
|
26077
|
-
this.searchColumn(firstColumn, value);
|
|
26078
|
-
/**
|
|
26079
|
-
* If only checked the first value,
|
|
26080
|
-
* we can check the second value
|
|
26081
|
-
* for a match in the minutes column
|
|
26082
|
-
*/
|
|
26083
|
-
minuteValue = value.length === 1 ? inputEl.value.substring(1) : inputEl.value.substring(2);
|
|
26084
|
-
this.searchColumn(lastColumn, minuteValue, 'end');
|
|
26085
|
-
break;
|
|
26086
|
-
case 4:
|
|
26087
|
-
/**
|
|
26088
|
-
* If the first character is `0` or `1` it is
|
|
26089
|
-
* possible that users are trying to type `09`
|
|
26090
|
-
* or `11` into the hour field, so we should look
|
|
26091
|
-
* at that first.
|
|
26092
|
-
*/
|
|
26093
|
-
const firstCharacterAgainAgain = inputEl.value.substring(0, 1);
|
|
26094
|
-
value =
|
|
26095
|
-
firstCharacterAgainAgain === '0' || firstCharacterAgainAgain === '1'
|
|
26096
|
-
? inputEl.value.substring(0, 2)
|
|
26097
|
-
: firstCharacterAgainAgain;
|
|
26098
|
-
this.searchColumn(firstColumn, value);
|
|
26099
|
-
/**
|
|
26100
|
-
* If only checked the first value,
|
|
26101
|
-
* we can check the second value
|
|
26102
|
-
* for a match in the minutes column
|
|
26103
|
-
*/
|
|
26104
|
-
const minuteValueAgain = value.length === 1
|
|
26105
|
-
? inputEl.value.substring(1, inputEl.value.length)
|
|
26106
|
-
: inputEl.value.substring(2, inputEl.value.length);
|
|
26107
|
-
this.searchColumn(lastColumn, minuteValueAgain, 'end');
|
|
26108
|
-
break;
|
|
26109
|
-
default:
|
|
26110
|
-
const startIndex = inputEl.value.length - 4;
|
|
26111
|
-
const newString = inputEl.value.substring(startIndex);
|
|
26112
|
-
inputEl.value = newString;
|
|
26113
|
-
this.selectMultiColumn();
|
|
26114
|
-
break;
|
|
26127
|
+
this.decelerate();
|
|
26128
|
+
}
|
|
26129
|
+
}
|
|
26130
|
+
refresh(forceRefresh, animated) {
|
|
26131
|
+
var _a;
|
|
26132
|
+
let min = this.col.options.length - 1;
|
|
26133
|
+
let max = 0;
|
|
26134
|
+
const options = this.col.options;
|
|
26135
|
+
for (let i = 0; i < options.length; i++) {
|
|
26136
|
+
if (!options[i].disabled) {
|
|
26137
|
+
min = Math.min(min, i);
|
|
26138
|
+
max = Math.max(max, i);
|
|
26115
26139
|
}
|
|
26116
|
-
}
|
|
26140
|
+
}
|
|
26117
26141
|
/**
|
|
26118
|
-
*
|
|
26119
|
-
*
|
|
26120
|
-
*
|
|
26142
|
+
* Only update selected value if column has a
|
|
26143
|
+
* velocity of 0. If it does not, then the
|
|
26144
|
+
* column is animating might land on
|
|
26145
|
+
* a value different than the value at
|
|
26146
|
+
* selectedIndex
|
|
26121
26147
|
*/
|
|
26122
|
-
this.
|
|
26123
|
-
|
|
26124
|
-
|
|
26125
|
-
|
|
26126
|
-
|
|
26127
|
-
|
|
26128
|
-
|
|
26129
|
-
|
|
26130
|
-
|
|
26131
|
-
|
|
26132
|
-
|
|
26133
|
-
|
|
26148
|
+
if (this.velocity !== 0) {
|
|
26149
|
+
return;
|
|
26150
|
+
}
|
|
26151
|
+
const selectedIndex = clamp(min, (_a = this.col.selectedIndex) !== null && _a !== void 0 ? _a : 0, max);
|
|
26152
|
+
if (this.col.prevSelected !== selectedIndex || forceRefresh) {
|
|
26153
|
+
const y = selectedIndex * this.optHeight * -1;
|
|
26154
|
+
const duration = animated ? TRANSITION_DURATION : 0;
|
|
26155
|
+
this.velocity = 0;
|
|
26156
|
+
this.update(y, duration, true);
|
|
26157
|
+
}
|
|
26158
|
+
}
|
|
26159
|
+
onDomChange(forceRefresh, animated) {
|
|
26160
|
+
const colEl = this.optsEl;
|
|
26161
|
+
if (colEl) {
|
|
26162
|
+
// DOM READ
|
|
26163
|
+
// We perfom a DOM read over a rendered item, this needs to happen after the first render or after the the column has changed
|
|
26164
|
+
this.optHeight = colEl.firstElementChild ? colEl.firstElementChild.clientHeight : 0;
|
|
26165
|
+
}
|
|
26166
|
+
this.refresh(forceRefresh, animated);
|
|
26167
|
+
}
|
|
26168
|
+
render() {
|
|
26169
|
+
const col = this.col;
|
|
26170
|
+
const mode = getIonMode$1(this);
|
|
26171
|
+
return (hAsync(Host, { class: Object.assign({ [mode]: true, 'picker-col': true, 'picker-opts-left': this.col.align === 'left', 'picker-opts-right': this.col.align === 'right' }, getClassMap(col.cssClass)), style: {
|
|
26172
|
+
'max-width': this.col.columnWidth,
|
|
26173
|
+
} }, col.prefix && (hAsync("div", { class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), hAsync("div", { class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (hAsync("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (hAsync("div", { class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
|
|
26174
|
+
}
|
|
26175
|
+
get el() { return getElement(this); }
|
|
26176
|
+
static get watchers() { return {
|
|
26177
|
+
"col": ["colChanged"]
|
|
26178
|
+
}; }
|
|
26179
|
+
static get style() { return {
|
|
26180
|
+
ios: pickerColumnIosCss,
|
|
26181
|
+
md: pickerColumnMdCss
|
|
26182
|
+
}; }
|
|
26183
|
+
static get cmpMeta() { return {
|
|
26184
|
+
"$flags$": 32,
|
|
26185
|
+
"$tagName$": "ion-picker-legacy-column",
|
|
26186
|
+
"$members$": {
|
|
26187
|
+
"col": [16]
|
|
26188
|
+
},
|
|
26189
|
+
"$listeners$": undefined,
|
|
26190
|
+
"$lazyBundleId$": "-",
|
|
26191
|
+
"$attrsToReflect$": []
|
|
26192
|
+
}; }
|
|
26193
|
+
}
|
|
26194
|
+
const PICKER_OPT_SELECTED = 'picker-opt-selected';
|
|
26195
|
+
const DECELERATION_FRICTION = 0.97;
|
|
26196
|
+
const MAX_PICKER_SPEED = 90;
|
|
26197
|
+
const TRANSITION_DURATION = 150;
|
|
26198
|
+
|
|
26199
|
+
const pickerColumnOptionIosCss = "/*!@button*/button.sc-ion-picker-column-option-ios{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}/*!@:host(.option-disabled)*/.option-disabled.sc-ion-picker-column-option-ios-h{opacity:0.4}/*!@:host(.option-disabled) button*/.option-disabled.sc-ion-picker-column-option-ios-h button.sc-ion-picker-column-option-ios{cursor:default}";
|
|
26200
|
+
|
|
26201
|
+
const pickerColumnOptionMdCss = "/*!@button*/button.sc-ion-picker-column-option-md{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}/*!@:host(.option-disabled)*/.option-disabled.sc-ion-picker-column-option-md-h{opacity:0.4}/*!@:host(.option-disabled) button*/.option-disabled.sc-ion-picker-column-option-md-h button.sc-ion-picker-column-option-md{cursor:default}/*!@:host(.option-active)*/.option-active.sc-ion-picker-column-option-md-h{color:var(--ion-color-base)}";
|
|
26202
|
+
|
|
26203
|
+
class PickerColumnOption {
|
|
26204
|
+
constructor(hostRef) {
|
|
26205
|
+
registerInstance(this, hostRef);
|
|
26134
26206
|
/**
|
|
26135
|
-
*
|
|
26136
|
-
*
|
|
26137
|
-
*
|
|
26207
|
+
* We keep track of the parent picker column
|
|
26208
|
+
* so we can update the value of it when
|
|
26209
|
+
* clicking an enable option.
|
|
26138
26210
|
*/
|
|
26139
|
-
this.
|
|
26140
|
-
|
|
26141
|
-
|
|
26142
|
-
|
|
26143
|
-
|
|
26144
|
-
});
|
|
26145
|
-
};
|
|
26211
|
+
this.pickerColumn = null;
|
|
26212
|
+
this.ariaLabel = null;
|
|
26213
|
+
this.disabled = false;
|
|
26214
|
+
this.value = undefined;
|
|
26215
|
+
this.color = 'primary';
|
|
26146
26216
|
}
|
|
26147
26217
|
/**
|
|
26148
|
-
*
|
|
26149
|
-
*
|
|
26150
|
-
*
|
|
26151
|
-
*
|
|
26152
|
-
* in ion-datetime should not cause
|
|
26153
|
-
* a card modal to swipe to close.
|
|
26218
|
+
* The aria-label of the option has changed after the
|
|
26219
|
+
* first render and needs to be updated within the component.
|
|
26220
|
+
*
|
|
26221
|
+
* @param ariaLbl The new aria-label value.
|
|
26154
26222
|
*/
|
|
26155
|
-
|
|
26156
|
-
|
|
26223
|
+
onAriaLabelChange(ariaLbl) {
|
|
26224
|
+
this.ariaLabel = ariaLbl;
|
|
26157
26225
|
}
|
|
26158
26226
|
componentWillLoad() {
|
|
26159
|
-
|
|
26160
|
-
|
|
26227
|
+
const inheritedAttributes = inheritAttributes$1(this.el, ['aria-label']);
|
|
26228
|
+
/**
|
|
26229
|
+
* The initial value of `aria-label` needs to be set for
|
|
26230
|
+
* the first render.
|
|
26231
|
+
|
|
26232
|
+
*/
|
|
26233
|
+
this.ariaLabel = inheritedAttributes['aria-label'] || null;
|
|
26234
|
+
}
|
|
26235
|
+
connectedCallback() {
|
|
26236
|
+
this.pickerColumn = this.el.closest('ion-picker-column');
|
|
26237
|
+
}
|
|
26238
|
+
disconnectedCallback() {
|
|
26239
|
+
this.pickerColumn = null;
|
|
26161
26240
|
}
|
|
26162
26241
|
/**
|
|
26163
|
-
*
|
|
26164
|
-
*
|
|
26165
|
-
*
|
|
26166
|
-
*
|
|
26242
|
+
* The column options can load at any time
|
|
26243
|
+
* so the options needs to tell the
|
|
26244
|
+
* parent picker column when it is loaded
|
|
26245
|
+
* so the picker column can ensure it is
|
|
26246
|
+
* centered in the view.
|
|
26247
|
+
*
|
|
26248
|
+
* We intentionally run this for every
|
|
26249
|
+
* option. If we only ran this from
|
|
26250
|
+
* the selected option then if the newly
|
|
26251
|
+
* loaded options were not selected then
|
|
26252
|
+
* scrollActiveItemIntoView would not be called.
|
|
26167
26253
|
*/
|
|
26168
|
-
|
|
26169
|
-
const {
|
|
26170
|
-
if (
|
|
26171
|
-
|
|
26254
|
+
componentDidLoad() {
|
|
26255
|
+
const { pickerColumn } = this;
|
|
26256
|
+
if (pickerColumn !== null) {
|
|
26257
|
+
pickerColumn.scrollActiveItemIntoView();
|
|
26172
26258
|
}
|
|
26173
|
-
|
|
26174
|
-
|
|
26175
|
-
|
|
26176
|
-
|
|
26177
|
-
|
|
26178
|
-
|
|
26179
|
-
|
|
26259
|
+
}
|
|
26260
|
+
/**
|
|
26261
|
+
* When an option is clicked, update the
|
|
26262
|
+
* parent picker column value. This
|
|
26263
|
+
* component will handle centering the option
|
|
26264
|
+
* in the column view.
|
|
26265
|
+
*/
|
|
26266
|
+
onClick() {
|
|
26267
|
+
const { pickerColumn } = this;
|
|
26268
|
+
if (pickerColumn !== null) {
|
|
26269
|
+
pickerColumn.setValue(this.value);
|
|
26180
26270
|
}
|
|
26181
|
-
this.emitInputModeChange();
|
|
26182
26271
|
}
|
|
26183
26272
|
render() {
|
|
26184
|
-
|
|
26273
|
+
const { color, disabled, ariaLabel } = this;
|
|
26274
|
+
const mode = getIonMode$1(this);
|
|
26275
|
+
return (hAsync(Host, { class: createColorClasses$1(color, {
|
|
26276
|
+
[mode]: true,
|
|
26277
|
+
['option-disabled']: disabled,
|
|
26278
|
+
}) }, hAsync("button", { tabindex: "-1", "aria-label": ariaLabel, disabled: disabled, onClick: () => this.onClick() }, hAsync("slot", null))));
|
|
26185
26279
|
}
|
|
26186
26280
|
get el() { return getElement(this); }
|
|
26281
|
+
static get watchers() { return {
|
|
26282
|
+
"aria-label": ["onAriaLabelChange"]
|
|
26283
|
+
}; }
|
|
26187
26284
|
static get style() { return {
|
|
26188
|
-
ios:
|
|
26189
|
-
md:
|
|
26285
|
+
ios: pickerColumnOptionIosCss,
|
|
26286
|
+
md: pickerColumnOptionMdCss
|
|
26190
26287
|
}; }
|
|
26191
26288
|
static get cmpMeta() { return {
|
|
26192
26289
|
"$flags$": 41,
|
|
26193
|
-
"$tagName$": "ion-picker-
|
|
26290
|
+
"$tagName$": "ion-picker-column-option",
|
|
26194
26291
|
"$members$": {
|
|
26195
|
-
"
|
|
26292
|
+
"disabled": [4],
|
|
26293
|
+
"value": [8],
|
|
26294
|
+
"color": [513],
|
|
26295
|
+
"ariaLabel": [32]
|
|
26196
26296
|
},
|
|
26197
|
-
"$listeners$":
|
|
26297
|
+
"$listeners$": undefined,
|
|
26198
26298
|
"$lazyBundleId$": "-",
|
|
26199
|
-
"$attrsToReflect$": []
|
|
26299
|
+
"$attrsToReflect$": [["color", "color"]]
|
|
26200
26300
|
}; }
|
|
26201
26301
|
}
|
|
26202
26302
|
|
|
@@ -28856,9 +28956,6 @@ const refresherIosCss = "ion-refresher{top:0;display:none;position:absolute;widt
|
|
|
28856
28956
|
|
|
28857
28957
|
const refresherMdCss = "ion-refresher{top:0;display:none;position:absolute;width:100%;height:60px;pointer-events:none;z-index:-1}@supports (inset-inline-start: 0){ion-refresher{inset-inline-start:0}}@supports not (inset-inline-start: 0){ion-refresher{left:0}:host-context([dir=rtl]) ion-refresher{left:unset;right:unset;right:0}[dir=rtl] ion-refresher{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){ion-refresher:dir(rtl){left:unset;right:unset;right:0}}}ion-refresher.refresher-active{display:block}ion-refresher-content{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.refresher-pulling,.refresher-refreshing{display:none;width:100%}.refresher-pulling-icon,.refresher-refreshing-icon{-webkit-transform-origin:center;transform-origin:center;-webkit-transition:200ms;transition:200ms;font-size:30px;text-align:center}:host-context([dir=rtl]) .refresher-pulling-icon,:host-context([dir=rtl]) .refresher-refreshing-icon{-webkit-transform-origin:calc(100% - center);transform-origin:calc(100% - center)}[dir=rtl] .refresher-pulling-icon,[dir=rtl] .refresher-refreshing-icon{-webkit-transform-origin:calc(100% - center);transform-origin:calc(100% - center)}@supports selector(:dir(rtl)){.refresher-pulling-icon:dir(rtl),.refresher-refreshing-icon:dir(rtl){-webkit-transform-origin:calc(100% - center);transform-origin:calc(100% - center)}}.refresher-pulling-text,.refresher-refreshing-text{font-size:16px;text-align:center}ion-refresher-content .arrow-container{display:none}.refresher-pulling ion-refresher-content .refresher-pulling{display:block}.refresher-ready ion-refresher-content .refresher-pulling{display:block}.refresher-ready ion-refresher-content .refresher-pulling-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.refresher-refreshing ion-refresher-content .refresher-refreshing{display:block}.refresher-cancelling ion-refresher-content .refresher-pulling{display:block}.refresher-cancelling ion-refresher-content .refresher-pulling-icon{-webkit-transform:scale(0);transform:scale(0)}.refresher-completing ion-refresher-content .refresher-refreshing{display:block}.refresher-completing ion-refresher-content .refresher-refreshing-icon{-webkit-transform:scale(0);transform:scale(0)}.refresher-native .refresher-pulling-text,.refresher-native .refresher-refreshing-text{display:none}.refresher-md .refresher-pulling-icon,.refresher-md .refresher-refreshing-icon{color:var(--ion-text-color, #000)}.refresher-md .refresher-pulling-text,.refresher-md .refresher-refreshing-text{color:var(--ion-text-color, #000)}.refresher-md .refresher-refreshing .spinner-lines-md line,.refresher-md .refresher-refreshing .spinner-lines-small-md line,.refresher-md .refresher-refreshing .spinner-crescent circle{stroke:var(--ion-text-color, #000)}.refresher-md .refresher-refreshing .spinner-bubbles circle,.refresher-md .refresher-refreshing .spinner-circles circle,.refresher-md .refresher-refreshing .spinner-dots circle{fill:var(--ion-text-color, #000)}ion-refresher.refresher-native{display:block;z-index:1}ion-refresher.refresher-native ion-spinner{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0;width:24px;height:24px;color:var(--ion-color-primary, #3880ff)}ion-refresher.refresher-native .spinner-arrow-container{display:inherit}ion-refresher.refresher-native .arrow-container{display:block;position:absolute;width:24px;height:24px}ion-refresher.refresher-native .arrow-container ion-icon{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0;left:0;right:0;bottom:-4px;position:absolute;color:var(--ion-color-primary, #3880ff);font-size:12px}ion-refresher.refresher-native.refresher-pulling ion-refresher-content .refresher-pulling,ion-refresher.refresher-native.refresher-ready ion-refresher-content .refresher-pulling{display:-ms-flexbox;display:flex}ion-refresher.refresher-native.refresher-refreshing ion-refresher-content .refresher-refreshing,ion-refresher.refresher-native.refresher-completing ion-refresher-content .refresher-refreshing,ion-refresher.refresher-native.refresher-cancelling ion-refresher-content .refresher-refreshing{display:-ms-flexbox;display:flex}ion-refresher.refresher-native .refresher-pulling-icon{-webkit-transform:translateY(calc(-100% - 10px));transform:translateY(calc(-100% - 10px))}ion-refresher.refresher-native .refresher-pulling-icon,ion-refresher.refresher-native .refresher-refreshing-icon{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0;border-radius:100%;-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;display:-ms-flexbox;display:flex;border:1px solid var(--ion-color-step-200, #ececec);background:var(--ion-color-step-250, #ffffff);-webkit-box-shadow:0px 1px 6px rgba(0, 0, 0, 0.1);box-shadow:0px 1px 6px rgba(0, 0, 0, 0.1)}";
|
|
28858
28958
|
|
|
28859
|
-
/**
|
|
28860
|
-
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
28861
|
-
*/
|
|
28862
28959
|
class Refresher {
|
|
28863
28960
|
constructor(hostRef) {
|
|
28864
28961
|
registerInstance(this, hostRef);
|
|
@@ -35621,10 +35718,11 @@ registerComponents([
|
|
|
35621
35718
|
Nav,
|
|
35622
35719
|
NavLink,
|
|
35623
35720
|
Note,
|
|
35721
|
+
Picker$1,
|
|
35624
35722
|
Picker,
|
|
35723
|
+
PickerColumn,
|
|
35625
35724
|
PickerColumnCmp,
|
|
35626
|
-
|
|
35627
|
-
PickerInternal,
|
|
35725
|
+
PickerColumnOption,
|
|
35628
35726
|
Popover,
|
|
35629
35727
|
ProgressBar,
|
|
35630
35728
|
Radio,
|