@ionic/core 8.8.14-dev.11784037956.17449639 → 8.8.14-dev.11784216165.1ecbf364
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-nav.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-router.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 -33
- package/dist/cjs/ion-nav_2.cjs.entry.js +2 -115
- 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 +18 -4
- 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-B9UiYZ4R.js → overlays-DSmSrd_4.js} +27 -30
- 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 -17
- package/dist/collection/components/modal/modal.md.css +0 -8
- package/dist/collection/components/nav/nav.js +4 -219
- 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/route/route.js +1 -1
- package/dist/collection/components/router/utils/dom.js +22 -3
- 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 -29
- package/dist/collection/utils/sanitization/index.js +274 -18
- package/dist/collection/utils/select-option-render.js +119 -0
- package/dist/docs.json +497 -1189
- 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 -33
- package/dist/esm/ion-nav_2.entry.js +3 -116
- 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 +18 -4
- 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-Bmfhux69.js → overlays-DLNOHWNc.js} +28 -31
- package/dist/esm/select-option-render-B8nWZRnd.js +122 -0
- package/dist/html.html-data.json +52 -80
- 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-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-a18dcb3c.entry.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-c474f471.entry.js +4 -0
- package/dist/ionic/{p-cf91e738.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/nav/nav-interface.d.ts +0 -1
- package/dist/types/components/nav/nav.d.ts +2 -22
- package/dist/types/components/route/route.d.ts +1 -1
- 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 +74 -303
- 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 +1410 -1292
- package/hydrate/index.mjs +1410 -1292
- 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-B1BWKArA.js +0 -4
- package/components/p-B4PlLGHT.js +0 -4
- package/components/p-BFsEcwW9.js +0 -4
- package/components/p-CFRyvUvJ.js +0 -4
- package/components/p-CU5rbWAW.js +0 -4
- package/components/p-CgLiHbz0.js +0 -4
- package/components/p-MLyEeL3Q.js +0 -4
- package/components/p-PgMVWD8U.js +0 -4
- package/components/p-k_E4tX5Z.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-01f81ea5.entry.js +0 -4
- package/dist/ionic/p-02473803.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-2f529a55.entry.js +0 -4
- package/dist/ionic/p-485fda23.entry.js +0 -4
- package/dist/ionic/p-48fa7fb1.entry.js +0 -4
- package/dist/ionic/p-4baa5b82.entry.js +0 -4
- package/dist/ionic/p-4d9181c7.entry.js +0 -4
- package/dist/ionic/p-50e1194a.entry.js +0 -4
- package/dist/ionic/p-532eb373.entry.js +0 -4
- package/dist/ionic/p-8fce95d5.entry.js +0 -4
- package/dist/ionic/p-B0zdMdR0.js +0 -4
- package/dist/ionic/p-DzWaWHGc.js +0 -4
- package/dist/ionic/p-a21add2f.entry.js +0 -4
- package/dist/ionic/p-ab60b48a.entry.js +0 -4
- package/dist/ionic/p-ec090e0a.entry.js +0 -4
- package/dist/ionic/p-f386f6ae.entry.js +0 -4
- package/dist/ionic/p-f994dc44.entry.js +0 -4
- package/dist/ionic/p-fd76f647.entry.js +0 -4
- package/dist/ionic/p-fda60562.entry.js +0 -4
- package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +0 -5
- package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +0 -5
- package/dist/types/components/picker-legacy/picker-interface.d.ts +0 -52
- package/dist/types/components/picker-legacy/picker.d.ts +0 -158
- package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
- package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +0 -9
package/hydrate/index.mjs
CHANGED
|
@@ -8039,7 +8039,7 @@ const focusElementInOverlay = (hostToFocus, overlay) => {
|
|
|
8039
8039
|
* Should NOT include: Toast
|
|
8040
8040
|
*/
|
|
8041
8041
|
const trapKeyboardFocus = (ev, doc) => {
|
|
8042
|
-
const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-
|
|
8042
|
+
const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover');
|
|
8043
8043
|
const target = ev.target;
|
|
8044
8044
|
/**
|
|
8045
8045
|
* If no active overlay, ignore this event.
|
|
@@ -8273,7 +8273,7 @@ const dismissOverlay = (doc, data, role, overlayTag, id) => {
|
|
|
8273
8273
|
*/
|
|
8274
8274
|
const getOverlays = (doc, selector) => {
|
|
8275
8275
|
if (selector === undefined) {
|
|
8276
|
-
selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-
|
|
8276
|
+
selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover,ion-toast';
|
|
8277
8277
|
}
|
|
8278
8278
|
return Array.from(doc.querySelectorAll(selector)).filter((c) => c.overlayIndex > 0);
|
|
8279
8279
|
};
|
|
@@ -8335,6 +8335,29 @@ const setRootAriaHidden = (hidden = false) => {
|
|
|
8335
8335
|
viewContainer.removeAttribute('aria-hidden');
|
|
8336
8336
|
}
|
|
8337
8337
|
};
|
|
8338
|
+
/**
|
|
8339
|
+
* Cleans up root `aria-hidden` and `backdrop-no-scroll` when
|
|
8340
|
+
* an overlay is removed from the DOM without going through
|
|
8341
|
+
* the `dismiss()` flow (e.g., when a framework unmounts the
|
|
8342
|
+
* overlay during a route change).
|
|
8343
|
+
*
|
|
8344
|
+
* Should be called from an overlay's `disconnectedCallback`
|
|
8345
|
+
* when the overlay was still presented at the time of removal.
|
|
8346
|
+
*/
|
|
8347
|
+
const cleanupRootFocusTrapAccessibility = () => {
|
|
8348
|
+
if (typeof document === 'undefined') {
|
|
8349
|
+
return;
|
|
8350
|
+
}
|
|
8351
|
+
const remainingOverlays = getPresentedOverlays(document);
|
|
8352
|
+
const hasRemainingLocking = remainingOverlays.some((o) => {
|
|
8353
|
+
const el = o;
|
|
8354
|
+
return el.tagName !== 'ION-TOAST' && el.focusTrap !== false && isBackdropAlwaysBlocking(el);
|
|
8355
|
+
});
|
|
8356
|
+
if (!hasRemainingLocking) {
|
|
8357
|
+
setRootAriaHidden(false);
|
|
8358
|
+
document.body.classList.remove(BACKDROP_NO_SCROLL);
|
|
8359
|
+
}
|
|
8360
|
+
};
|
|
8338
8361
|
const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts) => {
|
|
8339
8362
|
var _a, _b;
|
|
8340
8363
|
if (overlay.presented) {
|
|
@@ -8400,29 +8423,7 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
|
|
|
8400
8423
|
* to the overlay container.
|
|
8401
8424
|
*/
|
|
8402
8425
|
if (overlay.keyboardClose && (document.activeElement === null || !overlay.el.contains(document.activeElement))) {
|
|
8403
|
-
|
|
8404
|
-
* Some overlays (e.g. modal) put the dialog role and label on the
|
|
8405
|
-
* `.ion-overlay-wrapper` rather than the host. Screen readers need
|
|
8406
|
-
* focus on the element with role="dialog" to properly announce and
|
|
8407
|
-
* navigate the dialog. The `[tabindex]` qualifier ensures we only
|
|
8408
|
-
* target such a wrapper when it is actually focusable; otherwise
|
|
8409
|
-
* (e.g. picker-legacy, whose role="dialog" wrapper has no tabindex)
|
|
8410
|
-
* `focus()` would be a no-op, so we fall back to the host.
|
|
8411
|
-
*/
|
|
8412
|
-
const overlayWrapper = getElementRoot(overlay.el).querySelector('[role="dialog"][tabindex]');
|
|
8413
|
-
const focusTarget = overlayWrapper !== null && overlayWrapper !== void 0 ? overlayWrapper : overlay.el;
|
|
8414
|
-
/**
|
|
8415
|
-
* `preventScroll` keeps this a pure focus move so the viewport does not
|
|
8416
|
-
* jump when the wrapper is partially off-screen (e.g. a sheet modal).
|
|
8417
|
-
* Guard the options call so an older engine that mishandles it can never
|
|
8418
|
-
* reject present(); we fall back to a plain focus() in that case.
|
|
8419
|
-
*/
|
|
8420
|
-
try {
|
|
8421
|
-
focusTarget.focus({ preventScroll: true });
|
|
8422
|
-
}
|
|
8423
|
-
catch (_c) {
|
|
8424
|
-
focusTarget.focus();
|
|
8425
|
-
}
|
|
8426
|
+
overlay.el.focus();
|
|
8426
8427
|
}
|
|
8427
8428
|
/**
|
|
8428
8429
|
* If this overlay was previously dismissed without being
|
|
@@ -8758,6 +8759,539 @@ const createTriggerController = () => {
|
|
|
8758
8759
|
};
|
|
8759
8760
|
const FOCUS_TRAP_DISABLE_CLASS = 'ion-disable-focus-trap';
|
|
8760
8761
|
|
|
8762
|
+
/**
|
|
8763
|
+
* Sanitize an untrusted HTML string.
|
|
8764
|
+
*
|
|
8765
|
+
* Parses the string into a detached DOM, removes blocked tags, strips
|
|
8766
|
+
* attributes outside the narrow `domStringAllowedAttributes` list (refer
|
|
8767
|
+
* `sanitizeElement`), and scrubs script-scheme URLs. Returns the sanitized
|
|
8768
|
+
* HTML string.
|
|
8769
|
+
*
|
|
8770
|
+
* Use this when you have an HTML string from an unknown source and need to
|
|
8771
|
+
* render it via `innerHTML`. Use `sanitizeDOMTree` instead when you already
|
|
8772
|
+
* have a DOM tree and want to sanitize it in place without a string round
|
|
8773
|
+
* trip. The two apply the same dangerous-vector scrubbing but different
|
|
8774
|
+
* attribute allowlists: this path stays narrow so existing consumers
|
|
8775
|
+
* (toast, loading, alert message, etc.) are unaffected, while
|
|
8776
|
+
* `sanitizeDOMTree` uses the wider rich-content allowlist.
|
|
8777
|
+
*
|
|
8778
|
+
* @param untrustedString - The HTML string to sanitize. Pass an
|
|
8779
|
+
* `IonicSafeString` to bypass sanitization, or `undefined` to short-circuit.
|
|
8780
|
+
* @returns The sanitized HTML string, or `undefined` if the input was
|
|
8781
|
+
* `undefined`. Returns `''` if sanitization fails or the input contains
|
|
8782
|
+
* an inline `onload=` handler.
|
|
8783
|
+
*/
|
|
8784
|
+
const sanitizeDOMString = (untrustedString) => {
|
|
8785
|
+
try {
|
|
8786
|
+
if (untrustedString instanceof IonicSafeString) {
|
|
8787
|
+
return untrustedString.value;
|
|
8788
|
+
}
|
|
8789
|
+
if (!isSanitizerEnabled() || typeof untrustedString !== 'string' || untrustedString === '') {
|
|
8790
|
+
return untrustedString;
|
|
8791
|
+
}
|
|
8792
|
+
/**
|
|
8793
|
+
* onload is fired when appending to a document
|
|
8794
|
+
* fragment in Chrome. If a string
|
|
8795
|
+
* contains onload then we should not
|
|
8796
|
+
* attempt to add this to the fragment.
|
|
8797
|
+
*/
|
|
8798
|
+
if (untrustedString.includes('onload=')) {
|
|
8799
|
+
return '';
|
|
8800
|
+
}
|
|
8801
|
+
/**
|
|
8802
|
+
* Create a document fragment
|
|
8803
|
+
* separate from the main DOM,
|
|
8804
|
+
* create a div to do our work in
|
|
8805
|
+
*/
|
|
8806
|
+
const documentFragment = document.createDocumentFragment();
|
|
8807
|
+
const workingDiv = document.createElement('div');
|
|
8808
|
+
documentFragment.appendChild(workingDiv);
|
|
8809
|
+
workingDiv.innerHTML = untrustedString;
|
|
8810
|
+
/**
|
|
8811
|
+
* Remove any elements
|
|
8812
|
+
* that are blocked
|
|
8813
|
+
*/
|
|
8814
|
+
blockedTags.forEach((blockedTag) => {
|
|
8815
|
+
const getElementsToRemove = documentFragment.querySelectorAll(blockedTag);
|
|
8816
|
+
for (let elementIndex = getElementsToRemove.length - 1; elementIndex >= 0; elementIndex--) {
|
|
8817
|
+
const element = getElementsToRemove[elementIndex];
|
|
8818
|
+
if (element.parentNode) {
|
|
8819
|
+
element.parentNode.removeChild(element);
|
|
8820
|
+
}
|
|
8821
|
+
else {
|
|
8822
|
+
documentFragment.removeChild(element);
|
|
8823
|
+
}
|
|
8824
|
+
/**
|
|
8825
|
+
* We still need to sanitize
|
|
8826
|
+
* the children of this element
|
|
8827
|
+
* as they are left behind
|
|
8828
|
+
*/
|
|
8829
|
+
const childElements = getElementChildren(element);
|
|
8830
|
+
/* eslint-disable-next-line */
|
|
8831
|
+
for (let childIndex = 0; childIndex < childElements.length; childIndex++) {
|
|
8832
|
+
sanitizeElement(childElements[childIndex], domStringAllowedAttributes);
|
|
8833
|
+
}
|
|
8834
|
+
}
|
|
8835
|
+
});
|
|
8836
|
+
/**
|
|
8837
|
+
* Go through remaining elements and remove
|
|
8838
|
+
* non-allowed attribs
|
|
8839
|
+
*/
|
|
8840
|
+
// IE does not support .children on document fragments, only .childNodes
|
|
8841
|
+
const dfChildren = getElementChildren(documentFragment);
|
|
8842
|
+
/* eslint-disable-next-line */
|
|
8843
|
+
for (let childIndex = 0; childIndex < dfChildren.length; childIndex++) {
|
|
8844
|
+
sanitizeElement(dfChildren[childIndex], domStringAllowedAttributes);
|
|
8845
|
+
}
|
|
8846
|
+
// Append document fragment to div
|
|
8847
|
+
const fragmentDiv = document.createElement('div');
|
|
8848
|
+
fragmentDiv.appendChild(documentFragment);
|
|
8849
|
+
// First child is always the div we did our work in
|
|
8850
|
+
const getInnerDiv = fragmentDiv.querySelector('div');
|
|
8851
|
+
return getInnerDiv !== null ? getInnerDiv.innerHTML : fragmentDiv.innerHTML;
|
|
8852
|
+
}
|
|
8853
|
+
catch (err) {
|
|
8854
|
+
printIonError('sanitizeDOMString', err);
|
|
8855
|
+
return '';
|
|
8856
|
+
}
|
|
8857
|
+
};
|
|
8858
|
+
/**
|
|
8859
|
+
* Sanitize an entire trusted DOM tree in place.
|
|
8860
|
+
*
|
|
8861
|
+
* Removes blocked tags (`script`, `iframe`, etc.) from the subtree and
|
|
8862
|
+
* then sanitizes attributes on every remaining element using the wider
|
|
8863
|
+
* `richContentAllowedAttributes` allowlist (refer `sanitizeElement`).
|
|
8864
|
+
* Component presentational attributes (`size`, `color`, `shape`, inline
|
|
8865
|
+
* SVG, `aria-*`, `data-*`) are preserved; `style`, event handlers (`on*`),
|
|
8866
|
+
* form/navigation-hijack attributes, script-scheme URLs, and non-image
|
|
8867
|
+
* `data:` URLs are stripped.
|
|
8868
|
+
*
|
|
8869
|
+
* Use this when you have a DOM tree the developer controls (e.g.
|
|
8870
|
+
* cloned slot content from a component) and you need to render it
|
|
8871
|
+
* elsewhere safely.
|
|
8872
|
+
*
|
|
8873
|
+
* @param root - The root element whose subtree will be sanitized in
|
|
8874
|
+
* place. No-op when the sanitizer is disabled via `Ionic.config`.
|
|
8875
|
+
*/
|
|
8876
|
+
const sanitizeDOMTree = (root) => {
|
|
8877
|
+
if (!isSanitizerEnabled()) {
|
|
8878
|
+
return;
|
|
8879
|
+
}
|
|
8880
|
+
blockedTags.forEach((tag) => {
|
|
8881
|
+
const matches = root.querySelectorAll(tag);
|
|
8882
|
+
for (let i = matches.length - 1; i >= 0; i--) {
|
|
8883
|
+
matches[i].remove();
|
|
8884
|
+
}
|
|
8885
|
+
});
|
|
8886
|
+
sanitizeElement(root, richContentAllowedAttributes, richContentAllowedAttributePrefixes);
|
|
8887
|
+
};
|
|
8888
|
+
/**
|
|
8889
|
+
* Clean up current element based on allowed attributes
|
|
8890
|
+
* and then recursively dig down into any child elements to
|
|
8891
|
+
* clean those up as well
|
|
8892
|
+
*/
|
|
8893
|
+
// TODO(FW-2832): type (using Element triggers other type errors as well)
|
|
8894
|
+
const sanitizeElement = (element, allowedAttributes, allowedAttributePrefixes = []) => {
|
|
8895
|
+
// IE uses childNodes, so ignore nodes that are not elements
|
|
8896
|
+
if (element.nodeType && element.nodeType !== 1) {
|
|
8897
|
+
return;
|
|
8898
|
+
}
|
|
8899
|
+
/**
|
|
8900
|
+
* If attributes is not a NamedNodeMap
|
|
8901
|
+
* then we should remove the element entirely.
|
|
8902
|
+
* This helps avoid DOM Clobbering attacks where
|
|
8903
|
+
* attributes is overridden.
|
|
8904
|
+
*/
|
|
8905
|
+
if (typeof NamedNodeMap !== 'undefined' && !(element.attributes instanceof NamedNodeMap)) {
|
|
8906
|
+
element.remove();
|
|
8907
|
+
return;
|
|
8908
|
+
}
|
|
8909
|
+
/**
|
|
8910
|
+
* Always strip `style` (CSS injection, `background:url()` beaconing, UI
|
|
8911
|
+
* spoofing). It is never on the allowlist, but it is removed explicitly
|
|
8912
|
+
* here because some engines (e.g. jsdom) don't enumerate the CSSOM-backed
|
|
8913
|
+
* `style` attribute in `element.attributes`, which would let the loop
|
|
8914
|
+
* below skip over it.
|
|
8915
|
+
*/
|
|
8916
|
+
element.removeAttribute('style');
|
|
8917
|
+
for (let i = element.attributes.length - 1; i >= 0; i--) {
|
|
8918
|
+
const attribute = element.attributes.item(i);
|
|
8919
|
+
const attributeName = attribute.name;
|
|
8920
|
+
const lowerName = attributeName.toLowerCase();
|
|
8921
|
+
/**
|
|
8922
|
+
* Remove any attribute that is not on the allowlist. This drops event
|
|
8923
|
+
* handlers (`on*`), `style`, the form/navigation-hijack attributes
|
|
8924
|
+
* (`formaction`, `action`, `target`), namespaced attributes like
|
|
8925
|
+
* `xlink:href`, and anything else not explicitly known to be safe.
|
|
8926
|
+
*/
|
|
8927
|
+
if (!isAttributeAllowed(lowerName, allowedAttributes, allowedAttributePrefixes)) {
|
|
8928
|
+
element.removeAttribute(attributeName);
|
|
8929
|
+
continue;
|
|
8930
|
+
}
|
|
8931
|
+
// clean up any allowed attribs
|
|
8932
|
+
// that attempt to do any JS funny-business
|
|
8933
|
+
const attributeValue = attribute.value;
|
|
8934
|
+
if (attributeValue == null) {
|
|
8935
|
+
continue;
|
|
8936
|
+
}
|
|
8937
|
+
/**
|
|
8938
|
+
* Scrub dangerous schemes from the value. The value is normalized first
|
|
8939
|
+
* (whitespace and ASCII control characters removed) so entity-obfuscated
|
|
8940
|
+
* payloads such as `java	script:`, which the parser decodes to
|
|
8941
|
+
* `java\tscript:`, are still caught. Normalizing the value also covers
|
|
8942
|
+
* namespaced attributes, where the previous `element[attributeName]`
|
|
8943
|
+
* property reflection returned `undefined` and let them slip through.
|
|
8944
|
+
*/
|
|
8945
|
+
const normalizedValue = attributeValue.replace(controlCharactersAndWhitespace, '').toLowerCase();
|
|
8946
|
+
// Script schemes are never allowed, on any attribute.
|
|
8947
|
+
if (normalizedValue.includes('javascript:') || normalizedValue.includes('vbscript:')) {
|
|
8948
|
+
element.removeAttribute(attributeName);
|
|
8949
|
+
continue;
|
|
8950
|
+
}
|
|
8951
|
+
/**
|
|
8952
|
+
* For URL-bearing attributes, allow `data:` URIs only for raster
|
|
8953
|
+
* images. Document-bearing types (`text/html`, `image/svg+xml`,
|
|
8954
|
+
* `application/*`, etc.) can carry markup or script when navigated to
|
|
8955
|
+
* or rendered, so they are stripped, while safe image types are kept so
|
|
8956
|
+
* inline images keep working.
|
|
8957
|
+
*/
|
|
8958
|
+
if (urlAttributes.includes(lowerName) &&
|
|
8959
|
+
normalizedValue.startsWith('data:') &&
|
|
8960
|
+
!safeDataImageUri.test(normalizedValue)) {
|
|
8961
|
+
element.removeAttribute(attributeName);
|
|
8962
|
+
}
|
|
8963
|
+
}
|
|
8964
|
+
/**
|
|
8965
|
+
* Sanitize any nested children
|
|
8966
|
+
*/
|
|
8967
|
+
const childElements = getElementChildren(element);
|
|
8968
|
+
/* eslint-disable-next-line */
|
|
8969
|
+
for (let i = 0; i < childElements.length; i++) {
|
|
8970
|
+
sanitizeElement(childElements[i], allowedAttributes, allowedAttributePrefixes);
|
|
8971
|
+
}
|
|
8972
|
+
};
|
|
8973
|
+
/**
|
|
8974
|
+
* IE doesn't always support .children
|
|
8975
|
+
* so we revert to .childNodes instead
|
|
8976
|
+
*/
|
|
8977
|
+
// TODO(FW-2832): type
|
|
8978
|
+
const getElementChildren = (el) => {
|
|
8979
|
+
return el.children != null ? el.children : el.childNodes;
|
|
8980
|
+
};
|
|
8981
|
+
const isSanitizerEnabled = () => {
|
|
8982
|
+
var _a;
|
|
8983
|
+
const win = window;
|
|
8984
|
+
const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config;
|
|
8985
|
+
if (config) {
|
|
8986
|
+
if (config.get) {
|
|
8987
|
+
return config.get('sanitizerEnabled', true);
|
|
8988
|
+
}
|
|
8989
|
+
else {
|
|
8990
|
+
return config.sanitizerEnabled === true || config.sanitizerEnabled === undefined;
|
|
8991
|
+
}
|
|
8992
|
+
}
|
|
8993
|
+
return true;
|
|
8994
|
+
};
|
|
8995
|
+
/**
|
|
8996
|
+
* Mirror known custom-element DOM properties onto attributes so they
|
|
8997
|
+
* survive `cloneNode`. Call this on a DOM subtree before cloning it for
|
|
8998
|
+
* rendering elsewhere (e.g. cloning slotted option content into an
|
|
8999
|
+
* overlay).
|
|
9000
|
+
*
|
|
9001
|
+
* Only sets the attribute when the property holds a non-empty string
|
|
9002
|
+
* and the attribute isn't already present, so existing attributes
|
|
9003
|
+
* take precedence.
|
|
9004
|
+
*
|
|
9005
|
+
* @param root - The root element whose subtree (and itself) will be
|
|
9006
|
+
* inspected.
|
|
9007
|
+
*/
|
|
9008
|
+
const reflectPropertiesToAttributes = (root) => {
|
|
9009
|
+
const candidates = [];
|
|
9010
|
+
if (root.tagName in elementPropsToReflect) {
|
|
9011
|
+
candidates.push(root);
|
|
9012
|
+
}
|
|
9013
|
+
for (const tagName of Object.keys(elementPropsToReflect)) {
|
|
9014
|
+
candidates.push(...Array.from(root.querySelectorAll(tagName.toLowerCase())));
|
|
9015
|
+
}
|
|
9016
|
+
for (const el of candidates) {
|
|
9017
|
+
if (!(el.tagName in elementPropsToReflect)) {
|
|
9018
|
+
continue;
|
|
9019
|
+
}
|
|
9020
|
+
const props = elementPropsToReflect[el.tagName];
|
|
9021
|
+
for (const prop of props) {
|
|
9022
|
+
const value = el[prop];
|
|
9023
|
+
if (typeof value === 'string' && value.length > 0 && !el.hasAttribute(prop)) {
|
|
9024
|
+
el.setAttribute(prop, value);
|
|
9025
|
+
}
|
|
9026
|
+
}
|
|
9027
|
+
}
|
|
9028
|
+
};
|
|
9029
|
+
/**
|
|
9030
|
+
* Attribute allowlist for `sanitizeDOMString`. Intentionally narrow: this
|
|
9031
|
+
* path sanitizes developer HTML strings rendered via `innerHTML` by
|
|
9032
|
+
* `ion-toast`, `ion-loading`, the `ion-alert` message,
|
|
9033
|
+
* `ion-refresher-content`, and `ion-infinite-scroll-content`, so the list
|
|
9034
|
+
* is kept to the minimum those have always needed. Broadening it here would
|
|
9035
|
+
* change sanitization output for all of those consumers, so the wider
|
|
9036
|
+
* rich-content allowlist below is deliberately scoped to `sanitizeDOMTree`
|
|
9037
|
+
* instead.
|
|
9038
|
+
*/
|
|
9039
|
+
const domStringAllowedAttributes = ['class', 'id', 'href', 'src', 'name', 'slot'];
|
|
9040
|
+
/**
|
|
9041
|
+
* Attribute allowlist for `sanitizeDOMTree` (the select rich-content path).
|
|
9042
|
+
* Covers global HTML attributes, the Ionic component presentational props
|
|
9043
|
+
* that cloned rich content (e.g. `ion-select-option` markup) relies on, and
|
|
9044
|
+
* the inert SVG presentation attributes used by inline icons.
|
|
9045
|
+
*
|
|
9046
|
+
* `aria-*` and `data-*` are allowed separately by prefix (refer
|
|
9047
|
+
* `richContentAllowedAttributePrefixes`) since they are inert and not worth
|
|
9048
|
+
* enumerating. URL-bearing names (`href`, `src`) are allowed here, but
|
|
9049
|
+
* their values are still scrubbed for script schemes in `sanitizeElement`.
|
|
9050
|
+
*
|
|
9051
|
+
* Notably absent: `style`, event handlers (`on*`), and the
|
|
9052
|
+
* form/navigation-hijack attributes (`formaction`, `action`, `target`),
|
|
9053
|
+
* which are therefore stripped.
|
|
9054
|
+
*/
|
|
9055
|
+
const richContentAllowedAttributes = [
|
|
9056
|
+
// Global / structural
|
|
9057
|
+
'class',
|
|
9058
|
+
'id',
|
|
9059
|
+
'slot',
|
|
9060
|
+
'name',
|
|
9061
|
+
'title',
|
|
9062
|
+
'alt',
|
|
9063
|
+
'lang',
|
|
9064
|
+
'dir',
|
|
9065
|
+
'role',
|
|
9066
|
+
'type',
|
|
9067
|
+
'value',
|
|
9068
|
+
'disabled',
|
|
9069
|
+
'width',
|
|
9070
|
+
'height',
|
|
9071
|
+
'href',
|
|
9072
|
+
'src',
|
|
9073
|
+
// Ionic component presentational props
|
|
9074
|
+
'color',
|
|
9075
|
+
'size',
|
|
9076
|
+
'shape',
|
|
9077
|
+
'fill',
|
|
9078
|
+
'expand',
|
|
9079
|
+
'mode',
|
|
9080
|
+
'theme',
|
|
9081
|
+
'icon',
|
|
9082
|
+
'label',
|
|
9083
|
+
'label-placement',
|
|
9084
|
+
'justify',
|
|
9085
|
+
'inset',
|
|
9086
|
+
'lines',
|
|
9087
|
+
'ios',
|
|
9088
|
+
'md',
|
|
9089
|
+
// SVG presentation attributes (compared lowercased, e.g. `viewBox`)
|
|
9090
|
+
'xmlns',
|
|
9091
|
+
'viewbox',
|
|
9092
|
+
'preserveaspectratio',
|
|
9093
|
+
'stroke',
|
|
9094
|
+
'stroke-width',
|
|
9095
|
+
'stroke-linecap',
|
|
9096
|
+
'stroke-linejoin',
|
|
9097
|
+
'stroke-opacity',
|
|
9098
|
+
'stroke-dasharray',
|
|
9099
|
+
'fill-rule',
|
|
9100
|
+
'fill-opacity',
|
|
9101
|
+
'clip-rule',
|
|
9102
|
+
'd',
|
|
9103
|
+
'points',
|
|
9104
|
+
'cx',
|
|
9105
|
+
'cy',
|
|
9106
|
+
'r',
|
|
9107
|
+
'rx',
|
|
9108
|
+
'ry',
|
|
9109
|
+
'x',
|
|
9110
|
+
'y',
|
|
9111
|
+
'x1',
|
|
9112
|
+
'y1',
|
|
9113
|
+
'x2',
|
|
9114
|
+
'y2',
|
|
9115
|
+
'transform',
|
|
9116
|
+
'opacity',
|
|
9117
|
+
];
|
|
9118
|
+
/**
|
|
9119
|
+
* Attribute-name prefixes that are always safe to keep in the rich-content
|
|
9120
|
+
* path. `aria-*` and `data-*` attributes cannot execute script or load
|
|
9121
|
+
* resources, so they are allowed wholesale rather than enumerated by name.
|
|
9122
|
+
*/
|
|
9123
|
+
const richContentAllowedAttributePrefixes = ['aria-', 'data-'];
|
|
9124
|
+
/**
|
|
9125
|
+
* Whether an attribute name (already lowercased) is safe to keep, by exact
|
|
9126
|
+
* match or by an allowed prefix.
|
|
9127
|
+
*/
|
|
9128
|
+
const isAttributeAllowed = (lowerName, allowedAttributes, allowedAttributePrefixes) => {
|
|
9129
|
+
if (allowedAttributes.includes(lowerName)) {
|
|
9130
|
+
return true;
|
|
9131
|
+
}
|
|
9132
|
+
return allowedAttributePrefixes.some((prefix) => lowerName.startsWith(prefix));
|
|
9133
|
+
};
|
|
9134
|
+
/**
|
|
9135
|
+
* Matches ASCII control characters and whitespace (including the
|
|
9136
|
+
* non-breaking space). Used to normalize attribute values before matching
|
|
9137
|
+
* a URL scheme so entity-obfuscated payloads such as `java	script:`
|
|
9138
|
+
* (decoded by the parser to `java\tscript:`) can't smuggle a scheme past
|
|
9139
|
+
* the check.
|
|
9140
|
+
*/
|
|
9141
|
+
// eslint-disable-next-line no-control-regex -- matching control characters is the point
|
|
9142
|
+
const controlCharactersAndWhitespace = /[\u0000-\u0020\u007f-\u00a0]/g;
|
|
9143
|
+
/**
|
|
9144
|
+
* Attributes whose values are URLs. Their values are scheme-checked in
|
|
9145
|
+
* `sanitizeElement` (e.g. `data:` filtering) beyond the script-scheme scrub
|
|
9146
|
+
* applied to every attribute.
|
|
9147
|
+
*/
|
|
9148
|
+
const urlAttributes = ['href', 'src'];
|
|
9149
|
+
/**
|
|
9150
|
+
* Matches a `data:` URI for a raster image type that cannot carry script.
|
|
9151
|
+
* `image/svg+xml` is deliberately excluded (SVG can execute script), as are
|
|
9152
|
+
* document types like `text/html` and `application/*`. The value is already
|
|
9153
|
+
* lowercased and whitespace-stripped before this is tested.
|
|
9154
|
+
*/
|
|
9155
|
+
const safeDataImageUri = /^data:image\/(?:png|jpe?g|gif|webp|bmp|avif|x-icon|vnd\.microsoft\.icon)[;,]/;
|
|
9156
|
+
/**
|
|
9157
|
+
* Tags removed entirely (with their subtree) before attribute sanitization.
|
|
9158
|
+
* Exported so tests can assert the set without hardcoding it.
|
|
9159
|
+
*/
|
|
9160
|
+
const blockedTags = ['script', 'style', 'iframe', 'meta', 'link', 'object', 'embed', 'base'];
|
|
9161
|
+
/**
|
|
9162
|
+
* Properties on custom elements that frameworks (Vue, Angular) often
|
|
9163
|
+
* set as DOM properties rather than attributes. `cloneNode` only copies
|
|
9164
|
+
* attributes, so these values are lost when slotted content is cloned
|
|
9165
|
+
* into an overlay. For each known custom element, we mirror the listed
|
|
9166
|
+
* properties onto attributes so the cloned copy still has the data it
|
|
9167
|
+
* needs to render.
|
|
9168
|
+
*
|
|
9169
|
+
* Keyed by uppercased tagName so the lookup matches `Element.tagName`.
|
|
9170
|
+
*/
|
|
9171
|
+
const elementPropsToReflect = {
|
|
9172
|
+
'ION-ICON': ['icon', 'name', 'src', 'ios', 'md'],
|
|
9173
|
+
};
|
|
9174
|
+
class IonicSafeString {
|
|
9175
|
+
constructor(value) {
|
|
9176
|
+
this.value = value;
|
|
9177
|
+
}
|
|
9178
|
+
}
|
|
9179
|
+
|
|
9180
|
+
/**
|
|
9181
|
+
* Converts a DOM node into a Stencil VNode (or text string) so the
|
|
9182
|
+
* resulting tree is rendered through the component's normal render
|
|
9183
|
+
* path. Rendering through Stencil ensures that scoped CSS classes
|
|
9184
|
+
* (e.g. `sc-ion-action-sheet-ionic`) are applied to every element.
|
|
9185
|
+
*
|
|
9186
|
+
* Highly recommended to pre-sanitize the source DOM (see
|
|
9187
|
+
* `getOptionContent` in select.tsx). This function performs pure
|
|
9188
|
+
* structural conversion — no security filtering.
|
|
9189
|
+
*
|
|
9190
|
+
* Preserves attributes only — properties set imperatively on the source
|
|
9191
|
+
* element (e.g. `input.value` after a user types) won't carry through.
|
|
9192
|
+
* In practice this isn't a concern: interactive controls shouldn't
|
|
9193
|
+
* appear in select-option rich content since they'd nest inside the
|
|
9194
|
+
* overlay's button/radio/checkbox wrapper, which is invalid HTML and
|
|
9195
|
+
* an accessibility issue.
|
|
9196
|
+
*
|
|
9197
|
+
* @param node - The DOM node to convert. Text nodes become strings,
|
|
9198
|
+
* element nodes become VNodes, and any other node types are skipped.
|
|
9199
|
+
* @param keyPrefix - String prefix used to build a stable VNode key,
|
|
9200
|
+
* so Stencil's diff can preserve elements across re-renders.
|
|
9201
|
+
* @param index - Position of this node among its siblings. Combined
|
|
9202
|
+
* with `keyPrefix` to form the final unique key.
|
|
9203
|
+
* @returns The converted VNode, a text string, or `null` if the node
|
|
9204
|
+
* type isn't supported.
|
|
9205
|
+
*
|
|
9206
|
+
* @internal Exported only so it can be unit tested; not part of the
|
|
9207
|
+
* public API.
|
|
9208
|
+
*/
|
|
9209
|
+
const cloneToVNode = (node, keyPrefix, index) => {
|
|
9210
|
+
var _a;
|
|
9211
|
+
if (node.nodeType === Node.TEXT_NODE) {
|
|
9212
|
+
return (_a = node.textContent) !== null && _a !== void 0 ? _a : '';
|
|
9213
|
+
}
|
|
9214
|
+
if (node.nodeType !== Node.ELEMENT_NODE) {
|
|
9215
|
+
return null;
|
|
9216
|
+
}
|
|
9217
|
+
const el = node;
|
|
9218
|
+
const tag = el.tagName.toLowerCase();
|
|
9219
|
+
const key = `${keyPrefix}-${index}`;
|
|
9220
|
+
const attrs = { key };
|
|
9221
|
+
for (let i = 0; i < el.attributes.length; i++) {
|
|
9222
|
+
const attr = el.attributes.item(i);
|
|
9223
|
+
attrs[attr.name] = attr.value;
|
|
9224
|
+
}
|
|
9225
|
+
const children = Array.from(el.childNodes)
|
|
9226
|
+
.map((child, i) => cloneToVNode(child, key, i))
|
|
9227
|
+
.filter((c) => c !== null);
|
|
9228
|
+
return hAsync(tag, attrs, children);
|
|
9229
|
+
};
|
|
9230
|
+
/**
|
|
9231
|
+
* Renders cloned DOM content as Stencil JSX. Walking the source DOM
|
|
9232
|
+
* into VNodes (rather than injecting it via innerHTML) keeps the
|
|
9233
|
+
* content inside Stencil's render path, so scoped CSS classes are
|
|
9234
|
+
* applied automatically and component attributes like `size` or
|
|
9235
|
+
* `color` survive intact.
|
|
9236
|
+
*
|
|
9237
|
+
* Span elements should be used when this content renders within buttons,
|
|
9238
|
+
* depending on the select interface. Buttons can only have phrasing
|
|
9239
|
+
* content to prevent accessibility issues.
|
|
9240
|
+
*
|
|
9241
|
+
* @param id - Unique identifier for generating stable virtual DOM keys.
|
|
9242
|
+
* @param content - The HTMLElement container whose child nodes will be cloned.
|
|
9243
|
+
* @param className - CSS class applied to the wrapper element.
|
|
9244
|
+
* @param useSpan - Whether to use a span element instead of a div for the wrapper.
|
|
9245
|
+
*/
|
|
9246
|
+
const renderClonedContent = (id, content, className, useSpan = false) => {
|
|
9247
|
+
const Tag = useSpan ? 'span' : 'div';
|
|
9248
|
+
const keyPrefix = `${className}-${id}`;
|
|
9249
|
+
/**
|
|
9250
|
+
* Do not remove. This is the only sanitization pass for callers that pass
|
|
9251
|
+
* an `HTMLElement` straight to `renderOptionLabel` (e.g. vanilla JS)
|
|
9252
|
+
* without going through `getOptionContent`, which sanitizes upstream.
|
|
9253
|
+
* `cloneToVNode` does pure structural conversion and no security
|
|
9254
|
+
* filtering, so dropping this call would reopen an XSS hole on the
|
|
9255
|
+
* direct `HTMLElement` path.
|
|
9256
|
+
*/
|
|
9257
|
+
sanitizeDOMTree(content);
|
|
9258
|
+
return (hAsync(Tag, { class: className, key: keyPrefix }, Array.from(content.childNodes).map((child, i) => cloneToVNode(child, keyPrefix, i))));
|
|
9259
|
+
};
|
|
9260
|
+
/**
|
|
9261
|
+
* Renders the label content for a select option within an overlay
|
|
9262
|
+
* interface based on the presence of rich content.
|
|
9263
|
+
*
|
|
9264
|
+
* Span elements should be used when this content renders within buttons,
|
|
9265
|
+
* depending on the select interface. Buttons can only have phrasing
|
|
9266
|
+
* content to prevent accessibility issues.
|
|
9267
|
+
*
|
|
9268
|
+
* @param option - The content option data containing label, slots,
|
|
9269
|
+
* and description.
|
|
9270
|
+
* @param className - The base CSS class for the label element.
|
|
9271
|
+
* @param useSpan - Whether to use a span element instead of a div for the label.
|
|
9272
|
+
*/
|
|
9273
|
+
const renderOptionLabel = (option, className, useSpan = false) => {
|
|
9274
|
+
const { id, label, startContent, endContent, description } = option;
|
|
9275
|
+
const hasRichContent = !!startContent || !!endContent || !!description;
|
|
9276
|
+
const Tag = useSpan ? 'span' : 'div';
|
|
9277
|
+
// Render simple string label if there is no rich content to display
|
|
9278
|
+
if (!hasRichContent && (typeof label === 'string' || !label)) {
|
|
9279
|
+
return (hAsync(Tag, { class: className, key: `${className}-${id}` }, label));
|
|
9280
|
+
}
|
|
9281
|
+
// Render the main label
|
|
9282
|
+
const labelEl = typeof label === 'string' || !label ? (
|
|
9283
|
+
// Label is a simple string or undefined
|
|
9284
|
+
hAsync(Tag, { key: `${className}-label-${id}` }, label)) : (
|
|
9285
|
+
// Label is an HTMLElement with potential rich content
|
|
9286
|
+
renderClonedContent(id, label, `${className}-text`, useSpan));
|
|
9287
|
+
// No rich content, render just the label
|
|
9288
|
+
if (!hasRichContent) {
|
|
9289
|
+
return (hAsync(Tag, { class: className, key: `${className}-${id}` }, labelEl));
|
|
9290
|
+
}
|
|
9291
|
+
// Render label with rich content (start, end, description)
|
|
9292
|
+
return (hAsync(Tag, { class: `${className} ${className}-has-rich-content`, key: `${className}-${id}` }, startContent && renderClonedContent(id, startContent, 'select-option-start', useSpan), hAsync(Tag, { class: "select-option-content", key: `${className}-content-${id}` }, labelEl, description && (hAsync(Tag, { class: "select-option-description", key: `${className}-desc-${id}` }, description))), endContent && renderClonedContent(id, endContent, 'select-option-end', useSpan)));
|
|
9293
|
+
};
|
|
9294
|
+
|
|
8761
9295
|
const hostContext = (selector, el) => {
|
|
8762
9296
|
return el.closest(selector) !== null;
|
|
8763
9297
|
};
|
|
@@ -9613,7 +10147,7 @@ const createAnimation = (animationId) => {
|
|
|
9613
10147
|
/**
|
|
9614
10148
|
* iOS Action Sheet Enter Animation
|
|
9615
10149
|
*/
|
|
9616
|
-
const iosEnterAnimation$
|
|
10150
|
+
const iosEnterAnimation$5 = (baseEl) => {
|
|
9617
10151
|
const baseAnimation = createAnimation();
|
|
9618
10152
|
const backdropAnimation = createAnimation();
|
|
9619
10153
|
const wrapperAnimation = createAnimation();
|
|
@@ -9637,7 +10171,7 @@ const iosEnterAnimation$6 = (baseEl) => {
|
|
|
9637
10171
|
/**
|
|
9638
10172
|
* iOS Action Sheet Leave Animation
|
|
9639
10173
|
*/
|
|
9640
|
-
const iosLeaveAnimation$
|
|
10174
|
+
const iosLeaveAnimation$5 = (baseEl) => {
|
|
9641
10175
|
const baseAnimation = createAnimation();
|
|
9642
10176
|
const backdropAnimation = createAnimation();
|
|
9643
10177
|
const wrapperAnimation = createAnimation();
|
|
@@ -9694,9 +10228,9 @@ const mdLeaveAnimation$5 = (baseEl) => {
|
|
|
9694
10228
|
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
9695
10229
|
};
|
|
9696
10230
|
|
|
9697
|
-
const actionSheetIosCss = () => `.sc-ion-action-sheet-ios-h{--color:initial;--button-color-activated:var(--button-color);--button-color-focused:var(--button-color);--button-color-hover:var(--button-color);--button-color-selected:var(--button-color);--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--height:auto;--max-height:calc(100% - (var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:block;position:fixed;outline:none;font-family:var(--ion-font-family, inherit);-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-action-sheet-ios-h{display:none}.action-sheet-wrapper.sc-ion-action-sheet-ios{left:0;right:0;bottom:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:block;position:absolute;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);z-index:10;pointer-events:none}.action-sheet-button.sc-ion-action-sheet-ios{display:block;position:relative;width:100%;border:0;outline:none;background:var(--button-background);color:var(--button-color);font-family:inherit;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-ios:disabled{color:var(--button-color-disabled);opacity:0.4}.action-sheet-button-inner.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;pointer-events:none;width:100%;height:100%;z-index:1}.action-sheet-container.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:end;justify-content:flex-end;height:100%;max-height:calc(100vh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)));max-height:calc(100dvh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)))}.action-sheet-group.sc-ion-action-sheet-ios{-ms-flex-negative:2;flex-shrink:2;overscroll-behavior-y:contain;overflow-y:auto;-webkit-overflow-scrolling:touch;pointer-events:all;background:var(--background)}@media (any-pointer: coarse){.action-sheet-group.sc-ion-action-sheet-ios::-webkit-scrollbar{display:none}}.action-sheet-group-cancel.sc-ion-action-sheet-ios{-ms-flex-negative:0;flex-shrink:0;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-ios::after{left:0;right:0;top:0;bottom:0;position:absolute;content:"";opacity:0}.action-sheet-selected.sc-ion-action-sheet-ios{color:var(--button-color-selected)}.action-sheet-selected.sc-ion-action-sheet-ios::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-button.ion-activated.sc-ion-action-sheet-ios{color:var(--button-color-activated)}.action-sheet-button.ion-activated.sc-ion-action-sheet-ios::after{background:var(--button-background-activated);opacity:var(--button-background-activated-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-ios{color:var(--button-color-focused)}.action-sheet-button.ion-focused.sc-ion-action-sheet-ios::after{background:var(--button-background-focused);opacity:var(--button-background-focused-opacity)}@media (any-hover: hover){.action-sheet-button.sc-ion-action-sheet-ios:not(:disabled):hover{color:var(--button-color-hover)}.action-sheet-button.sc-ion-action-sheet-ios:not(:disabled):hover::after{background:var(--button-background-hover);opacity:var(--button-background-hover-opacity)}}.sc-ion-action-sheet-ios-h{--background:var(--ion-overlay-background-color, var(--ion-color-step-100, var(--ion-background-color-step-100, #f9f9f9)));--backdrop-opacity:var(--ion-backdrop-opacity, 0.4);--button-background:linear-gradient(0deg, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08), rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08) 50%, transparent 50%) bottom/100% 1px no-repeat transparent;--button-background-activated:var(--ion-text-color, #000);--button-background-activated-opacity:.08;--button-background-hover:currentColor;--button-background-hover-opacity:.04;--button-background-focused:currentColor;--button-background-focused-opacity:.12;--button-background-selected:var(--ion-color-step-150, var(--ion-background-color-step-150, var(--ion-background-color, #fff)));--button-background-selected-opacity:1;--button-color:var(--ion-color-primary, #0054e9);--button-color-disabled:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));--color:var(--ion-color-step-400, var(--ion-text-color-step-600, #999999));text-align:center}.action-sheet-wrapper.sc-ion-action-sheet-ios{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:var(--ion-safe-area-top, 0);padding-bottom:var(--ion-safe-area-bottom, 0);-webkit-box-sizing:content-box;box-sizing:content-box}.action-sheet-container.sc-ion-action-sheet-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:0;padding-bottom:0}.action-sheet-group.sc-ion-action-sheet-ios{border-radius:13px;margin-bottom:8px}.action-sheet-group.sc-ion-action-sheet-ios:first-child{margin-top:10px}.action-sheet-group.sc-ion-action-sheet-ios:last-child{margin-bottom:10px}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-group.sc-ion-action-sheet-ios{background-color:transparent;-webkit-backdrop-filter:saturate(280%) blur(20px);backdrop-filter:saturate(280%) blur(20px)}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-title.sc-ion-action-sheet-ios,.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-button.sc-ion-action-sheet-ios{background-color:transparent;background-image:-webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)), to(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8))), -webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4)), color-stop(50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4)), color-stop(50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)));background-image:linear-gradient(0deg, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8), rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 100%), linear-gradient(0deg, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4), rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4) 50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 50%);background-repeat:no-repeat;background-position:top, bottom;background-size:100% calc(100% - 1px), 100% 1px;-webkit-backdrop-filter:saturate(120%);backdrop-filter:saturate(120%)}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-button.ion-activated.sc-ion-action-sheet-ios{background-color:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.7);background-image:none}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-cancel.sc-ion-action-sheet-ios{background:var(--button-background-selected)}}.action-sheet-title.sc-ion-action-sheet-ios{background:-webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08)), color-stop(50%, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08)), color-stop(50%, transparent)) bottom/100% 1px no-repeat transparent;background:linear-gradient(0deg, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08), rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08) 50%, transparent 50%) bottom/100% 1px no-repeat transparent}.action-sheet-title.sc-ion-action-sheet-ios{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:14px;padding-bottom:13px;color:var(--color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-size:max(13px, 0.8125rem);font-weight:400;text-align:center}.action-sheet-title.action-sheet-has-sub-title.sc-ion-action-sheet-ios{font-weight:600}.action-sheet-sub-title.sc-ion-action-sheet-ios{padding-left:0;padding-right:0;padding-top:6px;padding-bottom:0;font-size:max(13px, 0.8125rem);font-weight:400}.action-sheet-button.sc-ion-action-sheet-ios{-webkit-padding-start:14px;padding-inline-start:14px;-webkit-padding-end:14px;padding-inline-end:14px;padding-top:14px;padding-bottom:14px;min-height:56px;font-size:max(20px, 1.25rem);contain:content}.action-sheet-button.sc-ion-action-sheet-ios .action-sheet-icon.sc-ion-action-sheet-ios{-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:max(28px, 1.75rem);pointer-events:none}.action-sheet-button.sc-ion-action-sheet-ios:last-child{background-image:none}.action-sheet-selected.sc-ion-action-sheet-ios{font-weight:bold}.action-sheet-cancel.sc-ion-action-sheet-ios{font-weight:600}.action-sheet-cancel.sc-ion-action-sheet-ios::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-destructive.sc-ion-action-sheet-ios,.action-sheet-destructive.ion-activated.sc-ion-action-sheet-ios,.action-sheet-destructive.ion-focused.sc-ion-action-sheet-ios{color:var(--ion-color-danger, #c5000f)}@media (any-hover: hover){.action-sheet-destructive.sc-ion-action-sheet-ios:hover{color:var(--ion-color-danger, #c5000f)}}`;
|
|
10231
|
+
const actionSheetIosCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-action-sheet-ios,.alert-radio-label-has-rich-content.sc-ion-action-sheet-ios,.alert-checkbox-label-has-rich-content.sc-ion-action-sheet-ios,.select-option-label-has-rich-content.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:16px}.action-sheet-button-label-has-rich-content.sc-ion-action-sheet-ios,.alert-radio-label-has-rich-content.sc-ion-action-sheet-ios,.alert-checkbox-label-has-rich-content.sc-ion-action-sheet-ios,.select-option-content.sc-ion-action-sheet-ios{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-action-sheet-ios,.alert-checkbox-label-text.sc-ion-action-sheet-ios,.alert-radio-label-text.sc-ion-action-sheet-ios,.select-option-label-text.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-action-sheet-ios{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}.select-option-label.sc-ion-action-sheet-ios:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-action-sheet-ios::part(label),ion-radio.select-option-has-rich-content.sc-ion-action-sheet-ios [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-action-sheet-ios::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-action-sheet-ios [part~="label"],.select-option-content.sc-ion-action-sheet-ios{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-action-sheet-ios>ion-avatar.sc-ion-action-sheet-ios,.select-option-start.sc-ion-action-sheet-ios>ion-img.sc-ion-action-sheet-ios,.select-option-start.sc-ion-action-sheet-ios>ion-thumbnail.sc-ion-action-sheet-ios,.select-option-start.sc-ion-action-sheet-ios>img.sc-ion-action-sheet-ios,.select-option-start.sc-ion-action-sheet-ios>svg.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios>ion-avatar.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios>ion-img.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios>ion-thumbnail.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios>img.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios>svg.sc-ion-action-sheet-ios{width:44px;height:44px}.select-option-start.sc-ion-action-sheet-ios>ion-icon.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios>ion-icon.sc-ion-action-sheet-ios{width:28px;height:28px}.action-sheet-button-label-text.sc-ion-action-sheet-ios{-ms-flex-pack:center;justify-content:center}.select-option-has-rich-content.sc-ion-action-sheet-ios{-webkit-padding-end:16px;padding-inline-end:16px}.sc-ion-action-sheet-ios-h{--color:initial;--button-color-activated:var(--button-color);--button-color-focused:var(--button-color);--button-color-hover:var(--button-color);--button-color-selected:var(--button-color);--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--height:auto;--max-height:calc(100% - (var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:block;position:fixed;outline:none;font-family:var(--ion-font-family, inherit);-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-action-sheet-ios-h{display:none}.action-sheet-wrapper.sc-ion-action-sheet-ios{left:0;right:0;bottom:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:block;position:absolute;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);z-index:10;pointer-events:none}.action-sheet-button.sc-ion-action-sheet-ios{display:block;position:relative;width:100%;border:0;outline:none;background:var(--button-background);color:var(--button-color);font-family:inherit;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-ios:disabled{color:var(--button-color-disabled);opacity:0.4}.action-sheet-button.sc-ion-action-sheet-ios:disabled ion-icon.sc-ion-action-sheet-ios{color:currentColor}.action-sheet-button-inner.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;pointer-events:none;width:100%;height:100%;z-index:1}.action-sheet-container.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:end;justify-content:flex-end;height:100%;max-height:calc(100vh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)));max-height:calc(100dvh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)))}.action-sheet-group.sc-ion-action-sheet-ios{-ms-flex-negative:2;flex-shrink:2;overscroll-behavior-y:contain;overflow-y:auto;-webkit-overflow-scrolling:touch;pointer-events:all;background:var(--background)}@media (any-pointer: coarse){.action-sheet-group.sc-ion-action-sheet-ios::-webkit-scrollbar{display:none}}.action-sheet-group-cancel.sc-ion-action-sheet-ios{-ms-flex-negative:0;flex-shrink:0;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-ios::after{left:0;right:0;top:0;bottom:0;position:absolute;content:"";opacity:0}.action-sheet-selected.sc-ion-action-sheet-ios{color:var(--button-color-selected)}.action-sheet-selected.sc-ion-action-sheet-ios::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-button.ion-activated.sc-ion-action-sheet-ios{color:var(--button-color-activated)}.action-sheet-button.ion-activated.sc-ion-action-sheet-ios::after{background:var(--button-background-activated);opacity:var(--button-background-activated-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-ios:not(.ion-activated){color:var(--button-color-focused)}.action-sheet-button.ion-focused.sc-ion-action-sheet-ios:not(.ion-activated)::after{background:var(--button-background-focused);opacity:var(--button-background-focused-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-ios:not(.ion-activated).action-sheet-selected::after{background:var(--button-background-focused, var(--button-background-selected));opacity:var(--button-background-focused-opacity, var(--button-background-selected-opacity))}@media (any-hover: hover){.action-sheet-button.sc-ion-action-sheet-ios:not(:disabled):hover{color:var(--button-color-hover)}.action-sheet-button.sc-ion-action-sheet-ios:not(:disabled):hover::after{background:var(--button-background-hover);opacity:var(--button-background-hover-opacity)}}.sc-ion-action-sheet-ios-h{--background:var(--ion-overlay-background-color, var(--ion-color-step-100, var(--ion-background-color-step-100, #f9f9f9)));--backdrop-opacity:var(--ion-backdrop-opacity, 0.4);--button-background:linear-gradient(0deg, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08), rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08) 50%, transparent 50%) bottom/100% 1px no-repeat transparent;--button-background-activated:var(--ion-text-color, #000);--button-background-activated-opacity:.08;--button-background-hover:currentColor;--button-background-hover-opacity:.04;--button-background-focused:currentColor;--button-background-focused-opacity:.12;--button-background-selected:var(--ion-color-step-150, var(--ion-background-color-step-150, var(--ion-background-color, #fff)));--button-background-selected-opacity:1;--button-color:var(--ion-color-primary, #0054e9);--button-color-disabled:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));--color:var(--ion-color-step-400, var(--ion-text-color-step-600, #999999));text-align:center}.action-sheet-wrapper.sc-ion-action-sheet-ios{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:var(--ion-safe-area-top, 0);padding-bottom:var(--ion-safe-area-bottom, 0);-webkit-box-sizing:content-box;box-sizing:content-box}.action-sheet-container.sc-ion-action-sheet-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:0;padding-bottom:0}.action-sheet-group.sc-ion-action-sheet-ios{border-radius:13px;margin-bottom:8px}.action-sheet-group.sc-ion-action-sheet-ios:first-child{margin-top:10px}.action-sheet-group.sc-ion-action-sheet-ios:last-child{margin-bottom:10px}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-group.sc-ion-action-sheet-ios{background-color:transparent;-webkit-backdrop-filter:saturate(280%) blur(20px);backdrop-filter:saturate(280%) blur(20px)}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-title.sc-ion-action-sheet-ios,.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-button.sc-ion-action-sheet-ios{background-color:transparent;background-image:-webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)), to(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8))), -webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4)), color-stop(50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4)), color-stop(50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)));background-image:linear-gradient(0deg, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8), rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 100%), linear-gradient(0deg, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4), rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4) 50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 50%);background-repeat:no-repeat;background-position:top, bottom;background-size:100% calc(100% - 1px), 100% 1px;-webkit-backdrop-filter:saturate(120%);backdrop-filter:saturate(120%)}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-button.ion-activated.sc-ion-action-sheet-ios{background-color:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.7);background-image:none}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-cancel.sc-ion-action-sheet-ios{background:var(--button-background-selected)}}.action-sheet-title.sc-ion-action-sheet-ios{background:-webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08)), color-stop(50%, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08)), color-stop(50%, transparent)) bottom/100% 1px no-repeat transparent;background:linear-gradient(0deg, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08), rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08) 50%, transparent 50%) bottom/100% 1px no-repeat transparent}.action-sheet-title.sc-ion-action-sheet-ios{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:14px;padding-bottom:13px;color:var(--color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-size:max(13px, 0.8125rem);font-weight:400;text-align:center}.action-sheet-title.action-sheet-has-sub-title.sc-ion-action-sheet-ios{font-weight:600}.action-sheet-sub-title.sc-ion-action-sheet-ios{padding-left:0;padding-right:0;padding-top:6px;padding-bottom:0;font-size:max(13px, 0.8125rem);font-weight:400}.action-sheet-button.sc-ion-action-sheet-ios{-webkit-padding-start:14px;padding-inline-start:14px;-webkit-padding-end:14px;padding-inline-end:14px;padding-top:14px;padding-bottom:14px;min-height:56px;font-size:max(20px, 1.25rem);contain:content}.action-sheet-button.sc-ion-action-sheet-ios .action-sheet-icon.sc-ion-action-sheet-ios{-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:max(28px, 1.75rem);pointer-events:none}.action-sheet-button.sc-ion-action-sheet-ios:last-child{background-image:none}.action-sheet-selected.sc-ion-action-sheet-ios{font-weight:bold}.action-sheet-cancel.sc-ion-action-sheet-ios{font-weight:600}.action-sheet-cancel.sc-ion-action-sheet-ios::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-destructive.sc-ion-action-sheet-ios,.action-sheet-destructive.ion-activated.sc-ion-action-sheet-ios,.action-sheet-destructive.ion-focused.sc-ion-action-sheet-ios{color:var(--ion-color-danger, #c5000f)}@media (any-hover: hover){.action-sheet-destructive.sc-ion-action-sheet-ios:hover{color:var(--ion-color-danger, #c5000f)}}`;
|
|
9698
10232
|
|
|
9699
|
-
const actionSheetMdCss = () => `.sc-ion-action-sheet-md-h{--color:initial;--button-color-activated:var(--button-color);--button-color-focused:var(--button-color);--button-color-hover:var(--button-color);--button-color-selected:var(--button-color);--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--height:auto;--max-height:calc(100% - (var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:block;position:fixed;outline:none;font-family:var(--ion-font-family, inherit);-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-action-sheet-md-h{display:none}.action-sheet-wrapper.sc-ion-action-sheet-md{left:0;right:0;bottom:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:block;position:absolute;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);z-index:10;pointer-events:none}.action-sheet-button.sc-ion-action-sheet-md{display:block;position:relative;width:100%;border:0;outline:none;background:var(--button-background);color:var(--button-color);font-family:inherit;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-md:disabled{color:var(--button-color-disabled);opacity:0.4}.action-sheet-button-inner.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;pointer-events:none;width:100%;height:100%;z-index:1}.action-sheet-container.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:end;justify-content:flex-end;height:100%;max-height:calc(100vh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)));max-height:calc(100dvh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)))}.action-sheet-group.sc-ion-action-sheet-md{-ms-flex-negative:2;flex-shrink:2;overscroll-behavior-y:contain;overflow-y:auto;-webkit-overflow-scrolling:touch;pointer-events:all;background:var(--background)}@media (any-pointer: coarse){.action-sheet-group.sc-ion-action-sheet-md::-webkit-scrollbar{display:none}}.action-sheet-group-cancel.sc-ion-action-sheet-md{-ms-flex-negative:0;flex-shrink:0;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-md::after{left:0;right:0;top:0;bottom:0;position:absolute;content:"";opacity:0}.action-sheet-selected.sc-ion-action-sheet-md{color:var(--button-color-selected)}.action-sheet-selected.sc-ion-action-sheet-md::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-button.ion-activated.sc-ion-action-sheet-md{color:var(--button-color-activated)}.action-sheet-button.ion-activated.sc-ion-action-sheet-md::after{background:var(--button-background-activated);opacity:var(--button-background-activated-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-md{color:var(--button-color-focused)}.action-sheet-button.ion-focused.sc-ion-action-sheet-md::after{background:var(--button-background-focused);opacity:var(--button-background-focused-opacity)}@media (any-hover: hover){.action-sheet-button.sc-ion-action-sheet-md:not(:disabled):hover{color:var(--button-color-hover)}.action-sheet-button.sc-ion-action-sheet-md:not(:disabled):hover::after{background:var(--button-background-hover);opacity:var(--button-background-hover-opacity)}}.sc-ion-action-sheet-md-h{--background:var(--ion-overlay-background-color, var(--ion-background-color, #fff));--backdrop-opacity:var(--ion-backdrop-opacity, 0.32);--button-background:transparent;--button-background-selected:currentColor;--button-background-selected-opacity:0;--button-background-activated:transparent;--button-background-activated-opacity:0;--button-background-hover:currentColor;--button-background-hover-opacity:.04;--button-background-focused:currentColor;--button-background-focused-opacity:.12;--button-color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));--button-color-disabled:var(--button-color);--color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54)}.action-sheet-wrapper.sc-ion-action-sheet-md{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:var(--ion-safe-area-top, 0);margin-bottom:0}.action-sheet-title.sc-ion-action-sheet-md{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:20px;padding-bottom:17px;min-height:60px;color:var(--color, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54));font-size:1rem;text-align:start}.action-sheet-sub-title.sc-ion-action-sheet-md{padding-left:0;padding-right:0;padding-top:16px;padding-bottom:0;font-size:0.875rem}.action-sheet-group.sc-ion-action-sheet-md:first-child{padding-top:0}.action-sheet-group.sc-ion-action-sheet-md:last-child{padding-bottom:var(--ion-safe-area-bottom)}.action-sheet-button.sc-ion-action-sheet-md{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:12px;padding-bottom:12px;position:relative;min-height:52px;font-size:1rem;text-align:start;contain:content;overflow:hidden}.action-sheet-icon.sc-ion-action-sheet-md{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:32px;margin-inline-end:32px;margin-top:0;margin-bottom:0;color:var(--color);font-size:1.5rem}.action-sheet-button-inner.sc-ion-action-sheet-md{-ms-flex-pack:start;justify-content:flex-start}.action-sheet-selected.sc-ion-action-sheet-md{font-weight:bold}`;
|
|
10233
|
+
const actionSheetMdCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-action-sheet-md,.alert-radio-label-has-rich-content.sc-ion-action-sheet-md,.alert-checkbox-label-has-rich-content.sc-ion-action-sheet-md,.select-option-label-has-rich-content.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:16px}.action-sheet-button-label-has-rich-content.sc-ion-action-sheet-md,.alert-radio-label-has-rich-content.sc-ion-action-sheet-md,.alert-checkbox-label-has-rich-content.sc-ion-action-sheet-md,.select-option-content.sc-ion-action-sheet-md{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-action-sheet-md,.alert-checkbox-label-text.sc-ion-action-sheet-md,.alert-radio-label-text.sc-ion-action-sheet-md,.select-option-label-text.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-action-sheet-md{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}.select-option-label.sc-ion-action-sheet-md:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-action-sheet-md::part(label),ion-radio.select-option-has-rich-content.sc-ion-action-sheet-md [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-action-sheet-md::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-action-sheet-md [part~="label"],.select-option-content.sc-ion-action-sheet-md{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-action-sheet-md>ion-avatar.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>ion-avatar.sc-ion-action-sheet-md{width:40px;height:40px}.select-option-start.sc-ion-action-sheet-md>ion-icon.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>ion-icon.sc-ion-action-sheet-md{width:24px;height:24px}.select-option-start.sc-ion-action-sheet-md>ion-img.sc-ion-action-sheet-md,.select-option-start.sc-ion-action-sheet-md>img.sc-ion-action-sheet-md,.select-option-start.sc-ion-action-sheet-md>svg.sc-ion-action-sheet-md,.select-option-start.sc-ion-action-sheet-md>ion-thumbnail.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>ion-img.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>img.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>svg.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>ion-thumbnail.sc-ion-action-sheet-md{width:56px;height:56px}.select-option-start.sc-ion-action-sheet-md>video.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>video.sc-ion-action-sheet-md{width:114px;height:56px}.sc-ion-action-sheet-md-h{--color:initial;--button-color-activated:var(--button-color);--button-color-focused:var(--button-color);--button-color-hover:var(--button-color);--button-color-selected:var(--button-color);--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--height:auto;--max-height:calc(100% - (var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:block;position:fixed;outline:none;font-family:var(--ion-font-family, inherit);-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-action-sheet-md-h{display:none}.action-sheet-wrapper.sc-ion-action-sheet-md{left:0;right:0;bottom:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:block;position:absolute;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);z-index:10;pointer-events:none}.action-sheet-button.sc-ion-action-sheet-md{display:block;position:relative;width:100%;border:0;outline:none;background:var(--button-background);color:var(--button-color);font-family:inherit;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-md:disabled{color:var(--button-color-disabled);opacity:0.4}.action-sheet-button.sc-ion-action-sheet-md:disabled ion-icon.sc-ion-action-sheet-md{color:currentColor}.action-sheet-button-inner.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;pointer-events:none;width:100%;height:100%;z-index:1}.action-sheet-container.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:end;justify-content:flex-end;height:100%;max-height:calc(100vh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)));max-height:calc(100dvh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)))}.action-sheet-group.sc-ion-action-sheet-md{-ms-flex-negative:2;flex-shrink:2;overscroll-behavior-y:contain;overflow-y:auto;-webkit-overflow-scrolling:touch;pointer-events:all;background:var(--background)}@media (any-pointer: coarse){.action-sheet-group.sc-ion-action-sheet-md::-webkit-scrollbar{display:none}}.action-sheet-group-cancel.sc-ion-action-sheet-md{-ms-flex-negative:0;flex-shrink:0;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-md::after{left:0;right:0;top:0;bottom:0;position:absolute;content:"";opacity:0}.action-sheet-selected.sc-ion-action-sheet-md{color:var(--button-color-selected)}.action-sheet-selected.sc-ion-action-sheet-md::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-button.ion-activated.sc-ion-action-sheet-md{color:var(--button-color-activated)}.action-sheet-button.ion-activated.sc-ion-action-sheet-md::after{background:var(--button-background-activated);opacity:var(--button-background-activated-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-md:not(.ion-activated){color:var(--button-color-focused)}.action-sheet-button.ion-focused.sc-ion-action-sheet-md:not(.ion-activated)::after{background:var(--button-background-focused);opacity:var(--button-background-focused-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-md:not(.ion-activated).action-sheet-selected::after{background:var(--button-background-focused, var(--button-background-selected));opacity:var(--button-background-focused-opacity, var(--button-background-selected-opacity))}@media (any-hover: hover){.action-sheet-button.sc-ion-action-sheet-md:not(:disabled):hover{color:var(--button-color-hover)}.action-sheet-button.sc-ion-action-sheet-md:not(:disabled):hover::after{background:var(--button-background-hover);opacity:var(--button-background-hover-opacity)}}.sc-ion-action-sheet-md-h{--background:var(--ion-overlay-background-color, var(--ion-background-color, #fff));--backdrop-opacity:var(--ion-backdrop-opacity, 0.32);--button-background:transparent;--button-background-selected:currentColor;--button-background-selected-opacity:0;--button-background-activated:transparent;--button-background-activated-opacity:0;--button-background-hover:currentColor;--button-background-hover-opacity:.04;--button-background-focused:currentColor;--button-background-focused-opacity:.12;--button-color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));--button-color-disabled:var(--button-color);--color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54)}.action-sheet-wrapper.sc-ion-action-sheet-md{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:var(--ion-safe-area-top, 0);margin-bottom:0}.action-sheet-title.sc-ion-action-sheet-md{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:20px;padding-bottom:17px;min-height:60px;color:var(--color, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54));font-size:1rem;text-align:start}.action-sheet-sub-title.sc-ion-action-sheet-md{padding-left:0;padding-right:0;padding-top:16px;padding-bottom:0;font-size:0.875rem}.action-sheet-group.sc-ion-action-sheet-md:first-child{padding-top:0}.action-sheet-group.sc-ion-action-sheet-md:last-child{padding-bottom:var(--ion-safe-area-bottom)}.action-sheet-button.sc-ion-action-sheet-md{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:12px;padding-bottom:12px;position:relative;min-height:52px;font-size:1rem;text-align:start;contain:content;overflow:hidden}.action-sheet-icon.sc-ion-action-sheet-md{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:32px;margin-inline-end:32px;margin-top:0;margin-bottom:0;color:var(--color);font-size:1.5rem}.action-sheet-button-inner.sc-ion-action-sheet-md{-ms-flex-pack:start;justify-content:flex-start}.action-sheet-selected.sc-ion-action-sheet-md{font-weight:bold}`;
|
|
9700
10234
|
|
|
9701
10235
|
/**
|
|
9702
10236
|
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
@@ -9793,7 +10327,7 @@ class ActionSheet {
|
|
|
9793
10327
|
async present() {
|
|
9794
10328
|
const unlock = await this.lockController.lock();
|
|
9795
10329
|
await this.delegateController.attachViewToDom();
|
|
9796
|
-
await present(this, 'actionSheetEnter', iosEnterAnimation$
|
|
10330
|
+
await present(this, 'actionSheetEnter', iosEnterAnimation$5, mdEnterAnimation$5);
|
|
9797
10331
|
unlock();
|
|
9798
10332
|
}
|
|
9799
10333
|
/**
|
|
@@ -9810,7 +10344,7 @@ class ActionSheet {
|
|
|
9810
10344
|
*/
|
|
9811
10345
|
async dismiss(data, role) {
|
|
9812
10346
|
const unlock = await this.lockController.lock();
|
|
9813
|
-
const dismissed = await dismiss(this, data, role, 'actionSheetLeave', iosLeaveAnimation$
|
|
10347
|
+
const dismissed = await dismiss(this, data, role, 'actionSheetLeave', iosLeaveAnimation$5, mdLeaveAnimation$5);
|
|
9814
10348
|
if (dismissed) {
|
|
9815
10349
|
this.delegateController.removeViewFromDom();
|
|
9816
10350
|
}
|
|
@@ -9979,6 +10513,10 @@ class ActionSheet {
|
|
|
9979
10513
|
this.gesture = undefined;
|
|
9980
10514
|
}
|
|
9981
10515
|
this.triggerController.removeClickListener();
|
|
10516
|
+
// Clean up aria-hidden if removed without dismiss() being called
|
|
10517
|
+
if (this.presented) {
|
|
10518
|
+
cleanupRootFocusTrapAccessibility();
|
|
10519
|
+
}
|
|
9982
10520
|
}
|
|
9983
10521
|
componentWillLoad() {
|
|
9984
10522
|
var _a;
|
|
@@ -10067,12 +10605,26 @@ class ActionSheet {
|
|
|
10067
10605
|
if (isRadio) {
|
|
10068
10606
|
htmlAttrs['aria-checked'] = isActiveRadio ? 'true' : 'false';
|
|
10069
10607
|
}
|
|
10070
|
-
|
|
10608
|
+
/**
|
|
10609
|
+
* Cast to `SelectActionSheetButton` to access rich content
|
|
10610
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
10611
|
+
* that are passed through from `ion-select` but not
|
|
10612
|
+
* part of the public `ActionSheetButton` interface.
|
|
10613
|
+
*/
|
|
10614
|
+
const richButton = b;
|
|
10615
|
+
const optionLabelOptions = {
|
|
10616
|
+
id: buttonId,
|
|
10617
|
+
label: richButton.text,
|
|
10618
|
+
startContent: richButton.startContent,
|
|
10619
|
+
endContent: richButton.endContent,
|
|
10620
|
+
description: richButton.description,
|
|
10621
|
+
};
|
|
10622
|
+
return (hAsync("button", Object.assign({}, htmlAttrs, { role: isRadio ? 'radio' : undefined, type: "button", id: buttonId, class: Object.assign(Object.assign({}, buttonClass$2(b)), (isRadio && { 'action-sheet-selected': isActiveRadio })), onClick: () => {
|
|
10071
10623
|
if (isRadio) {
|
|
10072
10624
|
this.selectRadioButton(b);
|
|
10073
10625
|
}
|
|
10074
10626
|
this.buttonClick(b);
|
|
10075
|
-
}, disabled: b.disabled, tabIndex: tabIndex }), hAsync("span", { class: "action-sheet-button-inner" }, b.icon && hAsync("ion-icon", { icon: b.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" }),
|
|
10627
|
+
}, disabled: b.disabled, tabIndex: tabIndex }), hAsync("span", { class: "action-sheet-button-inner" }, b.icon && hAsync("ion-icon", { icon: b.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" }), renderOptionLabel(optionLabelOptions, 'action-sheet-button-label', true)), mode === 'md' && hAsync("ion-ripple-effect", null)));
|
|
10076
10628
|
});
|
|
10077
10629
|
}
|
|
10078
10630
|
render() {
|
|
@@ -10082,12 +10634,12 @@ class ActionSheet {
|
|
|
10082
10634
|
const cancelButton = allButtons.find((b) => b.role === 'cancel');
|
|
10083
10635
|
const buttons = allButtons.filter((b) => b.role !== 'cancel');
|
|
10084
10636
|
const headerID = `action-sheet-${overlayIndex}-header`;
|
|
10085
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
10637
|
+
return (hAsync(Host, Object.assign({ key: '7685831da9a78b73473246a2cea95cefa79a53c3', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
|
|
10086
10638
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
10087
|
-
}, class: Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'action-sheet-translucent': this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), hAsync("ion-backdrop", { key: '
|
|
10639
|
+
}, class: Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'action-sheet-translucent': this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), hAsync("ion-backdrop", { key: 'c70f00e401cac99b89412d1adb867f35bc855d57', tappable: this.backdropDismiss }), hAsync("div", { key: '3332893ce3098f1435875480b1269b2821d41660', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: 'eb406b0a9e303d6f94c5c7aa99c6f4c089bfbd41', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, hAsync("div", { key: '92ec855379f10e1e0bfce6ff68b45d3cda0c137c', class: "action-sheet-container" }, hAsync("div", { key: 'bc88a396d75396f574961471bf7e6c4edb513353', class: "action-sheet-group", ref: (el) => (this.groupEl = el), role: hasRadioButtons ? 'radiogroup' : undefined }, header !== undefined && (hAsync("div", { key: '33329e0193818888bdcaa443ff5ea301802e0787', id: headerID, class: {
|
|
10088
10640
|
'action-sheet-title': true,
|
|
10089
10641
|
'action-sheet-has-sub-title': this.subHeader !== undefined,
|
|
10090
|
-
} }, header, this.subHeader && hAsync("div", { key: '
|
|
10642
|
+
} }, header, this.subHeader && hAsync("div", { key: '92ac5a9217a12b7417f7aca9c4fdb7bf6b051364', class: "action-sheet-sub-title" }, this.subHeader))), this.renderActionSheetButtons(buttons)), cancelButton && (hAsync("div", { key: '020463b830fa48fc3ae647ea64f2aaa4d0969305', class: "action-sheet-group action-sheet-group-cancel" }, hAsync("button", Object.assign({ key: 'cefa9c70a2233f6652a81b1a2eae6e717712144d' }, cancelButton.htmlAttributes, { type: "button", class: buttonClass$2(cancelButton), onClick: () => this.buttonClick(cancelButton) }), hAsync("span", { key: '56d7e2f8bfb3644e4476895164d334445fda9b2f', class: "action-sheet-button-inner" }, cancelButton.icon && (hAsync("ion-icon", { key: '6a4a49254ec5cd96f4e0dce9447f90d8cac81913', icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), mode === 'md' && hAsync("ion-ripple-effect", { key: '7d3c6e8d70b0922ea0f75520856285ce1005c891' })))))), hAsync("div", { key: '958fc43e603c6a7f5d1e649d3326fce0f163b5d0', tabindex: "0", "aria-hidden": "true" })));
|
|
10091
10643
|
}
|
|
10092
10644
|
get el() { return getElement(this); }
|
|
10093
10645
|
static get watchers() { return {
|
|
@@ -10136,178 +10688,59 @@ class ActionSheet {
|
|
|
10136
10688
|
"$attrsToReflect$": []
|
|
10137
10689
|
}; }
|
|
10138
10690
|
}
|
|
10139
|
-
const buttonClass$
|
|
10691
|
+
const buttonClass$2 = (button) => {
|
|
10140
10692
|
return Object.assign({ 'action-sheet-button': true, 'ion-activatable': !button.disabled, 'ion-focusable': !button.disabled, [`action-sheet-${button.role}`]: button.role !== undefined }, getClassMap(button.cssClass));
|
|
10141
10693
|
};
|
|
10142
10694
|
|
|
10143
10695
|
const ENABLE_HTML_CONTENT_DEFAULT = false;
|
|
10144
10696
|
|
|
10697
|
+
// TODO(FW-6886, FW-6892, FW-6891): Remove this file in favor of the Modular Ionic component config. Each overlay will be able to select its own defaults for label placement and justify based on the interface and mode, so this utility will no longer be necessary.
|
|
10145
10698
|
/**
|
|
10146
|
-
*
|
|
10147
|
-
*
|
|
10148
|
-
|
|
10149
|
-
|
|
10150
|
-
|
|
10151
|
-
|
|
10152
|
-
|
|
10153
|
-
|
|
10154
|
-
|
|
10155
|
-
|
|
10156
|
-
|
|
10157
|
-
|
|
10158
|
-
|
|
10159
|
-
* fragment in Chrome. If a string
|
|
10160
|
-
* contains onload then we should not
|
|
10161
|
-
* attempt to add this to the fragment.
|
|
10162
|
-
*/
|
|
10163
|
-
if (untrustedString.includes('onload=')) {
|
|
10164
|
-
return '';
|
|
10165
|
-
}
|
|
10166
|
-
/**
|
|
10167
|
-
* Create a document fragment
|
|
10168
|
-
* separate from the main DOM,
|
|
10169
|
-
* create a div to do our work in
|
|
10170
|
-
*/
|
|
10171
|
-
const documentFragment = document.createDocumentFragment();
|
|
10172
|
-
const workingDiv = document.createElement('div');
|
|
10173
|
-
documentFragment.appendChild(workingDiv);
|
|
10174
|
-
workingDiv.innerHTML = untrustedString;
|
|
10175
|
-
/**
|
|
10176
|
-
* Remove any elements
|
|
10177
|
-
* that are blocked
|
|
10178
|
-
*/
|
|
10179
|
-
blockedTags.forEach((blockedTag) => {
|
|
10180
|
-
const getElementsToRemove = documentFragment.querySelectorAll(blockedTag);
|
|
10181
|
-
for (let elementIndex = getElementsToRemove.length - 1; elementIndex >= 0; elementIndex--) {
|
|
10182
|
-
const element = getElementsToRemove[elementIndex];
|
|
10183
|
-
if (element.parentNode) {
|
|
10184
|
-
element.parentNode.removeChild(element);
|
|
10185
|
-
}
|
|
10186
|
-
else {
|
|
10187
|
-
documentFragment.removeChild(element);
|
|
10188
|
-
}
|
|
10189
|
-
/**
|
|
10190
|
-
* We still need to sanitize
|
|
10191
|
-
* the children of this element
|
|
10192
|
-
* as they are left behind
|
|
10193
|
-
*/
|
|
10194
|
-
const childElements = getElementChildren(element);
|
|
10195
|
-
/* eslint-disable-next-line */
|
|
10196
|
-
for (let childIndex = 0; childIndex < childElements.length; childIndex++) {
|
|
10197
|
-
sanitizeElement(childElements[childIndex]);
|
|
10198
|
-
}
|
|
10199
|
-
}
|
|
10200
|
-
});
|
|
10201
|
-
/**
|
|
10202
|
-
* Go through remaining elements and remove
|
|
10203
|
-
* non-allowed attribs
|
|
10204
|
-
*/
|
|
10205
|
-
// IE does not support .children on document fragments, only .childNodes
|
|
10206
|
-
const dfChildren = getElementChildren(documentFragment);
|
|
10207
|
-
/* eslint-disable-next-line */
|
|
10208
|
-
for (let childIndex = 0; childIndex < dfChildren.length; childIndex++) {
|
|
10209
|
-
sanitizeElement(dfChildren[childIndex]);
|
|
10210
|
-
}
|
|
10211
|
-
// Append document fragment to div
|
|
10212
|
-
const fragmentDiv = document.createElement('div');
|
|
10213
|
-
fragmentDiv.appendChild(documentFragment);
|
|
10214
|
-
// First child is always the div we did our work in
|
|
10215
|
-
const getInnerDiv = fragmentDiv.querySelector('div');
|
|
10216
|
-
return getInnerDiv !== null ? getInnerDiv.innerHTML : fragmentDiv.innerHTML;
|
|
10217
|
-
}
|
|
10218
|
-
catch (err) {
|
|
10219
|
-
printIonError('sanitizeDOMString', err);
|
|
10220
|
-
return '';
|
|
10221
|
-
}
|
|
10222
|
-
};
|
|
10223
|
-
/**
|
|
10224
|
-
* Clean up current element based on allowed attributes
|
|
10225
|
-
* and then recursively dig down into any child elements to
|
|
10226
|
-
* clean those up as well
|
|
10699
|
+
* Returns the default `labelPlacement` for a radio or checkbox option
|
|
10700
|
+
* rendered inside an overlay. Defaults follow each mode's established
|
|
10701
|
+
* option-row layout:
|
|
10702
|
+
* - `ios`: `"start"` for radio in `alert` and `popover`. The `modal`
|
|
10703
|
+
* interface flips iOS radio back to `"end"`. Checkbox is always
|
|
10704
|
+
* `"end"` on iOS.
|
|
10705
|
+
* - everything else (e.g. `md`): `"end"`.
|
|
10706
|
+
*
|
|
10707
|
+
* `interfaceType` is optional; only `"modal"` changes the result, so
|
|
10708
|
+
* callers that aren't a modal can omit it.
|
|
10709
|
+
*
|
|
10710
|
+
* Used by `select-popover` and `select-modal` as the fallback when an
|
|
10711
|
+
* option doesn't explicitly set `labelPlacement`.
|
|
10227
10712
|
*/
|
|
10228
|
-
|
|
10229
|
-
|
|
10230
|
-
|
|
10231
|
-
if (element.nodeType && element.nodeType !== 1) {
|
|
10232
|
-
return;
|
|
10233
|
-
}
|
|
10234
|
-
/**
|
|
10235
|
-
* If attributes is not a NamedNodeMap
|
|
10236
|
-
* then we should remove the element entirely.
|
|
10237
|
-
* This helps avoid DOM Clobbering attacks where
|
|
10238
|
-
* attributes is overridden.
|
|
10239
|
-
*/
|
|
10240
|
-
if (typeof NamedNodeMap !== 'undefined' && !(element.attributes instanceof NamedNodeMap)) {
|
|
10241
|
-
element.remove();
|
|
10242
|
-
return;
|
|
10243
|
-
}
|
|
10244
|
-
for (let i = element.attributes.length - 1; i >= 0; i--) {
|
|
10245
|
-
const attribute = element.attributes.item(i);
|
|
10246
|
-
const attributeName = attribute.name;
|
|
10247
|
-
// remove non-allowed attribs
|
|
10248
|
-
if (!allowedAttributes.includes(attributeName.toLowerCase())) {
|
|
10249
|
-
element.removeAttribute(attributeName);
|
|
10250
|
-
continue;
|
|
10251
|
-
}
|
|
10252
|
-
// clean up any allowed attribs
|
|
10253
|
-
// that attempt to do any JS funny-business
|
|
10254
|
-
const attributeValue = attribute.value;
|
|
10255
|
-
/**
|
|
10256
|
-
* We also need to check the property value
|
|
10257
|
-
* as javascript: can allow special characters
|
|
10258
|
-
* such as 	 and still be valid (i.e. java	script)
|
|
10259
|
-
*/
|
|
10260
|
-
const propertyValue = element[attributeName];
|
|
10261
|
-
/* eslint-disable */
|
|
10262
|
-
if ((attributeValue != null && attributeValue.toLowerCase().includes('javascript:')) ||
|
|
10263
|
-
(propertyValue != null && propertyValue.toLowerCase().includes('javascript:'))) {
|
|
10264
|
-
element.removeAttribute(attributeName);
|
|
10265
|
-
}
|
|
10266
|
-
/* eslint-enable */
|
|
10267
|
-
}
|
|
10268
|
-
/**
|
|
10269
|
-
* Sanitize any nested children
|
|
10270
|
-
*/
|
|
10271
|
-
const childElements = getElementChildren(element);
|
|
10272
|
-
/* eslint-disable-next-line */
|
|
10273
|
-
for (let i = 0; i < childElements.length; i++) {
|
|
10274
|
-
sanitizeElement(childElements[i]);
|
|
10713
|
+
const getOverlayLabelPlacement = (mode, control, interfaceType) => {
|
|
10714
|
+
if (mode === 'ios' && control === 'radio' && interfaceType !== 'modal') {
|
|
10715
|
+
return 'start';
|
|
10275
10716
|
}
|
|
10717
|
+
return 'end';
|
|
10276
10718
|
};
|
|
10277
10719
|
/**
|
|
10278
|
-
*
|
|
10279
|
-
*
|
|
10720
|
+
* Returns the default `justify` for a radio or checkbox option rendered
|
|
10721
|
+
* inside an overlay. Defaults follow each mode's option-row layout:
|
|
10722
|
+
* - `ios`: `"space-between"` for radio in `alert` and `popover`. The
|
|
10723
|
+
* `modal` interface falls back to `"start"`. Checkbox is always `"start"`
|
|
10724
|
+
* on iOS.
|
|
10725
|
+
* - everything else (e.g. `md`): `"start"`.
|
|
10726
|
+
*
|
|
10727
|
+
* `interfaceType` is optional; only `"modal"` changes the result, so
|
|
10728
|
+
* callers that aren't a modal can omit it.
|
|
10729
|
+
*
|
|
10730
|
+
* Used by `select-popover` and `select-modal` as the fallback when an
|
|
10731
|
+
* option doesn't explicitly set `justify`.
|
|
10280
10732
|
*/
|
|
10281
|
-
|
|
10282
|
-
|
|
10283
|
-
|
|
10284
|
-
};
|
|
10285
|
-
const isSanitizerEnabled = () => {
|
|
10286
|
-
var _a;
|
|
10287
|
-
const win = window;
|
|
10288
|
-
const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config;
|
|
10289
|
-
if (config) {
|
|
10290
|
-
if (config.get) {
|
|
10291
|
-
return config.get('sanitizerEnabled', true);
|
|
10292
|
-
}
|
|
10293
|
-
else {
|
|
10294
|
-
return config.sanitizerEnabled === true || config.sanitizerEnabled === undefined;
|
|
10295
|
-
}
|
|
10733
|
+
const getOverlayLabelJustify = (mode, control, interfaceType) => {
|
|
10734
|
+
if (mode === 'ios' && control === 'radio' && interfaceType !== 'modal') {
|
|
10735
|
+
return 'space-between';
|
|
10296
10736
|
}
|
|
10297
|
-
return
|
|
10737
|
+
return 'start';
|
|
10298
10738
|
};
|
|
10299
|
-
const allowedAttributes = ['class', 'id', 'href', 'src', 'name', 'slot'];
|
|
10300
|
-
const blockedTags = ['script', 'style', 'iframe', 'meta', 'link', 'object', 'embed'];
|
|
10301
|
-
class IonicSafeString {
|
|
10302
|
-
constructor(value) {
|
|
10303
|
-
this.value = value;
|
|
10304
|
-
}
|
|
10305
|
-
}
|
|
10306
10739
|
|
|
10307
10740
|
/**
|
|
10308
10741
|
* iOS Alert Enter Animation
|
|
10309
10742
|
*/
|
|
10310
|
-
const iosEnterAnimation$
|
|
10743
|
+
const iosEnterAnimation$4 = (baseEl) => {
|
|
10311
10744
|
const baseAnimation = createAnimation();
|
|
10312
10745
|
const backdropAnimation = createAnimation();
|
|
10313
10746
|
const wrapperAnimation = createAnimation();
|
|
@@ -10332,7 +10765,7 @@ const iosEnterAnimation$5 = (baseEl) => {
|
|
|
10332
10765
|
/**
|
|
10333
10766
|
* iOS Alert Leave Animation
|
|
10334
10767
|
*/
|
|
10335
|
-
const iosLeaveAnimation$
|
|
10768
|
+
const iosLeaveAnimation$4 = (baseEl) => {
|
|
10336
10769
|
const baseAnimation = createAnimation();
|
|
10337
10770
|
const backdropAnimation = createAnimation();
|
|
10338
10771
|
const wrapperAnimation = createAnimation();
|
|
@@ -10389,9 +10822,9 @@ const mdLeaveAnimation$4 = (baseEl) => {
|
|
|
10389
10822
|
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
10390
10823
|
};
|
|
10391
10824
|
|
|
10392
|
-
const alertIosCss = () => `.sc-ion-alert-ios-h{--min-width:250px;--width:auto;--min-height:auto;--height:auto;--max-height:90%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-alert-ios-h{display:none}.alert-top.sc-ion-alert-ios-h{padding-top:50px;-ms-flex-align:start;align-items:flex-start}.alert-wrapper.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:content;opacity:0;z-index:10}.alert-title.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-sub-title.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-weight:normal}.alert-message.sc-ion-alert-ios,.alert-input-group.sc-ion-alert-ios{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch;overflow-y:auto;overscroll-behavior-y:contain}.alert-checkbox-label.sc-ion-alert-ios,.alert-radio-label.sc-ion-alert-ios{overflow-wrap:anywhere}@media (any-pointer: coarse){.alert-checkbox-group.sc-ion-alert-ios::-webkit-scrollbar,.alert-radio-group.sc-ion-alert-ios::-webkit-scrollbar,.alert-message.sc-ion-alert-ios::-webkit-scrollbar{display:none}}.alert-input.sc-ion-alert-ios{padding-left:0;padding-right:0;padding-top:10px;padding-bottom:10px;width:100%;border:0;background:inherit;font:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.alert-button-group.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;width:100%}.alert-button-group-vertical.sc-ion-alert-ios{-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.alert-button.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;border:0;font-size:0.875rem;line-height:1.25rem;z-index:0}.alert-button.ion-focused.sc-ion-alert-ios,.alert-tappable.ion-focused.sc-ion-alert-ios{background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.alert-button-inner.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;min-height:inherit}.alert-input-disabled.sc-ion-alert-ios,.alert-checkbox-button-disabled.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios,.alert-radio-button-disabled.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios{cursor:default;opacity:0.5;pointer-events:none}.alert-tappable.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:-ms-flexbox;display:flex;width:100%;border:0;background:transparent;font-size:inherit;line-height:initial;text-align:start;-webkit-appearance:none;-moz-appearance:none;appearance:none;contain:content}.alert-button.sc-ion-alert-ios,.alert-checkbox.sc-ion-alert-ios,.alert-input.sc-ion-alert-ios,.alert-radio.sc-ion-alert-ios{outline:none}.alert-radio-icon.sc-ion-alert-ios,.alert-checkbox-icon.sc-ion-alert-ios,.alert-checkbox-inner.sc-ion-alert-ios{-webkit-box-sizing:border-box;box-sizing:border-box}textarea.alert-input.sc-ion-alert-ios{min-height:37px;resize:none}.sc-ion-alert-ios-h{--background:var(--ion-overlay-background-color, var(--ion-color-step-100, var(--ion-background-color-step-100, #f9f9f9)));--max-width:clamp(270px, 16.875rem, 324px);--backdrop-opacity:var(--ion-backdrop-opacity, 0.3);font-size:max(14px, 0.875rem)}.alert-wrapper.sc-ion-alert-ios{border-radius:13px;-webkit-box-shadow:none;box-shadow:none;overflow:hidden}.alert-button.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios{pointer-events:none}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.alert-translucent.sc-ion-alert-ios-h .alert-wrapper.sc-ion-alert-ios{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.9);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}.alert-head.sc-ion-alert-ios{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:12px;padding-bottom:7px;text-align:center}.alert-title.sc-ion-alert-ios{margin-top:8px;color:var(--ion-text-color, #000);font-size:max(17px, 1.0625rem);font-weight:600}.alert-sub-title.sc-ion-alert-ios{color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666));font-size:max(14px, 0.875rem)}.alert-message.sc-ion-alert-ios,.alert-input-group.sc-ion-alert-ios{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:21px;color:var(--ion-text-color, #000);font-size:max(13px, 0.8125rem);text-align:center}.alert-message.sc-ion-alert-ios{max-height:240px}.alert-message.sc-ion-alert-ios:empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:12px}.alert-input.sc-ion-alert-ios{border-radius:7px;margin-top:10px;-webkit-padding-start:7px;padding-inline-start:7px;-webkit-padding-end:7px;padding-inline-end:7px;padding-top:7px;padding-bottom:7px;border:0.55px solid var(--ion-color-step-250, var(--ion-background-color-step-250, #bfbfbf));background-color:var(--ion-background-color, #fff);-webkit-appearance:none;-moz-appearance:none;appearance:none;font-size:1rem}.alert-input.sc-ion-alert-ios::-webkit-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-moz-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios:-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-ms-clear{display:none}.alert-input.sc-ion-alert-ios::-webkit-date-and-time-value{height:18px}.alert-radio-group.sc-ion-alert-ios,.alert-checkbox-group.sc-ion-alert-ios{-ms-scroll-chaining:none;overscroll-behavior:contain;max-height:240px;border-top:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);overflow-y:auto;-webkit-overflow-scrolling:touch}.alert-tappable.sc-ion-alert-ios{min-height:44px}.alert-radio-label.sc-ion-alert-ios{-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;-ms-flex-order:0;order:0;color:var(--ion-text-color, #000)}[aria-checked=true].sc-ion-alert-ios .alert-radio-label.sc-ion-alert-ios{color:var(--ion-color-primary, #0054e9)}.alert-radio-icon.sc-ion-alert-ios{position:relative;-ms-flex-order:1;order:1;min-width:30px}[aria-checked=true].sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios{top:-7px;position:absolute;width:6px;height:12px;-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:2px;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios{inset-inline-start:7px}.alert-checkbox-label.sc-ion-alert-ios{-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;color:var(--ion-text-color, #000)}.alert-checkbox-icon.sc-ion-alert-ios{border-radius:50%;-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:6px;margin-inline-end:6px;margin-top:10px;margin-bottom:10px;position:relative;width:min(1.375rem, 55.836px);height:min(1.375rem, 55.836px);border-width:0.125rem;border-style:solid;border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));background-color:var(--ion-item-background, var(--ion-background-color, #fff));contain:strict}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-icon.sc-ion-alert-ios{border-color:var(--ion-color-primary, #0054e9);background-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios{top:calc(min(1.375rem, 55.836px) / 8);position:absolute;width:calc(min(1.375rem, 55.836px) / 6 + 1px);height:calc(min(1.375rem, 55.836px) * 0.5);-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:0.125rem;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-background-color, #fff)}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios{inset-inline-start:calc(min(1.375rem, 55.836px) / 3)}.alert-button-group.sc-ion-alert-ios{-webkit-margin-end:-0.55px;margin-inline-end:-0.55px;-ms-flex-wrap:wrap;flex-wrap:wrap}.alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios{border-right:none}[dir=rtl].sc-ion-alert-ios-h .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:none}[dir=rtl].sc-ion-alert-ios .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:none}@supports selector(:dir(rtl)){.alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child:dir(rtl){border-right:none}}.alert-button.sc-ion-alert-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;border-radius:0;-ms-flex:1 1 auto;flex:1 1 auto;min-width:50%;height:max(44px, 2.75rem);border-top:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);background-color:transparent;color:var(--ion-color-primary, #0054e9);font-size:max(17px, 1.0625rem);overflow:hidden}[dir=rtl].sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:first-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:first-child{border-right:0}[dir=rtl].sc-ion-alert-ios .alert-button.sc-ion-alert-ios:first-child{border-right:0}@supports selector(:dir(rtl)){.alert-button.sc-ion-alert-ios:first-child:dir(rtl){border-right:0}}.alert-button.sc-ion-alert-ios:last-child{border-right:0;font-weight:bold}[dir=rtl].sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:last-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:last-child{border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}[dir=rtl].sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}@supports selector(:dir(rtl)){.alert-button.sc-ion-alert-ios:last-child:dir(rtl){border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}}.alert-button.ion-activated.sc-ion-alert-ios{background-color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.1)}.alert-button-role-destructive.sc-ion-alert-ios,.alert-button-role-destructive.ion-activated.sc-ion-alert-ios,.alert-button-role-destructive.ion-focused.sc-ion-alert-ios{color:var(--ion-color-danger, #c5000f)}`;
|
|
10825
|
+
const alertIosCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-alert-ios,.alert-radio-label-has-rich-content.sc-ion-alert-ios,.alert-checkbox-label-has-rich-content.sc-ion-alert-ios,.select-option-label-has-rich-content.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:16px}.action-sheet-button-label-has-rich-content.sc-ion-alert-ios,.alert-radio-label-has-rich-content.sc-ion-alert-ios,.alert-checkbox-label-has-rich-content.sc-ion-alert-ios,.select-option-content.sc-ion-alert-ios{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-alert-ios,.alert-checkbox-label-text.sc-ion-alert-ios,.alert-radio-label-text.sc-ion-alert-ios,.select-option-label-text.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-alert-ios{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}.select-option-label.sc-ion-alert-ios:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-alert-ios::part(label),ion-radio.select-option-has-rich-content.sc-ion-alert-ios [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-alert-ios::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-alert-ios [part~="label"],.select-option-content.sc-ion-alert-ios{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-alert-ios>ion-avatar.sc-ion-alert-ios,.select-option-start.sc-ion-alert-ios>ion-img.sc-ion-alert-ios,.select-option-start.sc-ion-alert-ios>ion-thumbnail.sc-ion-alert-ios,.select-option-start.sc-ion-alert-ios>img.sc-ion-alert-ios,.select-option-start.sc-ion-alert-ios>svg.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios>ion-avatar.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios>ion-img.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios>ion-thumbnail.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios>img.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios>svg.sc-ion-alert-ios{width:44px;height:44px}.select-option-start.sc-ion-alert-ios>ion-icon.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios>ion-icon.sc-ion-alert-ios{width:28px;height:28px}.action-sheet-button-label-text.sc-ion-alert-ios{-ms-flex-pack:center;justify-content:center}.select-option-has-rich-content.sc-ion-alert-ios{-webkit-padding-end:16px;padding-inline-end:16px}.sc-ion-alert-ios-h{--min-width:250px;--width:auto;--min-height:auto;--height:auto;--max-height:90%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-alert-ios-h{display:none}.alert-top.sc-ion-alert-ios-h{padding-top:50px;-ms-flex-align:start;align-items:flex-start}.alert-wrapper.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:content;opacity:0;z-index:10}.alert-title.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-sub-title.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-weight:normal}.alert-message.sc-ion-alert-ios,.alert-input-group.sc-ion-alert-ios{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch;overflow-y:auto;overscroll-behavior-y:contain}.alert-checkbox-label.sc-ion-alert-ios,.alert-radio-label.sc-ion-alert-ios{overflow-wrap:anywhere}@media (any-pointer: coarse){.alert-checkbox-group.sc-ion-alert-ios::-webkit-scrollbar,.alert-radio-group.sc-ion-alert-ios::-webkit-scrollbar,.alert-message.sc-ion-alert-ios::-webkit-scrollbar{display:none}}.alert-input.sc-ion-alert-ios{padding-left:0;padding-right:0;padding-top:10px;padding-bottom:10px;width:100%;border:0;background:inherit;font:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.alert-button-group.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;width:100%}.alert-button-group-vertical.sc-ion-alert-ios{-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.alert-button.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;border:0;font-size:0.875rem;line-height:1.25rem;z-index:0}.alert-button.ion-focused.sc-ion-alert-ios,.alert-tappable.ion-focused.sc-ion-alert-ios{background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.alert-button-inner.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;min-height:inherit}.radio-label-placement-start.sc-ion-alert-ios,.checkbox-label-placement-start.sc-ion-alert-ios{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.radio-label-placement-end.sc-ion-alert-ios,.checkbox-label-placement-end.sc-ion-alert-ios{-ms-flex-direction:row;flex-direction:row}.radio-justify-start.sc-ion-alert-ios,.checkbox-justify-start.sc-ion-alert-ios{-ms-flex-pack:start;justify-content:start}.radio-justify-end.sc-ion-alert-ios,.checkbox-justify-end.sc-ion-alert-ios{-ms-flex-pack:end;justify-content:end}.radio-justify-space-between.sc-ion-alert-ios,.checkbox-justify-space-between.sc-ion-alert-ios{-ms-flex-pack:justify;justify-content:space-between}.alert-input-disabled.sc-ion-alert-ios,.alert-checkbox-button-disabled.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios,.alert-radio-button-disabled.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios{cursor:default;opacity:0.5;pointer-events:none}.alert-tappable.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:-ms-flexbox;display:flex;width:100%;border:0;background:transparent;font-size:inherit;line-height:initial;text-align:start;-webkit-appearance:none;-moz-appearance:none;appearance:none;contain:content}.alert-button.sc-ion-alert-ios,.alert-checkbox.sc-ion-alert-ios,.alert-input.sc-ion-alert-ios,.alert-radio.sc-ion-alert-ios{outline:none}.alert-radio-icon.sc-ion-alert-ios,.alert-checkbox-icon.sc-ion-alert-ios,.alert-checkbox-inner.sc-ion-alert-ios{-webkit-box-sizing:border-box;box-sizing:border-box}textarea.alert-input.sc-ion-alert-ios{min-height:37px;resize:none}.sc-ion-alert-ios-h{--background:var(--ion-overlay-background-color, var(--ion-color-step-100, var(--ion-background-color-step-100, #f9f9f9)));--max-width:clamp(270px, 16.875rem, 324px);--backdrop-opacity:var(--ion-backdrop-opacity, 0.3);font-size:max(14px, 0.875rem)}.alert-wrapper.sc-ion-alert-ios{border-radius:13px;-webkit-box-shadow:none;box-shadow:none;overflow:hidden}.alert-button.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios{pointer-events:none}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.alert-translucent.sc-ion-alert-ios-h .alert-wrapper.sc-ion-alert-ios{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.9);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}.alert-head.sc-ion-alert-ios{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:12px;padding-bottom:7px;text-align:center}.alert-title.sc-ion-alert-ios{margin-top:8px;color:var(--ion-text-color, #000);font-size:max(17px, 1.0625rem);font-weight:600}.alert-sub-title.sc-ion-alert-ios{color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666));font-size:max(14px, 0.875rem)}.alert-message.sc-ion-alert-ios,.alert-input-group.sc-ion-alert-ios{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:21px;color:var(--ion-text-color, #000);font-size:max(13px, 0.8125rem);text-align:center}.alert-message.sc-ion-alert-ios{max-height:240px}.alert-message.sc-ion-alert-ios:empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:12px}.alert-input.sc-ion-alert-ios{border-radius:7px;margin-top:10px;-webkit-padding-start:7px;padding-inline-start:7px;-webkit-padding-end:7px;padding-inline-end:7px;padding-top:7px;padding-bottom:7px;border:0.55px solid var(--ion-color-step-250, var(--ion-background-color-step-250, #bfbfbf));background-color:var(--ion-background-color, #fff);-webkit-appearance:none;-moz-appearance:none;appearance:none;font-size:1rem}.alert-input.sc-ion-alert-ios::-webkit-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-moz-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios:-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-ms-clear{display:none}.alert-input.sc-ion-alert-ios::-webkit-date-and-time-value{height:18px}.alert-radio-group.sc-ion-alert-ios,.alert-checkbox-group.sc-ion-alert-ios{-ms-scroll-chaining:none;overscroll-behavior:contain;max-height:240px;border-top:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);overflow-y:auto;-webkit-overflow-scrolling:touch}.alert-tappable.sc-ion-alert-ios{min-height:44px}.alert-radio-label.sc-ion-alert-ios{-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px;padding-top:13px;padding-bottom:13px;color:var(--ion-text-color, #000)}[aria-checked=true].sc-ion-alert-ios .alert-radio-label.sc-ion-alert-ios{color:var(--ion-color-primary, #0054e9)}.alert-radio-icon.sc-ion-alert-ios{position:relative;-ms-flex-negative:0;flex-shrink:0;min-width:30px}[aria-checked=true].sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios{top:-7px;position:absolute;width:6px;height:12px;-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:2px;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-ios .radio-label-placement-end.sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios{inset-inline-end:7px}[aria-checked=true].sc-ion-alert-ios .radio-label-placement-start.sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios{inset-inline-start:7px}.alert-checkbox-label.sc-ion-alert-ios{-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px;padding-top:13px;padding-bottom:13px;color:var(--ion-text-color, #000)}.alert-checkbox-icon.sc-ion-alert-ios{border-radius:50%;margin-top:10px;margin-bottom:10px;position:relative;-ms-flex-negative:0;flex-shrink:0;width:min(1.375rem, 55.836px);height:min(1.375rem, 55.836px);border-width:0.125rem;border-style:solid;border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));background-color:var(--ion-item-background, var(--ion-background-color, #fff));contain:strict}.checkbox-label-placement-end.sc-ion-alert-ios .alert-checkbox-icon.sc-ion-alert-ios{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:6px;margin-inline-end:6px}.checkbox-label-placement-start.sc-ion-alert-ios .alert-checkbox-icon.sc-ion-alert-ios{-webkit-margin-start:6px;margin-inline-start:6px;-webkit-margin-end:16px;margin-inline-end:16px}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-icon.sc-ion-alert-ios{border-color:var(--ion-color-primary, #0054e9);background-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios{top:calc(min(1.375rem, 55.836px) / 8);position:absolute;width:calc(min(1.375rem, 55.836px) / 6 + 1px);height:calc(min(1.375rem, 55.836px) * 0.5);-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:0.125rem;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-background-color, #fff)}[aria-checked=true].sc-ion-alert-ios .checkbox-label-placement-end.sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios{inset-inline-start:calc(min(1.375rem, 55.836px) / 3)}[aria-checked=true].sc-ion-alert-ios .checkbox-label-placement-start.sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios{inset-inline-end:calc(min(1.375rem, 55.836px) / 3)}.alert-button-group.sc-ion-alert-ios{-webkit-margin-end:-0.55px;margin-inline-end:-0.55px;-ms-flex-wrap:wrap;flex-wrap:wrap}.alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios{border-right:none}[dir=rtl].sc-ion-alert-ios-h .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:none}[dir=rtl].sc-ion-alert-ios .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:none}@supports selector(:dir(rtl)){.alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child:dir(rtl){border-right:none}}.alert-button.sc-ion-alert-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;border-radius:0;-ms-flex:1 1 auto;flex:1 1 auto;min-width:50%;height:max(44px, 2.75rem);border-top:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);background-color:transparent;color:var(--ion-color-primary, #0054e9);font-size:max(17px, 1.0625rem);overflow:hidden}[dir=rtl].sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:first-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:first-child{border-right:0}[dir=rtl].sc-ion-alert-ios .alert-button.sc-ion-alert-ios:first-child{border-right:0}@supports selector(:dir(rtl)){.alert-button.sc-ion-alert-ios:first-child:dir(rtl){border-right:0}}.alert-button.sc-ion-alert-ios:last-child{border-right:0;font-weight:bold}[dir=rtl].sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:last-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:last-child{border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}[dir=rtl].sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}@supports selector(:dir(rtl)){.alert-button.sc-ion-alert-ios:last-child:dir(rtl){border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}}.alert-button.ion-activated.sc-ion-alert-ios{background-color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.1)}.alert-button-role-destructive.sc-ion-alert-ios,.alert-button-role-destructive.ion-activated.sc-ion-alert-ios,.alert-button-role-destructive.ion-focused.sc-ion-alert-ios{color:var(--ion-color-danger, #c5000f)}`;
|
|
10393
10826
|
|
|
10394
|
-
const alertMdCss = () => `.sc-ion-alert-md-h{--min-width:250px;--width:auto;--min-height:auto;--height:auto;--max-height:90%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-alert-md-h{display:none}.alert-top.sc-ion-alert-md-h{padding-top:50px;-ms-flex-align:start;align-items:flex-start}.alert-wrapper.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:content;opacity:0;z-index:10}.alert-title.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-sub-title.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-weight:normal}.alert-message.sc-ion-alert-md,.alert-input-group.sc-ion-alert-md{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch;overflow-y:auto;overscroll-behavior-y:contain}.alert-checkbox-label.sc-ion-alert-md,.alert-radio-label.sc-ion-alert-md{overflow-wrap:anywhere}@media (any-pointer: coarse){.alert-checkbox-group.sc-ion-alert-md::-webkit-scrollbar,.alert-radio-group.sc-ion-alert-md::-webkit-scrollbar,.alert-message.sc-ion-alert-md::-webkit-scrollbar{display:none}}.alert-input.sc-ion-alert-md{padding-left:0;padding-right:0;padding-top:10px;padding-bottom:10px;width:100%;border:0;background:inherit;font:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.alert-button-group.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;width:100%}.alert-button-group-vertical.sc-ion-alert-md{-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.alert-button.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;border:0;font-size:0.875rem;line-height:1.25rem;z-index:0}.alert-button.ion-focused.sc-ion-alert-md,.alert-tappable.ion-focused.sc-ion-alert-md{background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.alert-button-inner.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;min-height:inherit}.alert-input-disabled.sc-ion-alert-md,.alert-checkbox-button-disabled.sc-ion-alert-md .alert-button-inner.sc-ion-alert-md,.alert-radio-button-disabled.sc-ion-alert-md .alert-button-inner.sc-ion-alert-md{cursor:default;opacity:0.5;pointer-events:none}.alert-tappable.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:-ms-flexbox;display:flex;width:100%;border:0;background:transparent;font-size:inherit;line-height:initial;text-align:start;-webkit-appearance:none;-moz-appearance:none;appearance:none;contain:content}.alert-button.sc-ion-alert-md,.alert-checkbox.sc-ion-alert-md,.alert-input.sc-ion-alert-md,.alert-radio.sc-ion-alert-md{outline:none}.alert-radio-icon.sc-ion-alert-md,.alert-checkbox-icon.sc-ion-alert-md,.alert-checkbox-inner.sc-ion-alert-md{-webkit-box-sizing:border-box;box-sizing:border-box}textarea.alert-input.sc-ion-alert-md{min-height:37px;resize:none}.sc-ion-alert-md-h{--background:var(--ion-overlay-background-color, var(--ion-background-color, #fff));--max-width:280px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.32);font-size:0.875rem}.alert-wrapper.sc-ion-alert-md{border-radius:4px;-webkit-box-shadow:0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12);box-shadow:0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12)}.alert-head.sc-ion-alert-md{-webkit-padding-start:23px;padding-inline-start:23px;-webkit-padding-end:23px;padding-inline-end:23px;padding-top:20px;padding-bottom:15px;text-align:start}.alert-title.sc-ion-alert-md{color:var(--ion-text-color, #000);font-size:1.25rem;font-weight:500}.alert-sub-title.sc-ion-alert-md{color:var(--ion-text-color, #000);font-size:1rem}.alert-message.sc-ion-alert-md,.alert-input-group.sc-ion-alert-md{-webkit-padding-start:24px;padding-inline-start:24px;-webkit-padding-end:24px;padding-inline-end:24px;padding-top:20px;padding-bottom:20px;color:var(--ion-color-step-550, var(--ion-text-color-step-450, #737373))}.alert-message.sc-ion-alert-md{font-size:1rem}@media screen and (max-width: 767px){.alert-message.sc-ion-alert-md{max-height:266px}}.alert-message.sc-ion-alert-md:empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-head.sc-ion-alert-md+.alert-message.sc-ion-alert-md{padding-top:0}.alert-input.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:5px;border-bottom:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));color:var(--ion-text-color, #000)}.alert-input.sc-ion-alert-md::-webkit-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-moz-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md:-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-ms-clear{display:none}.alert-input.sc-ion-alert-md:focus{margin-bottom:4px;border-bottom:2px solid var(--ion-color-primary, #0054e9)}.alert-radio-group.sc-ion-alert-md,.alert-checkbox-group.sc-ion-alert-md{position:relative;border-top:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));border-bottom:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));overflow:auto}@media screen and (max-width: 767px){.alert-radio-group.sc-ion-alert-md,.alert-checkbox-group.sc-ion-alert-md{max-height:266px}}.alert-tappable.sc-ion-alert-md{position:relative;min-height:48px}.alert-radio-label.sc-ion-alert-md{-webkit-padding-start:52px;padding-inline-start:52px;-webkit-padding-end:26px;padding-inline-end:26px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));font-size:1rem}.alert-radio-icon.sc-ion-alert-md{top:0;border-radius:50%;display:block;position:relative;width:20px;height:20px;border-width:2px;border-style:solid;border-color:var(--ion-color-step-550, var(--ion-background-color-step-550, #737373))}.alert-radio-icon.sc-ion-alert-md{inset-inline-start:26px}.alert-radio-inner.sc-ion-alert-md{top:3px;border-radius:50%;position:absolute;width:10px;height:10px;-webkit-transform:scale3d(0, 0, 0);transform:scale3d(0, 0, 0);-webkit-transition:-webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:-webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:transform 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);background-color:var(--ion-color-primary, #0054e9)}.alert-radio-inner.sc-ion-alert-md{inset-inline-start:3px}[aria-checked=true].sc-ion-alert-md .alert-radio-label.sc-ion-alert-md{color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626))}[aria-checked=true].sc-ion-alert-md .alert-radio-icon.sc-ion-alert-md{border-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-md .alert-radio-inner.sc-ion-alert-md{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}.alert-checkbox-label.sc-ion-alert-md{-webkit-padding-start:53px;padding-inline-start:53px;-webkit-padding-end:26px;padding-inline-end:26px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;width:calc(100% - 53px);color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));font-size:1rem}.alert-checkbox-icon.sc-ion-alert-md{top:0;border-radius:2px;position:relative;width:16px;height:16px;border-width:2px;border-style:solid;border-color:var(--ion-color-step-550, var(--ion-background-color-step-550, #737373));contain:strict}.alert-checkbox-icon.sc-ion-alert-md{inset-inline-start:26px}[aria-checked=true].sc-ion-alert-md .alert-checkbox-icon.sc-ion-alert-md{border-color:var(--ion-color-primary, #0054e9);background-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-md .alert-checkbox-inner.sc-ion-alert-md{top:0;position:absolute;width:6px;height:10px;-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:2px;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-color-primary-contrast, #fff)}[aria-checked=true].sc-ion-alert-md .alert-checkbox-inner.sc-ion-alert-md{inset-inline-start:3px}.alert-button-group.sc-ion-alert-md{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse;-ms-flex-pack:end;justify-content:flex-end}.alert-button.sc-ion-alert-md{border-radius:2px;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:8px;margin-inline-end:8px;margin-top:0;margin-bottom:0;-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:10px;padding-bottom:10px;position:relative;background-color:transparent;color:var(--ion-color-primary, #0054e9);font-weight:500;text-align:end;text-transform:uppercase;overflow:hidden}.alert-button-inner.sc-ion-alert-md{-ms-flex-pack:end;justify-content:flex-end}@media screen and (min-width: 768px){.sc-ion-alert-md-h{--max-width:min(100vw - 96px, 560px);--max-height:min(100vh - 96px, 560px)}}`;
|
|
10827
|
+
const alertMdCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-alert-md,.alert-radio-label-has-rich-content.sc-ion-alert-md,.alert-checkbox-label-has-rich-content.sc-ion-alert-md,.select-option-label-has-rich-content.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:16px}.action-sheet-button-label-has-rich-content.sc-ion-alert-md,.alert-radio-label-has-rich-content.sc-ion-alert-md,.alert-checkbox-label-has-rich-content.sc-ion-alert-md,.select-option-content.sc-ion-alert-md{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-alert-md,.alert-checkbox-label-text.sc-ion-alert-md,.alert-radio-label-text.sc-ion-alert-md,.select-option-label-text.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-alert-md,.select-option-end.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-alert-md{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}.select-option-label.sc-ion-alert-md:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-alert-md::part(label),ion-radio.select-option-has-rich-content.sc-ion-alert-md [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-alert-md::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-alert-md [part~="label"],.select-option-content.sc-ion-alert-md{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-alert-md>ion-avatar.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>ion-avatar.sc-ion-alert-md{width:40px;height:40px}.select-option-start.sc-ion-alert-md>ion-icon.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>ion-icon.sc-ion-alert-md{width:24px;height:24px}.select-option-start.sc-ion-alert-md>ion-img.sc-ion-alert-md,.select-option-start.sc-ion-alert-md>img.sc-ion-alert-md,.select-option-start.sc-ion-alert-md>svg.sc-ion-alert-md,.select-option-start.sc-ion-alert-md>ion-thumbnail.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>ion-img.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>img.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>svg.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>ion-thumbnail.sc-ion-alert-md{width:56px;height:56px}.select-option-start.sc-ion-alert-md>video.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>video.sc-ion-alert-md{width:114px;height:56px}.sc-ion-alert-md-h{--min-width:250px;--width:auto;--min-height:auto;--height:auto;--max-height:90%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-alert-md-h{display:none}.alert-top.sc-ion-alert-md-h{padding-top:50px;-ms-flex-align:start;align-items:flex-start}.alert-wrapper.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:content;opacity:0;z-index:10}.alert-title.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-sub-title.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-weight:normal}.alert-message.sc-ion-alert-md,.alert-input-group.sc-ion-alert-md{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch;overflow-y:auto;overscroll-behavior-y:contain}.alert-checkbox-label.sc-ion-alert-md,.alert-radio-label.sc-ion-alert-md{overflow-wrap:anywhere}@media (any-pointer: coarse){.alert-checkbox-group.sc-ion-alert-md::-webkit-scrollbar,.alert-radio-group.sc-ion-alert-md::-webkit-scrollbar,.alert-message.sc-ion-alert-md::-webkit-scrollbar{display:none}}.alert-input.sc-ion-alert-md{padding-left:0;padding-right:0;padding-top:10px;padding-bottom:10px;width:100%;border:0;background:inherit;font:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.alert-button-group.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;width:100%}.alert-button-group-vertical.sc-ion-alert-md{-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.alert-button.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;border:0;font-size:0.875rem;line-height:1.25rem;z-index:0}.alert-button.ion-focused.sc-ion-alert-md,.alert-tappable.ion-focused.sc-ion-alert-md{background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.alert-button-inner.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;min-height:inherit}.radio-label-placement-start.sc-ion-alert-md,.checkbox-label-placement-start.sc-ion-alert-md{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.radio-label-placement-end.sc-ion-alert-md,.checkbox-label-placement-end.sc-ion-alert-md{-ms-flex-direction:row;flex-direction:row}.radio-justify-start.sc-ion-alert-md,.checkbox-justify-start.sc-ion-alert-md{-ms-flex-pack:start;justify-content:start}.radio-justify-end.sc-ion-alert-md,.checkbox-justify-end.sc-ion-alert-md{-ms-flex-pack:end;justify-content:end}.radio-justify-space-between.sc-ion-alert-md,.checkbox-justify-space-between.sc-ion-alert-md{-ms-flex-pack:justify;justify-content:space-between}.alert-input-disabled.sc-ion-alert-md,.alert-checkbox-button-disabled.sc-ion-alert-md .alert-button-inner.sc-ion-alert-md,.alert-radio-button-disabled.sc-ion-alert-md .alert-button-inner.sc-ion-alert-md{cursor:default;opacity:0.5;pointer-events:none}.alert-tappable.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:-ms-flexbox;display:flex;width:100%;border:0;background:transparent;font-size:inherit;line-height:initial;text-align:start;-webkit-appearance:none;-moz-appearance:none;appearance:none;contain:content}.alert-button.sc-ion-alert-md,.alert-checkbox.sc-ion-alert-md,.alert-input.sc-ion-alert-md,.alert-radio.sc-ion-alert-md{outline:none}.alert-radio-icon.sc-ion-alert-md,.alert-checkbox-icon.sc-ion-alert-md,.alert-checkbox-inner.sc-ion-alert-md{-webkit-box-sizing:border-box;box-sizing:border-box}textarea.alert-input.sc-ion-alert-md{min-height:37px;resize:none}.sc-ion-alert-md-h{--background:var(--ion-overlay-background-color, var(--ion-background-color, #fff));--max-width:280px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.32);font-size:0.875rem}.alert-wrapper.sc-ion-alert-md{border-radius:4px;-webkit-box-shadow:0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12);box-shadow:0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12)}.alert-head.sc-ion-alert-md{-webkit-padding-start:24px;padding-inline-start:24px;-webkit-padding-end:24px;padding-inline-end:24px;padding-top:20px;padding-bottom:15px;text-align:start}.alert-title.sc-ion-alert-md{color:var(--ion-text-color, #000);font-size:1.25rem;font-weight:500}.alert-sub-title.sc-ion-alert-md{color:var(--ion-text-color, #000);font-size:1rem}.alert-message.sc-ion-alert-md,.alert-input-group.sc-ion-alert-md{-webkit-padding-start:24px;padding-inline-start:24px;-webkit-padding-end:24px;padding-inline-end:24px;padding-top:20px;padding-bottom:20px;color:var(--ion-color-step-550, var(--ion-text-color-step-450, #737373))}.alert-message.sc-ion-alert-md{font-size:1rem}@media screen and (max-width: 767px){.alert-message.sc-ion-alert-md{max-height:266px}}.alert-message.sc-ion-alert-md:empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-head.sc-ion-alert-md+.alert-message.sc-ion-alert-md{padding-top:0}.alert-input.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:5px;border-bottom:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));color:var(--ion-text-color, #000)}.alert-input.sc-ion-alert-md::-webkit-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-moz-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md:-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-ms-clear{display:none}.alert-input.sc-ion-alert-md:focus{margin-bottom:4px;border-bottom:2px solid var(--ion-color-primary, #0054e9)}.alert-radio-group.sc-ion-alert-md,.alert-checkbox-group.sc-ion-alert-md{position:relative;border-top:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));border-bottom:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));overflow:auto}@media screen and (max-width: 767px){.alert-radio-group.sc-ion-alert-md,.alert-checkbox-group.sc-ion-alert-md{max-height:266px}}.alert-tappable.sc-ion-alert-md{position:relative;min-height:48px}.alert-radio-label.sc-ion-alert-md{padding-top:13px;padding-bottom:13px;max-width:calc(100% - 20px);color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));font-size:1rem}.radio-label-placement-end.sc-ion-alert-md .alert-radio-label.sc-ion-alert-md{-webkit-padding-start:56px;padding-inline-start:56px;-webkit-padding-end:24px;padding-inline-end:24px}.radio-label-placement-start.sc-ion-alert-md .alert-radio-label.sc-ion-alert-md{-webkit-padding-start:24px;padding-inline-start:24px;-webkit-padding-end:56px;padding-inline-end:56px}.alert-radio-icon.sc-ion-alert-md{top:0;border-radius:50%;display:block;position:relative;-ms-flex-negative:0;flex-shrink:0;width:20px;height:20px;border-width:2px;border-style:solid;border-color:var(--ion-color-step-550, var(--ion-background-color-step-550, #737373))}.radio-label-placement-end.sc-ion-alert-md .alert-radio-icon.sc-ion-alert-md{inset-inline-start:24px}.radio-label-placement-start.sc-ion-alert-md .alert-radio-icon.sc-ion-alert-md{inset-inline-end:24px}.alert-radio-inner.sc-ion-alert-md{top:3px;border-radius:50%;position:absolute;width:10px;height:10px;-webkit-transform:scale3d(0, 0, 0);transform:scale3d(0, 0, 0);-webkit-transition:-webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:-webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:transform 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);background-color:var(--ion-color-primary, #0054e9)}.alert-radio-inner.sc-ion-alert-md{inset-inline-start:3px}[aria-checked=true].sc-ion-alert-md .alert-radio-label.sc-ion-alert-md{color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626))}[aria-checked=true].sc-ion-alert-md .alert-radio-icon.sc-ion-alert-md{border-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-md .alert-radio-inner.sc-ion-alert-md{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}.alert-checkbox-label.sc-ion-alert-md{padding-top:13px;padding-bottom:13px;max-width:calc(100% - 16px);color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));font-size:1rem}.checkbox-label-placement-end.sc-ion-alert-md .alert-checkbox-label.sc-ion-alert-md{-webkit-padding-start:56px;padding-inline-start:56px;-webkit-padding-end:24px;padding-inline-end:24px}.checkbox-label-placement-start.sc-ion-alert-md .alert-checkbox-label.sc-ion-alert-md{-webkit-padding-start:24px;padding-inline-start:24px;-webkit-padding-end:56px;padding-inline-end:56px}.alert-checkbox-icon.sc-ion-alert-md{top:0;border-radius:2px;position:relative;-ms-flex-negative:0;flex-shrink:0;width:16px;height:16px;border-width:2px;border-style:solid;border-color:var(--ion-color-step-550, var(--ion-background-color-step-550, #737373));contain:strict}.checkbox-label-placement-end.sc-ion-alert-md .alert-checkbox-icon.sc-ion-alert-md{inset-inline-start:24px}.checkbox-label-placement-start.sc-ion-alert-md .alert-checkbox-icon.sc-ion-alert-md{inset-inline-end:24px}[aria-checked=true].sc-ion-alert-md .alert-checkbox-icon.sc-ion-alert-md{border-color:var(--ion-color-primary, #0054e9);background-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-md .alert-checkbox-inner.sc-ion-alert-md{top:0;position:absolute;width:6px;height:10px;-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:2px;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-color-primary-contrast, #fff)}[aria-checked=true].sc-ion-alert-md .alert-checkbox-inner.sc-ion-alert-md{inset-inline-start:3px}.alert-button-group.sc-ion-alert-md{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse;-ms-flex-pack:end;justify-content:flex-end}.alert-button.sc-ion-alert-md{border-radius:2px;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:8px;margin-inline-end:8px;margin-top:0;margin-bottom:0;-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:10px;padding-bottom:10px;position:relative;background-color:transparent;color:var(--ion-color-primary, #0054e9);font-weight:500;text-align:end;text-transform:uppercase;overflow:hidden}.alert-button-group.sc-ion-alert-md .alert-button-inner.sc-ion-alert-md{-ms-flex-pack:end;justify-content:flex-end}@media screen and (min-width: 768px){.sc-ion-alert-md-h{--max-width:min(100vw - 96px, 560px);--max-height:min(100vh - 96px, 560px)}}`;
|
|
10395
10828
|
|
|
10396
10829
|
// TODO(FW-2832): types
|
|
10397
10830
|
/**
|
|
@@ -10565,22 +10998,7 @@ class Alert {
|
|
|
10565
10998
|
this.inputType = inputTypes.values().next().value;
|
|
10566
10999
|
this.processedInputs = inputs.map((i, index) => {
|
|
10567
11000
|
var _a;
|
|
10568
|
-
return ({
|
|
10569
|
-
type: i.type || 'text',
|
|
10570
|
-
name: i.name || `${index}`,
|
|
10571
|
-
placeholder: i.placeholder || '',
|
|
10572
|
-
value: i.value,
|
|
10573
|
-
label: i.label,
|
|
10574
|
-
checked: !!i.checked,
|
|
10575
|
-
disabled: !!i.disabled,
|
|
10576
|
-
id: i.id || `alert-input-${this.overlayIndex}-${index}`,
|
|
10577
|
-
handler: i.handler,
|
|
10578
|
-
min: i.min,
|
|
10579
|
-
max: i.max,
|
|
10580
|
-
cssClass: (_a = i.cssClass) !== null && _a !== void 0 ? _a : '',
|
|
10581
|
-
attributes: i.attributes || {},
|
|
10582
|
-
tabindex: i.type === 'radio' && i !== focusable ? -1 : 0,
|
|
10583
|
-
});
|
|
11001
|
+
return Object.assign(Object.assign({}, i), { type: i.type || 'text', name: i.name || `${index}`, placeholder: i.placeholder || '', checked: !!i.checked, disabled: !!i.disabled, id: i.id || `alert-input-${this.overlayIndex}-${index}`, cssClass: (_a = i.cssClass) !== null && _a !== void 0 ? _a : '', attributes: i.attributes || {}, tabindex: i.type === 'radio' && i !== focusable ? -1 : 0 });
|
|
10584
11002
|
});
|
|
10585
11003
|
}
|
|
10586
11004
|
connectedCallback() {
|
|
@@ -10608,6 +11026,10 @@ class Alert {
|
|
|
10608
11026
|
this.gesture.destroy();
|
|
10609
11027
|
this.gesture = undefined;
|
|
10610
11028
|
}
|
|
11029
|
+
// Clean up aria-hidden if removed without dismiss() being called
|
|
11030
|
+
if (this.presented) {
|
|
11031
|
+
cleanupRootFocusTrapAccessibility();
|
|
11032
|
+
}
|
|
10611
11033
|
(_a = this.buttonGroupResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
10612
11034
|
this.buttonGroupResizeObserver = undefined;
|
|
10613
11035
|
}
|
|
@@ -10647,7 +11069,7 @@ class Alert {
|
|
|
10647
11069
|
async present() {
|
|
10648
11070
|
const unlock = await this.lockController.lock();
|
|
10649
11071
|
await this.delegateController.attachViewToDom();
|
|
10650
|
-
await present(this, 'alertEnter', iosEnterAnimation$
|
|
11072
|
+
await present(this, 'alertEnter', iosEnterAnimation$4, mdEnterAnimation$4).then(() => {
|
|
10651
11073
|
var _a, _b;
|
|
10652
11074
|
/**
|
|
10653
11075
|
* Check if alert has only one button and no inputs.
|
|
@@ -10678,7 +11100,7 @@ class Alert {
|
|
|
10678
11100
|
*/
|
|
10679
11101
|
async dismiss(data, role) {
|
|
10680
11102
|
const unlock = await this.lockController.lock();
|
|
10681
|
-
const dismissed = await dismiss(this, data, role, 'alertLeave', iosLeaveAnimation$
|
|
11103
|
+
const dismissed = await dismiss(this, data, role, 'alertLeave', iosLeaveAnimation$4, mdLeaveAnimation$4);
|
|
10682
11104
|
if (dismissed) {
|
|
10683
11105
|
this.delegateController.removeViewFromDom();
|
|
10684
11106
|
}
|
|
@@ -10776,14 +11198,61 @@ class Alert {
|
|
|
10776
11198
|
if (inputs.length === 0) {
|
|
10777
11199
|
return null;
|
|
10778
11200
|
}
|
|
10779
|
-
return (hAsync("div", { class: "alert-checkbox-group" }, inputs.map((i) =>
|
|
11201
|
+
return (hAsync("div", { class: "alert-checkbox-group" }, inputs.map((i) => {
|
|
11202
|
+
var _a, _b;
|
|
11203
|
+
/**
|
|
11204
|
+
* Cast to `SelectAlertInput` to access rich content
|
|
11205
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
11206
|
+
* that are passed through from `ion-select` but not
|
|
11207
|
+
* part of the public `AlertInput` interface.
|
|
11208
|
+
*/
|
|
11209
|
+
const richInput = i;
|
|
11210
|
+
const optionLabelOptions = {
|
|
11211
|
+
id: richInput.id,
|
|
11212
|
+
label: richInput.label,
|
|
11213
|
+
startContent: richInput.startContent,
|
|
11214
|
+
endContent: richInput.endContent,
|
|
11215
|
+
description: richInput.description,
|
|
11216
|
+
};
|
|
11217
|
+
const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'checkbox');
|
|
11218
|
+
const defaultJustify = getOverlayLabelJustify(mode, 'checkbox');
|
|
11219
|
+
return (hAsync("button", { type: "button", onClick: () => this.cbClick(i), "aria-checked": `${i.checked}`, id: i.id, disabled: i.disabled, tabIndex: i.tabindex, role: "checkbox", class: Object.assign(Object.assign({}, getClassMap(i.cssClass)), { 'alert-tappable': true, 'alert-checkbox': true, 'alert-checkbox-button': true, 'ion-focusable': !i.disabled, 'ion-activatable': !i.disabled, 'alert-checkbox-button-disabled': i.disabled || false }) }, hAsync("div", { class: {
|
|
11220
|
+
'alert-button-inner': true,
|
|
11221
|
+
[`checkbox-label-placement-${(_a = richInput.labelPlacement) !== null && _a !== void 0 ? _a : defaultLabelPlacement}`]: true,
|
|
11222
|
+
[`checkbox-justify-${(_b = richInput.justify) !== null && _b !== void 0 ? _b : defaultJustify}`]: true,
|
|
11223
|
+
} }, hAsync("div", { class: "alert-checkbox-icon" }, hAsync("div", { class: "alert-checkbox-inner" })), renderOptionLabel(optionLabelOptions, 'alert-checkbox-label')), mode === 'md' && hAsync("ion-ripple-effect", null)));
|
|
11224
|
+
})));
|
|
10780
11225
|
}
|
|
10781
11226
|
renderRadio() {
|
|
10782
11227
|
const inputs = this.processedInputs;
|
|
11228
|
+
const mode = getIonMode$1(this);
|
|
10783
11229
|
if (inputs.length === 0) {
|
|
10784
11230
|
return null;
|
|
10785
11231
|
}
|
|
10786
|
-
return (hAsync("div", { class: "alert-radio-group", role: "radiogroup", "aria-activedescendant": this.activeId }, inputs.map((i) =>
|
|
11232
|
+
return (hAsync("div", { class: "alert-radio-group", role: "radiogroup", "aria-activedescendant": this.activeId }, inputs.map((i) => {
|
|
11233
|
+
var _a, _b;
|
|
11234
|
+
/**
|
|
11235
|
+
* Cast to `SelectAlertInput` to access rich content
|
|
11236
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
11237
|
+
* that are passed through from `ion-select` but not
|
|
11238
|
+
* part of the public `AlertInput` interface.
|
|
11239
|
+
*/
|
|
11240
|
+
const richInput = i;
|
|
11241
|
+
const optionLabelOptions = {
|
|
11242
|
+
id: richInput.id,
|
|
11243
|
+
label: richInput.label,
|
|
11244
|
+
startContent: richInput.startContent,
|
|
11245
|
+
endContent: richInput.endContent,
|
|
11246
|
+
description: richInput.description,
|
|
11247
|
+
};
|
|
11248
|
+
const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'radio');
|
|
11249
|
+
const defaultJustify = getOverlayLabelJustify(mode, 'radio');
|
|
11250
|
+
return (hAsync("button", { type: "button", onClick: () => this.rbClick(i), "aria-checked": `${i.checked}`, disabled: i.disabled, id: i.id, tabIndex: i.tabindex, class: Object.assign(Object.assign({}, getClassMap(i.cssClass)), { 'alert-radio-button': true, 'alert-tappable': true, 'alert-radio': true, 'ion-focusable': !i.disabled, 'ion-activatable': !i.disabled, 'alert-radio-button-disabled': i.disabled || false }), role: "radio" }, hAsync("div", { class: {
|
|
11251
|
+
'alert-button-inner': true,
|
|
11252
|
+
[`radio-label-placement-${(_a = richInput.labelPlacement) !== null && _a !== void 0 ? _a : defaultLabelPlacement}`]: true,
|
|
11253
|
+
[`radio-justify-${(_b = richInput.justify) !== null && _b !== void 0 ? _b : defaultJustify}`]: true,
|
|
11254
|
+
} }, hAsync("div", { class: "alert-radio-icon" }, hAsync("div", { class: "alert-radio-inner" })), renderOptionLabel(optionLabelOptions, 'alert-radio-label'))));
|
|
11255
|
+
})));
|
|
10787
11256
|
}
|
|
10788
11257
|
renderInput() {
|
|
10789
11258
|
const inputs = this.processedInputs;
|
|
@@ -10863,7 +11332,7 @@ class Alert {
|
|
|
10863
11332
|
'alert-button-group': true,
|
|
10864
11333
|
'alert-button-group-vertical': buttons.length > 2 || this.isButtonGroupWrapped,
|
|
10865
11334
|
};
|
|
10866
|
-
return (hAsync("div", { class: alertButtonGroupClass, ref: (el) => (this.buttonGroupEl = el) }, buttons.map((button) => (hAsync("button", Object.assign({}, button.htmlAttributes, { type: "button", id: button.id, class: buttonClass$
|
|
11335
|
+
return (hAsync("div", { class: alertButtonGroupClass, ref: (el) => (this.buttonGroupEl = el) }, buttons.map((button) => (hAsync("button", Object.assign({}, button.htmlAttributes, { type: "button", id: button.id, class: buttonClass$1(button), tabIndex: 0, onClick: () => this.buttonClick(button) }), hAsync("span", { class: "alert-button-inner" }, button.text), mode === 'md' && hAsync("ion-ripple-effect", null))))));
|
|
10867
11336
|
}
|
|
10868
11337
|
renderAlertMessage(msgId) {
|
|
10869
11338
|
const { customHTMLEnabled, message } = this;
|
|
@@ -10886,9 +11355,9 @@ class Alert {
|
|
|
10886
11355
|
* If neither are defined, do not set aria-labelledby.
|
|
10887
11356
|
*/
|
|
10888
11357
|
const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
|
|
10889
|
-
return (hAsync(Host, { key: '
|
|
11358
|
+
return (hAsync(Host, { key: '022f3463b8e6c52064b90ec304c524847c3d5ad3', tabindex: "-1", style: {
|
|
10890
11359
|
zIndex: `${20000 + overlayIndex}`,
|
|
10891
|
-
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, hAsync("ion-backdrop", { key: '
|
|
11360
|
+
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, hAsync("ion-backdrop", { key: 'c3cd05738bc2834f54707edeb2fae06ec10d6fd2', tappable: this.backdropDismiss }), hAsync("div", { key: 'b44fadd9ba7ddf073854c5035538d11ae8e66bc2', tabindex: "0", "aria-hidden": "true" }), hAsync("div", Object.assign({ key: 'fafea048141a6c7957e62aef31faa8041dd610c1', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el) }, htmlAttributes), hAsync("div", { key: '3ad9d2d4b7cf425eab8293ddc12eff0fe8df1517', class: "alert-head" }, header && (hAsync("h2", { key: '7d9154f5ee595b7e4da6ecf3a20871f104c1256e', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (hAsync("h2", { key: '1f891f38004be6964e9406b84dd580145c42516a', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (hAsync("h3", { key: '2ab4d344ecb7e384e8f6d3d3e59ee5a1bbcc832c', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: '78a4ff09aa3aaafcd0dc2a42d036767d83b3cfa2', tabindex: "0", "aria-hidden": "true" })));
|
|
10892
11361
|
}
|
|
10893
11362
|
get el() { return getElement(this); }
|
|
10894
11363
|
static get watchers() { return {
|
|
@@ -10946,7 +11415,7 @@ const inputClass = (input) => {
|
|
|
10946
11415
|
var _a, _b, _c;
|
|
10947
11416
|
return Object.assign(Object.assign({ 'alert-input': true, 'alert-input-disabled': ((_b = (_a = input.attributes) === null || _a === void 0 ? void 0 : _a.disabled) !== null && _b !== void 0 ? _b : input.disabled) || false }, getClassMap(input.cssClass)), getClassMap(input.attributes ? (_c = input.attributes.class) === null || _c === void 0 ? void 0 : _c.toString() : ''));
|
|
10948
11417
|
};
|
|
10949
|
-
const buttonClass$
|
|
11418
|
+
const buttonClass$1 = (button) => {
|
|
10950
11419
|
return Object.assign({ 'alert-button': true, 'ion-focusable': true, 'ion-activatable': true, [`alert-button-role-${button.role}`]: button.role !== undefined }, getClassMap(button.cssClass));
|
|
10951
11420
|
};
|
|
10952
11421
|
|
|
@@ -18731,6 +19200,8 @@ const createColorClasses = (color) => {
|
|
|
18731
19200
|
const imgCss = () => `:host{display:block;-o-object-fit:contain;object-fit:contain}img{display:block;width:100%;height:100%;-o-object-fit:inherit;object-fit:inherit;-o-object-position:inherit;object-position:inherit}`;
|
|
18732
19201
|
|
|
18733
19202
|
/**
|
|
19203
|
+
* @deprecated
|
|
19204
|
+
*
|
|
18734
19205
|
* @part image - The inner `img` element.
|
|
18735
19206
|
*/
|
|
18736
19207
|
class Img {
|
|
@@ -18754,6 +19225,8 @@ class Img {
|
|
|
18754
19225
|
this.inheritedAttributes = inheritAttributes$1(this.el, ['draggable']);
|
|
18755
19226
|
}
|
|
18756
19227
|
componentDidLoad() {
|
|
19228
|
+
printIonWarning('[ion-img] - This component is deprecated and will be removed in Ionic v10. ' +
|
|
19229
|
+
'Use a native <img> with the loading="lazy" attribute instead.', this.el);
|
|
18757
19230
|
this.addIO();
|
|
18758
19231
|
}
|
|
18759
19232
|
disconnectedCallback() {
|
|
@@ -18806,7 +19279,7 @@ class Img {
|
|
|
18806
19279
|
render() {
|
|
18807
19280
|
const { loadSrc, alt, onLoad, loadError, inheritedAttributes } = this;
|
|
18808
19281
|
const { draggable } = inheritedAttributes;
|
|
18809
|
-
return (hAsync(Host, { key: '
|
|
19282
|
+
return (hAsync(Host, { key: '57bfb44d9850381fe7b6fcf0c9019b03f7ef86ec', class: getIonMode$1(this) }, hAsync("img", { key: '888ec06a266fa2751fc0147ede6a567f4e2b29a6', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
|
|
18810
19283
|
}
|
|
18811
19284
|
get el() { return getElement(this); }
|
|
18812
19285
|
static get watchers() { return {
|
|
@@ -19310,7 +19783,7 @@ class Input {
|
|
|
19310
19783
|
/**
|
|
19311
19784
|
* Whether auto correction should be enabled when the user is entering/editing the text value.
|
|
19312
19785
|
*/
|
|
19313
|
-
this.autocorrect =
|
|
19786
|
+
this.autocorrect = false;
|
|
19314
19787
|
/**
|
|
19315
19788
|
* Sets the [`autofocus` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus) on the native input element.
|
|
19316
19789
|
*
|
|
@@ -19767,7 +20240,7 @@ class Input {
|
|
|
19767
20240
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
19768
20241
|
*/
|
|
19769
20242
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
|
|
19770
|
-
return (hAsync(Host, { key: '
|
|
20243
|
+
return (hAsync(Host, { key: '6a05f61339d8045285d5820c2508296cc842c210', class: createColorClasses$1(this.color, {
|
|
19771
20244
|
[mode]: true,
|
|
19772
20245
|
'has-value': hasValue,
|
|
19773
20246
|
'has-focus': hasFocus,
|
|
@@ -19778,14 +20251,14 @@ class Input {
|
|
|
19778
20251
|
'in-item': inItem,
|
|
19779
20252
|
'in-item-color': hostContext('ion-item.ion-color', this.el),
|
|
19780
20253
|
'input-disabled': disabled,
|
|
19781
|
-
}) }, hAsync("label", { key: '
|
|
20254
|
+
}) }, hAsync("label", { key: 'b546d66f53ea25082494e3a4cb0ce7532ee649d7', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: '6af832f2b25fadee7a49adb999166dbc97565e2d', class: "native-wrapper", onClick: this.onLabelClick }, hAsync("slot", { key: 'e7a8895038a8d2503f646acfda20c6c1a99c2839', name: "start" }), hAsync("input", Object.assign({ key: 'ce85703e0434a6322bb4275a924e3cd91c79fa20', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect ? 'on' : 'off', autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined, "aria-labelledby": this.getLabelledById() }, this.inheritedAttributes)), this.clearInput && !readonly && !disabled && (hAsync("button", { key: '1e59589fc89a37d7830dc915b4c19d26a8f568c7', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
|
|
19782
20255
|
/**
|
|
19783
20256
|
* This prevents mobile browsers from
|
|
19784
20257
|
* blurring the input when the clear
|
|
19785
20258
|
* button is activated.
|
|
19786
20259
|
*/
|
|
19787
20260
|
ev.preventDefault();
|
|
19788
|
-
}, onClick: this.clearTextInput }, hAsync("ion-icon", { key: '
|
|
20261
|
+
}, onClick: this.clearTextInput }, hAsync("ion-icon", { key: '7d443c5061bf6436d3b77a2444676c679b3e62e4', "aria-hidden": "true", icon: clearIconData }))), hAsync("slot", { key: '5516f88d46886348217570ec1fadda0b79b63c01', name: "end" })), shouldRenderHighlight && hAsync("div", { key: '2a1fdb7e7c974654dfbb3afb4fbfd9204e9d9092', class: "input-highlight" })), this.renderBottomContent()));
|
|
19789
20262
|
}
|
|
19790
20263
|
get el() { return getElement(this); }
|
|
19791
20264
|
static get watchers() { return {
|
|
@@ -19813,7 +20286,7 @@ class Input {
|
|
|
19813
20286
|
"color": [513],
|
|
19814
20287
|
"autocapitalize": [1],
|
|
19815
20288
|
"autocomplete": [1],
|
|
19816
|
-
"autocorrect": [
|
|
20289
|
+
"autocorrect": [4],
|
|
19817
20290
|
"autofocus": [4],
|
|
19818
20291
|
"clearInput": [4, "clear-input"],
|
|
19819
20292
|
"clearInputIcon": [1, "clear-input-icon"],
|
|
@@ -21817,7 +22290,7 @@ class ListHeader {
|
|
|
21817
22290
|
/**
|
|
21818
22291
|
* iOS Loading Enter Animation
|
|
21819
22292
|
*/
|
|
21820
|
-
const iosEnterAnimation$
|
|
22293
|
+
const iosEnterAnimation$3 = (baseEl) => {
|
|
21821
22294
|
const baseAnimation = createAnimation();
|
|
21822
22295
|
const backdropAnimation = createAnimation();
|
|
21823
22296
|
const wrapperAnimation = createAnimation();
|
|
@@ -21842,7 +22315,7 @@ const iosEnterAnimation$4 = (baseEl) => {
|
|
|
21842
22315
|
/**
|
|
21843
22316
|
* iOS Loading Leave Animation
|
|
21844
22317
|
*/
|
|
21845
|
-
const iosLeaveAnimation$
|
|
22318
|
+
const iosLeaveAnimation$3 = (baseEl) => {
|
|
21846
22319
|
const baseAnimation = createAnimation();
|
|
21847
22320
|
const backdropAnimation = createAnimation();
|
|
21848
22321
|
const wrapperAnimation = createAnimation();
|
|
@@ -22015,6 +22488,10 @@ class Loading {
|
|
|
22015
22488
|
}
|
|
22016
22489
|
disconnectedCallback() {
|
|
22017
22490
|
this.triggerController.removeClickListener();
|
|
22491
|
+
// Clean up aria-hidden if removed without dismiss() being called
|
|
22492
|
+
if (this.presented) {
|
|
22493
|
+
cleanupRootFocusTrapAccessibility();
|
|
22494
|
+
}
|
|
22018
22495
|
}
|
|
22019
22496
|
/**
|
|
22020
22497
|
* Present the loading overlay after it has been created.
|
|
@@ -22022,7 +22499,7 @@ class Loading {
|
|
|
22022
22499
|
async present() {
|
|
22023
22500
|
const unlock = await this.lockController.lock();
|
|
22024
22501
|
await this.delegateController.attachViewToDom();
|
|
22025
|
-
await present(this, 'loadingEnter', iosEnterAnimation$
|
|
22502
|
+
await present(this, 'loadingEnter', iosEnterAnimation$3, mdEnterAnimation$3);
|
|
22026
22503
|
if (this.duration > 0) {
|
|
22027
22504
|
this.durationTimeout = setTimeout(() => this.dismiss(), this.duration + 10);
|
|
22028
22505
|
}
|
|
@@ -22045,7 +22522,7 @@ class Loading {
|
|
|
22045
22522
|
if (this.durationTimeout) {
|
|
22046
22523
|
clearTimeout(this.durationTimeout);
|
|
22047
22524
|
}
|
|
22048
|
-
const dismissed = await dismiss(this, data, role, 'loadingLeave', iosLeaveAnimation$
|
|
22525
|
+
const dismissed = await dismiss(this, data, role, 'loadingLeave', iosLeaveAnimation$3, mdLeaveAnimation$3);
|
|
22049
22526
|
if (dismissed) {
|
|
22050
22527
|
this.delegateController.removeViewFromDom();
|
|
22051
22528
|
}
|
|
@@ -22080,9 +22557,9 @@ class Loading {
|
|
|
22080
22557
|
* Otherwise, don't set aria-labelledby.
|
|
22081
22558
|
*/
|
|
22082
22559
|
const ariaLabelledBy = message !== undefined ? msgId : null;
|
|
22083
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
22560
|
+
return (hAsync(Host, Object.assign({ key: 'ab48bfcee8f7e3e33847a2f262fdc08b9ea804ca', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
|
|
22084
22561
|
zIndex: `${40000 + this.overlayIndex}`,
|
|
22085
|
-
}, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: '
|
|
22562
|
+
}, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: '41baccc7fb6474389a3a3431c208e829ef738b75', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '7b7290974abbe8db8739b19835aca9f8b5c271c2', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: 'e32466abfcc92aaad47ea03b1dcb49f66abe4b63', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (hAsync("div", { key: 'c5e6e6f9e3f39dba0225d08d7dd2c1b96a1d83c7', class: "loading-spinner" }, hAsync("ion-spinner", { key: 'f428038959d879404ea898011363aac0b807ad11', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), hAsync("div", { key: '490e531367b86c319fa4260722dcff4dd631fa88', tabindex: "0", "aria-hidden": "true" })));
|
|
22086
22563
|
}
|
|
22087
22564
|
get el() { return getElement(this); }
|
|
22088
22565
|
static get watchers() { return {
|
|
@@ -24063,15 +24540,8 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
|
|
|
24063
24540
|
}
|
|
24064
24541
|
return false;
|
|
24065
24542
|
};
|
|
24066
|
-
/**
|
|
24067
|
-
* In Firefox, pressing over a text caret in the focusable wrapper can
|
|
24068
|
-
* start a native drag that swallows the gesture's pointer events.
|
|
24069
|
-
* Cancel native drag while the gesture is active.
|
|
24070
|
-
*/
|
|
24071
|
-
const preventNativeDragStart = (ev) => ev.preventDefault();
|
|
24072
24543
|
const onStart = (detail) => {
|
|
24073
24544
|
const { deltaY } = detail;
|
|
24074
|
-
el.addEventListener('dragstart', preventNativeDragStart);
|
|
24075
24545
|
/**
|
|
24076
24546
|
* Get the initial scrollY value so
|
|
24077
24547
|
* that we can correctly reset the scrollY
|
|
@@ -24174,7 +24644,6 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
|
|
|
24174
24644
|
onDragMove(eventDetail);
|
|
24175
24645
|
};
|
|
24176
24646
|
const onEnd = (detail) => {
|
|
24177
|
-
el.removeEventListener('dragstart', preventNativeDragStart);
|
|
24178
24647
|
const velocity = detail.velocityY;
|
|
24179
24648
|
const step = detail.deltaY / height;
|
|
24180
24649
|
const isAttemptingDismissWithCanDismiss = step >= 0 && canDismissBlocksGesture;
|
|
@@ -24364,7 +24833,7 @@ const createEnterAnimation$1 = () => {
|
|
|
24364
24833
|
/**
|
|
24365
24834
|
* iOS Modal Enter Animation for the Card presentation style
|
|
24366
24835
|
*/
|
|
24367
|
-
const iosEnterAnimation$
|
|
24836
|
+
const iosEnterAnimation$2 = (baseEl, opts) => {
|
|
24368
24837
|
const { presentingEl, currentBreakpoint, expandToScroll } = opts;
|
|
24369
24838
|
const root = getElementRoot(baseEl);
|
|
24370
24839
|
const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
|
|
@@ -24457,7 +24926,7 @@ const createLeaveAnimation$1 = () => {
|
|
|
24457
24926
|
/**
|
|
24458
24927
|
* iOS Modal Leave Animation
|
|
24459
24928
|
*/
|
|
24460
|
-
const iosLeaveAnimation$
|
|
24929
|
+
const iosLeaveAnimation$2 = (baseEl, opts, duration = 500) => {
|
|
24461
24930
|
const { presentingEl, currentBreakpoint } = opts;
|
|
24462
24931
|
const root = getElementRoot(baseEl);
|
|
24463
24932
|
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
|
|
@@ -24957,14 +25426,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
24957
25426
|
}
|
|
24958
25427
|
return true;
|
|
24959
25428
|
};
|
|
24960
|
-
/**
|
|
24961
|
-
* In Firefox, pressing over a text caret in the focusable wrapper can
|
|
24962
|
-
* start a native drag that swallows the gesture's pointer events.
|
|
24963
|
-
* Cancel native drag while the gesture is active.
|
|
24964
|
-
*/
|
|
24965
|
-
const preventNativeDragStart = (ev) => ev.preventDefault();
|
|
24966
25429
|
const onStart = (detail) => {
|
|
24967
|
-
baseEl.addEventListener('dragstart', preventNativeDragStart);
|
|
24968
25430
|
/**
|
|
24969
25431
|
* If canDismiss is anything other than `true`
|
|
24970
25432
|
* then users should be able to swipe down
|
|
@@ -25091,7 +25553,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
25091
25553
|
onDragMove(eventDetail);
|
|
25092
25554
|
};
|
|
25093
25555
|
const onEnd = (detail) => {
|
|
25094
|
-
baseEl.removeEventListener('dragstart', preventNativeDragStart);
|
|
25095
25556
|
const snapBreakpoint = calculateSnapBreakpoint(detail.deltaY);
|
|
25096
25557
|
const eventDetail = {
|
|
25097
25558
|
currentY: detail.currentY,
|
|
@@ -25568,9 +26029,9 @@ const clearSafeAreaOverrides = (hostEl) => {
|
|
|
25568
26029
|
hostEl.style.removeProperty('--ion-safe-area-right');
|
|
25569
26030
|
};
|
|
25570
26031
|
|
|
25571
|
-
const modalIosCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-
|
|
26032
|
+
const modalIosCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}:host(.modal-sheet){--height:calc(100% - (var(--ion-modal-offset-top, 0px) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.4)}:host(.modal-card),:host(.modal-sheet){--border-radius:10px}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:10px}}.modal-wrapper{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}@media screen and (max-width: 767px){@supports (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - max(30px, var(--ion-safe-area-top)) - 10px)}}@supports not (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - 40px)}}:host(.modal-card) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-card){--backdrop-opacity:0;--width:100%;-ms-flex-align:end;align-items:flex-end}:host(.modal-card) .modal-shadow{display:none}:host(.modal-card) ion-backdrop{pointer-events:none}}@media screen and (min-width: 768px){:host(.modal-card){--width:calc(100% - 120px);--height:calc(100% - (120px + var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));--max-width:720px;--max-height:1000px;--backdrop-opacity:0;--box-shadow:0px 0px 30px 10px rgba(0, 0, 0, 0.1);-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out}:host(.modal-card) .modal-wrapper{-webkit-box-shadow:none;box-shadow:none}:host(.modal-card) .modal-shadow{-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}}:host(.modal-sheet) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}`;
|
|
25572
26033
|
|
|
25573
|
-
const modalMdCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-
|
|
26034
|
+
const modalMdCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}:host(.modal-sheet){--height:calc(100% - (var(--ion-modal-offset-top, 0px) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:2px;--box-shadow:0 28px 48px rgba(0, 0, 0, 0.4)}}.modal-wrapper{-webkit-transform:translate3d(0, 40px, 0);transform:translate3d(0, 40px, 0);opacity:0.01}`;
|
|
25574
26035
|
|
|
25575
26036
|
// TODO(FW-2832): types
|
|
25576
26037
|
/**
|
|
@@ -25640,13 +26101,20 @@ class Modal {
|
|
|
25640
26101
|
/**
|
|
25641
26102
|
* The interaction behavior for the sheet modal when the handle is pressed.
|
|
25642
26103
|
*
|
|
25643
|
-
*
|
|
25644
|
-
*
|
|
26104
|
+
* Handle behavior is unavailable when the `handle` property is set to
|
|
26105
|
+
* `false` or when the `breakpoints` property is not set (using a
|
|
26106
|
+
* fullscreen or card modal).
|
|
26107
|
+
*
|
|
26108
|
+
* Set to `"cycle"` to make the handle focusable and let the sheet modal
|
|
26109
|
+
* cycle between available breakpoints when pressed. This keeps the sheet
|
|
26110
|
+
* operable with assistive technology.
|
|
25645
26111
|
*
|
|
25646
|
-
*
|
|
25647
|
-
*
|
|
26112
|
+
* Set to `"none"` to make the handle purely decorative when pressed and
|
|
26113
|
+
* removed from the tab order.
|
|
26114
|
+
*
|
|
26115
|
+
* Defaults to `"cycle"`.
|
|
25648
26116
|
*/
|
|
25649
|
-
this.handleBehavior = '
|
|
26117
|
+
this.handleBehavior = 'cycle';
|
|
25650
26118
|
/**
|
|
25651
26119
|
* If `true`, the modal will be dismissed when the backdrop is clicked.
|
|
25652
26120
|
*/
|
|
@@ -25838,6 +26306,10 @@ class Modal {
|
|
|
25838
26306
|
// Also called in dismiss() — intentional dual cleanup covers both
|
|
25839
26307
|
// dismiss-then-remove and direct DOM removal without dismiss.
|
|
25840
26308
|
this.cleanupSafeAreaOverrides();
|
|
26309
|
+
// Clean up aria-hidden if removed without dismiss() being called
|
|
26310
|
+
if (this.presented) {
|
|
26311
|
+
cleanupRootFocusTrapAccessibility();
|
|
26312
|
+
}
|
|
25841
26313
|
}
|
|
25842
26314
|
componentWillLoad() {
|
|
25843
26315
|
var _a;
|
|
@@ -26014,7 +26486,7 @@ class Modal {
|
|
|
26014
26486
|
this.statusBarStyle = await StatusBar.getStyle();
|
|
26015
26487
|
setCardStatusBarDark();
|
|
26016
26488
|
}
|
|
26017
|
-
await present(this, 'modalEnter', iosEnterAnimation$
|
|
26489
|
+
await present(this, 'modalEnter', iosEnterAnimation$2, mdEnterAnimation$2, {
|
|
26018
26490
|
presentingEl: presentingElement,
|
|
26019
26491
|
currentBreakpoint: this.initialBreakpoint,
|
|
26020
26492
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
@@ -26076,7 +26548,7 @@ class Modal {
|
|
|
26076
26548
|
// All of the elements needed for the swipe gesture
|
|
26077
26549
|
// should be in the DOM and referenced by now, except
|
|
26078
26550
|
// for the presenting el
|
|
26079
|
-
const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$
|
|
26551
|
+
const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$2);
|
|
26080
26552
|
const ani = (this.animation = animationBuilder(el, {
|
|
26081
26553
|
presentingEl: this.presentingElement,
|
|
26082
26554
|
expandToScroll: this.expandToScroll,
|
|
@@ -26095,7 +26567,7 @@ class Modal {
|
|
|
26095
26567
|
if (!wrapperEl || initialBreakpoint === undefined) {
|
|
26096
26568
|
return;
|
|
26097
26569
|
}
|
|
26098
|
-
const animationBuilder = this.enterAnimation || config.get('modalEnter', iosEnterAnimation$
|
|
26570
|
+
const animationBuilder = this.enterAnimation || config.get('modalEnter', iosEnterAnimation$2);
|
|
26099
26571
|
const ani = (this.animation = animationBuilder(this.el, {
|
|
26100
26572
|
presentingEl: this.presentingElement,
|
|
26101
26573
|
currentBreakpoint: initialBreakpoint,
|
|
@@ -26285,7 +26757,7 @@ class Modal {
|
|
|
26285
26757
|
window.removeEventListener(KEYBOARD_DID_OPEN, this.keyboardOpenCallback);
|
|
26286
26758
|
this.keyboardOpenCallback = undefined;
|
|
26287
26759
|
}
|
|
26288
|
-
const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation$
|
|
26760
|
+
const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation$2, mdLeaveAnimation$2, {
|
|
26289
26761
|
presentingEl: presentingElement,
|
|
26290
26762
|
currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
|
|
26291
26763
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
@@ -26717,25 +27189,20 @@ class Modal {
|
|
|
26717
27189
|
const isCardModal = presentingElement !== undefined && mode === 'ios';
|
|
26718
27190
|
const isHandleCycle = handleBehavior === 'cycle';
|
|
26719
27191
|
const isSheetModalWithHandle = isSheetModal && showHandle;
|
|
26720
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
27192
|
+
return (hAsync(Host, Object.assign({ key: '528f9e354f470e22563938e7531e3f23a97e4200', "no-router": true,
|
|
26721
27193
|
// Allow the modal to be navigable when the handle is focusable
|
|
26722
27194
|
tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
|
|
26723
27195
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
26724
|
-
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), hAsync("ion-backdrop", { key: '
|
|
27196
|
+
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), hAsync("ion-backdrop", { key: '53983c96bc6b30df89986c8d9c978a8e6f78fe80', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: '34288a7343b7c47fed00d3abc73957f45f06d2fd', class: "modal-shadow" }), hAsync("div", Object.assign({ key: 'f9b37f547bd5c61037bbad1a71bfed80ba8c630b',
|
|
26725
27197
|
/*
|
|
26726
27198
|
role and aria-modal must be used on the
|
|
26727
27199
|
same element. They must also be set inside the
|
|
26728
27200
|
shadow DOM otherwise ion-button will not be highlighted
|
|
26729
27201
|
when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
|
|
26730
|
-
|
|
26731
|
-
tabIndex={-1} is required so present() can move focus to this
|
|
26732
|
-
element (which carries the dialog role) instead of the role-less
|
|
26733
|
-
host. role="dialog" alone does not make an element focusable, so
|
|
26734
|
-
without the tabindex focus() would be a no-op.
|
|
26735
27202
|
*/
|
|
26736
|
-
role: "dialog" }, inheritedAttributes, { "aria-modal": "true",
|
|
27203
|
+
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: 'b8741594108d3ea681ff41ff8f2241a4119578b1', class: "modal-handle",
|
|
26737
27204
|
// Prevents the handle from receiving keyboard focus when it does not cycle
|
|
26738
|
-
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), hAsync("slot", { key: '
|
|
27205
|
+
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), hAsync("slot", { key: 'bcc7960fae3fed09076c704d08c3afc46caa0738', onSlotchange: this.onSlotChange }))));
|
|
26739
27206
|
}
|
|
26740
27207
|
get el() { return getElement(this); }
|
|
26741
27208
|
static get watchers() { return {
|
|
@@ -26838,15 +27305,6 @@ class ViewController {
|
|
|
26838
27305
|
this.state = VIEW_STATE_DESTROYED;
|
|
26839
27306
|
}
|
|
26840
27307
|
}
|
|
26841
|
-
const matches = (view, id, params) => {
|
|
26842
|
-
if (!view) {
|
|
26843
|
-
return false;
|
|
26844
|
-
}
|
|
26845
|
-
if (view.component !== id) {
|
|
26846
|
-
return false;
|
|
26847
|
-
}
|
|
26848
|
-
return shallowEqualStringMap(view.params, params);
|
|
26849
|
-
};
|
|
26850
27308
|
const convertToView = (page, params) => {
|
|
26851
27309
|
if (!page) {
|
|
26852
27310
|
return null;
|
|
@@ -26880,7 +27338,6 @@ class Nav {
|
|
|
26880
27338
|
this.ionNavDidChange = createEvent(this, "ionNavDidChange", 3);
|
|
26881
27339
|
this.transInstr = [];
|
|
26882
27340
|
this.gestureOrAnimationInProgress = false;
|
|
26883
|
-
this.useRouter = false;
|
|
26884
27341
|
this.isTransitioning = false;
|
|
26885
27342
|
this.destroyed = false;
|
|
26886
27343
|
this.views = [];
|
|
@@ -26906,14 +27363,9 @@ class Nav {
|
|
|
26906
27363
|
*/
|
|
26907
27364
|
return;
|
|
26908
27365
|
}
|
|
26909
|
-
|
|
26910
|
-
if (this.root !== undefined) {
|
|
26911
|
-
this.setRoot(this.root, this.rootParams);
|
|
26912
|
-
}
|
|
26913
|
-
}
|
|
27366
|
+
this.setRoot(this.root, this.rootParams);
|
|
26914
27367
|
}
|
|
26915
27368
|
componentWillLoad() {
|
|
26916
|
-
this.useRouter = document.querySelector('ion-router') !== null && this.el.closest('[no-router]') === null;
|
|
26917
27369
|
if (this.swipeGesture === undefined) {
|
|
26918
27370
|
const mode = getIonMode$1(this);
|
|
26919
27371
|
this.swipeGesture = config.getBoolean('swipeBackEnabled', mode === 'ios');
|
|
@@ -27078,78 +27530,6 @@ class Nav {
|
|
|
27078
27530
|
opts,
|
|
27079
27531
|
}, done);
|
|
27080
27532
|
}
|
|
27081
|
-
/**
|
|
27082
|
-
* Called by the router to update the view.
|
|
27083
|
-
*
|
|
27084
|
-
* @param id The component tag.
|
|
27085
|
-
* @param params The component params.
|
|
27086
|
-
* @param direction A direction hint.
|
|
27087
|
-
* @param animation an AnimationBuilder.
|
|
27088
|
-
*
|
|
27089
|
-
* @return the status.
|
|
27090
|
-
* @internal
|
|
27091
|
-
*/
|
|
27092
|
-
setRouteId(id, params, direction, animation) {
|
|
27093
|
-
const active = this.getActiveSync();
|
|
27094
|
-
if (matches(active, id, params)) {
|
|
27095
|
-
return Promise.resolve({
|
|
27096
|
-
changed: false,
|
|
27097
|
-
element: active.element,
|
|
27098
|
-
});
|
|
27099
|
-
}
|
|
27100
|
-
let resolve;
|
|
27101
|
-
const promise = new Promise((r) => (resolve = r));
|
|
27102
|
-
let finish;
|
|
27103
|
-
const commonOpts = {
|
|
27104
|
-
updateURL: false,
|
|
27105
|
-
viewIsReady: (enteringEl) => {
|
|
27106
|
-
let mark;
|
|
27107
|
-
const p = new Promise((r) => (mark = r));
|
|
27108
|
-
resolve({
|
|
27109
|
-
changed: true,
|
|
27110
|
-
element: enteringEl,
|
|
27111
|
-
markVisible: async () => {
|
|
27112
|
-
mark();
|
|
27113
|
-
await finish;
|
|
27114
|
-
},
|
|
27115
|
-
});
|
|
27116
|
-
return p;
|
|
27117
|
-
},
|
|
27118
|
-
};
|
|
27119
|
-
if (direction === 'root') {
|
|
27120
|
-
finish = this.setRoot(id, params, commonOpts);
|
|
27121
|
-
}
|
|
27122
|
-
else {
|
|
27123
|
-
// Look for a view matching the target in the view stack.
|
|
27124
|
-
const viewController = this.views.find((v) => matches(v, id, params));
|
|
27125
|
-
if (viewController) {
|
|
27126
|
-
finish = this.popTo(viewController, Object.assign(Object.assign({}, commonOpts), { direction: 'back', animationBuilder: animation }));
|
|
27127
|
-
}
|
|
27128
|
-
else if (direction === 'forward') {
|
|
27129
|
-
finish = this.push(id, params, Object.assign(Object.assign({}, commonOpts), { animationBuilder: animation }));
|
|
27130
|
-
}
|
|
27131
|
-
else if (direction === 'back') {
|
|
27132
|
-
finish = this.setRoot(id, params, Object.assign(Object.assign({}, commonOpts), { direction: 'back', animated: true, animationBuilder: animation }));
|
|
27133
|
-
}
|
|
27134
|
-
}
|
|
27135
|
-
return promise;
|
|
27136
|
-
}
|
|
27137
|
-
/**
|
|
27138
|
-
* Called by <ion-router> to retrieve the current component.
|
|
27139
|
-
*
|
|
27140
|
-
* @internal
|
|
27141
|
-
*/
|
|
27142
|
-
async getRouteId() {
|
|
27143
|
-
const active = this.getActiveSync();
|
|
27144
|
-
if (active) {
|
|
27145
|
-
return {
|
|
27146
|
-
id: active.element.tagName,
|
|
27147
|
-
params: active.params,
|
|
27148
|
-
element: active.element,
|
|
27149
|
-
};
|
|
27150
|
-
}
|
|
27151
|
-
return undefined;
|
|
27152
|
-
}
|
|
27153
27533
|
/**
|
|
27154
27534
|
* Get the active view.
|
|
27155
27535
|
*/
|
|
@@ -27215,25 +27595,6 @@ class Nav {
|
|
|
27215
27595
|
ti.reject = reject;
|
|
27216
27596
|
});
|
|
27217
27597
|
ti.done = done;
|
|
27218
|
-
/**
|
|
27219
|
-
* If using router, check to see if navigation hooks
|
|
27220
|
-
* will allow us to perform this transition. This
|
|
27221
|
-
* is required in order for hooks to work with
|
|
27222
|
-
* the ion-back-button or swipe to go back.
|
|
27223
|
-
*/
|
|
27224
|
-
if (ti.opts && ti.opts.updateURL !== false && this.useRouter) {
|
|
27225
|
-
const router = document.querySelector('ion-router');
|
|
27226
|
-
if (router) {
|
|
27227
|
-
const canTransition = await router.canTransition();
|
|
27228
|
-
if (canTransition === false) {
|
|
27229
|
-
return false;
|
|
27230
|
-
}
|
|
27231
|
-
if (typeof canTransition === 'string') {
|
|
27232
|
-
router.push(canTransition, ti.opts.direction || 'back');
|
|
27233
|
-
return false;
|
|
27234
|
-
}
|
|
27235
|
-
}
|
|
27236
|
-
}
|
|
27237
27598
|
// Normalize empty
|
|
27238
27599
|
if (((_b = ti.insertViews) === null || _b === void 0 ? void 0 : _b.length) === 0) {
|
|
27239
27600
|
ti.insertViews = undefined;
|
|
@@ -27254,13 +27615,6 @@ class Nav {
|
|
|
27254
27615
|
ti.done(result.hasCompleted, result.requiresTransition, result.enteringView, result.leavingView, result.direction);
|
|
27255
27616
|
}
|
|
27256
27617
|
ti.resolve(result.hasCompleted);
|
|
27257
|
-
if (ti.opts.updateURL !== false && this.useRouter) {
|
|
27258
|
-
const router = document.querySelector('ion-router');
|
|
27259
|
-
if (router) {
|
|
27260
|
-
const direction = result.direction === 'back' ? 'back' : 'forward';
|
|
27261
|
-
router.navChanged(direction);
|
|
27262
|
-
}
|
|
27263
|
-
}
|
|
27264
27618
|
}
|
|
27265
27619
|
failed(rejectReason, ti) {
|
|
27266
27620
|
if (this.destroyed) {
|
|
@@ -27690,7 +28044,7 @@ class Nav {
|
|
|
27690
28044
|
}
|
|
27691
28045
|
}
|
|
27692
28046
|
render() {
|
|
27693
|
-
return hAsync("slot", { key: '
|
|
28047
|
+
return hAsync("slot", { key: 'bb4a201a3a8079548f5474ff42293b28fc7599fb' });
|
|
27694
28048
|
}
|
|
27695
28049
|
get el() { return getElement(this); }
|
|
27696
28050
|
static get watchers() { return {
|
|
@@ -27721,8 +28075,6 @@ class Nav {
|
|
|
27721
28075
|
"removeIndex": [64],
|
|
27722
28076
|
"setRoot": [64],
|
|
27723
28077
|
"setPages": [64],
|
|
27724
|
-
"setRouteId": [64],
|
|
27725
|
-
"getRouteId": [64],
|
|
27726
28078
|
"getActive": [64],
|
|
27727
28079
|
"getByIndex": [64],
|
|
27728
28080
|
"canGoBack": [64],
|
|
@@ -27818,14 +28170,14 @@ class Note {
|
|
|
27818
28170
|
}; }
|
|
27819
28171
|
}
|
|
27820
28172
|
|
|
27821
|
-
const pickerIosCss
|
|
28173
|
+
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)))}`;
|
|
27822
28174
|
|
|
27823
|
-
const pickerMdCss
|
|
28175
|
+
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%)}`;
|
|
27824
28176
|
|
|
27825
28177
|
/**
|
|
27826
28178
|
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
27827
28179
|
*/
|
|
27828
|
-
|
|
28180
|
+
class Picker {
|
|
27829
28181
|
constructor(hostRef) {
|
|
27830
28182
|
registerInstance(this, hostRef);
|
|
27831
28183
|
this.ionInputModeChange = createEvent(this, "ionInputModeChange", 7);
|
|
@@ -28291,8 +28643,8 @@ let Picker$1 = class Picker {
|
|
|
28291
28643
|
}
|
|
28292
28644
|
get el() { return getElement(this); }
|
|
28293
28645
|
static get style() { return {
|
|
28294
|
-
ios: pickerIosCss
|
|
28295
|
-
md: pickerMdCss
|
|
28646
|
+
ios: pickerIosCss(),
|
|
28647
|
+
md: pickerMdCss()
|
|
28296
28648
|
}; }
|
|
28297
28649
|
static get cmpMeta() { return {
|
|
28298
28650
|
"$flags$": 297,
|
|
@@ -28304,324 +28656,9 @@ let Picker$1 = class Picker {
|
|
|
28304
28656
|
"$lazyBundleId$": "-",
|
|
28305
28657
|
"$attrsToReflect$": []
|
|
28306
28658
|
}; }
|
|
28307
|
-
}
|
|
28659
|
+
}
|
|
28308
28660
|
|
|
28309
|
-
|
|
28310
|
-
* iOS Picker Enter Animation
|
|
28311
|
-
*/
|
|
28312
|
-
const iosEnterAnimation$2 = (baseEl) => {
|
|
28313
|
-
const baseAnimation = createAnimation();
|
|
28314
|
-
const backdropAnimation = createAnimation();
|
|
28315
|
-
const wrapperAnimation = createAnimation();
|
|
28316
|
-
backdropAnimation
|
|
28317
|
-
.addElement(baseEl.querySelector('ion-backdrop'))
|
|
28318
|
-
.fromTo('opacity', 0.01, 'var(--backdrop-opacity)')
|
|
28319
|
-
.beforeStyles({
|
|
28320
|
-
'pointer-events': 'none',
|
|
28321
|
-
})
|
|
28322
|
-
.afterClearStyles(['pointer-events']);
|
|
28323
|
-
wrapperAnimation
|
|
28324
|
-
.addElement(baseEl.querySelector('.picker-wrapper'))
|
|
28325
|
-
.fromTo('transform', 'translateY(100%)', 'translateY(0%)');
|
|
28326
|
-
return baseAnimation
|
|
28327
|
-
.addElement(baseEl)
|
|
28328
|
-
.easing('cubic-bezier(.36,.66,.04,1)')
|
|
28329
|
-
.duration(400)
|
|
28330
|
-
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
28331
|
-
};
|
|
28332
|
-
|
|
28333
|
-
/**
|
|
28334
|
-
* iOS Picker Leave Animation
|
|
28335
|
-
*/
|
|
28336
|
-
const iosLeaveAnimation$2 = (baseEl) => {
|
|
28337
|
-
const baseAnimation = createAnimation();
|
|
28338
|
-
const backdropAnimation = createAnimation();
|
|
28339
|
-
const wrapperAnimation = createAnimation();
|
|
28340
|
-
backdropAnimation
|
|
28341
|
-
.addElement(baseEl.querySelector('ion-backdrop'))
|
|
28342
|
-
.fromTo('opacity', 'var(--backdrop-opacity)', 0.01);
|
|
28343
|
-
wrapperAnimation
|
|
28344
|
-
.addElement(baseEl.querySelector('.picker-wrapper'))
|
|
28345
|
-
.fromTo('transform', 'translateY(0%)', 'translateY(100%)');
|
|
28346
|
-
return baseAnimation
|
|
28347
|
-
.addElement(baseEl)
|
|
28348
|
-
.easing('cubic-bezier(.36,.66,.04,1)')
|
|
28349
|
-
.duration(400)
|
|
28350
|
-
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
28351
|
-
};
|
|
28352
|
-
|
|
28353
|
-
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}`;
|
|
28354
|
-
|
|
28355
|
-
const pickerMdCss = () => `.sc-ion-picker-legacy-md-h{--border-radius:0;--border-style:solid;--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--max-height:auto;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.sc-ion-picker-legacy-md-h{inset-inline-start:0}.overlay-hidden.sc-ion-picker-legacy-md-h{display:none}.picker-wrapper.sc-ion-picker-legacy-md{border-radius:var(--border-radius);left:0;right:0;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:auto;margin-bottom:auto;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;overflow:hidden;z-index:10}.picker-toolbar.sc-ion-picker-legacy-md{width:100%;background:transparent;contain:strict;z-index:1}.picker-button.sc-ion-picker-legacy-md{border:0;font-family:inherit}.picker-button.sc-ion-picker-legacy-md:active,.picker-button.sc-ion-picker-legacy-md:focus{outline:none}.picker-columns.sc-ion-picker-legacy-md{display:-ms-flexbox;display:flex;position:relative;-ms-flex-pack:center;justify-content:center;margin-bottom:var(--ion-safe-area-bottom, 0);contain:strict;overflow:hidden}.picker-above-highlight.sc-ion-picker-legacy-md,.picker-below-highlight.sc-ion-picker-legacy-md{display:none;pointer-events:none}.sc-ion-picker-legacy-md-h{--background:var(--ion-background-color, #fff);--border-width:0.55px 0 0;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.13)))));--height:260px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.26);color:var(--ion-item-color, var(--ion-text-color, #000))}.picker-toolbar.sc-ion-picker-legacy-md{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end;height:44px}.picker-button.sc-ion-picker-legacy-md,.picker-button.ion-activated.sc-ion-picker-legacy-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-padding-start:1.1em;padding-inline-start:1.1em;-webkit-padding-end:1.1em;padding-inline-end:1.1em;padding-top:0;padding-bottom:0;height:44px;background:transparent;color:var(--ion-color-primary, #0054e9);font-size:14px;font-weight:500;text-transform:uppercase;-webkit-box-shadow:none;box-shadow:none}.picker-columns.sc-ion-picker-legacy-md{height:216px;-webkit-perspective:1800px;perspective:1800px}.picker-above-highlight.sc-ion-picker-legacy-md{top:0;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);position:absolute;width:100%;height:81px;border-bottom:1px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.13)))));background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, var(--ion-background-color, #fff)), to(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)));background:linear-gradient(to bottom, var(--ion-background-color, #fff) 20%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 100%);z-index:10}.picker-above-highlight.sc-ion-picker-legacy-md{inset-inline-start:0}.picker-below-highlight.sc-ion-picker-legacy-md{top:115px;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);position:absolute;width:100%;height:119px;border-top:1px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.13)))));background:-webkit-gradient(linear, left bottom, left top, color-stop(30%, var(--ion-background-color, #fff)), to(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)));background:linear-gradient(to top, var(--ion-background-color, #fff) 30%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 100%);z-index:11}.picker-below-highlight.sc-ion-picker-legacy-md{inset-inline-start:0}`;
|
|
28356
|
-
|
|
28357
|
-
// TODO(FW-2832): types
|
|
28358
|
-
/**
|
|
28359
|
-
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
28360
|
-
*/
|
|
28361
|
-
class Picker {
|
|
28362
|
-
constructor(hostRef) {
|
|
28363
|
-
registerInstance(this, hostRef);
|
|
28364
|
-
this.didPresent = createEvent(this, "ionPickerDidPresent", 7);
|
|
28365
|
-
this.willPresent = createEvent(this, "ionPickerWillPresent", 7);
|
|
28366
|
-
this.willDismiss = createEvent(this, "ionPickerWillDismiss", 7);
|
|
28367
|
-
this.didDismiss = createEvent(this, "ionPickerDidDismiss", 7);
|
|
28368
|
-
this.didPresentShorthand = createEvent(this, "didPresent", 7);
|
|
28369
|
-
this.willPresentShorthand = createEvent(this, "willPresent", 7);
|
|
28370
|
-
this.willDismissShorthand = createEvent(this, "willDismiss", 7);
|
|
28371
|
-
this.didDismissShorthand = createEvent(this, "didDismiss", 7);
|
|
28372
|
-
this.delegateController = createDelegateController(this);
|
|
28373
|
-
this.lockController = createLockController();
|
|
28374
|
-
this.triggerController = createTriggerController();
|
|
28375
|
-
this.presented = false;
|
|
28376
|
-
/** @internal */
|
|
28377
|
-
this.hasController = false;
|
|
28378
|
-
/**
|
|
28379
|
-
* If `true`, the keyboard will be automatically dismissed when the overlay is presented.
|
|
28380
|
-
*/
|
|
28381
|
-
this.keyboardClose = true;
|
|
28382
|
-
/**
|
|
28383
|
-
* Array of buttons to be displayed at the top of the picker.
|
|
28384
|
-
*/
|
|
28385
|
-
this.buttons = [];
|
|
28386
|
-
/**
|
|
28387
|
-
* Array of columns to be displayed in the picker.
|
|
28388
|
-
*/
|
|
28389
|
-
this.columns = [];
|
|
28390
|
-
/**
|
|
28391
|
-
* Number of milliseconds to wait before dismissing the picker.
|
|
28392
|
-
*/
|
|
28393
|
-
this.duration = 0;
|
|
28394
|
-
/**
|
|
28395
|
-
* If `true`, a backdrop will be displayed behind the picker.
|
|
28396
|
-
*/
|
|
28397
|
-
this.showBackdrop = true;
|
|
28398
|
-
/**
|
|
28399
|
-
* If `true`, the picker will be dismissed when the backdrop is clicked.
|
|
28400
|
-
*/
|
|
28401
|
-
this.backdropDismiss = true;
|
|
28402
|
-
/**
|
|
28403
|
-
* If `true`, the picker will animate.
|
|
28404
|
-
*/
|
|
28405
|
-
this.animated = true;
|
|
28406
|
-
/**
|
|
28407
|
-
* If `true`, the picker will open. If `false`, the picker will close.
|
|
28408
|
-
* Use this if you need finer grained control over presentation, otherwise
|
|
28409
|
-
* just use the pickerController or the `trigger` property.
|
|
28410
|
-
* Note: `isOpen` will not automatically be set back to `false` when
|
|
28411
|
-
* the picker dismisses. You will need to do that in your code.
|
|
28412
|
-
*/
|
|
28413
|
-
this.isOpen = false;
|
|
28414
|
-
this.onBackdropTap = () => {
|
|
28415
|
-
this.dismiss(undefined, BACKDROP);
|
|
28416
|
-
};
|
|
28417
|
-
this.dispatchCancelHandler = (ev) => {
|
|
28418
|
-
const role = ev.detail.role;
|
|
28419
|
-
if (isCancel(role)) {
|
|
28420
|
-
const cancelButton = this.buttons.find((b) => b.role === 'cancel');
|
|
28421
|
-
this.callButtonHandler(cancelButton);
|
|
28422
|
-
}
|
|
28423
|
-
};
|
|
28424
|
-
}
|
|
28425
|
-
onIsOpenChange(newValue, oldValue) {
|
|
28426
|
-
if (newValue === true && oldValue === false) {
|
|
28427
|
-
this.present();
|
|
28428
|
-
}
|
|
28429
|
-
else if (newValue === false && oldValue === true) {
|
|
28430
|
-
this.dismiss();
|
|
28431
|
-
}
|
|
28432
|
-
}
|
|
28433
|
-
triggerChanged() {
|
|
28434
|
-
const { trigger, el, triggerController } = this;
|
|
28435
|
-
if (trigger) {
|
|
28436
|
-
triggerController.addClickListener(el, trigger);
|
|
28437
|
-
}
|
|
28438
|
-
}
|
|
28439
|
-
connectedCallback() {
|
|
28440
|
-
prepareOverlay(this.el);
|
|
28441
|
-
this.triggerChanged();
|
|
28442
|
-
}
|
|
28443
|
-
disconnectedCallback() {
|
|
28444
|
-
this.triggerController.removeClickListener();
|
|
28445
|
-
}
|
|
28446
|
-
componentWillLoad() {
|
|
28447
|
-
var _a;
|
|
28448
|
-
if (!((_a = this.htmlAttributes) === null || _a === void 0 ? void 0 : _a.id)) {
|
|
28449
|
-
setOverlayId(this.el);
|
|
28450
|
-
}
|
|
28451
|
-
}
|
|
28452
|
-
componentDidLoad() {
|
|
28453
|
-
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);
|
|
28454
|
-
/**
|
|
28455
|
-
* If picker was rendered with isOpen="true"
|
|
28456
|
-
* then we should open picker immediately.
|
|
28457
|
-
*/
|
|
28458
|
-
if (this.isOpen === true) {
|
|
28459
|
-
raf(() => this.present());
|
|
28460
|
-
}
|
|
28461
|
-
/**
|
|
28462
|
-
* When binding values in frameworks such as Angular
|
|
28463
|
-
* it is possible for the value to be set after the Web Component
|
|
28464
|
-
* initializes but before the value watcher is set up in Stencil.
|
|
28465
|
-
* As a result, the watcher callback may not be fired.
|
|
28466
|
-
* We work around this by manually calling the watcher
|
|
28467
|
-
* callback when the component has loaded and the watcher
|
|
28468
|
-
* is configured.
|
|
28469
|
-
*/
|
|
28470
|
-
this.triggerChanged();
|
|
28471
|
-
}
|
|
28472
|
-
/**
|
|
28473
|
-
* Present the picker overlay after it has been created.
|
|
28474
|
-
*/
|
|
28475
|
-
async present() {
|
|
28476
|
-
const unlock = await this.lockController.lock();
|
|
28477
|
-
await this.delegateController.attachViewToDom();
|
|
28478
|
-
await present(this, 'pickerEnter', iosEnterAnimation$2, iosEnterAnimation$2, undefined);
|
|
28479
|
-
if (this.duration > 0) {
|
|
28480
|
-
this.durationTimeout = setTimeout(() => this.dismiss(), this.duration);
|
|
28481
|
-
}
|
|
28482
|
-
unlock();
|
|
28483
|
-
}
|
|
28484
|
-
/**
|
|
28485
|
-
* Dismiss the picker overlay after it has been presented.
|
|
28486
|
-
*
|
|
28487
|
-
* @param data Any data to emit in the dismiss events.
|
|
28488
|
-
* @param role The role of the element that is dismissing the picker.
|
|
28489
|
-
* This can be useful in a button handler for determining which button was
|
|
28490
|
-
* clicked to dismiss the picker.
|
|
28491
|
-
* Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
|
|
28492
|
-
*/
|
|
28493
|
-
async dismiss(data, role) {
|
|
28494
|
-
const unlock = await this.lockController.lock();
|
|
28495
|
-
if (this.durationTimeout) {
|
|
28496
|
-
clearTimeout(this.durationTimeout);
|
|
28497
|
-
}
|
|
28498
|
-
const dismissed = await dismiss(this, data, role, 'pickerLeave', iosLeaveAnimation$2, iosLeaveAnimation$2);
|
|
28499
|
-
if (dismissed) {
|
|
28500
|
-
this.delegateController.removeViewFromDom();
|
|
28501
|
-
}
|
|
28502
|
-
unlock();
|
|
28503
|
-
return dismissed;
|
|
28504
|
-
}
|
|
28505
|
-
/**
|
|
28506
|
-
* Returns a promise that resolves when the picker did dismiss.
|
|
28507
|
-
*/
|
|
28508
|
-
onDidDismiss() {
|
|
28509
|
-
return eventMethod(this.el, 'ionPickerDidDismiss');
|
|
28510
|
-
}
|
|
28511
|
-
/**
|
|
28512
|
-
* Returns a promise that resolves when the picker will dismiss.
|
|
28513
|
-
*/
|
|
28514
|
-
onWillDismiss() {
|
|
28515
|
-
return eventMethod(this.el, 'ionPickerWillDismiss');
|
|
28516
|
-
}
|
|
28517
|
-
/**
|
|
28518
|
-
* Get the column that matches the specified name.
|
|
28519
|
-
*
|
|
28520
|
-
* @param name The name of the column.
|
|
28521
|
-
*/
|
|
28522
|
-
getColumn(name) {
|
|
28523
|
-
return Promise.resolve(this.columns.find((column) => column.name === name));
|
|
28524
|
-
}
|
|
28525
|
-
async buttonClick(button) {
|
|
28526
|
-
const role = button.role;
|
|
28527
|
-
if (isCancel(role)) {
|
|
28528
|
-
return this.dismiss(undefined, role);
|
|
28529
|
-
}
|
|
28530
|
-
const shouldDismiss = await this.callButtonHandler(button);
|
|
28531
|
-
if (shouldDismiss) {
|
|
28532
|
-
return this.dismiss(this.getSelected(), button.role);
|
|
28533
|
-
}
|
|
28534
|
-
return Promise.resolve();
|
|
28535
|
-
}
|
|
28536
|
-
async callButtonHandler(button) {
|
|
28537
|
-
if (button) {
|
|
28538
|
-
// a handler has been provided, execute it
|
|
28539
|
-
// pass the handler the values from the inputs
|
|
28540
|
-
const rtn = await safeCall(button.handler, this.getSelected());
|
|
28541
|
-
if (rtn === false) {
|
|
28542
|
-
// if the return value of the handler is false then do not dismiss
|
|
28543
|
-
return false;
|
|
28544
|
-
}
|
|
28545
|
-
}
|
|
28546
|
-
return true;
|
|
28547
|
-
}
|
|
28548
|
-
getSelected() {
|
|
28549
|
-
const selected = {};
|
|
28550
|
-
this.columns.forEach((col, index) => {
|
|
28551
|
-
const selectedColumn = col.selectedIndex !== undefined ? col.options[col.selectedIndex] : undefined;
|
|
28552
|
-
selected[col.name] = {
|
|
28553
|
-
text: selectedColumn ? selectedColumn.text : undefined,
|
|
28554
|
-
value: selectedColumn ? selectedColumn.value : undefined,
|
|
28555
|
-
columnIndex: index,
|
|
28556
|
-
};
|
|
28557
|
-
});
|
|
28558
|
-
return selected;
|
|
28559
|
-
}
|
|
28560
|
-
render() {
|
|
28561
|
-
const { htmlAttributes } = this;
|
|
28562
|
-
const mode = getIonMode$1(this);
|
|
28563
|
-
return (hAsync(Host, Object.assign({ key: '80f66d33780d8a1352d24be9cb63a0cc03d01ab5', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
|
|
28564
|
-
zIndex: `${20000 + this.overlayIndex}`,
|
|
28565
|
-
}, class: Object.assign({ [mode]: true,
|
|
28566
|
-
// Used internally for styling
|
|
28567
|
-
[`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" })));
|
|
28568
|
-
}
|
|
28569
|
-
get el() { return getElement(this); }
|
|
28570
|
-
static get watchers() { return {
|
|
28571
|
-
"isOpen": [{
|
|
28572
|
-
"onIsOpenChange": 0
|
|
28573
|
-
}],
|
|
28574
|
-
"trigger": [{
|
|
28575
|
-
"triggerChanged": 0
|
|
28576
|
-
}]
|
|
28577
|
-
}; }
|
|
28578
|
-
static get style() { return {
|
|
28579
|
-
ios: pickerIosCss(),
|
|
28580
|
-
md: pickerMdCss()
|
|
28581
|
-
}; }
|
|
28582
|
-
static get cmpMeta() { return {
|
|
28583
|
-
"$flags$": 34,
|
|
28584
|
-
"$tagName$": "ion-picker-legacy",
|
|
28585
|
-
"$members$": {
|
|
28586
|
-
"overlayIndex": [2, "overlay-index"],
|
|
28587
|
-
"delegate": [16],
|
|
28588
|
-
"hasController": [4, "has-controller"],
|
|
28589
|
-
"keyboardClose": [4, "keyboard-close"],
|
|
28590
|
-
"enterAnimation": [16],
|
|
28591
|
-
"leaveAnimation": [16],
|
|
28592
|
-
"buttons": [16],
|
|
28593
|
-
"columns": [16],
|
|
28594
|
-
"cssClass": [1, "css-class"],
|
|
28595
|
-
"duration": [2],
|
|
28596
|
-
"showBackdrop": [4, "show-backdrop"],
|
|
28597
|
-
"backdropDismiss": [4, "backdrop-dismiss"],
|
|
28598
|
-
"animated": [4],
|
|
28599
|
-
"htmlAttributes": [16],
|
|
28600
|
-
"isOpen": [4, "is-open"],
|
|
28601
|
-
"trigger": [1],
|
|
28602
|
-
"presented": [32],
|
|
28603
|
-
"present": [64],
|
|
28604
|
-
"dismiss": [64],
|
|
28605
|
-
"onDidDismiss": [64],
|
|
28606
|
-
"onWillDismiss": [64],
|
|
28607
|
-
"getColumn": [64]
|
|
28608
|
-
},
|
|
28609
|
-
"$listeners$": undefined,
|
|
28610
|
-
"$lazyBundleId$": "-",
|
|
28611
|
-
"$attrsToReflect$": []
|
|
28612
|
-
}; }
|
|
28613
|
-
}
|
|
28614
|
-
const buttonWrapperClass = (button) => {
|
|
28615
|
-
return {
|
|
28616
|
-
[`picker-toolbar-${button.role}`]: button.role !== undefined,
|
|
28617
|
-
'picker-toolbar-button': true,
|
|
28618
|
-
};
|
|
28619
|
-
};
|
|
28620
|
-
const buttonClass$1 = (button) => {
|
|
28621
|
-
return Object.assign({ 'picker-button': true, 'ion-activatable': true }, getClassMap(button.cssClass));
|
|
28622
|
-
};
|
|
28623
|
-
|
|
28624
|
-
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)}}`;
|
|
28661
|
+
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)}}`;
|
|
28625
28662
|
|
|
28626
28663
|
/**
|
|
28627
28664
|
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
@@ -29105,471 +29142,106 @@ class PickerColumn {
|
|
|
29105
29142
|
const firstOption = el.querySelector('ion-picker-column-option');
|
|
29106
29143
|
/**
|
|
29107
29144
|
* If the picker column does not have an active item and the current value
|
|
29108
|
-
* does not match the first item in the picker column, that means
|
|
29109
|
-
* the value is out of bounds. In this case, we assign the value to the
|
|
29110
|
-
* first item to match the scroll position of the column.
|
|
29111
|
-
*
|
|
29112
|
-
*/
|
|
29113
|
-
if (firstOption !== null && firstOption.value !== value) {
|
|
29114
|
-
this.setValue(firstOption.value);
|
|
29115
|
-
}
|
|
29116
|
-
}
|
|
29117
|
-
}
|
|
29118
|
-
/** @internal */
|
|
29119
|
-
async scrollActiveItemIntoView(smooth = false) {
|
|
29120
|
-
const activeEl = this.activeItem;
|
|
29121
|
-
if (activeEl) {
|
|
29122
|
-
this.centerPickerItemInView(activeEl, smooth, false);
|
|
29123
|
-
}
|
|
29124
|
-
}
|
|
29125
|
-
/**
|
|
29126
|
-
* Sets the value prop and fires the ionChange event.
|
|
29127
|
-
* This is used when we need to fire ionChange from
|
|
29128
|
-
* user-generated events that cannot be caught with normal
|
|
29129
|
-
* input/change event listeners.
|
|
29130
|
-
* @internal
|
|
29131
|
-
*/
|
|
29132
|
-
async setValue(value) {
|
|
29133
|
-
if (this.disabled === true || this.value === value) {
|
|
29134
|
-
return;
|
|
29135
|
-
}
|
|
29136
|
-
this.value = value;
|
|
29137
|
-
this.ionChange.emit({ value });
|
|
29138
|
-
}
|
|
29139
|
-
/**
|
|
29140
|
-
* Sets focus on the scrollable container within the picker column.
|
|
29141
|
-
* Use this method instead of the global `pickerColumn.focus()`.
|
|
29142
|
-
*/
|
|
29143
|
-
async setFocus() {
|
|
29144
|
-
if (this.assistiveFocusable) {
|
|
29145
|
-
this.assistiveFocusable.focus();
|
|
29146
|
-
}
|
|
29147
|
-
}
|
|
29148
|
-
connectedCallback() {
|
|
29149
|
-
var _a;
|
|
29150
|
-
this.ariaLabel = (_a = this.el.getAttribute('aria-label')) !== null && _a !== void 0 ? _a : 'Select a value';
|
|
29151
|
-
}
|
|
29152
|
-
get activeItem() {
|
|
29153
|
-
const { value } = this;
|
|
29154
|
-
const options = Array.from(this.el.querySelectorAll('ion-picker-column-option'));
|
|
29155
|
-
return options.find((option) => {
|
|
29156
|
-
/**
|
|
29157
|
-
* If the whole picker column is disabled, the current value should appear active
|
|
29158
|
-
* If the current value item is specifically disabled, it should not appear active
|
|
29159
|
-
*/
|
|
29160
|
-
if (!this.disabled && option.disabled) {
|
|
29161
|
-
return false;
|
|
29162
|
-
}
|
|
29163
|
-
return option.value === value;
|
|
29164
|
-
});
|
|
29165
|
-
}
|
|
29166
|
-
render() {
|
|
29167
|
-
const { color, disabled, isActive, numericInput } = this;
|
|
29168
|
-
const mode = getIonMode$1(this);
|
|
29169
|
-
return (hAsync(Host, { key: '234c96a501d7ac413b9b0ea56b33017681e25b40', class: createColorClasses$1(color, {
|
|
29170
|
-
[mode]: true,
|
|
29171
|
-
['picker-column-active']: isActive,
|
|
29172
|
-
['picker-column-numeric-input']: numericInput,
|
|
29173
|
-
['picker-column-disabled']: disabled,
|
|
29174
|
-
}) }, hAsync("slot", { key: '9dc15ea0601ddd2cb2e0a745e91e036a8bd96f8b', name: "prefix" }), hAsync("div", { key: 'de4fe28ee4bc46b7c0420d6ab0df0e7809443da9', class: "picker-opts", ref: (el) => {
|
|
29175
|
-
this.scrollEl = el;
|
|
29176
|
-
}, 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" })));
|
|
29177
|
-
}
|
|
29178
|
-
get el() { return getElement(this); }
|
|
29179
|
-
static get watchers() { return {
|
|
29180
|
-
"aria-label": [{
|
|
29181
|
-
"ariaLabelChanged": 0
|
|
29182
|
-
}],
|
|
29183
|
-
"value": [{
|
|
29184
|
-
"valueChange": 0
|
|
29185
|
-
}]
|
|
29186
|
-
}; }
|
|
29187
|
-
static get style() { return pickerColumnCss(); }
|
|
29188
|
-
static get cmpMeta() { return {
|
|
29189
|
-
"$flags$": 265,
|
|
29190
|
-
"$tagName$": "ion-picker-column",
|
|
29191
|
-
"$members$": {
|
|
29192
|
-
"disabled": [4],
|
|
29193
|
-
"value": [1032],
|
|
29194
|
-
"color": [513],
|
|
29195
|
-
"numericInput": [4, "numeric-input"],
|
|
29196
|
-
"ariaLabel": [32],
|
|
29197
|
-
"isActive": [32],
|
|
29198
|
-
"scrollActiveItemIntoView": [64],
|
|
29199
|
-
"setValue": [64],
|
|
29200
|
-
"setFocus": [64]
|
|
29201
|
-
},
|
|
29202
|
-
"$listeners$": undefined,
|
|
29203
|
-
"$lazyBundleId$": "-",
|
|
29204
|
-
"$attrsToReflect$": [["color", "color"]]
|
|
29205
|
-
}; }
|
|
29206
|
-
}
|
|
29207
|
-
const PICKER_ITEM_ACTIVE_CLASS = 'option-active';
|
|
29208
|
-
|
|
29209
|
-
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}}`;
|
|
29210
|
-
|
|
29211
|
-
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)}`;
|
|
29212
|
-
|
|
29213
|
-
/**
|
|
29214
|
-
* @internal
|
|
29215
|
-
*/
|
|
29216
|
-
class PickerColumnCmp {
|
|
29217
|
-
constructor(hostRef) {
|
|
29218
|
-
registerInstance(this, hostRef);
|
|
29219
|
-
this.ionPickerColChange = createEvent(this, "ionPickerColChange", 7);
|
|
29220
|
-
this.optHeight = 0;
|
|
29221
|
-
this.rotateFactor = 0;
|
|
29222
|
-
this.scaleFactor = 1;
|
|
29223
|
-
this.velocity = 0;
|
|
29224
|
-
this.y = 0;
|
|
29225
|
-
this.noAnimate = true;
|
|
29226
|
-
// `colDidChange` is a flag that gets set when the column is changed
|
|
29227
|
-
// dynamically. When this flag is set, the column will refresh
|
|
29228
|
-
// after the component re-renders to incorporate the new column data.
|
|
29229
|
-
// This is necessary because `this.refresh` queries for the option elements,
|
|
29230
|
-
// so it needs to wait for the latest elements to be available in the DOM.
|
|
29231
|
-
// Ex: column is created with 3 options. User updates the column data
|
|
29232
|
-
// to have 5 options. The column will still think it only has 3 options.
|
|
29233
|
-
this.colDidChange = false;
|
|
29234
|
-
}
|
|
29235
|
-
colChanged() {
|
|
29236
|
-
this.colDidChange = true;
|
|
29237
|
-
}
|
|
29238
|
-
async connectedCallback() {
|
|
29239
|
-
let pickerRotateFactor = 0;
|
|
29240
|
-
let pickerScaleFactor = 0.81;
|
|
29241
|
-
const mode = getIonMode$1(this);
|
|
29242
|
-
if (mode === 'ios') {
|
|
29243
|
-
pickerRotateFactor = -0.46;
|
|
29244
|
-
pickerScaleFactor = 1;
|
|
29245
|
-
}
|
|
29246
|
-
this.rotateFactor = pickerRotateFactor;
|
|
29247
|
-
this.scaleFactor = pickerScaleFactor;
|
|
29248
|
-
this.gesture = (await Promise.resolve().then(function () { return index; })).createGesture({
|
|
29249
|
-
el: this.el,
|
|
29250
|
-
gestureName: 'picker-swipe',
|
|
29251
|
-
gesturePriority: 100,
|
|
29252
|
-
threshold: 0,
|
|
29253
|
-
passive: false,
|
|
29254
|
-
onStart: (ev) => this.onStart(ev),
|
|
29255
|
-
onMove: (ev) => this.onMove(ev),
|
|
29256
|
-
onEnd: (ev) => this.onEnd(ev),
|
|
29257
|
-
});
|
|
29258
|
-
this.gesture.enable();
|
|
29259
|
-
// Options have not been initialized yet
|
|
29260
|
-
// Animation must be disabled through the `noAnimate` flag
|
|
29261
|
-
// Otherwise, the options will render
|
|
29262
|
-
// at the top of the column and transition down
|
|
29263
|
-
this.tmrId = setTimeout(() => {
|
|
29264
|
-
this.noAnimate = false;
|
|
29265
|
-
// After initialization, `refresh()` will be called
|
|
29266
|
-
// At this point, animation will be enabled. The options will
|
|
29267
|
-
// animate as they are being selected.
|
|
29268
|
-
this.refresh(true);
|
|
29269
|
-
}, 250);
|
|
29270
|
-
}
|
|
29271
|
-
componentDidLoad() {
|
|
29272
|
-
this.onDomChange();
|
|
29273
|
-
}
|
|
29274
|
-
componentDidUpdate() {
|
|
29275
|
-
// Options may have changed since last update.
|
|
29276
|
-
if (this.colDidChange) {
|
|
29277
|
-
// Animation must be disabled through the `onDomChange` parameter.
|
|
29278
|
-
// Otherwise, the recently added options will render
|
|
29279
|
-
// at the top of the column and transition down
|
|
29280
|
-
this.onDomChange(true, false);
|
|
29281
|
-
this.colDidChange = false;
|
|
29282
|
-
}
|
|
29283
|
-
}
|
|
29284
|
-
disconnectedCallback() {
|
|
29285
|
-
if (this.rafId !== undefined)
|
|
29286
|
-
cancelAnimationFrame(this.rafId);
|
|
29287
|
-
if (this.tmrId)
|
|
29288
|
-
clearTimeout(this.tmrId);
|
|
29289
|
-
if (this.gesture) {
|
|
29290
|
-
this.gesture.destroy();
|
|
29291
|
-
this.gesture = undefined;
|
|
29292
|
-
}
|
|
29293
|
-
}
|
|
29294
|
-
emitColChange() {
|
|
29295
|
-
this.ionPickerColChange.emit(this.col);
|
|
29296
|
-
}
|
|
29297
|
-
setSelected(selectedIndex, duration) {
|
|
29298
|
-
// if there is a selected index, then figure out it's y position
|
|
29299
|
-
// if there isn't a selected index, then just use the top y position
|
|
29300
|
-
const y = selectedIndex > -1 ? -(selectedIndex * this.optHeight) : 0;
|
|
29301
|
-
this.velocity = 0;
|
|
29302
|
-
// set what y position we're at
|
|
29303
|
-
if (this.rafId !== undefined)
|
|
29304
|
-
cancelAnimationFrame(this.rafId);
|
|
29305
|
-
this.update(y, duration, true);
|
|
29306
|
-
this.emitColChange();
|
|
29307
|
-
}
|
|
29308
|
-
update(y, duration, saveY) {
|
|
29309
|
-
if (!this.optsEl) {
|
|
29310
|
-
return;
|
|
29311
|
-
}
|
|
29312
|
-
// ensure we've got a good round number :)
|
|
29313
|
-
let translateY = 0;
|
|
29314
|
-
let translateZ = 0;
|
|
29315
|
-
const { col, rotateFactor } = this;
|
|
29316
|
-
const prevSelected = col.selectedIndex;
|
|
29317
|
-
const selectedIndex = (col.selectedIndex = this.indexForY(-y));
|
|
29318
|
-
const durationStr = duration === 0 ? '' : duration + 'ms';
|
|
29319
|
-
const scaleStr = `scale(${this.scaleFactor})`;
|
|
29320
|
-
const children = this.optsEl.children;
|
|
29321
|
-
for (let i = 0; i < children.length; i++) {
|
|
29322
|
-
const button = children[i];
|
|
29323
|
-
const opt = col.options[i];
|
|
29324
|
-
const optOffset = i * this.optHeight + y;
|
|
29325
|
-
let transform = '';
|
|
29326
|
-
if (rotateFactor !== 0) {
|
|
29327
|
-
const rotateX = optOffset * rotateFactor;
|
|
29328
|
-
if (Math.abs(rotateX) <= 90) {
|
|
29329
|
-
translateY = 0;
|
|
29330
|
-
translateZ = 90;
|
|
29331
|
-
transform = `rotateX(${rotateX}deg) `;
|
|
29332
|
-
}
|
|
29333
|
-
else {
|
|
29334
|
-
translateY = -9999;
|
|
29335
|
-
}
|
|
29336
|
-
}
|
|
29337
|
-
else {
|
|
29338
|
-
translateZ = 0;
|
|
29339
|
-
translateY = optOffset;
|
|
29340
|
-
}
|
|
29341
|
-
const selected = selectedIndex === i;
|
|
29342
|
-
transform += `translate3d(0px,${translateY}px,${translateZ}px) `;
|
|
29343
|
-
if (this.scaleFactor !== 1 && !selected) {
|
|
29344
|
-
transform += scaleStr;
|
|
29345
|
-
}
|
|
29346
|
-
// Update transition duration
|
|
29347
|
-
if (this.noAnimate) {
|
|
29348
|
-
opt.duration = 0;
|
|
29349
|
-
button.style.transitionDuration = '';
|
|
29350
|
-
}
|
|
29351
|
-
else if (duration !== opt.duration) {
|
|
29352
|
-
opt.duration = duration;
|
|
29353
|
-
button.style.transitionDuration = durationStr;
|
|
29354
|
-
}
|
|
29355
|
-
// Update transform
|
|
29356
|
-
if (transform !== opt.transform) {
|
|
29357
|
-
opt.transform = transform;
|
|
29358
|
-
}
|
|
29359
|
-
button.style.transform = transform;
|
|
29360
|
-
/**
|
|
29361
|
-
* Ensure that the select column
|
|
29362
|
-
* item has the selected class
|
|
29363
|
-
*/
|
|
29364
|
-
opt.selected = selected;
|
|
29365
|
-
if (selected) {
|
|
29366
|
-
button.classList.add(PICKER_OPT_SELECTED);
|
|
29367
|
-
}
|
|
29368
|
-
else {
|
|
29369
|
-
button.classList.remove(PICKER_OPT_SELECTED);
|
|
29370
|
-
}
|
|
29371
|
-
}
|
|
29372
|
-
this.col.prevSelected = prevSelected;
|
|
29373
|
-
if (saveY) {
|
|
29374
|
-
this.y = y;
|
|
29375
|
-
}
|
|
29376
|
-
if (this.lastIndex !== selectedIndex) {
|
|
29377
|
-
// have not set a last index yet
|
|
29378
|
-
hapticSelectionChanged();
|
|
29379
|
-
this.lastIndex = selectedIndex;
|
|
29380
|
-
}
|
|
29381
|
-
}
|
|
29382
|
-
decelerate() {
|
|
29383
|
-
if (this.velocity !== 0) {
|
|
29384
|
-
// still decelerating
|
|
29385
|
-
this.velocity *= DECELERATION_FRICTION;
|
|
29386
|
-
// do not let it go slower than a velocity of 1
|
|
29387
|
-
this.velocity = this.velocity > 0 ? Math.max(this.velocity, 1) : Math.min(this.velocity, -1);
|
|
29388
|
-
let y = this.y + this.velocity;
|
|
29389
|
-
if (y > this.minY) {
|
|
29390
|
-
// whoops, it's trying to scroll up farther than the options we have!
|
|
29391
|
-
y = this.minY;
|
|
29392
|
-
this.velocity = 0;
|
|
29393
|
-
}
|
|
29394
|
-
else if (y < this.maxY) {
|
|
29395
|
-
// gahh, it's trying to scroll down farther than we can!
|
|
29396
|
-
y = this.maxY;
|
|
29397
|
-
this.velocity = 0;
|
|
29398
|
-
}
|
|
29399
|
-
this.update(y, 0, true);
|
|
29400
|
-
const notLockedIn = Math.round(y) % this.optHeight !== 0 || Math.abs(this.velocity) > 1;
|
|
29401
|
-
if (notLockedIn) {
|
|
29402
|
-
// isn't locked in yet, keep decelerating until it is
|
|
29403
|
-
this.rafId = requestAnimationFrame(() => this.decelerate());
|
|
29404
|
-
}
|
|
29405
|
-
else {
|
|
29406
|
-
this.velocity = 0;
|
|
29407
|
-
this.emitColChange();
|
|
29408
|
-
hapticSelectionEnd();
|
|
29409
|
-
}
|
|
29410
|
-
}
|
|
29411
|
-
else if (this.y % this.optHeight !== 0) {
|
|
29412
|
-
// needs to still get locked into a position so options line up
|
|
29413
|
-
const currentPos = Math.abs(this.y % this.optHeight);
|
|
29414
|
-
// create a velocity in the direction it needs to scroll
|
|
29415
|
-
this.velocity = currentPos > this.optHeight / 2 ? 1 : -1;
|
|
29416
|
-
this.decelerate();
|
|
29417
|
-
}
|
|
29418
|
-
}
|
|
29419
|
-
indexForY(y) {
|
|
29420
|
-
return Math.min(Math.max(Math.abs(Math.round(y / this.optHeight)), 0), this.col.options.length - 1);
|
|
29421
|
-
}
|
|
29422
|
-
onStart(detail) {
|
|
29423
|
-
// We have to prevent default in order to block scrolling under the picker
|
|
29424
|
-
// but we DO NOT have to stop propagation, since we still want
|
|
29425
|
-
// some "click" events to capture
|
|
29426
|
-
if (detail.event.cancelable) {
|
|
29427
|
-
detail.event.preventDefault();
|
|
29428
|
-
}
|
|
29429
|
-
detail.event.stopPropagation();
|
|
29430
|
-
hapticSelectionStart();
|
|
29431
|
-
// reset everything
|
|
29432
|
-
if (this.rafId !== undefined)
|
|
29433
|
-
cancelAnimationFrame(this.rafId);
|
|
29434
|
-
const options = this.col.options;
|
|
29435
|
-
let minY = options.length - 1;
|
|
29436
|
-
let maxY = 0;
|
|
29437
|
-
for (let i = 0; i < options.length; i++) {
|
|
29438
|
-
if (!options[i].disabled) {
|
|
29439
|
-
minY = Math.min(minY, i);
|
|
29440
|
-
maxY = Math.max(maxY, i);
|
|
29441
|
-
}
|
|
29442
|
-
}
|
|
29443
|
-
this.minY = -(minY * this.optHeight);
|
|
29444
|
-
this.maxY = -(maxY * this.optHeight);
|
|
29445
|
-
}
|
|
29446
|
-
onMove(detail) {
|
|
29447
|
-
if (detail.event.cancelable) {
|
|
29448
|
-
detail.event.preventDefault();
|
|
29449
|
-
}
|
|
29450
|
-
detail.event.stopPropagation();
|
|
29451
|
-
// update the scroll position relative to pointer start position
|
|
29452
|
-
let y = this.y + detail.deltaY;
|
|
29453
|
-
if (y > this.minY) {
|
|
29454
|
-
// scrolling up higher than scroll area
|
|
29455
|
-
y = Math.pow(y, 0.8);
|
|
29456
|
-
this.bounceFrom = y;
|
|
29457
|
-
}
|
|
29458
|
-
else if (y < this.maxY) {
|
|
29459
|
-
// scrolling down below scroll area
|
|
29460
|
-
y += Math.pow(this.maxY - y, 0.9);
|
|
29461
|
-
this.bounceFrom = y;
|
|
29462
|
-
}
|
|
29463
|
-
else {
|
|
29464
|
-
this.bounceFrom = 0;
|
|
29465
|
-
}
|
|
29466
|
-
this.update(y, 0, false);
|
|
29467
|
-
}
|
|
29468
|
-
onEnd(detail) {
|
|
29469
|
-
if (this.bounceFrom > 0) {
|
|
29470
|
-
// bounce back up
|
|
29471
|
-
this.update(this.minY, 100, true);
|
|
29472
|
-
this.emitColChange();
|
|
29473
|
-
return;
|
|
29474
|
-
}
|
|
29475
|
-
else if (this.bounceFrom < 0) {
|
|
29476
|
-
// bounce back down
|
|
29477
|
-
this.update(this.maxY, 100, true);
|
|
29478
|
-
this.emitColChange();
|
|
29479
|
-
return;
|
|
29480
|
-
}
|
|
29481
|
-
this.velocity = clamp(-MAX_PICKER_SPEED, detail.velocityY * 23, MAX_PICKER_SPEED);
|
|
29482
|
-
if (this.velocity === 0 && detail.deltaY === 0) {
|
|
29483
|
-
const opt = detail.event.target.closest('.picker-opt');
|
|
29484
|
-
if (opt === null || opt === void 0 ? void 0 : opt.hasAttribute('opt-index')) {
|
|
29485
|
-
this.setSelected(parseInt(opt.getAttribute('opt-index'), 10), TRANSITION_DURATION);
|
|
29486
|
-
}
|
|
29487
|
-
}
|
|
29488
|
-
else {
|
|
29489
|
-
this.y += detail.deltaY;
|
|
29490
|
-
if (Math.abs(detail.velocityY) < 0.05) {
|
|
29491
|
-
const isScrollingUp = detail.deltaY > 0;
|
|
29492
|
-
const optHeightFraction = (Math.abs(this.y) % this.optHeight) / this.optHeight;
|
|
29493
|
-
if (isScrollingUp && optHeightFraction > 0.5) {
|
|
29494
|
-
this.velocity = Math.abs(this.velocity) * -1;
|
|
29495
|
-
}
|
|
29496
|
-
else if (!isScrollingUp && optHeightFraction <= 0.5) {
|
|
29497
|
-
this.velocity = Math.abs(this.velocity);
|
|
29498
|
-
}
|
|
29145
|
+
* does not match the first item in the picker column, that means
|
|
29146
|
+
* the value is out of bounds. In this case, we assign the value to the
|
|
29147
|
+
* first item to match the scroll position of the column.
|
|
29148
|
+
*
|
|
29149
|
+
*/
|
|
29150
|
+
if (firstOption !== null && firstOption.value !== value) {
|
|
29151
|
+
this.setValue(firstOption.value);
|
|
29499
29152
|
}
|
|
29500
|
-
this.decelerate();
|
|
29501
29153
|
}
|
|
29502
29154
|
}
|
|
29503
|
-
|
|
29504
|
-
|
|
29505
|
-
|
|
29506
|
-
|
|
29507
|
-
|
|
29508
|
-
for (let i = 0; i < options.length; i++) {
|
|
29509
|
-
if (!options[i].disabled) {
|
|
29510
|
-
min = Math.min(min, i);
|
|
29511
|
-
max = Math.max(max, i);
|
|
29512
|
-
}
|
|
29155
|
+
/** @internal */
|
|
29156
|
+
async scrollActiveItemIntoView(smooth = false) {
|
|
29157
|
+
const activeEl = this.activeItem;
|
|
29158
|
+
if (activeEl) {
|
|
29159
|
+
this.centerPickerItemInView(activeEl, smooth, false);
|
|
29513
29160
|
}
|
|
29514
|
-
|
|
29515
|
-
|
|
29516
|
-
|
|
29517
|
-
|
|
29518
|
-
|
|
29519
|
-
|
|
29520
|
-
|
|
29521
|
-
|
|
29161
|
+
}
|
|
29162
|
+
/**
|
|
29163
|
+
* Sets the value prop and fires the ionChange event.
|
|
29164
|
+
* This is used when we need to fire ionChange from
|
|
29165
|
+
* user-generated events that cannot be caught with normal
|
|
29166
|
+
* input/change event listeners.
|
|
29167
|
+
* @internal
|
|
29168
|
+
*/
|
|
29169
|
+
async setValue(value) {
|
|
29170
|
+
if (this.disabled === true || this.value === value) {
|
|
29522
29171
|
return;
|
|
29523
29172
|
}
|
|
29524
|
-
|
|
29525
|
-
|
|
29526
|
-
const y = selectedIndex * this.optHeight * -1;
|
|
29527
|
-
const duration = animated ? TRANSITION_DURATION : 0;
|
|
29528
|
-
this.velocity = 0;
|
|
29529
|
-
this.update(y, duration, true);
|
|
29530
|
-
}
|
|
29173
|
+
this.value = value;
|
|
29174
|
+
this.ionChange.emit({ value });
|
|
29531
29175
|
}
|
|
29532
|
-
|
|
29533
|
-
|
|
29534
|
-
|
|
29535
|
-
|
|
29536
|
-
|
|
29537
|
-
|
|
29176
|
+
/**
|
|
29177
|
+
* Sets focus on the scrollable container within the picker column.
|
|
29178
|
+
* Use this method instead of the global `pickerColumn.focus()`.
|
|
29179
|
+
*/
|
|
29180
|
+
async setFocus() {
|
|
29181
|
+
if (this.assistiveFocusable) {
|
|
29182
|
+
this.assistiveFocusable.focus();
|
|
29538
29183
|
}
|
|
29539
|
-
|
|
29184
|
+
}
|
|
29185
|
+
connectedCallback() {
|
|
29186
|
+
var _a;
|
|
29187
|
+
this.ariaLabel = (_a = this.el.getAttribute('aria-label')) !== null && _a !== void 0 ? _a : 'Select a value';
|
|
29188
|
+
}
|
|
29189
|
+
get activeItem() {
|
|
29190
|
+
const { value } = this;
|
|
29191
|
+
const options = Array.from(this.el.querySelectorAll('ion-picker-column-option'));
|
|
29192
|
+
return options.find((option) => {
|
|
29193
|
+
/**
|
|
29194
|
+
* If the whole picker column is disabled, the current value should appear active
|
|
29195
|
+
* If the current value item is specifically disabled, it should not appear active
|
|
29196
|
+
*/
|
|
29197
|
+
if (!this.disabled && option.disabled) {
|
|
29198
|
+
return false;
|
|
29199
|
+
}
|
|
29200
|
+
return option.value === value;
|
|
29201
|
+
});
|
|
29540
29202
|
}
|
|
29541
29203
|
render() {
|
|
29542
|
-
const
|
|
29204
|
+
const { color, disabled, isActive, numericInput } = this;
|
|
29543
29205
|
const mode = getIonMode$1(this);
|
|
29544
|
-
return (hAsync(Host, { key: '
|
|
29545
|
-
|
|
29546
|
-
|
|
29206
|
+
return (hAsync(Host, { key: '234c96a501d7ac413b9b0ea56b33017681e25b40', class: createColorClasses$1(color, {
|
|
29207
|
+
[mode]: true,
|
|
29208
|
+
['picker-column-active']: isActive,
|
|
29209
|
+
['picker-column-numeric-input']: numericInput,
|
|
29210
|
+
['picker-column-disabled']: disabled,
|
|
29211
|
+
}) }, hAsync("slot", { key: '9dc15ea0601ddd2cb2e0a745e91e036a8bd96f8b', name: "prefix" }), hAsync("div", { key: 'de4fe28ee4bc46b7c0420d6ab0df0e7809443da9', class: "picker-opts", ref: (el) => {
|
|
29212
|
+
this.scrollEl = el;
|
|
29213
|
+
}, 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" })));
|
|
29547
29214
|
}
|
|
29548
29215
|
get el() { return getElement(this); }
|
|
29549
29216
|
static get watchers() { return {
|
|
29550
|
-
"
|
|
29551
|
-
"
|
|
29217
|
+
"aria-label": [{
|
|
29218
|
+
"ariaLabelChanged": 0
|
|
29219
|
+
}],
|
|
29220
|
+
"value": [{
|
|
29221
|
+
"valueChange": 0
|
|
29552
29222
|
}]
|
|
29553
29223
|
}; }
|
|
29554
|
-
static get style() { return
|
|
29555
|
-
ios: pickerColumnIosCss(),
|
|
29556
|
-
md: pickerColumnMdCss()
|
|
29557
|
-
}; }
|
|
29224
|
+
static get style() { return pickerColumnCss(); }
|
|
29558
29225
|
static get cmpMeta() { return {
|
|
29559
|
-
"$flags$":
|
|
29560
|
-
"$tagName$": "ion-picker-
|
|
29226
|
+
"$flags$": 265,
|
|
29227
|
+
"$tagName$": "ion-picker-column",
|
|
29561
29228
|
"$members$": {
|
|
29562
|
-
"
|
|
29229
|
+
"disabled": [4],
|
|
29230
|
+
"value": [1032],
|
|
29231
|
+
"color": [513],
|
|
29232
|
+
"numericInput": [4, "numeric-input"],
|
|
29233
|
+
"ariaLabel": [32],
|
|
29234
|
+
"isActive": [32],
|
|
29235
|
+
"scrollActiveItemIntoView": [64],
|
|
29236
|
+
"setValue": [64],
|
|
29237
|
+
"setFocus": [64]
|
|
29563
29238
|
},
|
|
29564
29239
|
"$listeners$": undefined,
|
|
29565
29240
|
"$lazyBundleId$": "-",
|
|
29566
|
-
"$attrsToReflect$": []
|
|
29241
|
+
"$attrsToReflect$": [["color", "color"]]
|
|
29567
29242
|
}; }
|
|
29568
29243
|
}
|
|
29569
|
-
const
|
|
29570
|
-
const DECELERATION_FRICTION = 0.97;
|
|
29571
|
-
const MAX_PICKER_SPEED = 90;
|
|
29572
|
-
const TRANSITION_DURATION = 150;
|
|
29244
|
+
const PICKER_ITEM_ACTIVE_CLASS = 'option-active';
|
|
29573
29245
|
|
|
29574
29246
|
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}`;
|
|
29575
29247
|
|
|
@@ -30766,9 +30438,9 @@ const mdLeaveAnimation$1 = (baseEl) => {
|
|
|
30766
30438
|
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
30767
30439
|
};
|
|
30768
30440
|
|
|
30769
|
-
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)}}`;
|
|
30441
|
+
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)}}`;
|
|
30770
30442
|
|
|
30771
|
-
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}`;
|
|
30443
|
+
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}`;
|
|
30772
30444
|
|
|
30773
30445
|
// TODO(FW-2832): types
|
|
30774
30446
|
/**
|
|
@@ -30992,6 +30664,10 @@ class Popover {
|
|
|
30992
30664
|
this.headerResizeObserver.disconnect();
|
|
30993
30665
|
this.headerResizeObserver = undefined;
|
|
30994
30666
|
}
|
|
30667
|
+
// Clean up aria-hidden if removed without dismiss() being called
|
|
30668
|
+
if (this.presented) {
|
|
30669
|
+
cleanupRootFocusTrapAccessibility();
|
|
30670
|
+
}
|
|
30995
30671
|
}
|
|
30996
30672
|
componentWillLoad() {
|
|
30997
30673
|
var _a, _b;
|
|
@@ -31230,9 +30906,9 @@ class Popover {
|
|
|
31230
30906
|
const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
|
|
31231
30907
|
const desktop = isPlatform('desktop');
|
|
31232
30908
|
const enableArrow = arrow && !parentPopover;
|
|
31233
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
30909
|
+
return (hAsync(Host, Object.assign({ key: 'd7f3aa2c2fa93a93585e3eda9e4a6d0daaa541be', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
|
|
31234
30910
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
31235
|
-
}, 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: '
|
|
30911
|
+
}, 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' })))));
|
|
31236
30912
|
}
|
|
31237
30913
|
get el() { return getElement(this); }
|
|
31238
30914
|
static get watchers() { return {
|
|
@@ -31343,7 +31019,7 @@ class ProgressBar {
|
|
|
31343
31019
|
const mode = getIonMode$1(this);
|
|
31344
31020
|
// If the progress is displayed as a solid bar.
|
|
31345
31021
|
const progressSolid = buffer === 1;
|
|
31346
|
-
return (hAsync(Host, { key: '
|
|
31022
|
+
return (hAsync(Host, { key: 'd7476268ce53b6a4f425b7bc9f01d6935eb411c3', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
|
|
31347
31023
|
[mode]: true,
|
|
31348
31024
|
[`progress-bar-${type}`]: true,
|
|
31349
31025
|
'progress-paused': paused,
|
|
@@ -31528,7 +31204,7 @@ class Radio {
|
|
|
31528
31204
|
const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
|
|
31529
31205
|
const mode = getIonMode$1(this);
|
|
31530
31206
|
const inItem = hostContext('ion-item', el);
|
|
31531
|
-
return (hAsync(Host, { key: '
|
|
31207
|
+
return (hAsync(Host, { key: 'd9425b252ed38086420d91d5c680421d121c99f4', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
|
|
31532
31208
|
[mode]: true,
|
|
31533
31209
|
'in-item': inItem,
|
|
31534
31210
|
'radio-checked': checked,
|
|
@@ -31539,10 +31215,10 @@ class Radio {
|
|
|
31539
31215
|
// Focus and active styling should not apply when the radio is in an item
|
|
31540
31216
|
'ion-activatable': !inItem,
|
|
31541
31217
|
'ion-focusable': !inItem,
|
|
31542
|
-
}), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, hAsync("label", { key: '
|
|
31218
|
+
}), 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: {
|
|
31543
31219
|
'label-text-wrapper': true,
|
|
31544
31220
|
'label-text-wrapper-hidden': !hasLabel,
|
|
31545
|
-
}, part: "label" }, hAsync("slot", { key: '
|
|
31221
|
+
}, part: "label" }, hAsync("slot", { key: '589d7c1b45a1918b5811663daa8f30788e7729f8' })), hAsync("div", { key: '0f61a17b195582d6c9a0c597cd40e6629256e479', class: "native-wrapper" }, this.renderRadioControl()))));
|
|
31546
31222
|
}
|
|
31547
31223
|
get el() { return getElement(this); }
|
|
31548
31224
|
static get watchers() { return {
|
|
@@ -31561,7 +31237,7 @@ class Radio {
|
|
|
31561
31237
|
"color": [513],
|
|
31562
31238
|
"name": [1],
|
|
31563
31239
|
"disabled": [4],
|
|
31564
|
-
"value": [
|
|
31240
|
+
"value": [520],
|
|
31565
31241
|
"labelPlacement": [1, "label-placement"],
|
|
31566
31242
|
"justify": [1],
|
|
31567
31243
|
"alignment": [1],
|
|
@@ -31572,7 +31248,7 @@ class Radio {
|
|
|
31572
31248
|
},
|
|
31573
31249
|
"$listeners$": undefined,
|
|
31574
31250
|
"$lazyBundleId$": "-",
|
|
31575
|
-
"$attrsToReflect$": [["color", "color"]]
|
|
31251
|
+
"$attrsToReflect$": [["color", "color"], ["value", "value"]]
|
|
31576
31252
|
}; }
|
|
31577
31253
|
}
|
|
31578
31254
|
let radioButtonIds = 0;
|
|
@@ -32637,7 +32313,7 @@ class Range {
|
|
|
32637
32313
|
const valueAtMin = dualKnobs ? this.valA === min || this.valB === min : this.valA === min;
|
|
32638
32314
|
const valueAtMax = dualKnobs ? this.valA === max || this.valB === max : this.valA === max;
|
|
32639
32315
|
renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
|
|
32640
|
-
return (hAsync(Host, { key: '
|
|
32316
|
+
return (hAsync(Host, { key: 'cd26f0187c0d37c7eb9df923f75c8a0f57c19ab6', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
|
|
32641
32317
|
[mode]: true,
|
|
32642
32318
|
'in-item': inItem,
|
|
32643
32319
|
'range-disabled': disabled,
|
|
@@ -32651,10 +32327,10 @@ class Range {
|
|
|
32651
32327
|
'range-item-end-adjustment': needsEndAdjustment,
|
|
32652
32328
|
'range-value-min': valueAtMin,
|
|
32653
32329
|
'range-value-max': valueAtMax,
|
|
32654
|
-
}) }, hAsync("label", { key: '
|
|
32330
|
+
}) }, hAsync("label", { key: '90224fd24b0e625a17e7972feff73a0ac31e093d', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: 'e07b9fa10983249c425eec26b741f0f628daf2b2', class: {
|
|
32655
32331
|
'label-text-wrapper': true,
|
|
32656
32332
|
'label-text-wrapper-hidden': !hasLabel,
|
|
32657
|
-
}, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: '
|
|
32333
|
+
}, 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" })))));
|
|
32658
32334
|
}
|
|
32659
32335
|
get el() { return getElement(this); }
|
|
32660
32336
|
static get watchers() { return {
|
|
@@ -33725,7 +33401,7 @@ class Refresher {
|
|
|
33725
33401
|
}
|
|
33726
33402
|
render() {
|
|
33727
33403
|
const mode = getIonMode$1(this);
|
|
33728
|
-
return (hAsync(Host, { key: '
|
|
33404
|
+
return (hAsync(Host, { key: '1dd475095f76491206644828cf89fc6d2ec276d1', slot: "fixed", class: {
|
|
33729
33405
|
[mode]: true,
|
|
33730
33406
|
// Used internally for styling
|
|
33731
33407
|
[`refresher-${mode}`]: true,
|
|
@@ -33951,7 +33627,7 @@ class RefresherContent {
|
|
|
33951
33627
|
const pullingIcon = this.pullingIcon;
|
|
33952
33628
|
const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
|
|
33953
33629
|
const mode = getIonMode$1(this);
|
|
33954
|
-
return (hAsync(Host, { key: '
|
|
33630
|
+
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())));
|
|
33955
33631
|
}
|
|
33956
33632
|
get el() { return getElement(this); }
|
|
33957
33633
|
static get cmpMeta() { return {
|
|
@@ -33992,7 +33668,7 @@ class Reorder {
|
|
|
33992
33668
|
render() {
|
|
33993
33669
|
const mode = getIonMode$1(this);
|
|
33994
33670
|
const reorderIcon = mode === 'ios' ? reorderThreeOutline : reorderTwoSharp;
|
|
33995
|
-
return (hAsync(Host, { key: '
|
|
33671
|
+
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" }))));
|
|
33996
33672
|
}
|
|
33997
33673
|
get el() { return getElement(this); }
|
|
33998
33674
|
static get style() { return {
|
|
@@ -34263,7 +33939,7 @@ class ReorderGroup {
|
|
|
34263
33939
|
}
|
|
34264
33940
|
render() {
|
|
34265
33941
|
const mode = getIonMode$1(this);
|
|
34266
|
-
return (hAsync(Host, { key: '
|
|
33942
|
+
return (hAsync(Host, { key: '3afdc6a6c81bba2f88ea523d4b73c6fccff1b9ec', class: {
|
|
34267
33943
|
[mode]: true,
|
|
34268
33944
|
'reorder-enabled': !this.disabled,
|
|
34269
33945
|
'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
|
|
@@ -34381,7 +34057,7 @@ class RippleEffect {
|
|
|
34381
34057
|
}
|
|
34382
34058
|
render() {
|
|
34383
34059
|
const mode = getIonMode$1(this);
|
|
34384
|
-
return (hAsync(Host, { key: '
|
|
34060
|
+
return (hAsync(Host, { key: '5e88b5225414e29883256c86f111ded5bdf2ef91', role: "presentation", class: {
|
|
34385
34061
|
[mode]: true,
|
|
34386
34062
|
unbounded: this.unbounded,
|
|
34387
34063
|
} }));
|
|
@@ -34819,16 +34495,30 @@ const scrollToFragment = async (fragment, shouldContinue = () => true) => {
|
|
|
34819
34495
|
return false;
|
|
34820
34496
|
}
|
|
34821
34497
|
};
|
|
34498
|
+
/** How long the router waits for a navigation outlet before giving up and proceeding. */
|
|
34499
|
+
const NAV_NODE_TIMEOUT = 500;
|
|
34822
34500
|
const waitUntilNavNode = () => {
|
|
34823
34501
|
if (searchNavNode(document.body)) {
|
|
34824
34502
|
return Promise.resolve();
|
|
34825
34503
|
}
|
|
34826
34504
|
return new Promise((resolve) => {
|
|
34827
|
-
|
|
34505
|
+
/**
|
|
34506
|
+
* Outlets emit `ionNavWillLoad` as they load, so resolve as soon as one does.
|
|
34507
|
+
* A timeout backstops the case where the page has no outlet at all: without it
|
|
34508
|
+
* the router would wait forever and its `componentWillLoad` would never settle,
|
|
34509
|
+
* which in turn prevents the app from signalling that it has finished loading.
|
|
34510
|
+
*/
|
|
34511
|
+
const done = () => {
|
|
34512
|
+
window.removeEventListener('ionNavWillLoad', done);
|
|
34513
|
+
clearTimeout(timeout);
|
|
34514
|
+
resolve();
|
|
34515
|
+
};
|
|
34516
|
+
const timeout = setTimeout(done, NAV_NODE_TIMEOUT);
|
|
34517
|
+
window.addEventListener('ionNavWillLoad', done, { once: true });
|
|
34828
34518
|
});
|
|
34829
34519
|
};
|
|
34830
34520
|
/** Selector for all the outlets supported by the router. */
|
|
34831
|
-
const OUTLET_SELECTOR = ':not([no-router]) ion-
|
|
34521
|
+
const OUTLET_SELECTOR = ':not([no-router]) ion-tabs, :not([no-router]) ion-router-outlet';
|
|
34832
34522
|
const searchNavNode = (root) => {
|
|
34833
34523
|
if (!root) {
|
|
34834
34524
|
return undefined;
|
|
@@ -35515,10 +35205,10 @@ class RouterLink {
|
|
|
35515
35205
|
rel: this.rel,
|
|
35516
35206
|
target: this.target,
|
|
35517
35207
|
};
|
|
35518
|
-
return (hAsync(Host, { key: '
|
|
35208
|
+
return (hAsync(Host, { key: '6d5fdfa0dcf1eb216173bcc53f1f4d625f3ec551', onClick: this.onClick, class: createColorClasses$1(this.color, {
|
|
35519
35209
|
[mode]: true,
|
|
35520
35210
|
'ion-activatable': true,
|
|
35521
|
-
}) }, hAsync("a", Object.assign({ key: '
|
|
35211
|
+
}) }, hAsync("a", Object.assign({ key: '85796b7b48581fe9830ba1102dad7d1069de4e17' }, attrs), hAsync("slot", { key: '0f93b0da3ec4ae8f50f624f9e7bed87d13d712d0' }))));
|
|
35522
35212
|
}
|
|
35523
35213
|
static get style() { return routerLinkCss(); }
|
|
35524
35214
|
static get cmpMeta() { return {
|
|
@@ -35557,10 +35247,11 @@ class RouterOutlet {
|
|
|
35557
35247
|
*/
|
|
35558
35248
|
this.animated = true;
|
|
35559
35249
|
}
|
|
35250
|
+
swipeGestureChanged() {
|
|
35251
|
+
this.updateGestureEnabled();
|
|
35252
|
+
}
|
|
35560
35253
|
swipeHandlerChanged() {
|
|
35561
|
-
|
|
35562
|
-
this.gesture.enable(this.swipeHandler !== undefined);
|
|
35563
|
-
}
|
|
35254
|
+
this.updateGestureEnabled();
|
|
35564
35255
|
}
|
|
35565
35256
|
async connectedCallback() {
|
|
35566
35257
|
const onStart = () => {
|
|
@@ -35600,11 +35291,21 @@ class RouterOutlet {
|
|
|
35600
35291
|
this.gestureOrAnimationInProgress = false;
|
|
35601
35292
|
}
|
|
35602
35293
|
});
|
|
35603
|
-
this.
|
|
35294
|
+
if (this.swipeGesture === undefined) {
|
|
35295
|
+
this.swipeGesture = config.getBoolean('swipeBackEnabled', this.mode === 'ios');
|
|
35296
|
+
}
|
|
35297
|
+
else {
|
|
35298
|
+
this.updateGestureEnabled();
|
|
35299
|
+
}
|
|
35604
35300
|
}
|
|
35605
35301
|
componentWillLoad() {
|
|
35606
35302
|
this.ionNavWillLoad.emit();
|
|
35607
35303
|
}
|
|
35304
|
+
updateGestureEnabled() {
|
|
35305
|
+
if (this.gesture) {
|
|
35306
|
+
this.gesture.enable(this.swipeHandler !== undefined && this.swipeGesture === true);
|
|
35307
|
+
}
|
|
35308
|
+
}
|
|
35608
35309
|
disconnectedCallback() {
|
|
35609
35310
|
if (this.gesture) {
|
|
35610
35311
|
this.gesture.destroy();
|
|
@@ -35715,10 +35416,13 @@ class RouterOutlet {
|
|
|
35715
35416
|
return true;
|
|
35716
35417
|
}
|
|
35717
35418
|
render() {
|
|
35718
|
-
return hAsync("slot", { key: '
|
|
35419
|
+
return hAsync("slot", { key: 'ce09e6fbba7b0a2276cdde5245bb37c9a162c1c7' });
|
|
35719
35420
|
}
|
|
35720
35421
|
get el() { return getElement(this); }
|
|
35721
35422
|
static get watchers() { return {
|
|
35423
|
+
"swipeGesture": [{
|
|
35424
|
+
"swipeGestureChanged": 0
|
|
35425
|
+
}],
|
|
35722
35426
|
"swipeHandler": [{
|
|
35723
35427
|
"swipeHandlerChanged": 0
|
|
35724
35428
|
}]
|
|
@@ -35732,6 +35436,7 @@ class RouterOutlet {
|
|
|
35732
35436
|
"delegate": [16],
|
|
35733
35437
|
"animated": [4],
|
|
35734
35438
|
"animation": [16],
|
|
35439
|
+
"swipeGesture": [1028, "swipe-gesture"],
|
|
35735
35440
|
"swipeHandler": [16],
|
|
35736
35441
|
"commit": [64],
|
|
35737
35442
|
"setRouteId": [64],
|
|
@@ -35750,7 +35455,7 @@ class Row {
|
|
|
35750
35455
|
registerInstance(this, hostRef);
|
|
35751
35456
|
}
|
|
35752
35457
|
render() {
|
|
35753
|
-
return (hAsync(Host, { key: '
|
|
35458
|
+
return (hAsync(Host, { key: 'a9066661fff12baaf3e80b2e8c08591af72fe5b8', class: getIonMode$1(this) }, hAsync("slot", { key: '62b103af46d3a5ec9c146019ae300b68a4ae867a' })));
|
|
35754
35459
|
}
|
|
35755
35460
|
static get style() { return rowCss(); }
|
|
35756
35461
|
static get cmpMeta() { return {
|
|
@@ -35802,7 +35507,7 @@ class Searchbar {
|
|
|
35802
35507
|
/**
|
|
35803
35508
|
* Set the input's autocorrect property.
|
|
35804
35509
|
*/
|
|
35805
|
-
this.autocorrect =
|
|
35510
|
+
this.autocorrect = false;
|
|
35806
35511
|
/**
|
|
35807
35512
|
* Set the cancel button icon. Only applies to `md` mode.
|
|
35808
35513
|
* Defaults to `arrow-back-sharp`.
|
|
@@ -36223,8 +35928,8 @@ class Searchbar {
|
|
|
36223
35928
|
const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
|
|
36224
35929
|
const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
|
|
36225
35930
|
const shouldShowCancelButton = this.shouldShowCancelButton();
|
|
36226
|
-
const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '
|
|
36227
|
-
return (hAsync(Host, { key: '
|
|
35931
|
+
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))));
|
|
35932
|
+
return (hAsync(Host, { key: '1b4f6c4e7dffb02e092f0026ce3875822d98a631', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
|
|
36228
35933
|
[mode]: true,
|
|
36229
35934
|
'searchbar-animated': animated,
|
|
36230
35935
|
'searchbar-disabled': this.disabled,
|
|
@@ -36234,14 +35939,14 @@ class Searchbar {
|
|
|
36234
35939
|
'searchbar-has-focus': this.focused,
|
|
36235
35940
|
'searchbar-should-show-clear': this.shouldShowClearButton(),
|
|
36236
35941
|
'searchbar-should-show-cancel': this.shouldShowCancelButton(),
|
|
36237
|
-
}) }, hAsync("div", { key: '
|
|
35942
|
+
}) }, 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) => {
|
|
36238
35943
|
/**
|
|
36239
35944
|
* This prevents mobile browsers from
|
|
36240
35945
|
* blurring the input when the clear
|
|
36241
35946
|
* button is activated.
|
|
36242
35947
|
*/
|
|
36243
35948
|
ev.preventDefault();
|
|
36244
|
-
}, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '
|
|
35949
|
+
}, 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));
|
|
36245
35950
|
}
|
|
36246
35951
|
get el() { return getElement(this); }
|
|
36247
35952
|
static get watchers() { return {
|
|
@@ -36273,7 +35978,7 @@ class Searchbar {
|
|
|
36273
35978
|
"animated": [4],
|
|
36274
35979
|
"autocapitalize": [1],
|
|
36275
35980
|
"autocomplete": [1],
|
|
36276
|
-
"autocorrect": [
|
|
35981
|
+
"autocorrect": [4],
|
|
36277
35982
|
"cancelButtonIcon": [1, "cancel-button-icon"],
|
|
36278
35983
|
"cancelButtonText": [1, "cancel-button-text"],
|
|
36279
35984
|
"clearIcon": [1, "clear-icon"],
|
|
@@ -36850,14 +36555,14 @@ class Segment {
|
|
|
36850
36555
|
}
|
|
36851
36556
|
render() {
|
|
36852
36557
|
const mode = getIonMode$1(this);
|
|
36853
|
-
return (hAsync(Host, { key: '
|
|
36558
|
+
return (hAsync(Host, { key: 'bb626072e73f09c3433e1a769e09789a00822d8f', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
|
|
36854
36559
|
[mode]: true,
|
|
36855
36560
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
36856
36561
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
36857
36562
|
'segment-activated': this.activated,
|
|
36858
36563
|
'segment-disabled': this.disabled,
|
|
36859
36564
|
'segment-scrollable': this.scrollable,
|
|
36860
|
-
}) }, hAsync("slot", { key: '
|
|
36565
|
+
}) }, hAsync("slot", { key: '652d5037c2c2dee4d47a5710b1d150e691202d25', onSlotchange: this.onSlottedItemsChange })));
|
|
36861
36566
|
}
|
|
36862
36567
|
get el() { return getElement(this); }
|
|
36863
36568
|
static get watchers() { return {
|
|
@@ -37005,7 +36710,7 @@ class SegmentButton {
|
|
|
37005
36710
|
const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
|
|
37006
36711
|
const mode = getIonMode$1(this);
|
|
37007
36712
|
const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
|
|
37008
|
-
return (hAsync(Host, { key: '
|
|
36713
|
+
return (hAsync(Host, { key: '792f621c36260b1fceff2b4ec4fa95d98d51d46b', class: {
|
|
37009
36714
|
[mode]: true,
|
|
37010
36715
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
37011
36716
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
@@ -37021,7 +36726,7 @@ class SegmentButton {
|
|
|
37021
36726
|
'ion-activatable': true,
|
|
37022
36727
|
'ion-activatable-instant': true,
|
|
37023
36728
|
'ion-focusable': true,
|
|
37024
|
-
} }, hAsync("button", Object.assign({ key: '
|
|
36729
|
+
} }, 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" }))));
|
|
37025
36730
|
}
|
|
37026
36731
|
get el() { return getElement(this); }
|
|
37027
36732
|
static get watchers() { return {
|
|
@@ -37058,7 +36763,7 @@ class SegmentContent {
|
|
|
37058
36763
|
registerInstance(this, hostRef);
|
|
37059
36764
|
}
|
|
37060
36765
|
render() {
|
|
37061
|
-
return (hAsync(Host, { key: '
|
|
36766
|
+
return (hAsync(Host, { key: 'ef39f29c444177c3b083cd35680ba891e4bb6a2a' }, hAsync("slot", { key: '51f9dd9ca084ddd928b376aa9d716509669c32b2' })));
|
|
37062
36767
|
}
|
|
37063
36768
|
static get style() { return segmentContentCss(); }
|
|
37064
36769
|
static get cmpMeta() { return {
|
|
@@ -37177,11 +36882,11 @@ class SegmentView {
|
|
|
37177
36882
|
}
|
|
37178
36883
|
render() {
|
|
37179
36884
|
const { disabled, isManualScroll, swipeGesture } = this;
|
|
37180
|
-
return (hAsync(Host, { key: '
|
|
36885
|
+
return (hAsync(Host, { key: 'a6c6ac0232c4bb6f2a954b3de7993019d71f423a', class: {
|
|
37181
36886
|
'segment-view-disabled': disabled,
|
|
37182
36887
|
'segment-view-scroll-disabled': isManualScroll === false,
|
|
37183
36888
|
'segment-view-swipe-disabled': swipeGesture === false,
|
|
37184
|
-
} }, hAsync("slot", { key: '
|
|
36889
|
+
} }, hAsync("slot", { key: '386305be2a75069c79def12005d9f6b49276763f' })));
|
|
37185
36890
|
}
|
|
37186
36891
|
get el() { return getElement(this); }
|
|
37187
36892
|
static get style() { return {
|
|
@@ -37203,9 +36908,9 @@ class SegmentView {
|
|
|
37203
36908
|
}; }
|
|
37204
36909
|
}
|
|
37205
36910
|
|
|
37206
|
-
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}`;
|
|
36911
|
+
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}`;
|
|
37207
36912
|
|
|
37208
|
-
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}`;
|
|
36913
|
+
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}`;
|
|
37209
36914
|
|
|
37210
36915
|
// TODO(FW-2832): types
|
|
37211
36916
|
/**
|
|
@@ -37240,6 +36945,7 @@ class Select {
|
|
|
37240
36945
|
this.helperTextId = `${this.inputId}-helper-text`;
|
|
37241
36946
|
this.errorTextId = `${this.inputId}-error-text`;
|
|
37242
36947
|
this.inheritedAttributes = {};
|
|
36948
|
+
this.customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
|
|
37243
36949
|
this.isExpanded = false;
|
|
37244
36950
|
/**
|
|
37245
36951
|
* The `hasFocus` state ensures the focus class is
|
|
@@ -37365,9 +37071,40 @@ class Select {
|
|
|
37365
37071
|
this.emitStyle();
|
|
37366
37072
|
}
|
|
37367
37073
|
setValue(value) {
|
|
37074
|
+
if (this.isValueEqual(this.value, value)) {
|
|
37075
|
+
return;
|
|
37076
|
+
}
|
|
37368
37077
|
this.value = value;
|
|
37369
37078
|
this.ionChange.emit({ value });
|
|
37370
37079
|
}
|
|
37080
|
+
isValueEqual(currentValue, newValue) {
|
|
37081
|
+
if (this.multiple) {
|
|
37082
|
+
const currentArr = Array.isArray(currentValue) ? currentValue : [];
|
|
37083
|
+
const newArr = Array.isArray(newValue) ? newValue : [];
|
|
37084
|
+
if (currentArr.length !== newArr.length) {
|
|
37085
|
+
return false;
|
|
37086
|
+
}
|
|
37087
|
+
// Multiset compare: each new value must match a distinct current value.
|
|
37088
|
+
// A plain `every(isOptionSelected)` would accept ['a','a'] as equal to
|
|
37089
|
+
// ['a','b'] when both 'a' and 'b' map to options whose values overlap.
|
|
37090
|
+
const remaining = currentArr.slice();
|
|
37091
|
+
return newArr.every((val) => {
|
|
37092
|
+
const idx = remaining.findIndex((c) => compareOptions(c, val, this.compareWith));
|
|
37093
|
+
if (idx === -1) {
|
|
37094
|
+
return false;
|
|
37095
|
+
}
|
|
37096
|
+
remaining.splice(idx, 1);
|
|
37097
|
+
return true;
|
|
37098
|
+
});
|
|
37099
|
+
}
|
|
37100
|
+
if (currentValue == null && newValue == null) {
|
|
37101
|
+
return true;
|
|
37102
|
+
}
|
|
37103
|
+
if (currentValue == null || newValue == null) {
|
|
37104
|
+
return false;
|
|
37105
|
+
}
|
|
37106
|
+
return compareOptions(currentValue, newValue, this.compareWith);
|
|
37107
|
+
}
|
|
37371
37108
|
async connectedCallback() {
|
|
37372
37109
|
const { el } = this;
|
|
37373
37110
|
this.notchController = createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
|
|
@@ -37561,10 +37298,11 @@ class Select {
|
|
|
37561
37298
|
.join(' ');
|
|
37562
37299
|
const optClass = `${OPTION_CLASS} ${copyClasses}`;
|
|
37563
37300
|
const isSelected = isOptionSelected(selectValue, value, this.compareWith);
|
|
37301
|
+
const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
|
|
37564
37302
|
return {
|
|
37565
|
-
|
|
37566
|
-
text: option.textContent,
|
|
37303
|
+
text: content !== null && content !== void 0 ? content : '',
|
|
37567
37304
|
cssClass: optClass,
|
|
37305
|
+
disabled: option.disabled,
|
|
37568
37306
|
handler: () => {
|
|
37569
37307
|
this.setValue(value);
|
|
37570
37308
|
},
|
|
@@ -37572,6 +37310,9 @@ class Select {
|
|
|
37572
37310
|
'aria-checked': isSelected ? 'true' : 'false',
|
|
37573
37311
|
role: 'radio',
|
|
37574
37312
|
},
|
|
37313
|
+
startContent,
|
|
37314
|
+
endContent,
|
|
37315
|
+
description: option.description,
|
|
37575
37316
|
};
|
|
37576
37317
|
});
|
|
37577
37318
|
// Add "cancel" button
|
|
@@ -37592,13 +37333,19 @@ class Select {
|
|
|
37592
37333
|
.filter((cls) => cls !== 'hydrated')
|
|
37593
37334
|
.join(' ');
|
|
37594
37335
|
const optClass = `${OPTION_CLASS} ${copyClasses}`;
|
|
37336
|
+
const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
|
|
37595
37337
|
return {
|
|
37596
37338
|
type: inputType,
|
|
37597
37339
|
cssClass: optClass,
|
|
37598
|
-
label:
|
|
37340
|
+
label: content !== null && content !== void 0 ? content : '',
|
|
37599
37341
|
value,
|
|
37600
37342
|
checked: isOptionSelected(selectValue, value, this.compareWith),
|
|
37601
37343
|
disabled: option.disabled,
|
|
37344
|
+
startContent,
|
|
37345
|
+
endContent,
|
|
37346
|
+
description: option.description,
|
|
37347
|
+
labelPlacement: option.labelPlacement,
|
|
37348
|
+
justify: option.justify,
|
|
37602
37349
|
};
|
|
37603
37350
|
});
|
|
37604
37351
|
return alertInputs;
|
|
@@ -37611,8 +37358,9 @@ class Select {
|
|
|
37611
37358
|
.filter((cls) => cls !== 'hydrated')
|
|
37612
37359
|
.join(' ');
|
|
37613
37360
|
const optClass = `${OPTION_CLASS} ${copyClasses}`;
|
|
37361
|
+
const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
|
|
37614
37362
|
return {
|
|
37615
|
-
text:
|
|
37363
|
+
text: content !== null && content !== void 0 ? content : '',
|
|
37616
37364
|
cssClass: optClass,
|
|
37617
37365
|
value,
|
|
37618
37366
|
checked: isOptionSelected(selectValue, value, this.compareWith),
|
|
@@ -37623,6 +37371,11 @@ class Select {
|
|
|
37623
37371
|
this.close();
|
|
37624
37372
|
}
|
|
37625
37373
|
},
|
|
37374
|
+
startContent,
|
|
37375
|
+
endContent,
|
|
37376
|
+
description: option.description,
|
|
37377
|
+
labelPlacement: option.labelPlacement,
|
|
37378
|
+
justify: option.justify,
|
|
37626
37379
|
};
|
|
37627
37380
|
});
|
|
37628
37381
|
return popoverOptions;
|
|
@@ -37655,15 +37408,21 @@ class Select {
|
|
|
37655
37408
|
ionShadowTarget: this.nativeWrapperEl,
|
|
37656
37409
|
} });
|
|
37657
37410
|
}
|
|
37411
|
+
const options = this.createOverlaySelectOptions(this.childOpts, value);
|
|
37412
|
+
const hasRichContent = options.some((opt) => opt.startContent || opt.endContent || opt.description);
|
|
37658
37413
|
const popoverOpts = Object.assign(Object.assign({ mode,
|
|
37659
37414
|
event, alignment: 'center', size,
|
|
37660
|
-
showBackdrop }, interfaceOptions), { component: 'ion-select-popover', cssClass: [
|
|
37415
|
+
showBackdrop }, interfaceOptions), { component: 'ion-select-popover', cssClass: [
|
|
37416
|
+
'select-popover',
|
|
37417
|
+
hasRichContent ? 'select-popover-rich-content' : undefined,
|
|
37418
|
+
interfaceOptions.cssClass,
|
|
37419
|
+
], componentProps: {
|
|
37661
37420
|
header: interfaceOptions.header,
|
|
37662
37421
|
subHeader: interfaceOptions.subHeader,
|
|
37663
37422
|
message: interfaceOptions.message,
|
|
37664
37423
|
multiple,
|
|
37665
37424
|
value,
|
|
37666
|
-
options
|
|
37425
|
+
options,
|
|
37667
37426
|
} });
|
|
37668
37427
|
return popoverController.create(popoverOpts);
|
|
37669
37428
|
}
|
|
@@ -37744,12 +37503,18 @@ class Select {
|
|
|
37744
37503
|
}
|
|
37745
37504
|
return;
|
|
37746
37505
|
}
|
|
37747
|
-
|
|
37506
|
+
/**
|
|
37507
|
+
* Returns the text to display in the select based on the selected value.
|
|
37508
|
+
*
|
|
37509
|
+
* @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`.
|
|
37510
|
+
* @returns The text to display in the select, either with or without HTML based on the `useHTML` parameter.
|
|
37511
|
+
*/
|
|
37512
|
+
getText(useHTML = false) {
|
|
37748
37513
|
const selectedText = this.selectedText;
|
|
37749
37514
|
if (selectedText != null && selectedText !== '') {
|
|
37750
37515
|
return selectedText;
|
|
37751
37516
|
}
|
|
37752
|
-
return generateText(this.childOpts, this.value, this.compareWith);
|
|
37517
|
+
return generateText(this.childOpts, this.value, this.compareWith, useHTML);
|
|
37753
37518
|
}
|
|
37754
37519
|
setFocus() {
|
|
37755
37520
|
if (this.focusEl) {
|
|
@@ -37819,6 +37584,47 @@ class Select {
|
|
|
37819
37584
|
*/
|
|
37820
37585
|
return this.renderLabel();
|
|
37821
37586
|
}
|
|
37587
|
+
/**
|
|
37588
|
+
* Wraps text nodes in the select text with span elements
|
|
37589
|
+
* so spacing can be added between elements without
|
|
37590
|
+
* changing the display to prevent losing the ellipses
|
|
37591
|
+
* behavior.
|
|
37592
|
+
*
|
|
37593
|
+
* Only wraps when the string contains HTML elements
|
|
37594
|
+
* alongside text.
|
|
37595
|
+
*/
|
|
37596
|
+
wrapSelectTextNodes(html) {
|
|
37597
|
+
const temp = document.createElement('div');
|
|
37598
|
+
temp.innerHTML = html;
|
|
37599
|
+
const hasElements = Array.from(temp.childNodes).some((n) => n.nodeType === Node.ELEMENT_NODE);
|
|
37600
|
+
// Return the plain text
|
|
37601
|
+
if (!hasElements) {
|
|
37602
|
+
return html;
|
|
37603
|
+
}
|
|
37604
|
+
Array.from(temp.childNodes).forEach((node) => {
|
|
37605
|
+
var _a, _b, _c, _d;
|
|
37606
|
+
if (node.nodeType === Node.TEXT_NODE && ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim())) {
|
|
37607
|
+
const text = node.textContent;
|
|
37608
|
+
/**
|
|
37609
|
+
* Split comma separator from the text content
|
|
37610
|
+
* e.g., ", Bacon" becomes ", " text node + <span>Bacon</span>.
|
|
37611
|
+
*/
|
|
37612
|
+
const commaMatch = text.match(/^(,\s*)(.*)/);
|
|
37613
|
+
if (commaMatch) {
|
|
37614
|
+
const commaNode = document.createTextNode(commaMatch[1]);
|
|
37615
|
+
const wrapper = document.createElement('span');
|
|
37616
|
+
wrapper.textContent = commaMatch[2];
|
|
37617
|
+
(_b = node.parentNode) === null || _b === void 0 ? void 0 : _b.replaceChild(wrapper, node);
|
|
37618
|
+
(_c = wrapper.parentNode) === null || _c === void 0 ? void 0 : _c.insertBefore(commaNode, wrapper);
|
|
37619
|
+
return;
|
|
37620
|
+
}
|
|
37621
|
+
const wrapper = document.createElement('span');
|
|
37622
|
+
(_d = node.parentNode) === null || _d === void 0 ? void 0 : _d.replaceChild(wrapper, node);
|
|
37623
|
+
wrapper.appendChild(node);
|
|
37624
|
+
}
|
|
37625
|
+
});
|
|
37626
|
+
return temp.innerHTML;
|
|
37627
|
+
}
|
|
37822
37628
|
/**
|
|
37823
37629
|
* Renders either the placeholder
|
|
37824
37630
|
* or the selected values based on
|
|
@@ -37826,7 +37632,7 @@ class Select {
|
|
|
37826
37632
|
*/
|
|
37827
37633
|
renderSelectText() {
|
|
37828
37634
|
const { placeholder } = this;
|
|
37829
|
-
const displayValue = this.getText();
|
|
37635
|
+
const displayValue = this.getText(true);
|
|
37830
37636
|
let addPlaceholderClass = false;
|
|
37831
37637
|
let selectText = displayValue;
|
|
37832
37638
|
if (selectText === '' && placeholder !== undefined) {
|
|
@@ -37838,6 +37644,10 @@ class Select {
|
|
|
37838
37644
|
'select-placeholder': addPlaceholderClass,
|
|
37839
37645
|
};
|
|
37840
37646
|
const textPart = addPlaceholderClass ? 'placeholder' : 'text';
|
|
37647
|
+
if (this.customHTMLEnabled) {
|
|
37648
|
+
const wrapped = this.wrapSelectTextNodes(selectText);
|
|
37649
|
+
return hAsync("div", { "aria-hidden": "true", class: selectTextClasses, part: textPart, innerHTML: wrapped });
|
|
37650
|
+
}
|
|
37841
37651
|
return (hAsync("div", { "aria-hidden": "true", class: selectTextClasses, part: textPart }, selectText));
|
|
37842
37652
|
}
|
|
37843
37653
|
/**
|
|
@@ -37860,6 +37670,7 @@ class Select {
|
|
|
37860
37670
|
get ariaLabel() {
|
|
37861
37671
|
var _a;
|
|
37862
37672
|
const { placeholder, inheritedAttributes } = this;
|
|
37673
|
+
// Get the plain text from the selected text
|
|
37863
37674
|
const displayValue = this.getText();
|
|
37864
37675
|
// The aria label should be preferred over visible text if both are specified
|
|
37865
37676
|
const definedLabel = (_a = inheritedAttributes['aria-label']) !== null && _a !== void 0 ? _a : this.labelText;
|
|
@@ -37953,7 +37764,7 @@ class Select {
|
|
|
37953
37764
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
37954
37765
|
*/
|
|
37955
37766
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
|
|
37956
|
-
return (hAsync(Host, { key: '
|
|
37767
|
+
return (hAsync(Host, { key: 'a3036d51e0db13332641e9523264ddd1ab031912', onClick: this.onClick, class: createColorClasses$1(this.color, {
|
|
37957
37768
|
[mode]: true,
|
|
37958
37769
|
'in-item': inItem,
|
|
37959
37770
|
'in-item-color': hostContext('ion-item.ion-color', el),
|
|
@@ -37971,7 +37782,7 @@ class Select {
|
|
|
37971
37782
|
[`select-justify-${justify}`]: justifyEnabled,
|
|
37972
37783
|
[`select-shape-${shape}`]: shape !== undefined,
|
|
37973
37784
|
[`select-label-placement-${labelPlacement}`]: true,
|
|
37974
|
-
}) }, hAsync("label", { key: '
|
|
37785
|
+
}) }, 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()));
|
|
37975
37786
|
}
|
|
37976
37787
|
get el() { return getElement(this); }
|
|
37977
37788
|
static get watchers() { return {
|
|
@@ -38042,34 +37853,232 @@ const parseValue = (value) => {
|
|
|
38042
37853
|
}
|
|
38043
37854
|
return value.toString();
|
|
38044
37855
|
};
|
|
38045
|
-
const generateText = (opts, value, compareWith) => {
|
|
37856
|
+
const generateText = (opts, value, compareWith, useHTML = false) => {
|
|
38046
37857
|
if (value === undefined) {
|
|
38047
37858
|
return '';
|
|
38048
37859
|
}
|
|
38049
37860
|
if (Array.isArray(value)) {
|
|
38050
37861
|
return value
|
|
38051
|
-
.map((v) => textForValue(opts, v, compareWith))
|
|
37862
|
+
.map((v) => textForValue(opts, v, compareWith, useHTML))
|
|
38052
37863
|
.filter((opt) => opt !== null)
|
|
38053
37864
|
.join(', ');
|
|
38054
37865
|
}
|
|
38055
37866
|
else {
|
|
38056
|
-
return textForValue(opts, value, compareWith) || '';
|
|
37867
|
+
return textForValue(opts, value, compareWith, useHTML) || '';
|
|
38057
37868
|
}
|
|
38058
37869
|
};
|
|
38059
|
-
|
|
37870
|
+
/**
|
|
37871
|
+
* Returns the display text for a given value from the list of options.
|
|
37872
|
+
* When `useHTML` is true, returns sanitized HTML for the select text.
|
|
37873
|
+
* When `useHTML` is false, returns plain text for aria-label and other
|
|
37874
|
+
* text-only contexts.
|
|
37875
|
+
*
|
|
37876
|
+
* @param opts - The list of ion-select-option elements.
|
|
37877
|
+
* @param value - The value to find the matching option for.
|
|
37878
|
+
* @param compareWith - Custom comparison function or property name.
|
|
37879
|
+
* @param useHTML - If true, returns HTML string. If false, returns plain text.
|
|
37880
|
+
*/
|
|
37881
|
+
const textForValue = (opts, value, compareWith, useHTML = false) => {
|
|
38060
37882
|
const selectOpt = opts.find((opt) => {
|
|
38061
37883
|
return compareOptions(value, getOptionValue(opt), compareWith);
|
|
38062
37884
|
});
|
|
38063
|
-
|
|
37885
|
+
const customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
|
|
37886
|
+
if (!selectOpt) {
|
|
37887
|
+
return null;
|
|
37888
|
+
}
|
|
37889
|
+
// Return sanitized HTML for the select text
|
|
37890
|
+
if (customHTMLEnabled && useHTML) {
|
|
37891
|
+
return getOptionContent(selectOpt, undefined, true);
|
|
37892
|
+
}
|
|
37893
|
+
/**
|
|
37894
|
+
* When custom HTML is enabled, extract only the default slot content.
|
|
37895
|
+
* This ensures aria-label and other text-only contexts read only
|
|
37896
|
+
* the relevant option text.
|
|
37897
|
+
*/
|
|
37898
|
+
if (customHTMLEnabled) {
|
|
37899
|
+
const content = getOptionContent(selectOpt);
|
|
37900
|
+
if (typeof content === 'string') {
|
|
37901
|
+
return content;
|
|
37902
|
+
}
|
|
37903
|
+
/**
|
|
37904
|
+
* Elements were found in the default slot, extract and concatenate
|
|
37905
|
+
* their text content while trimming whitespace.
|
|
37906
|
+
*/
|
|
37907
|
+
if (content) {
|
|
37908
|
+
const texts = Array.from(content.childNodes)
|
|
37909
|
+
.map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); })
|
|
37910
|
+
.filter((t) => t);
|
|
37911
|
+
return texts.join(' ') || null;
|
|
37912
|
+
}
|
|
37913
|
+
// Empty option
|
|
37914
|
+
return null;
|
|
37915
|
+
}
|
|
37916
|
+
return getDefaultSlotPlainText(selectOpt);
|
|
37917
|
+
};
|
|
37918
|
+
/**
|
|
37919
|
+
* Trims whitespace from all text nodes within a DOM tree.
|
|
37920
|
+
* This prevents invisible layout shifts and unwanted gaps between
|
|
37921
|
+
* elements when HTML content is injected via innerHTML or cloneNode,
|
|
37922
|
+
* as browsers preserve whitespace (tabs, newlines, spaces) from
|
|
37923
|
+
* the original source markup.
|
|
37924
|
+
*
|
|
37925
|
+
* @param node The root node to start trimming text nodes from.
|
|
37926
|
+
*/
|
|
37927
|
+
const trimTextNodes = (node) => {
|
|
37928
|
+
node.childNodes.forEach((child) => {
|
|
37929
|
+
var _a;
|
|
37930
|
+
if (child.nodeType === Node.TEXT_NODE) {
|
|
37931
|
+
child.textContent = ((_a = child.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
|
|
37932
|
+
}
|
|
37933
|
+
else if (child.nodeType === Node.ELEMENT_NODE) {
|
|
37934
|
+
trimTextNodes(child);
|
|
37935
|
+
}
|
|
37936
|
+
});
|
|
37937
|
+
};
|
|
37938
|
+
/**
|
|
37939
|
+
* Extracts and clones content from an `ion-select-option` element
|
|
37940
|
+
* for rendering within overlay interfaces or the select text when `customHTMLEnabled` is `true`.
|
|
37941
|
+
*
|
|
37942
|
+
* @param option - The `ion-select-option` element to extract content from.
|
|
37943
|
+
* @param slotName - Optional slot name to extract. If omitted, extracts the default slot content.
|
|
37944
|
+
* @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.
|
|
37945
|
+
* @returns When `useHTML` is `true`, a sanitized HTML string. When `false`, a
|
|
37946
|
+
* div element containing cloned child nodes. Returns `null` if no matching
|
|
37947
|
+
* content is found.
|
|
37948
|
+
*/
|
|
37949
|
+
const getOptionContent = (option, slotName, useHTML = false) => {
|
|
37950
|
+
let nodes;
|
|
37951
|
+
if (slotName) {
|
|
37952
|
+
// Named slot: get elements with matching slot attribute
|
|
37953
|
+
nodes = Array.from(option.children).filter((el) => el.getAttribute('slot') === slotName);
|
|
37954
|
+
}
|
|
37955
|
+
else {
|
|
37956
|
+
// Default slot: get nodes without a slot attribute
|
|
37957
|
+
const defaultSlot = getOptionDefaultSlot(option) || [];
|
|
37958
|
+
nodes = defaultSlot.filter((node) => {
|
|
37959
|
+
var _a;
|
|
37960
|
+
/**
|
|
37961
|
+
* Exclude whitespace-only text nodes (newline noise between
|
|
37962
|
+
* markup elements). Element nodes are always kept, even when
|
|
37963
|
+
* their textContent is empty (e.g. <svg>, <img>).
|
|
37964
|
+
*/
|
|
37965
|
+
if (node.nodeType === Node.TEXT_NODE) {
|
|
37966
|
+
return ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim().length) !== 0;
|
|
37967
|
+
}
|
|
37968
|
+
return true;
|
|
37969
|
+
});
|
|
37970
|
+
}
|
|
37971
|
+
if (nodes.length === 0) {
|
|
37972
|
+
return null;
|
|
37973
|
+
}
|
|
37974
|
+
// Return plain text if no elements are found
|
|
37975
|
+
if (!slotName && nodes.every((n) => n.nodeType === Node.TEXT_NODE)) {
|
|
37976
|
+
return nodes.map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); }).join(' ') || null;
|
|
37977
|
+
}
|
|
37978
|
+
/**
|
|
37979
|
+
* Mirror known custom-element properties (e.g. ion-icon's `icon`)
|
|
37980
|
+
* onto attributes before cloning. Frameworks like Vue set these as
|
|
37981
|
+
* DOM properties, which `cloneNode` doesn't copy, so without this
|
|
37982
|
+
* step the cloned overlay copy renders without the prop's value.
|
|
37983
|
+
*/
|
|
37984
|
+
nodes.forEach((n) => {
|
|
37985
|
+
if (n.nodeType === Node.ELEMENT_NODE) {
|
|
37986
|
+
reflectPropertiesToAttributes(n);
|
|
37987
|
+
}
|
|
37988
|
+
});
|
|
37989
|
+
// Clone each node into a temporary container
|
|
37990
|
+
const container = document.createElement('div');
|
|
37991
|
+
nodes.forEach((n) => {
|
|
37992
|
+
var _a;
|
|
37993
|
+
const clone = n.cloneNode(true);
|
|
37994
|
+
if (clone.nodeType === Node.TEXT_NODE) {
|
|
37995
|
+
clone.textContent = ((_a = clone.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
|
|
37996
|
+
}
|
|
37997
|
+
else {
|
|
37998
|
+
trimTextNodes(clone);
|
|
37999
|
+
}
|
|
38000
|
+
container.appendChild(clone);
|
|
38001
|
+
});
|
|
38002
|
+
/**
|
|
38003
|
+
* Sanitize the cloned DOM in place. Trusted attributes (size, color,
|
|
38004
|
+
* shape, etc.) are preserved; event handlers, javascript: URLs, and
|
|
38005
|
+
* blocked tags are stripped.
|
|
38006
|
+
*/
|
|
38007
|
+
sanitizeDOMTree(container);
|
|
38008
|
+
if (useHTML) {
|
|
38009
|
+
return container.innerHTML.trim() || null;
|
|
38010
|
+
}
|
|
38011
|
+
return container;
|
|
38012
|
+
};
|
|
38013
|
+
/**
|
|
38014
|
+
* Returns the child nodes that belong to the default slot of an
|
|
38015
|
+
* option element, excluding any nodes that are assigned to named
|
|
38016
|
+
* slots.
|
|
38017
|
+
*
|
|
38018
|
+
* @param option - The `ion-select-option` element to extract default-slot nodes from.
|
|
38019
|
+
* @returns An array of default slot nodes, or `null` if none are found.
|
|
38020
|
+
*/
|
|
38021
|
+
const getOptionDefaultSlot = (option) => {
|
|
38022
|
+
const defaultSlotNodes = Array.from(option.childNodes).filter((node) => {
|
|
38023
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
38024
|
+
return !node.hasAttribute('slot');
|
|
38025
|
+
}
|
|
38026
|
+
return node.nodeType === Node.TEXT_NODE;
|
|
38027
|
+
});
|
|
38028
|
+
if (defaultSlotNodes.length === 0) {
|
|
38029
|
+
return null;
|
|
38030
|
+
}
|
|
38031
|
+
return defaultSlotNodes;
|
|
38032
|
+
};
|
|
38033
|
+
/**
|
|
38034
|
+
* Extracts plain text from only the default slot of an option,
|
|
38035
|
+
* excluding content assigned to named slots (start/end).
|
|
38036
|
+
*/
|
|
38037
|
+
const getDefaultSlotPlainText = (option) => {
|
|
38038
|
+
const texts = Array.from(option.childNodes)
|
|
38039
|
+
.filter((node) => {
|
|
38040
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
38041
|
+
return !node.hasAttribute('slot');
|
|
38042
|
+
}
|
|
38043
|
+
return node.nodeType === Node.TEXT_NODE;
|
|
38044
|
+
})
|
|
38045
|
+
.filter((node) => node.nodeType === Node.TEXT_NODE)
|
|
38046
|
+
.map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); })
|
|
38047
|
+
.filter((t) => t);
|
|
38048
|
+
return texts.join(' ');
|
|
38049
|
+
};
|
|
38050
|
+
/**
|
|
38051
|
+
* Extracts the rich content from an `ion-select-option`.
|
|
38052
|
+
* When `customHTMLEnabled` is `false`, only the plain text from the
|
|
38053
|
+
* default slot is read and the start and end slots are skipped.
|
|
38054
|
+
*
|
|
38055
|
+
* @param option - The `ion-select-option` element to extract content from.
|
|
38056
|
+
* @param customHTMLEnabled - Whether custom HTML rendering is enabled
|
|
38057
|
+
* via the `innerHTMLTemplatesEnabled` config.
|
|
38058
|
+
*/
|
|
38059
|
+
const extractOptionContent = (option, customHTMLEnabled) => {
|
|
38060
|
+
var _a, _b;
|
|
38061
|
+
if (!customHTMLEnabled) {
|
|
38062
|
+
return {
|
|
38063
|
+
content: getDefaultSlotPlainText(option),
|
|
38064
|
+
startContent: undefined,
|
|
38065
|
+
endContent: undefined,
|
|
38066
|
+
};
|
|
38067
|
+
}
|
|
38068
|
+
return {
|
|
38069
|
+
content: getOptionContent(option),
|
|
38070
|
+
startContent: (_a = getOptionContent(option, 'start')) !== null && _a !== void 0 ? _a : undefined,
|
|
38071
|
+
endContent: (_b = getOptionContent(option, 'end')) !== null && _b !== void 0 ? _b : undefined,
|
|
38072
|
+
};
|
|
38064
38073
|
};
|
|
38065
38074
|
let selectIds = 0;
|
|
38066
38075
|
const OPTION_CLASS = 'select-interface-option';
|
|
38067
38076
|
|
|
38068
|
-
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)}`;
|
|
38077
|
+
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)}`;
|
|
38069
38078
|
|
|
38070
|
-
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)}`;
|
|
38079
|
+
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)}`;
|
|
38071
38080
|
|
|
38072
|
-
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)}`;
|
|
38081
|
+
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)}`;
|
|
38073
38082
|
|
|
38074
38083
|
class SelectModal {
|
|
38075
38084
|
constructor(hostRef) {
|
|
@@ -38123,39 +38132,90 @@ class SelectModal {
|
|
|
38123
38132
|
}
|
|
38124
38133
|
}
|
|
38125
38134
|
renderRadioOptions() {
|
|
38135
|
+
const mode = getIonMode$1(this);
|
|
38126
38136
|
const checked = this.options.filter((o) => o.checked).map((o) => o.value)[0];
|
|
38127
|
-
return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, this.options.map((option) =>
|
|
38137
|
+
return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, this.options.map((option, index) => {
|
|
38138
|
+
var _a, _b;
|
|
38139
|
+
/**
|
|
38140
|
+
* Cast to `SelectOverlayOption` to access rich content
|
|
38141
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
38142
|
+
* that are passed through from `ion-select` but not
|
|
38143
|
+
* part of the public `SelectModalOption` interface.
|
|
38144
|
+
*/
|
|
38145
|
+
const richOption = option;
|
|
38146
|
+
const hasRichContent = !!richOption.startContent || !!richOption.endContent || !!richOption.description;
|
|
38147
|
+
const optionLabelOptions = {
|
|
38148
|
+
id: `modal-option-${index}`,
|
|
38149
|
+
label: richOption.text,
|
|
38150
|
+
startContent: richOption.startContent,
|
|
38151
|
+
endContent: richOption.endContent,
|
|
38152
|
+
description: richOption.description,
|
|
38153
|
+
};
|
|
38154
|
+
const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'radio', 'modal');
|
|
38155
|
+
const defaultJustify = getOverlayLabelJustify(mode, 'radio', 'modal');
|
|
38156
|
+
return (hAsync("ion-item", { lines: "none",
|
|
38128
38157
|
// TODO FW-4784
|
|
38129
|
-
|
|
38130
|
-
|
|
38131
|
-
|
|
38132
|
-
|
|
38133
|
-
|
|
38134
|
-
|
|
38135
|
-
|
|
38136
|
-
|
|
38137
|
-
|
|
38138
|
-
}
|
|
38139
|
-
|
|
38140
|
-
|
|
38141
|
-
this.pendingEnterTarget = null;
|
|
38142
|
-
if (shouldClose) {
|
|
38158
|
+
disabled: option.disabled, class: Object.assign({
|
|
38159
|
+
// TODO FW-4784
|
|
38160
|
+
'item-radio-checked': option.value === checked
|
|
38161
|
+
}, getClassMap(option.cssClass)) }, hAsync("ion-radio", { class: {
|
|
38162
|
+
'select-option-has-rich-content': hasRichContent,
|
|
38163
|
+
}, 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) => {
|
|
38164
|
+
if (ev.key === 'Enter' && !ev.repeat) {
|
|
38165
|
+
this.pendingEnterTarget = ev.currentTarget;
|
|
38166
|
+
}
|
|
38167
|
+
}, onKeyUp: (ev) => {
|
|
38168
|
+
if (ev.key === ' ') {
|
|
38169
|
+
// Space selects and dismisses in one press.
|
|
38143
38170
|
this.closeModal();
|
|
38144
38171
|
}
|
|
38145
|
-
|
|
38146
|
-
|
|
38172
|
+
else if (ev.key === 'Enter') {
|
|
38173
|
+
const shouldClose = this.pendingEnterTarget === ev.currentTarget;
|
|
38174
|
+
this.pendingEnterTarget = null;
|
|
38175
|
+
if (shouldClose) {
|
|
38176
|
+
this.closeModal();
|
|
38177
|
+
}
|
|
38178
|
+
}
|
|
38179
|
+
} }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
|
|
38180
|
+
})));
|
|
38147
38181
|
}
|
|
38148
38182
|
renderCheckboxOptions() {
|
|
38149
|
-
|
|
38183
|
+
const mode = getIonMode$1(this);
|
|
38184
|
+
return this.options.map((option, index) => {
|
|
38185
|
+
var _a, _b;
|
|
38186
|
+
/**
|
|
38187
|
+
* Cast to `SelectOverlayOption` to access rich content
|
|
38188
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
38189
|
+
* that are passed through from `ion-select` but not
|
|
38190
|
+
* part of the public `SelectModalOption` interface.
|
|
38191
|
+
*/
|
|
38192
|
+
const richOption = option;
|
|
38193
|
+
const hasRichContent = !!richOption.startContent || !!richOption.endContent || !!richOption.description;
|
|
38194
|
+
const optionLabelOptions = {
|
|
38195
|
+
id: `modal-option-${index}`,
|
|
38196
|
+
label: richOption.text,
|
|
38197
|
+
startContent: richOption.startContent,
|
|
38198
|
+
endContent: richOption.endContent,
|
|
38199
|
+
description: richOption.description,
|
|
38200
|
+
};
|
|
38201
|
+
const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'checkbox', 'modal');
|
|
38202
|
+
const defaultJustify = getOverlayLabelJustify(mode, 'checkbox', 'modal');
|
|
38203
|
+
return (hAsync("ion-item", {
|
|
38150
38204
|
// TODO FW-4784
|
|
38151
|
-
|
|
38152
|
-
|
|
38153
|
-
|
|
38154
|
-
|
|
38155
|
-
}
|
|
38205
|
+
disabled: option.disabled, class: Object.assign({
|
|
38206
|
+
// TODO FW-4784
|
|
38207
|
+
'item-checkbox-checked': option.checked
|
|
38208
|
+
}, getClassMap(option.cssClass))
|
|
38209
|
+
}, hAsync("ion-checkbox", { class: {
|
|
38210
|
+
'select-option-has-rich-content': hasRichContent,
|
|
38211
|
+
}, 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) => {
|
|
38212
|
+
this.setChecked(ev);
|
|
38213
|
+
this.callOptionHandler(ev);
|
|
38214
|
+
} }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
|
|
38215
|
+
});
|
|
38156
38216
|
}
|
|
38157
38217
|
render() {
|
|
38158
|
-
return (hAsync(Host, { key: '
|
|
38218
|
+
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()))));
|
|
38159
38219
|
}
|
|
38160
38220
|
get el() { return getElement(this); }
|
|
38161
38221
|
static get style() { return {
|
|
@@ -38180,17 +38240,24 @@ class SelectModal {
|
|
|
38180
38240
|
|
|
38181
38241
|
const selectOptionCss = () => `:host{display:none}`;
|
|
38182
38242
|
|
|
38243
|
+
/**
|
|
38244
|
+
* @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
|
|
38245
|
+
*
|
|
38246
|
+
* @slot - Content is placed between the named slots if provided without a slot.
|
|
38247
|
+
* @slot start - Content is placed to the left of the select option text in LTR, and to the right in RTL.
|
|
38248
|
+
* @slot end - Content is placed to the right of the select option text in LTR, and to the left in RTL.
|
|
38249
|
+
*/
|
|
38183
38250
|
class SelectOption {
|
|
38184
38251
|
constructor(hostRef) {
|
|
38185
38252
|
registerInstance(this, hostRef);
|
|
38186
38253
|
this.inputId = `ion-selopt-${selectOptionIds++}`;
|
|
38187
38254
|
/**
|
|
38188
|
-
* If `true`, the user cannot interact with the select option.
|
|
38255
|
+
* If `true`, the user cannot interact with the select option.
|
|
38189
38256
|
*/
|
|
38190
38257
|
this.disabled = false;
|
|
38191
38258
|
}
|
|
38192
38259
|
render() {
|
|
38193
|
-
return hAsync(Host, { key: '
|
|
38260
|
+
return hAsync(Host, { key: '8b8bef0f5a55f18048708c34d3ea3ff0ff2f1d47', role: "option", id: this.inputId, class: getIonMode$1(this) });
|
|
38194
38261
|
}
|
|
38195
38262
|
get el() { return getElement(this); }
|
|
38196
38263
|
static get style() { return selectOptionCss(); }
|
|
@@ -38199,7 +38266,10 @@ class SelectOption {
|
|
|
38199
38266
|
"$tagName$": "ion-select-option",
|
|
38200
38267
|
"$members$": {
|
|
38201
38268
|
"disabled": [4],
|
|
38202
|
-
"value": [8]
|
|
38269
|
+
"value": [8],
|
|
38270
|
+
"description": [1],
|
|
38271
|
+
"labelPlacement": [1, "label-placement"],
|
|
38272
|
+
"justify": [1]
|
|
38203
38273
|
},
|
|
38204
38274
|
"$listeners$": undefined,
|
|
38205
38275
|
"$lazyBundleId$": "-",
|
|
@@ -38208,9 +38278,9 @@ class SelectOption {
|
|
|
38208
38278
|
}
|
|
38209
38279
|
let selectOptionIds = 0;
|
|
38210
38280
|
|
|
38211
|
-
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}`;
|
|
38281
|
+
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}`;
|
|
38212
38282
|
|
|
38213
|
-
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)}`;
|
|
38283
|
+
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)}`;
|
|
38214
38284
|
|
|
38215
38285
|
/**
|
|
38216
38286
|
* @internal
|
|
@@ -38284,41 +38354,91 @@ class SelectPopover {
|
|
|
38284
38354
|
}
|
|
38285
38355
|
}
|
|
38286
38356
|
renderCheckboxOptions(options) {
|
|
38287
|
-
|
|
38357
|
+
const mode = getIonMode$1(this);
|
|
38358
|
+
return options.map((option, index) => {
|
|
38359
|
+
var _a, _b;
|
|
38360
|
+
/**
|
|
38361
|
+
* Cast to `SelectOverlayOption` to access rich content
|
|
38362
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
38363
|
+
* that are passed through from `ion-select` but not
|
|
38364
|
+
* part of the public `SelectPopoverOption` interface.
|
|
38365
|
+
*/
|
|
38366
|
+
const richOption = option;
|
|
38367
|
+
const hasRichContent = !!richOption.startContent || !!richOption.endContent || !!richOption.description;
|
|
38368
|
+
const optionLabelOptions = {
|
|
38369
|
+
id: `popover-option-${index}`,
|
|
38370
|
+
label: richOption.text,
|
|
38371
|
+
startContent: richOption.startContent,
|
|
38372
|
+
endContent: richOption.endContent,
|
|
38373
|
+
description: richOption.description,
|
|
38374
|
+
};
|
|
38375
|
+
const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'checkbox');
|
|
38376
|
+
const defaultJustify = getOverlayLabelJustify(mode, 'checkbox');
|
|
38377
|
+
return (hAsync("ion-item", {
|
|
38288
38378
|
// TODO FW-4784
|
|
38289
|
-
|
|
38290
|
-
|
|
38291
|
-
|
|
38292
|
-
|
|
38293
|
-
}
|
|
38379
|
+
disabled: option.disabled, class: Object.assign({
|
|
38380
|
+
// TODO FW-4784
|
|
38381
|
+
'item-checkbox-checked': option.checked
|
|
38382
|
+
}, getClassMap(option.cssClass))
|
|
38383
|
+
}, hAsync("ion-checkbox", { class: {
|
|
38384
|
+
'select-option-has-rich-content': hasRichContent,
|
|
38385
|
+
}, 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) => {
|
|
38386
|
+
this.setChecked(ev);
|
|
38387
|
+
this.callOptionHandler(ev);
|
|
38388
|
+
} }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
|
|
38389
|
+
});
|
|
38294
38390
|
}
|
|
38295
38391
|
renderRadioOptions(options) {
|
|
38392
|
+
const mode = getIonMode$1(this);
|
|
38296
38393
|
const checked = options.filter((o) => o.checked).map((o) => o.value)[0];
|
|
38297
|
-
return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, options.map((option) =>
|
|
38394
|
+
return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, options.map((option, index) => {
|
|
38395
|
+
var _a, _b;
|
|
38396
|
+
/**
|
|
38397
|
+
* Cast to `SelectOverlayOption` to access rich content
|
|
38398
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
38399
|
+
* that are passed through from `ion-select` but not
|
|
38400
|
+
* part of the public `SelectPopoverOption` interface.
|
|
38401
|
+
*/
|
|
38402
|
+
const richOption = option;
|
|
38403
|
+
const hasRichContent = !!richOption.startContent || !!richOption.endContent || !!richOption.description;
|
|
38404
|
+
const optionLabelOptions = {
|
|
38405
|
+
id: `popover-option-${index}`,
|
|
38406
|
+
label: richOption.text,
|
|
38407
|
+
startContent: richOption.startContent,
|
|
38408
|
+
endContent: richOption.endContent,
|
|
38409
|
+
description: richOption.description,
|
|
38410
|
+
};
|
|
38411
|
+
return (hAsync("ion-item", {
|
|
38298
38412
|
// TODO FW-4784
|
|
38299
|
-
|
|
38300
|
-
|
|
38301
|
-
|
|
38302
|
-
|
|
38303
|
-
|
|
38304
|
-
|
|
38305
|
-
|
|
38306
|
-
|
|
38307
|
-
|
|
38308
|
-
|
|
38309
|
-
|
|
38310
|
-
|
|
38311
|
-
|
|
38312
|
-
if (shouldDismiss) {
|
|
38413
|
+
disabled: option.disabled, class: Object.assign({
|
|
38414
|
+
// TODO FW-4784
|
|
38415
|
+
'item-radio-checked': option.value === checked
|
|
38416
|
+
}, getClassMap(option.cssClass))
|
|
38417
|
+
}, hAsync("ion-radio", { class: {
|
|
38418
|
+
'select-option-has-rich-content': hasRichContent,
|
|
38419
|
+
}, 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) => {
|
|
38420
|
+
if (ev.key === 'Enter' && !ev.repeat) {
|
|
38421
|
+
this.pendingEnterTarget = ev.currentTarget;
|
|
38422
|
+
}
|
|
38423
|
+
}, onKeyUp: (ev) => {
|
|
38424
|
+
if (ev.key === ' ') {
|
|
38425
|
+
// Space selects and dismisses in one press.
|
|
38313
38426
|
this.dismissParentPopover();
|
|
38314
38427
|
}
|
|
38315
|
-
|
|
38316
|
-
|
|
38428
|
+
else if (ev.key === 'Enter') {
|
|
38429
|
+
const shouldDismiss = this.pendingEnterTarget === ev.currentTarget;
|
|
38430
|
+
this.pendingEnterTarget = null;
|
|
38431
|
+
if (shouldDismiss) {
|
|
38432
|
+
this.dismissParentPopover();
|
|
38433
|
+
}
|
|
38434
|
+
}
|
|
38435
|
+
} }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
|
|
38436
|
+
})));
|
|
38317
38437
|
}
|
|
38318
38438
|
render() {
|
|
38319
38439
|
const { header, message, options, subHeader } = this;
|
|
38320
38440
|
const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
|
|
38321
|
-
return (hAsync(Host, { key: '
|
|
38441
|
+
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))));
|
|
38322
38442
|
}
|
|
38323
38443
|
get el() { return getElement(this); }
|
|
38324
38444
|
static get style() { return {
|
|
@@ -38368,11 +38488,11 @@ class SkeletonText {
|
|
|
38368
38488
|
const animated = this.animated && config.getBoolean('animated', true);
|
|
38369
38489
|
const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
|
|
38370
38490
|
const mode = getIonMode$1(this);
|
|
38371
|
-
return (hAsync(Host, { key: '
|
|
38491
|
+
return (hAsync(Host, { key: '887d958d982345ce610730ab5c9ae35010430f75', class: {
|
|
38372
38492
|
[mode]: true,
|
|
38373
38493
|
'skeleton-text-animated': animated,
|
|
38374
38494
|
'in-media': inMedia,
|
|
38375
|
-
} }, hAsync("span", { key: '
|
|
38495
|
+
} }, hAsync("span", { key: 'a184f4b9780a2aada0a16729109ac81436e9c9e1' }, "\u00A0")));
|
|
38376
38496
|
}
|
|
38377
38497
|
get el() { return getElement(this); }
|
|
38378
38498
|
static get style() { return skeletonTextCss(); }
|
|
@@ -38424,7 +38544,7 @@ class Spinner {
|
|
|
38424
38544
|
svgs.push(buildLine(spinner, duration, i, spinner.lines));
|
|
38425
38545
|
}
|
|
38426
38546
|
}
|
|
38427
|
-
return (hAsync(Host, { key: '
|
|
38547
|
+
return (hAsync(Host, { key: 'c35ebd01186e860acb9cac260193f0836424fdf4', class: createColorClasses$1(self.color, {
|
|
38428
38548
|
[mode]: true,
|
|
38429
38549
|
[`spinner-${spinnerName}`]: true,
|
|
38430
38550
|
'spinner-paused': self.paused || config.getBoolean('_testing'),
|
|
@@ -38523,12 +38643,12 @@ class SplitPane {
|
|
|
38523
38643
|
}
|
|
38524
38644
|
render() {
|
|
38525
38645
|
const mode = getIonMode$1(this);
|
|
38526
|
-
return (hAsync(Host, { key: '
|
|
38646
|
+
return (hAsync(Host, { key: '694e989fafcfe2453e0a83b3cb736efaa1eb4fec', class: {
|
|
38527
38647
|
[mode]: true,
|
|
38528
38648
|
// Used internally for styling
|
|
38529
38649
|
[`split-pane-${mode}`]: true,
|
|
38530
38650
|
'split-pane-visible': this.visible,
|
|
38531
|
-
} }, hAsync("slot", { key: '
|
|
38651
|
+
} }, hAsync("slot", { key: 'dde7e9382b62cc11971aa233cf98c2314ae4f720' })));
|
|
38532
38652
|
}
|
|
38533
38653
|
get el() { return getElement(this); }
|
|
38534
38654
|
static get watchers() { return {
|
|
@@ -38600,10 +38720,10 @@ class Tab {
|
|
|
38600
38720
|
}
|
|
38601
38721
|
render() {
|
|
38602
38722
|
const { tab, active, component } = this;
|
|
38603
|
-
return (hAsync(Host, { key: '
|
|
38723
|
+
return (hAsync(Host, { key: '745262368a7f45244da459f4fa1730a46dd3e257', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
|
|
38604
38724
|
'ion-page': component === undefined,
|
|
38605
38725
|
'tab-hidden': !active,
|
|
38606
|
-
} }, hAsync("slot", { key: '
|
|
38726
|
+
} }, hAsync("slot", { key: '823d09a6f93bf7c0dc74f2b8717d1d3a62df1ad8' })));
|
|
38607
38727
|
}
|
|
38608
38728
|
get el() { return getElement(this); }
|
|
38609
38729
|
static get watchers() { return {
|
|
@@ -38717,11 +38837,11 @@ class TabBar {
|
|
|
38717
38837
|
const { color, translucent, keyboardVisible } = this;
|
|
38718
38838
|
const mode = getIonMode$1(this);
|
|
38719
38839
|
const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
|
|
38720
|
-
return (hAsync(Host, { key: '
|
|
38840
|
+
return (hAsync(Host, { key: '148f65df0818e9d220a9b46db74cb89ab94e62d2', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
|
|
38721
38841
|
[mode]: true,
|
|
38722
38842
|
'tab-bar-translucent': translucent,
|
|
38723
38843
|
'tab-bar-hidden': shouldHide,
|
|
38724
|
-
}) }, hAsync("slot", { key: '
|
|
38844
|
+
}) }, hAsync("slot", { key: 'a64e235f3703662e2dd7a834f752cc5b1490adbc' })));
|
|
38725
38845
|
}
|
|
38726
38846
|
get el() { return getElement(this); }
|
|
38727
38847
|
static get watchers() { return {
|
|
@@ -38819,7 +38939,7 @@ class TabButton {
|
|
|
38819
38939
|
rel,
|
|
38820
38940
|
target,
|
|
38821
38941
|
};
|
|
38822
|
-
return (hAsync(Host, { key: '
|
|
38942
|
+
return (hAsync(Host, { key: '1034b5a928ecec49bd8efec3730ea1b11a579cf3', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
|
|
38823
38943
|
[mode]: true,
|
|
38824
38944
|
'tab-selected': selected,
|
|
38825
38945
|
'tab-disabled': disabled,
|
|
@@ -38831,7 +38951,7 @@ class TabButton {
|
|
|
38831
38951
|
'ion-activatable': true,
|
|
38832
38952
|
'ion-selectable': true,
|
|
38833
38953
|
'ion-focusable': true,
|
|
38834
|
-
} }, hAsync("a", Object.assign({ key: '
|
|
38954
|
+
} }, 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" }))));
|
|
38835
38955
|
}
|
|
38836
38956
|
get el() { return getElement(this); }
|
|
38837
38957
|
static get style() { return {
|
|
@@ -39022,7 +39142,7 @@ class Tabs {
|
|
|
39022
39142
|
return Array.from(this.el.querySelectorAll('ion-tab'));
|
|
39023
39143
|
}
|
|
39024
39144
|
render() {
|
|
39025
|
-
return (hAsync(Host, { key: '
|
|
39145
|
+
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" })));
|
|
39026
39146
|
}
|
|
39027
39147
|
get el() { return getElement(this); }
|
|
39028
39148
|
static get style() { return tabsCss(); }
|
|
@@ -39062,9 +39182,9 @@ class Text {
|
|
|
39062
39182
|
}
|
|
39063
39183
|
render() {
|
|
39064
39184
|
const mode = getIonMode$1(this);
|
|
39065
|
-
return (hAsync(Host, { key: '
|
|
39185
|
+
return (hAsync(Host, { key: '41ed8da617ed0e07bbfe96e32a000e1c6503e24e', class: createColorClasses$1(this.color, {
|
|
39066
39186
|
[mode]: true,
|
|
39067
|
-
}) }, hAsync("slot", { key: '
|
|
39187
|
+
}) }, hAsync("slot", { key: 'db8de04a2493537b3037f276b03abd92dfa56847' })));
|
|
39068
39188
|
}
|
|
39069
39189
|
static get style() { return textCss(); }
|
|
39070
39190
|
static get cmpMeta() { return {
|
|
@@ -39525,7 +39645,7 @@ class Textarea {
|
|
|
39525
39645
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
39526
39646
|
*/
|
|
39527
39647
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
|
|
39528
|
-
return (hAsync(Host, { key: '
|
|
39648
|
+
return (hAsync(Host, { key: 'eca1dfed53189408f614661ef3902cdb73d5f5de', class: createColorClasses$1(this.color, {
|
|
39529
39649
|
[mode]: true,
|
|
39530
39650
|
'has-value': hasValue,
|
|
39531
39651
|
'has-focus': hasFocus,
|
|
@@ -39534,7 +39654,7 @@ class Textarea {
|
|
|
39534
39654
|
[`textarea-shape-${shape}`]: shape !== undefined,
|
|
39535
39655
|
[`textarea-label-placement-${labelPlacement}`]: true,
|
|
39536
39656
|
'textarea-disabled': disabled,
|
|
39537
|
-
}) }, hAsync("label", { key: '
|
|
39657
|
+
}) }, 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()));
|
|
39538
39658
|
}
|
|
39539
39659
|
get el() { return getElement(this); }
|
|
39540
39660
|
static get watchers() { return {
|
|
@@ -39603,7 +39723,7 @@ class Thumbnail {
|
|
|
39603
39723
|
registerInstance(this, hostRef);
|
|
39604
39724
|
}
|
|
39605
39725
|
render() {
|
|
39606
|
-
return (hAsync(Host, { key: '
|
|
39726
|
+
return (hAsync(Host, { key: '833e947c683b482a78f8f0df8c9a68e99478bbaa', class: getIonMode$1(this) }, hAsync("slot", { key: '6d1e9e686db88d91379f14121058dbf035d8ded2' })));
|
|
39607
39727
|
}
|
|
39608
39728
|
static get style() { return thumbnailCss(); }
|
|
39609
39729
|
static get cmpMeta() { return {
|
|
@@ -40463,9 +40583,9 @@ class Toast {
|
|
|
40463
40583
|
if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
|
|
40464
40584
|
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);
|
|
40465
40585
|
}
|
|
40466
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
40586
|
+
return (hAsync(Host, Object.assign({ key: '2acb2cd2e12ea0082986495929e4a596d4da2f38', tabindex: "-1" }, this.htmlAttributes, { style: {
|
|
40467
40587
|
zIndex: `${60000 + this.overlayIndex}`,
|
|
40468
|
-
}, 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: '
|
|
40588
|
+
}, 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')))));
|
|
40469
40589
|
}
|
|
40470
40590
|
get el() { return getElement(this); }
|
|
40471
40591
|
static get watchers() { return {
|
|
@@ -40783,7 +40903,7 @@ class Toggle {
|
|
|
40783
40903
|
const value = this.getValue();
|
|
40784
40904
|
const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
|
|
40785
40905
|
renderHiddenInput(true, el, name, checked ? value : '', disabled);
|
|
40786
|
-
return (hAsync(Host, { key: '
|
|
40906
|
+
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, {
|
|
40787
40907
|
[mode]: true,
|
|
40788
40908
|
'in-item': hostContext('ion-item', el),
|
|
40789
40909
|
'toggle-activated': activated,
|
|
@@ -40793,10 +40913,10 @@ class Toggle {
|
|
|
40793
40913
|
[`toggle-alignment-${alignment}`]: alignment !== undefined,
|
|
40794
40914
|
[`toggle-label-placement-${labelPlacement}`]: true,
|
|
40795
40915
|
[`toggle-${rtl}`]: true,
|
|
40796
|
-
}) }, hAsync("label", { key: '
|
|
40916
|
+
}) }, 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: {
|
|
40797
40917
|
'label-text-wrapper': true,
|
|
40798
40918
|
'label-text-wrapper-hidden': !hasLabel,
|
|
40799
|
-
}, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: '
|
|
40919
|
+
}, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: 'c480b96a0ddd926568f73291d71253d6f74438c7' }), this.renderHintText()), hAsync("div", { key: '96a2cbd1673e051a78f8b2b16535ecd3f0ed4339', class: "native-wrapper" }, this.renderToggleControl()))));
|
|
40800
40920
|
}
|
|
40801
40921
|
get el() { return getElement(this); }
|
|
40802
40922
|
static get watchers() { return {
|
|
@@ -40908,10 +41028,10 @@ class Toolbar {
|
|
|
40908
41028
|
this.childrenStyles.forEach((value) => {
|
|
40909
41029
|
Object.assign(childStyles, value);
|
|
40910
41030
|
});
|
|
40911
|
-
return (hAsync(Host, { key: '
|
|
41031
|
+
return (hAsync(Host, { key: '40bad6fa7e94262438da4bbe037dcf8a5fa2df22', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
|
|
40912
41032
|
[mode]: true,
|
|
40913
41033
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
40914
|
-
})) }, hAsync("div", { key: '
|
|
41034
|
+
})) }, 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" }))));
|
|
40915
41035
|
}
|
|
40916
41036
|
get el() { return getElement(this); }
|
|
40917
41037
|
static get style() { return {
|
|
@@ -40957,11 +41077,11 @@ class ToolbarTitle {
|
|
|
40957
41077
|
render() {
|
|
40958
41078
|
const mode = getIonMode$1(this);
|
|
40959
41079
|
const size = this.getSize();
|
|
40960
|
-
return (hAsync(Host, { key: '
|
|
41080
|
+
return (hAsync(Host, { key: 'd9317e8e66cb6112717f5a9c252658777efbd873', class: createColorClasses$1(this.color, {
|
|
40961
41081
|
[mode]: true,
|
|
40962
41082
|
[`title-${size}`]: true,
|
|
40963
41083
|
'title-rtl': document.dir === 'rtl',
|
|
40964
|
-
}) }, hAsync("div", { key: '
|
|
41084
|
+
}) }, hAsync("div", { key: 'a4d011d6d409bf006d8efe33667002edb109820a', class: "toolbar-title" }, hAsync("slot", { key: '4ca3303b957a0e5387f1e9058e5adb4c6275afcc' }))));
|
|
40965
41085
|
}
|
|
40966
41086
|
get el() { return getElement(this); }
|
|
40967
41087
|
static get watchers() { return {
|
|
@@ -41041,10 +41161,8 @@ registerComponents([
|
|
|
41041
41161
|
Nav,
|
|
41042
41162
|
NavLink,
|
|
41043
41163
|
Note,
|
|
41044
|
-
Picker$1,
|
|
41045
41164
|
Picker,
|
|
41046
41165
|
PickerColumn,
|
|
41047
|
-
PickerColumnCmp,
|
|
41048
41166
|
PickerColumnOption,
|
|
41049
41167
|
Popover,
|
|
41050
41168
|
ProgressBar,
|