@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.js
CHANGED
|
@@ -8041,7 +8041,7 @@ const focusElementInOverlay = (hostToFocus, overlay) => {
|
|
|
8041
8041
|
* Should NOT include: Toast
|
|
8042
8042
|
*/
|
|
8043
8043
|
const trapKeyboardFocus = (ev, doc) => {
|
|
8044
|
-
const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-
|
|
8044
|
+
const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover');
|
|
8045
8045
|
const target = ev.target;
|
|
8046
8046
|
/**
|
|
8047
8047
|
* If no active overlay, ignore this event.
|
|
@@ -8275,7 +8275,7 @@ const dismissOverlay = (doc, data, role, overlayTag, id) => {
|
|
|
8275
8275
|
*/
|
|
8276
8276
|
const getOverlays = (doc, selector) => {
|
|
8277
8277
|
if (selector === undefined) {
|
|
8278
|
-
selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-
|
|
8278
|
+
selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover,ion-toast';
|
|
8279
8279
|
}
|
|
8280
8280
|
return Array.from(doc.querySelectorAll(selector)).filter((c) => c.overlayIndex > 0);
|
|
8281
8281
|
};
|
|
@@ -8337,6 +8337,29 @@ const setRootAriaHidden = (hidden = false) => {
|
|
|
8337
8337
|
viewContainer.removeAttribute('aria-hidden');
|
|
8338
8338
|
}
|
|
8339
8339
|
};
|
|
8340
|
+
/**
|
|
8341
|
+
* Cleans up root `aria-hidden` and `backdrop-no-scroll` when
|
|
8342
|
+
* an overlay is removed from the DOM without going through
|
|
8343
|
+
* the `dismiss()` flow (e.g., when a framework unmounts the
|
|
8344
|
+
* overlay during a route change).
|
|
8345
|
+
*
|
|
8346
|
+
* Should be called from an overlay's `disconnectedCallback`
|
|
8347
|
+
* when the overlay was still presented at the time of removal.
|
|
8348
|
+
*/
|
|
8349
|
+
const cleanupRootFocusTrapAccessibility = () => {
|
|
8350
|
+
if (typeof document === 'undefined') {
|
|
8351
|
+
return;
|
|
8352
|
+
}
|
|
8353
|
+
const remainingOverlays = getPresentedOverlays(document);
|
|
8354
|
+
const hasRemainingLocking = remainingOverlays.some((o) => {
|
|
8355
|
+
const el = o;
|
|
8356
|
+
return el.tagName !== 'ION-TOAST' && el.focusTrap !== false && isBackdropAlwaysBlocking(el);
|
|
8357
|
+
});
|
|
8358
|
+
if (!hasRemainingLocking) {
|
|
8359
|
+
setRootAriaHidden(false);
|
|
8360
|
+
document.body.classList.remove(BACKDROP_NO_SCROLL);
|
|
8361
|
+
}
|
|
8362
|
+
};
|
|
8340
8363
|
const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts) => {
|
|
8341
8364
|
var _a, _b;
|
|
8342
8365
|
if (overlay.presented) {
|
|
@@ -8402,15 +8425,7 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
|
|
|
8402
8425
|
* to the overlay container.
|
|
8403
8426
|
*/
|
|
8404
8427
|
if (overlay.keyboardClose && (document.activeElement === null || !overlay.el.contains(document.activeElement))) {
|
|
8405
|
-
|
|
8406
|
-
* Some overlays (e.g. modal) put the dialog role and label on the
|
|
8407
|
-
* `.ion-overlay-wrapper` rather than the host. Screen readers like
|
|
8408
|
-
* TalkBack need focus to land there, so focus the wrapper when it is
|
|
8409
|
-
* focusable (has a `tabindex`); otherwise focus the host as before.
|
|
8410
|
-
*/
|
|
8411
|
-
const overlayWrapper = getElementRoot(overlay.el).querySelector('.ion-overlay-wrapper');
|
|
8412
|
-
const focusTarget = (overlayWrapper === null || overlayWrapper === void 0 ? void 0 : overlayWrapper.hasAttribute('tabindex')) ? overlayWrapper : overlay.el;
|
|
8413
|
-
focusTarget.focus({ preventScroll: true });
|
|
8428
|
+
overlay.el.focus();
|
|
8414
8429
|
}
|
|
8415
8430
|
/**
|
|
8416
8431
|
* If this overlay was previously dismissed without being
|
|
@@ -8746,6 +8761,539 @@ const createTriggerController = () => {
|
|
|
8746
8761
|
};
|
|
8747
8762
|
const FOCUS_TRAP_DISABLE_CLASS = 'ion-disable-focus-trap';
|
|
8748
8763
|
|
|
8764
|
+
/**
|
|
8765
|
+
* Sanitize an untrusted HTML string.
|
|
8766
|
+
*
|
|
8767
|
+
* Parses the string into a detached DOM, removes blocked tags, strips
|
|
8768
|
+
* attributes outside the narrow `domStringAllowedAttributes` list (refer
|
|
8769
|
+
* `sanitizeElement`), and scrubs script-scheme URLs. Returns the sanitized
|
|
8770
|
+
* HTML string.
|
|
8771
|
+
*
|
|
8772
|
+
* Use this when you have an HTML string from an unknown source and need to
|
|
8773
|
+
* render it via `innerHTML`. Use `sanitizeDOMTree` instead when you already
|
|
8774
|
+
* have a DOM tree and want to sanitize it in place without a string round
|
|
8775
|
+
* trip. The two apply the same dangerous-vector scrubbing but different
|
|
8776
|
+
* attribute allowlists: this path stays narrow so existing consumers
|
|
8777
|
+
* (toast, loading, alert message, etc.) are unaffected, while
|
|
8778
|
+
* `sanitizeDOMTree` uses the wider rich-content allowlist.
|
|
8779
|
+
*
|
|
8780
|
+
* @param untrustedString - The HTML string to sanitize. Pass an
|
|
8781
|
+
* `IonicSafeString` to bypass sanitization, or `undefined` to short-circuit.
|
|
8782
|
+
* @returns The sanitized HTML string, or `undefined` if the input was
|
|
8783
|
+
* `undefined`. Returns `''` if sanitization fails or the input contains
|
|
8784
|
+
* an inline `onload=` handler.
|
|
8785
|
+
*/
|
|
8786
|
+
const sanitizeDOMString = (untrustedString) => {
|
|
8787
|
+
try {
|
|
8788
|
+
if (untrustedString instanceof IonicSafeString) {
|
|
8789
|
+
return untrustedString.value;
|
|
8790
|
+
}
|
|
8791
|
+
if (!isSanitizerEnabled() || typeof untrustedString !== 'string' || untrustedString === '') {
|
|
8792
|
+
return untrustedString;
|
|
8793
|
+
}
|
|
8794
|
+
/**
|
|
8795
|
+
* onload is fired when appending to a document
|
|
8796
|
+
* fragment in Chrome. If a string
|
|
8797
|
+
* contains onload then we should not
|
|
8798
|
+
* attempt to add this to the fragment.
|
|
8799
|
+
*/
|
|
8800
|
+
if (untrustedString.includes('onload=')) {
|
|
8801
|
+
return '';
|
|
8802
|
+
}
|
|
8803
|
+
/**
|
|
8804
|
+
* Create a document fragment
|
|
8805
|
+
* separate from the main DOM,
|
|
8806
|
+
* create a div to do our work in
|
|
8807
|
+
*/
|
|
8808
|
+
const documentFragment = document.createDocumentFragment();
|
|
8809
|
+
const workingDiv = document.createElement('div');
|
|
8810
|
+
documentFragment.appendChild(workingDiv);
|
|
8811
|
+
workingDiv.innerHTML = untrustedString;
|
|
8812
|
+
/**
|
|
8813
|
+
* Remove any elements
|
|
8814
|
+
* that are blocked
|
|
8815
|
+
*/
|
|
8816
|
+
blockedTags.forEach((blockedTag) => {
|
|
8817
|
+
const getElementsToRemove = documentFragment.querySelectorAll(blockedTag);
|
|
8818
|
+
for (let elementIndex = getElementsToRemove.length - 1; elementIndex >= 0; elementIndex--) {
|
|
8819
|
+
const element = getElementsToRemove[elementIndex];
|
|
8820
|
+
if (element.parentNode) {
|
|
8821
|
+
element.parentNode.removeChild(element);
|
|
8822
|
+
}
|
|
8823
|
+
else {
|
|
8824
|
+
documentFragment.removeChild(element);
|
|
8825
|
+
}
|
|
8826
|
+
/**
|
|
8827
|
+
* We still need to sanitize
|
|
8828
|
+
* the children of this element
|
|
8829
|
+
* as they are left behind
|
|
8830
|
+
*/
|
|
8831
|
+
const childElements = getElementChildren(element);
|
|
8832
|
+
/* eslint-disable-next-line */
|
|
8833
|
+
for (let childIndex = 0; childIndex < childElements.length; childIndex++) {
|
|
8834
|
+
sanitizeElement(childElements[childIndex], domStringAllowedAttributes);
|
|
8835
|
+
}
|
|
8836
|
+
}
|
|
8837
|
+
});
|
|
8838
|
+
/**
|
|
8839
|
+
* Go through remaining elements and remove
|
|
8840
|
+
* non-allowed attribs
|
|
8841
|
+
*/
|
|
8842
|
+
// IE does not support .children on document fragments, only .childNodes
|
|
8843
|
+
const dfChildren = getElementChildren(documentFragment);
|
|
8844
|
+
/* eslint-disable-next-line */
|
|
8845
|
+
for (let childIndex = 0; childIndex < dfChildren.length; childIndex++) {
|
|
8846
|
+
sanitizeElement(dfChildren[childIndex], domStringAllowedAttributes);
|
|
8847
|
+
}
|
|
8848
|
+
// Append document fragment to div
|
|
8849
|
+
const fragmentDiv = document.createElement('div');
|
|
8850
|
+
fragmentDiv.appendChild(documentFragment);
|
|
8851
|
+
// First child is always the div we did our work in
|
|
8852
|
+
const getInnerDiv = fragmentDiv.querySelector('div');
|
|
8853
|
+
return getInnerDiv !== null ? getInnerDiv.innerHTML : fragmentDiv.innerHTML;
|
|
8854
|
+
}
|
|
8855
|
+
catch (err) {
|
|
8856
|
+
printIonError('sanitizeDOMString', err);
|
|
8857
|
+
return '';
|
|
8858
|
+
}
|
|
8859
|
+
};
|
|
8860
|
+
/**
|
|
8861
|
+
* Sanitize an entire trusted DOM tree in place.
|
|
8862
|
+
*
|
|
8863
|
+
* Removes blocked tags (`script`, `iframe`, etc.) from the subtree and
|
|
8864
|
+
* then sanitizes attributes on every remaining element using the wider
|
|
8865
|
+
* `richContentAllowedAttributes` allowlist (refer `sanitizeElement`).
|
|
8866
|
+
* Component presentational attributes (`size`, `color`, `shape`, inline
|
|
8867
|
+
* SVG, `aria-*`, `data-*`) are preserved; `style`, event handlers (`on*`),
|
|
8868
|
+
* form/navigation-hijack attributes, script-scheme URLs, and non-image
|
|
8869
|
+
* `data:` URLs are stripped.
|
|
8870
|
+
*
|
|
8871
|
+
* Use this when you have a DOM tree the developer controls (e.g.
|
|
8872
|
+
* cloned slot content from a component) and you need to render it
|
|
8873
|
+
* elsewhere safely.
|
|
8874
|
+
*
|
|
8875
|
+
* @param root - The root element whose subtree will be sanitized in
|
|
8876
|
+
* place. No-op when the sanitizer is disabled via `Ionic.config`.
|
|
8877
|
+
*/
|
|
8878
|
+
const sanitizeDOMTree = (root) => {
|
|
8879
|
+
if (!isSanitizerEnabled()) {
|
|
8880
|
+
return;
|
|
8881
|
+
}
|
|
8882
|
+
blockedTags.forEach((tag) => {
|
|
8883
|
+
const matches = root.querySelectorAll(tag);
|
|
8884
|
+
for (let i = matches.length - 1; i >= 0; i--) {
|
|
8885
|
+
matches[i].remove();
|
|
8886
|
+
}
|
|
8887
|
+
});
|
|
8888
|
+
sanitizeElement(root, richContentAllowedAttributes, richContentAllowedAttributePrefixes);
|
|
8889
|
+
};
|
|
8890
|
+
/**
|
|
8891
|
+
* Clean up current element based on allowed attributes
|
|
8892
|
+
* and then recursively dig down into any child elements to
|
|
8893
|
+
* clean those up as well
|
|
8894
|
+
*/
|
|
8895
|
+
// TODO(FW-2832): type (using Element triggers other type errors as well)
|
|
8896
|
+
const sanitizeElement = (element, allowedAttributes, allowedAttributePrefixes = []) => {
|
|
8897
|
+
// IE uses childNodes, so ignore nodes that are not elements
|
|
8898
|
+
if (element.nodeType && element.nodeType !== 1) {
|
|
8899
|
+
return;
|
|
8900
|
+
}
|
|
8901
|
+
/**
|
|
8902
|
+
* If attributes is not a NamedNodeMap
|
|
8903
|
+
* then we should remove the element entirely.
|
|
8904
|
+
* This helps avoid DOM Clobbering attacks where
|
|
8905
|
+
* attributes is overridden.
|
|
8906
|
+
*/
|
|
8907
|
+
if (typeof NamedNodeMap !== 'undefined' && !(element.attributes instanceof NamedNodeMap)) {
|
|
8908
|
+
element.remove();
|
|
8909
|
+
return;
|
|
8910
|
+
}
|
|
8911
|
+
/**
|
|
8912
|
+
* Always strip `style` (CSS injection, `background:url()` beaconing, UI
|
|
8913
|
+
* spoofing). It is never on the allowlist, but it is removed explicitly
|
|
8914
|
+
* here because some engines (e.g. jsdom) don't enumerate the CSSOM-backed
|
|
8915
|
+
* `style` attribute in `element.attributes`, which would let the loop
|
|
8916
|
+
* below skip over it.
|
|
8917
|
+
*/
|
|
8918
|
+
element.removeAttribute('style');
|
|
8919
|
+
for (let i = element.attributes.length - 1; i >= 0; i--) {
|
|
8920
|
+
const attribute = element.attributes.item(i);
|
|
8921
|
+
const attributeName = attribute.name;
|
|
8922
|
+
const lowerName = attributeName.toLowerCase();
|
|
8923
|
+
/**
|
|
8924
|
+
* Remove any attribute that is not on the allowlist. This drops event
|
|
8925
|
+
* handlers (`on*`), `style`, the form/navigation-hijack attributes
|
|
8926
|
+
* (`formaction`, `action`, `target`), namespaced attributes like
|
|
8927
|
+
* `xlink:href`, and anything else not explicitly known to be safe.
|
|
8928
|
+
*/
|
|
8929
|
+
if (!isAttributeAllowed(lowerName, allowedAttributes, allowedAttributePrefixes)) {
|
|
8930
|
+
element.removeAttribute(attributeName);
|
|
8931
|
+
continue;
|
|
8932
|
+
}
|
|
8933
|
+
// clean up any allowed attribs
|
|
8934
|
+
// that attempt to do any JS funny-business
|
|
8935
|
+
const attributeValue = attribute.value;
|
|
8936
|
+
if (attributeValue == null) {
|
|
8937
|
+
continue;
|
|
8938
|
+
}
|
|
8939
|
+
/**
|
|
8940
|
+
* Scrub dangerous schemes from the value. The value is normalized first
|
|
8941
|
+
* (whitespace and ASCII control characters removed) so entity-obfuscated
|
|
8942
|
+
* payloads such as `java	script:`, which the parser decodes to
|
|
8943
|
+
* `java\tscript:`, are still caught. Normalizing the value also covers
|
|
8944
|
+
* namespaced attributes, where the previous `element[attributeName]`
|
|
8945
|
+
* property reflection returned `undefined` and let them slip through.
|
|
8946
|
+
*/
|
|
8947
|
+
const normalizedValue = attributeValue.replace(controlCharactersAndWhitespace, '').toLowerCase();
|
|
8948
|
+
// Script schemes are never allowed, on any attribute.
|
|
8949
|
+
if (normalizedValue.includes('javascript:') || normalizedValue.includes('vbscript:')) {
|
|
8950
|
+
element.removeAttribute(attributeName);
|
|
8951
|
+
continue;
|
|
8952
|
+
}
|
|
8953
|
+
/**
|
|
8954
|
+
* For URL-bearing attributes, allow `data:` URIs only for raster
|
|
8955
|
+
* images. Document-bearing types (`text/html`, `image/svg+xml`,
|
|
8956
|
+
* `application/*`, etc.) can carry markup or script when navigated to
|
|
8957
|
+
* or rendered, so they are stripped, while safe image types are kept so
|
|
8958
|
+
* inline images keep working.
|
|
8959
|
+
*/
|
|
8960
|
+
if (urlAttributes.includes(lowerName) &&
|
|
8961
|
+
normalizedValue.startsWith('data:') &&
|
|
8962
|
+
!safeDataImageUri.test(normalizedValue)) {
|
|
8963
|
+
element.removeAttribute(attributeName);
|
|
8964
|
+
}
|
|
8965
|
+
}
|
|
8966
|
+
/**
|
|
8967
|
+
* Sanitize any nested children
|
|
8968
|
+
*/
|
|
8969
|
+
const childElements = getElementChildren(element);
|
|
8970
|
+
/* eslint-disable-next-line */
|
|
8971
|
+
for (let i = 0; i < childElements.length; i++) {
|
|
8972
|
+
sanitizeElement(childElements[i], allowedAttributes, allowedAttributePrefixes);
|
|
8973
|
+
}
|
|
8974
|
+
};
|
|
8975
|
+
/**
|
|
8976
|
+
* IE doesn't always support .children
|
|
8977
|
+
* so we revert to .childNodes instead
|
|
8978
|
+
*/
|
|
8979
|
+
// TODO(FW-2832): type
|
|
8980
|
+
const getElementChildren = (el) => {
|
|
8981
|
+
return el.children != null ? el.children : el.childNodes;
|
|
8982
|
+
};
|
|
8983
|
+
const isSanitizerEnabled = () => {
|
|
8984
|
+
var _a;
|
|
8985
|
+
const win = window;
|
|
8986
|
+
const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config;
|
|
8987
|
+
if (config) {
|
|
8988
|
+
if (config.get) {
|
|
8989
|
+
return config.get('sanitizerEnabled', true);
|
|
8990
|
+
}
|
|
8991
|
+
else {
|
|
8992
|
+
return config.sanitizerEnabled === true || config.sanitizerEnabled === undefined;
|
|
8993
|
+
}
|
|
8994
|
+
}
|
|
8995
|
+
return true;
|
|
8996
|
+
};
|
|
8997
|
+
/**
|
|
8998
|
+
* Mirror known custom-element DOM properties onto attributes so they
|
|
8999
|
+
* survive `cloneNode`. Call this on a DOM subtree before cloning it for
|
|
9000
|
+
* rendering elsewhere (e.g. cloning slotted option content into an
|
|
9001
|
+
* overlay).
|
|
9002
|
+
*
|
|
9003
|
+
* Only sets the attribute when the property holds a non-empty string
|
|
9004
|
+
* and the attribute isn't already present, so existing attributes
|
|
9005
|
+
* take precedence.
|
|
9006
|
+
*
|
|
9007
|
+
* @param root - The root element whose subtree (and itself) will be
|
|
9008
|
+
* inspected.
|
|
9009
|
+
*/
|
|
9010
|
+
const reflectPropertiesToAttributes = (root) => {
|
|
9011
|
+
const candidates = [];
|
|
9012
|
+
if (root.tagName in elementPropsToReflect) {
|
|
9013
|
+
candidates.push(root);
|
|
9014
|
+
}
|
|
9015
|
+
for (const tagName of Object.keys(elementPropsToReflect)) {
|
|
9016
|
+
candidates.push(...Array.from(root.querySelectorAll(tagName.toLowerCase())));
|
|
9017
|
+
}
|
|
9018
|
+
for (const el of candidates) {
|
|
9019
|
+
if (!(el.tagName in elementPropsToReflect)) {
|
|
9020
|
+
continue;
|
|
9021
|
+
}
|
|
9022
|
+
const props = elementPropsToReflect[el.tagName];
|
|
9023
|
+
for (const prop of props) {
|
|
9024
|
+
const value = el[prop];
|
|
9025
|
+
if (typeof value === 'string' && value.length > 0 && !el.hasAttribute(prop)) {
|
|
9026
|
+
el.setAttribute(prop, value);
|
|
9027
|
+
}
|
|
9028
|
+
}
|
|
9029
|
+
}
|
|
9030
|
+
};
|
|
9031
|
+
/**
|
|
9032
|
+
* Attribute allowlist for `sanitizeDOMString`. Intentionally narrow: this
|
|
9033
|
+
* path sanitizes developer HTML strings rendered via `innerHTML` by
|
|
9034
|
+
* `ion-toast`, `ion-loading`, the `ion-alert` message,
|
|
9035
|
+
* `ion-refresher-content`, and `ion-infinite-scroll-content`, so the list
|
|
9036
|
+
* is kept to the minimum those have always needed. Broadening it here would
|
|
9037
|
+
* change sanitization output for all of those consumers, so the wider
|
|
9038
|
+
* rich-content allowlist below is deliberately scoped to `sanitizeDOMTree`
|
|
9039
|
+
* instead.
|
|
9040
|
+
*/
|
|
9041
|
+
const domStringAllowedAttributes = ['class', 'id', 'href', 'src', 'name', 'slot'];
|
|
9042
|
+
/**
|
|
9043
|
+
* Attribute allowlist for `sanitizeDOMTree` (the select rich-content path).
|
|
9044
|
+
* Covers global HTML attributes, the Ionic component presentational props
|
|
9045
|
+
* that cloned rich content (e.g. `ion-select-option` markup) relies on, and
|
|
9046
|
+
* the inert SVG presentation attributes used by inline icons.
|
|
9047
|
+
*
|
|
9048
|
+
* `aria-*` and `data-*` are allowed separately by prefix (refer
|
|
9049
|
+
* `richContentAllowedAttributePrefixes`) since they are inert and not worth
|
|
9050
|
+
* enumerating. URL-bearing names (`href`, `src`) are allowed here, but
|
|
9051
|
+
* their values are still scrubbed for script schemes in `sanitizeElement`.
|
|
9052
|
+
*
|
|
9053
|
+
* Notably absent: `style`, event handlers (`on*`), and the
|
|
9054
|
+
* form/navigation-hijack attributes (`formaction`, `action`, `target`),
|
|
9055
|
+
* which are therefore stripped.
|
|
9056
|
+
*/
|
|
9057
|
+
const richContentAllowedAttributes = [
|
|
9058
|
+
// Global / structural
|
|
9059
|
+
'class',
|
|
9060
|
+
'id',
|
|
9061
|
+
'slot',
|
|
9062
|
+
'name',
|
|
9063
|
+
'title',
|
|
9064
|
+
'alt',
|
|
9065
|
+
'lang',
|
|
9066
|
+
'dir',
|
|
9067
|
+
'role',
|
|
9068
|
+
'type',
|
|
9069
|
+
'value',
|
|
9070
|
+
'disabled',
|
|
9071
|
+
'width',
|
|
9072
|
+
'height',
|
|
9073
|
+
'href',
|
|
9074
|
+
'src',
|
|
9075
|
+
// Ionic component presentational props
|
|
9076
|
+
'color',
|
|
9077
|
+
'size',
|
|
9078
|
+
'shape',
|
|
9079
|
+
'fill',
|
|
9080
|
+
'expand',
|
|
9081
|
+
'mode',
|
|
9082
|
+
'theme',
|
|
9083
|
+
'icon',
|
|
9084
|
+
'label',
|
|
9085
|
+
'label-placement',
|
|
9086
|
+
'justify',
|
|
9087
|
+
'inset',
|
|
9088
|
+
'lines',
|
|
9089
|
+
'ios',
|
|
9090
|
+
'md',
|
|
9091
|
+
// SVG presentation attributes (compared lowercased, e.g. `viewBox`)
|
|
9092
|
+
'xmlns',
|
|
9093
|
+
'viewbox',
|
|
9094
|
+
'preserveaspectratio',
|
|
9095
|
+
'stroke',
|
|
9096
|
+
'stroke-width',
|
|
9097
|
+
'stroke-linecap',
|
|
9098
|
+
'stroke-linejoin',
|
|
9099
|
+
'stroke-opacity',
|
|
9100
|
+
'stroke-dasharray',
|
|
9101
|
+
'fill-rule',
|
|
9102
|
+
'fill-opacity',
|
|
9103
|
+
'clip-rule',
|
|
9104
|
+
'd',
|
|
9105
|
+
'points',
|
|
9106
|
+
'cx',
|
|
9107
|
+
'cy',
|
|
9108
|
+
'r',
|
|
9109
|
+
'rx',
|
|
9110
|
+
'ry',
|
|
9111
|
+
'x',
|
|
9112
|
+
'y',
|
|
9113
|
+
'x1',
|
|
9114
|
+
'y1',
|
|
9115
|
+
'x2',
|
|
9116
|
+
'y2',
|
|
9117
|
+
'transform',
|
|
9118
|
+
'opacity',
|
|
9119
|
+
];
|
|
9120
|
+
/**
|
|
9121
|
+
* Attribute-name prefixes that are always safe to keep in the rich-content
|
|
9122
|
+
* path. `aria-*` and `data-*` attributes cannot execute script or load
|
|
9123
|
+
* resources, so they are allowed wholesale rather than enumerated by name.
|
|
9124
|
+
*/
|
|
9125
|
+
const richContentAllowedAttributePrefixes = ['aria-', 'data-'];
|
|
9126
|
+
/**
|
|
9127
|
+
* Whether an attribute name (already lowercased) is safe to keep, by exact
|
|
9128
|
+
* match or by an allowed prefix.
|
|
9129
|
+
*/
|
|
9130
|
+
const isAttributeAllowed = (lowerName, allowedAttributes, allowedAttributePrefixes) => {
|
|
9131
|
+
if (allowedAttributes.includes(lowerName)) {
|
|
9132
|
+
return true;
|
|
9133
|
+
}
|
|
9134
|
+
return allowedAttributePrefixes.some((prefix) => lowerName.startsWith(prefix));
|
|
9135
|
+
};
|
|
9136
|
+
/**
|
|
9137
|
+
* Matches ASCII control characters and whitespace (including the
|
|
9138
|
+
* non-breaking space). Used to normalize attribute values before matching
|
|
9139
|
+
* a URL scheme so entity-obfuscated payloads such as `java	script:`
|
|
9140
|
+
* (decoded by the parser to `java\tscript:`) can't smuggle a scheme past
|
|
9141
|
+
* the check.
|
|
9142
|
+
*/
|
|
9143
|
+
// eslint-disable-next-line no-control-regex -- matching control characters is the point
|
|
9144
|
+
const controlCharactersAndWhitespace = /[\u0000-\u0020\u007f-\u00a0]/g;
|
|
9145
|
+
/**
|
|
9146
|
+
* Attributes whose values are URLs. Their values are scheme-checked in
|
|
9147
|
+
* `sanitizeElement` (e.g. `data:` filtering) beyond the script-scheme scrub
|
|
9148
|
+
* applied to every attribute.
|
|
9149
|
+
*/
|
|
9150
|
+
const urlAttributes = ['href', 'src'];
|
|
9151
|
+
/**
|
|
9152
|
+
* Matches a `data:` URI for a raster image type that cannot carry script.
|
|
9153
|
+
* `image/svg+xml` is deliberately excluded (SVG can execute script), as are
|
|
9154
|
+
* document types like `text/html` and `application/*`. The value is already
|
|
9155
|
+
* lowercased and whitespace-stripped before this is tested.
|
|
9156
|
+
*/
|
|
9157
|
+
const safeDataImageUri = /^data:image\/(?:png|jpe?g|gif|webp|bmp|avif|x-icon|vnd\.microsoft\.icon)[;,]/;
|
|
9158
|
+
/**
|
|
9159
|
+
* Tags removed entirely (with their subtree) before attribute sanitization.
|
|
9160
|
+
* Exported so tests can assert the set without hardcoding it.
|
|
9161
|
+
*/
|
|
9162
|
+
const blockedTags = ['script', 'style', 'iframe', 'meta', 'link', 'object', 'embed', 'base'];
|
|
9163
|
+
/**
|
|
9164
|
+
* Properties on custom elements that frameworks (Vue, Angular) often
|
|
9165
|
+
* set as DOM properties rather than attributes. `cloneNode` only copies
|
|
9166
|
+
* attributes, so these values are lost when slotted content is cloned
|
|
9167
|
+
* into an overlay. For each known custom element, we mirror the listed
|
|
9168
|
+
* properties onto attributes so the cloned copy still has the data it
|
|
9169
|
+
* needs to render.
|
|
9170
|
+
*
|
|
9171
|
+
* Keyed by uppercased tagName so the lookup matches `Element.tagName`.
|
|
9172
|
+
*/
|
|
9173
|
+
const elementPropsToReflect = {
|
|
9174
|
+
'ION-ICON': ['icon', 'name', 'src', 'ios', 'md'],
|
|
9175
|
+
};
|
|
9176
|
+
class IonicSafeString {
|
|
9177
|
+
constructor(value) {
|
|
9178
|
+
this.value = value;
|
|
9179
|
+
}
|
|
9180
|
+
}
|
|
9181
|
+
|
|
9182
|
+
/**
|
|
9183
|
+
* Converts a DOM node into a Stencil VNode (or text string) so the
|
|
9184
|
+
* resulting tree is rendered through the component's normal render
|
|
9185
|
+
* path. Rendering through Stencil ensures that scoped CSS classes
|
|
9186
|
+
* (e.g. `sc-ion-action-sheet-ionic`) are applied to every element.
|
|
9187
|
+
*
|
|
9188
|
+
* Highly recommended to pre-sanitize the source DOM (see
|
|
9189
|
+
* `getOptionContent` in select.tsx). This function performs pure
|
|
9190
|
+
* structural conversion — no security filtering.
|
|
9191
|
+
*
|
|
9192
|
+
* Preserves attributes only — properties set imperatively on the source
|
|
9193
|
+
* element (e.g. `input.value` after a user types) won't carry through.
|
|
9194
|
+
* In practice this isn't a concern: interactive controls shouldn't
|
|
9195
|
+
* appear in select-option rich content since they'd nest inside the
|
|
9196
|
+
* overlay's button/radio/checkbox wrapper, which is invalid HTML and
|
|
9197
|
+
* an accessibility issue.
|
|
9198
|
+
*
|
|
9199
|
+
* @param node - The DOM node to convert. Text nodes become strings,
|
|
9200
|
+
* element nodes become VNodes, and any other node types are skipped.
|
|
9201
|
+
* @param keyPrefix - String prefix used to build a stable VNode key,
|
|
9202
|
+
* so Stencil's diff can preserve elements across re-renders.
|
|
9203
|
+
* @param index - Position of this node among its siblings. Combined
|
|
9204
|
+
* with `keyPrefix` to form the final unique key.
|
|
9205
|
+
* @returns The converted VNode, a text string, or `null` if the node
|
|
9206
|
+
* type isn't supported.
|
|
9207
|
+
*
|
|
9208
|
+
* @internal Exported only so it can be unit tested; not part of the
|
|
9209
|
+
* public API.
|
|
9210
|
+
*/
|
|
9211
|
+
const cloneToVNode = (node, keyPrefix, index) => {
|
|
9212
|
+
var _a;
|
|
9213
|
+
if (node.nodeType === Node.TEXT_NODE) {
|
|
9214
|
+
return (_a = node.textContent) !== null && _a !== void 0 ? _a : '';
|
|
9215
|
+
}
|
|
9216
|
+
if (node.nodeType !== Node.ELEMENT_NODE) {
|
|
9217
|
+
return null;
|
|
9218
|
+
}
|
|
9219
|
+
const el = node;
|
|
9220
|
+
const tag = el.tagName.toLowerCase();
|
|
9221
|
+
const key = `${keyPrefix}-${index}`;
|
|
9222
|
+
const attrs = { key };
|
|
9223
|
+
for (let i = 0; i < el.attributes.length; i++) {
|
|
9224
|
+
const attr = el.attributes.item(i);
|
|
9225
|
+
attrs[attr.name] = attr.value;
|
|
9226
|
+
}
|
|
9227
|
+
const children = Array.from(el.childNodes)
|
|
9228
|
+
.map((child, i) => cloneToVNode(child, key, i))
|
|
9229
|
+
.filter((c) => c !== null);
|
|
9230
|
+
return hAsync(tag, attrs, children);
|
|
9231
|
+
};
|
|
9232
|
+
/**
|
|
9233
|
+
* Renders cloned DOM content as Stencil JSX. Walking the source DOM
|
|
9234
|
+
* into VNodes (rather than injecting it via innerHTML) keeps the
|
|
9235
|
+
* content inside Stencil's render path, so scoped CSS classes are
|
|
9236
|
+
* applied automatically and component attributes like `size` or
|
|
9237
|
+
* `color` survive intact.
|
|
9238
|
+
*
|
|
9239
|
+
* Span elements should be used when this content renders within buttons,
|
|
9240
|
+
* depending on the select interface. Buttons can only have phrasing
|
|
9241
|
+
* content to prevent accessibility issues.
|
|
9242
|
+
*
|
|
9243
|
+
* @param id - Unique identifier for generating stable virtual DOM keys.
|
|
9244
|
+
* @param content - The HTMLElement container whose child nodes will be cloned.
|
|
9245
|
+
* @param className - CSS class applied to the wrapper element.
|
|
9246
|
+
* @param useSpan - Whether to use a span element instead of a div for the wrapper.
|
|
9247
|
+
*/
|
|
9248
|
+
const renderClonedContent = (id, content, className, useSpan = false) => {
|
|
9249
|
+
const Tag = useSpan ? 'span' : 'div';
|
|
9250
|
+
const keyPrefix = `${className}-${id}`;
|
|
9251
|
+
/**
|
|
9252
|
+
* Do not remove. This is the only sanitization pass for callers that pass
|
|
9253
|
+
* an `HTMLElement` straight to `renderOptionLabel` (e.g. vanilla JS)
|
|
9254
|
+
* without going through `getOptionContent`, which sanitizes upstream.
|
|
9255
|
+
* `cloneToVNode` does pure structural conversion and no security
|
|
9256
|
+
* filtering, so dropping this call would reopen an XSS hole on the
|
|
9257
|
+
* direct `HTMLElement` path.
|
|
9258
|
+
*/
|
|
9259
|
+
sanitizeDOMTree(content);
|
|
9260
|
+
return (hAsync(Tag, { class: className, key: keyPrefix }, Array.from(content.childNodes).map((child, i) => cloneToVNode(child, keyPrefix, i))));
|
|
9261
|
+
};
|
|
9262
|
+
/**
|
|
9263
|
+
* Renders the label content for a select option within an overlay
|
|
9264
|
+
* interface based on the presence of rich content.
|
|
9265
|
+
*
|
|
9266
|
+
* Span elements should be used when this content renders within buttons,
|
|
9267
|
+
* depending on the select interface. Buttons can only have phrasing
|
|
9268
|
+
* content to prevent accessibility issues.
|
|
9269
|
+
*
|
|
9270
|
+
* @param option - The content option data containing label, slots,
|
|
9271
|
+
* and description.
|
|
9272
|
+
* @param className - The base CSS class for the label element.
|
|
9273
|
+
* @param useSpan - Whether to use a span element instead of a div for the label.
|
|
9274
|
+
*/
|
|
9275
|
+
const renderOptionLabel = (option, className, useSpan = false) => {
|
|
9276
|
+
const { id, label, startContent, endContent, description } = option;
|
|
9277
|
+
const hasRichContent = !!startContent || !!endContent || !!description;
|
|
9278
|
+
const Tag = useSpan ? 'span' : 'div';
|
|
9279
|
+
// Render simple string label if there is no rich content to display
|
|
9280
|
+
if (!hasRichContent && (typeof label === 'string' || !label)) {
|
|
9281
|
+
return (hAsync(Tag, { class: className, key: `${className}-${id}` }, label));
|
|
9282
|
+
}
|
|
9283
|
+
// Render the main label
|
|
9284
|
+
const labelEl = typeof label === 'string' || !label ? (
|
|
9285
|
+
// Label is a simple string or undefined
|
|
9286
|
+
hAsync(Tag, { key: `${className}-label-${id}` }, label)) : (
|
|
9287
|
+
// Label is an HTMLElement with potential rich content
|
|
9288
|
+
renderClonedContent(id, label, `${className}-text`, useSpan));
|
|
9289
|
+
// No rich content, render just the label
|
|
9290
|
+
if (!hasRichContent) {
|
|
9291
|
+
return (hAsync(Tag, { class: className, key: `${className}-${id}` }, labelEl));
|
|
9292
|
+
}
|
|
9293
|
+
// Render label with rich content (start, end, description)
|
|
9294
|
+
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)));
|
|
9295
|
+
};
|
|
9296
|
+
|
|
8749
9297
|
const hostContext = (selector, el) => {
|
|
8750
9298
|
return el.closest(selector) !== null;
|
|
8751
9299
|
};
|
|
@@ -9601,7 +10149,7 @@ const createAnimation = (animationId) => {
|
|
|
9601
10149
|
/**
|
|
9602
10150
|
* iOS Action Sheet Enter Animation
|
|
9603
10151
|
*/
|
|
9604
|
-
const iosEnterAnimation$
|
|
10152
|
+
const iosEnterAnimation$5 = (baseEl) => {
|
|
9605
10153
|
const baseAnimation = createAnimation();
|
|
9606
10154
|
const backdropAnimation = createAnimation();
|
|
9607
10155
|
const wrapperAnimation = createAnimation();
|
|
@@ -9625,7 +10173,7 @@ const iosEnterAnimation$6 = (baseEl) => {
|
|
|
9625
10173
|
/**
|
|
9626
10174
|
* iOS Action Sheet Leave Animation
|
|
9627
10175
|
*/
|
|
9628
|
-
const iosLeaveAnimation$
|
|
10176
|
+
const iosLeaveAnimation$5 = (baseEl) => {
|
|
9629
10177
|
const baseAnimation = createAnimation();
|
|
9630
10178
|
const backdropAnimation = createAnimation();
|
|
9631
10179
|
const wrapperAnimation = createAnimation();
|
|
@@ -9682,9 +10230,9 @@ const mdLeaveAnimation$5 = (baseEl) => {
|
|
|
9682
10230
|
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
9683
10231
|
};
|
|
9684
10232
|
|
|
9685
|
-
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)}}`;
|
|
10233
|
+
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)}}`;
|
|
9686
10234
|
|
|
9687
|
-
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}`;
|
|
10235
|
+
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}`;
|
|
9688
10236
|
|
|
9689
10237
|
/**
|
|
9690
10238
|
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
@@ -9781,7 +10329,7 @@ class ActionSheet {
|
|
|
9781
10329
|
async present() {
|
|
9782
10330
|
const unlock = await this.lockController.lock();
|
|
9783
10331
|
await this.delegateController.attachViewToDom();
|
|
9784
|
-
await present(this, 'actionSheetEnter', iosEnterAnimation$
|
|
10332
|
+
await present(this, 'actionSheetEnter', iosEnterAnimation$5, mdEnterAnimation$5);
|
|
9785
10333
|
unlock();
|
|
9786
10334
|
}
|
|
9787
10335
|
/**
|
|
@@ -9798,7 +10346,7 @@ class ActionSheet {
|
|
|
9798
10346
|
*/
|
|
9799
10347
|
async dismiss(data, role) {
|
|
9800
10348
|
const unlock = await this.lockController.lock();
|
|
9801
|
-
const dismissed = await dismiss(this, data, role, 'actionSheetLeave', iosLeaveAnimation$
|
|
10349
|
+
const dismissed = await dismiss(this, data, role, 'actionSheetLeave', iosLeaveAnimation$5, mdLeaveAnimation$5);
|
|
9802
10350
|
if (dismissed) {
|
|
9803
10351
|
this.delegateController.removeViewFromDom();
|
|
9804
10352
|
}
|
|
@@ -9967,6 +10515,10 @@ class ActionSheet {
|
|
|
9967
10515
|
this.gesture = undefined;
|
|
9968
10516
|
}
|
|
9969
10517
|
this.triggerController.removeClickListener();
|
|
10518
|
+
// Clean up aria-hidden if removed without dismiss() being called
|
|
10519
|
+
if (this.presented) {
|
|
10520
|
+
cleanupRootFocusTrapAccessibility();
|
|
10521
|
+
}
|
|
9970
10522
|
}
|
|
9971
10523
|
componentWillLoad() {
|
|
9972
10524
|
var _a;
|
|
@@ -10055,12 +10607,26 @@ class ActionSheet {
|
|
|
10055
10607
|
if (isRadio) {
|
|
10056
10608
|
htmlAttrs['aria-checked'] = isActiveRadio ? 'true' : 'false';
|
|
10057
10609
|
}
|
|
10058
|
-
|
|
10610
|
+
/**
|
|
10611
|
+
* Cast to `SelectActionSheetButton` to access rich content
|
|
10612
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
10613
|
+
* that are passed through from `ion-select` but not
|
|
10614
|
+
* part of the public `ActionSheetButton` interface.
|
|
10615
|
+
*/
|
|
10616
|
+
const richButton = b;
|
|
10617
|
+
const optionLabelOptions = {
|
|
10618
|
+
id: buttonId,
|
|
10619
|
+
label: richButton.text,
|
|
10620
|
+
startContent: richButton.startContent,
|
|
10621
|
+
endContent: richButton.endContent,
|
|
10622
|
+
description: richButton.description,
|
|
10623
|
+
};
|
|
10624
|
+
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: () => {
|
|
10059
10625
|
if (isRadio) {
|
|
10060
10626
|
this.selectRadioButton(b);
|
|
10061
10627
|
}
|
|
10062
10628
|
this.buttonClick(b);
|
|
10063
|
-
}, 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" }),
|
|
10629
|
+
}, 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)));
|
|
10064
10630
|
});
|
|
10065
10631
|
}
|
|
10066
10632
|
render() {
|
|
@@ -10070,12 +10636,12 @@ class ActionSheet {
|
|
|
10070
10636
|
const cancelButton = allButtons.find((b) => b.role === 'cancel');
|
|
10071
10637
|
const buttons = allButtons.filter((b) => b.role !== 'cancel');
|
|
10072
10638
|
const headerID = `action-sheet-${overlayIndex}-header`;
|
|
10073
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
10639
|
+
return (hAsync(Host, Object.assign({ key: '7685831da9a78b73473246a2cea95cefa79a53c3', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
|
|
10074
10640
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
10075
|
-
}, 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: '
|
|
10641
|
+
}, 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: {
|
|
10076
10642
|
'action-sheet-title': true,
|
|
10077
10643
|
'action-sheet-has-sub-title': this.subHeader !== undefined,
|
|
10078
|
-
} }, header, this.subHeader && hAsync("div", { key: '
|
|
10644
|
+
} }, 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" })));
|
|
10079
10645
|
}
|
|
10080
10646
|
get el() { return getElement(this); }
|
|
10081
10647
|
static get watchers() { return {
|
|
@@ -10124,178 +10690,59 @@ class ActionSheet {
|
|
|
10124
10690
|
"$attrsToReflect$": []
|
|
10125
10691
|
}; }
|
|
10126
10692
|
}
|
|
10127
|
-
const buttonClass$
|
|
10693
|
+
const buttonClass$2 = (button) => {
|
|
10128
10694
|
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));
|
|
10129
10695
|
};
|
|
10130
10696
|
|
|
10131
10697
|
const ENABLE_HTML_CONTENT_DEFAULT = false;
|
|
10132
10698
|
|
|
10699
|
+
// 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.
|
|
10133
10700
|
/**
|
|
10134
|
-
*
|
|
10135
|
-
*
|
|
10701
|
+
* Returns the default `labelPlacement` for a radio or checkbox option
|
|
10702
|
+
* rendered inside an overlay. Defaults follow each mode's established
|
|
10703
|
+
* option-row layout:
|
|
10704
|
+
* - `ios`: `"start"` for radio in `alert` and `popover`. The `modal`
|
|
10705
|
+
* interface flips iOS radio back to `"end"`. Checkbox is always
|
|
10706
|
+
* `"end"` on iOS.
|
|
10707
|
+
* - everything else (e.g. `md`): `"end"`.
|
|
10708
|
+
*
|
|
10709
|
+
* `interfaceType` is optional; only `"modal"` changes the result, so
|
|
10710
|
+
* callers that aren't a modal can omit it.
|
|
10711
|
+
*
|
|
10712
|
+
* Used by `select-popover` and `select-modal` as the fallback when an
|
|
10713
|
+
* option doesn't explicitly set `labelPlacement`.
|
|
10136
10714
|
*/
|
|
10137
|
-
const
|
|
10138
|
-
|
|
10139
|
-
|
|
10140
|
-
return untrustedString.value;
|
|
10141
|
-
}
|
|
10142
|
-
if (!isSanitizerEnabled() || typeof untrustedString !== 'string' || untrustedString === '') {
|
|
10143
|
-
return untrustedString;
|
|
10144
|
-
}
|
|
10145
|
-
/**
|
|
10146
|
-
* onload is fired when appending to a document
|
|
10147
|
-
* fragment in Chrome. If a string
|
|
10148
|
-
* contains onload then we should not
|
|
10149
|
-
* attempt to add this to the fragment.
|
|
10150
|
-
*/
|
|
10151
|
-
if (untrustedString.includes('onload=')) {
|
|
10152
|
-
return '';
|
|
10153
|
-
}
|
|
10154
|
-
/**
|
|
10155
|
-
* Create a document fragment
|
|
10156
|
-
* separate from the main DOM,
|
|
10157
|
-
* create a div to do our work in
|
|
10158
|
-
*/
|
|
10159
|
-
const documentFragment = document.createDocumentFragment();
|
|
10160
|
-
const workingDiv = document.createElement('div');
|
|
10161
|
-
documentFragment.appendChild(workingDiv);
|
|
10162
|
-
workingDiv.innerHTML = untrustedString;
|
|
10163
|
-
/**
|
|
10164
|
-
* Remove any elements
|
|
10165
|
-
* that are blocked
|
|
10166
|
-
*/
|
|
10167
|
-
blockedTags.forEach((blockedTag) => {
|
|
10168
|
-
const getElementsToRemove = documentFragment.querySelectorAll(blockedTag);
|
|
10169
|
-
for (let elementIndex = getElementsToRemove.length - 1; elementIndex >= 0; elementIndex--) {
|
|
10170
|
-
const element = getElementsToRemove[elementIndex];
|
|
10171
|
-
if (element.parentNode) {
|
|
10172
|
-
element.parentNode.removeChild(element);
|
|
10173
|
-
}
|
|
10174
|
-
else {
|
|
10175
|
-
documentFragment.removeChild(element);
|
|
10176
|
-
}
|
|
10177
|
-
/**
|
|
10178
|
-
* We still need to sanitize
|
|
10179
|
-
* the children of this element
|
|
10180
|
-
* as they are left behind
|
|
10181
|
-
*/
|
|
10182
|
-
const childElements = getElementChildren(element);
|
|
10183
|
-
/* eslint-disable-next-line */
|
|
10184
|
-
for (let childIndex = 0; childIndex < childElements.length; childIndex++) {
|
|
10185
|
-
sanitizeElement(childElements[childIndex]);
|
|
10186
|
-
}
|
|
10187
|
-
}
|
|
10188
|
-
});
|
|
10189
|
-
/**
|
|
10190
|
-
* Go through remaining elements and remove
|
|
10191
|
-
* non-allowed attribs
|
|
10192
|
-
*/
|
|
10193
|
-
// IE does not support .children on document fragments, only .childNodes
|
|
10194
|
-
const dfChildren = getElementChildren(documentFragment);
|
|
10195
|
-
/* eslint-disable-next-line */
|
|
10196
|
-
for (let childIndex = 0; childIndex < dfChildren.length; childIndex++) {
|
|
10197
|
-
sanitizeElement(dfChildren[childIndex]);
|
|
10198
|
-
}
|
|
10199
|
-
// Append document fragment to div
|
|
10200
|
-
const fragmentDiv = document.createElement('div');
|
|
10201
|
-
fragmentDiv.appendChild(documentFragment);
|
|
10202
|
-
// First child is always the div we did our work in
|
|
10203
|
-
const getInnerDiv = fragmentDiv.querySelector('div');
|
|
10204
|
-
return getInnerDiv !== null ? getInnerDiv.innerHTML : fragmentDiv.innerHTML;
|
|
10205
|
-
}
|
|
10206
|
-
catch (err) {
|
|
10207
|
-
printIonError('sanitizeDOMString', err);
|
|
10208
|
-
return '';
|
|
10209
|
-
}
|
|
10210
|
-
};
|
|
10211
|
-
/**
|
|
10212
|
-
* Clean up current element based on allowed attributes
|
|
10213
|
-
* and then recursively dig down into any child elements to
|
|
10214
|
-
* clean those up as well
|
|
10215
|
-
*/
|
|
10216
|
-
// TODO(FW-2832): type (using Element triggers other type errors as well)
|
|
10217
|
-
const sanitizeElement = (element) => {
|
|
10218
|
-
// IE uses childNodes, so ignore nodes that are not elements
|
|
10219
|
-
if (element.nodeType && element.nodeType !== 1) {
|
|
10220
|
-
return;
|
|
10221
|
-
}
|
|
10222
|
-
/**
|
|
10223
|
-
* If attributes is not a NamedNodeMap
|
|
10224
|
-
* then we should remove the element entirely.
|
|
10225
|
-
* This helps avoid DOM Clobbering attacks where
|
|
10226
|
-
* attributes is overridden.
|
|
10227
|
-
*/
|
|
10228
|
-
if (typeof NamedNodeMap !== 'undefined' && !(element.attributes instanceof NamedNodeMap)) {
|
|
10229
|
-
element.remove();
|
|
10230
|
-
return;
|
|
10231
|
-
}
|
|
10232
|
-
for (let i = element.attributes.length - 1; i >= 0; i--) {
|
|
10233
|
-
const attribute = element.attributes.item(i);
|
|
10234
|
-
const attributeName = attribute.name;
|
|
10235
|
-
// remove non-allowed attribs
|
|
10236
|
-
if (!allowedAttributes.includes(attributeName.toLowerCase())) {
|
|
10237
|
-
element.removeAttribute(attributeName);
|
|
10238
|
-
continue;
|
|
10239
|
-
}
|
|
10240
|
-
// clean up any allowed attribs
|
|
10241
|
-
// that attempt to do any JS funny-business
|
|
10242
|
-
const attributeValue = attribute.value;
|
|
10243
|
-
/**
|
|
10244
|
-
* We also need to check the property value
|
|
10245
|
-
* as javascript: can allow special characters
|
|
10246
|
-
* such as 	 and still be valid (i.e. java	script)
|
|
10247
|
-
*/
|
|
10248
|
-
const propertyValue = element[attributeName];
|
|
10249
|
-
/* eslint-disable */
|
|
10250
|
-
if ((attributeValue != null && attributeValue.toLowerCase().includes('javascript:')) ||
|
|
10251
|
-
(propertyValue != null && propertyValue.toLowerCase().includes('javascript:'))) {
|
|
10252
|
-
element.removeAttribute(attributeName);
|
|
10253
|
-
}
|
|
10254
|
-
/* eslint-enable */
|
|
10255
|
-
}
|
|
10256
|
-
/**
|
|
10257
|
-
* Sanitize any nested children
|
|
10258
|
-
*/
|
|
10259
|
-
const childElements = getElementChildren(element);
|
|
10260
|
-
/* eslint-disable-next-line */
|
|
10261
|
-
for (let i = 0; i < childElements.length; i++) {
|
|
10262
|
-
sanitizeElement(childElements[i]);
|
|
10715
|
+
const getOverlayLabelPlacement = (mode, control, interfaceType) => {
|
|
10716
|
+
if (mode === 'ios' && control === 'radio' && interfaceType !== 'modal') {
|
|
10717
|
+
return 'start';
|
|
10263
10718
|
}
|
|
10719
|
+
return 'end';
|
|
10264
10720
|
};
|
|
10265
10721
|
/**
|
|
10266
|
-
*
|
|
10267
|
-
*
|
|
10722
|
+
* Returns the default `justify` for a radio or checkbox option rendered
|
|
10723
|
+
* inside an overlay. Defaults follow each mode's option-row layout:
|
|
10724
|
+
* - `ios`: `"space-between"` for radio in `alert` and `popover`. The
|
|
10725
|
+
* `modal` interface falls back to `"start"`. Checkbox is always `"start"`
|
|
10726
|
+
* on iOS.
|
|
10727
|
+
* - everything else (e.g. `md`): `"start"`.
|
|
10728
|
+
*
|
|
10729
|
+
* `interfaceType` is optional; only `"modal"` changes the result, so
|
|
10730
|
+
* callers that aren't a modal can omit it.
|
|
10731
|
+
*
|
|
10732
|
+
* Used by `select-popover` and `select-modal` as the fallback when an
|
|
10733
|
+
* option doesn't explicitly set `justify`.
|
|
10268
10734
|
*/
|
|
10269
|
-
|
|
10270
|
-
|
|
10271
|
-
|
|
10272
|
-
};
|
|
10273
|
-
const isSanitizerEnabled = () => {
|
|
10274
|
-
var _a;
|
|
10275
|
-
const win = window;
|
|
10276
|
-
const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config;
|
|
10277
|
-
if (config) {
|
|
10278
|
-
if (config.get) {
|
|
10279
|
-
return config.get('sanitizerEnabled', true);
|
|
10280
|
-
}
|
|
10281
|
-
else {
|
|
10282
|
-
return config.sanitizerEnabled === true || config.sanitizerEnabled === undefined;
|
|
10283
|
-
}
|
|
10735
|
+
const getOverlayLabelJustify = (mode, control, interfaceType) => {
|
|
10736
|
+
if (mode === 'ios' && control === 'radio' && interfaceType !== 'modal') {
|
|
10737
|
+
return 'space-between';
|
|
10284
10738
|
}
|
|
10285
|
-
return
|
|
10739
|
+
return 'start';
|
|
10286
10740
|
};
|
|
10287
|
-
const allowedAttributes = ['class', 'id', 'href', 'src', 'name', 'slot'];
|
|
10288
|
-
const blockedTags = ['script', 'style', 'iframe', 'meta', 'link', 'object', 'embed'];
|
|
10289
|
-
class IonicSafeString {
|
|
10290
|
-
constructor(value) {
|
|
10291
|
-
this.value = value;
|
|
10292
|
-
}
|
|
10293
|
-
}
|
|
10294
10741
|
|
|
10295
10742
|
/**
|
|
10296
10743
|
* iOS Alert Enter Animation
|
|
10297
10744
|
*/
|
|
10298
|
-
const iosEnterAnimation$
|
|
10745
|
+
const iosEnterAnimation$4 = (baseEl) => {
|
|
10299
10746
|
const baseAnimation = createAnimation();
|
|
10300
10747
|
const backdropAnimation = createAnimation();
|
|
10301
10748
|
const wrapperAnimation = createAnimation();
|
|
@@ -10320,7 +10767,7 @@ const iosEnterAnimation$5 = (baseEl) => {
|
|
|
10320
10767
|
/**
|
|
10321
10768
|
* iOS Alert Leave Animation
|
|
10322
10769
|
*/
|
|
10323
|
-
const iosLeaveAnimation$
|
|
10770
|
+
const iosLeaveAnimation$4 = (baseEl) => {
|
|
10324
10771
|
const baseAnimation = createAnimation();
|
|
10325
10772
|
const backdropAnimation = createAnimation();
|
|
10326
10773
|
const wrapperAnimation = createAnimation();
|
|
@@ -10377,9 +10824,9 @@ const mdLeaveAnimation$4 = (baseEl) => {
|
|
|
10377
10824
|
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
10378
10825
|
};
|
|
10379
10826
|
|
|
10380
|
-
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)}`;
|
|
10827
|
+
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)}`;
|
|
10381
10828
|
|
|
10382
|
-
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)}}`;
|
|
10829
|
+
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)}}`;
|
|
10383
10830
|
|
|
10384
10831
|
// TODO(FW-2832): types
|
|
10385
10832
|
/**
|
|
@@ -10553,22 +11000,7 @@ class Alert {
|
|
|
10553
11000
|
this.inputType = inputTypes.values().next().value;
|
|
10554
11001
|
this.processedInputs = inputs.map((i, index) => {
|
|
10555
11002
|
var _a;
|
|
10556
|
-
return ({
|
|
10557
|
-
type: i.type || 'text',
|
|
10558
|
-
name: i.name || `${index}`,
|
|
10559
|
-
placeholder: i.placeholder || '',
|
|
10560
|
-
value: i.value,
|
|
10561
|
-
label: i.label,
|
|
10562
|
-
checked: !!i.checked,
|
|
10563
|
-
disabled: !!i.disabled,
|
|
10564
|
-
id: i.id || `alert-input-${this.overlayIndex}-${index}`,
|
|
10565
|
-
handler: i.handler,
|
|
10566
|
-
min: i.min,
|
|
10567
|
-
max: i.max,
|
|
10568
|
-
cssClass: (_a = i.cssClass) !== null && _a !== void 0 ? _a : '',
|
|
10569
|
-
attributes: i.attributes || {},
|
|
10570
|
-
tabindex: i.type === 'radio' && i !== focusable ? -1 : 0,
|
|
10571
|
-
});
|
|
11003
|
+
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 });
|
|
10572
11004
|
});
|
|
10573
11005
|
}
|
|
10574
11006
|
connectedCallback() {
|
|
@@ -10596,6 +11028,10 @@ class Alert {
|
|
|
10596
11028
|
this.gesture.destroy();
|
|
10597
11029
|
this.gesture = undefined;
|
|
10598
11030
|
}
|
|
11031
|
+
// Clean up aria-hidden if removed without dismiss() being called
|
|
11032
|
+
if (this.presented) {
|
|
11033
|
+
cleanupRootFocusTrapAccessibility();
|
|
11034
|
+
}
|
|
10599
11035
|
(_a = this.buttonGroupResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
10600
11036
|
this.buttonGroupResizeObserver = undefined;
|
|
10601
11037
|
}
|
|
@@ -10635,7 +11071,7 @@ class Alert {
|
|
|
10635
11071
|
async present() {
|
|
10636
11072
|
const unlock = await this.lockController.lock();
|
|
10637
11073
|
await this.delegateController.attachViewToDom();
|
|
10638
|
-
await present(this, 'alertEnter', iosEnterAnimation$
|
|
11074
|
+
await present(this, 'alertEnter', iosEnterAnimation$4, mdEnterAnimation$4).then(() => {
|
|
10639
11075
|
var _a, _b;
|
|
10640
11076
|
/**
|
|
10641
11077
|
* Check if alert has only one button and no inputs.
|
|
@@ -10666,7 +11102,7 @@ class Alert {
|
|
|
10666
11102
|
*/
|
|
10667
11103
|
async dismiss(data, role) {
|
|
10668
11104
|
const unlock = await this.lockController.lock();
|
|
10669
|
-
const dismissed = await dismiss(this, data, role, 'alertLeave', iosLeaveAnimation$
|
|
11105
|
+
const dismissed = await dismiss(this, data, role, 'alertLeave', iosLeaveAnimation$4, mdLeaveAnimation$4);
|
|
10670
11106
|
if (dismissed) {
|
|
10671
11107
|
this.delegateController.removeViewFromDom();
|
|
10672
11108
|
}
|
|
@@ -10764,14 +11200,61 @@ class Alert {
|
|
|
10764
11200
|
if (inputs.length === 0) {
|
|
10765
11201
|
return null;
|
|
10766
11202
|
}
|
|
10767
|
-
return (hAsync("div", { class: "alert-checkbox-group" }, inputs.map((i) =>
|
|
11203
|
+
return (hAsync("div", { class: "alert-checkbox-group" }, inputs.map((i) => {
|
|
11204
|
+
var _a, _b;
|
|
11205
|
+
/**
|
|
11206
|
+
* Cast to `SelectAlertInput` to access rich content
|
|
11207
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
11208
|
+
* that are passed through from `ion-select` but not
|
|
11209
|
+
* part of the public `AlertInput` interface.
|
|
11210
|
+
*/
|
|
11211
|
+
const richInput = i;
|
|
11212
|
+
const optionLabelOptions = {
|
|
11213
|
+
id: richInput.id,
|
|
11214
|
+
label: richInput.label,
|
|
11215
|
+
startContent: richInput.startContent,
|
|
11216
|
+
endContent: richInput.endContent,
|
|
11217
|
+
description: richInput.description,
|
|
11218
|
+
};
|
|
11219
|
+
const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'checkbox');
|
|
11220
|
+
const defaultJustify = getOverlayLabelJustify(mode, 'checkbox');
|
|
11221
|
+
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: {
|
|
11222
|
+
'alert-button-inner': true,
|
|
11223
|
+
[`checkbox-label-placement-${(_a = richInput.labelPlacement) !== null && _a !== void 0 ? _a : defaultLabelPlacement}`]: true,
|
|
11224
|
+
[`checkbox-justify-${(_b = richInput.justify) !== null && _b !== void 0 ? _b : defaultJustify}`]: true,
|
|
11225
|
+
} }, hAsync("div", { class: "alert-checkbox-icon" }, hAsync("div", { class: "alert-checkbox-inner" })), renderOptionLabel(optionLabelOptions, 'alert-checkbox-label')), mode === 'md' && hAsync("ion-ripple-effect", null)));
|
|
11226
|
+
})));
|
|
10768
11227
|
}
|
|
10769
11228
|
renderRadio() {
|
|
10770
11229
|
const inputs = this.processedInputs;
|
|
11230
|
+
const mode = getIonMode$1(this);
|
|
10771
11231
|
if (inputs.length === 0) {
|
|
10772
11232
|
return null;
|
|
10773
11233
|
}
|
|
10774
|
-
return (hAsync("div", { class: "alert-radio-group", role: "radiogroup", "aria-activedescendant": this.activeId }, inputs.map((i) =>
|
|
11234
|
+
return (hAsync("div", { class: "alert-radio-group", role: "radiogroup", "aria-activedescendant": this.activeId }, inputs.map((i) => {
|
|
11235
|
+
var _a, _b;
|
|
11236
|
+
/**
|
|
11237
|
+
* Cast to `SelectAlertInput` to access rich content
|
|
11238
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
11239
|
+
* that are passed through from `ion-select` but not
|
|
11240
|
+
* part of the public `AlertInput` interface.
|
|
11241
|
+
*/
|
|
11242
|
+
const richInput = i;
|
|
11243
|
+
const optionLabelOptions = {
|
|
11244
|
+
id: richInput.id,
|
|
11245
|
+
label: richInput.label,
|
|
11246
|
+
startContent: richInput.startContent,
|
|
11247
|
+
endContent: richInput.endContent,
|
|
11248
|
+
description: richInput.description,
|
|
11249
|
+
};
|
|
11250
|
+
const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'radio');
|
|
11251
|
+
const defaultJustify = getOverlayLabelJustify(mode, 'radio');
|
|
11252
|
+
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: {
|
|
11253
|
+
'alert-button-inner': true,
|
|
11254
|
+
[`radio-label-placement-${(_a = richInput.labelPlacement) !== null && _a !== void 0 ? _a : defaultLabelPlacement}`]: true,
|
|
11255
|
+
[`radio-justify-${(_b = richInput.justify) !== null && _b !== void 0 ? _b : defaultJustify}`]: true,
|
|
11256
|
+
} }, hAsync("div", { class: "alert-radio-icon" }, hAsync("div", { class: "alert-radio-inner" })), renderOptionLabel(optionLabelOptions, 'alert-radio-label'))));
|
|
11257
|
+
})));
|
|
10775
11258
|
}
|
|
10776
11259
|
renderInput() {
|
|
10777
11260
|
const inputs = this.processedInputs;
|
|
@@ -10851,7 +11334,7 @@ class Alert {
|
|
|
10851
11334
|
'alert-button-group': true,
|
|
10852
11335
|
'alert-button-group-vertical': buttons.length > 2 || this.isButtonGroupWrapped,
|
|
10853
11336
|
};
|
|
10854
|
-
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$
|
|
11337
|
+
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))))));
|
|
10855
11338
|
}
|
|
10856
11339
|
renderAlertMessage(msgId) {
|
|
10857
11340
|
const { customHTMLEnabled, message } = this;
|
|
@@ -10874,9 +11357,9 @@ class Alert {
|
|
|
10874
11357
|
* If neither are defined, do not set aria-labelledby.
|
|
10875
11358
|
*/
|
|
10876
11359
|
const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
|
|
10877
|
-
return (hAsync(Host, { key: '
|
|
11360
|
+
return (hAsync(Host, { key: '022f3463b8e6c52064b90ec304c524847c3d5ad3', tabindex: "-1", style: {
|
|
10878
11361
|
zIndex: `${20000 + overlayIndex}`,
|
|
10879
|
-
}, 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: '
|
|
11362
|
+
}, 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" })));
|
|
10880
11363
|
}
|
|
10881
11364
|
get el() { return getElement(this); }
|
|
10882
11365
|
static get watchers() { return {
|
|
@@ -10934,7 +11417,7 @@ const inputClass = (input) => {
|
|
|
10934
11417
|
var _a, _b, _c;
|
|
10935
11418
|
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() : ''));
|
|
10936
11419
|
};
|
|
10937
|
-
const buttonClass$
|
|
11420
|
+
const buttonClass$1 = (button) => {
|
|
10938
11421
|
return Object.assign({ 'alert-button': true, 'ion-focusable': true, 'ion-activatable': true, [`alert-button-role-${button.role}`]: button.role !== undefined }, getClassMap(button.cssClass));
|
|
10939
11422
|
};
|
|
10940
11423
|
|
|
@@ -18719,6 +19202,8 @@ const createColorClasses = (color) => {
|
|
|
18719
19202
|
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}`;
|
|
18720
19203
|
|
|
18721
19204
|
/**
|
|
19205
|
+
* @deprecated
|
|
19206
|
+
*
|
|
18722
19207
|
* @part image - The inner `img` element.
|
|
18723
19208
|
*/
|
|
18724
19209
|
class Img {
|
|
@@ -18742,6 +19227,8 @@ class Img {
|
|
|
18742
19227
|
this.inheritedAttributes = inheritAttributes$1(this.el, ['draggable']);
|
|
18743
19228
|
}
|
|
18744
19229
|
componentDidLoad() {
|
|
19230
|
+
printIonWarning('[ion-img] - This component is deprecated and will be removed in Ionic v10. ' +
|
|
19231
|
+
'Use a native <img> with the loading="lazy" attribute instead.', this.el);
|
|
18745
19232
|
this.addIO();
|
|
18746
19233
|
}
|
|
18747
19234
|
disconnectedCallback() {
|
|
@@ -18794,7 +19281,7 @@ class Img {
|
|
|
18794
19281
|
render() {
|
|
18795
19282
|
const { loadSrc, alt, onLoad, loadError, inheritedAttributes } = this;
|
|
18796
19283
|
const { draggable } = inheritedAttributes;
|
|
18797
|
-
return (hAsync(Host, { key: '
|
|
19284
|
+
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) })));
|
|
18798
19285
|
}
|
|
18799
19286
|
get el() { return getElement(this); }
|
|
18800
19287
|
static get watchers() { return {
|
|
@@ -19298,7 +19785,7 @@ class Input {
|
|
|
19298
19785
|
/**
|
|
19299
19786
|
* Whether auto correction should be enabled when the user is entering/editing the text value.
|
|
19300
19787
|
*/
|
|
19301
|
-
this.autocorrect =
|
|
19788
|
+
this.autocorrect = false;
|
|
19302
19789
|
/**
|
|
19303
19790
|
* Sets the [`autofocus` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus) on the native input element.
|
|
19304
19791
|
*
|
|
@@ -19755,7 +20242,7 @@ class Input {
|
|
|
19755
20242
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
19756
20243
|
*/
|
|
19757
20244
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
|
|
19758
|
-
return (hAsync(Host, { key: '
|
|
20245
|
+
return (hAsync(Host, { key: '6a05f61339d8045285d5820c2508296cc842c210', class: createColorClasses$1(this.color, {
|
|
19759
20246
|
[mode]: true,
|
|
19760
20247
|
'has-value': hasValue,
|
|
19761
20248
|
'has-focus': hasFocus,
|
|
@@ -19766,14 +20253,14 @@ class Input {
|
|
|
19766
20253
|
'in-item': inItem,
|
|
19767
20254
|
'in-item-color': hostContext('ion-item.ion-color', this.el),
|
|
19768
20255
|
'input-disabled': disabled,
|
|
19769
|
-
}) }, hAsync("label", { key: '
|
|
20256
|
+
}) }, 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) => {
|
|
19770
20257
|
/**
|
|
19771
20258
|
* This prevents mobile browsers from
|
|
19772
20259
|
* blurring the input when the clear
|
|
19773
20260
|
* button is activated.
|
|
19774
20261
|
*/
|
|
19775
20262
|
ev.preventDefault();
|
|
19776
|
-
}, onClick: this.clearTextInput }, hAsync("ion-icon", { key: '
|
|
20263
|
+
}, 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()));
|
|
19777
20264
|
}
|
|
19778
20265
|
get el() { return getElement(this); }
|
|
19779
20266
|
static get watchers() { return {
|
|
@@ -19801,7 +20288,7 @@ class Input {
|
|
|
19801
20288
|
"color": [513],
|
|
19802
20289
|
"autocapitalize": [1],
|
|
19803
20290
|
"autocomplete": [1],
|
|
19804
|
-
"autocorrect": [
|
|
20291
|
+
"autocorrect": [4],
|
|
19805
20292
|
"autofocus": [4],
|
|
19806
20293
|
"clearInput": [4, "clear-input"],
|
|
19807
20294
|
"clearInputIcon": [1, "clear-input-icon"],
|
|
@@ -21805,7 +22292,7 @@ class ListHeader {
|
|
|
21805
22292
|
/**
|
|
21806
22293
|
* iOS Loading Enter Animation
|
|
21807
22294
|
*/
|
|
21808
|
-
const iosEnterAnimation$
|
|
22295
|
+
const iosEnterAnimation$3 = (baseEl) => {
|
|
21809
22296
|
const baseAnimation = createAnimation();
|
|
21810
22297
|
const backdropAnimation = createAnimation();
|
|
21811
22298
|
const wrapperAnimation = createAnimation();
|
|
@@ -21830,7 +22317,7 @@ const iosEnterAnimation$4 = (baseEl) => {
|
|
|
21830
22317
|
/**
|
|
21831
22318
|
* iOS Loading Leave Animation
|
|
21832
22319
|
*/
|
|
21833
|
-
const iosLeaveAnimation$
|
|
22320
|
+
const iosLeaveAnimation$3 = (baseEl) => {
|
|
21834
22321
|
const baseAnimation = createAnimation();
|
|
21835
22322
|
const backdropAnimation = createAnimation();
|
|
21836
22323
|
const wrapperAnimation = createAnimation();
|
|
@@ -22003,6 +22490,10 @@ class Loading {
|
|
|
22003
22490
|
}
|
|
22004
22491
|
disconnectedCallback() {
|
|
22005
22492
|
this.triggerController.removeClickListener();
|
|
22493
|
+
// Clean up aria-hidden if removed without dismiss() being called
|
|
22494
|
+
if (this.presented) {
|
|
22495
|
+
cleanupRootFocusTrapAccessibility();
|
|
22496
|
+
}
|
|
22006
22497
|
}
|
|
22007
22498
|
/**
|
|
22008
22499
|
* Present the loading overlay after it has been created.
|
|
@@ -22010,7 +22501,7 @@ class Loading {
|
|
|
22010
22501
|
async present() {
|
|
22011
22502
|
const unlock = await this.lockController.lock();
|
|
22012
22503
|
await this.delegateController.attachViewToDom();
|
|
22013
|
-
await present(this, 'loadingEnter', iosEnterAnimation$
|
|
22504
|
+
await present(this, 'loadingEnter', iosEnterAnimation$3, mdEnterAnimation$3);
|
|
22014
22505
|
if (this.duration > 0) {
|
|
22015
22506
|
this.durationTimeout = setTimeout(() => this.dismiss(), this.duration + 10);
|
|
22016
22507
|
}
|
|
@@ -22033,7 +22524,7 @@ class Loading {
|
|
|
22033
22524
|
if (this.durationTimeout) {
|
|
22034
22525
|
clearTimeout(this.durationTimeout);
|
|
22035
22526
|
}
|
|
22036
|
-
const dismissed = await dismiss(this, data, role, 'loadingLeave', iosLeaveAnimation$
|
|
22527
|
+
const dismissed = await dismiss(this, data, role, 'loadingLeave', iosLeaveAnimation$3, mdLeaveAnimation$3);
|
|
22037
22528
|
if (dismissed) {
|
|
22038
22529
|
this.delegateController.removeViewFromDom();
|
|
22039
22530
|
}
|
|
@@ -22068,9 +22559,9 @@ class Loading {
|
|
|
22068
22559
|
* Otherwise, don't set aria-labelledby.
|
|
22069
22560
|
*/
|
|
22070
22561
|
const ariaLabelledBy = message !== undefined ? msgId : null;
|
|
22071
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
22562
|
+
return (hAsync(Host, Object.assign({ key: 'ab48bfcee8f7e3e33847a2f262fdc08b9ea804ca', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
|
|
22072
22563
|
zIndex: `${40000 + this.overlayIndex}`,
|
|
22073
|
-
}, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: '
|
|
22564
|
+
}, 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" })));
|
|
22074
22565
|
}
|
|
22075
22566
|
get el() { return getElement(this); }
|
|
22076
22567
|
static get watchers() { return {
|
|
@@ -24051,15 +24542,8 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
|
|
|
24051
24542
|
}
|
|
24052
24543
|
return false;
|
|
24053
24544
|
};
|
|
24054
|
-
/**
|
|
24055
|
-
* In Firefox, pressing over a text caret in the focusable wrapper can
|
|
24056
|
-
* start a native drag that swallows the gesture's pointer events.
|
|
24057
|
-
* Cancel native drag while the gesture is active.
|
|
24058
|
-
*/
|
|
24059
|
-
const preventNativeDragStart = (ev) => ev.preventDefault();
|
|
24060
24545
|
const onStart = (detail) => {
|
|
24061
24546
|
const { deltaY } = detail;
|
|
24062
|
-
el.addEventListener('dragstart', preventNativeDragStart);
|
|
24063
24547
|
/**
|
|
24064
24548
|
* Get the initial scrollY value so
|
|
24065
24549
|
* that we can correctly reset the scrollY
|
|
@@ -24162,7 +24646,6 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
|
|
|
24162
24646
|
onDragMove(eventDetail);
|
|
24163
24647
|
};
|
|
24164
24648
|
const onEnd = (detail) => {
|
|
24165
|
-
el.removeEventListener('dragstart', preventNativeDragStart);
|
|
24166
24649
|
const velocity = detail.velocityY;
|
|
24167
24650
|
const step = detail.deltaY / height;
|
|
24168
24651
|
const isAttemptingDismissWithCanDismiss = step >= 0 && canDismissBlocksGesture;
|
|
@@ -24352,7 +24835,7 @@ const createEnterAnimation$1 = () => {
|
|
|
24352
24835
|
/**
|
|
24353
24836
|
* iOS Modal Enter Animation for the Card presentation style
|
|
24354
24837
|
*/
|
|
24355
|
-
const iosEnterAnimation$
|
|
24838
|
+
const iosEnterAnimation$2 = (baseEl, opts) => {
|
|
24356
24839
|
const { presentingEl, currentBreakpoint, expandToScroll } = opts;
|
|
24357
24840
|
const root = getElementRoot(baseEl);
|
|
24358
24841
|
const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
|
|
@@ -24445,7 +24928,7 @@ const createLeaveAnimation$1 = () => {
|
|
|
24445
24928
|
/**
|
|
24446
24929
|
* iOS Modal Leave Animation
|
|
24447
24930
|
*/
|
|
24448
|
-
const iosLeaveAnimation$
|
|
24931
|
+
const iosLeaveAnimation$2 = (baseEl, opts, duration = 500) => {
|
|
24449
24932
|
const { presentingEl, currentBreakpoint } = opts;
|
|
24450
24933
|
const root = getElementRoot(baseEl);
|
|
24451
24934
|
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
|
|
@@ -24945,14 +25428,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
24945
25428
|
}
|
|
24946
25429
|
return true;
|
|
24947
25430
|
};
|
|
24948
|
-
/**
|
|
24949
|
-
* In Firefox, pressing over a text caret in the focusable wrapper can
|
|
24950
|
-
* start a native drag that swallows the gesture's pointer events.
|
|
24951
|
-
* Cancel native drag while the gesture is active.
|
|
24952
|
-
*/
|
|
24953
|
-
const preventNativeDragStart = (ev) => ev.preventDefault();
|
|
24954
25431
|
const onStart = (detail) => {
|
|
24955
|
-
baseEl.addEventListener('dragstart', preventNativeDragStart);
|
|
24956
25432
|
/**
|
|
24957
25433
|
* If canDismiss is anything other than `true`
|
|
24958
25434
|
* then users should be able to swipe down
|
|
@@ -25079,7 +25555,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
25079
25555
|
onDragMove(eventDetail);
|
|
25080
25556
|
};
|
|
25081
25557
|
const onEnd = (detail) => {
|
|
25082
|
-
baseEl.removeEventListener('dragstart', preventNativeDragStart);
|
|
25083
25558
|
const snapBreakpoint = calculateSnapBreakpoint(detail.deltaY);
|
|
25084
25559
|
const eventDetail = {
|
|
25085
25560
|
currentY: detail.currentY,
|
|
@@ -25556,9 +26031,9 @@ const clearSafeAreaOverrides = (hostEl) => {
|
|
|
25556
26031
|
hostEl.style.removeProperty('--ion-safe-area-right');
|
|
25557
26032
|
};
|
|
25558
26033
|
|
|
25559
|
-
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-
|
|
26034
|
+
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}`;
|
|
25560
26035
|
|
|
25561
|
-
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-
|
|
26036
|
+
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}`;
|
|
25562
26037
|
|
|
25563
26038
|
// TODO(FW-2832): types
|
|
25564
26039
|
/**
|
|
@@ -25628,13 +26103,20 @@ class Modal {
|
|
|
25628
26103
|
/**
|
|
25629
26104
|
* The interaction behavior for the sheet modal when the handle is pressed.
|
|
25630
26105
|
*
|
|
25631
|
-
*
|
|
25632
|
-
*
|
|
26106
|
+
* Handle behavior is unavailable when the `handle` property is set to
|
|
26107
|
+
* `false` or when the `breakpoints` property is not set (using a
|
|
26108
|
+
* fullscreen or card modal).
|
|
25633
26109
|
*
|
|
25634
|
-
*
|
|
25635
|
-
*
|
|
26110
|
+
* Set to `"cycle"` to make the handle focusable and let the sheet modal
|
|
26111
|
+
* cycle between available breakpoints when pressed. This keeps the sheet
|
|
26112
|
+
* operable with assistive technology.
|
|
26113
|
+
*
|
|
26114
|
+
* Set to `"none"` to make the handle purely decorative when pressed and
|
|
26115
|
+
* removed from the tab order.
|
|
26116
|
+
*
|
|
26117
|
+
* Defaults to `"cycle"`.
|
|
25636
26118
|
*/
|
|
25637
|
-
this.handleBehavior = '
|
|
26119
|
+
this.handleBehavior = 'cycle';
|
|
25638
26120
|
/**
|
|
25639
26121
|
* If `true`, the modal will be dismissed when the backdrop is clicked.
|
|
25640
26122
|
*/
|
|
@@ -25826,6 +26308,10 @@ class Modal {
|
|
|
25826
26308
|
// Also called in dismiss() — intentional dual cleanup covers both
|
|
25827
26309
|
// dismiss-then-remove and direct DOM removal without dismiss.
|
|
25828
26310
|
this.cleanupSafeAreaOverrides();
|
|
26311
|
+
// Clean up aria-hidden if removed without dismiss() being called
|
|
26312
|
+
if (this.presented) {
|
|
26313
|
+
cleanupRootFocusTrapAccessibility();
|
|
26314
|
+
}
|
|
25829
26315
|
}
|
|
25830
26316
|
componentWillLoad() {
|
|
25831
26317
|
var _a;
|
|
@@ -26002,7 +26488,7 @@ class Modal {
|
|
|
26002
26488
|
this.statusBarStyle = await StatusBar.getStyle();
|
|
26003
26489
|
setCardStatusBarDark();
|
|
26004
26490
|
}
|
|
26005
|
-
await present(this, 'modalEnter', iosEnterAnimation$
|
|
26491
|
+
await present(this, 'modalEnter', iosEnterAnimation$2, mdEnterAnimation$2, {
|
|
26006
26492
|
presentingEl: presentingElement,
|
|
26007
26493
|
currentBreakpoint: this.initialBreakpoint,
|
|
26008
26494
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
@@ -26064,7 +26550,7 @@ class Modal {
|
|
|
26064
26550
|
// All of the elements needed for the swipe gesture
|
|
26065
26551
|
// should be in the DOM and referenced by now, except
|
|
26066
26552
|
// for the presenting el
|
|
26067
|
-
const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$
|
|
26553
|
+
const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$2);
|
|
26068
26554
|
const ani = (this.animation = animationBuilder(el, {
|
|
26069
26555
|
presentingEl: this.presentingElement,
|
|
26070
26556
|
expandToScroll: this.expandToScroll,
|
|
@@ -26083,7 +26569,7 @@ class Modal {
|
|
|
26083
26569
|
if (!wrapperEl || initialBreakpoint === undefined) {
|
|
26084
26570
|
return;
|
|
26085
26571
|
}
|
|
26086
|
-
const animationBuilder = this.enterAnimation || config.get('modalEnter', iosEnterAnimation$
|
|
26572
|
+
const animationBuilder = this.enterAnimation || config.get('modalEnter', iosEnterAnimation$2);
|
|
26087
26573
|
const ani = (this.animation = animationBuilder(this.el, {
|
|
26088
26574
|
presentingEl: this.presentingElement,
|
|
26089
26575
|
currentBreakpoint: initialBreakpoint,
|
|
@@ -26273,7 +26759,7 @@ class Modal {
|
|
|
26273
26759
|
window.removeEventListener(KEYBOARD_DID_OPEN, this.keyboardOpenCallback);
|
|
26274
26760
|
this.keyboardOpenCallback = undefined;
|
|
26275
26761
|
}
|
|
26276
|
-
const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation$
|
|
26762
|
+
const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation$2, mdLeaveAnimation$2, {
|
|
26277
26763
|
presentingEl: presentingElement,
|
|
26278
26764
|
currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
|
|
26279
26765
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
@@ -26705,23 +27191,20 @@ class Modal {
|
|
|
26705
27191
|
const isCardModal = presentingElement !== undefined && mode === 'ios';
|
|
26706
27192
|
const isHandleCycle = handleBehavior === 'cycle';
|
|
26707
27193
|
const isSheetModalWithHandle = isSheetModal && showHandle;
|
|
26708
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
27194
|
+
return (hAsync(Host, Object.assign({ key: '528f9e354f470e22563938e7531e3f23a97e4200', "no-router": true,
|
|
26709
27195
|
// Allow the modal to be navigable when the handle is focusable
|
|
26710
27196
|
tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
|
|
26711
27197
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
26712
|
-
}, 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: '
|
|
27198
|
+
}, 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',
|
|
26713
27199
|
/*
|
|
26714
27200
|
role and aria-modal must be used on the
|
|
26715
27201
|
same element. They must also be set inside the
|
|
26716
27202
|
shadow DOM otherwise ion-button will not be highlighted
|
|
26717
27203
|
when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
|
|
26718
|
-
|
|
26719
|
-
tabIndex={-1} lets present() focus this element (which carries
|
|
26720
|
-
the dialog role) instead of the role-less host.
|
|
26721
27204
|
*/
|
|
26722
|
-
role: "dialog" }, inheritedAttributes, { "aria-modal": "true",
|
|
27205
|
+
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",
|
|
26723
27206
|
// Prevents the handle from receiving keyboard focus when it does not cycle
|
|
26724
|
-
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: '
|
|
27207
|
+
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 }))));
|
|
26725
27208
|
}
|
|
26726
27209
|
get el() { return getElement(this); }
|
|
26727
27210
|
static get watchers() { return {
|
|
@@ -27804,14 +28287,14 @@ class Note {
|
|
|
27804
28287
|
}; }
|
|
27805
28288
|
}
|
|
27806
28289
|
|
|
27807
|
-
const pickerIosCss
|
|
28290
|
+
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)))}`;
|
|
27808
28291
|
|
|
27809
|
-
const pickerMdCss
|
|
28292
|
+
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%)}`;
|
|
27810
28293
|
|
|
27811
28294
|
/**
|
|
27812
28295
|
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
27813
28296
|
*/
|
|
27814
|
-
|
|
28297
|
+
class Picker {
|
|
27815
28298
|
constructor(hostRef) {
|
|
27816
28299
|
registerInstance(this, hostRef);
|
|
27817
28300
|
this.ionInputModeChange = createEvent(this, "ionInputModeChange", 7);
|
|
@@ -28277,8 +28760,8 @@ let Picker$1 = class Picker {
|
|
|
28277
28760
|
}
|
|
28278
28761
|
get el() { return getElement(this); }
|
|
28279
28762
|
static get style() { return {
|
|
28280
|
-
ios: pickerIosCss
|
|
28281
|
-
md: pickerMdCss
|
|
28763
|
+
ios: pickerIosCss(),
|
|
28764
|
+
md: pickerMdCss()
|
|
28282
28765
|
}; }
|
|
28283
28766
|
static get cmpMeta() { return {
|
|
28284
28767
|
"$flags$": 297,
|
|
@@ -28290,359 +28773,44 @@ let Picker$1 = class Picker {
|
|
|
28290
28773
|
"$lazyBundleId$": "-",
|
|
28291
28774
|
"$attrsToReflect$": []
|
|
28292
28775
|
}; }
|
|
28293
|
-
}
|
|
28294
|
-
|
|
28295
|
-
/**
|
|
28296
|
-
* iOS Picker Enter Animation
|
|
28297
|
-
*/
|
|
28298
|
-
const iosEnterAnimation$2 = (baseEl) => {
|
|
28299
|
-
const baseAnimation = createAnimation();
|
|
28300
|
-
const backdropAnimation = createAnimation();
|
|
28301
|
-
const wrapperAnimation = createAnimation();
|
|
28302
|
-
backdropAnimation
|
|
28303
|
-
.addElement(baseEl.querySelector('ion-backdrop'))
|
|
28304
|
-
.fromTo('opacity', 0.01, 'var(--backdrop-opacity)')
|
|
28305
|
-
.beforeStyles({
|
|
28306
|
-
'pointer-events': 'none',
|
|
28307
|
-
})
|
|
28308
|
-
.afterClearStyles(['pointer-events']);
|
|
28309
|
-
wrapperAnimation
|
|
28310
|
-
.addElement(baseEl.querySelector('.picker-wrapper'))
|
|
28311
|
-
.fromTo('transform', 'translateY(100%)', 'translateY(0%)');
|
|
28312
|
-
return baseAnimation
|
|
28313
|
-
.addElement(baseEl)
|
|
28314
|
-
.easing('cubic-bezier(.36,.66,.04,1)')
|
|
28315
|
-
.duration(400)
|
|
28316
|
-
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
28317
|
-
};
|
|
28318
|
-
|
|
28319
|
-
/**
|
|
28320
|
-
* iOS Picker Leave Animation
|
|
28321
|
-
*/
|
|
28322
|
-
const iosLeaveAnimation$2 = (baseEl) => {
|
|
28323
|
-
const baseAnimation = createAnimation();
|
|
28324
|
-
const backdropAnimation = createAnimation();
|
|
28325
|
-
const wrapperAnimation = createAnimation();
|
|
28326
|
-
backdropAnimation
|
|
28327
|
-
.addElement(baseEl.querySelector('ion-backdrop'))
|
|
28328
|
-
.fromTo('opacity', 'var(--backdrop-opacity)', 0.01);
|
|
28329
|
-
wrapperAnimation
|
|
28330
|
-
.addElement(baseEl.querySelector('.picker-wrapper'))
|
|
28331
|
-
.fromTo('transform', 'translateY(0%)', 'translateY(100%)');
|
|
28332
|
-
return baseAnimation
|
|
28333
|
-
.addElement(baseEl)
|
|
28334
|
-
.easing('cubic-bezier(.36,.66,.04,1)')
|
|
28335
|
-
.duration(400)
|
|
28336
|
-
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
28337
|
-
};
|
|
28338
|
-
|
|
28339
|
-
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}`;
|
|
28776
|
+
}
|
|
28340
28777
|
|
|
28341
|
-
const
|
|
28778
|
+
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)}}`;
|
|
28342
28779
|
|
|
28343
|
-
// TODO(FW-2832): types
|
|
28344
28780
|
/**
|
|
28345
28781
|
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
28782
|
+
*
|
|
28783
|
+
* @slot prefix - Content to show on the left side of the picker options.
|
|
28784
|
+
* @slot suffix - Content to show on the right side of the picker options.
|
|
28346
28785
|
*/
|
|
28347
|
-
class
|
|
28786
|
+
class PickerColumn {
|
|
28348
28787
|
constructor(hostRef) {
|
|
28349
28788
|
registerInstance(this, hostRef);
|
|
28350
|
-
this.
|
|
28351
|
-
this.
|
|
28352
|
-
this.
|
|
28353
|
-
this.
|
|
28354
|
-
this.
|
|
28355
|
-
this.
|
|
28356
|
-
this.
|
|
28357
|
-
this.didDismissShorthand = createEvent(this, "didDismiss", 7);
|
|
28358
|
-
this.delegateController = createDelegateController(this);
|
|
28359
|
-
this.lockController = createLockController();
|
|
28360
|
-
this.triggerController = createTriggerController();
|
|
28361
|
-
this.presented = false;
|
|
28362
|
-
/** @internal */
|
|
28363
|
-
this.hasController = false;
|
|
28364
|
-
/**
|
|
28365
|
-
* If `true`, the keyboard will be automatically dismissed when the overlay is presented.
|
|
28366
|
-
*/
|
|
28367
|
-
this.keyboardClose = true;
|
|
28368
|
-
/**
|
|
28369
|
-
* Array of buttons to be displayed at the top of the picker.
|
|
28370
|
-
*/
|
|
28371
|
-
this.buttons = [];
|
|
28789
|
+
this.ionChange = createEvent(this, "ionChange", 7);
|
|
28790
|
+
this.isScrolling = false;
|
|
28791
|
+
this.isColumnVisible = false;
|
|
28792
|
+
this.canExitInputMode = true;
|
|
28793
|
+
this.updateValueTextOnScroll = false;
|
|
28794
|
+
this.ariaLabel = null;
|
|
28795
|
+
this.isActive = false;
|
|
28372
28796
|
/**
|
|
28373
|
-
*
|
|
28797
|
+
* If `true`, the user cannot interact with the picker.
|
|
28374
28798
|
*/
|
|
28375
|
-
this.
|
|
28799
|
+
this.disabled = false;
|
|
28376
28800
|
/**
|
|
28377
|
-
*
|
|
28801
|
+
* The color to use from your application's color palette.
|
|
28802
|
+
* Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
|
|
28803
|
+
* For more information on colors, see [theming](/docs/theming/basics).
|
|
28378
28804
|
*/
|
|
28379
|
-
this.
|
|
28805
|
+
this.color = 'primary';
|
|
28380
28806
|
/**
|
|
28381
|
-
* If `true`,
|
|
28382
|
-
|
|
28383
|
-
|
|
28384
|
-
|
|
28385
|
-
*
|
|
28386
|
-
|
|
28387
|
-
|
|
28388
|
-
/**
|
|
28389
|
-
* If `true`, the picker will animate.
|
|
28390
|
-
*/
|
|
28391
|
-
this.animated = true;
|
|
28392
|
-
/**
|
|
28393
|
-
* If `true`, the picker will open. If `false`, the picker will close.
|
|
28394
|
-
* Use this if you need finer grained control over presentation, otherwise
|
|
28395
|
-
* just use the pickerController or the `trigger` property.
|
|
28396
|
-
* Note: `isOpen` will not automatically be set back to `false` when
|
|
28397
|
-
* the picker dismisses. You will need to do that in your code.
|
|
28398
|
-
*/
|
|
28399
|
-
this.isOpen = false;
|
|
28400
|
-
this.onBackdropTap = () => {
|
|
28401
|
-
this.dismiss(undefined, BACKDROP);
|
|
28402
|
-
};
|
|
28403
|
-
this.dispatchCancelHandler = (ev) => {
|
|
28404
|
-
const role = ev.detail.role;
|
|
28405
|
-
if (isCancel(role)) {
|
|
28406
|
-
const cancelButton = this.buttons.find((b) => b.role === 'cancel');
|
|
28407
|
-
this.callButtonHandler(cancelButton);
|
|
28408
|
-
}
|
|
28409
|
-
};
|
|
28410
|
-
}
|
|
28411
|
-
onIsOpenChange(newValue, oldValue) {
|
|
28412
|
-
if (newValue === true && oldValue === false) {
|
|
28413
|
-
this.present();
|
|
28414
|
-
}
|
|
28415
|
-
else if (newValue === false && oldValue === true) {
|
|
28416
|
-
this.dismiss();
|
|
28417
|
-
}
|
|
28418
|
-
}
|
|
28419
|
-
triggerChanged() {
|
|
28420
|
-
const { trigger, el, triggerController } = this;
|
|
28421
|
-
if (trigger) {
|
|
28422
|
-
triggerController.addClickListener(el, trigger);
|
|
28423
|
-
}
|
|
28424
|
-
}
|
|
28425
|
-
connectedCallback() {
|
|
28426
|
-
prepareOverlay(this.el);
|
|
28427
|
-
this.triggerChanged();
|
|
28428
|
-
}
|
|
28429
|
-
disconnectedCallback() {
|
|
28430
|
-
this.triggerController.removeClickListener();
|
|
28431
|
-
}
|
|
28432
|
-
componentWillLoad() {
|
|
28433
|
-
var _a;
|
|
28434
|
-
if (!((_a = this.htmlAttributes) === null || _a === void 0 ? void 0 : _a.id)) {
|
|
28435
|
-
setOverlayId(this.el);
|
|
28436
|
-
}
|
|
28437
|
-
}
|
|
28438
|
-
componentDidLoad() {
|
|
28439
|
-
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);
|
|
28440
|
-
/**
|
|
28441
|
-
* If picker was rendered with isOpen="true"
|
|
28442
|
-
* then we should open picker immediately.
|
|
28443
|
-
*/
|
|
28444
|
-
if (this.isOpen === true) {
|
|
28445
|
-
raf(() => this.present());
|
|
28446
|
-
}
|
|
28447
|
-
/**
|
|
28448
|
-
* When binding values in frameworks such as Angular
|
|
28449
|
-
* it is possible for the value to be set after the Web Component
|
|
28450
|
-
* initializes but before the value watcher is set up in Stencil.
|
|
28451
|
-
* As a result, the watcher callback may not be fired.
|
|
28452
|
-
* We work around this by manually calling the watcher
|
|
28453
|
-
* callback when the component has loaded and the watcher
|
|
28454
|
-
* is configured.
|
|
28455
|
-
*/
|
|
28456
|
-
this.triggerChanged();
|
|
28457
|
-
}
|
|
28458
|
-
/**
|
|
28459
|
-
* Present the picker overlay after it has been created.
|
|
28460
|
-
*/
|
|
28461
|
-
async present() {
|
|
28462
|
-
const unlock = await this.lockController.lock();
|
|
28463
|
-
await this.delegateController.attachViewToDom();
|
|
28464
|
-
await present(this, 'pickerEnter', iosEnterAnimation$2, iosEnterAnimation$2, undefined);
|
|
28465
|
-
if (this.duration > 0) {
|
|
28466
|
-
this.durationTimeout = setTimeout(() => this.dismiss(), this.duration);
|
|
28467
|
-
}
|
|
28468
|
-
unlock();
|
|
28469
|
-
}
|
|
28470
|
-
/**
|
|
28471
|
-
* Dismiss the picker overlay after it has been presented.
|
|
28472
|
-
*
|
|
28473
|
-
* @param data Any data to emit in the dismiss events.
|
|
28474
|
-
* @param role The role of the element that is dismissing the picker.
|
|
28475
|
-
* This can be useful in a button handler for determining which button was
|
|
28476
|
-
* clicked to dismiss the picker.
|
|
28477
|
-
* Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
|
|
28478
|
-
*/
|
|
28479
|
-
async dismiss(data, role) {
|
|
28480
|
-
const unlock = await this.lockController.lock();
|
|
28481
|
-
if (this.durationTimeout) {
|
|
28482
|
-
clearTimeout(this.durationTimeout);
|
|
28483
|
-
}
|
|
28484
|
-
const dismissed = await dismiss(this, data, role, 'pickerLeave', iosLeaveAnimation$2, iosLeaveAnimation$2);
|
|
28485
|
-
if (dismissed) {
|
|
28486
|
-
this.delegateController.removeViewFromDom();
|
|
28487
|
-
}
|
|
28488
|
-
unlock();
|
|
28489
|
-
return dismissed;
|
|
28490
|
-
}
|
|
28491
|
-
/**
|
|
28492
|
-
* Returns a promise that resolves when the picker did dismiss.
|
|
28493
|
-
*/
|
|
28494
|
-
onDidDismiss() {
|
|
28495
|
-
return eventMethod(this.el, 'ionPickerDidDismiss');
|
|
28496
|
-
}
|
|
28497
|
-
/**
|
|
28498
|
-
* Returns a promise that resolves when the picker will dismiss.
|
|
28499
|
-
*/
|
|
28500
|
-
onWillDismiss() {
|
|
28501
|
-
return eventMethod(this.el, 'ionPickerWillDismiss');
|
|
28502
|
-
}
|
|
28503
|
-
/**
|
|
28504
|
-
* Get the column that matches the specified name.
|
|
28505
|
-
*
|
|
28506
|
-
* @param name The name of the column.
|
|
28507
|
-
*/
|
|
28508
|
-
getColumn(name) {
|
|
28509
|
-
return Promise.resolve(this.columns.find((column) => column.name === name));
|
|
28510
|
-
}
|
|
28511
|
-
async buttonClick(button) {
|
|
28512
|
-
const role = button.role;
|
|
28513
|
-
if (isCancel(role)) {
|
|
28514
|
-
return this.dismiss(undefined, role);
|
|
28515
|
-
}
|
|
28516
|
-
const shouldDismiss = await this.callButtonHandler(button);
|
|
28517
|
-
if (shouldDismiss) {
|
|
28518
|
-
return this.dismiss(this.getSelected(), button.role);
|
|
28519
|
-
}
|
|
28520
|
-
return Promise.resolve();
|
|
28521
|
-
}
|
|
28522
|
-
async callButtonHandler(button) {
|
|
28523
|
-
if (button) {
|
|
28524
|
-
// a handler has been provided, execute it
|
|
28525
|
-
// pass the handler the values from the inputs
|
|
28526
|
-
const rtn = await safeCall(button.handler, this.getSelected());
|
|
28527
|
-
if (rtn === false) {
|
|
28528
|
-
// if the return value of the handler is false then do not dismiss
|
|
28529
|
-
return false;
|
|
28530
|
-
}
|
|
28531
|
-
}
|
|
28532
|
-
return true;
|
|
28533
|
-
}
|
|
28534
|
-
getSelected() {
|
|
28535
|
-
const selected = {};
|
|
28536
|
-
this.columns.forEach((col, index) => {
|
|
28537
|
-
const selectedColumn = col.selectedIndex !== undefined ? col.options[col.selectedIndex] : undefined;
|
|
28538
|
-
selected[col.name] = {
|
|
28539
|
-
text: selectedColumn ? selectedColumn.text : undefined,
|
|
28540
|
-
value: selectedColumn ? selectedColumn.value : undefined,
|
|
28541
|
-
columnIndex: index,
|
|
28542
|
-
};
|
|
28543
|
-
});
|
|
28544
|
-
return selected;
|
|
28545
|
-
}
|
|
28546
|
-
render() {
|
|
28547
|
-
const { htmlAttributes } = this;
|
|
28548
|
-
const mode = getIonMode$1(this);
|
|
28549
|
-
return (hAsync(Host, Object.assign({ key: '80f66d33780d8a1352d24be9cb63a0cc03d01ab5', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
|
|
28550
|
-
zIndex: `${20000 + this.overlayIndex}`,
|
|
28551
|
-
}, class: Object.assign({ [mode]: true,
|
|
28552
|
-
// Used internally for styling
|
|
28553
|
-
[`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" })));
|
|
28554
|
-
}
|
|
28555
|
-
get el() { return getElement(this); }
|
|
28556
|
-
static get watchers() { return {
|
|
28557
|
-
"isOpen": [{
|
|
28558
|
-
"onIsOpenChange": 0
|
|
28559
|
-
}],
|
|
28560
|
-
"trigger": [{
|
|
28561
|
-
"triggerChanged": 0
|
|
28562
|
-
}]
|
|
28563
|
-
}; }
|
|
28564
|
-
static get style() { return {
|
|
28565
|
-
ios: pickerIosCss(),
|
|
28566
|
-
md: pickerMdCss()
|
|
28567
|
-
}; }
|
|
28568
|
-
static get cmpMeta() { return {
|
|
28569
|
-
"$flags$": 34,
|
|
28570
|
-
"$tagName$": "ion-picker-legacy",
|
|
28571
|
-
"$members$": {
|
|
28572
|
-
"overlayIndex": [2, "overlay-index"],
|
|
28573
|
-
"delegate": [16],
|
|
28574
|
-
"hasController": [4, "has-controller"],
|
|
28575
|
-
"keyboardClose": [4, "keyboard-close"],
|
|
28576
|
-
"enterAnimation": [16],
|
|
28577
|
-
"leaveAnimation": [16],
|
|
28578
|
-
"buttons": [16],
|
|
28579
|
-
"columns": [16],
|
|
28580
|
-
"cssClass": [1, "css-class"],
|
|
28581
|
-
"duration": [2],
|
|
28582
|
-
"showBackdrop": [4, "show-backdrop"],
|
|
28583
|
-
"backdropDismiss": [4, "backdrop-dismiss"],
|
|
28584
|
-
"animated": [4],
|
|
28585
|
-
"htmlAttributes": [16],
|
|
28586
|
-
"isOpen": [4, "is-open"],
|
|
28587
|
-
"trigger": [1],
|
|
28588
|
-
"presented": [32],
|
|
28589
|
-
"present": [64],
|
|
28590
|
-
"dismiss": [64],
|
|
28591
|
-
"onDidDismiss": [64],
|
|
28592
|
-
"onWillDismiss": [64],
|
|
28593
|
-
"getColumn": [64]
|
|
28594
|
-
},
|
|
28595
|
-
"$listeners$": undefined,
|
|
28596
|
-
"$lazyBundleId$": "-",
|
|
28597
|
-
"$attrsToReflect$": []
|
|
28598
|
-
}; }
|
|
28599
|
-
}
|
|
28600
|
-
const buttonWrapperClass = (button) => {
|
|
28601
|
-
return {
|
|
28602
|
-
[`picker-toolbar-${button.role}`]: button.role !== undefined,
|
|
28603
|
-
'picker-toolbar-button': true,
|
|
28604
|
-
};
|
|
28605
|
-
};
|
|
28606
|
-
const buttonClass$1 = (button) => {
|
|
28607
|
-
return Object.assign({ 'picker-button': true, 'ion-activatable': true }, getClassMap(button.cssClass));
|
|
28608
|
-
};
|
|
28609
|
-
|
|
28610
|
-
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)}}`;
|
|
28611
|
-
|
|
28612
|
-
/**
|
|
28613
|
-
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
28614
|
-
*
|
|
28615
|
-
* @slot prefix - Content to show on the left side of the picker options.
|
|
28616
|
-
* @slot suffix - Content to show on the right side of the picker options.
|
|
28617
|
-
*/
|
|
28618
|
-
class PickerColumn {
|
|
28619
|
-
constructor(hostRef) {
|
|
28620
|
-
registerInstance(this, hostRef);
|
|
28621
|
-
this.ionChange = createEvent(this, "ionChange", 7);
|
|
28622
|
-
this.isScrolling = false;
|
|
28623
|
-
this.isColumnVisible = false;
|
|
28624
|
-
this.canExitInputMode = true;
|
|
28625
|
-
this.updateValueTextOnScroll = false;
|
|
28626
|
-
this.ariaLabel = null;
|
|
28627
|
-
this.isActive = false;
|
|
28628
|
-
/**
|
|
28629
|
-
* If `true`, the user cannot interact with the picker.
|
|
28630
|
-
*/
|
|
28631
|
-
this.disabled = false;
|
|
28632
|
-
/**
|
|
28633
|
-
* The color to use from your application's color palette.
|
|
28634
|
-
* Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
|
|
28635
|
-
* For more information on colors, see [theming](/docs/theming/basics).
|
|
28636
|
-
*/
|
|
28637
|
-
this.color = 'primary';
|
|
28638
|
-
/**
|
|
28639
|
-
* If `true`, tapping the picker will
|
|
28640
|
-
* reveal a number input keyboard that lets
|
|
28641
|
-
* the user type in values for each picker
|
|
28642
|
-
* column. This is useful when working
|
|
28643
|
-
* with time pickers.
|
|
28644
|
-
*
|
|
28645
|
-
* @internal
|
|
28807
|
+
* If `true`, tapping the picker will
|
|
28808
|
+
* reveal a number input keyboard that lets
|
|
28809
|
+
* the user type in values for each picker
|
|
28810
|
+
* column. This is useful when working
|
|
28811
|
+
* with time pickers.
|
|
28812
|
+
*
|
|
28813
|
+
* @internal
|
|
28646
28814
|
*/
|
|
28647
28815
|
this.numericInput = false;
|
|
28648
28816
|
this.centerPickerItemInView = (target, smooth = true, canExitInputMode = true) => {
|
|
@@ -29098,464 +29266,99 @@ class PickerColumn {
|
|
|
29098
29266
|
*/
|
|
29099
29267
|
if (firstOption !== null && firstOption.value !== value) {
|
|
29100
29268
|
this.setValue(firstOption.value);
|
|
29101
|
-
}
|
|
29102
|
-
}
|
|
29103
|
-
}
|
|
29104
|
-
/** @internal */
|
|
29105
|
-
async scrollActiveItemIntoView(smooth = false) {
|
|
29106
|
-
const activeEl = this.activeItem;
|
|
29107
|
-
if (activeEl) {
|
|
29108
|
-
this.centerPickerItemInView(activeEl, smooth, false);
|
|
29109
|
-
}
|
|
29110
|
-
}
|
|
29111
|
-
/**
|
|
29112
|
-
* Sets the value prop and fires the ionChange event.
|
|
29113
|
-
* This is used when we need to fire ionChange from
|
|
29114
|
-
* user-generated events that cannot be caught with normal
|
|
29115
|
-
* input/change event listeners.
|
|
29116
|
-
* @internal
|
|
29117
|
-
*/
|
|
29118
|
-
async setValue(value) {
|
|
29119
|
-
if (this.disabled === true || this.value === value) {
|
|
29120
|
-
return;
|
|
29121
|
-
}
|
|
29122
|
-
this.value = value;
|
|
29123
|
-
this.ionChange.emit({ value });
|
|
29124
|
-
}
|
|
29125
|
-
/**
|
|
29126
|
-
* Sets focus on the scrollable container within the picker column.
|
|
29127
|
-
* Use this method instead of the global `pickerColumn.focus()`.
|
|
29128
|
-
*/
|
|
29129
|
-
async setFocus() {
|
|
29130
|
-
if (this.assistiveFocusable) {
|
|
29131
|
-
this.assistiveFocusable.focus();
|
|
29132
|
-
}
|
|
29133
|
-
}
|
|
29134
|
-
connectedCallback() {
|
|
29135
|
-
var _a;
|
|
29136
|
-
this.ariaLabel = (_a = this.el.getAttribute('aria-label')) !== null && _a !== void 0 ? _a : 'Select a value';
|
|
29137
|
-
}
|
|
29138
|
-
get activeItem() {
|
|
29139
|
-
const { value } = this;
|
|
29140
|
-
const options = Array.from(this.el.querySelectorAll('ion-picker-column-option'));
|
|
29141
|
-
return options.find((option) => {
|
|
29142
|
-
/**
|
|
29143
|
-
* If the whole picker column is disabled, the current value should appear active
|
|
29144
|
-
* If the current value item is specifically disabled, it should not appear active
|
|
29145
|
-
*/
|
|
29146
|
-
if (!this.disabled && option.disabled) {
|
|
29147
|
-
return false;
|
|
29148
|
-
}
|
|
29149
|
-
return option.value === value;
|
|
29150
|
-
});
|
|
29151
|
-
}
|
|
29152
|
-
render() {
|
|
29153
|
-
const { color, disabled, isActive, numericInput } = this;
|
|
29154
|
-
const mode = getIonMode$1(this);
|
|
29155
|
-
return (hAsync(Host, { key: '234c96a501d7ac413b9b0ea56b33017681e25b40', class: createColorClasses$1(color, {
|
|
29156
|
-
[mode]: true,
|
|
29157
|
-
['picker-column-active']: isActive,
|
|
29158
|
-
['picker-column-numeric-input']: numericInput,
|
|
29159
|
-
['picker-column-disabled']: disabled,
|
|
29160
|
-
}) }, hAsync("slot", { key: '9dc15ea0601ddd2cb2e0a745e91e036a8bd96f8b', name: "prefix" }), hAsync("div", { key: 'de4fe28ee4bc46b7c0420d6ab0df0e7809443da9', class: "picker-opts", ref: (el) => {
|
|
29161
|
-
this.scrollEl = el;
|
|
29162
|
-
}, 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" })));
|
|
29163
|
-
}
|
|
29164
|
-
get el() { return getElement(this); }
|
|
29165
|
-
static get watchers() { return {
|
|
29166
|
-
"aria-label": [{
|
|
29167
|
-
"ariaLabelChanged": 0
|
|
29168
|
-
}],
|
|
29169
|
-
"value": [{
|
|
29170
|
-
"valueChange": 0
|
|
29171
|
-
}]
|
|
29172
|
-
}; }
|
|
29173
|
-
static get style() { return pickerColumnCss(); }
|
|
29174
|
-
static get cmpMeta() { return {
|
|
29175
|
-
"$flags$": 265,
|
|
29176
|
-
"$tagName$": "ion-picker-column",
|
|
29177
|
-
"$members$": {
|
|
29178
|
-
"disabled": [4],
|
|
29179
|
-
"value": [1032],
|
|
29180
|
-
"color": [513],
|
|
29181
|
-
"numericInput": [4, "numeric-input"],
|
|
29182
|
-
"ariaLabel": [32],
|
|
29183
|
-
"isActive": [32],
|
|
29184
|
-
"scrollActiveItemIntoView": [64],
|
|
29185
|
-
"setValue": [64],
|
|
29186
|
-
"setFocus": [64]
|
|
29187
|
-
},
|
|
29188
|
-
"$listeners$": undefined,
|
|
29189
|
-
"$lazyBundleId$": "-",
|
|
29190
|
-
"$attrsToReflect$": [["color", "color"]]
|
|
29191
|
-
}; }
|
|
29192
|
-
}
|
|
29193
|
-
const PICKER_ITEM_ACTIVE_CLASS = 'option-active';
|
|
29194
|
-
|
|
29195
|
-
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}}`;
|
|
29196
|
-
|
|
29197
|
-
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)}`;
|
|
29198
|
-
|
|
29199
|
-
/**
|
|
29200
|
-
* @internal
|
|
29201
|
-
*/
|
|
29202
|
-
class PickerColumnCmp {
|
|
29203
|
-
constructor(hostRef) {
|
|
29204
|
-
registerInstance(this, hostRef);
|
|
29205
|
-
this.ionPickerColChange = createEvent(this, "ionPickerColChange", 7);
|
|
29206
|
-
this.optHeight = 0;
|
|
29207
|
-
this.rotateFactor = 0;
|
|
29208
|
-
this.scaleFactor = 1;
|
|
29209
|
-
this.velocity = 0;
|
|
29210
|
-
this.y = 0;
|
|
29211
|
-
this.noAnimate = true;
|
|
29212
|
-
// `colDidChange` is a flag that gets set when the column is changed
|
|
29213
|
-
// dynamically. When this flag is set, the column will refresh
|
|
29214
|
-
// after the component re-renders to incorporate the new column data.
|
|
29215
|
-
// This is necessary because `this.refresh` queries for the option elements,
|
|
29216
|
-
// so it needs to wait for the latest elements to be available in the DOM.
|
|
29217
|
-
// Ex: column is created with 3 options. User updates the column data
|
|
29218
|
-
// to have 5 options. The column will still think it only has 3 options.
|
|
29219
|
-
this.colDidChange = false;
|
|
29220
|
-
}
|
|
29221
|
-
colChanged() {
|
|
29222
|
-
this.colDidChange = true;
|
|
29223
|
-
}
|
|
29224
|
-
async connectedCallback() {
|
|
29225
|
-
let pickerRotateFactor = 0;
|
|
29226
|
-
let pickerScaleFactor = 0.81;
|
|
29227
|
-
const mode = getIonMode$1(this);
|
|
29228
|
-
if (mode === 'ios') {
|
|
29229
|
-
pickerRotateFactor = -0.46;
|
|
29230
|
-
pickerScaleFactor = 1;
|
|
29231
|
-
}
|
|
29232
|
-
this.rotateFactor = pickerRotateFactor;
|
|
29233
|
-
this.scaleFactor = pickerScaleFactor;
|
|
29234
|
-
this.gesture = (await Promise.resolve().then(function () { return index; })).createGesture({
|
|
29235
|
-
el: this.el,
|
|
29236
|
-
gestureName: 'picker-swipe',
|
|
29237
|
-
gesturePriority: 100,
|
|
29238
|
-
threshold: 0,
|
|
29239
|
-
passive: false,
|
|
29240
|
-
onStart: (ev) => this.onStart(ev),
|
|
29241
|
-
onMove: (ev) => this.onMove(ev),
|
|
29242
|
-
onEnd: (ev) => this.onEnd(ev),
|
|
29243
|
-
});
|
|
29244
|
-
this.gesture.enable();
|
|
29245
|
-
// Options have not been initialized yet
|
|
29246
|
-
// Animation must be disabled through the `noAnimate` flag
|
|
29247
|
-
// Otherwise, the options will render
|
|
29248
|
-
// at the top of the column and transition down
|
|
29249
|
-
this.tmrId = setTimeout(() => {
|
|
29250
|
-
this.noAnimate = false;
|
|
29251
|
-
// After initialization, `refresh()` will be called
|
|
29252
|
-
// At this point, animation will be enabled. The options will
|
|
29253
|
-
// animate as they are being selected.
|
|
29254
|
-
this.refresh(true);
|
|
29255
|
-
}, 250);
|
|
29256
|
-
}
|
|
29257
|
-
componentDidLoad() {
|
|
29258
|
-
this.onDomChange();
|
|
29259
|
-
}
|
|
29260
|
-
componentDidUpdate() {
|
|
29261
|
-
// Options may have changed since last update.
|
|
29262
|
-
if (this.colDidChange) {
|
|
29263
|
-
// Animation must be disabled through the `onDomChange` parameter.
|
|
29264
|
-
// Otherwise, the recently added options will render
|
|
29265
|
-
// at the top of the column and transition down
|
|
29266
|
-
this.onDomChange(true, false);
|
|
29267
|
-
this.colDidChange = false;
|
|
29268
|
-
}
|
|
29269
|
-
}
|
|
29270
|
-
disconnectedCallback() {
|
|
29271
|
-
if (this.rafId !== undefined)
|
|
29272
|
-
cancelAnimationFrame(this.rafId);
|
|
29273
|
-
if (this.tmrId)
|
|
29274
|
-
clearTimeout(this.tmrId);
|
|
29275
|
-
if (this.gesture) {
|
|
29276
|
-
this.gesture.destroy();
|
|
29277
|
-
this.gesture = undefined;
|
|
29278
|
-
}
|
|
29279
|
-
}
|
|
29280
|
-
emitColChange() {
|
|
29281
|
-
this.ionPickerColChange.emit(this.col);
|
|
29282
|
-
}
|
|
29283
|
-
setSelected(selectedIndex, duration) {
|
|
29284
|
-
// if there is a selected index, then figure out it's y position
|
|
29285
|
-
// if there isn't a selected index, then just use the top y position
|
|
29286
|
-
const y = selectedIndex > -1 ? -(selectedIndex * this.optHeight) : 0;
|
|
29287
|
-
this.velocity = 0;
|
|
29288
|
-
// set what y position we're at
|
|
29289
|
-
if (this.rafId !== undefined)
|
|
29290
|
-
cancelAnimationFrame(this.rafId);
|
|
29291
|
-
this.update(y, duration, true);
|
|
29292
|
-
this.emitColChange();
|
|
29293
|
-
}
|
|
29294
|
-
update(y, duration, saveY) {
|
|
29295
|
-
if (!this.optsEl) {
|
|
29296
|
-
return;
|
|
29297
|
-
}
|
|
29298
|
-
// ensure we've got a good round number :)
|
|
29299
|
-
let translateY = 0;
|
|
29300
|
-
let translateZ = 0;
|
|
29301
|
-
const { col, rotateFactor } = this;
|
|
29302
|
-
const prevSelected = col.selectedIndex;
|
|
29303
|
-
const selectedIndex = (col.selectedIndex = this.indexForY(-y));
|
|
29304
|
-
const durationStr = duration === 0 ? '' : duration + 'ms';
|
|
29305
|
-
const scaleStr = `scale(${this.scaleFactor})`;
|
|
29306
|
-
const children = this.optsEl.children;
|
|
29307
|
-
for (let i = 0; i < children.length; i++) {
|
|
29308
|
-
const button = children[i];
|
|
29309
|
-
const opt = col.options[i];
|
|
29310
|
-
const optOffset = i * this.optHeight + y;
|
|
29311
|
-
let transform = '';
|
|
29312
|
-
if (rotateFactor !== 0) {
|
|
29313
|
-
const rotateX = optOffset * rotateFactor;
|
|
29314
|
-
if (Math.abs(rotateX) <= 90) {
|
|
29315
|
-
translateY = 0;
|
|
29316
|
-
translateZ = 90;
|
|
29317
|
-
transform = `rotateX(${rotateX}deg) `;
|
|
29318
|
-
}
|
|
29319
|
-
else {
|
|
29320
|
-
translateY = -9999;
|
|
29321
|
-
}
|
|
29322
|
-
}
|
|
29323
|
-
else {
|
|
29324
|
-
translateZ = 0;
|
|
29325
|
-
translateY = optOffset;
|
|
29326
|
-
}
|
|
29327
|
-
const selected = selectedIndex === i;
|
|
29328
|
-
transform += `translate3d(0px,${translateY}px,${translateZ}px) `;
|
|
29329
|
-
if (this.scaleFactor !== 1 && !selected) {
|
|
29330
|
-
transform += scaleStr;
|
|
29331
|
-
}
|
|
29332
|
-
// Update transition duration
|
|
29333
|
-
if (this.noAnimate) {
|
|
29334
|
-
opt.duration = 0;
|
|
29335
|
-
button.style.transitionDuration = '';
|
|
29336
|
-
}
|
|
29337
|
-
else if (duration !== opt.duration) {
|
|
29338
|
-
opt.duration = duration;
|
|
29339
|
-
button.style.transitionDuration = durationStr;
|
|
29340
|
-
}
|
|
29341
|
-
// Update transform
|
|
29342
|
-
if (transform !== opt.transform) {
|
|
29343
|
-
opt.transform = transform;
|
|
29344
|
-
}
|
|
29345
|
-
button.style.transform = transform;
|
|
29346
|
-
/**
|
|
29347
|
-
* Ensure that the select column
|
|
29348
|
-
* item has the selected class
|
|
29349
|
-
*/
|
|
29350
|
-
opt.selected = selected;
|
|
29351
|
-
if (selected) {
|
|
29352
|
-
button.classList.add(PICKER_OPT_SELECTED);
|
|
29353
|
-
}
|
|
29354
|
-
else {
|
|
29355
|
-
button.classList.remove(PICKER_OPT_SELECTED);
|
|
29356
|
-
}
|
|
29357
|
-
}
|
|
29358
|
-
this.col.prevSelected = prevSelected;
|
|
29359
|
-
if (saveY) {
|
|
29360
|
-
this.y = y;
|
|
29361
|
-
}
|
|
29362
|
-
if (this.lastIndex !== selectedIndex) {
|
|
29363
|
-
// have not set a last index yet
|
|
29364
|
-
hapticSelectionChanged();
|
|
29365
|
-
this.lastIndex = selectedIndex;
|
|
29366
|
-
}
|
|
29367
|
-
}
|
|
29368
|
-
decelerate() {
|
|
29369
|
-
if (this.velocity !== 0) {
|
|
29370
|
-
// still decelerating
|
|
29371
|
-
this.velocity *= DECELERATION_FRICTION;
|
|
29372
|
-
// do not let it go slower than a velocity of 1
|
|
29373
|
-
this.velocity = this.velocity > 0 ? Math.max(this.velocity, 1) : Math.min(this.velocity, -1);
|
|
29374
|
-
let y = this.y + this.velocity;
|
|
29375
|
-
if (y > this.minY) {
|
|
29376
|
-
// whoops, it's trying to scroll up farther than the options we have!
|
|
29377
|
-
y = this.minY;
|
|
29378
|
-
this.velocity = 0;
|
|
29379
|
-
}
|
|
29380
|
-
else if (y < this.maxY) {
|
|
29381
|
-
// gahh, it's trying to scroll down farther than we can!
|
|
29382
|
-
y = this.maxY;
|
|
29383
|
-
this.velocity = 0;
|
|
29384
|
-
}
|
|
29385
|
-
this.update(y, 0, true);
|
|
29386
|
-
const notLockedIn = Math.round(y) % this.optHeight !== 0 || Math.abs(this.velocity) > 1;
|
|
29387
|
-
if (notLockedIn) {
|
|
29388
|
-
// isn't locked in yet, keep decelerating until it is
|
|
29389
|
-
this.rafId = requestAnimationFrame(() => this.decelerate());
|
|
29390
|
-
}
|
|
29391
|
-
else {
|
|
29392
|
-
this.velocity = 0;
|
|
29393
|
-
this.emitColChange();
|
|
29394
|
-
hapticSelectionEnd();
|
|
29395
|
-
}
|
|
29396
|
-
}
|
|
29397
|
-
else if (this.y % this.optHeight !== 0) {
|
|
29398
|
-
// needs to still get locked into a position so options line up
|
|
29399
|
-
const currentPos = Math.abs(this.y % this.optHeight);
|
|
29400
|
-
// create a velocity in the direction it needs to scroll
|
|
29401
|
-
this.velocity = currentPos > this.optHeight / 2 ? 1 : -1;
|
|
29402
|
-
this.decelerate();
|
|
29403
|
-
}
|
|
29404
|
-
}
|
|
29405
|
-
indexForY(y) {
|
|
29406
|
-
return Math.min(Math.max(Math.abs(Math.round(y / this.optHeight)), 0), this.col.options.length - 1);
|
|
29407
|
-
}
|
|
29408
|
-
onStart(detail) {
|
|
29409
|
-
// We have to prevent default in order to block scrolling under the picker
|
|
29410
|
-
// but we DO NOT have to stop propagation, since we still want
|
|
29411
|
-
// some "click" events to capture
|
|
29412
|
-
if (detail.event.cancelable) {
|
|
29413
|
-
detail.event.preventDefault();
|
|
29414
|
-
}
|
|
29415
|
-
detail.event.stopPropagation();
|
|
29416
|
-
hapticSelectionStart();
|
|
29417
|
-
// reset everything
|
|
29418
|
-
if (this.rafId !== undefined)
|
|
29419
|
-
cancelAnimationFrame(this.rafId);
|
|
29420
|
-
const options = this.col.options;
|
|
29421
|
-
let minY = options.length - 1;
|
|
29422
|
-
let maxY = 0;
|
|
29423
|
-
for (let i = 0; i < options.length; i++) {
|
|
29424
|
-
if (!options[i].disabled) {
|
|
29425
|
-
minY = Math.min(minY, i);
|
|
29426
|
-
maxY = Math.max(maxY, i);
|
|
29427
|
-
}
|
|
29428
|
-
}
|
|
29429
|
-
this.minY = -(minY * this.optHeight);
|
|
29430
|
-
this.maxY = -(maxY * this.optHeight);
|
|
29431
|
-
}
|
|
29432
|
-
onMove(detail) {
|
|
29433
|
-
if (detail.event.cancelable) {
|
|
29434
|
-
detail.event.preventDefault();
|
|
29435
|
-
}
|
|
29436
|
-
detail.event.stopPropagation();
|
|
29437
|
-
// update the scroll position relative to pointer start position
|
|
29438
|
-
let y = this.y + detail.deltaY;
|
|
29439
|
-
if (y > this.minY) {
|
|
29440
|
-
// scrolling up higher than scroll area
|
|
29441
|
-
y = Math.pow(y, 0.8);
|
|
29442
|
-
this.bounceFrom = y;
|
|
29443
|
-
}
|
|
29444
|
-
else if (y < this.maxY) {
|
|
29445
|
-
// scrolling down below scroll area
|
|
29446
|
-
y += Math.pow(this.maxY - y, 0.9);
|
|
29447
|
-
this.bounceFrom = y;
|
|
29448
|
-
}
|
|
29449
|
-
else {
|
|
29450
|
-
this.bounceFrom = 0;
|
|
29269
|
+
}
|
|
29451
29270
|
}
|
|
29452
|
-
this.update(y, 0, false);
|
|
29453
29271
|
}
|
|
29454
|
-
|
|
29455
|
-
|
|
29456
|
-
|
|
29457
|
-
|
|
29458
|
-
this.
|
|
29459
|
-
return;
|
|
29272
|
+
/** @internal */
|
|
29273
|
+
async scrollActiveItemIntoView(smooth = false) {
|
|
29274
|
+
const activeEl = this.activeItem;
|
|
29275
|
+
if (activeEl) {
|
|
29276
|
+
this.centerPickerItemInView(activeEl, smooth, false);
|
|
29460
29277
|
}
|
|
29461
|
-
|
|
29462
|
-
|
|
29463
|
-
|
|
29464
|
-
|
|
29278
|
+
}
|
|
29279
|
+
/**
|
|
29280
|
+
* Sets the value prop and fires the ionChange event.
|
|
29281
|
+
* This is used when we need to fire ionChange from
|
|
29282
|
+
* user-generated events that cannot be caught with normal
|
|
29283
|
+
* input/change event listeners.
|
|
29284
|
+
* @internal
|
|
29285
|
+
*/
|
|
29286
|
+
async setValue(value) {
|
|
29287
|
+
if (this.disabled === true || this.value === value) {
|
|
29465
29288
|
return;
|
|
29466
29289
|
}
|
|
29467
|
-
this.
|
|
29468
|
-
|
|
29469
|
-
|
|
29470
|
-
|
|
29471
|
-
|
|
29472
|
-
|
|
29473
|
-
|
|
29474
|
-
|
|
29475
|
-
|
|
29476
|
-
|
|
29477
|
-
const isScrollingUp = detail.deltaY > 0;
|
|
29478
|
-
const optHeightFraction = (Math.abs(this.y) % this.optHeight) / this.optHeight;
|
|
29479
|
-
if (isScrollingUp && optHeightFraction > 0.5) {
|
|
29480
|
-
this.velocity = Math.abs(this.velocity) * -1;
|
|
29481
|
-
}
|
|
29482
|
-
else if (!isScrollingUp && optHeightFraction <= 0.5) {
|
|
29483
|
-
this.velocity = Math.abs(this.velocity);
|
|
29484
|
-
}
|
|
29485
|
-
}
|
|
29486
|
-
this.decelerate();
|
|
29290
|
+
this.value = value;
|
|
29291
|
+
this.ionChange.emit({ value });
|
|
29292
|
+
}
|
|
29293
|
+
/**
|
|
29294
|
+
* Sets focus on the scrollable container within the picker column.
|
|
29295
|
+
* Use this method instead of the global `pickerColumn.focus()`.
|
|
29296
|
+
*/
|
|
29297
|
+
async setFocus() {
|
|
29298
|
+
if (this.assistiveFocusable) {
|
|
29299
|
+
this.assistiveFocusable.focus();
|
|
29487
29300
|
}
|
|
29488
29301
|
}
|
|
29489
|
-
|
|
29302
|
+
connectedCallback() {
|
|
29490
29303
|
var _a;
|
|
29491
|
-
|
|
29492
|
-
let max = 0;
|
|
29493
|
-
const options = this.col.options;
|
|
29494
|
-
for (let i = 0; i < options.length; i++) {
|
|
29495
|
-
if (!options[i].disabled) {
|
|
29496
|
-
min = Math.min(min, i);
|
|
29497
|
-
max = Math.max(max, i);
|
|
29498
|
-
}
|
|
29499
|
-
}
|
|
29500
|
-
/**
|
|
29501
|
-
* Only update selected value if column has a
|
|
29502
|
-
* velocity of 0. If it does not, then the
|
|
29503
|
-
* column is animating might land on
|
|
29504
|
-
* a value different than the value at
|
|
29505
|
-
* selectedIndex
|
|
29506
|
-
*/
|
|
29507
|
-
if (this.velocity !== 0) {
|
|
29508
|
-
return;
|
|
29509
|
-
}
|
|
29510
|
-
const selectedIndex = clamp(min, (_a = this.col.selectedIndex) !== null && _a !== void 0 ? _a : 0, max);
|
|
29511
|
-
if (this.col.prevSelected !== selectedIndex || forceRefresh) {
|
|
29512
|
-
const y = selectedIndex * this.optHeight * -1;
|
|
29513
|
-
const duration = animated ? TRANSITION_DURATION : 0;
|
|
29514
|
-
this.velocity = 0;
|
|
29515
|
-
this.update(y, duration, true);
|
|
29516
|
-
}
|
|
29304
|
+
this.ariaLabel = (_a = this.el.getAttribute('aria-label')) !== null && _a !== void 0 ? _a : 'Select a value';
|
|
29517
29305
|
}
|
|
29518
|
-
|
|
29519
|
-
const
|
|
29520
|
-
|
|
29521
|
-
|
|
29522
|
-
|
|
29523
|
-
|
|
29524
|
-
|
|
29525
|
-
|
|
29306
|
+
get activeItem() {
|
|
29307
|
+
const { value } = this;
|
|
29308
|
+
const options = Array.from(this.el.querySelectorAll('ion-picker-column-option'));
|
|
29309
|
+
return options.find((option) => {
|
|
29310
|
+
/**
|
|
29311
|
+
* If the whole picker column is disabled, the current value should appear active
|
|
29312
|
+
* If the current value item is specifically disabled, it should not appear active
|
|
29313
|
+
*/
|
|
29314
|
+
if (!this.disabled && option.disabled) {
|
|
29315
|
+
return false;
|
|
29316
|
+
}
|
|
29317
|
+
return option.value === value;
|
|
29318
|
+
});
|
|
29526
29319
|
}
|
|
29527
29320
|
render() {
|
|
29528
|
-
const
|
|
29321
|
+
const { color, disabled, isActive, numericInput } = this;
|
|
29529
29322
|
const mode = getIonMode$1(this);
|
|
29530
|
-
return (hAsync(Host, { key: '
|
|
29531
|
-
|
|
29532
|
-
|
|
29323
|
+
return (hAsync(Host, { key: '234c96a501d7ac413b9b0ea56b33017681e25b40', class: createColorClasses$1(color, {
|
|
29324
|
+
[mode]: true,
|
|
29325
|
+
['picker-column-active']: isActive,
|
|
29326
|
+
['picker-column-numeric-input']: numericInput,
|
|
29327
|
+
['picker-column-disabled']: disabled,
|
|
29328
|
+
}) }, hAsync("slot", { key: '9dc15ea0601ddd2cb2e0a745e91e036a8bd96f8b', name: "prefix" }), hAsync("div", { key: 'de4fe28ee4bc46b7c0420d6ab0df0e7809443da9', class: "picker-opts", ref: (el) => {
|
|
29329
|
+
this.scrollEl = el;
|
|
29330
|
+
}, 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" })));
|
|
29533
29331
|
}
|
|
29534
29332
|
get el() { return getElement(this); }
|
|
29535
29333
|
static get watchers() { return {
|
|
29536
|
-
"
|
|
29537
|
-
"
|
|
29334
|
+
"aria-label": [{
|
|
29335
|
+
"ariaLabelChanged": 0
|
|
29336
|
+
}],
|
|
29337
|
+
"value": [{
|
|
29338
|
+
"valueChange": 0
|
|
29538
29339
|
}]
|
|
29539
29340
|
}; }
|
|
29540
|
-
static get style() { return
|
|
29541
|
-
ios: pickerColumnIosCss(),
|
|
29542
|
-
md: pickerColumnMdCss()
|
|
29543
|
-
}; }
|
|
29341
|
+
static get style() { return pickerColumnCss(); }
|
|
29544
29342
|
static get cmpMeta() { return {
|
|
29545
|
-
"$flags$":
|
|
29546
|
-
"$tagName$": "ion-picker-
|
|
29343
|
+
"$flags$": 265,
|
|
29344
|
+
"$tagName$": "ion-picker-column",
|
|
29547
29345
|
"$members$": {
|
|
29548
|
-
"
|
|
29346
|
+
"disabled": [4],
|
|
29347
|
+
"value": [1032],
|
|
29348
|
+
"color": [513],
|
|
29349
|
+
"numericInput": [4, "numeric-input"],
|
|
29350
|
+
"ariaLabel": [32],
|
|
29351
|
+
"isActive": [32],
|
|
29352
|
+
"scrollActiveItemIntoView": [64],
|
|
29353
|
+
"setValue": [64],
|
|
29354
|
+
"setFocus": [64]
|
|
29549
29355
|
},
|
|
29550
29356
|
"$listeners$": undefined,
|
|
29551
29357
|
"$lazyBundleId$": "-",
|
|
29552
|
-
"$attrsToReflect$": []
|
|
29358
|
+
"$attrsToReflect$": [["color", "color"]]
|
|
29553
29359
|
}; }
|
|
29554
29360
|
}
|
|
29555
|
-
const
|
|
29556
|
-
const DECELERATION_FRICTION = 0.97;
|
|
29557
|
-
const MAX_PICKER_SPEED = 90;
|
|
29558
|
-
const TRANSITION_DURATION = 150;
|
|
29361
|
+
const PICKER_ITEM_ACTIVE_CLASS = 'option-active';
|
|
29559
29362
|
|
|
29560
29363
|
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}`;
|
|
29561
29364
|
|
|
@@ -30752,9 +30555,9 @@ const mdLeaveAnimation$1 = (baseEl) => {
|
|
|
30752
30555
|
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
30753
30556
|
};
|
|
30754
30557
|
|
|
30755
|
-
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)}}`;
|
|
30558
|
+
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)}}`;
|
|
30756
30559
|
|
|
30757
|
-
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}`;
|
|
30560
|
+
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}`;
|
|
30758
30561
|
|
|
30759
30562
|
// TODO(FW-2832): types
|
|
30760
30563
|
/**
|
|
@@ -30978,6 +30781,10 @@ class Popover {
|
|
|
30978
30781
|
this.headerResizeObserver.disconnect();
|
|
30979
30782
|
this.headerResizeObserver = undefined;
|
|
30980
30783
|
}
|
|
30784
|
+
// Clean up aria-hidden if removed without dismiss() being called
|
|
30785
|
+
if (this.presented) {
|
|
30786
|
+
cleanupRootFocusTrapAccessibility();
|
|
30787
|
+
}
|
|
30981
30788
|
}
|
|
30982
30789
|
componentWillLoad() {
|
|
30983
30790
|
var _a, _b;
|
|
@@ -31216,9 +31023,9 @@ class Popover {
|
|
|
31216
31023
|
const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
|
|
31217
31024
|
const desktop = isPlatform('desktop');
|
|
31218
31025
|
const enableArrow = arrow && !parentPopover;
|
|
31219
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
31026
|
+
return (hAsync(Host, Object.assign({ key: 'd7f3aa2c2fa93a93585e3eda9e4a6d0daaa541be', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
|
|
31220
31027
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
31221
|
-
}, 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: '
|
|
31028
|
+
}, 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' })))));
|
|
31222
31029
|
}
|
|
31223
31030
|
get el() { return getElement(this); }
|
|
31224
31031
|
static get watchers() { return {
|
|
@@ -31329,7 +31136,7 @@ class ProgressBar {
|
|
|
31329
31136
|
const mode = getIonMode$1(this);
|
|
31330
31137
|
// If the progress is displayed as a solid bar.
|
|
31331
31138
|
const progressSolid = buffer === 1;
|
|
31332
|
-
return (hAsync(Host, { key: '
|
|
31139
|
+
return (hAsync(Host, { key: 'd7476268ce53b6a4f425b7bc9f01d6935eb411c3', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
|
|
31333
31140
|
[mode]: true,
|
|
31334
31141
|
[`progress-bar-${type}`]: true,
|
|
31335
31142
|
'progress-paused': paused,
|
|
@@ -31514,7 +31321,7 @@ class Radio {
|
|
|
31514
31321
|
const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
|
|
31515
31322
|
const mode = getIonMode$1(this);
|
|
31516
31323
|
const inItem = hostContext('ion-item', el);
|
|
31517
|
-
return (hAsync(Host, { key: '
|
|
31324
|
+
return (hAsync(Host, { key: 'd9425b252ed38086420d91d5c680421d121c99f4', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
|
|
31518
31325
|
[mode]: true,
|
|
31519
31326
|
'in-item': inItem,
|
|
31520
31327
|
'radio-checked': checked,
|
|
@@ -31525,10 +31332,10 @@ class Radio {
|
|
|
31525
31332
|
// Focus and active styling should not apply when the radio is in an item
|
|
31526
31333
|
'ion-activatable': !inItem,
|
|
31527
31334
|
'ion-focusable': !inItem,
|
|
31528
|
-
}), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, hAsync("label", { key: '
|
|
31335
|
+
}), 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: {
|
|
31529
31336
|
'label-text-wrapper': true,
|
|
31530
31337
|
'label-text-wrapper-hidden': !hasLabel,
|
|
31531
|
-
}, part: "label" }, hAsync("slot", { key: '
|
|
31338
|
+
}, part: "label" }, hAsync("slot", { key: '589d7c1b45a1918b5811663daa8f30788e7729f8' })), hAsync("div", { key: '0f61a17b195582d6c9a0c597cd40e6629256e479', class: "native-wrapper" }, this.renderRadioControl()))));
|
|
31532
31339
|
}
|
|
31533
31340
|
get el() { return getElement(this); }
|
|
31534
31341
|
static get watchers() { return {
|
|
@@ -31547,7 +31354,7 @@ class Radio {
|
|
|
31547
31354
|
"color": [513],
|
|
31548
31355
|
"name": [1],
|
|
31549
31356
|
"disabled": [4],
|
|
31550
|
-
"value": [
|
|
31357
|
+
"value": [520],
|
|
31551
31358
|
"labelPlacement": [1, "label-placement"],
|
|
31552
31359
|
"justify": [1],
|
|
31553
31360
|
"alignment": [1],
|
|
@@ -31558,7 +31365,7 @@ class Radio {
|
|
|
31558
31365
|
},
|
|
31559
31366
|
"$listeners$": undefined,
|
|
31560
31367
|
"$lazyBundleId$": "-",
|
|
31561
|
-
"$attrsToReflect$": [["color", "color"]]
|
|
31368
|
+
"$attrsToReflect$": [["color", "color"], ["value", "value"]]
|
|
31562
31369
|
}; }
|
|
31563
31370
|
}
|
|
31564
31371
|
let radioButtonIds = 0;
|
|
@@ -32623,7 +32430,7 @@ class Range {
|
|
|
32623
32430
|
const valueAtMin = dualKnobs ? this.valA === min || this.valB === min : this.valA === min;
|
|
32624
32431
|
const valueAtMax = dualKnobs ? this.valA === max || this.valB === max : this.valA === max;
|
|
32625
32432
|
renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
|
|
32626
|
-
return (hAsync(Host, { key: '
|
|
32433
|
+
return (hAsync(Host, { key: 'cd26f0187c0d37c7eb9df923f75c8a0f57c19ab6', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
|
|
32627
32434
|
[mode]: true,
|
|
32628
32435
|
'in-item': inItem,
|
|
32629
32436
|
'range-disabled': disabled,
|
|
@@ -32637,10 +32444,10 @@ class Range {
|
|
|
32637
32444
|
'range-item-end-adjustment': needsEndAdjustment,
|
|
32638
32445
|
'range-value-min': valueAtMin,
|
|
32639
32446
|
'range-value-max': valueAtMax,
|
|
32640
|
-
}) }, hAsync("label", { key: '
|
|
32447
|
+
}) }, hAsync("label", { key: '90224fd24b0e625a17e7972feff73a0ac31e093d', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: 'e07b9fa10983249c425eec26b741f0f628daf2b2', class: {
|
|
32641
32448
|
'label-text-wrapper': true,
|
|
32642
32449
|
'label-text-wrapper-hidden': !hasLabel,
|
|
32643
|
-
}, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: '
|
|
32450
|
+
}, 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" })))));
|
|
32644
32451
|
}
|
|
32645
32452
|
get el() { return getElement(this); }
|
|
32646
32453
|
static get watchers() { return {
|
|
@@ -33711,7 +33518,7 @@ class Refresher {
|
|
|
33711
33518
|
}
|
|
33712
33519
|
render() {
|
|
33713
33520
|
const mode = getIonMode$1(this);
|
|
33714
|
-
return (hAsync(Host, { key: '
|
|
33521
|
+
return (hAsync(Host, { key: '1dd475095f76491206644828cf89fc6d2ec276d1', slot: "fixed", class: {
|
|
33715
33522
|
[mode]: true,
|
|
33716
33523
|
// Used internally for styling
|
|
33717
33524
|
[`refresher-${mode}`]: true,
|
|
@@ -33937,7 +33744,7 @@ class RefresherContent {
|
|
|
33937
33744
|
const pullingIcon = this.pullingIcon;
|
|
33938
33745
|
const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
|
|
33939
33746
|
const mode = getIonMode$1(this);
|
|
33940
|
-
return (hAsync(Host, { key: '
|
|
33747
|
+
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())));
|
|
33941
33748
|
}
|
|
33942
33749
|
get el() { return getElement(this); }
|
|
33943
33750
|
static get cmpMeta() { return {
|
|
@@ -33978,7 +33785,7 @@ class Reorder {
|
|
|
33978
33785
|
render() {
|
|
33979
33786
|
const mode = getIonMode$1(this);
|
|
33980
33787
|
const reorderIcon = mode === 'ios' ? reorderThreeOutline : reorderTwoSharp;
|
|
33981
|
-
return (hAsync(Host, { key: '
|
|
33788
|
+
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" }))));
|
|
33982
33789
|
}
|
|
33983
33790
|
get el() { return getElement(this); }
|
|
33984
33791
|
static get style() { return {
|
|
@@ -34249,7 +34056,7 @@ class ReorderGroup {
|
|
|
34249
34056
|
}
|
|
34250
34057
|
render() {
|
|
34251
34058
|
const mode = getIonMode$1(this);
|
|
34252
|
-
return (hAsync(Host, { key: '
|
|
34059
|
+
return (hAsync(Host, { key: '3afdc6a6c81bba2f88ea523d4b73c6fccff1b9ec', class: {
|
|
34253
34060
|
[mode]: true,
|
|
34254
34061
|
'reorder-enabled': !this.disabled,
|
|
34255
34062
|
'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
|
|
@@ -34367,7 +34174,7 @@ class RippleEffect {
|
|
|
34367
34174
|
}
|
|
34368
34175
|
render() {
|
|
34369
34176
|
const mode = getIonMode$1(this);
|
|
34370
|
-
return (hAsync(Host, { key: '
|
|
34177
|
+
return (hAsync(Host, { key: '5e88b5225414e29883256c86f111ded5bdf2ef91', role: "presentation", class: {
|
|
34371
34178
|
[mode]: true,
|
|
34372
34179
|
unbounded: this.unbounded,
|
|
34373
34180
|
} }));
|
|
@@ -35501,10 +35308,10 @@ class RouterLink {
|
|
|
35501
35308
|
rel: this.rel,
|
|
35502
35309
|
target: this.target,
|
|
35503
35310
|
};
|
|
35504
|
-
return (hAsync(Host, { key: '
|
|
35311
|
+
return (hAsync(Host, { key: '6d5fdfa0dcf1eb216173bcc53f1f4d625f3ec551', onClick: this.onClick, class: createColorClasses$1(this.color, {
|
|
35505
35312
|
[mode]: true,
|
|
35506
35313
|
'ion-activatable': true,
|
|
35507
|
-
}) }, hAsync("a", Object.assign({ key: '
|
|
35314
|
+
}) }, hAsync("a", Object.assign({ key: '85796b7b48581fe9830ba1102dad7d1069de4e17' }, attrs), hAsync("slot", { key: '0f93b0da3ec4ae8f50f624f9e7bed87d13d712d0' }))));
|
|
35508
35315
|
}
|
|
35509
35316
|
static get style() { return routerLinkCss(); }
|
|
35510
35317
|
static get cmpMeta() { return {
|
|
@@ -35543,10 +35350,11 @@ class RouterOutlet {
|
|
|
35543
35350
|
*/
|
|
35544
35351
|
this.animated = true;
|
|
35545
35352
|
}
|
|
35353
|
+
swipeGestureChanged() {
|
|
35354
|
+
this.updateGestureEnabled();
|
|
35355
|
+
}
|
|
35546
35356
|
swipeHandlerChanged() {
|
|
35547
|
-
|
|
35548
|
-
this.gesture.enable(this.swipeHandler !== undefined);
|
|
35549
|
-
}
|
|
35357
|
+
this.updateGestureEnabled();
|
|
35550
35358
|
}
|
|
35551
35359
|
async connectedCallback() {
|
|
35552
35360
|
const onStart = () => {
|
|
@@ -35586,11 +35394,21 @@ class RouterOutlet {
|
|
|
35586
35394
|
this.gestureOrAnimationInProgress = false;
|
|
35587
35395
|
}
|
|
35588
35396
|
});
|
|
35589
|
-
this.
|
|
35397
|
+
if (this.swipeGesture === undefined) {
|
|
35398
|
+
this.swipeGesture = config.getBoolean('swipeBackEnabled', this.mode === 'ios');
|
|
35399
|
+
}
|
|
35400
|
+
else {
|
|
35401
|
+
this.updateGestureEnabled();
|
|
35402
|
+
}
|
|
35590
35403
|
}
|
|
35591
35404
|
componentWillLoad() {
|
|
35592
35405
|
this.ionNavWillLoad.emit();
|
|
35593
35406
|
}
|
|
35407
|
+
updateGestureEnabled() {
|
|
35408
|
+
if (this.gesture) {
|
|
35409
|
+
this.gesture.enable(this.swipeHandler !== undefined && this.swipeGesture === true);
|
|
35410
|
+
}
|
|
35411
|
+
}
|
|
35594
35412
|
disconnectedCallback() {
|
|
35595
35413
|
if (this.gesture) {
|
|
35596
35414
|
this.gesture.destroy();
|
|
@@ -35701,10 +35519,13 @@ class RouterOutlet {
|
|
|
35701
35519
|
return true;
|
|
35702
35520
|
}
|
|
35703
35521
|
render() {
|
|
35704
|
-
return hAsync("slot", { key: '
|
|
35522
|
+
return hAsync("slot", { key: 'ce09e6fbba7b0a2276cdde5245bb37c9a162c1c7' });
|
|
35705
35523
|
}
|
|
35706
35524
|
get el() { return getElement(this); }
|
|
35707
35525
|
static get watchers() { return {
|
|
35526
|
+
"swipeGesture": [{
|
|
35527
|
+
"swipeGestureChanged": 0
|
|
35528
|
+
}],
|
|
35708
35529
|
"swipeHandler": [{
|
|
35709
35530
|
"swipeHandlerChanged": 0
|
|
35710
35531
|
}]
|
|
@@ -35718,6 +35539,7 @@ class RouterOutlet {
|
|
|
35718
35539
|
"delegate": [16],
|
|
35719
35540
|
"animated": [4],
|
|
35720
35541
|
"animation": [16],
|
|
35542
|
+
"swipeGesture": [1028, "swipe-gesture"],
|
|
35721
35543
|
"swipeHandler": [16],
|
|
35722
35544
|
"commit": [64],
|
|
35723
35545
|
"setRouteId": [64],
|
|
@@ -35736,7 +35558,7 @@ class Row {
|
|
|
35736
35558
|
registerInstance(this, hostRef);
|
|
35737
35559
|
}
|
|
35738
35560
|
render() {
|
|
35739
|
-
return (hAsync(Host, { key: '
|
|
35561
|
+
return (hAsync(Host, { key: 'a9066661fff12baaf3e80b2e8c08591af72fe5b8', class: getIonMode$1(this) }, hAsync("slot", { key: '62b103af46d3a5ec9c146019ae300b68a4ae867a' })));
|
|
35740
35562
|
}
|
|
35741
35563
|
static get style() { return rowCss(); }
|
|
35742
35564
|
static get cmpMeta() { return {
|
|
@@ -35788,7 +35610,7 @@ class Searchbar {
|
|
|
35788
35610
|
/**
|
|
35789
35611
|
* Set the input's autocorrect property.
|
|
35790
35612
|
*/
|
|
35791
|
-
this.autocorrect =
|
|
35613
|
+
this.autocorrect = false;
|
|
35792
35614
|
/**
|
|
35793
35615
|
* Set the cancel button icon. Only applies to `md` mode.
|
|
35794
35616
|
* Defaults to `arrow-back-sharp`.
|
|
@@ -36209,8 +36031,8 @@ class Searchbar {
|
|
|
36209
36031
|
const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
|
|
36210
36032
|
const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
|
|
36211
36033
|
const shouldShowCancelButton = this.shouldShowCancelButton();
|
|
36212
|
-
const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '
|
|
36213
|
-
return (hAsync(Host, { key: '
|
|
36034
|
+
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))));
|
|
36035
|
+
return (hAsync(Host, { key: '1b4f6c4e7dffb02e092f0026ce3875822d98a631', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
|
|
36214
36036
|
[mode]: true,
|
|
36215
36037
|
'searchbar-animated': animated,
|
|
36216
36038
|
'searchbar-disabled': this.disabled,
|
|
@@ -36220,14 +36042,14 @@ class Searchbar {
|
|
|
36220
36042
|
'searchbar-has-focus': this.focused,
|
|
36221
36043
|
'searchbar-should-show-clear': this.shouldShowClearButton(),
|
|
36222
36044
|
'searchbar-should-show-cancel': this.shouldShowCancelButton(),
|
|
36223
|
-
}) }, hAsync("div", { key: '
|
|
36045
|
+
}) }, 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) => {
|
|
36224
36046
|
/**
|
|
36225
36047
|
* This prevents mobile browsers from
|
|
36226
36048
|
* blurring the input when the clear
|
|
36227
36049
|
* button is activated.
|
|
36228
36050
|
*/
|
|
36229
36051
|
ev.preventDefault();
|
|
36230
|
-
}, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '
|
|
36052
|
+
}, 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));
|
|
36231
36053
|
}
|
|
36232
36054
|
get el() { return getElement(this); }
|
|
36233
36055
|
static get watchers() { return {
|
|
@@ -36259,7 +36081,7 @@ class Searchbar {
|
|
|
36259
36081
|
"animated": [4],
|
|
36260
36082
|
"autocapitalize": [1],
|
|
36261
36083
|
"autocomplete": [1],
|
|
36262
|
-
"autocorrect": [
|
|
36084
|
+
"autocorrect": [4],
|
|
36263
36085
|
"cancelButtonIcon": [1, "cancel-button-icon"],
|
|
36264
36086
|
"cancelButtonText": [1, "cancel-button-text"],
|
|
36265
36087
|
"clearIcon": [1, "clear-icon"],
|
|
@@ -36836,14 +36658,14 @@ class Segment {
|
|
|
36836
36658
|
}
|
|
36837
36659
|
render() {
|
|
36838
36660
|
const mode = getIonMode$1(this);
|
|
36839
|
-
return (hAsync(Host, { key: '
|
|
36661
|
+
return (hAsync(Host, { key: 'bb626072e73f09c3433e1a769e09789a00822d8f', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
|
|
36840
36662
|
[mode]: true,
|
|
36841
36663
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
36842
36664
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
36843
36665
|
'segment-activated': this.activated,
|
|
36844
36666
|
'segment-disabled': this.disabled,
|
|
36845
36667
|
'segment-scrollable': this.scrollable,
|
|
36846
|
-
}) }, hAsync("slot", { key: '
|
|
36668
|
+
}) }, hAsync("slot", { key: '652d5037c2c2dee4d47a5710b1d150e691202d25', onSlotchange: this.onSlottedItemsChange })));
|
|
36847
36669
|
}
|
|
36848
36670
|
get el() { return getElement(this); }
|
|
36849
36671
|
static get watchers() { return {
|
|
@@ -36991,7 +36813,7 @@ class SegmentButton {
|
|
|
36991
36813
|
const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
|
|
36992
36814
|
const mode = getIonMode$1(this);
|
|
36993
36815
|
const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
|
|
36994
|
-
return (hAsync(Host, { key: '
|
|
36816
|
+
return (hAsync(Host, { key: '792f621c36260b1fceff2b4ec4fa95d98d51d46b', class: {
|
|
36995
36817
|
[mode]: true,
|
|
36996
36818
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
36997
36819
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
@@ -37007,7 +36829,7 @@ class SegmentButton {
|
|
|
37007
36829
|
'ion-activatable': true,
|
|
37008
36830
|
'ion-activatable-instant': true,
|
|
37009
36831
|
'ion-focusable': true,
|
|
37010
|
-
} }, hAsync("button", Object.assign({ key: '
|
|
36832
|
+
} }, 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" }))));
|
|
37011
36833
|
}
|
|
37012
36834
|
get el() { return getElement(this); }
|
|
37013
36835
|
static get watchers() { return {
|
|
@@ -37044,7 +36866,7 @@ class SegmentContent {
|
|
|
37044
36866
|
registerInstance(this, hostRef);
|
|
37045
36867
|
}
|
|
37046
36868
|
render() {
|
|
37047
|
-
return (hAsync(Host, { key: '
|
|
36869
|
+
return (hAsync(Host, { key: 'ef39f29c444177c3b083cd35680ba891e4bb6a2a' }, hAsync("slot", { key: '51f9dd9ca084ddd928b376aa9d716509669c32b2' })));
|
|
37048
36870
|
}
|
|
37049
36871
|
static get style() { return segmentContentCss(); }
|
|
37050
36872
|
static get cmpMeta() { return {
|
|
@@ -37163,11 +36985,11 @@ class SegmentView {
|
|
|
37163
36985
|
}
|
|
37164
36986
|
render() {
|
|
37165
36987
|
const { disabled, isManualScroll, swipeGesture } = this;
|
|
37166
|
-
return (hAsync(Host, { key: '
|
|
36988
|
+
return (hAsync(Host, { key: 'a6c6ac0232c4bb6f2a954b3de7993019d71f423a', class: {
|
|
37167
36989
|
'segment-view-disabled': disabled,
|
|
37168
36990
|
'segment-view-scroll-disabled': isManualScroll === false,
|
|
37169
36991
|
'segment-view-swipe-disabled': swipeGesture === false,
|
|
37170
|
-
} }, hAsync("slot", { key: '
|
|
36992
|
+
} }, hAsync("slot", { key: '386305be2a75069c79def12005d9f6b49276763f' })));
|
|
37171
36993
|
}
|
|
37172
36994
|
get el() { return getElement(this); }
|
|
37173
36995
|
static get style() { return {
|
|
@@ -37189,9 +37011,9 @@ class SegmentView {
|
|
|
37189
37011
|
}; }
|
|
37190
37012
|
}
|
|
37191
37013
|
|
|
37192
|
-
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}`;
|
|
37014
|
+
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}`;
|
|
37193
37015
|
|
|
37194
|
-
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}`;
|
|
37016
|
+
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}`;
|
|
37195
37017
|
|
|
37196
37018
|
// TODO(FW-2832): types
|
|
37197
37019
|
/**
|
|
@@ -37226,6 +37048,7 @@ class Select {
|
|
|
37226
37048
|
this.helperTextId = `${this.inputId}-helper-text`;
|
|
37227
37049
|
this.errorTextId = `${this.inputId}-error-text`;
|
|
37228
37050
|
this.inheritedAttributes = {};
|
|
37051
|
+
this.customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
|
|
37229
37052
|
this.isExpanded = false;
|
|
37230
37053
|
/**
|
|
37231
37054
|
* The `hasFocus` state ensures the focus class is
|
|
@@ -37351,9 +37174,40 @@ class Select {
|
|
|
37351
37174
|
this.emitStyle();
|
|
37352
37175
|
}
|
|
37353
37176
|
setValue(value) {
|
|
37177
|
+
if (this.isValueEqual(this.value, value)) {
|
|
37178
|
+
return;
|
|
37179
|
+
}
|
|
37354
37180
|
this.value = value;
|
|
37355
37181
|
this.ionChange.emit({ value });
|
|
37356
37182
|
}
|
|
37183
|
+
isValueEqual(currentValue, newValue) {
|
|
37184
|
+
if (this.multiple) {
|
|
37185
|
+
const currentArr = Array.isArray(currentValue) ? currentValue : [];
|
|
37186
|
+
const newArr = Array.isArray(newValue) ? newValue : [];
|
|
37187
|
+
if (currentArr.length !== newArr.length) {
|
|
37188
|
+
return false;
|
|
37189
|
+
}
|
|
37190
|
+
// Multiset compare: each new value must match a distinct current value.
|
|
37191
|
+
// A plain `every(isOptionSelected)` would accept ['a','a'] as equal to
|
|
37192
|
+
// ['a','b'] when both 'a' and 'b' map to options whose values overlap.
|
|
37193
|
+
const remaining = currentArr.slice();
|
|
37194
|
+
return newArr.every((val) => {
|
|
37195
|
+
const idx = remaining.findIndex((c) => compareOptions(c, val, this.compareWith));
|
|
37196
|
+
if (idx === -1) {
|
|
37197
|
+
return false;
|
|
37198
|
+
}
|
|
37199
|
+
remaining.splice(idx, 1);
|
|
37200
|
+
return true;
|
|
37201
|
+
});
|
|
37202
|
+
}
|
|
37203
|
+
if (currentValue == null && newValue == null) {
|
|
37204
|
+
return true;
|
|
37205
|
+
}
|
|
37206
|
+
if (currentValue == null || newValue == null) {
|
|
37207
|
+
return false;
|
|
37208
|
+
}
|
|
37209
|
+
return compareOptions(currentValue, newValue, this.compareWith);
|
|
37210
|
+
}
|
|
37357
37211
|
async connectedCallback() {
|
|
37358
37212
|
const { el } = this;
|
|
37359
37213
|
this.notchController = createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
|
|
@@ -37547,10 +37401,11 @@ class Select {
|
|
|
37547
37401
|
.join(' ');
|
|
37548
37402
|
const optClass = `${OPTION_CLASS} ${copyClasses}`;
|
|
37549
37403
|
const isSelected = isOptionSelected(selectValue, value, this.compareWith);
|
|
37404
|
+
const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
|
|
37550
37405
|
return {
|
|
37551
|
-
|
|
37552
|
-
text: option.textContent,
|
|
37406
|
+
text: content !== null && content !== void 0 ? content : '',
|
|
37553
37407
|
cssClass: optClass,
|
|
37408
|
+
disabled: option.disabled,
|
|
37554
37409
|
handler: () => {
|
|
37555
37410
|
this.setValue(value);
|
|
37556
37411
|
},
|
|
@@ -37558,6 +37413,9 @@ class Select {
|
|
|
37558
37413
|
'aria-checked': isSelected ? 'true' : 'false',
|
|
37559
37414
|
role: 'radio',
|
|
37560
37415
|
},
|
|
37416
|
+
startContent,
|
|
37417
|
+
endContent,
|
|
37418
|
+
description: option.description,
|
|
37561
37419
|
};
|
|
37562
37420
|
});
|
|
37563
37421
|
// Add "cancel" button
|
|
@@ -37578,13 +37436,19 @@ class Select {
|
|
|
37578
37436
|
.filter((cls) => cls !== 'hydrated')
|
|
37579
37437
|
.join(' ');
|
|
37580
37438
|
const optClass = `${OPTION_CLASS} ${copyClasses}`;
|
|
37439
|
+
const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
|
|
37581
37440
|
return {
|
|
37582
37441
|
type: inputType,
|
|
37583
37442
|
cssClass: optClass,
|
|
37584
|
-
label:
|
|
37443
|
+
label: content !== null && content !== void 0 ? content : '',
|
|
37585
37444
|
value,
|
|
37586
37445
|
checked: isOptionSelected(selectValue, value, this.compareWith),
|
|
37587
37446
|
disabled: option.disabled,
|
|
37447
|
+
startContent,
|
|
37448
|
+
endContent,
|
|
37449
|
+
description: option.description,
|
|
37450
|
+
labelPlacement: option.labelPlacement,
|
|
37451
|
+
justify: option.justify,
|
|
37588
37452
|
};
|
|
37589
37453
|
});
|
|
37590
37454
|
return alertInputs;
|
|
@@ -37597,8 +37461,9 @@ class Select {
|
|
|
37597
37461
|
.filter((cls) => cls !== 'hydrated')
|
|
37598
37462
|
.join(' ');
|
|
37599
37463
|
const optClass = `${OPTION_CLASS} ${copyClasses}`;
|
|
37464
|
+
const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
|
|
37600
37465
|
return {
|
|
37601
|
-
text:
|
|
37466
|
+
text: content !== null && content !== void 0 ? content : '',
|
|
37602
37467
|
cssClass: optClass,
|
|
37603
37468
|
value,
|
|
37604
37469
|
checked: isOptionSelected(selectValue, value, this.compareWith),
|
|
@@ -37609,6 +37474,11 @@ class Select {
|
|
|
37609
37474
|
this.close();
|
|
37610
37475
|
}
|
|
37611
37476
|
},
|
|
37477
|
+
startContent,
|
|
37478
|
+
endContent,
|
|
37479
|
+
description: option.description,
|
|
37480
|
+
labelPlacement: option.labelPlacement,
|
|
37481
|
+
justify: option.justify,
|
|
37612
37482
|
};
|
|
37613
37483
|
});
|
|
37614
37484
|
return popoverOptions;
|
|
@@ -37641,15 +37511,21 @@ class Select {
|
|
|
37641
37511
|
ionShadowTarget: this.nativeWrapperEl,
|
|
37642
37512
|
} });
|
|
37643
37513
|
}
|
|
37514
|
+
const options = this.createOverlaySelectOptions(this.childOpts, value);
|
|
37515
|
+
const hasRichContent = options.some((opt) => opt.startContent || opt.endContent || opt.description);
|
|
37644
37516
|
const popoverOpts = Object.assign(Object.assign({ mode,
|
|
37645
37517
|
event, alignment: 'center', size,
|
|
37646
|
-
showBackdrop }, interfaceOptions), { component: 'ion-select-popover', cssClass: [
|
|
37518
|
+
showBackdrop }, interfaceOptions), { component: 'ion-select-popover', cssClass: [
|
|
37519
|
+
'select-popover',
|
|
37520
|
+
hasRichContent ? 'select-popover-rich-content' : undefined,
|
|
37521
|
+
interfaceOptions.cssClass,
|
|
37522
|
+
], componentProps: {
|
|
37647
37523
|
header: interfaceOptions.header,
|
|
37648
37524
|
subHeader: interfaceOptions.subHeader,
|
|
37649
37525
|
message: interfaceOptions.message,
|
|
37650
37526
|
multiple,
|
|
37651
37527
|
value,
|
|
37652
|
-
options
|
|
37528
|
+
options,
|
|
37653
37529
|
} });
|
|
37654
37530
|
return popoverController.create(popoverOpts);
|
|
37655
37531
|
}
|
|
@@ -37730,12 +37606,18 @@ class Select {
|
|
|
37730
37606
|
}
|
|
37731
37607
|
return;
|
|
37732
37608
|
}
|
|
37733
|
-
|
|
37609
|
+
/**
|
|
37610
|
+
* Returns the text to display in the select based on the selected value.
|
|
37611
|
+
*
|
|
37612
|
+
* @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`.
|
|
37613
|
+
* @returns The text to display in the select, either with or without HTML based on the `useHTML` parameter.
|
|
37614
|
+
*/
|
|
37615
|
+
getText(useHTML = false) {
|
|
37734
37616
|
const selectedText = this.selectedText;
|
|
37735
37617
|
if (selectedText != null && selectedText !== '') {
|
|
37736
37618
|
return selectedText;
|
|
37737
37619
|
}
|
|
37738
|
-
return generateText(this.childOpts, this.value, this.compareWith);
|
|
37620
|
+
return generateText(this.childOpts, this.value, this.compareWith, useHTML);
|
|
37739
37621
|
}
|
|
37740
37622
|
setFocus() {
|
|
37741
37623
|
if (this.focusEl) {
|
|
@@ -37805,6 +37687,47 @@ class Select {
|
|
|
37805
37687
|
*/
|
|
37806
37688
|
return this.renderLabel();
|
|
37807
37689
|
}
|
|
37690
|
+
/**
|
|
37691
|
+
* Wraps text nodes in the select text with span elements
|
|
37692
|
+
* so spacing can be added between elements without
|
|
37693
|
+
* changing the display to prevent losing the ellipses
|
|
37694
|
+
* behavior.
|
|
37695
|
+
*
|
|
37696
|
+
* Only wraps when the string contains HTML elements
|
|
37697
|
+
* alongside text.
|
|
37698
|
+
*/
|
|
37699
|
+
wrapSelectTextNodes(html) {
|
|
37700
|
+
const temp = document.createElement('div');
|
|
37701
|
+
temp.innerHTML = html;
|
|
37702
|
+
const hasElements = Array.from(temp.childNodes).some((n) => n.nodeType === Node.ELEMENT_NODE);
|
|
37703
|
+
// Return the plain text
|
|
37704
|
+
if (!hasElements) {
|
|
37705
|
+
return html;
|
|
37706
|
+
}
|
|
37707
|
+
Array.from(temp.childNodes).forEach((node) => {
|
|
37708
|
+
var _a, _b, _c, _d;
|
|
37709
|
+
if (node.nodeType === Node.TEXT_NODE && ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim())) {
|
|
37710
|
+
const text = node.textContent;
|
|
37711
|
+
/**
|
|
37712
|
+
* Split comma separator from the text content
|
|
37713
|
+
* e.g., ", Bacon" becomes ", " text node + <span>Bacon</span>.
|
|
37714
|
+
*/
|
|
37715
|
+
const commaMatch = text.match(/^(,\s*)(.*)/);
|
|
37716
|
+
if (commaMatch) {
|
|
37717
|
+
const commaNode = document.createTextNode(commaMatch[1]);
|
|
37718
|
+
const wrapper = document.createElement('span');
|
|
37719
|
+
wrapper.textContent = commaMatch[2];
|
|
37720
|
+
(_b = node.parentNode) === null || _b === void 0 ? void 0 : _b.replaceChild(wrapper, node);
|
|
37721
|
+
(_c = wrapper.parentNode) === null || _c === void 0 ? void 0 : _c.insertBefore(commaNode, wrapper);
|
|
37722
|
+
return;
|
|
37723
|
+
}
|
|
37724
|
+
const wrapper = document.createElement('span');
|
|
37725
|
+
(_d = node.parentNode) === null || _d === void 0 ? void 0 : _d.replaceChild(wrapper, node);
|
|
37726
|
+
wrapper.appendChild(node);
|
|
37727
|
+
}
|
|
37728
|
+
});
|
|
37729
|
+
return temp.innerHTML;
|
|
37730
|
+
}
|
|
37808
37731
|
/**
|
|
37809
37732
|
* Renders either the placeholder
|
|
37810
37733
|
* or the selected values based on
|
|
@@ -37812,7 +37735,7 @@ class Select {
|
|
|
37812
37735
|
*/
|
|
37813
37736
|
renderSelectText() {
|
|
37814
37737
|
const { placeholder } = this;
|
|
37815
|
-
const displayValue = this.getText();
|
|
37738
|
+
const displayValue = this.getText(true);
|
|
37816
37739
|
let addPlaceholderClass = false;
|
|
37817
37740
|
let selectText = displayValue;
|
|
37818
37741
|
if (selectText === '' && placeholder !== undefined) {
|
|
@@ -37824,6 +37747,10 @@ class Select {
|
|
|
37824
37747
|
'select-placeholder': addPlaceholderClass,
|
|
37825
37748
|
};
|
|
37826
37749
|
const textPart = addPlaceholderClass ? 'placeholder' : 'text';
|
|
37750
|
+
if (this.customHTMLEnabled) {
|
|
37751
|
+
const wrapped = this.wrapSelectTextNodes(selectText);
|
|
37752
|
+
return hAsync("div", { "aria-hidden": "true", class: selectTextClasses, part: textPart, innerHTML: wrapped });
|
|
37753
|
+
}
|
|
37827
37754
|
return (hAsync("div", { "aria-hidden": "true", class: selectTextClasses, part: textPart }, selectText));
|
|
37828
37755
|
}
|
|
37829
37756
|
/**
|
|
@@ -37846,6 +37773,7 @@ class Select {
|
|
|
37846
37773
|
get ariaLabel() {
|
|
37847
37774
|
var _a;
|
|
37848
37775
|
const { placeholder, inheritedAttributes } = this;
|
|
37776
|
+
// Get the plain text from the selected text
|
|
37849
37777
|
const displayValue = this.getText();
|
|
37850
37778
|
// The aria label should be preferred over visible text if both are specified
|
|
37851
37779
|
const definedLabel = (_a = inheritedAttributes['aria-label']) !== null && _a !== void 0 ? _a : this.labelText;
|
|
@@ -37939,7 +37867,7 @@ class Select {
|
|
|
37939
37867
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
37940
37868
|
*/
|
|
37941
37869
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
|
|
37942
|
-
return (hAsync(Host, { key: '
|
|
37870
|
+
return (hAsync(Host, { key: 'a3036d51e0db13332641e9523264ddd1ab031912', onClick: this.onClick, class: createColorClasses$1(this.color, {
|
|
37943
37871
|
[mode]: true,
|
|
37944
37872
|
'in-item': inItem,
|
|
37945
37873
|
'in-item-color': hostContext('ion-item.ion-color', el),
|
|
@@ -37957,7 +37885,7 @@ class Select {
|
|
|
37957
37885
|
[`select-justify-${justify}`]: justifyEnabled,
|
|
37958
37886
|
[`select-shape-${shape}`]: shape !== undefined,
|
|
37959
37887
|
[`select-label-placement-${labelPlacement}`]: true,
|
|
37960
|
-
}) }, hAsync("label", { key: '
|
|
37888
|
+
}) }, 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()));
|
|
37961
37889
|
}
|
|
37962
37890
|
get el() { return getElement(this); }
|
|
37963
37891
|
static get watchers() { return {
|
|
@@ -38028,34 +37956,232 @@ const parseValue = (value) => {
|
|
|
38028
37956
|
}
|
|
38029
37957
|
return value.toString();
|
|
38030
37958
|
};
|
|
38031
|
-
const generateText = (opts, value, compareWith) => {
|
|
37959
|
+
const generateText = (opts, value, compareWith, useHTML = false) => {
|
|
38032
37960
|
if (value === undefined) {
|
|
38033
37961
|
return '';
|
|
38034
37962
|
}
|
|
38035
37963
|
if (Array.isArray(value)) {
|
|
38036
37964
|
return value
|
|
38037
|
-
.map((v) => textForValue(opts, v, compareWith))
|
|
37965
|
+
.map((v) => textForValue(opts, v, compareWith, useHTML))
|
|
38038
37966
|
.filter((opt) => opt !== null)
|
|
38039
37967
|
.join(', ');
|
|
38040
37968
|
}
|
|
38041
37969
|
else {
|
|
38042
|
-
return textForValue(opts, value, compareWith) || '';
|
|
37970
|
+
return textForValue(opts, value, compareWith, useHTML) || '';
|
|
38043
37971
|
}
|
|
38044
37972
|
};
|
|
38045
|
-
|
|
37973
|
+
/**
|
|
37974
|
+
* Returns the display text for a given value from the list of options.
|
|
37975
|
+
* When `useHTML` is true, returns sanitized HTML for the select text.
|
|
37976
|
+
* When `useHTML` is false, returns plain text for aria-label and other
|
|
37977
|
+
* text-only contexts.
|
|
37978
|
+
*
|
|
37979
|
+
* @param opts - The list of ion-select-option elements.
|
|
37980
|
+
* @param value - The value to find the matching option for.
|
|
37981
|
+
* @param compareWith - Custom comparison function or property name.
|
|
37982
|
+
* @param useHTML - If true, returns HTML string. If false, returns plain text.
|
|
37983
|
+
*/
|
|
37984
|
+
const textForValue = (opts, value, compareWith, useHTML = false) => {
|
|
38046
37985
|
const selectOpt = opts.find((opt) => {
|
|
38047
37986
|
return compareOptions(value, getOptionValue(opt), compareWith);
|
|
38048
37987
|
});
|
|
38049
|
-
|
|
37988
|
+
const customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
|
|
37989
|
+
if (!selectOpt) {
|
|
37990
|
+
return null;
|
|
37991
|
+
}
|
|
37992
|
+
// Return sanitized HTML for the select text
|
|
37993
|
+
if (customHTMLEnabled && useHTML) {
|
|
37994
|
+
return getOptionContent(selectOpt, undefined, true);
|
|
37995
|
+
}
|
|
37996
|
+
/**
|
|
37997
|
+
* When custom HTML is enabled, extract only the default slot content.
|
|
37998
|
+
* This ensures aria-label and other text-only contexts read only
|
|
37999
|
+
* the relevant option text.
|
|
38000
|
+
*/
|
|
38001
|
+
if (customHTMLEnabled) {
|
|
38002
|
+
const content = getOptionContent(selectOpt);
|
|
38003
|
+
if (typeof content === 'string') {
|
|
38004
|
+
return content;
|
|
38005
|
+
}
|
|
38006
|
+
/**
|
|
38007
|
+
* Elements were found in the default slot, extract and concatenate
|
|
38008
|
+
* their text content while trimming whitespace.
|
|
38009
|
+
*/
|
|
38010
|
+
if (content) {
|
|
38011
|
+
const texts = Array.from(content.childNodes)
|
|
38012
|
+
.map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); })
|
|
38013
|
+
.filter((t) => t);
|
|
38014
|
+
return texts.join(' ') || null;
|
|
38015
|
+
}
|
|
38016
|
+
// Empty option
|
|
38017
|
+
return null;
|
|
38018
|
+
}
|
|
38019
|
+
return getDefaultSlotPlainText(selectOpt);
|
|
38020
|
+
};
|
|
38021
|
+
/**
|
|
38022
|
+
* Trims whitespace from all text nodes within a DOM tree.
|
|
38023
|
+
* This prevents invisible layout shifts and unwanted gaps between
|
|
38024
|
+
* elements when HTML content is injected via innerHTML or cloneNode,
|
|
38025
|
+
* as browsers preserve whitespace (tabs, newlines, spaces) from
|
|
38026
|
+
* the original source markup.
|
|
38027
|
+
*
|
|
38028
|
+
* @param node The root node to start trimming text nodes from.
|
|
38029
|
+
*/
|
|
38030
|
+
const trimTextNodes = (node) => {
|
|
38031
|
+
node.childNodes.forEach((child) => {
|
|
38032
|
+
var _a;
|
|
38033
|
+
if (child.nodeType === Node.TEXT_NODE) {
|
|
38034
|
+
child.textContent = ((_a = child.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
|
|
38035
|
+
}
|
|
38036
|
+
else if (child.nodeType === Node.ELEMENT_NODE) {
|
|
38037
|
+
trimTextNodes(child);
|
|
38038
|
+
}
|
|
38039
|
+
});
|
|
38040
|
+
};
|
|
38041
|
+
/**
|
|
38042
|
+
* Extracts and clones content from an `ion-select-option` element
|
|
38043
|
+
* for rendering within overlay interfaces or the select text when `customHTMLEnabled` is `true`.
|
|
38044
|
+
*
|
|
38045
|
+
* @param option - The `ion-select-option` element to extract content from.
|
|
38046
|
+
* @param slotName - Optional slot name to extract. If omitted, extracts the default slot content.
|
|
38047
|
+
* @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.
|
|
38048
|
+
* @returns When `useHTML` is `true`, a sanitized HTML string. When `false`, a
|
|
38049
|
+
* div element containing cloned child nodes. Returns `null` if no matching
|
|
38050
|
+
* content is found.
|
|
38051
|
+
*/
|
|
38052
|
+
const getOptionContent = (option, slotName, useHTML = false) => {
|
|
38053
|
+
let nodes;
|
|
38054
|
+
if (slotName) {
|
|
38055
|
+
// Named slot: get elements with matching slot attribute
|
|
38056
|
+
nodes = Array.from(option.children).filter((el) => el.getAttribute('slot') === slotName);
|
|
38057
|
+
}
|
|
38058
|
+
else {
|
|
38059
|
+
// Default slot: get nodes without a slot attribute
|
|
38060
|
+
const defaultSlot = getOptionDefaultSlot(option) || [];
|
|
38061
|
+
nodes = defaultSlot.filter((node) => {
|
|
38062
|
+
var _a;
|
|
38063
|
+
/**
|
|
38064
|
+
* Exclude whitespace-only text nodes (newline noise between
|
|
38065
|
+
* markup elements). Element nodes are always kept, even when
|
|
38066
|
+
* their textContent is empty (e.g. <svg>, <img>).
|
|
38067
|
+
*/
|
|
38068
|
+
if (node.nodeType === Node.TEXT_NODE) {
|
|
38069
|
+
return ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim().length) !== 0;
|
|
38070
|
+
}
|
|
38071
|
+
return true;
|
|
38072
|
+
});
|
|
38073
|
+
}
|
|
38074
|
+
if (nodes.length === 0) {
|
|
38075
|
+
return null;
|
|
38076
|
+
}
|
|
38077
|
+
// Return plain text if no elements are found
|
|
38078
|
+
if (!slotName && nodes.every((n) => n.nodeType === Node.TEXT_NODE)) {
|
|
38079
|
+
return nodes.map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); }).join(' ') || null;
|
|
38080
|
+
}
|
|
38081
|
+
/**
|
|
38082
|
+
* Mirror known custom-element properties (e.g. ion-icon's `icon`)
|
|
38083
|
+
* onto attributes before cloning. Frameworks like Vue set these as
|
|
38084
|
+
* DOM properties, which `cloneNode` doesn't copy, so without this
|
|
38085
|
+
* step the cloned overlay copy renders without the prop's value.
|
|
38086
|
+
*/
|
|
38087
|
+
nodes.forEach((n) => {
|
|
38088
|
+
if (n.nodeType === Node.ELEMENT_NODE) {
|
|
38089
|
+
reflectPropertiesToAttributes(n);
|
|
38090
|
+
}
|
|
38091
|
+
});
|
|
38092
|
+
// Clone each node into a temporary container
|
|
38093
|
+
const container = document.createElement('div');
|
|
38094
|
+
nodes.forEach((n) => {
|
|
38095
|
+
var _a;
|
|
38096
|
+
const clone = n.cloneNode(true);
|
|
38097
|
+
if (clone.nodeType === Node.TEXT_NODE) {
|
|
38098
|
+
clone.textContent = ((_a = clone.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
|
|
38099
|
+
}
|
|
38100
|
+
else {
|
|
38101
|
+
trimTextNodes(clone);
|
|
38102
|
+
}
|
|
38103
|
+
container.appendChild(clone);
|
|
38104
|
+
});
|
|
38105
|
+
/**
|
|
38106
|
+
* Sanitize the cloned DOM in place. Trusted attributes (size, color,
|
|
38107
|
+
* shape, etc.) are preserved; event handlers, javascript: URLs, and
|
|
38108
|
+
* blocked tags are stripped.
|
|
38109
|
+
*/
|
|
38110
|
+
sanitizeDOMTree(container);
|
|
38111
|
+
if (useHTML) {
|
|
38112
|
+
return container.innerHTML.trim() || null;
|
|
38113
|
+
}
|
|
38114
|
+
return container;
|
|
38115
|
+
};
|
|
38116
|
+
/**
|
|
38117
|
+
* Returns the child nodes that belong to the default slot of an
|
|
38118
|
+
* option element, excluding any nodes that are assigned to named
|
|
38119
|
+
* slots.
|
|
38120
|
+
*
|
|
38121
|
+
* @param option - The `ion-select-option` element to extract default-slot nodes from.
|
|
38122
|
+
* @returns An array of default slot nodes, or `null` if none are found.
|
|
38123
|
+
*/
|
|
38124
|
+
const getOptionDefaultSlot = (option) => {
|
|
38125
|
+
const defaultSlotNodes = Array.from(option.childNodes).filter((node) => {
|
|
38126
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
38127
|
+
return !node.hasAttribute('slot');
|
|
38128
|
+
}
|
|
38129
|
+
return node.nodeType === Node.TEXT_NODE;
|
|
38130
|
+
});
|
|
38131
|
+
if (defaultSlotNodes.length === 0) {
|
|
38132
|
+
return null;
|
|
38133
|
+
}
|
|
38134
|
+
return defaultSlotNodes;
|
|
38135
|
+
};
|
|
38136
|
+
/**
|
|
38137
|
+
* Extracts plain text from only the default slot of an option,
|
|
38138
|
+
* excluding content assigned to named slots (start/end).
|
|
38139
|
+
*/
|
|
38140
|
+
const getDefaultSlotPlainText = (option) => {
|
|
38141
|
+
const texts = Array.from(option.childNodes)
|
|
38142
|
+
.filter((node) => {
|
|
38143
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
38144
|
+
return !node.hasAttribute('slot');
|
|
38145
|
+
}
|
|
38146
|
+
return node.nodeType === Node.TEXT_NODE;
|
|
38147
|
+
})
|
|
38148
|
+
.filter((node) => node.nodeType === Node.TEXT_NODE)
|
|
38149
|
+
.map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); })
|
|
38150
|
+
.filter((t) => t);
|
|
38151
|
+
return texts.join(' ');
|
|
38152
|
+
};
|
|
38153
|
+
/**
|
|
38154
|
+
* Extracts the rich content from an `ion-select-option`.
|
|
38155
|
+
* When `customHTMLEnabled` is `false`, only the plain text from the
|
|
38156
|
+
* default slot is read and the start and end slots are skipped.
|
|
38157
|
+
*
|
|
38158
|
+
* @param option - The `ion-select-option` element to extract content from.
|
|
38159
|
+
* @param customHTMLEnabled - Whether custom HTML rendering is enabled
|
|
38160
|
+
* via the `innerHTMLTemplatesEnabled` config.
|
|
38161
|
+
*/
|
|
38162
|
+
const extractOptionContent = (option, customHTMLEnabled) => {
|
|
38163
|
+
var _a, _b;
|
|
38164
|
+
if (!customHTMLEnabled) {
|
|
38165
|
+
return {
|
|
38166
|
+
content: getDefaultSlotPlainText(option),
|
|
38167
|
+
startContent: undefined,
|
|
38168
|
+
endContent: undefined,
|
|
38169
|
+
};
|
|
38170
|
+
}
|
|
38171
|
+
return {
|
|
38172
|
+
content: getOptionContent(option),
|
|
38173
|
+
startContent: (_a = getOptionContent(option, 'start')) !== null && _a !== void 0 ? _a : undefined,
|
|
38174
|
+
endContent: (_b = getOptionContent(option, 'end')) !== null && _b !== void 0 ? _b : undefined,
|
|
38175
|
+
};
|
|
38050
38176
|
};
|
|
38051
38177
|
let selectIds = 0;
|
|
38052
38178
|
const OPTION_CLASS = 'select-interface-option';
|
|
38053
38179
|
|
|
38054
|
-
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)}`;
|
|
38180
|
+
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)}`;
|
|
38055
38181
|
|
|
38056
|
-
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)}`;
|
|
38182
|
+
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)}`;
|
|
38057
38183
|
|
|
38058
|
-
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)}`;
|
|
38184
|
+
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)}`;
|
|
38059
38185
|
|
|
38060
38186
|
class SelectModal {
|
|
38061
38187
|
constructor(hostRef) {
|
|
@@ -38109,39 +38235,90 @@ class SelectModal {
|
|
|
38109
38235
|
}
|
|
38110
38236
|
}
|
|
38111
38237
|
renderRadioOptions() {
|
|
38238
|
+
const mode = getIonMode$1(this);
|
|
38112
38239
|
const checked = this.options.filter((o) => o.checked).map((o) => o.value)[0];
|
|
38113
|
-
return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, this.options.map((option) =>
|
|
38240
|
+
return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, this.options.map((option, index) => {
|
|
38241
|
+
var _a, _b;
|
|
38242
|
+
/**
|
|
38243
|
+
* Cast to `SelectOverlayOption` to access rich content
|
|
38244
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
38245
|
+
* that are passed through from `ion-select` but not
|
|
38246
|
+
* part of the public `SelectModalOption` interface.
|
|
38247
|
+
*/
|
|
38248
|
+
const richOption = option;
|
|
38249
|
+
const hasRichContent = !!richOption.startContent || !!richOption.endContent || !!richOption.description;
|
|
38250
|
+
const optionLabelOptions = {
|
|
38251
|
+
id: `modal-option-${index}`,
|
|
38252
|
+
label: richOption.text,
|
|
38253
|
+
startContent: richOption.startContent,
|
|
38254
|
+
endContent: richOption.endContent,
|
|
38255
|
+
description: richOption.description,
|
|
38256
|
+
};
|
|
38257
|
+
const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'radio', 'modal');
|
|
38258
|
+
const defaultJustify = getOverlayLabelJustify(mode, 'radio', 'modal');
|
|
38259
|
+
return (hAsync("ion-item", { lines: "none",
|
|
38114
38260
|
// TODO FW-4784
|
|
38115
|
-
|
|
38116
|
-
|
|
38117
|
-
|
|
38118
|
-
|
|
38119
|
-
|
|
38120
|
-
|
|
38121
|
-
|
|
38122
|
-
|
|
38123
|
-
|
|
38124
|
-
}
|
|
38125
|
-
|
|
38126
|
-
|
|
38127
|
-
this.pendingEnterTarget = null;
|
|
38128
|
-
if (shouldClose) {
|
|
38261
|
+
disabled: option.disabled, class: Object.assign({
|
|
38262
|
+
// TODO FW-4784
|
|
38263
|
+
'item-radio-checked': option.value === checked
|
|
38264
|
+
}, getClassMap(option.cssClass)) }, hAsync("ion-radio", { class: {
|
|
38265
|
+
'select-option-has-rich-content': hasRichContent,
|
|
38266
|
+
}, 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) => {
|
|
38267
|
+
if (ev.key === 'Enter' && !ev.repeat) {
|
|
38268
|
+
this.pendingEnterTarget = ev.currentTarget;
|
|
38269
|
+
}
|
|
38270
|
+
}, onKeyUp: (ev) => {
|
|
38271
|
+
if (ev.key === ' ') {
|
|
38272
|
+
// Space selects and dismisses in one press.
|
|
38129
38273
|
this.closeModal();
|
|
38130
38274
|
}
|
|
38131
|
-
|
|
38132
|
-
|
|
38275
|
+
else if (ev.key === 'Enter') {
|
|
38276
|
+
const shouldClose = this.pendingEnterTarget === ev.currentTarget;
|
|
38277
|
+
this.pendingEnterTarget = null;
|
|
38278
|
+
if (shouldClose) {
|
|
38279
|
+
this.closeModal();
|
|
38280
|
+
}
|
|
38281
|
+
}
|
|
38282
|
+
} }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
|
|
38283
|
+
})));
|
|
38133
38284
|
}
|
|
38134
38285
|
renderCheckboxOptions() {
|
|
38135
|
-
|
|
38286
|
+
const mode = getIonMode$1(this);
|
|
38287
|
+
return this.options.map((option, index) => {
|
|
38288
|
+
var _a, _b;
|
|
38289
|
+
/**
|
|
38290
|
+
* Cast to `SelectOverlayOption` to access rich content
|
|
38291
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
38292
|
+
* that are passed through from `ion-select` but not
|
|
38293
|
+
* part of the public `SelectModalOption` interface.
|
|
38294
|
+
*/
|
|
38295
|
+
const richOption = option;
|
|
38296
|
+
const hasRichContent = !!richOption.startContent || !!richOption.endContent || !!richOption.description;
|
|
38297
|
+
const optionLabelOptions = {
|
|
38298
|
+
id: `modal-option-${index}`,
|
|
38299
|
+
label: richOption.text,
|
|
38300
|
+
startContent: richOption.startContent,
|
|
38301
|
+
endContent: richOption.endContent,
|
|
38302
|
+
description: richOption.description,
|
|
38303
|
+
};
|
|
38304
|
+
const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'checkbox', 'modal');
|
|
38305
|
+
const defaultJustify = getOverlayLabelJustify(mode, 'checkbox', 'modal');
|
|
38306
|
+
return (hAsync("ion-item", {
|
|
38136
38307
|
// TODO FW-4784
|
|
38137
|
-
|
|
38138
|
-
|
|
38139
|
-
|
|
38140
|
-
|
|
38141
|
-
}
|
|
38308
|
+
disabled: option.disabled, class: Object.assign({
|
|
38309
|
+
// TODO FW-4784
|
|
38310
|
+
'item-checkbox-checked': option.checked
|
|
38311
|
+
}, getClassMap(option.cssClass))
|
|
38312
|
+
}, hAsync("ion-checkbox", { class: {
|
|
38313
|
+
'select-option-has-rich-content': hasRichContent,
|
|
38314
|
+
}, 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) => {
|
|
38315
|
+
this.setChecked(ev);
|
|
38316
|
+
this.callOptionHandler(ev);
|
|
38317
|
+
} }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
|
|
38318
|
+
});
|
|
38142
38319
|
}
|
|
38143
38320
|
render() {
|
|
38144
|
-
return (hAsync(Host, { key: '
|
|
38321
|
+
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()))));
|
|
38145
38322
|
}
|
|
38146
38323
|
get el() { return getElement(this); }
|
|
38147
38324
|
static get style() { return {
|
|
@@ -38166,17 +38343,24 @@ class SelectModal {
|
|
|
38166
38343
|
|
|
38167
38344
|
const selectOptionCss = () => `:host{display:none}`;
|
|
38168
38345
|
|
|
38346
|
+
/**
|
|
38347
|
+
* @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
|
|
38348
|
+
*
|
|
38349
|
+
* @slot - Content is placed between the named slots if provided without a slot.
|
|
38350
|
+
* @slot start - Content is placed to the left of the select option text in LTR, and to the right in RTL.
|
|
38351
|
+
* @slot end - Content is placed to the right of the select option text in LTR, and to the left in RTL.
|
|
38352
|
+
*/
|
|
38169
38353
|
class SelectOption {
|
|
38170
38354
|
constructor(hostRef) {
|
|
38171
38355
|
registerInstance(this, hostRef);
|
|
38172
38356
|
this.inputId = `ion-selopt-${selectOptionIds++}`;
|
|
38173
38357
|
/**
|
|
38174
|
-
* If `true`, the user cannot interact with the select option.
|
|
38358
|
+
* If `true`, the user cannot interact with the select option.
|
|
38175
38359
|
*/
|
|
38176
38360
|
this.disabled = false;
|
|
38177
38361
|
}
|
|
38178
38362
|
render() {
|
|
38179
|
-
return hAsync(Host, { key: '
|
|
38363
|
+
return hAsync(Host, { key: '8b8bef0f5a55f18048708c34d3ea3ff0ff2f1d47', role: "option", id: this.inputId, class: getIonMode$1(this) });
|
|
38180
38364
|
}
|
|
38181
38365
|
get el() { return getElement(this); }
|
|
38182
38366
|
static get style() { return selectOptionCss(); }
|
|
@@ -38185,7 +38369,10 @@ class SelectOption {
|
|
|
38185
38369
|
"$tagName$": "ion-select-option",
|
|
38186
38370
|
"$members$": {
|
|
38187
38371
|
"disabled": [4],
|
|
38188
|
-
"value": [8]
|
|
38372
|
+
"value": [8],
|
|
38373
|
+
"description": [1],
|
|
38374
|
+
"labelPlacement": [1, "label-placement"],
|
|
38375
|
+
"justify": [1]
|
|
38189
38376
|
},
|
|
38190
38377
|
"$listeners$": undefined,
|
|
38191
38378
|
"$lazyBundleId$": "-",
|
|
@@ -38194,9 +38381,9 @@ class SelectOption {
|
|
|
38194
38381
|
}
|
|
38195
38382
|
let selectOptionIds = 0;
|
|
38196
38383
|
|
|
38197
|
-
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}`;
|
|
38384
|
+
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}`;
|
|
38198
38385
|
|
|
38199
|
-
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)}`;
|
|
38386
|
+
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)}`;
|
|
38200
38387
|
|
|
38201
38388
|
/**
|
|
38202
38389
|
* @internal
|
|
@@ -38270,41 +38457,91 @@ class SelectPopover {
|
|
|
38270
38457
|
}
|
|
38271
38458
|
}
|
|
38272
38459
|
renderCheckboxOptions(options) {
|
|
38273
|
-
|
|
38460
|
+
const mode = getIonMode$1(this);
|
|
38461
|
+
return options.map((option, index) => {
|
|
38462
|
+
var _a, _b;
|
|
38463
|
+
/**
|
|
38464
|
+
* Cast to `SelectOverlayOption` to access rich content
|
|
38465
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
38466
|
+
* that are passed through from `ion-select` but not
|
|
38467
|
+
* part of the public `SelectPopoverOption` interface.
|
|
38468
|
+
*/
|
|
38469
|
+
const richOption = option;
|
|
38470
|
+
const hasRichContent = !!richOption.startContent || !!richOption.endContent || !!richOption.description;
|
|
38471
|
+
const optionLabelOptions = {
|
|
38472
|
+
id: `popover-option-${index}`,
|
|
38473
|
+
label: richOption.text,
|
|
38474
|
+
startContent: richOption.startContent,
|
|
38475
|
+
endContent: richOption.endContent,
|
|
38476
|
+
description: richOption.description,
|
|
38477
|
+
};
|
|
38478
|
+
const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'checkbox');
|
|
38479
|
+
const defaultJustify = getOverlayLabelJustify(mode, 'checkbox');
|
|
38480
|
+
return (hAsync("ion-item", {
|
|
38274
38481
|
// TODO FW-4784
|
|
38275
|
-
|
|
38276
|
-
|
|
38277
|
-
|
|
38278
|
-
|
|
38279
|
-
}
|
|
38482
|
+
disabled: option.disabled, class: Object.assign({
|
|
38483
|
+
// TODO FW-4784
|
|
38484
|
+
'item-checkbox-checked': option.checked
|
|
38485
|
+
}, getClassMap(option.cssClass))
|
|
38486
|
+
}, hAsync("ion-checkbox", { class: {
|
|
38487
|
+
'select-option-has-rich-content': hasRichContent,
|
|
38488
|
+
}, 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) => {
|
|
38489
|
+
this.setChecked(ev);
|
|
38490
|
+
this.callOptionHandler(ev);
|
|
38491
|
+
} }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
|
|
38492
|
+
});
|
|
38280
38493
|
}
|
|
38281
38494
|
renderRadioOptions(options) {
|
|
38495
|
+
const mode = getIonMode$1(this);
|
|
38282
38496
|
const checked = options.filter((o) => o.checked).map((o) => o.value)[0];
|
|
38283
|
-
return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, options.map((option) =>
|
|
38497
|
+
return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, options.map((option, index) => {
|
|
38498
|
+
var _a, _b;
|
|
38499
|
+
/**
|
|
38500
|
+
* Cast to `SelectOverlayOption` to access rich content
|
|
38501
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
38502
|
+
* that are passed through from `ion-select` but not
|
|
38503
|
+
* part of the public `SelectPopoverOption` interface.
|
|
38504
|
+
*/
|
|
38505
|
+
const richOption = option;
|
|
38506
|
+
const hasRichContent = !!richOption.startContent || !!richOption.endContent || !!richOption.description;
|
|
38507
|
+
const optionLabelOptions = {
|
|
38508
|
+
id: `popover-option-${index}`,
|
|
38509
|
+
label: richOption.text,
|
|
38510
|
+
startContent: richOption.startContent,
|
|
38511
|
+
endContent: richOption.endContent,
|
|
38512
|
+
description: richOption.description,
|
|
38513
|
+
};
|
|
38514
|
+
return (hAsync("ion-item", {
|
|
38284
38515
|
// TODO FW-4784
|
|
38285
|
-
|
|
38286
|
-
|
|
38287
|
-
|
|
38288
|
-
|
|
38289
|
-
|
|
38290
|
-
|
|
38291
|
-
|
|
38292
|
-
|
|
38293
|
-
|
|
38294
|
-
|
|
38295
|
-
|
|
38296
|
-
|
|
38297
|
-
|
|
38298
|
-
if (shouldDismiss) {
|
|
38516
|
+
disabled: option.disabled, class: Object.assign({
|
|
38517
|
+
// TODO FW-4784
|
|
38518
|
+
'item-radio-checked': option.value === checked
|
|
38519
|
+
}, getClassMap(option.cssClass))
|
|
38520
|
+
}, hAsync("ion-radio", { class: {
|
|
38521
|
+
'select-option-has-rich-content': hasRichContent,
|
|
38522
|
+
}, 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) => {
|
|
38523
|
+
if (ev.key === 'Enter' && !ev.repeat) {
|
|
38524
|
+
this.pendingEnterTarget = ev.currentTarget;
|
|
38525
|
+
}
|
|
38526
|
+
}, onKeyUp: (ev) => {
|
|
38527
|
+
if (ev.key === ' ') {
|
|
38528
|
+
// Space selects and dismisses in one press.
|
|
38299
38529
|
this.dismissParentPopover();
|
|
38300
38530
|
}
|
|
38301
|
-
|
|
38302
|
-
|
|
38531
|
+
else if (ev.key === 'Enter') {
|
|
38532
|
+
const shouldDismiss = this.pendingEnterTarget === ev.currentTarget;
|
|
38533
|
+
this.pendingEnterTarget = null;
|
|
38534
|
+
if (shouldDismiss) {
|
|
38535
|
+
this.dismissParentPopover();
|
|
38536
|
+
}
|
|
38537
|
+
}
|
|
38538
|
+
} }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
|
|
38539
|
+
})));
|
|
38303
38540
|
}
|
|
38304
38541
|
render() {
|
|
38305
38542
|
const { header, message, options, subHeader } = this;
|
|
38306
38543
|
const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
|
|
38307
|
-
return (hAsync(Host, { key: '
|
|
38544
|
+
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))));
|
|
38308
38545
|
}
|
|
38309
38546
|
get el() { return getElement(this); }
|
|
38310
38547
|
static get style() { return {
|
|
@@ -38354,11 +38591,11 @@ class SkeletonText {
|
|
|
38354
38591
|
const animated = this.animated && config.getBoolean('animated', true);
|
|
38355
38592
|
const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
|
|
38356
38593
|
const mode = getIonMode$1(this);
|
|
38357
|
-
return (hAsync(Host, { key: '
|
|
38594
|
+
return (hAsync(Host, { key: '887d958d982345ce610730ab5c9ae35010430f75', class: {
|
|
38358
38595
|
[mode]: true,
|
|
38359
38596
|
'skeleton-text-animated': animated,
|
|
38360
38597
|
'in-media': inMedia,
|
|
38361
|
-
} }, hAsync("span", { key: '
|
|
38598
|
+
} }, hAsync("span", { key: 'a184f4b9780a2aada0a16729109ac81436e9c9e1' }, "\u00A0")));
|
|
38362
38599
|
}
|
|
38363
38600
|
get el() { return getElement(this); }
|
|
38364
38601
|
static get style() { return skeletonTextCss(); }
|
|
@@ -38410,7 +38647,7 @@ class Spinner {
|
|
|
38410
38647
|
svgs.push(buildLine(spinner, duration, i, spinner.lines));
|
|
38411
38648
|
}
|
|
38412
38649
|
}
|
|
38413
|
-
return (hAsync(Host, { key: '
|
|
38650
|
+
return (hAsync(Host, { key: 'c35ebd01186e860acb9cac260193f0836424fdf4', class: createColorClasses$1(self.color, {
|
|
38414
38651
|
[mode]: true,
|
|
38415
38652
|
[`spinner-${spinnerName}`]: true,
|
|
38416
38653
|
'spinner-paused': self.paused || config.getBoolean('_testing'),
|
|
@@ -38509,12 +38746,12 @@ class SplitPane {
|
|
|
38509
38746
|
}
|
|
38510
38747
|
render() {
|
|
38511
38748
|
const mode = getIonMode$1(this);
|
|
38512
|
-
return (hAsync(Host, { key: '
|
|
38749
|
+
return (hAsync(Host, { key: '694e989fafcfe2453e0a83b3cb736efaa1eb4fec', class: {
|
|
38513
38750
|
[mode]: true,
|
|
38514
38751
|
// Used internally for styling
|
|
38515
38752
|
[`split-pane-${mode}`]: true,
|
|
38516
38753
|
'split-pane-visible': this.visible,
|
|
38517
|
-
} }, hAsync("slot", { key: '
|
|
38754
|
+
} }, hAsync("slot", { key: 'dde7e9382b62cc11971aa233cf98c2314ae4f720' })));
|
|
38518
38755
|
}
|
|
38519
38756
|
get el() { return getElement(this); }
|
|
38520
38757
|
static get watchers() { return {
|
|
@@ -38586,10 +38823,10 @@ class Tab {
|
|
|
38586
38823
|
}
|
|
38587
38824
|
render() {
|
|
38588
38825
|
const { tab, active, component } = this;
|
|
38589
|
-
return (hAsync(Host, { key: '
|
|
38826
|
+
return (hAsync(Host, { key: '745262368a7f45244da459f4fa1730a46dd3e257', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
|
|
38590
38827
|
'ion-page': component === undefined,
|
|
38591
38828
|
'tab-hidden': !active,
|
|
38592
|
-
} }, hAsync("slot", { key: '
|
|
38829
|
+
} }, hAsync("slot", { key: '823d09a6f93bf7c0dc74f2b8717d1d3a62df1ad8' })));
|
|
38593
38830
|
}
|
|
38594
38831
|
get el() { return getElement(this); }
|
|
38595
38832
|
static get watchers() { return {
|
|
@@ -38703,11 +38940,11 @@ class TabBar {
|
|
|
38703
38940
|
const { color, translucent, keyboardVisible } = this;
|
|
38704
38941
|
const mode = getIonMode$1(this);
|
|
38705
38942
|
const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
|
|
38706
|
-
return (hAsync(Host, { key: '
|
|
38943
|
+
return (hAsync(Host, { key: '148f65df0818e9d220a9b46db74cb89ab94e62d2', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
|
|
38707
38944
|
[mode]: true,
|
|
38708
38945
|
'tab-bar-translucent': translucent,
|
|
38709
38946
|
'tab-bar-hidden': shouldHide,
|
|
38710
|
-
}) }, hAsync("slot", { key: '
|
|
38947
|
+
}) }, hAsync("slot", { key: 'a64e235f3703662e2dd7a834f752cc5b1490adbc' })));
|
|
38711
38948
|
}
|
|
38712
38949
|
get el() { return getElement(this); }
|
|
38713
38950
|
static get watchers() { return {
|
|
@@ -38805,7 +39042,7 @@ class TabButton {
|
|
|
38805
39042
|
rel,
|
|
38806
39043
|
target,
|
|
38807
39044
|
};
|
|
38808
|
-
return (hAsync(Host, { key: '
|
|
39045
|
+
return (hAsync(Host, { key: '1034b5a928ecec49bd8efec3730ea1b11a579cf3', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
|
|
38809
39046
|
[mode]: true,
|
|
38810
39047
|
'tab-selected': selected,
|
|
38811
39048
|
'tab-disabled': disabled,
|
|
@@ -38817,7 +39054,7 @@ class TabButton {
|
|
|
38817
39054
|
'ion-activatable': true,
|
|
38818
39055
|
'ion-selectable': true,
|
|
38819
39056
|
'ion-focusable': true,
|
|
38820
|
-
} }, hAsync("a", Object.assign({ key: '
|
|
39057
|
+
} }, 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" }))));
|
|
38821
39058
|
}
|
|
38822
39059
|
get el() { return getElement(this); }
|
|
38823
39060
|
static get style() { return {
|
|
@@ -39008,7 +39245,7 @@ class Tabs {
|
|
|
39008
39245
|
return Array.from(this.el.querySelectorAll('ion-tab'));
|
|
39009
39246
|
}
|
|
39010
39247
|
render() {
|
|
39011
|
-
return (hAsync(Host, { key: '
|
|
39248
|
+
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" })));
|
|
39012
39249
|
}
|
|
39013
39250
|
get el() { return getElement(this); }
|
|
39014
39251
|
static get style() { return tabsCss(); }
|
|
@@ -39048,9 +39285,9 @@ class Text {
|
|
|
39048
39285
|
}
|
|
39049
39286
|
render() {
|
|
39050
39287
|
const mode = getIonMode$1(this);
|
|
39051
|
-
return (hAsync(Host, { key: '
|
|
39288
|
+
return (hAsync(Host, { key: '41ed8da617ed0e07bbfe96e32a000e1c6503e24e', class: createColorClasses$1(this.color, {
|
|
39052
39289
|
[mode]: true,
|
|
39053
|
-
}) }, hAsync("slot", { key: '
|
|
39290
|
+
}) }, hAsync("slot", { key: 'db8de04a2493537b3037f276b03abd92dfa56847' })));
|
|
39054
39291
|
}
|
|
39055
39292
|
static get style() { return textCss(); }
|
|
39056
39293
|
static get cmpMeta() { return {
|
|
@@ -39511,7 +39748,7 @@ class Textarea {
|
|
|
39511
39748
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
39512
39749
|
*/
|
|
39513
39750
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
|
|
39514
|
-
return (hAsync(Host, { key: '
|
|
39751
|
+
return (hAsync(Host, { key: 'eca1dfed53189408f614661ef3902cdb73d5f5de', class: createColorClasses$1(this.color, {
|
|
39515
39752
|
[mode]: true,
|
|
39516
39753
|
'has-value': hasValue,
|
|
39517
39754
|
'has-focus': hasFocus,
|
|
@@ -39520,7 +39757,7 @@ class Textarea {
|
|
|
39520
39757
|
[`textarea-shape-${shape}`]: shape !== undefined,
|
|
39521
39758
|
[`textarea-label-placement-${labelPlacement}`]: true,
|
|
39522
39759
|
'textarea-disabled': disabled,
|
|
39523
|
-
}) }, hAsync("label", { key: '
|
|
39760
|
+
}) }, 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()));
|
|
39524
39761
|
}
|
|
39525
39762
|
get el() { return getElement(this); }
|
|
39526
39763
|
static get watchers() { return {
|
|
@@ -39589,7 +39826,7 @@ class Thumbnail {
|
|
|
39589
39826
|
registerInstance(this, hostRef);
|
|
39590
39827
|
}
|
|
39591
39828
|
render() {
|
|
39592
|
-
return (hAsync(Host, { key: '
|
|
39829
|
+
return (hAsync(Host, { key: '833e947c683b482a78f8f0df8c9a68e99478bbaa', class: getIonMode$1(this) }, hAsync("slot", { key: '6d1e9e686db88d91379f14121058dbf035d8ded2' })));
|
|
39593
39830
|
}
|
|
39594
39831
|
static get style() { return thumbnailCss(); }
|
|
39595
39832
|
static get cmpMeta() { return {
|
|
@@ -40449,9 +40686,9 @@ class Toast {
|
|
|
40449
40686
|
if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
|
|
40450
40687
|
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);
|
|
40451
40688
|
}
|
|
40452
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
40689
|
+
return (hAsync(Host, Object.assign({ key: '2acb2cd2e12ea0082986495929e4a596d4da2f38', tabindex: "-1" }, this.htmlAttributes, { style: {
|
|
40453
40690
|
zIndex: `${60000 + this.overlayIndex}`,
|
|
40454
|
-
}, 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: '
|
|
40691
|
+
}, 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')))));
|
|
40455
40692
|
}
|
|
40456
40693
|
get el() { return getElement(this); }
|
|
40457
40694
|
static get watchers() { return {
|
|
@@ -40769,7 +41006,7 @@ class Toggle {
|
|
|
40769
41006
|
const value = this.getValue();
|
|
40770
41007
|
const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
|
|
40771
41008
|
renderHiddenInput(true, el, name, checked ? value : '', disabled);
|
|
40772
|
-
return (hAsync(Host, { key: '
|
|
41009
|
+
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, {
|
|
40773
41010
|
[mode]: true,
|
|
40774
41011
|
'in-item': hostContext('ion-item', el),
|
|
40775
41012
|
'toggle-activated': activated,
|
|
@@ -40779,10 +41016,10 @@ class Toggle {
|
|
|
40779
41016
|
[`toggle-alignment-${alignment}`]: alignment !== undefined,
|
|
40780
41017
|
[`toggle-label-placement-${labelPlacement}`]: true,
|
|
40781
41018
|
[`toggle-${rtl}`]: true,
|
|
40782
|
-
}) }, hAsync("label", { key: '
|
|
41019
|
+
}) }, 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: {
|
|
40783
41020
|
'label-text-wrapper': true,
|
|
40784
41021
|
'label-text-wrapper-hidden': !hasLabel,
|
|
40785
|
-
}, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: '
|
|
41022
|
+
}, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: 'c480b96a0ddd926568f73291d71253d6f74438c7' }), this.renderHintText()), hAsync("div", { key: '96a2cbd1673e051a78f8b2b16535ecd3f0ed4339', class: "native-wrapper" }, this.renderToggleControl()))));
|
|
40786
41023
|
}
|
|
40787
41024
|
get el() { return getElement(this); }
|
|
40788
41025
|
static get watchers() { return {
|
|
@@ -40894,10 +41131,10 @@ class Toolbar {
|
|
|
40894
41131
|
this.childrenStyles.forEach((value) => {
|
|
40895
41132
|
Object.assign(childStyles, value);
|
|
40896
41133
|
});
|
|
40897
|
-
return (hAsync(Host, { key: '
|
|
41134
|
+
return (hAsync(Host, { key: '40bad6fa7e94262438da4bbe037dcf8a5fa2df22', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
|
|
40898
41135
|
[mode]: true,
|
|
40899
41136
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
40900
|
-
})) }, hAsync("div", { key: '
|
|
41137
|
+
})) }, 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" }))));
|
|
40901
41138
|
}
|
|
40902
41139
|
get el() { return getElement(this); }
|
|
40903
41140
|
static get style() { return {
|
|
@@ -40943,11 +41180,11 @@ class ToolbarTitle {
|
|
|
40943
41180
|
render() {
|
|
40944
41181
|
const mode = getIonMode$1(this);
|
|
40945
41182
|
const size = this.getSize();
|
|
40946
|
-
return (hAsync(Host, { key: '
|
|
41183
|
+
return (hAsync(Host, { key: 'd9317e8e66cb6112717f5a9c252658777efbd873', class: createColorClasses$1(this.color, {
|
|
40947
41184
|
[mode]: true,
|
|
40948
41185
|
[`title-${size}`]: true,
|
|
40949
41186
|
'title-rtl': document.dir === 'rtl',
|
|
40950
|
-
}) }, hAsync("div", { key: '
|
|
41187
|
+
}) }, hAsync("div", { key: 'a4d011d6d409bf006d8efe33667002edb109820a', class: "toolbar-title" }, hAsync("slot", { key: '4ca3303b957a0e5387f1e9058e5adb4c6275afcc' }))));
|
|
40951
41188
|
}
|
|
40952
41189
|
get el() { return getElement(this); }
|
|
40953
41190
|
static get watchers() { return {
|
|
@@ -41027,10 +41264,8 @@ registerComponents([
|
|
|
41027
41264
|
Nav,
|
|
41028
41265
|
NavLink,
|
|
41029
41266
|
Note,
|
|
41030
|
-
Picker$1,
|
|
41031
41267
|
Picker,
|
|
41032
41268
|
PickerColumn,
|
|
41033
|
-
PickerColumnCmp,
|
|
41034
41269
|
PickerColumnOption,
|
|
41035
41270
|
Popover,
|
|
41036
41271
|
ProgressBar,
|