@ionic/core 8.8.13 → 8.8.14-dev.11783706459.1d5a7aae
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/index.js +1 -1
- package/components/ion-action-sheet.js +1 -1
- package/components/ion-alert.js +1 -1
- package/components/ion-back-button.js +1 -1
- package/components/ion-button.js +1 -1
- package/components/ion-card.js +1 -1
- package/components/ion-chip.js +1 -1
- package/components/ion-datetime-button.js +1 -1
- package/components/ion-datetime.js +1 -1
- package/components/ion-fab-button.js +1 -1
- package/components/ion-infinite-scroll-content.js +1 -1
- package/components/ion-input-password-toggle.js +1 -1
- package/components/ion-input.js +1 -1
- package/components/ion-item-option.js +1 -1
- package/components/ion-item.js +1 -1
- package/components/ion-loading.js +1 -1
- package/components/ion-menu-button.js +1 -1
- package/components/ion-menu.js +1 -1
- package/components/ion-modal.js +1 -1
- package/components/ion-picker-column-option.js +1 -1
- package/components/ion-picker-column.js +1 -1
- package/components/ion-popover.js +1 -1
- package/components/ion-progress-bar.js +1 -1
- package/components/ion-radio.js +1 -1
- package/components/ion-range.js +1 -1
- package/components/ion-refresher-content.js +1 -1
- package/components/ion-refresher.js +1 -1
- package/components/ion-reorder-group.js +1 -1
- package/components/ion-reorder.js +1 -1
- package/components/ion-ripple-effect.js +1 -1
- package/components/ion-router-link.js +1 -1
- package/components/ion-router-outlet.js +1 -1
- package/components/ion-row.js +1 -1
- package/components/ion-searchbar.js +1 -1
- package/components/ion-segment-button.js +1 -1
- package/components/ion-segment-content.js +1 -1
- package/components/ion-segment-view.js +1 -1
- package/components/ion-segment.js +1 -1
- package/components/ion-select-modal.js +1 -1
- package/components/ion-select-option.js +1 -1
- package/components/ion-select-popover.js +1 -1
- package/components/ion-select.js +1 -1
- package/components/ion-skeleton-text.js +1 -1
- package/components/ion-spinner.js +1 -1
- package/components/ion-split-pane.js +1 -1
- package/components/ion-tab-bar.js +1 -1
- package/components/ion-tab-button.js +1 -1
- package/components/ion-tab.js +1 -1
- package/components/ion-tabs.js +1 -1
- package/components/ion-text.js +1 -1
- package/components/ion-textarea.js +1 -1
- package/components/ion-thumbnail.js +1 -1
- package/components/ion-title.js +1 -1
- package/components/ion-toast.js +1 -1
- package/components/ion-toggle.js +1 -1
- package/components/ion-toolbar.js +1 -1
- package/components/p-279dFMvg.js +4 -0
- package/components/p-B7KXos3u.js +4 -0
- package/components/p-BSQPZ79H.js +4 -0
- package/components/p-BimUi1zU.js +4 -0
- package/components/{p-BHrrc-3d.js → p-Buf_7zcy.js} +1 -1
- package/components/p-BwKpO3Is.js +4 -0
- package/components/p-C-Rx1zny.js +4 -0
- package/components/p-CHzfYZbv.js +4 -0
- package/components/p-D4h1H_hh.js +4 -0
- package/components/{p-BSEgsdFI.js → p-DhkITZ-y.js} +1 -1
- package/components/{p-5bE_Wz4Y.js → p-DpV-p5Xs.js} +1 -1
- package/components/{p-Cfx4M1Bn.js → p-Dz74mwlk.js} +1 -1
- package/components/p-LMGfIvTf.js +4 -0
- package/components/{p-BLmJ0zRm.js → p-XJWMAP8m.js} +1 -1
- package/components/p-_lHSumhG.js +4 -0
- package/components/p-j9Da6cYO.js +4 -0
- package/components/p-jOtMJMv8.js +4 -0
- package/components/{p-B60hm8Qv.js → p-r0aq7dpt.js} +1 -1
- package/components/p-uTR_dEqg.js +4 -0
- package/components/{p-rCa2eL0j.js → p-wk2QqrAo.js} +1 -1
- package/dist/cjs/config-DWdFbSNK.js +35 -0
- package/dist/cjs/index-Cueg3U4w.js +429 -0
- package/dist/cjs/index.cjs.js +6 -6
- package/dist/cjs/ion-action-sheet.cjs.entry.js +27 -7
- package/dist/cjs/ion-alert.cjs.entry.js +64 -25
- package/dist/cjs/ion-app_8.cjs.entry.js +23 -9
- package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-col_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-datetime-button.cjs.entry.js +4 -10
- package/dist/cjs/{ion-datetime_3.cjs.entry.js → ion-datetime.cjs.entry.js} +12 -656
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -2
- package/dist/cjs/ion-input.cjs.entry.js +4 -4
- package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
- package/dist/cjs/ion-loading.cjs.entry.js +10 -5
- package/dist/cjs/ion-menu_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-modal.cjs.entry.js +21 -10
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +3 -9
- package/dist/cjs/ion-picker-column.cjs.entry.js +4 -10
- package/dist/cjs/ion-popover.cjs.entry.js +9 -5
- package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
- package/dist/cjs/ion-radio_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-range.cjs.entry.js +3 -3
- package/dist/cjs/ion-refresher_2.cjs.entry.js +6 -5
- package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
- package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
- package/dist/cjs/ion-searchbar.cjs.entry.js +5 -5
- package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
- package/dist/cjs/ion-segment-view.cjs.entry.js +2 -2
- package/dist/cjs/ion-segment_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-select-modal.cjs.entry.js +84 -30
- package/dist/cjs/ion-select_3.cjs.entry.js +407 -49
- package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
- package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-text.cjs.entry.js +2 -2
- package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
- package/dist/cjs/ion-toast.cjs.entry.js +6 -5
- package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/overlay-control-label-D2sdL2O8.js +50 -0
- package/dist/cjs/{overlays-TbKsuC-K.js → overlays-DSmSrd_4.js} +26 -7
- package/dist/cjs/select-option-render-DTF50t5r.js +124 -0
- package/dist/collection/collection-manifest.json +6 -10
- package/dist/collection/components/action-sheet/action-sheet.ios.css +229 -2
- package/dist/collection/components/action-sheet/action-sheet.js +24 -5
- package/dist/collection/components/action-sheet/action-sheet.md.css +175 -2
- package/dist/collection/components/alert/alert.ios.css +280 -10
- package/dist/collection/components/alert/alert.js +59 -21
- package/dist/collection/components/alert/alert.md.css +269 -20
- package/dist/collection/components/datetime/datetime.ios.css +42 -2
- package/dist/collection/components/datetime/datetime.js +10 -17
- package/dist/collection/components/datetime/datetime.md.css +42 -1
- package/dist/collection/components/datetime-button/datetime-button.ios.css +5 -0
- package/dist/collection/components/datetime-button/datetime-button.js +3 -10
- package/dist/collection/components/datetime-button/datetime-button.md.css +5 -0
- package/dist/collection/components/input/input.js +8 -8
- package/dist/collection/components/loading/loading.js +7 -3
- package/dist/collection/components/modal/modal.js +23 -12
- package/dist/collection/components/picker-column/picker-column.css +3 -0
- package/dist/collection/components/picker-column/picker-column.js +4 -11
- package/dist/collection/components/picker-column-option/picker-column-option.js +3 -10
- package/dist/collection/components/picker-column-option/picker-column-option.md.css +6 -1
- package/dist/collection/components/popover/popover.ios.css +15 -0
- package/dist/collection/components/popover/popover.js +7 -3
- package/dist/collection/components/popover/popover.md.css +15 -0
- package/dist/collection/components/progress-bar/progress-bar.js +1 -1
- package/dist/collection/components/radio/radio.js +4 -4
- package/dist/collection/components/range/range.js +3 -3
- package/dist/collection/components/refresher/refresher.js +1 -1
- package/dist/collection/components/refresher-content/refresher-content.js +1 -1
- package/dist/collection/components/reorder/reorder.js +1 -1
- package/dist/collection/components/reorder-group/reorder-group.js +1 -1
- package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
- package/dist/collection/components/router-link/router-link.js +2 -2
- package/dist/collection/components/router-outlet/router-outlet.js +38 -5
- package/dist/collection/components/row/row.js +1 -1
- package/dist/collection/components/searchbar/searchbar.js +9 -9
- package/dist/collection/components/segment/segment.js +2 -2
- package/dist/collection/components/segment-button/segment-button.js +2 -2
- package/dist/collection/components/segment-content/segment-content.js +1 -1
- package/dist/collection/components/segment-view/segment-view.js +2 -2
- package/dist/collection/components/select/select.ios.css +33 -0
- package/dist/collection/components/select/select.js +323 -16
- package/dist/collection/components/select/select.md.css +33 -0
- package/dist/collection/components/select-modal/select-modal.ios.css +219 -0
- package/dist/collection/components/select-modal/select-modal.js +79 -26
- package/dist/collection/components/select-modal/select-modal.md.css +165 -0
- package/dist/collection/components/select-option/select-option.js +67 -3
- package/dist/collection/components/select-popover/select-popover.ios.css +219 -0
- package/dist/collection/components/select-popover/select-popover.js +78 -26
- package/dist/collection/components/select-popover/select-popover.md.css +165 -0
- package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
- package/dist/collection/components/spinner/spinner.js +1 -1
- package/dist/collection/components/split-pane/split-pane.js +2 -2
- package/dist/collection/components/tab/tab.js +2 -2
- package/dist/collection/components/tab-bar/tab-bar.js +2 -2
- package/dist/collection/components/tab-button/tab-button.js +2 -2
- package/dist/collection/components/tabs/tabs.js +1 -1
- package/dist/collection/components/text/text.js +2 -2
- package/dist/collection/components/textarea/textarea.js +2 -2
- package/dist/collection/components/thumbnail/thumbnail.js +1 -1
- package/dist/collection/components/title/title.js +2 -2
- package/dist/collection/components/toast/toast.js +2 -2
- package/dist/collection/components/toggle/toggle.js +3 -3
- package/dist/collection/components/toolbar/toolbar.js +2 -2
- package/dist/collection/index.js +1 -1
- package/dist/collection/utils/overlay-control-label.js +45 -0
- package/dist/collection/utils/overlays.js +25 -6
- package/dist/collection/utils/sanitization/index.js +274 -18
- package/dist/collection/utils/select-option-render.js +119 -0
- package/dist/docs.json +440 -1160
- package/dist/esm/config-BwKpO3Is.js +31 -0
- package/dist/esm/{index-DV3sJJW8.js → index-AlrZKoWR.js} +1 -1
- package/dist/esm/index-DQSkZyOJ.js +424 -0
- package/dist/esm/index.js +3 -2
- package/dist/esm/ion-accordion_2.entry.js +1 -1
- package/dist/esm/ion-action-sheet.entry.js +27 -7
- package/dist/esm/ion-alert.entry.js +63 -24
- package/dist/esm/ion-app_8.entry.js +23 -9
- package/dist/esm/ion-avatar_3.entry.js +1 -1
- package/dist/esm/ion-back-button.entry.js +1 -1
- package/dist/esm/ion-breadcrumb_2.entry.js +1 -1
- package/dist/esm/ion-col_3.entry.js +1 -1
- package/dist/esm/ion-datetime-button.entry.js +4 -10
- package/dist/esm/{ion-datetime_3.entry.js → ion-datetime.entry.js} +16 -658
- package/dist/esm/ion-fab_3.entry.js +1 -1
- package/dist/esm/ion-infinite-scroll_2.entry.js +2 -1
- package/dist/esm/ion-input-password-toggle.entry.js +1 -1
- package/dist/esm/ion-input.entry.js +5 -5
- package/dist/esm/ion-item_8.entry.js +3 -3
- package/dist/esm/ion-loading.entry.js +9 -4
- package/dist/esm/ion-menu_3.entry.js +2 -2
- package/dist/esm/ion-modal.entry.js +21 -10
- package/dist/esm/ion-picker-column-option.entry.js +3 -9
- package/dist/esm/ion-picker-column.entry.js +4 -10
- package/dist/esm/ion-popover.entry.js +9 -5
- package/dist/esm/ion-progress-bar.entry.js +1 -1
- package/dist/esm/ion-radio_2.entry.js +3 -3
- package/dist/esm/ion-range.entry.js +3 -3
- package/dist/esm/ion-refresher_2.entry.js +5 -4
- package/dist/esm/ion-reorder_2.entry.js +3 -3
- package/dist/esm/ion-ripple-effect.entry.js +1 -1
- package/dist/esm/ion-route_4.entry.js +2 -2
- package/dist/esm/ion-searchbar.entry.js +6 -6
- package/dist/esm/ion-segment-content.entry.js +1 -1
- package/dist/esm/ion-segment-view.entry.js +2 -2
- package/dist/esm/ion-segment_2.entry.js +4 -4
- package/dist/esm/ion-select-modal.entry.js +84 -30
- package/dist/esm/ion-select_3.entry.js +410 -52
- package/dist/esm/ion-spinner.entry.js +1 -1
- package/dist/esm/ion-split-pane.entry.js +2 -2
- package/dist/esm/ion-tab-bar_2.entry.js +4 -4
- package/dist/esm/ion-tab_2.entry.js +3 -3
- package/dist/esm/ion-text.entry.js +2 -2
- package/dist/esm/ion-textarea.entry.js +2 -2
- package/dist/esm/ion-toast.entry.js +5 -4
- package/dist/esm/ion-toggle.entry.js +4 -4
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/overlay-control-label-BSQPZ79H.js +47 -0
- package/dist/esm/{overlays-TbiM4mdr.js → overlays-DLNOHWNc.js} +26 -7
- package/dist/esm/select-option-render-B8nWZRnd.js +122 -0
- package/dist/html.html-data.json +51 -79
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-038eb991.entry.js +4 -0
- package/dist/ionic/{p-8fce95d5.entry.js → p-14095ba5.entry.js} +1 -1
- package/dist/ionic/p-17827b13.entry.js +4 -0
- package/dist/ionic/p-1ebe2739.entry.js +4 -0
- package/dist/ionic/{p-3a126bca.entry.js → p-259d0d98.entry.js} +1 -1
- package/dist/ionic/{p-fabcce6c.entry.js → p-341032b3.entry.js} +1 -1
- package/dist/ionic/{p-3a7d1e91.entry.js → p-4502a274.entry.js} +1 -1
- package/dist/ionic/p-4621c387.entry.js +4 -0
- package/dist/ionic/p-4ace7762.entry.js +4 -0
- package/dist/ionic/p-4bb3eb60.entry.js +4 -0
- package/dist/ionic/p-4e9ec5c5.entry.js +4 -0
- package/dist/ionic/{p-874b4bd8.entry.js → p-51cd1643.entry.js} +1 -1
- package/dist/ionic/p-5c3ec490.entry.js +4 -0
- package/dist/ionic/p-5d1ac2c7.entry.js +4 -0
- package/dist/ionic/{p-3ae5f277.entry.js → p-627fabd9.entry.js} +1 -1
- package/dist/ionic/{p-e0be05c5.entry.js → p-629e4703.entry.js} +1 -1
- package/dist/ionic/{p-5d1da0a2.entry.js → p-76e92a84.entry.js} +1 -1
- package/dist/ionic/p-79a36078.entry.js +4 -0
- package/dist/ionic/{p-9f1103ce.entry.js → p-7a37b3ce.entry.js} +1 -1
- package/dist/ionic/{p-3353c229.entry.js → p-80b44b3c.entry.js} +1 -1
- package/dist/ionic/p-8b3a64a5.entry.js +4 -0
- package/dist/ionic/p-913b218a.entry.js +4 -0
- package/dist/ionic/{p-390ca786.entry.js → p-9177f4ac.entry.js} +1 -1
- package/dist/ionic/p-93a7e5a1.entry.js +4 -0
- package/dist/ionic/{p-DV3sJJW8.js → p-AlrZKoWR.js} +1 -1
- package/dist/ionic/p-BDtODLZ4.js +4 -0
- package/dist/ionic/p-BSQPZ79H.js +4 -0
- package/dist/ionic/p-BwKpO3Is.js +4 -0
- package/dist/ionic/p-Cg5-OQYy.js +4 -0
- package/dist/ionic/p-DCOvXkOm.js +4 -0
- package/dist/ionic/{p-4858af1f.entry.js → p-a5213260.entry.js} +1 -1
- package/dist/ionic/{p-37e720da.entry.js → p-a7628bc7.entry.js} +1 -1
- package/dist/ionic/p-a9a33367.entry.js +4 -0
- package/dist/ionic/p-ad728198.entry.js +4 -0
- package/dist/ionic/{p-ef4c3bee.entry.js → p-b1599fca.entry.js} +1 -1
- package/dist/ionic/{p-84d5ce05.entry.js → p-b9ac1fe0.entry.js} +1 -1
- package/dist/ionic/p-bfc8c629.entry.js +4 -0
- package/dist/ionic/p-c08e666a.entry.js +4 -0
- package/dist/ionic/{p-94f2a736.entry.js → p-c93553d2.entry.js} +1 -1
- package/dist/ionic/p-ce7992c4.entry.js +4 -0
- package/dist/ionic/{p-75dc25ba.entry.js → p-d2c7f046.entry.js} +1 -1
- package/dist/ionic/{p-c4d8641b.entry.js → p-d8387b99.entry.js} +1 -1
- package/dist/ionic/{p-9a65ac7f.entry.js → p-db1b6738.entry.js} +1 -1
- package/dist/ionic/p-ed797c72.entry.js +4 -0
- package/dist/ionic/{p-8eb8ee76.entry.js → p-ef93ca92.entry.js} +1 -1
- package/dist/ionic/p-f09f9642.entry.js +4 -0
- package/dist/ionic/p-f1c06f82.entry.js +4 -0
- package/dist/ionic/{p-0fa9c382.entry.js → p-fe4aa1db.entry.js} +1 -1
- package/dist/types/components/input/input.d.ts +1 -1
- package/dist/types/components/modal/modal.d.ts +11 -4
- package/dist/types/components/router-outlet/router-outlet.d.ts +7 -0
- package/dist/types/components/searchbar/searchbar.d.ts +1 -1
- package/dist/types/components/select/select-interface.d.ts +31 -0
- package/dist/types/components/select/select.d.ts +18 -0
- package/dist/types/components/select-option/select-option.d.ts +42 -1
- package/dist/types/components.d.ts +60 -296
- package/dist/types/index.d.ts +1 -1
- package/dist/types/interface.d.ts +0 -1
- package/dist/types/utils/config.d.ts +0 -8
- package/dist/types/utils/overlay-control-label.d.ts +32 -0
- package/dist/types/utils/overlays.d.ts +11 -9
- package/dist/types/utils/sanitization/index.d.ts +58 -2
- package/dist/types/utils/select-option-render.d.ts +53 -0
- package/hydrate/index.js +1415 -1181
- package/hydrate/index.mjs +1415 -1181
- package/package.json +37 -5
- package/components/ion-picker-legacy-column.d.ts +0 -11
- package/components/ion-picker-legacy-column.js +0 -4
- package/components/ion-picker-legacy.d.ts +0 -11
- package/components/ion-picker-legacy.js +0 -4
- package/components/p-0NRupjzW.js +0 -4
- package/components/p-BjfgFSSR.js +0 -4
- package/components/p-BsPelv04.js +0 -4
- package/components/p-Bth-EzJ0.js +0 -4
- package/components/p-CU5rbWAW.js +0 -4
- package/components/p-DS4Hk6R2.js +0 -4
- package/components/p-W9CZ2mWX.js +0 -4
- package/components/p-dhLYXa7A.js +0 -4
- package/components/p-k_E4tX5Z.js +0 -4
- package/components/p-nQi4oKcG.js +0 -4
- package/components/p-uVRyUM3z.js +0 -4
- package/dist/cjs/config-xninhj0J.js +0 -201
- package/dist/collection/components/picker-legacy/animations/ios.enter.js +0 -27
- package/dist/collection/components/picker-legacy/animations/ios.leave.js +0 -23
- package/dist/collection/components/picker-legacy/picker-interface.js +0 -1
- package/dist/collection/components/picker-legacy/picker.ios.css +0 -300
- package/dist/collection/components/picker-legacy/picker.js +0 -890
- package/dist/collection/components/picker-legacy/picker.md.css +0 -287
- package/dist/collection/components/picker-legacy-column/picker-column.ios.css +0 -231
- package/dist/collection/components/picker-legacy-column/picker-column.js +0 -422
- package/dist/collection/components/picker-legacy-column/picker-column.md.css +0 -222
- package/dist/collection/components/picker-legacy-column/test/test.utils.js +0 -43
- package/dist/esm/config-DQCONYYp.js +0 -195
- package/dist/ionic/p-00dbb17e.entry.js +0 -4
- package/dist/ionic/p-01f81ea5.entry.js +0 -4
- package/dist/ionic/p-06c232a4.entry.js +0 -4
- package/dist/ionic/p-20b1a044.entry.js +0 -4
- package/dist/ionic/p-21eb76d5.entry.js +0 -4
- package/dist/ionic/p-27d30585.entry.js +0 -4
- package/dist/ionic/p-2bb2cb18.entry.js +0 -4
- package/dist/ionic/p-2f55dc1a.entry.js +0 -4
- package/dist/ionic/p-30bf9737.entry.js +0 -4
- package/dist/ionic/p-3a541154.entry.js +0 -4
- package/dist/ionic/p-485fda23.entry.js +0 -4
- package/dist/ionic/p-4baa5b82.entry.js +0 -4
- package/dist/ionic/p-4dc1c33c.entry.js +0 -4
- package/dist/ionic/p-5fc7e542.entry.js +0 -4
- package/dist/ionic/p-DzWaWHGc.js +0 -4
- package/dist/ionic/p-a21add2f.entry.js +0 -4
- package/dist/ionic/p-aa5d6b8f.entry.js +0 -4
- package/dist/ionic/p-b1c6fdcf.entry.js +0 -4
- package/dist/ionic/p-c0fb8edd.entry.js +0 -4
- package/dist/ionic/p-c38b648e.entry.js +0 -4
- package/dist/ionic/p-e847a888.entry.js +0 -4
- package/dist/ionic/p-ec090e0a.entry.js +0 -4
- package/dist/ionic/p-xOfi7-Zn.js +0 -4
- package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +0 -5
- package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +0 -5
- package/dist/types/components/picker-legacy/picker-interface.d.ts +0 -52
- package/dist/types/components/picker-legacy/picker.d.ts +0 -158
- package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
- package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +0 -9
package/hydrate/index.mjs
CHANGED
|
@@ -8039,7 +8039,7 @@ const focusElementInOverlay = (hostToFocus, overlay) => {
|
|
|
8039
8039
|
* Should NOT include: Toast
|
|
8040
8040
|
*/
|
|
8041
8041
|
const trapKeyboardFocus = (ev, doc) => {
|
|
8042
|
-
const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-
|
|
8042
|
+
const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover');
|
|
8043
8043
|
const target = ev.target;
|
|
8044
8044
|
/**
|
|
8045
8045
|
* If no active overlay, ignore this event.
|
|
@@ -8273,7 +8273,7 @@ const dismissOverlay = (doc, data, role, overlayTag, id) => {
|
|
|
8273
8273
|
*/
|
|
8274
8274
|
const getOverlays = (doc, selector) => {
|
|
8275
8275
|
if (selector === undefined) {
|
|
8276
|
-
selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-
|
|
8276
|
+
selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover,ion-toast';
|
|
8277
8277
|
}
|
|
8278
8278
|
return Array.from(doc.querySelectorAll(selector)).filter((c) => c.overlayIndex > 0);
|
|
8279
8279
|
};
|
|
@@ -8335,6 +8335,29 @@ const setRootAriaHidden = (hidden = false) => {
|
|
|
8335
8335
|
viewContainer.removeAttribute('aria-hidden');
|
|
8336
8336
|
}
|
|
8337
8337
|
};
|
|
8338
|
+
/**
|
|
8339
|
+
* Cleans up root `aria-hidden` and `backdrop-no-scroll` when
|
|
8340
|
+
* an overlay is removed from the DOM without going through
|
|
8341
|
+
* the `dismiss()` flow (e.g., when a framework unmounts the
|
|
8342
|
+
* overlay during a route change).
|
|
8343
|
+
*
|
|
8344
|
+
* Should be called from an overlay's `disconnectedCallback`
|
|
8345
|
+
* when the overlay was still presented at the time of removal.
|
|
8346
|
+
*/
|
|
8347
|
+
const cleanupRootFocusTrapAccessibility = () => {
|
|
8348
|
+
if (typeof document === 'undefined') {
|
|
8349
|
+
return;
|
|
8350
|
+
}
|
|
8351
|
+
const remainingOverlays = getPresentedOverlays(document);
|
|
8352
|
+
const hasRemainingLocking = remainingOverlays.some((o) => {
|
|
8353
|
+
const el = o;
|
|
8354
|
+
return el.tagName !== 'ION-TOAST' && el.focusTrap !== false && isBackdropAlwaysBlocking(el);
|
|
8355
|
+
});
|
|
8356
|
+
if (!hasRemainingLocking) {
|
|
8357
|
+
setRootAriaHidden(false);
|
|
8358
|
+
document.body.classList.remove(BACKDROP_NO_SCROLL);
|
|
8359
|
+
}
|
|
8360
|
+
};
|
|
8338
8361
|
const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts) => {
|
|
8339
8362
|
var _a, _b;
|
|
8340
8363
|
if (overlay.presented) {
|
|
@@ -8736,6 +8759,539 @@ const createTriggerController = () => {
|
|
|
8736
8759
|
};
|
|
8737
8760
|
const FOCUS_TRAP_DISABLE_CLASS = 'ion-disable-focus-trap';
|
|
8738
8761
|
|
|
8762
|
+
/**
|
|
8763
|
+
* Sanitize an untrusted HTML string.
|
|
8764
|
+
*
|
|
8765
|
+
* Parses the string into a detached DOM, removes blocked tags, strips
|
|
8766
|
+
* attributes outside the narrow `domStringAllowedAttributes` list (refer
|
|
8767
|
+
* `sanitizeElement`), and scrubs script-scheme URLs. Returns the sanitized
|
|
8768
|
+
* HTML string.
|
|
8769
|
+
*
|
|
8770
|
+
* Use this when you have an HTML string from an unknown source and need to
|
|
8771
|
+
* render it via `innerHTML`. Use `sanitizeDOMTree` instead when you already
|
|
8772
|
+
* have a DOM tree and want to sanitize it in place without a string round
|
|
8773
|
+
* trip. The two apply the same dangerous-vector scrubbing but different
|
|
8774
|
+
* attribute allowlists: this path stays narrow so existing consumers
|
|
8775
|
+
* (toast, loading, alert message, etc.) are unaffected, while
|
|
8776
|
+
* `sanitizeDOMTree` uses the wider rich-content allowlist.
|
|
8777
|
+
*
|
|
8778
|
+
* @param untrustedString - The HTML string to sanitize. Pass an
|
|
8779
|
+
* `IonicSafeString` to bypass sanitization, or `undefined` to short-circuit.
|
|
8780
|
+
* @returns The sanitized HTML string, or `undefined` if the input was
|
|
8781
|
+
* `undefined`. Returns `''` if sanitization fails or the input contains
|
|
8782
|
+
* an inline `onload=` handler.
|
|
8783
|
+
*/
|
|
8784
|
+
const sanitizeDOMString = (untrustedString) => {
|
|
8785
|
+
try {
|
|
8786
|
+
if (untrustedString instanceof IonicSafeString) {
|
|
8787
|
+
return untrustedString.value;
|
|
8788
|
+
}
|
|
8789
|
+
if (!isSanitizerEnabled() || typeof untrustedString !== 'string' || untrustedString === '') {
|
|
8790
|
+
return untrustedString;
|
|
8791
|
+
}
|
|
8792
|
+
/**
|
|
8793
|
+
* onload is fired when appending to a document
|
|
8794
|
+
* fragment in Chrome. If a string
|
|
8795
|
+
* contains onload then we should not
|
|
8796
|
+
* attempt to add this to the fragment.
|
|
8797
|
+
*/
|
|
8798
|
+
if (untrustedString.includes('onload=')) {
|
|
8799
|
+
return '';
|
|
8800
|
+
}
|
|
8801
|
+
/**
|
|
8802
|
+
* Create a document fragment
|
|
8803
|
+
* separate from the main DOM,
|
|
8804
|
+
* create a div to do our work in
|
|
8805
|
+
*/
|
|
8806
|
+
const documentFragment = document.createDocumentFragment();
|
|
8807
|
+
const workingDiv = document.createElement('div');
|
|
8808
|
+
documentFragment.appendChild(workingDiv);
|
|
8809
|
+
workingDiv.innerHTML = untrustedString;
|
|
8810
|
+
/**
|
|
8811
|
+
* Remove any elements
|
|
8812
|
+
* that are blocked
|
|
8813
|
+
*/
|
|
8814
|
+
blockedTags.forEach((blockedTag) => {
|
|
8815
|
+
const getElementsToRemove = documentFragment.querySelectorAll(blockedTag);
|
|
8816
|
+
for (let elementIndex = getElementsToRemove.length - 1; elementIndex >= 0; elementIndex--) {
|
|
8817
|
+
const element = getElementsToRemove[elementIndex];
|
|
8818
|
+
if (element.parentNode) {
|
|
8819
|
+
element.parentNode.removeChild(element);
|
|
8820
|
+
}
|
|
8821
|
+
else {
|
|
8822
|
+
documentFragment.removeChild(element);
|
|
8823
|
+
}
|
|
8824
|
+
/**
|
|
8825
|
+
* We still need to sanitize
|
|
8826
|
+
* the children of this element
|
|
8827
|
+
* as they are left behind
|
|
8828
|
+
*/
|
|
8829
|
+
const childElements = getElementChildren(element);
|
|
8830
|
+
/* eslint-disable-next-line */
|
|
8831
|
+
for (let childIndex = 0; childIndex < childElements.length; childIndex++) {
|
|
8832
|
+
sanitizeElement(childElements[childIndex], domStringAllowedAttributes);
|
|
8833
|
+
}
|
|
8834
|
+
}
|
|
8835
|
+
});
|
|
8836
|
+
/**
|
|
8837
|
+
* Go through remaining elements and remove
|
|
8838
|
+
* non-allowed attribs
|
|
8839
|
+
*/
|
|
8840
|
+
// IE does not support .children on document fragments, only .childNodes
|
|
8841
|
+
const dfChildren = getElementChildren(documentFragment);
|
|
8842
|
+
/* eslint-disable-next-line */
|
|
8843
|
+
for (let childIndex = 0; childIndex < dfChildren.length; childIndex++) {
|
|
8844
|
+
sanitizeElement(dfChildren[childIndex], domStringAllowedAttributes);
|
|
8845
|
+
}
|
|
8846
|
+
// Append document fragment to div
|
|
8847
|
+
const fragmentDiv = document.createElement('div');
|
|
8848
|
+
fragmentDiv.appendChild(documentFragment);
|
|
8849
|
+
// First child is always the div we did our work in
|
|
8850
|
+
const getInnerDiv = fragmentDiv.querySelector('div');
|
|
8851
|
+
return getInnerDiv !== null ? getInnerDiv.innerHTML : fragmentDiv.innerHTML;
|
|
8852
|
+
}
|
|
8853
|
+
catch (err) {
|
|
8854
|
+
printIonError('sanitizeDOMString', err);
|
|
8855
|
+
return '';
|
|
8856
|
+
}
|
|
8857
|
+
};
|
|
8858
|
+
/**
|
|
8859
|
+
* Sanitize an entire trusted DOM tree in place.
|
|
8860
|
+
*
|
|
8861
|
+
* Removes blocked tags (`script`, `iframe`, etc.) from the subtree and
|
|
8862
|
+
* then sanitizes attributes on every remaining element using the wider
|
|
8863
|
+
* `richContentAllowedAttributes` allowlist (refer `sanitizeElement`).
|
|
8864
|
+
* Component presentational attributes (`size`, `color`, `shape`, inline
|
|
8865
|
+
* SVG, `aria-*`, `data-*`) are preserved; `style`, event handlers (`on*`),
|
|
8866
|
+
* form/navigation-hijack attributes, script-scheme URLs, and non-image
|
|
8867
|
+
* `data:` URLs are stripped.
|
|
8868
|
+
*
|
|
8869
|
+
* Use this when you have a DOM tree the developer controls (e.g.
|
|
8870
|
+
* cloned slot content from a component) and you need to render it
|
|
8871
|
+
* elsewhere safely.
|
|
8872
|
+
*
|
|
8873
|
+
* @param root - The root element whose subtree will be sanitized in
|
|
8874
|
+
* place. No-op when the sanitizer is disabled via `Ionic.config`.
|
|
8875
|
+
*/
|
|
8876
|
+
const sanitizeDOMTree = (root) => {
|
|
8877
|
+
if (!isSanitizerEnabled()) {
|
|
8878
|
+
return;
|
|
8879
|
+
}
|
|
8880
|
+
blockedTags.forEach((tag) => {
|
|
8881
|
+
const matches = root.querySelectorAll(tag);
|
|
8882
|
+
for (let i = matches.length - 1; i >= 0; i--) {
|
|
8883
|
+
matches[i].remove();
|
|
8884
|
+
}
|
|
8885
|
+
});
|
|
8886
|
+
sanitizeElement(root, richContentAllowedAttributes, richContentAllowedAttributePrefixes);
|
|
8887
|
+
};
|
|
8888
|
+
/**
|
|
8889
|
+
* Clean up current element based on allowed attributes
|
|
8890
|
+
* and then recursively dig down into any child elements to
|
|
8891
|
+
* clean those up as well
|
|
8892
|
+
*/
|
|
8893
|
+
// TODO(FW-2832): type (using Element triggers other type errors as well)
|
|
8894
|
+
const sanitizeElement = (element, allowedAttributes, allowedAttributePrefixes = []) => {
|
|
8895
|
+
// IE uses childNodes, so ignore nodes that are not elements
|
|
8896
|
+
if (element.nodeType && element.nodeType !== 1) {
|
|
8897
|
+
return;
|
|
8898
|
+
}
|
|
8899
|
+
/**
|
|
8900
|
+
* If attributes is not a NamedNodeMap
|
|
8901
|
+
* then we should remove the element entirely.
|
|
8902
|
+
* This helps avoid DOM Clobbering attacks where
|
|
8903
|
+
* attributes is overridden.
|
|
8904
|
+
*/
|
|
8905
|
+
if (typeof NamedNodeMap !== 'undefined' && !(element.attributes instanceof NamedNodeMap)) {
|
|
8906
|
+
element.remove();
|
|
8907
|
+
return;
|
|
8908
|
+
}
|
|
8909
|
+
/**
|
|
8910
|
+
* Always strip `style` (CSS injection, `background:url()` beaconing, UI
|
|
8911
|
+
* spoofing). It is never on the allowlist, but it is removed explicitly
|
|
8912
|
+
* here because some engines (e.g. jsdom) don't enumerate the CSSOM-backed
|
|
8913
|
+
* `style` attribute in `element.attributes`, which would let the loop
|
|
8914
|
+
* below skip over it.
|
|
8915
|
+
*/
|
|
8916
|
+
element.removeAttribute('style');
|
|
8917
|
+
for (let i = element.attributes.length - 1; i >= 0; i--) {
|
|
8918
|
+
const attribute = element.attributes.item(i);
|
|
8919
|
+
const attributeName = attribute.name;
|
|
8920
|
+
const lowerName = attributeName.toLowerCase();
|
|
8921
|
+
/**
|
|
8922
|
+
* Remove any attribute that is not on the allowlist. This drops event
|
|
8923
|
+
* handlers (`on*`), `style`, the form/navigation-hijack attributes
|
|
8924
|
+
* (`formaction`, `action`, `target`), namespaced attributes like
|
|
8925
|
+
* `xlink:href`, and anything else not explicitly known to be safe.
|
|
8926
|
+
*/
|
|
8927
|
+
if (!isAttributeAllowed(lowerName, allowedAttributes, allowedAttributePrefixes)) {
|
|
8928
|
+
element.removeAttribute(attributeName);
|
|
8929
|
+
continue;
|
|
8930
|
+
}
|
|
8931
|
+
// clean up any allowed attribs
|
|
8932
|
+
// that attempt to do any JS funny-business
|
|
8933
|
+
const attributeValue = attribute.value;
|
|
8934
|
+
if (attributeValue == null) {
|
|
8935
|
+
continue;
|
|
8936
|
+
}
|
|
8937
|
+
/**
|
|
8938
|
+
* Scrub dangerous schemes from the value. The value is normalized first
|
|
8939
|
+
* (whitespace and ASCII control characters removed) so entity-obfuscated
|
|
8940
|
+
* payloads such as `java	script:`, which the parser decodes to
|
|
8941
|
+
* `java\tscript:`, are still caught. Normalizing the value also covers
|
|
8942
|
+
* namespaced attributes, where the previous `element[attributeName]`
|
|
8943
|
+
* property reflection returned `undefined` and let them slip through.
|
|
8944
|
+
*/
|
|
8945
|
+
const normalizedValue = attributeValue.replace(controlCharactersAndWhitespace, '').toLowerCase();
|
|
8946
|
+
// Script schemes are never allowed, on any attribute.
|
|
8947
|
+
if (normalizedValue.includes('javascript:') || normalizedValue.includes('vbscript:')) {
|
|
8948
|
+
element.removeAttribute(attributeName);
|
|
8949
|
+
continue;
|
|
8950
|
+
}
|
|
8951
|
+
/**
|
|
8952
|
+
* For URL-bearing attributes, allow `data:` URIs only for raster
|
|
8953
|
+
* images. Document-bearing types (`text/html`, `image/svg+xml`,
|
|
8954
|
+
* `application/*`, etc.) can carry markup or script when navigated to
|
|
8955
|
+
* or rendered, so they are stripped, while safe image types are kept so
|
|
8956
|
+
* inline images keep working.
|
|
8957
|
+
*/
|
|
8958
|
+
if (urlAttributes.includes(lowerName) &&
|
|
8959
|
+
normalizedValue.startsWith('data:') &&
|
|
8960
|
+
!safeDataImageUri.test(normalizedValue)) {
|
|
8961
|
+
element.removeAttribute(attributeName);
|
|
8962
|
+
}
|
|
8963
|
+
}
|
|
8964
|
+
/**
|
|
8965
|
+
* Sanitize any nested children
|
|
8966
|
+
*/
|
|
8967
|
+
const childElements = getElementChildren(element);
|
|
8968
|
+
/* eslint-disable-next-line */
|
|
8969
|
+
for (let i = 0; i < childElements.length; i++) {
|
|
8970
|
+
sanitizeElement(childElements[i], allowedAttributes, allowedAttributePrefixes);
|
|
8971
|
+
}
|
|
8972
|
+
};
|
|
8973
|
+
/**
|
|
8974
|
+
* IE doesn't always support .children
|
|
8975
|
+
* so we revert to .childNodes instead
|
|
8976
|
+
*/
|
|
8977
|
+
// TODO(FW-2832): type
|
|
8978
|
+
const getElementChildren = (el) => {
|
|
8979
|
+
return el.children != null ? el.children : el.childNodes;
|
|
8980
|
+
};
|
|
8981
|
+
const isSanitizerEnabled = () => {
|
|
8982
|
+
var _a;
|
|
8983
|
+
const win = window;
|
|
8984
|
+
const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config;
|
|
8985
|
+
if (config) {
|
|
8986
|
+
if (config.get) {
|
|
8987
|
+
return config.get('sanitizerEnabled', true);
|
|
8988
|
+
}
|
|
8989
|
+
else {
|
|
8990
|
+
return config.sanitizerEnabled === true || config.sanitizerEnabled === undefined;
|
|
8991
|
+
}
|
|
8992
|
+
}
|
|
8993
|
+
return true;
|
|
8994
|
+
};
|
|
8995
|
+
/**
|
|
8996
|
+
* Mirror known custom-element DOM properties onto attributes so they
|
|
8997
|
+
* survive `cloneNode`. Call this on a DOM subtree before cloning it for
|
|
8998
|
+
* rendering elsewhere (e.g. cloning slotted option content into an
|
|
8999
|
+
* overlay).
|
|
9000
|
+
*
|
|
9001
|
+
* Only sets the attribute when the property holds a non-empty string
|
|
9002
|
+
* and the attribute isn't already present, so existing attributes
|
|
9003
|
+
* take precedence.
|
|
9004
|
+
*
|
|
9005
|
+
* @param root - The root element whose subtree (and itself) will be
|
|
9006
|
+
* inspected.
|
|
9007
|
+
*/
|
|
9008
|
+
const reflectPropertiesToAttributes = (root) => {
|
|
9009
|
+
const candidates = [];
|
|
9010
|
+
if (root.tagName in elementPropsToReflect) {
|
|
9011
|
+
candidates.push(root);
|
|
9012
|
+
}
|
|
9013
|
+
for (const tagName of Object.keys(elementPropsToReflect)) {
|
|
9014
|
+
candidates.push(...Array.from(root.querySelectorAll(tagName.toLowerCase())));
|
|
9015
|
+
}
|
|
9016
|
+
for (const el of candidates) {
|
|
9017
|
+
if (!(el.tagName in elementPropsToReflect)) {
|
|
9018
|
+
continue;
|
|
9019
|
+
}
|
|
9020
|
+
const props = elementPropsToReflect[el.tagName];
|
|
9021
|
+
for (const prop of props) {
|
|
9022
|
+
const value = el[prop];
|
|
9023
|
+
if (typeof value === 'string' && value.length > 0 && !el.hasAttribute(prop)) {
|
|
9024
|
+
el.setAttribute(prop, value);
|
|
9025
|
+
}
|
|
9026
|
+
}
|
|
9027
|
+
}
|
|
9028
|
+
};
|
|
9029
|
+
/**
|
|
9030
|
+
* Attribute allowlist for `sanitizeDOMString`. Intentionally narrow: this
|
|
9031
|
+
* path sanitizes developer HTML strings rendered via `innerHTML` by
|
|
9032
|
+
* `ion-toast`, `ion-loading`, the `ion-alert` message,
|
|
9033
|
+
* `ion-refresher-content`, and `ion-infinite-scroll-content`, so the list
|
|
9034
|
+
* is kept to the minimum those have always needed. Broadening it here would
|
|
9035
|
+
* change sanitization output for all of those consumers, so the wider
|
|
9036
|
+
* rich-content allowlist below is deliberately scoped to `sanitizeDOMTree`
|
|
9037
|
+
* instead.
|
|
9038
|
+
*/
|
|
9039
|
+
const domStringAllowedAttributes = ['class', 'id', 'href', 'src', 'name', 'slot'];
|
|
9040
|
+
/**
|
|
9041
|
+
* Attribute allowlist for `sanitizeDOMTree` (the select rich-content path).
|
|
9042
|
+
* Covers global HTML attributes, the Ionic component presentational props
|
|
9043
|
+
* that cloned rich content (e.g. `ion-select-option` markup) relies on, and
|
|
9044
|
+
* the inert SVG presentation attributes used by inline icons.
|
|
9045
|
+
*
|
|
9046
|
+
* `aria-*` and `data-*` are allowed separately by prefix (refer
|
|
9047
|
+
* `richContentAllowedAttributePrefixes`) since they are inert and not worth
|
|
9048
|
+
* enumerating. URL-bearing names (`href`, `src`) are allowed here, but
|
|
9049
|
+
* their values are still scrubbed for script schemes in `sanitizeElement`.
|
|
9050
|
+
*
|
|
9051
|
+
* Notably absent: `style`, event handlers (`on*`), and the
|
|
9052
|
+
* form/navigation-hijack attributes (`formaction`, `action`, `target`),
|
|
9053
|
+
* which are therefore stripped.
|
|
9054
|
+
*/
|
|
9055
|
+
const richContentAllowedAttributes = [
|
|
9056
|
+
// Global / structural
|
|
9057
|
+
'class',
|
|
9058
|
+
'id',
|
|
9059
|
+
'slot',
|
|
9060
|
+
'name',
|
|
9061
|
+
'title',
|
|
9062
|
+
'alt',
|
|
9063
|
+
'lang',
|
|
9064
|
+
'dir',
|
|
9065
|
+
'role',
|
|
9066
|
+
'type',
|
|
9067
|
+
'value',
|
|
9068
|
+
'disabled',
|
|
9069
|
+
'width',
|
|
9070
|
+
'height',
|
|
9071
|
+
'href',
|
|
9072
|
+
'src',
|
|
9073
|
+
// Ionic component presentational props
|
|
9074
|
+
'color',
|
|
9075
|
+
'size',
|
|
9076
|
+
'shape',
|
|
9077
|
+
'fill',
|
|
9078
|
+
'expand',
|
|
9079
|
+
'mode',
|
|
9080
|
+
'theme',
|
|
9081
|
+
'icon',
|
|
9082
|
+
'label',
|
|
9083
|
+
'label-placement',
|
|
9084
|
+
'justify',
|
|
9085
|
+
'inset',
|
|
9086
|
+
'lines',
|
|
9087
|
+
'ios',
|
|
9088
|
+
'md',
|
|
9089
|
+
// SVG presentation attributes (compared lowercased, e.g. `viewBox`)
|
|
9090
|
+
'xmlns',
|
|
9091
|
+
'viewbox',
|
|
9092
|
+
'preserveaspectratio',
|
|
9093
|
+
'stroke',
|
|
9094
|
+
'stroke-width',
|
|
9095
|
+
'stroke-linecap',
|
|
9096
|
+
'stroke-linejoin',
|
|
9097
|
+
'stroke-opacity',
|
|
9098
|
+
'stroke-dasharray',
|
|
9099
|
+
'fill-rule',
|
|
9100
|
+
'fill-opacity',
|
|
9101
|
+
'clip-rule',
|
|
9102
|
+
'd',
|
|
9103
|
+
'points',
|
|
9104
|
+
'cx',
|
|
9105
|
+
'cy',
|
|
9106
|
+
'r',
|
|
9107
|
+
'rx',
|
|
9108
|
+
'ry',
|
|
9109
|
+
'x',
|
|
9110
|
+
'y',
|
|
9111
|
+
'x1',
|
|
9112
|
+
'y1',
|
|
9113
|
+
'x2',
|
|
9114
|
+
'y2',
|
|
9115
|
+
'transform',
|
|
9116
|
+
'opacity',
|
|
9117
|
+
];
|
|
9118
|
+
/**
|
|
9119
|
+
* Attribute-name prefixes that are always safe to keep in the rich-content
|
|
9120
|
+
* path. `aria-*` and `data-*` attributes cannot execute script or load
|
|
9121
|
+
* resources, so they are allowed wholesale rather than enumerated by name.
|
|
9122
|
+
*/
|
|
9123
|
+
const richContentAllowedAttributePrefixes = ['aria-', 'data-'];
|
|
9124
|
+
/**
|
|
9125
|
+
* Whether an attribute name (already lowercased) is safe to keep, by exact
|
|
9126
|
+
* match or by an allowed prefix.
|
|
9127
|
+
*/
|
|
9128
|
+
const isAttributeAllowed = (lowerName, allowedAttributes, allowedAttributePrefixes) => {
|
|
9129
|
+
if (allowedAttributes.includes(lowerName)) {
|
|
9130
|
+
return true;
|
|
9131
|
+
}
|
|
9132
|
+
return allowedAttributePrefixes.some((prefix) => lowerName.startsWith(prefix));
|
|
9133
|
+
};
|
|
9134
|
+
/**
|
|
9135
|
+
* Matches ASCII control characters and whitespace (including the
|
|
9136
|
+
* non-breaking space). Used to normalize attribute values before matching
|
|
9137
|
+
* a URL scheme so entity-obfuscated payloads such as `java	script:`
|
|
9138
|
+
* (decoded by the parser to `java\tscript:`) can't smuggle a scheme past
|
|
9139
|
+
* the check.
|
|
9140
|
+
*/
|
|
9141
|
+
// eslint-disable-next-line no-control-regex -- matching control characters is the point
|
|
9142
|
+
const controlCharactersAndWhitespace = /[\u0000-\u0020\u007f-\u00a0]/g;
|
|
9143
|
+
/**
|
|
9144
|
+
* Attributes whose values are URLs. Their values are scheme-checked in
|
|
9145
|
+
* `sanitizeElement` (e.g. `data:` filtering) beyond the script-scheme scrub
|
|
9146
|
+
* applied to every attribute.
|
|
9147
|
+
*/
|
|
9148
|
+
const urlAttributes = ['href', 'src'];
|
|
9149
|
+
/**
|
|
9150
|
+
* Matches a `data:` URI for a raster image type that cannot carry script.
|
|
9151
|
+
* `image/svg+xml` is deliberately excluded (SVG can execute script), as are
|
|
9152
|
+
* document types like `text/html` and `application/*`. The value is already
|
|
9153
|
+
* lowercased and whitespace-stripped before this is tested.
|
|
9154
|
+
*/
|
|
9155
|
+
const safeDataImageUri = /^data:image\/(?:png|jpe?g|gif|webp|bmp|avif|x-icon|vnd\.microsoft\.icon)[;,]/;
|
|
9156
|
+
/**
|
|
9157
|
+
* Tags removed entirely (with their subtree) before attribute sanitization.
|
|
9158
|
+
* Exported so tests can assert the set without hardcoding it.
|
|
9159
|
+
*/
|
|
9160
|
+
const blockedTags = ['script', 'style', 'iframe', 'meta', 'link', 'object', 'embed', 'base'];
|
|
9161
|
+
/**
|
|
9162
|
+
* Properties on custom elements that frameworks (Vue, Angular) often
|
|
9163
|
+
* set as DOM properties rather than attributes. `cloneNode` only copies
|
|
9164
|
+
* attributes, so these values are lost when slotted content is cloned
|
|
9165
|
+
* into an overlay. For each known custom element, we mirror the listed
|
|
9166
|
+
* properties onto attributes so the cloned copy still has the data it
|
|
9167
|
+
* needs to render.
|
|
9168
|
+
*
|
|
9169
|
+
* Keyed by uppercased tagName so the lookup matches `Element.tagName`.
|
|
9170
|
+
*/
|
|
9171
|
+
const elementPropsToReflect = {
|
|
9172
|
+
'ION-ICON': ['icon', 'name', 'src', 'ios', 'md'],
|
|
9173
|
+
};
|
|
9174
|
+
class IonicSafeString {
|
|
9175
|
+
constructor(value) {
|
|
9176
|
+
this.value = value;
|
|
9177
|
+
}
|
|
9178
|
+
}
|
|
9179
|
+
|
|
9180
|
+
/**
|
|
9181
|
+
* Converts a DOM node into a Stencil VNode (or text string) so the
|
|
9182
|
+
* resulting tree is rendered through the component's normal render
|
|
9183
|
+
* path. Rendering through Stencil ensures that scoped CSS classes
|
|
9184
|
+
* (e.g. `sc-ion-action-sheet-ionic`) are applied to every element.
|
|
9185
|
+
*
|
|
9186
|
+
* Highly recommended to pre-sanitize the source DOM (see
|
|
9187
|
+
* `getOptionContent` in select.tsx). This function performs pure
|
|
9188
|
+
* structural conversion — no security filtering.
|
|
9189
|
+
*
|
|
9190
|
+
* Preserves attributes only — properties set imperatively on the source
|
|
9191
|
+
* element (e.g. `input.value` after a user types) won't carry through.
|
|
9192
|
+
* In practice this isn't a concern: interactive controls shouldn't
|
|
9193
|
+
* appear in select-option rich content since they'd nest inside the
|
|
9194
|
+
* overlay's button/radio/checkbox wrapper, which is invalid HTML and
|
|
9195
|
+
* an accessibility issue.
|
|
9196
|
+
*
|
|
9197
|
+
* @param node - The DOM node to convert. Text nodes become strings,
|
|
9198
|
+
* element nodes become VNodes, and any other node types are skipped.
|
|
9199
|
+
* @param keyPrefix - String prefix used to build a stable VNode key,
|
|
9200
|
+
* so Stencil's diff can preserve elements across re-renders.
|
|
9201
|
+
* @param index - Position of this node among its siblings. Combined
|
|
9202
|
+
* with `keyPrefix` to form the final unique key.
|
|
9203
|
+
* @returns The converted VNode, a text string, or `null` if the node
|
|
9204
|
+
* type isn't supported.
|
|
9205
|
+
*
|
|
9206
|
+
* @internal Exported only so it can be unit tested; not part of the
|
|
9207
|
+
* public API.
|
|
9208
|
+
*/
|
|
9209
|
+
const cloneToVNode = (node, keyPrefix, index) => {
|
|
9210
|
+
var _a;
|
|
9211
|
+
if (node.nodeType === Node.TEXT_NODE) {
|
|
9212
|
+
return (_a = node.textContent) !== null && _a !== void 0 ? _a : '';
|
|
9213
|
+
}
|
|
9214
|
+
if (node.nodeType !== Node.ELEMENT_NODE) {
|
|
9215
|
+
return null;
|
|
9216
|
+
}
|
|
9217
|
+
const el = node;
|
|
9218
|
+
const tag = el.tagName.toLowerCase();
|
|
9219
|
+
const key = `${keyPrefix}-${index}`;
|
|
9220
|
+
const attrs = { key };
|
|
9221
|
+
for (let i = 0; i < el.attributes.length; i++) {
|
|
9222
|
+
const attr = el.attributes.item(i);
|
|
9223
|
+
attrs[attr.name] = attr.value;
|
|
9224
|
+
}
|
|
9225
|
+
const children = Array.from(el.childNodes)
|
|
9226
|
+
.map((child, i) => cloneToVNode(child, key, i))
|
|
9227
|
+
.filter((c) => c !== null);
|
|
9228
|
+
return hAsync(tag, attrs, children);
|
|
9229
|
+
};
|
|
9230
|
+
/**
|
|
9231
|
+
* Renders cloned DOM content as Stencil JSX. Walking the source DOM
|
|
9232
|
+
* into VNodes (rather than injecting it via innerHTML) keeps the
|
|
9233
|
+
* content inside Stencil's render path, so scoped CSS classes are
|
|
9234
|
+
* applied automatically and component attributes like `size` or
|
|
9235
|
+
* `color` survive intact.
|
|
9236
|
+
*
|
|
9237
|
+
* Span elements should be used when this content renders within buttons,
|
|
9238
|
+
* depending on the select interface. Buttons can only have phrasing
|
|
9239
|
+
* content to prevent accessibility issues.
|
|
9240
|
+
*
|
|
9241
|
+
* @param id - Unique identifier for generating stable virtual DOM keys.
|
|
9242
|
+
* @param content - The HTMLElement container whose child nodes will be cloned.
|
|
9243
|
+
* @param className - CSS class applied to the wrapper element.
|
|
9244
|
+
* @param useSpan - Whether to use a span element instead of a div for the wrapper.
|
|
9245
|
+
*/
|
|
9246
|
+
const renderClonedContent = (id, content, className, useSpan = false) => {
|
|
9247
|
+
const Tag = useSpan ? 'span' : 'div';
|
|
9248
|
+
const keyPrefix = `${className}-${id}`;
|
|
9249
|
+
/**
|
|
9250
|
+
* Do not remove. This is the only sanitization pass for callers that pass
|
|
9251
|
+
* an `HTMLElement` straight to `renderOptionLabel` (e.g. vanilla JS)
|
|
9252
|
+
* without going through `getOptionContent`, which sanitizes upstream.
|
|
9253
|
+
* `cloneToVNode` does pure structural conversion and no security
|
|
9254
|
+
* filtering, so dropping this call would reopen an XSS hole on the
|
|
9255
|
+
* direct `HTMLElement` path.
|
|
9256
|
+
*/
|
|
9257
|
+
sanitizeDOMTree(content);
|
|
9258
|
+
return (hAsync(Tag, { class: className, key: keyPrefix }, Array.from(content.childNodes).map((child, i) => cloneToVNode(child, keyPrefix, i))));
|
|
9259
|
+
};
|
|
9260
|
+
/**
|
|
9261
|
+
* Renders the label content for a select option within an overlay
|
|
9262
|
+
* interface based on the presence of rich content.
|
|
9263
|
+
*
|
|
9264
|
+
* Span elements should be used when this content renders within buttons,
|
|
9265
|
+
* depending on the select interface. Buttons can only have phrasing
|
|
9266
|
+
* content to prevent accessibility issues.
|
|
9267
|
+
*
|
|
9268
|
+
* @param option - The content option data containing label, slots,
|
|
9269
|
+
* and description.
|
|
9270
|
+
* @param className - The base CSS class for the label element.
|
|
9271
|
+
* @param useSpan - Whether to use a span element instead of a div for the label.
|
|
9272
|
+
*/
|
|
9273
|
+
const renderOptionLabel = (option, className, useSpan = false) => {
|
|
9274
|
+
const { id, label, startContent, endContent, description } = option;
|
|
9275
|
+
const hasRichContent = !!startContent || !!endContent || !!description;
|
|
9276
|
+
const Tag = useSpan ? 'span' : 'div';
|
|
9277
|
+
// Render simple string label if there is no rich content to display
|
|
9278
|
+
if (!hasRichContent && (typeof label === 'string' || !label)) {
|
|
9279
|
+
return (hAsync(Tag, { class: className, key: `${className}-${id}` }, label));
|
|
9280
|
+
}
|
|
9281
|
+
// Render the main label
|
|
9282
|
+
const labelEl = typeof label === 'string' || !label ? (
|
|
9283
|
+
// Label is a simple string or undefined
|
|
9284
|
+
hAsync(Tag, { key: `${className}-label-${id}` }, label)) : (
|
|
9285
|
+
// Label is an HTMLElement with potential rich content
|
|
9286
|
+
renderClonedContent(id, label, `${className}-text`, useSpan));
|
|
9287
|
+
// No rich content, render just the label
|
|
9288
|
+
if (!hasRichContent) {
|
|
9289
|
+
return (hAsync(Tag, { class: className, key: `${className}-${id}` }, labelEl));
|
|
9290
|
+
}
|
|
9291
|
+
// Render label with rich content (start, end, description)
|
|
9292
|
+
return (hAsync(Tag, { class: `${className} ${className}-has-rich-content`, key: `${className}-${id}` }, startContent && renderClonedContent(id, startContent, 'select-option-start', useSpan), hAsync(Tag, { class: "select-option-content", key: `${className}-content-${id}` }, labelEl, description && (hAsync(Tag, { class: "select-option-description", key: `${className}-desc-${id}` }, description))), endContent && renderClonedContent(id, endContent, 'select-option-end', useSpan)));
|
|
9293
|
+
};
|
|
9294
|
+
|
|
8739
9295
|
const hostContext = (selector, el) => {
|
|
8740
9296
|
return el.closest(selector) !== null;
|
|
8741
9297
|
};
|
|
@@ -9591,7 +10147,7 @@ const createAnimation = (animationId) => {
|
|
|
9591
10147
|
/**
|
|
9592
10148
|
* iOS Action Sheet Enter Animation
|
|
9593
10149
|
*/
|
|
9594
|
-
const iosEnterAnimation$
|
|
10150
|
+
const iosEnterAnimation$5 = (baseEl) => {
|
|
9595
10151
|
const baseAnimation = createAnimation();
|
|
9596
10152
|
const backdropAnimation = createAnimation();
|
|
9597
10153
|
const wrapperAnimation = createAnimation();
|
|
@@ -9615,7 +10171,7 @@ const iosEnterAnimation$6 = (baseEl) => {
|
|
|
9615
10171
|
/**
|
|
9616
10172
|
* iOS Action Sheet Leave Animation
|
|
9617
10173
|
*/
|
|
9618
|
-
const iosLeaveAnimation$
|
|
10174
|
+
const iosLeaveAnimation$5 = (baseEl) => {
|
|
9619
10175
|
const baseAnimation = createAnimation();
|
|
9620
10176
|
const backdropAnimation = createAnimation();
|
|
9621
10177
|
const wrapperAnimation = createAnimation();
|
|
@@ -9672,9 +10228,9 @@ const mdLeaveAnimation$5 = (baseEl) => {
|
|
|
9672
10228
|
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
9673
10229
|
};
|
|
9674
10230
|
|
|
9675
|
-
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, var(--ion-background-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-step-150, var(--ion-background-color, #fff)));--button-background-selected-opacity:1;--button-color:var(--ion-color-primary, #0054e9);--button-color-disabled:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));--color:var(--ion-color-step-400, var(--ion-text-color-step-600, #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);padding-bottom:var(--ion-safe-area-bottom, 0);-webkit-box-sizing:content-box;box-sizing:content-box}.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, var(--ion-text-color-step-600, #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, #c5000f)}@media (any-hover: hover){.action-sheet-destructive.sc-ion-action-sheet-ios:hover{color:var(--ion-color-danger, #c5000f)}}`;
|
|
10231
|
+
const actionSheetIosCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-action-sheet-ios,.alert-radio-label-has-rich-content.sc-ion-action-sheet-ios,.alert-checkbox-label-has-rich-content.sc-ion-action-sheet-ios,.select-option-label-has-rich-content.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:16px}.action-sheet-button-label-has-rich-content.sc-ion-action-sheet-ios,.alert-radio-label-has-rich-content.sc-ion-action-sheet-ios,.alert-checkbox-label-has-rich-content.sc-ion-action-sheet-ios,.select-option-content.sc-ion-action-sheet-ios{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-action-sheet-ios,.alert-checkbox-label-text.sc-ion-action-sheet-ios,.alert-radio-label-text.sc-ion-action-sheet-ios,.select-option-label-text.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-action-sheet-ios{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}.select-option-label.sc-ion-action-sheet-ios:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-action-sheet-ios::part(label),ion-radio.select-option-has-rich-content.sc-ion-action-sheet-ios [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-action-sheet-ios::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-action-sheet-ios [part~="label"],.select-option-content.sc-ion-action-sheet-ios{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-action-sheet-ios>ion-avatar.sc-ion-action-sheet-ios,.select-option-start.sc-ion-action-sheet-ios>ion-img.sc-ion-action-sheet-ios,.select-option-start.sc-ion-action-sheet-ios>ion-thumbnail.sc-ion-action-sheet-ios,.select-option-start.sc-ion-action-sheet-ios>img.sc-ion-action-sheet-ios,.select-option-start.sc-ion-action-sheet-ios>svg.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios>ion-avatar.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios>ion-img.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios>ion-thumbnail.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios>img.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios>svg.sc-ion-action-sheet-ios{width:44px;height:44px}.select-option-start.sc-ion-action-sheet-ios>ion-icon.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios>ion-icon.sc-ion-action-sheet-ios{width:28px;height:28px}.action-sheet-button-label-text.sc-ion-action-sheet-ios{-ms-flex-pack:center;justify-content:center}.select-option-has-rich-content.sc-ion-action-sheet-ios{-webkit-padding-end:16px;padding-inline-end:16px}.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.sc-ion-action-sheet-ios:disabled ion-icon.sc-ion-action-sheet-ios{color:currentColor}.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:not(.ion-activated){color:var(--button-color-focused)}.action-sheet-button.ion-focused.sc-ion-action-sheet-ios:not(.ion-activated)::after{background:var(--button-background-focused);opacity:var(--button-background-focused-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-ios:not(.ion-activated).action-sheet-selected::after{background:var(--button-background-focused, var(--button-background-selected));opacity:var(--button-background-focused-opacity, var(--button-background-selected-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, var(--ion-background-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-step-150, var(--ion-background-color, #fff)));--button-background-selected-opacity:1;--button-color:var(--ion-color-primary, #0054e9);--button-color-disabled:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));--color:var(--ion-color-step-400, var(--ion-text-color-step-600, #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);padding-bottom:var(--ion-safe-area-bottom, 0);-webkit-box-sizing:content-box;box-sizing:content-box}.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, var(--ion-text-color-step-600, #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, #c5000f)}@media (any-hover: hover){.action-sheet-destructive.sc-ion-action-sheet-ios:hover{color:var(--ion-color-danger, #c5000f)}}`;
|
|
9676
10232
|
|
|
9677
|
-
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, var(--ion-text-color-step-150, #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}`;
|
|
10233
|
+
const actionSheetMdCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-action-sheet-md,.alert-radio-label-has-rich-content.sc-ion-action-sheet-md,.alert-checkbox-label-has-rich-content.sc-ion-action-sheet-md,.select-option-label-has-rich-content.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:16px}.action-sheet-button-label-has-rich-content.sc-ion-action-sheet-md,.alert-radio-label-has-rich-content.sc-ion-action-sheet-md,.alert-checkbox-label-has-rich-content.sc-ion-action-sheet-md,.select-option-content.sc-ion-action-sheet-md{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-action-sheet-md,.alert-checkbox-label-text.sc-ion-action-sheet-md,.alert-radio-label-text.sc-ion-action-sheet-md,.select-option-label-text.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-action-sheet-md{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}.select-option-label.sc-ion-action-sheet-md:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-action-sheet-md::part(label),ion-radio.select-option-has-rich-content.sc-ion-action-sheet-md [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-action-sheet-md::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-action-sheet-md [part~="label"],.select-option-content.sc-ion-action-sheet-md{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-action-sheet-md>ion-avatar.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>ion-avatar.sc-ion-action-sheet-md{width:40px;height:40px}.select-option-start.sc-ion-action-sheet-md>ion-icon.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>ion-icon.sc-ion-action-sheet-md{width:24px;height:24px}.select-option-start.sc-ion-action-sheet-md>ion-img.sc-ion-action-sheet-md,.select-option-start.sc-ion-action-sheet-md>img.sc-ion-action-sheet-md,.select-option-start.sc-ion-action-sheet-md>svg.sc-ion-action-sheet-md,.select-option-start.sc-ion-action-sheet-md>ion-thumbnail.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>ion-img.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>img.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>svg.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>ion-thumbnail.sc-ion-action-sheet-md{width:56px;height:56px}.select-option-start.sc-ion-action-sheet-md>video.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>video.sc-ion-action-sheet-md{width:114px;height:56px}.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.sc-ion-action-sheet-md:disabled ion-icon.sc-ion-action-sheet-md{color:currentColor}.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:not(.ion-activated){color:var(--button-color-focused)}.action-sheet-button.ion-focused.sc-ion-action-sheet-md:not(.ion-activated)::after{background:var(--button-background-focused);opacity:var(--button-background-focused-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-md:not(.ion-activated).action-sheet-selected::after{background:var(--button-background-focused, var(--button-background-selected));opacity:var(--button-background-focused-opacity, var(--button-background-selected-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, var(--ion-text-color-step-150, #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}`;
|
|
9678
10234
|
|
|
9679
10235
|
/**
|
|
9680
10236
|
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
@@ -9771,7 +10327,7 @@ class ActionSheet {
|
|
|
9771
10327
|
async present() {
|
|
9772
10328
|
const unlock = await this.lockController.lock();
|
|
9773
10329
|
await this.delegateController.attachViewToDom();
|
|
9774
|
-
await present(this, 'actionSheetEnter', iosEnterAnimation$
|
|
10330
|
+
await present(this, 'actionSheetEnter', iosEnterAnimation$5, mdEnterAnimation$5);
|
|
9775
10331
|
unlock();
|
|
9776
10332
|
}
|
|
9777
10333
|
/**
|
|
@@ -9788,7 +10344,7 @@ class ActionSheet {
|
|
|
9788
10344
|
*/
|
|
9789
10345
|
async dismiss(data, role) {
|
|
9790
10346
|
const unlock = await this.lockController.lock();
|
|
9791
|
-
const dismissed = await dismiss(this, data, role, 'actionSheetLeave', iosLeaveAnimation$
|
|
10347
|
+
const dismissed = await dismiss(this, data, role, 'actionSheetLeave', iosLeaveAnimation$5, mdLeaveAnimation$5);
|
|
9792
10348
|
if (dismissed) {
|
|
9793
10349
|
this.delegateController.removeViewFromDom();
|
|
9794
10350
|
}
|
|
@@ -9957,6 +10513,10 @@ class ActionSheet {
|
|
|
9957
10513
|
this.gesture = undefined;
|
|
9958
10514
|
}
|
|
9959
10515
|
this.triggerController.removeClickListener();
|
|
10516
|
+
// Clean up aria-hidden if removed without dismiss() being called
|
|
10517
|
+
if (this.presented) {
|
|
10518
|
+
cleanupRootFocusTrapAccessibility();
|
|
10519
|
+
}
|
|
9960
10520
|
}
|
|
9961
10521
|
componentWillLoad() {
|
|
9962
10522
|
var _a;
|
|
@@ -10045,12 +10605,26 @@ class ActionSheet {
|
|
|
10045
10605
|
if (isRadio) {
|
|
10046
10606
|
htmlAttrs['aria-checked'] = isActiveRadio ? 'true' : 'false';
|
|
10047
10607
|
}
|
|
10048
|
-
|
|
10608
|
+
/**
|
|
10609
|
+
* Cast to `SelectActionSheetButton` to access rich content
|
|
10610
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
10611
|
+
* that are passed through from `ion-select` but not
|
|
10612
|
+
* part of the public `ActionSheetButton` interface.
|
|
10613
|
+
*/
|
|
10614
|
+
const richButton = b;
|
|
10615
|
+
const optionLabelOptions = {
|
|
10616
|
+
id: buttonId,
|
|
10617
|
+
label: richButton.text,
|
|
10618
|
+
startContent: richButton.startContent,
|
|
10619
|
+
endContent: richButton.endContent,
|
|
10620
|
+
description: richButton.description,
|
|
10621
|
+
};
|
|
10622
|
+
return (hAsync("button", Object.assign({}, htmlAttrs, { role: isRadio ? 'radio' : undefined, type: "button", id: buttonId, class: Object.assign(Object.assign({}, buttonClass$2(b)), (isRadio && { 'action-sheet-selected': isActiveRadio })), onClick: () => {
|
|
10049
10623
|
if (isRadio) {
|
|
10050
10624
|
this.selectRadioButton(b);
|
|
10051
10625
|
}
|
|
10052
10626
|
this.buttonClick(b);
|
|
10053
|
-
}, disabled: b.disabled, tabIndex: tabIndex }), hAsync("span", { class: "action-sheet-button-inner" }, b.icon && hAsync("ion-icon", { icon: b.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" }),
|
|
10627
|
+
}, disabled: b.disabled, tabIndex: tabIndex }), hAsync("span", { class: "action-sheet-button-inner" }, b.icon && hAsync("ion-icon", { icon: b.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" }), renderOptionLabel(optionLabelOptions, 'action-sheet-button-label', true)), mode === 'md' && hAsync("ion-ripple-effect", null)));
|
|
10054
10628
|
});
|
|
10055
10629
|
}
|
|
10056
10630
|
render() {
|
|
@@ -10060,12 +10634,12 @@ class ActionSheet {
|
|
|
10060
10634
|
const cancelButton = allButtons.find((b) => b.role === 'cancel');
|
|
10061
10635
|
const buttons = allButtons.filter((b) => b.role !== 'cancel');
|
|
10062
10636
|
const headerID = `action-sheet-${overlayIndex}-header`;
|
|
10063
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
10637
|
+
return (hAsync(Host, Object.assign({ key: '7685831da9a78b73473246a2cea95cefa79a53c3', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
|
|
10064
10638
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
10065
|
-
}, 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", { key: '
|
|
10639
|
+
}, 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", { key: 'c70f00e401cac99b89412d1adb867f35bc855d57', tappable: this.backdropDismiss }), hAsync("div", { key: '3332893ce3098f1435875480b1269b2821d41660', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: 'eb406b0a9e303d6f94c5c7aa99c6f4c089bfbd41', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, hAsync("div", { key: '92ec855379f10e1e0bfce6ff68b45d3cda0c137c', class: "action-sheet-container" }, hAsync("div", { key: 'bc88a396d75396f574961471bf7e6c4edb513353', class: "action-sheet-group", ref: (el) => (this.groupEl = el), role: hasRadioButtons ? 'radiogroup' : undefined }, header !== undefined && (hAsync("div", { key: '33329e0193818888bdcaa443ff5ea301802e0787', id: headerID, class: {
|
|
10066
10640
|
'action-sheet-title': true,
|
|
10067
10641
|
'action-sheet-has-sub-title': this.subHeader !== undefined,
|
|
10068
|
-
} }, header, this.subHeader && hAsync("div", { key: '
|
|
10642
|
+
} }, header, this.subHeader && hAsync("div", { key: '92ac5a9217a12b7417f7aca9c4fdb7bf6b051364', class: "action-sheet-sub-title" }, this.subHeader))), this.renderActionSheetButtons(buttons)), cancelButton && (hAsync("div", { key: '020463b830fa48fc3ae647ea64f2aaa4d0969305', class: "action-sheet-group action-sheet-group-cancel" }, hAsync("button", Object.assign({ key: 'cefa9c70a2233f6652a81b1a2eae6e717712144d' }, cancelButton.htmlAttributes, { type: "button", class: buttonClass$2(cancelButton), onClick: () => this.buttonClick(cancelButton) }), hAsync("span", { key: '56d7e2f8bfb3644e4476895164d334445fda9b2f', class: "action-sheet-button-inner" }, cancelButton.icon && (hAsync("ion-icon", { key: '6a4a49254ec5cd96f4e0dce9447f90d8cac81913', icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), mode === 'md' && hAsync("ion-ripple-effect", { key: '7d3c6e8d70b0922ea0f75520856285ce1005c891' })))))), hAsync("div", { key: '958fc43e603c6a7f5d1e649d3326fce0f163b5d0', tabindex: "0", "aria-hidden": "true" })));
|
|
10069
10643
|
}
|
|
10070
10644
|
get el() { return getElement(this); }
|
|
10071
10645
|
static get watchers() { return {
|
|
@@ -10114,178 +10688,59 @@ class ActionSheet {
|
|
|
10114
10688
|
"$attrsToReflect$": []
|
|
10115
10689
|
}; }
|
|
10116
10690
|
}
|
|
10117
|
-
const buttonClass$
|
|
10691
|
+
const buttonClass$2 = (button) => {
|
|
10118
10692
|
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));
|
|
10119
10693
|
};
|
|
10120
10694
|
|
|
10121
10695
|
const ENABLE_HTML_CONTENT_DEFAULT = false;
|
|
10122
10696
|
|
|
10697
|
+
// TODO(FW-6886, FW-6892, FW-6891): Remove this file in favor of the Modular Ionic component config. Each overlay will be able to select its own defaults for label placement and justify based on the interface and mode, so this utility will no longer be necessary.
|
|
10123
10698
|
/**
|
|
10124
|
-
*
|
|
10125
|
-
*
|
|
10699
|
+
* Returns the default `labelPlacement` for a radio or checkbox option
|
|
10700
|
+
* rendered inside an overlay. Defaults follow each mode's established
|
|
10701
|
+
* option-row layout:
|
|
10702
|
+
* - `ios`: `"start"` for radio in `alert` and `popover`. The `modal`
|
|
10703
|
+
* interface flips iOS radio back to `"end"`. Checkbox is always
|
|
10704
|
+
* `"end"` on iOS.
|
|
10705
|
+
* - everything else (e.g. `md`): `"end"`.
|
|
10706
|
+
*
|
|
10707
|
+
* `interfaceType` is optional; only `"modal"` changes the result, so
|
|
10708
|
+
* callers that aren't a modal can omit it.
|
|
10709
|
+
*
|
|
10710
|
+
* Used by `select-popover` and `select-modal` as the fallback when an
|
|
10711
|
+
* option doesn't explicitly set `labelPlacement`.
|
|
10126
10712
|
*/
|
|
10127
|
-
const
|
|
10128
|
-
|
|
10129
|
-
|
|
10130
|
-
return untrustedString.value;
|
|
10131
|
-
}
|
|
10132
|
-
if (!isSanitizerEnabled() || typeof untrustedString !== 'string' || untrustedString === '') {
|
|
10133
|
-
return untrustedString;
|
|
10134
|
-
}
|
|
10135
|
-
/**
|
|
10136
|
-
* onload is fired when appending to a document
|
|
10137
|
-
* fragment in Chrome. If a string
|
|
10138
|
-
* contains onload then we should not
|
|
10139
|
-
* attempt to add this to the fragment.
|
|
10140
|
-
*/
|
|
10141
|
-
if (untrustedString.includes('onload=')) {
|
|
10142
|
-
return '';
|
|
10143
|
-
}
|
|
10144
|
-
/**
|
|
10145
|
-
* Create a document fragment
|
|
10146
|
-
* separate from the main DOM,
|
|
10147
|
-
* create a div to do our work in
|
|
10148
|
-
*/
|
|
10149
|
-
const documentFragment = document.createDocumentFragment();
|
|
10150
|
-
const workingDiv = document.createElement('div');
|
|
10151
|
-
documentFragment.appendChild(workingDiv);
|
|
10152
|
-
workingDiv.innerHTML = untrustedString;
|
|
10153
|
-
/**
|
|
10154
|
-
* Remove any elements
|
|
10155
|
-
* that are blocked
|
|
10156
|
-
*/
|
|
10157
|
-
blockedTags.forEach((blockedTag) => {
|
|
10158
|
-
const getElementsToRemove = documentFragment.querySelectorAll(blockedTag);
|
|
10159
|
-
for (let elementIndex = getElementsToRemove.length - 1; elementIndex >= 0; elementIndex--) {
|
|
10160
|
-
const element = getElementsToRemove[elementIndex];
|
|
10161
|
-
if (element.parentNode) {
|
|
10162
|
-
element.parentNode.removeChild(element);
|
|
10163
|
-
}
|
|
10164
|
-
else {
|
|
10165
|
-
documentFragment.removeChild(element);
|
|
10166
|
-
}
|
|
10167
|
-
/**
|
|
10168
|
-
* We still need to sanitize
|
|
10169
|
-
* the children of this element
|
|
10170
|
-
* as they are left behind
|
|
10171
|
-
*/
|
|
10172
|
-
const childElements = getElementChildren(element);
|
|
10173
|
-
/* eslint-disable-next-line */
|
|
10174
|
-
for (let childIndex = 0; childIndex < childElements.length; childIndex++) {
|
|
10175
|
-
sanitizeElement(childElements[childIndex]);
|
|
10176
|
-
}
|
|
10177
|
-
}
|
|
10178
|
-
});
|
|
10179
|
-
/**
|
|
10180
|
-
* Go through remaining elements and remove
|
|
10181
|
-
* non-allowed attribs
|
|
10182
|
-
*/
|
|
10183
|
-
// IE does not support .children on document fragments, only .childNodes
|
|
10184
|
-
const dfChildren = getElementChildren(documentFragment);
|
|
10185
|
-
/* eslint-disable-next-line */
|
|
10186
|
-
for (let childIndex = 0; childIndex < dfChildren.length; childIndex++) {
|
|
10187
|
-
sanitizeElement(dfChildren[childIndex]);
|
|
10188
|
-
}
|
|
10189
|
-
// Append document fragment to div
|
|
10190
|
-
const fragmentDiv = document.createElement('div');
|
|
10191
|
-
fragmentDiv.appendChild(documentFragment);
|
|
10192
|
-
// First child is always the div we did our work in
|
|
10193
|
-
const getInnerDiv = fragmentDiv.querySelector('div');
|
|
10194
|
-
return getInnerDiv !== null ? getInnerDiv.innerHTML : fragmentDiv.innerHTML;
|
|
10195
|
-
}
|
|
10196
|
-
catch (err) {
|
|
10197
|
-
printIonError('sanitizeDOMString', err);
|
|
10198
|
-
return '';
|
|
10199
|
-
}
|
|
10200
|
-
};
|
|
10201
|
-
/**
|
|
10202
|
-
* Clean up current element based on allowed attributes
|
|
10203
|
-
* and then recursively dig down into any child elements to
|
|
10204
|
-
* clean those up as well
|
|
10205
|
-
*/
|
|
10206
|
-
// TODO(FW-2832): type (using Element triggers other type errors as well)
|
|
10207
|
-
const sanitizeElement = (element) => {
|
|
10208
|
-
// IE uses childNodes, so ignore nodes that are not elements
|
|
10209
|
-
if (element.nodeType && element.nodeType !== 1) {
|
|
10210
|
-
return;
|
|
10211
|
-
}
|
|
10212
|
-
/**
|
|
10213
|
-
* If attributes is not a NamedNodeMap
|
|
10214
|
-
* then we should remove the element entirely.
|
|
10215
|
-
* This helps avoid DOM Clobbering attacks where
|
|
10216
|
-
* attributes is overridden.
|
|
10217
|
-
*/
|
|
10218
|
-
if (typeof NamedNodeMap !== 'undefined' && !(element.attributes instanceof NamedNodeMap)) {
|
|
10219
|
-
element.remove();
|
|
10220
|
-
return;
|
|
10221
|
-
}
|
|
10222
|
-
for (let i = element.attributes.length - 1; i >= 0; i--) {
|
|
10223
|
-
const attribute = element.attributes.item(i);
|
|
10224
|
-
const attributeName = attribute.name;
|
|
10225
|
-
// remove non-allowed attribs
|
|
10226
|
-
if (!allowedAttributes.includes(attributeName.toLowerCase())) {
|
|
10227
|
-
element.removeAttribute(attributeName);
|
|
10228
|
-
continue;
|
|
10229
|
-
}
|
|
10230
|
-
// clean up any allowed attribs
|
|
10231
|
-
// that attempt to do any JS funny-business
|
|
10232
|
-
const attributeValue = attribute.value;
|
|
10233
|
-
/**
|
|
10234
|
-
* We also need to check the property value
|
|
10235
|
-
* as javascript: can allow special characters
|
|
10236
|
-
* such as 	 and still be valid (i.e. java	script)
|
|
10237
|
-
*/
|
|
10238
|
-
const propertyValue = element[attributeName];
|
|
10239
|
-
/* eslint-disable */
|
|
10240
|
-
if ((attributeValue != null && attributeValue.toLowerCase().includes('javascript:')) ||
|
|
10241
|
-
(propertyValue != null && propertyValue.toLowerCase().includes('javascript:'))) {
|
|
10242
|
-
element.removeAttribute(attributeName);
|
|
10243
|
-
}
|
|
10244
|
-
/* eslint-enable */
|
|
10245
|
-
}
|
|
10246
|
-
/**
|
|
10247
|
-
* Sanitize any nested children
|
|
10248
|
-
*/
|
|
10249
|
-
const childElements = getElementChildren(element);
|
|
10250
|
-
/* eslint-disable-next-line */
|
|
10251
|
-
for (let i = 0; i < childElements.length; i++) {
|
|
10252
|
-
sanitizeElement(childElements[i]);
|
|
10713
|
+
const getOverlayLabelPlacement = (mode, control, interfaceType) => {
|
|
10714
|
+
if (mode === 'ios' && control === 'radio' && interfaceType !== 'modal') {
|
|
10715
|
+
return 'start';
|
|
10253
10716
|
}
|
|
10717
|
+
return 'end';
|
|
10254
10718
|
};
|
|
10255
10719
|
/**
|
|
10256
|
-
*
|
|
10257
|
-
*
|
|
10720
|
+
* Returns the default `justify` for a radio or checkbox option rendered
|
|
10721
|
+
* inside an overlay. Defaults follow each mode's option-row layout:
|
|
10722
|
+
* - `ios`: `"space-between"` for radio in `alert` and `popover`. The
|
|
10723
|
+
* `modal` interface falls back to `"start"`. Checkbox is always `"start"`
|
|
10724
|
+
* on iOS.
|
|
10725
|
+
* - everything else (e.g. `md`): `"start"`.
|
|
10726
|
+
*
|
|
10727
|
+
* `interfaceType` is optional; only `"modal"` changes the result, so
|
|
10728
|
+
* callers that aren't a modal can omit it.
|
|
10729
|
+
*
|
|
10730
|
+
* Used by `select-popover` and `select-modal` as the fallback when an
|
|
10731
|
+
* option doesn't explicitly set `justify`.
|
|
10258
10732
|
*/
|
|
10259
|
-
|
|
10260
|
-
|
|
10261
|
-
|
|
10262
|
-
};
|
|
10263
|
-
const isSanitizerEnabled = () => {
|
|
10264
|
-
var _a;
|
|
10265
|
-
const win = window;
|
|
10266
|
-
const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config;
|
|
10267
|
-
if (config) {
|
|
10268
|
-
if (config.get) {
|
|
10269
|
-
return config.get('sanitizerEnabled', true);
|
|
10270
|
-
}
|
|
10271
|
-
else {
|
|
10272
|
-
return config.sanitizerEnabled === true || config.sanitizerEnabled === undefined;
|
|
10273
|
-
}
|
|
10733
|
+
const getOverlayLabelJustify = (mode, control, interfaceType) => {
|
|
10734
|
+
if (mode === 'ios' && control === 'radio' && interfaceType !== 'modal') {
|
|
10735
|
+
return 'space-between';
|
|
10274
10736
|
}
|
|
10275
|
-
return
|
|
10737
|
+
return 'start';
|
|
10276
10738
|
};
|
|
10277
|
-
const allowedAttributes = ['class', 'id', 'href', 'src', 'name', 'slot'];
|
|
10278
|
-
const blockedTags = ['script', 'style', 'iframe', 'meta', 'link', 'object', 'embed'];
|
|
10279
|
-
class IonicSafeString {
|
|
10280
|
-
constructor(value) {
|
|
10281
|
-
this.value = value;
|
|
10282
|
-
}
|
|
10283
|
-
}
|
|
10284
10739
|
|
|
10285
10740
|
/**
|
|
10286
10741
|
* iOS Alert Enter Animation
|
|
10287
10742
|
*/
|
|
10288
|
-
const iosEnterAnimation$
|
|
10743
|
+
const iosEnterAnimation$4 = (baseEl) => {
|
|
10289
10744
|
const baseAnimation = createAnimation();
|
|
10290
10745
|
const backdropAnimation = createAnimation();
|
|
10291
10746
|
const wrapperAnimation = createAnimation();
|
|
@@ -10310,7 +10765,7 @@ const iosEnterAnimation$5 = (baseEl) => {
|
|
|
10310
10765
|
/**
|
|
10311
10766
|
* iOS Alert Leave Animation
|
|
10312
10767
|
*/
|
|
10313
|
-
const iosLeaveAnimation$
|
|
10768
|
+
const iosLeaveAnimation$4 = (baseEl) => {
|
|
10314
10769
|
const baseAnimation = createAnimation();
|
|
10315
10770
|
const backdropAnimation = createAnimation();
|
|
10316
10771
|
const wrapperAnimation = createAnimation();
|
|
@@ -10367,9 +10822,9 @@ const mdLeaveAnimation$4 = (baseEl) => {
|
|
|
10367
10822
|
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
10368
10823
|
};
|
|
10369
10824
|
|
|
10370
|
-
const alertIosCss = () => `.sc-ion-alert-ios-h{--min-width:250px;--width:auto;--min-height:auto;--height:auto;--max-height:90%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-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-alert-ios-h{display:none}.alert-top.sc-ion-alert-ios-h{padding-top:50px;-ms-flex-align:start;align-items:flex-start}.alert-wrapper.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-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);background:var(--background);contain:content;opacity:0;z-index:10}.alert-title.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-sub-title.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-weight:normal}.alert-message.sc-ion-alert-ios,.alert-input-group.sc-ion-alert-ios{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch;overflow-y:auto;overscroll-behavior-y:contain}.alert-checkbox-label.sc-ion-alert-ios,.alert-radio-label.sc-ion-alert-ios{overflow-wrap:anywhere}@media (any-pointer: coarse){.alert-checkbox-group.sc-ion-alert-ios::-webkit-scrollbar,.alert-radio-group.sc-ion-alert-ios::-webkit-scrollbar,.alert-message.sc-ion-alert-ios::-webkit-scrollbar{display:none}}.alert-input.sc-ion-alert-ios{padding-left:0;padding-right:0;padding-top:10px;padding-bottom:10px;width:100%;border:0;background:inherit;font:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.alert-button-group.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;width:100%}.alert-button-group-vertical.sc-ion-alert-ios{-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.alert-button.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;border:0;font-size:0.875rem;line-height:1.25rem;z-index:0}.alert-button.ion-focused.sc-ion-alert-ios,.alert-tappable.ion-focused.sc-ion-alert-ios{background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.alert-button-inner.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-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%;min-height:inherit}.alert-input-disabled.sc-ion-alert-ios,.alert-checkbox-button-disabled.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios,.alert-radio-button-disabled.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios{cursor:default;opacity:0.5;pointer-events:none}.alert-tappable.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:-ms-flexbox;display:flex;width:100%;border:0;background:transparent;font-size:inherit;line-height:initial;text-align:start;-webkit-appearance:none;-moz-appearance:none;appearance:none;contain:content}.alert-button.sc-ion-alert-ios,.alert-checkbox.sc-ion-alert-ios,.alert-input.sc-ion-alert-ios,.alert-radio.sc-ion-alert-ios{outline:none}.alert-radio-icon.sc-ion-alert-ios,.alert-checkbox-icon.sc-ion-alert-ios,.alert-checkbox-inner.sc-ion-alert-ios{-webkit-box-sizing:border-box;box-sizing:border-box}textarea.alert-input.sc-ion-alert-ios{min-height:37px;resize:none}.sc-ion-alert-ios-h{--background:var(--ion-overlay-background-color, var(--ion-color-step-100, var(--ion-background-color-step-100, #f9f9f9)));--max-width:clamp(270px, 16.875rem, 324px);--backdrop-opacity:var(--ion-backdrop-opacity, 0.3);font-size:max(14px, 0.875rem)}.alert-wrapper.sc-ion-alert-ios{border-radius:13px;-webkit-box-shadow:none;box-shadow:none;overflow:hidden}.alert-button.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios{pointer-events:none}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.alert-translucent.sc-ion-alert-ios-h .alert-wrapper.sc-ion-alert-ios{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.9);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}.alert-head.sc-ion-alert-ios{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:12px;padding-bottom:7px;text-align:center}.alert-title.sc-ion-alert-ios{margin-top:8px;color:var(--ion-text-color, #000);font-size:max(17px, 1.0625rem);font-weight:600}.alert-sub-title.sc-ion-alert-ios{color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666));font-size:max(14px, 0.875rem)}.alert-message.sc-ion-alert-ios,.alert-input-group.sc-ion-alert-ios{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:21px;color:var(--ion-text-color, #000);font-size:max(13px, 0.8125rem);text-align:center}.alert-message.sc-ion-alert-ios{max-height:240px}.alert-message.sc-ion-alert-ios:empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:12px}.alert-input.sc-ion-alert-ios{border-radius:7px;margin-top:10px;-webkit-padding-start:7px;padding-inline-start:7px;-webkit-padding-end:7px;padding-inline-end:7px;padding-top:7px;padding-bottom:7px;border:0.55px solid var(--ion-color-step-250, var(--ion-background-color-step-250, #bfbfbf));background-color:var(--ion-background-color, #fff);-webkit-appearance:none;-moz-appearance:none;appearance:none;font-size:1rem}.alert-input.sc-ion-alert-ios::-webkit-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-moz-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios:-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-ms-clear{display:none}.alert-input.sc-ion-alert-ios::-webkit-date-and-time-value{height:18px}.alert-radio-group.sc-ion-alert-ios,.alert-checkbox-group.sc-ion-alert-ios{-ms-scroll-chaining:none;overscroll-behavior:contain;max-height:240px;border-top:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);overflow-y:auto;-webkit-overflow-scrolling:touch}.alert-tappable.sc-ion-alert-ios{min-height:44px}.alert-radio-label.sc-ion-alert-ios{-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;-ms-flex-order:0;order:0;color:var(--ion-text-color, #000)}[aria-checked=true].sc-ion-alert-ios .alert-radio-label.sc-ion-alert-ios{color:var(--ion-color-primary, #0054e9)}.alert-radio-icon.sc-ion-alert-ios{position:relative;-ms-flex-order:1;order:1;min-width:30px}[aria-checked=true].sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios{top:-7px;position:absolute;width:6px;height:12px;-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:2px;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios{inset-inline-start:7px}.alert-checkbox-label.sc-ion-alert-ios{-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;color:var(--ion-text-color, #000)}.alert-checkbox-icon.sc-ion-alert-ios{border-radius:50%;-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:6px;margin-inline-end:6px;margin-top:10px;margin-bottom:10px;position:relative;width:min(1.375rem, 55.836px);height:min(1.375rem, 55.836px);border-width:0.125rem;border-style:solid;border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));background-color:var(--ion-item-background, var(--ion-background-color, #fff));contain:strict}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-icon.sc-ion-alert-ios{border-color:var(--ion-color-primary, #0054e9);background-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios{top:calc(min(1.375rem, 55.836px) / 8);position:absolute;width:calc(min(1.375rem, 55.836px) / 6 + 1px);height:calc(min(1.375rem, 55.836px) * 0.5);-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:0.125rem;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-background-color, #fff)}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios{inset-inline-start:calc(min(1.375rem, 55.836px) / 3)}.alert-button-group.sc-ion-alert-ios{-webkit-margin-end:-0.55px;margin-inline-end:-0.55px;-ms-flex-wrap:wrap;flex-wrap:wrap}.alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios{border-right:none}[dir=rtl].sc-ion-alert-ios-h .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:none}[dir=rtl].sc-ion-alert-ios .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:none}@supports selector(:dir(rtl)){.alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child:dir(rtl){border-right:none}}.alert-button.sc-ion-alert-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;border-radius:0;-ms-flex:1 1 auto;flex:1 1 auto;min-width:50%;height:max(44px, 2.75rem);border-top:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);background-color:transparent;color:var(--ion-color-primary, #0054e9);font-size:max(17px, 1.0625rem);overflow:hidden}[dir=rtl].sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:first-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:first-child{border-right:0}[dir=rtl].sc-ion-alert-ios .alert-button.sc-ion-alert-ios:first-child{border-right:0}@supports selector(:dir(rtl)){.alert-button.sc-ion-alert-ios:first-child:dir(rtl){border-right:0}}.alert-button.sc-ion-alert-ios:last-child{border-right:0;font-weight:bold}[dir=rtl].sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:last-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:last-child{border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}[dir=rtl].sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}@supports selector(:dir(rtl)){.alert-button.sc-ion-alert-ios:last-child:dir(rtl){border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}}.alert-button.ion-activated.sc-ion-alert-ios{background-color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.1)}.alert-button-role-destructive.sc-ion-alert-ios,.alert-button-role-destructive.ion-activated.sc-ion-alert-ios,.alert-button-role-destructive.ion-focused.sc-ion-alert-ios{color:var(--ion-color-danger, #c5000f)}`;
|
|
10825
|
+
const alertIosCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-alert-ios,.alert-radio-label-has-rich-content.sc-ion-alert-ios,.alert-checkbox-label-has-rich-content.sc-ion-alert-ios,.select-option-label-has-rich-content.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:16px}.action-sheet-button-label-has-rich-content.sc-ion-alert-ios,.alert-radio-label-has-rich-content.sc-ion-alert-ios,.alert-checkbox-label-has-rich-content.sc-ion-alert-ios,.select-option-content.sc-ion-alert-ios{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-alert-ios,.alert-checkbox-label-text.sc-ion-alert-ios,.alert-radio-label-text.sc-ion-alert-ios,.select-option-label-text.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-alert-ios{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}.select-option-label.sc-ion-alert-ios:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-alert-ios::part(label),ion-radio.select-option-has-rich-content.sc-ion-alert-ios [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-alert-ios::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-alert-ios [part~="label"],.select-option-content.sc-ion-alert-ios{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-alert-ios>ion-avatar.sc-ion-alert-ios,.select-option-start.sc-ion-alert-ios>ion-img.sc-ion-alert-ios,.select-option-start.sc-ion-alert-ios>ion-thumbnail.sc-ion-alert-ios,.select-option-start.sc-ion-alert-ios>img.sc-ion-alert-ios,.select-option-start.sc-ion-alert-ios>svg.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios>ion-avatar.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios>ion-img.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios>ion-thumbnail.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios>img.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios>svg.sc-ion-alert-ios{width:44px;height:44px}.select-option-start.sc-ion-alert-ios>ion-icon.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios>ion-icon.sc-ion-alert-ios{width:28px;height:28px}.action-sheet-button-label-text.sc-ion-alert-ios{-ms-flex-pack:center;justify-content:center}.select-option-has-rich-content.sc-ion-alert-ios{-webkit-padding-end:16px;padding-inline-end:16px}.sc-ion-alert-ios-h{--min-width:250px;--width:auto;--min-height:auto;--height:auto;--max-height:90%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-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-alert-ios-h{display:none}.alert-top.sc-ion-alert-ios-h{padding-top:50px;-ms-flex-align:start;align-items:flex-start}.alert-wrapper.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-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);background:var(--background);contain:content;opacity:0;z-index:10}.alert-title.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-sub-title.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-weight:normal}.alert-message.sc-ion-alert-ios,.alert-input-group.sc-ion-alert-ios{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch;overflow-y:auto;overscroll-behavior-y:contain}.alert-checkbox-label.sc-ion-alert-ios,.alert-radio-label.sc-ion-alert-ios{overflow-wrap:anywhere}@media (any-pointer: coarse){.alert-checkbox-group.sc-ion-alert-ios::-webkit-scrollbar,.alert-radio-group.sc-ion-alert-ios::-webkit-scrollbar,.alert-message.sc-ion-alert-ios::-webkit-scrollbar{display:none}}.alert-input.sc-ion-alert-ios{padding-left:0;padding-right:0;padding-top:10px;padding-bottom:10px;width:100%;border:0;background:inherit;font:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.alert-button-group.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;width:100%}.alert-button-group-vertical.sc-ion-alert-ios{-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.alert-button.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;border:0;font-size:0.875rem;line-height:1.25rem;z-index:0}.alert-button.ion-focused.sc-ion-alert-ios,.alert-tappable.ion-focused.sc-ion-alert-ios{background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.alert-button-inner.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-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%;min-height:inherit}.radio-label-placement-start.sc-ion-alert-ios,.checkbox-label-placement-start.sc-ion-alert-ios{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.radio-label-placement-end.sc-ion-alert-ios,.checkbox-label-placement-end.sc-ion-alert-ios{-ms-flex-direction:row;flex-direction:row}.radio-justify-start.sc-ion-alert-ios,.checkbox-justify-start.sc-ion-alert-ios{-ms-flex-pack:start;justify-content:start}.radio-justify-end.sc-ion-alert-ios,.checkbox-justify-end.sc-ion-alert-ios{-ms-flex-pack:end;justify-content:end}.radio-justify-space-between.sc-ion-alert-ios,.checkbox-justify-space-between.sc-ion-alert-ios{-ms-flex-pack:justify;justify-content:space-between}.alert-input-disabled.sc-ion-alert-ios,.alert-checkbox-button-disabled.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios,.alert-radio-button-disabled.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios{cursor:default;opacity:0.5;pointer-events:none}.alert-tappable.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:-ms-flexbox;display:flex;width:100%;border:0;background:transparent;font-size:inherit;line-height:initial;text-align:start;-webkit-appearance:none;-moz-appearance:none;appearance:none;contain:content}.alert-button.sc-ion-alert-ios,.alert-checkbox.sc-ion-alert-ios,.alert-input.sc-ion-alert-ios,.alert-radio.sc-ion-alert-ios{outline:none}.alert-radio-icon.sc-ion-alert-ios,.alert-checkbox-icon.sc-ion-alert-ios,.alert-checkbox-inner.sc-ion-alert-ios{-webkit-box-sizing:border-box;box-sizing:border-box}textarea.alert-input.sc-ion-alert-ios{min-height:37px;resize:none}.sc-ion-alert-ios-h{--background:var(--ion-overlay-background-color, var(--ion-color-step-100, var(--ion-background-color-step-100, #f9f9f9)));--max-width:clamp(270px, 16.875rem, 324px);--backdrop-opacity:var(--ion-backdrop-opacity, 0.3);font-size:max(14px, 0.875rem)}.alert-wrapper.sc-ion-alert-ios{border-radius:13px;-webkit-box-shadow:none;box-shadow:none;overflow:hidden}.alert-button.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios{pointer-events:none}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.alert-translucent.sc-ion-alert-ios-h .alert-wrapper.sc-ion-alert-ios{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.9);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}.alert-head.sc-ion-alert-ios{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:12px;padding-bottom:7px;text-align:center}.alert-title.sc-ion-alert-ios{margin-top:8px;color:var(--ion-text-color, #000);font-size:max(17px, 1.0625rem);font-weight:600}.alert-sub-title.sc-ion-alert-ios{color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666));font-size:max(14px, 0.875rem)}.alert-message.sc-ion-alert-ios,.alert-input-group.sc-ion-alert-ios{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:21px;color:var(--ion-text-color, #000);font-size:max(13px, 0.8125rem);text-align:center}.alert-message.sc-ion-alert-ios{max-height:240px}.alert-message.sc-ion-alert-ios:empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:12px}.alert-input.sc-ion-alert-ios{border-radius:7px;margin-top:10px;-webkit-padding-start:7px;padding-inline-start:7px;-webkit-padding-end:7px;padding-inline-end:7px;padding-top:7px;padding-bottom:7px;border:0.55px solid var(--ion-color-step-250, var(--ion-background-color-step-250, #bfbfbf));background-color:var(--ion-background-color, #fff);-webkit-appearance:none;-moz-appearance:none;appearance:none;font-size:1rem}.alert-input.sc-ion-alert-ios::-webkit-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-moz-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios:-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-ms-clear{display:none}.alert-input.sc-ion-alert-ios::-webkit-date-and-time-value{height:18px}.alert-radio-group.sc-ion-alert-ios,.alert-checkbox-group.sc-ion-alert-ios{-ms-scroll-chaining:none;overscroll-behavior:contain;max-height:240px;border-top:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);overflow-y:auto;-webkit-overflow-scrolling:touch}.alert-tappable.sc-ion-alert-ios{min-height:44px}.alert-radio-label.sc-ion-alert-ios{-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px;padding-top:13px;padding-bottom:13px;color:var(--ion-text-color, #000)}[aria-checked=true].sc-ion-alert-ios .alert-radio-label.sc-ion-alert-ios{color:var(--ion-color-primary, #0054e9)}.alert-radio-icon.sc-ion-alert-ios{position:relative;-ms-flex-negative:0;flex-shrink:0;min-width:30px}[aria-checked=true].sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios{top:-7px;position:absolute;width:6px;height:12px;-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:2px;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-ios .radio-label-placement-end.sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios{inset-inline-end:7px}[aria-checked=true].sc-ion-alert-ios .radio-label-placement-start.sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios{inset-inline-start:7px}.alert-checkbox-label.sc-ion-alert-ios{-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px;padding-top:13px;padding-bottom:13px;color:var(--ion-text-color, #000)}.alert-checkbox-icon.sc-ion-alert-ios{border-radius:50%;margin-top:10px;margin-bottom:10px;position:relative;-ms-flex-negative:0;flex-shrink:0;width:min(1.375rem, 55.836px);height:min(1.375rem, 55.836px);border-width:0.125rem;border-style:solid;border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));background-color:var(--ion-item-background, var(--ion-background-color, #fff));contain:strict}.checkbox-label-placement-end.sc-ion-alert-ios .alert-checkbox-icon.sc-ion-alert-ios{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:6px;margin-inline-end:6px}.checkbox-label-placement-start.sc-ion-alert-ios .alert-checkbox-icon.sc-ion-alert-ios{-webkit-margin-start:6px;margin-inline-start:6px;-webkit-margin-end:16px;margin-inline-end:16px}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-icon.sc-ion-alert-ios{border-color:var(--ion-color-primary, #0054e9);background-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios{top:calc(min(1.375rem, 55.836px) / 8);position:absolute;width:calc(min(1.375rem, 55.836px) / 6 + 1px);height:calc(min(1.375rem, 55.836px) * 0.5);-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:0.125rem;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-background-color, #fff)}[aria-checked=true].sc-ion-alert-ios .checkbox-label-placement-end.sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios{inset-inline-start:calc(min(1.375rem, 55.836px) / 3)}[aria-checked=true].sc-ion-alert-ios .checkbox-label-placement-start.sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios{inset-inline-end:calc(min(1.375rem, 55.836px) / 3)}.alert-button-group.sc-ion-alert-ios{-webkit-margin-end:-0.55px;margin-inline-end:-0.55px;-ms-flex-wrap:wrap;flex-wrap:wrap}.alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios{border-right:none}[dir=rtl].sc-ion-alert-ios-h .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:none}[dir=rtl].sc-ion-alert-ios .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:none}@supports selector(:dir(rtl)){.alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child:dir(rtl){border-right:none}}.alert-button.sc-ion-alert-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;border-radius:0;-ms-flex:1 1 auto;flex:1 1 auto;min-width:50%;height:max(44px, 2.75rem);border-top:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);background-color:transparent;color:var(--ion-color-primary, #0054e9);font-size:max(17px, 1.0625rem);overflow:hidden}[dir=rtl].sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:first-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:first-child{border-right:0}[dir=rtl].sc-ion-alert-ios .alert-button.sc-ion-alert-ios:first-child{border-right:0}@supports selector(:dir(rtl)){.alert-button.sc-ion-alert-ios:first-child:dir(rtl){border-right:0}}.alert-button.sc-ion-alert-ios:last-child{border-right:0;font-weight:bold}[dir=rtl].sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:last-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:last-child{border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}[dir=rtl].sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}@supports selector(:dir(rtl)){.alert-button.sc-ion-alert-ios:last-child:dir(rtl){border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}}.alert-button.ion-activated.sc-ion-alert-ios{background-color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.1)}.alert-button-role-destructive.sc-ion-alert-ios,.alert-button-role-destructive.ion-activated.sc-ion-alert-ios,.alert-button-role-destructive.ion-focused.sc-ion-alert-ios{color:var(--ion-color-danger, #c5000f)}`;
|
|
10371
10826
|
|
|
10372
|
-
const alertMdCss = () => `.sc-ion-alert-md-h{--min-width:250px;--width:auto;--min-height:auto;--height:auto;--max-height:90%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-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-alert-md-h{display:none}.alert-top.sc-ion-alert-md-h{padding-top:50px;-ms-flex-align:start;align-items:flex-start}.alert-wrapper.sc-ion-alert-md{display:-ms-flexbox;display:flex;-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);background:var(--background);contain:content;opacity:0;z-index:10}.alert-title.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-sub-title.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-weight:normal}.alert-message.sc-ion-alert-md,.alert-input-group.sc-ion-alert-md{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch;overflow-y:auto;overscroll-behavior-y:contain}.alert-checkbox-label.sc-ion-alert-md,.alert-radio-label.sc-ion-alert-md{overflow-wrap:anywhere}@media (any-pointer: coarse){.alert-checkbox-group.sc-ion-alert-md::-webkit-scrollbar,.alert-radio-group.sc-ion-alert-md::-webkit-scrollbar,.alert-message.sc-ion-alert-md::-webkit-scrollbar{display:none}}.alert-input.sc-ion-alert-md{padding-left:0;padding-right:0;padding-top:10px;padding-bottom:10px;width:100%;border:0;background:inherit;font:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.alert-button-group.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;width:100%}.alert-button-group-vertical.sc-ion-alert-md{-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.alert-button.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;border:0;font-size:0.875rem;line-height:1.25rem;z-index:0}.alert-button.ion-focused.sc-ion-alert-md,.alert-tappable.ion-focused.sc-ion-alert-md{background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.alert-button-inner.sc-ion-alert-md{display:-ms-flexbox;display:flex;-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%;min-height:inherit}.alert-input-disabled.sc-ion-alert-md,.alert-checkbox-button-disabled.sc-ion-alert-md .alert-button-inner.sc-ion-alert-md,.alert-radio-button-disabled.sc-ion-alert-md .alert-button-inner.sc-ion-alert-md{cursor:default;opacity:0.5;pointer-events:none}.alert-tappable.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:-ms-flexbox;display:flex;width:100%;border:0;background:transparent;font-size:inherit;line-height:initial;text-align:start;-webkit-appearance:none;-moz-appearance:none;appearance:none;contain:content}.alert-button.sc-ion-alert-md,.alert-checkbox.sc-ion-alert-md,.alert-input.sc-ion-alert-md,.alert-radio.sc-ion-alert-md{outline:none}.alert-radio-icon.sc-ion-alert-md,.alert-checkbox-icon.sc-ion-alert-md,.alert-checkbox-inner.sc-ion-alert-md{-webkit-box-sizing:border-box;box-sizing:border-box}textarea.alert-input.sc-ion-alert-md{min-height:37px;resize:none}.sc-ion-alert-md-h{--background:var(--ion-overlay-background-color, var(--ion-background-color, #fff));--max-width:280px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.32);font-size:0.875rem}.alert-wrapper.sc-ion-alert-md{border-radius:4px;-webkit-box-shadow:0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12);box-shadow:0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12)}.alert-head.sc-ion-alert-md{-webkit-padding-start:23px;padding-inline-start:23px;-webkit-padding-end:23px;padding-inline-end:23px;padding-top:20px;padding-bottom:15px;text-align:start}.alert-title.sc-ion-alert-md{color:var(--ion-text-color, #000);font-size:1.25rem;font-weight:500}.alert-sub-title.sc-ion-alert-md{color:var(--ion-text-color, #000);font-size:1rem}.alert-message.sc-ion-alert-md,.alert-input-group.sc-ion-alert-md{-webkit-padding-start:24px;padding-inline-start:24px;-webkit-padding-end:24px;padding-inline-end:24px;padding-top:20px;padding-bottom:20px;color:var(--ion-color-step-550, var(--ion-text-color-step-450, #737373))}.alert-message.sc-ion-alert-md{font-size:1rem}@media screen and (max-width: 767px){.alert-message.sc-ion-alert-md{max-height:266px}}.alert-message.sc-ion-alert-md:empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-head.sc-ion-alert-md+.alert-message.sc-ion-alert-md{padding-top:0}.alert-input.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:5px;border-bottom:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));color:var(--ion-text-color, #000)}.alert-input.sc-ion-alert-md::-webkit-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-moz-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md:-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-ms-clear{display:none}.alert-input.sc-ion-alert-md:focus{margin-bottom:4px;border-bottom:2px solid var(--ion-color-primary, #0054e9)}.alert-radio-group.sc-ion-alert-md,.alert-checkbox-group.sc-ion-alert-md{position:relative;border-top:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));border-bottom:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));overflow:auto}@media screen and (max-width: 767px){.alert-radio-group.sc-ion-alert-md,.alert-checkbox-group.sc-ion-alert-md{max-height:266px}}.alert-tappable.sc-ion-alert-md{position:relative;min-height:48px}.alert-radio-label.sc-ion-alert-md{-webkit-padding-start:52px;padding-inline-start:52px;-webkit-padding-end:26px;padding-inline-end:26px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));font-size:1rem}.alert-radio-icon.sc-ion-alert-md{top:0;border-radius:50%;display:block;position:relative;width:20px;height:20px;border-width:2px;border-style:solid;border-color:var(--ion-color-step-550, var(--ion-background-color-step-550, #737373))}.alert-radio-icon.sc-ion-alert-md{inset-inline-start:26px}.alert-radio-inner.sc-ion-alert-md{top:3px;border-radius:50%;position:absolute;width:10px;height:10px;-webkit-transform:scale3d(0, 0, 0);transform:scale3d(0, 0, 0);-webkit-transition:-webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:-webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:transform 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);background-color:var(--ion-color-primary, #0054e9)}.alert-radio-inner.sc-ion-alert-md{inset-inline-start:3px}[aria-checked=true].sc-ion-alert-md .alert-radio-label.sc-ion-alert-md{color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626))}[aria-checked=true].sc-ion-alert-md .alert-radio-icon.sc-ion-alert-md{border-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-md .alert-radio-inner.sc-ion-alert-md{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}.alert-checkbox-label.sc-ion-alert-md{-webkit-padding-start:53px;padding-inline-start:53px;-webkit-padding-end:26px;padding-inline-end:26px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;width:calc(100% - 53px);color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));font-size:1rem}.alert-checkbox-icon.sc-ion-alert-md{top:0;border-radius:2px;position:relative;width:16px;height:16px;border-width:2px;border-style:solid;border-color:var(--ion-color-step-550, var(--ion-background-color-step-550, #737373));contain:strict}.alert-checkbox-icon.sc-ion-alert-md{inset-inline-start:26px}[aria-checked=true].sc-ion-alert-md .alert-checkbox-icon.sc-ion-alert-md{border-color:var(--ion-color-primary, #0054e9);background-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-md .alert-checkbox-inner.sc-ion-alert-md{top:0;position:absolute;width:6px;height:10px;-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:2px;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-color-primary-contrast, #fff)}[aria-checked=true].sc-ion-alert-md .alert-checkbox-inner.sc-ion-alert-md{inset-inline-start:3px}.alert-button-group.sc-ion-alert-md{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse;-ms-flex-pack:end;justify-content:flex-end}.alert-button.sc-ion-alert-md{border-radius:2px;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:8px;margin-inline-end:8px;margin-top:0;margin-bottom:0;-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:10px;padding-bottom:10px;position:relative;background-color:transparent;color:var(--ion-color-primary, #0054e9);font-weight:500;text-align:end;text-transform:uppercase;overflow:hidden}.alert-button-inner.sc-ion-alert-md{-ms-flex-pack:end;justify-content:flex-end}@media screen and (min-width: 768px){.sc-ion-alert-md-h{--max-width:min(100vw - 96px, 560px);--max-height:min(100vh - 96px, 560px)}}`;
|
|
10827
|
+
const alertMdCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-alert-md,.alert-radio-label-has-rich-content.sc-ion-alert-md,.alert-checkbox-label-has-rich-content.sc-ion-alert-md,.select-option-label-has-rich-content.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:16px}.action-sheet-button-label-has-rich-content.sc-ion-alert-md,.alert-radio-label-has-rich-content.sc-ion-alert-md,.alert-checkbox-label-has-rich-content.sc-ion-alert-md,.select-option-content.sc-ion-alert-md{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-alert-md,.alert-checkbox-label-text.sc-ion-alert-md,.alert-radio-label-text.sc-ion-alert-md,.select-option-label-text.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-alert-md,.select-option-end.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-alert-md{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}.select-option-label.sc-ion-alert-md:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-alert-md::part(label),ion-radio.select-option-has-rich-content.sc-ion-alert-md [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-alert-md::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-alert-md [part~="label"],.select-option-content.sc-ion-alert-md{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-alert-md>ion-avatar.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>ion-avatar.sc-ion-alert-md{width:40px;height:40px}.select-option-start.sc-ion-alert-md>ion-icon.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>ion-icon.sc-ion-alert-md{width:24px;height:24px}.select-option-start.sc-ion-alert-md>ion-img.sc-ion-alert-md,.select-option-start.sc-ion-alert-md>img.sc-ion-alert-md,.select-option-start.sc-ion-alert-md>svg.sc-ion-alert-md,.select-option-start.sc-ion-alert-md>ion-thumbnail.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>ion-img.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>img.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>svg.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>ion-thumbnail.sc-ion-alert-md{width:56px;height:56px}.select-option-start.sc-ion-alert-md>video.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>video.sc-ion-alert-md{width:114px;height:56px}.sc-ion-alert-md-h{--min-width:250px;--width:auto;--min-height:auto;--height:auto;--max-height:90%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-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-alert-md-h{display:none}.alert-top.sc-ion-alert-md-h{padding-top:50px;-ms-flex-align:start;align-items:flex-start}.alert-wrapper.sc-ion-alert-md{display:-ms-flexbox;display:flex;-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);background:var(--background);contain:content;opacity:0;z-index:10}.alert-title.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-sub-title.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-weight:normal}.alert-message.sc-ion-alert-md,.alert-input-group.sc-ion-alert-md{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch;overflow-y:auto;overscroll-behavior-y:contain}.alert-checkbox-label.sc-ion-alert-md,.alert-radio-label.sc-ion-alert-md{overflow-wrap:anywhere}@media (any-pointer: coarse){.alert-checkbox-group.sc-ion-alert-md::-webkit-scrollbar,.alert-radio-group.sc-ion-alert-md::-webkit-scrollbar,.alert-message.sc-ion-alert-md::-webkit-scrollbar{display:none}}.alert-input.sc-ion-alert-md{padding-left:0;padding-right:0;padding-top:10px;padding-bottom:10px;width:100%;border:0;background:inherit;font:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.alert-button-group.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;width:100%}.alert-button-group-vertical.sc-ion-alert-md{-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.alert-button.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;border:0;font-size:0.875rem;line-height:1.25rem;z-index:0}.alert-button.ion-focused.sc-ion-alert-md,.alert-tappable.ion-focused.sc-ion-alert-md{background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.alert-button-inner.sc-ion-alert-md{display:-ms-flexbox;display:flex;-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%;min-height:inherit}.radio-label-placement-start.sc-ion-alert-md,.checkbox-label-placement-start.sc-ion-alert-md{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.radio-label-placement-end.sc-ion-alert-md,.checkbox-label-placement-end.sc-ion-alert-md{-ms-flex-direction:row;flex-direction:row}.radio-justify-start.sc-ion-alert-md,.checkbox-justify-start.sc-ion-alert-md{-ms-flex-pack:start;justify-content:start}.radio-justify-end.sc-ion-alert-md,.checkbox-justify-end.sc-ion-alert-md{-ms-flex-pack:end;justify-content:end}.radio-justify-space-between.sc-ion-alert-md,.checkbox-justify-space-between.sc-ion-alert-md{-ms-flex-pack:justify;justify-content:space-between}.alert-input-disabled.sc-ion-alert-md,.alert-checkbox-button-disabled.sc-ion-alert-md .alert-button-inner.sc-ion-alert-md,.alert-radio-button-disabled.sc-ion-alert-md .alert-button-inner.sc-ion-alert-md{cursor:default;opacity:0.5;pointer-events:none}.alert-tappable.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:-ms-flexbox;display:flex;width:100%;border:0;background:transparent;font-size:inherit;line-height:initial;text-align:start;-webkit-appearance:none;-moz-appearance:none;appearance:none;contain:content}.alert-button.sc-ion-alert-md,.alert-checkbox.sc-ion-alert-md,.alert-input.sc-ion-alert-md,.alert-radio.sc-ion-alert-md{outline:none}.alert-radio-icon.sc-ion-alert-md,.alert-checkbox-icon.sc-ion-alert-md,.alert-checkbox-inner.sc-ion-alert-md{-webkit-box-sizing:border-box;box-sizing:border-box}textarea.alert-input.sc-ion-alert-md{min-height:37px;resize:none}.sc-ion-alert-md-h{--background:var(--ion-overlay-background-color, var(--ion-background-color, #fff));--max-width:280px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.32);font-size:0.875rem}.alert-wrapper.sc-ion-alert-md{border-radius:4px;-webkit-box-shadow:0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12);box-shadow:0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12)}.alert-head.sc-ion-alert-md{-webkit-padding-start:24px;padding-inline-start:24px;-webkit-padding-end:24px;padding-inline-end:24px;padding-top:20px;padding-bottom:15px;text-align:start}.alert-title.sc-ion-alert-md{color:var(--ion-text-color, #000);font-size:1.25rem;font-weight:500}.alert-sub-title.sc-ion-alert-md{color:var(--ion-text-color, #000);font-size:1rem}.alert-message.sc-ion-alert-md,.alert-input-group.sc-ion-alert-md{-webkit-padding-start:24px;padding-inline-start:24px;-webkit-padding-end:24px;padding-inline-end:24px;padding-top:20px;padding-bottom:20px;color:var(--ion-color-step-550, var(--ion-text-color-step-450, #737373))}.alert-message.sc-ion-alert-md{font-size:1rem}@media screen and (max-width: 767px){.alert-message.sc-ion-alert-md{max-height:266px}}.alert-message.sc-ion-alert-md:empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-head.sc-ion-alert-md+.alert-message.sc-ion-alert-md{padding-top:0}.alert-input.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:5px;border-bottom:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));color:var(--ion-text-color, #000)}.alert-input.sc-ion-alert-md::-webkit-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-moz-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md:-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-ms-clear{display:none}.alert-input.sc-ion-alert-md:focus{margin-bottom:4px;border-bottom:2px solid var(--ion-color-primary, #0054e9)}.alert-radio-group.sc-ion-alert-md,.alert-checkbox-group.sc-ion-alert-md{position:relative;border-top:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));border-bottom:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));overflow:auto}@media screen and (max-width: 767px){.alert-radio-group.sc-ion-alert-md,.alert-checkbox-group.sc-ion-alert-md{max-height:266px}}.alert-tappable.sc-ion-alert-md{position:relative;min-height:48px}.alert-radio-label.sc-ion-alert-md{padding-top:13px;padding-bottom:13px;max-width:calc(100% - 20px);color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));font-size:1rem}.radio-label-placement-end.sc-ion-alert-md .alert-radio-label.sc-ion-alert-md{-webkit-padding-start:56px;padding-inline-start:56px;-webkit-padding-end:24px;padding-inline-end:24px}.radio-label-placement-start.sc-ion-alert-md .alert-radio-label.sc-ion-alert-md{-webkit-padding-start:24px;padding-inline-start:24px;-webkit-padding-end:56px;padding-inline-end:56px}.alert-radio-icon.sc-ion-alert-md{top:0;border-radius:50%;display:block;position:relative;-ms-flex-negative:0;flex-shrink:0;width:20px;height:20px;border-width:2px;border-style:solid;border-color:var(--ion-color-step-550, var(--ion-background-color-step-550, #737373))}.radio-label-placement-end.sc-ion-alert-md .alert-radio-icon.sc-ion-alert-md{inset-inline-start:24px}.radio-label-placement-start.sc-ion-alert-md .alert-radio-icon.sc-ion-alert-md{inset-inline-end:24px}.alert-radio-inner.sc-ion-alert-md{top:3px;border-radius:50%;position:absolute;width:10px;height:10px;-webkit-transform:scale3d(0, 0, 0);transform:scale3d(0, 0, 0);-webkit-transition:-webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:-webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:transform 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);background-color:var(--ion-color-primary, #0054e9)}.alert-radio-inner.sc-ion-alert-md{inset-inline-start:3px}[aria-checked=true].sc-ion-alert-md .alert-radio-label.sc-ion-alert-md{color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626))}[aria-checked=true].sc-ion-alert-md .alert-radio-icon.sc-ion-alert-md{border-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-md .alert-radio-inner.sc-ion-alert-md{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}.alert-checkbox-label.sc-ion-alert-md{padding-top:13px;padding-bottom:13px;max-width:calc(100% - 16px);color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));font-size:1rem}.checkbox-label-placement-end.sc-ion-alert-md .alert-checkbox-label.sc-ion-alert-md{-webkit-padding-start:56px;padding-inline-start:56px;-webkit-padding-end:24px;padding-inline-end:24px}.checkbox-label-placement-start.sc-ion-alert-md .alert-checkbox-label.sc-ion-alert-md{-webkit-padding-start:24px;padding-inline-start:24px;-webkit-padding-end:56px;padding-inline-end:56px}.alert-checkbox-icon.sc-ion-alert-md{top:0;border-radius:2px;position:relative;-ms-flex-negative:0;flex-shrink:0;width:16px;height:16px;border-width:2px;border-style:solid;border-color:var(--ion-color-step-550, var(--ion-background-color-step-550, #737373));contain:strict}.checkbox-label-placement-end.sc-ion-alert-md .alert-checkbox-icon.sc-ion-alert-md{inset-inline-start:24px}.checkbox-label-placement-start.sc-ion-alert-md .alert-checkbox-icon.sc-ion-alert-md{inset-inline-end:24px}[aria-checked=true].sc-ion-alert-md .alert-checkbox-icon.sc-ion-alert-md{border-color:var(--ion-color-primary, #0054e9);background-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-md .alert-checkbox-inner.sc-ion-alert-md{top:0;position:absolute;width:6px;height:10px;-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:2px;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-color-primary-contrast, #fff)}[aria-checked=true].sc-ion-alert-md .alert-checkbox-inner.sc-ion-alert-md{inset-inline-start:3px}.alert-button-group.sc-ion-alert-md{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse;-ms-flex-pack:end;justify-content:flex-end}.alert-button.sc-ion-alert-md{border-radius:2px;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:8px;margin-inline-end:8px;margin-top:0;margin-bottom:0;-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:10px;padding-bottom:10px;position:relative;background-color:transparent;color:var(--ion-color-primary, #0054e9);font-weight:500;text-align:end;text-transform:uppercase;overflow:hidden}.alert-button-group.sc-ion-alert-md .alert-button-inner.sc-ion-alert-md{-ms-flex-pack:end;justify-content:flex-end}@media screen and (min-width: 768px){.sc-ion-alert-md-h{--max-width:min(100vw - 96px, 560px);--max-height:min(100vh - 96px, 560px)}}`;
|
|
10373
10828
|
|
|
10374
10829
|
// TODO(FW-2832): types
|
|
10375
10830
|
/**
|
|
@@ -10543,22 +10998,7 @@ class Alert {
|
|
|
10543
10998
|
this.inputType = inputTypes.values().next().value;
|
|
10544
10999
|
this.processedInputs = inputs.map((i, index) => {
|
|
10545
11000
|
var _a;
|
|
10546
|
-
return ({
|
|
10547
|
-
type: i.type || 'text',
|
|
10548
|
-
name: i.name || `${index}`,
|
|
10549
|
-
placeholder: i.placeholder || '',
|
|
10550
|
-
value: i.value,
|
|
10551
|
-
label: i.label,
|
|
10552
|
-
checked: !!i.checked,
|
|
10553
|
-
disabled: !!i.disabled,
|
|
10554
|
-
id: i.id || `alert-input-${this.overlayIndex}-${index}`,
|
|
10555
|
-
handler: i.handler,
|
|
10556
|
-
min: i.min,
|
|
10557
|
-
max: i.max,
|
|
10558
|
-
cssClass: (_a = i.cssClass) !== null && _a !== void 0 ? _a : '',
|
|
10559
|
-
attributes: i.attributes || {},
|
|
10560
|
-
tabindex: i.type === 'radio' && i !== focusable ? -1 : 0,
|
|
10561
|
-
});
|
|
11001
|
+
return Object.assign(Object.assign({}, i), { type: i.type || 'text', name: i.name || `${index}`, placeholder: i.placeholder || '', checked: !!i.checked, disabled: !!i.disabled, id: i.id || `alert-input-${this.overlayIndex}-${index}`, cssClass: (_a = i.cssClass) !== null && _a !== void 0 ? _a : '', attributes: i.attributes || {}, tabindex: i.type === 'radio' && i !== focusable ? -1 : 0 });
|
|
10562
11002
|
});
|
|
10563
11003
|
}
|
|
10564
11004
|
connectedCallback() {
|
|
@@ -10586,6 +11026,10 @@ class Alert {
|
|
|
10586
11026
|
this.gesture.destroy();
|
|
10587
11027
|
this.gesture = undefined;
|
|
10588
11028
|
}
|
|
11029
|
+
// Clean up aria-hidden if removed without dismiss() being called
|
|
11030
|
+
if (this.presented) {
|
|
11031
|
+
cleanupRootFocusTrapAccessibility();
|
|
11032
|
+
}
|
|
10589
11033
|
(_a = this.buttonGroupResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
10590
11034
|
this.buttonGroupResizeObserver = undefined;
|
|
10591
11035
|
}
|
|
@@ -10625,7 +11069,7 @@ class Alert {
|
|
|
10625
11069
|
async present() {
|
|
10626
11070
|
const unlock = await this.lockController.lock();
|
|
10627
11071
|
await this.delegateController.attachViewToDom();
|
|
10628
|
-
await present(this, 'alertEnter', iosEnterAnimation$
|
|
11072
|
+
await present(this, 'alertEnter', iosEnterAnimation$4, mdEnterAnimation$4).then(() => {
|
|
10629
11073
|
var _a, _b;
|
|
10630
11074
|
/**
|
|
10631
11075
|
* Check if alert has only one button and no inputs.
|
|
@@ -10656,7 +11100,7 @@ class Alert {
|
|
|
10656
11100
|
*/
|
|
10657
11101
|
async dismiss(data, role) {
|
|
10658
11102
|
const unlock = await this.lockController.lock();
|
|
10659
|
-
const dismissed = await dismiss(this, data, role, 'alertLeave', iosLeaveAnimation$
|
|
11103
|
+
const dismissed = await dismiss(this, data, role, 'alertLeave', iosLeaveAnimation$4, mdLeaveAnimation$4);
|
|
10660
11104
|
if (dismissed) {
|
|
10661
11105
|
this.delegateController.removeViewFromDom();
|
|
10662
11106
|
}
|
|
@@ -10754,14 +11198,61 @@ class Alert {
|
|
|
10754
11198
|
if (inputs.length === 0) {
|
|
10755
11199
|
return null;
|
|
10756
11200
|
}
|
|
10757
|
-
return (hAsync("div", { class: "alert-checkbox-group" }, inputs.map((i) =>
|
|
11201
|
+
return (hAsync("div", { class: "alert-checkbox-group" }, inputs.map((i) => {
|
|
11202
|
+
var _a, _b;
|
|
11203
|
+
/**
|
|
11204
|
+
* Cast to `SelectAlertInput` to access rich content
|
|
11205
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
11206
|
+
* that are passed through from `ion-select` but not
|
|
11207
|
+
* part of the public `AlertInput` interface.
|
|
11208
|
+
*/
|
|
11209
|
+
const richInput = i;
|
|
11210
|
+
const optionLabelOptions = {
|
|
11211
|
+
id: richInput.id,
|
|
11212
|
+
label: richInput.label,
|
|
11213
|
+
startContent: richInput.startContent,
|
|
11214
|
+
endContent: richInput.endContent,
|
|
11215
|
+
description: richInput.description,
|
|
11216
|
+
};
|
|
11217
|
+
const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'checkbox');
|
|
11218
|
+
const defaultJustify = getOverlayLabelJustify(mode, 'checkbox');
|
|
11219
|
+
return (hAsync("button", { type: "button", onClick: () => this.cbClick(i), "aria-checked": `${i.checked}`, id: i.id, disabled: i.disabled, tabIndex: i.tabindex, role: "checkbox", class: Object.assign(Object.assign({}, getClassMap(i.cssClass)), { 'alert-tappable': true, 'alert-checkbox': true, 'alert-checkbox-button': true, 'ion-focusable': !i.disabled, 'ion-activatable': !i.disabled, 'alert-checkbox-button-disabled': i.disabled || false }) }, hAsync("div", { class: {
|
|
11220
|
+
'alert-button-inner': true,
|
|
11221
|
+
[`checkbox-label-placement-${(_a = richInput.labelPlacement) !== null && _a !== void 0 ? _a : defaultLabelPlacement}`]: true,
|
|
11222
|
+
[`checkbox-justify-${(_b = richInput.justify) !== null && _b !== void 0 ? _b : defaultJustify}`]: true,
|
|
11223
|
+
} }, hAsync("div", { class: "alert-checkbox-icon" }, hAsync("div", { class: "alert-checkbox-inner" })), renderOptionLabel(optionLabelOptions, 'alert-checkbox-label')), mode === 'md' && hAsync("ion-ripple-effect", null)));
|
|
11224
|
+
})));
|
|
10758
11225
|
}
|
|
10759
11226
|
renderRadio() {
|
|
10760
11227
|
const inputs = this.processedInputs;
|
|
11228
|
+
const mode = getIonMode$1(this);
|
|
10761
11229
|
if (inputs.length === 0) {
|
|
10762
11230
|
return null;
|
|
10763
11231
|
}
|
|
10764
|
-
return (hAsync("div", { class: "alert-radio-group", role: "radiogroup", "aria-activedescendant": this.activeId }, inputs.map((i) =>
|
|
11232
|
+
return (hAsync("div", { class: "alert-radio-group", role: "radiogroup", "aria-activedescendant": this.activeId }, inputs.map((i) => {
|
|
11233
|
+
var _a, _b;
|
|
11234
|
+
/**
|
|
11235
|
+
* Cast to `SelectAlertInput` to access rich content
|
|
11236
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
11237
|
+
* that are passed through from `ion-select` but not
|
|
11238
|
+
* part of the public `AlertInput` interface.
|
|
11239
|
+
*/
|
|
11240
|
+
const richInput = i;
|
|
11241
|
+
const optionLabelOptions = {
|
|
11242
|
+
id: richInput.id,
|
|
11243
|
+
label: richInput.label,
|
|
11244
|
+
startContent: richInput.startContent,
|
|
11245
|
+
endContent: richInput.endContent,
|
|
11246
|
+
description: richInput.description,
|
|
11247
|
+
};
|
|
11248
|
+
const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'radio');
|
|
11249
|
+
const defaultJustify = getOverlayLabelJustify(mode, 'radio');
|
|
11250
|
+
return (hAsync("button", { type: "button", onClick: () => this.rbClick(i), "aria-checked": `${i.checked}`, disabled: i.disabled, id: i.id, tabIndex: i.tabindex, class: Object.assign(Object.assign({}, getClassMap(i.cssClass)), { 'alert-radio-button': true, 'alert-tappable': true, 'alert-radio': true, 'ion-focusable': !i.disabled, 'ion-activatable': !i.disabled, 'alert-radio-button-disabled': i.disabled || false }), role: "radio" }, hAsync("div", { class: {
|
|
11251
|
+
'alert-button-inner': true,
|
|
11252
|
+
[`radio-label-placement-${(_a = richInput.labelPlacement) !== null && _a !== void 0 ? _a : defaultLabelPlacement}`]: true,
|
|
11253
|
+
[`radio-justify-${(_b = richInput.justify) !== null && _b !== void 0 ? _b : defaultJustify}`]: true,
|
|
11254
|
+
} }, hAsync("div", { class: "alert-radio-icon" }, hAsync("div", { class: "alert-radio-inner" })), renderOptionLabel(optionLabelOptions, 'alert-radio-label'))));
|
|
11255
|
+
})));
|
|
10765
11256
|
}
|
|
10766
11257
|
renderInput() {
|
|
10767
11258
|
const inputs = this.processedInputs;
|
|
@@ -10841,7 +11332,7 @@ class Alert {
|
|
|
10841
11332
|
'alert-button-group': true,
|
|
10842
11333
|
'alert-button-group-vertical': buttons.length > 2 || this.isButtonGroupWrapped,
|
|
10843
11334
|
};
|
|
10844
|
-
return (hAsync("div", { class: alertButtonGroupClass, ref: (el) => (this.buttonGroupEl = el) }, buttons.map((button) => (hAsync("button", Object.assign({}, button.htmlAttributes, { type: "button", id: button.id, class: buttonClass$
|
|
11335
|
+
return (hAsync("div", { class: alertButtonGroupClass, ref: (el) => (this.buttonGroupEl = el) }, buttons.map((button) => (hAsync("button", Object.assign({}, button.htmlAttributes, { type: "button", id: button.id, class: buttonClass$1(button), tabIndex: 0, onClick: () => this.buttonClick(button) }), hAsync("span", { class: "alert-button-inner" }, button.text), mode === 'md' && hAsync("ion-ripple-effect", null))))));
|
|
10845
11336
|
}
|
|
10846
11337
|
renderAlertMessage(msgId) {
|
|
10847
11338
|
const { customHTMLEnabled, message } = this;
|
|
@@ -10864,9 +11355,9 @@ class Alert {
|
|
|
10864
11355
|
* If neither are defined, do not set aria-labelledby.
|
|
10865
11356
|
*/
|
|
10866
11357
|
const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
|
|
10867
|
-
return (hAsync(Host, { key: '
|
|
11358
|
+
return (hAsync(Host, { key: '022f3463b8e6c52064b90ec304c524847c3d5ad3', tabindex: "-1", style: {
|
|
10868
11359
|
zIndex: `${20000 + overlayIndex}`,
|
|
10869
|
-
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, hAsync("ion-backdrop", { key: '
|
|
11360
|
+
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, hAsync("ion-backdrop", { key: 'c3cd05738bc2834f54707edeb2fae06ec10d6fd2', tappable: this.backdropDismiss }), hAsync("div", { key: 'b44fadd9ba7ddf073854c5035538d11ae8e66bc2', tabindex: "0", "aria-hidden": "true" }), hAsync("div", Object.assign({ key: 'fafea048141a6c7957e62aef31faa8041dd610c1', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el) }, htmlAttributes), hAsync("div", { key: '3ad9d2d4b7cf425eab8293ddc12eff0fe8df1517', class: "alert-head" }, header && (hAsync("h2", { key: '7d9154f5ee595b7e4da6ecf3a20871f104c1256e', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (hAsync("h2", { key: '1f891f38004be6964e9406b84dd580145c42516a', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (hAsync("h3", { key: '2ab4d344ecb7e384e8f6d3d3e59ee5a1bbcc832c', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: '78a4ff09aa3aaafcd0dc2a42d036767d83b3cfa2', tabindex: "0", "aria-hidden": "true" })));
|
|
10870
11361
|
}
|
|
10871
11362
|
get el() { return getElement(this); }
|
|
10872
11363
|
static get watchers() { return {
|
|
@@ -10924,7 +11415,7 @@ const inputClass = (input) => {
|
|
|
10924
11415
|
var _a, _b, _c;
|
|
10925
11416
|
return Object.assign(Object.assign({ 'alert-input': true, 'alert-input-disabled': ((_b = (_a = input.attributes) === null || _a === void 0 ? void 0 : _a.disabled) !== null && _b !== void 0 ? _b : input.disabled) || false }, getClassMap(input.cssClass)), getClassMap(input.attributes ? (_c = input.attributes.class) === null || _c === void 0 ? void 0 : _c.toString() : ''));
|
|
10926
11417
|
};
|
|
10927
|
-
const buttonClass$
|
|
11418
|
+
const buttonClass$1 = (button) => {
|
|
10928
11419
|
return Object.assign({ 'alert-button': true, 'ion-focusable': true, 'ion-activatable': true, [`alert-button-role-${button.role}`]: button.role !== undefined }, getClassMap(button.cssClass));
|
|
10929
11420
|
};
|
|
10930
11421
|
|
|
@@ -15046,9 +15537,9 @@ const checkForPresentationFormatMismatch = (el, presentation, formatOptions) =>
|
|
|
15046
15537
|
}
|
|
15047
15538
|
};
|
|
15048
15539
|
|
|
15049
|
-
const datetimeIosCss = () => `:host{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;background:var(--background);overflow:hidden}:host(.datetime-size-fixed){width:auto;height:auto}:host(.datetime-size-fixed:not(.datetime-prefer-wheel)){max-width:350px}:host(.datetime-size-fixed.datetime-prefer-wheel){min-width:350px;max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content}:host(.datetime-size-cover){width:100%}:host .calendar-body,:host .datetime-year{opacity:0}:host(:not(.datetime-ready)) .datetime-year{position:absolute;pointer-events:none}:host(.datetime-ready) .calendar-body{opacity:1}:host(.datetime-ready) .datetime-year{display:none;opacity:1}:host .wheel-order-year-first .day-column{-ms-flex-order:3;order:3;text-align:end}:host .wheel-order-year-first .month-column{-ms-flex-order:2;order:2;text-align:end}:host .wheel-order-year-first .year-column{-ms-flex-order:1;order:1;text-align:start}:host .datetime-calendar,:host .datetime-year{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{display:-ms-flexbox;display:flex}:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{display:none}:host(.month-year-picker-open) .datetime-footer{display:none}:host(.datetime-disabled){pointer-events:none}:host(.datetime-disabled) .calendar-days-of-week,:host(.datetime-disabled) .datetime-time{opacity:0.4}:host(.datetime-readonly){pointer-events:none;}:host(.datetime-readonly) .calendar-action-buttons,:host(.datetime-readonly) .calendar-body,:host(.datetime-readonly) .datetime-year{pointer-events:initial}:host(.datetime-readonly) .calendar-day[disabled]:not(.calendar-day-constrained),:host(.datetime-readonly) .datetime-action-buttons ion-button[disabled]{opacity:1}:host .datetime-header .datetime-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .datetime-action-buttons.has-clear-button{width:100%}:host .datetime-action-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.datetime-action-buttons .datetime-action-buttons-container{display:-ms-flexbox;display:flex}:host .calendar-action-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .calendar-action-buttons ion-button{--background:transparent}:host .calendar-days-of-week{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}.calendar-days-of-week .day-of-week{-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{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{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{scroll-snap-align:none}:host .calendar-body::-webkit-scrollbar{display:none}:host .calendar-body .calendar-month-grid{display:grid;grid-template-columns:repeat(7, 1fr)}:host .calendar-day-wrapper{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{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]{pointer-events:none;opacity:0.4}.calendar-day:not(.calendar-day-adjacent-day):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{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host(.datetime-presentation-time) .datetime-time{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}:host ion-popover{--height:200px}:host .time-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .time-body{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, var(--ion-background-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{color:var(--ion-color-base)}:host(.in-item){position:static}:host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle{color:var(--ion-color-base)}.calendar-month-year{min-width:0}.calendar-month-year-toggle{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{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{background:currentColor}.calendar-month-year-toggle:disabled{opacity:0.3;pointer-events:none}.calendar-month-year-toggle ion-icon{-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{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center}ion-picker{--highlight-background:var(--wheel-highlight-background);--highlight-border-radius:var(--wheel-highlight-border-radius);--fade-background-rgb:var(--wheel-fade-background-rgb)}:host{--background:var(--ion-color-light, #f4f5f8);--background-rgb:var(--ion-color-light-rgb, 244, 245, 248);--title-color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}:host(.datetime-presentation-date-time:not(.datetime-prefer-wheel)),:host(.datetime-presentation-time-date:not(.datetime-prefer-wheel)),:host(.datetime-presentation-date:not(.datetime-prefer-wheel)){min-height:350px}:host .datetime-header{-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, var(--ion-background-color-step-200, #cccccc));font-size:min(0.875rem, 22.4px)}:host .datetime-header .datetime-title{color:var(--title-color)}:host .datetime-header .datetime-selected-date{margin-top:10px}.calendar-month-year-toggle{-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{opacity:0.15}.calendar-month-year-toggle #toggle-wrapper{-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,:host .calendar-action-buttons ion-buttons ion-button{color:var(--ion-color-base)}:host .calendar-action-buttons ion-buttons{-ms-flex-align:stretch;align-items:stretch;height:100%}:host .calendar-action-buttons ion-buttons ion-button{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}:host .calendar-days-of-week{-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, var(--ion-text-color-step-700, #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{width:clamp(20px, calc(mod(min(1rem, 24px), 24px) * 10), 100%);height:24px;overflow:hidden}.calendar-day{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{width:auto;height:auto;overflow:initial}.calendar-day{border-radius:32px}}:host .calendar-body .calendar-month .calendar-month-grid{-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{-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{width:40px;min-width:40px;height:40px;font-size:min(1.25rem, 32px)}.calendar-day.calendar-day-active{background:rgba(var(--ion-color-base-rgb), 0.2);font-size:min(1.375rem, 35.2px)}:host .calendar-day.calendar-day-today{color:var(--ion-color-base)}:host .calendar-day.calendar-day-active,:host .calendar-day.calendar-day-adjacent-day.calendar-day-active{color:var(--ion-color-base);font-weight:600}:host .calendar-day.calendar-day-today.calendar-day-active{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host .calendar-day.calendar-day-adjacent-day{color:var(--ion-color-step-300, var(--ion-text-color-step-700, #b3b3b3))}:host .datetime-time{-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{font-weight:600}:host .datetime-buttons{-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, var(--ion-background-color-step-200, #cccccc))}:host .datetime-buttons ::slotted(ion-buttons),:host .datetime-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}:host .datetime-action-buttons{width:100%}`;
|
|
15540
|
+
const datetimeIosCss = () => `:host{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;background:var(--background);overflow:hidden}:host(.datetime-size-fixed){width:auto;height:auto}:host(.datetime-size-fixed:not(.datetime-prefer-wheel)){max-width:350px}:host(.datetime-size-fixed.datetime-prefer-wheel){min-width:350px;max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content}:host(.datetime-size-cover){width:100%}:host .calendar-body,:host .datetime-year{opacity:0}:host(:not(.datetime-ready)) .datetime-year{position:absolute;pointer-events:none}:host(.datetime-ready) .calendar-body{opacity:1}:host(.datetime-ready) .datetime-year{display:none;opacity:1}:host .wheel-order-year-first .day-column{-ms-flex-order:3;order:3;text-align:end}:host .wheel-order-year-first .month-column{-ms-flex-order:2;order:2;text-align:end}:host .wheel-order-year-first .year-column{-ms-flex-order:1;order:1;text-align:start}:host .datetime-calendar,:host .datetime-year{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{display:-ms-flexbox;display:flex}:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{display:none}:host(.month-year-picker-open) .datetime-footer{display:none}:host(.datetime-disabled){pointer-events:none}:host(.datetime-disabled) .calendar-days-of-week,:host(.datetime-disabled) .datetime-time{opacity:0.4}:host(.datetime-readonly){pointer-events:none;}:host(.datetime-readonly) .calendar-action-buttons,:host(.datetime-readonly) .calendar-body,:host(.datetime-readonly) .datetime-year{pointer-events:initial}:host(.datetime-readonly) .calendar-day[disabled]:not(.calendar-day-constrained),:host(.datetime-readonly) .datetime-action-buttons ion-button[disabled]{opacity:1}:host .datetime-header .datetime-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .datetime-action-buttons.has-clear-button{width:100%}:host .datetime-action-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .datetime-action-buttons ion-button{--color:var(--ion-color-primary, #0054e9)}.datetime-action-buttons .datetime-action-buttons-container{display:-ms-flexbox;display:flex}:host .calendar-action-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .calendar-action-buttons ion-button{--background:transparent}:host .calendar-days-of-week{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}.calendar-days-of-week .day-of-week{-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{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{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{scroll-snap-align:none}:host .calendar-body::-webkit-scrollbar{display:none}:host .calendar-body .calendar-month-grid{display:grid;grid-template-columns:repeat(7, 1fr)}:host .calendar-day-wrapper{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{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]{pointer-events:none;opacity:0.4}.calendar-day:not(.calendar-day-adjacent-day):focus{background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2);-webkit-box-shadow:0px 0px 0px 4px rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2)}:host(.ion-color) .calendar-day:not(.calendar-day-adjacent-day):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{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host(.datetime-presentation-time) .datetime-time{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}:host ion-popover{--height:200px}:host .time-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .time-body{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, var(--ion-background-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{color:var(--ion-color-primary, #0054e9)}:host(.ion-color) .time-body-active{color:var(--ion-color-base)}:host(.in-item){position:static}:host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle{color:var(--ion-color-primary, #0054e9)}:host(.ion-color.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle{color:var(--ion-color-base)}.calendar-month-year{min-width:0}.calendar-month-year-toggle{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{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{background:currentColor}.calendar-month-year-toggle:disabled{opacity:0.3;pointer-events:none}.calendar-month-year-toggle ion-icon{-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{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center}ion-picker{--highlight-background:var(--wheel-highlight-background);--highlight-border-radius:var(--wheel-highlight-border-radius);--fade-background-rgb:var(--wheel-fade-background-rgb)}:host{--background:var(--ion-color-light, #f4f5f8);--background-rgb:var(--ion-color-light-rgb, 244, 245, 248);--title-color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}:host(.datetime-presentation-date-time:not(.datetime-prefer-wheel)),:host(.datetime-presentation-time-date:not(.datetime-prefer-wheel)),:host(.datetime-presentation-date:not(.datetime-prefer-wheel)){min-height:350px}:host .datetime-header{-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, var(--ion-background-color-step-200, #cccccc));font-size:min(0.875rem, 22.4px)}:host .datetime-header .datetime-title{color:var(--title-color)}:host .datetime-header .datetime-selected-date{margin-top:10px}.calendar-month-year-toggle{-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{opacity:0.15}.calendar-month-year-toggle #toggle-wrapper{-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,:host .calendar-action-buttons ion-buttons ion-button{color:var(--ion-color-primary, #0054e9)}:host(.ion-color) .calendar-action-buttons .calendar-month-year-toggle ion-icon,:host(.ion-color) .calendar-action-buttons ion-buttons ion-button{color:var(--ion-color-base)}:host .calendar-action-buttons ion-buttons{-ms-flex-align:stretch;align-items:stretch;height:100%}:host .calendar-action-buttons ion-buttons ion-button{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}:host .calendar-days-of-week{-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, var(--ion-text-color-step-700, #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{width:clamp(20px, calc(mod(min(1rem, 24px), 24px) * 10), 100%);height:24px;overflow:hidden}.calendar-day{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{width:auto;height:auto;overflow:initial}.calendar-day{border-radius:32px}}:host .calendar-body .calendar-month .calendar-month-grid{-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{-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{width:40px;min-width:40px;height:40px;font-size:min(1.25rem, 32px)}.calendar-day.calendar-day-active{background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2);font-size:min(1.375rem, 35.2px)}:host(.ion-color) .calendar-day.calendar-day-active{background:rgba(var(--ion-color-base-rgb), 0.2)}:host .calendar-day.calendar-day-today{color:var(--ion-color-primary, #0054e9)}:host(.ion-color) .calendar-day.calendar-day-today{color:var(--ion-color-base)}:host .calendar-day.calendar-day-active,:host .calendar-day.calendar-day-adjacent-day.calendar-day-active{color:var(--ion-color-primary, #0054e9);font-weight:600}:host(.ion-color) .calendar-day.calendar-day-active,:host(.ion-color) .calendar-day.calendar-day-adjacent-day.calendar-day-active{color:var(--ion-color-base)}:host .calendar-day.calendar-day-today.calendar-day-active{background:var(--ion-color-primary, #0054e9);color:var(--ion-color-primary-contrast, #fff)}:host(.ion-color) .calendar-day.calendar-day-today.calendar-day-active{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host .calendar-day.calendar-day-adjacent-day{color:var(--ion-color-step-300, var(--ion-text-color-step-700, #b3b3b3))}:host .datetime-time{-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{font-weight:600}:host .datetime-buttons{-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, var(--ion-background-color-step-200, #cccccc))}:host .datetime-buttons ::slotted(ion-buttons),:host .datetime-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}:host .datetime-action-buttons{width:100%}`;
|
|
15050
15541
|
|
|
15051
|
-
const datetimeMdCss = () => `:host{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;background:var(--background);overflow:hidden}:host(.datetime-size-fixed){width:auto;height:auto}:host(.datetime-size-fixed:not(.datetime-prefer-wheel)){max-width:350px}:host(.datetime-size-fixed.datetime-prefer-wheel){min-width:350px;max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content}:host(.datetime-size-cover){width:100%}:host .calendar-body,:host .datetime-year{opacity:0}:host(:not(.datetime-ready)) .datetime-year{position:absolute;pointer-events:none}:host(.datetime-ready) .calendar-body{opacity:1}:host(.datetime-ready) .datetime-year{display:none;opacity:1}:host .wheel-order-year-first .day-column{-ms-flex-order:3;order:3;text-align:end}:host .wheel-order-year-first .month-column{-ms-flex-order:2;order:2;text-align:end}:host .wheel-order-year-first .year-column{-ms-flex-order:1;order:1;text-align:start}:host .datetime-calendar,:host .datetime-year{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{display:-ms-flexbox;display:flex}:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{display:none}:host(.month-year-picker-open) .datetime-footer{display:none}:host(.datetime-disabled){pointer-events:none}:host(.datetime-disabled) .calendar-days-of-week,:host(.datetime-disabled) .datetime-time{opacity:0.4}:host(.datetime-readonly){pointer-events:none;}:host(.datetime-readonly) .calendar-action-buttons,:host(.datetime-readonly) .calendar-body,:host(.datetime-readonly) .datetime-year{pointer-events:initial}:host(.datetime-readonly) .calendar-day[disabled]:not(.calendar-day-constrained),:host(.datetime-readonly) .datetime-action-buttons ion-button[disabled]{opacity:1}:host .datetime-header .datetime-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .datetime-action-buttons.has-clear-button{width:100%}:host .datetime-action-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.datetime-action-buttons .datetime-action-buttons-container{display:-ms-flexbox;display:flex}:host .calendar-action-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .calendar-action-buttons ion-button{--background:transparent}:host .calendar-days-of-week{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}.calendar-days-of-week .day-of-week{-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{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{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{scroll-snap-align:none}:host .calendar-body::-webkit-scrollbar{display:none}:host .calendar-body .calendar-month-grid{display:grid;grid-template-columns:repeat(7, 1fr)}:host .calendar-day-wrapper{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{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]{pointer-events:none;opacity:0.4}.calendar-day:not(.calendar-day-adjacent-day):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{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host(.datetime-presentation-time) .datetime-time{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}:host ion-popover{--height:200px}:host .time-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .time-body{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, var(--ion-background-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{color:var(--ion-color-base)}:host(.in-item){position:static}:host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle{color:var(--ion-color-base)}.calendar-month-year{min-width:0}.calendar-month-year-toggle{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{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{background:currentColor}.calendar-month-year-toggle:disabled{opacity:0.3;pointer-events:none}.calendar-month-year-toggle ion-icon{-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{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center}ion-picker{--highlight-background:var(--wheel-highlight-background);--highlight-border-radius:var(--wheel-highlight-border-radius);--fade-background-rgb:var(--wheel-fade-background-rgb)}:host{--background:var(--ion-color-step-100, var(--ion-background-color-step-100, #ffffff));--title-color:var(--ion-color-contrast)}:host .datetime-header{-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{font-size:0.75rem;text-transform:uppercase}:host .datetime-header .datetime-selected-date{margin-top:30px;font-size:2.125rem}:host .calendar-action-buttons ion-button{--color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959))}.calendar-month-year-toggle{-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, var(--ion-text-color-step-350, #595959));z-index:1}.calendar-month-year-toggle.ion-focused::after{opacity:0.04}.calendar-month-year-toggle ion-ripple-effect{color:currentColor}@media (any-hover: hover){.calendar-month-year-toggle.ion-activatable:not(.ion-focused):hover::after{background:currentColor;opacity:0.04}}:host .calendar-days-of-week{-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, var(--ion-text-color-step-500, gray));font-size:0.875rem;line-height:36px}:host .calendar-body .calendar-month .calendar-month-grid{-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{width:42px;min-width:42px;height:42px;font-size:0.875rem}:host .calendar-day.calendar-day-today{border:1px solid var(--ion-color-base);color:var(--ion-color-base)}:host .calendar-day.calendar-day-active,:host .calendar-day.calendar-day-adjacent-day.calendar-day-active{color:var(--ion-color-contrast)}.calendar-day.calendar-day-active,.calendar-day.calendar-day-active:focus{border:1px solid var(--ion-color-base);background:var(--ion-color-base)}:host .calendar-day.calendar-day-adjacent-day{color:var(--ion-color-step-500, var(--ion-text-color-step-500, gray))}:host .datetime-time{-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{color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959))}:host(.datetime-presentation-month) .datetime-year,:host(.datetime-presentation-year) .datetime-year,:host(.datetime-presentation-month-year) .datetime-year{margin-top:20px;margin-bottom:20px}:host .datetime-buttons{-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}`;
|
|
15542
|
+
const datetimeMdCss = () => `:host{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;background:var(--background);overflow:hidden}:host(.datetime-size-fixed){width:auto;height:auto}:host(.datetime-size-fixed:not(.datetime-prefer-wheel)){max-width:350px}:host(.datetime-size-fixed.datetime-prefer-wheel){min-width:350px;max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content}:host(.datetime-size-cover){width:100%}:host .calendar-body,:host .datetime-year{opacity:0}:host(:not(.datetime-ready)) .datetime-year{position:absolute;pointer-events:none}:host(.datetime-ready) .calendar-body{opacity:1}:host(.datetime-ready) .datetime-year{display:none;opacity:1}:host .wheel-order-year-first .day-column{-ms-flex-order:3;order:3;text-align:end}:host .wheel-order-year-first .month-column{-ms-flex-order:2;order:2;text-align:end}:host .wheel-order-year-first .year-column{-ms-flex-order:1;order:1;text-align:start}:host .datetime-calendar,:host .datetime-year{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{display:-ms-flexbox;display:flex}:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{display:none}:host(.month-year-picker-open) .datetime-footer{display:none}:host(.datetime-disabled){pointer-events:none}:host(.datetime-disabled) .calendar-days-of-week,:host(.datetime-disabled) .datetime-time{opacity:0.4}:host(.datetime-readonly){pointer-events:none;}:host(.datetime-readonly) .calendar-action-buttons,:host(.datetime-readonly) .calendar-body,:host(.datetime-readonly) .datetime-year{pointer-events:initial}:host(.datetime-readonly) .calendar-day[disabled]:not(.calendar-day-constrained),:host(.datetime-readonly) .datetime-action-buttons ion-button[disabled]{opacity:1}:host .datetime-header .datetime-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .datetime-action-buttons.has-clear-button{width:100%}:host .datetime-action-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .datetime-action-buttons ion-button{--color:var(--ion-color-primary, #0054e9)}.datetime-action-buttons .datetime-action-buttons-container{display:-ms-flexbox;display:flex}:host .calendar-action-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .calendar-action-buttons ion-button{--background:transparent}:host .calendar-days-of-week{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}.calendar-days-of-week .day-of-week{-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{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{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{scroll-snap-align:none}:host .calendar-body::-webkit-scrollbar{display:none}:host .calendar-body .calendar-month-grid{display:grid;grid-template-columns:repeat(7, 1fr)}:host .calendar-day-wrapper{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{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]{pointer-events:none;opacity:0.4}.calendar-day:not(.calendar-day-adjacent-day):focus{background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2);-webkit-box-shadow:0px 0px 0px 4px rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2)}:host(.ion-color) .calendar-day:not(.calendar-day-adjacent-day):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{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host(.datetime-presentation-time) .datetime-time{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}:host ion-popover{--height:200px}:host .time-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .time-body{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, var(--ion-background-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{color:var(--ion-color-primary, #0054e9)}:host(.ion-color) .time-body-active{color:var(--ion-color-base)}:host(.in-item){position:static}:host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle{color:var(--ion-color-primary, #0054e9)}:host(.ion-color.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle{color:var(--ion-color-base)}.calendar-month-year{min-width:0}.calendar-month-year-toggle{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{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{background:currentColor}.calendar-month-year-toggle:disabled{opacity:0.3;pointer-events:none}.calendar-month-year-toggle ion-icon{-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{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center}ion-picker{--highlight-background:var(--wheel-highlight-background);--highlight-border-radius:var(--wheel-highlight-border-radius);--fade-background-rgb:var(--wheel-fade-background-rgb)}:host{--background:var(--ion-color-step-100, var(--ion-background-color-step-100, #ffffff));--title-color:var(--ion-color-primary-contrast, #fff)}:host(.ion-color){--title-color:var(--ion-color-contrast)}:host .datetime-header{-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-primary, #0054e9);color:var(--title-color)}:host(.ion-color) .datetime-header{background:var(--ion-color-base)}:host .datetime-header .datetime-title{font-size:0.75rem;text-transform:uppercase}:host .datetime-header .datetime-selected-date{margin-top:30px;font-size:2.125rem}:host .calendar-action-buttons ion-button{--color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959))}.calendar-month-year-toggle{-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, var(--ion-text-color-step-350, #595959));z-index:1}.calendar-month-year-toggle.ion-focused::after{opacity:0.04}.calendar-month-year-toggle ion-ripple-effect{color:currentColor}@media (any-hover: hover){.calendar-month-year-toggle.ion-activatable:not(.ion-focused):hover::after{background:currentColor;opacity:0.04}}:host .calendar-days-of-week{-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, var(--ion-text-color-step-500, gray));font-size:0.875rem;line-height:36px}:host .calendar-body .calendar-month .calendar-month-grid{-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{width:42px;min-width:42px;height:42px;font-size:0.875rem}:host .calendar-day.calendar-day-today{border:1px solid var(--ion-color-primary, #0054e9);color:var(--ion-color-primary, #0054e9)}:host(.ion-color) .calendar-day.calendar-day-today{border:1px solid var(--ion-color-base);color:var(--ion-color-base)}:host .calendar-day.calendar-day-active,:host .calendar-day.calendar-day-adjacent-day.calendar-day-active{color:var(--ion-color-primary-contrast, #fff)}:host(.ion-color) .calendar-day.calendar-day-active,:host(.ion-color) .calendar-day.calendar-day-adjacent-day.calendar-day-active{color:var(--ion-color-contrast)}.calendar-day.calendar-day-active,.calendar-day.calendar-day-active:focus{border:1px solid var(--ion-color-primary, #0054e9);background:var(--ion-color-primary, #0054e9)}:host(.ion-color) .calendar-day.calendar-day-active,:host(.ion-color) .calendar-day.calendar-day-active:focus{border:1px solid var(--ion-color-base);background:var(--ion-color-base)}:host .calendar-day.calendar-day-adjacent-day{color:var(--ion-color-step-500, var(--ion-text-color-step-500, gray))}:host .datetime-time{-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{color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959))}:host(.datetime-presentation-month) .datetime-year,:host(.datetime-presentation-year) .datetime-year,:host(.datetime-presentation-month-year) .datetime-year{margin-top:20px;margin-bottom:20px}:host .datetime-buttons{-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}`;
|
|
15052
15543
|
|
|
15053
15544
|
/**
|
|
15054
15545
|
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
@@ -15114,12 +15605,6 @@ class Datetime {
|
|
|
15114
15605
|
isAdjacentDay: false,
|
|
15115
15606
|
};
|
|
15116
15607
|
this.isTimePopoverOpen = false;
|
|
15117
|
-
/**
|
|
15118
|
-
* The color to use from your application's color palette.
|
|
15119
|
-
* Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
|
|
15120
|
-
* For more information on colors, see [theming](/docs/theming/basics).
|
|
15121
|
-
*/
|
|
15122
|
-
this.color = 'primary';
|
|
15123
15608
|
/**
|
|
15124
15609
|
* The name of the control, which is submitted with the form data.
|
|
15125
15610
|
*/
|
|
@@ -16295,7 +16780,7 @@ class Datetime {
|
|
|
16295
16780
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), findPart));
|
|
16296
16781
|
this.setActiveParts(Object.assign(Object.assign({}, activePart), findPart));
|
|
16297
16782
|
ev.stopPropagation();
|
|
16298
|
-
} }, 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)))));
|
|
16783
|
+
} }, items.map((item) => (hAsync("ion-picker-column-option", { color: this.color, 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)))));
|
|
16299
16784
|
}
|
|
16300
16785
|
renderIndividualDatePickerColumns(forcePresentation) {
|
|
16301
16786
|
const { workingParts, isDateEnabled } = this;
|
|
@@ -16368,7 +16853,7 @@ class Datetime {
|
|
|
16368
16853
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { day: ev.detail.value }));
|
|
16369
16854
|
this.setActiveParts(Object.assign(Object.assign({}, activePart), { day: ev.detail.value }));
|
|
16370
16855
|
ev.stopPropagation();
|
|
16371
|
-
} }, 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)))));
|
|
16856
|
+
} }, days.map((day) => (hAsync("ion-picker-column-option", { color: this.color, 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)))));
|
|
16372
16857
|
}
|
|
16373
16858
|
renderMonthPickerColumn(months) {
|
|
16374
16859
|
if (months.length === 0) {
|
|
@@ -16383,7 +16868,7 @@ class Datetime {
|
|
|
16383
16868
|
this.setActiveParts(Object.assign(Object.assign({}, activePart), { month: ev.detail.value }));
|
|
16384
16869
|
}
|
|
16385
16870
|
ev.stopPropagation();
|
|
16386
|
-
} }, 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)))));
|
|
16871
|
+
} }, months.map((month) => (hAsync("ion-picker-column-option", { color: this.color, 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)))));
|
|
16387
16872
|
}
|
|
16388
16873
|
renderYearPickerColumn(years) {
|
|
16389
16874
|
if (years.length === 0) {
|
|
@@ -16398,7 +16883,7 @@ class Datetime {
|
|
|
16398
16883
|
this.setActiveParts(Object.assign(Object.assign({}, activePart), { year: ev.detail.value }));
|
|
16399
16884
|
}
|
|
16400
16885
|
ev.stopPropagation();
|
|
16401
|
-
} }, 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)))));
|
|
16886
|
+
} }, years.map((year) => (hAsync("ion-picker-column-option", { color: this.color, 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)))));
|
|
16402
16887
|
}
|
|
16403
16888
|
renderTimePickerColumns(forcePresentation) {
|
|
16404
16889
|
if (['date', 'month', 'month-year', 'year'].includes(forcePresentation)) {
|
|
@@ -16431,7 +16916,7 @@ class Datetime {
|
|
|
16431
16916
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { hour: ev.detail.value }));
|
|
16432
16917
|
this.setActiveParts(Object.assign(Object.assign({}, this.getActivePartsWithFallback()), { hour: ev.detail.value }));
|
|
16433
16918
|
ev.stopPropagation();
|
|
16434
|
-
} }, 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)))));
|
|
16919
|
+
} }, hoursData.map((hour) => (hAsync("ion-picker-column-option", { color: this.color, 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)))));
|
|
16435
16920
|
}
|
|
16436
16921
|
renderMinutePickerColumn(minutesData) {
|
|
16437
16922
|
const { disabled, workingParts } = this;
|
|
@@ -16442,7 +16927,7 @@ class Datetime {
|
|
|
16442
16927
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { minute: ev.detail.value }));
|
|
16443
16928
|
this.setActiveParts(Object.assign(Object.assign({}, this.getActivePartsWithFallback()), { minute: ev.detail.value }));
|
|
16444
16929
|
ev.stopPropagation();
|
|
16445
|
-
} }, 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)))));
|
|
16930
|
+
} }, minutesData.map((minute) => (hAsync("ion-picker-column-option", { color: this.color, 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)))));
|
|
16446
16931
|
}
|
|
16447
16932
|
renderDayPeriodPickerColumn(dayPeriodData) {
|
|
16448
16933
|
const { disabled, workingParts } = this;
|
|
@@ -16456,7 +16941,7 @@ class Datetime {
|
|
|
16456
16941
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { ampm: ev.detail.value, hour }));
|
|
16457
16942
|
this.setActiveParts(Object.assign(Object.assign({}, this.getActivePartsWithFallback()), { ampm: ev.detail.value, hour }));
|
|
16458
16943
|
ev.stopPropagation();
|
|
16459
|
-
} }, 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)))));
|
|
16944
|
+
} }, dayPeriodData.map((dayPeriod) => (hAsync("ion-picker-column-option", { color: this.color, 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)))));
|
|
16460
16945
|
}
|
|
16461
16946
|
renderWheelView(forcePresentation) {
|
|
16462
16947
|
const { locale } = this;
|
|
@@ -16793,7 +17278,7 @@ class Datetime {
|
|
|
16793
17278
|
const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
|
|
16794
17279
|
const hasWheelVariant = hasDatePresentation && preferWheel;
|
|
16795
17280
|
renderHiddenInput(true, el, name, formatValue(value), disabled);
|
|
16796
|
-
return (hAsync(Host, { key: '
|
|
17281
|
+
return (hAsync(Host, { key: '79b906669d3e0d9ff356421a5f571d5cf12b6793', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses$1(color, {
|
|
16797
17282
|
[mode]: true,
|
|
16798
17283
|
['datetime-readonly']: readonly,
|
|
16799
17284
|
['datetime-disabled']: disabled,
|
|
@@ -16803,7 +17288,7 @@ class Datetime {
|
|
|
16803
17288
|
[`datetime-size-${size}`]: true,
|
|
16804
17289
|
[`datetime-prefer-wheel`]: hasWheelVariant,
|
|
16805
17290
|
[`datetime-grid`]: isGridStyle,
|
|
16806
|
-
})) }, hAsync("div", { key: '
|
|
17291
|
+
})) }, hAsync("div", { key: 'e29ce6edd79f3efb8f7cc4a81bb543d580e5f4c6', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
|
|
16807
17292
|
}
|
|
16808
17293
|
get el() { return getElement(this); }
|
|
16809
17294
|
static get watchers() { return {
|
|
@@ -16902,9 +17387,9 @@ const WHEEL_PART = 'wheel';
|
|
|
16902
17387
|
const WHEEL_ITEM_PART = 'wheel-item';
|
|
16903
17388
|
const WHEEL_ITEM_ACTIVE_PART = `active`;
|
|
16904
17389
|
|
|
16905
|
-
const datetimeButtonIosCss = () => `:host{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{border-radius:8px;-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, var(--ion-background-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,:host(.date-active) #date-button{color:var(--ion-color-base)}:host(.datetime-button-disabled){pointer-events:none}:host(.datetime-button-disabled) button{opacity:0.4}:host button{-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px;padding-top:7px;padding-bottom:7px}:host button.ion-activated{color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}`;
|
|
17390
|
+
const datetimeButtonIosCss = () => `:host{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{border-radius:8px;-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, var(--ion-background-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,:host(.date-active) #date-button{color:var(--ion-color-primary, #0054e9)}:host(.ion-color.time-active) #time-button,:host(.ion-color.date-active) #date-button{color:var(--ion-color-base)}:host(.datetime-button-disabled){pointer-events:none}:host(.datetime-button-disabled) button{opacity:0.4}:host button{-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px;padding-top:7px;padding-bottom:7px}:host button.ion-activated{color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}`;
|
|
16906
17391
|
|
|
16907
|
-
const datetimeButtonMdCss = () => `:host{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{border-radius:8px;-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, var(--ion-background-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,:host(.date-active) #date-button{color:var(--ion-color-base)}:host(.datetime-button-disabled){pointer-events:none}:host(.datetime-button-disabled) button{opacity:0.4}:host button{-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px}`;
|
|
17392
|
+
const datetimeButtonMdCss = () => `:host{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{border-radius:8px;-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, var(--ion-background-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,:host(.date-active) #date-button{color:var(--ion-color-primary, #0054e9)}:host(.ion-color.time-active) #time-button,:host(.ion-color.date-active) #date-button{color:var(--ion-color-base)}:host(.datetime-button-disabled){pointer-events:none}:host(.datetime-button-disabled) button{opacity:0.4}:host button{-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px}`;
|
|
16908
17393
|
|
|
16909
17394
|
/**
|
|
16910
17395
|
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
@@ -16921,12 +17406,6 @@ class DatetimeButton {
|
|
|
16921
17406
|
this.overlayEl = null;
|
|
16922
17407
|
this.datetimePresentation = 'date-time';
|
|
16923
17408
|
this.datetimeActive = false;
|
|
16924
|
-
/**
|
|
16925
|
-
* The color to use from your application's color palette.
|
|
16926
|
-
* Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
|
|
16927
|
-
* For more information on colors, see [theming](/docs/theming/basics).
|
|
16928
|
-
*/
|
|
16929
|
-
this.color = 'primary';
|
|
16930
17409
|
/**
|
|
16931
17410
|
* If `true`, the user cannot interact with the button.
|
|
16932
17411
|
*/
|
|
@@ -17240,11 +17719,11 @@ class DatetimeButton {
|
|
|
17240
17719
|
render() {
|
|
17241
17720
|
const { color, dateText, timeText, selectedButton, datetimeActive, disabled } = this;
|
|
17242
17721
|
const mode = getIonMode$1(this);
|
|
17243
|
-
return (hAsync(Host, { key: '
|
|
17722
|
+
return (hAsync(Host, { key: '2aaa284fe9b53b6347fcb5a1d325fbab1a6f38bd', class: createColorClasses$1(color, {
|
|
17244
17723
|
[mode]: true,
|
|
17245
17724
|
[`${selectedButton}-active`]: datetimeActive,
|
|
17246
17725
|
['datetime-button-disabled']: disabled,
|
|
17247
|
-
}) }, dateText && (hAsync("button", { key: '
|
|
17726
|
+
}) }, dateText && (hAsync("button", { key: 'd9698471fa5d5c834ca73db57f9ed98dfc705b4c', class: "ion-activatable", id: "date-button", "aria-expanded": datetimeActive ? 'true' : 'false', onClick: this.handleDateClick, disabled: disabled, part: "native", ref: (el) => (this.dateTargetEl = el) }, hAsync("slot", { key: 'c8761a7f25ae5b93c953b3486dd6335f5ad4fd53', name: "date-target" }, dateText), mode === 'md' && hAsync("ion-ripple-effect", { key: '3dd5e97af8d35a2b008de4ab01f690b3c2223135' }))), timeText && (hAsync("button", { key: '1107ca2382940b642b551f885f7ca763012c236c', class: "ion-activatable", id: "time-button", "aria-expanded": datetimeActive ? 'true' : 'false', onClick: this.handleTimeClick, disabled: disabled, part: "native", ref: (el) => (this.timeTargetEl = el) }, hAsync("slot", { key: '5cff53e486923b03715b9ab4dc0947e26f4ea1d9', name: "time-target" }, timeText), mode === 'md' && hAsync("ion-ripple-effect", { key: '5aac1facb6fc7457307c4f59a241e3a5b31facc8' })))));
|
|
17248
17727
|
}
|
|
17249
17728
|
get el() { return getElement(this); }
|
|
17250
17729
|
static get style() { return {
|
|
@@ -19288,7 +19767,7 @@ class Input {
|
|
|
19288
19767
|
/**
|
|
19289
19768
|
* Whether auto correction should be enabled when the user is entering/editing the text value.
|
|
19290
19769
|
*/
|
|
19291
|
-
this.autocorrect =
|
|
19770
|
+
this.autocorrect = false;
|
|
19292
19771
|
/**
|
|
19293
19772
|
* Sets the [`autofocus` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus) on the native input element.
|
|
19294
19773
|
*
|
|
@@ -19745,7 +20224,7 @@ class Input {
|
|
|
19745
20224
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
19746
20225
|
*/
|
|
19747
20226
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
|
|
19748
|
-
return (hAsync(Host, { key: '
|
|
20227
|
+
return (hAsync(Host, { key: '6a05f61339d8045285d5820c2508296cc842c210', class: createColorClasses$1(this.color, {
|
|
19749
20228
|
[mode]: true,
|
|
19750
20229
|
'has-value': hasValue,
|
|
19751
20230
|
'has-focus': hasFocus,
|
|
@@ -19756,14 +20235,14 @@ class Input {
|
|
|
19756
20235
|
'in-item': inItem,
|
|
19757
20236
|
'in-item-color': hostContext('ion-item.ion-color', this.el),
|
|
19758
20237
|
'input-disabled': disabled,
|
|
19759
|
-
}) }, hAsync("label", { key: '
|
|
20238
|
+
}) }, hAsync("label", { key: 'b546d66f53ea25082494e3a4cb0ce7532ee649d7', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: '6af832f2b25fadee7a49adb999166dbc97565e2d', class: "native-wrapper", onClick: this.onLabelClick }, hAsync("slot", { key: 'e7a8895038a8d2503f646acfda20c6c1a99c2839', name: "start" }), hAsync("input", Object.assign({ key: 'ce85703e0434a6322bb4275a924e3cd91c79fa20', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect ? 'on' : 'off', autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined, "aria-labelledby": this.getLabelledById() }, this.inheritedAttributes)), this.clearInput && !readonly && !disabled && (hAsync("button", { key: '1e59589fc89a37d7830dc915b4c19d26a8f568c7', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
|
|
19760
20239
|
/**
|
|
19761
20240
|
* This prevents mobile browsers from
|
|
19762
20241
|
* blurring the input when the clear
|
|
19763
20242
|
* button is activated.
|
|
19764
20243
|
*/
|
|
19765
20244
|
ev.preventDefault();
|
|
19766
|
-
}, onClick: this.clearTextInput }, hAsync("ion-icon", { key: '
|
|
20245
|
+
}, onClick: this.clearTextInput }, hAsync("ion-icon", { key: '7d443c5061bf6436d3b77a2444676c679b3e62e4', "aria-hidden": "true", icon: clearIconData }))), hAsync("slot", { key: '5516f88d46886348217570ec1fadda0b79b63c01', name: "end" })), shouldRenderHighlight && hAsync("div", { key: '2a1fdb7e7c974654dfbb3afb4fbfd9204e9d9092', class: "input-highlight" })), this.renderBottomContent()));
|
|
19767
20246
|
}
|
|
19768
20247
|
get el() { return getElement(this); }
|
|
19769
20248
|
static get watchers() { return {
|
|
@@ -19791,7 +20270,7 @@ class Input {
|
|
|
19791
20270
|
"color": [513],
|
|
19792
20271
|
"autocapitalize": [1],
|
|
19793
20272
|
"autocomplete": [1],
|
|
19794
|
-
"autocorrect": [
|
|
20273
|
+
"autocorrect": [4],
|
|
19795
20274
|
"autofocus": [4],
|
|
19796
20275
|
"clearInput": [4, "clear-input"],
|
|
19797
20276
|
"clearInputIcon": [1, "clear-input-icon"],
|
|
@@ -21795,7 +22274,7 @@ class ListHeader {
|
|
|
21795
22274
|
/**
|
|
21796
22275
|
* iOS Loading Enter Animation
|
|
21797
22276
|
*/
|
|
21798
|
-
const iosEnterAnimation$
|
|
22277
|
+
const iosEnterAnimation$3 = (baseEl) => {
|
|
21799
22278
|
const baseAnimation = createAnimation();
|
|
21800
22279
|
const backdropAnimation = createAnimation();
|
|
21801
22280
|
const wrapperAnimation = createAnimation();
|
|
@@ -21820,7 +22299,7 @@ const iosEnterAnimation$4 = (baseEl) => {
|
|
|
21820
22299
|
/**
|
|
21821
22300
|
* iOS Loading Leave Animation
|
|
21822
22301
|
*/
|
|
21823
|
-
const iosLeaveAnimation$
|
|
22302
|
+
const iosLeaveAnimation$3 = (baseEl) => {
|
|
21824
22303
|
const baseAnimation = createAnimation();
|
|
21825
22304
|
const backdropAnimation = createAnimation();
|
|
21826
22305
|
const wrapperAnimation = createAnimation();
|
|
@@ -21993,6 +22472,10 @@ class Loading {
|
|
|
21993
22472
|
}
|
|
21994
22473
|
disconnectedCallback() {
|
|
21995
22474
|
this.triggerController.removeClickListener();
|
|
22475
|
+
// Clean up aria-hidden if removed without dismiss() being called
|
|
22476
|
+
if (this.presented) {
|
|
22477
|
+
cleanupRootFocusTrapAccessibility();
|
|
22478
|
+
}
|
|
21996
22479
|
}
|
|
21997
22480
|
/**
|
|
21998
22481
|
* Present the loading overlay after it has been created.
|
|
@@ -22000,7 +22483,7 @@ class Loading {
|
|
|
22000
22483
|
async present() {
|
|
22001
22484
|
const unlock = await this.lockController.lock();
|
|
22002
22485
|
await this.delegateController.attachViewToDom();
|
|
22003
|
-
await present(this, 'loadingEnter', iosEnterAnimation$
|
|
22486
|
+
await present(this, 'loadingEnter', iosEnterAnimation$3, mdEnterAnimation$3);
|
|
22004
22487
|
if (this.duration > 0) {
|
|
22005
22488
|
this.durationTimeout = setTimeout(() => this.dismiss(), this.duration + 10);
|
|
22006
22489
|
}
|
|
@@ -22023,7 +22506,7 @@ class Loading {
|
|
|
22023
22506
|
if (this.durationTimeout) {
|
|
22024
22507
|
clearTimeout(this.durationTimeout);
|
|
22025
22508
|
}
|
|
22026
|
-
const dismissed = await dismiss(this, data, role, 'loadingLeave', iosLeaveAnimation$
|
|
22509
|
+
const dismissed = await dismiss(this, data, role, 'loadingLeave', iosLeaveAnimation$3, mdLeaveAnimation$3);
|
|
22027
22510
|
if (dismissed) {
|
|
22028
22511
|
this.delegateController.removeViewFromDom();
|
|
22029
22512
|
}
|
|
@@ -22058,9 +22541,9 @@ class Loading {
|
|
|
22058
22541
|
* Otherwise, don't set aria-labelledby.
|
|
22059
22542
|
*/
|
|
22060
22543
|
const ariaLabelledBy = message !== undefined ? msgId : null;
|
|
22061
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
22544
|
+
return (hAsync(Host, Object.assign({ key: 'ab48bfcee8f7e3e33847a2f262fdc08b9ea804ca', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
|
|
22062
22545
|
zIndex: `${40000 + this.overlayIndex}`,
|
|
22063
|
-
}, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: '
|
|
22546
|
+
}, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: '41baccc7fb6474389a3a3431c208e829ef738b75', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '7b7290974abbe8db8739b19835aca9f8b5c271c2', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: 'e32466abfcc92aaad47ea03b1dcb49f66abe4b63', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (hAsync("div", { key: 'c5e6e6f9e3f39dba0225d08d7dd2c1b96a1d83c7', class: "loading-spinner" }, hAsync("ion-spinner", { key: 'f428038959d879404ea898011363aac0b807ad11', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), hAsync("div", { key: '490e531367b86c319fa4260722dcff4dd631fa88', tabindex: "0", "aria-hidden": "true" })));
|
|
22064
22547
|
}
|
|
22065
22548
|
get el() { return getElement(this); }
|
|
22066
22549
|
static get watchers() { return {
|
|
@@ -24334,7 +24817,7 @@ const createEnterAnimation$1 = () => {
|
|
|
24334
24817
|
/**
|
|
24335
24818
|
* iOS Modal Enter Animation for the Card presentation style
|
|
24336
24819
|
*/
|
|
24337
|
-
const iosEnterAnimation$
|
|
24820
|
+
const iosEnterAnimation$2 = (baseEl, opts) => {
|
|
24338
24821
|
const { presentingEl, currentBreakpoint, expandToScroll } = opts;
|
|
24339
24822
|
const root = getElementRoot(baseEl);
|
|
24340
24823
|
const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
|
|
@@ -24427,7 +24910,7 @@ const createLeaveAnimation$1 = () => {
|
|
|
24427
24910
|
/**
|
|
24428
24911
|
* iOS Modal Leave Animation
|
|
24429
24912
|
*/
|
|
24430
|
-
const iosLeaveAnimation$
|
|
24913
|
+
const iosLeaveAnimation$2 = (baseEl, opts, duration = 500) => {
|
|
24431
24914
|
const { presentingEl, currentBreakpoint } = opts;
|
|
24432
24915
|
const root = getElementRoot(baseEl);
|
|
24433
24916
|
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
|
|
@@ -25602,13 +26085,20 @@ class Modal {
|
|
|
25602
26085
|
/**
|
|
25603
26086
|
* The interaction behavior for the sheet modal when the handle is pressed.
|
|
25604
26087
|
*
|
|
25605
|
-
*
|
|
25606
|
-
*
|
|
26088
|
+
* Handle behavior is unavailable when the `handle` property is set to
|
|
26089
|
+
* `false` or when the `breakpoints` property is not set (using a
|
|
26090
|
+
* fullscreen or card modal).
|
|
26091
|
+
*
|
|
26092
|
+
* Set to `"cycle"` to make the handle focusable and let the sheet modal
|
|
26093
|
+
* cycle between available breakpoints when pressed. This keeps the sheet
|
|
26094
|
+
* operable with assistive technology.
|
|
25607
26095
|
*
|
|
25608
|
-
*
|
|
25609
|
-
*
|
|
26096
|
+
* Set to `"none"` to make the handle purely decorative when pressed and
|
|
26097
|
+
* removed from the tab order.
|
|
26098
|
+
*
|
|
26099
|
+
* Defaults to `"cycle"`.
|
|
25610
26100
|
*/
|
|
25611
|
-
this.handleBehavior = '
|
|
26101
|
+
this.handleBehavior = 'cycle';
|
|
25612
26102
|
/**
|
|
25613
26103
|
* If `true`, the modal will be dismissed when the backdrop is clicked.
|
|
25614
26104
|
*/
|
|
@@ -25800,6 +26290,10 @@ class Modal {
|
|
|
25800
26290
|
// Also called in dismiss() — intentional dual cleanup covers both
|
|
25801
26291
|
// dismiss-then-remove and direct DOM removal without dismiss.
|
|
25802
26292
|
this.cleanupSafeAreaOverrides();
|
|
26293
|
+
// Clean up aria-hidden if removed without dismiss() being called
|
|
26294
|
+
if (this.presented) {
|
|
26295
|
+
cleanupRootFocusTrapAccessibility();
|
|
26296
|
+
}
|
|
25803
26297
|
}
|
|
25804
26298
|
componentWillLoad() {
|
|
25805
26299
|
var _a;
|
|
@@ -25976,7 +26470,7 @@ class Modal {
|
|
|
25976
26470
|
this.statusBarStyle = await StatusBar.getStyle();
|
|
25977
26471
|
setCardStatusBarDark();
|
|
25978
26472
|
}
|
|
25979
|
-
await present(this, 'modalEnter', iosEnterAnimation$
|
|
26473
|
+
await present(this, 'modalEnter', iosEnterAnimation$2, mdEnterAnimation$2, {
|
|
25980
26474
|
presentingEl: presentingElement,
|
|
25981
26475
|
currentBreakpoint: this.initialBreakpoint,
|
|
25982
26476
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
@@ -26038,7 +26532,7 @@ class Modal {
|
|
|
26038
26532
|
// All of the elements needed for the swipe gesture
|
|
26039
26533
|
// should be in the DOM and referenced by now, except
|
|
26040
26534
|
// for the presenting el
|
|
26041
|
-
const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$
|
|
26535
|
+
const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$2);
|
|
26042
26536
|
const ani = (this.animation = animationBuilder(el, {
|
|
26043
26537
|
presentingEl: this.presentingElement,
|
|
26044
26538
|
expandToScroll: this.expandToScroll,
|
|
@@ -26057,7 +26551,7 @@ class Modal {
|
|
|
26057
26551
|
if (!wrapperEl || initialBreakpoint === undefined) {
|
|
26058
26552
|
return;
|
|
26059
26553
|
}
|
|
26060
|
-
const animationBuilder = this.enterAnimation || config.get('modalEnter', iosEnterAnimation$
|
|
26554
|
+
const animationBuilder = this.enterAnimation || config.get('modalEnter', iosEnterAnimation$2);
|
|
26061
26555
|
const ani = (this.animation = animationBuilder(this.el, {
|
|
26062
26556
|
presentingEl: this.presentingElement,
|
|
26063
26557
|
currentBreakpoint: initialBreakpoint,
|
|
@@ -26247,7 +26741,7 @@ class Modal {
|
|
|
26247
26741
|
window.removeEventListener(KEYBOARD_DID_OPEN, this.keyboardOpenCallback);
|
|
26248
26742
|
this.keyboardOpenCallback = undefined;
|
|
26249
26743
|
}
|
|
26250
|
-
const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation$
|
|
26744
|
+
const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation$2, mdLeaveAnimation$2, {
|
|
26251
26745
|
presentingEl: presentingElement,
|
|
26252
26746
|
currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
|
|
26253
26747
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
@@ -26679,20 +27173,20 @@ class Modal {
|
|
|
26679
27173
|
const isCardModal = presentingElement !== undefined && mode === 'ios';
|
|
26680
27174
|
const isHandleCycle = handleBehavior === 'cycle';
|
|
26681
27175
|
const isSheetModalWithHandle = isSheetModal && showHandle;
|
|
26682
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
27176
|
+
return (hAsync(Host, Object.assign({ key: '528f9e354f470e22563938e7531e3f23a97e4200', "no-router": true,
|
|
26683
27177
|
// Allow the modal to be navigable when the handle is focusable
|
|
26684
27178
|
tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
|
|
26685
27179
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
26686
|
-
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), hAsync("ion-backdrop", { key: '
|
|
27180
|
+
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), hAsync("ion-backdrop", { key: '53983c96bc6b30df89986c8d9c978a8e6f78fe80', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: '34288a7343b7c47fed00d3abc73957f45f06d2fd', class: "modal-shadow" }), hAsync("div", Object.assign({ key: 'f9b37f547bd5c61037bbad1a71bfed80ba8c630b',
|
|
26687
27181
|
/*
|
|
26688
27182
|
role and aria-modal must be used on the
|
|
26689
27183
|
same element. They must also be set inside the
|
|
26690
27184
|
shadow DOM otherwise ion-button will not be highlighted
|
|
26691
27185
|
when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
|
|
26692
27186
|
*/
|
|
26693
|
-
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '
|
|
27187
|
+
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: 'b8741594108d3ea681ff41ff8f2241a4119578b1', class: "modal-handle",
|
|
26694
27188
|
// Prevents the handle from receiving keyboard focus when it does not cycle
|
|
26695
|
-
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), hAsync("slot", { key: '
|
|
27189
|
+
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), hAsync("slot", { key: 'bcc7960fae3fed09076c704d08c3afc46caa0738', onSlotchange: this.onSlotChange }))));
|
|
26696
27190
|
}
|
|
26697
27191
|
get el() { return getElement(this); }
|
|
26698
27192
|
static get watchers() { return {
|
|
@@ -27775,14 +28269,14 @@ class Note {
|
|
|
27775
28269
|
}; }
|
|
27776
28270
|
}
|
|
27777
28271
|
|
|
27778
|
-
const pickerIosCss
|
|
28272
|
+
const pickerIosCss = () => `:host{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:200px;direction:ltr;z-index:0}:host .picker-before,:host .picker-after{position:absolute;width:100%;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:1;pointer-events:none}:host .picker-before{top:0;height:83px}:host .picker-before{inset-inline-start:0}:host .picker-after{top:116px;height:84px}:host .picker-after{inset-inline-start:0}:host .picker-highlight{border-radius:var(--highlight-border-radius, 8px);left:0;right:0;top:50%;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0;position:absolute;width:calc(100% - 16px);height:34px;-webkit-transform:translateY(-50%);transform:translateY(-50%);background:var(--highlight-background);z-index:-1}:host input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}:host ::slotted(ion-picker-column:first-of-type){text-align:start}:host ::slotted(ion-picker-column:last-of-type){text-align:end}:host ::slotted(ion-picker-column:only-child){text-align:center}:host .picker-before{background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), to(rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8)));background:linear-gradient(to bottom, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8) 100%)}:host .picker-after{background:-webkit-gradient(linear, left bottom, left top, color-stop(20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), to(rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8)));background:linear-gradient(to top, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8) 100%)}:host .picker-highlight{background:var(--highlight-background, var(--ion-color-step-150, var(--ion-background-color-step-150, #eeeeef)))}`;
|
|
27779
28273
|
|
|
27780
|
-
const pickerMdCss
|
|
28274
|
+
const pickerMdCss = () => `:host{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:200px;direction:ltr;z-index:0}:host .picker-before,:host .picker-after{position:absolute;width:100%;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:1;pointer-events:none}:host .picker-before{top:0;height:83px}:host .picker-before{inset-inline-start:0}:host .picker-after{top:116px;height:84px}:host .picker-after{inset-inline-start:0}:host .picker-highlight{border-radius:var(--highlight-border-radius, 8px);left:0;right:0;top:50%;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0;position:absolute;width:calc(100% - 16px);height:34px;-webkit-transform:translateY(-50%);transform:translateY(-50%);background:var(--highlight-background);z-index:-1}:host input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}:host ::slotted(ion-picker-column:first-of-type){text-align:start}:host ::slotted(ion-picker-column:last-of-type){text-align:end}:host ::slotted(ion-picker-column:only-child){text-align:center}:host .picker-before{background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), color-stop(90%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0)));background:linear-gradient(to bottom, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0) 90%)}:host .picker-after{background:-webkit-gradient(linear, left bottom, left top, color-stop(30%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), color-stop(90%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0)));background:linear-gradient(to top, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 30%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0) 90%)}`;
|
|
27781
28275
|
|
|
27782
28276
|
/**
|
|
27783
28277
|
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
27784
28278
|
*/
|
|
27785
|
-
|
|
28279
|
+
class Picker {
|
|
27786
28280
|
constructor(hostRef) {
|
|
27787
28281
|
registerInstance(this, hostRef);
|
|
27788
28282
|
this.ionInputModeChange = createEvent(this, "ionInputModeChange", 7);
|
|
@@ -28248,8 +28742,8 @@ let Picker$1 = class Picker {
|
|
|
28248
28742
|
}
|
|
28249
28743
|
get el() { return getElement(this); }
|
|
28250
28744
|
static get style() { return {
|
|
28251
|
-
ios: pickerIosCss
|
|
28252
|
-
md: pickerMdCss
|
|
28745
|
+
ios: pickerIosCss(),
|
|
28746
|
+
md: pickerMdCss()
|
|
28253
28747
|
}; }
|
|
28254
28748
|
static get cmpMeta() { return {
|
|
28255
28749
|
"$flags$": 297,
|
|
@@ -28261,359 +28755,38 @@ let Picker$1 = class Picker {
|
|
|
28261
28755
|
"$lazyBundleId$": "-",
|
|
28262
28756
|
"$attrsToReflect$": []
|
|
28263
28757
|
}; }
|
|
28264
|
-
}
|
|
28265
|
-
|
|
28266
|
-
/**
|
|
28267
|
-
* iOS Picker Enter Animation
|
|
28268
|
-
*/
|
|
28269
|
-
const iosEnterAnimation$2 = (baseEl) => {
|
|
28270
|
-
const baseAnimation = createAnimation();
|
|
28271
|
-
const backdropAnimation = createAnimation();
|
|
28272
|
-
const wrapperAnimation = createAnimation();
|
|
28273
|
-
backdropAnimation
|
|
28274
|
-
.addElement(baseEl.querySelector('ion-backdrop'))
|
|
28275
|
-
.fromTo('opacity', 0.01, 'var(--backdrop-opacity)')
|
|
28276
|
-
.beforeStyles({
|
|
28277
|
-
'pointer-events': 'none',
|
|
28278
|
-
})
|
|
28279
|
-
.afterClearStyles(['pointer-events']);
|
|
28280
|
-
wrapperAnimation
|
|
28281
|
-
.addElement(baseEl.querySelector('.picker-wrapper'))
|
|
28282
|
-
.fromTo('transform', 'translateY(100%)', 'translateY(0%)');
|
|
28283
|
-
return baseAnimation
|
|
28284
|
-
.addElement(baseEl)
|
|
28285
|
-
.easing('cubic-bezier(.36,.66,.04,1)')
|
|
28286
|
-
.duration(400)
|
|
28287
|
-
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
28288
|
-
};
|
|
28289
|
-
|
|
28290
|
-
/**
|
|
28291
|
-
* iOS Picker Leave Animation
|
|
28292
|
-
*/
|
|
28293
|
-
const iosLeaveAnimation$2 = (baseEl) => {
|
|
28294
|
-
const baseAnimation = createAnimation();
|
|
28295
|
-
const backdropAnimation = createAnimation();
|
|
28296
|
-
const wrapperAnimation = createAnimation();
|
|
28297
|
-
backdropAnimation
|
|
28298
|
-
.addElement(baseEl.querySelector('ion-backdrop'))
|
|
28299
|
-
.fromTo('opacity', 'var(--backdrop-opacity)', 0.01);
|
|
28300
|
-
wrapperAnimation
|
|
28301
|
-
.addElement(baseEl.querySelector('.picker-wrapper'))
|
|
28302
|
-
.fromTo('transform', 'translateY(0%)', 'translateY(100%)');
|
|
28303
|
-
return baseAnimation
|
|
28304
|
-
.addElement(baseEl)
|
|
28305
|
-
.easing('cubic-bezier(.36,.66,.04,1)')
|
|
28306
|
-
.duration(400)
|
|
28307
|
-
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
28308
|
-
};
|
|
28309
|
-
|
|
28310
|
-
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}.sc-ion-picker-legacy-ios-h{inset-inline-start: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, var(--ion-background-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, #0054e9);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}.picker-above-highlight.sc-ion-picker-legacy-ios{inset-inline-start: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}.picker-below-highlight.sc-ion-picker-legacy-ios{inset-inline-start:0}`;
|
|
28758
|
+
}
|
|
28311
28759
|
|
|
28312
|
-
const
|
|
28760
|
+
const pickerColumnCss = () => `:host{display:-ms-flexbox;display:flex;position:relative;-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}.assistive-focusable{left:0;right:0;top:0;bottom:0;position:absolute;z-index:1;pointer-events:none}.assistive-focusable:focus{outline:none}.picker-opts{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0px;padding-bottom:0px;min-width:26px;max-height:200px;outline:none;text-align:inherit;-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;overflow-x:hidden;overflow-y:scroll;scrollbar-width:none}.picker-item-empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.picker-opts::-webkit-scrollbar{display:none}::slotted(ion-picker-column-option){display:block;scroll-snap-align:center}.picker-item-empty,:host(:not([disabled])) ::slotted(ion-picker-column-option.option-disabled){scroll-snap-align:none}::slotted([slot=prefix]),::slotted([slot=suffix]){max-width:200px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::slotted([slot=prefix]){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-ms-flex-pack:end;justify-content:end}::slotted([slot=suffix]){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-ms-flex-pack:start;justify-content:start}:host(.picker-column-disabled) .picker-opts{overflow-y:hidden}:host(.picker-column-disabled) ::slotted(ion-picker-column-option){cursor:default;opacity:0.4;pointer-events:none}@media (any-hover: hover){:host(:focus) .picker-opts{outline:none;background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2)}:host(.ion-color:focus) .picker-opts{background:rgba(var(--ion-color-base-rgb), 0.2)}}`;
|
|
28313
28761
|
|
|
28314
|
-
// TODO(FW-2832): types
|
|
28315
28762
|
/**
|
|
28316
28763
|
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
28764
|
+
*
|
|
28765
|
+
* @slot prefix - Content to show on the left side of the picker options.
|
|
28766
|
+
* @slot suffix - Content to show on the right side of the picker options.
|
|
28317
28767
|
*/
|
|
28318
|
-
class
|
|
28768
|
+
class PickerColumn {
|
|
28319
28769
|
constructor(hostRef) {
|
|
28320
28770
|
registerInstance(this, hostRef);
|
|
28321
|
-
this.
|
|
28322
|
-
this.
|
|
28323
|
-
this.
|
|
28324
|
-
this.
|
|
28325
|
-
this.
|
|
28326
|
-
this.
|
|
28327
|
-
this.
|
|
28328
|
-
this.didDismissShorthand = createEvent(this, "didDismiss", 7);
|
|
28329
|
-
this.delegateController = createDelegateController(this);
|
|
28330
|
-
this.lockController = createLockController();
|
|
28331
|
-
this.triggerController = createTriggerController();
|
|
28332
|
-
this.presented = false;
|
|
28333
|
-
/** @internal */
|
|
28334
|
-
this.hasController = false;
|
|
28335
|
-
/**
|
|
28336
|
-
* If `true`, the keyboard will be automatically dismissed when the overlay is presented.
|
|
28337
|
-
*/
|
|
28338
|
-
this.keyboardClose = true;
|
|
28339
|
-
/**
|
|
28340
|
-
* Array of buttons to be displayed at the top of the picker.
|
|
28341
|
-
*/
|
|
28342
|
-
this.buttons = [];
|
|
28343
|
-
/**
|
|
28344
|
-
* Array of columns to be displayed in the picker.
|
|
28345
|
-
*/
|
|
28346
|
-
this.columns = [];
|
|
28347
|
-
/**
|
|
28348
|
-
* Number of milliseconds to wait before dismissing the picker.
|
|
28349
|
-
*/
|
|
28350
|
-
this.duration = 0;
|
|
28351
|
-
/**
|
|
28352
|
-
* If `true`, a backdrop will be displayed behind the picker.
|
|
28353
|
-
*/
|
|
28354
|
-
this.showBackdrop = true;
|
|
28771
|
+
this.ionChange = createEvent(this, "ionChange", 7);
|
|
28772
|
+
this.isScrolling = false;
|
|
28773
|
+
this.isColumnVisible = false;
|
|
28774
|
+
this.canExitInputMode = true;
|
|
28775
|
+
this.updateValueTextOnScroll = false;
|
|
28776
|
+
this.ariaLabel = null;
|
|
28777
|
+
this.isActive = false;
|
|
28355
28778
|
/**
|
|
28356
|
-
* If `true`, the
|
|
28779
|
+
* If `true`, the user cannot interact with the picker.
|
|
28357
28780
|
*/
|
|
28358
|
-
this.
|
|
28781
|
+
this.disabled = false;
|
|
28359
28782
|
/**
|
|
28360
|
-
* If `true`, the picker will
|
|
28361
|
-
|
|
28362
|
-
|
|
28363
|
-
|
|
28364
|
-
*
|
|
28365
|
-
*
|
|
28366
|
-
*
|
|
28367
|
-
* Note: `isOpen` will not automatically be set back to `false` when
|
|
28368
|
-
* the picker dismisses. You will need to do that in your code.
|
|
28369
|
-
*/
|
|
28370
|
-
this.isOpen = false;
|
|
28371
|
-
this.onBackdropTap = () => {
|
|
28372
|
-
this.dismiss(undefined, BACKDROP);
|
|
28373
|
-
};
|
|
28374
|
-
this.dispatchCancelHandler = (ev) => {
|
|
28375
|
-
const role = ev.detail.role;
|
|
28376
|
-
if (isCancel(role)) {
|
|
28377
|
-
const cancelButton = this.buttons.find((b) => b.role === 'cancel');
|
|
28378
|
-
this.callButtonHandler(cancelButton);
|
|
28379
|
-
}
|
|
28380
|
-
};
|
|
28381
|
-
}
|
|
28382
|
-
onIsOpenChange(newValue, oldValue) {
|
|
28383
|
-
if (newValue === true && oldValue === false) {
|
|
28384
|
-
this.present();
|
|
28385
|
-
}
|
|
28386
|
-
else if (newValue === false && oldValue === true) {
|
|
28387
|
-
this.dismiss();
|
|
28388
|
-
}
|
|
28389
|
-
}
|
|
28390
|
-
triggerChanged() {
|
|
28391
|
-
const { trigger, el, triggerController } = this;
|
|
28392
|
-
if (trigger) {
|
|
28393
|
-
triggerController.addClickListener(el, trigger);
|
|
28394
|
-
}
|
|
28395
|
-
}
|
|
28396
|
-
connectedCallback() {
|
|
28397
|
-
prepareOverlay(this.el);
|
|
28398
|
-
this.triggerChanged();
|
|
28399
|
-
}
|
|
28400
|
-
disconnectedCallback() {
|
|
28401
|
-
this.triggerController.removeClickListener();
|
|
28402
|
-
}
|
|
28403
|
-
componentWillLoad() {
|
|
28404
|
-
var _a;
|
|
28405
|
-
if (!((_a = this.htmlAttributes) === null || _a === void 0 ? void 0 : _a.id)) {
|
|
28406
|
-
setOverlayId(this.el);
|
|
28407
|
-
}
|
|
28408
|
-
}
|
|
28409
|
-
componentDidLoad() {
|
|
28410
|
-
printIonWarning('[ion-picker-legacy] - 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);
|
|
28411
|
-
/**
|
|
28412
|
-
* If picker was rendered with isOpen="true"
|
|
28413
|
-
* then we should open picker immediately.
|
|
28414
|
-
*/
|
|
28415
|
-
if (this.isOpen === true) {
|
|
28416
|
-
raf(() => this.present());
|
|
28417
|
-
}
|
|
28418
|
-
/**
|
|
28419
|
-
* When binding values in frameworks such as Angular
|
|
28420
|
-
* it is possible for the value to be set after the Web Component
|
|
28421
|
-
* initializes but before the value watcher is set up in Stencil.
|
|
28422
|
-
* As a result, the watcher callback may not be fired.
|
|
28423
|
-
* We work around this by manually calling the watcher
|
|
28424
|
-
* callback when the component has loaded and the watcher
|
|
28425
|
-
* is configured.
|
|
28426
|
-
*/
|
|
28427
|
-
this.triggerChanged();
|
|
28428
|
-
}
|
|
28429
|
-
/**
|
|
28430
|
-
* Present the picker overlay after it has been created.
|
|
28431
|
-
*/
|
|
28432
|
-
async present() {
|
|
28433
|
-
const unlock = await this.lockController.lock();
|
|
28434
|
-
await this.delegateController.attachViewToDom();
|
|
28435
|
-
await present(this, 'pickerEnter', iosEnterAnimation$2, iosEnterAnimation$2, undefined);
|
|
28436
|
-
if (this.duration > 0) {
|
|
28437
|
-
this.durationTimeout = setTimeout(() => this.dismiss(), this.duration);
|
|
28438
|
-
}
|
|
28439
|
-
unlock();
|
|
28440
|
-
}
|
|
28441
|
-
/**
|
|
28442
|
-
* Dismiss the picker overlay after it has been presented.
|
|
28443
|
-
*
|
|
28444
|
-
* @param data Any data to emit in the dismiss events.
|
|
28445
|
-
* @param role The role of the element that is dismissing the picker.
|
|
28446
|
-
* This can be useful in a button handler for determining which button was
|
|
28447
|
-
* clicked to dismiss the picker.
|
|
28448
|
-
* Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
|
|
28449
|
-
*/
|
|
28450
|
-
async dismiss(data, role) {
|
|
28451
|
-
const unlock = await this.lockController.lock();
|
|
28452
|
-
if (this.durationTimeout) {
|
|
28453
|
-
clearTimeout(this.durationTimeout);
|
|
28454
|
-
}
|
|
28455
|
-
const dismissed = await dismiss(this, data, role, 'pickerLeave', iosLeaveAnimation$2, iosLeaveAnimation$2);
|
|
28456
|
-
if (dismissed) {
|
|
28457
|
-
this.delegateController.removeViewFromDom();
|
|
28458
|
-
}
|
|
28459
|
-
unlock();
|
|
28460
|
-
return dismissed;
|
|
28461
|
-
}
|
|
28462
|
-
/**
|
|
28463
|
-
* Returns a promise that resolves when the picker did dismiss.
|
|
28464
|
-
*/
|
|
28465
|
-
onDidDismiss() {
|
|
28466
|
-
return eventMethod(this.el, 'ionPickerDidDismiss');
|
|
28467
|
-
}
|
|
28468
|
-
/**
|
|
28469
|
-
* Returns a promise that resolves when the picker will dismiss.
|
|
28470
|
-
*/
|
|
28471
|
-
onWillDismiss() {
|
|
28472
|
-
return eventMethod(this.el, 'ionPickerWillDismiss');
|
|
28473
|
-
}
|
|
28474
|
-
/**
|
|
28475
|
-
* Get the column that matches the specified name.
|
|
28476
|
-
*
|
|
28477
|
-
* @param name The name of the column.
|
|
28478
|
-
*/
|
|
28479
|
-
getColumn(name) {
|
|
28480
|
-
return Promise.resolve(this.columns.find((column) => column.name === name));
|
|
28481
|
-
}
|
|
28482
|
-
async buttonClick(button) {
|
|
28483
|
-
const role = button.role;
|
|
28484
|
-
if (isCancel(role)) {
|
|
28485
|
-
return this.dismiss(undefined, role);
|
|
28486
|
-
}
|
|
28487
|
-
const shouldDismiss = await this.callButtonHandler(button);
|
|
28488
|
-
if (shouldDismiss) {
|
|
28489
|
-
return this.dismiss(this.getSelected(), button.role);
|
|
28490
|
-
}
|
|
28491
|
-
return Promise.resolve();
|
|
28492
|
-
}
|
|
28493
|
-
async callButtonHandler(button) {
|
|
28494
|
-
if (button) {
|
|
28495
|
-
// a handler has been provided, execute it
|
|
28496
|
-
// pass the handler the values from the inputs
|
|
28497
|
-
const rtn = await safeCall(button.handler, this.getSelected());
|
|
28498
|
-
if (rtn === false) {
|
|
28499
|
-
// if the return value of the handler is false then do not dismiss
|
|
28500
|
-
return false;
|
|
28501
|
-
}
|
|
28502
|
-
}
|
|
28503
|
-
return true;
|
|
28504
|
-
}
|
|
28505
|
-
getSelected() {
|
|
28506
|
-
const selected = {};
|
|
28507
|
-
this.columns.forEach((col, index) => {
|
|
28508
|
-
const selectedColumn = col.selectedIndex !== undefined ? col.options[col.selectedIndex] : undefined;
|
|
28509
|
-
selected[col.name] = {
|
|
28510
|
-
text: selectedColumn ? selectedColumn.text : undefined,
|
|
28511
|
-
value: selectedColumn ? selectedColumn.value : undefined,
|
|
28512
|
-
columnIndex: index,
|
|
28513
|
-
};
|
|
28514
|
-
});
|
|
28515
|
-
return selected;
|
|
28516
|
-
}
|
|
28517
|
-
render() {
|
|
28518
|
-
const { htmlAttributes } = this;
|
|
28519
|
-
const mode = getIonMode$1(this);
|
|
28520
|
-
return (hAsync(Host, Object.assign({ key: '80f66d33780d8a1352d24be9cb63a0cc03d01ab5', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
|
|
28521
|
-
zIndex: `${20000 + this.overlayIndex}`,
|
|
28522
|
-
}, class: Object.assign({ [mode]: true,
|
|
28523
|
-
// Used internally for styling
|
|
28524
|
-
[`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), hAsync("ion-backdrop", { key: '97fb8e10ba08b197610cb8c0cdea61103883d55f', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: 'b3969cb6fbf7153623d14e3ca1493d3370efb211', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '299268483c3727e698d9135bfdf40349a7050ac1', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, hAsync("div", { key: '95394de3ef691899b7dbf416f56fd3e86bbdce3f', 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", { key: '05f18bb8d00dc0e22f691b7e41f90f729a6c66d7', class: "picker-columns" }, hAsync("div", { key: '4a8fdf224effc0af67fd413e2e6aca8a78d1cf43', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => hAsync("ion-picker-legacy-column", { col: c })), hAsync("div", { key: 'e50a31db45e3f39e9d0fed36a21be9257eec09bf', class: "picker-below-highlight" }))), hAsync("div", { key: '5a78cb2176ac807ea0c195c6b76cd0e8eef9d4c0', tabindex: "0", "aria-hidden": "true" })));
|
|
28525
|
-
}
|
|
28526
|
-
get el() { return getElement(this); }
|
|
28527
|
-
static get watchers() { return {
|
|
28528
|
-
"isOpen": [{
|
|
28529
|
-
"onIsOpenChange": 0
|
|
28530
|
-
}],
|
|
28531
|
-
"trigger": [{
|
|
28532
|
-
"triggerChanged": 0
|
|
28533
|
-
}]
|
|
28534
|
-
}; }
|
|
28535
|
-
static get style() { return {
|
|
28536
|
-
ios: pickerIosCss(),
|
|
28537
|
-
md: pickerMdCss()
|
|
28538
|
-
}; }
|
|
28539
|
-
static get cmpMeta() { return {
|
|
28540
|
-
"$flags$": 34,
|
|
28541
|
-
"$tagName$": "ion-picker-legacy",
|
|
28542
|
-
"$members$": {
|
|
28543
|
-
"overlayIndex": [2, "overlay-index"],
|
|
28544
|
-
"delegate": [16],
|
|
28545
|
-
"hasController": [4, "has-controller"],
|
|
28546
|
-
"keyboardClose": [4, "keyboard-close"],
|
|
28547
|
-
"enterAnimation": [16],
|
|
28548
|
-
"leaveAnimation": [16],
|
|
28549
|
-
"buttons": [16],
|
|
28550
|
-
"columns": [16],
|
|
28551
|
-
"cssClass": [1, "css-class"],
|
|
28552
|
-
"duration": [2],
|
|
28553
|
-
"showBackdrop": [4, "show-backdrop"],
|
|
28554
|
-
"backdropDismiss": [4, "backdrop-dismiss"],
|
|
28555
|
-
"animated": [4],
|
|
28556
|
-
"htmlAttributes": [16],
|
|
28557
|
-
"isOpen": [4, "is-open"],
|
|
28558
|
-
"trigger": [1],
|
|
28559
|
-
"presented": [32],
|
|
28560
|
-
"present": [64],
|
|
28561
|
-
"dismiss": [64],
|
|
28562
|
-
"onDidDismiss": [64],
|
|
28563
|
-
"onWillDismiss": [64],
|
|
28564
|
-
"getColumn": [64]
|
|
28565
|
-
},
|
|
28566
|
-
"$listeners$": undefined,
|
|
28567
|
-
"$lazyBundleId$": "-",
|
|
28568
|
-
"$attrsToReflect$": []
|
|
28569
|
-
}; }
|
|
28570
|
-
}
|
|
28571
|
-
const buttonWrapperClass = (button) => {
|
|
28572
|
-
return {
|
|
28573
|
-
[`picker-toolbar-${button.role}`]: button.role !== undefined,
|
|
28574
|
-
'picker-toolbar-button': true,
|
|
28575
|
-
};
|
|
28576
|
-
};
|
|
28577
|
-
const buttonClass$1 = (button) => {
|
|
28578
|
-
return Object.assign({ 'picker-button': true, 'ion-activatable': true }, getClassMap(button.cssClass));
|
|
28579
|
-
};
|
|
28580
|
-
|
|
28581
|
-
const pickerColumnCss = () => `:host{display:-ms-flexbox;display:flex;position:relative;-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}.assistive-focusable{left:0;right:0;top:0;bottom:0;position:absolute;z-index:1;pointer-events:none}.assistive-focusable:focus{outline:none}.picker-opts{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0px;padding-bottom:0px;min-width:26px;max-height:200px;outline:none;text-align:inherit;-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;overflow-x:hidden;overflow-y:scroll;scrollbar-width:none}.picker-item-empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.picker-opts::-webkit-scrollbar{display:none}::slotted(ion-picker-column-option){display:block;scroll-snap-align:center}.picker-item-empty,:host(:not([disabled])) ::slotted(ion-picker-column-option.option-disabled){scroll-snap-align:none}::slotted([slot=prefix]),::slotted([slot=suffix]){max-width:200px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::slotted([slot=prefix]){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-ms-flex-pack:end;justify-content:end}::slotted([slot=suffix]){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-ms-flex-pack:start;justify-content:start}:host(.picker-column-disabled) .picker-opts{overflow-y:hidden}:host(.picker-column-disabled) ::slotted(ion-picker-column-option){cursor:default;opacity:0.4;pointer-events:none}@media (any-hover: hover){:host(:focus) .picker-opts{outline:none;background:rgba(var(--ion-color-base-rgb), 0.2)}}`;
|
|
28582
|
-
|
|
28583
|
-
/**
|
|
28584
|
-
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
28585
|
-
*
|
|
28586
|
-
* @slot prefix - Content to show on the left side of the picker options.
|
|
28587
|
-
* @slot suffix - Content to show on the right side of the picker options.
|
|
28588
|
-
*/
|
|
28589
|
-
class PickerColumn {
|
|
28590
|
-
constructor(hostRef) {
|
|
28591
|
-
registerInstance(this, hostRef);
|
|
28592
|
-
this.ionChange = createEvent(this, "ionChange", 7);
|
|
28593
|
-
this.isScrolling = false;
|
|
28594
|
-
this.isColumnVisible = false;
|
|
28595
|
-
this.canExitInputMode = true;
|
|
28596
|
-
this.updateValueTextOnScroll = false;
|
|
28597
|
-
this.ariaLabel = null;
|
|
28598
|
-
this.isActive = false;
|
|
28599
|
-
/**
|
|
28600
|
-
* If `true`, the user cannot interact with the picker.
|
|
28601
|
-
*/
|
|
28602
|
-
this.disabled = false;
|
|
28603
|
-
/**
|
|
28604
|
-
* The color to use from your application's color palette.
|
|
28605
|
-
* Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
|
|
28606
|
-
* For more information on colors, see [theming](/docs/theming/basics).
|
|
28607
|
-
*/
|
|
28608
|
-
this.color = 'primary';
|
|
28609
|
-
/**
|
|
28610
|
-
* If `true`, tapping the picker will
|
|
28611
|
-
* reveal a number input keyboard that lets
|
|
28612
|
-
* the user type in values for each picker
|
|
28613
|
-
* column. This is useful when working
|
|
28614
|
-
* with time pickers.
|
|
28615
|
-
*
|
|
28616
|
-
* @internal
|
|
28783
|
+
* If `true`, tapping the picker will
|
|
28784
|
+
* reveal a number input keyboard that lets
|
|
28785
|
+
* the user type in values for each picker
|
|
28786
|
+
* column. This is useful when working
|
|
28787
|
+
* with time pickers.
|
|
28788
|
+
*
|
|
28789
|
+
* @internal
|
|
28617
28790
|
*/
|
|
28618
28791
|
this.numericInput = false;
|
|
28619
28792
|
this.centerPickerItemInView = (target, smooth = true, canExitInputMode = true) => {
|
|
@@ -29068,469 +29241,104 @@ class PickerColumn {
|
|
|
29068
29241
|
*
|
|
29069
29242
|
*/
|
|
29070
29243
|
if (firstOption !== null && firstOption.value !== value) {
|
|
29071
|
-
this.setValue(firstOption.value);
|
|
29072
|
-
}
|
|
29073
|
-
}
|
|
29074
|
-
}
|
|
29075
|
-
/** @internal */
|
|
29076
|
-
async scrollActiveItemIntoView(smooth = false) {
|
|
29077
|
-
const activeEl = this.activeItem;
|
|
29078
|
-
if (activeEl) {
|
|
29079
|
-
this.centerPickerItemInView(activeEl, smooth, false);
|
|
29080
|
-
}
|
|
29081
|
-
}
|
|
29082
|
-
/**
|
|
29083
|
-
* Sets the value prop and fires the ionChange event.
|
|
29084
|
-
* This is used when we need to fire ionChange from
|
|
29085
|
-
* user-generated events that cannot be caught with normal
|
|
29086
|
-
* input/change event listeners.
|
|
29087
|
-
* @internal
|
|
29088
|
-
*/
|
|
29089
|
-
async setValue(value) {
|
|
29090
|
-
if (this.disabled === true || this.value === value) {
|
|
29091
|
-
return;
|
|
29092
|
-
}
|
|
29093
|
-
this.value = value;
|
|
29094
|
-
this.ionChange.emit({ value });
|
|
29095
|
-
}
|
|
29096
|
-
/**
|
|
29097
|
-
* Sets focus on the scrollable container within the picker column.
|
|
29098
|
-
* Use this method instead of the global `pickerColumn.focus()`.
|
|
29099
|
-
*/
|
|
29100
|
-
async setFocus() {
|
|
29101
|
-
if (this.assistiveFocusable) {
|
|
29102
|
-
this.assistiveFocusable.focus();
|
|
29103
|
-
}
|
|
29104
|
-
}
|
|
29105
|
-
connectedCallback() {
|
|
29106
|
-
var _a;
|
|
29107
|
-
this.ariaLabel = (_a = this.el.getAttribute('aria-label')) !== null && _a !== void 0 ? _a : 'Select a value';
|
|
29108
|
-
}
|
|
29109
|
-
get activeItem() {
|
|
29110
|
-
const { value } = this;
|
|
29111
|
-
const options = Array.from(this.el.querySelectorAll('ion-picker-column-option'));
|
|
29112
|
-
return options.find((option) => {
|
|
29113
|
-
/**
|
|
29114
|
-
* If the whole picker column is disabled, the current value should appear active
|
|
29115
|
-
* If the current value item is specifically disabled, it should not appear active
|
|
29116
|
-
*/
|
|
29117
|
-
if (!this.disabled && option.disabled) {
|
|
29118
|
-
return false;
|
|
29119
|
-
}
|
|
29120
|
-
return option.value === value;
|
|
29121
|
-
});
|
|
29122
|
-
}
|
|
29123
|
-
render() {
|
|
29124
|
-
const { color, disabled, isActive, numericInput } = this;
|
|
29125
|
-
const mode = getIonMode$1(this);
|
|
29126
|
-
return (hAsync(Host, { key: '234c96a501d7ac413b9b0ea56b33017681e25b40', class: createColorClasses$1(color, {
|
|
29127
|
-
[mode]: true,
|
|
29128
|
-
['picker-column-active']: isActive,
|
|
29129
|
-
['picker-column-numeric-input']: numericInput,
|
|
29130
|
-
['picker-column-disabled']: disabled,
|
|
29131
|
-
}) }, hAsync("slot", { key: '9dc15ea0601ddd2cb2e0a745e91e036a8bd96f8b', name: "prefix" }), hAsync("div", { key: 'de4fe28ee4bc46b7c0420d6ab0df0e7809443da9', class: "picker-opts", ref: (el) => {
|
|
29132
|
-
this.scrollEl = el;
|
|
29133
|
-
}, role: "slider", tabindex: this.disabled ? undefined : 0, "aria-label": this.ariaLabel, "aria-valuemin": 0, "aria-valuemax": 0, "aria-valuenow": 0, "aria-valuetext": this.getOptionValueText(this.activeItem), "aria-orientation": "vertical", onKeyDown: (ev) => this.onKeyDown(ev) }, hAsync("div", { key: '5297617462cc30e9444039ae032d8bdf718349af', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '55ea39ef867bcb1a11a912d52ecd20cb886c5fb3', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '3496730ce6182ebfd33e0ee4bafc130feb575a31', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("slot", { key: '44c3628aa957d60f799dc7019f72fe8b676c7843' }), hAsync("div", { key: '5a1809f6c949678a67e0d4b5bfe93ea335c0161d', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '98fd57f1c66dbaebc2db2dd5da142671b3159fd1', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '85590708abddfa885994e549deac64866fec938f', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), hAsync("slot", { key: 'bb7e674f543696a80fcbfb1f68f2e975826898a6', name: "suffix" })));
|
|
29134
|
-
}
|
|
29135
|
-
get el() { return getElement(this); }
|
|
29136
|
-
static get watchers() { return {
|
|
29137
|
-
"aria-label": [{
|
|
29138
|
-
"ariaLabelChanged": 0
|
|
29139
|
-
}],
|
|
29140
|
-
"value": [{
|
|
29141
|
-
"valueChange": 0
|
|
29142
|
-
}]
|
|
29143
|
-
}; }
|
|
29144
|
-
static get style() { return pickerColumnCss(); }
|
|
29145
|
-
static get cmpMeta() { return {
|
|
29146
|
-
"$flags$": 265,
|
|
29147
|
-
"$tagName$": "ion-picker-column",
|
|
29148
|
-
"$members$": {
|
|
29149
|
-
"disabled": [4],
|
|
29150
|
-
"value": [1032],
|
|
29151
|
-
"color": [513],
|
|
29152
|
-
"numericInput": [4, "numeric-input"],
|
|
29153
|
-
"ariaLabel": [32],
|
|
29154
|
-
"isActive": [32],
|
|
29155
|
-
"scrollActiveItemIntoView": [64],
|
|
29156
|
-
"setValue": [64],
|
|
29157
|
-
"setFocus": [64]
|
|
29158
|
-
},
|
|
29159
|
-
"$listeners$": undefined,
|
|
29160
|
-
"$lazyBundleId$": "-",
|
|
29161
|
-
"$attrsToReflect$": [["color", "color"]]
|
|
29162
|
-
}; }
|
|
29163
|
-
}
|
|
29164
|
-
const PICKER_ITEM_ACTIVE_CLASS = 'option-active';
|
|
29165
|
-
|
|
29166
|
-
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}.picker-opt{inset-inline-start: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}}`;
|
|
29167
|
-
|
|
29168
|
-
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}.picker-opt{inset-inline-start: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, #0054e9)}`;
|
|
29169
|
-
|
|
29170
|
-
/**
|
|
29171
|
-
* @internal
|
|
29172
|
-
*/
|
|
29173
|
-
class PickerColumnCmp {
|
|
29174
|
-
constructor(hostRef) {
|
|
29175
|
-
registerInstance(this, hostRef);
|
|
29176
|
-
this.ionPickerColChange = createEvent(this, "ionPickerColChange", 7);
|
|
29177
|
-
this.optHeight = 0;
|
|
29178
|
-
this.rotateFactor = 0;
|
|
29179
|
-
this.scaleFactor = 1;
|
|
29180
|
-
this.velocity = 0;
|
|
29181
|
-
this.y = 0;
|
|
29182
|
-
this.noAnimate = true;
|
|
29183
|
-
// `colDidChange` is a flag that gets set when the column is changed
|
|
29184
|
-
// dynamically. When this flag is set, the column will refresh
|
|
29185
|
-
// after the component re-renders to incorporate the new column data.
|
|
29186
|
-
// This is necessary because `this.refresh` queries for the option elements,
|
|
29187
|
-
// so it needs to wait for the latest elements to be available in the DOM.
|
|
29188
|
-
// Ex: column is created with 3 options. User updates the column data
|
|
29189
|
-
// to have 5 options. The column will still think it only has 3 options.
|
|
29190
|
-
this.colDidChange = false;
|
|
29191
|
-
}
|
|
29192
|
-
colChanged() {
|
|
29193
|
-
this.colDidChange = true;
|
|
29194
|
-
}
|
|
29195
|
-
async connectedCallback() {
|
|
29196
|
-
let pickerRotateFactor = 0;
|
|
29197
|
-
let pickerScaleFactor = 0.81;
|
|
29198
|
-
const mode = getIonMode$1(this);
|
|
29199
|
-
if (mode === 'ios') {
|
|
29200
|
-
pickerRotateFactor = -0.46;
|
|
29201
|
-
pickerScaleFactor = 1;
|
|
29202
|
-
}
|
|
29203
|
-
this.rotateFactor = pickerRotateFactor;
|
|
29204
|
-
this.scaleFactor = pickerScaleFactor;
|
|
29205
|
-
this.gesture = (await Promise.resolve().then(function () { return index; })).createGesture({
|
|
29206
|
-
el: this.el,
|
|
29207
|
-
gestureName: 'picker-swipe',
|
|
29208
|
-
gesturePriority: 100,
|
|
29209
|
-
threshold: 0,
|
|
29210
|
-
passive: false,
|
|
29211
|
-
onStart: (ev) => this.onStart(ev),
|
|
29212
|
-
onMove: (ev) => this.onMove(ev),
|
|
29213
|
-
onEnd: (ev) => this.onEnd(ev),
|
|
29214
|
-
});
|
|
29215
|
-
this.gesture.enable();
|
|
29216
|
-
// Options have not been initialized yet
|
|
29217
|
-
// Animation must be disabled through the `noAnimate` flag
|
|
29218
|
-
// Otherwise, the options will render
|
|
29219
|
-
// at the top of the column and transition down
|
|
29220
|
-
this.tmrId = setTimeout(() => {
|
|
29221
|
-
this.noAnimate = false;
|
|
29222
|
-
// After initialization, `refresh()` will be called
|
|
29223
|
-
// At this point, animation will be enabled. The options will
|
|
29224
|
-
// animate as they are being selected.
|
|
29225
|
-
this.refresh(true);
|
|
29226
|
-
}, 250);
|
|
29227
|
-
}
|
|
29228
|
-
componentDidLoad() {
|
|
29229
|
-
this.onDomChange();
|
|
29230
|
-
}
|
|
29231
|
-
componentDidUpdate() {
|
|
29232
|
-
// Options may have changed since last update.
|
|
29233
|
-
if (this.colDidChange) {
|
|
29234
|
-
// Animation must be disabled through the `onDomChange` parameter.
|
|
29235
|
-
// Otherwise, the recently added options will render
|
|
29236
|
-
// at the top of the column and transition down
|
|
29237
|
-
this.onDomChange(true, false);
|
|
29238
|
-
this.colDidChange = false;
|
|
29239
|
-
}
|
|
29240
|
-
}
|
|
29241
|
-
disconnectedCallback() {
|
|
29242
|
-
if (this.rafId !== undefined)
|
|
29243
|
-
cancelAnimationFrame(this.rafId);
|
|
29244
|
-
if (this.tmrId)
|
|
29245
|
-
clearTimeout(this.tmrId);
|
|
29246
|
-
if (this.gesture) {
|
|
29247
|
-
this.gesture.destroy();
|
|
29248
|
-
this.gesture = undefined;
|
|
29249
|
-
}
|
|
29250
|
-
}
|
|
29251
|
-
emitColChange() {
|
|
29252
|
-
this.ionPickerColChange.emit(this.col);
|
|
29253
|
-
}
|
|
29254
|
-
setSelected(selectedIndex, duration) {
|
|
29255
|
-
// if there is a selected index, then figure out it's y position
|
|
29256
|
-
// if there isn't a selected index, then just use the top y position
|
|
29257
|
-
const y = selectedIndex > -1 ? -(selectedIndex * this.optHeight) : 0;
|
|
29258
|
-
this.velocity = 0;
|
|
29259
|
-
// set what y position we're at
|
|
29260
|
-
if (this.rafId !== undefined)
|
|
29261
|
-
cancelAnimationFrame(this.rafId);
|
|
29262
|
-
this.update(y, duration, true);
|
|
29263
|
-
this.emitColChange();
|
|
29264
|
-
}
|
|
29265
|
-
update(y, duration, saveY) {
|
|
29266
|
-
if (!this.optsEl) {
|
|
29267
|
-
return;
|
|
29268
|
-
}
|
|
29269
|
-
// ensure we've got a good round number :)
|
|
29270
|
-
let translateY = 0;
|
|
29271
|
-
let translateZ = 0;
|
|
29272
|
-
const { col, rotateFactor } = this;
|
|
29273
|
-
const prevSelected = col.selectedIndex;
|
|
29274
|
-
const selectedIndex = (col.selectedIndex = this.indexForY(-y));
|
|
29275
|
-
const durationStr = duration === 0 ? '' : duration + 'ms';
|
|
29276
|
-
const scaleStr = `scale(${this.scaleFactor})`;
|
|
29277
|
-
const children = this.optsEl.children;
|
|
29278
|
-
for (let i = 0; i < children.length; i++) {
|
|
29279
|
-
const button = children[i];
|
|
29280
|
-
const opt = col.options[i];
|
|
29281
|
-
const optOffset = i * this.optHeight + y;
|
|
29282
|
-
let transform = '';
|
|
29283
|
-
if (rotateFactor !== 0) {
|
|
29284
|
-
const rotateX = optOffset * rotateFactor;
|
|
29285
|
-
if (Math.abs(rotateX) <= 90) {
|
|
29286
|
-
translateY = 0;
|
|
29287
|
-
translateZ = 90;
|
|
29288
|
-
transform = `rotateX(${rotateX}deg) `;
|
|
29289
|
-
}
|
|
29290
|
-
else {
|
|
29291
|
-
translateY = -9999;
|
|
29292
|
-
}
|
|
29293
|
-
}
|
|
29294
|
-
else {
|
|
29295
|
-
translateZ = 0;
|
|
29296
|
-
translateY = optOffset;
|
|
29297
|
-
}
|
|
29298
|
-
const selected = selectedIndex === i;
|
|
29299
|
-
transform += `translate3d(0px,${translateY}px,${translateZ}px) `;
|
|
29300
|
-
if (this.scaleFactor !== 1 && !selected) {
|
|
29301
|
-
transform += scaleStr;
|
|
29302
|
-
}
|
|
29303
|
-
// Update transition duration
|
|
29304
|
-
if (this.noAnimate) {
|
|
29305
|
-
opt.duration = 0;
|
|
29306
|
-
button.style.transitionDuration = '';
|
|
29307
|
-
}
|
|
29308
|
-
else if (duration !== opt.duration) {
|
|
29309
|
-
opt.duration = duration;
|
|
29310
|
-
button.style.transitionDuration = durationStr;
|
|
29311
|
-
}
|
|
29312
|
-
// Update transform
|
|
29313
|
-
if (transform !== opt.transform) {
|
|
29314
|
-
opt.transform = transform;
|
|
29315
|
-
}
|
|
29316
|
-
button.style.transform = transform;
|
|
29317
|
-
/**
|
|
29318
|
-
* Ensure that the select column
|
|
29319
|
-
* item has the selected class
|
|
29320
|
-
*/
|
|
29321
|
-
opt.selected = selected;
|
|
29322
|
-
if (selected) {
|
|
29323
|
-
button.classList.add(PICKER_OPT_SELECTED);
|
|
29324
|
-
}
|
|
29325
|
-
else {
|
|
29326
|
-
button.classList.remove(PICKER_OPT_SELECTED);
|
|
29327
|
-
}
|
|
29328
|
-
}
|
|
29329
|
-
this.col.prevSelected = prevSelected;
|
|
29330
|
-
if (saveY) {
|
|
29331
|
-
this.y = y;
|
|
29332
|
-
}
|
|
29333
|
-
if (this.lastIndex !== selectedIndex) {
|
|
29334
|
-
// have not set a last index yet
|
|
29335
|
-
hapticSelectionChanged();
|
|
29336
|
-
this.lastIndex = selectedIndex;
|
|
29337
|
-
}
|
|
29338
|
-
}
|
|
29339
|
-
decelerate() {
|
|
29340
|
-
if (this.velocity !== 0) {
|
|
29341
|
-
// still decelerating
|
|
29342
|
-
this.velocity *= DECELERATION_FRICTION;
|
|
29343
|
-
// do not let it go slower than a velocity of 1
|
|
29344
|
-
this.velocity = this.velocity > 0 ? Math.max(this.velocity, 1) : Math.min(this.velocity, -1);
|
|
29345
|
-
let y = this.y + this.velocity;
|
|
29346
|
-
if (y > this.minY) {
|
|
29347
|
-
// whoops, it's trying to scroll up farther than the options we have!
|
|
29348
|
-
y = this.minY;
|
|
29349
|
-
this.velocity = 0;
|
|
29350
|
-
}
|
|
29351
|
-
else if (y < this.maxY) {
|
|
29352
|
-
// gahh, it's trying to scroll down farther than we can!
|
|
29353
|
-
y = this.maxY;
|
|
29354
|
-
this.velocity = 0;
|
|
29355
|
-
}
|
|
29356
|
-
this.update(y, 0, true);
|
|
29357
|
-
const notLockedIn = Math.round(y) % this.optHeight !== 0 || Math.abs(this.velocity) > 1;
|
|
29358
|
-
if (notLockedIn) {
|
|
29359
|
-
// isn't locked in yet, keep decelerating until it is
|
|
29360
|
-
this.rafId = requestAnimationFrame(() => this.decelerate());
|
|
29361
|
-
}
|
|
29362
|
-
else {
|
|
29363
|
-
this.velocity = 0;
|
|
29364
|
-
this.emitColChange();
|
|
29365
|
-
hapticSelectionEnd();
|
|
29366
|
-
}
|
|
29367
|
-
}
|
|
29368
|
-
else if (this.y % this.optHeight !== 0) {
|
|
29369
|
-
// needs to still get locked into a position so options line up
|
|
29370
|
-
const currentPos = Math.abs(this.y % this.optHeight);
|
|
29371
|
-
// create a velocity in the direction it needs to scroll
|
|
29372
|
-
this.velocity = currentPos > this.optHeight / 2 ? 1 : -1;
|
|
29373
|
-
this.decelerate();
|
|
29374
|
-
}
|
|
29375
|
-
}
|
|
29376
|
-
indexForY(y) {
|
|
29377
|
-
return Math.min(Math.max(Math.abs(Math.round(y / this.optHeight)), 0), this.col.options.length - 1);
|
|
29378
|
-
}
|
|
29379
|
-
onStart(detail) {
|
|
29380
|
-
// We have to prevent default in order to block scrolling under the picker
|
|
29381
|
-
// but we DO NOT have to stop propagation, since we still want
|
|
29382
|
-
// some "click" events to capture
|
|
29383
|
-
if (detail.event.cancelable) {
|
|
29384
|
-
detail.event.preventDefault();
|
|
29385
|
-
}
|
|
29386
|
-
detail.event.stopPropagation();
|
|
29387
|
-
hapticSelectionStart();
|
|
29388
|
-
// reset everything
|
|
29389
|
-
if (this.rafId !== undefined)
|
|
29390
|
-
cancelAnimationFrame(this.rafId);
|
|
29391
|
-
const options = this.col.options;
|
|
29392
|
-
let minY = options.length - 1;
|
|
29393
|
-
let maxY = 0;
|
|
29394
|
-
for (let i = 0; i < options.length; i++) {
|
|
29395
|
-
if (!options[i].disabled) {
|
|
29396
|
-
minY = Math.min(minY, i);
|
|
29397
|
-
maxY = Math.max(maxY, i);
|
|
29398
|
-
}
|
|
29399
|
-
}
|
|
29400
|
-
this.minY = -(minY * this.optHeight);
|
|
29401
|
-
this.maxY = -(maxY * this.optHeight);
|
|
29402
|
-
}
|
|
29403
|
-
onMove(detail) {
|
|
29404
|
-
if (detail.event.cancelable) {
|
|
29405
|
-
detail.event.preventDefault();
|
|
29406
|
-
}
|
|
29407
|
-
detail.event.stopPropagation();
|
|
29408
|
-
// update the scroll position relative to pointer start position
|
|
29409
|
-
let y = this.y + detail.deltaY;
|
|
29410
|
-
if (y > this.minY) {
|
|
29411
|
-
// scrolling up higher than scroll area
|
|
29412
|
-
y = Math.pow(y, 0.8);
|
|
29413
|
-
this.bounceFrom = y;
|
|
29414
|
-
}
|
|
29415
|
-
else if (y < this.maxY) {
|
|
29416
|
-
// scrolling down below scroll area
|
|
29417
|
-
y += Math.pow(this.maxY - y, 0.9);
|
|
29418
|
-
this.bounceFrom = y;
|
|
29419
|
-
}
|
|
29420
|
-
else {
|
|
29421
|
-
this.bounceFrom = 0;
|
|
29244
|
+
this.setValue(firstOption.value);
|
|
29245
|
+
}
|
|
29422
29246
|
}
|
|
29423
|
-
this.update(y, 0, false);
|
|
29424
29247
|
}
|
|
29425
|
-
|
|
29426
|
-
|
|
29427
|
-
|
|
29428
|
-
|
|
29429
|
-
this.
|
|
29430
|
-
return;
|
|
29248
|
+
/** @internal */
|
|
29249
|
+
async scrollActiveItemIntoView(smooth = false) {
|
|
29250
|
+
const activeEl = this.activeItem;
|
|
29251
|
+
if (activeEl) {
|
|
29252
|
+
this.centerPickerItemInView(activeEl, smooth, false);
|
|
29431
29253
|
}
|
|
29432
|
-
|
|
29433
|
-
|
|
29434
|
-
|
|
29435
|
-
|
|
29254
|
+
}
|
|
29255
|
+
/**
|
|
29256
|
+
* Sets the value prop and fires the ionChange event.
|
|
29257
|
+
* This is used when we need to fire ionChange from
|
|
29258
|
+
* user-generated events that cannot be caught with normal
|
|
29259
|
+
* input/change event listeners.
|
|
29260
|
+
* @internal
|
|
29261
|
+
*/
|
|
29262
|
+
async setValue(value) {
|
|
29263
|
+
if (this.disabled === true || this.value === value) {
|
|
29436
29264
|
return;
|
|
29437
29265
|
}
|
|
29438
|
-
this.
|
|
29439
|
-
|
|
29440
|
-
|
|
29441
|
-
|
|
29442
|
-
|
|
29443
|
-
|
|
29444
|
-
|
|
29445
|
-
|
|
29446
|
-
|
|
29447
|
-
|
|
29448
|
-
const isScrollingUp = detail.deltaY > 0;
|
|
29449
|
-
const optHeightFraction = (Math.abs(this.y) % this.optHeight) / this.optHeight;
|
|
29450
|
-
if (isScrollingUp && optHeightFraction > 0.5) {
|
|
29451
|
-
this.velocity = Math.abs(this.velocity) * -1;
|
|
29452
|
-
}
|
|
29453
|
-
else if (!isScrollingUp && optHeightFraction <= 0.5) {
|
|
29454
|
-
this.velocity = Math.abs(this.velocity);
|
|
29455
|
-
}
|
|
29456
|
-
}
|
|
29457
|
-
this.decelerate();
|
|
29266
|
+
this.value = value;
|
|
29267
|
+
this.ionChange.emit({ value });
|
|
29268
|
+
}
|
|
29269
|
+
/**
|
|
29270
|
+
* Sets focus on the scrollable container within the picker column.
|
|
29271
|
+
* Use this method instead of the global `pickerColumn.focus()`.
|
|
29272
|
+
*/
|
|
29273
|
+
async setFocus() {
|
|
29274
|
+
if (this.assistiveFocusable) {
|
|
29275
|
+
this.assistiveFocusable.focus();
|
|
29458
29276
|
}
|
|
29459
29277
|
}
|
|
29460
|
-
|
|
29278
|
+
connectedCallback() {
|
|
29461
29279
|
var _a;
|
|
29462
|
-
|
|
29463
|
-
let max = 0;
|
|
29464
|
-
const options = this.col.options;
|
|
29465
|
-
for (let i = 0; i < options.length; i++) {
|
|
29466
|
-
if (!options[i].disabled) {
|
|
29467
|
-
min = Math.min(min, i);
|
|
29468
|
-
max = Math.max(max, i);
|
|
29469
|
-
}
|
|
29470
|
-
}
|
|
29471
|
-
/**
|
|
29472
|
-
* Only update selected value if column has a
|
|
29473
|
-
* velocity of 0. If it does not, then the
|
|
29474
|
-
* column is animating might land on
|
|
29475
|
-
* a value different than the value at
|
|
29476
|
-
* selectedIndex
|
|
29477
|
-
*/
|
|
29478
|
-
if (this.velocity !== 0) {
|
|
29479
|
-
return;
|
|
29480
|
-
}
|
|
29481
|
-
const selectedIndex = clamp(min, (_a = this.col.selectedIndex) !== null && _a !== void 0 ? _a : 0, max);
|
|
29482
|
-
if (this.col.prevSelected !== selectedIndex || forceRefresh) {
|
|
29483
|
-
const y = selectedIndex * this.optHeight * -1;
|
|
29484
|
-
const duration = animated ? TRANSITION_DURATION : 0;
|
|
29485
|
-
this.velocity = 0;
|
|
29486
|
-
this.update(y, duration, true);
|
|
29487
|
-
}
|
|
29280
|
+
this.ariaLabel = (_a = this.el.getAttribute('aria-label')) !== null && _a !== void 0 ? _a : 'Select a value';
|
|
29488
29281
|
}
|
|
29489
|
-
|
|
29490
|
-
const
|
|
29491
|
-
|
|
29492
|
-
|
|
29493
|
-
|
|
29494
|
-
|
|
29495
|
-
|
|
29496
|
-
|
|
29282
|
+
get activeItem() {
|
|
29283
|
+
const { value } = this;
|
|
29284
|
+
const options = Array.from(this.el.querySelectorAll('ion-picker-column-option'));
|
|
29285
|
+
return options.find((option) => {
|
|
29286
|
+
/**
|
|
29287
|
+
* If the whole picker column is disabled, the current value should appear active
|
|
29288
|
+
* If the current value item is specifically disabled, it should not appear active
|
|
29289
|
+
*/
|
|
29290
|
+
if (!this.disabled && option.disabled) {
|
|
29291
|
+
return false;
|
|
29292
|
+
}
|
|
29293
|
+
return option.value === value;
|
|
29294
|
+
});
|
|
29497
29295
|
}
|
|
29498
29296
|
render() {
|
|
29499
|
-
const
|
|
29297
|
+
const { color, disabled, isActive, numericInput } = this;
|
|
29500
29298
|
const mode = getIonMode$1(this);
|
|
29501
|
-
return (hAsync(Host, { key: '
|
|
29502
|
-
|
|
29503
|
-
|
|
29299
|
+
return (hAsync(Host, { key: '78b46ad10d88ea1bb43ca8c36748767912f03224', class: createColorClasses$1(color, {
|
|
29300
|
+
[mode]: true,
|
|
29301
|
+
['picker-column-active']: isActive,
|
|
29302
|
+
['picker-column-numeric-input']: numericInput,
|
|
29303
|
+
['picker-column-disabled']: disabled,
|
|
29304
|
+
}) }, hAsync("slot", { key: '761e501df77f7de896ffb3ebb99ebf88c5c3bf70', name: "prefix" }), hAsync("div", { key: '9f4caaeef8ab704522a85f30876d371712f47c5c', class: "picker-opts", ref: (el) => {
|
|
29305
|
+
this.scrollEl = el;
|
|
29306
|
+
}, role: "slider", tabindex: this.disabled ? undefined : 0, "aria-label": this.ariaLabel, "aria-valuemin": 0, "aria-valuemax": 0, "aria-valuenow": 0, "aria-valuetext": this.getOptionValueText(this.activeItem), "aria-orientation": "vertical", onKeyDown: (ev) => this.onKeyDown(ev) }, hAsync("div", { key: '9d3533436aba6c61c93f65f84a077fba832194a0', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '3f18d3a47361f06f55321b65fdf5742a61722b26', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: 'eac0d20ab8c533ef829875e323e93e1ee2067d6d', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("slot", { key: '92e25989ef41cf6f910c73238e1a0a5ac03f1c1f' }), hAsync("div", { key: '33a84644ebdc84108b44a8e3a129b54e824939c8', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '128ad61a3a68c7ff2d2e44a6e968424fcc608a15', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '6e4d59a4f75befcbbf47279a263f28a69b12dbbd', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), hAsync("slot", { key: '3c6621b64438792a3024c90e3d9916a0a3614506', name: "suffix" })));
|
|
29504
29307
|
}
|
|
29505
29308
|
get el() { return getElement(this); }
|
|
29506
29309
|
static get watchers() { return {
|
|
29507
|
-
"
|
|
29508
|
-
"
|
|
29310
|
+
"aria-label": [{
|
|
29311
|
+
"ariaLabelChanged": 0
|
|
29312
|
+
}],
|
|
29313
|
+
"value": [{
|
|
29314
|
+
"valueChange": 0
|
|
29509
29315
|
}]
|
|
29510
29316
|
}; }
|
|
29511
|
-
static get style() { return
|
|
29512
|
-
ios: pickerColumnIosCss(),
|
|
29513
|
-
md: pickerColumnMdCss()
|
|
29514
|
-
}; }
|
|
29317
|
+
static get style() { return pickerColumnCss(); }
|
|
29515
29318
|
static get cmpMeta() { return {
|
|
29516
|
-
"$flags$":
|
|
29517
|
-
"$tagName$": "ion-picker-
|
|
29319
|
+
"$flags$": 265,
|
|
29320
|
+
"$tagName$": "ion-picker-column",
|
|
29518
29321
|
"$members$": {
|
|
29519
|
-
"
|
|
29322
|
+
"disabled": [4],
|
|
29323
|
+
"value": [1032],
|
|
29324
|
+
"color": [513],
|
|
29325
|
+
"numericInput": [4, "numeric-input"],
|
|
29326
|
+
"ariaLabel": [32],
|
|
29327
|
+
"isActive": [32],
|
|
29328
|
+
"scrollActiveItemIntoView": [64],
|
|
29329
|
+
"setValue": [64],
|
|
29330
|
+
"setFocus": [64]
|
|
29520
29331
|
},
|
|
29521
29332
|
"$listeners$": undefined,
|
|
29522
29333
|
"$lazyBundleId$": "-",
|
|
29523
|
-
"$attrsToReflect$": []
|
|
29334
|
+
"$attrsToReflect$": [["color", "color"]]
|
|
29524
29335
|
}; }
|
|
29525
29336
|
}
|
|
29526
|
-
const
|
|
29527
|
-
const DECELERATION_FRICTION = 0.97;
|
|
29528
|
-
const MAX_PICKER_SPEED = 90;
|
|
29529
|
-
const TRANSITION_DURATION = 150;
|
|
29337
|
+
const PICKER_ITEM_ACTIVE_CLASS = 'option-active';
|
|
29530
29338
|
|
|
29531
29339
|
const pickerColumnOptionIosCss = () => `.picker-column-option-button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) .picker-column-option-button{cursor:default}`;
|
|
29532
29340
|
|
|
29533
|
-
const pickerColumnOptionMdCss = () => `.picker-column-option-button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) .picker-column-option-button{cursor:default}:host(.option-active),:host([part~=active]){color:var(--ion-color-base)}`;
|
|
29341
|
+
const pickerColumnOptionMdCss = () => `.picker-column-option-button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) .picker-column-option-button{cursor:default}:host(.option-active),:host([part~=active]){color:var(--ion-color-primary, #0054e9)}:host(.ion-color.option-active),:host(.ion-color[part~=active]){color:var(--ion-color-base)}`;
|
|
29534
29342
|
|
|
29535
29343
|
class PickerColumnOption {
|
|
29536
29344
|
constructor(hostRef) {
|
|
@@ -29554,12 +29362,6 @@ class PickerColumnOption {
|
|
|
29554
29362
|
* If `true`, the user cannot interact with the picker column option.
|
|
29555
29363
|
*/
|
|
29556
29364
|
this.disabled = false;
|
|
29557
|
-
/**
|
|
29558
|
-
* The color to use from your application's color palette.
|
|
29559
|
-
* Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
|
|
29560
|
-
* For more information on colors, see [theming](/docs/theming/basics).
|
|
29561
|
-
*/
|
|
29562
|
-
this.color = 'primary';
|
|
29563
29365
|
}
|
|
29564
29366
|
/**
|
|
29565
29367
|
* The aria-label of the option has changed after the
|
|
@@ -29619,10 +29421,10 @@ class PickerColumnOption {
|
|
|
29619
29421
|
render() {
|
|
29620
29422
|
const { color, disabled, ariaLabel } = this;
|
|
29621
29423
|
const mode = getIonMode$1(this);
|
|
29622
|
-
return (hAsync(Host, { key: '
|
|
29424
|
+
return (hAsync(Host, { key: '98109dc9aeced749a3e879394d9a24de24204433', class: createColorClasses$1(color, {
|
|
29623
29425
|
[mode]: true,
|
|
29624
29426
|
['option-disabled']: disabled,
|
|
29625
|
-
}) }, hAsync("div", { key: '
|
|
29427
|
+
}) }, hAsync("div", { key: '42cb75738ea6925a7780b3ec9c1ff6823e340a24', class: 'picker-column-option-button', role: "button", "aria-label": ariaLabel, onClick: () => this.onClick() }, hAsync("slot", { key: '1f1b3862cdfb2b432016014e2e56330c0247d0b5' }))));
|
|
29626
29428
|
}
|
|
29627
29429
|
get el() { return getElement(this); }
|
|
29628
29430
|
static get watchers() { return {
|
|
@@ -30723,9 +30525,9 @@ const mdLeaveAnimation$1 = (baseEl) => {
|
|
|
30723
30525
|
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
30724
30526
|
};
|
|
30725
30527
|
|
|
30726
|
-
const popoverIosCss = () => `:host{--background:var(--ion-background-color, #fff);--min-width:0;--min-height:0;--max-width:auto;--height:auto;--offset-x:0px;--offset-y:0px;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:fixed;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);z-index:1001}:host(.popover-nested){pointer-events:none}:host(.popover-nested) .popover-wrapper{pointer-events:auto}:host(.overlay-hidden){display:none}.popover-wrapper{z-index:10}.popover-content{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);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:auto;z-index:10}::slotted(.popover-viewport){--ion-safe-area-top:0px;--ion-safe-area-right:0px;--ion-safe-area-bottom:0px;--ion-safe-area-left:0px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}:host(.popover-nested.popover-side-left){--offset-x:5px}:host(.popover-nested.popover-side-right){--offset-x:-5px}:host(.popover-nested.popover-side-start){--offset-x:5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-start),:host-context([dir=rtl]).popover-nested.popover-side-start{--offset-x:-5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-start:dir(rtl)){--offset-x:-5px}}:host(.popover-nested.popover-side-end){--offset-x:-5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-end),:host-context([dir=rtl]).popover-nested.popover-side-end{--offset-x:5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-end:dir(rtl)){--offset-x:5px}}:host{--width:200px;--max-height:90%;--box-shadow:none;--backdrop-opacity:var(--ion-backdrop-opacity, 0.08)}:host(.popover-desktop){--box-shadow:0px 4px 16px 0px rgba(0, 0, 0, 0.12)}.popover-content{border-radius:10px}:host(.popover-desktop) .popover-content{border:0.5px solid var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.popover-arrow{display:block;position:absolute;width:20px;height:10px;overflow:hidden;z-index:11}.popover-arrow::after{top:3px;border-radius:3px;position:absolute;width:14px;height:14px;-webkit-transform:rotate(45deg);transform:rotate(45deg);background:var(--background);content:"";z-index:10}.popover-arrow::after{inset-inline-start:3px}:host(.popover-bottom) .popover-arrow{top:auto;bottom:-10px}:host(.popover-bottom) .popover-arrow::after{top:-6px}:host(.popover-side-left) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}:host(.popover-side-right) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}:host(.popover-side-top) .popover-arrow{-webkit-transform:rotate(180deg);transform:rotate(180deg)}:host(.popover-side-start) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}:host-context([dir=rtl]):host(.popover-side-start) .popover-arrow,:host-context([dir=rtl]).popover-side-start .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}@supports selector(:dir(rtl)){:host(.popover-side-start:dir(rtl)) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}}:host(.popover-side-end) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}:host-context([dir=rtl]):host(.popover-side-end) .popover-arrow,:host-context([dir=rtl]).popover-side-end .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}@supports selector(:dir(rtl)){:host(.popover-side-end:dir(rtl)) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}}.popover-arrow,.popover-content{opacity:0}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){:host(.popover-translucent) .popover-content,:host(.popover-translucent) .popover-arrow::after{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}`;
|
|
30528
|
+
const popoverIosCss = () => `:host{--background:var(--ion-background-color, #fff);--min-width:0;--min-height:0;--max-width:auto;--height:auto;--offset-x:0px;--offset-y:0px;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:fixed;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);z-index:1001}:host(.popover-nested){pointer-events:none}:host(.popover-nested) .popover-wrapper{pointer-events:auto}:host(.overlay-hidden){display:none}.popover-wrapper{z-index:10}.popover-content{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);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:auto;z-index:10}::slotted(.popover-viewport){--ion-safe-area-top:0px;--ion-safe-area-right:0px;--ion-safe-area-bottom:0px;--ion-safe-area-left:0px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}:host(.popover-nested.popover-side-left){--offset-x:5px}:host(.popover-nested.popover-side-right){--offset-x:-5px}:host(.popover-nested.popover-side-start){--offset-x:5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-start),:host-context([dir=rtl]).popover-nested.popover-side-start{--offset-x:-5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-start:dir(rtl)){--offset-x:-5px}}:host(.popover-nested.popover-side-end){--offset-x:-5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-end),:host-context([dir=rtl]).popover-nested.popover-side-end{--offset-x:5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-end:dir(rtl)){--offset-x:5px}}:host(.select-popover-rich-content){--width:clamp(250px, calc(100vw - 40px), 400px)}:host{--width:200px;--max-height:90%;--box-shadow:none;--backdrop-opacity:var(--ion-backdrop-opacity, 0.08)}:host(.popover-desktop){--box-shadow:0px 4px 16px 0px rgba(0, 0, 0, 0.12)}.popover-content{border-radius:10px}:host(.popover-desktop) .popover-content{border:0.5px solid var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.popover-arrow{display:block;position:absolute;width:20px;height:10px;overflow:hidden;z-index:11}.popover-arrow::after{top:3px;border-radius:3px;position:absolute;width:14px;height:14px;-webkit-transform:rotate(45deg);transform:rotate(45deg);background:var(--background);content:"";z-index:10}.popover-arrow::after{inset-inline-start:3px}:host(.popover-bottom) .popover-arrow{top:auto;bottom:-10px}:host(.popover-bottom) .popover-arrow::after{top:-6px}:host(.popover-side-left) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}:host(.popover-side-right) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}:host(.popover-side-top) .popover-arrow{-webkit-transform:rotate(180deg);transform:rotate(180deg)}:host(.popover-side-start) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}:host-context([dir=rtl]):host(.popover-side-start) .popover-arrow,:host-context([dir=rtl]).popover-side-start .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}@supports selector(:dir(rtl)){:host(.popover-side-start:dir(rtl)) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}}:host(.popover-side-end) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}:host-context([dir=rtl]):host(.popover-side-end) .popover-arrow,:host-context([dir=rtl]).popover-side-end .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}@supports selector(:dir(rtl)){:host(.popover-side-end:dir(rtl)) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}}.popover-arrow,.popover-content{opacity:0}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){:host(.popover-translucent) .popover-content,:host(.popover-translucent) .popover-arrow::after{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}`;
|
|
30727
30529
|
|
|
30728
|
-
const popoverMdCss = () => `:host{--background:var(--ion-background-color, #fff);--min-width:0;--min-height:0;--max-width:auto;--height:auto;--offset-x:0px;--offset-y:0px;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:fixed;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);z-index:1001}:host(.popover-nested){pointer-events:none}:host(.popover-nested) .popover-wrapper{pointer-events:auto}:host(.overlay-hidden){display:none}.popover-wrapper{z-index:10}.popover-content{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);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:auto;z-index:10}::slotted(.popover-viewport){--ion-safe-area-top:0px;--ion-safe-area-right:0px;--ion-safe-area-bottom:0px;--ion-safe-area-left:0px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}:host(.popover-nested.popover-side-left){--offset-x:5px}:host(.popover-nested.popover-side-right){--offset-x:-5px}:host(.popover-nested.popover-side-start){--offset-x:5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-start),:host-context([dir=rtl]).popover-nested.popover-side-start{--offset-x:-5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-start:dir(rtl)){--offset-x:-5px}}:host(.popover-nested.popover-side-end){--offset-x:-5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-end),:host-context([dir=rtl]).popover-nested.popover-side-end{--offset-x:5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-end:dir(rtl)){--offset-x:5px}}:host{--width:250px;--max-height:90%;--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);--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}.popover-content{border-radius:4px;-webkit-transform-origin:left top;transform-origin:left top}:host-context([dir=rtl]) .popover-content{-webkit-transform-origin:right top;transform-origin:right top}[dir=rtl] .popover-content{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){.popover-content:dir(rtl){-webkit-transform-origin:right top;transform-origin:right top}}.popover-viewport{-webkit-transition-delay:100ms;transition-delay:100ms}.popover-wrapper{opacity:0}`;
|
|
30530
|
+
const popoverMdCss = () => `:host{--background:var(--ion-background-color, #fff);--min-width:0;--min-height:0;--max-width:auto;--height:auto;--offset-x:0px;--offset-y:0px;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:fixed;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);z-index:1001}:host(.popover-nested){pointer-events:none}:host(.popover-nested) .popover-wrapper{pointer-events:auto}:host(.overlay-hidden){display:none}.popover-wrapper{z-index:10}.popover-content{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);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:auto;z-index:10}::slotted(.popover-viewport){--ion-safe-area-top:0px;--ion-safe-area-right:0px;--ion-safe-area-bottom:0px;--ion-safe-area-left:0px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}:host(.popover-nested.popover-side-left){--offset-x:5px}:host(.popover-nested.popover-side-right){--offset-x:-5px}:host(.popover-nested.popover-side-start){--offset-x:5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-start),:host-context([dir=rtl]).popover-nested.popover-side-start{--offset-x:-5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-start:dir(rtl)){--offset-x:-5px}}:host(.popover-nested.popover-side-end){--offset-x:-5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-end),:host-context([dir=rtl]).popover-nested.popover-side-end{--offset-x:5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-end:dir(rtl)){--offset-x:5px}}:host(.select-popover-rich-content){--width:clamp(250px, calc(100vw - 40px), 400px)}:host{--width:250px;--max-height:90%;--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);--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}.popover-content{border-radius:4px;-webkit-transform-origin:left top;transform-origin:left top}:host-context([dir=rtl]) .popover-content{-webkit-transform-origin:right top;transform-origin:right top}[dir=rtl] .popover-content{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){.popover-content:dir(rtl){-webkit-transform-origin:right top;transform-origin:right top}}.popover-viewport{-webkit-transition-delay:100ms;transition-delay:100ms}.popover-wrapper{opacity:0}`;
|
|
30729
30531
|
|
|
30730
30532
|
// TODO(FW-2832): types
|
|
30731
30533
|
/**
|
|
@@ -30949,6 +30751,10 @@ class Popover {
|
|
|
30949
30751
|
this.headerResizeObserver.disconnect();
|
|
30950
30752
|
this.headerResizeObserver = undefined;
|
|
30951
30753
|
}
|
|
30754
|
+
// Clean up aria-hidden if removed without dismiss() being called
|
|
30755
|
+
if (this.presented) {
|
|
30756
|
+
cleanupRootFocusTrapAccessibility();
|
|
30757
|
+
}
|
|
30952
30758
|
}
|
|
30953
30759
|
componentWillLoad() {
|
|
30954
30760
|
var _a, _b;
|
|
@@ -31187,9 +30993,9 @@ class Popover {
|
|
|
31187
30993
|
const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
|
|
31188
30994
|
const desktop = isPlatform('desktop');
|
|
31189
30995
|
const enableArrow = arrow && !parentPopover;
|
|
31190
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
30996
|
+
return (hAsync(Host, Object.assign({ key: 'd7f3aa2c2fa93a93585e3eda9e4a6d0daaa541be', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
|
|
31191
30997
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
31192
|
-
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && hAsync("ion-backdrop", { key: '
|
|
30998
|
+
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && hAsync("ion-backdrop", { key: 'b87be2ef14219997b9c47dcbaf904eb770d0e057', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), hAsync("div", { key: 'e6243572faf1b871ae2b34923410b2a6638469f0', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && hAsync("div", { key: '3d4938c9d0764a644398e0e7a4361106da1bd926', class: "popover-arrow", part: "arrow" }), hAsync("div", { key: '24ad6d777828aad2881d56595693e6022fc9cb8e', class: "popover-content", part: "content" }, hAsync("slot", { key: '79f83df74a5c5e3dd7650f15c1aa50795b90a345' })))));
|
|
31193
30999
|
}
|
|
31194
31000
|
get el() { return getElement(this); }
|
|
31195
31001
|
static get watchers() { return {
|
|
@@ -31300,7 +31106,7 @@ class ProgressBar {
|
|
|
31300
31106
|
const mode = getIonMode$1(this);
|
|
31301
31107
|
// If the progress is displayed as a solid bar.
|
|
31302
31108
|
const progressSolid = buffer === 1;
|
|
31303
|
-
return (hAsync(Host, { key: '
|
|
31109
|
+
return (hAsync(Host, { key: 'd7476268ce53b6a4f425b7bc9f01d6935eb411c3', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
|
|
31304
31110
|
[mode]: true,
|
|
31305
31111
|
[`progress-bar-${type}`]: true,
|
|
31306
31112
|
'progress-paused': paused,
|
|
@@ -31485,7 +31291,7 @@ class Radio {
|
|
|
31485
31291
|
const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
|
|
31486
31292
|
const mode = getIonMode$1(this);
|
|
31487
31293
|
const inItem = hostContext('ion-item', el);
|
|
31488
|
-
return (hAsync(Host, { key: '
|
|
31294
|
+
return (hAsync(Host, { key: 'd9425b252ed38086420d91d5c680421d121c99f4', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
|
|
31489
31295
|
[mode]: true,
|
|
31490
31296
|
'in-item': inItem,
|
|
31491
31297
|
'radio-checked': checked,
|
|
@@ -31496,10 +31302,10 @@ class Radio {
|
|
|
31496
31302
|
// Focus and active styling should not apply when the radio is in an item
|
|
31497
31303
|
'ion-activatable': !inItem,
|
|
31498
31304
|
'ion-focusable': !inItem,
|
|
31499
|
-
}), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, hAsync("label", { key: '
|
|
31305
|
+
}), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, hAsync("label", { key: 'de391fca2aa0b681af5c1d089121596c46e68271', class: "radio-wrapper" }, hAsync("div", { key: '44e4c71645f86a9e73ad58c0e8b41c0558b920f6', class: {
|
|
31500
31306
|
'label-text-wrapper': true,
|
|
31501
31307
|
'label-text-wrapper-hidden': !hasLabel,
|
|
31502
|
-
}, part: "label" }, hAsync("slot", { key: '
|
|
31308
|
+
}, part: "label" }, hAsync("slot", { key: '589d7c1b45a1918b5811663daa8f30788e7729f8' })), hAsync("div", { key: '0f61a17b195582d6c9a0c597cd40e6629256e479', class: "native-wrapper" }, this.renderRadioControl()))));
|
|
31503
31309
|
}
|
|
31504
31310
|
get el() { return getElement(this); }
|
|
31505
31311
|
static get watchers() { return {
|
|
@@ -31518,7 +31324,7 @@ class Radio {
|
|
|
31518
31324
|
"color": [513],
|
|
31519
31325
|
"name": [1],
|
|
31520
31326
|
"disabled": [4],
|
|
31521
|
-
"value": [
|
|
31327
|
+
"value": [520],
|
|
31522
31328
|
"labelPlacement": [1, "label-placement"],
|
|
31523
31329
|
"justify": [1],
|
|
31524
31330
|
"alignment": [1],
|
|
@@ -31529,7 +31335,7 @@ class Radio {
|
|
|
31529
31335
|
},
|
|
31530
31336
|
"$listeners$": undefined,
|
|
31531
31337
|
"$lazyBundleId$": "-",
|
|
31532
|
-
"$attrsToReflect$": [["color", "color"]]
|
|
31338
|
+
"$attrsToReflect$": [["color", "color"], ["value", "value"]]
|
|
31533
31339
|
}; }
|
|
31534
31340
|
}
|
|
31535
31341
|
let radioButtonIds = 0;
|
|
@@ -32594,7 +32400,7 @@ class Range {
|
|
|
32594
32400
|
const valueAtMin = dualKnobs ? this.valA === min || this.valB === min : this.valA === min;
|
|
32595
32401
|
const valueAtMax = dualKnobs ? this.valA === max || this.valB === max : this.valA === max;
|
|
32596
32402
|
renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
|
|
32597
|
-
return (hAsync(Host, { key: '
|
|
32403
|
+
return (hAsync(Host, { key: 'cd26f0187c0d37c7eb9df923f75c8a0f57c19ab6', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
|
|
32598
32404
|
[mode]: true,
|
|
32599
32405
|
'in-item': inItem,
|
|
32600
32406
|
'range-disabled': disabled,
|
|
@@ -32608,10 +32414,10 @@ class Range {
|
|
|
32608
32414
|
'range-item-end-adjustment': needsEndAdjustment,
|
|
32609
32415
|
'range-value-min': valueAtMin,
|
|
32610
32416
|
'range-value-max': valueAtMax,
|
|
32611
|
-
}) }, hAsync("label", { key: '
|
|
32417
|
+
}) }, hAsync("label", { key: '90224fd24b0e625a17e7972feff73a0ac31e093d', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: 'e07b9fa10983249c425eec26b741f0f628daf2b2', class: {
|
|
32612
32418
|
'label-text-wrapper': true,
|
|
32613
32419
|
'label-text-wrapper-hidden': !hasLabel,
|
|
32614
|
-
}, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: '
|
|
32420
|
+
}, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: '9e252f1190838fbae46e724bf665f9b1943600a4', class: "native-wrapper" }, hAsync("slot", { key: '950697dd9636da340de659812daa91fff50e5345', name: "start" }), this.renderRangeSlider(), hAsync("slot", { key: 'd3fce46b29db275af71e6149e725967839ec12b0', name: "end" })))));
|
|
32615
32421
|
}
|
|
32616
32422
|
get el() { return getElement(this); }
|
|
32617
32423
|
static get watchers() { return {
|
|
@@ -33682,7 +33488,7 @@ class Refresher {
|
|
|
33682
33488
|
}
|
|
33683
33489
|
render() {
|
|
33684
33490
|
const mode = getIonMode$1(this);
|
|
33685
|
-
return (hAsync(Host, { key: '
|
|
33491
|
+
return (hAsync(Host, { key: '1dd475095f76491206644828cf89fc6d2ec276d1', slot: "fixed", class: {
|
|
33686
33492
|
[mode]: true,
|
|
33687
33493
|
// Used internally for styling
|
|
33688
33494
|
[`refresher-${mode}`]: true,
|
|
@@ -33908,7 +33714,7 @@ class RefresherContent {
|
|
|
33908
33714
|
const pullingIcon = this.pullingIcon;
|
|
33909
33715
|
const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
|
|
33910
33716
|
const mode = getIonMode$1(this);
|
|
33911
|
-
return (hAsync(Host, { key: '
|
|
33717
|
+
return (hAsync(Host, { key: 'ec378d6a302be697c12c4f973a57c6ad2ada070f', class: mode }, hAsync("div", { key: '0055f98f8c5a1ed7979dc8146ec1f82a575860c7', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (hAsync("div", { key: '4f88468e26370df6889e72aa54ebb395ebf3757d', class: "refresher-pulling-icon" }, hAsync("div", { key: '05b3f8679576aaa6c2d84d60df6629a392df29e2', class: "spinner-arrow-container" }, hAsync("ion-spinner", { key: '0bf6ceea416ce1140c0f10a5bede063cae7054f4', name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (hAsync("div", { key: 'b71ede8455837968218edae28504e5e14bbc1f5c', class: "arrow-container" }, hAsync("ion-icon", { key: '30b808288d23d3eac681b1225cd8392fdacfefe1', icon: caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (hAsync("div", { key: 'fee1ae7e57ef8a02f5654808dff9dca3002b6702', class: "refresher-pulling-icon" }, hAsync("ion-icon", { key: '55b34a98028adb497fbc2ac66bdb3d5ae5b1705b', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), hAsync("div", { key: 'ef8f987daa8060cb6f8fd83c0864095042b9eecf', class: "refresher-refreshing" }, this.refreshingSpinner && (hAsync("div", { key: 'cd6fe0e81b34eeae11478fcc8a42044bff6f7a52', class: "refresher-refreshing-icon" }, hAsync("ion-spinner", { key: '9cd778229582b538d54589c4d8e4d470efb64aad', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
|
|
33912
33718
|
}
|
|
33913
33719
|
get el() { return getElement(this); }
|
|
33914
33720
|
static get cmpMeta() { return {
|
|
@@ -33949,7 +33755,7 @@ class Reorder {
|
|
|
33949
33755
|
render() {
|
|
33950
33756
|
const mode = getIonMode$1(this);
|
|
33951
33757
|
const reorderIcon = mode === 'ios' ? reorderThreeOutline : reorderTwoSharp;
|
|
33952
|
-
return (hAsync(Host, { key: '
|
|
33758
|
+
return (hAsync(Host, { key: '4d35db30b5b3df2020d2212abb3cfac94f9bc2b8', class: mode }, hAsync("slot", { key: '68a565ae4a47f6a9f5d6ba845b596fdfa629ece8' }, hAsync("ion-icon", { key: '168fb0f8eb9c02329274488900fcdb05d44cb895', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
|
|
33953
33759
|
}
|
|
33954
33760
|
get el() { return getElement(this); }
|
|
33955
33761
|
static get style() { return {
|
|
@@ -34220,7 +34026,7 @@ class ReorderGroup {
|
|
|
34220
34026
|
}
|
|
34221
34027
|
render() {
|
|
34222
34028
|
const mode = getIonMode$1(this);
|
|
34223
|
-
return (hAsync(Host, { key: '
|
|
34029
|
+
return (hAsync(Host, { key: '3afdc6a6c81bba2f88ea523d4b73c6fccff1b9ec', class: {
|
|
34224
34030
|
[mode]: true,
|
|
34225
34031
|
'reorder-enabled': !this.disabled,
|
|
34226
34032
|
'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
|
|
@@ -34338,7 +34144,7 @@ class RippleEffect {
|
|
|
34338
34144
|
}
|
|
34339
34145
|
render() {
|
|
34340
34146
|
const mode = getIonMode$1(this);
|
|
34341
|
-
return (hAsync(Host, { key: '
|
|
34147
|
+
return (hAsync(Host, { key: '5e88b5225414e29883256c86f111ded5bdf2ef91', role: "presentation", class: {
|
|
34342
34148
|
[mode]: true,
|
|
34343
34149
|
unbounded: this.unbounded,
|
|
34344
34150
|
} }));
|
|
@@ -35472,10 +35278,10 @@ class RouterLink {
|
|
|
35472
35278
|
rel: this.rel,
|
|
35473
35279
|
target: this.target,
|
|
35474
35280
|
};
|
|
35475
|
-
return (hAsync(Host, { key: '
|
|
35281
|
+
return (hAsync(Host, { key: '6d5fdfa0dcf1eb216173bcc53f1f4d625f3ec551', onClick: this.onClick, class: createColorClasses$1(this.color, {
|
|
35476
35282
|
[mode]: true,
|
|
35477
35283
|
'ion-activatable': true,
|
|
35478
|
-
}) }, hAsync("a", Object.assign({ key: '
|
|
35284
|
+
}) }, hAsync("a", Object.assign({ key: '85796b7b48581fe9830ba1102dad7d1069de4e17' }, attrs), hAsync("slot", { key: '0f93b0da3ec4ae8f50f624f9e7bed87d13d712d0' }))));
|
|
35479
35285
|
}
|
|
35480
35286
|
static get style() { return routerLinkCss(); }
|
|
35481
35287
|
static get cmpMeta() { return {
|
|
@@ -35514,10 +35320,11 @@ class RouterOutlet {
|
|
|
35514
35320
|
*/
|
|
35515
35321
|
this.animated = true;
|
|
35516
35322
|
}
|
|
35323
|
+
swipeGestureChanged() {
|
|
35324
|
+
this.updateGestureEnabled();
|
|
35325
|
+
}
|
|
35517
35326
|
swipeHandlerChanged() {
|
|
35518
|
-
|
|
35519
|
-
this.gesture.enable(this.swipeHandler !== undefined);
|
|
35520
|
-
}
|
|
35327
|
+
this.updateGestureEnabled();
|
|
35521
35328
|
}
|
|
35522
35329
|
async connectedCallback() {
|
|
35523
35330
|
const onStart = () => {
|
|
@@ -35557,11 +35364,21 @@ class RouterOutlet {
|
|
|
35557
35364
|
this.gestureOrAnimationInProgress = false;
|
|
35558
35365
|
}
|
|
35559
35366
|
});
|
|
35560
|
-
this.
|
|
35367
|
+
if (this.swipeGesture === undefined) {
|
|
35368
|
+
this.swipeGesture = config.getBoolean('swipeBackEnabled', this.mode === 'ios');
|
|
35369
|
+
}
|
|
35370
|
+
else {
|
|
35371
|
+
this.updateGestureEnabled();
|
|
35372
|
+
}
|
|
35561
35373
|
}
|
|
35562
35374
|
componentWillLoad() {
|
|
35563
35375
|
this.ionNavWillLoad.emit();
|
|
35564
35376
|
}
|
|
35377
|
+
updateGestureEnabled() {
|
|
35378
|
+
if (this.gesture) {
|
|
35379
|
+
this.gesture.enable(this.swipeHandler !== undefined && this.swipeGesture === true);
|
|
35380
|
+
}
|
|
35381
|
+
}
|
|
35565
35382
|
disconnectedCallback() {
|
|
35566
35383
|
if (this.gesture) {
|
|
35567
35384
|
this.gesture.destroy();
|
|
@@ -35672,10 +35489,13 @@ class RouterOutlet {
|
|
|
35672
35489
|
return true;
|
|
35673
35490
|
}
|
|
35674
35491
|
render() {
|
|
35675
|
-
return hAsync("slot", { key: '
|
|
35492
|
+
return hAsync("slot", { key: 'ce09e6fbba7b0a2276cdde5245bb37c9a162c1c7' });
|
|
35676
35493
|
}
|
|
35677
35494
|
get el() { return getElement(this); }
|
|
35678
35495
|
static get watchers() { return {
|
|
35496
|
+
"swipeGesture": [{
|
|
35497
|
+
"swipeGestureChanged": 0
|
|
35498
|
+
}],
|
|
35679
35499
|
"swipeHandler": [{
|
|
35680
35500
|
"swipeHandlerChanged": 0
|
|
35681
35501
|
}]
|
|
@@ -35689,6 +35509,7 @@ class RouterOutlet {
|
|
|
35689
35509
|
"delegate": [16],
|
|
35690
35510
|
"animated": [4],
|
|
35691
35511
|
"animation": [16],
|
|
35512
|
+
"swipeGesture": [1028, "swipe-gesture"],
|
|
35692
35513
|
"swipeHandler": [16],
|
|
35693
35514
|
"commit": [64],
|
|
35694
35515
|
"setRouteId": [64],
|
|
@@ -35707,7 +35528,7 @@ class Row {
|
|
|
35707
35528
|
registerInstance(this, hostRef);
|
|
35708
35529
|
}
|
|
35709
35530
|
render() {
|
|
35710
|
-
return (hAsync(Host, { key: '
|
|
35531
|
+
return (hAsync(Host, { key: 'a9066661fff12baaf3e80b2e8c08591af72fe5b8', class: getIonMode$1(this) }, hAsync("slot", { key: '62b103af46d3a5ec9c146019ae300b68a4ae867a' })));
|
|
35711
35532
|
}
|
|
35712
35533
|
static get style() { return rowCss(); }
|
|
35713
35534
|
static get cmpMeta() { return {
|
|
@@ -35759,7 +35580,7 @@ class Searchbar {
|
|
|
35759
35580
|
/**
|
|
35760
35581
|
* Set the input's autocorrect property.
|
|
35761
35582
|
*/
|
|
35762
|
-
this.autocorrect =
|
|
35583
|
+
this.autocorrect = false;
|
|
35763
35584
|
/**
|
|
35764
35585
|
* Set the cancel button icon. Only applies to `md` mode.
|
|
35765
35586
|
* Defaults to `arrow-back-sharp`.
|
|
@@ -36180,8 +36001,8 @@ class Searchbar {
|
|
|
36180
36001
|
const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
|
|
36181
36002
|
const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
|
|
36182
36003
|
const shouldShowCancelButton = this.shouldShowCancelButton();
|
|
36183
|
-
const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '
|
|
36184
|
-
return (hAsync(Host, { key: '
|
|
36004
|
+
const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '73964da43dbd099fc7f3d30cbc4da11087701ac5', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, hAsync("div", { key: '27335a0e35f6c253c074685fa0b088404927bcbb', "aria-hidden": "true" }, mode === 'md' ? (hAsync("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
|
|
36005
|
+
return (hAsync(Host, { key: '1b4f6c4e7dffb02e092f0026ce3875822d98a631', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
|
|
36185
36006
|
[mode]: true,
|
|
36186
36007
|
'searchbar-animated': animated,
|
|
36187
36008
|
'searchbar-disabled': this.disabled,
|
|
@@ -36191,14 +36012,14 @@ class Searchbar {
|
|
|
36191
36012
|
'searchbar-has-focus': this.focused,
|
|
36192
36013
|
'searchbar-should-show-clear': this.shouldShowClearButton(),
|
|
36193
36014
|
'searchbar-should-show-cancel': this.shouldShowCancelButton(),
|
|
36194
|
-
}) }, hAsync("div", { key: '
|
|
36015
|
+
}) }, hAsync("div", { key: '587e1950e329cfb9d3658be5b2a6491e7af9321a', class: "searchbar-input-container" }, hAsync("input", Object.assign({ key: '7f78a3d22cce03af277a538b4d9f85faddf1fa80', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect ? 'on' : 'off', spellcheck: this.spellcheck }, this.inheritedAttributes)), mode === 'md' && cancelButton, hAsync("ion-icon", { key: '9fd3e458978b64e9e3358bcbb26471753f6ff2a6', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), hAsync("button", { key: 'c7864c85923668dfa25f5fc4a70c7dbf6da191b7', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
|
|
36195
36016
|
/**
|
|
36196
36017
|
* This prevents mobile browsers from
|
|
36197
36018
|
* blurring the input when the clear
|
|
36198
36019
|
* button is activated.
|
|
36199
36020
|
*/
|
|
36200
36021
|
ev.preventDefault();
|
|
36201
|
-
}, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '
|
|
36022
|
+
}, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '47e7a15c6c6d4df4c54c62b042842e499627da05', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
|
|
36202
36023
|
}
|
|
36203
36024
|
get el() { return getElement(this); }
|
|
36204
36025
|
static get watchers() { return {
|
|
@@ -36230,7 +36051,7 @@ class Searchbar {
|
|
|
36230
36051
|
"animated": [4],
|
|
36231
36052
|
"autocapitalize": [1],
|
|
36232
36053
|
"autocomplete": [1],
|
|
36233
|
-
"autocorrect": [
|
|
36054
|
+
"autocorrect": [4],
|
|
36234
36055
|
"cancelButtonIcon": [1, "cancel-button-icon"],
|
|
36235
36056
|
"cancelButtonText": [1, "cancel-button-text"],
|
|
36236
36057
|
"clearIcon": [1, "clear-icon"],
|
|
@@ -36807,14 +36628,14 @@ class Segment {
|
|
|
36807
36628
|
}
|
|
36808
36629
|
render() {
|
|
36809
36630
|
const mode = getIonMode$1(this);
|
|
36810
|
-
return (hAsync(Host, { key: '
|
|
36631
|
+
return (hAsync(Host, { key: 'bb626072e73f09c3433e1a769e09789a00822d8f', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
|
|
36811
36632
|
[mode]: true,
|
|
36812
36633
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
36813
36634
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
36814
36635
|
'segment-activated': this.activated,
|
|
36815
36636
|
'segment-disabled': this.disabled,
|
|
36816
36637
|
'segment-scrollable': this.scrollable,
|
|
36817
|
-
}) }, hAsync("slot", { key: '
|
|
36638
|
+
}) }, hAsync("slot", { key: '652d5037c2c2dee4d47a5710b1d150e691202d25', onSlotchange: this.onSlottedItemsChange })));
|
|
36818
36639
|
}
|
|
36819
36640
|
get el() { return getElement(this); }
|
|
36820
36641
|
static get watchers() { return {
|
|
@@ -36962,7 +36783,7 @@ class SegmentButton {
|
|
|
36962
36783
|
const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
|
|
36963
36784
|
const mode = getIonMode$1(this);
|
|
36964
36785
|
const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
|
|
36965
|
-
return (hAsync(Host, { key: '
|
|
36786
|
+
return (hAsync(Host, { key: '792f621c36260b1fceff2b4ec4fa95d98d51d46b', class: {
|
|
36966
36787
|
[mode]: true,
|
|
36967
36788
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
36968
36789
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
@@ -36978,7 +36799,7 @@ class SegmentButton {
|
|
|
36978
36799
|
'ion-activatable': true,
|
|
36979
36800
|
'ion-activatable-instant': true,
|
|
36980
36801
|
'ion-focusable': true,
|
|
36981
|
-
} }, hAsync("button", Object.assign({ key: '
|
|
36802
|
+
} }, hAsync("button", Object.assign({ key: '860698be6ceb8f08c0ce3d16ba82d4bb56adf030', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), hAsync("span", { key: 'e903a2642ff46797878a941887b5c596d52fd3a3', class: "button-inner" }, hAsync("slot", { key: '5fc6b842ecb7f0ab8df23b344bf6714f38dda89a' })), mode === 'md' && hAsync("ion-ripple-effect", { key: '710aaf6e4fa2b6cb15897a883e88dec17ef3829f' })), hAsync("div", { key: 'a7b036cba32420e9eb3f2d16487df0519ecc5289', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, hAsync("div", { key: 'a0a5f49ea7f2ecab8014f4f9ca473a27db8348b6', part: "indicator-background", class: "segment-button-indicator-background" }))));
|
|
36982
36803
|
}
|
|
36983
36804
|
get el() { return getElement(this); }
|
|
36984
36805
|
static get watchers() { return {
|
|
@@ -37015,7 +36836,7 @@ class SegmentContent {
|
|
|
37015
36836
|
registerInstance(this, hostRef);
|
|
37016
36837
|
}
|
|
37017
36838
|
render() {
|
|
37018
|
-
return (hAsync(Host, { key: '
|
|
36839
|
+
return (hAsync(Host, { key: 'ef39f29c444177c3b083cd35680ba891e4bb6a2a' }, hAsync("slot", { key: '51f9dd9ca084ddd928b376aa9d716509669c32b2' })));
|
|
37019
36840
|
}
|
|
37020
36841
|
static get style() { return segmentContentCss(); }
|
|
37021
36842
|
static get cmpMeta() { return {
|
|
@@ -37134,11 +36955,11 @@ class SegmentView {
|
|
|
37134
36955
|
}
|
|
37135
36956
|
render() {
|
|
37136
36957
|
const { disabled, isManualScroll, swipeGesture } = this;
|
|
37137
|
-
return (hAsync(Host, { key: '
|
|
36958
|
+
return (hAsync(Host, { key: 'a6c6ac0232c4bb6f2a954b3de7993019d71f423a', class: {
|
|
37138
36959
|
'segment-view-disabled': disabled,
|
|
37139
36960
|
'segment-view-scroll-disabled': isManualScroll === false,
|
|
37140
36961
|
'segment-view-swipe-disabled': swipeGesture === false,
|
|
37141
|
-
} }, hAsync("slot", { key: '
|
|
36962
|
+
} }, hAsync("slot", { key: '386305be2a75069c79def12005d9f6b49276763f' })));
|
|
37142
36963
|
}
|
|
37143
36964
|
get el() { return getElement(this); }
|
|
37144
36965
|
static get style() { return {
|
|
@@ -37160,9 +36981,9 @@ class SegmentView {
|
|
|
37160
36981
|
}; }
|
|
37161
36982
|
}
|
|
37162
36983
|
|
|
37163
|
-
const selectIosCss = () => `:host{--padding-top:0px;--padding-end:0px;--padding-bottom:0px;--padding-start:0px;--placeholder-color:currentColor;--placeholder-opacity:var(--ion-placeholder-opacity, 0.6);--background:transparent;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);--highlight-color:var(--highlight-color-focused);display:block;position:relative;width:100%;min-height:44px;font-family:var(--ion-font-family, inherit);white-space:nowrap;cursor:pointer;z-index:2}:host(.select-label-placement-floating),:host(.select-label-placement-stacked){min-height:56px}:host(.ion-color){--highlight-color-focused:var(--ion-color-base)}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0}:host(.select-disabled){pointer-events:none}:host(.has-focus) button{border:2px solid #5e9ed6}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}.select-placeholder{color:var(--placeholder-color);opacity:var(--placeholder-opacity)}button{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}.select-icon{-webkit-margin-start:4px;margin-inline-start:4px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0;position:relative;-ms-flex-negative:0;flex-shrink:0}:host(.in-item-color) .select-icon{color:inherit}:host(.select-label-placement-stacked) .select-icon,:host(.select-label-placement-floating) .select-icon{position:absolute;height:100%}:host(.select-ltr.select-label-placement-stacked) .select-icon,:host(.select-ltr.select-label-placement-floating) .select-icon{right:var(--padding-end, 0)}:host(.select-rtl.select-label-placement-stacked) .select-icon,:host(.select-rtl.select-label-placement-floating) .select-icon{left:var(--padding-start, 0)}.select-text{-ms-flex:1;flex:1;min-width:16px;font-size:inherit;text-overflow:ellipsis;white-space:inherit;overflow:hidden}.select-wrapper{-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);border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal;cursor:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.select-wrapper .select-placeholder{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.select-wrapper-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;overflow:hidden}:host(.select-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{-ms-flex-positive:1;flex-grow:1}:host(.ion-touched.ion-invalid){--highlight-color:var(--highlight-color-invalid)}:host(.ion-valid){--highlight-color:var(--highlight-color-valid)}.select-bottom{-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:5px;padding-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;border-top:var(--border-width) var(--border-style) var(--border-color);font-size:0.75rem;white-space:normal}:host(.has-focus.ion-valid),:host(.select-expanded.ion-valid),:host(.ion-touched.ion-invalid),:host(.select-expanded.ion-touched.ion-invalid){--border-color:var(--highlight-color)}.select-bottom .error-text{display:none;color:var(--highlight-color-invalid)}.select-bottom .helper-text{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}:host(.ion-touched.ion-invalid) .select-bottom .error-text{display:block}:host(.ion-touched.ion-invalid) .select-bottom .helper-text{display:none}.label-text-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}.label-text,::slotted([slot=label]){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden,.select-outline-notch-hidden{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);overflow:hidden}:host(.select-justify-space-between) .select-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.select-justify-start) .select-wrapper{-ms-flex-pack:start;justify-content:start}:host(.select-justify-end) .select-wrapper{-ms-flex-pack:end;justify-content:end}:host(.select-label-placement-start) .select-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.select-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-end) .select-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.select-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.select-label-placement-stacked) .select-wrapper,:host(.select-label-placement-floating) .select-wrapper{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:start}:host(.select-label-placement-stacked) .label-text-wrapper,:host(.select-label-placement-floating) .label-text-wrapper{max-width:100%}:host(.select-ltr.select-label-placement-stacked) .label-text-wrapper,:host(.select-ltr.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host(.select-rtl.select-label-placement-stacked) .label-text-wrapper,:host(.select-rtl.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}:host(.select-label-placement-stacked) .native-wrapper,:host(.select-label-placement-floating) .native-wrapper{margin-left:0;margin-right:0;margin-top:1px;margin-bottom:0;-ms-flex-positive:1;flex-grow:1;width:100%}:host(.select-label-placement-floating) .label-text-wrapper{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}:host(.select-label-placement-floating:not(.label-floating)) .native-wrapper .select-placeholder{opacity:0}:host(.select-expanded.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-focus.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-value.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:1}:host(.label-floating) .label-text-wrapper{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}::slotted([slot=start]),::slotted([slot=end]){-ms-flex-negative:0;flex-shrink:0}::slotted([slot=start]:last-of-type){-webkit-margin-end:16px;margin-inline-end:16px;-webkit-margin-start:0;margin-inline-start:0}::slotted([slot=end]:first-of-type){-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}:host{--border-width:0.55px;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));--highlight-height:0px}.select-icon{width:1.125rem;height:1.125rem;color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959))}:host(.select-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{width:calc(100% - 1.125rem - 4px)}:host(.select-disabled){opacity:0.3}::slotted(ion-button[slot=start].button-has-icon-only),::slotted(ion-button[slot=end].button-has-icon-only){--border-radius:50%;--padding-start:0;--padding-end:0;--padding-top:0;--padding-bottom:0;aspect-ratio:1}`;
|
|
36984
|
+
const selectIosCss = () => `:host{--padding-top:0px;--padding-end:0px;--padding-bottom:0px;--padding-start:0px;--placeholder-color:currentColor;--placeholder-opacity:var(--ion-placeholder-opacity, 0.6);--background:transparent;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);--select-text-media-height:1.5em;--select-text-media-width:1.5em;--select-text-gap:12px;--highlight-color:var(--highlight-color-focused);display:block;position:relative;width:100%;min-height:44px;font-family:var(--ion-font-family, inherit);white-space:nowrap;cursor:pointer;z-index:2}:host(.select-label-placement-floating),:host(.select-label-placement-stacked){min-height:56px}:host(.ion-color){--highlight-color-focused:var(--ion-color-base)}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0}:host(.select-disabled){pointer-events:none}:host(.has-focus) button{border:2px solid #5e9ed6}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}.select-placeholder{color:var(--placeholder-color);opacity:var(--placeholder-opacity)}button{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}.select-icon{-webkit-margin-start:4px;margin-inline-start:4px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0;position:relative;-ms-flex-negative:0;flex-shrink:0}:host(.in-item-color) .select-icon{color:inherit}:host(.select-label-placement-stacked) .select-icon,:host(.select-label-placement-floating) .select-icon{position:absolute;height:100%}:host(.select-ltr.select-label-placement-stacked) .select-icon,:host(.select-ltr.select-label-placement-floating) .select-icon{right:var(--padding-end, 0)}:host(.select-rtl.select-label-placement-stacked) .select-icon,:host(.select-rtl.select-label-placement-floating) .select-icon{left:var(--padding-start, 0)}.select-text{-ms-flex:1;flex:1;min-width:16px;font-size:inherit;text-overflow:ellipsis;white-space:inherit;overflow:hidden}.select-text>*+*{-webkit-margin-start:var(--select-text-gap);margin-inline-start:var(--select-text-gap)}.select-text img,.select-text ion-img,.select-text ion-icon,.select-text ion-thumbnail,.select-text ion-avatar{border-radius:var(--select-text-media-border-radius);width:var(--select-text-media-width);height:var(--select-text-media-height);border-width:var(--select-text-media-border-width);border-style:var(--select-text-media-border-style);border-color:var(--select-text-media-border-color)}.select-wrapper{-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);border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal;cursor:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.select-wrapper .select-placeholder{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.select-wrapper-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;overflow:hidden}:host(.select-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{-ms-flex-positive:1;flex-grow:1}:host(.ion-touched.ion-invalid){--highlight-color:var(--highlight-color-invalid)}:host(.ion-valid){--highlight-color:var(--highlight-color-valid)}.select-bottom{-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:5px;padding-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;border-top:var(--border-width) var(--border-style) var(--border-color);font-size:0.75rem;white-space:normal}:host(.has-focus.ion-valid),:host(.select-expanded.ion-valid),:host(.ion-touched.ion-invalid),:host(.select-expanded.ion-touched.ion-invalid){--border-color:var(--highlight-color)}.select-bottom .error-text{display:none;color:var(--highlight-color-invalid)}.select-bottom .helper-text{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}:host(.ion-touched.ion-invalid) .select-bottom .error-text{display:block}:host(.ion-touched.ion-invalid) .select-bottom .helper-text{display:none}.label-text-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}.label-text,::slotted([slot=label]){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden,.select-outline-notch-hidden{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);overflow:hidden}:host(.select-justify-space-between) .select-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.select-justify-start) .select-wrapper{-ms-flex-pack:start;justify-content:start}:host(.select-justify-end) .select-wrapper{-ms-flex-pack:end;justify-content:end}:host(.select-label-placement-start) .select-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.select-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-end) .select-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.select-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.select-label-placement-stacked) .select-wrapper,:host(.select-label-placement-floating) .select-wrapper{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:start}:host(.select-label-placement-stacked) .label-text-wrapper,:host(.select-label-placement-floating) .label-text-wrapper{max-width:100%}:host(.select-ltr.select-label-placement-stacked) .label-text-wrapper,:host(.select-ltr.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host(.select-rtl.select-label-placement-stacked) .label-text-wrapper,:host(.select-rtl.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}:host(.select-label-placement-stacked) .native-wrapper,:host(.select-label-placement-floating) .native-wrapper{margin-left:0;margin-right:0;margin-top:1px;margin-bottom:0;-ms-flex-positive:1;flex-grow:1;width:100%}:host(.select-label-placement-floating) .label-text-wrapper{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}:host(.select-label-placement-floating:not(.label-floating)) .native-wrapper .select-placeholder{opacity:0}:host(.select-expanded.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-focus.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-value.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:1}:host(.label-floating) .label-text-wrapper{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}::slotted([slot=start]),::slotted([slot=end]){-ms-flex-negative:0;flex-shrink:0}::slotted([slot=start]:last-of-type){-webkit-margin-end:16px;margin-inline-end:16px;-webkit-margin-start:0;margin-inline-start:0}::slotted([slot=end]:first-of-type){-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}:host{--border-width:0.55px;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));--highlight-height:0px}.select-icon{width:1.125rem;height:1.125rem;color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959))}:host(.select-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{width:calc(100% - 1.125rem - 4px)}:host(.select-disabled){opacity:0.3}::slotted(ion-button[slot=start].button-has-icon-only),::slotted(ion-button[slot=end].button-has-icon-only){--border-radius:50%;--padding-start:0;--padding-end:0;--padding-top:0;--padding-bottom:0;aspect-ratio:1}`;
|
|
37164
36985
|
|
|
37165
|
-
const selectMdCss = () => `:host{--padding-top:0px;--padding-end:0px;--padding-bottom:0px;--padding-start:0px;--placeholder-color:currentColor;--placeholder-opacity:var(--ion-placeholder-opacity, 0.6);--background:transparent;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);--highlight-color:var(--highlight-color-focused);display:block;position:relative;width:100%;min-height:44px;font-family:var(--ion-font-family, inherit);white-space:nowrap;cursor:pointer;z-index:2}:host(.select-label-placement-floating),:host(.select-label-placement-stacked){min-height:56px}:host(.ion-color){--highlight-color-focused:var(--ion-color-base)}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0}:host(.select-disabled){pointer-events:none}:host(.has-focus) button{border:2px solid #5e9ed6}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}.select-placeholder{color:var(--placeholder-color);opacity:var(--placeholder-opacity)}button{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}.select-icon{-webkit-margin-start:4px;margin-inline-start:4px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0;position:relative;-ms-flex-negative:0;flex-shrink:0}:host(.in-item-color) .select-icon{color:inherit}:host(.select-label-placement-stacked) .select-icon,:host(.select-label-placement-floating) .select-icon{position:absolute;height:100%}:host(.select-ltr.select-label-placement-stacked) .select-icon,:host(.select-ltr.select-label-placement-floating) .select-icon{right:var(--padding-end, 0)}:host(.select-rtl.select-label-placement-stacked) .select-icon,:host(.select-rtl.select-label-placement-floating) .select-icon{left:var(--padding-start, 0)}.select-text{-ms-flex:1;flex:1;min-width:16px;font-size:inherit;text-overflow:ellipsis;white-space:inherit;overflow:hidden}.select-wrapper{-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);border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal;cursor:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.select-wrapper .select-placeholder{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.select-wrapper-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;overflow:hidden}:host(.select-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{-ms-flex-positive:1;flex-grow:1}:host(.ion-touched.ion-invalid){--highlight-color:var(--highlight-color-invalid)}:host(.ion-valid){--highlight-color:var(--highlight-color-valid)}.select-bottom{-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:5px;padding-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;border-top:var(--border-width) var(--border-style) var(--border-color);font-size:0.75rem;white-space:normal}:host(.has-focus.ion-valid),:host(.select-expanded.ion-valid),:host(.ion-touched.ion-invalid),:host(.select-expanded.ion-touched.ion-invalid){--border-color:var(--highlight-color)}.select-bottom .error-text{display:none;color:var(--highlight-color-invalid)}.select-bottom .helper-text{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}:host(.ion-touched.ion-invalid) .select-bottom .error-text{display:block}:host(.ion-touched.ion-invalid) .select-bottom .helper-text{display:none}.label-text-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}.label-text,::slotted([slot=label]){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden,.select-outline-notch-hidden{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);overflow:hidden}:host(.select-justify-space-between) .select-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.select-justify-start) .select-wrapper{-ms-flex-pack:start;justify-content:start}:host(.select-justify-end) .select-wrapper{-ms-flex-pack:end;justify-content:end}:host(.select-label-placement-start) .select-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.select-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-end) .select-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.select-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.select-label-placement-stacked) .select-wrapper,:host(.select-label-placement-floating) .select-wrapper{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:start}:host(.select-label-placement-stacked) .label-text-wrapper,:host(.select-label-placement-floating) .label-text-wrapper{max-width:100%}:host(.select-ltr.select-label-placement-stacked) .label-text-wrapper,:host(.select-ltr.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host(.select-rtl.select-label-placement-stacked) .label-text-wrapper,:host(.select-rtl.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}:host(.select-label-placement-stacked) .native-wrapper,:host(.select-label-placement-floating) .native-wrapper{margin-left:0;margin-right:0;margin-top:1px;margin-bottom:0;-ms-flex-positive:1;flex-grow:1;width:100%}:host(.select-label-placement-floating) .label-text-wrapper{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}:host(.select-label-placement-floating:not(.label-floating)) .native-wrapper .select-placeholder{opacity:0}:host(.select-expanded.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-focus.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-value.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:1}:host(.label-floating) .label-text-wrapper{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}::slotted([slot=start]),::slotted([slot=end]){-ms-flex-negative:0;flex-shrink:0}::slotted([slot=start]:last-of-type){-webkit-margin-end:16px;margin-inline-end:16px;-webkit-margin-start:0;margin-inline-start:0}::slotted([slot=end]:first-of-type){-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}:host(.select-fill-solid){--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2));--border-color:var(--ion-color-step-500, var(--ion-background-color-step-500, gray));--border-radius:4px;--padding-start:16px;--padding-end:16px;min-height:56px}:host(.select-fill-solid) .select-wrapper{border-bottom:var(--border-width) var(--border-style) var(--border-color)}:host(.select-expanded.select-fill-solid.ion-valid),:host(.has-focus.select-fill-solid.ion-valid),:host(.select-fill-solid.ion-touched.ion-invalid){--border-color:var(--highlight-color)}:host(.select-fill-solid) .select-bottom{border-top:none}@media (any-hover: hover){:host(.select-fill-solid:hover){--background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6));--border-color:var(--ion-color-step-750, var(--ion-background-color-step-750, #404040))}}:host(.select-fill-solid.select-expanded),:host(.select-fill-solid.has-focus){--background:var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));--border-color:var(--highlight-color)}:host(.select-fill-solid) .select-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0px;border-end-start-radius:0px}:host(.label-floating.select-fill-solid) .label-text-wrapper{max-width:calc(100% / 0.75)}:host(.in-item.select-expanded.select-fill-solid) .select-wrapper .select-icon,:host(.in-item.has-focus.select-fill-solid) .select-wrapper .select-icon,:host(.in-item.has-focus.ion-valid.select-fill-solid) .select-wrapper .select-icon,:host(.in-item.ion-touched.ion-invalid.select-fill-solid) .select-wrapper .select-icon{color:var(--highlight-color)}:host(.select-fill-outline){--border-color:var(--ion-color-step-300, var(--ion-background-color-step-300, #b3b3b3));--border-radius:4px;--padding-start:16px;--padding-end:16px;min-height:56px}:host(.select-fill-outline.select-shape-round){--border-radius:28px;--padding-start:32px;--padding-end:32px}:host(.has-focus.select-fill-outline.ion-valid),:host(.select-fill-outline.ion-touched.ion-invalid){--border-color:var(--highlight-color)}@media (any-hover: hover){:host(.select-fill-outline:hover){--border-color:var(--ion-color-step-750, var(--ion-background-color-step-750, #404040))}}:host(.select-fill-outline.select-expanded),:host(.select-fill-outline.has-focus){--border-width:var(--highlight-height);--border-color:var(--highlight-color)}:host(.select-fill-outline) .select-bottom{border-top:none}:host(.select-fill-outline) .select-wrapper{border-bottom:none}:host(.select-ltr.select-fill-outline.select-label-placement-stacked) .label-text-wrapper,:host(.select-ltr.select-fill-outline.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host(.select-rtl.select-fill-outline.select-label-placement-stacked) .label-text-wrapper,:host(.select-rtl.select-fill-outline.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}:host(.select-fill-outline.select-label-placement-stacked) .label-text-wrapper,:host(.select-fill-outline.select-label-placement-floating) .label-text-wrapper{position:absolute;max-width:calc(100% - var(--padding-start) - var(--padding-end))}:host(.select-fill-outline) .label-text-wrapper{position:relative;z-index:1}:host(.label-floating.select-fill-outline) .label-text-wrapper{-webkit-transform:translateY(-32%) scale(0.75);transform:translateY(-32%) scale(0.75);margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;max-width:calc((100% - var(--padding-start) - var(--padding-end) - 8px) / 0.75)}:host(.select-fill-outline.select-label-placement-stacked) select,:host(.select-fill-outline.select-label-placement-floating) select{margin-left:0;margin-right:0;margin-top:6px;margin-bottom:6px}:host(.select-fill-outline) .select-outline-container{left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;width:100%;height:100%}:host(.select-fill-outline) .select-outline-start,:host(.select-fill-outline) .select-outline-end{pointer-events:none}:host(.select-fill-outline) .select-outline-start,:host(.select-fill-outline) .select-outline-notch,:host(.select-fill-outline) .select-outline-end{border-top:var(--border-width) var(--border-style) var(--border-color);border-bottom:var(--border-width) var(--border-style) var(--border-color);-webkit-box-sizing:border-box;box-sizing:border-box}:host(.select-fill-outline) .select-outline-notch{max-width:calc(100% - var(--padding-start) - var(--padding-end))}:host(.select-fill-outline) .notch-spacer{-webkit-padding-end:8px;padding-inline-end:8px;font-size:calc(1em * 0.75);opacity:0;pointer-events:none}:host(.select-fill-outline) .select-outline-start{-webkit-border-start:var(--border-width) var(--border-style) var(--border-color);border-inline-start:var(--border-width) var(--border-style) var(--border-color)}:host(.select-fill-outline) .select-outline-start{border-start-start-radius:var(--border-radius);border-start-end-radius:0px;border-end-end-radius:0px;border-end-start-radius:var(--border-radius)}:host(.select-fill-outline) .select-outline-start{width:calc(var(--padding-start) - 4px)}:host(.select-fill-outline) .select-outline-end{-webkit-border-end:var(--border-width) var(--border-style) var(--border-color);border-inline-end:var(--border-width) var(--border-style) var(--border-color)}:host(.select-fill-outline) .select-outline-end{border-start-start-radius:0px;border-start-end-radius:var(--border-radius);border-end-end-radius:var(--border-radius);border-end-start-radius:0px}:host(.select-fill-outline) .select-outline-end{-ms-flex-positive:1;flex-grow:1}:host(.label-floating.select-fill-outline) .select-outline-notch{border-top:none}:host(.in-item.select-expanded.select-fill-outline) .select-wrapper .select-icon,:host(.in-item.has-focus.select-fill-outline) .select-wrapper .select-icon,:host(.in-item.has-focus.ion-valid.select-fill-outline) .select-wrapper .select-icon,:host(.in-item.ion-touched.ion-invalid.select-fill-outline) .select-wrapper .select-icon{color:var(--highlight-color)}:host{--border-width:1px;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.13)))));--highlight-height:2px}:host(.select-label-placement-floating.select-expanded) .label-text-wrapper,:host(.select-label-placement-floating.has-focus) .label-text-wrapper,:host(.select-label-placement-stacked.select-expanded) .label-text-wrapper,:host(.select-label-placement-stacked.has-focus) .label-text-wrapper{color:var(--highlight-color)}:host(.has-focus.select-label-placement-floating.ion-valid) .label-text-wrapper,:host(.select-label-placement-floating.ion-touched.ion-invalid) .label-text-wrapper,:host(.has-focus.select-label-placement-stacked.ion-valid) .label-text-wrapper,:host(.select-label-placement-stacked.ion-touched.ion-invalid) .label-text-wrapper{color:var(--highlight-color)}.select-highlight{bottom:-1px;position:absolute;width:100%;height:var(--highlight-height);-webkit-transform:scale(0);transform:scale(0);-webkit-transition:-webkit-transform 200ms;transition:-webkit-transform 200ms;transition:transform 200ms;transition:transform 200ms, -webkit-transform 200ms;background:var(--highlight-color)}.select-highlight{inset-inline-start:0}:host(.select-expanded) .select-highlight,:host(.has-focus) .select-highlight{-webkit-transform:scale(1);transform:scale(1)}:host(.in-item) .select-highlight{bottom:0}:host(.in-item) .select-highlight{inset-inline-start:0}.select-icon{width:0.8125rem;-webkit-transition:-webkit-transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:-webkit-transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:transform 0.15s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);color:var(--ion-color-step-500, var(--ion-text-color-step-500, gray))}:host(.select-expanded:not(.has-expanded-icon)) .select-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}:host(.in-item.select-expanded) .select-wrapper .select-icon,:host(.in-item.has-focus) .select-wrapper .select-icon,:host(.in-item.has-focus.ion-valid) .select-wrapper .select-icon,:host(.in-item.ion-touched.ion-invalid) .select-wrapper .select-icon{color:var(--ion-color-step-500, var(--ion-text-color-step-500, gray))}:host(.select-expanded) .select-wrapper .select-icon,:host(.has-focus.ion-valid) .select-wrapper .select-icon,:host(.ion-touched.ion-invalid) .select-wrapper .select-icon,:host(.has-focus) .select-wrapper .select-icon{color:var(--highlight-color)}:host(.select-shape-round){--border-radius:16px}:host(.select-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{width:calc(100% - 0.8125rem - 4px)}:host(.select-disabled){opacity:0.38}::slotted(ion-button[slot=start].button-has-icon-only),::slotted(ion-button[slot=end].button-has-icon-only){--border-radius:50%;--padding-start:8px;--padding-end:8px;--padding-top:8px;--padding-bottom:8px;aspect-ratio:1;min-height:40px}`;
|
|
36986
|
+
const selectMdCss = () => `:host{--padding-top:0px;--padding-end:0px;--padding-bottom:0px;--padding-start:0px;--placeholder-color:currentColor;--placeholder-opacity:var(--ion-placeholder-opacity, 0.6);--background:transparent;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);--select-text-media-height:1.5em;--select-text-media-width:1.5em;--select-text-gap:12px;--highlight-color:var(--highlight-color-focused);display:block;position:relative;width:100%;min-height:44px;font-family:var(--ion-font-family, inherit);white-space:nowrap;cursor:pointer;z-index:2}:host(.select-label-placement-floating),:host(.select-label-placement-stacked){min-height:56px}:host(.ion-color){--highlight-color-focused:var(--ion-color-base)}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0}:host(.select-disabled){pointer-events:none}:host(.has-focus) button{border:2px solid #5e9ed6}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}.select-placeholder{color:var(--placeholder-color);opacity:var(--placeholder-opacity)}button{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}.select-icon{-webkit-margin-start:4px;margin-inline-start:4px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0;position:relative;-ms-flex-negative:0;flex-shrink:0}:host(.in-item-color) .select-icon{color:inherit}:host(.select-label-placement-stacked) .select-icon,:host(.select-label-placement-floating) .select-icon{position:absolute;height:100%}:host(.select-ltr.select-label-placement-stacked) .select-icon,:host(.select-ltr.select-label-placement-floating) .select-icon{right:var(--padding-end, 0)}:host(.select-rtl.select-label-placement-stacked) .select-icon,:host(.select-rtl.select-label-placement-floating) .select-icon{left:var(--padding-start, 0)}.select-text{-ms-flex:1;flex:1;min-width:16px;font-size:inherit;text-overflow:ellipsis;white-space:inherit;overflow:hidden}.select-text>*+*{-webkit-margin-start:var(--select-text-gap);margin-inline-start:var(--select-text-gap)}.select-text img,.select-text ion-img,.select-text ion-icon,.select-text ion-thumbnail,.select-text ion-avatar{border-radius:var(--select-text-media-border-radius);width:var(--select-text-media-width);height:var(--select-text-media-height);border-width:var(--select-text-media-border-width);border-style:var(--select-text-media-border-style);border-color:var(--select-text-media-border-color)}.select-wrapper{-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);border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal;cursor:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.select-wrapper .select-placeholder{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.select-wrapper-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;overflow:hidden}:host(.select-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{-ms-flex-positive:1;flex-grow:1}:host(.ion-touched.ion-invalid){--highlight-color:var(--highlight-color-invalid)}:host(.ion-valid){--highlight-color:var(--highlight-color-valid)}.select-bottom{-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:5px;padding-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;border-top:var(--border-width) var(--border-style) var(--border-color);font-size:0.75rem;white-space:normal}:host(.has-focus.ion-valid),:host(.select-expanded.ion-valid),:host(.ion-touched.ion-invalid),:host(.select-expanded.ion-touched.ion-invalid){--border-color:var(--highlight-color)}.select-bottom .error-text{display:none;color:var(--highlight-color-invalid)}.select-bottom .helper-text{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}:host(.ion-touched.ion-invalid) .select-bottom .error-text{display:block}:host(.ion-touched.ion-invalid) .select-bottom .helper-text{display:none}.label-text-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}.label-text,::slotted([slot=label]){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden,.select-outline-notch-hidden{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);overflow:hidden}:host(.select-justify-space-between) .select-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.select-justify-start) .select-wrapper{-ms-flex-pack:start;justify-content:start}:host(.select-justify-end) .select-wrapper{-ms-flex-pack:end;justify-content:end}:host(.select-label-placement-start) .select-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.select-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-end) .select-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.select-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.select-label-placement-stacked) .select-wrapper,:host(.select-label-placement-floating) .select-wrapper{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:start}:host(.select-label-placement-stacked) .label-text-wrapper,:host(.select-label-placement-floating) .label-text-wrapper{max-width:100%}:host(.select-ltr.select-label-placement-stacked) .label-text-wrapper,:host(.select-ltr.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host(.select-rtl.select-label-placement-stacked) .label-text-wrapper,:host(.select-rtl.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}:host(.select-label-placement-stacked) .native-wrapper,:host(.select-label-placement-floating) .native-wrapper{margin-left:0;margin-right:0;margin-top:1px;margin-bottom:0;-ms-flex-positive:1;flex-grow:1;width:100%}:host(.select-label-placement-floating) .label-text-wrapper{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}:host(.select-label-placement-floating:not(.label-floating)) .native-wrapper .select-placeholder{opacity:0}:host(.select-expanded.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-focus.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-value.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:1}:host(.label-floating) .label-text-wrapper{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}::slotted([slot=start]),::slotted([slot=end]){-ms-flex-negative:0;flex-shrink:0}::slotted([slot=start]:last-of-type){-webkit-margin-end:16px;margin-inline-end:16px;-webkit-margin-start:0;margin-inline-start:0}::slotted([slot=end]:first-of-type){-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}:host(.select-fill-solid){--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2));--border-color:var(--ion-color-step-500, var(--ion-background-color-step-500, gray));--border-radius:4px;--padding-start:16px;--padding-end:16px;min-height:56px}:host(.select-fill-solid) .select-wrapper{border-bottom:var(--border-width) var(--border-style) var(--border-color)}:host(.select-expanded.select-fill-solid.ion-valid),:host(.has-focus.select-fill-solid.ion-valid),:host(.select-fill-solid.ion-touched.ion-invalid){--border-color:var(--highlight-color)}:host(.select-fill-solid) .select-bottom{border-top:none}@media (any-hover: hover){:host(.select-fill-solid:hover){--background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6));--border-color:var(--ion-color-step-750, var(--ion-background-color-step-750, #404040))}}:host(.select-fill-solid.select-expanded),:host(.select-fill-solid.has-focus){--background:var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));--border-color:var(--highlight-color)}:host(.select-fill-solid) .select-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0px;border-end-start-radius:0px}:host(.label-floating.select-fill-solid) .label-text-wrapper{max-width:calc(100% / 0.75)}:host(.in-item.select-expanded.select-fill-solid) .select-wrapper .select-icon,:host(.in-item.has-focus.select-fill-solid) .select-wrapper .select-icon,:host(.in-item.has-focus.ion-valid.select-fill-solid) .select-wrapper .select-icon,:host(.in-item.ion-touched.ion-invalid.select-fill-solid) .select-wrapper .select-icon{color:var(--highlight-color)}:host(.select-fill-outline){--border-color:var(--ion-color-step-300, var(--ion-background-color-step-300, #b3b3b3));--border-radius:4px;--padding-start:16px;--padding-end:16px;min-height:56px}:host(.select-fill-outline.select-shape-round){--border-radius:28px;--padding-start:32px;--padding-end:32px}:host(.has-focus.select-fill-outline.ion-valid),:host(.select-fill-outline.ion-touched.ion-invalid){--border-color:var(--highlight-color)}@media (any-hover: hover){:host(.select-fill-outline:hover){--border-color:var(--ion-color-step-750, var(--ion-background-color-step-750, #404040))}}:host(.select-fill-outline.select-expanded),:host(.select-fill-outline.has-focus){--border-width:var(--highlight-height);--border-color:var(--highlight-color)}:host(.select-fill-outline) .select-bottom{border-top:none}:host(.select-fill-outline) .select-wrapper{border-bottom:none}:host(.select-ltr.select-fill-outline.select-label-placement-stacked) .label-text-wrapper,:host(.select-ltr.select-fill-outline.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host(.select-rtl.select-fill-outline.select-label-placement-stacked) .label-text-wrapper,:host(.select-rtl.select-fill-outline.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}:host(.select-fill-outline.select-label-placement-stacked) .label-text-wrapper,:host(.select-fill-outline.select-label-placement-floating) .label-text-wrapper{position:absolute;max-width:calc(100% - var(--padding-start) - var(--padding-end))}:host(.select-fill-outline) .label-text-wrapper{position:relative;z-index:1}:host(.label-floating.select-fill-outline) .label-text-wrapper{-webkit-transform:translateY(-32%) scale(0.75);transform:translateY(-32%) scale(0.75);margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;max-width:calc((100% - var(--padding-start) - var(--padding-end) - 8px) / 0.75)}:host(.select-fill-outline.select-label-placement-stacked) select,:host(.select-fill-outline.select-label-placement-floating) select{margin-left:0;margin-right:0;margin-top:6px;margin-bottom:6px}:host(.select-fill-outline) .select-outline-container{left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;width:100%;height:100%}:host(.select-fill-outline) .select-outline-start,:host(.select-fill-outline) .select-outline-end{pointer-events:none}:host(.select-fill-outline) .select-outline-start,:host(.select-fill-outline) .select-outline-notch,:host(.select-fill-outline) .select-outline-end{border-top:var(--border-width) var(--border-style) var(--border-color);border-bottom:var(--border-width) var(--border-style) var(--border-color);-webkit-box-sizing:border-box;box-sizing:border-box}:host(.select-fill-outline) .select-outline-notch{max-width:calc(100% - var(--padding-start) - var(--padding-end))}:host(.select-fill-outline) .notch-spacer{-webkit-padding-end:8px;padding-inline-end:8px;font-size:calc(1em * 0.75);opacity:0;pointer-events:none}:host(.select-fill-outline) .select-outline-start{-webkit-border-start:var(--border-width) var(--border-style) var(--border-color);border-inline-start:var(--border-width) var(--border-style) var(--border-color)}:host(.select-fill-outline) .select-outline-start{border-start-start-radius:var(--border-radius);border-start-end-radius:0px;border-end-end-radius:0px;border-end-start-radius:var(--border-radius)}:host(.select-fill-outline) .select-outline-start{width:calc(var(--padding-start) - 4px)}:host(.select-fill-outline) .select-outline-end{-webkit-border-end:var(--border-width) var(--border-style) var(--border-color);border-inline-end:var(--border-width) var(--border-style) var(--border-color)}:host(.select-fill-outline) .select-outline-end{border-start-start-radius:0px;border-start-end-radius:var(--border-radius);border-end-end-radius:var(--border-radius);border-end-start-radius:0px}:host(.select-fill-outline) .select-outline-end{-ms-flex-positive:1;flex-grow:1}:host(.label-floating.select-fill-outline) .select-outline-notch{border-top:none}:host(.in-item.select-expanded.select-fill-outline) .select-wrapper .select-icon,:host(.in-item.has-focus.select-fill-outline) .select-wrapper .select-icon,:host(.in-item.has-focus.ion-valid.select-fill-outline) .select-wrapper .select-icon,:host(.in-item.ion-touched.ion-invalid.select-fill-outline) .select-wrapper .select-icon{color:var(--highlight-color)}:host{--border-width:1px;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.13)))));--highlight-height:2px}:host(.select-label-placement-floating.select-expanded) .label-text-wrapper,:host(.select-label-placement-floating.has-focus) .label-text-wrapper,:host(.select-label-placement-stacked.select-expanded) .label-text-wrapper,:host(.select-label-placement-stacked.has-focus) .label-text-wrapper{color:var(--highlight-color)}:host(.has-focus.select-label-placement-floating.ion-valid) .label-text-wrapper,:host(.select-label-placement-floating.ion-touched.ion-invalid) .label-text-wrapper,:host(.has-focus.select-label-placement-stacked.ion-valid) .label-text-wrapper,:host(.select-label-placement-stacked.ion-touched.ion-invalid) .label-text-wrapper{color:var(--highlight-color)}.select-highlight{bottom:-1px;position:absolute;width:100%;height:var(--highlight-height);-webkit-transform:scale(0);transform:scale(0);-webkit-transition:-webkit-transform 200ms;transition:-webkit-transform 200ms;transition:transform 200ms;transition:transform 200ms, -webkit-transform 200ms;background:var(--highlight-color)}.select-highlight{inset-inline-start:0}:host(.select-expanded) .select-highlight,:host(.has-focus) .select-highlight{-webkit-transform:scale(1);transform:scale(1)}:host(.in-item) .select-highlight{bottom:0}:host(.in-item) .select-highlight{inset-inline-start:0}.select-icon{width:0.8125rem;-webkit-transition:-webkit-transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:-webkit-transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:transform 0.15s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);color:var(--ion-color-step-500, var(--ion-text-color-step-500, gray))}:host(.select-expanded:not(.has-expanded-icon)) .select-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}:host(.in-item.select-expanded) .select-wrapper .select-icon,:host(.in-item.has-focus) .select-wrapper .select-icon,:host(.in-item.has-focus.ion-valid) .select-wrapper .select-icon,:host(.in-item.ion-touched.ion-invalid) .select-wrapper .select-icon{color:var(--ion-color-step-500, var(--ion-text-color-step-500, gray))}:host(.select-expanded) .select-wrapper .select-icon,:host(.has-focus.ion-valid) .select-wrapper .select-icon,:host(.ion-touched.ion-invalid) .select-wrapper .select-icon,:host(.has-focus) .select-wrapper .select-icon{color:var(--highlight-color)}:host(.select-shape-round){--border-radius:16px}:host(.select-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{width:calc(100% - 0.8125rem - 4px)}:host(.select-disabled){opacity:0.38}::slotted(ion-button[slot=start].button-has-icon-only),::slotted(ion-button[slot=end].button-has-icon-only){--border-radius:50%;--padding-start:8px;--padding-end:8px;--padding-top:8px;--padding-bottom:8px;aspect-ratio:1;min-height:40px}`;
|
|
37166
36987
|
|
|
37167
36988
|
// TODO(FW-2832): types
|
|
37168
36989
|
/**
|
|
@@ -37197,6 +37018,7 @@ class Select {
|
|
|
37197
37018
|
this.helperTextId = `${this.inputId}-helper-text`;
|
|
37198
37019
|
this.errorTextId = `${this.inputId}-error-text`;
|
|
37199
37020
|
this.inheritedAttributes = {};
|
|
37021
|
+
this.customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
|
|
37200
37022
|
this.isExpanded = false;
|
|
37201
37023
|
/**
|
|
37202
37024
|
* The `hasFocus` state ensures the focus class is
|
|
@@ -37322,9 +37144,40 @@ class Select {
|
|
|
37322
37144
|
this.emitStyle();
|
|
37323
37145
|
}
|
|
37324
37146
|
setValue(value) {
|
|
37147
|
+
if (this.isValueEqual(this.value, value)) {
|
|
37148
|
+
return;
|
|
37149
|
+
}
|
|
37325
37150
|
this.value = value;
|
|
37326
37151
|
this.ionChange.emit({ value });
|
|
37327
37152
|
}
|
|
37153
|
+
isValueEqual(currentValue, newValue) {
|
|
37154
|
+
if (this.multiple) {
|
|
37155
|
+
const currentArr = Array.isArray(currentValue) ? currentValue : [];
|
|
37156
|
+
const newArr = Array.isArray(newValue) ? newValue : [];
|
|
37157
|
+
if (currentArr.length !== newArr.length) {
|
|
37158
|
+
return false;
|
|
37159
|
+
}
|
|
37160
|
+
// Multiset compare: each new value must match a distinct current value.
|
|
37161
|
+
// A plain `every(isOptionSelected)` would accept ['a','a'] as equal to
|
|
37162
|
+
// ['a','b'] when both 'a' and 'b' map to options whose values overlap.
|
|
37163
|
+
const remaining = currentArr.slice();
|
|
37164
|
+
return newArr.every((val) => {
|
|
37165
|
+
const idx = remaining.findIndex((c) => compareOptions(c, val, this.compareWith));
|
|
37166
|
+
if (idx === -1) {
|
|
37167
|
+
return false;
|
|
37168
|
+
}
|
|
37169
|
+
remaining.splice(idx, 1);
|
|
37170
|
+
return true;
|
|
37171
|
+
});
|
|
37172
|
+
}
|
|
37173
|
+
if (currentValue == null && newValue == null) {
|
|
37174
|
+
return true;
|
|
37175
|
+
}
|
|
37176
|
+
if (currentValue == null || newValue == null) {
|
|
37177
|
+
return false;
|
|
37178
|
+
}
|
|
37179
|
+
return compareOptions(currentValue, newValue, this.compareWith);
|
|
37180
|
+
}
|
|
37328
37181
|
async connectedCallback() {
|
|
37329
37182
|
const { el } = this;
|
|
37330
37183
|
this.notchController = createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
|
|
@@ -37518,10 +37371,11 @@ class Select {
|
|
|
37518
37371
|
.join(' ');
|
|
37519
37372
|
const optClass = `${OPTION_CLASS} ${copyClasses}`;
|
|
37520
37373
|
const isSelected = isOptionSelected(selectValue, value, this.compareWith);
|
|
37374
|
+
const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
|
|
37521
37375
|
return {
|
|
37522
|
-
|
|
37523
|
-
text: option.textContent,
|
|
37376
|
+
text: content !== null && content !== void 0 ? content : '',
|
|
37524
37377
|
cssClass: optClass,
|
|
37378
|
+
disabled: option.disabled,
|
|
37525
37379
|
handler: () => {
|
|
37526
37380
|
this.setValue(value);
|
|
37527
37381
|
},
|
|
@@ -37529,6 +37383,9 @@ class Select {
|
|
|
37529
37383
|
'aria-checked': isSelected ? 'true' : 'false',
|
|
37530
37384
|
role: 'radio',
|
|
37531
37385
|
},
|
|
37386
|
+
startContent,
|
|
37387
|
+
endContent,
|
|
37388
|
+
description: option.description,
|
|
37532
37389
|
};
|
|
37533
37390
|
});
|
|
37534
37391
|
// Add "cancel" button
|
|
@@ -37549,13 +37406,19 @@ class Select {
|
|
|
37549
37406
|
.filter((cls) => cls !== 'hydrated')
|
|
37550
37407
|
.join(' ');
|
|
37551
37408
|
const optClass = `${OPTION_CLASS} ${copyClasses}`;
|
|
37409
|
+
const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
|
|
37552
37410
|
return {
|
|
37553
37411
|
type: inputType,
|
|
37554
37412
|
cssClass: optClass,
|
|
37555
|
-
label:
|
|
37413
|
+
label: content !== null && content !== void 0 ? content : '',
|
|
37556
37414
|
value,
|
|
37557
37415
|
checked: isOptionSelected(selectValue, value, this.compareWith),
|
|
37558
37416
|
disabled: option.disabled,
|
|
37417
|
+
startContent,
|
|
37418
|
+
endContent,
|
|
37419
|
+
description: option.description,
|
|
37420
|
+
labelPlacement: option.labelPlacement,
|
|
37421
|
+
justify: option.justify,
|
|
37559
37422
|
};
|
|
37560
37423
|
});
|
|
37561
37424
|
return alertInputs;
|
|
@@ -37568,8 +37431,9 @@ class Select {
|
|
|
37568
37431
|
.filter((cls) => cls !== 'hydrated')
|
|
37569
37432
|
.join(' ');
|
|
37570
37433
|
const optClass = `${OPTION_CLASS} ${copyClasses}`;
|
|
37434
|
+
const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
|
|
37571
37435
|
return {
|
|
37572
|
-
text:
|
|
37436
|
+
text: content !== null && content !== void 0 ? content : '',
|
|
37573
37437
|
cssClass: optClass,
|
|
37574
37438
|
value,
|
|
37575
37439
|
checked: isOptionSelected(selectValue, value, this.compareWith),
|
|
@@ -37580,6 +37444,11 @@ class Select {
|
|
|
37580
37444
|
this.close();
|
|
37581
37445
|
}
|
|
37582
37446
|
},
|
|
37447
|
+
startContent,
|
|
37448
|
+
endContent,
|
|
37449
|
+
description: option.description,
|
|
37450
|
+
labelPlacement: option.labelPlacement,
|
|
37451
|
+
justify: option.justify,
|
|
37583
37452
|
};
|
|
37584
37453
|
});
|
|
37585
37454
|
return popoverOptions;
|
|
@@ -37612,15 +37481,21 @@ class Select {
|
|
|
37612
37481
|
ionShadowTarget: this.nativeWrapperEl,
|
|
37613
37482
|
} });
|
|
37614
37483
|
}
|
|
37484
|
+
const options = this.createOverlaySelectOptions(this.childOpts, value);
|
|
37485
|
+
const hasRichContent = options.some((opt) => opt.startContent || opt.endContent || opt.description);
|
|
37615
37486
|
const popoverOpts = Object.assign(Object.assign({ mode,
|
|
37616
37487
|
event, alignment: 'center', size,
|
|
37617
|
-
showBackdrop }, interfaceOptions), { component: 'ion-select-popover', cssClass: [
|
|
37488
|
+
showBackdrop }, interfaceOptions), { component: 'ion-select-popover', cssClass: [
|
|
37489
|
+
'select-popover',
|
|
37490
|
+
hasRichContent ? 'select-popover-rich-content' : undefined,
|
|
37491
|
+
interfaceOptions.cssClass,
|
|
37492
|
+
], componentProps: {
|
|
37618
37493
|
header: interfaceOptions.header,
|
|
37619
37494
|
subHeader: interfaceOptions.subHeader,
|
|
37620
37495
|
message: interfaceOptions.message,
|
|
37621
37496
|
multiple,
|
|
37622
37497
|
value,
|
|
37623
|
-
options
|
|
37498
|
+
options,
|
|
37624
37499
|
} });
|
|
37625
37500
|
return popoverController.create(popoverOpts);
|
|
37626
37501
|
}
|
|
@@ -37701,12 +37576,18 @@ class Select {
|
|
|
37701
37576
|
}
|
|
37702
37577
|
return;
|
|
37703
37578
|
}
|
|
37704
|
-
|
|
37579
|
+
/**
|
|
37580
|
+
* Returns the text to display in the select based on the selected value.
|
|
37581
|
+
*
|
|
37582
|
+
* @param useHTML If `true`, the returned text will include any custom HTML content from the selected option. If `false`, the returned text will be plain text without any HTML. Defaults to `false`.
|
|
37583
|
+
* @returns The text to display in the select, either with or without HTML based on the `useHTML` parameter.
|
|
37584
|
+
*/
|
|
37585
|
+
getText(useHTML = false) {
|
|
37705
37586
|
const selectedText = this.selectedText;
|
|
37706
37587
|
if (selectedText != null && selectedText !== '') {
|
|
37707
37588
|
return selectedText;
|
|
37708
37589
|
}
|
|
37709
|
-
return generateText(this.childOpts, this.value, this.compareWith);
|
|
37590
|
+
return generateText(this.childOpts, this.value, this.compareWith, useHTML);
|
|
37710
37591
|
}
|
|
37711
37592
|
setFocus() {
|
|
37712
37593
|
if (this.focusEl) {
|
|
@@ -37776,6 +37657,47 @@ class Select {
|
|
|
37776
37657
|
*/
|
|
37777
37658
|
return this.renderLabel();
|
|
37778
37659
|
}
|
|
37660
|
+
/**
|
|
37661
|
+
* Wraps text nodes in the select text with span elements
|
|
37662
|
+
* so spacing can be added between elements without
|
|
37663
|
+
* changing the display to prevent losing the ellipses
|
|
37664
|
+
* behavior.
|
|
37665
|
+
*
|
|
37666
|
+
* Only wraps when the string contains HTML elements
|
|
37667
|
+
* alongside text.
|
|
37668
|
+
*/
|
|
37669
|
+
wrapSelectTextNodes(html) {
|
|
37670
|
+
const temp = document.createElement('div');
|
|
37671
|
+
temp.innerHTML = html;
|
|
37672
|
+
const hasElements = Array.from(temp.childNodes).some((n) => n.nodeType === Node.ELEMENT_NODE);
|
|
37673
|
+
// Return the plain text
|
|
37674
|
+
if (!hasElements) {
|
|
37675
|
+
return html;
|
|
37676
|
+
}
|
|
37677
|
+
Array.from(temp.childNodes).forEach((node) => {
|
|
37678
|
+
var _a, _b, _c, _d;
|
|
37679
|
+
if (node.nodeType === Node.TEXT_NODE && ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim())) {
|
|
37680
|
+
const text = node.textContent;
|
|
37681
|
+
/**
|
|
37682
|
+
* Split comma separator from the text content
|
|
37683
|
+
* e.g., ", Bacon" becomes ", " text node + <span>Bacon</span>.
|
|
37684
|
+
*/
|
|
37685
|
+
const commaMatch = text.match(/^(,\s*)(.*)/);
|
|
37686
|
+
if (commaMatch) {
|
|
37687
|
+
const commaNode = document.createTextNode(commaMatch[1]);
|
|
37688
|
+
const wrapper = document.createElement('span');
|
|
37689
|
+
wrapper.textContent = commaMatch[2];
|
|
37690
|
+
(_b = node.parentNode) === null || _b === void 0 ? void 0 : _b.replaceChild(wrapper, node);
|
|
37691
|
+
(_c = wrapper.parentNode) === null || _c === void 0 ? void 0 : _c.insertBefore(commaNode, wrapper);
|
|
37692
|
+
return;
|
|
37693
|
+
}
|
|
37694
|
+
const wrapper = document.createElement('span');
|
|
37695
|
+
(_d = node.parentNode) === null || _d === void 0 ? void 0 : _d.replaceChild(wrapper, node);
|
|
37696
|
+
wrapper.appendChild(node);
|
|
37697
|
+
}
|
|
37698
|
+
});
|
|
37699
|
+
return temp.innerHTML;
|
|
37700
|
+
}
|
|
37779
37701
|
/**
|
|
37780
37702
|
* Renders either the placeholder
|
|
37781
37703
|
* or the selected values based on
|
|
@@ -37783,7 +37705,7 @@ class Select {
|
|
|
37783
37705
|
*/
|
|
37784
37706
|
renderSelectText() {
|
|
37785
37707
|
const { placeholder } = this;
|
|
37786
|
-
const displayValue = this.getText();
|
|
37708
|
+
const displayValue = this.getText(true);
|
|
37787
37709
|
let addPlaceholderClass = false;
|
|
37788
37710
|
let selectText = displayValue;
|
|
37789
37711
|
if (selectText === '' && placeholder !== undefined) {
|
|
@@ -37795,6 +37717,10 @@ class Select {
|
|
|
37795
37717
|
'select-placeholder': addPlaceholderClass,
|
|
37796
37718
|
};
|
|
37797
37719
|
const textPart = addPlaceholderClass ? 'placeholder' : 'text';
|
|
37720
|
+
if (this.customHTMLEnabled) {
|
|
37721
|
+
const wrapped = this.wrapSelectTextNodes(selectText);
|
|
37722
|
+
return hAsync("div", { "aria-hidden": "true", class: selectTextClasses, part: textPart, innerHTML: wrapped });
|
|
37723
|
+
}
|
|
37798
37724
|
return (hAsync("div", { "aria-hidden": "true", class: selectTextClasses, part: textPart }, selectText));
|
|
37799
37725
|
}
|
|
37800
37726
|
/**
|
|
@@ -37817,6 +37743,7 @@ class Select {
|
|
|
37817
37743
|
get ariaLabel() {
|
|
37818
37744
|
var _a;
|
|
37819
37745
|
const { placeholder, inheritedAttributes } = this;
|
|
37746
|
+
// Get the plain text from the selected text
|
|
37820
37747
|
const displayValue = this.getText();
|
|
37821
37748
|
// The aria label should be preferred over visible text if both are specified
|
|
37822
37749
|
const definedLabel = (_a = inheritedAttributes['aria-label']) !== null && _a !== void 0 ? _a : this.labelText;
|
|
@@ -37910,7 +37837,7 @@ class Select {
|
|
|
37910
37837
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
37911
37838
|
*/
|
|
37912
37839
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
|
|
37913
|
-
return (hAsync(Host, { key: '
|
|
37840
|
+
return (hAsync(Host, { key: 'a3036d51e0db13332641e9523264ddd1ab031912', onClick: this.onClick, class: createColorClasses$1(this.color, {
|
|
37914
37841
|
[mode]: true,
|
|
37915
37842
|
'in-item': inItem,
|
|
37916
37843
|
'in-item-color': hostContext('ion-item.ion-color', el),
|
|
@@ -37928,7 +37855,7 @@ class Select {
|
|
|
37928
37855
|
[`select-justify-${justify}`]: justifyEnabled,
|
|
37929
37856
|
[`select-shape-${shape}`]: shape !== undefined,
|
|
37930
37857
|
[`select-label-placement-${labelPlacement}`]: true,
|
|
37931
|
-
}) }, hAsync("label", { key: '
|
|
37858
|
+
}) }, hAsync("label", { key: '58b77f683499b958840721bdb59a9bf822c7f218', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), hAsync("div", { key: '9e68d96524c1b87d6cb1bdce79fa86f2022be04a', class: "select-wrapper-inner", part: "inner" }, hAsync("slot", { key: 'c9bcc5d684d2cefadff6ad3ec91498d5b405afc5', name: "start" }), hAsync("div", { key: '5405bc15ffb3437ca00c64fbbc83d8eb2631c4ea', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: '95e2f041c8517afb1cc6bddb2c3c38cf41f2376e', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: 'f3d2410f678ea22a107121aea1bbda197a618ed6', class: "select-highlight" })), this.renderBottomContent()));
|
|
37932
37859
|
}
|
|
37933
37860
|
get el() { return getElement(this); }
|
|
37934
37861
|
static get watchers() { return {
|
|
@@ -37999,34 +37926,232 @@ const parseValue = (value) => {
|
|
|
37999
37926
|
}
|
|
38000
37927
|
return value.toString();
|
|
38001
37928
|
};
|
|
38002
|
-
const generateText = (opts, value, compareWith) => {
|
|
37929
|
+
const generateText = (opts, value, compareWith, useHTML = false) => {
|
|
38003
37930
|
if (value === undefined) {
|
|
38004
37931
|
return '';
|
|
38005
37932
|
}
|
|
38006
37933
|
if (Array.isArray(value)) {
|
|
38007
37934
|
return value
|
|
38008
|
-
.map((v) => textForValue(opts, v, compareWith))
|
|
37935
|
+
.map((v) => textForValue(opts, v, compareWith, useHTML))
|
|
38009
37936
|
.filter((opt) => opt !== null)
|
|
38010
37937
|
.join(', ');
|
|
38011
37938
|
}
|
|
38012
37939
|
else {
|
|
38013
|
-
return textForValue(opts, value, compareWith) || '';
|
|
37940
|
+
return textForValue(opts, value, compareWith, useHTML) || '';
|
|
38014
37941
|
}
|
|
38015
37942
|
};
|
|
38016
|
-
|
|
37943
|
+
/**
|
|
37944
|
+
* Returns the display text for a given value from the list of options.
|
|
37945
|
+
* When `useHTML` is true, returns sanitized HTML for the select text.
|
|
37946
|
+
* When `useHTML` is false, returns plain text for aria-label and other
|
|
37947
|
+
* text-only contexts.
|
|
37948
|
+
*
|
|
37949
|
+
* @param opts - The list of ion-select-option elements.
|
|
37950
|
+
* @param value - The value to find the matching option for.
|
|
37951
|
+
* @param compareWith - Custom comparison function or property name.
|
|
37952
|
+
* @param useHTML - If true, returns HTML string. If false, returns plain text.
|
|
37953
|
+
*/
|
|
37954
|
+
const textForValue = (opts, value, compareWith, useHTML = false) => {
|
|
38017
37955
|
const selectOpt = opts.find((opt) => {
|
|
38018
37956
|
return compareOptions(value, getOptionValue(opt), compareWith);
|
|
38019
37957
|
});
|
|
38020
|
-
|
|
37958
|
+
const customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
|
|
37959
|
+
if (!selectOpt) {
|
|
37960
|
+
return null;
|
|
37961
|
+
}
|
|
37962
|
+
// Return sanitized HTML for the select text
|
|
37963
|
+
if (customHTMLEnabled && useHTML) {
|
|
37964
|
+
return getOptionContent(selectOpt, undefined, true);
|
|
37965
|
+
}
|
|
37966
|
+
/**
|
|
37967
|
+
* When custom HTML is enabled, extract only the default slot content.
|
|
37968
|
+
* This ensures aria-label and other text-only contexts read only
|
|
37969
|
+
* the relevant option text.
|
|
37970
|
+
*/
|
|
37971
|
+
if (customHTMLEnabled) {
|
|
37972
|
+
const content = getOptionContent(selectOpt);
|
|
37973
|
+
if (typeof content === 'string') {
|
|
37974
|
+
return content;
|
|
37975
|
+
}
|
|
37976
|
+
/**
|
|
37977
|
+
* Elements were found in the default slot, extract and concatenate
|
|
37978
|
+
* their text content while trimming whitespace.
|
|
37979
|
+
*/
|
|
37980
|
+
if (content) {
|
|
37981
|
+
const texts = Array.from(content.childNodes)
|
|
37982
|
+
.map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); })
|
|
37983
|
+
.filter((t) => t);
|
|
37984
|
+
return texts.join(' ') || null;
|
|
37985
|
+
}
|
|
37986
|
+
// Empty option
|
|
37987
|
+
return null;
|
|
37988
|
+
}
|
|
37989
|
+
return getDefaultSlotPlainText(selectOpt);
|
|
37990
|
+
};
|
|
37991
|
+
/**
|
|
37992
|
+
* Trims whitespace from all text nodes within a DOM tree.
|
|
37993
|
+
* This prevents invisible layout shifts and unwanted gaps between
|
|
37994
|
+
* elements when HTML content is injected via innerHTML or cloneNode,
|
|
37995
|
+
* as browsers preserve whitespace (tabs, newlines, spaces) from
|
|
37996
|
+
* the original source markup.
|
|
37997
|
+
*
|
|
37998
|
+
* @param node The root node to start trimming text nodes from.
|
|
37999
|
+
*/
|
|
38000
|
+
const trimTextNodes = (node) => {
|
|
38001
|
+
node.childNodes.forEach((child) => {
|
|
38002
|
+
var _a;
|
|
38003
|
+
if (child.nodeType === Node.TEXT_NODE) {
|
|
38004
|
+
child.textContent = ((_a = child.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
|
|
38005
|
+
}
|
|
38006
|
+
else if (child.nodeType === Node.ELEMENT_NODE) {
|
|
38007
|
+
trimTextNodes(child);
|
|
38008
|
+
}
|
|
38009
|
+
});
|
|
38010
|
+
};
|
|
38011
|
+
/**
|
|
38012
|
+
* Extracts and clones content from an `ion-select-option` element
|
|
38013
|
+
* for rendering within overlay interfaces or the select text when `customHTMLEnabled` is `true`.
|
|
38014
|
+
*
|
|
38015
|
+
* @param option - The `ion-select-option` element to extract content from.
|
|
38016
|
+
* @param slotName - Optional slot name to extract. If omitted, extracts the default slot content.
|
|
38017
|
+
* @param useHTML - If `true`, the returned string will include any custom HTML content. If `false`, the returned string will be plain text without any HTML.
|
|
38018
|
+
* @returns When `useHTML` is `true`, a sanitized HTML string. When `false`, a
|
|
38019
|
+
* div element containing cloned child nodes. Returns `null` if no matching
|
|
38020
|
+
* content is found.
|
|
38021
|
+
*/
|
|
38022
|
+
const getOptionContent = (option, slotName, useHTML = false) => {
|
|
38023
|
+
let nodes;
|
|
38024
|
+
if (slotName) {
|
|
38025
|
+
// Named slot: get elements with matching slot attribute
|
|
38026
|
+
nodes = Array.from(option.children).filter((el) => el.getAttribute('slot') === slotName);
|
|
38027
|
+
}
|
|
38028
|
+
else {
|
|
38029
|
+
// Default slot: get nodes without a slot attribute
|
|
38030
|
+
const defaultSlot = getOptionDefaultSlot(option) || [];
|
|
38031
|
+
nodes = defaultSlot.filter((node) => {
|
|
38032
|
+
var _a;
|
|
38033
|
+
/**
|
|
38034
|
+
* Exclude whitespace-only text nodes (newline noise between
|
|
38035
|
+
* markup elements). Element nodes are always kept, even when
|
|
38036
|
+
* their textContent is empty (e.g. <svg>, <img>).
|
|
38037
|
+
*/
|
|
38038
|
+
if (node.nodeType === Node.TEXT_NODE) {
|
|
38039
|
+
return ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim().length) !== 0;
|
|
38040
|
+
}
|
|
38041
|
+
return true;
|
|
38042
|
+
});
|
|
38043
|
+
}
|
|
38044
|
+
if (nodes.length === 0) {
|
|
38045
|
+
return null;
|
|
38046
|
+
}
|
|
38047
|
+
// Return plain text if no elements are found
|
|
38048
|
+
if (!slotName && nodes.every((n) => n.nodeType === Node.TEXT_NODE)) {
|
|
38049
|
+
return nodes.map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); }).join(' ') || null;
|
|
38050
|
+
}
|
|
38051
|
+
/**
|
|
38052
|
+
* Mirror known custom-element properties (e.g. ion-icon's `icon`)
|
|
38053
|
+
* onto attributes before cloning. Frameworks like Vue set these as
|
|
38054
|
+
* DOM properties, which `cloneNode` doesn't copy, so without this
|
|
38055
|
+
* step the cloned overlay copy renders without the prop's value.
|
|
38056
|
+
*/
|
|
38057
|
+
nodes.forEach((n) => {
|
|
38058
|
+
if (n.nodeType === Node.ELEMENT_NODE) {
|
|
38059
|
+
reflectPropertiesToAttributes(n);
|
|
38060
|
+
}
|
|
38061
|
+
});
|
|
38062
|
+
// Clone each node into a temporary container
|
|
38063
|
+
const container = document.createElement('div');
|
|
38064
|
+
nodes.forEach((n) => {
|
|
38065
|
+
var _a;
|
|
38066
|
+
const clone = n.cloneNode(true);
|
|
38067
|
+
if (clone.nodeType === Node.TEXT_NODE) {
|
|
38068
|
+
clone.textContent = ((_a = clone.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
|
|
38069
|
+
}
|
|
38070
|
+
else {
|
|
38071
|
+
trimTextNodes(clone);
|
|
38072
|
+
}
|
|
38073
|
+
container.appendChild(clone);
|
|
38074
|
+
});
|
|
38075
|
+
/**
|
|
38076
|
+
* Sanitize the cloned DOM in place. Trusted attributes (size, color,
|
|
38077
|
+
* shape, etc.) are preserved; event handlers, javascript: URLs, and
|
|
38078
|
+
* blocked tags are stripped.
|
|
38079
|
+
*/
|
|
38080
|
+
sanitizeDOMTree(container);
|
|
38081
|
+
if (useHTML) {
|
|
38082
|
+
return container.innerHTML.trim() || null;
|
|
38083
|
+
}
|
|
38084
|
+
return container;
|
|
38085
|
+
};
|
|
38086
|
+
/**
|
|
38087
|
+
* Returns the child nodes that belong to the default slot of an
|
|
38088
|
+
* option element, excluding any nodes that are assigned to named
|
|
38089
|
+
* slots.
|
|
38090
|
+
*
|
|
38091
|
+
* @param option - The `ion-select-option` element to extract default-slot nodes from.
|
|
38092
|
+
* @returns An array of default slot nodes, or `null` if none are found.
|
|
38093
|
+
*/
|
|
38094
|
+
const getOptionDefaultSlot = (option) => {
|
|
38095
|
+
const defaultSlotNodes = Array.from(option.childNodes).filter((node) => {
|
|
38096
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
38097
|
+
return !node.hasAttribute('slot');
|
|
38098
|
+
}
|
|
38099
|
+
return node.nodeType === Node.TEXT_NODE;
|
|
38100
|
+
});
|
|
38101
|
+
if (defaultSlotNodes.length === 0) {
|
|
38102
|
+
return null;
|
|
38103
|
+
}
|
|
38104
|
+
return defaultSlotNodes;
|
|
38105
|
+
};
|
|
38106
|
+
/**
|
|
38107
|
+
* Extracts plain text from only the default slot of an option,
|
|
38108
|
+
* excluding content assigned to named slots (start/end).
|
|
38109
|
+
*/
|
|
38110
|
+
const getDefaultSlotPlainText = (option) => {
|
|
38111
|
+
const texts = Array.from(option.childNodes)
|
|
38112
|
+
.filter((node) => {
|
|
38113
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
38114
|
+
return !node.hasAttribute('slot');
|
|
38115
|
+
}
|
|
38116
|
+
return node.nodeType === Node.TEXT_NODE;
|
|
38117
|
+
})
|
|
38118
|
+
.filter((node) => node.nodeType === Node.TEXT_NODE)
|
|
38119
|
+
.map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); })
|
|
38120
|
+
.filter((t) => t);
|
|
38121
|
+
return texts.join(' ');
|
|
38122
|
+
};
|
|
38123
|
+
/**
|
|
38124
|
+
* Extracts the rich content from an `ion-select-option`.
|
|
38125
|
+
* When `customHTMLEnabled` is `false`, only the plain text from the
|
|
38126
|
+
* default slot is read and the start and end slots are skipped.
|
|
38127
|
+
*
|
|
38128
|
+
* @param option - The `ion-select-option` element to extract content from.
|
|
38129
|
+
* @param customHTMLEnabled - Whether custom HTML rendering is enabled
|
|
38130
|
+
* via the `innerHTMLTemplatesEnabled` config.
|
|
38131
|
+
*/
|
|
38132
|
+
const extractOptionContent = (option, customHTMLEnabled) => {
|
|
38133
|
+
var _a, _b;
|
|
38134
|
+
if (!customHTMLEnabled) {
|
|
38135
|
+
return {
|
|
38136
|
+
content: getDefaultSlotPlainText(option),
|
|
38137
|
+
startContent: undefined,
|
|
38138
|
+
endContent: undefined,
|
|
38139
|
+
};
|
|
38140
|
+
}
|
|
38141
|
+
return {
|
|
38142
|
+
content: getOptionContent(option),
|
|
38143
|
+
startContent: (_a = getOptionContent(option, 'start')) !== null && _a !== void 0 ? _a : undefined,
|
|
38144
|
+
endContent: (_b = getOptionContent(option, 'end')) !== null && _b !== void 0 ? _b : undefined,
|
|
38145
|
+
};
|
|
38021
38146
|
};
|
|
38022
38147
|
let selectIds = 0;
|
|
38023
38148
|
const OPTION_CLASS = 'select-interface-option';
|
|
38024
38149
|
|
|
38025
|
-
const ionicSelectModalMdCss = () => `.sc-ion-select-modal-ionic-h{height:100%}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(container),ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic [part~="container"]{display:none}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(label),ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic [part~="label"]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-item.sc-ion-select-modal-ionic{--inner-border-width:0}.item-radio-checked.sc-ion-select-modal-ionic{--background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.08);--background-focused:var(--ion-color-primary, #0054e9);--background-focused-opacity:0.2;--background-hover:var(--ion-color-primary, #0054e9);--background-hover-opacity:0.12}.item-checkbox-checked.sc-ion-select-modal-ionic{--background-activated:var(--ion-item-color, var(--ion-text-color, #000));--background-focused:var(--ion-item-color, var(--ion-text-color, #000));--background-hover:var(--ion-item-color, var(--ion-text-color, #000));--color:var(--ion-color-primary, #0054e9)}`;
|
|
38150
|
+
const ionicSelectModalMdCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-select-modal-ionic,.alert-radio-label-has-rich-content.sc-ion-select-modal-ionic,.alert-checkbox-label-has-rich-content.sc-ion-select-modal-ionic,.select-option-label-has-rich-content.sc-ion-select-modal-ionic{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:16px}.action-sheet-button-label-has-rich-content.sc-ion-select-modal-ionic,.alert-radio-label-has-rich-content.sc-ion-select-modal-ionic,.alert-checkbox-label-has-rich-content.sc-ion-select-modal-ionic,.select-option-content.sc-ion-select-modal-ionic{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-select-modal-ionic,.alert-checkbox-label-text.sc-ion-select-modal-ionic,.alert-radio-label-text.sc-ion-select-modal-ionic,.select-option-label-text.sc-ion-select-modal-ionic{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-select-modal-ionic,.select-option-end.sc-ion-select-modal-ionic{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-select-modal-ionic{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}.select-option-label.sc-ion-select-modal-ionic:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-select-modal-ionic{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-select-modal-ionic::part(label),ion-radio.select-option-has-rich-content.sc-ion-select-modal-ionic [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-select-modal-ionic::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-select-modal-ionic [part~="label"],.select-option-content.sc-ion-select-modal-ionic{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-select-modal-ionic>ion-avatar.sc-ion-select-modal-ionic,.select-option-end.sc-ion-select-modal-ionic>ion-avatar.sc-ion-select-modal-ionic{width:40px;height:40px}.select-option-start.sc-ion-select-modal-ionic>ion-icon.sc-ion-select-modal-ionic,.select-option-end.sc-ion-select-modal-ionic>ion-icon.sc-ion-select-modal-ionic{width:24px;height:24px}.select-option-start.sc-ion-select-modal-ionic>ion-img.sc-ion-select-modal-ionic,.select-option-start.sc-ion-select-modal-ionic>img.sc-ion-select-modal-ionic,.select-option-start.sc-ion-select-modal-ionic>svg.sc-ion-select-modal-ionic,.select-option-start.sc-ion-select-modal-ionic>ion-thumbnail.sc-ion-select-modal-ionic,.select-option-end.sc-ion-select-modal-ionic>ion-img.sc-ion-select-modal-ionic,.select-option-end.sc-ion-select-modal-ionic>img.sc-ion-select-modal-ionic,.select-option-end.sc-ion-select-modal-ionic>svg.sc-ion-select-modal-ionic,.select-option-end.sc-ion-select-modal-ionic>ion-thumbnail.sc-ion-select-modal-ionic{width:56px;height:56px}.select-option-start.sc-ion-select-modal-ionic>video.sc-ion-select-modal-ionic,.select-option-end.sc-ion-select-modal-ionic>video.sc-ion-select-modal-ionic{width:114px;height:56px}.sc-ion-select-modal-ionic-h{height:100%}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(container),ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic [part~="container"]{display:none}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(label),ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic [part~="label"]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-item.sc-ion-select-modal-ionic{--inner-border-width:0}.item-radio-checked.sc-ion-select-modal-ionic{--background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.08);--background-focused:var(--ion-color-primary, #0054e9);--background-focused-opacity:0.2;--background-hover:var(--ion-color-primary, #0054e9);--background-hover-opacity:0.12}.item-checkbox-checked.sc-ion-select-modal-ionic{--background-activated:var(--ion-item-color, var(--ion-text-color, #000));--background-focused:var(--ion-item-color, var(--ion-text-color, #000));--background-hover:var(--ion-item-color, var(--ion-text-color, #000));--color:var(--ion-color-primary, #0054e9)}`;
|
|
38026
38151
|
|
|
38027
|
-
const selectModalIosCss = () => `.sc-ion-select-modal-ios-h{height:100%}ion-item.sc-ion-select-modal-ios{--inner-padding-end:0}ion-radio.sc-ion-select-modal-ios::after{bottom:0;position:absolute;width:calc(100% - 0.9375rem - 16px);border-width:0px 0px 0.55px 0px;border-style:solid;border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));content:""}ion-radio.sc-ion-select-modal-ios::after{inset-inline-start:calc(0.9375rem + 16px)}`;
|
|
38152
|
+
const selectModalIosCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-select-modal-ios,.alert-radio-label-has-rich-content.sc-ion-select-modal-ios,.alert-checkbox-label-has-rich-content.sc-ion-select-modal-ios,.select-option-label-has-rich-content.sc-ion-select-modal-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:16px}.action-sheet-button-label-has-rich-content.sc-ion-select-modal-ios,.alert-radio-label-has-rich-content.sc-ion-select-modal-ios,.alert-checkbox-label-has-rich-content.sc-ion-select-modal-ios,.select-option-content.sc-ion-select-modal-ios{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-select-modal-ios,.alert-checkbox-label-text.sc-ion-select-modal-ios,.alert-radio-label-text.sc-ion-select-modal-ios,.select-option-label-text.sc-ion-select-modal-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-select-modal-ios,.select-option-end.sc-ion-select-modal-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-select-modal-ios{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}.select-option-label.sc-ion-select-modal-ios:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-select-modal-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-select-modal-ios::part(label),ion-radio.select-option-has-rich-content.sc-ion-select-modal-ios [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-select-modal-ios::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-select-modal-ios [part~="label"],.select-option-content.sc-ion-select-modal-ios{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-select-modal-ios>ion-avatar.sc-ion-select-modal-ios,.select-option-start.sc-ion-select-modal-ios>ion-img.sc-ion-select-modal-ios,.select-option-start.sc-ion-select-modal-ios>ion-thumbnail.sc-ion-select-modal-ios,.select-option-start.sc-ion-select-modal-ios>img.sc-ion-select-modal-ios,.select-option-start.sc-ion-select-modal-ios>svg.sc-ion-select-modal-ios,.select-option-end.sc-ion-select-modal-ios>ion-avatar.sc-ion-select-modal-ios,.select-option-end.sc-ion-select-modal-ios>ion-img.sc-ion-select-modal-ios,.select-option-end.sc-ion-select-modal-ios>ion-thumbnail.sc-ion-select-modal-ios,.select-option-end.sc-ion-select-modal-ios>img.sc-ion-select-modal-ios,.select-option-end.sc-ion-select-modal-ios>svg.sc-ion-select-modal-ios{width:44px;height:44px}.select-option-start.sc-ion-select-modal-ios>ion-icon.sc-ion-select-modal-ios,.select-option-end.sc-ion-select-modal-ios>ion-icon.sc-ion-select-modal-ios{width:28px;height:28px}.action-sheet-button-label-text.sc-ion-select-modal-ios{-ms-flex-pack:center;justify-content:center}.select-option-has-rich-content.sc-ion-select-modal-ios{-webkit-padding-end:16px;padding-inline-end:16px}.sc-ion-select-modal-ios-h{height:100%}ion-item.sc-ion-select-modal-ios{--inner-padding-end:0}ion-radio.sc-ion-select-modal-ios::after{bottom:0;position:absolute;width:calc(100% - 0.9375rem - 16px);border-width:0px 0px 0.55px 0px;border-style:solid;border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));content:""}ion-radio.sc-ion-select-modal-ios::after{inset-inline-start:calc(0.9375rem + 16px)}`;
|
|
38028
38153
|
|
|
38029
|
-
const selectModalMdCss = () => `.sc-ion-select-modal-md-h{height:100%}ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md::part(container),ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md [part~="container"]{display:none}ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md::part(label),ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md [part~="label"]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-item.sc-ion-select-modal-md{--inner-border-width:0}.item-radio-checked.sc-ion-select-modal-md{--background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.08);--background-focused:var(--ion-color-primary, #0054e9);--background-focused-opacity:0.2;--background-hover:var(--ion-color-primary, #0054e9);--background-hover-opacity:0.12}.item-checkbox-checked.sc-ion-select-modal-md{--background-activated:var(--ion-item-color, var(--ion-text-color, #000));--background-focused:var(--ion-item-color, var(--ion-text-color, #000));--background-hover:var(--ion-item-color, var(--ion-text-color, #000));--color:var(--ion-color-primary, #0054e9)}`;
|
|
38154
|
+
const selectModalMdCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-select-modal-md,.alert-radio-label-has-rich-content.sc-ion-select-modal-md,.alert-checkbox-label-has-rich-content.sc-ion-select-modal-md,.select-option-label-has-rich-content.sc-ion-select-modal-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:16px}.action-sheet-button-label-has-rich-content.sc-ion-select-modal-md,.alert-radio-label-has-rich-content.sc-ion-select-modal-md,.alert-checkbox-label-has-rich-content.sc-ion-select-modal-md,.select-option-content.sc-ion-select-modal-md{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-select-modal-md,.alert-checkbox-label-text.sc-ion-select-modal-md,.alert-radio-label-text.sc-ion-select-modal-md,.select-option-label-text.sc-ion-select-modal-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-select-modal-md,.select-option-end.sc-ion-select-modal-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-select-modal-md{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}.select-option-label.sc-ion-select-modal-md:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-select-modal-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-select-modal-md::part(label),ion-radio.select-option-has-rich-content.sc-ion-select-modal-md [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-select-modal-md::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-select-modal-md [part~="label"],.select-option-content.sc-ion-select-modal-md{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-select-modal-md>ion-avatar.sc-ion-select-modal-md,.select-option-end.sc-ion-select-modal-md>ion-avatar.sc-ion-select-modal-md{width:40px;height:40px}.select-option-start.sc-ion-select-modal-md>ion-icon.sc-ion-select-modal-md,.select-option-end.sc-ion-select-modal-md>ion-icon.sc-ion-select-modal-md{width:24px;height:24px}.select-option-start.sc-ion-select-modal-md>ion-img.sc-ion-select-modal-md,.select-option-start.sc-ion-select-modal-md>img.sc-ion-select-modal-md,.select-option-start.sc-ion-select-modal-md>svg.sc-ion-select-modal-md,.select-option-start.sc-ion-select-modal-md>ion-thumbnail.sc-ion-select-modal-md,.select-option-end.sc-ion-select-modal-md>ion-img.sc-ion-select-modal-md,.select-option-end.sc-ion-select-modal-md>img.sc-ion-select-modal-md,.select-option-end.sc-ion-select-modal-md>svg.sc-ion-select-modal-md,.select-option-end.sc-ion-select-modal-md>ion-thumbnail.sc-ion-select-modal-md{width:56px;height:56px}.select-option-start.sc-ion-select-modal-md>video.sc-ion-select-modal-md,.select-option-end.sc-ion-select-modal-md>video.sc-ion-select-modal-md{width:114px;height:56px}.sc-ion-select-modal-md-h{height:100%}ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md::part(container),ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md [part~="container"]{display:none}ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md::part(label),ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md [part~="label"]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-item.sc-ion-select-modal-md{--inner-border-width:0}.item-radio-checked.sc-ion-select-modal-md{--background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.08);--background-focused:var(--ion-color-primary, #0054e9);--background-focused-opacity:0.2;--background-hover:var(--ion-color-primary, #0054e9);--background-hover-opacity:0.12}.item-checkbox-checked.sc-ion-select-modal-md{--background-activated:var(--ion-item-color, var(--ion-text-color, #000));--background-focused:var(--ion-item-color, var(--ion-text-color, #000));--background-hover:var(--ion-item-color, var(--ion-text-color, #000));--color:var(--ion-color-primary, #0054e9)}`;
|
|
38030
38155
|
|
|
38031
38156
|
class SelectModal {
|
|
38032
38157
|
constructor(hostRef) {
|
|
@@ -38080,39 +38205,90 @@ class SelectModal {
|
|
|
38080
38205
|
}
|
|
38081
38206
|
}
|
|
38082
38207
|
renderRadioOptions() {
|
|
38208
|
+
const mode = getIonMode$1(this);
|
|
38083
38209
|
const checked = this.options.filter((o) => o.checked).map((o) => o.value)[0];
|
|
38084
|
-
return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, this.options.map((option) =>
|
|
38210
|
+
return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, this.options.map((option, index) => {
|
|
38211
|
+
var _a, _b;
|
|
38212
|
+
/**
|
|
38213
|
+
* Cast to `SelectOverlayOption` to access rich content
|
|
38214
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
38215
|
+
* that are passed through from `ion-select` but not
|
|
38216
|
+
* part of the public `SelectModalOption` interface.
|
|
38217
|
+
*/
|
|
38218
|
+
const richOption = option;
|
|
38219
|
+
const hasRichContent = !!richOption.startContent || !!richOption.endContent || !!richOption.description;
|
|
38220
|
+
const optionLabelOptions = {
|
|
38221
|
+
id: `modal-option-${index}`,
|
|
38222
|
+
label: richOption.text,
|
|
38223
|
+
startContent: richOption.startContent,
|
|
38224
|
+
endContent: richOption.endContent,
|
|
38225
|
+
description: richOption.description,
|
|
38226
|
+
};
|
|
38227
|
+
const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'radio', 'modal');
|
|
38228
|
+
const defaultJustify = getOverlayLabelJustify(mode, 'radio', 'modal');
|
|
38229
|
+
return (hAsync("ion-item", { lines: "none",
|
|
38085
38230
|
// TODO FW-4784
|
|
38086
|
-
|
|
38087
|
-
|
|
38088
|
-
|
|
38089
|
-
|
|
38090
|
-
|
|
38091
|
-
|
|
38092
|
-
|
|
38093
|
-
|
|
38094
|
-
|
|
38095
|
-
}
|
|
38096
|
-
|
|
38097
|
-
|
|
38098
|
-
this.pendingEnterTarget = null;
|
|
38099
|
-
if (shouldClose) {
|
|
38231
|
+
disabled: option.disabled, class: Object.assign({
|
|
38232
|
+
// TODO FW-4784
|
|
38233
|
+
'item-radio-checked': option.value === checked
|
|
38234
|
+
}, getClassMap(option.cssClass)) }, hAsync("ion-radio", { class: {
|
|
38235
|
+
'select-option-has-rich-content': hasRichContent,
|
|
38236
|
+
}, value: option.value, disabled: option.disabled, justify: (_a = richOption.justify) !== null && _a !== void 0 ? _a : defaultJustify, labelPlacement: (_b = richOption.labelPlacement) !== null && _b !== void 0 ? _b : defaultLabelPlacement, onClick: () => this.closeModal(), onKeyDown: (ev) => {
|
|
38237
|
+
if (ev.key === 'Enter' && !ev.repeat) {
|
|
38238
|
+
this.pendingEnterTarget = ev.currentTarget;
|
|
38239
|
+
}
|
|
38240
|
+
}, onKeyUp: (ev) => {
|
|
38241
|
+
if (ev.key === ' ') {
|
|
38242
|
+
// Space selects and dismisses in one press.
|
|
38100
38243
|
this.closeModal();
|
|
38101
38244
|
}
|
|
38102
|
-
|
|
38103
|
-
|
|
38245
|
+
else if (ev.key === 'Enter') {
|
|
38246
|
+
const shouldClose = this.pendingEnterTarget === ev.currentTarget;
|
|
38247
|
+
this.pendingEnterTarget = null;
|
|
38248
|
+
if (shouldClose) {
|
|
38249
|
+
this.closeModal();
|
|
38250
|
+
}
|
|
38251
|
+
}
|
|
38252
|
+
} }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
|
|
38253
|
+
})));
|
|
38104
38254
|
}
|
|
38105
38255
|
renderCheckboxOptions() {
|
|
38106
|
-
|
|
38256
|
+
const mode = getIonMode$1(this);
|
|
38257
|
+
return this.options.map((option, index) => {
|
|
38258
|
+
var _a, _b;
|
|
38259
|
+
/**
|
|
38260
|
+
* Cast to `SelectOverlayOption` to access rich content
|
|
38261
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
38262
|
+
* that are passed through from `ion-select` but not
|
|
38263
|
+
* part of the public `SelectModalOption` interface.
|
|
38264
|
+
*/
|
|
38265
|
+
const richOption = option;
|
|
38266
|
+
const hasRichContent = !!richOption.startContent || !!richOption.endContent || !!richOption.description;
|
|
38267
|
+
const optionLabelOptions = {
|
|
38268
|
+
id: `modal-option-${index}`,
|
|
38269
|
+
label: richOption.text,
|
|
38270
|
+
startContent: richOption.startContent,
|
|
38271
|
+
endContent: richOption.endContent,
|
|
38272
|
+
description: richOption.description,
|
|
38273
|
+
};
|
|
38274
|
+
const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'checkbox', 'modal');
|
|
38275
|
+
const defaultJustify = getOverlayLabelJustify(mode, 'checkbox', 'modal');
|
|
38276
|
+
return (hAsync("ion-item", {
|
|
38107
38277
|
// TODO FW-4784
|
|
38108
|
-
|
|
38109
|
-
|
|
38110
|
-
|
|
38111
|
-
|
|
38112
|
-
}
|
|
38278
|
+
disabled: option.disabled, class: Object.assign({
|
|
38279
|
+
// TODO FW-4784
|
|
38280
|
+
'item-checkbox-checked': option.checked
|
|
38281
|
+
}, getClassMap(option.cssClass))
|
|
38282
|
+
}, hAsync("ion-checkbox", { class: {
|
|
38283
|
+
'select-option-has-rich-content': hasRichContent,
|
|
38284
|
+
}, value: option.value, disabled: option.disabled, checked: option.checked, justify: (_a = richOption.justify) !== null && _a !== void 0 ? _a : defaultJustify, labelPlacement: (_b = richOption.labelPlacement) !== null && _b !== void 0 ? _b : defaultLabelPlacement, onIonChange: (ev) => {
|
|
38285
|
+
this.setChecked(ev);
|
|
38286
|
+
this.callOptionHandler(ev);
|
|
38287
|
+
} }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
|
|
38288
|
+
});
|
|
38113
38289
|
}
|
|
38114
38290
|
render() {
|
|
38115
|
-
return (hAsync(Host, { key: '
|
|
38291
|
+
return (hAsync(Host, { key: '2cb1ae057b7a66f5d12c926f618f6b945f019803', class: getIonMode$1(this) }, hAsync("ion-header", { key: 'e41f1c4ad1c71dcc927d210502d6366cea894a14' }, hAsync("ion-toolbar", { key: '1a191dfc8980541469ee4d8996ba4de52cac1ac5' }, this.header !== undefined && hAsync("ion-title", { key: '14ab9cb7d41d15b982c6ccd8ba6cee0e9cb528d9' }, this.header), hAsync("ion-buttons", { key: '80451a2ed3a82138eb1575135cf2ebbd5e8f6e60', slot: "end" }, hAsync("ion-button", { key: '01a315cd739569f3c0b23a4d243d52b69b63dfa7', onClick: () => this.closeModal() }, this.cancelText)))), hAsync("ion-content", { key: 'd953101bae9a91f8108f7a5e411bb1e34338655d' }, hAsync("ion-list", { key: '171a5668afc67b03d2ee87e91cf400b17541bc7f' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
|
|
38116
38292
|
}
|
|
38117
38293
|
get el() { return getElement(this); }
|
|
38118
38294
|
static get style() { return {
|
|
@@ -38137,17 +38313,24 @@ class SelectModal {
|
|
|
38137
38313
|
|
|
38138
38314
|
const selectOptionCss = () => `:host{display:none}`;
|
|
38139
38315
|
|
|
38316
|
+
/**
|
|
38317
|
+
* @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
|
|
38318
|
+
*
|
|
38319
|
+
* @slot - Content is placed between the named slots if provided without a slot.
|
|
38320
|
+
* @slot start - Content is placed to the left of the select option text in LTR, and to the right in RTL.
|
|
38321
|
+
* @slot end - Content is placed to the right of the select option text in LTR, and to the left in RTL.
|
|
38322
|
+
*/
|
|
38140
38323
|
class SelectOption {
|
|
38141
38324
|
constructor(hostRef) {
|
|
38142
38325
|
registerInstance(this, hostRef);
|
|
38143
38326
|
this.inputId = `ion-selopt-${selectOptionIds++}`;
|
|
38144
38327
|
/**
|
|
38145
|
-
* If `true`, the user cannot interact with the select option.
|
|
38328
|
+
* If `true`, the user cannot interact with the select option.
|
|
38146
38329
|
*/
|
|
38147
38330
|
this.disabled = false;
|
|
38148
38331
|
}
|
|
38149
38332
|
render() {
|
|
38150
|
-
return hAsync(Host, { key: '
|
|
38333
|
+
return hAsync(Host, { key: '8b8bef0f5a55f18048708c34d3ea3ff0ff2f1d47', role: "option", id: this.inputId, class: getIonMode$1(this) });
|
|
38151
38334
|
}
|
|
38152
38335
|
get el() { return getElement(this); }
|
|
38153
38336
|
static get style() { return selectOptionCss(); }
|
|
@@ -38156,7 +38339,10 @@ class SelectOption {
|
|
|
38156
38339
|
"$tagName$": "ion-select-option",
|
|
38157
38340
|
"$members$": {
|
|
38158
38341
|
"disabled": [4],
|
|
38159
|
-
"value": [8]
|
|
38342
|
+
"value": [8],
|
|
38343
|
+
"description": [1],
|
|
38344
|
+
"labelPlacement": [1, "label-placement"],
|
|
38345
|
+
"justify": [1]
|
|
38160
38346
|
},
|
|
38161
38347
|
"$listeners$": undefined,
|
|
38162
38348
|
"$lazyBundleId$": "-",
|
|
@@ -38165,9 +38351,9 @@ class SelectOption {
|
|
|
38165
38351
|
}
|
|
38166
38352
|
let selectOptionIds = 0;
|
|
38167
38353
|
|
|
38168
|
-
const selectPopoverIosCss = () => `.sc-ion-select-popover-ios-h ion-list.sc-ion-select-popover-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-list-header.sc-ion-select-popover-ios,ion-label.sc-ion-select-popover-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-select-popover-ios-h{overflow-y:auto}`;
|
|
38354
|
+
const selectPopoverIosCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-select-popover-ios,.alert-radio-label-has-rich-content.sc-ion-select-popover-ios,.alert-checkbox-label-has-rich-content.sc-ion-select-popover-ios,.select-option-label-has-rich-content.sc-ion-select-popover-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:16px}.action-sheet-button-label-has-rich-content.sc-ion-select-popover-ios,.alert-radio-label-has-rich-content.sc-ion-select-popover-ios,.alert-checkbox-label-has-rich-content.sc-ion-select-popover-ios,.select-option-content.sc-ion-select-popover-ios{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-select-popover-ios,.alert-checkbox-label-text.sc-ion-select-popover-ios,.alert-radio-label-text.sc-ion-select-popover-ios,.select-option-label-text.sc-ion-select-popover-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-select-popover-ios,.select-option-end.sc-ion-select-popover-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-select-popover-ios{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}.select-option-label.sc-ion-select-popover-ios:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-select-popover-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-select-popover-ios::part(label),ion-radio.select-option-has-rich-content.sc-ion-select-popover-ios [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-select-popover-ios::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-select-popover-ios [part~="label"],.select-option-content.sc-ion-select-popover-ios{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-select-popover-ios>ion-avatar.sc-ion-select-popover-ios,.select-option-start.sc-ion-select-popover-ios>ion-img.sc-ion-select-popover-ios,.select-option-start.sc-ion-select-popover-ios>ion-thumbnail.sc-ion-select-popover-ios,.select-option-start.sc-ion-select-popover-ios>img.sc-ion-select-popover-ios,.select-option-start.sc-ion-select-popover-ios>svg.sc-ion-select-popover-ios,.select-option-end.sc-ion-select-popover-ios>ion-avatar.sc-ion-select-popover-ios,.select-option-end.sc-ion-select-popover-ios>ion-img.sc-ion-select-popover-ios,.select-option-end.sc-ion-select-popover-ios>ion-thumbnail.sc-ion-select-popover-ios,.select-option-end.sc-ion-select-popover-ios>img.sc-ion-select-popover-ios,.select-option-end.sc-ion-select-popover-ios>svg.sc-ion-select-popover-ios{width:44px;height:44px}.select-option-start.sc-ion-select-popover-ios>ion-icon.sc-ion-select-popover-ios,.select-option-end.sc-ion-select-popover-ios>ion-icon.sc-ion-select-popover-ios{width:28px;height:28px}.action-sheet-button-label-text.sc-ion-select-popover-ios{-ms-flex-pack:center;justify-content:center}.select-option-has-rich-content.sc-ion-select-popover-ios{-webkit-padding-end:16px;padding-inline-end:16px}.sc-ion-select-popover-ios-h ion-list.sc-ion-select-popover-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-list-header.sc-ion-select-popover-ios,ion-label.sc-ion-select-popover-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-select-popover-ios-h{overflow-y:auto}`;
|
|
38169
38355
|
|
|
38170
|
-
const selectPopoverMdCss = () => `.sc-ion-select-popover-md-h ion-list.sc-ion-select-popover-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-list-header.sc-ion-select-popover-md,ion-label.sc-ion-select-popover-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-select-popover-md-h{overflow-y:auto}ion-list.sc-ion-select-popover-md ion-radio.sc-ion-select-popover-md::part(container),ion-list.sc-ion-select-popover-md ion-radio.sc-ion-select-popover-md [part~="container"]{display:none}ion-list.sc-ion-select-popover-md ion-radio.sc-ion-select-popover-md::part(label),ion-list.sc-ion-select-popover-md ion-radio.sc-ion-select-popover-md [part~="label"]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-item.sc-ion-select-popover-md{--inner-border-width:0}.item-radio-checked.sc-ion-select-popover-md{--background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.08);--background-focused:var(--ion-color-primary, #0054e9);--background-focused-opacity:0.2;--background-hover:var(--ion-color-primary, #0054e9);--background-hover-opacity:0.12}.item-checkbox-checked.sc-ion-select-popover-md{--background-activated:var(--ion-item-color, var(--ion-text-color, #000));--background-focused:var(--ion-item-color, var(--ion-text-color, #000));--background-hover:var(--ion-item-color, var(--ion-text-color, #000));--color:var(--ion-color-primary, #0054e9)}`;
|
|
38356
|
+
const selectPopoverMdCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-select-popover-md,.alert-radio-label-has-rich-content.sc-ion-select-popover-md,.alert-checkbox-label-has-rich-content.sc-ion-select-popover-md,.select-option-label-has-rich-content.sc-ion-select-popover-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:16px}.action-sheet-button-label-has-rich-content.sc-ion-select-popover-md,.alert-radio-label-has-rich-content.sc-ion-select-popover-md,.alert-checkbox-label-has-rich-content.sc-ion-select-popover-md,.select-option-content.sc-ion-select-popover-md{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-select-popover-md,.alert-checkbox-label-text.sc-ion-select-popover-md,.alert-radio-label-text.sc-ion-select-popover-md,.select-option-label-text.sc-ion-select-popover-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-select-popover-md,.select-option-end.sc-ion-select-popover-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-select-popover-md{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}.select-option-label.sc-ion-select-popover-md:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-select-popover-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-select-popover-md::part(label),ion-radio.select-option-has-rich-content.sc-ion-select-popover-md [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-select-popover-md::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-select-popover-md [part~="label"],.select-option-content.sc-ion-select-popover-md{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-select-popover-md>ion-avatar.sc-ion-select-popover-md,.select-option-end.sc-ion-select-popover-md>ion-avatar.sc-ion-select-popover-md{width:40px;height:40px}.select-option-start.sc-ion-select-popover-md>ion-icon.sc-ion-select-popover-md,.select-option-end.sc-ion-select-popover-md>ion-icon.sc-ion-select-popover-md{width:24px;height:24px}.select-option-start.sc-ion-select-popover-md>ion-img.sc-ion-select-popover-md,.select-option-start.sc-ion-select-popover-md>img.sc-ion-select-popover-md,.select-option-start.sc-ion-select-popover-md>svg.sc-ion-select-popover-md,.select-option-start.sc-ion-select-popover-md>ion-thumbnail.sc-ion-select-popover-md,.select-option-end.sc-ion-select-popover-md>ion-img.sc-ion-select-popover-md,.select-option-end.sc-ion-select-popover-md>img.sc-ion-select-popover-md,.select-option-end.sc-ion-select-popover-md>svg.sc-ion-select-popover-md,.select-option-end.sc-ion-select-popover-md>ion-thumbnail.sc-ion-select-popover-md{width:56px;height:56px}.select-option-start.sc-ion-select-popover-md>video.sc-ion-select-popover-md,.select-option-end.sc-ion-select-popover-md>video.sc-ion-select-popover-md{width:114px;height:56px}.sc-ion-select-popover-md-h ion-list.sc-ion-select-popover-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-list-header.sc-ion-select-popover-md,ion-label.sc-ion-select-popover-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-select-popover-md-h{overflow-y:auto}ion-list.sc-ion-select-popover-md ion-radio.sc-ion-select-popover-md::part(container),ion-list.sc-ion-select-popover-md ion-radio.sc-ion-select-popover-md [part~="container"]{display:none}ion-list.sc-ion-select-popover-md ion-radio.sc-ion-select-popover-md::part(label),ion-list.sc-ion-select-popover-md ion-radio.sc-ion-select-popover-md [part~="label"]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-item.sc-ion-select-popover-md{--inner-border-width:0}.item-radio-checked.sc-ion-select-popover-md{--background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.08);--background-focused:var(--ion-color-primary, #0054e9);--background-focused-opacity:0.2;--background-hover:var(--ion-color-primary, #0054e9);--background-hover-opacity:0.12}.item-checkbox-checked.sc-ion-select-popover-md{--background-activated:var(--ion-item-color, var(--ion-text-color, #000));--background-focused:var(--ion-item-color, var(--ion-text-color, #000));--background-hover:var(--ion-item-color, var(--ion-text-color, #000));--color:var(--ion-color-primary, #0054e9)}`;
|
|
38171
38357
|
|
|
38172
38358
|
/**
|
|
38173
38359
|
* @internal
|
|
@@ -38241,41 +38427,91 @@ class SelectPopover {
|
|
|
38241
38427
|
}
|
|
38242
38428
|
}
|
|
38243
38429
|
renderCheckboxOptions(options) {
|
|
38244
|
-
|
|
38430
|
+
const mode = getIonMode$1(this);
|
|
38431
|
+
return options.map((option, index) => {
|
|
38432
|
+
var _a, _b;
|
|
38433
|
+
/**
|
|
38434
|
+
* Cast to `SelectOverlayOption` to access rich content
|
|
38435
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
38436
|
+
* that are passed through from `ion-select` but not
|
|
38437
|
+
* part of the public `SelectPopoverOption` interface.
|
|
38438
|
+
*/
|
|
38439
|
+
const richOption = option;
|
|
38440
|
+
const hasRichContent = !!richOption.startContent || !!richOption.endContent || !!richOption.description;
|
|
38441
|
+
const optionLabelOptions = {
|
|
38442
|
+
id: `popover-option-${index}`,
|
|
38443
|
+
label: richOption.text,
|
|
38444
|
+
startContent: richOption.startContent,
|
|
38445
|
+
endContent: richOption.endContent,
|
|
38446
|
+
description: richOption.description,
|
|
38447
|
+
};
|
|
38448
|
+
const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'checkbox');
|
|
38449
|
+
const defaultJustify = getOverlayLabelJustify(mode, 'checkbox');
|
|
38450
|
+
return (hAsync("ion-item", {
|
|
38245
38451
|
// TODO FW-4784
|
|
38246
|
-
|
|
38247
|
-
|
|
38248
|
-
|
|
38249
|
-
|
|
38250
|
-
}
|
|
38452
|
+
disabled: option.disabled, class: Object.assign({
|
|
38453
|
+
// TODO FW-4784
|
|
38454
|
+
'item-checkbox-checked': option.checked
|
|
38455
|
+
}, getClassMap(option.cssClass))
|
|
38456
|
+
}, hAsync("ion-checkbox", { class: {
|
|
38457
|
+
'select-option-has-rich-content': hasRichContent,
|
|
38458
|
+
}, value: option.value, disabled: option.disabled, checked: option.checked, justify: (_a = richOption.justify) !== null && _a !== void 0 ? _a : defaultJustify, labelPlacement: (_b = richOption.labelPlacement) !== null && _b !== void 0 ? _b : defaultLabelPlacement, onIonChange: (ev) => {
|
|
38459
|
+
this.setChecked(ev);
|
|
38460
|
+
this.callOptionHandler(ev);
|
|
38461
|
+
} }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
|
|
38462
|
+
});
|
|
38251
38463
|
}
|
|
38252
38464
|
renderRadioOptions(options) {
|
|
38465
|
+
const mode = getIonMode$1(this);
|
|
38253
38466
|
const checked = options.filter((o) => o.checked).map((o) => o.value)[0];
|
|
38254
|
-
return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, options.map((option) =>
|
|
38467
|
+
return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, options.map((option, index) => {
|
|
38468
|
+
var _a, _b;
|
|
38469
|
+
/**
|
|
38470
|
+
* Cast to `SelectOverlayOption` to access rich content
|
|
38471
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
38472
|
+
* that are passed through from `ion-select` but not
|
|
38473
|
+
* part of the public `SelectPopoverOption` interface.
|
|
38474
|
+
*/
|
|
38475
|
+
const richOption = option;
|
|
38476
|
+
const hasRichContent = !!richOption.startContent || !!richOption.endContent || !!richOption.description;
|
|
38477
|
+
const optionLabelOptions = {
|
|
38478
|
+
id: `popover-option-${index}`,
|
|
38479
|
+
label: richOption.text,
|
|
38480
|
+
startContent: richOption.startContent,
|
|
38481
|
+
endContent: richOption.endContent,
|
|
38482
|
+
description: richOption.description,
|
|
38483
|
+
};
|
|
38484
|
+
return (hAsync("ion-item", {
|
|
38255
38485
|
// TODO FW-4784
|
|
38256
|
-
|
|
38257
|
-
|
|
38258
|
-
|
|
38259
|
-
|
|
38260
|
-
|
|
38261
|
-
|
|
38262
|
-
|
|
38263
|
-
|
|
38264
|
-
|
|
38265
|
-
|
|
38266
|
-
|
|
38267
|
-
|
|
38268
|
-
|
|
38269
|
-
if (shouldDismiss) {
|
|
38486
|
+
disabled: option.disabled, class: Object.assign({
|
|
38487
|
+
// TODO FW-4784
|
|
38488
|
+
'item-radio-checked': option.value === checked
|
|
38489
|
+
}, getClassMap(option.cssClass))
|
|
38490
|
+
}, hAsync("ion-radio", { class: {
|
|
38491
|
+
'select-option-has-rich-content': hasRichContent,
|
|
38492
|
+
}, value: option.value, disabled: option.disabled, justify: (_a = richOption.justify) !== null && _a !== void 0 ? _a : getOverlayLabelJustify(mode, 'radio'), labelPlacement: (_b = richOption.labelPlacement) !== null && _b !== void 0 ? _b : getOverlayLabelPlacement(mode, 'radio'), onClick: () => this.dismissParentPopover(), onKeyDown: (ev) => {
|
|
38493
|
+
if (ev.key === 'Enter' && !ev.repeat) {
|
|
38494
|
+
this.pendingEnterTarget = ev.currentTarget;
|
|
38495
|
+
}
|
|
38496
|
+
}, onKeyUp: (ev) => {
|
|
38497
|
+
if (ev.key === ' ') {
|
|
38498
|
+
// Space selects and dismisses in one press.
|
|
38270
38499
|
this.dismissParentPopover();
|
|
38271
38500
|
}
|
|
38272
|
-
|
|
38273
|
-
|
|
38501
|
+
else if (ev.key === 'Enter') {
|
|
38502
|
+
const shouldDismiss = this.pendingEnterTarget === ev.currentTarget;
|
|
38503
|
+
this.pendingEnterTarget = null;
|
|
38504
|
+
if (shouldDismiss) {
|
|
38505
|
+
this.dismissParentPopover();
|
|
38506
|
+
}
|
|
38507
|
+
}
|
|
38508
|
+
} }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
|
|
38509
|
+
})));
|
|
38274
38510
|
}
|
|
38275
38511
|
render() {
|
|
38276
38512
|
const { header, message, options, subHeader } = this;
|
|
38277
38513
|
const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
|
|
38278
|
-
return (hAsync(Host, { key: '
|
|
38514
|
+
return (hAsync(Host, { key: 'd0c107e0ca78955a3cfcd9f098a527fb35eff14d', class: getIonMode$1(this) }, hAsync("ion-list", { key: '1e103312e22bf78d2201a0f88cc4fed789f62a2b' }, header !== undefined && hAsync("ion-list-header", { key: '657439905dc480112ed8d7f8d4a01464724de2bd' }, header), hasSubHeaderOrMessage && (hAsync("ion-item", { key: 'e0eaa0250bf233cf846adba5ddc141bf3430c2a8' }, hAsync("ion-label", { key: 'ad1cff877f9d582fbc64f9049603146fd1a1a6f9', class: "ion-text-wrap" }, subHeader !== undefined && hAsync("h3", { key: 'ead921d395b614a99c89a8ffe2a102a620f80767' }, subHeader), message !== undefined && hAsync("p", { key: '3a47e7091528930f33324ccd04d6734217155244' }, message)))), this.renderOptions(options))));
|
|
38279
38515
|
}
|
|
38280
38516
|
get el() { return getElement(this); }
|
|
38281
38517
|
static get style() { return {
|
|
@@ -38325,11 +38561,11 @@ class SkeletonText {
|
|
|
38325
38561
|
const animated = this.animated && config.getBoolean('animated', true);
|
|
38326
38562
|
const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
|
|
38327
38563
|
const mode = getIonMode$1(this);
|
|
38328
|
-
return (hAsync(Host, { key: '
|
|
38564
|
+
return (hAsync(Host, { key: '887d958d982345ce610730ab5c9ae35010430f75', class: {
|
|
38329
38565
|
[mode]: true,
|
|
38330
38566
|
'skeleton-text-animated': animated,
|
|
38331
38567
|
'in-media': inMedia,
|
|
38332
|
-
} }, hAsync("span", { key: '
|
|
38568
|
+
} }, hAsync("span", { key: 'a184f4b9780a2aada0a16729109ac81436e9c9e1' }, "\u00A0")));
|
|
38333
38569
|
}
|
|
38334
38570
|
get el() { return getElement(this); }
|
|
38335
38571
|
static get style() { return skeletonTextCss(); }
|
|
@@ -38381,7 +38617,7 @@ class Spinner {
|
|
|
38381
38617
|
svgs.push(buildLine(spinner, duration, i, spinner.lines));
|
|
38382
38618
|
}
|
|
38383
38619
|
}
|
|
38384
|
-
return (hAsync(Host, { key: '
|
|
38620
|
+
return (hAsync(Host, { key: 'c35ebd01186e860acb9cac260193f0836424fdf4', class: createColorClasses$1(self.color, {
|
|
38385
38621
|
[mode]: true,
|
|
38386
38622
|
[`spinner-${spinnerName}`]: true,
|
|
38387
38623
|
'spinner-paused': self.paused || config.getBoolean('_testing'),
|
|
@@ -38480,12 +38716,12 @@ class SplitPane {
|
|
|
38480
38716
|
}
|
|
38481
38717
|
render() {
|
|
38482
38718
|
const mode = getIonMode$1(this);
|
|
38483
|
-
return (hAsync(Host, { key: '
|
|
38719
|
+
return (hAsync(Host, { key: '694e989fafcfe2453e0a83b3cb736efaa1eb4fec', class: {
|
|
38484
38720
|
[mode]: true,
|
|
38485
38721
|
// Used internally for styling
|
|
38486
38722
|
[`split-pane-${mode}`]: true,
|
|
38487
38723
|
'split-pane-visible': this.visible,
|
|
38488
|
-
} }, hAsync("slot", { key: '
|
|
38724
|
+
} }, hAsync("slot", { key: 'dde7e9382b62cc11971aa233cf98c2314ae4f720' })));
|
|
38489
38725
|
}
|
|
38490
38726
|
get el() { return getElement(this); }
|
|
38491
38727
|
static get watchers() { return {
|
|
@@ -38557,10 +38793,10 @@ class Tab {
|
|
|
38557
38793
|
}
|
|
38558
38794
|
render() {
|
|
38559
38795
|
const { tab, active, component } = this;
|
|
38560
|
-
return (hAsync(Host, { key: '
|
|
38796
|
+
return (hAsync(Host, { key: '745262368a7f45244da459f4fa1730a46dd3e257', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
|
|
38561
38797
|
'ion-page': component === undefined,
|
|
38562
38798
|
'tab-hidden': !active,
|
|
38563
|
-
} }, hAsync("slot", { key: '
|
|
38799
|
+
} }, hAsync("slot", { key: '823d09a6f93bf7c0dc74f2b8717d1d3a62df1ad8' })));
|
|
38564
38800
|
}
|
|
38565
38801
|
get el() { return getElement(this); }
|
|
38566
38802
|
static get watchers() { return {
|
|
@@ -38674,11 +38910,11 @@ class TabBar {
|
|
|
38674
38910
|
const { color, translucent, keyboardVisible } = this;
|
|
38675
38911
|
const mode = getIonMode$1(this);
|
|
38676
38912
|
const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
|
|
38677
|
-
return (hAsync(Host, { key: '
|
|
38913
|
+
return (hAsync(Host, { key: '148f65df0818e9d220a9b46db74cb89ab94e62d2', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
|
|
38678
38914
|
[mode]: true,
|
|
38679
38915
|
'tab-bar-translucent': translucent,
|
|
38680
38916
|
'tab-bar-hidden': shouldHide,
|
|
38681
|
-
}) }, hAsync("slot", { key: '
|
|
38917
|
+
}) }, hAsync("slot", { key: 'a64e235f3703662e2dd7a834f752cc5b1490adbc' })));
|
|
38682
38918
|
}
|
|
38683
38919
|
get el() { return getElement(this); }
|
|
38684
38920
|
static get watchers() { return {
|
|
@@ -38776,7 +39012,7 @@ class TabButton {
|
|
|
38776
39012
|
rel,
|
|
38777
39013
|
target,
|
|
38778
39014
|
};
|
|
38779
|
-
return (hAsync(Host, { key: '
|
|
39015
|
+
return (hAsync(Host, { key: '1034b5a928ecec49bd8efec3730ea1b11a579cf3', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
|
|
38780
39016
|
[mode]: true,
|
|
38781
39017
|
'tab-selected': selected,
|
|
38782
39018
|
'tab-disabled': disabled,
|
|
@@ -38788,7 +39024,7 @@ class TabButton {
|
|
|
38788
39024
|
'ion-activatable': true,
|
|
38789
39025
|
'ion-selectable': true,
|
|
38790
39026
|
'ion-focusable': true,
|
|
38791
|
-
} }, hAsync("a", Object.assign({ key: '
|
|
39027
|
+
} }, hAsync("a", Object.assign({ key: '4cc8e695425956ffc7622af27c1b88a45f8a0c68' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), hAsync("span", { key: 'c529c166f557e1a5c744873c075b564c49786a2c', class: "button-inner" }, hAsync("slot", { key: 'f832355934d80267cd6e81e58b9c5afce0b42907' })), mode === 'md' && hAsync("ion-ripple-effect", { key: '90e79bdf38ba1cd89fca9ce63465e26a29b49316', type: "unbounded" }))));
|
|
38792
39028
|
}
|
|
38793
39029
|
get el() { return getElement(this); }
|
|
38794
39030
|
static get style() { return {
|
|
@@ -38979,7 +39215,7 @@ class Tabs {
|
|
|
38979
39215
|
return Array.from(this.el.querySelectorAll('ion-tab'));
|
|
38980
39216
|
}
|
|
38981
39217
|
render() {
|
|
38982
|
-
return (hAsync(Host, { key: '
|
|
39218
|
+
return (hAsync(Host, { key: 'ba04a29fdd02d7c758cbaa98cfc589949872d832', onIonTabButtonClick: this.onTabClicked }, hAsync("slot", { key: 'd5794140152e2c251e567eeb06afc392af74749d', name: "top" }), hAsync("div", { key: '26fb83786637fe7288901fbbdb3694b8bc94329f', class: "tabs-inner" }, hAsync("slot", { key: '60c663a8647e684455b533eaf5fa3908f9333ae9' })), hAsync("slot", { key: '2d9f7d07c8cdc72f5df200fa71fa56a9dd822c4c', name: "bottom" })));
|
|
38983
39219
|
}
|
|
38984
39220
|
get el() { return getElement(this); }
|
|
38985
39221
|
static get style() { return tabsCss(); }
|
|
@@ -39019,9 +39255,9 @@ class Text {
|
|
|
39019
39255
|
}
|
|
39020
39256
|
render() {
|
|
39021
39257
|
const mode = getIonMode$1(this);
|
|
39022
|
-
return (hAsync(Host, { key: '
|
|
39258
|
+
return (hAsync(Host, { key: '41ed8da617ed0e07bbfe96e32a000e1c6503e24e', class: createColorClasses$1(this.color, {
|
|
39023
39259
|
[mode]: true,
|
|
39024
|
-
}) }, hAsync("slot", { key: '
|
|
39260
|
+
}) }, hAsync("slot", { key: 'db8de04a2493537b3037f276b03abd92dfa56847' })));
|
|
39025
39261
|
}
|
|
39026
39262
|
static get style() { return textCss(); }
|
|
39027
39263
|
static get cmpMeta() { return {
|
|
@@ -39482,7 +39718,7 @@ class Textarea {
|
|
|
39482
39718
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
39483
39719
|
*/
|
|
39484
39720
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
|
|
39485
|
-
return (hAsync(Host, { key: '
|
|
39721
|
+
return (hAsync(Host, { key: 'eca1dfed53189408f614661ef3902cdb73d5f5de', class: createColorClasses$1(this.color, {
|
|
39486
39722
|
[mode]: true,
|
|
39487
39723
|
'has-value': hasValue,
|
|
39488
39724
|
'has-focus': hasFocus,
|
|
@@ -39491,7 +39727,7 @@ class Textarea {
|
|
|
39491
39727
|
[`textarea-shape-${shape}`]: shape !== undefined,
|
|
39492
39728
|
[`textarea-label-placement-${labelPlacement}`]: true,
|
|
39493
39729
|
'textarea-disabled': disabled,
|
|
39494
|
-
}) }, hAsync("label", { key: '
|
|
39730
|
+
}) }, hAsync("label", { key: 'd4d835ffedbf8b6de192096e21167ec4f7e01d30', class: "textarea-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: '39b03e26c23473de31a0237543eaf1e0875e6ed9', class: "textarea-wrapper-inner" }, hAsync("div", { key: 'e9e0997e7dc6d25f09e8439d81e138590c33a151', class: "start-slot-wrapper" }, hAsync("slot", { key: '2d88aace11d74196758e40af27a777eebb270019', name: "start" })), hAsync("div", { key: '8434424404f9fe707f9209ac6495a33bae060538', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, hAsync("textarea", Object.assign({ key: '5bb8eaeba76c39bccadb7c041a10fb077c422dcc', class: "native-textarea", ref: (el) => (this.nativeInput = el), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined }, this.inheritedAttributes), value)), hAsync("div", { key: '107707676552f8faca3e708285cc3266061a0394', class: "end-slot-wrapper" }, hAsync("slot", { key: 'dc890ffdce898f3d39a315e7bc432840559be466', name: "end" }))), shouldRenderHighlight && hAsync("div", { key: '4554ad09ac0908cea2e90bfa2301b4cd80ac7242', class: "textarea-highlight" })), this.renderBottomContent()));
|
|
39495
39731
|
}
|
|
39496
39732
|
get el() { return getElement(this); }
|
|
39497
39733
|
static get watchers() { return {
|
|
@@ -39560,7 +39796,7 @@ class Thumbnail {
|
|
|
39560
39796
|
registerInstance(this, hostRef);
|
|
39561
39797
|
}
|
|
39562
39798
|
render() {
|
|
39563
|
-
return (hAsync(Host, { key: '
|
|
39799
|
+
return (hAsync(Host, { key: '833e947c683b482a78f8f0df8c9a68e99478bbaa', class: getIonMode$1(this) }, hAsync("slot", { key: '6d1e9e686db88d91379f14121058dbf035d8ded2' })));
|
|
39564
39800
|
}
|
|
39565
39801
|
static get style() { return thumbnailCss(); }
|
|
39566
39802
|
static get cmpMeta() { return {
|
|
@@ -40420,9 +40656,9 @@ class Toast {
|
|
|
40420
40656
|
if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
|
|
40421
40657
|
printIonWarning('[ion-toast] - This toast is using start and end buttons with the stacked toast layout. We recommend following the best practice of using either start or end buttons with the stacked toast layout.', el);
|
|
40422
40658
|
}
|
|
40423
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
40659
|
+
return (hAsync(Host, Object.assign({ key: '2acb2cd2e12ea0082986495929e4a596d4da2f38', tabindex: "-1" }, this.htmlAttributes, { style: {
|
|
40424
40660
|
zIndex: `${60000 + this.overlayIndex}`,
|
|
40425
|
-
}, class: createColorClasses$1(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), hAsync("div", { key: '
|
|
40661
|
+
}, class: createColorClasses$1(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), hAsync("div", { key: '8b24ba5d3d51d1ab94b9bf6bb5d6e4b8bb3248a7', class: wrapperClass, part: "wrapper" }, hAsync("div", { key: 'e1ebdf4f0425cc7b1e2688667ee9a2b3c545804a', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (hAsync("ion-icon", { key: '552b1ab8f4e72882cc8e878579c7a594119677e1', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), hAsync("div", { key: '8ac8d64f632fbedadb180132c83043474466bee0', class: "toast-content", part: "content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
|
|
40426
40662
|
}
|
|
40427
40663
|
get el() { return getElement(this); }
|
|
40428
40664
|
static get watchers() { return {
|
|
@@ -40740,7 +40976,7 @@ class Toggle {
|
|
|
40740
40976
|
const value = this.getValue();
|
|
40741
40977
|
const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
|
|
40742
40978
|
renderHiddenInput(true, el, name, checked ? value : '', disabled);
|
|
40743
|
-
return (hAsync(Host, { key: '
|
|
40979
|
+
return (hAsync(Host, { key: 'ab093ddb505af61685cbb8571af1e765fc0292f8', role: "switch", "aria-checked": `${checked}`, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick, "aria-labelledby": hasLabel ? inputLabelId : null, "aria-label": inheritedAttributes['aria-label'] || null, "aria-disabled": disabled ? 'true' : null, "aria-required": required ? 'true' : undefined, tabindex: disabled ? undefined : 0, onKeyDown: this.onKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, class: createColorClasses$1(color, {
|
|
40744
40980
|
[mode]: true,
|
|
40745
40981
|
'in-item': hostContext('ion-item', el),
|
|
40746
40982
|
'toggle-activated': activated,
|
|
@@ -40750,10 +40986,10 @@ class Toggle {
|
|
|
40750
40986
|
[`toggle-alignment-${alignment}`]: alignment !== undefined,
|
|
40751
40987
|
[`toggle-label-placement-${labelPlacement}`]: true,
|
|
40752
40988
|
[`toggle-${rtl}`]: true,
|
|
40753
|
-
}) }, hAsync("label", { key: '
|
|
40989
|
+
}) }, hAsync("label", { key: 'b4b05e458fcbc767e4392ae43e647b075780cad0', class: "toggle-wrapper", htmlFor: inputId }, hAsync("input", Object.assign({ key: 'c09100447011c51d5b49b4400ec7d72012e3bc6f', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, required: required }, inheritedAttributes)), hAsync("div", { key: '71cf059a999ae572a20127b76907e010ace486ad', class: {
|
|
40754
40990
|
'label-text-wrapper': true,
|
|
40755
40991
|
'label-text-wrapper-hidden': !hasLabel,
|
|
40756
|
-
}, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: '
|
|
40992
|
+
}, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: 'c480b96a0ddd926568f73291d71253d6f74438c7' }), this.renderHintText()), hAsync("div", { key: '96a2cbd1673e051a78f8b2b16535ecd3f0ed4339', class: "native-wrapper" }, this.renderToggleControl()))));
|
|
40757
40993
|
}
|
|
40758
40994
|
get el() { return getElement(this); }
|
|
40759
40995
|
static get watchers() { return {
|
|
@@ -40865,10 +41101,10 @@ class Toolbar {
|
|
|
40865
41101
|
this.childrenStyles.forEach((value) => {
|
|
40866
41102
|
Object.assign(childStyles, value);
|
|
40867
41103
|
});
|
|
40868
|
-
return (hAsync(Host, { key: '
|
|
41104
|
+
return (hAsync(Host, { key: '40bad6fa7e94262438da4bbe037dcf8a5fa2df22', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
|
|
40869
41105
|
[mode]: true,
|
|
40870
41106
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
40871
|
-
})) }, hAsync("div", { key: '
|
|
41107
|
+
})) }, hAsync("div", { key: 'df44c9f0fe3958116ab860b0dad79c53b89f6c59', class: "toolbar-background", part: "background" }), hAsync("div", { key: '2169ffa576875b8d5624211cc0b4bf86191562bc', class: "toolbar-container", part: "container" }, hAsync("slot", { key: 'c8910dcf1ce98ab427fd89c3396a67c2a75bdd07', name: "start" }), hAsync("slot", { key: '05da24d5ef96b9eebd83b534ce02c1f7bcd06680', name: "secondary" }), hAsync("div", { key: '090fea1541e7e2b6ad74a6ded4eadffdb471ccce', class: "toolbar-content", part: "content" }, hAsync("slot", { key: '507e143f92f6fa59ff23d94026411fa2c74f2f8e' })), hAsync("slot", { key: 'f79fdee472e657e26a910cb89d7551943e40e440', name: "primary" }), hAsync("slot", { key: 'dd40fe9ed490cf4346c642e195fdb524dc6cc4f5', name: "end" }))));
|
|
40872
41108
|
}
|
|
40873
41109
|
get el() { return getElement(this); }
|
|
40874
41110
|
static get style() { return {
|
|
@@ -40914,11 +41150,11 @@ class ToolbarTitle {
|
|
|
40914
41150
|
render() {
|
|
40915
41151
|
const mode = getIonMode$1(this);
|
|
40916
41152
|
const size = this.getSize();
|
|
40917
|
-
return (hAsync(Host, { key: '
|
|
41153
|
+
return (hAsync(Host, { key: 'd9317e8e66cb6112717f5a9c252658777efbd873', class: createColorClasses$1(this.color, {
|
|
40918
41154
|
[mode]: true,
|
|
40919
41155
|
[`title-${size}`]: true,
|
|
40920
41156
|
'title-rtl': document.dir === 'rtl',
|
|
40921
|
-
}) }, hAsync("div", { key: '
|
|
41157
|
+
}) }, hAsync("div", { key: 'a4d011d6d409bf006d8efe33667002edb109820a', class: "toolbar-title" }, hAsync("slot", { key: '4ca3303b957a0e5387f1e9058e5adb4c6275afcc' }))));
|
|
40922
41158
|
}
|
|
40923
41159
|
get el() { return getElement(this); }
|
|
40924
41160
|
static get watchers() { return {
|
|
@@ -40998,10 +41234,8 @@ registerComponents([
|
|
|
40998
41234
|
Nav,
|
|
40999
41235
|
NavLink,
|
|
41000
41236
|
Note,
|
|
41001
|
-
Picker$1,
|
|
41002
41237
|
Picker,
|
|
41003
41238
|
PickerColumn,
|
|
41004
|
-
PickerColumnCmp,
|
|
41005
41239
|
PickerColumnOption,
|
|
41006
41240
|
Popover,
|
|
41007
41241
|
ProgressBar,
|