@ionic/core 8.8.14-dev.11784216165.1ecbf364 → 8.8.14-dev.11784238294.131cd99d
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-picker-legacy-column.d.ts +11 -0
- package/components/ion-picker-legacy-column.js +4 -0
- package/components/ion-picker-legacy.d.ts +11 -0
- package/components/ion-picker-legacy.js +4 -0
- 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-DpV-p5Xs.js → p-5bE_Wz4Y.js} +1 -1
- package/components/{p-r0aq7dpt.js → p-B60hm8Qv.js} +1 -1
- package/components/{p-Buf_7zcy.js → p-BHrrc-3d.js} +1 -1
- package/components/p-BIPPbW0M.js +4 -0
- package/components/{p-XJWMAP8m.js → p-BLmJ0zRm.js} +1 -1
- package/components/{p-DhkITZ-y.js → p-BSEgsdFI.js} +1 -1
- package/components/p-BUYFy35a.js +4 -0
- package/components/p-BWEZufiK.js +4 -0
- package/components/p-BqpciLfi.js +4 -0
- package/components/p-BsQPAqo9.js +4 -0
- package/components/p-CRNiQiYf.js +4 -0
- package/components/p-CU5rbWAW.js +4 -0
- package/components/{p-Dz74mwlk.js → p-Cfx4M1Bn.js} +1 -1
- package/components/p-k_E4tX5Z.js +4 -0
- package/components/p-nyXeHk23.js +4 -0
- package/components/{p-wk2QqrAo.js → p-rCa2eL0j.js} +1 -1
- package/dist/cjs/config-xninhj0J.js +201 -0
- package/dist/cjs/index.cjs.js +6 -6
- package/dist/cjs/ion-action-sheet.cjs.entry.js +7 -27
- package/dist/cjs/ion-alert.cjs.entry.js +25 -64
- package/dist/cjs/ion-app_8.cjs.entry.js +9 -23
- 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.cjs.entry.js → ion-datetime_3.cjs.entry.js} +639 -1
- package/dist/cjs/ion-img.cjs.entry.js +1 -3
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -3
- 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 +5 -10
- package/dist/cjs/ion-menu_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-modal.cjs.entry.js +32 -23
- package/dist/cjs/ion-nav_2.cjs.entry.js +115 -2
- package/dist/cjs/ion-popover.cjs.entry.js +5 -9
- 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 +5 -6
- 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 +4 -18
- 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 +30 -84
- package/dist/cjs/ion-select_3.cjs.entry.js +49 -407
- 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 +5 -6
- 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/{overlays-DSmSrd_4.js → overlays-DdtIYQUH.js} +31 -27
- package/dist/collection/collection-manifest.json +10 -6
- package/dist/collection/components/action-sheet/action-sheet.ios.css +2 -229
- package/dist/collection/components/action-sheet/action-sheet.js +5 -24
- package/dist/collection/components/action-sheet/action-sheet.md.css +2 -175
- package/dist/collection/components/alert/alert.ios.css +10 -280
- package/dist/collection/components/alert/alert.js +21 -59
- package/dist/collection/components/alert/alert.md.css +20 -269
- package/dist/collection/components/img/img.js +1 -6
- package/dist/collection/components/input/input.js +8 -8
- package/dist/collection/components/loading/loading.js +3 -7
- package/dist/collection/components/modal/gestures/sheet.js +7 -0
- package/dist/collection/components/modal/gestures/swipe-to-close.js +7 -0
- package/dist/collection/components/modal/modal.ios.css +8 -0
- package/dist/collection/components/modal/modal.js +18 -23
- package/dist/collection/components/modal/modal.md.css +8 -0
- package/dist/collection/components/nav/nav.js +219 -4
- package/dist/collection/components/picker-legacy/animations/ios.enter.js +27 -0
- package/dist/collection/components/picker-legacy/animations/ios.leave.js +23 -0
- package/dist/collection/components/picker-legacy/picker-interface.js +1 -0
- package/dist/collection/components/picker-legacy/picker.ios.css +300 -0
- package/dist/collection/components/picker-legacy/picker.js +890 -0
- package/dist/collection/components/picker-legacy/picker.md.css +287 -0
- package/dist/collection/components/picker-legacy-column/picker-column.ios.css +231 -0
- package/dist/collection/components/picker-legacy-column/picker-column.js +422 -0
- package/dist/collection/components/picker-legacy-column/picker-column.md.css +222 -0
- package/dist/collection/components/picker-legacy-column/test/test.utils.js +43 -0
- package/dist/collection/components/popover/popover.ios.css +0 -15
- package/dist/collection/components/popover/popover.js +3 -7
- package/dist/collection/components/popover/popover.md.css +0 -15
- 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 +3 -22
- package/dist/collection/components/router-link/router-link.js +2 -2
- package/dist/collection/components/router-outlet/router-outlet.js +5 -38
- 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 +0 -33
- package/dist/collection/components/select/select.js +16 -323
- package/dist/collection/components/select/select.md.css +0 -33
- package/dist/collection/components/select-modal/select-modal.ios.css +0 -219
- package/dist/collection/components/select-modal/select-modal.js +26 -79
- package/dist/collection/components/select-modal/select-modal.md.css +0 -165
- package/dist/collection/components/select-option/select-option.js +3 -67
- package/dist/collection/components/select-popover/select-popover.ios.css +0 -219
- package/dist/collection/components/select-popover/select-popover.js +26 -78
- package/dist/collection/components/select-popover/select-popover.md.css +0 -165
- 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/overlays.js +30 -26
- package/dist/collection/utils/sanitization/index.js +18 -274
- package/dist/collection/utils/test/playwright/drag-element.js +5 -0
- package/dist/docs.json +1189 -497
- package/dist/esm/config-DQCONYYp.js +195 -0
- package/dist/esm/{index-AlrZKoWR.js → index-DV3sJJW8.js} +1 -1
- package/dist/esm/index.js +2 -3
- package/dist/esm/ion-accordion_2.entry.js +1 -1
- package/dist/esm/ion-action-sheet.entry.js +7 -27
- package/dist/esm/ion-alert.entry.js +24 -63
- package/dist/esm/ion-app_8.entry.js +9 -23
- 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.entry.js → ion-datetime_3.entry.js} +641 -5
- package/dist/esm/ion-fab_3.entry.js +1 -1
- package/dist/esm/ion-img.entry.js +2 -4
- package/dist/esm/ion-infinite-scroll_2.entry.js +1 -2
- 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 +4 -9
- package/dist/esm/ion-menu_3.entry.js +2 -2
- package/dist/esm/ion-modal.entry.js +32 -23
- package/dist/esm/ion-nav_2.entry.js +116 -3
- package/dist/esm/ion-popover.entry.js +5 -9
- 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 +4 -5
- 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 +4 -18
- 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 +30 -84
- package/dist/esm/ion-select_3.entry.js +52 -410
- 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 +4 -5
- 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/{overlays-DLNOHWNc.js → overlays-Dg0q2_tJ.js} +32 -28
- package/dist/html.html-data.json +80 -52
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-01f81ea5.entry.js +4 -0
- package/dist/ionic/p-0dc33652.entry.js +4 -0
- package/dist/ionic/{p-fe4aa1db.entry.js → p-0fa9c382.entry.js} +1 -1
- package/dist/ionic/p-20b1a044.entry.js +4 -0
- package/dist/ionic/p-21eb76d5.entry.js +4 -0
- package/dist/ionic/p-27d30585.entry.js +4 -0
- package/dist/ionic/p-2a05aa64.entry.js +4 -0
- package/dist/ionic/p-2bb2cb18.entry.js +4 -0
- package/dist/ionic/{p-80b44b3c.entry.js → p-3353c229.entry.js} +1 -1
- package/dist/ionic/{p-c93553d2.entry.js → p-34586ead.entry.js} +1 -1
- package/dist/ionic/{p-a7628bc7.entry.js → p-37e720da.entry.js} +1 -1
- package/dist/ionic/{p-9177f4ac.entry.js → p-390ca786.entry.js} +1 -1
- package/dist/ionic/{p-259d0d98.entry.js → p-3a126bca.entry.js} +1 -1
- package/dist/ionic/{p-4502a274.entry.js → p-3a7d1e91.entry.js} +1 -1
- package/dist/ionic/{p-627fabd9.entry.js → p-3ae5f277.entry.js} +1 -1
- package/dist/ionic/{p-a5213260.entry.js → p-4858af1f.entry.js} +1 -1
- package/dist/ionic/p-485fda23.entry.js +4 -0
- package/dist/ionic/p-4baa5b82.entry.js +4 -0
- package/dist/ionic/p-5018dfc8.entry.js +4 -0
- package/dist/ionic/p-50e1194a.entry.js +4 -0
- package/dist/ionic/{p-76e92a84.entry.js → p-5d1da0a2.entry.js} +1 -1
- package/dist/ionic/p-5eb8e86d.entry.js +4 -0
- package/dist/ionic/p-65ebdf1b.entry.js +4 -0
- package/dist/ionic/p-6ebdbebe.entry.js +4 -0
- package/dist/ionic/{p-d2c7f046.entry.js → p-75dc25ba.entry.js} +1 -1
- package/dist/ionic/{p-b9ac1fe0.entry.js → p-84d5ce05.entry.js} +1 -1
- package/dist/ionic/{p-51cd1643.entry.js → p-874b4bd8.entry.js} +1 -1
- package/dist/ionic/{p-ef93ca92.entry.js → p-8eb8ee76.entry.js} +1 -1
- package/dist/ionic/p-8fce95d5.entry.js +4 -0
- package/dist/ionic/{p-db1b6738.entry.js → p-9a65ac7f.entry.js} +1 -1
- package/dist/ionic/{p-7a37b3ce.entry.js → p-9f1103ce.entry.js} +1 -1
- package/dist/ionic/p-9f9db3a2.entry.js +4 -0
- package/dist/ionic/p-D-3ycHmd.js +4 -0
- package/dist/ionic/{p-AlrZKoWR.js → p-DV3sJJW8.js} +1 -1
- package/dist/ionic/p-DzWaWHGc.js +4 -0
- package/dist/ionic/p-a21add2f.entry.js +4 -0
- package/dist/ionic/{p-d8387b99.entry.js → p-c4d8641b.entry.js} +1 -1
- package/dist/ionic/p-ca2ab74d.entry.js +4 -0
- package/dist/ionic/{p-629e4703.entry.js → p-e0be05c5.entry.js} +1 -1
- package/dist/ionic/p-e6a4bb56.entry.js +4 -0
- package/dist/ionic/p-ec090e0a.entry.js +4 -0
- package/dist/ionic/{p-b1599fca.entry.js → p-ef4c3bee.entry.js} +1 -1
- package/dist/ionic/p-f386f6ae.entry.js +4 -0
- package/dist/ionic/{p-341032b3.entry.js → p-fabcce6c.entry.js} +1 -1
- package/dist/types/components/img/img.d.ts +0 -2
- package/dist/types/components/input/input.d.ts +1 -1
- package/dist/types/components/modal/modal.d.ts +4 -11
- package/dist/types/components/nav/nav-interface.d.ts +1 -0
- package/dist/types/components/nav/nav.d.ts +22 -2
- package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +5 -0
- package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +5 -0
- package/dist/types/components/picker-legacy/picker-interface.d.ts +52 -0
- package/dist/types/components/picker-legacy/picker.d.ts +158 -0
- package/dist/types/components/picker-legacy-column/picker-column.d.ts +46 -0
- package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +9 -0
- package/dist/types/components/route/route.d.ts +1 -1
- package/dist/types/components/router-outlet/router-outlet.d.ts +0 -7
- package/dist/types/components/searchbar/searchbar.d.ts +1 -1
- package/dist/types/components/select/select-interface.d.ts +0 -31
- package/dist/types/components/select/select.d.ts +0 -18
- package/dist/types/components/select-option/select-option.d.ts +1 -42
- package/dist/types/components.d.ts +303 -74
- package/dist/types/index.d.ts +1 -1
- package/dist/types/interface.d.ts +1 -0
- package/dist/types/utils/config.d.ts +8 -0
- package/dist/types/utils/overlays.d.ts +9 -11
- package/dist/types/utils/sanitization/index.d.ts +2 -58
- package/hydrate/index.js +1296 -1414
- package/hydrate/index.mjs +1296 -1414
- package/package.json +5 -37
- package/components/p-279dFMvg.js +0 -4
- package/components/p-BSQPZ79H.js +0 -4
- package/components/p-BwKpO3Is.js +0 -4
- package/components/p-C-Rx1zny.js +0 -4
- package/components/p-CHzfYZbv.js +0 -4
- package/components/p-D4h1H_hh.js +0 -4
- package/components/p-LMGfIvTf.js +0 -4
- package/components/p-_lHSumhG.js +0 -4
- package/components/p-j9Da6cYO.js +0 -4
- package/components/p-jOtMJMv8.js +0 -4
- package/components/p-uTR_dEqg.js +0 -4
- package/dist/cjs/config-DWdFbSNK.js +0 -35
- package/dist/cjs/index-Cueg3U4w.js +0 -429
- package/dist/cjs/overlay-control-label-D2sdL2O8.js +0 -50
- package/dist/cjs/select-option-render-DTF50t5r.js +0 -124
- package/dist/collection/utils/overlay-control-label.js +0 -45
- package/dist/collection/utils/select-option-render.js +0 -119
- package/dist/esm/config-BwKpO3Is.js +0 -31
- package/dist/esm/index-DQSkZyOJ.js +0 -424
- package/dist/esm/overlay-control-label-BSQPZ79H.js +0 -47
- package/dist/esm/select-option-render-B8nWZRnd.js +0 -122
- package/dist/ionic/p-038eb991.entry.js +0 -4
- package/dist/ionic/p-4621c387.entry.js +0 -4
- package/dist/ionic/p-4ace7762.entry.js +0 -4
- package/dist/ionic/p-4bb3eb60.entry.js +0 -4
- package/dist/ionic/p-4e9ec5c5.entry.js +0 -4
- package/dist/ionic/p-5c3ec490.entry.js +0 -4
- package/dist/ionic/p-5d1ac2c7.entry.js +0 -4
- package/dist/ionic/p-700795f6.entry.js +0 -4
- package/dist/ionic/p-79a36078.entry.js +0 -4
- package/dist/ionic/p-913b218a.entry.js +0 -4
- package/dist/ionic/p-BDtODLZ4.js +0 -4
- package/dist/ionic/p-BSQPZ79H.js +0 -4
- package/dist/ionic/p-BwKpO3Is.js +0 -4
- package/dist/ionic/p-Cg5-OQYy.js +0 -4
- package/dist/ionic/p-DCOvXkOm.js +0 -4
- package/dist/ionic/p-a18dcb3c.entry.js +0 -4
- package/dist/ionic/p-a9a33367.entry.js +0 -4
- package/dist/ionic/p-ad728198.entry.js +0 -4
- package/dist/ionic/p-bfc8c629.entry.js +0 -4
- package/dist/ionic/p-c08e666a.entry.js +0 -4
- package/dist/ionic/p-c474f471.entry.js +0 -4
- package/dist/ionic/p-ce7992c4.entry.js +0 -4
- package/dist/ionic/p-ed797c72.entry.js +0 -4
- package/dist/ionic/p-f09f9642.entry.js +0 -4
- package/dist/ionic/p-f1c06f82.entry.js +0 -4
- package/dist/ionic/p-f718fccb.entry.js +0 -4
- package/dist/types/utils/overlay-control-label.d.ts +0 -32
- package/dist/types/utils/select-option-render.d.ts +0 -53
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-popover');
|
|
8042
|
+
const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,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-popover,ion-toast';
|
|
8276
|
+
selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover,ion-toast';
|
|
8277
8277
|
}
|
|
8278
8278
|
return Array.from(doc.querySelectorAll(selector)).filter((c) => c.overlayIndex > 0);
|
|
8279
8279
|
};
|
|
@@ -8335,29 +8335,6 @@ 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
|
-
};
|
|
8361
8338
|
const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts) => {
|
|
8362
8339
|
var _a, _b;
|
|
8363
8340
|
if (overlay.presented) {
|
|
@@ -8423,7 +8400,30 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
|
|
|
8423
8400
|
* to the overlay container.
|
|
8424
8401
|
*/
|
|
8425
8402
|
if (overlay.keyboardClose && (document.activeElement === null || !overlay.el.contains(document.activeElement))) {
|
|
8426
|
-
|
|
8403
|
+
/**
|
|
8404
|
+
* Some overlays (e.g. modal) put the dialog role and accessible label
|
|
8405
|
+
* on the `.ion-overlay-wrapper` instead of the host. Screen readers
|
|
8406
|
+
* need focus on the element with `role="dialog"` to properly announce
|
|
8407
|
+
* and navigate the dialog.
|
|
8408
|
+
*
|
|
8409
|
+
* We only target wrappers with `tabindex`, since `role="dialog"` alone
|
|
8410
|
+
* does not make an element focusable. If no focusable dialog wrapper
|
|
8411
|
+
* exists (e.g. picker-legacy), we fall back to the host.
|
|
8412
|
+
*/
|
|
8413
|
+
const overlayWrapper = getElementRoot(overlay.el).querySelector('[role="dialog"][tabindex]');
|
|
8414
|
+
const focusTarget = overlayWrapper !== null && overlayWrapper !== void 0 ? overlayWrapper : overlay.el;
|
|
8415
|
+
/**
|
|
8416
|
+
* `preventScroll` keeps this a pure focus move so the viewport does not
|
|
8417
|
+
* jump when the wrapper is partially off-screen (e.g. a sheet modal).
|
|
8418
|
+
* Guard the options call so an older engine that mishandles it can never
|
|
8419
|
+
* reject present(); we fall back to a plain focus() in that case.
|
|
8420
|
+
*/
|
|
8421
|
+
try {
|
|
8422
|
+
focusTarget.focus({ preventScroll: true });
|
|
8423
|
+
}
|
|
8424
|
+
catch (_c) {
|
|
8425
|
+
focusTarget.focus();
|
|
8426
|
+
}
|
|
8427
8427
|
}
|
|
8428
8428
|
/**
|
|
8429
8429
|
* If this overlay was previously dismissed without being
|
|
@@ -8759,539 +8759,6 @@ const createTriggerController = () => {
|
|
|
8759
8759
|
};
|
|
8760
8760
|
const FOCUS_TRAP_DISABLE_CLASS = 'ion-disable-focus-trap';
|
|
8761
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
|
-
|
|
9295
8762
|
const hostContext = (selector, el) => {
|
|
9296
8763
|
return el.closest(selector) !== null;
|
|
9297
8764
|
};
|
|
@@ -10147,7 +9614,7 @@ const createAnimation = (animationId) => {
|
|
|
10147
9614
|
/**
|
|
10148
9615
|
* iOS Action Sheet Enter Animation
|
|
10149
9616
|
*/
|
|
10150
|
-
const iosEnterAnimation$
|
|
9617
|
+
const iosEnterAnimation$6 = (baseEl) => {
|
|
10151
9618
|
const baseAnimation = createAnimation();
|
|
10152
9619
|
const backdropAnimation = createAnimation();
|
|
10153
9620
|
const wrapperAnimation = createAnimation();
|
|
@@ -10171,7 +9638,7 @@ const iosEnterAnimation$5 = (baseEl) => {
|
|
|
10171
9638
|
/**
|
|
10172
9639
|
* iOS Action Sheet Leave Animation
|
|
10173
9640
|
*/
|
|
10174
|
-
const iosLeaveAnimation$
|
|
9641
|
+
const iosLeaveAnimation$6 = (baseEl) => {
|
|
10175
9642
|
const baseAnimation = createAnimation();
|
|
10176
9643
|
const backdropAnimation = createAnimation();
|
|
10177
9644
|
const wrapperAnimation = createAnimation();
|
|
@@ -10228,9 +9695,9 @@ const mdLeaveAnimation$5 = (baseEl) => {
|
|
|
10228
9695
|
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
10229
9696
|
};
|
|
10230
9697
|
|
|
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
|
+
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)}}`;
|
|
10232
9699
|
|
|
10233
|
-
const actionSheetMdCss = () => `.
|
|
9700
|
+
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}`;
|
|
10234
9701
|
|
|
10235
9702
|
/**
|
|
10236
9703
|
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
@@ -10327,7 +9794,7 @@ class ActionSheet {
|
|
|
10327
9794
|
async present() {
|
|
10328
9795
|
const unlock = await this.lockController.lock();
|
|
10329
9796
|
await this.delegateController.attachViewToDom();
|
|
10330
|
-
await present(this, 'actionSheetEnter', iosEnterAnimation$
|
|
9797
|
+
await present(this, 'actionSheetEnter', iosEnterAnimation$6, mdEnterAnimation$5);
|
|
10331
9798
|
unlock();
|
|
10332
9799
|
}
|
|
10333
9800
|
/**
|
|
@@ -10344,7 +9811,7 @@ class ActionSheet {
|
|
|
10344
9811
|
*/
|
|
10345
9812
|
async dismiss(data, role) {
|
|
10346
9813
|
const unlock = await this.lockController.lock();
|
|
10347
|
-
const dismissed = await dismiss(this, data, role, 'actionSheetLeave', iosLeaveAnimation$
|
|
9814
|
+
const dismissed = await dismiss(this, data, role, 'actionSheetLeave', iosLeaveAnimation$6, mdLeaveAnimation$5);
|
|
10348
9815
|
if (dismissed) {
|
|
10349
9816
|
this.delegateController.removeViewFromDom();
|
|
10350
9817
|
}
|
|
@@ -10513,10 +9980,6 @@ class ActionSheet {
|
|
|
10513
9980
|
this.gesture = undefined;
|
|
10514
9981
|
}
|
|
10515
9982
|
this.triggerController.removeClickListener();
|
|
10516
|
-
// Clean up aria-hidden if removed without dismiss() being called
|
|
10517
|
-
if (this.presented) {
|
|
10518
|
-
cleanupRootFocusTrapAccessibility();
|
|
10519
|
-
}
|
|
10520
9983
|
}
|
|
10521
9984
|
componentWillLoad() {
|
|
10522
9985
|
var _a;
|
|
@@ -10605,26 +10068,12 @@ class ActionSheet {
|
|
|
10605
10068
|
if (isRadio) {
|
|
10606
10069
|
htmlAttrs['aria-checked'] = isActiveRadio ? 'true' : 'false';
|
|
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
|
+
return (hAsync("button", Object.assign({}, htmlAttrs, { role: isRadio ? 'radio' : undefined, type: "button", id: buttonId, class: Object.assign(Object.assign({}, buttonClass$3(b)), (isRadio && { 'action-sheet-selected': isActiveRadio })), onClick: () => {
|
|
10623
10072
|
if (isRadio) {
|
|
10624
10073
|
this.selectRadioButton(b);
|
|
10625
10074
|
}
|
|
10626
10075
|
this.buttonClick(b);
|
|
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" }),
|
|
10076
|
+
}, 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" }), b.text), mode === 'md' && hAsync("ion-ripple-effect", null)));
|
|
10628
10077
|
});
|
|
10629
10078
|
}
|
|
10630
10079
|
render() {
|
|
@@ -10634,12 +10083,12 @@ class ActionSheet {
|
|
|
10634
10083
|
const cancelButton = allButtons.find((b) => b.role === 'cancel');
|
|
10635
10084
|
const buttons = allButtons.filter((b) => b.role !== 'cancel');
|
|
10636
10085
|
const headerID = `action-sheet-${overlayIndex}-header`;
|
|
10637
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
10086
|
+
return (hAsync(Host, Object.assign({ key: '48b63b870f2816b4cad3c606f3d9956854cee79a', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
|
|
10638
10087
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
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: '
|
|
10088
|
+
}, 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: '41dd5781f139d26b3feea33ab387451aeafacd51', tappable: this.backdropDismiss }), hAsync("div", { key: 'f797c2657782e4e83adf90d2d796108e857a1fc0', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '8e74209321fc5e8712e3e293c91a6fa036ea45ab', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, hAsync("div", { key: 'c811860be2eed0b6c73fc2cc5a59cb94db2e8912', class: "action-sheet-container" }, hAsync("div", { key: 'd36ee14b70d73eb5cd69e0c57bc5cc31daf86ab3', class: "action-sheet-group", ref: (el) => (this.groupEl = el), role: hasRadioButtons ? 'radiogroup' : undefined }, header !== undefined && (hAsync("div", { key: '922695de191edc86451eed2552acc4f54993ea52', id: headerID, class: {
|
|
10640
10089
|
'action-sheet-title': true,
|
|
10641
10090
|
'action-sheet-has-sub-title': this.subHeader !== undefined,
|
|
10642
|
-
} }, header, this.subHeader && hAsync("div", { key: '
|
|
10091
|
+
} }, header, this.subHeader && hAsync("div", { key: 'a119d4a93668e829f7106f11cbbdd437310f3e80', class: "action-sheet-sub-title" }, this.subHeader))), this.renderActionSheetButtons(buttons)), cancelButton && (hAsync("div", { key: '1d27f36d09bedd2e4c61fea9dd9d05f8f9271aef', class: "action-sheet-group action-sheet-group-cancel" }, hAsync("button", Object.assign({ key: 'ed13658176c54cc45808a54a0331c297430d9bc6' }, cancelButton.htmlAttributes, { type: "button", class: buttonClass$3(cancelButton), onClick: () => this.buttonClick(cancelButton) }), hAsync("span", { key: '5208e3e3535b775a443cef6fb1decd790db69b0c', class: "action-sheet-button-inner" }, cancelButton.icon && (hAsync("ion-icon", { key: 'b7ba489e1ee50524a5b4af670eef787844a16286', icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), mode === 'md' && hAsync("ion-ripple-effect", { key: 'b3f88898114855853259f0001def26b4bd6e4a98' })))))), hAsync("div", { key: '0dfd0fcdc633bf565990eaa06679608e749cf8f9', tabindex: "0", "aria-hidden": "true" })));
|
|
10643
10092
|
}
|
|
10644
10093
|
get el() { return getElement(this); }
|
|
10645
10094
|
static get watchers() { return {
|
|
@@ -10688,59 +10137,178 @@ class ActionSheet {
|
|
|
10688
10137
|
"$attrsToReflect$": []
|
|
10689
10138
|
}; }
|
|
10690
10139
|
}
|
|
10691
|
-
const buttonClass$
|
|
10140
|
+
const buttonClass$3 = (button) => {
|
|
10692
10141
|
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));
|
|
10693
10142
|
};
|
|
10694
10143
|
|
|
10695
10144
|
const ENABLE_HTML_CONTENT_DEFAULT = false;
|
|
10696
10145
|
|
|
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.
|
|
10698
10146
|
/**
|
|
10699
|
-
*
|
|
10700
|
-
*
|
|
10701
|
-
|
|
10702
|
-
|
|
10703
|
-
|
|
10704
|
-
|
|
10705
|
-
|
|
10706
|
-
|
|
10707
|
-
|
|
10708
|
-
|
|
10709
|
-
|
|
10710
|
-
|
|
10711
|
-
|
|
10147
|
+
* Does a simple sanitization of all elements
|
|
10148
|
+
* in an untrusted string
|
|
10149
|
+
*/
|
|
10150
|
+
const sanitizeDOMString = (untrustedString) => {
|
|
10151
|
+
try {
|
|
10152
|
+
if (untrustedString instanceof IonicSafeString) {
|
|
10153
|
+
return untrustedString.value;
|
|
10154
|
+
}
|
|
10155
|
+
if (!isSanitizerEnabled() || typeof untrustedString !== 'string' || untrustedString === '') {
|
|
10156
|
+
return untrustedString;
|
|
10157
|
+
}
|
|
10158
|
+
/**
|
|
10159
|
+
* onload is fired when appending to a document
|
|
10160
|
+
* fragment in Chrome. If a string
|
|
10161
|
+
* contains onload then we should not
|
|
10162
|
+
* attempt to add this to the fragment.
|
|
10163
|
+
*/
|
|
10164
|
+
if (untrustedString.includes('onload=')) {
|
|
10165
|
+
return '';
|
|
10166
|
+
}
|
|
10167
|
+
/**
|
|
10168
|
+
* Create a document fragment
|
|
10169
|
+
* separate from the main DOM,
|
|
10170
|
+
* create a div to do our work in
|
|
10171
|
+
*/
|
|
10172
|
+
const documentFragment = document.createDocumentFragment();
|
|
10173
|
+
const workingDiv = document.createElement('div');
|
|
10174
|
+
documentFragment.appendChild(workingDiv);
|
|
10175
|
+
workingDiv.innerHTML = untrustedString;
|
|
10176
|
+
/**
|
|
10177
|
+
* Remove any elements
|
|
10178
|
+
* that are blocked
|
|
10179
|
+
*/
|
|
10180
|
+
blockedTags.forEach((blockedTag) => {
|
|
10181
|
+
const getElementsToRemove = documentFragment.querySelectorAll(blockedTag);
|
|
10182
|
+
for (let elementIndex = getElementsToRemove.length - 1; elementIndex >= 0; elementIndex--) {
|
|
10183
|
+
const element = getElementsToRemove[elementIndex];
|
|
10184
|
+
if (element.parentNode) {
|
|
10185
|
+
element.parentNode.removeChild(element);
|
|
10186
|
+
}
|
|
10187
|
+
else {
|
|
10188
|
+
documentFragment.removeChild(element);
|
|
10189
|
+
}
|
|
10190
|
+
/**
|
|
10191
|
+
* We still need to sanitize
|
|
10192
|
+
* the children of this element
|
|
10193
|
+
* as they are left behind
|
|
10194
|
+
*/
|
|
10195
|
+
const childElements = getElementChildren(element);
|
|
10196
|
+
/* eslint-disable-next-line */
|
|
10197
|
+
for (let childIndex = 0; childIndex < childElements.length; childIndex++) {
|
|
10198
|
+
sanitizeElement(childElements[childIndex]);
|
|
10199
|
+
}
|
|
10200
|
+
}
|
|
10201
|
+
});
|
|
10202
|
+
/**
|
|
10203
|
+
* Go through remaining elements and remove
|
|
10204
|
+
* non-allowed attribs
|
|
10205
|
+
*/
|
|
10206
|
+
// IE does not support .children on document fragments, only .childNodes
|
|
10207
|
+
const dfChildren = getElementChildren(documentFragment);
|
|
10208
|
+
/* eslint-disable-next-line */
|
|
10209
|
+
for (let childIndex = 0; childIndex < dfChildren.length; childIndex++) {
|
|
10210
|
+
sanitizeElement(dfChildren[childIndex]);
|
|
10211
|
+
}
|
|
10212
|
+
// Append document fragment to div
|
|
10213
|
+
const fragmentDiv = document.createElement('div');
|
|
10214
|
+
fragmentDiv.appendChild(documentFragment);
|
|
10215
|
+
// First child is always the div we did our work in
|
|
10216
|
+
const getInnerDiv = fragmentDiv.querySelector('div');
|
|
10217
|
+
return getInnerDiv !== null ? getInnerDiv.innerHTML : fragmentDiv.innerHTML;
|
|
10218
|
+
}
|
|
10219
|
+
catch (err) {
|
|
10220
|
+
printIonError('sanitizeDOMString', err);
|
|
10221
|
+
return '';
|
|
10222
|
+
}
|
|
10223
|
+
};
|
|
10224
|
+
/**
|
|
10225
|
+
* Clean up current element based on allowed attributes
|
|
10226
|
+
* and then recursively dig down into any child elements to
|
|
10227
|
+
* clean those up as well
|
|
10712
10228
|
*/
|
|
10713
|
-
|
|
10714
|
-
|
|
10715
|
-
|
|
10229
|
+
// TODO(FW-2832): type (using Element triggers other type errors as well)
|
|
10230
|
+
const sanitizeElement = (element) => {
|
|
10231
|
+
// IE uses childNodes, so ignore nodes that are not elements
|
|
10232
|
+
if (element.nodeType && element.nodeType !== 1) {
|
|
10233
|
+
return;
|
|
10234
|
+
}
|
|
10235
|
+
/**
|
|
10236
|
+
* If attributes is not a NamedNodeMap
|
|
10237
|
+
* then we should remove the element entirely.
|
|
10238
|
+
* This helps avoid DOM Clobbering attacks where
|
|
10239
|
+
* attributes is overridden.
|
|
10240
|
+
*/
|
|
10241
|
+
if (typeof NamedNodeMap !== 'undefined' && !(element.attributes instanceof NamedNodeMap)) {
|
|
10242
|
+
element.remove();
|
|
10243
|
+
return;
|
|
10244
|
+
}
|
|
10245
|
+
for (let i = element.attributes.length - 1; i >= 0; i--) {
|
|
10246
|
+
const attribute = element.attributes.item(i);
|
|
10247
|
+
const attributeName = attribute.name;
|
|
10248
|
+
// remove non-allowed attribs
|
|
10249
|
+
if (!allowedAttributes.includes(attributeName.toLowerCase())) {
|
|
10250
|
+
element.removeAttribute(attributeName);
|
|
10251
|
+
continue;
|
|
10252
|
+
}
|
|
10253
|
+
// clean up any allowed attribs
|
|
10254
|
+
// that attempt to do any JS funny-business
|
|
10255
|
+
const attributeValue = attribute.value;
|
|
10256
|
+
/**
|
|
10257
|
+
* We also need to check the property value
|
|
10258
|
+
* as javascript: can allow special characters
|
|
10259
|
+
* such as 	 and still be valid (i.e. java	script)
|
|
10260
|
+
*/
|
|
10261
|
+
const propertyValue = element[attributeName];
|
|
10262
|
+
/* eslint-disable */
|
|
10263
|
+
if ((attributeValue != null && attributeValue.toLowerCase().includes('javascript:')) ||
|
|
10264
|
+
(propertyValue != null && propertyValue.toLowerCase().includes('javascript:'))) {
|
|
10265
|
+
element.removeAttribute(attributeName);
|
|
10266
|
+
}
|
|
10267
|
+
/* eslint-enable */
|
|
10268
|
+
}
|
|
10269
|
+
/**
|
|
10270
|
+
* Sanitize any nested children
|
|
10271
|
+
*/
|
|
10272
|
+
const childElements = getElementChildren(element);
|
|
10273
|
+
/* eslint-disable-next-line */
|
|
10274
|
+
for (let i = 0; i < childElements.length; i++) {
|
|
10275
|
+
sanitizeElement(childElements[i]);
|
|
10716
10276
|
}
|
|
10717
|
-
return 'end';
|
|
10718
10277
|
};
|
|
10719
10278
|
/**
|
|
10720
|
-
*
|
|
10721
|
-
*
|
|
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`.
|
|
10279
|
+
* IE doesn't always support .children
|
|
10280
|
+
* so we revert to .childNodes instead
|
|
10732
10281
|
*/
|
|
10733
|
-
|
|
10734
|
-
|
|
10735
|
-
|
|
10282
|
+
// TODO(FW-2832): type
|
|
10283
|
+
const getElementChildren = (el) => {
|
|
10284
|
+
return el.children != null ? el.children : el.childNodes;
|
|
10285
|
+
};
|
|
10286
|
+
const isSanitizerEnabled = () => {
|
|
10287
|
+
var _a;
|
|
10288
|
+
const win = window;
|
|
10289
|
+
const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config;
|
|
10290
|
+
if (config) {
|
|
10291
|
+
if (config.get) {
|
|
10292
|
+
return config.get('sanitizerEnabled', true);
|
|
10293
|
+
}
|
|
10294
|
+
else {
|
|
10295
|
+
return config.sanitizerEnabled === true || config.sanitizerEnabled === undefined;
|
|
10296
|
+
}
|
|
10736
10297
|
}
|
|
10737
|
-
return
|
|
10298
|
+
return true;
|
|
10738
10299
|
};
|
|
10300
|
+
const allowedAttributes = ['class', 'id', 'href', 'src', 'name', 'slot'];
|
|
10301
|
+
const blockedTags = ['script', 'style', 'iframe', 'meta', 'link', 'object', 'embed'];
|
|
10302
|
+
class IonicSafeString {
|
|
10303
|
+
constructor(value) {
|
|
10304
|
+
this.value = value;
|
|
10305
|
+
}
|
|
10306
|
+
}
|
|
10739
10307
|
|
|
10740
10308
|
/**
|
|
10741
10309
|
* iOS Alert Enter Animation
|
|
10742
10310
|
*/
|
|
10743
|
-
const iosEnterAnimation$
|
|
10311
|
+
const iosEnterAnimation$5 = (baseEl) => {
|
|
10744
10312
|
const baseAnimation = createAnimation();
|
|
10745
10313
|
const backdropAnimation = createAnimation();
|
|
10746
10314
|
const wrapperAnimation = createAnimation();
|
|
@@ -10765,7 +10333,7 @@ const iosEnterAnimation$4 = (baseEl) => {
|
|
|
10765
10333
|
/**
|
|
10766
10334
|
* iOS Alert Leave Animation
|
|
10767
10335
|
*/
|
|
10768
|
-
const iosLeaveAnimation$
|
|
10336
|
+
const iosLeaveAnimation$5 = (baseEl) => {
|
|
10769
10337
|
const baseAnimation = createAnimation();
|
|
10770
10338
|
const backdropAnimation = createAnimation();
|
|
10771
10339
|
const wrapperAnimation = createAnimation();
|
|
@@ -10822,9 +10390,9 @@ const mdLeaveAnimation$4 = (baseEl) => {
|
|
|
10822
10390
|
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
10823
10391
|
};
|
|
10824
10392
|
|
|
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
|
+
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)}`;
|
|
10826
10394
|
|
|
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
|
+
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)}}`;
|
|
10828
10396
|
|
|
10829
10397
|
// TODO(FW-2832): types
|
|
10830
10398
|
/**
|
|
@@ -10998,7 +10566,22 @@ class Alert {
|
|
|
10998
10566
|
this.inputType = inputTypes.values().next().value;
|
|
10999
10567
|
this.processedInputs = inputs.map((i, index) => {
|
|
11000
10568
|
var _a;
|
|
11001
|
-
return
|
|
10569
|
+
return ({
|
|
10570
|
+
type: i.type || 'text',
|
|
10571
|
+
name: i.name || `${index}`,
|
|
10572
|
+
placeholder: i.placeholder || '',
|
|
10573
|
+
value: i.value,
|
|
10574
|
+
label: i.label,
|
|
10575
|
+
checked: !!i.checked,
|
|
10576
|
+
disabled: !!i.disabled,
|
|
10577
|
+
id: i.id || `alert-input-${this.overlayIndex}-${index}`,
|
|
10578
|
+
handler: i.handler,
|
|
10579
|
+
min: i.min,
|
|
10580
|
+
max: i.max,
|
|
10581
|
+
cssClass: (_a = i.cssClass) !== null && _a !== void 0 ? _a : '',
|
|
10582
|
+
attributes: i.attributes || {},
|
|
10583
|
+
tabindex: i.type === 'radio' && i !== focusable ? -1 : 0,
|
|
10584
|
+
});
|
|
11002
10585
|
});
|
|
11003
10586
|
}
|
|
11004
10587
|
connectedCallback() {
|
|
@@ -11026,10 +10609,6 @@ class Alert {
|
|
|
11026
10609
|
this.gesture.destroy();
|
|
11027
10610
|
this.gesture = undefined;
|
|
11028
10611
|
}
|
|
11029
|
-
// Clean up aria-hidden if removed without dismiss() being called
|
|
11030
|
-
if (this.presented) {
|
|
11031
|
-
cleanupRootFocusTrapAccessibility();
|
|
11032
|
-
}
|
|
11033
10612
|
(_a = this.buttonGroupResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
11034
10613
|
this.buttonGroupResizeObserver = undefined;
|
|
11035
10614
|
}
|
|
@@ -11069,7 +10648,7 @@ class Alert {
|
|
|
11069
10648
|
async present() {
|
|
11070
10649
|
const unlock = await this.lockController.lock();
|
|
11071
10650
|
await this.delegateController.attachViewToDom();
|
|
11072
|
-
await present(this, 'alertEnter', iosEnterAnimation$
|
|
10651
|
+
await present(this, 'alertEnter', iosEnterAnimation$5, mdEnterAnimation$4).then(() => {
|
|
11073
10652
|
var _a, _b;
|
|
11074
10653
|
/**
|
|
11075
10654
|
* Check if alert has only one button and no inputs.
|
|
@@ -11100,7 +10679,7 @@ class Alert {
|
|
|
11100
10679
|
*/
|
|
11101
10680
|
async dismiss(data, role) {
|
|
11102
10681
|
const unlock = await this.lockController.lock();
|
|
11103
|
-
const dismissed = await dismiss(this, data, role, 'alertLeave', iosLeaveAnimation$
|
|
10682
|
+
const dismissed = await dismiss(this, data, role, 'alertLeave', iosLeaveAnimation$5, mdLeaveAnimation$4);
|
|
11104
10683
|
if (dismissed) {
|
|
11105
10684
|
this.delegateController.removeViewFromDom();
|
|
11106
10685
|
}
|
|
@@ -11198,61 +10777,14 @@ class Alert {
|
|
|
11198
10777
|
if (inputs.length === 0) {
|
|
11199
10778
|
return null;
|
|
11200
10779
|
}
|
|
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
|
+
return (hAsync("div", { class: "alert-checkbox-group" }, inputs.map((i) => (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': true, 'alert-checkbox-button-disabled': i.disabled || false }) }, hAsync("div", { class: "alert-button-inner" }, hAsync("div", { class: "alert-checkbox-icon" }, hAsync("div", { class: "alert-checkbox-inner" })), hAsync("div", { class: "alert-checkbox-label" }, i.label)), mode === 'md' && hAsync("ion-ripple-effect", null))))));
|
|
11225
10781
|
}
|
|
11226
10782
|
renderRadio() {
|
|
11227
10783
|
const inputs = this.processedInputs;
|
|
11228
|
-
const mode = getIonMode$1(this);
|
|
11229
10784
|
if (inputs.length === 0) {
|
|
11230
10785
|
return null;
|
|
11231
10786
|
}
|
|
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
|
+
return (hAsync("div", { class: "alert-radio-group", role: "radiogroup", "aria-activedescendant": this.activeId }, inputs.map((i) => (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': true, 'alert-radio-button-disabled': i.disabled || false }), role: "radio" }, hAsync("div", { class: "alert-button-inner" }, hAsync("div", { class: "alert-radio-icon" }, hAsync("div", { class: "alert-radio-inner" })), hAsync("div", { class: "alert-radio-label" }, i.label)))))));
|
|
11256
10788
|
}
|
|
11257
10789
|
renderInput() {
|
|
11258
10790
|
const inputs = this.processedInputs;
|
|
@@ -11332,7 +10864,7 @@ class Alert {
|
|
|
11332
10864
|
'alert-button-group': true,
|
|
11333
10865
|
'alert-button-group-vertical': buttons.length > 2 || this.isButtonGroupWrapped,
|
|
11334
10866
|
};
|
|
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$
|
|
10867
|
+
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$2(button), tabIndex: 0, onClick: () => this.buttonClick(button) }), hAsync("span", { class: "alert-button-inner" }, button.text), mode === 'md' && hAsync("ion-ripple-effect", null))))));
|
|
11336
10868
|
}
|
|
11337
10869
|
renderAlertMessage(msgId) {
|
|
11338
10870
|
const { customHTMLEnabled, message } = this;
|
|
@@ -11355,9 +10887,9 @@ class Alert {
|
|
|
11355
10887
|
* If neither are defined, do not set aria-labelledby.
|
|
11356
10888
|
*/
|
|
11357
10889
|
const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
|
|
11358
|
-
return (hAsync(Host, { key: '
|
|
10890
|
+
return (hAsync(Host, { key: '8d54ccd725ea634be080e67b56fa5efe498f496c', tabindex: "-1", style: {
|
|
11359
10891
|
zIndex: `${20000 + overlayIndex}`,
|
|
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: '
|
|
10892
|
+
}, 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: '05a238583342285545587de9dce144a82d779193', tappable: this.backdropDismiss }), hAsync("div", { key: 'e52c53fd9845e66781af01b2a788a291b45a927c', tabindex: "0", "aria-hidden": "true" }), hAsync("div", Object.assign({ key: '8417e52eebca24ff436fab0703666db51072f980', 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: '5c560d4800b24d41961423718108b54be6cd6f91', class: "alert-head" }, header && (hAsync("h2", { key: '8637b64cd5125b2258115d1c11f3743113658608', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (hAsync("h2", { key: '7a4e61a02c29b16b336d8acaf6569b30de6fe71e', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (hAsync("h3", { key: '30844b6a0a7e3dab46514cd548ecffa86dcd59cb', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: '39c824fee1e60ad8d6234c79d22ceb8bba8004af', tabindex: "0", "aria-hidden": "true" })));
|
|
11361
10893
|
}
|
|
11362
10894
|
get el() { return getElement(this); }
|
|
11363
10895
|
static get watchers() { return {
|
|
@@ -11415,7 +10947,7 @@ const inputClass = (input) => {
|
|
|
11415
10947
|
var _a, _b, _c;
|
|
11416
10948
|
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() : ''));
|
|
11417
10949
|
};
|
|
11418
|
-
const buttonClass$
|
|
10950
|
+
const buttonClass$2 = (button) => {
|
|
11419
10951
|
return Object.assign({ 'alert-button': true, 'ion-focusable': true, 'ion-activatable': true, [`alert-button-role-${button.role}`]: button.role !== undefined }, getClassMap(button.cssClass));
|
|
11420
10952
|
};
|
|
11421
10953
|
|
|
@@ -19200,8 +18732,6 @@ const createColorClasses = (color) => {
|
|
|
19200
18732
|
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}`;
|
|
19201
18733
|
|
|
19202
18734
|
/**
|
|
19203
|
-
* @deprecated
|
|
19204
|
-
*
|
|
19205
18735
|
* @part image - The inner `img` element.
|
|
19206
18736
|
*/
|
|
19207
18737
|
class Img {
|
|
@@ -19225,8 +18755,6 @@ class Img {
|
|
|
19225
18755
|
this.inheritedAttributes = inheritAttributes$1(this.el, ['draggable']);
|
|
19226
18756
|
}
|
|
19227
18757
|
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);
|
|
19230
18758
|
this.addIO();
|
|
19231
18759
|
}
|
|
19232
18760
|
disconnectedCallback() {
|
|
@@ -19279,7 +18807,7 @@ class Img {
|
|
|
19279
18807
|
render() {
|
|
19280
18808
|
const { loadSrc, alt, onLoad, loadError, inheritedAttributes } = this;
|
|
19281
18809
|
const { draggable } = inheritedAttributes;
|
|
19282
|
-
return (hAsync(Host, { key: '
|
|
18810
|
+
return (hAsync(Host, { key: '9bfaa659b0680189fd29f3acb2fdce7f70be6060', class: getIonMode$1(this) }, hAsync("img", { key: 'd484beae0d5cbe0406958bfad40cdd6c05625340', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
|
|
19283
18811
|
}
|
|
19284
18812
|
get el() { return getElement(this); }
|
|
19285
18813
|
static get watchers() { return {
|
|
@@ -19783,7 +19311,7 @@ class Input {
|
|
|
19783
19311
|
/**
|
|
19784
19312
|
* Whether auto correction should be enabled when the user is entering/editing the text value.
|
|
19785
19313
|
*/
|
|
19786
|
-
this.autocorrect =
|
|
19314
|
+
this.autocorrect = 'off';
|
|
19787
19315
|
/**
|
|
19788
19316
|
* Sets the [`autofocus` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus) on the native input element.
|
|
19789
19317
|
*
|
|
@@ -20240,7 +19768,7 @@ class Input {
|
|
|
20240
19768
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
20241
19769
|
*/
|
|
20242
19770
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
|
|
20243
|
-
return (hAsync(Host, { key: '
|
|
19771
|
+
return (hAsync(Host, { key: '9ba9cf425b573d2ca9ac34455a0e6b8474c4de6d', class: createColorClasses$1(this.color, {
|
|
20244
19772
|
[mode]: true,
|
|
20245
19773
|
'has-value': hasValue,
|
|
20246
19774
|
'has-focus': hasFocus,
|
|
@@ -20251,14 +19779,14 @@ class Input {
|
|
|
20251
19779
|
'in-item': inItem,
|
|
20252
19780
|
'in-item-color': hostContext('ion-item.ion-color', this.el),
|
|
20253
19781
|
'input-disabled': disabled,
|
|
20254
|
-
}) }, hAsync("label", { key: '
|
|
19782
|
+
}) }, hAsync("label", { key: '74b989d0aa5ab38f29f952519868f05119df6005', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: '47f2b42e2f74ea866b4f871026e08ab375d7a726', class: "native-wrapper", onClick: this.onLabelClick }, hAsync("slot", { key: 'eaabe5a4a329a356cac3294d15c087d0d131fff2', name: "start" }), hAsync("input", Object.assign({ key: 'c821a984a8a9b7f96f30892c06d8deda093ff24b', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, 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: '62069c11016ee190dc46ab941372e1c4ad8a36ed', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
|
|
20255
19783
|
/**
|
|
20256
19784
|
* This prevents mobile browsers from
|
|
20257
19785
|
* blurring the input when the clear
|
|
20258
19786
|
* button is activated.
|
|
20259
19787
|
*/
|
|
20260
19788
|
ev.preventDefault();
|
|
20261
|
-
}, onClick: this.clearTextInput }, hAsync("ion-icon", { key: '
|
|
19789
|
+
}, onClick: this.clearTextInput }, hAsync("ion-icon", { key: 'dd75a516d32110d85382b664c663bd41f177ce12', "aria-hidden": "true", icon: clearIconData }))), hAsync("slot", { key: '330d4b9389f2c62223a5ee24003e96ef3e6b2473', name: "end" })), shouldRenderHighlight && hAsync("div", { key: '8e442bed130ddc84976ab70fd3f8578d6bcc6316', class: "input-highlight" })), this.renderBottomContent()));
|
|
20262
19790
|
}
|
|
20263
19791
|
get el() { return getElement(this); }
|
|
20264
19792
|
static get watchers() { return {
|
|
@@ -20286,7 +19814,7 @@ class Input {
|
|
|
20286
19814
|
"color": [513],
|
|
20287
19815
|
"autocapitalize": [1],
|
|
20288
19816
|
"autocomplete": [1],
|
|
20289
|
-
"autocorrect": [
|
|
19817
|
+
"autocorrect": [1],
|
|
20290
19818
|
"autofocus": [4],
|
|
20291
19819
|
"clearInput": [4, "clear-input"],
|
|
20292
19820
|
"clearInputIcon": [1, "clear-input-icon"],
|
|
@@ -22290,7 +21818,7 @@ class ListHeader {
|
|
|
22290
21818
|
/**
|
|
22291
21819
|
* iOS Loading Enter Animation
|
|
22292
21820
|
*/
|
|
22293
|
-
const iosEnterAnimation$
|
|
21821
|
+
const iosEnterAnimation$4 = (baseEl) => {
|
|
22294
21822
|
const baseAnimation = createAnimation();
|
|
22295
21823
|
const backdropAnimation = createAnimation();
|
|
22296
21824
|
const wrapperAnimation = createAnimation();
|
|
@@ -22315,7 +21843,7 @@ const iosEnterAnimation$3 = (baseEl) => {
|
|
|
22315
21843
|
/**
|
|
22316
21844
|
* iOS Loading Leave Animation
|
|
22317
21845
|
*/
|
|
22318
|
-
const iosLeaveAnimation$
|
|
21846
|
+
const iosLeaveAnimation$4 = (baseEl) => {
|
|
22319
21847
|
const baseAnimation = createAnimation();
|
|
22320
21848
|
const backdropAnimation = createAnimation();
|
|
22321
21849
|
const wrapperAnimation = createAnimation();
|
|
@@ -22488,10 +22016,6 @@ class Loading {
|
|
|
22488
22016
|
}
|
|
22489
22017
|
disconnectedCallback() {
|
|
22490
22018
|
this.triggerController.removeClickListener();
|
|
22491
|
-
// Clean up aria-hidden if removed without dismiss() being called
|
|
22492
|
-
if (this.presented) {
|
|
22493
|
-
cleanupRootFocusTrapAccessibility();
|
|
22494
|
-
}
|
|
22495
22019
|
}
|
|
22496
22020
|
/**
|
|
22497
22021
|
* Present the loading overlay after it has been created.
|
|
@@ -22499,7 +22023,7 @@ class Loading {
|
|
|
22499
22023
|
async present() {
|
|
22500
22024
|
const unlock = await this.lockController.lock();
|
|
22501
22025
|
await this.delegateController.attachViewToDom();
|
|
22502
|
-
await present(this, 'loadingEnter', iosEnterAnimation$
|
|
22026
|
+
await present(this, 'loadingEnter', iosEnterAnimation$4, mdEnterAnimation$3);
|
|
22503
22027
|
if (this.duration > 0) {
|
|
22504
22028
|
this.durationTimeout = setTimeout(() => this.dismiss(), this.duration + 10);
|
|
22505
22029
|
}
|
|
@@ -22522,7 +22046,7 @@ class Loading {
|
|
|
22522
22046
|
if (this.durationTimeout) {
|
|
22523
22047
|
clearTimeout(this.durationTimeout);
|
|
22524
22048
|
}
|
|
22525
|
-
const dismissed = await dismiss(this, data, role, 'loadingLeave', iosLeaveAnimation$
|
|
22049
|
+
const dismissed = await dismiss(this, data, role, 'loadingLeave', iosLeaveAnimation$4, mdLeaveAnimation$3);
|
|
22526
22050
|
if (dismissed) {
|
|
22527
22051
|
this.delegateController.removeViewFromDom();
|
|
22528
22052
|
}
|
|
@@ -22557,9 +22081,9 @@ class Loading {
|
|
|
22557
22081
|
* Otherwise, don't set aria-labelledby.
|
|
22558
22082
|
*/
|
|
22559
22083
|
const ariaLabelledBy = message !== undefined ? msgId : null;
|
|
22560
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
22084
|
+
return (hAsync(Host, Object.assign({ key: 'f86ddbc600cb5c396b7de38fb5f49625388c3c3f', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
|
|
22561
22085
|
zIndex: `${40000 + this.overlayIndex}`,
|
|
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: '
|
|
22086
|
+
}, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: 'b53727aaddc37ef3c685fcc150c6d5193290a847', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '4c61bede8e0a4e47daa6f1f9d0f364ef6aec0bc3', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '84e51ceb07118f1eaeb757df28801c255496931b', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (hAsync("div", { key: 'fc97f1912e0fc558b7c309a5bc084415f5f620b2', class: "loading-spinner" }, hAsync("ion-spinner", { key: '6e186d856cd3f10f22c3e317ef00f31b4216459c', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), hAsync("div", { key: 'dcbe9d9a619daa1c08174e73827bdabeb59dde92', tabindex: "0", "aria-hidden": "true" })));
|
|
22563
22087
|
}
|
|
22564
22088
|
get el() { return getElement(this); }
|
|
22565
22089
|
static get watchers() { return {
|
|
@@ -24541,7 +24065,14 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
|
|
|
24541
24065
|
return false;
|
|
24542
24066
|
};
|
|
24543
24067
|
const onStart = (detail) => {
|
|
24068
|
+
var _a;
|
|
24544
24069
|
const { deltaY } = detail;
|
|
24070
|
+
/**
|
|
24071
|
+
* Firefox automatically selects the header text during drag
|
|
24072
|
+
* due to the focusable wrapper (tabindex="-1"). Remove any
|
|
24073
|
+
* selection that may have occurred.
|
|
24074
|
+
*/
|
|
24075
|
+
(_a = window.getSelection()) === null || _a === void 0 ? void 0 : _a.removeAllRanges();
|
|
24545
24076
|
/**
|
|
24546
24077
|
* Get the initial scrollY value so
|
|
24547
24078
|
* that we can correctly reset the scrollY
|
|
@@ -24833,7 +24364,7 @@ const createEnterAnimation$1 = () => {
|
|
|
24833
24364
|
/**
|
|
24834
24365
|
* iOS Modal Enter Animation for the Card presentation style
|
|
24835
24366
|
*/
|
|
24836
|
-
const iosEnterAnimation$
|
|
24367
|
+
const iosEnterAnimation$3 = (baseEl, opts) => {
|
|
24837
24368
|
const { presentingEl, currentBreakpoint, expandToScroll } = opts;
|
|
24838
24369
|
const root = getElementRoot(baseEl);
|
|
24839
24370
|
const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
|
|
@@ -24926,7 +24457,7 @@ const createLeaveAnimation$1 = () => {
|
|
|
24926
24457
|
/**
|
|
24927
24458
|
* iOS Modal Leave Animation
|
|
24928
24459
|
*/
|
|
24929
|
-
const iosLeaveAnimation$
|
|
24460
|
+
const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
|
|
24930
24461
|
const { presentingEl, currentBreakpoint } = opts;
|
|
24931
24462
|
const root = getElementRoot(baseEl);
|
|
24932
24463
|
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
|
|
@@ -25427,6 +24958,13 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
25427
24958
|
return true;
|
|
25428
24959
|
};
|
|
25429
24960
|
const onStart = (detail) => {
|
|
24961
|
+
var _a;
|
|
24962
|
+
/**
|
|
24963
|
+
* Firefox automatically selects the header text during drag
|
|
24964
|
+
* due to the focusable wrapper (tabindex="-1"). Remove any
|
|
24965
|
+
* selection that may have occurred.
|
|
24966
|
+
*/
|
|
24967
|
+
(_a = window.getSelection()) === null || _a === void 0 ? void 0 : _a.removeAllRanges();
|
|
25430
24968
|
/**
|
|
25431
24969
|
* If canDismiss is anything other than `true`
|
|
25432
24970
|
* then users should be able to swipe down
|
|
@@ -26029,9 +25567,9 @@ const clearSafeAreaOverrides = (hostEl) => {
|
|
|
26029
25567
|
hostEl.style.removeProperty('--ion-safe-area-right');
|
|
26030
25568
|
};
|
|
26031
25569
|
|
|
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}`;
|
|
25570
|
+
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-wrapper{outline:none}.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}`;
|
|
26033
25571
|
|
|
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}`;
|
|
25572
|
+
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-wrapper{outline:none}.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}`;
|
|
26035
25573
|
|
|
26036
25574
|
// TODO(FW-2832): types
|
|
26037
25575
|
/**
|
|
@@ -26101,20 +25639,13 @@ class Modal {
|
|
|
26101
25639
|
/**
|
|
26102
25640
|
* The interaction behavior for the sheet modal when the handle is pressed.
|
|
26103
25641
|
*
|
|
26104
|
-
*
|
|
26105
|
-
* `
|
|
26106
|
-
* fullscreen or card modal).
|
|
25642
|
+
* Defaults to `"none"`, which means the modal will not change size or position when the handle is pressed.
|
|
25643
|
+
* Set to `"cycle"` to let the modal cycle between available breakpoints when pressed.
|
|
26107
25644
|
*
|
|
26108
|
-
*
|
|
26109
|
-
*
|
|
26110
|
-
* operable with assistive technology.
|
|
26111
|
-
*
|
|
26112
|
-
* Set to `"none"` to make the handle purely decorative when pressed and
|
|
26113
|
-
* removed from the tab order.
|
|
26114
|
-
*
|
|
26115
|
-
* Defaults to `"cycle"`.
|
|
25645
|
+
* Handle behavior is unavailable when the `handle` property is set to `false` or
|
|
25646
|
+
* when the `breakpoints` property is not set (using a fullscreen or card modal).
|
|
26116
25647
|
*/
|
|
26117
|
-
this.handleBehavior = '
|
|
25648
|
+
this.handleBehavior = 'none';
|
|
26118
25649
|
/**
|
|
26119
25650
|
* If `true`, the modal will be dismissed when the backdrop is clicked.
|
|
26120
25651
|
*/
|
|
@@ -26306,10 +25837,6 @@ class Modal {
|
|
|
26306
25837
|
// Also called in dismiss() — intentional dual cleanup covers both
|
|
26307
25838
|
// dismiss-then-remove and direct DOM removal without dismiss.
|
|
26308
25839
|
this.cleanupSafeAreaOverrides();
|
|
26309
|
-
// Clean up aria-hidden if removed without dismiss() being called
|
|
26310
|
-
if (this.presented) {
|
|
26311
|
-
cleanupRootFocusTrapAccessibility();
|
|
26312
|
-
}
|
|
26313
25840
|
}
|
|
26314
25841
|
componentWillLoad() {
|
|
26315
25842
|
var _a;
|
|
@@ -26486,7 +26013,7 @@ class Modal {
|
|
|
26486
26013
|
this.statusBarStyle = await StatusBar.getStyle();
|
|
26487
26014
|
setCardStatusBarDark();
|
|
26488
26015
|
}
|
|
26489
|
-
await present(this, 'modalEnter', iosEnterAnimation$
|
|
26016
|
+
await present(this, 'modalEnter', iosEnterAnimation$3, mdEnterAnimation$2, {
|
|
26490
26017
|
presentingEl: presentingElement,
|
|
26491
26018
|
currentBreakpoint: this.initialBreakpoint,
|
|
26492
26019
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
@@ -26548,7 +26075,7 @@ class Modal {
|
|
|
26548
26075
|
// All of the elements needed for the swipe gesture
|
|
26549
26076
|
// should be in the DOM and referenced by now, except
|
|
26550
26077
|
// for the presenting el
|
|
26551
|
-
const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$
|
|
26078
|
+
const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$3);
|
|
26552
26079
|
const ani = (this.animation = animationBuilder(el, {
|
|
26553
26080
|
presentingEl: this.presentingElement,
|
|
26554
26081
|
expandToScroll: this.expandToScroll,
|
|
@@ -26567,7 +26094,7 @@ class Modal {
|
|
|
26567
26094
|
if (!wrapperEl || initialBreakpoint === undefined) {
|
|
26568
26095
|
return;
|
|
26569
26096
|
}
|
|
26570
|
-
const animationBuilder = this.enterAnimation || config.get('modalEnter', iosEnterAnimation$
|
|
26097
|
+
const animationBuilder = this.enterAnimation || config.get('modalEnter', iosEnterAnimation$3);
|
|
26571
26098
|
const ani = (this.animation = animationBuilder(this.el, {
|
|
26572
26099
|
presentingEl: this.presentingElement,
|
|
26573
26100
|
currentBreakpoint: initialBreakpoint,
|
|
@@ -26757,7 +26284,7 @@ class Modal {
|
|
|
26757
26284
|
window.removeEventListener(KEYBOARD_DID_OPEN, this.keyboardOpenCallback);
|
|
26758
26285
|
this.keyboardOpenCallback = undefined;
|
|
26759
26286
|
}
|
|
26760
|
-
const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation$
|
|
26287
|
+
const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation$3, mdLeaveAnimation$2, {
|
|
26761
26288
|
presentingEl: presentingElement,
|
|
26762
26289
|
currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
|
|
26763
26290
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
@@ -27189,20 +26716,26 @@ class Modal {
|
|
|
27189
26716
|
const isCardModal = presentingElement !== undefined && mode === 'ios';
|
|
27190
26717
|
const isHandleCycle = handleBehavior === 'cycle';
|
|
27191
26718
|
const isSheetModalWithHandle = isSheetModal && showHandle;
|
|
27192
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
26719
|
+
return (hAsync(Host, Object.assign({ key: 'ab93657f4a5b4c97168d292b398d975e4b5b4af4', "no-router": true,
|
|
27193
26720
|
// Allow the modal to be navigable when the handle is focusable
|
|
27194
26721
|
tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
|
|
27195
26722
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
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: '
|
|
26723
|
+
}, 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: '5ba6315c7c8c64fa04c62f85fd493da5275b2cbd', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: 'a76c48d41c67f86c18a7481e980e6925e614f85d', class: "modal-shadow" }), hAsync("div", Object.assign({ key: 'dccf3c774355429bc0ea7461d9b1ef941ea91902',
|
|
27197
26724
|
/*
|
|
27198
26725
|
role and aria-modal must be used on the
|
|
27199
26726
|
same element. They must also be set inside the
|
|
27200
26727
|
shadow DOM otherwise ion-button will not be highlighted
|
|
27201
26728
|
when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
|
|
26729
|
+
|
|
26730
|
+
tabIndex={-1} is required so present() can move focus to this
|
|
26731
|
+
element (which carries the dialog role) instead of the role-less
|
|
26732
|
+
host. role="dialog" alone does not make an element focusable, so
|
|
26733
|
+
without the tabindex focus() would be a no-op and screen readers
|
|
26734
|
+
may not properly announce the dialog and its content when it opens.
|
|
27202
26735
|
*/
|
|
27203
|
-
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '
|
|
26736
|
+
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", tabIndex: -1, class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: 'ba4ebd6364faba46ac8532d1c83cb655ae873a14', class: "modal-handle",
|
|
27204
26737
|
// Prevents the handle from receiving keyboard focus when it does not cycle
|
|
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: '
|
|
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: '11d5921a8ebbcd0017d4f28a33d68049253f63f0', onSlotchange: this.onSlotChange }))));
|
|
27206
26739
|
}
|
|
27207
26740
|
get el() { return getElement(this); }
|
|
27208
26741
|
static get watchers() { return {
|
|
@@ -27305,6 +26838,15 @@ class ViewController {
|
|
|
27305
26838
|
this.state = VIEW_STATE_DESTROYED;
|
|
27306
26839
|
}
|
|
27307
26840
|
}
|
|
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
|
+
};
|
|
27308
26850
|
const convertToView = (page, params) => {
|
|
27309
26851
|
if (!page) {
|
|
27310
26852
|
return null;
|
|
@@ -27338,6 +26880,7 @@ class Nav {
|
|
|
27338
26880
|
this.ionNavDidChange = createEvent(this, "ionNavDidChange", 3);
|
|
27339
26881
|
this.transInstr = [];
|
|
27340
26882
|
this.gestureOrAnimationInProgress = false;
|
|
26883
|
+
this.useRouter = false;
|
|
27341
26884
|
this.isTransitioning = false;
|
|
27342
26885
|
this.destroyed = false;
|
|
27343
26886
|
this.views = [];
|
|
@@ -27363,9 +26906,14 @@ class Nav {
|
|
|
27363
26906
|
*/
|
|
27364
26907
|
return;
|
|
27365
26908
|
}
|
|
27366
|
-
|
|
26909
|
+
if (!this.useRouter) {
|
|
26910
|
+
if (this.root !== undefined) {
|
|
26911
|
+
this.setRoot(this.root, this.rootParams);
|
|
26912
|
+
}
|
|
26913
|
+
}
|
|
27367
26914
|
}
|
|
27368
26915
|
componentWillLoad() {
|
|
26916
|
+
this.useRouter = document.querySelector('ion-router') !== null && this.el.closest('[no-router]') === null;
|
|
27369
26917
|
if (this.swipeGesture === undefined) {
|
|
27370
26918
|
const mode = getIonMode$1(this);
|
|
27371
26919
|
this.swipeGesture = config.getBoolean('swipeBackEnabled', mode === 'ios');
|
|
@@ -27530,6 +27078,78 @@ class Nav {
|
|
|
27530
27078
|
opts,
|
|
27531
27079
|
}, done);
|
|
27532
27080
|
}
|
|
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
|
+
}
|
|
27533
27153
|
/**
|
|
27534
27154
|
* Get the active view.
|
|
27535
27155
|
*/
|
|
@@ -27595,6 +27215,25 @@ class Nav {
|
|
|
27595
27215
|
ti.reject = reject;
|
|
27596
27216
|
});
|
|
27597
27217
|
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
|
+
}
|
|
27598
27237
|
// Normalize empty
|
|
27599
27238
|
if (((_b = ti.insertViews) === null || _b === void 0 ? void 0 : _b.length) === 0) {
|
|
27600
27239
|
ti.insertViews = undefined;
|
|
@@ -27615,6 +27254,13 @@ class Nav {
|
|
|
27615
27254
|
ti.done(result.hasCompleted, result.requiresTransition, result.enteringView, result.leavingView, result.direction);
|
|
27616
27255
|
}
|
|
27617
27256
|
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
|
+
}
|
|
27618
27264
|
}
|
|
27619
27265
|
failed(rejectReason, ti) {
|
|
27620
27266
|
if (this.destroyed) {
|
|
@@ -28044,7 +27690,7 @@ class Nav {
|
|
|
28044
27690
|
}
|
|
28045
27691
|
}
|
|
28046
27692
|
render() {
|
|
28047
|
-
return hAsync("slot", { key: '
|
|
27693
|
+
return hAsync("slot", { key: 'a549286b51b1bb23c9ef51f71148452228d0ab14' });
|
|
28048
27694
|
}
|
|
28049
27695
|
get el() { return getElement(this); }
|
|
28050
27696
|
static get watchers() { return {
|
|
@@ -28075,6 +27721,8 @@ class Nav {
|
|
|
28075
27721
|
"removeIndex": [64],
|
|
28076
27722
|
"setRoot": [64],
|
|
28077
27723
|
"setPages": [64],
|
|
27724
|
+
"setRouteId": [64],
|
|
27725
|
+
"getRouteId": [64],
|
|
28078
27726
|
"getActive": [64],
|
|
28079
27727
|
"getByIndex": [64],
|
|
28080
27728
|
"canGoBack": [64],
|
|
@@ -28170,14 +27818,14 @@ class Note {
|
|
|
28170
27818
|
}; }
|
|
28171
27819
|
}
|
|
28172
27820
|
|
|
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)))}`;
|
|
27821
|
+
const pickerIosCss$1 = () => `: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)))}`;
|
|
28174
27822
|
|
|
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%)}`;
|
|
27823
|
+
const pickerMdCss$1 = () => `: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%)}`;
|
|
28176
27824
|
|
|
28177
27825
|
/**
|
|
28178
27826
|
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
28179
27827
|
*/
|
|
28180
|
-
class Picker {
|
|
27828
|
+
let Picker$1 = class Picker {
|
|
28181
27829
|
constructor(hostRef) {
|
|
28182
27830
|
registerInstance(this, hostRef);
|
|
28183
27831
|
this.ionInputModeChange = createEvent(this, "ionInputModeChange", 7);
|
|
@@ -28643,8 +28291,8 @@ class Picker {
|
|
|
28643
28291
|
}
|
|
28644
28292
|
get el() { return getElement(this); }
|
|
28645
28293
|
static get style() { return {
|
|
28646
|
-
ios: pickerIosCss(),
|
|
28647
|
-
md: pickerMdCss()
|
|
28294
|
+
ios: pickerIosCss$1(),
|
|
28295
|
+
md: pickerMdCss$1()
|
|
28648
28296
|
}; }
|
|
28649
28297
|
static get cmpMeta() { return {
|
|
28650
28298
|
"$flags$": 297,
|
|
@@ -28656,30 +28304,345 @@ class Picker {
|
|
|
28656
28304
|
"$lazyBundleId$": "-",
|
|
28657
28305
|
"$attrsToReflect$": []
|
|
28658
28306
|
}; }
|
|
28659
|
-
}
|
|
28660
|
-
|
|
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)}}`;
|
|
28307
|
+
};
|
|
28662
28308
|
|
|
28663
28309
|
/**
|
|
28664
|
-
*
|
|
28665
|
-
*
|
|
28666
|
-
* @slot prefix - Content to show on the left side of the picker options.
|
|
28667
|
-
* @slot suffix - Content to show on the right side of the picker options.
|
|
28310
|
+
* iOS Picker Enter Animation
|
|
28668
28311
|
*/
|
|
28669
|
-
|
|
28670
|
-
|
|
28671
|
-
|
|
28672
|
-
|
|
28673
|
-
|
|
28674
|
-
|
|
28675
|
-
|
|
28676
|
-
|
|
28677
|
-
|
|
28678
|
-
|
|
28679
|
-
|
|
28680
|
-
|
|
28681
|
-
|
|
28682
|
-
|
|
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)}}`;
|
|
28625
|
+
|
|
28626
|
+
/**
|
|
28627
|
+
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
28628
|
+
*
|
|
28629
|
+
* @slot prefix - Content to show on the left side of the picker options.
|
|
28630
|
+
* @slot suffix - Content to show on the right side of the picker options.
|
|
28631
|
+
*/
|
|
28632
|
+
class PickerColumn {
|
|
28633
|
+
constructor(hostRef) {
|
|
28634
|
+
registerInstance(this, hostRef);
|
|
28635
|
+
this.ionChange = createEvent(this, "ionChange", 7);
|
|
28636
|
+
this.isScrolling = false;
|
|
28637
|
+
this.isColumnVisible = false;
|
|
28638
|
+
this.canExitInputMode = true;
|
|
28639
|
+
this.updateValueTextOnScroll = false;
|
|
28640
|
+
this.ariaLabel = null;
|
|
28641
|
+
this.isActive = false;
|
|
28642
|
+
/**
|
|
28643
|
+
* If `true`, the user cannot interact with the picker.
|
|
28644
|
+
*/
|
|
28645
|
+
this.disabled = false;
|
|
28683
28646
|
/**
|
|
28684
28647
|
* The color to use from your application's color palette.
|
|
28685
28648
|
* Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
|
|
@@ -29159,89 +29122,454 @@ class PickerColumn {
|
|
|
29159
29122
|
this.centerPickerItemInView(activeEl, smooth, false);
|
|
29160
29123
|
}
|
|
29161
29124
|
}
|
|
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) {
|
|
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();
|
|
29171
29473
|
return;
|
|
29172
29474
|
}
|
|
29173
|
-
this.
|
|
29174
|
-
|
|
29175
|
-
|
|
29176
|
-
|
|
29177
|
-
|
|
29178
|
-
|
|
29179
|
-
|
|
29180
|
-
|
|
29181
|
-
|
|
29182
|
-
|
|
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
|
+
}
|
|
29499
|
+
}
|
|
29500
|
+
this.decelerate();
|
|
29183
29501
|
}
|
|
29184
29502
|
}
|
|
29185
|
-
|
|
29503
|
+
refresh(forceRefresh, animated) {
|
|
29186
29504
|
var _a;
|
|
29187
|
-
|
|
29188
|
-
|
|
29189
|
-
|
|
29190
|
-
|
|
29191
|
-
|
|
29192
|
-
|
|
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;
|
|
29505
|
+
let min = this.col.options.length - 1;
|
|
29506
|
+
let max = 0;
|
|
29507
|
+
const options = this.col.options;
|
|
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);
|
|
29199
29512
|
}
|
|
29200
|
-
|
|
29201
|
-
|
|
29513
|
+
}
|
|
29514
|
+
/**
|
|
29515
|
+
* Only update selected value if column has a
|
|
29516
|
+
* velocity of 0. If it does not, then the
|
|
29517
|
+
* column is animating might land on
|
|
29518
|
+
* a value different than the value at
|
|
29519
|
+
* selectedIndex
|
|
29520
|
+
*/
|
|
29521
|
+
if (this.velocity !== 0) {
|
|
29522
|
+
return;
|
|
29523
|
+
}
|
|
29524
|
+
const selectedIndex = clamp(min, (_a = this.col.selectedIndex) !== null && _a !== void 0 ? _a : 0, max);
|
|
29525
|
+
if (this.col.prevSelected !== selectedIndex || forceRefresh) {
|
|
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
|
+
}
|
|
29531
|
+
}
|
|
29532
|
+
onDomChange(forceRefresh, animated) {
|
|
29533
|
+
const colEl = this.optsEl;
|
|
29534
|
+
if (colEl) {
|
|
29535
|
+
// DOM READ
|
|
29536
|
+
// We perfom a DOM read over a rendered item, this needs to happen after the first render or after the column has changed
|
|
29537
|
+
this.optHeight = colEl.firstElementChild ? colEl.firstElementChild.clientHeight : 0;
|
|
29538
|
+
}
|
|
29539
|
+
this.refresh(forceRefresh, animated);
|
|
29202
29540
|
}
|
|
29203
29541
|
render() {
|
|
29204
|
-
const
|
|
29542
|
+
const col = this.col;
|
|
29205
29543
|
const mode = getIonMode$1(this);
|
|
29206
|
-
return (hAsync(Host, { key: '
|
|
29207
|
-
|
|
29208
|
-
|
|
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" })));
|
|
29544
|
+
return (hAsync(Host, { key: '86125e95f18837dfd021db01777d72a1562d8ee3', class: Object.assign({ [mode]: true, 'picker-col': true, 'picker-opts-left': this.col.align === 'left', 'picker-opts-right': this.col.align === 'right' }, getClassMap(col.cssClass)), style: {
|
|
29545
|
+
'max-width': this.col.columnWidth,
|
|
29546
|
+
} }, col.prefix && (hAsync("div", { key: 'b0f3d39e0bd128781066ffefb7a1e40d12a9e76d', class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), hAsync("div", { key: '0b106ac4d56916eaaa7f09d1b68348b3754b7bba', class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (hAsync("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (hAsync("div", { key: '00ff2f9dbb4561787e5a5223327c6a2a33f8362e', class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
|
|
29214
29547
|
}
|
|
29215
29548
|
get el() { return getElement(this); }
|
|
29216
29549
|
static get watchers() { return {
|
|
29217
|
-
"
|
|
29218
|
-
"
|
|
29219
|
-
}],
|
|
29220
|
-
"value": [{
|
|
29221
|
-
"valueChange": 0
|
|
29550
|
+
"col": [{
|
|
29551
|
+
"colChanged": 0
|
|
29222
29552
|
}]
|
|
29223
29553
|
}; }
|
|
29224
|
-
static get style() { return
|
|
29554
|
+
static get style() { return {
|
|
29555
|
+
ios: pickerColumnIosCss(),
|
|
29556
|
+
md: pickerColumnMdCss()
|
|
29557
|
+
}; }
|
|
29225
29558
|
static get cmpMeta() { return {
|
|
29226
|
-
"$flags$":
|
|
29227
|
-
"$tagName$": "ion-picker-column",
|
|
29559
|
+
"$flags$": 32,
|
|
29560
|
+
"$tagName$": "ion-picker-legacy-column",
|
|
29228
29561
|
"$members$": {
|
|
29229
|
-
"
|
|
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]
|
|
29562
|
+
"col": [16]
|
|
29238
29563
|
},
|
|
29239
29564
|
"$listeners$": undefined,
|
|
29240
29565
|
"$lazyBundleId$": "-",
|
|
29241
|
-
"$attrsToReflect$": [
|
|
29566
|
+
"$attrsToReflect$": []
|
|
29242
29567
|
}; }
|
|
29243
29568
|
}
|
|
29244
|
-
const
|
|
29569
|
+
const PICKER_OPT_SELECTED = 'picker-opt-selected';
|
|
29570
|
+
const DECELERATION_FRICTION = 0.97;
|
|
29571
|
+
const MAX_PICKER_SPEED = 90;
|
|
29572
|
+
const TRANSITION_DURATION = 150;
|
|
29245
29573
|
|
|
29246
29574
|
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}`;
|
|
29247
29575
|
|
|
@@ -30438,9 +30766,9 @@ const mdLeaveAnimation$1 = (baseEl) => {
|
|
|
30438
30766
|
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
30439
30767
|
};
|
|
30440
30768
|
|
|
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
|
|
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)}}`;
|
|
30442
30770
|
|
|
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
|
|
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}`;
|
|
30444
30772
|
|
|
30445
30773
|
// TODO(FW-2832): types
|
|
30446
30774
|
/**
|
|
@@ -30664,10 +30992,6 @@ class Popover {
|
|
|
30664
30992
|
this.headerResizeObserver.disconnect();
|
|
30665
30993
|
this.headerResizeObserver = undefined;
|
|
30666
30994
|
}
|
|
30667
|
-
// Clean up aria-hidden if removed without dismiss() being called
|
|
30668
|
-
if (this.presented) {
|
|
30669
|
-
cleanupRootFocusTrapAccessibility();
|
|
30670
|
-
}
|
|
30671
30995
|
}
|
|
30672
30996
|
componentWillLoad() {
|
|
30673
30997
|
var _a, _b;
|
|
@@ -30906,9 +31230,9 @@ class Popover {
|
|
|
30906
31230
|
const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
|
|
30907
31231
|
const desktop = isPlatform('desktop');
|
|
30908
31232
|
const enableArrow = arrow && !parentPopover;
|
|
30909
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
31233
|
+
return (hAsync(Host, Object.assign({ key: '2edd8333c630efbce59071f8a383e4326e928dbc', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
|
|
30910
31234
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
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: '
|
|
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: 'aac4e68b08197534375e8ea3f8c9ea0c10ab2af4', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), hAsync("div", { key: 'b7f4ebf57d4148b32856b0075d286f454be8de5d', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && hAsync("div", { key: '607d94c28d73e8e957175a7c0f6e8a99ec4dcd53', class: "popover-arrow", part: "arrow" }), hAsync("div", { key: '4366a5a5de550c09895e923f345583508e1ec30c', class: "popover-content", part: "content" }, hAsync("slot", { key: 'eb7886fbc99c15b667b7d825d24f1c12d9380f03' })))));
|
|
30912
31236
|
}
|
|
30913
31237
|
get el() { return getElement(this); }
|
|
30914
31238
|
static get watchers() { return {
|
|
@@ -31019,7 +31343,7 @@ class ProgressBar {
|
|
|
31019
31343
|
const mode = getIonMode$1(this);
|
|
31020
31344
|
// If the progress is displayed as a solid bar.
|
|
31021
31345
|
const progressSolid = buffer === 1;
|
|
31022
|
-
return (hAsync(Host, { key: '
|
|
31346
|
+
return (hAsync(Host, { key: 'c859e48f3d24a458239e36d925e5dc003ed07c6b', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
|
|
31023
31347
|
[mode]: true,
|
|
31024
31348
|
[`progress-bar-${type}`]: true,
|
|
31025
31349
|
'progress-paused': paused,
|
|
@@ -31204,7 +31528,7 @@ class Radio {
|
|
|
31204
31528
|
const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
|
|
31205
31529
|
const mode = getIonMode$1(this);
|
|
31206
31530
|
const inItem = hostContext('ion-item', el);
|
|
31207
|
-
return (hAsync(Host, { key: '
|
|
31531
|
+
return (hAsync(Host, { key: 'af5dc59ed528150872e907ed1036e3e2decba939', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
|
|
31208
31532
|
[mode]: true,
|
|
31209
31533
|
'in-item': inItem,
|
|
31210
31534
|
'radio-checked': checked,
|
|
@@ -31215,10 +31539,10 @@ class Radio {
|
|
|
31215
31539
|
// Focus and active styling should not apply when the radio is in an item
|
|
31216
31540
|
'ion-activatable': !inItem,
|
|
31217
31541
|
'ion-focusable': !inItem,
|
|
31218
|
-
}), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, hAsync("label", { key: '
|
|
31542
|
+
}), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, hAsync("label", { key: '1312aba3259a87fe23a6911cdfa477e309469c8b', class: "radio-wrapper" }, hAsync("div", { key: 'b342aa27e240a300836d2a135658d346b95daf09', class: {
|
|
31219
31543
|
'label-text-wrapper': true,
|
|
31220
31544
|
'label-text-wrapper-hidden': !hasLabel,
|
|
31221
|
-
}, part: "label" }, hAsync("slot", { key: '
|
|
31545
|
+
}, part: "label" }, hAsync("slot", { key: '0a4613d29aa783d1882cf889377f7e4fd4fea51d' })), hAsync("div", { key: '191faea79dc4cd8befc4b873f5bd9f5af8ca2acc', class: "native-wrapper" }, this.renderRadioControl()))));
|
|
31222
31546
|
}
|
|
31223
31547
|
get el() { return getElement(this); }
|
|
31224
31548
|
static get watchers() { return {
|
|
@@ -31237,7 +31561,7 @@ class Radio {
|
|
|
31237
31561
|
"color": [513],
|
|
31238
31562
|
"name": [1],
|
|
31239
31563
|
"disabled": [4],
|
|
31240
|
-
"value": [
|
|
31564
|
+
"value": [8],
|
|
31241
31565
|
"labelPlacement": [1, "label-placement"],
|
|
31242
31566
|
"justify": [1],
|
|
31243
31567
|
"alignment": [1],
|
|
@@ -31248,7 +31572,7 @@ class Radio {
|
|
|
31248
31572
|
},
|
|
31249
31573
|
"$listeners$": undefined,
|
|
31250
31574
|
"$lazyBundleId$": "-",
|
|
31251
|
-
"$attrsToReflect$": [["color", "color"]
|
|
31575
|
+
"$attrsToReflect$": [["color", "color"]]
|
|
31252
31576
|
}; }
|
|
31253
31577
|
}
|
|
31254
31578
|
let radioButtonIds = 0;
|
|
@@ -32313,7 +32637,7 @@ class Range {
|
|
|
32313
32637
|
const valueAtMin = dualKnobs ? this.valA === min || this.valB === min : this.valA === min;
|
|
32314
32638
|
const valueAtMax = dualKnobs ? this.valA === max || this.valB === max : this.valA === max;
|
|
32315
32639
|
renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
|
|
32316
|
-
return (hAsync(Host, { key: '
|
|
32640
|
+
return (hAsync(Host, { key: 'f8063d1234fb113fe55a7902845dd4b4da8b1edb', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
|
|
32317
32641
|
[mode]: true,
|
|
32318
32642
|
'in-item': inItem,
|
|
32319
32643
|
'range-disabled': disabled,
|
|
@@ -32327,10 +32651,10 @@ class Range {
|
|
|
32327
32651
|
'range-item-end-adjustment': needsEndAdjustment,
|
|
32328
32652
|
'range-value-min': valueAtMin,
|
|
32329
32653
|
'range-value-max': valueAtMax,
|
|
32330
|
-
}) }, hAsync("label", { key: '
|
|
32654
|
+
}) }, hAsync("label", { key: 'beead65ab01e3b18e4be59c0ee8ac6ebf32aad7c', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: '03633c689d9d2e4c50a2131bcd560329df49e314', class: {
|
|
32331
32655
|
'label-text-wrapper': true,
|
|
32332
32656
|
'label-text-wrapper-hidden': !hasLabel,
|
|
32333
|
-
}, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: '
|
|
32657
|
+
}, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: 'c066804263ab6ae7393f8dcc51184b7198844ffa', class: "native-wrapper" }, hAsync("slot", { key: '7e8ea224d72b3e965dd948bee7e45c1a096b6899', name: "start" }), this.renderRangeSlider(), hAsync("slot", { key: '21f242f6f60ff3adce6a2d90b2d4dac1ceaf6624', name: "end" })))));
|
|
32334
32658
|
}
|
|
32335
32659
|
get el() { return getElement(this); }
|
|
32336
32660
|
static get watchers() { return {
|
|
@@ -33401,7 +33725,7 @@ class Refresher {
|
|
|
33401
33725
|
}
|
|
33402
33726
|
render() {
|
|
33403
33727
|
const mode = getIonMode$1(this);
|
|
33404
|
-
return (hAsync(Host, { key: '
|
|
33728
|
+
return (hAsync(Host, { key: '80fa313b0d77161680836bdd6aa334d02c549b41', slot: "fixed", class: {
|
|
33405
33729
|
[mode]: true,
|
|
33406
33730
|
// Used internally for styling
|
|
33407
33731
|
[`refresher-${mode}`]: true,
|
|
@@ -33627,7 +33951,7 @@ class RefresherContent {
|
|
|
33627
33951
|
const pullingIcon = this.pullingIcon;
|
|
33628
33952
|
const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
|
|
33629
33953
|
const mode = getIonMode$1(this);
|
|
33630
|
-
return (hAsync(Host, { key: '
|
|
33954
|
+
return (hAsync(Host, { key: '4add42b9fdfded359d1b054d04c2c6ff48e028c8', class: mode }, hAsync("div", { key: '45d4e4e0adfed7f96dd1849767aa2cde947de044', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (hAsync("div", { key: '6bd6c8ef5bf6e10699eec3bd8646431bfe1077a0', class: "refresher-pulling-icon" }, hAsync("div", { key: '852d20414da53352c8e58bc627e0fda38eff97cb', class: "spinner-arrow-container" }, hAsync("ion-spinner", { key: '0dde3578a80cc4b77a07c4d1db1af80c7eb10c27', name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (hAsync("div", { key: 'c71dbfcf416a19c30fed38f722ebf0358c2181dd', class: "arrow-container" }, hAsync("ion-icon", { key: 'fa7c2cf624e7a9c41964e66cabc88c594da6d1fd', icon: caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (hAsync("div", { key: '3dd68c9968b421c379d1c4349ba619ee0a189c6d', class: "refresher-pulling-icon" }, hAsync("ion-icon", { key: 'f83bceceae4fa8245f91939fb6db589a595e975b', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), hAsync("div", { key: '98e22ceb0f7883e871f815f6199f5cb313e2e086', class: "refresher-refreshing" }, this.refreshingSpinner && (hAsync("div", { key: 'faabe8a9b61c02a00994ef978bb82b9ba4537214', class: "refresher-refreshing-icon" }, hAsync("ion-spinner", { key: '029a0c073ee1a07f01211e12ba2abc985cf21ed7', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
|
|
33631
33955
|
}
|
|
33632
33956
|
get el() { return getElement(this); }
|
|
33633
33957
|
static get cmpMeta() { return {
|
|
@@ -33668,7 +33992,7 @@ class Reorder {
|
|
|
33668
33992
|
render() {
|
|
33669
33993
|
const mode = getIonMode$1(this);
|
|
33670
33994
|
const reorderIcon = mode === 'ios' ? reorderThreeOutline : reorderTwoSharp;
|
|
33671
|
-
return (hAsync(Host, { key: '
|
|
33995
|
+
return (hAsync(Host, { key: 'b869db61ca6393cf1476f2111a66b387b567c6d1', class: mode }, hAsync("slot", { key: 'a78edd1776835282b8b5c841377018f36c83296c' }, hAsync("ion-icon", { key: '7fb067c47bbb9a7258e5063f028282cc097d0f94', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
|
|
33672
33996
|
}
|
|
33673
33997
|
get el() { return getElement(this); }
|
|
33674
33998
|
static get style() { return {
|
|
@@ -33939,7 +34263,7 @@ class ReorderGroup {
|
|
|
33939
34263
|
}
|
|
33940
34264
|
render() {
|
|
33941
34265
|
const mode = getIonMode$1(this);
|
|
33942
|
-
return (hAsync(Host, { key: '
|
|
34266
|
+
return (hAsync(Host, { key: '9527bbdedaab63d31f562c874a7332ea60c4b47b', class: {
|
|
33943
34267
|
[mode]: true,
|
|
33944
34268
|
'reorder-enabled': !this.disabled,
|
|
33945
34269
|
'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
|
|
@@ -34057,7 +34381,7 @@ class RippleEffect {
|
|
|
34057
34381
|
}
|
|
34058
34382
|
render() {
|
|
34059
34383
|
const mode = getIonMode$1(this);
|
|
34060
|
-
return (hAsync(Host, { key: '
|
|
34384
|
+
return (hAsync(Host, { key: '3b59cbb44741569a7350f9638b4392add673b6f1', role: "presentation", class: {
|
|
34061
34385
|
[mode]: true,
|
|
34062
34386
|
unbounded: this.unbounded,
|
|
34063
34387
|
} }));
|
|
@@ -34495,30 +34819,16 @@ const scrollToFragment = async (fragment, shouldContinue = () => true) => {
|
|
|
34495
34819
|
return false;
|
|
34496
34820
|
}
|
|
34497
34821
|
};
|
|
34498
|
-
/** How long the router waits for a navigation outlet before giving up and proceeding. */
|
|
34499
|
-
const NAV_NODE_TIMEOUT = 500;
|
|
34500
34822
|
const waitUntilNavNode = () => {
|
|
34501
34823
|
if (searchNavNode(document.body)) {
|
|
34502
34824
|
return Promise.resolve();
|
|
34503
34825
|
}
|
|
34504
34826
|
return new Promise((resolve) => {
|
|
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 });
|
|
34827
|
+
window.addEventListener('ionNavWillLoad', () => resolve(), { once: true });
|
|
34518
34828
|
});
|
|
34519
34829
|
};
|
|
34520
34830
|
/** Selector for all the outlets supported by the router. */
|
|
34521
|
-
const OUTLET_SELECTOR = ':not([no-router]) ion-tabs, :not([no-router]) ion-router-outlet';
|
|
34831
|
+
const OUTLET_SELECTOR = ':not([no-router]) ion-nav, :not([no-router]) ion-tabs, :not([no-router]) ion-router-outlet';
|
|
34522
34832
|
const searchNavNode = (root) => {
|
|
34523
34833
|
if (!root) {
|
|
34524
34834
|
return undefined;
|
|
@@ -35205,10 +35515,10 @@ class RouterLink {
|
|
|
35205
35515
|
rel: this.rel,
|
|
35206
35516
|
target: this.target,
|
|
35207
35517
|
};
|
|
35208
|
-
return (hAsync(Host, { key: '
|
|
35518
|
+
return (hAsync(Host, { key: '8372835161d507c7b821b7536c55f912eb6ce704', onClick: this.onClick, class: createColorClasses$1(this.color, {
|
|
35209
35519
|
[mode]: true,
|
|
35210
35520
|
'ion-activatable': true,
|
|
35211
|
-
}) }, hAsync("a", Object.assign({ key: '
|
|
35521
|
+
}) }, hAsync("a", Object.assign({ key: '315966e14a17760f3f64197e8315200039787897' }, attrs), hAsync("slot", { key: '95fc1697b884225e85e647dddcaa8f4af8b9a979' }))));
|
|
35212
35522
|
}
|
|
35213
35523
|
static get style() { return routerLinkCss(); }
|
|
35214
35524
|
static get cmpMeta() { return {
|
|
@@ -35247,11 +35557,10 @@ class RouterOutlet {
|
|
|
35247
35557
|
*/
|
|
35248
35558
|
this.animated = true;
|
|
35249
35559
|
}
|
|
35250
|
-
swipeGestureChanged() {
|
|
35251
|
-
this.updateGestureEnabled();
|
|
35252
|
-
}
|
|
35253
35560
|
swipeHandlerChanged() {
|
|
35254
|
-
this.
|
|
35561
|
+
if (this.gesture) {
|
|
35562
|
+
this.gesture.enable(this.swipeHandler !== undefined);
|
|
35563
|
+
}
|
|
35255
35564
|
}
|
|
35256
35565
|
async connectedCallback() {
|
|
35257
35566
|
const onStart = () => {
|
|
@@ -35291,21 +35600,11 @@ class RouterOutlet {
|
|
|
35291
35600
|
this.gestureOrAnimationInProgress = false;
|
|
35292
35601
|
}
|
|
35293
35602
|
});
|
|
35294
|
-
|
|
35295
|
-
this.swipeGesture = config.getBoolean('swipeBackEnabled', this.mode === 'ios');
|
|
35296
|
-
}
|
|
35297
|
-
else {
|
|
35298
|
-
this.updateGestureEnabled();
|
|
35299
|
-
}
|
|
35603
|
+
this.swipeHandlerChanged();
|
|
35300
35604
|
}
|
|
35301
35605
|
componentWillLoad() {
|
|
35302
35606
|
this.ionNavWillLoad.emit();
|
|
35303
35607
|
}
|
|
35304
|
-
updateGestureEnabled() {
|
|
35305
|
-
if (this.gesture) {
|
|
35306
|
-
this.gesture.enable(this.swipeHandler !== undefined && this.swipeGesture === true);
|
|
35307
|
-
}
|
|
35308
|
-
}
|
|
35309
35608
|
disconnectedCallback() {
|
|
35310
35609
|
if (this.gesture) {
|
|
35311
35610
|
this.gesture.destroy();
|
|
@@ -35416,13 +35715,10 @@ class RouterOutlet {
|
|
|
35416
35715
|
return true;
|
|
35417
35716
|
}
|
|
35418
35717
|
render() {
|
|
35419
|
-
return hAsync("slot", { key: '
|
|
35718
|
+
return hAsync("slot", { key: '386c41745b61daba161cf75063da97fe29ba36cb' });
|
|
35420
35719
|
}
|
|
35421
35720
|
get el() { return getElement(this); }
|
|
35422
35721
|
static get watchers() { return {
|
|
35423
|
-
"swipeGesture": [{
|
|
35424
|
-
"swipeGestureChanged": 0
|
|
35425
|
-
}],
|
|
35426
35722
|
"swipeHandler": [{
|
|
35427
35723
|
"swipeHandlerChanged": 0
|
|
35428
35724
|
}]
|
|
@@ -35436,7 +35732,6 @@ class RouterOutlet {
|
|
|
35436
35732
|
"delegate": [16],
|
|
35437
35733
|
"animated": [4],
|
|
35438
35734
|
"animation": [16],
|
|
35439
|
-
"swipeGesture": [1028, "swipe-gesture"],
|
|
35440
35735
|
"swipeHandler": [16],
|
|
35441
35736
|
"commit": [64],
|
|
35442
35737
|
"setRouteId": [64],
|
|
@@ -35455,7 +35750,7 @@ class Row {
|
|
|
35455
35750
|
registerInstance(this, hostRef);
|
|
35456
35751
|
}
|
|
35457
35752
|
render() {
|
|
35458
|
-
return (hAsync(Host, { key: '
|
|
35753
|
+
return (hAsync(Host, { key: '8ba906a8cbea060a79ed658c9bf34906f0c11d38', class: getIonMode$1(this) }, hAsync("slot", { key: 'd1009176f45b588fa52c7d9eb336f3c6d3214bb8' })));
|
|
35459
35754
|
}
|
|
35460
35755
|
static get style() { return rowCss(); }
|
|
35461
35756
|
static get cmpMeta() { return {
|
|
@@ -35507,7 +35802,7 @@ class Searchbar {
|
|
|
35507
35802
|
/**
|
|
35508
35803
|
* Set the input's autocorrect property.
|
|
35509
35804
|
*/
|
|
35510
|
-
this.autocorrect =
|
|
35805
|
+
this.autocorrect = 'off';
|
|
35511
35806
|
/**
|
|
35512
35807
|
* Set the cancel button icon. Only applies to `md` mode.
|
|
35513
35808
|
* Defaults to `arrow-back-sharp`.
|
|
@@ -35928,8 +36223,8 @@ class Searchbar {
|
|
|
35928
36223
|
const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
|
|
35929
36224
|
const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
|
|
35930
36225
|
const shouldShowCancelButton = this.shouldShowCancelButton();
|
|
35931
|
-
const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '
|
|
35932
|
-
return (hAsync(Host, { key: '
|
|
36226
|
+
const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '226b7a676b4819cda4062b8334fa8d4c4cee6f1a', "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: '89adb4efa17a78c973bbd5527cfac91d99ceb9bb', "aria-hidden": "true" }, mode === 'md' ? (hAsync("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
|
|
36227
|
+
return (hAsync(Host, { key: '237dd767403dba3cb3d7de8905996e275669da3b', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
|
|
35933
36228
|
[mode]: true,
|
|
35934
36229
|
'searchbar-animated': animated,
|
|
35935
36230
|
'searchbar-disabled': this.disabled,
|
|
@@ -35939,14 +36234,14 @@ class Searchbar {
|
|
|
35939
36234
|
'searchbar-has-focus': this.focused,
|
|
35940
36235
|
'searchbar-should-show-clear': this.shouldShowClearButton(),
|
|
35941
36236
|
'searchbar-should-show-cancel': this.shouldShowCancelButton(),
|
|
35942
|
-
}) }, hAsync("div", { key: '
|
|
36237
|
+
}) }, hAsync("div", { key: '5b4bdf7280bea710304b6975e76390fe6ceb7417', class: "searchbar-input-container" }, hAsync("input", Object.assign({ key: '01a0820a2cf904aec1c7d84b542ab7918d435632', "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, spellcheck: this.spellcheck }, this.inheritedAttributes)), mode === 'md' && cancelButton, hAsync("ion-icon", { key: 'cd64973206b1cc59d221112861733b7ee25f0323', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), hAsync("button", { key: '2061fa8449bbc576cf8c5130ea613378ea492944', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
|
|
35943
36238
|
/**
|
|
35944
36239
|
* This prevents mobile browsers from
|
|
35945
36240
|
* blurring the input when the clear
|
|
35946
36241
|
* button is activated.
|
|
35947
36242
|
*/
|
|
35948
36243
|
ev.preventDefault();
|
|
35949
|
-
}, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '
|
|
36244
|
+
}, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '00df6f7742bff70b1b088d544b8c00e962e7216c', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
|
|
35950
36245
|
}
|
|
35951
36246
|
get el() { return getElement(this); }
|
|
35952
36247
|
static get watchers() { return {
|
|
@@ -35978,7 +36273,7 @@ class Searchbar {
|
|
|
35978
36273
|
"animated": [4],
|
|
35979
36274
|
"autocapitalize": [1],
|
|
35980
36275
|
"autocomplete": [1],
|
|
35981
|
-
"autocorrect": [
|
|
36276
|
+
"autocorrect": [1],
|
|
35982
36277
|
"cancelButtonIcon": [1, "cancel-button-icon"],
|
|
35983
36278
|
"cancelButtonText": [1, "cancel-button-text"],
|
|
35984
36279
|
"clearIcon": [1, "clear-icon"],
|
|
@@ -36555,14 +36850,14 @@ class Segment {
|
|
|
36555
36850
|
}
|
|
36556
36851
|
render() {
|
|
36557
36852
|
const mode = getIonMode$1(this);
|
|
36558
|
-
return (hAsync(Host, { key: '
|
|
36853
|
+
return (hAsync(Host, { key: 'eda6b7b88b7967b55cf9098c59b655b348a42224', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
|
|
36559
36854
|
[mode]: true,
|
|
36560
36855
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
36561
36856
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
36562
36857
|
'segment-activated': this.activated,
|
|
36563
36858
|
'segment-disabled': this.disabled,
|
|
36564
36859
|
'segment-scrollable': this.scrollable,
|
|
36565
|
-
}) }, hAsync("slot", { key: '
|
|
36860
|
+
}) }, hAsync("slot", { key: 'fdb451f235ce59c5bb50c61a13c69160ece2d5df', onSlotchange: this.onSlottedItemsChange })));
|
|
36566
36861
|
}
|
|
36567
36862
|
get el() { return getElement(this); }
|
|
36568
36863
|
static get watchers() { return {
|
|
@@ -36710,7 +37005,7 @@ class SegmentButton {
|
|
|
36710
37005
|
const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
|
|
36711
37006
|
const mode = getIonMode$1(this);
|
|
36712
37007
|
const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
|
|
36713
|
-
return (hAsync(Host, { key: '
|
|
37008
|
+
return (hAsync(Host, { key: 'f69e2a24198a7c57543dbe66902da039a6569c64', class: {
|
|
36714
37009
|
[mode]: true,
|
|
36715
37010
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
36716
37011
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
@@ -36726,7 +37021,7 @@ class SegmentButton {
|
|
|
36726
37021
|
'ion-activatable': true,
|
|
36727
37022
|
'ion-activatable-instant': true,
|
|
36728
37023
|
'ion-focusable': true,
|
|
36729
|
-
} }, hAsync("button", Object.assign({ key: '
|
|
37024
|
+
} }, hAsync("button", Object.assign({ key: '0a6fea3a374074af19f7ece0ba3a7cf1e269ab6d', "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: '991018a38c59a6f3d76b2e952e5569c874d2c13e', class: "button-inner" }, hAsync("slot", { key: '23c547c80108025027b913c7fcbec189286627a3' })), mode === 'md' && hAsync("ion-ripple-effect", { key: '7faa9d06ab6aa7346d16b0b6808979759a79650c' })), hAsync("div", { key: '0d61badf2c227dc38e20185b2b2bb590a5efa434', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, hAsync("div", { key: 'a84035752b78491c344179d1e61d109fb4bd1cf1', part: "indicator-background", class: "segment-button-indicator-background" }))));
|
|
36730
37025
|
}
|
|
36731
37026
|
get el() { return getElement(this); }
|
|
36732
37027
|
static get watchers() { return {
|
|
@@ -36763,7 +37058,7 @@ class SegmentContent {
|
|
|
36763
37058
|
registerInstance(this, hostRef);
|
|
36764
37059
|
}
|
|
36765
37060
|
render() {
|
|
36766
|
-
return (hAsync(Host, { key: '
|
|
37061
|
+
return (hAsync(Host, { key: '665f41a854621f898eaf7ba9a49e77cc9326501e' }, hAsync("slot", { key: '635aa57fbf6167dcd36fe8dc5dfc1c313637ac04' })));
|
|
36767
37062
|
}
|
|
36768
37063
|
static get style() { return segmentContentCss(); }
|
|
36769
37064
|
static get cmpMeta() { return {
|
|
@@ -36882,11 +37177,11 @@ class SegmentView {
|
|
|
36882
37177
|
}
|
|
36883
37178
|
render() {
|
|
36884
37179
|
const { disabled, isManualScroll, swipeGesture } = this;
|
|
36885
|
-
return (hAsync(Host, { key: '
|
|
37180
|
+
return (hAsync(Host, { key: '2a6e0a1046af75b1fa0eed20a5fbbb4634480297', class: {
|
|
36886
37181
|
'segment-view-disabled': disabled,
|
|
36887
37182
|
'segment-view-scroll-disabled': isManualScroll === false,
|
|
36888
37183
|
'segment-view-swipe-disabled': swipeGesture === false,
|
|
36889
|
-
} }, hAsync("slot", { key: '
|
|
37184
|
+
} }, hAsync("slot", { key: '644b60d179d0de3fa204e3bef26a3503ceeaf1d6' })));
|
|
36890
37185
|
}
|
|
36891
37186
|
get el() { return getElement(this); }
|
|
36892
37187
|
static get style() { return {
|
|
@@ -36908,9 +37203,9 @@ class SegmentView {
|
|
|
36908
37203
|
}; }
|
|
36909
37204
|
}
|
|
36910
37205
|
|
|
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);--
|
|
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}`;
|
|
36912
37207
|
|
|
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}`;
|
|
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}`;
|
|
36914
37209
|
|
|
36915
37210
|
// TODO(FW-2832): types
|
|
36916
37211
|
/**
|
|
@@ -36945,7 +37240,6 @@ class Select {
|
|
|
36945
37240
|
this.helperTextId = `${this.inputId}-helper-text`;
|
|
36946
37241
|
this.errorTextId = `${this.inputId}-error-text`;
|
|
36947
37242
|
this.inheritedAttributes = {};
|
|
36948
|
-
this.customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
|
|
36949
37243
|
this.isExpanded = false;
|
|
36950
37244
|
/**
|
|
36951
37245
|
* The `hasFocus` state ensures the focus class is
|
|
@@ -37071,40 +37365,9 @@ class Select {
|
|
|
37071
37365
|
this.emitStyle();
|
|
37072
37366
|
}
|
|
37073
37367
|
setValue(value) {
|
|
37074
|
-
if (this.isValueEqual(this.value, value)) {
|
|
37075
|
-
return;
|
|
37076
|
-
}
|
|
37077
37368
|
this.value = value;
|
|
37078
37369
|
this.ionChange.emit({ value });
|
|
37079
37370
|
}
|
|
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
|
-
}
|
|
37108
37371
|
async connectedCallback() {
|
|
37109
37372
|
const { el } = this;
|
|
37110
37373
|
this.notchController = createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
|
|
@@ -37298,11 +37561,10 @@ class Select {
|
|
|
37298
37561
|
.join(' ');
|
|
37299
37562
|
const optClass = `${OPTION_CLASS} ${copyClasses}`;
|
|
37300
37563
|
const isSelected = isOptionSelected(selectValue, value, this.compareWith);
|
|
37301
|
-
const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
|
|
37302
37564
|
return {
|
|
37303
|
-
|
|
37565
|
+
role: isSelected ? 'selected' : '',
|
|
37566
|
+
text: option.textContent,
|
|
37304
37567
|
cssClass: optClass,
|
|
37305
|
-
disabled: option.disabled,
|
|
37306
37568
|
handler: () => {
|
|
37307
37569
|
this.setValue(value);
|
|
37308
37570
|
},
|
|
@@ -37310,9 +37572,6 @@ class Select {
|
|
|
37310
37572
|
'aria-checked': isSelected ? 'true' : 'false',
|
|
37311
37573
|
role: 'radio',
|
|
37312
37574
|
},
|
|
37313
|
-
startContent,
|
|
37314
|
-
endContent,
|
|
37315
|
-
description: option.description,
|
|
37316
37575
|
};
|
|
37317
37576
|
});
|
|
37318
37577
|
// Add "cancel" button
|
|
@@ -37333,19 +37592,13 @@ class Select {
|
|
|
37333
37592
|
.filter((cls) => cls !== 'hydrated')
|
|
37334
37593
|
.join(' ');
|
|
37335
37594
|
const optClass = `${OPTION_CLASS} ${copyClasses}`;
|
|
37336
|
-
const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
|
|
37337
37595
|
return {
|
|
37338
37596
|
type: inputType,
|
|
37339
37597
|
cssClass: optClass,
|
|
37340
|
-
label:
|
|
37598
|
+
label: option.textContent || '',
|
|
37341
37599
|
value,
|
|
37342
37600
|
checked: isOptionSelected(selectValue, value, this.compareWith),
|
|
37343
37601
|
disabled: option.disabled,
|
|
37344
|
-
startContent,
|
|
37345
|
-
endContent,
|
|
37346
|
-
description: option.description,
|
|
37347
|
-
labelPlacement: option.labelPlacement,
|
|
37348
|
-
justify: option.justify,
|
|
37349
37602
|
};
|
|
37350
37603
|
});
|
|
37351
37604
|
return alertInputs;
|
|
@@ -37358,9 +37611,8 @@ class Select {
|
|
|
37358
37611
|
.filter((cls) => cls !== 'hydrated')
|
|
37359
37612
|
.join(' ');
|
|
37360
37613
|
const optClass = `${OPTION_CLASS} ${copyClasses}`;
|
|
37361
|
-
const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
|
|
37362
37614
|
return {
|
|
37363
|
-
text:
|
|
37615
|
+
text: option.textContent || '',
|
|
37364
37616
|
cssClass: optClass,
|
|
37365
37617
|
value,
|
|
37366
37618
|
checked: isOptionSelected(selectValue, value, this.compareWith),
|
|
@@ -37371,11 +37623,6 @@ class Select {
|
|
|
37371
37623
|
this.close();
|
|
37372
37624
|
}
|
|
37373
37625
|
},
|
|
37374
|
-
startContent,
|
|
37375
|
-
endContent,
|
|
37376
|
-
description: option.description,
|
|
37377
|
-
labelPlacement: option.labelPlacement,
|
|
37378
|
-
justify: option.justify,
|
|
37379
37626
|
};
|
|
37380
37627
|
});
|
|
37381
37628
|
return popoverOptions;
|
|
@@ -37408,21 +37655,15 @@ class Select {
|
|
|
37408
37655
|
ionShadowTarget: this.nativeWrapperEl,
|
|
37409
37656
|
} });
|
|
37410
37657
|
}
|
|
37411
|
-
const options = this.createOverlaySelectOptions(this.childOpts, value);
|
|
37412
|
-
const hasRichContent = options.some((opt) => opt.startContent || opt.endContent || opt.description);
|
|
37413
37658
|
const popoverOpts = Object.assign(Object.assign({ mode,
|
|
37414
37659
|
event, alignment: 'center', size,
|
|
37415
|
-
showBackdrop }, interfaceOptions), { component: 'ion-select-popover', cssClass: [
|
|
37416
|
-
'select-popover',
|
|
37417
|
-
hasRichContent ? 'select-popover-rich-content' : undefined,
|
|
37418
|
-
interfaceOptions.cssClass,
|
|
37419
|
-
], componentProps: {
|
|
37660
|
+
showBackdrop }, interfaceOptions), { component: 'ion-select-popover', cssClass: ['select-popover', interfaceOptions.cssClass], componentProps: {
|
|
37420
37661
|
header: interfaceOptions.header,
|
|
37421
37662
|
subHeader: interfaceOptions.subHeader,
|
|
37422
37663
|
message: interfaceOptions.message,
|
|
37423
37664
|
multiple,
|
|
37424
37665
|
value,
|
|
37425
|
-
options,
|
|
37666
|
+
options: this.createOverlaySelectOptions(this.childOpts, value),
|
|
37426
37667
|
} });
|
|
37427
37668
|
return popoverController.create(popoverOpts);
|
|
37428
37669
|
}
|
|
@@ -37503,18 +37744,12 @@ class Select {
|
|
|
37503
37744
|
}
|
|
37504
37745
|
return;
|
|
37505
37746
|
}
|
|
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) {
|
|
37747
|
+
getText() {
|
|
37513
37748
|
const selectedText = this.selectedText;
|
|
37514
37749
|
if (selectedText != null && selectedText !== '') {
|
|
37515
37750
|
return selectedText;
|
|
37516
37751
|
}
|
|
37517
|
-
return generateText(this.childOpts, this.value, this.compareWith
|
|
37752
|
+
return generateText(this.childOpts, this.value, this.compareWith);
|
|
37518
37753
|
}
|
|
37519
37754
|
setFocus() {
|
|
37520
37755
|
if (this.focusEl) {
|
|
@@ -37584,47 +37819,6 @@ class Select {
|
|
|
37584
37819
|
*/
|
|
37585
37820
|
return this.renderLabel();
|
|
37586
37821
|
}
|
|
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
|
-
}
|
|
37628
37822
|
/**
|
|
37629
37823
|
* Renders either the placeholder
|
|
37630
37824
|
* or the selected values based on
|
|
@@ -37632,7 +37826,7 @@ class Select {
|
|
|
37632
37826
|
*/
|
|
37633
37827
|
renderSelectText() {
|
|
37634
37828
|
const { placeholder } = this;
|
|
37635
|
-
const displayValue = this.getText(
|
|
37829
|
+
const displayValue = this.getText();
|
|
37636
37830
|
let addPlaceholderClass = false;
|
|
37637
37831
|
let selectText = displayValue;
|
|
37638
37832
|
if (selectText === '' && placeholder !== undefined) {
|
|
@@ -37644,10 +37838,6 @@ class Select {
|
|
|
37644
37838
|
'select-placeholder': addPlaceholderClass,
|
|
37645
37839
|
};
|
|
37646
37840
|
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
|
-
}
|
|
37651
37841
|
return (hAsync("div", { "aria-hidden": "true", class: selectTextClasses, part: textPart }, selectText));
|
|
37652
37842
|
}
|
|
37653
37843
|
/**
|
|
@@ -37670,7 +37860,6 @@ class Select {
|
|
|
37670
37860
|
get ariaLabel() {
|
|
37671
37861
|
var _a;
|
|
37672
37862
|
const { placeholder, inheritedAttributes } = this;
|
|
37673
|
-
// Get the plain text from the selected text
|
|
37674
37863
|
const displayValue = this.getText();
|
|
37675
37864
|
// The aria label should be preferred over visible text if both are specified
|
|
37676
37865
|
const definedLabel = (_a = inheritedAttributes['aria-label']) !== null && _a !== void 0 ? _a : this.labelText;
|
|
@@ -37764,7 +37953,7 @@ class Select {
|
|
|
37764
37953
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
37765
37954
|
*/
|
|
37766
37955
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
|
|
37767
|
-
return (hAsync(Host, { key: '
|
|
37956
|
+
return (hAsync(Host, { key: '5f4ee901b65554eacc9fa52230d06b1a5ff1247c', onClick: this.onClick, class: createColorClasses$1(this.color, {
|
|
37768
37957
|
[mode]: true,
|
|
37769
37958
|
'in-item': inItem,
|
|
37770
37959
|
'in-item-color': hostContext('ion-item.ion-color', el),
|
|
@@ -37782,7 +37971,7 @@ class Select {
|
|
|
37782
37971
|
[`select-justify-${justify}`]: justifyEnabled,
|
|
37783
37972
|
[`select-shape-${shape}`]: shape !== undefined,
|
|
37784
37973
|
[`select-label-placement-${labelPlacement}`]: true,
|
|
37785
|
-
}) }, hAsync("label", { key: '
|
|
37974
|
+
}) }, hAsync("label", { key: 'd56d89b5b58da2b5eaebada9d1be58ca45c67806', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), hAsync("div", { key: 'bc8bf089c693781ad5b3a5db76a12223867d748e', class: "select-wrapper-inner", part: "inner" }, hAsync("slot", { key: 'e1c12b96f1573eb192608c458ed1f3463174cd89', name: "start" }), hAsync("div", { key: '6ee5e3900d8e462f175649b502ac6faa2f2b9909', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: 'faeaea34aad412e1458beab95d4b1b9ca7b87c41', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: 'aeff51e51c990844869eff9940575ce6b2223135', class: "select-highlight" })), this.renderBottomContent()));
|
|
37786
37975
|
}
|
|
37787
37976
|
get el() { return getElement(this); }
|
|
37788
37977
|
static get watchers() { return {
|
|
@@ -37853,232 +38042,34 @@ const parseValue = (value) => {
|
|
|
37853
38042
|
}
|
|
37854
38043
|
return value.toString();
|
|
37855
38044
|
};
|
|
37856
|
-
const generateText = (opts, value, compareWith
|
|
38045
|
+
const generateText = (opts, value, compareWith) => {
|
|
37857
38046
|
if (value === undefined) {
|
|
37858
38047
|
return '';
|
|
37859
38048
|
}
|
|
37860
38049
|
if (Array.isArray(value)) {
|
|
37861
38050
|
return value
|
|
37862
|
-
.map((v) => textForValue(opts, v, compareWith
|
|
38051
|
+
.map((v) => textForValue(opts, v, compareWith))
|
|
37863
38052
|
.filter((opt) => opt !== null)
|
|
37864
38053
|
.join(', ');
|
|
37865
38054
|
}
|
|
37866
38055
|
else {
|
|
37867
|
-
return textForValue(opts, value, compareWith
|
|
38056
|
+
return textForValue(opts, value, compareWith) || '';
|
|
37868
38057
|
}
|
|
37869
38058
|
};
|
|
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) => {
|
|
38059
|
+
const textForValue = (opts, value, compareWith) => {
|
|
37882
38060
|
const selectOpt = opts.find((opt) => {
|
|
37883
38061
|
return compareOptions(value, getOptionValue(opt), compareWith);
|
|
37884
38062
|
});
|
|
37885
|
-
|
|
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
|
-
};
|
|
38063
|
+
return selectOpt ? selectOpt.textContent : null;
|
|
38073
38064
|
};
|
|
38074
38065
|
let selectIds = 0;
|
|
38075
38066
|
const OPTION_CLASS = 'select-interface-option';
|
|
38076
38067
|
|
|
38077
|
-
const ionicSelectModalMdCss = () => `.
|
|
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)}`;
|
|
38078
38069
|
|
|
38079
|
-
const selectModalIosCss = () => `.
|
|
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)}`;
|
|
38080
38071
|
|
|
38081
|
-
const selectModalMdCss = () => `.
|
|
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)}`;
|
|
38082
38073
|
|
|
38083
38074
|
class SelectModal {
|
|
38084
38075
|
constructor(hostRef) {
|
|
@@ -38132,90 +38123,39 @@ class SelectModal {
|
|
|
38132
38123
|
}
|
|
38133
38124
|
}
|
|
38134
38125
|
renderRadioOptions() {
|
|
38135
|
-
const mode = getIonMode$1(this);
|
|
38136
38126
|
const checked = this.options.filter((o) => o.checked).map((o) => o.value)[0];
|
|
38137
|
-
return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, this.options.map((option
|
|
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",
|
|
38127
|
+
return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, this.options.map((option) => (hAsync("ion-item", { lines: "none", class: Object.assign({
|
|
38157
38128
|
// TODO FW-4784
|
|
38158
|
-
|
|
38159
|
-
|
|
38160
|
-
|
|
38161
|
-
|
|
38162
|
-
|
|
38163
|
-
|
|
38164
|
-
|
|
38165
|
-
|
|
38166
|
-
|
|
38167
|
-
}
|
|
38168
|
-
|
|
38169
|
-
|
|
38129
|
+
'item-radio-checked': option.value === checked
|
|
38130
|
+
}, getClassMap(option.cssClass)) }, hAsync("ion-radio", { value: option.value, disabled: option.disabled, justify: "start", labelPlacement: "end", onClick: () => this.closeModal(), onKeyDown: (ev) => {
|
|
38131
|
+
if (ev.key === 'Enter' && !ev.repeat) {
|
|
38132
|
+
this.pendingEnterTarget = ev.currentTarget;
|
|
38133
|
+
}
|
|
38134
|
+
}, onKeyUp: (ev) => {
|
|
38135
|
+
if (ev.key === ' ') {
|
|
38136
|
+
// Space selects and dismisses in one press.
|
|
38137
|
+
this.closeModal();
|
|
38138
|
+
}
|
|
38139
|
+
else if (ev.key === 'Enter') {
|
|
38140
|
+
const shouldClose = this.pendingEnterTarget === ev.currentTarget;
|
|
38141
|
+
this.pendingEnterTarget = null;
|
|
38142
|
+
if (shouldClose) {
|
|
38170
38143
|
this.closeModal();
|
|
38171
38144
|
}
|
|
38172
|
-
|
|
38173
|
-
|
|
38174
|
-
this.pendingEnterTarget = null;
|
|
38175
|
-
if (shouldClose) {
|
|
38176
|
-
this.closeModal();
|
|
38177
|
-
}
|
|
38178
|
-
}
|
|
38179
|
-
} }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
|
|
38180
|
-
})));
|
|
38145
|
+
}
|
|
38146
|
+
} }, option.text))))));
|
|
38181
38147
|
}
|
|
38182
38148
|
renderCheckboxOptions() {
|
|
38183
|
-
|
|
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", {
|
|
38149
|
+
return this.options.map((option) => (hAsync("ion-item", { class: Object.assign({
|
|
38204
38150
|
// TODO FW-4784
|
|
38205
|
-
|
|
38206
|
-
|
|
38207
|
-
|
|
38208
|
-
|
|
38209
|
-
}
|
|
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
|
-
});
|
|
38151
|
+
'item-checkbox-checked': option.checked
|
|
38152
|
+
}, getClassMap(option.cssClass)) }, hAsync("ion-checkbox", { value: option.value, disabled: option.disabled, checked: option.checked, justify: "start", labelPlacement: "end", onIonChange: (ev) => {
|
|
38153
|
+
this.setChecked(ev);
|
|
38154
|
+
this.callOptionHandler(ev);
|
|
38155
|
+
} }, option.text))));
|
|
38216
38156
|
}
|
|
38217
38157
|
render() {
|
|
38218
|
-
return (hAsync(Host, { key: '
|
|
38158
|
+
return (hAsync(Host, { key: 'fda0bf6f93cd5ec9f3c64f88a52de849e0e140a2', class: getIonMode$1(this) }, hAsync("ion-header", { key: '27c0b17175a53db9ff159feeeb96451a3f011dab' }, hAsync("ion-toolbar", { key: '91a4155ebc317fbc9f1bb3e26a7e94754b953c9b' }, this.header !== undefined && hAsync("ion-title", { key: 'f6dae8e4e381f322cc90efefd9bb6ef81d4d2f3e' }, this.header), hAsync("ion-buttons", { key: 'e7760532fb2e7e7385ed6e62097d92d96ff20148', slot: "end" }, hAsync("ion-button", { key: '4999b6fc46cba138186546dca67b7950855e6fb7', onClick: () => this.closeModal() }, this.cancelText)))), hAsync("ion-content", { key: 'c73f80a4bc25b9061ea65cf11e5d811c1a4d8704' }, hAsync("ion-list", { key: 'b21905d15b36ad5eb45845e768918d2763cf48b1' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
|
|
38219
38159
|
}
|
|
38220
38160
|
get el() { return getElement(this); }
|
|
38221
38161
|
static get style() { return {
|
|
@@ -38240,24 +38180,17 @@ class SelectModal {
|
|
|
38240
38180
|
|
|
38241
38181
|
const selectOptionCss = () => `:host{display:none}`;
|
|
38242
38182
|
|
|
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
|
-
*/
|
|
38250
38183
|
class SelectOption {
|
|
38251
38184
|
constructor(hostRef) {
|
|
38252
38185
|
registerInstance(this, hostRef);
|
|
38253
38186
|
this.inputId = `ion-selopt-${selectOptionIds++}`;
|
|
38254
38187
|
/**
|
|
38255
|
-
* If `true`, the user cannot interact with the select option.
|
|
38188
|
+
* If `true`, the user cannot interact with the select option. This property does not apply when `interface="action-sheet"` as `ion-action-sheet` does not allow for disabled buttons.
|
|
38256
38189
|
*/
|
|
38257
38190
|
this.disabled = false;
|
|
38258
38191
|
}
|
|
38259
38192
|
render() {
|
|
38260
|
-
return hAsync(Host, { key: '
|
|
38193
|
+
return hAsync(Host, { key: '824730b6c1e4f15b716e91b05840e890af5f1577', role: "option", id: this.inputId, class: getIonMode$1(this) });
|
|
38261
38194
|
}
|
|
38262
38195
|
get el() { return getElement(this); }
|
|
38263
38196
|
static get style() { return selectOptionCss(); }
|
|
@@ -38266,10 +38199,7 @@ class SelectOption {
|
|
|
38266
38199
|
"$tagName$": "ion-select-option",
|
|
38267
38200
|
"$members$": {
|
|
38268
38201
|
"disabled": [4],
|
|
38269
|
-
"value": [8]
|
|
38270
|
-
"description": [1],
|
|
38271
|
-
"labelPlacement": [1, "label-placement"],
|
|
38272
|
-
"justify": [1]
|
|
38202
|
+
"value": [8]
|
|
38273
38203
|
},
|
|
38274
38204
|
"$listeners$": undefined,
|
|
38275
38205
|
"$lazyBundleId$": "-",
|
|
@@ -38278,9 +38208,9 @@ class SelectOption {
|
|
|
38278
38208
|
}
|
|
38279
38209
|
let selectOptionIds = 0;
|
|
38280
38210
|
|
|
38281
|
-
const selectPopoverIosCss = () => `.
|
|
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}`;
|
|
38282
38212
|
|
|
38283
|
-
const selectPopoverMdCss = () => `.
|
|
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)}`;
|
|
38284
38214
|
|
|
38285
38215
|
/**
|
|
38286
38216
|
* @internal
|
|
@@ -38354,91 +38284,41 @@ class SelectPopover {
|
|
|
38354
38284
|
}
|
|
38355
38285
|
}
|
|
38356
38286
|
renderCheckboxOptions(options) {
|
|
38357
|
-
|
|
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", {
|
|
38287
|
+
return options.map((option) => (hAsync("ion-item", { class: Object.assign({
|
|
38378
38288
|
// TODO FW-4784
|
|
38379
|
-
|
|
38380
|
-
|
|
38381
|
-
|
|
38382
|
-
|
|
38383
|
-
}
|
|
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
|
-
});
|
|
38289
|
+
'item-checkbox-checked': option.checked
|
|
38290
|
+
}, getClassMap(option.cssClass)) }, hAsync("ion-checkbox", { value: option.value, disabled: option.disabled, checked: option.checked, justify: "start", labelPlacement: "end", onIonChange: (ev) => {
|
|
38291
|
+
this.setChecked(ev);
|
|
38292
|
+
this.callOptionHandler(ev);
|
|
38293
|
+
} }, option.text))));
|
|
38390
38294
|
}
|
|
38391
38295
|
renderRadioOptions(options) {
|
|
38392
|
-
const mode = getIonMode$1(this);
|
|
38393
38296
|
const checked = options.filter((o) => o.checked).map((o) => o.value)[0];
|
|
38394
|
-
return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, options.map((option
|
|
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", {
|
|
38297
|
+
return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, options.map((option) => (hAsync("ion-item", { class: Object.assign({
|
|
38412
38298
|
// TODO FW-4784
|
|
38413
|
-
|
|
38414
|
-
|
|
38415
|
-
|
|
38416
|
-
|
|
38417
|
-
|
|
38418
|
-
|
|
38419
|
-
|
|
38420
|
-
|
|
38421
|
-
|
|
38422
|
-
|
|
38423
|
-
|
|
38424
|
-
|
|
38425
|
-
|
|
38299
|
+
'item-radio-checked': option.value === checked
|
|
38300
|
+
}, getClassMap(option.cssClass)) }, hAsync("ion-radio", { value: option.value, disabled: option.disabled, onClick: () => this.dismissParentPopover(), onKeyDown: (ev) => {
|
|
38301
|
+
if (ev.key === 'Enter' && !ev.repeat) {
|
|
38302
|
+
this.pendingEnterTarget = ev.currentTarget;
|
|
38303
|
+
}
|
|
38304
|
+
}, onKeyUp: (ev) => {
|
|
38305
|
+
if (ev.key === ' ') {
|
|
38306
|
+
// Space selects and dismisses in one press.
|
|
38307
|
+
this.dismissParentPopover();
|
|
38308
|
+
}
|
|
38309
|
+
else if (ev.key === 'Enter') {
|
|
38310
|
+
const shouldDismiss = this.pendingEnterTarget === ev.currentTarget;
|
|
38311
|
+
this.pendingEnterTarget = null;
|
|
38312
|
+
if (shouldDismiss) {
|
|
38426
38313
|
this.dismissParentPopover();
|
|
38427
38314
|
}
|
|
38428
|
-
|
|
38429
|
-
|
|
38430
|
-
this.pendingEnterTarget = null;
|
|
38431
|
-
if (shouldDismiss) {
|
|
38432
|
-
this.dismissParentPopover();
|
|
38433
|
-
}
|
|
38434
|
-
}
|
|
38435
|
-
} }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
|
|
38436
|
-
})));
|
|
38315
|
+
}
|
|
38316
|
+
} }, option.text))))));
|
|
38437
38317
|
}
|
|
38438
38318
|
render() {
|
|
38439
38319
|
const { header, message, options, subHeader } = this;
|
|
38440
38320
|
const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
|
|
38441
|
-
return (hAsync(Host, { key: '
|
|
38321
|
+
return (hAsync(Host, { key: 'e7449a1ecfcdbf45a79f8e26a00253c4e146448a', class: getIonMode$1(this) }, hAsync("ion-list", { key: '52abdfc8668c3429a0dcefef8ddedb6647fdd894' }, header !== undefined && hAsync("ion-list-header", { key: '978e5c03728756feafcc60a0e10e6ec59bf2ae11' }, header), hasSubHeaderOrMessage && (hAsync("ion-item", { key: 'e93c44e7f07a76def16e4b11f0fb4780d84ed402' }, hAsync("ion-label", { key: 'bba1aac43b0bc7f4f00978dd8301985233f3725c', class: "ion-text-wrap" }, subHeader !== undefined && hAsync("h3", { key: 'ad96f6017cf2cc5219540bded2c4f1ca3b532de2' }, subHeader), message !== undefined && hAsync("p", { key: '3fd038921dc40c4d0c29734433984b279ccaeec3' }, message)))), this.renderOptions(options))));
|
|
38442
38322
|
}
|
|
38443
38323
|
get el() { return getElement(this); }
|
|
38444
38324
|
static get style() { return {
|
|
@@ -38488,11 +38368,11 @@ class SkeletonText {
|
|
|
38488
38368
|
const animated = this.animated && config.getBoolean('animated', true);
|
|
38489
38369
|
const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
|
|
38490
38370
|
const mode = getIonMode$1(this);
|
|
38491
|
-
return (hAsync(Host, { key: '
|
|
38371
|
+
return (hAsync(Host, { key: 'cb8da9aba121811b9a4ffdae60ed88105897cb3c', class: {
|
|
38492
38372
|
[mode]: true,
|
|
38493
38373
|
'skeleton-text-animated': animated,
|
|
38494
38374
|
'in-media': inMedia,
|
|
38495
|
-
} }, hAsync("span", { key: '
|
|
38375
|
+
} }, hAsync("span", { key: '5379deee3c76d46d615be0cba14b4f60129ffa25' }, "\u00A0")));
|
|
38496
38376
|
}
|
|
38497
38377
|
get el() { return getElement(this); }
|
|
38498
38378
|
static get style() { return skeletonTextCss(); }
|
|
@@ -38544,7 +38424,7 @@ class Spinner {
|
|
|
38544
38424
|
svgs.push(buildLine(spinner, duration, i, spinner.lines));
|
|
38545
38425
|
}
|
|
38546
38426
|
}
|
|
38547
|
-
return (hAsync(Host, { key: '
|
|
38427
|
+
return (hAsync(Host, { key: 'dd1954e557fa14b943e761474e29e4316ba53938', class: createColorClasses$1(self.color, {
|
|
38548
38428
|
[mode]: true,
|
|
38549
38429
|
[`spinner-${spinnerName}`]: true,
|
|
38550
38430
|
'spinner-paused': self.paused || config.getBoolean('_testing'),
|
|
@@ -38643,12 +38523,12 @@ class SplitPane {
|
|
|
38643
38523
|
}
|
|
38644
38524
|
render() {
|
|
38645
38525
|
const mode = getIonMode$1(this);
|
|
38646
|
-
return (hAsync(Host, { key: '
|
|
38526
|
+
return (hAsync(Host, { key: '05c88c009fbe2e223fd261760a2b49da1653ff62', class: {
|
|
38647
38527
|
[mode]: true,
|
|
38648
38528
|
// Used internally for styling
|
|
38649
38529
|
[`split-pane-${mode}`]: true,
|
|
38650
38530
|
'split-pane-visible': this.visible,
|
|
38651
|
-
} }, hAsync("slot", { key: '
|
|
38531
|
+
} }, hAsync("slot", { key: 'b35865082661253c4468520d79234fa5dab5bd35' })));
|
|
38652
38532
|
}
|
|
38653
38533
|
get el() { return getElement(this); }
|
|
38654
38534
|
static get watchers() { return {
|
|
@@ -38720,10 +38600,10 @@ class Tab {
|
|
|
38720
38600
|
}
|
|
38721
38601
|
render() {
|
|
38722
38602
|
const { tab, active, component } = this;
|
|
38723
|
-
return (hAsync(Host, { key: '
|
|
38603
|
+
return (hAsync(Host, { key: 'fbd837bad7a0632336d46a597ace23673b153e48', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
|
|
38724
38604
|
'ion-page': component === undefined,
|
|
38725
38605
|
'tab-hidden': !active,
|
|
38726
|
-
} }, hAsync("slot", { key: '
|
|
38606
|
+
} }, hAsync("slot", { key: '35c218169fda826c9c1337558e0278d0c7f5f26a' })));
|
|
38727
38607
|
}
|
|
38728
38608
|
get el() { return getElement(this); }
|
|
38729
38609
|
static get watchers() { return {
|
|
@@ -38837,11 +38717,11 @@ class TabBar {
|
|
|
38837
38717
|
const { color, translucent, keyboardVisible } = this;
|
|
38838
38718
|
const mode = getIonMode$1(this);
|
|
38839
38719
|
const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
|
|
38840
|
-
return (hAsync(Host, { key: '
|
|
38720
|
+
return (hAsync(Host, { key: '24e164eaf81a0bec9237b561465618f10990806c', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
|
|
38841
38721
|
[mode]: true,
|
|
38842
38722
|
'tab-bar-translucent': translucent,
|
|
38843
38723
|
'tab-bar-hidden': shouldHide,
|
|
38844
|
-
}) }, hAsync("slot", { key: '
|
|
38724
|
+
}) }, hAsync("slot", { key: '0ca29a2d97a7c38bbf43f8d79e271b874b4d9be8' })));
|
|
38845
38725
|
}
|
|
38846
38726
|
get el() { return getElement(this); }
|
|
38847
38727
|
static get watchers() { return {
|
|
@@ -38939,7 +38819,7 @@ class TabButton {
|
|
|
38939
38819
|
rel,
|
|
38940
38820
|
target,
|
|
38941
38821
|
};
|
|
38942
|
-
return (hAsync(Host, { key: '
|
|
38822
|
+
return (hAsync(Host, { key: '638b93ef40701ec3aefb89b1579eb91aaf6d4f8a', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
|
|
38943
38823
|
[mode]: true,
|
|
38944
38824
|
'tab-selected': selected,
|
|
38945
38825
|
'tab-disabled': disabled,
|
|
@@ -38951,7 +38831,7 @@ class TabButton {
|
|
|
38951
38831
|
'ion-activatable': true,
|
|
38952
38832
|
'ion-selectable': true,
|
|
38953
38833
|
'ion-focusable': true,
|
|
38954
|
-
} }, hAsync("a", Object.assign({ key: '
|
|
38834
|
+
} }, hAsync("a", Object.assign({ key: 'c053d32fbcdad8d5e4a409956b47164d7a080c6b' }, 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: 'b3b460d33ec978a46b069442280d31b23bc8e794', class: "button-inner" }, hAsync("slot", { key: '87b3928475c941263261101b8fae27c6370d4671' })), mode === 'md' && hAsync("ion-ripple-effect", { key: '6532e5b4546aebe4becaebe1c93ce0e6aedaffe7', type: "unbounded" }))));
|
|
38955
38835
|
}
|
|
38956
38836
|
get el() { return getElement(this); }
|
|
38957
38837
|
static get style() { return {
|
|
@@ -39142,7 +39022,7 @@ class Tabs {
|
|
|
39142
39022
|
return Array.from(this.el.querySelectorAll('ion-tab'));
|
|
39143
39023
|
}
|
|
39144
39024
|
render() {
|
|
39145
|
-
return (hAsync(Host, { key: '
|
|
39025
|
+
return (hAsync(Host, { key: 'c7131135b31aa312dc0207602561e1c0f4ac3e53', onIonTabButtonClick: this.onTabClicked }, hAsync("slot", { key: '6c46e91c0389bbcea1f15f35cf3ea513a74ac545', name: "top" }), hAsync("div", { key: '4f1b649d8bb60b61402b97359de204979c5eda52', class: "tabs-inner" }, hAsync("slot", { key: '8d1ef4952be4fb33567376e1083ea4da697fcae0' })), hAsync("slot", { key: '260b8da8031494e9cb4635b3d22c49a433042db1', name: "bottom" })));
|
|
39146
39026
|
}
|
|
39147
39027
|
get el() { return getElement(this); }
|
|
39148
39028
|
static get style() { return tabsCss(); }
|
|
@@ -39182,9 +39062,9 @@ class Text {
|
|
|
39182
39062
|
}
|
|
39183
39063
|
render() {
|
|
39184
39064
|
const mode = getIonMode$1(this);
|
|
39185
|
-
return (hAsync(Host, { key: '
|
|
39065
|
+
return (hAsync(Host, { key: 'bfaa49d35f43b8036725ae8a322c716fc6e43bdf', class: createColorClasses$1(this.color, {
|
|
39186
39066
|
[mode]: true,
|
|
39187
|
-
}) }, hAsync("slot", { key: '
|
|
39067
|
+
}) }, hAsync("slot", { key: 'c04880cd1935b42cbe60f58fd523b4d8a96072dc' })));
|
|
39188
39068
|
}
|
|
39189
39069
|
static get style() { return textCss(); }
|
|
39190
39070
|
static get cmpMeta() { return {
|
|
@@ -39645,7 +39525,7 @@ class Textarea {
|
|
|
39645
39525
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
39646
39526
|
*/
|
|
39647
39527
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
|
|
39648
|
-
return (hAsync(Host, { key: '
|
|
39528
|
+
return (hAsync(Host, { key: '4257e84acd46f43390fa2413d0b8f40e16a37499', class: createColorClasses$1(this.color, {
|
|
39649
39529
|
[mode]: true,
|
|
39650
39530
|
'has-value': hasValue,
|
|
39651
39531
|
'has-focus': hasFocus,
|
|
@@ -39654,7 +39534,7 @@ class Textarea {
|
|
|
39654
39534
|
[`textarea-shape-${shape}`]: shape !== undefined,
|
|
39655
39535
|
[`textarea-label-placement-${labelPlacement}`]: true,
|
|
39656
39536
|
'textarea-disabled': disabled,
|
|
39657
|
-
}) }, hAsync("label", { key: '
|
|
39537
|
+
}) }, hAsync("label", { key: '003da35bad92ab36777b7ae40855541bf900c64a', class: "textarea-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: '3cae2d19f96ba2b18a2d64298fdcc4b64ad34ac7', class: "textarea-wrapper-inner" }, hAsync("div", { key: 'e26cb06763d551f7f83b6ea80349871aab18a016', class: "start-slot-wrapper" }, hAsync("slot", { key: '135ba6db893eaca5f2a785fe61e24f33f56f3765', name: "start" })), hAsync("div", { key: '951eabdd01c5e370790cec8578268361dcc8abdc', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, hAsync("textarea", Object.assign({ key: '13d78f1a934b9f8d85cd9ed386dabc786f953f1d', 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: '699038558019470bccb4853fa65e7aeb069e0baa', class: "end-slot-wrapper" }, hAsync("slot", { key: '19d8c212d7c718aeb6924e10bf8e48cad01314ea', name: "end" }))), shouldRenderHighlight && hAsync("div", { key: '910a9437437ce7cab21e37a1cb4a6b309afda58f', class: "textarea-highlight" })), this.renderBottomContent()));
|
|
39658
39538
|
}
|
|
39659
39539
|
get el() { return getElement(this); }
|
|
39660
39540
|
static get watchers() { return {
|
|
@@ -39723,7 +39603,7 @@ class Thumbnail {
|
|
|
39723
39603
|
registerInstance(this, hostRef);
|
|
39724
39604
|
}
|
|
39725
39605
|
render() {
|
|
39726
|
-
return (hAsync(Host, { key: '
|
|
39606
|
+
return (hAsync(Host, { key: 'b250e01664238f1dca8f9757b15bc3d5d9387ffa', class: getIonMode$1(this) }, hAsync("slot", { key: '72cb568bccabc983c5186a7596ef6c6d4ebf5ad9' })));
|
|
39727
39607
|
}
|
|
39728
39608
|
static get style() { return thumbnailCss(); }
|
|
39729
39609
|
static get cmpMeta() { return {
|
|
@@ -40583,9 +40463,9 @@ class Toast {
|
|
|
40583
40463
|
if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
|
|
40584
40464
|
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);
|
|
40585
40465
|
}
|
|
40586
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
40466
|
+
return (hAsync(Host, Object.assign({ key: 'b5256edcf33d0ef51e6c5080c84e1ca58abe2ae0', tabindex: "-1" }, this.htmlAttributes, { style: {
|
|
40587
40467
|
zIndex: `${60000 + this.overlayIndex}`,
|
|
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: '
|
|
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: '0860f7e895d8bc66e44c4d924ca569f4cbb1a749', class: wrapperClass, part: "wrapper" }, hAsync("div", { key: '28784199c880a3f664677c8f5560b7caa8903251', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (hAsync("ion-icon", { key: '0a63ba1336ad43d2aec14e49055eb46c112359c2', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), hAsync("div", { key: 'ecec8107af582dc55d4b3828dd7f3054a29f26b1', 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')))));
|
|
40589
40469
|
}
|
|
40590
40470
|
get el() { return getElement(this); }
|
|
40591
40471
|
static get watchers() { return {
|
|
@@ -40903,7 +40783,7 @@ class Toggle {
|
|
|
40903
40783
|
const value = this.getValue();
|
|
40904
40784
|
const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
|
|
40905
40785
|
renderHiddenInput(true, el, name, checked ? value : '', disabled);
|
|
40906
|
-
return (hAsync(Host, { key: '
|
|
40786
|
+
return (hAsync(Host, { key: '736e1dcfca34fd41f6f0632652e7f86d6996a232', 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, {
|
|
40907
40787
|
[mode]: true,
|
|
40908
40788
|
'in-item': hostContext('ion-item', el),
|
|
40909
40789
|
'toggle-activated': activated,
|
|
@@ -40913,10 +40793,10 @@ class Toggle {
|
|
|
40913
40793
|
[`toggle-alignment-${alignment}`]: alignment !== undefined,
|
|
40914
40794
|
[`toggle-label-placement-${labelPlacement}`]: true,
|
|
40915
40795
|
[`toggle-${rtl}`]: true,
|
|
40916
|
-
}) }, hAsync("label", { key: '
|
|
40796
|
+
}) }, hAsync("label", { key: 'e697739fd3964c1c6c23331cf7e38a9841c46a6a', class: "toggle-wrapper", htmlFor: inputId }, hAsync("input", Object.assign({ key: '3d500b8c1bc879591249d183c1abb3f5f26aff6b', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, required: required }, inheritedAttributes)), hAsync("div", { key: 'e38f3fe0e66b4ca434fd81514f5ef771c2960841', class: {
|
|
40917
40797
|
'label-text-wrapper': true,
|
|
40918
40798
|
'label-text-wrapper-hidden': !hasLabel,
|
|
40919
|
-
}, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: '
|
|
40799
|
+
}, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: '006dd3558264d69ab020c07005b348adc4ecdd5b' }), this.renderHintText()), hAsync("div", { key: 'dd4e52de31caabee41ec1bc58efecd1e213368c9', class: "native-wrapper" }, this.renderToggleControl()))));
|
|
40920
40800
|
}
|
|
40921
40801
|
get el() { return getElement(this); }
|
|
40922
40802
|
static get watchers() { return {
|
|
@@ -41028,10 +40908,10 @@ class Toolbar {
|
|
|
41028
40908
|
this.childrenStyles.forEach((value) => {
|
|
41029
40909
|
Object.assign(childStyles, value);
|
|
41030
40910
|
});
|
|
41031
|
-
return (hAsync(Host, { key: '
|
|
40911
|
+
return (hAsync(Host, { key: 'b849db2863778dee6c5a251bffa1b3a657aeb036', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
|
|
41032
40912
|
[mode]: true,
|
|
41033
40913
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
41034
|
-
})) }, hAsync("div", { key: '
|
|
40914
|
+
})) }, hAsync("div", { key: '67f5bba9c4f527c3f35bfe1313a2b85741f9b246', class: "toolbar-background", part: "background" }), hAsync("div", { key: '085e8c68f056e5b0deb9d1606431fbeb45dae8e5', class: "toolbar-container", part: "container" }, hAsync("slot", { key: '15227c79c3baf883fd8c43fdb7e1313453933c79', name: "start" }), hAsync("slot", { key: '0b8a7f7e685aa31c80d9bc03446ccc3a9d07e0e8', name: "secondary" }), hAsync("div", { key: '57e4628c1fa89df79dd80456259db961bb691404', class: "toolbar-content", part: "content" }, hAsync("slot", { key: '82c2f6e1acf8d96db259bd8baf295881801edbd5' })), hAsync("slot", { key: 'b2d4afb15214199f206c0a5e08b581e4c9c2f58a', name: "primary" }), hAsync("slot", { key: 'bfb909a0c472f8834046c2ea23bef2f562167ad3', name: "end" }))));
|
|
41035
40915
|
}
|
|
41036
40916
|
get el() { return getElement(this); }
|
|
41037
40917
|
static get style() { return {
|
|
@@ -41077,11 +40957,11 @@ class ToolbarTitle {
|
|
|
41077
40957
|
render() {
|
|
41078
40958
|
const mode = getIonMode$1(this);
|
|
41079
40959
|
const size = this.getSize();
|
|
41080
|
-
return (hAsync(Host, { key: '
|
|
40960
|
+
return (hAsync(Host, { key: '44e63f8439df64c470692904427b417e19406476', class: createColorClasses$1(this.color, {
|
|
41081
40961
|
[mode]: true,
|
|
41082
40962
|
[`title-${size}`]: true,
|
|
41083
40963
|
'title-rtl': document.dir === 'rtl',
|
|
41084
|
-
}) }, hAsync("div", { key: '
|
|
40964
|
+
}) }, hAsync("div", { key: '784cf60a0db16045391891cc8fad0c7dbeba4039', class: "toolbar-title" }, hAsync("slot", { key: '0c720a50479ba257e8756337aeb9b0ab7516a227' }))));
|
|
41085
40965
|
}
|
|
41086
40966
|
get el() { return getElement(this); }
|
|
41087
40967
|
static get watchers() { return {
|
|
@@ -41161,8 +41041,10 @@ registerComponents([
|
|
|
41161
41041
|
Nav,
|
|
41162
41042
|
NavLink,
|
|
41163
41043
|
Note,
|
|
41044
|
+
Picker$1,
|
|
41164
41045
|
Picker,
|
|
41165
41046
|
PickerColumn,
|
|
41047
|
+
PickerColumnCmp,
|
|
41166
41048
|
PickerColumnOption,
|
|
41167
41049
|
Popover,
|
|
41168
41050
|
ProgressBar,
|