@ionic/core 8.8.14-dev.11783969828.1f28d893 → 8.8.14-dev.11783984044.10eaba06
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-img.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-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-BSQPZ79H.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_3.cjs.entry.js → ion-datetime.cjs.entry.js} +1 -639
- package/dist/cjs/ion-img.cjs.entry.js +3 -1
- 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 +23 -31
- 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-BeMrOwMt.js → overlays-DSmSrd_4.js} +27 -16
- 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/img/img.js +6 -1
- package/dist/collection/components/input/input.js +8 -8
- package/dist/collection/components/loading/loading.js +7 -3
- package/dist/collection/components/modal/gestures/sheet.js +0 -8
- package/dist/collection/components/modal/gestures/swipe-to-close.js +0 -8
- package/dist/collection/components/modal/modal.ios.css +0 -8
- package/dist/collection/components/modal/modal.js +23 -15
- package/dist/collection/components/modal/modal.md.css +0 -8
- 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 +26 -15
- package/dist/collection/utils/sanitization/index.js +274 -18
- package/dist/collection/utils/select-option-render.js +119 -0
- package/dist/docs.json +485 -1177
- 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_3.entry.js → ion-datetime.entry.js} +5 -641
- package/dist/esm/ion-fab_3.entry.js +1 -1
- package/dist/esm/ion-img.entry.js +4 -2
- 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 +23 -31
- 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-DBQMGaJ9.js → overlays-DLNOHWNc.js} +28 -17
- 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-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-700795f6.entry.js +4 -0
- 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-913b218a.entry.js +4 -0
- package/dist/ionic/{p-390ca786.entry.js → p-9177f4ac.entry.js} +1 -1
- 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-4abbd79c.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-f718fccb.entry.js +4 -0
- package/dist/ionic/{p-0fa9c382.entry.js → p-fe4aa1db.entry.js} +1 -1
- package/dist/types/components/img/img.d.ts +2 -0
- 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 +72 -288
- 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 +1408 -1173
- package/hydrate/index.mjs +1408 -1173
- 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-BUcrNuxp.js +0 -4
- package/components/p-BylFVz1e.js +0 -4
- package/components/p-CMVYv6xu.js +0 -4
- package/components/p-CSRA1aW0.js +0 -4
- package/components/p-CU5rbWAW.js +0 -4
- package/components/p-Ch5WJNJF.js +0 -4
- package/components/p-DoL_wAtc.js +0 -4
- package/components/p-k_E4tX5Z.js +0 -4
- package/components/p-qiecYdXI.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-0124647d.entry.js +0 -4
- package/dist/ionic/p-01f81ea5.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-305a059a.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-5076b325.entry.js +0 -4
- package/dist/ionic/p-50e1194a.entry.js +0 -4
- package/dist/ionic/p-6209ed93.entry.js +0 -4
- package/dist/ionic/p-6e3d2097.entry.js +0 -4
- package/dist/ionic/p-9f8cb0f3.entry.js +0 -4
- package/dist/ionic/p-BnzgTfDG.js +0 -4
- package/dist/ionic/p-DzWaWHGc.js +0 -4
- package/dist/ionic/p-a1b57bd4.entry.js +0 -4
- package/dist/ionic/p-a21add2f.entry.js +0 -4
- package/dist/ionic/p-ddb2d591.entry.js +0 -4
- package/dist/ionic/p-e13c6c40.entry.js +0 -4
- package/dist/ionic/p-ec090e0a.entry.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) {
|
|
@@ -8400,15 +8423,7 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
|
|
|
8400
8423
|
* to the overlay container.
|
|
8401
8424
|
*/
|
|
8402
8425
|
if (overlay.keyboardClose && (document.activeElement === null || !overlay.el.contains(document.activeElement))) {
|
|
8403
|
-
|
|
8404
|
-
* Some overlays (e.g. modal) put the dialog role and label on the
|
|
8405
|
-
* `.ion-overlay-wrapper` rather than the host. Screen readers like
|
|
8406
|
-
* TalkBack need focus to land there, so focus the wrapper when it is
|
|
8407
|
-
* focusable (has a `tabindex`); otherwise focus the host as before.
|
|
8408
|
-
*/
|
|
8409
|
-
const overlayWrapper = getElementRoot(overlay.el).querySelector('.ion-overlay-wrapper');
|
|
8410
|
-
const focusTarget = (overlayWrapper === null || overlayWrapper === void 0 ? void 0 : overlayWrapper.hasAttribute('tabindex')) ? overlayWrapper : overlay.el;
|
|
8411
|
-
focusTarget.focus({ preventScroll: true });
|
|
8426
|
+
overlay.el.focus();
|
|
8412
8427
|
}
|
|
8413
8428
|
/**
|
|
8414
8429
|
* If this overlay was previously dismissed without being
|
|
@@ -8744,6 +8759,539 @@ const createTriggerController = () => {
|
|
|
8744
8759
|
};
|
|
8745
8760
|
const FOCUS_TRAP_DISABLE_CLASS = 'ion-disable-focus-trap';
|
|
8746
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
|
+
|
|
8747
9295
|
const hostContext = (selector, el) => {
|
|
8748
9296
|
return el.closest(selector) !== null;
|
|
8749
9297
|
};
|
|
@@ -9599,7 +10147,7 @@ const createAnimation = (animationId) => {
|
|
|
9599
10147
|
/**
|
|
9600
10148
|
* iOS Action Sheet Enter Animation
|
|
9601
10149
|
*/
|
|
9602
|
-
const iosEnterAnimation$
|
|
10150
|
+
const iosEnterAnimation$5 = (baseEl) => {
|
|
9603
10151
|
const baseAnimation = createAnimation();
|
|
9604
10152
|
const backdropAnimation = createAnimation();
|
|
9605
10153
|
const wrapperAnimation = createAnimation();
|
|
@@ -9623,7 +10171,7 @@ const iosEnterAnimation$6 = (baseEl) => {
|
|
|
9623
10171
|
/**
|
|
9624
10172
|
* iOS Action Sheet Leave Animation
|
|
9625
10173
|
*/
|
|
9626
|
-
const iosLeaveAnimation$
|
|
10174
|
+
const iosLeaveAnimation$5 = (baseEl) => {
|
|
9627
10175
|
const baseAnimation = createAnimation();
|
|
9628
10176
|
const backdropAnimation = createAnimation();
|
|
9629
10177
|
const wrapperAnimation = createAnimation();
|
|
@@ -9680,9 +10228,9 @@ const mdLeaveAnimation$5 = (baseEl) => {
|
|
|
9680
10228
|
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
9681
10229
|
};
|
|
9682
10230
|
|
|
9683
|
-
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)}}`;
|
|
9684
10232
|
|
|
9685
|
-
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}`;
|
|
9686
10234
|
|
|
9687
10235
|
/**
|
|
9688
10236
|
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
@@ -9779,7 +10327,7 @@ class ActionSheet {
|
|
|
9779
10327
|
async present() {
|
|
9780
10328
|
const unlock = await this.lockController.lock();
|
|
9781
10329
|
await this.delegateController.attachViewToDom();
|
|
9782
|
-
await present(this, 'actionSheetEnter', iosEnterAnimation$
|
|
10330
|
+
await present(this, 'actionSheetEnter', iosEnterAnimation$5, mdEnterAnimation$5);
|
|
9783
10331
|
unlock();
|
|
9784
10332
|
}
|
|
9785
10333
|
/**
|
|
@@ -9796,7 +10344,7 @@ class ActionSheet {
|
|
|
9796
10344
|
*/
|
|
9797
10345
|
async dismiss(data, role) {
|
|
9798
10346
|
const unlock = await this.lockController.lock();
|
|
9799
|
-
const dismissed = await dismiss(this, data, role, 'actionSheetLeave', iosLeaveAnimation$
|
|
10347
|
+
const dismissed = await dismiss(this, data, role, 'actionSheetLeave', iosLeaveAnimation$5, mdLeaveAnimation$5);
|
|
9800
10348
|
if (dismissed) {
|
|
9801
10349
|
this.delegateController.removeViewFromDom();
|
|
9802
10350
|
}
|
|
@@ -9965,6 +10513,10 @@ class ActionSheet {
|
|
|
9965
10513
|
this.gesture = undefined;
|
|
9966
10514
|
}
|
|
9967
10515
|
this.triggerController.removeClickListener();
|
|
10516
|
+
// Clean up aria-hidden if removed without dismiss() being called
|
|
10517
|
+
if (this.presented) {
|
|
10518
|
+
cleanupRootFocusTrapAccessibility();
|
|
10519
|
+
}
|
|
9968
10520
|
}
|
|
9969
10521
|
componentWillLoad() {
|
|
9970
10522
|
var _a;
|
|
@@ -10053,12 +10605,26 @@ class ActionSheet {
|
|
|
10053
10605
|
if (isRadio) {
|
|
10054
10606
|
htmlAttrs['aria-checked'] = isActiveRadio ? 'true' : 'false';
|
|
10055
10607
|
}
|
|
10056
|
-
|
|
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: () => {
|
|
10057
10623
|
if (isRadio) {
|
|
10058
10624
|
this.selectRadioButton(b);
|
|
10059
10625
|
}
|
|
10060
10626
|
this.buttonClick(b);
|
|
10061
|
-
}, 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)));
|
|
10062
10628
|
});
|
|
10063
10629
|
}
|
|
10064
10630
|
render() {
|
|
@@ -10068,12 +10634,12 @@ class ActionSheet {
|
|
|
10068
10634
|
const cancelButton = allButtons.find((b) => b.role === 'cancel');
|
|
10069
10635
|
const buttons = allButtons.filter((b) => b.role !== 'cancel');
|
|
10070
10636
|
const headerID = `action-sheet-${overlayIndex}-header`;
|
|
10071
|
-
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: {
|
|
10072
10638
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
10073
|
-
}, 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: {
|
|
10074
10640
|
'action-sheet-title': true,
|
|
10075
10641
|
'action-sheet-has-sub-title': this.subHeader !== undefined,
|
|
10076
|
-
} }, 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" })));
|
|
10077
10643
|
}
|
|
10078
10644
|
get el() { return getElement(this); }
|
|
10079
10645
|
static get watchers() { return {
|
|
@@ -10122,178 +10688,59 @@ class ActionSheet {
|
|
|
10122
10688
|
"$attrsToReflect$": []
|
|
10123
10689
|
}; }
|
|
10124
10690
|
}
|
|
10125
|
-
const buttonClass$
|
|
10691
|
+
const buttonClass$2 = (button) => {
|
|
10126
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));
|
|
10127
10693
|
};
|
|
10128
10694
|
|
|
10129
10695
|
const ENABLE_HTML_CONTENT_DEFAULT = false;
|
|
10130
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.
|
|
10131
10698
|
/**
|
|
10132
|
-
*
|
|
10133
|
-
*
|
|
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`.
|
|
10134
10712
|
*/
|
|
10135
|
-
const
|
|
10136
|
-
|
|
10137
|
-
|
|
10138
|
-
return untrustedString.value;
|
|
10139
|
-
}
|
|
10140
|
-
if (!isSanitizerEnabled() || typeof untrustedString !== 'string' || untrustedString === '') {
|
|
10141
|
-
return untrustedString;
|
|
10142
|
-
}
|
|
10143
|
-
/**
|
|
10144
|
-
* onload is fired when appending to a document
|
|
10145
|
-
* fragment in Chrome. If a string
|
|
10146
|
-
* contains onload then we should not
|
|
10147
|
-
* attempt to add this to the fragment.
|
|
10148
|
-
*/
|
|
10149
|
-
if (untrustedString.includes('onload=')) {
|
|
10150
|
-
return '';
|
|
10151
|
-
}
|
|
10152
|
-
/**
|
|
10153
|
-
* Create a document fragment
|
|
10154
|
-
* separate from the main DOM,
|
|
10155
|
-
* create a div to do our work in
|
|
10156
|
-
*/
|
|
10157
|
-
const documentFragment = document.createDocumentFragment();
|
|
10158
|
-
const workingDiv = document.createElement('div');
|
|
10159
|
-
documentFragment.appendChild(workingDiv);
|
|
10160
|
-
workingDiv.innerHTML = untrustedString;
|
|
10161
|
-
/**
|
|
10162
|
-
* Remove any elements
|
|
10163
|
-
* that are blocked
|
|
10164
|
-
*/
|
|
10165
|
-
blockedTags.forEach((blockedTag) => {
|
|
10166
|
-
const getElementsToRemove = documentFragment.querySelectorAll(blockedTag);
|
|
10167
|
-
for (let elementIndex = getElementsToRemove.length - 1; elementIndex >= 0; elementIndex--) {
|
|
10168
|
-
const element = getElementsToRemove[elementIndex];
|
|
10169
|
-
if (element.parentNode) {
|
|
10170
|
-
element.parentNode.removeChild(element);
|
|
10171
|
-
}
|
|
10172
|
-
else {
|
|
10173
|
-
documentFragment.removeChild(element);
|
|
10174
|
-
}
|
|
10175
|
-
/**
|
|
10176
|
-
* We still need to sanitize
|
|
10177
|
-
* the children of this element
|
|
10178
|
-
* as they are left behind
|
|
10179
|
-
*/
|
|
10180
|
-
const childElements = getElementChildren(element);
|
|
10181
|
-
/* eslint-disable-next-line */
|
|
10182
|
-
for (let childIndex = 0; childIndex < childElements.length; childIndex++) {
|
|
10183
|
-
sanitizeElement(childElements[childIndex]);
|
|
10184
|
-
}
|
|
10185
|
-
}
|
|
10186
|
-
});
|
|
10187
|
-
/**
|
|
10188
|
-
* Go through remaining elements and remove
|
|
10189
|
-
* non-allowed attribs
|
|
10190
|
-
*/
|
|
10191
|
-
// IE does not support .children on document fragments, only .childNodes
|
|
10192
|
-
const dfChildren = getElementChildren(documentFragment);
|
|
10193
|
-
/* eslint-disable-next-line */
|
|
10194
|
-
for (let childIndex = 0; childIndex < dfChildren.length; childIndex++) {
|
|
10195
|
-
sanitizeElement(dfChildren[childIndex]);
|
|
10196
|
-
}
|
|
10197
|
-
// Append document fragment to div
|
|
10198
|
-
const fragmentDiv = document.createElement('div');
|
|
10199
|
-
fragmentDiv.appendChild(documentFragment);
|
|
10200
|
-
// First child is always the div we did our work in
|
|
10201
|
-
const getInnerDiv = fragmentDiv.querySelector('div');
|
|
10202
|
-
return getInnerDiv !== null ? getInnerDiv.innerHTML : fragmentDiv.innerHTML;
|
|
10203
|
-
}
|
|
10204
|
-
catch (err) {
|
|
10205
|
-
printIonError('sanitizeDOMString', err);
|
|
10206
|
-
return '';
|
|
10207
|
-
}
|
|
10208
|
-
};
|
|
10209
|
-
/**
|
|
10210
|
-
* Clean up current element based on allowed attributes
|
|
10211
|
-
* and then recursively dig down into any child elements to
|
|
10212
|
-
* clean those up as well
|
|
10213
|
-
*/
|
|
10214
|
-
// TODO(FW-2832): type (using Element triggers other type errors as well)
|
|
10215
|
-
const sanitizeElement = (element) => {
|
|
10216
|
-
// IE uses childNodes, so ignore nodes that are not elements
|
|
10217
|
-
if (element.nodeType && element.nodeType !== 1) {
|
|
10218
|
-
return;
|
|
10219
|
-
}
|
|
10220
|
-
/**
|
|
10221
|
-
* If attributes is not a NamedNodeMap
|
|
10222
|
-
* then we should remove the element entirely.
|
|
10223
|
-
* This helps avoid DOM Clobbering attacks where
|
|
10224
|
-
* attributes is overridden.
|
|
10225
|
-
*/
|
|
10226
|
-
if (typeof NamedNodeMap !== 'undefined' && !(element.attributes instanceof NamedNodeMap)) {
|
|
10227
|
-
element.remove();
|
|
10228
|
-
return;
|
|
10229
|
-
}
|
|
10230
|
-
for (let i = element.attributes.length - 1; i >= 0; i--) {
|
|
10231
|
-
const attribute = element.attributes.item(i);
|
|
10232
|
-
const attributeName = attribute.name;
|
|
10233
|
-
// remove non-allowed attribs
|
|
10234
|
-
if (!allowedAttributes.includes(attributeName.toLowerCase())) {
|
|
10235
|
-
element.removeAttribute(attributeName);
|
|
10236
|
-
continue;
|
|
10237
|
-
}
|
|
10238
|
-
// clean up any allowed attribs
|
|
10239
|
-
// that attempt to do any JS funny-business
|
|
10240
|
-
const attributeValue = attribute.value;
|
|
10241
|
-
/**
|
|
10242
|
-
* We also need to check the property value
|
|
10243
|
-
* as javascript: can allow special characters
|
|
10244
|
-
* such as 	 and still be valid (i.e. java	script)
|
|
10245
|
-
*/
|
|
10246
|
-
const propertyValue = element[attributeName];
|
|
10247
|
-
/* eslint-disable */
|
|
10248
|
-
if ((attributeValue != null && attributeValue.toLowerCase().includes('javascript:')) ||
|
|
10249
|
-
(propertyValue != null && propertyValue.toLowerCase().includes('javascript:'))) {
|
|
10250
|
-
element.removeAttribute(attributeName);
|
|
10251
|
-
}
|
|
10252
|
-
/* eslint-enable */
|
|
10253
|
-
}
|
|
10254
|
-
/**
|
|
10255
|
-
* Sanitize any nested children
|
|
10256
|
-
*/
|
|
10257
|
-
const childElements = getElementChildren(element);
|
|
10258
|
-
/* eslint-disable-next-line */
|
|
10259
|
-
for (let i = 0; i < childElements.length; i++) {
|
|
10260
|
-
sanitizeElement(childElements[i]);
|
|
10713
|
+
const getOverlayLabelPlacement = (mode, control, interfaceType) => {
|
|
10714
|
+
if (mode === 'ios' && control === 'radio' && interfaceType !== 'modal') {
|
|
10715
|
+
return 'start';
|
|
10261
10716
|
}
|
|
10717
|
+
return 'end';
|
|
10262
10718
|
};
|
|
10263
10719
|
/**
|
|
10264
|
-
*
|
|
10265
|
-
*
|
|
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`.
|
|
10266
10732
|
*/
|
|
10267
|
-
|
|
10268
|
-
|
|
10269
|
-
|
|
10270
|
-
};
|
|
10271
|
-
const isSanitizerEnabled = () => {
|
|
10272
|
-
var _a;
|
|
10273
|
-
const win = window;
|
|
10274
|
-
const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config;
|
|
10275
|
-
if (config) {
|
|
10276
|
-
if (config.get) {
|
|
10277
|
-
return config.get('sanitizerEnabled', true);
|
|
10278
|
-
}
|
|
10279
|
-
else {
|
|
10280
|
-
return config.sanitizerEnabled === true || config.sanitizerEnabled === undefined;
|
|
10281
|
-
}
|
|
10733
|
+
const getOverlayLabelJustify = (mode, control, interfaceType) => {
|
|
10734
|
+
if (mode === 'ios' && control === 'radio' && interfaceType !== 'modal') {
|
|
10735
|
+
return 'space-between';
|
|
10282
10736
|
}
|
|
10283
|
-
return
|
|
10737
|
+
return 'start';
|
|
10284
10738
|
};
|
|
10285
|
-
const allowedAttributes = ['class', 'id', 'href', 'src', 'name', 'slot'];
|
|
10286
|
-
const blockedTags = ['script', 'style', 'iframe', 'meta', 'link', 'object', 'embed'];
|
|
10287
|
-
class IonicSafeString {
|
|
10288
|
-
constructor(value) {
|
|
10289
|
-
this.value = value;
|
|
10290
|
-
}
|
|
10291
|
-
}
|
|
10292
10739
|
|
|
10293
10740
|
/**
|
|
10294
10741
|
* iOS Alert Enter Animation
|
|
10295
10742
|
*/
|
|
10296
|
-
const iosEnterAnimation$
|
|
10743
|
+
const iosEnterAnimation$4 = (baseEl) => {
|
|
10297
10744
|
const baseAnimation = createAnimation();
|
|
10298
10745
|
const backdropAnimation = createAnimation();
|
|
10299
10746
|
const wrapperAnimation = createAnimation();
|
|
@@ -10318,7 +10765,7 @@ const iosEnterAnimation$5 = (baseEl) => {
|
|
|
10318
10765
|
/**
|
|
10319
10766
|
* iOS Alert Leave Animation
|
|
10320
10767
|
*/
|
|
10321
|
-
const iosLeaveAnimation$
|
|
10768
|
+
const iosLeaveAnimation$4 = (baseEl) => {
|
|
10322
10769
|
const baseAnimation = createAnimation();
|
|
10323
10770
|
const backdropAnimation = createAnimation();
|
|
10324
10771
|
const wrapperAnimation = createAnimation();
|
|
@@ -10375,9 +10822,9 @@ const mdLeaveAnimation$4 = (baseEl) => {
|
|
|
10375
10822
|
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
10376
10823
|
};
|
|
10377
10824
|
|
|
10378
|
-
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)}`;
|
|
10379
10826
|
|
|
10380
|
-
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)}}`;
|
|
10381
10828
|
|
|
10382
10829
|
// TODO(FW-2832): types
|
|
10383
10830
|
/**
|
|
@@ -10551,22 +10998,7 @@ class Alert {
|
|
|
10551
10998
|
this.inputType = inputTypes.values().next().value;
|
|
10552
10999
|
this.processedInputs = inputs.map((i, index) => {
|
|
10553
11000
|
var _a;
|
|
10554
|
-
return ({
|
|
10555
|
-
type: i.type || 'text',
|
|
10556
|
-
name: i.name || `${index}`,
|
|
10557
|
-
placeholder: i.placeholder || '',
|
|
10558
|
-
value: i.value,
|
|
10559
|
-
label: i.label,
|
|
10560
|
-
checked: !!i.checked,
|
|
10561
|
-
disabled: !!i.disabled,
|
|
10562
|
-
id: i.id || `alert-input-${this.overlayIndex}-${index}`,
|
|
10563
|
-
handler: i.handler,
|
|
10564
|
-
min: i.min,
|
|
10565
|
-
max: i.max,
|
|
10566
|
-
cssClass: (_a = i.cssClass) !== null && _a !== void 0 ? _a : '',
|
|
10567
|
-
attributes: i.attributes || {},
|
|
10568
|
-
tabindex: i.type === 'radio' && i !== focusable ? -1 : 0,
|
|
10569
|
-
});
|
|
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 });
|
|
10570
11002
|
});
|
|
10571
11003
|
}
|
|
10572
11004
|
connectedCallback() {
|
|
@@ -10594,6 +11026,10 @@ class Alert {
|
|
|
10594
11026
|
this.gesture.destroy();
|
|
10595
11027
|
this.gesture = undefined;
|
|
10596
11028
|
}
|
|
11029
|
+
// Clean up aria-hidden if removed without dismiss() being called
|
|
11030
|
+
if (this.presented) {
|
|
11031
|
+
cleanupRootFocusTrapAccessibility();
|
|
11032
|
+
}
|
|
10597
11033
|
(_a = this.buttonGroupResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
10598
11034
|
this.buttonGroupResizeObserver = undefined;
|
|
10599
11035
|
}
|
|
@@ -10633,7 +11069,7 @@ class Alert {
|
|
|
10633
11069
|
async present() {
|
|
10634
11070
|
const unlock = await this.lockController.lock();
|
|
10635
11071
|
await this.delegateController.attachViewToDom();
|
|
10636
|
-
await present(this, 'alertEnter', iosEnterAnimation$
|
|
11072
|
+
await present(this, 'alertEnter', iosEnterAnimation$4, mdEnterAnimation$4).then(() => {
|
|
10637
11073
|
var _a, _b;
|
|
10638
11074
|
/**
|
|
10639
11075
|
* Check if alert has only one button and no inputs.
|
|
@@ -10664,7 +11100,7 @@ class Alert {
|
|
|
10664
11100
|
*/
|
|
10665
11101
|
async dismiss(data, role) {
|
|
10666
11102
|
const unlock = await this.lockController.lock();
|
|
10667
|
-
const dismissed = await dismiss(this, data, role, 'alertLeave', iosLeaveAnimation$
|
|
11103
|
+
const dismissed = await dismiss(this, data, role, 'alertLeave', iosLeaveAnimation$4, mdLeaveAnimation$4);
|
|
10668
11104
|
if (dismissed) {
|
|
10669
11105
|
this.delegateController.removeViewFromDom();
|
|
10670
11106
|
}
|
|
@@ -10762,14 +11198,61 @@ class Alert {
|
|
|
10762
11198
|
if (inputs.length === 0) {
|
|
10763
11199
|
return null;
|
|
10764
11200
|
}
|
|
10765
|
-
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
|
+
})));
|
|
10766
11225
|
}
|
|
10767
11226
|
renderRadio() {
|
|
10768
11227
|
const inputs = this.processedInputs;
|
|
11228
|
+
const mode = getIonMode$1(this);
|
|
10769
11229
|
if (inputs.length === 0) {
|
|
10770
11230
|
return null;
|
|
10771
11231
|
}
|
|
10772
|
-
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
|
+
})));
|
|
10773
11256
|
}
|
|
10774
11257
|
renderInput() {
|
|
10775
11258
|
const inputs = this.processedInputs;
|
|
@@ -10849,7 +11332,7 @@ class Alert {
|
|
|
10849
11332
|
'alert-button-group': true,
|
|
10850
11333
|
'alert-button-group-vertical': buttons.length > 2 || this.isButtonGroupWrapped,
|
|
10851
11334
|
};
|
|
10852
|
-
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))))));
|
|
10853
11336
|
}
|
|
10854
11337
|
renderAlertMessage(msgId) {
|
|
10855
11338
|
const { customHTMLEnabled, message } = this;
|
|
@@ -10872,9 +11355,9 @@ class Alert {
|
|
|
10872
11355
|
* If neither are defined, do not set aria-labelledby.
|
|
10873
11356
|
*/
|
|
10874
11357
|
const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
|
|
10875
|
-
return (hAsync(Host, { key: '
|
|
11358
|
+
return (hAsync(Host, { key: '022f3463b8e6c52064b90ec304c524847c3d5ad3', tabindex: "-1", style: {
|
|
10876
11359
|
zIndex: `${20000 + overlayIndex}`,
|
|
10877
|
-
}, 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" })));
|
|
10878
11361
|
}
|
|
10879
11362
|
get el() { return getElement(this); }
|
|
10880
11363
|
static get watchers() { return {
|
|
@@ -10932,7 +11415,7 @@ const inputClass = (input) => {
|
|
|
10932
11415
|
var _a, _b, _c;
|
|
10933
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() : ''));
|
|
10934
11417
|
};
|
|
10935
|
-
const buttonClass$
|
|
11418
|
+
const buttonClass$1 = (button) => {
|
|
10936
11419
|
return Object.assign({ 'alert-button': true, 'ion-focusable': true, 'ion-activatable': true, [`alert-button-role-${button.role}`]: button.role !== undefined }, getClassMap(button.cssClass));
|
|
10937
11420
|
};
|
|
10938
11421
|
|
|
@@ -18717,6 +19200,8 @@ const createColorClasses = (color) => {
|
|
|
18717
19200
|
const imgCss = () => `:host{display:block;-o-object-fit:contain;object-fit:contain}img{display:block;width:100%;height:100%;-o-object-fit:inherit;object-fit:inherit;-o-object-position:inherit;object-position:inherit}`;
|
|
18718
19201
|
|
|
18719
19202
|
/**
|
|
19203
|
+
* @deprecated
|
|
19204
|
+
*
|
|
18720
19205
|
* @part image - The inner `img` element.
|
|
18721
19206
|
*/
|
|
18722
19207
|
class Img {
|
|
@@ -18740,6 +19225,8 @@ class Img {
|
|
|
18740
19225
|
this.inheritedAttributes = inheritAttributes$1(this.el, ['draggable']);
|
|
18741
19226
|
}
|
|
18742
19227
|
componentDidLoad() {
|
|
19228
|
+
printIonWarning('[ion-img] - This component is deprecated and will be removed in Ionic v10. ' +
|
|
19229
|
+
'Use a native <img> with the loading="lazy" attribute instead.', this.el);
|
|
18743
19230
|
this.addIO();
|
|
18744
19231
|
}
|
|
18745
19232
|
disconnectedCallback() {
|
|
@@ -18792,7 +19279,7 @@ class Img {
|
|
|
18792
19279
|
render() {
|
|
18793
19280
|
const { loadSrc, alt, onLoad, loadError, inheritedAttributes } = this;
|
|
18794
19281
|
const { draggable } = inheritedAttributes;
|
|
18795
|
-
return (hAsync(Host, { key: '
|
|
19282
|
+
return (hAsync(Host, { key: '57bfb44d9850381fe7b6fcf0c9019b03f7ef86ec', class: getIonMode$1(this) }, hAsync("img", { key: '888ec06a266fa2751fc0147ede6a567f4e2b29a6', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
|
|
18796
19283
|
}
|
|
18797
19284
|
get el() { return getElement(this); }
|
|
18798
19285
|
static get watchers() { return {
|
|
@@ -19296,7 +19783,7 @@ class Input {
|
|
|
19296
19783
|
/**
|
|
19297
19784
|
* Whether auto correction should be enabled when the user is entering/editing the text value.
|
|
19298
19785
|
*/
|
|
19299
|
-
this.autocorrect =
|
|
19786
|
+
this.autocorrect = false;
|
|
19300
19787
|
/**
|
|
19301
19788
|
* Sets the [`autofocus` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus) on the native input element.
|
|
19302
19789
|
*
|
|
@@ -19753,7 +20240,7 @@ class Input {
|
|
|
19753
20240
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
19754
20241
|
*/
|
|
19755
20242
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
|
|
19756
|
-
return (hAsync(Host, { key: '
|
|
20243
|
+
return (hAsync(Host, { key: '6a05f61339d8045285d5820c2508296cc842c210', class: createColorClasses$1(this.color, {
|
|
19757
20244
|
[mode]: true,
|
|
19758
20245
|
'has-value': hasValue,
|
|
19759
20246
|
'has-focus': hasFocus,
|
|
@@ -19764,14 +20251,14 @@ class Input {
|
|
|
19764
20251
|
'in-item': inItem,
|
|
19765
20252
|
'in-item-color': hostContext('ion-item.ion-color', this.el),
|
|
19766
20253
|
'input-disabled': disabled,
|
|
19767
|
-
}) }, hAsync("label", { key: '
|
|
20254
|
+
}) }, 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) => {
|
|
19768
20255
|
/**
|
|
19769
20256
|
* This prevents mobile browsers from
|
|
19770
20257
|
* blurring the input when the clear
|
|
19771
20258
|
* button is activated.
|
|
19772
20259
|
*/
|
|
19773
20260
|
ev.preventDefault();
|
|
19774
|
-
}, onClick: this.clearTextInput }, hAsync("ion-icon", { key: '
|
|
20261
|
+
}, 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()));
|
|
19775
20262
|
}
|
|
19776
20263
|
get el() { return getElement(this); }
|
|
19777
20264
|
static get watchers() { return {
|
|
@@ -19799,7 +20286,7 @@ class Input {
|
|
|
19799
20286
|
"color": [513],
|
|
19800
20287
|
"autocapitalize": [1],
|
|
19801
20288
|
"autocomplete": [1],
|
|
19802
|
-
"autocorrect": [
|
|
20289
|
+
"autocorrect": [4],
|
|
19803
20290
|
"autofocus": [4],
|
|
19804
20291
|
"clearInput": [4, "clear-input"],
|
|
19805
20292
|
"clearInputIcon": [1, "clear-input-icon"],
|
|
@@ -21803,7 +22290,7 @@ class ListHeader {
|
|
|
21803
22290
|
/**
|
|
21804
22291
|
* iOS Loading Enter Animation
|
|
21805
22292
|
*/
|
|
21806
|
-
const iosEnterAnimation$
|
|
22293
|
+
const iosEnterAnimation$3 = (baseEl) => {
|
|
21807
22294
|
const baseAnimation = createAnimation();
|
|
21808
22295
|
const backdropAnimation = createAnimation();
|
|
21809
22296
|
const wrapperAnimation = createAnimation();
|
|
@@ -21828,7 +22315,7 @@ const iosEnterAnimation$4 = (baseEl) => {
|
|
|
21828
22315
|
/**
|
|
21829
22316
|
* iOS Loading Leave Animation
|
|
21830
22317
|
*/
|
|
21831
|
-
const iosLeaveAnimation$
|
|
22318
|
+
const iosLeaveAnimation$3 = (baseEl) => {
|
|
21832
22319
|
const baseAnimation = createAnimation();
|
|
21833
22320
|
const backdropAnimation = createAnimation();
|
|
21834
22321
|
const wrapperAnimation = createAnimation();
|
|
@@ -22001,6 +22488,10 @@ class Loading {
|
|
|
22001
22488
|
}
|
|
22002
22489
|
disconnectedCallback() {
|
|
22003
22490
|
this.triggerController.removeClickListener();
|
|
22491
|
+
// Clean up aria-hidden if removed without dismiss() being called
|
|
22492
|
+
if (this.presented) {
|
|
22493
|
+
cleanupRootFocusTrapAccessibility();
|
|
22494
|
+
}
|
|
22004
22495
|
}
|
|
22005
22496
|
/**
|
|
22006
22497
|
* Present the loading overlay after it has been created.
|
|
@@ -22008,7 +22499,7 @@ class Loading {
|
|
|
22008
22499
|
async present() {
|
|
22009
22500
|
const unlock = await this.lockController.lock();
|
|
22010
22501
|
await this.delegateController.attachViewToDom();
|
|
22011
|
-
await present(this, 'loadingEnter', iosEnterAnimation$
|
|
22502
|
+
await present(this, 'loadingEnter', iosEnterAnimation$3, mdEnterAnimation$3);
|
|
22012
22503
|
if (this.duration > 0) {
|
|
22013
22504
|
this.durationTimeout = setTimeout(() => this.dismiss(), this.duration + 10);
|
|
22014
22505
|
}
|
|
@@ -22031,7 +22522,7 @@ class Loading {
|
|
|
22031
22522
|
if (this.durationTimeout) {
|
|
22032
22523
|
clearTimeout(this.durationTimeout);
|
|
22033
22524
|
}
|
|
22034
|
-
const dismissed = await dismiss(this, data, role, 'loadingLeave', iosLeaveAnimation$
|
|
22525
|
+
const dismissed = await dismiss(this, data, role, 'loadingLeave', iosLeaveAnimation$3, mdLeaveAnimation$3);
|
|
22035
22526
|
if (dismissed) {
|
|
22036
22527
|
this.delegateController.removeViewFromDom();
|
|
22037
22528
|
}
|
|
@@ -22066,9 +22557,9 @@ class Loading {
|
|
|
22066
22557
|
* Otherwise, don't set aria-labelledby.
|
|
22067
22558
|
*/
|
|
22068
22559
|
const ariaLabelledBy = message !== undefined ? msgId : null;
|
|
22069
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
22560
|
+
return (hAsync(Host, Object.assign({ key: 'ab48bfcee8f7e3e33847a2f262fdc08b9ea804ca', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
|
|
22070
22561
|
zIndex: `${40000 + this.overlayIndex}`,
|
|
22071
|
-
}, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: '
|
|
22562
|
+
}, 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" })));
|
|
22072
22563
|
}
|
|
22073
22564
|
get el() { return getElement(this); }
|
|
22074
22565
|
static get watchers() { return {
|
|
@@ -24049,15 +24540,8 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
|
|
|
24049
24540
|
}
|
|
24050
24541
|
return false;
|
|
24051
24542
|
};
|
|
24052
|
-
/**
|
|
24053
|
-
* In Firefox, pressing over a text caret in the focusable wrapper can
|
|
24054
|
-
* start a native drag that swallows the gesture's pointer events.
|
|
24055
|
-
* Cancel native drag while the gesture is active.
|
|
24056
|
-
*/
|
|
24057
|
-
const preventNativeDragStart = (ev) => ev.preventDefault();
|
|
24058
24543
|
const onStart = (detail) => {
|
|
24059
24544
|
const { deltaY } = detail;
|
|
24060
|
-
el.addEventListener('dragstart', preventNativeDragStart);
|
|
24061
24545
|
/**
|
|
24062
24546
|
* Get the initial scrollY value so
|
|
24063
24547
|
* that we can correctly reset the scrollY
|
|
@@ -24160,7 +24644,6 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
|
|
|
24160
24644
|
onDragMove(eventDetail);
|
|
24161
24645
|
};
|
|
24162
24646
|
const onEnd = (detail) => {
|
|
24163
|
-
el.removeEventListener('dragstart', preventNativeDragStart);
|
|
24164
24647
|
const velocity = detail.velocityY;
|
|
24165
24648
|
const step = detail.deltaY / height;
|
|
24166
24649
|
const isAttemptingDismissWithCanDismiss = step >= 0 && canDismissBlocksGesture;
|
|
@@ -24350,7 +24833,7 @@ const createEnterAnimation$1 = () => {
|
|
|
24350
24833
|
/**
|
|
24351
24834
|
* iOS Modal Enter Animation for the Card presentation style
|
|
24352
24835
|
*/
|
|
24353
|
-
const iosEnterAnimation$
|
|
24836
|
+
const iosEnterAnimation$2 = (baseEl, opts) => {
|
|
24354
24837
|
const { presentingEl, currentBreakpoint, expandToScroll } = opts;
|
|
24355
24838
|
const root = getElementRoot(baseEl);
|
|
24356
24839
|
const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
|
|
@@ -24443,7 +24926,7 @@ const createLeaveAnimation$1 = () => {
|
|
|
24443
24926
|
/**
|
|
24444
24927
|
* iOS Modal Leave Animation
|
|
24445
24928
|
*/
|
|
24446
|
-
const iosLeaveAnimation$
|
|
24929
|
+
const iosLeaveAnimation$2 = (baseEl, opts, duration = 500) => {
|
|
24447
24930
|
const { presentingEl, currentBreakpoint } = opts;
|
|
24448
24931
|
const root = getElementRoot(baseEl);
|
|
24449
24932
|
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
|
|
@@ -24943,14 +25426,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
24943
25426
|
}
|
|
24944
25427
|
return true;
|
|
24945
25428
|
};
|
|
24946
|
-
/**
|
|
24947
|
-
* In Firefox, pressing over a text caret in the focusable wrapper can
|
|
24948
|
-
* start a native drag that swallows the gesture's pointer events.
|
|
24949
|
-
* Cancel native drag while the gesture is active.
|
|
24950
|
-
*/
|
|
24951
|
-
const preventNativeDragStart = (ev) => ev.preventDefault();
|
|
24952
25429
|
const onStart = (detail) => {
|
|
24953
|
-
baseEl.addEventListener('dragstart', preventNativeDragStart);
|
|
24954
25430
|
/**
|
|
24955
25431
|
* If canDismiss is anything other than `true`
|
|
24956
25432
|
* then users should be able to swipe down
|
|
@@ -25077,7 +25553,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
25077
25553
|
onDragMove(eventDetail);
|
|
25078
25554
|
};
|
|
25079
25555
|
const onEnd = (detail) => {
|
|
25080
|
-
baseEl.removeEventListener('dragstart', preventNativeDragStart);
|
|
25081
25556
|
const snapBreakpoint = calculateSnapBreakpoint(detail.deltaY);
|
|
25082
25557
|
const eventDetail = {
|
|
25083
25558
|
currentY: detail.currentY,
|
|
@@ -25554,9 +26029,9 @@ const clearSafeAreaOverrides = (hostEl) => {
|
|
|
25554
26029
|
hostEl.style.removeProperty('--ion-safe-area-right');
|
|
25555
26030
|
};
|
|
25556
26031
|
|
|
25557
|
-
const modalIosCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;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;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);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);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-
|
|
26032
|
+
const modalIosCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;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;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);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);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}:host(.modal-sheet){--height:calc(100% - (var(--ion-modal-offset-top, 0px) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.4)}:host(.modal-card),:host(.modal-sheet){--border-radius:10px}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:10px}}.modal-wrapper{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}@media screen and (max-width: 767px){@supports (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - max(30px, var(--ion-safe-area-top)) - 10px)}}@supports not (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - 40px)}}:host(.modal-card) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-card){--backdrop-opacity:0;--width:100%;-ms-flex-align:end;align-items:flex-end}:host(.modal-card) .modal-shadow{display:none}:host(.modal-card) ion-backdrop{pointer-events:none}}@media screen and (min-width: 768px){:host(.modal-card){--width:calc(100% - 120px);--height:calc(100% - (120px + var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));--max-width:720px;--max-height:1000px;--backdrop-opacity:0;--box-shadow:0px 0px 30px 10px rgba(0, 0, 0, 0.1);-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out}:host(.modal-card) .modal-wrapper{-webkit-box-shadow:none;box-shadow:none}:host(.modal-card) .modal-shadow{-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}}:host(.modal-sheet) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}`;
|
|
25558
26033
|
|
|
25559
|
-
const modalMdCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;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;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);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);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-
|
|
26034
|
+
const modalMdCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;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;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);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);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}:host(.modal-sheet){--height:calc(100% - (var(--ion-modal-offset-top, 0px) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:2px;--box-shadow:0 28px 48px rgba(0, 0, 0, 0.4)}}.modal-wrapper{-webkit-transform:translate3d(0, 40px, 0);transform:translate3d(0, 40px, 0);opacity:0.01}`;
|
|
25560
26035
|
|
|
25561
26036
|
// TODO(FW-2832): types
|
|
25562
26037
|
/**
|
|
@@ -25626,13 +26101,20 @@ class Modal {
|
|
|
25626
26101
|
/**
|
|
25627
26102
|
* The interaction behavior for the sheet modal when the handle is pressed.
|
|
25628
26103
|
*
|
|
25629
|
-
*
|
|
25630
|
-
*
|
|
26104
|
+
* Handle behavior is unavailable when the `handle` property is set to
|
|
26105
|
+
* `false` or when the `breakpoints` property is not set (using a
|
|
26106
|
+
* fullscreen or card modal).
|
|
25631
26107
|
*
|
|
25632
|
-
*
|
|
25633
|
-
*
|
|
26108
|
+
* Set to `"cycle"` to make the handle focusable and let the sheet modal
|
|
26109
|
+
* cycle between available breakpoints when pressed. This keeps the sheet
|
|
26110
|
+
* operable with assistive technology.
|
|
26111
|
+
*
|
|
26112
|
+
* Set to `"none"` to make the handle purely decorative when pressed and
|
|
26113
|
+
* removed from the tab order.
|
|
26114
|
+
*
|
|
26115
|
+
* Defaults to `"cycle"`.
|
|
25634
26116
|
*/
|
|
25635
|
-
this.handleBehavior = '
|
|
26117
|
+
this.handleBehavior = 'cycle';
|
|
25636
26118
|
/**
|
|
25637
26119
|
* If `true`, the modal will be dismissed when the backdrop is clicked.
|
|
25638
26120
|
*/
|
|
@@ -25824,6 +26306,10 @@ class Modal {
|
|
|
25824
26306
|
// Also called in dismiss() — intentional dual cleanup covers both
|
|
25825
26307
|
// dismiss-then-remove and direct DOM removal without dismiss.
|
|
25826
26308
|
this.cleanupSafeAreaOverrides();
|
|
26309
|
+
// Clean up aria-hidden if removed without dismiss() being called
|
|
26310
|
+
if (this.presented) {
|
|
26311
|
+
cleanupRootFocusTrapAccessibility();
|
|
26312
|
+
}
|
|
25827
26313
|
}
|
|
25828
26314
|
componentWillLoad() {
|
|
25829
26315
|
var _a;
|
|
@@ -26000,7 +26486,7 @@ class Modal {
|
|
|
26000
26486
|
this.statusBarStyle = await StatusBar.getStyle();
|
|
26001
26487
|
setCardStatusBarDark();
|
|
26002
26488
|
}
|
|
26003
|
-
await present(this, 'modalEnter', iosEnterAnimation$
|
|
26489
|
+
await present(this, 'modalEnter', iosEnterAnimation$2, mdEnterAnimation$2, {
|
|
26004
26490
|
presentingEl: presentingElement,
|
|
26005
26491
|
currentBreakpoint: this.initialBreakpoint,
|
|
26006
26492
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
@@ -26062,7 +26548,7 @@ class Modal {
|
|
|
26062
26548
|
// All of the elements needed for the swipe gesture
|
|
26063
26549
|
// should be in the DOM and referenced by now, except
|
|
26064
26550
|
// for the presenting el
|
|
26065
|
-
const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$
|
|
26551
|
+
const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$2);
|
|
26066
26552
|
const ani = (this.animation = animationBuilder(el, {
|
|
26067
26553
|
presentingEl: this.presentingElement,
|
|
26068
26554
|
expandToScroll: this.expandToScroll,
|
|
@@ -26081,7 +26567,7 @@ class Modal {
|
|
|
26081
26567
|
if (!wrapperEl || initialBreakpoint === undefined) {
|
|
26082
26568
|
return;
|
|
26083
26569
|
}
|
|
26084
|
-
const animationBuilder = this.enterAnimation || config.get('modalEnter', iosEnterAnimation$
|
|
26570
|
+
const animationBuilder = this.enterAnimation || config.get('modalEnter', iosEnterAnimation$2);
|
|
26085
26571
|
const ani = (this.animation = animationBuilder(this.el, {
|
|
26086
26572
|
presentingEl: this.presentingElement,
|
|
26087
26573
|
currentBreakpoint: initialBreakpoint,
|
|
@@ -26271,7 +26757,7 @@ class Modal {
|
|
|
26271
26757
|
window.removeEventListener(KEYBOARD_DID_OPEN, this.keyboardOpenCallback);
|
|
26272
26758
|
this.keyboardOpenCallback = undefined;
|
|
26273
26759
|
}
|
|
26274
|
-
const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation$
|
|
26760
|
+
const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation$2, mdLeaveAnimation$2, {
|
|
26275
26761
|
presentingEl: presentingElement,
|
|
26276
26762
|
currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
|
|
26277
26763
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
@@ -26703,23 +27189,20 @@ class Modal {
|
|
|
26703
27189
|
const isCardModal = presentingElement !== undefined && mode === 'ios';
|
|
26704
27190
|
const isHandleCycle = handleBehavior === 'cycle';
|
|
26705
27191
|
const isSheetModalWithHandle = isSheetModal && showHandle;
|
|
26706
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
27192
|
+
return (hAsync(Host, Object.assign({ key: '528f9e354f470e22563938e7531e3f23a97e4200', "no-router": true,
|
|
26707
27193
|
// Allow the modal to be navigable when the handle is focusable
|
|
26708
27194
|
tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
|
|
26709
27195
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
26710
|
-
}, 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: '
|
|
27196
|
+
}, 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',
|
|
26711
27197
|
/*
|
|
26712
27198
|
role and aria-modal must be used on the
|
|
26713
27199
|
same element. They must also be set inside the
|
|
26714
27200
|
shadow DOM otherwise ion-button will not be highlighted
|
|
26715
27201
|
when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
|
|
26716
|
-
|
|
26717
|
-
tabIndex={-1} lets present() focus this element (which carries
|
|
26718
|
-
the dialog role) instead of the role-less host.
|
|
26719
27202
|
*/
|
|
26720
|
-
role: "dialog" }, inheritedAttributes, { "aria-modal": "true",
|
|
27203
|
+
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",
|
|
26721
27204
|
// Prevents the handle from receiving keyboard focus when it does not cycle
|
|
26722
|
-
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: '
|
|
27205
|
+
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 }))));
|
|
26723
27206
|
}
|
|
26724
27207
|
get el() { return getElement(this); }
|
|
26725
27208
|
static get watchers() { return {
|
|
@@ -27802,14 +28285,14 @@ class Note {
|
|
|
27802
28285
|
}; }
|
|
27803
28286
|
}
|
|
27804
28287
|
|
|
27805
|
-
const pickerIosCss
|
|
28288
|
+
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)))}`;
|
|
27806
28289
|
|
|
27807
|
-
const pickerMdCss
|
|
28290
|
+
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%)}`;
|
|
27808
28291
|
|
|
27809
28292
|
/**
|
|
27810
28293
|
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
27811
28294
|
*/
|
|
27812
|
-
|
|
28295
|
+
class Picker {
|
|
27813
28296
|
constructor(hostRef) {
|
|
27814
28297
|
registerInstance(this, hostRef);
|
|
27815
28298
|
this.ionInputModeChange = createEvent(this, "ionInputModeChange", 7);
|
|
@@ -28275,8 +28758,8 @@ let Picker$1 = class Picker {
|
|
|
28275
28758
|
}
|
|
28276
28759
|
get el() { return getElement(this); }
|
|
28277
28760
|
static get style() { return {
|
|
28278
|
-
ios: pickerIosCss
|
|
28279
|
-
md: pickerMdCss
|
|
28761
|
+
ios: pickerIosCss(),
|
|
28762
|
+
md: pickerMdCss()
|
|
28280
28763
|
}; }
|
|
28281
28764
|
static get cmpMeta() { return {
|
|
28282
28765
|
"$flags$": 297,
|
|
@@ -28288,359 +28771,44 @@ let Picker$1 = class Picker {
|
|
|
28288
28771
|
"$lazyBundleId$": "-",
|
|
28289
28772
|
"$attrsToReflect$": []
|
|
28290
28773
|
}; }
|
|
28291
|
-
}
|
|
28292
|
-
|
|
28293
|
-
/**
|
|
28294
|
-
* iOS Picker Enter Animation
|
|
28295
|
-
*/
|
|
28296
|
-
const iosEnterAnimation$2 = (baseEl) => {
|
|
28297
|
-
const baseAnimation = createAnimation();
|
|
28298
|
-
const backdropAnimation = createAnimation();
|
|
28299
|
-
const wrapperAnimation = createAnimation();
|
|
28300
|
-
backdropAnimation
|
|
28301
|
-
.addElement(baseEl.querySelector('ion-backdrop'))
|
|
28302
|
-
.fromTo('opacity', 0.01, 'var(--backdrop-opacity)')
|
|
28303
|
-
.beforeStyles({
|
|
28304
|
-
'pointer-events': 'none',
|
|
28305
|
-
})
|
|
28306
|
-
.afterClearStyles(['pointer-events']);
|
|
28307
|
-
wrapperAnimation
|
|
28308
|
-
.addElement(baseEl.querySelector('.picker-wrapper'))
|
|
28309
|
-
.fromTo('transform', 'translateY(100%)', 'translateY(0%)');
|
|
28310
|
-
return baseAnimation
|
|
28311
|
-
.addElement(baseEl)
|
|
28312
|
-
.easing('cubic-bezier(.36,.66,.04,1)')
|
|
28313
|
-
.duration(400)
|
|
28314
|
-
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
28315
|
-
};
|
|
28316
|
-
|
|
28317
|
-
/**
|
|
28318
|
-
* iOS Picker Leave Animation
|
|
28319
|
-
*/
|
|
28320
|
-
const iosLeaveAnimation$2 = (baseEl) => {
|
|
28321
|
-
const baseAnimation = createAnimation();
|
|
28322
|
-
const backdropAnimation = createAnimation();
|
|
28323
|
-
const wrapperAnimation = createAnimation();
|
|
28324
|
-
backdropAnimation
|
|
28325
|
-
.addElement(baseEl.querySelector('ion-backdrop'))
|
|
28326
|
-
.fromTo('opacity', 'var(--backdrop-opacity)', 0.01);
|
|
28327
|
-
wrapperAnimation
|
|
28328
|
-
.addElement(baseEl.querySelector('.picker-wrapper'))
|
|
28329
|
-
.fromTo('transform', 'translateY(0%)', 'translateY(100%)');
|
|
28330
|
-
return baseAnimation
|
|
28331
|
-
.addElement(baseEl)
|
|
28332
|
-
.easing('cubic-bezier(.36,.66,.04,1)')
|
|
28333
|
-
.duration(400)
|
|
28334
|
-
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
28335
|
-
};
|
|
28336
|
-
|
|
28337
|
-
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}`;
|
|
28774
|
+
}
|
|
28338
28775
|
|
|
28339
|
-
const
|
|
28776
|
+
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)}}`;
|
|
28340
28777
|
|
|
28341
|
-
// TODO(FW-2832): types
|
|
28342
28778
|
/**
|
|
28343
28779
|
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
28780
|
+
*
|
|
28781
|
+
* @slot prefix - Content to show on the left side of the picker options.
|
|
28782
|
+
* @slot suffix - Content to show on the right side of the picker options.
|
|
28344
28783
|
*/
|
|
28345
|
-
class
|
|
28784
|
+
class PickerColumn {
|
|
28346
28785
|
constructor(hostRef) {
|
|
28347
28786
|
registerInstance(this, hostRef);
|
|
28348
|
-
this.
|
|
28349
|
-
this.
|
|
28350
|
-
this.
|
|
28351
|
-
this.
|
|
28352
|
-
this.
|
|
28353
|
-
this.
|
|
28354
|
-
this.
|
|
28355
|
-
this.didDismissShorthand = createEvent(this, "didDismiss", 7);
|
|
28356
|
-
this.delegateController = createDelegateController(this);
|
|
28357
|
-
this.lockController = createLockController();
|
|
28358
|
-
this.triggerController = createTriggerController();
|
|
28359
|
-
this.presented = false;
|
|
28360
|
-
/** @internal */
|
|
28361
|
-
this.hasController = false;
|
|
28362
|
-
/**
|
|
28363
|
-
* If `true`, the keyboard will be automatically dismissed when the overlay is presented.
|
|
28364
|
-
*/
|
|
28365
|
-
this.keyboardClose = true;
|
|
28366
|
-
/**
|
|
28367
|
-
* Array of buttons to be displayed at the top of the picker.
|
|
28368
|
-
*/
|
|
28369
|
-
this.buttons = [];
|
|
28787
|
+
this.ionChange = createEvent(this, "ionChange", 7);
|
|
28788
|
+
this.isScrolling = false;
|
|
28789
|
+
this.isColumnVisible = false;
|
|
28790
|
+
this.canExitInputMode = true;
|
|
28791
|
+
this.updateValueTextOnScroll = false;
|
|
28792
|
+
this.ariaLabel = null;
|
|
28793
|
+
this.isActive = false;
|
|
28370
28794
|
/**
|
|
28371
|
-
*
|
|
28795
|
+
* If `true`, the user cannot interact with the picker.
|
|
28372
28796
|
*/
|
|
28373
|
-
this.
|
|
28797
|
+
this.disabled = false;
|
|
28374
28798
|
/**
|
|
28375
|
-
*
|
|
28799
|
+
* The color to use from your application's color palette.
|
|
28800
|
+
* Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
|
|
28801
|
+
* For more information on colors, see [theming](/docs/theming/basics).
|
|
28376
28802
|
*/
|
|
28377
|
-
this.
|
|
28803
|
+
this.color = 'primary';
|
|
28378
28804
|
/**
|
|
28379
|
-
* If `true`,
|
|
28380
|
-
|
|
28381
|
-
|
|
28382
|
-
|
|
28383
|
-
*
|
|
28384
|
-
|
|
28385
|
-
|
|
28386
|
-
/**
|
|
28387
|
-
* If `true`, the picker will animate.
|
|
28388
|
-
*/
|
|
28389
|
-
this.animated = true;
|
|
28390
|
-
/**
|
|
28391
|
-
* If `true`, the picker will open. If `false`, the picker will close.
|
|
28392
|
-
* Use this if you need finer grained control over presentation, otherwise
|
|
28393
|
-
* just use the pickerController or the `trigger` property.
|
|
28394
|
-
* Note: `isOpen` will not automatically be set back to `false` when
|
|
28395
|
-
* the picker dismisses. You will need to do that in your code.
|
|
28396
|
-
*/
|
|
28397
|
-
this.isOpen = false;
|
|
28398
|
-
this.onBackdropTap = () => {
|
|
28399
|
-
this.dismiss(undefined, BACKDROP);
|
|
28400
|
-
};
|
|
28401
|
-
this.dispatchCancelHandler = (ev) => {
|
|
28402
|
-
const role = ev.detail.role;
|
|
28403
|
-
if (isCancel(role)) {
|
|
28404
|
-
const cancelButton = this.buttons.find((b) => b.role === 'cancel');
|
|
28405
|
-
this.callButtonHandler(cancelButton);
|
|
28406
|
-
}
|
|
28407
|
-
};
|
|
28408
|
-
}
|
|
28409
|
-
onIsOpenChange(newValue, oldValue) {
|
|
28410
|
-
if (newValue === true && oldValue === false) {
|
|
28411
|
-
this.present();
|
|
28412
|
-
}
|
|
28413
|
-
else if (newValue === false && oldValue === true) {
|
|
28414
|
-
this.dismiss();
|
|
28415
|
-
}
|
|
28416
|
-
}
|
|
28417
|
-
triggerChanged() {
|
|
28418
|
-
const { trigger, el, triggerController } = this;
|
|
28419
|
-
if (trigger) {
|
|
28420
|
-
triggerController.addClickListener(el, trigger);
|
|
28421
|
-
}
|
|
28422
|
-
}
|
|
28423
|
-
connectedCallback() {
|
|
28424
|
-
prepareOverlay(this.el);
|
|
28425
|
-
this.triggerChanged();
|
|
28426
|
-
}
|
|
28427
|
-
disconnectedCallback() {
|
|
28428
|
-
this.triggerController.removeClickListener();
|
|
28429
|
-
}
|
|
28430
|
-
componentWillLoad() {
|
|
28431
|
-
var _a;
|
|
28432
|
-
if (!((_a = this.htmlAttributes) === null || _a === void 0 ? void 0 : _a.id)) {
|
|
28433
|
-
setOverlayId(this.el);
|
|
28434
|
-
}
|
|
28435
|
-
}
|
|
28436
|
-
componentDidLoad() {
|
|
28437
|
-
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);
|
|
28438
|
-
/**
|
|
28439
|
-
* If picker was rendered with isOpen="true"
|
|
28440
|
-
* then we should open picker immediately.
|
|
28441
|
-
*/
|
|
28442
|
-
if (this.isOpen === true) {
|
|
28443
|
-
raf(() => this.present());
|
|
28444
|
-
}
|
|
28445
|
-
/**
|
|
28446
|
-
* When binding values in frameworks such as Angular
|
|
28447
|
-
* it is possible for the value to be set after the Web Component
|
|
28448
|
-
* initializes but before the value watcher is set up in Stencil.
|
|
28449
|
-
* As a result, the watcher callback may not be fired.
|
|
28450
|
-
* We work around this by manually calling the watcher
|
|
28451
|
-
* callback when the component has loaded and the watcher
|
|
28452
|
-
* is configured.
|
|
28453
|
-
*/
|
|
28454
|
-
this.triggerChanged();
|
|
28455
|
-
}
|
|
28456
|
-
/**
|
|
28457
|
-
* Present the picker overlay after it has been created.
|
|
28458
|
-
*/
|
|
28459
|
-
async present() {
|
|
28460
|
-
const unlock = await this.lockController.lock();
|
|
28461
|
-
await this.delegateController.attachViewToDom();
|
|
28462
|
-
await present(this, 'pickerEnter', iosEnterAnimation$2, iosEnterAnimation$2, undefined);
|
|
28463
|
-
if (this.duration > 0) {
|
|
28464
|
-
this.durationTimeout = setTimeout(() => this.dismiss(), this.duration);
|
|
28465
|
-
}
|
|
28466
|
-
unlock();
|
|
28467
|
-
}
|
|
28468
|
-
/**
|
|
28469
|
-
* Dismiss the picker overlay after it has been presented.
|
|
28470
|
-
*
|
|
28471
|
-
* @param data Any data to emit in the dismiss events.
|
|
28472
|
-
* @param role The role of the element that is dismissing the picker.
|
|
28473
|
-
* This can be useful in a button handler for determining which button was
|
|
28474
|
-
* clicked to dismiss the picker.
|
|
28475
|
-
* Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
|
|
28476
|
-
*/
|
|
28477
|
-
async dismiss(data, role) {
|
|
28478
|
-
const unlock = await this.lockController.lock();
|
|
28479
|
-
if (this.durationTimeout) {
|
|
28480
|
-
clearTimeout(this.durationTimeout);
|
|
28481
|
-
}
|
|
28482
|
-
const dismissed = await dismiss(this, data, role, 'pickerLeave', iosLeaveAnimation$2, iosLeaveAnimation$2);
|
|
28483
|
-
if (dismissed) {
|
|
28484
|
-
this.delegateController.removeViewFromDom();
|
|
28485
|
-
}
|
|
28486
|
-
unlock();
|
|
28487
|
-
return dismissed;
|
|
28488
|
-
}
|
|
28489
|
-
/**
|
|
28490
|
-
* Returns a promise that resolves when the picker did dismiss.
|
|
28491
|
-
*/
|
|
28492
|
-
onDidDismiss() {
|
|
28493
|
-
return eventMethod(this.el, 'ionPickerDidDismiss');
|
|
28494
|
-
}
|
|
28495
|
-
/**
|
|
28496
|
-
* Returns a promise that resolves when the picker will dismiss.
|
|
28497
|
-
*/
|
|
28498
|
-
onWillDismiss() {
|
|
28499
|
-
return eventMethod(this.el, 'ionPickerWillDismiss');
|
|
28500
|
-
}
|
|
28501
|
-
/**
|
|
28502
|
-
* Get the column that matches the specified name.
|
|
28503
|
-
*
|
|
28504
|
-
* @param name The name of the column.
|
|
28505
|
-
*/
|
|
28506
|
-
getColumn(name) {
|
|
28507
|
-
return Promise.resolve(this.columns.find((column) => column.name === name));
|
|
28508
|
-
}
|
|
28509
|
-
async buttonClick(button) {
|
|
28510
|
-
const role = button.role;
|
|
28511
|
-
if (isCancel(role)) {
|
|
28512
|
-
return this.dismiss(undefined, role);
|
|
28513
|
-
}
|
|
28514
|
-
const shouldDismiss = await this.callButtonHandler(button);
|
|
28515
|
-
if (shouldDismiss) {
|
|
28516
|
-
return this.dismiss(this.getSelected(), button.role);
|
|
28517
|
-
}
|
|
28518
|
-
return Promise.resolve();
|
|
28519
|
-
}
|
|
28520
|
-
async callButtonHandler(button) {
|
|
28521
|
-
if (button) {
|
|
28522
|
-
// a handler has been provided, execute it
|
|
28523
|
-
// pass the handler the values from the inputs
|
|
28524
|
-
const rtn = await safeCall(button.handler, this.getSelected());
|
|
28525
|
-
if (rtn === false) {
|
|
28526
|
-
// if the return value of the handler is false then do not dismiss
|
|
28527
|
-
return false;
|
|
28528
|
-
}
|
|
28529
|
-
}
|
|
28530
|
-
return true;
|
|
28531
|
-
}
|
|
28532
|
-
getSelected() {
|
|
28533
|
-
const selected = {};
|
|
28534
|
-
this.columns.forEach((col, index) => {
|
|
28535
|
-
const selectedColumn = col.selectedIndex !== undefined ? col.options[col.selectedIndex] : undefined;
|
|
28536
|
-
selected[col.name] = {
|
|
28537
|
-
text: selectedColumn ? selectedColumn.text : undefined,
|
|
28538
|
-
value: selectedColumn ? selectedColumn.value : undefined,
|
|
28539
|
-
columnIndex: index,
|
|
28540
|
-
};
|
|
28541
|
-
});
|
|
28542
|
-
return selected;
|
|
28543
|
-
}
|
|
28544
|
-
render() {
|
|
28545
|
-
const { htmlAttributes } = this;
|
|
28546
|
-
const mode = getIonMode$1(this);
|
|
28547
|
-
return (hAsync(Host, Object.assign({ key: '80f66d33780d8a1352d24be9cb63a0cc03d01ab5', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
|
|
28548
|
-
zIndex: `${20000 + this.overlayIndex}`,
|
|
28549
|
-
}, class: Object.assign({ [mode]: true,
|
|
28550
|
-
// Used internally for styling
|
|
28551
|
-
[`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" })));
|
|
28552
|
-
}
|
|
28553
|
-
get el() { return getElement(this); }
|
|
28554
|
-
static get watchers() { return {
|
|
28555
|
-
"isOpen": [{
|
|
28556
|
-
"onIsOpenChange": 0
|
|
28557
|
-
}],
|
|
28558
|
-
"trigger": [{
|
|
28559
|
-
"triggerChanged": 0
|
|
28560
|
-
}]
|
|
28561
|
-
}; }
|
|
28562
|
-
static get style() { return {
|
|
28563
|
-
ios: pickerIosCss(),
|
|
28564
|
-
md: pickerMdCss()
|
|
28565
|
-
}; }
|
|
28566
|
-
static get cmpMeta() { return {
|
|
28567
|
-
"$flags$": 34,
|
|
28568
|
-
"$tagName$": "ion-picker-legacy",
|
|
28569
|
-
"$members$": {
|
|
28570
|
-
"overlayIndex": [2, "overlay-index"],
|
|
28571
|
-
"delegate": [16],
|
|
28572
|
-
"hasController": [4, "has-controller"],
|
|
28573
|
-
"keyboardClose": [4, "keyboard-close"],
|
|
28574
|
-
"enterAnimation": [16],
|
|
28575
|
-
"leaveAnimation": [16],
|
|
28576
|
-
"buttons": [16],
|
|
28577
|
-
"columns": [16],
|
|
28578
|
-
"cssClass": [1, "css-class"],
|
|
28579
|
-
"duration": [2],
|
|
28580
|
-
"showBackdrop": [4, "show-backdrop"],
|
|
28581
|
-
"backdropDismiss": [4, "backdrop-dismiss"],
|
|
28582
|
-
"animated": [4],
|
|
28583
|
-
"htmlAttributes": [16],
|
|
28584
|
-
"isOpen": [4, "is-open"],
|
|
28585
|
-
"trigger": [1],
|
|
28586
|
-
"presented": [32],
|
|
28587
|
-
"present": [64],
|
|
28588
|
-
"dismiss": [64],
|
|
28589
|
-
"onDidDismiss": [64],
|
|
28590
|
-
"onWillDismiss": [64],
|
|
28591
|
-
"getColumn": [64]
|
|
28592
|
-
},
|
|
28593
|
-
"$listeners$": undefined,
|
|
28594
|
-
"$lazyBundleId$": "-",
|
|
28595
|
-
"$attrsToReflect$": []
|
|
28596
|
-
}; }
|
|
28597
|
-
}
|
|
28598
|
-
const buttonWrapperClass = (button) => {
|
|
28599
|
-
return {
|
|
28600
|
-
[`picker-toolbar-${button.role}`]: button.role !== undefined,
|
|
28601
|
-
'picker-toolbar-button': true,
|
|
28602
|
-
};
|
|
28603
|
-
};
|
|
28604
|
-
const buttonClass$1 = (button) => {
|
|
28605
|
-
return Object.assign({ 'picker-button': true, 'ion-activatable': true }, getClassMap(button.cssClass));
|
|
28606
|
-
};
|
|
28607
|
-
|
|
28608
|
-
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)}}`;
|
|
28609
|
-
|
|
28610
|
-
/**
|
|
28611
|
-
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
28612
|
-
*
|
|
28613
|
-
* @slot prefix - Content to show on the left side of the picker options.
|
|
28614
|
-
* @slot suffix - Content to show on the right side of the picker options.
|
|
28615
|
-
*/
|
|
28616
|
-
class PickerColumn {
|
|
28617
|
-
constructor(hostRef) {
|
|
28618
|
-
registerInstance(this, hostRef);
|
|
28619
|
-
this.ionChange = createEvent(this, "ionChange", 7);
|
|
28620
|
-
this.isScrolling = false;
|
|
28621
|
-
this.isColumnVisible = false;
|
|
28622
|
-
this.canExitInputMode = true;
|
|
28623
|
-
this.updateValueTextOnScroll = false;
|
|
28624
|
-
this.ariaLabel = null;
|
|
28625
|
-
this.isActive = false;
|
|
28626
|
-
/**
|
|
28627
|
-
* If `true`, the user cannot interact with the picker.
|
|
28628
|
-
*/
|
|
28629
|
-
this.disabled = false;
|
|
28630
|
-
/**
|
|
28631
|
-
* The color to use from your application's color palette.
|
|
28632
|
-
* Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
|
|
28633
|
-
* For more information on colors, see [theming](/docs/theming/basics).
|
|
28634
|
-
*/
|
|
28635
|
-
this.color = 'primary';
|
|
28636
|
-
/**
|
|
28637
|
-
* If `true`, tapping the picker will
|
|
28638
|
-
* reveal a number input keyboard that lets
|
|
28639
|
-
* the user type in values for each picker
|
|
28640
|
-
* column. This is useful when working
|
|
28641
|
-
* with time pickers.
|
|
28642
|
-
*
|
|
28643
|
-
* @internal
|
|
28805
|
+
* If `true`, tapping the picker will
|
|
28806
|
+
* reveal a number input keyboard that lets
|
|
28807
|
+
* the user type in values for each picker
|
|
28808
|
+
* column. This is useful when working
|
|
28809
|
+
* with time pickers.
|
|
28810
|
+
*
|
|
28811
|
+
* @internal
|
|
28644
28812
|
*/
|
|
28645
28813
|
this.numericInput = false;
|
|
28646
28814
|
this.centerPickerItemInView = (target, smooth = true, canExitInputMode = true) => {
|
|
@@ -29096,464 +29264,99 @@ class PickerColumn {
|
|
|
29096
29264
|
*/
|
|
29097
29265
|
if (firstOption !== null && firstOption.value !== value) {
|
|
29098
29266
|
this.setValue(firstOption.value);
|
|
29099
|
-
}
|
|
29100
|
-
}
|
|
29101
|
-
}
|
|
29102
|
-
/** @internal */
|
|
29103
|
-
async scrollActiveItemIntoView(smooth = false) {
|
|
29104
|
-
const activeEl = this.activeItem;
|
|
29105
|
-
if (activeEl) {
|
|
29106
|
-
this.centerPickerItemInView(activeEl, smooth, false);
|
|
29107
|
-
}
|
|
29108
|
-
}
|
|
29109
|
-
/**
|
|
29110
|
-
* Sets the value prop and fires the ionChange event.
|
|
29111
|
-
* This is used when we need to fire ionChange from
|
|
29112
|
-
* user-generated events that cannot be caught with normal
|
|
29113
|
-
* input/change event listeners.
|
|
29114
|
-
* @internal
|
|
29115
|
-
*/
|
|
29116
|
-
async setValue(value) {
|
|
29117
|
-
if (this.disabled === true || this.value === value) {
|
|
29118
|
-
return;
|
|
29119
|
-
}
|
|
29120
|
-
this.value = value;
|
|
29121
|
-
this.ionChange.emit({ value });
|
|
29122
|
-
}
|
|
29123
|
-
/**
|
|
29124
|
-
* Sets focus on the scrollable container within the picker column.
|
|
29125
|
-
* Use this method instead of the global `pickerColumn.focus()`.
|
|
29126
|
-
*/
|
|
29127
|
-
async setFocus() {
|
|
29128
|
-
if (this.assistiveFocusable) {
|
|
29129
|
-
this.assistiveFocusable.focus();
|
|
29130
|
-
}
|
|
29131
|
-
}
|
|
29132
|
-
connectedCallback() {
|
|
29133
|
-
var _a;
|
|
29134
|
-
this.ariaLabel = (_a = this.el.getAttribute('aria-label')) !== null && _a !== void 0 ? _a : 'Select a value';
|
|
29135
|
-
}
|
|
29136
|
-
get activeItem() {
|
|
29137
|
-
const { value } = this;
|
|
29138
|
-
const options = Array.from(this.el.querySelectorAll('ion-picker-column-option'));
|
|
29139
|
-
return options.find((option) => {
|
|
29140
|
-
/**
|
|
29141
|
-
* If the whole picker column is disabled, the current value should appear active
|
|
29142
|
-
* If the current value item is specifically disabled, it should not appear active
|
|
29143
|
-
*/
|
|
29144
|
-
if (!this.disabled && option.disabled) {
|
|
29145
|
-
return false;
|
|
29146
|
-
}
|
|
29147
|
-
return option.value === value;
|
|
29148
|
-
});
|
|
29149
|
-
}
|
|
29150
|
-
render() {
|
|
29151
|
-
const { color, disabled, isActive, numericInput } = this;
|
|
29152
|
-
const mode = getIonMode$1(this);
|
|
29153
|
-
return (hAsync(Host, { key: '234c96a501d7ac413b9b0ea56b33017681e25b40', class: createColorClasses$1(color, {
|
|
29154
|
-
[mode]: true,
|
|
29155
|
-
['picker-column-active']: isActive,
|
|
29156
|
-
['picker-column-numeric-input']: numericInput,
|
|
29157
|
-
['picker-column-disabled']: disabled,
|
|
29158
|
-
}) }, hAsync("slot", { key: '9dc15ea0601ddd2cb2e0a745e91e036a8bd96f8b', name: "prefix" }), hAsync("div", { key: 'de4fe28ee4bc46b7c0420d6ab0df0e7809443da9', class: "picker-opts", ref: (el) => {
|
|
29159
|
-
this.scrollEl = el;
|
|
29160
|
-
}, 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" })));
|
|
29161
|
-
}
|
|
29162
|
-
get el() { return getElement(this); }
|
|
29163
|
-
static get watchers() { return {
|
|
29164
|
-
"aria-label": [{
|
|
29165
|
-
"ariaLabelChanged": 0
|
|
29166
|
-
}],
|
|
29167
|
-
"value": [{
|
|
29168
|
-
"valueChange": 0
|
|
29169
|
-
}]
|
|
29170
|
-
}; }
|
|
29171
|
-
static get style() { return pickerColumnCss(); }
|
|
29172
|
-
static get cmpMeta() { return {
|
|
29173
|
-
"$flags$": 265,
|
|
29174
|
-
"$tagName$": "ion-picker-column",
|
|
29175
|
-
"$members$": {
|
|
29176
|
-
"disabled": [4],
|
|
29177
|
-
"value": [1032],
|
|
29178
|
-
"color": [513],
|
|
29179
|
-
"numericInput": [4, "numeric-input"],
|
|
29180
|
-
"ariaLabel": [32],
|
|
29181
|
-
"isActive": [32],
|
|
29182
|
-
"scrollActiveItemIntoView": [64],
|
|
29183
|
-
"setValue": [64],
|
|
29184
|
-
"setFocus": [64]
|
|
29185
|
-
},
|
|
29186
|
-
"$listeners$": undefined,
|
|
29187
|
-
"$lazyBundleId$": "-",
|
|
29188
|
-
"$attrsToReflect$": [["color", "color"]]
|
|
29189
|
-
}; }
|
|
29190
|
-
}
|
|
29191
|
-
const PICKER_ITEM_ACTIVE_CLASS = 'option-active';
|
|
29192
|
-
|
|
29193
|
-
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}}`;
|
|
29194
|
-
|
|
29195
|
-
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)}`;
|
|
29196
|
-
|
|
29197
|
-
/**
|
|
29198
|
-
* @internal
|
|
29199
|
-
*/
|
|
29200
|
-
class PickerColumnCmp {
|
|
29201
|
-
constructor(hostRef) {
|
|
29202
|
-
registerInstance(this, hostRef);
|
|
29203
|
-
this.ionPickerColChange = createEvent(this, "ionPickerColChange", 7);
|
|
29204
|
-
this.optHeight = 0;
|
|
29205
|
-
this.rotateFactor = 0;
|
|
29206
|
-
this.scaleFactor = 1;
|
|
29207
|
-
this.velocity = 0;
|
|
29208
|
-
this.y = 0;
|
|
29209
|
-
this.noAnimate = true;
|
|
29210
|
-
// `colDidChange` is a flag that gets set when the column is changed
|
|
29211
|
-
// dynamically. When this flag is set, the column will refresh
|
|
29212
|
-
// after the component re-renders to incorporate the new column data.
|
|
29213
|
-
// This is necessary because `this.refresh` queries for the option elements,
|
|
29214
|
-
// so it needs to wait for the latest elements to be available in the DOM.
|
|
29215
|
-
// Ex: column is created with 3 options. User updates the column data
|
|
29216
|
-
// to have 5 options. The column will still think it only has 3 options.
|
|
29217
|
-
this.colDidChange = false;
|
|
29218
|
-
}
|
|
29219
|
-
colChanged() {
|
|
29220
|
-
this.colDidChange = true;
|
|
29221
|
-
}
|
|
29222
|
-
async connectedCallback() {
|
|
29223
|
-
let pickerRotateFactor = 0;
|
|
29224
|
-
let pickerScaleFactor = 0.81;
|
|
29225
|
-
const mode = getIonMode$1(this);
|
|
29226
|
-
if (mode === 'ios') {
|
|
29227
|
-
pickerRotateFactor = -0.46;
|
|
29228
|
-
pickerScaleFactor = 1;
|
|
29229
|
-
}
|
|
29230
|
-
this.rotateFactor = pickerRotateFactor;
|
|
29231
|
-
this.scaleFactor = pickerScaleFactor;
|
|
29232
|
-
this.gesture = (await Promise.resolve().then(function () { return index; })).createGesture({
|
|
29233
|
-
el: this.el,
|
|
29234
|
-
gestureName: 'picker-swipe',
|
|
29235
|
-
gesturePriority: 100,
|
|
29236
|
-
threshold: 0,
|
|
29237
|
-
passive: false,
|
|
29238
|
-
onStart: (ev) => this.onStart(ev),
|
|
29239
|
-
onMove: (ev) => this.onMove(ev),
|
|
29240
|
-
onEnd: (ev) => this.onEnd(ev),
|
|
29241
|
-
});
|
|
29242
|
-
this.gesture.enable();
|
|
29243
|
-
// Options have not been initialized yet
|
|
29244
|
-
// Animation must be disabled through the `noAnimate` flag
|
|
29245
|
-
// Otherwise, the options will render
|
|
29246
|
-
// at the top of the column and transition down
|
|
29247
|
-
this.tmrId = setTimeout(() => {
|
|
29248
|
-
this.noAnimate = false;
|
|
29249
|
-
// After initialization, `refresh()` will be called
|
|
29250
|
-
// At this point, animation will be enabled. The options will
|
|
29251
|
-
// animate as they are being selected.
|
|
29252
|
-
this.refresh(true);
|
|
29253
|
-
}, 250);
|
|
29254
|
-
}
|
|
29255
|
-
componentDidLoad() {
|
|
29256
|
-
this.onDomChange();
|
|
29257
|
-
}
|
|
29258
|
-
componentDidUpdate() {
|
|
29259
|
-
// Options may have changed since last update.
|
|
29260
|
-
if (this.colDidChange) {
|
|
29261
|
-
// Animation must be disabled through the `onDomChange` parameter.
|
|
29262
|
-
// Otherwise, the recently added options will render
|
|
29263
|
-
// at the top of the column and transition down
|
|
29264
|
-
this.onDomChange(true, false);
|
|
29265
|
-
this.colDidChange = false;
|
|
29266
|
-
}
|
|
29267
|
-
}
|
|
29268
|
-
disconnectedCallback() {
|
|
29269
|
-
if (this.rafId !== undefined)
|
|
29270
|
-
cancelAnimationFrame(this.rafId);
|
|
29271
|
-
if (this.tmrId)
|
|
29272
|
-
clearTimeout(this.tmrId);
|
|
29273
|
-
if (this.gesture) {
|
|
29274
|
-
this.gesture.destroy();
|
|
29275
|
-
this.gesture = undefined;
|
|
29276
|
-
}
|
|
29277
|
-
}
|
|
29278
|
-
emitColChange() {
|
|
29279
|
-
this.ionPickerColChange.emit(this.col);
|
|
29280
|
-
}
|
|
29281
|
-
setSelected(selectedIndex, duration) {
|
|
29282
|
-
// if there is a selected index, then figure out it's y position
|
|
29283
|
-
// if there isn't a selected index, then just use the top y position
|
|
29284
|
-
const y = selectedIndex > -1 ? -(selectedIndex * this.optHeight) : 0;
|
|
29285
|
-
this.velocity = 0;
|
|
29286
|
-
// set what y position we're at
|
|
29287
|
-
if (this.rafId !== undefined)
|
|
29288
|
-
cancelAnimationFrame(this.rafId);
|
|
29289
|
-
this.update(y, duration, true);
|
|
29290
|
-
this.emitColChange();
|
|
29291
|
-
}
|
|
29292
|
-
update(y, duration, saveY) {
|
|
29293
|
-
if (!this.optsEl) {
|
|
29294
|
-
return;
|
|
29295
|
-
}
|
|
29296
|
-
// ensure we've got a good round number :)
|
|
29297
|
-
let translateY = 0;
|
|
29298
|
-
let translateZ = 0;
|
|
29299
|
-
const { col, rotateFactor } = this;
|
|
29300
|
-
const prevSelected = col.selectedIndex;
|
|
29301
|
-
const selectedIndex = (col.selectedIndex = this.indexForY(-y));
|
|
29302
|
-
const durationStr = duration === 0 ? '' : duration + 'ms';
|
|
29303
|
-
const scaleStr = `scale(${this.scaleFactor})`;
|
|
29304
|
-
const children = this.optsEl.children;
|
|
29305
|
-
for (let i = 0; i < children.length; i++) {
|
|
29306
|
-
const button = children[i];
|
|
29307
|
-
const opt = col.options[i];
|
|
29308
|
-
const optOffset = i * this.optHeight + y;
|
|
29309
|
-
let transform = '';
|
|
29310
|
-
if (rotateFactor !== 0) {
|
|
29311
|
-
const rotateX = optOffset * rotateFactor;
|
|
29312
|
-
if (Math.abs(rotateX) <= 90) {
|
|
29313
|
-
translateY = 0;
|
|
29314
|
-
translateZ = 90;
|
|
29315
|
-
transform = `rotateX(${rotateX}deg) `;
|
|
29316
|
-
}
|
|
29317
|
-
else {
|
|
29318
|
-
translateY = -9999;
|
|
29319
|
-
}
|
|
29320
|
-
}
|
|
29321
|
-
else {
|
|
29322
|
-
translateZ = 0;
|
|
29323
|
-
translateY = optOffset;
|
|
29324
|
-
}
|
|
29325
|
-
const selected = selectedIndex === i;
|
|
29326
|
-
transform += `translate3d(0px,${translateY}px,${translateZ}px) `;
|
|
29327
|
-
if (this.scaleFactor !== 1 && !selected) {
|
|
29328
|
-
transform += scaleStr;
|
|
29329
|
-
}
|
|
29330
|
-
// Update transition duration
|
|
29331
|
-
if (this.noAnimate) {
|
|
29332
|
-
opt.duration = 0;
|
|
29333
|
-
button.style.transitionDuration = '';
|
|
29334
|
-
}
|
|
29335
|
-
else if (duration !== opt.duration) {
|
|
29336
|
-
opt.duration = duration;
|
|
29337
|
-
button.style.transitionDuration = durationStr;
|
|
29338
|
-
}
|
|
29339
|
-
// Update transform
|
|
29340
|
-
if (transform !== opt.transform) {
|
|
29341
|
-
opt.transform = transform;
|
|
29342
|
-
}
|
|
29343
|
-
button.style.transform = transform;
|
|
29344
|
-
/**
|
|
29345
|
-
* Ensure that the select column
|
|
29346
|
-
* item has the selected class
|
|
29347
|
-
*/
|
|
29348
|
-
opt.selected = selected;
|
|
29349
|
-
if (selected) {
|
|
29350
|
-
button.classList.add(PICKER_OPT_SELECTED);
|
|
29351
|
-
}
|
|
29352
|
-
else {
|
|
29353
|
-
button.classList.remove(PICKER_OPT_SELECTED);
|
|
29354
|
-
}
|
|
29355
|
-
}
|
|
29356
|
-
this.col.prevSelected = prevSelected;
|
|
29357
|
-
if (saveY) {
|
|
29358
|
-
this.y = y;
|
|
29359
|
-
}
|
|
29360
|
-
if (this.lastIndex !== selectedIndex) {
|
|
29361
|
-
// have not set a last index yet
|
|
29362
|
-
hapticSelectionChanged();
|
|
29363
|
-
this.lastIndex = selectedIndex;
|
|
29364
|
-
}
|
|
29365
|
-
}
|
|
29366
|
-
decelerate() {
|
|
29367
|
-
if (this.velocity !== 0) {
|
|
29368
|
-
// still decelerating
|
|
29369
|
-
this.velocity *= DECELERATION_FRICTION;
|
|
29370
|
-
// do not let it go slower than a velocity of 1
|
|
29371
|
-
this.velocity = this.velocity > 0 ? Math.max(this.velocity, 1) : Math.min(this.velocity, -1);
|
|
29372
|
-
let y = this.y + this.velocity;
|
|
29373
|
-
if (y > this.minY) {
|
|
29374
|
-
// whoops, it's trying to scroll up farther than the options we have!
|
|
29375
|
-
y = this.minY;
|
|
29376
|
-
this.velocity = 0;
|
|
29377
|
-
}
|
|
29378
|
-
else if (y < this.maxY) {
|
|
29379
|
-
// gahh, it's trying to scroll down farther than we can!
|
|
29380
|
-
y = this.maxY;
|
|
29381
|
-
this.velocity = 0;
|
|
29382
|
-
}
|
|
29383
|
-
this.update(y, 0, true);
|
|
29384
|
-
const notLockedIn = Math.round(y) % this.optHeight !== 0 || Math.abs(this.velocity) > 1;
|
|
29385
|
-
if (notLockedIn) {
|
|
29386
|
-
// isn't locked in yet, keep decelerating until it is
|
|
29387
|
-
this.rafId = requestAnimationFrame(() => this.decelerate());
|
|
29388
|
-
}
|
|
29389
|
-
else {
|
|
29390
|
-
this.velocity = 0;
|
|
29391
|
-
this.emitColChange();
|
|
29392
|
-
hapticSelectionEnd();
|
|
29393
|
-
}
|
|
29394
|
-
}
|
|
29395
|
-
else if (this.y % this.optHeight !== 0) {
|
|
29396
|
-
// needs to still get locked into a position so options line up
|
|
29397
|
-
const currentPos = Math.abs(this.y % this.optHeight);
|
|
29398
|
-
// create a velocity in the direction it needs to scroll
|
|
29399
|
-
this.velocity = currentPos > this.optHeight / 2 ? 1 : -1;
|
|
29400
|
-
this.decelerate();
|
|
29401
|
-
}
|
|
29402
|
-
}
|
|
29403
|
-
indexForY(y) {
|
|
29404
|
-
return Math.min(Math.max(Math.abs(Math.round(y / this.optHeight)), 0), this.col.options.length - 1);
|
|
29405
|
-
}
|
|
29406
|
-
onStart(detail) {
|
|
29407
|
-
// We have to prevent default in order to block scrolling under the picker
|
|
29408
|
-
// but we DO NOT have to stop propagation, since we still want
|
|
29409
|
-
// some "click" events to capture
|
|
29410
|
-
if (detail.event.cancelable) {
|
|
29411
|
-
detail.event.preventDefault();
|
|
29412
|
-
}
|
|
29413
|
-
detail.event.stopPropagation();
|
|
29414
|
-
hapticSelectionStart();
|
|
29415
|
-
// reset everything
|
|
29416
|
-
if (this.rafId !== undefined)
|
|
29417
|
-
cancelAnimationFrame(this.rafId);
|
|
29418
|
-
const options = this.col.options;
|
|
29419
|
-
let minY = options.length - 1;
|
|
29420
|
-
let maxY = 0;
|
|
29421
|
-
for (let i = 0; i < options.length; i++) {
|
|
29422
|
-
if (!options[i].disabled) {
|
|
29423
|
-
minY = Math.min(minY, i);
|
|
29424
|
-
maxY = Math.max(maxY, i);
|
|
29425
|
-
}
|
|
29426
|
-
}
|
|
29427
|
-
this.minY = -(minY * this.optHeight);
|
|
29428
|
-
this.maxY = -(maxY * this.optHeight);
|
|
29429
|
-
}
|
|
29430
|
-
onMove(detail) {
|
|
29431
|
-
if (detail.event.cancelable) {
|
|
29432
|
-
detail.event.preventDefault();
|
|
29433
|
-
}
|
|
29434
|
-
detail.event.stopPropagation();
|
|
29435
|
-
// update the scroll position relative to pointer start position
|
|
29436
|
-
let y = this.y + detail.deltaY;
|
|
29437
|
-
if (y > this.minY) {
|
|
29438
|
-
// scrolling up higher than scroll area
|
|
29439
|
-
y = Math.pow(y, 0.8);
|
|
29440
|
-
this.bounceFrom = y;
|
|
29441
|
-
}
|
|
29442
|
-
else if (y < this.maxY) {
|
|
29443
|
-
// scrolling down below scroll area
|
|
29444
|
-
y += Math.pow(this.maxY - y, 0.9);
|
|
29445
|
-
this.bounceFrom = y;
|
|
29446
|
-
}
|
|
29447
|
-
else {
|
|
29448
|
-
this.bounceFrom = 0;
|
|
29267
|
+
}
|
|
29449
29268
|
}
|
|
29450
|
-
this.update(y, 0, false);
|
|
29451
29269
|
}
|
|
29452
|
-
|
|
29453
|
-
|
|
29454
|
-
|
|
29455
|
-
|
|
29456
|
-
this.
|
|
29457
|
-
return;
|
|
29270
|
+
/** @internal */
|
|
29271
|
+
async scrollActiveItemIntoView(smooth = false) {
|
|
29272
|
+
const activeEl = this.activeItem;
|
|
29273
|
+
if (activeEl) {
|
|
29274
|
+
this.centerPickerItemInView(activeEl, smooth, false);
|
|
29458
29275
|
}
|
|
29459
|
-
|
|
29460
|
-
|
|
29461
|
-
|
|
29462
|
-
|
|
29276
|
+
}
|
|
29277
|
+
/**
|
|
29278
|
+
* Sets the value prop and fires the ionChange event.
|
|
29279
|
+
* This is used when we need to fire ionChange from
|
|
29280
|
+
* user-generated events that cannot be caught with normal
|
|
29281
|
+
* input/change event listeners.
|
|
29282
|
+
* @internal
|
|
29283
|
+
*/
|
|
29284
|
+
async setValue(value) {
|
|
29285
|
+
if (this.disabled === true || this.value === value) {
|
|
29463
29286
|
return;
|
|
29464
29287
|
}
|
|
29465
|
-
this.
|
|
29466
|
-
|
|
29467
|
-
|
|
29468
|
-
|
|
29469
|
-
|
|
29470
|
-
|
|
29471
|
-
|
|
29472
|
-
|
|
29473
|
-
|
|
29474
|
-
|
|
29475
|
-
const isScrollingUp = detail.deltaY > 0;
|
|
29476
|
-
const optHeightFraction = (Math.abs(this.y) % this.optHeight) / this.optHeight;
|
|
29477
|
-
if (isScrollingUp && optHeightFraction > 0.5) {
|
|
29478
|
-
this.velocity = Math.abs(this.velocity) * -1;
|
|
29479
|
-
}
|
|
29480
|
-
else if (!isScrollingUp && optHeightFraction <= 0.5) {
|
|
29481
|
-
this.velocity = Math.abs(this.velocity);
|
|
29482
|
-
}
|
|
29483
|
-
}
|
|
29484
|
-
this.decelerate();
|
|
29288
|
+
this.value = value;
|
|
29289
|
+
this.ionChange.emit({ value });
|
|
29290
|
+
}
|
|
29291
|
+
/**
|
|
29292
|
+
* Sets focus on the scrollable container within the picker column.
|
|
29293
|
+
* Use this method instead of the global `pickerColumn.focus()`.
|
|
29294
|
+
*/
|
|
29295
|
+
async setFocus() {
|
|
29296
|
+
if (this.assistiveFocusable) {
|
|
29297
|
+
this.assistiveFocusable.focus();
|
|
29485
29298
|
}
|
|
29486
29299
|
}
|
|
29487
|
-
|
|
29300
|
+
connectedCallback() {
|
|
29488
29301
|
var _a;
|
|
29489
|
-
|
|
29490
|
-
let max = 0;
|
|
29491
|
-
const options = this.col.options;
|
|
29492
|
-
for (let i = 0; i < options.length; i++) {
|
|
29493
|
-
if (!options[i].disabled) {
|
|
29494
|
-
min = Math.min(min, i);
|
|
29495
|
-
max = Math.max(max, i);
|
|
29496
|
-
}
|
|
29497
|
-
}
|
|
29498
|
-
/**
|
|
29499
|
-
* Only update selected value if column has a
|
|
29500
|
-
* velocity of 0. If it does not, then the
|
|
29501
|
-
* column is animating might land on
|
|
29502
|
-
* a value different than the value at
|
|
29503
|
-
* selectedIndex
|
|
29504
|
-
*/
|
|
29505
|
-
if (this.velocity !== 0) {
|
|
29506
|
-
return;
|
|
29507
|
-
}
|
|
29508
|
-
const selectedIndex = clamp(min, (_a = this.col.selectedIndex) !== null && _a !== void 0 ? _a : 0, max);
|
|
29509
|
-
if (this.col.prevSelected !== selectedIndex || forceRefresh) {
|
|
29510
|
-
const y = selectedIndex * this.optHeight * -1;
|
|
29511
|
-
const duration = animated ? TRANSITION_DURATION : 0;
|
|
29512
|
-
this.velocity = 0;
|
|
29513
|
-
this.update(y, duration, true);
|
|
29514
|
-
}
|
|
29302
|
+
this.ariaLabel = (_a = this.el.getAttribute('aria-label')) !== null && _a !== void 0 ? _a : 'Select a value';
|
|
29515
29303
|
}
|
|
29516
|
-
|
|
29517
|
-
const
|
|
29518
|
-
|
|
29519
|
-
|
|
29520
|
-
|
|
29521
|
-
|
|
29522
|
-
|
|
29523
|
-
|
|
29304
|
+
get activeItem() {
|
|
29305
|
+
const { value } = this;
|
|
29306
|
+
const options = Array.from(this.el.querySelectorAll('ion-picker-column-option'));
|
|
29307
|
+
return options.find((option) => {
|
|
29308
|
+
/**
|
|
29309
|
+
* If the whole picker column is disabled, the current value should appear active
|
|
29310
|
+
* If the current value item is specifically disabled, it should not appear active
|
|
29311
|
+
*/
|
|
29312
|
+
if (!this.disabled && option.disabled) {
|
|
29313
|
+
return false;
|
|
29314
|
+
}
|
|
29315
|
+
return option.value === value;
|
|
29316
|
+
});
|
|
29524
29317
|
}
|
|
29525
29318
|
render() {
|
|
29526
|
-
const
|
|
29319
|
+
const { color, disabled, isActive, numericInput } = this;
|
|
29527
29320
|
const mode = getIonMode$1(this);
|
|
29528
|
-
return (hAsync(Host, { key: '
|
|
29529
|
-
|
|
29530
|
-
|
|
29321
|
+
return (hAsync(Host, { key: '234c96a501d7ac413b9b0ea56b33017681e25b40', class: createColorClasses$1(color, {
|
|
29322
|
+
[mode]: true,
|
|
29323
|
+
['picker-column-active']: isActive,
|
|
29324
|
+
['picker-column-numeric-input']: numericInput,
|
|
29325
|
+
['picker-column-disabled']: disabled,
|
|
29326
|
+
}) }, hAsync("slot", { key: '9dc15ea0601ddd2cb2e0a745e91e036a8bd96f8b', name: "prefix" }), hAsync("div", { key: 'de4fe28ee4bc46b7c0420d6ab0df0e7809443da9', class: "picker-opts", ref: (el) => {
|
|
29327
|
+
this.scrollEl = el;
|
|
29328
|
+
}, 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" })));
|
|
29531
29329
|
}
|
|
29532
29330
|
get el() { return getElement(this); }
|
|
29533
29331
|
static get watchers() { return {
|
|
29534
|
-
"
|
|
29535
|
-
"
|
|
29332
|
+
"aria-label": [{
|
|
29333
|
+
"ariaLabelChanged": 0
|
|
29334
|
+
}],
|
|
29335
|
+
"value": [{
|
|
29336
|
+
"valueChange": 0
|
|
29536
29337
|
}]
|
|
29537
29338
|
}; }
|
|
29538
|
-
static get style() { return
|
|
29539
|
-
ios: pickerColumnIosCss(),
|
|
29540
|
-
md: pickerColumnMdCss()
|
|
29541
|
-
}; }
|
|
29339
|
+
static get style() { return pickerColumnCss(); }
|
|
29542
29340
|
static get cmpMeta() { return {
|
|
29543
|
-
"$flags$":
|
|
29544
|
-
"$tagName$": "ion-picker-
|
|
29341
|
+
"$flags$": 265,
|
|
29342
|
+
"$tagName$": "ion-picker-column",
|
|
29545
29343
|
"$members$": {
|
|
29546
|
-
"
|
|
29344
|
+
"disabled": [4],
|
|
29345
|
+
"value": [1032],
|
|
29346
|
+
"color": [513],
|
|
29347
|
+
"numericInput": [4, "numeric-input"],
|
|
29348
|
+
"ariaLabel": [32],
|
|
29349
|
+
"isActive": [32],
|
|
29350
|
+
"scrollActiveItemIntoView": [64],
|
|
29351
|
+
"setValue": [64],
|
|
29352
|
+
"setFocus": [64]
|
|
29547
29353
|
},
|
|
29548
29354
|
"$listeners$": undefined,
|
|
29549
29355
|
"$lazyBundleId$": "-",
|
|
29550
|
-
"$attrsToReflect$": []
|
|
29356
|
+
"$attrsToReflect$": [["color", "color"]]
|
|
29551
29357
|
}; }
|
|
29552
29358
|
}
|
|
29553
|
-
const
|
|
29554
|
-
const DECELERATION_FRICTION = 0.97;
|
|
29555
|
-
const MAX_PICKER_SPEED = 90;
|
|
29556
|
-
const TRANSITION_DURATION = 150;
|
|
29359
|
+
const PICKER_ITEM_ACTIVE_CLASS = 'option-active';
|
|
29557
29360
|
|
|
29558
29361
|
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}`;
|
|
29559
29362
|
|
|
@@ -30750,9 +30553,9 @@ const mdLeaveAnimation$1 = (baseEl) => {
|
|
|
30750
30553
|
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
30751
30554
|
};
|
|
30752
30555
|
|
|
30753
|
-
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)}}`;
|
|
30556
|
+
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)}}`;
|
|
30754
30557
|
|
|
30755
|
-
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}`;
|
|
30558
|
+
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}`;
|
|
30756
30559
|
|
|
30757
30560
|
// TODO(FW-2832): types
|
|
30758
30561
|
/**
|
|
@@ -30976,6 +30779,10 @@ class Popover {
|
|
|
30976
30779
|
this.headerResizeObserver.disconnect();
|
|
30977
30780
|
this.headerResizeObserver = undefined;
|
|
30978
30781
|
}
|
|
30782
|
+
// Clean up aria-hidden if removed without dismiss() being called
|
|
30783
|
+
if (this.presented) {
|
|
30784
|
+
cleanupRootFocusTrapAccessibility();
|
|
30785
|
+
}
|
|
30979
30786
|
}
|
|
30980
30787
|
componentWillLoad() {
|
|
30981
30788
|
var _a, _b;
|
|
@@ -31214,9 +31021,9 @@ class Popover {
|
|
|
31214
31021
|
const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
|
|
31215
31022
|
const desktop = isPlatform('desktop');
|
|
31216
31023
|
const enableArrow = arrow && !parentPopover;
|
|
31217
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
31024
|
+
return (hAsync(Host, Object.assign({ key: 'd7f3aa2c2fa93a93585e3eda9e4a6d0daaa541be', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
|
|
31218
31025
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
31219
|
-
}, 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: '
|
|
31026
|
+
}, 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' })))));
|
|
31220
31027
|
}
|
|
31221
31028
|
get el() { return getElement(this); }
|
|
31222
31029
|
static get watchers() { return {
|
|
@@ -31327,7 +31134,7 @@ class ProgressBar {
|
|
|
31327
31134
|
const mode = getIonMode$1(this);
|
|
31328
31135
|
// If the progress is displayed as a solid bar.
|
|
31329
31136
|
const progressSolid = buffer === 1;
|
|
31330
|
-
return (hAsync(Host, { key: '
|
|
31137
|
+
return (hAsync(Host, { key: 'd7476268ce53b6a4f425b7bc9f01d6935eb411c3', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
|
|
31331
31138
|
[mode]: true,
|
|
31332
31139
|
[`progress-bar-${type}`]: true,
|
|
31333
31140
|
'progress-paused': paused,
|
|
@@ -31512,7 +31319,7 @@ class Radio {
|
|
|
31512
31319
|
const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
|
|
31513
31320
|
const mode = getIonMode$1(this);
|
|
31514
31321
|
const inItem = hostContext('ion-item', el);
|
|
31515
|
-
return (hAsync(Host, { key: '
|
|
31322
|
+
return (hAsync(Host, { key: 'd9425b252ed38086420d91d5c680421d121c99f4', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
|
|
31516
31323
|
[mode]: true,
|
|
31517
31324
|
'in-item': inItem,
|
|
31518
31325
|
'radio-checked': checked,
|
|
@@ -31523,10 +31330,10 @@ class Radio {
|
|
|
31523
31330
|
// Focus and active styling should not apply when the radio is in an item
|
|
31524
31331
|
'ion-activatable': !inItem,
|
|
31525
31332
|
'ion-focusable': !inItem,
|
|
31526
|
-
}), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, hAsync("label", { key: '
|
|
31333
|
+
}), 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: {
|
|
31527
31334
|
'label-text-wrapper': true,
|
|
31528
31335
|
'label-text-wrapper-hidden': !hasLabel,
|
|
31529
|
-
}, part: "label" }, hAsync("slot", { key: '
|
|
31336
|
+
}, part: "label" }, hAsync("slot", { key: '589d7c1b45a1918b5811663daa8f30788e7729f8' })), hAsync("div", { key: '0f61a17b195582d6c9a0c597cd40e6629256e479', class: "native-wrapper" }, this.renderRadioControl()))));
|
|
31530
31337
|
}
|
|
31531
31338
|
get el() { return getElement(this); }
|
|
31532
31339
|
static get watchers() { return {
|
|
@@ -31545,7 +31352,7 @@ class Radio {
|
|
|
31545
31352
|
"color": [513],
|
|
31546
31353
|
"name": [1],
|
|
31547
31354
|
"disabled": [4],
|
|
31548
|
-
"value": [
|
|
31355
|
+
"value": [520],
|
|
31549
31356
|
"labelPlacement": [1, "label-placement"],
|
|
31550
31357
|
"justify": [1],
|
|
31551
31358
|
"alignment": [1],
|
|
@@ -31556,7 +31363,7 @@ class Radio {
|
|
|
31556
31363
|
},
|
|
31557
31364
|
"$listeners$": undefined,
|
|
31558
31365
|
"$lazyBundleId$": "-",
|
|
31559
|
-
"$attrsToReflect$": [["color", "color"]]
|
|
31366
|
+
"$attrsToReflect$": [["color", "color"], ["value", "value"]]
|
|
31560
31367
|
}; }
|
|
31561
31368
|
}
|
|
31562
31369
|
let radioButtonIds = 0;
|
|
@@ -32621,7 +32428,7 @@ class Range {
|
|
|
32621
32428
|
const valueAtMin = dualKnobs ? this.valA === min || this.valB === min : this.valA === min;
|
|
32622
32429
|
const valueAtMax = dualKnobs ? this.valA === max || this.valB === max : this.valA === max;
|
|
32623
32430
|
renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
|
|
32624
|
-
return (hAsync(Host, { key: '
|
|
32431
|
+
return (hAsync(Host, { key: 'cd26f0187c0d37c7eb9df923f75c8a0f57c19ab6', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
|
|
32625
32432
|
[mode]: true,
|
|
32626
32433
|
'in-item': inItem,
|
|
32627
32434
|
'range-disabled': disabled,
|
|
@@ -32635,10 +32442,10 @@ class Range {
|
|
|
32635
32442
|
'range-item-end-adjustment': needsEndAdjustment,
|
|
32636
32443
|
'range-value-min': valueAtMin,
|
|
32637
32444
|
'range-value-max': valueAtMax,
|
|
32638
|
-
}) }, hAsync("label", { key: '
|
|
32445
|
+
}) }, hAsync("label", { key: '90224fd24b0e625a17e7972feff73a0ac31e093d', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: 'e07b9fa10983249c425eec26b741f0f628daf2b2', class: {
|
|
32639
32446
|
'label-text-wrapper': true,
|
|
32640
32447
|
'label-text-wrapper-hidden': !hasLabel,
|
|
32641
|
-
}, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: '
|
|
32448
|
+
}, 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" })))));
|
|
32642
32449
|
}
|
|
32643
32450
|
get el() { return getElement(this); }
|
|
32644
32451
|
static get watchers() { return {
|
|
@@ -33709,7 +33516,7 @@ class Refresher {
|
|
|
33709
33516
|
}
|
|
33710
33517
|
render() {
|
|
33711
33518
|
const mode = getIonMode$1(this);
|
|
33712
|
-
return (hAsync(Host, { key: '
|
|
33519
|
+
return (hAsync(Host, { key: '1dd475095f76491206644828cf89fc6d2ec276d1', slot: "fixed", class: {
|
|
33713
33520
|
[mode]: true,
|
|
33714
33521
|
// Used internally for styling
|
|
33715
33522
|
[`refresher-${mode}`]: true,
|
|
@@ -33935,7 +33742,7 @@ class RefresherContent {
|
|
|
33935
33742
|
const pullingIcon = this.pullingIcon;
|
|
33936
33743
|
const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
|
|
33937
33744
|
const mode = getIonMode$1(this);
|
|
33938
|
-
return (hAsync(Host, { key: '
|
|
33745
|
+
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())));
|
|
33939
33746
|
}
|
|
33940
33747
|
get el() { return getElement(this); }
|
|
33941
33748
|
static get cmpMeta() { return {
|
|
@@ -33976,7 +33783,7 @@ class Reorder {
|
|
|
33976
33783
|
render() {
|
|
33977
33784
|
const mode = getIonMode$1(this);
|
|
33978
33785
|
const reorderIcon = mode === 'ios' ? reorderThreeOutline : reorderTwoSharp;
|
|
33979
|
-
return (hAsync(Host, { key: '
|
|
33786
|
+
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" }))));
|
|
33980
33787
|
}
|
|
33981
33788
|
get el() { return getElement(this); }
|
|
33982
33789
|
static get style() { return {
|
|
@@ -34247,7 +34054,7 @@ class ReorderGroup {
|
|
|
34247
34054
|
}
|
|
34248
34055
|
render() {
|
|
34249
34056
|
const mode = getIonMode$1(this);
|
|
34250
|
-
return (hAsync(Host, { key: '
|
|
34057
|
+
return (hAsync(Host, { key: '3afdc6a6c81bba2f88ea523d4b73c6fccff1b9ec', class: {
|
|
34251
34058
|
[mode]: true,
|
|
34252
34059
|
'reorder-enabled': !this.disabled,
|
|
34253
34060
|
'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
|
|
@@ -34365,7 +34172,7 @@ class RippleEffect {
|
|
|
34365
34172
|
}
|
|
34366
34173
|
render() {
|
|
34367
34174
|
const mode = getIonMode$1(this);
|
|
34368
|
-
return (hAsync(Host, { key: '
|
|
34175
|
+
return (hAsync(Host, { key: '5e88b5225414e29883256c86f111ded5bdf2ef91', role: "presentation", class: {
|
|
34369
34176
|
[mode]: true,
|
|
34370
34177
|
unbounded: this.unbounded,
|
|
34371
34178
|
} }));
|
|
@@ -35499,10 +35306,10 @@ class RouterLink {
|
|
|
35499
35306
|
rel: this.rel,
|
|
35500
35307
|
target: this.target,
|
|
35501
35308
|
};
|
|
35502
|
-
return (hAsync(Host, { key: '
|
|
35309
|
+
return (hAsync(Host, { key: '6d5fdfa0dcf1eb216173bcc53f1f4d625f3ec551', onClick: this.onClick, class: createColorClasses$1(this.color, {
|
|
35503
35310
|
[mode]: true,
|
|
35504
35311
|
'ion-activatable': true,
|
|
35505
|
-
}) }, hAsync("a", Object.assign({ key: '
|
|
35312
|
+
}) }, hAsync("a", Object.assign({ key: '85796b7b48581fe9830ba1102dad7d1069de4e17' }, attrs), hAsync("slot", { key: '0f93b0da3ec4ae8f50f624f9e7bed87d13d712d0' }))));
|
|
35506
35313
|
}
|
|
35507
35314
|
static get style() { return routerLinkCss(); }
|
|
35508
35315
|
static get cmpMeta() { return {
|
|
@@ -35541,10 +35348,11 @@ class RouterOutlet {
|
|
|
35541
35348
|
*/
|
|
35542
35349
|
this.animated = true;
|
|
35543
35350
|
}
|
|
35351
|
+
swipeGestureChanged() {
|
|
35352
|
+
this.updateGestureEnabled();
|
|
35353
|
+
}
|
|
35544
35354
|
swipeHandlerChanged() {
|
|
35545
|
-
|
|
35546
|
-
this.gesture.enable(this.swipeHandler !== undefined);
|
|
35547
|
-
}
|
|
35355
|
+
this.updateGestureEnabled();
|
|
35548
35356
|
}
|
|
35549
35357
|
async connectedCallback() {
|
|
35550
35358
|
const onStart = () => {
|
|
@@ -35584,11 +35392,21 @@ class RouterOutlet {
|
|
|
35584
35392
|
this.gestureOrAnimationInProgress = false;
|
|
35585
35393
|
}
|
|
35586
35394
|
});
|
|
35587
|
-
this.
|
|
35395
|
+
if (this.swipeGesture === undefined) {
|
|
35396
|
+
this.swipeGesture = config.getBoolean('swipeBackEnabled', this.mode === 'ios');
|
|
35397
|
+
}
|
|
35398
|
+
else {
|
|
35399
|
+
this.updateGestureEnabled();
|
|
35400
|
+
}
|
|
35588
35401
|
}
|
|
35589
35402
|
componentWillLoad() {
|
|
35590
35403
|
this.ionNavWillLoad.emit();
|
|
35591
35404
|
}
|
|
35405
|
+
updateGestureEnabled() {
|
|
35406
|
+
if (this.gesture) {
|
|
35407
|
+
this.gesture.enable(this.swipeHandler !== undefined && this.swipeGesture === true);
|
|
35408
|
+
}
|
|
35409
|
+
}
|
|
35592
35410
|
disconnectedCallback() {
|
|
35593
35411
|
if (this.gesture) {
|
|
35594
35412
|
this.gesture.destroy();
|
|
@@ -35699,10 +35517,13 @@ class RouterOutlet {
|
|
|
35699
35517
|
return true;
|
|
35700
35518
|
}
|
|
35701
35519
|
render() {
|
|
35702
|
-
return hAsync("slot", { key: '
|
|
35520
|
+
return hAsync("slot", { key: 'ce09e6fbba7b0a2276cdde5245bb37c9a162c1c7' });
|
|
35703
35521
|
}
|
|
35704
35522
|
get el() { return getElement(this); }
|
|
35705
35523
|
static get watchers() { return {
|
|
35524
|
+
"swipeGesture": [{
|
|
35525
|
+
"swipeGestureChanged": 0
|
|
35526
|
+
}],
|
|
35706
35527
|
"swipeHandler": [{
|
|
35707
35528
|
"swipeHandlerChanged": 0
|
|
35708
35529
|
}]
|
|
@@ -35716,6 +35537,7 @@ class RouterOutlet {
|
|
|
35716
35537
|
"delegate": [16],
|
|
35717
35538
|
"animated": [4],
|
|
35718
35539
|
"animation": [16],
|
|
35540
|
+
"swipeGesture": [1028, "swipe-gesture"],
|
|
35719
35541
|
"swipeHandler": [16],
|
|
35720
35542
|
"commit": [64],
|
|
35721
35543
|
"setRouteId": [64],
|
|
@@ -35734,7 +35556,7 @@ class Row {
|
|
|
35734
35556
|
registerInstance(this, hostRef);
|
|
35735
35557
|
}
|
|
35736
35558
|
render() {
|
|
35737
|
-
return (hAsync(Host, { key: '
|
|
35559
|
+
return (hAsync(Host, { key: 'a9066661fff12baaf3e80b2e8c08591af72fe5b8', class: getIonMode$1(this) }, hAsync("slot", { key: '62b103af46d3a5ec9c146019ae300b68a4ae867a' })));
|
|
35738
35560
|
}
|
|
35739
35561
|
static get style() { return rowCss(); }
|
|
35740
35562
|
static get cmpMeta() { return {
|
|
@@ -35786,7 +35608,7 @@ class Searchbar {
|
|
|
35786
35608
|
/**
|
|
35787
35609
|
* Set the input's autocorrect property.
|
|
35788
35610
|
*/
|
|
35789
|
-
this.autocorrect =
|
|
35611
|
+
this.autocorrect = false;
|
|
35790
35612
|
/**
|
|
35791
35613
|
* Set the cancel button icon. Only applies to `md` mode.
|
|
35792
35614
|
* Defaults to `arrow-back-sharp`.
|
|
@@ -36207,8 +36029,8 @@ class Searchbar {
|
|
|
36207
36029
|
const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
|
|
36208
36030
|
const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
|
|
36209
36031
|
const shouldShowCancelButton = this.shouldShowCancelButton();
|
|
36210
|
-
const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '
|
|
36211
|
-
return (hAsync(Host, { key: '
|
|
36032
|
+
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))));
|
|
36033
|
+
return (hAsync(Host, { key: '1b4f6c4e7dffb02e092f0026ce3875822d98a631', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
|
|
36212
36034
|
[mode]: true,
|
|
36213
36035
|
'searchbar-animated': animated,
|
|
36214
36036
|
'searchbar-disabled': this.disabled,
|
|
@@ -36218,14 +36040,14 @@ class Searchbar {
|
|
|
36218
36040
|
'searchbar-has-focus': this.focused,
|
|
36219
36041
|
'searchbar-should-show-clear': this.shouldShowClearButton(),
|
|
36220
36042
|
'searchbar-should-show-cancel': this.shouldShowCancelButton(),
|
|
36221
|
-
}) }, hAsync("div", { key: '
|
|
36043
|
+
}) }, 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) => {
|
|
36222
36044
|
/**
|
|
36223
36045
|
* This prevents mobile browsers from
|
|
36224
36046
|
* blurring the input when the clear
|
|
36225
36047
|
* button is activated.
|
|
36226
36048
|
*/
|
|
36227
36049
|
ev.preventDefault();
|
|
36228
|
-
}, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '
|
|
36050
|
+
}, 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));
|
|
36229
36051
|
}
|
|
36230
36052
|
get el() { return getElement(this); }
|
|
36231
36053
|
static get watchers() { return {
|
|
@@ -36257,7 +36079,7 @@ class Searchbar {
|
|
|
36257
36079
|
"animated": [4],
|
|
36258
36080
|
"autocapitalize": [1],
|
|
36259
36081
|
"autocomplete": [1],
|
|
36260
|
-
"autocorrect": [
|
|
36082
|
+
"autocorrect": [4],
|
|
36261
36083
|
"cancelButtonIcon": [1, "cancel-button-icon"],
|
|
36262
36084
|
"cancelButtonText": [1, "cancel-button-text"],
|
|
36263
36085
|
"clearIcon": [1, "clear-icon"],
|
|
@@ -36834,14 +36656,14 @@ class Segment {
|
|
|
36834
36656
|
}
|
|
36835
36657
|
render() {
|
|
36836
36658
|
const mode = getIonMode$1(this);
|
|
36837
|
-
return (hAsync(Host, { key: '
|
|
36659
|
+
return (hAsync(Host, { key: 'bb626072e73f09c3433e1a769e09789a00822d8f', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
|
|
36838
36660
|
[mode]: true,
|
|
36839
36661
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
36840
36662
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
36841
36663
|
'segment-activated': this.activated,
|
|
36842
36664
|
'segment-disabled': this.disabled,
|
|
36843
36665
|
'segment-scrollable': this.scrollable,
|
|
36844
|
-
}) }, hAsync("slot", { key: '
|
|
36666
|
+
}) }, hAsync("slot", { key: '652d5037c2c2dee4d47a5710b1d150e691202d25', onSlotchange: this.onSlottedItemsChange })));
|
|
36845
36667
|
}
|
|
36846
36668
|
get el() { return getElement(this); }
|
|
36847
36669
|
static get watchers() { return {
|
|
@@ -36989,7 +36811,7 @@ class SegmentButton {
|
|
|
36989
36811
|
const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
|
|
36990
36812
|
const mode = getIonMode$1(this);
|
|
36991
36813
|
const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
|
|
36992
|
-
return (hAsync(Host, { key: '
|
|
36814
|
+
return (hAsync(Host, { key: '792f621c36260b1fceff2b4ec4fa95d98d51d46b', class: {
|
|
36993
36815
|
[mode]: true,
|
|
36994
36816
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
36995
36817
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
@@ -37005,7 +36827,7 @@ class SegmentButton {
|
|
|
37005
36827
|
'ion-activatable': true,
|
|
37006
36828
|
'ion-activatable-instant': true,
|
|
37007
36829
|
'ion-focusable': true,
|
|
37008
|
-
} }, hAsync("button", Object.assign({ key: '
|
|
36830
|
+
} }, 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" }))));
|
|
37009
36831
|
}
|
|
37010
36832
|
get el() { return getElement(this); }
|
|
37011
36833
|
static get watchers() { return {
|
|
@@ -37042,7 +36864,7 @@ class SegmentContent {
|
|
|
37042
36864
|
registerInstance(this, hostRef);
|
|
37043
36865
|
}
|
|
37044
36866
|
render() {
|
|
37045
|
-
return (hAsync(Host, { key: '
|
|
36867
|
+
return (hAsync(Host, { key: 'ef39f29c444177c3b083cd35680ba891e4bb6a2a' }, hAsync("slot", { key: '51f9dd9ca084ddd928b376aa9d716509669c32b2' })));
|
|
37046
36868
|
}
|
|
37047
36869
|
static get style() { return segmentContentCss(); }
|
|
37048
36870
|
static get cmpMeta() { return {
|
|
@@ -37161,11 +36983,11 @@ class SegmentView {
|
|
|
37161
36983
|
}
|
|
37162
36984
|
render() {
|
|
37163
36985
|
const { disabled, isManualScroll, swipeGesture } = this;
|
|
37164
|
-
return (hAsync(Host, { key: '
|
|
36986
|
+
return (hAsync(Host, { key: 'a6c6ac0232c4bb6f2a954b3de7993019d71f423a', class: {
|
|
37165
36987
|
'segment-view-disabled': disabled,
|
|
37166
36988
|
'segment-view-scroll-disabled': isManualScroll === false,
|
|
37167
36989
|
'segment-view-swipe-disabled': swipeGesture === false,
|
|
37168
|
-
} }, hAsync("slot", { key: '
|
|
36990
|
+
} }, hAsync("slot", { key: '386305be2a75069c79def12005d9f6b49276763f' })));
|
|
37169
36991
|
}
|
|
37170
36992
|
get el() { return getElement(this); }
|
|
37171
36993
|
static get style() { return {
|
|
@@ -37187,9 +37009,9 @@ class SegmentView {
|
|
|
37187
37009
|
}; }
|
|
37188
37010
|
}
|
|
37189
37011
|
|
|
37190
|
-
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}`;
|
|
37012
|
+
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}`;
|
|
37191
37013
|
|
|
37192
|
-
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}`;
|
|
37014
|
+
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}`;
|
|
37193
37015
|
|
|
37194
37016
|
// TODO(FW-2832): types
|
|
37195
37017
|
/**
|
|
@@ -37224,6 +37046,7 @@ class Select {
|
|
|
37224
37046
|
this.helperTextId = `${this.inputId}-helper-text`;
|
|
37225
37047
|
this.errorTextId = `${this.inputId}-error-text`;
|
|
37226
37048
|
this.inheritedAttributes = {};
|
|
37049
|
+
this.customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
|
|
37227
37050
|
this.isExpanded = false;
|
|
37228
37051
|
/**
|
|
37229
37052
|
* The `hasFocus` state ensures the focus class is
|
|
@@ -37349,9 +37172,40 @@ class Select {
|
|
|
37349
37172
|
this.emitStyle();
|
|
37350
37173
|
}
|
|
37351
37174
|
setValue(value) {
|
|
37175
|
+
if (this.isValueEqual(this.value, value)) {
|
|
37176
|
+
return;
|
|
37177
|
+
}
|
|
37352
37178
|
this.value = value;
|
|
37353
37179
|
this.ionChange.emit({ value });
|
|
37354
37180
|
}
|
|
37181
|
+
isValueEqual(currentValue, newValue) {
|
|
37182
|
+
if (this.multiple) {
|
|
37183
|
+
const currentArr = Array.isArray(currentValue) ? currentValue : [];
|
|
37184
|
+
const newArr = Array.isArray(newValue) ? newValue : [];
|
|
37185
|
+
if (currentArr.length !== newArr.length) {
|
|
37186
|
+
return false;
|
|
37187
|
+
}
|
|
37188
|
+
// Multiset compare: each new value must match a distinct current value.
|
|
37189
|
+
// A plain `every(isOptionSelected)` would accept ['a','a'] as equal to
|
|
37190
|
+
// ['a','b'] when both 'a' and 'b' map to options whose values overlap.
|
|
37191
|
+
const remaining = currentArr.slice();
|
|
37192
|
+
return newArr.every((val) => {
|
|
37193
|
+
const idx = remaining.findIndex((c) => compareOptions(c, val, this.compareWith));
|
|
37194
|
+
if (idx === -1) {
|
|
37195
|
+
return false;
|
|
37196
|
+
}
|
|
37197
|
+
remaining.splice(idx, 1);
|
|
37198
|
+
return true;
|
|
37199
|
+
});
|
|
37200
|
+
}
|
|
37201
|
+
if (currentValue == null && newValue == null) {
|
|
37202
|
+
return true;
|
|
37203
|
+
}
|
|
37204
|
+
if (currentValue == null || newValue == null) {
|
|
37205
|
+
return false;
|
|
37206
|
+
}
|
|
37207
|
+
return compareOptions(currentValue, newValue, this.compareWith);
|
|
37208
|
+
}
|
|
37355
37209
|
async connectedCallback() {
|
|
37356
37210
|
const { el } = this;
|
|
37357
37211
|
this.notchController = createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
|
|
@@ -37545,10 +37399,11 @@ class Select {
|
|
|
37545
37399
|
.join(' ');
|
|
37546
37400
|
const optClass = `${OPTION_CLASS} ${copyClasses}`;
|
|
37547
37401
|
const isSelected = isOptionSelected(selectValue, value, this.compareWith);
|
|
37402
|
+
const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
|
|
37548
37403
|
return {
|
|
37549
|
-
|
|
37550
|
-
text: option.textContent,
|
|
37404
|
+
text: content !== null && content !== void 0 ? content : '',
|
|
37551
37405
|
cssClass: optClass,
|
|
37406
|
+
disabled: option.disabled,
|
|
37552
37407
|
handler: () => {
|
|
37553
37408
|
this.setValue(value);
|
|
37554
37409
|
},
|
|
@@ -37556,6 +37411,9 @@ class Select {
|
|
|
37556
37411
|
'aria-checked': isSelected ? 'true' : 'false',
|
|
37557
37412
|
role: 'radio',
|
|
37558
37413
|
},
|
|
37414
|
+
startContent,
|
|
37415
|
+
endContent,
|
|
37416
|
+
description: option.description,
|
|
37559
37417
|
};
|
|
37560
37418
|
});
|
|
37561
37419
|
// Add "cancel" button
|
|
@@ -37576,13 +37434,19 @@ class Select {
|
|
|
37576
37434
|
.filter((cls) => cls !== 'hydrated')
|
|
37577
37435
|
.join(' ');
|
|
37578
37436
|
const optClass = `${OPTION_CLASS} ${copyClasses}`;
|
|
37437
|
+
const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
|
|
37579
37438
|
return {
|
|
37580
37439
|
type: inputType,
|
|
37581
37440
|
cssClass: optClass,
|
|
37582
|
-
label:
|
|
37441
|
+
label: content !== null && content !== void 0 ? content : '',
|
|
37583
37442
|
value,
|
|
37584
37443
|
checked: isOptionSelected(selectValue, value, this.compareWith),
|
|
37585
37444
|
disabled: option.disabled,
|
|
37445
|
+
startContent,
|
|
37446
|
+
endContent,
|
|
37447
|
+
description: option.description,
|
|
37448
|
+
labelPlacement: option.labelPlacement,
|
|
37449
|
+
justify: option.justify,
|
|
37586
37450
|
};
|
|
37587
37451
|
});
|
|
37588
37452
|
return alertInputs;
|
|
@@ -37595,8 +37459,9 @@ class Select {
|
|
|
37595
37459
|
.filter((cls) => cls !== 'hydrated')
|
|
37596
37460
|
.join(' ');
|
|
37597
37461
|
const optClass = `${OPTION_CLASS} ${copyClasses}`;
|
|
37462
|
+
const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
|
|
37598
37463
|
return {
|
|
37599
|
-
text:
|
|
37464
|
+
text: content !== null && content !== void 0 ? content : '',
|
|
37600
37465
|
cssClass: optClass,
|
|
37601
37466
|
value,
|
|
37602
37467
|
checked: isOptionSelected(selectValue, value, this.compareWith),
|
|
@@ -37607,6 +37472,11 @@ class Select {
|
|
|
37607
37472
|
this.close();
|
|
37608
37473
|
}
|
|
37609
37474
|
},
|
|
37475
|
+
startContent,
|
|
37476
|
+
endContent,
|
|
37477
|
+
description: option.description,
|
|
37478
|
+
labelPlacement: option.labelPlacement,
|
|
37479
|
+
justify: option.justify,
|
|
37610
37480
|
};
|
|
37611
37481
|
});
|
|
37612
37482
|
return popoverOptions;
|
|
@@ -37639,15 +37509,21 @@ class Select {
|
|
|
37639
37509
|
ionShadowTarget: this.nativeWrapperEl,
|
|
37640
37510
|
} });
|
|
37641
37511
|
}
|
|
37512
|
+
const options = this.createOverlaySelectOptions(this.childOpts, value);
|
|
37513
|
+
const hasRichContent = options.some((opt) => opt.startContent || opt.endContent || opt.description);
|
|
37642
37514
|
const popoverOpts = Object.assign(Object.assign({ mode,
|
|
37643
37515
|
event, alignment: 'center', size,
|
|
37644
|
-
showBackdrop }, interfaceOptions), { component: 'ion-select-popover', cssClass: [
|
|
37516
|
+
showBackdrop }, interfaceOptions), { component: 'ion-select-popover', cssClass: [
|
|
37517
|
+
'select-popover',
|
|
37518
|
+
hasRichContent ? 'select-popover-rich-content' : undefined,
|
|
37519
|
+
interfaceOptions.cssClass,
|
|
37520
|
+
], componentProps: {
|
|
37645
37521
|
header: interfaceOptions.header,
|
|
37646
37522
|
subHeader: interfaceOptions.subHeader,
|
|
37647
37523
|
message: interfaceOptions.message,
|
|
37648
37524
|
multiple,
|
|
37649
37525
|
value,
|
|
37650
|
-
options
|
|
37526
|
+
options,
|
|
37651
37527
|
} });
|
|
37652
37528
|
return popoverController.create(popoverOpts);
|
|
37653
37529
|
}
|
|
@@ -37728,12 +37604,18 @@ class Select {
|
|
|
37728
37604
|
}
|
|
37729
37605
|
return;
|
|
37730
37606
|
}
|
|
37731
|
-
|
|
37607
|
+
/**
|
|
37608
|
+
* Returns the text to display in the select based on the selected value.
|
|
37609
|
+
*
|
|
37610
|
+
* @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`.
|
|
37611
|
+
* @returns The text to display in the select, either with or without HTML based on the `useHTML` parameter.
|
|
37612
|
+
*/
|
|
37613
|
+
getText(useHTML = false) {
|
|
37732
37614
|
const selectedText = this.selectedText;
|
|
37733
37615
|
if (selectedText != null && selectedText !== '') {
|
|
37734
37616
|
return selectedText;
|
|
37735
37617
|
}
|
|
37736
|
-
return generateText(this.childOpts, this.value, this.compareWith);
|
|
37618
|
+
return generateText(this.childOpts, this.value, this.compareWith, useHTML);
|
|
37737
37619
|
}
|
|
37738
37620
|
setFocus() {
|
|
37739
37621
|
if (this.focusEl) {
|
|
@@ -37803,6 +37685,47 @@ class Select {
|
|
|
37803
37685
|
*/
|
|
37804
37686
|
return this.renderLabel();
|
|
37805
37687
|
}
|
|
37688
|
+
/**
|
|
37689
|
+
* Wraps text nodes in the select text with span elements
|
|
37690
|
+
* so spacing can be added between elements without
|
|
37691
|
+
* changing the display to prevent losing the ellipses
|
|
37692
|
+
* behavior.
|
|
37693
|
+
*
|
|
37694
|
+
* Only wraps when the string contains HTML elements
|
|
37695
|
+
* alongside text.
|
|
37696
|
+
*/
|
|
37697
|
+
wrapSelectTextNodes(html) {
|
|
37698
|
+
const temp = document.createElement('div');
|
|
37699
|
+
temp.innerHTML = html;
|
|
37700
|
+
const hasElements = Array.from(temp.childNodes).some((n) => n.nodeType === Node.ELEMENT_NODE);
|
|
37701
|
+
// Return the plain text
|
|
37702
|
+
if (!hasElements) {
|
|
37703
|
+
return html;
|
|
37704
|
+
}
|
|
37705
|
+
Array.from(temp.childNodes).forEach((node) => {
|
|
37706
|
+
var _a, _b, _c, _d;
|
|
37707
|
+
if (node.nodeType === Node.TEXT_NODE && ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim())) {
|
|
37708
|
+
const text = node.textContent;
|
|
37709
|
+
/**
|
|
37710
|
+
* Split comma separator from the text content
|
|
37711
|
+
* e.g., ", Bacon" becomes ", " text node + <span>Bacon</span>.
|
|
37712
|
+
*/
|
|
37713
|
+
const commaMatch = text.match(/^(,\s*)(.*)/);
|
|
37714
|
+
if (commaMatch) {
|
|
37715
|
+
const commaNode = document.createTextNode(commaMatch[1]);
|
|
37716
|
+
const wrapper = document.createElement('span');
|
|
37717
|
+
wrapper.textContent = commaMatch[2];
|
|
37718
|
+
(_b = node.parentNode) === null || _b === void 0 ? void 0 : _b.replaceChild(wrapper, node);
|
|
37719
|
+
(_c = wrapper.parentNode) === null || _c === void 0 ? void 0 : _c.insertBefore(commaNode, wrapper);
|
|
37720
|
+
return;
|
|
37721
|
+
}
|
|
37722
|
+
const wrapper = document.createElement('span');
|
|
37723
|
+
(_d = node.parentNode) === null || _d === void 0 ? void 0 : _d.replaceChild(wrapper, node);
|
|
37724
|
+
wrapper.appendChild(node);
|
|
37725
|
+
}
|
|
37726
|
+
});
|
|
37727
|
+
return temp.innerHTML;
|
|
37728
|
+
}
|
|
37806
37729
|
/**
|
|
37807
37730
|
* Renders either the placeholder
|
|
37808
37731
|
* or the selected values based on
|
|
@@ -37810,7 +37733,7 @@ class Select {
|
|
|
37810
37733
|
*/
|
|
37811
37734
|
renderSelectText() {
|
|
37812
37735
|
const { placeholder } = this;
|
|
37813
|
-
const displayValue = this.getText();
|
|
37736
|
+
const displayValue = this.getText(true);
|
|
37814
37737
|
let addPlaceholderClass = false;
|
|
37815
37738
|
let selectText = displayValue;
|
|
37816
37739
|
if (selectText === '' && placeholder !== undefined) {
|
|
@@ -37822,6 +37745,10 @@ class Select {
|
|
|
37822
37745
|
'select-placeholder': addPlaceholderClass,
|
|
37823
37746
|
};
|
|
37824
37747
|
const textPart = addPlaceholderClass ? 'placeholder' : 'text';
|
|
37748
|
+
if (this.customHTMLEnabled) {
|
|
37749
|
+
const wrapped = this.wrapSelectTextNodes(selectText);
|
|
37750
|
+
return hAsync("div", { "aria-hidden": "true", class: selectTextClasses, part: textPart, innerHTML: wrapped });
|
|
37751
|
+
}
|
|
37825
37752
|
return (hAsync("div", { "aria-hidden": "true", class: selectTextClasses, part: textPart }, selectText));
|
|
37826
37753
|
}
|
|
37827
37754
|
/**
|
|
@@ -37844,6 +37771,7 @@ class Select {
|
|
|
37844
37771
|
get ariaLabel() {
|
|
37845
37772
|
var _a;
|
|
37846
37773
|
const { placeholder, inheritedAttributes } = this;
|
|
37774
|
+
// Get the plain text from the selected text
|
|
37847
37775
|
const displayValue = this.getText();
|
|
37848
37776
|
// The aria label should be preferred over visible text if both are specified
|
|
37849
37777
|
const definedLabel = (_a = inheritedAttributes['aria-label']) !== null && _a !== void 0 ? _a : this.labelText;
|
|
@@ -37937,7 +37865,7 @@ class Select {
|
|
|
37937
37865
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
37938
37866
|
*/
|
|
37939
37867
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
|
|
37940
|
-
return (hAsync(Host, { key: '
|
|
37868
|
+
return (hAsync(Host, { key: 'a3036d51e0db13332641e9523264ddd1ab031912', onClick: this.onClick, class: createColorClasses$1(this.color, {
|
|
37941
37869
|
[mode]: true,
|
|
37942
37870
|
'in-item': inItem,
|
|
37943
37871
|
'in-item-color': hostContext('ion-item.ion-color', el),
|
|
@@ -37955,7 +37883,7 @@ class Select {
|
|
|
37955
37883
|
[`select-justify-${justify}`]: justifyEnabled,
|
|
37956
37884
|
[`select-shape-${shape}`]: shape !== undefined,
|
|
37957
37885
|
[`select-label-placement-${labelPlacement}`]: true,
|
|
37958
|
-
}) }, hAsync("label", { key: '
|
|
37886
|
+
}) }, 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()));
|
|
37959
37887
|
}
|
|
37960
37888
|
get el() { return getElement(this); }
|
|
37961
37889
|
static get watchers() { return {
|
|
@@ -38026,34 +37954,232 @@ const parseValue = (value) => {
|
|
|
38026
37954
|
}
|
|
38027
37955
|
return value.toString();
|
|
38028
37956
|
};
|
|
38029
|
-
const generateText = (opts, value, compareWith) => {
|
|
37957
|
+
const generateText = (opts, value, compareWith, useHTML = false) => {
|
|
38030
37958
|
if (value === undefined) {
|
|
38031
37959
|
return '';
|
|
38032
37960
|
}
|
|
38033
37961
|
if (Array.isArray(value)) {
|
|
38034
37962
|
return value
|
|
38035
|
-
.map((v) => textForValue(opts, v, compareWith))
|
|
37963
|
+
.map((v) => textForValue(opts, v, compareWith, useHTML))
|
|
38036
37964
|
.filter((opt) => opt !== null)
|
|
38037
37965
|
.join(', ');
|
|
38038
37966
|
}
|
|
38039
37967
|
else {
|
|
38040
|
-
return textForValue(opts, value, compareWith) || '';
|
|
37968
|
+
return textForValue(opts, value, compareWith, useHTML) || '';
|
|
38041
37969
|
}
|
|
38042
37970
|
};
|
|
38043
|
-
|
|
37971
|
+
/**
|
|
37972
|
+
* Returns the display text for a given value from the list of options.
|
|
37973
|
+
* When `useHTML` is true, returns sanitized HTML for the select text.
|
|
37974
|
+
* When `useHTML` is false, returns plain text for aria-label and other
|
|
37975
|
+
* text-only contexts.
|
|
37976
|
+
*
|
|
37977
|
+
* @param opts - The list of ion-select-option elements.
|
|
37978
|
+
* @param value - The value to find the matching option for.
|
|
37979
|
+
* @param compareWith - Custom comparison function or property name.
|
|
37980
|
+
* @param useHTML - If true, returns HTML string. If false, returns plain text.
|
|
37981
|
+
*/
|
|
37982
|
+
const textForValue = (opts, value, compareWith, useHTML = false) => {
|
|
38044
37983
|
const selectOpt = opts.find((opt) => {
|
|
38045
37984
|
return compareOptions(value, getOptionValue(opt), compareWith);
|
|
38046
37985
|
});
|
|
38047
|
-
|
|
37986
|
+
const customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
|
|
37987
|
+
if (!selectOpt) {
|
|
37988
|
+
return null;
|
|
37989
|
+
}
|
|
37990
|
+
// Return sanitized HTML for the select text
|
|
37991
|
+
if (customHTMLEnabled && useHTML) {
|
|
37992
|
+
return getOptionContent(selectOpt, undefined, true);
|
|
37993
|
+
}
|
|
37994
|
+
/**
|
|
37995
|
+
* When custom HTML is enabled, extract only the default slot content.
|
|
37996
|
+
* This ensures aria-label and other text-only contexts read only
|
|
37997
|
+
* the relevant option text.
|
|
37998
|
+
*/
|
|
37999
|
+
if (customHTMLEnabled) {
|
|
38000
|
+
const content = getOptionContent(selectOpt);
|
|
38001
|
+
if (typeof content === 'string') {
|
|
38002
|
+
return content;
|
|
38003
|
+
}
|
|
38004
|
+
/**
|
|
38005
|
+
* Elements were found in the default slot, extract and concatenate
|
|
38006
|
+
* their text content while trimming whitespace.
|
|
38007
|
+
*/
|
|
38008
|
+
if (content) {
|
|
38009
|
+
const texts = Array.from(content.childNodes)
|
|
38010
|
+
.map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); })
|
|
38011
|
+
.filter((t) => t);
|
|
38012
|
+
return texts.join(' ') || null;
|
|
38013
|
+
}
|
|
38014
|
+
// Empty option
|
|
38015
|
+
return null;
|
|
38016
|
+
}
|
|
38017
|
+
return getDefaultSlotPlainText(selectOpt);
|
|
38018
|
+
};
|
|
38019
|
+
/**
|
|
38020
|
+
* Trims whitespace from all text nodes within a DOM tree.
|
|
38021
|
+
* This prevents invisible layout shifts and unwanted gaps between
|
|
38022
|
+
* elements when HTML content is injected via innerHTML or cloneNode,
|
|
38023
|
+
* as browsers preserve whitespace (tabs, newlines, spaces) from
|
|
38024
|
+
* the original source markup.
|
|
38025
|
+
*
|
|
38026
|
+
* @param node The root node to start trimming text nodes from.
|
|
38027
|
+
*/
|
|
38028
|
+
const trimTextNodes = (node) => {
|
|
38029
|
+
node.childNodes.forEach((child) => {
|
|
38030
|
+
var _a;
|
|
38031
|
+
if (child.nodeType === Node.TEXT_NODE) {
|
|
38032
|
+
child.textContent = ((_a = child.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
|
|
38033
|
+
}
|
|
38034
|
+
else if (child.nodeType === Node.ELEMENT_NODE) {
|
|
38035
|
+
trimTextNodes(child);
|
|
38036
|
+
}
|
|
38037
|
+
});
|
|
38038
|
+
};
|
|
38039
|
+
/**
|
|
38040
|
+
* Extracts and clones content from an `ion-select-option` element
|
|
38041
|
+
* for rendering within overlay interfaces or the select text when `customHTMLEnabled` is `true`.
|
|
38042
|
+
*
|
|
38043
|
+
* @param option - The `ion-select-option` element to extract content from.
|
|
38044
|
+
* @param slotName - Optional slot name to extract. If omitted, extracts the default slot content.
|
|
38045
|
+
* @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.
|
|
38046
|
+
* @returns When `useHTML` is `true`, a sanitized HTML string. When `false`, a
|
|
38047
|
+
* div element containing cloned child nodes. Returns `null` if no matching
|
|
38048
|
+
* content is found.
|
|
38049
|
+
*/
|
|
38050
|
+
const getOptionContent = (option, slotName, useHTML = false) => {
|
|
38051
|
+
let nodes;
|
|
38052
|
+
if (slotName) {
|
|
38053
|
+
// Named slot: get elements with matching slot attribute
|
|
38054
|
+
nodes = Array.from(option.children).filter((el) => el.getAttribute('slot') === slotName);
|
|
38055
|
+
}
|
|
38056
|
+
else {
|
|
38057
|
+
// Default slot: get nodes without a slot attribute
|
|
38058
|
+
const defaultSlot = getOptionDefaultSlot(option) || [];
|
|
38059
|
+
nodes = defaultSlot.filter((node) => {
|
|
38060
|
+
var _a;
|
|
38061
|
+
/**
|
|
38062
|
+
* Exclude whitespace-only text nodes (newline noise between
|
|
38063
|
+
* markup elements). Element nodes are always kept, even when
|
|
38064
|
+
* their textContent is empty (e.g. <svg>, <img>).
|
|
38065
|
+
*/
|
|
38066
|
+
if (node.nodeType === Node.TEXT_NODE) {
|
|
38067
|
+
return ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim().length) !== 0;
|
|
38068
|
+
}
|
|
38069
|
+
return true;
|
|
38070
|
+
});
|
|
38071
|
+
}
|
|
38072
|
+
if (nodes.length === 0) {
|
|
38073
|
+
return null;
|
|
38074
|
+
}
|
|
38075
|
+
// Return plain text if no elements are found
|
|
38076
|
+
if (!slotName && nodes.every((n) => n.nodeType === Node.TEXT_NODE)) {
|
|
38077
|
+
return nodes.map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); }).join(' ') || null;
|
|
38078
|
+
}
|
|
38079
|
+
/**
|
|
38080
|
+
* Mirror known custom-element properties (e.g. ion-icon's `icon`)
|
|
38081
|
+
* onto attributes before cloning. Frameworks like Vue set these as
|
|
38082
|
+
* DOM properties, which `cloneNode` doesn't copy, so without this
|
|
38083
|
+
* step the cloned overlay copy renders without the prop's value.
|
|
38084
|
+
*/
|
|
38085
|
+
nodes.forEach((n) => {
|
|
38086
|
+
if (n.nodeType === Node.ELEMENT_NODE) {
|
|
38087
|
+
reflectPropertiesToAttributes(n);
|
|
38088
|
+
}
|
|
38089
|
+
});
|
|
38090
|
+
// Clone each node into a temporary container
|
|
38091
|
+
const container = document.createElement('div');
|
|
38092
|
+
nodes.forEach((n) => {
|
|
38093
|
+
var _a;
|
|
38094
|
+
const clone = n.cloneNode(true);
|
|
38095
|
+
if (clone.nodeType === Node.TEXT_NODE) {
|
|
38096
|
+
clone.textContent = ((_a = clone.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
|
|
38097
|
+
}
|
|
38098
|
+
else {
|
|
38099
|
+
trimTextNodes(clone);
|
|
38100
|
+
}
|
|
38101
|
+
container.appendChild(clone);
|
|
38102
|
+
});
|
|
38103
|
+
/**
|
|
38104
|
+
* Sanitize the cloned DOM in place. Trusted attributes (size, color,
|
|
38105
|
+
* shape, etc.) are preserved; event handlers, javascript: URLs, and
|
|
38106
|
+
* blocked tags are stripped.
|
|
38107
|
+
*/
|
|
38108
|
+
sanitizeDOMTree(container);
|
|
38109
|
+
if (useHTML) {
|
|
38110
|
+
return container.innerHTML.trim() || null;
|
|
38111
|
+
}
|
|
38112
|
+
return container;
|
|
38113
|
+
};
|
|
38114
|
+
/**
|
|
38115
|
+
* Returns the child nodes that belong to the default slot of an
|
|
38116
|
+
* option element, excluding any nodes that are assigned to named
|
|
38117
|
+
* slots.
|
|
38118
|
+
*
|
|
38119
|
+
* @param option - The `ion-select-option` element to extract default-slot nodes from.
|
|
38120
|
+
* @returns An array of default slot nodes, or `null` if none are found.
|
|
38121
|
+
*/
|
|
38122
|
+
const getOptionDefaultSlot = (option) => {
|
|
38123
|
+
const defaultSlotNodes = Array.from(option.childNodes).filter((node) => {
|
|
38124
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
38125
|
+
return !node.hasAttribute('slot');
|
|
38126
|
+
}
|
|
38127
|
+
return node.nodeType === Node.TEXT_NODE;
|
|
38128
|
+
});
|
|
38129
|
+
if (defaultSlotNodes.length === 0) {
|
|
38130
|
+
return null;
|
|
38131
|
+
}
|
|
38132
|
+
return defaultSlotNodes;
|
|
38133
|
+
};
|
|
38134
|
+
/**
|
|
38135
|
+
* Extracts plain text from only the default slot of an option,
|
|
38136
|
+
* excluding content assigned to named slots (start/end).
|
|
38137
|
+
*/
|
|
38138
|
+
const getDefaultSlotPlainText = (option) => {
|
|
38139
|
+
const texts = Array.from(option.childNodes)
|
|
38140
|
+
.filter((node) => {
|
|
38141
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
38142
|
+
return !node.hasAttribute('slot');
|
|
38143
|
+
}
|
|
38144
|
+
return node.nodeType === Node.TEXT_NODE;
|
|
38145
|
+
})
|
|
38146
|
+
.filter((node) => node.nodeType === Node.TEXT_NODE)
|
|
38147
|
+
.map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); })
|
|
38148
|
+
.filter((t) => t);
|
|
38149
|
+
return texts.join(' ');
|
|
38150
|
+
};
|
|
38151
|
+
/**
|
|
38152
|
+
* Extracts the rich content from an `ion-select-option`.
|
|
38153
|
+
* When `customHTMLEnabled` is `false`, only the plain text from the
|
|
38154
|
+
* default slot is read and the start and end slots are skipped.
|
|
38155
|
+
*
|
|
38156
|
+
* @param option - The `ion-select-option` element to extract content from.
|
|
38157
|
+
* @param customHTMLEnabled - Whether custom HTML rendering is enabled
|
|
38158
|
+
* via the `innerHTMLTemplatesEnabled` config.
|
|
38159
|
+
*/
|
|
38160
|
+
const extractOptionContent = (option, customHTMLEnabled) => {
|
|
38161
|
+
var _a, _b;
|
|
38162
|
+
if (!customHTMLEnabled) {
|
|
38163
|
+
return {
|
|
38164
|
+
content: getDefaultSlotPlainText(option),
|
|
38165
|
+
startContent: undefined,
|
|
38166
|
+
endContent: undefined,
|
|
38167
|
+
};
|
|
38168
|
+
}
|
|
38169
|
+
return {
|
|
38170
|
+
content: getOptionContent(option),
|
|
38171
|
+
startContent: (_a = getOptionContent(option, 'start')) !== null && _a !== void 0 ? _a : undefined,
|
|
38172
|
+
endContent: (_b = getOptionContent(option, 'end')) !== null && _b !== void 0 ? _b : undefined,
|
|
38173
|
+
};
|
|
38048
38174
|
};
|
|
38049
38175
|
let selectIds = 0;
|
|
38050
38176
|
const OPTION_CLASS = 'select-interface-option';
|
|
38051
38177
|
|
|
38052
|
-
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)}`;
|
|
38178
|
+
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)}`;
|
|
38053
38179
|
|
|
38054
|
-
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)}`;
|
|
38180
|
+
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)}`;
|
|
38055
38181
|
|
|
38056
|
-
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)}`;
|
|
38182
|
+
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)}`;
|
|
38057
38183
|
|
|
38058
38184
|
class SelectModal {
|
|
38059
38185
|
constructor(hostRef) {
|
|
@@ -38107,39 +38233,90 @@ class SelectModal {
|
|
|
38107
38233
|
}
|
|
38108
38234
|
}
|
|
38109
38235
|
renderRadioOptions() {
|
|
38236
|
+
const mode = getIonMode$1(this);
|
|
38110
38237
|
const checked = this.options.filter((o) => o.checked).map((o) => o.value)[0];
|
|
38111
|
-
return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, this.options.map((option) =>
|
|
38238
|
+
return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, this.options.map((option, index) => {
|
|
38239
|
+
var _a, _b;
|
|
38240
|
+
/**
|
|
38241
|
+
* Cast to `SelectOverlayOption` to access rich content
|
|
38242
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
38243
|
+
* that are passed through from `ion-select` but not
|
|
38244
|
+
* part of the public `SelectModalOption` interface.
|
|
38245
|
+
*/
|
|
38246
|
+
const richOption = option;
|
|
38247
|
+
const hasRichContent = !!richOption.startContent || !!richOption.endContent || !!richOption.description;
|
|
38248
|
+
const optionLabelOptions = {
|
|
38249
|
+
id: `modal-option-${index}`,
|
|
38250
|
+
label: richOption.text,
|
|
38251
|
+
startContent: richOption.startContent,
|
|
38252
|
+
endContent: richOption.endContent,
|
|
38253
|
+
description: richOption.description,
|
|
38254
|
+
};
|
|
38255
|
+
const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'radio', 'modal');
|
|
38256
|
+
const defaultJustify = getOverlayLabelJustify(mode, 'radio', 'modal');
|
|
38257
|
+
return (hAsync("ion-item", { lines: "none",
|
|
38112
38258
|
// TODO FW-4784
|
|
38113
|
-
|
|
38114
|
-
|
|
38115
|
-
|
|
38116
|
-
|
|
38117
|
-
|
|
38118
|
-
|
|
38119
|
-
|
|
38120
|
-
|
|
38121
|
-
|
|
38122
|
-
}
|
|
38123
|
-
|
|
38124
|
-
|
|
38125
|
-
this.pendingEnterTarget = null;
|
|
38126
|
-
if (shouldClose) {
|
|
38259
|
+
disabled: option.disabled, class: Object.assign({
|
|
38260
|
+
// TODO FW-4784
|
|
38261
|
+
'item-radio-checked': option.value === checked
|
|
38262
|
+
}, getClassMap(option.cssClass)) }, hAsync("ion-radio", { class: {
|
|
38263
|
+
'select-option-has-rich-content': hasRichContent,
|
|
38264
|
+
}, 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) => {
|
|
38265
|
+
if (ev.key === 'Enter' && !ev.repeat) {
|
|
38266
|
+
this.pendingEnterTarget = ev.currentTarget;
|
|
38267
|
+
}
|
|
38268
|
+
}, onKeyUp: (ev) => {
|
|
38269
|
+
if (ev.key === ' ') {
|
|
38270
|
+
// Space selects and dismisses in one press.
|
|
38127
38271
|
this.closeModal();
|
|
38128
38272
|
}
|
|
38129
|
-
|
|
38130
|
-
|
|
38273
|
+
else if (ev.key === 'Enter') {
|
|
38274
|
+
const shouldClose = this.pendingEnterTarget === ev.currentTarget;
|
|
38275
|
+
this.pendingEnterTarget = null;
|
|
38276
|
+
if (shouldClose) {
|
|
38277
|
+
this.closeModal();
|
|
38278
|
+
}
|
|
38279
|
+
}
|
|
38280
|
+
} }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
|
|
38281
|
+
})));
|
|
38131
38282
|
}
|
|
38132
38283
|
renderCheckboxOptions() {
|
|
38133
|
-
|
|
38284
|
+
const mode = getIonMode$1(this);
|
|
38285
|
+
return this.options.map((option, index) => {
|
|
38286
|
+
var _a, _b;
|
|
38287
|
+
/**
|
|
38288
|
+
* Cast to `SelectOverlayOption` to access rich content
|
|
38289
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
38290
|
+
* that are passed through from `ion-select` but not
|
|
38291
|
+
* part of the public `SelectModalOption` interface.
|
|
38292
|
+
*/
|
|
38293
|
+
const richOption = option;
|
|
38294
|
+
const hasRichContent = !!richOption.startContent || !!richOption.endContent || !!richOption.description;
|
|
38295
|
+
const optionLabelOptions = {
|
|
38296
|
+
id: `modal-option-${index}`,
|
|
38297
|
+
label: richOption.text,
|
|
38298
|
+
startContent: richOption.startContent,
|
|
38299
|
+
endContent: richOption.endContent,
|
|
38300
|
+
description: richOption.description,
|
|
38301
|
+
};
|
|
38302
|
+
const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'checkbox', 'modal');
|
|
38303
|
+
const defaultJustify = getOverlayLabelJustify(mode, 'checkbox', 'modal');
|
|
38304
|
+
return (hAsync("ion-item", {
|
|
38134
38305
|
// TODO FW-4784
|
|
38135
|
-
|
|
38136
|
-
|
|
38137
|
-
|
|
38138
|
-
|
|
38139
|
-
}
|
|
38306
|
+
disabled: option.disabled, class: Object.assign({
|
|
38307
|
+
// TODO FW-4784
|
|
38308
|
+
'item-checkbox-checked': option.checked
|
|
38309
|
+
}, getClassMap(option.cssClass))
|
|
38310
|
+
}, hAsync("ion-checkbox", { class: {
|
|
38311
|
+
'select-option-has-rich-content': hasRichContent,
|
|
38312
|
+
}, 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) => {
|
|
38313
|
+
this.setChecked(ev);
|
|
38314
|
+
this.callOptionHandler(ev);
|
|
38315
|
+
} }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
|
|
38316
|
+
});
|
|
38140
38317
|
}
|
|
38141
38318
|
render() {
|
|
38142
|
-
return (hAsync(Host, { key: '
|
|
38319
|
+
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()))));
|
|
38143
38320
|
}
|
|
38144
38321
|
get el() { return getElement(this); }
|
|
38145
38322
|
static get style() { return {
|
|
@@ -38164,17 +38341,24 @@ class SelectModal {
|
|
|
38164
38341
|
|
|
38165
38342
|
const selectOptionCss = () => `:host{display:none}`;
|
|
38166
38343
|
|
|
38344
|
+
/**
|
|
38345
|
+
* @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
|
|
38346
|
+
*
|
|
38347
|
+
* @slot - Content is placed between the named slots if provided without a slot.
|
|
38348
|
+
* @slot start - Content is placed to the left of the select option text in LTR, and to the right in RTL.
|
|
38349
|
+
* @slot end - Content is placed to the right of the select option text in LTR, and to the left in RTL.
|
|
38350
|
+
*/
|
|
38167
38351
|
class SelectOption {
|
|
38168
38352
|
constructor(hostRef) {
|
|
38169
38353
|
registerInstance(this, hostRef);
|
|
38170
38354
|
this.inputId = `ion-selopt-${selectOptionIds++}`;
|
|
38171
38355
|
/**
|
|
38172
|
-
* If `true`, the user cannot interact with the select option.
|
|
38356
|
+
* If `true`, the user cannot interact with the select option.
|
|
38173
38357
|
*/
|
|
38174
38358
|
this.disabled = false;
|
|
38175
38359
|
}
|
|
38176
38360
|
render() {
|
|
38177
|
-
return hAsync(Host, { key: '
|
|
38361
|
+
return hAsync(Host, { key: '8b8bef0f5a55f18048708c34d3ea3ff0ff2f1d47', role: "option", id: this.inputId, class: getIonMode$1(this) });
|
|
38178
38362
|
}
|
|
38179
38363
|
get el() { return getElement(this); }
|
|
38180
38364
|
static get style() { return selectOptionCss(); }
|
|
@@ -38183,7 +38367,10 @@ class SelectOption {
|
|
|
38183
38367
|
"$tagName$": "ion-select-option",
|
|
38184
38368
|
"$members$": {
|
|
38185
38369
|
"disabled": [4],
|
|
38186
|
-
"value": [8]
|
|
38370
|
+
"value": [8],
|
|
38371
|
+
"description": [1],
|
|
38372
|
+
"labelPlacement": [1, "label-placement"],
|
|
38373
|
+
"justify": [1]
|
|
38187
38374
|
},
|
|
38188
38375
|
"$listeners$": undefined,
|
|
38189
38376
|
"$lazyBundleId$": "-",
|
|
@@ -38192,9 +38379,9 @@ class SelectOption {
|
|
|
38192
38379
|
}
|
|
38193
38380
|
let selectOptionIds = 0;
|
|
38194
38381
|
|
|
38195
|
-
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}`;
|
|
38382
|
+
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}`;
|
|
38196
38383
|
|
|
38197
|
-
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)}`;
|
|
38384
|
+
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)}`;
|
|
38198
38385
|
|
|
38199
38386
|
/**
|
|
38200
38387
|
* @internal
|
|
@@ -38268,41 +38455,91 @@ class SelectPopover {
|
|
|
38268
38455
|
}
|
|
38269
38456
|
}
|
|
38270
38457
|
renderCheckboxOptions(options) {
|
|
38271
|
-
|
|
38458
|
+
const mode = getIonMode$1(this);
|
|
38459
|
+
return options.map((option, index) => {
|
|
38460
|
+
var _a, _b;
|
|
38461
|
+
/**
|
|
38462
|
+
* Cast to `SelectOverlayOption` to access rich content
|
|
38463
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
38464
|
+
* that are passed through from `ion-select` but not
|
|
38465
|
+
* part of the public `SelectPopoverOption` interface.
|
|
38466
|
+
*/
|
|
38467
|
+
const richOption = option;
|
|
38468
|
+
const hasRichContent = !!richOption.startContent || !!richOption.endContent || !!richOption.description;
|
|
38469
|
+
const optionLabelOptions = {
|
|
38470
|
+
id: `popover-option-${index}`,
|
|
38471
|
+
label: richOption.text,
|
|
38472
|
+
startContent: richOption.startContent,
|
|
38473
|
+
endContent: richOption.endContent,
|
|
38474
|
+
description: richOption.description,
|
|
38475
|
+
};
|
|
38476
|
+
const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'checkbox');
|
|
38477
|
+
const defaultJustify = getOverlayLabelJustify(mode, 'checkbox');
|
|
38478
|
+
return (hAsync("ion-item", {
|
|
38272
38479
|
// TODO FW-4784
|
|
38273
|
-
|
|
38274
|
-
|
|
38275
|
-
|
|
38276
|
-
|
|
38277
|
-
}
|
|
38480
|
+
disabled: option.disabled, class: Object.assign({
|
|
38481
|
+
// TODO FW-4784
|
|
38482
|
+
'item-checkbox-checked': option.checked
|
|
38483
|
+
}, getClassMap(option.cssClass))
|
|
38484
|
+
}, hAsync("ion-checkbox", { class: {
|
|
38485
|
+
'select-option-has-rich-content': hasRichContent,
|
|
38486
|
+
}, 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) => {
|
|
38487
|
+
this.setChecked(ev);
|
|
38488
|
+
this.callOptionHandler(ev);
|
|
38489
|
+
} }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
|
|
38490
|
+
});
|
|
38278
38491
|
}
|
|
38279
38492
|
renderRadioOptions(options) {
|
|
38493
|
+
const mode = getIonMode$1(this);
|
|
38280
38494
|
const checked = options.filter((o) => o.checked).map((o) => o.value)[0];
|
|
38281
|
-
return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, options.map((option) =>
|
|
38495
|
+
return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, options.map((option, index) => {
|
|
38496
|
+
var _a, _b;
|
|
38497
|
+
/**
|
|
38498
|
+
* Cast to `SelectOverlayOption` to access rich content
|
|
38499
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
38500
|
+
* that are passed through from `ion-select` but not
|
|
38501
|
+
* part of the public `SelectPopoverOption` interface.
|
|
38502
|
+
*/
|
|
38503
|
+
const richOption = option;
|
|
38504
|
+
const hasRichContent = !!richOption.startContent || !!richOption.endContent || !!richOption.description;
|
|
38505
|
+
const optionLabelOptions = {
|
|
38506
|
+
id: `popover-option-${index}`,
|
|
38507
|
+
label: richOption.text,
|
|
38508
|
+
startContent: richOption.startContent,
|
|
38509
|
+
endContent: richOption.endContent,
|
|
38510
|
+
description: richOption.description,
|
|
38511
|
+
};
|
|
38512
|
+
return (hAsync("ion-item", {
|
|
38282
38513
|
// TODO FW-4784
|
|
38283
|
-
|
|
38284
|
-
|
|
38285
|
-
|
|
38286
|
-
|
|
38287
|
-
|
|
38288
|
-
|
|
38289
|
-
|
|
38290
|
-
|
|
38291
|
-
|
|
38292
|
-
|
|
38293
|
-
|
|
38294
|
-
|
|
38295
|
-
|
|
38296
|
-
if (shouldDismiss) {
|
|
38514
|
+
disabled: option.disabled, class: Object.assign({
|
|
38515
|
+
// TODO FW-4784
|
|
38516
|
+
'item-radio-checked': option.value === checked
|
|
38517
|
+
}, getClassMap(option.cssClass))
|
|
38518
|
+
}, hAsync("ion-radio", { class: {
|
|
38519
|
+
'select-option-has-rich-content': hasRichContent,
|
|
38520
|
+
}, 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) => {
|
|
38521
|
+
if (ev.key === 'Enter' && !ev.repeat) {
|
|
38522
|
+
this.pendingEnterTarget = ev.currentTarget;
|
|
38523
|
+
}
|
|
38524
|
+
}, onKeyUp: (ev) => {
|
|
38525
|
+
if (ev.key === ' ') {
|
|
38526
|
+
// Space selects and dismisses in one press.
|
|
38297
38527
|
this.dismissParentPopover();
|
|
38298
38528
|
}
|
|
38299
|
-
|
|
38300
|
-
|
|
38529
|
+
else if (ev.key === 'Enter') {
|
|
38530
|
+
const shouldDismiss = this.pendingEnterTarget === ev.currentTarget;
|
|
38531
|
+
this.pendingEnterTarget = null;
|
|
38532
|
+
if (shouldDismiss) {
|
|
38533
|
+
this.dismissParentPopover();
|
|
38534
|
+
}
|
|
38535
|
+
}
|
|
38536
|
+
} }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
|
|
38537
|
+
})));
|
|
38301
38538
|
}
|
|
38302
38539
|
render() {
|
|
38303
38540
|
const { header, message, options, subHeader } = this;
|
|
38304
38541
|
const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
|
|
38305
|
-
return (hAsync(Host, { key: '
|
|
38542
|
+
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))));
|
|
38306
38543
|
}
|
|
38307
38544
|
get el() { return getElement(this); }
|
|
38308
38545
|
static get style() { return {
|
|
@@ -38352,11 +38589,11 @@ class SkeletonText {
|
|
|
38352
38589
|
const animated = this.animated && config.getBoolean('animated', true);
|
|
38353
38590
|
const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
|
|
38354
38591
|
const mode = getIonMode$1(this);
|
|
38355
|
-
return (hAsync(Host, { key: '
|
|
38592
|
+
return (hAsync(Host, { key: '887d958d982345ce610730ab5c9ae35010430f75', class: {
|
|
38356
38593
|
[mode]: true,
|
|
38357
38594
|
'skeleton-text-animated': animated,
|
|
38358
38595
|
'in-media': inMedia,
|
|
38359
|
-
} }, hAsync("span", { key: '
|
|
38596
|
+
} }, hAsync("span", { key: 'a184f4b9780a2aada0a16729109ac81436e9c9e1' }, "\u00A0")));
|
|
38360
38597
|
}
|
|
38361
38598
|
get el() { return getElement(this); }
|
|
38362
38599
|
static get style() { return skeletonTextCss(); }
|
|
@@ -38408,7 +38645,7 @@ class Spinner {
|
|
|
38408
38645
|
svgs.push(buildLine(spinner, duration, i, spinner.lines));
|
|
38409
38646
|
}
|
|
38410
38647
|
}
|
|
38411
|
-
return (hAsync(Host, { key: '
|
|
38648
|
+
return (hAsync(Host, { key: 'c35ebd01186e860acb9cac260193f0836424fdf4', class: createColorClasses$1(self.color, {
|
|
38412
38649
|
[mode]: true,
|
|
38413
38650
|
[`spinner-${spinnerName}`]: true,
|
|
38414
38651
|
'spinner-paused': self.paused || config.getBoolean('_testing'),
|
|
@@ -38507,12 +38744,12 @@ class SplitPane {
|
|
|
38507
38744
|
}
|
|
38508
38745
|
render() {
|
|
38509
38746
|
const mode = getIonMode$1(this);
|
|
38510
|
-
return (hAsync(Host, { key: '
|
|
38747
|
+
return (hAsync(Host, { key: '694e989fafcfe2453e0a83b3cb736efaa1eb4fec', class: {
|
|
38511
38748
|
[mode]: true,
|
|
38512
38749
|
// Used internally for styling
|
|
38513
38750
|
[`split-pane-${mode}`]: true,
|
|
38514
38751
|
'split-pane-visible': this.visible,
|
|
38515
|
-
} }, hAsync("slot", { key: '
|
|
38752
|
+
} }, hAsync("slot", { key: 'dde7e9382b62cc11971aa233cf98c2314ae4f720' })));
|
|
38516
38753
|
}
|
|
38517
38754
|
get el() { return getElement(this); }
|
|
38518
38755
|
static get watchers() { return {
|
|
@@ -38584,10 +38821,10 @@ class Tab {
|
|
|
38584
38821
|
}
|
|
38585
38822
|
render() {
|
|
38586
38823
|
const { tab, active, component } = this;
|
|
38587
|
-
return (hAsync(Host, { key: '
|
|
38824
|
+
return (hAsync(Host, { key: '745262368a7f45244da459f4fa1730a46dd3e257', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
|
|
38588
38825
|
'ion-page': component === undefined,
|
|
38589
38826
|
'tab-hidden': !active,
|
|
38590
|
-
} }, hAsync("slot", { key: '
|
|
38827
|
+
} }, hAsync("slot", { key: '823d09a6f93bf7c0dc74f2b8717d1d3a62df1ad8' })));
|
|
38591
38828
|
}
|
|
38592
38829
|
get el() { return getElement(this); }
|
|
38593
38830
|
static get watchers() { return {
|
|
@@ -38701,11 +38938,11 @@ class TabBar {
|
|
|
38701
38938
|
const { color, translucent, keyboardVisible } = this;
|
|
38702
38939
|
const mode = getIonMode$1(this);
|
|
38703
38940
|
const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
|
|
38704
|
-
return (hAsync(Host, { key: '
|
|
38941
|
+
return (hAsync(Host, { key: '148f65df0818e9d220a9b46db74cb89ab94e62d2', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
|
|
38705
38942
|
[mode]: true,
|
|
38706
38943
|
'tab-bar-translucent': translucent,
|
|
38707
38944
|
'tab-bar-hidden': shouldHide,
|
|
38708
|
-
}) }, hAsync("slot", { key: '
|
|
38945
|
+
}) }, hAsync("slot", { key: 'a64e235f3703662e2dd7a834f752cc5b1490adbc' })));
|
|
38709
38946
|
}
|
|
38710
38947
|
get el() { return getElement(this); }
|
|
38711
38948
|
static get watchers() { return {
|
|
@@ -38803,7 +39040,7 @@ class TabButton {
|
|
|
38803
39040
|
rel,
|
|
38804
39041
|
target,
|
|
38805
39042
|
};
|
|
38806
|
-
return (hAsync(Host, { key: '
|
|
39043
|
+
return (hAsync(Host, { key: '1034b5a928ecec49bd8efec3730ea1b11a579cf3', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
|
|
38807
39044
|
[mode]: true,
|
|
38808
39045
|
'tab-selected': selected,
|
|
38809
39046
|
'tab-disabled': disabled,
|
|
@@ -38815,7 +39052,7 @@ class TabButton {
|
|
|
38815
39052
|
'ion-activatable': true,
|
|
38816
39053
|
'ion-selectable': true,
|
|
38817
39054
|
'ion-focusable': true,
|
|
38818
|
-
} }, hAsync("a", Object.assign({ key: '
|
|
39055
|
+
} }, 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" }))));
|
|
38819
39056
|
}
|
|
38820
39057
|
get el() { return getElement(this); }
|
|
38821
39058
|
static get style() { return {
|
|
@@ -39006,7 +39243,7 @@ class Tabs {
|
|
|
39006
39243
|
return Array.from(this.el.querySelectorAll('ion-tab'));
|
|
39007
39244
|
}
|
|
39008
39245
|
render() {
|
|
39009
|
-
return (hAsync(Host, { key: '
|
|
39246
|
+
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" })));
|
|
39010
39247
|
}
|
|
39011
39248
|
get el() { return getElement(this); }
|
|
39012
39249
|
static get style() { return tabsCss(); }
|
|
@@ -39046,9 +39283,9 @@ class Text {
|
|
|
39046
39283
|
}
|
|
39047
39284
|
render() {
|
|
39048
39285
|
const mode = getIonMode$1(this);
|
|
39049
|
-
return (hAsync(Host, { key: '
|
|
39286
|
+
return (hAsync(Host, { key: '41ed8da617ed0e07bbfe96e32a000e1c6503e24e', class: createColorClasses$1(this.color, {
|
|
39050
39287
|
[mode]: true,
|
|
39051
|
-
}) }, hAsync("slot", { key: '
|
|
39288
|
+
}) }, hAsync("slot", { key: 'db8de04a2493537b3037f276b03abd92dfa56847' })));
|
|
39052
39289
|
}
|
|
39053
39290
|
static get style() { return textCss(); }
|
|
39054
39291
|
static get cmpMeta() { return {
|
|
@@ -39509,7 +39746,7 @@ class Textarea {
|
|
|
39509
39746
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
39510
39747
|
*/
|
|
39511
39748
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
|
|
39512
|
-
return (hAsync(Host, { key: '
|
|
39749
|
+
return (hAsync(Host, { key: 'eca1dfed53189408f614661ef3902cdb73d5f5de', class: createColorClasses$1(this.color, {
|
|
39513
39750
|
[mode]: true,
|
|
39514
39751
|
'has-value': hasValue,
|
|
39515
39752
|
'has-focus': hasFocus,
|
|
@@ -39518,7 +39755,7 @@ class Textarea {
|
|
|
39518
39755
|
[`textarea-shape-${shape}`]: shape !== undefined,
|
|
39519
39756
|
[`textarea-label-placement-${labelPlacement}`]: true,
|
|
39520
39757
|
'textarea-disabled': disabled,
|
|
39521
|
-
}) }, hAsync("label", { key: '
|
|
39758
|
+
}) }, 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()));
|
|
39522
39759
|
}
|
|
39523
39760
|
get el() { return getElement(this); }
|
|
39524
39761
|
static get watchers() { return {
|
|
@@ -39587,7 +39824,7 @@ class Thumbnail {
|
|
|
39587
39824
|
registerInstance(this, hostRef);
|
|
39588
39825
|
}
|
|
39589
39826
|
render() {
|
|
39590
|
-
return (hAsync(Host, { key: '
|
|
39827
|
+
return (hAsync(Host, { key: '833e947c683b482a78f8f0df8c9a68e99478bbaa', class: getIonMode$1(this) }, hAsync("slot", { key: '6d1e9e686db88d91379f14121058dbf035d8ded2' })));
|
|
39591
39828
|
}
|
|
39592
39829
|
static get style() { return thumbnailCss(); }
|
|
39593
39830
|
static get cmpMeta() { return {
|
|
@@ -40447,9 +40684,9 @@ class Toast {
|
|
|
40447
40684
|
if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
|
|
40448
40685
|
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);
|
|
40449
40686
|
}
|
|
40450
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
40687
|
+
return (hAsync(Host, Object.assign({ key: '2acb2cd2e12ea0082986495929e4a596d4da2f38', tabindex: "-1" }, this.htmlAttributes, { style: {
|
|
40451
40688
|
zIndex: `${60000 + this.overlayIndex}`,
|
|
40452
|
-
}, 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: '
|
|
40689
|
+
}, 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')))));
|
|
40453
40690
|
}
|
|
40454
40691
|
get el() { return getElement(this); }
|
|
40455
40692
|
static get watchers() { return {
|
|
@@ -40767,7 +41004,7 @@ class Toggle {
|
|
|
40767
41004
|
const value = this.getValue();
|
|
40768
41005
|
const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
|
|
40769
41006
|
renderHiddenInput(true, el, name, checked ? value : '', disabled);
|
|
40770
|
-
return (hAsync(Host, { key: '
|
|
41007
|
+
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, {
|
|
40771
41008
|
[mode]: true,
|
|
40772
41009
|
'in-item': hostContext('ion-item', el),
|
|
40773
41010
|
'toggle-activated': activated,
|
|
@@ -40777,10 +41014,10 @@ class Toggle {
|
|
|
40777
41014
|
[`toggle-alignment-${alignment}`]: alignment !== undefined,
|
|
40778
41015
|
[`toggle-label-placement-${labelPlacement}`]: true,
|
|
40779
41016
|
[`toggle-${rtl}`]: true,
|
|
40780
|
-
}) }, hAsync("label", { key: '
|
|
41017
|
+
}) }, 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: {
|
|
40781
41018
|
'label-text-wrapper': true,
|
|
40782
41019
|
'label-text-wrapper-hidden': !hasLabel,
|
|
40783
|
-
}, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: '
|
|
41020
|
+
}, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: 'c480b96a0ddd926568f73291d71253d6f74438c7' }), this.renderHintText()), hAsync("div", { key: '96a2cbd1673e051a78f8b2b16535ecd3f0ed4339', class: "native-wrapper" }, this.renderToggleControl()))));
|
|
40784
41021
|
}
|
|
40785
41022
|
get el() { return getElement(this); }
|
|
40786
41023
|
static get watchers() { return {
|
|
@@ -40892,10 +41129,10 @@ class Toolbar {
|
|
|
40892
41129
|
this.childrenStyles.forEach((value) => {
|
|
40893
41130
|
Object.assign(childStyles, value);
|
|
40894
41131
|
});
|
|
40895
|
-
return (hAsync(Host, { key: '
|
|
41132
|
+
return (hAsync(Host, { key: '40bad6fa7e94262438da4bbe037dcf8a5fa2df22', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
|
|
40896
41133
|
[mode]: true,
|
|
40897
41134
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
40898
|
-
})) }, hAsync("div", { key: '
|
|
41135
|
+
})) }, 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" }))));
|
|
40899
41136
|
}
|
|
40900
41137
|
get el() { return getElement(this); }
|
|
40901
41138
|
static get style() { return {
|
|
@@ -40941,11 +41178,11 @@ class ToolbarTitle {
|
|
|
40941
41178
|
render() {
|
|
40942
41179
|
const mode = getIonMode$1(this);
|
|
40943
41180
|
const size = this.getSize();
|
|
40944
|
-
return (hAsync(Host, { key: '
|
|
41181
|
+
return (hAsync(Host, { key: 'd9317e8e66cb6112717f5a9c252658777efbd873', class: createColorClasses$1(this.color, {
|
|
40945
41182
|
[mode]: true,
|
|
40946
41183
|
[`title-${size}`]: true,
|
|
40947
41184
|
'title-rtl': document.dir === 'rtl',
|
|
40948
|
-
}) }, hAsync("div", { key: '
|
|
41185
|
+
}) }, hAsync("div", { key: 'a4d011d6d409bf006d8efe33667002edb109820a', class: "toolbar-title" }, hAsync("slot", { key: '4ca3303b957a0e5387f1e9058e5adb4c6275afcc' }))));
|
|
40949
41186
|
}
|
|
40950
41187
|
get el() { return getElement(this); }
|
|
40951
41188
|
static get watchers() { return {
|
|
@@ -41025,10 +41262,8 @@ registerComponents([
|
|
|
41025
41262
|
Nav,
|
|
41026
41263
|
NavLink,
|
|
41027
41264
|
Note,
|
|
41028
|
-
Picker$1,
|
|
41029
41265
|
Picker,
|
|
41030
41266
|
PickerColumn,
|
|
41031
|
-
PickerColumnCmp,
|
|
41032
41267
|
PickerColumnOption,
|
|
41033
41268
|
Popover,
|
|
41034
41269
|
ProgressBar,
|