@ionic/core 8.8.14-dev.11784238294.131cd99d → 8.8.14-dev.11784563563.137a903a
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-accordion-group.js +1 -1
- package/components/ion-accordion.js +1 -1
- package/components/ion-action-sheet.js +1 -1
- package/components/ion-alert.js +1 -1
- package/components/ion-app.js +1 -1
- package/components/ion-avatar.js +1 -1
- package/components/ion-back-button.js +1 -1
- package/components/ion-backdrop.js +1 -1
- package/components/ion-badge.js +1 -1
- package/components/ion-breadcrumb.js +1 -1
- package/components/ion-breadcrumbs.js +1 -1
- package/components/ion-button.js +1 -1
- package/components/ion-buttons.js +1 -1
- package/components/ion-card-content.js +1 -1
- package/components/ion-card-header.js +1 -1
- package/components/ion-card-subtitle.js +1 -1
- package/components/ion-card-title.js +1 -1
- package/components/ion-card.js +1 -1
- package/components/ion-checkbox.js +1 -1
- package/components/ion-chip.js +1 -1
- package/components/ion-col.js +1 -1
- package/components/ion-content.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-fab-list.js +1 -1
- package/components/ion-fab.js +1 -1
- package/components/ion-footer.js +1 -1
- package/components/ion-grid.js +1 -1
- package/components/ion-header.js +1 -1
- package/components/ion-img.js +1 -1
- package/components/ion-infinite-scroll-content.js +1 -1
- package/components/ion-infinite-scroll.js +1 -1
- package/components/ion-input-otp.js +1 -1
- package/components/ion-input-password-toggle.js +1 -1
- package/components/ion-input.js +1 -1
- package/components/ion-item-divider.js +1 -1
- package/components/ion-item-group.js +1 -1
- package/components/ion-item-option.js +1 -1
- package/components/ion-item-options.js +1 -1
- package/components/ion-item-sliding.js +1 -1
- package/components/ion-item.js +1 -1
- package/components/ion-label.js +1 -1
- package/components/ion-list-header.js +1 -1
- package/components/ion-list.js +1 -1
- package/components/ion-loading.js +1 -1
- package/components/ion-menu-button.js +1 -1
- package/components/ion-menu-toggle.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-note.js +1 -1
- package/components/ion-picker-column-option.js +1 -1
- package/components/ion-picker-column.js +1 -1
- package/components/ion-popover.js +1 -1
- package/components/ion-progress-bar.js +1 -1
- package/components/ion-radio-group.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-BLmJ0zRm.js → p-8cRBED2y.js} +1 -1
- package/components/{p-BSEgsdFI.js → p-B5Ia5kbJ.js} +1 -1
- package/components/p-BG9RNTmW.js +4 -0
- package/components/p-BSQPZ79H.js +4 -0
- package/components/p-BnTB62Lu.js +4 -0
- package/components/p-BwKpO3Is.js +4 -0
- package/components/p-CEktCi-l.js +4 -0
- package/components/{p-B60hm8Qv.js → p-CHdYfvVx.js} +1 -1
- package/components/{p-B9jFTlwE.js → p-CPa2WmW7.js} +1 -1
- package/components/{p-BnqQlm7c.js → p-CYhGN6l4.js} +1 -1
- package/components/{p-ryqmO0B-.js → p-CbJDPICP.js} +1 -1
- package/components/{p-rCa2eL0j.js → p-CtQ-1ZRt.js} +1 -1
- package/components/p-CwcD5kE9.js +4 -0
- package/components/{p--JUspHvy.js → p-CyFtf1Mm.js} +1 -1
- package/components/{p-DqZAXv2t.js → p-CzuRCorP.js} +1 -1
- package/components/{p-j5IxBIan.js → p-D-lHU3L1.js} +1 -1
- package/components/p-D1-tlI3U.js +4 -0
- package/components/p-D2D6VdCA.js +4 -0
- package/components/{p-BHrrc-3d.js → p-D355UF9s.js} +1 -1
- package/components/{p-5bE_Wz4Y.js → p-DEI720fP.js} +1 -1
- package/components/p-DK0D_QD_.js +4 -0
- package/components/p-DXTfY6aF.js +4 -0
- package/components/{p-Cfx4M1Bn.js → p-DfjhtfFw.js} +1 -1
- package/components/{p-CI3ncNZm.js → p-Dg1a5T1q.js} +1 -1
- package/components/{p-lE_JGpHD.js → p-Ds1Brlka.js} +1 -1
- package/components/p-Dtmv7Nm_.js +4 -0
- package/components/{p-BirPFsRD.js → p-Dy5czMtc.js} +1 -1
- package/components/p-FV45cfy9.js +4 -0
- package/components/p-LMGfIvTf.js +4 -0
- package/components/{p-CSZf8_j0.js → p-XX59Wsi5.js} +1 -1
- package/components/p-jOtMJMv8.js +4 -0
- package/components/p-xjzudrQv.js +4 -0
- package/dist/cjs/{app-globals-BlqrqKTN.js → app-globals-7VMuu6PT.js} +1 -1
- package/dist/cjs/config-DWdFbSNK.js +35 -0
- package/dist/cjs/index-Cueg3U4w.js +429 -0
- package/dist/cjs/{index-aC4x3Fk3.js → index-IPWmFzOn.js} +1 -1
- package/dist/cjs/index.cjs.js +7 -7
- package/dist/cjs/ion-accordion_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-action-sheet.cjs.entry.js +28 -8
- package/dist/cjs/ion-alert.cjs.entry.js +65 -26
- package/dist/cjs/ion-app_8.cjs.entry.js +24 -10
- package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-back-button.cjs.entry.js +1 -1
- package/dist/cjs/ion-backdrop.cjs.entry.js +1 -1
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-button_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-card_5.cjs.entry.js +1 -1
- package/dist/cjs/ion-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/ion-chip.cjs.entry.js +1 -1
- package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-datetime-button.cjs.entry.js +5 -11
- package/dist/cjs/{ion-datetime_3.cjs.entry.js → ion-datetime.cjs.entry.js} +13 -657
- package/dist/cjs/ion-fab_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-img.cjs.entry.js +4 -2
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +4 -3
- package/dist/cjs/ion-input-otp.cjs.entry.js +1 -1
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +1 -1
- package/dist/cjs/ion-input.cjs.entry.js +5 -5
- package/dist/cjs/ion-item-option_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-item_8.cjs.entry.js +3 -3
- package/dist/cjs/ion-loading.cjs.entry.js +11 -6
- package/dist/cjs/ion-menu_3.cjs.entry.js +3 -3
- package/dist/cjs/ion-modal.cjs.entry.js +24 -33
- package/dist/cjs/ion-nav_2.cjs.entry.js +3 -116
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +4 -10
- package/dist/cjs/ion-picker-column.cjs.entry.js +5 -11
- package/dist/cjs/ion-popover.cjs.entry.js +10 -6
- package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
- package/dist/cjs/ion-radio_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-range.cjs.entry.js +4 -4
- package/dist/cjs/ion-refresher_2.cjs.entry.js +7 -6
- package/dist/cjs/ion-reorder_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
- package/dist/cjs/ion-route_4.cjs.entry.js +19 -5
- package/dist/cjs/ion-searchbar.cjs.entry.js +6 -6
- 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 +5 -5
- package/dist/cjs/ion-select-modal.cjs.entry.js +85 -31
- package/dist/cjs/ion-select_3.cjs.entry.js +408 -50
- package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
- package/dist/cjs/ion-split-pane.cjs.entry.js +3 -3
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +5 -5
- package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-text.cjs.entry.js +3 -3
- package/dist/cjs/ion-textarea.cjs.entry.js +3 -3
- package/dist/cjs/ion-toast.cjs.entry.js +7 -6
- package/dist/cjs/ion-toggle.cjs.entry.js +4 -4
- package/dist/cjs/{ionic-global-B-cA6LkY.js → ionic-global-CbxQmwkf.js} +2 -2
- package/dist/cjs/ionic.cjs.js +3 -3
- package/dist/cjs/loader.cjs.js +3 -3
- package/dist/cjs/overlay-control-label-D2sdL2O8.js +50 -0
- package/dist/cjs/{overlays-DdtIYQUH.js → overlays-DXnnHORC.js} +28 -32
- package/dist/cjs/select-option-render-DTF50t5r.js +124 -0
- package/dist/collection/collection-manifest.json +6 -10
- package/dist/collection/components/action-sheet/action-sheet.ios.css +229 -2
- package/dist/collection/components/action-sheet/action-sheet.js +24 -5
- package/dist/collection/components/action-sheet/action-sheet.md.css +175 -2
- package/dist/collection/components/alert/alert.ios.css +280 -10
- package/dist/collection/components/alert/alert.js +59 -21
- package/dist/collection/components/alert/alert.md.css +269 -20
- package/dist/collection/components/datetime/datetime.ios.css +42 -2
- package/dist/collection/components/datetime/datetime.js +10 -17
- package/dist/collection/components/datetime/datetime.md.css +42 -1
- package/dist/collection/components/datetime-button/datetime-button.ios.css +5 -0
- package/dist/collection/components/datetime-button/datetime-button.js +3 -10
- package/dist/collection/components/datetime-button/datetime-button.md.css +5 -0
- package/dist/collection/components/img/img.js +6 -1
- package/dist/collection/components/input/input.js +8 -8
- package/dist/collection/components/loading/loading.js +7 -3
- package/dist/collection/components/modal/gestures/sheet.js +0 -7
- package/dist/collection/components/modal/gestures/swipe-to-close.js +0 -7
- package/dist/collection/components/modal/modal.ios.css +0 -8
- package/dist/collection/components/modal/modal.js +23 -18
- package/dist/collection/components/modal/modal.md.css +0 -8
- package/dist/collection/components/nav/nav.js +4 -219
- package/dist/collection/components/picker-column/picker-column.css +3 -0
- package/dist/collection/components/picker-column/picker-column.js +4 -11
- package/dist/collection/components/picker-column-option/picker-column-option.js +3 -10
- package/dist/collection/components/picker-column-option/picker-column-option.md.css +6 -1
- package/dist/collection/components/popover/popover.ios.css +15 -0
- package/dist/collection/components/popover/popover.js +7 -3
- package/dist/collection/components/popover/popover.md.css +15 -0
- package/dist/collection/components/progress-bar/progress-bar.js +1 -1
- package/dist/collection/components/radio/radio.js +4 -4
- package/dist/collection/components/range/range.js +3 -3
- package/dist/collection/components/refresher/refresher.js +1 -1
- package/dist/collection/components/refresher-content/refresher-content.js +1 -1
- package/dist/collection/components/reorder/reorder.js +1 -1
- package/dist/collection/components/reorder-group/reorder-group.js +1 -1
- package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
- package/dist/collection/components/route/route.js +1 -1
- package/dist/collection/components/router/utils/dom.js +22 -3
- package/dist/collection/components/router-link/router-link.js +2 -2
- package/dist/collection/components/router-outlet/router-outlet.js +38 -5
- package/dist/collection/components/row/row.js +1 -1
- package/dist/collection/components/searchbar/searchbar.js +9 -9
- package/dist/collection/components/segment/segment.js +2 -2
- package/dist/collection/components/segment-button/segment-button.js +2 -2
- package/dist/collection/components/segment-content/segment-content.js +1 -1
- package/dist/collection/components/segment-view/segment-view.js +2 -2
- package/dist/collection/components/select/select.ios.css +33 -0
- package/dist/collection/components/select/select.js +323 -16
- package/dist/collection/components/select/select.md.css +33 -0
- package/dist/collection/components/select-modal/select-modal.ios.css +219 -0
- package/dist/collection/components/select-modal/select-modal.js +79 -26
- package/dist/collection/components/select-modal/select-modal.md.css +165 -0
- package/dist/collection/components/select-option/select-option.js +67 -3
- package/dist/collection/components/select-popover/select-popover.ios.css +219 -0
- package/dist/collection/components/select-popover/select-popover.js +78 -26
- package/dist/collection/components/select-popover/select-popover.md.css +165 -0
- package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
- package/dist/collection/components/spinner/spinner.js +1 -1
- package/dist/collection/components/split-pane/split-pane.js +2 -2
- package/dist/collection/components/tab/tab.js +2 -2
- package/dist/collection/components/tab-bar/tab-bar.js +2 -2
- package/dist/collection/components/tab-button/tab-button.js +2 -2
- package/dist/collection/components/tabs/tabs.js +1 -1
- package/dist/collection/components/text/text.js +2 -2
- package/dist/collection/components/textarea/textarea.js +2 -2
- package/dist/collection/components/thumbnail/thumbnail.js +1 -1
- package/dist/collection/components/title/title.js +2 -2
- package/dist/collection/components/toast/toast.js +2 -2
- package/dist/collection/components/toggle/toggle.js +3 -3
- package/dist/collection/components/toolbar/toolbar.js +2 -2
- package/dist/collection/index.js +1 -1
- package/dist/collection/utils/overlay-control-label.js +45 -0
- package/dist/collection/utils/overlays.js +26 -30
- package/dist/collection/utils/platform.js +2 -2
- package/dist/collection/utils/sanitization/index.js +274 -18
- package/dist/collection/utils/select-option-render.js +119 -0
- package/dist/collection/utils/test/playwright/drag-element.js +0 -5
- package/dist/docs.json +556 -1272
- package/dist/esm/{app-globals-D0C5S4hU.js → app-globals-DNgPBV1i.js} +1 -1
- package/dist/esm/config-BwKpO3Is.js +31 -0
- package/dist/esm/{index-Q6UPU0Ay.js → index-0f4UTH6Z.js} +1 -1
- package/dist/esm/{index-DV3sJJW8.js → index-AlrZKoWR.js} +1 -1
- package/dist/esm/index-DQSkZyOJ.js +424 -0
- package/dist/esm/index.js +5 -4
- package/dist/esm/ion-accordion_2.entry.js +2 -2
- package/dist/esm/ion-action-sheet.entry.js +28 -8
- package/dist/esm/ion-alert.entry.js +64 -25
- package/dist/esm/ion-app_8.entry.js +24 -10
- package/dist/esm/ion-avatar_3.entry.js +2 -2
- package/dist/esm/ion-back-button.entry.js +2 -2
- package/dist/esm/ion-backdrop.entry.js +1 -1
- package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
- package/dist/esm/ion-button_2.entry.js +1 -1
- package/dist/esm/ion-card_5.entry.js +1 -1
- package/dist/esm/ion-checkbox.entry.js +1 -1
- package/dist/esm/ion-chip.entry.js +1 -1
- package/dist/esm/ion-col_3.entry.js +2 -2
- package/dist/esm/ion-datetime-button.entry.js +5 -11
- package/dist/esm/{ion-datetime_3.entry.js → ion-datetime.entry.js} +17 -659
- package/dist/esm/ion-fab_3.entry.js +2 -2
- package/dist/esm/ion-img.entry.js +5 -3
- package/dist/esm/ion-infinite-scroll_2.entry.js +3 -2
- package/dist/esm/ion-input-otp.entry.js +1 -1
- package/dist/esm/ion-input-password-toggle.entry.js +2 -2
- package/dist/esm/ion-input.entry.js +6 -6
- package/dist/esm/ion-item-option_3.entry.js +1 -1
- package/dist/esm/ion-item_8.entry.js +4 -4
- package/dist/esm/ion-loading.entry.js +10 -5
- package/dist/esm/ion-menu_3.entry.js +4 -4
- package/dist/esm/ion-modal.entry.js +24 -33
- package/dist/esm/ion-nav_2.entry.js +4 -117
- package/dist/esm/ion-picker-column-option.entry.js +4 -10
- package/dist/esm/ion-picker-column.entry.js +5 -11
- package/dist/esm/ion-popover.entry.js +10 -6
- package/dist/esm/ion-progress-bar.entry.js +2 -2
- package/dist/esm/ion-radio_2.entry.js +4 -4
- package/dist/esm/ion-range.entry.js +4 -4
- package/dist/esm/ion-refresher_2.entry.js +6 -5
- package/dist/esm/ion-reorder_2.entry.js +4 -4
- package/dist/esm/ion-ripple-effect.entry.js +2 -2
- package/dist/esm/ion-route_4.entry.js +19 -5
- package/dist/esm/ion-searchbar.entry.js +7 -7
- 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 +5 -5
- package/dist/esm/ion-select-modal.entry.js +85 -31
- package/dist/esm/ion-select_3.entry.js +411 -53
- package/dist/esm/ion-spinner.entry.js +2 -2
- package/dist/esm/ion-split-pane.entry.js +3 -3
- package/dist/esm/ion-tab-bar_2.entry.js +5 -5
- package/dist/esm/ion-tab_2.entry.js +3 -3
- package/dist/esm/ion-text.entry.js +3 -3
- package/dist/esm/ion-textarea.entry.js +3 -3
- package/dist/esm/ion-toast.entry.js +6 -5
- package/dist/esm/ion-toggle.entry.js +5 -5
- package/dist/esm/{ionic-global-Cp_eT4sZ.js → ionic-global-pMW1XhFZ.js} +2 -2
- package/dist/esm/ionic.js +3 -3
- package/dist/esm/loader.js +3 -3
- package/dist/esm/overlay-control-label-BSQPZ79H.js +47 -0
- package/dist/esm/{overlays-Dg0q2_tJ.js → overlays-DVgWBV3s.js} +29 -33
- package/dist/esm/select-option-render-B8nWZRnd.js +122 -0
- package/dist/html.html-data.json +52 -80
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-d889ff6d.entry.js → p-06cef0c6.entry.js} +1 -1
- package/dist/ionic/{p-c6e49f3f.entry.js → p-0be097d7.entry.js} +1 -1
- package/dist/ionic/{p-dfa8d673.entry.js → p-0e7de053.entry.js} +1 -1
- package/dist/ionic/p-129d3ed9.entry.js +4 -0
- package/dist/ionic/p-1d9e649a.entry.js +4 -0
- package/dist/ionic/p-2b3a2a38.entry.js +4 -0
- package/dist/ionic/{p-0fa9c382.entry.js → p-306b2e91.entry.js} +1 -1
- package/dist/ionic/{p-fabcce6c.entry.js → p-341032b3.entry.js} +1 -1
- package/dist/ionic/{p-37e720da.entry.js → p-34c8f2dc.entry.js} +1 -1
- package/dist/ionic/{p-e0be05c5.entry.js → p-3ce3a59d.entry.js} +1 -1
- package/dist/ionic/p-3d719e91.entry.js +4 -0
- package/dist/ionic/{p-3a7d1e91.entry.js → p-408afa6d.entry.js} +1 -1
- package/dist/ionic/{p-9a65ac7f.entry.js → p-426130ad.entry.js} +1 -1
- package/dist/ionic/p-5599e1e1.entry.js +4 -0
- package/dist/ionic/{p-75dc25ba.entry.js → p-567b25e9.entry.js} +1 -1
- package/dist/ionic/p-570a212e.entry.js +4 -0
- package/dist/ionic/{p-4858af1f.entry.js → p-656e8181.entry.js} +1 -1
- package/dist/ionic/p-686de5dc.entry.js +4 -0
- package/dist/ionic/{p-b6a7397c.entry.js → p-694aa5fc.entry.js} +1 -1
- package/dist/ionic/p-73d06afe.entry.js +4 -0
- package/dist/ionic/{p-34586ead.entry.js → p-79054426.entry.js} +1 -1
- package/dist/ionic/{p-9f1103ce.entry.js → p-79b2abe6.entry.js} +1 -1
- package/dist/ionic/p-7cb5cf53.entry.js +4 -0
- package/dist/ionic/{p-3353c229.entry.js → p-80b44b3c.entry.js} +1 -1
- package/dist/ionic/p-845eb5d5.entry.js +4 -0
- package/dist/ionic/p-88f33e44.entry.js +4 -0
- package/dist/ionic/p-89c9c057.entry.js +4 -0
- package/dist/ionic/{p-c4d8641b.entry.js → p-8c4bdd70.entry.js} +1 -1
- package/dist/ionic/{p-a3bdcae6.entry.js → p-8c898f59.entry.js} +1 -1
- package/dist/ionic/p-8cde6208.entry.js +4 -0
- package/dist/ionic/{p-5d1da0a2.entry.js → p-9366f06d.entry.js} +1 -1
- package/dist/ionic/p-9a29ba8c.entry.js +4 -0
- package/dist/ionic/{p-DV3sJJW8.js → p-AlrZKoWR.js} +1 -1
- package/dist/ionic/p-BDtODLZ4.js +4 -0
- package/dist/ionic/p-BSQPZ79H.js +4 -0
- package/dist/ionic/p-BwKpO3Is.js +4 -0
- package/dist/ionic/p-CGqbOURp.js +4 -0
- package/dist/ionic/{p-KjNvRoEp.js → p-D9iu80E_.js} +1 -1
- package/dist/ionic/p-DCOvXkOm.js +4 -0
- package/dist/ionic/p-DZigX5id.js +4 -0
- package/dist/ionic/p-DeSfrUWZ.js +4 -0
- package/dist/ionic/{p-84d5ce05.entry.js → p-a1448991.entry.js} +1 -1
- package/dist/ionic/{p-390ca786.entry.js → p-a256aeb6.entry.js} +1 -1
- package/dist/ionic/{p-8c8eee7d.entry.js → p-aeff523a.entry.js} +1 -1
- package/dist/ionic/{p-8eb8ee76.entry.js → p-b2f15bd0.entry.js} +1 -1
- package/dist/ionic/p-b7737b44.entry.js +4 -0
- package/dist/ionic/p-ba99d16b.entry.js +4 -0
- package/dist/ionic/{p-ef4c3bee.entry.js → p-cdfe2531.entry.js} +1 -1
- package/dist/ionic/p-cf68f89c.entry.js +4 -0
- package/dist/ionic/p-d183a4ba.entry.js +4 -0
- package/dist/ionic/p-d57560ff.entry.js +4 -0
- package/dist/ionic/p-d5be2815.entry.js +4 -0
- package/dist/ionic/{p-874b4bd8.entry.js → p-d6d91a44.entry.js} +1 -1
- package/dist/ionic/{p-4745f534.entry.js → p-e3842b54.entry.js} +1 -1
- package/dist/ionic/{p-3ae5f277.entry.js → p-e56b1836.entry.js} +1 -1
- package/dist/ionic/p-f09f9642.entry.js +4 -0
- package/dist/ionic/p-f2ae690a.entry.js +4 -0
- package/dist/ionic/{p-3a126bca.entry.js → p-f5b104d9.entry.js} +1 -1
- package/dist/ionic/p-f88310b9.entry.js +4 -0
- package/dist/ionic/p-fd4e56cd.entry.js +4 -0
- package/dist/types/components/img/img.d.ts +2 -0
- package/dist/types/components/input/input.d.ts +1 -1
- package/dist/types/components/modal/modal.d.ts +11 -4
- package/dist/types/components/nav/nav-interface.d.ts +0 -1
- package/dist/types/components/nav/nav.d.ts +2 -22
- package/dist/types/components/route/route.d.ts +1 -1
- package/dist/types/components/router-outlet/router-outlet.d.ts +7 -0
- package/dist/types/components/searchbar/searchbar.d.ts +1 -1
- package/dist/types/components/select/select-interface.d.ts +31 -0
- package/dist/types/components/select/select.d.ts +18 -0
- package/dist/types/components/select-option/select-option.d.ts +42 -1
- package/dist/types/components.d.ts +74 -311
- package/dist/types/index.d.ts +1 -1
- package/dist/types/interface.d.ts +0 -1
- package/dist/types/utils/config.d.ts +0 -8
- package/dist/types/utils/overlay-control-label.d.ts +32 -0
- package/dist/types/utils/overlays.d.ts +11 -9
- package/dist/types/utils/sanitization/index.d.ts +58 -2
- package/dist/types/utils/select-option-render.d.ts +53 -0
- package/hydrate/index.js +1355 -1261
- package/hydrate/index.mjs +1355 -1261
- package/package.json +37 -5
- package/components/ion-picker-legacy-column.d.ts +0 -11
- package/components/ion-picker-legacy-column.js +0 -4
- package/components/ion-picker-legacy.d.ts +0 -11
- package/components/ion-picker-legacy.js +0 -4
- package/components/p-BIPPbW0M.js +0 -4
- package/components/p-BUYFy35a.js +0 -4
- package/components/p-BWEZufiK.js +0 -4
- package/components/p-BjfgFSSR.js +0 -4
- package/components/p-BqpciLfi.js +0 -4
- package/components/p-BsPelv04.js +0 -4
- package/components/p-BsQPAqo9.js +0 -4
- package/components/p-CRNiQiYf.js +0 -4
- package/components/p-CU5rbWAW.js +0 -4
- package/components/p-DOFCbuQR.js +0 -4
- package/components/p-W5nO8mX_.js +0 -4
- package/components/p-k_E4tX5Z.js +0 -4
- package/components/p-nyXeHk23.js +0 -4
- package/dist/cjs/config-xninhj0J.js +0 -201
- package/dist/collection/components/picker-legacy/animations/ios.enter.js +0 -27
- package/dist/collection/components/picker-legacy/animations/ios.leave.js +0 -23
- package/dist/collection/components/picker-legacy/picker-interface.js +0 -1
- package/dist/collection/components/picker-legacy/picker.ios.css +0 -300
- package/dist/collection/components/picker-legacy/picker.js +0 -890
- package/dist/collection/components/picker-legacy/picker.md.css +0 -287
- package/dist/collection/components/picker-legacy-column/picker-column.ios.css +0 -231
- package/dist/collection/components/picker-legacy-column/picker-column.js +0 -422
- package/dist/collection/components/picker-legacy-column/picker-column.md.css +0 -222
- package/dist/collection/components/picker-legacy-column/test/test.utils.js +0 -43
- package/dist/esm/config-DQCONYYp.js +0 -195
- package/dist/ionic/p-01f81ea5.entry.js +0 -4
- package/dist/ionic/p-06c232a4.entry.js +0 -4
- package/dist/ionic/p-0dc33652.entry.js +0 -4
- package/dist/ionic/p-20b1a044.entry.js +0 -4
- package/dist/ionic/p-21eb76d5.entry.js +0 -4
- package/dist/ionic/p-27d30585.entry.js +0 -4
- package/dist/ionic/p-2a05aa64.entry.js +0 -4
- package/dist/ionic/p-2bb2cb18.entry.js +0 -4
- package/dist/ionic/p-485fda23.entry.js +0 -4
- package/dist/ionic/p-4baa5b82.entry.js +0 -4
- package/dist/ionic/p-5018dfc8.entry.js +0 -4
- package/dist/ionic/p-50e1194a.entry.js +0 -4
- package/dist/ionic/p-5eb8e86d.entry.js +0 -4
- package/dist/ionic/p-65ebdf1b.entry.js +0 -4
- package/dist/ionic/p-6ebdbebe.entry.js +0 -4
- package/dist/ionic/p-8fce95d5.entry.js +0 -4
- package/dist/ionic/p-9f9db3a2.entry.js +0 -4
- package/dist/ionic/p-D-3ycHmd.js +0 -4
- package/dist/ionic/p-DzWaWHGc.js +0 -4
- package/dist/ionic/p-Nqf6uvGh.js +0 -4
- package/dist/ionic/p-SNAkTDfm.js +0 -4
- package/dist/ionic/p-a21add2f.entry.js +0 -4
- package/dist/ionic/p-c0fb8edd.entry.js +0 -4
- package/dist/ionic/p-c38b648e.entry.js +0 -4
- package/dist/ionic/p-ca2ab74d.entry.js +0 -4
- package/dist/ionic/p-e6a4bb56.entry.js +0 -4
- package/dist/ionic/p-ec090e0a.entry.js +0 -4
- package/dist/ionic/p-f386f6ae.entry.js +0 -4
- package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +0 -5
- package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +0 -5
- package/dist/types/components/picker-legacy/picker-interface.d.ts +0 -52
- package/dist/types/components/picker-legacy/picker.d.ts +0 -158
- package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
- package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +0 -9
package/hydrate/index.js
CHANGED
|
@@ -318,9 +318,9 @@ const isDesktop = (win) => !isMobile(win);
|
|
|
318
318
|
const isHybrid = (win) => isCordova(win) || isCapacitorNative(win);
|
|
319
319
|
const isCordova = (win) => !!(win['cordova'] || win['phonegap'] || win['PhoneGap']);
|
|
320
320
|
const isCapacitorNative = (win) => {
|
|
321
|
+
var _a;
|
|
321
322
|
const capacitor = win['Capacitor'];
|
|
322
|
-
|
|
323
|
-
return !!((capacitor === null || capacitor === void 0 ? void 0 : capacitor.isNative) || ((capacitor === null || capacitor === void 0 ? void 0 : capacitor.isNativePlatform) && !!capacitor.isNativePlatform()));
|
|
323
|
+
return !!((_a = capacitor === null || capacitor === void 0 ? void 0 : capacitor.isNativePlatform) === null || _a === void 0 ? void 0 : _a.call(capacitor));
|
|
324
324
|
};
|
|
325
325
|
const isElectron = (win) => testUserAgent(win, /electron/i);
|
|
326
326
|
const isPWA = (win) => { var _a; return !!(((_a = win.matchMedia) === null || _a === void 0 ? void 0 : _a.call(win, '(display-mode: standalone)').matches) || win.navigator.standalone); };
|
|
@@ -8041,7 +8041,7 @@ const focusElementInOverlay = (hostToFocus, overlay) => {
|
|
|
8041
8041
|
* Should NOT include: Toast
|
|
8042
8042
|
*/
|
|
8043
8043
|
const trapKeyboardFocus = (ev, doc) => {
|
|
8044
|
-
const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-
|
|
8044
|
+
const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover');
|
|
8045
8045
|
const target = ev.target;
|
|
8046
8046
|
/**
|
|
8047
8047
|
* If no active overlay, ignore this event.
|
|
@@ -8275,7 +8275,7 @@ const dismissOverlay = (doc, data, role, overlayTag, id) => {
|
|
|
8275
8275
|
*/
|
|
8276
8276
|
const getOverlays = (doc, selector) => {
|
|
8277
8277
|
if (selector === undefined) {
|
|
8278
|
-
selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-
|
|
8278
|
+
selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover,ion-toast';
|
|
8279
8279
|
}
|
|
8280
8280
|
return Array.from(doc.querySelectorAll(selector)).filter((c) => c.overlayIndex > 0);
|
|
8281
8281
|
};
|
|
@@ -8337,6 +8337,29 @@ const setRootAriaHidden = (hidden = false) => {
|
|
|
8337
8337
|
viewContainer.removeAttribute('aria-hidden');
|
|
8338
8338
|
}
|
|
8339
8339
|
};
|
|
8340
|
+
/**
|
|
8341
|
+
* Cleans up root `aria-hidden` and `backdrop-no-scroll` when
|
|
8342
|
+
* an overlay is removed from the DOM without going through
|
|
8343
|
+
* the `dismiss()` flow (e.g., when a framework unmounts the
|
|
8344
|
+
* overlay during a route change).
|
|
8345
|
+
*
|
|
8346
|
+
* Should be called from an overlay's `disconnectedCallback`
|
|
8347
|
+
* when the overlay was still presented at the time of removal.
|
|
8348
|
+
*/
|
|
8349
|
+
const cleanupRootFocusTrapAccessibility = () => {
|
|
8350
|
+
if (typeof document === 'undefined') {
|
|
8351
|
+
return;
|
|
8352
|
+
}
|
|
8353
|
+
const remainingOverlays = getPresentedOverlays(document);
|
|
8354
|
+
const hasRemainingLocking = remainingOverlays.some((o) => {
|
|
8355
|
+
const el = o;
|
|
8356
|
+
return el.tagName !== 'ION-TOAST' && el.focusTrap !== false && isBackdropAlwaysBlocking(el);
|
|
8357
|
+
});
|
|
8358
|
+
if (!hasRemainingLocking) {
|
|
8359
|
+
setRootAriaHidden(false);
|
|
8360
|
+
document.body.classList.remove(BACKDROP_NO_SCROLL);
|
|
8361
|
+
}
|
|
8362
|
+
};
|
|
8340
8363
|
const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts) => {
|
|
8341
8364
|
var _a, _b;
|
|
8342
8365
|
if (overlay.presented) {
|
|
@@ -8402,30 +8425,7 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
|
|
|
8402
8425
|
* to the overlay container.
|
|
8403
8426
|
*/
|
|
8404
8427
|
if (overlay.keyboardClose && (document.activeElement === null || !overlay.el.contains(document.activeElement))) {
|
|
8405
|
-
|
|
8406
|
-
* Some overlays (e.g. modal) put the dialog role and accessible label
|
|
8407
|
-
* on the `.ion-overlay-wrapper` instead of the host. Screen readers
|
|
8408
|
-
* need focus on the element with `role="dialog"` to properly announce
|
|
8409
|
-
* and navigate the dialog.
|
|
8410
|
-
*
|
|
8411
|
-
* We only target wrappers with `tabindex`, since `role="dialog"` alone
|
|
8412
|
-
* does not make an element focusable. If no focusable dialog wrapper
|
|
8413
|
-
* exists (e.g. picker-legacy), we fall back to the host.
|
|
8414
|
-
*/
|
|
8415
|
-
const overlayWrapper = getElementRoot(overlay.el).querySelector('[role="dialog"][tabindex]');
|
|
8416
|
-
const focusTarget = overlayWrapper !== null && overlayWrapper !== void 0 ? overlayWrapper : overlay.el;
|
|
8417
|
-
/**
|
|
8418
|
-
* `preventScroll` keeps this a pure focus move so the viewport does not
|
|
8419
|
-
* jump when the wrapper is partially off-screen (e.g. a sheet modal).
|
|
8420
|
-
* Guard the options call so an older engine that mishandles it can never
|
|
8421
|
-
* reject present(); we fall back to a plain focus() in that case.
|
|
8422
|
-
*/
|
|
8423
|
-
try {
|
|
8424
|
-
focusTarget.focus({ preventScroll: true });
|
|
8425
|
-
}
|
|
8426
|
-
catch (_c) {
|
|
8427
|
-
focusTarget.focus();
|
|
8428
|
-
}
|
|
8428
|
+
overlay.el.focus();
|
|
8429
8429
|
}
|
|
8430
8430
|
/**
|
|
8431
8431
|
* If this overlay was previously dismissed without being
|
|
@@ -8761,6 +8761,539 @@ const createTriggerController = () => {
|
|
|
8761
8761
|
};
|
|
8762
8762
|
const FOCUS_TRAP_DISABLE_CLASS = 'ion-disable-focus-trap';
|
|
8763
8763
|
|
|
8764
|
+
/**
|
|
8765
|
+
* Sanitize an untrusted HTML string.
|
|
8766
|
+
*
|
|
8767
|
+
* Parses the string into a detached DOM, removes blocked tags, strips
|
|
8768
|
+
* attributes outside the narrow `domStringAllowedAttributes` list (refer
|
|
8769
|
+
* `sanitizeElement`), and scrubs script-scheme URLs. Returns the sanitized
|
|
8770
|
+
* HTML string.
|
|
8771
|
+
*
|
|
8772
|
+
* Use this when you have an HTML string from an unknown source and need to
|
|
8773
|
+
* render it via `innerHTML`. Use `sanitizeDOMTree` instead when you already
|
|
8774
|
+
* have a DOM tree and want to sanitize it in place without a string round
|
|
8775
|
+
* trip. The two apply the same dangerous-vector scrubbing but different
|
|
8776
|
+
* attribute allowlists: this path stays narrow so existing consumers
|
|
8777
|
+
* (toast, loading, alert message, etc.) are unaffected, while
|
|
8778
|
+
* `sanitizeDOMTree` uses the wider rich-content allowlist.
|
|
8779
|
+
*
|
|
8780
|
+
* @param untrustedString - The HTML string to sanitize. Pass an
|
|
8781
|
+
* `IonicSafeString` to bypass sanitization, or `undefined` to short-circuit.
|
|
8782
|
+
* @returns The sanitized HTML string, or `undefined` if the input was
|
|
8783
|
+
* `undefined`. Returns `''` if sanitization fails or the input contains
|
|
8784
|
+
* an inline `onload=` handler.
|
|
8785
|
+
*/
|
|
8786
|
+
const sanitizeDOMString = (untrustedString) => {
|
|
8787
|
+
try {
|
|
8788
|
+
if (untrustedString instanceof IonicSafeString) {
|
|
8789
|
+
return untrustedString.value;
|
|
8790
|
+
}
|
|
8791
|
+
if (!isSanitizerEnabled() || typeof untrustedString !== 'string' || untrustedString === '') {
|
|
8792
|
+
return untrustedString;
|
|
8793
|
+
}
|
|
8794
|
+
/**
|
|
8795
|
+
* onload is fired when appending to a document
|
|
8796
|
+
* fragment in Chrome. If a string
|
|
8797
|
+
* contains onload then we should not
|
|
8798
|
+
* attempt to add this to the fragment.
|
|
8799
|
+
*/
|
|
8800
|
+
if (untrustedString.includes('onload=')) {
|
|
8801
|
+
return '';
|
|
8802
|
+
}
|
|
8803
|
+
/**
|
|
8804
|
+
* Create a document fragment
|
|
8805
|
+
* separate from the main DOM,
|
|
8806
|
+
* create a div to do our work in
|
|
8807
|
+
*/
|
|
8808
|
+
const documentFragment = document.createDocumentFragment();
|
|
8809
|
+
const workingDiv = document.createElement('div');
|
|
8810
|
+
documentFragment.appendChild(workingDiv);
|
|
8811
|
+
workingDiv.innerHTML = untrustedString;
|
|
8812
|
+
/**
|
|
8813
|
+
* Remove any elements
|
|
8814
|
+
* that are blocked
|
|
8815
|
+
*/
|
|
8816
|
+
blockedTags.forEach((blockedTag) => {
|
|
8817
|
+
const getElementsToRemove = documentFragment.querySelectorAll(blockedTag);
|
|
8818
|
+
for (let elementIndex = getElementsToRemove.length - 1; elementIndex >= 0; elementIndex--) {
|
|
8819
|
+
const element = getElementsToRemove[elementIndex];
|
|
8820
|
+
if (element.parentNode) {
|
|
8821
|
+
element.parentNode.removeChild(element);
|
|
8822
|
+
}
|
|
8823
|
+
else {
|
|
8824
|
+
documentFragment.removeChild(element);
|
|
8825
|
+
}
|
|
8826
|
+
/**
|
|
8827
|
+
* We still need to sanitize
|
|
8828
|
+
* the children of this element
|
|
8829
|
+
* as they are left behind
|
|
8830
|
+
*/
|
|
8831
|
+
const childElements = getElementChildren(element);
|
|
8832
|
+
/* eslint-disable-next-line */
|
|
8833
|
+
for (let childIndex = 0; childIndex < childElements.length; childIndex++) {
|
|
8834
|
+
sanitizeElement(childElements[childIndex], domStringAllowedAttributes);
|
|
8835
|
+
}
|
|
8836
|
+
}
|
|
8837
|
+
});
|
|
8838
|
+
/**
|
|
8839
|
+
* Go through remaining elements and remove
|
|
8840
|
+
* non-allowed attribs
|
|
8841
|
+
*/
|
|
8842
|
+
// IE does not support .children on document fragments, only .childNodes
|
|
8843
|
+
const dfChildren = getElementChildren(documentFragment);
|
|
8844
|
+
/* eslint-disable-next-line */
|
|
8845
|
+
for (let childIndex = 0; childIndex < dfChildren.length; childIndex++) {
|
|
8846
|
+
sanitizeElement(dfChildren[childIndex], domStringAllowedAttributes);
|
|
8847
|
+
}
|
|
8848
|
+
// Append document fragment to div
|
|
8849
|
+
const fragmentDiv = document.createElement('div');
|
|
8850
|
+
fragmentDiv.appendChild(documentFragment);
|
|
8851
|
+
// First child is always the div we did our work in
|
|
8852
|
+
const getInnerDiv = fragmentDiv.querySelector('div');
|
|
8853
|
+
return getInnerDiv !== null ? getInnerDiv.innerHTML : fragmentDiv.innerHTML;
|
|
8854
|
+
}
|
|
8855
|
+
catch (err) {
|
|
8856
|
+
printIonError('sanitizeDOMString', err);
|
|
8857
|
+
return '';
|
|
8858
|
+
}
|
|
8859
|
+
};
|
|
8860
|
+
/**
|
|
8861
|
+
* Sanitize an entire trusted DOM tree in place.
|
|
8862
|
+
*
|
|
8863
|
+
* Removes blocked tags (`script`, `iframe`, etc.) from the subtree and
|
|
8864
|
+
* then sanitizes attributes on every remaining element using the wider
|
|
8865
|
+
* `richContentAllowedAttributes` allowlist (refer `sanitizeElement`).
|
|
8866
|
+
* Component presentational attributes (`size`, `color`, `shape`, inline
|
|
8867
|
+
* SVG, `aria-*`, `data-*`) are preserved; `style`, event handlers (`on*`),
|
|
8868
|
+
* form/navigation-hijack attributes, script-scheme URLs, and non-image
|
|
8869
|
+
* `data:` URLs are stripped.
|
|
8870
|
+
*
|
|
8871
|
+
* Use this when you have a DOM tree the developer controls (e.g.
|
|
8872
|
+
* cloned slot content from a component) and you need to render it
|
|
8873
|
+
* elsewhere safely.
|
|
8874
|
+
*
|
|
8875
|
+
* @param root - The root element whose subtree will be sanitized in
|
|
8876
|
+
* place. No-op when the sanitizer is disabled via `Ionic.config`.
|
|
8877
|
+
*/
|
|
8878
|
+
const sanitizeDOMTree = (root) => {
|
|
8879
|
+
if (!isSanitizerEnabled()) {
|
|
8880
|
+
return;
|
|
8881
|
+
}
|
|
8882
|
+
blockedTags.forEach((tag) => {
|
|
8883
|
+
const matches = root.querySelectorAll(tag);
|
|
8884
|
+
for (let i = matches.length - 1; i >= 0; i--) {
|
|
8885
|
+
matches[i].remove();
|
|
8886
|
+
}
|
|
8887
|
+
});
|
|
8888
|
+
sanitizeElement(root, richContentAllowedAttributes, richContentAllowedAttributePrefixes);
|
|
8889
|
+
};
|
|
8890
|
+
/**
|
|
8891
|
+
* Clean up current element based on allowed attributes
|
|
8892
|
+
* and then recursively dig down into any child elements to
|
|
8893
|
+
* clean those up as well
|
|
8894
|
+
*/
|
|
8895
|
+
// TODO(FW-2832): type (using Element triggers other type errors as well)
|
|
8896
|
+
const sanitizeElement = (element, allowedAttributes, allowedAttributePrefixes = []) => {
|
|
8897
|
+
// IE uses childNodes, so ignore nodes that are not elements
|
|
8898
|
+
if (element.nodeType && element.nodeType !== 1) {
|
|
8899
|
+
return;
|
|
8900
|
+
}
|
|
8901
|
+
/**
|
|
8902
|
+
* If attributes is not a NamedNodeMap
|
|
8903
|
+
* then we should remove the element entirely.
|
|
8904
|
+
* This helps avoid DOM Clobbering attacks where
|
|
8905
|
+
* attributes is overridden.
|
|
8906
|
+
*/
|
|
8907
|
+
if (typeof NamedNodeMap !== 'undefined' && !(element.attributes instanceof NamedNodeMap)) {
|
|
8908
|
+
element.remove();
|
|
8909
|
+
return;
|
|
8910
|
+
}
|
|
8911
|
+
/**
|
|
8912
|
+
* Always strip `style` (CSS injection, `background:url()` beaconing, UI
|
|
8913
|
+
* spoofing). It is never on the allowlist, but it is removed explicitly
|
|
8914
|
+
* here because some engines (e.g. jsdom) don't enumerate the CSSOM-backed
|
|
8915
|
+
* `style` attribute in `element.attributes`, which would let the loop
|
|
8916
|
+
* below skip over it.
|
|
8917
|
+
*/
|
|
8918
|
+
element.removeAttribute('style');
|
|
8919
|
+
for (let i = element.attributes.length - 1; i >= 0; i--) {
|
|
8920
|
+
const attribute = element.attributes.item(i);
|
|
8921
|
+
const attributeName = attribute.name;
|
|
8922
|
+
const lowerName = attributeName.toLowerCase();
|
|
8923
|
+
/**
|
|
8924
|
+
* Remove any attribute that is not on the allowlist. This drops event
|
|
8925
|
+
* handlers (`on*`), `style`, the form/navigation-hijack attributes
|
|
8926
|
+
* (`formaction`, `action`, `target`), namespaced attributes like
|
|
8927
|
+
* `xlink:href`, and anything else not explicitly known to be safe.
|
|
8928
|
+
*/
|
|
8929
|
+
if (!isAttributeAllowed(lowerName, allowedAttributes, allowedAttributePrefixes)) {
|
|
8930
|
+
element.removeAttribute(attributeName);
|
|
8931
|
+
continue;
|
|
8932
|
+
}
|
|
8933
|
+
// clean up any allowed attribs
|
|
8934
|
+
// that attempt to do any JS funny-business
|
|
8935
|
+
const attributeValue = attribute.value;
|
|
8936
|
+
if (attributeValue == null) {
|
|
8937
|
+
continue;
|
|
8938
|
+
}
|
|
8939
|
+
/**
|
|
8940
|
+
* Scrub dangerous schemes from the value. The value is normalized first
|
|
8941
|
+
* (whitespace and ASCII control characters removed) so entity-obfuscated
|
|
8942
|
+
* payloads such as `java	script:`, which the parser decodes to
|
|
8943
|
+
* `java\tscript:`, are still caught. Normalizing the value also covers
|
|
8944
|
+
* namespaced attributes, where the previous `element[attributeName]`
|
|
8945
|
+
* property reflection returned `undefined` and let them slip through.
|
|
8946
|
+
*/
|
|
8947
|
+
const normalizedValue = attributeValue.replace(controlCharactersAndWhitespace, '').toLowerCase();
|
|
8948
|
+
// Script schemes are never allowed, on any attribute.
|
|
8949
|
+
if (normalizedValue.includes('javascript:') || normalizedValue.includes('vbscript:')) {
|
|
8950
|
+
element.removeAttribute(attributeName);
|
|
8951
|
+
continue;
|
|
8952
|
+
}
|
|
8953
|
+
/**
|
|
8954
|
+
* For URL-bearing attributes, allow `data:` URIs only for raster
|
|
8955
|
+
* images. Document-bearing types (`text/html`, `image/svg+xml`,
|
|
8956
|
+
* `application/*`, etc.) can carry markup or script when navigated to
|
|
8957
|
+
* or rendered, so they are stripped, while safe image types are kept so
|
|
8958
|
+
* inline images keep working.
|
|
8959
|
+
*/
|
|
8960
|
+
if (urlAttributes.includes(lowerName) &&
|
|
8961
|
+
normalizedValue.startsWith('data:') &&
|
|
8962
|
+
!safeDataImageUri.test(normalizedValue)) {
|
|
8963
|
+
element.removeAttribute(attributeName);
|
|
8964
|
+
}
|
|
8965
|
+
}
|
|
8966
|
+
/**
|
|
8967
|
+
* Sanitize any nested children
|
|
8968
|
+
*/
|
|
8969
|
+
const childElements = getElementChildren(element);
|
|
8970
|
+
/* eslint-disable-next-line */
|
|
8971
|
+
for (let i = 0; i < childElements.length; i++) {
|
|
8972
|
+
sanitizeElement(childElements[i], allowedAttributes, allowedAttributePrefixes);
|
|
8973
|
+
}
|
|
8974
|
+
};
|
|
8975
|
+
/**
|
|
8976
|
+
* IE doesn't always support .children
|
|
8977
|
+
* so we revert to .childNodes instead
|
|
8978
|
+
*/
|
|
8979
|
+
// TODO(FW-2832): type
|
|
8980
|
+
const getElementChildren = (el) => {
|
|
8981
|
+
return el.children != null ? el.children : el.childNodes;
|
|
8982
|
+
};
|
|
8983
|
+
const isSanitizerEnabled = () => {
|
|
8984
|
+
var _a;
|
|
8985
|
+
const win = window;
|
|
8986
|
+
const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config;
|
|
8987
|
+
if (config) {
|
|
8988
|
+
if (config.get) {
|
|
8989
|
+
return config.get('sanitizerEnabled', true);
|
|
8990
|
+
}
|
|
8991
|
+
else {
|
|
8992
|
+
return config.sanitizerEnabled === true || config.sanitizerEnabled === undefined;
|
|
8993
|
+
}
|
|
8994
|
+
}
|
|
8995
|
+
return true;
|
|
8996
|
+
};
|
|
8997
|
+
/**
|
|
8998
|
+
* Mirror known custom-element DOM properties onto attributes so they
|
|
8999
|
+
* survive `cloneNode`. Call this on a DOM subtree before cloning it for
|
|
9000
|
+
* rendering elsewhere (e.g. cloning slotted option content into an
|
|
9001
|
+
* overlay).
|
|
9002
|
+
*
|
|
9003
|
+
* Only sets the attribute when the property holds a non-empty string
|
|
9004
|
+
* and the attribute isn't already present, so existing attributes
|
|
9005
|
+
* take precedence.
|
|
9006
|
+
*
|
|
9007
|
+
* @param root - The root element whose subtree (and itself) will be
|
|
9008
|
+
* inspected.
|
|
9009
|
+
*/
|
|
9010
|
+
const reflectPropertiesToAttributes = (root) => {
|
|
9011
|
+
const candidates = [];
|
|
9012
|
+
if (root.tagName in elementPropsToReflect) {
|
|
9013
|
+
candidates.push(root);
|
|
9014
|
+
}
|
|
9015
|
+
for (const tagName of Object.keys(elementPropsToReflect)) {
|
|
9016
|
+
candidates.push(...Array.from(root.querySelectorAll(tagName.toLowerCase())));
|
|
9017
|
+
}
|
|
9018
|
+
for (const el of candidates) {
|
|
9019
|
+
if (!(el.tagName in elementPropsToReflect)) {
|
|
9020
|
+
continue;
|
|
9021
|
+
}
|
|
9022
|
+
const props = elementPropsToReflect[el.tagName];
|
|
9023
|
+
for (const prop of props) {
|
|
9024
|
+
const value = el[prop];
|
|
9025
|
+
if (typeof value === 'string' && value.length > 0 && !el.hasAttribute(prop)) {
|
|
9026
|
+
el.setAttribute(prop, value);
|
|
9027
|
+
}
|
|
9028
|
+
}
|
|
9029
|
+
}
|
|
9030
|
+
};
|
|
9031
|
+
/**
|
|
9032
|
+
* Attribute allowlist for `sanitizeDOMString`. Intentionally narrow: this
|
|
9033
|
+
* path sanitizes developer HTML strings rendered via `innerHTML` by
|
|
9034
|
+
* `ion-toast`, `ion-loading`, the `ion-alert` message,
|
|
9035
|
+
* `ion-refresher-content`, and `ion-infinite-scroll-content`, so the list
|
|
9036
|
+
* is kept to the minimum those have always needed. Broadening it here would
|
|
9037
|
+
* change sanitization output for all of those consumers, so the wider
|
|
9038
|
+
* rich-content allowlist below is deliberately scoped to `sanitizeDOMTree`
|
|
9039
|
+
* instead.
|
|
9040
|
+
*/
|
|
9041
|
+
const domStringAllowedAttributes = ['class', 'id', 'href', 'src', 'name', 'slot'];
|
|
9042
|
+
/**
|
|
9043
|
+
* Attribute allowlist for `sanitizeDOMTree` (the select rich-content path).
|
|
9044
|
+
* Covers global HTML attributes, the Ionic component presentational props
|
|
9045
|
+
* that cloned rich content (e.g. `ion-select-option` markup) relies on, and
|
|
9046
|
+
* the inert SVG presentation attributes used by inline icons.
|
|
9047
|
+
*
|
|
9048
|
+
* `aria-*` and `data-*` are allowed separately by prefix (refer
|
|
9049
|
+
* `richContentAllowedAttributePrefixes`) since they are inert and not worth
|
|
9050
|
+
* enumerating. URL-bearing names (`href`, `src`) are allowed here, but
|
|
9051
|
+
* their values are still scrubbed for script schemes in `sanitizeElement`.
|
|
9052
|
+
*
|
|
9053
|
+
* Notably absent: `style`, event handlers (`on*`), and the
|
|
9054
|
+
* form/navigation-hijack attributes (`formaction`, `action`, `target`),
|
|
9055
|
+
* which are therefore stripped.
|
|
9056
|
+
*/
|
|
9057
|
+
const richContentAllowedAttributes = [
|
|
9058
|
+
// Global / structural
|
|
9059
|
+
'class',
|
|
9060
|
+
'id',
|
|
9061
|
+
'slot',
|
|
9062
|
+
'name',
|
|
9063
|
+
'title',
|
|
9064
|
+
'alt',
|
|
9065
|
+
'lang',
|
|
9066
|
+
'dir',
|
|
9067
|
+
'role',
|
|
9068
|
+
'type',
|
|
9069
|
+
'value',
|
|
9070
|
+
'disabled',
|
|
9071
|
+
'width',
|
|
9072
|
+
'height',
|
|
9073
|
+
'href',
|
|
9074
|
+
'src',
|
|
9075
|
+
// Ionic component presentational props
|
|
9076
|
+
'color',
|
|
9077
|
+
'size',
|
|
9078
|
+
'shape',
|
|
9079
|
+
'fill',
|
|
9080
|
+
'expand',
|
|
9081
|
+
'mode',
|
|
9082
|
+
'theme',
|
|
9083
|
+
'icon',
|
|
9084
|
+
'label',
|
|
9085
|
+
'label-placement',
|
|
9086
|
+
'justify',
|
|
9087
|
+
'inset',
|
|
9088
|
+
'lines',
|
|
9089
|
+
'ios',
|
|
9090
|
+
'md',
|
|
9091
|
+
// SVG presentation attributes (compared lowercased, e.g. `viewBox`)
|
|
9092
|
+
'xmlns',
|
|
9093
|
+
'viewbox',
|
|
9094
|
+
'preserveaspectratio',
|
|
9095
|
+
'stroke',
|
|
9096
|
+
'stroke-width',
|
|
9097
|
+
'stroke-linecap',
|
|
9098
|
+
'stroke-linejoin',
|
|
9099
|
+
'stroke-opacity',
|
|
9100
|
+
'stroke-dasharray',
|
|
9101
|
+
'fill-rule',
|
|
9102
|
+
'fill-opacity',
|
|
9103
|
+
'clip-rule',
|
|
9104
|
+
'd',
|
|
9105
|
+
'points',
|
|
9106
|
+
'cx',
|
|
9107
|
+
'cy',
|
|
9108
|
+
'r',
|
|
9109
|
+
'rx',
|
|
9110
|
+
'ry',
|
|
9111
|
+
'x',
|
|
9112
|
+
'y',
|
|
9113
|
+
'x1',
|
|
9114
|
+
'y1',
|
|
9115
|
+
'x2',
|
|
9116
|
+
'y2',
|
|
9117
|
+
'transform',
|
|
9118
|
+
'opacity',
|
|
9119
|
+
];
|
|
9120
|
+
/**
|
|
9121
|
+
* Attribute-name prefixes that are always safe to keep in the rich-content
|
|
9122
|
+
* path. `aria-*` and `data-*` attributes cannot execute script or load
|
|
9123
|
+
* resources, so they are allowed wholesale rather than enumerated by name.
|
|
9124
|
+
*/
|
|
9125
|
+
const richContentAllowedAttributePrefixes = ['aria-', 'data-'];
|
|
9126
|
+
/**
|
|
9127
|
+
* Whether an attribute name (already lowercased) is safe to keep, by exact
|
|
9128
|
+
* match or by an allowed prefix.
|
|
9129
|
+
*/
|
|
9130
|
+
const isAttributeAllowed = (lowerName, allowedAttributes, allowedAttributePrefixes) => {
|
|
9131
|
+
if (allowedAttributes.includes(lowerName)) {
|
|
9132
|
+
return true;
|
|
9133
|
+
}
|
|
9134
|
+
return allowedAttributePrefixes.some((prefix) => lowerName.startsWith(prefix));
|
|
9135
|
+
};
|
|
9136
|
+
/**
|
|
9137
|
+
* Matches ASCII control characters and whitespace (including the
|
|
9138
|
+
* non-breaking space). Used to normalize attribute values before matching
|
|
9139
|
+
* a URL scheme so entity-obfuscated payloads such as `java	script:`
|
|
9140
|
+
* (decoded by the parser to `java\tscript:`) can't smuggle a scheme past
|
|
9141
|
+
* the check.
|
|
9142
|
+
*/
|
|
9143
|
+
// eslint-disable-next-line no-control-regex -- matching control characters is the point
|
|
9144
|
+
const controlCharactersAndWhitespace = /[\u0000-\u0020\u007f-\u00a0]/g;
|
|
9145
|
+
/**
|
|
9146
|
+
* Attributes whose values are URLs. Their values are scheme-checked in
|
|
9147
|
+
* `sanitizeElement` (e.g. `data:` filtering) beyond the script-scheme scrub
|
|
9148
|
+
* applied to every attribute.
|
|
9149
|
+
*/
|
|
9150
|
+
const urlAttributes = ['href', 'src'];
|
|
9151
|
+
/**
|
|
9152
|
+
* Matches a `data:` URI for a raster image type that cannot carry script.
|
|
9153
|
+
* `image/svg+xml` is deliberately excluded (SVG can execute script), as are
|
|
9154
|
+
* document types like `text/html` and `application/*`. The value is already
|
|
9155
|
+
* lowercased and whitespace-stripped before this is tested.
|
|
9156
|
+
*/
|
|
9157
|
+
const safeDataImageUri = /^data:image\/(?:png|jpe?g|gif|webp|bmp|avif|x-icon|vnd\.microsoft\.icon)[;,]/;
|
|
9158
|
+
/**
|
|
9159
|
+
* Tags removed entirely (with their subtree) before attribute sanitization.
|
|
9160
|
+
* Exported so tests can assert the set without hardcoding it.
|
|
9161
|
+
*/
|
|
9162
|
+
const blockedTags = ['script', 'style', 'iframe', 'meta', 'link', 'object', 'embed', 'base'];
|
|
9163
|
+
/**
|
|
9164
|
+
* Properties on custom elements that frameworks (Vue, Angular) often
|
|
9165
|
+
* set as DOM properties rather than attributes. `cloneNode` only copies
|
|
9166
|
+
* attributes, so these values are lost when slotted content is cloned
|
|
9167
|
+
* into an overlay. For each known custom element, we mirror the listed
|
|
9168
|
+
* properties onto attributes so the cloned copy still has the data it
|
|
9169
|
+
* needs to render.
|
|
9170
|
+
*
|
|
9171
|
+
* Keyed by uppercased tagName so the lookup matches `Element.tagName`.
|
|
9172
|
+
*/
|
|
9173
|
+
const elementPropsToReflect = {
|
|
9174
|
+
'ION-ICON': ['icon', 'name', 'src', 'ios', 'md'],
|
|
9175
|
+
};
|
|
9176
|
+
class IonicSafeString {
|
|
9177
|
+
constructor(value) {
|
|
9178
|
+
this.value = value;
|
|
9179
|
+
}
|
|
9180
|
+
}
|
|
9181
|
+
|
|
9182
|
+
/**
|
|
9183
|
+
* Converts a DOM node into a Stencil VNode (or text string) so the
|
|
9184
|
+
* resulting tree is rendered through the component's normal render
|
|
9185
|
+
* path. Rendering through Stencil ensures that scoped CSS classes
|
|
9186
|
+
* (e.g. `sc-ion-action-sheet-ionic`) are applied to every element.
|
|
9187
|
+
*
|
|
9188
|
+
* Highly recommended to pre-sanitize the source DOM (see
|
|
9189
|
+
* `getOptionContent` in select.tsx). This function performs pure
|
|
9190
|
+
* structural conversion — no security filtering.
|
|
9191
|
+
*
|
|
9192
|
+
* Preserves attributes only — properties set imperatively on the source
|
|
9193
|
+
* element (e.g. `input.value` after a user types) won't carry through.
|
|
9194
|
+
* In practice this isn't a concern: interactive controls shouldn't
|
|
9195
|
+
* appear in select-option rich content since they'd nest inside the
|
|
9196
|
+
* overlay's button/radio/checkbox wrapper, which is invalid HTML and
|
|
9197
|
+
* an accessibility issue.
|
|
9198
|
+
*
|
|
9199
|
+
* @param node - The DOM node to convert. Text nodes become strings,
|
|
9200
|
+
* element nodes become VNodes, and any other node types are skipped.
|
|
9201
|
+
* @param keyPrefix - String prefix used to build a stable VNode key,
|
|
9202
|
+
* so Stencil's diff can preserve elements across re-renders.
|
|
9203
|
+
* @param index - Position of this node among its siblings. Combined
|
|
9204
|
+
* with `keyPrefix` to form the final unique key.
|
|
9205
|
+
* @returns The converted VNode, a text string, or `null` if the node
|
|
9206
|
+
* type isn't supported.
|
|
9207
|
+
*
|
|
9208
|
+
* @internal Exported only so it can be unit tested; not part of the
|
|
9209
|
+
* public API.
|
|
9210
|
+
*/
|
|
9211
|
+
const cloneToVNode = (node, keyPrefix, index) => {
|
|
9212
|
+
var _a;
|
|
9213
|
+
if (node.nodeType === Node.TEXT_NODE) {
|
|
9214
|
+
return (_a = node.textContent) !== null && _a !== void 0 ? _a : '';
|
|
9215
|
+
}
|
|
9216
|
+
if (node.nodeType !== Node.ELEMENT_NODE) {
|
|
9217
|
+
return null;
|
|
9218
|
+
}
|
|
9219
|
+
const el = node;
|
|
9220
|
+
const tag = el.tagName.toLowerCase();
|
|
9221
|
+
const key = `${keyPrefix}-${index}`;
|
|
9222
|
+
const attrs = { key };
|
|
9223
|
+
for (let i = 0; i < el.attributes.length; i++) {
|
|
9224
|
+
const attr = el.attributes.item(i);
|
|
9225
|
+
attrs[attr.name] = attr.value;
|
|
9226
|
+
}
|
|
9227
|
+
const children = Array.from(el.childNodes)
|
|
9228
|
+
.map((child, i) => cloneToVNode(child, key, i))
|
|
9229
|
+
.filter((c) => c !== null);
|
|
9230
|
+
return hAsync(tag, attrs, children);
|
|
9231
|
+
};
|
|
9232
|
+
/**
|
|
9233
|
+
* Renders cloned DOM content as Stencil JSX. Walking the source DOM
|
|
9234
|
+
* into VNodes (rather than injecting it via innerHTML) keeps the
|
|
9235
|
+
* content inside Stencil's render path, so scoped CSS classes are
|
|
9236
|
+
* applied automatically and component attributes like `size` or
|
|
9237
|
+
* `color` survive intact.
|
|
9238
|
+
*
|
|
9239
|
+
* Span elements should be used when this content renders within buttons,
|
|
9240
|
+
* depending on the select interface. Buttons can only have phrasing
|
|
9241
|
+
* content to prevent accessibility issues.
|
|
9242
|
+
*
|
|
9243
|
+
* @param id - Unique identifier for generating stable virtual DOM keys.
|
|
9244
|
+
* @param content - The HTMLElement container whose child nodes will be cloned.
|
|
9245
|
+
* @param className - CSS class applied to the wrapper element.
|
|
9246
|
+
* @param useSpan - Whether to use a span element instead of a div for the wrapper.
|
|
9247
|
+
*/
|
|
9248
|
+
const renderClonedContent = (id, content, className, useSpan = false) => {
|
|
9249
|
+
const Tag = useSpan ? 'span' : 'div';
|
|
9250
|
+
const keyPrefix = `${className}-${id}`;
|
|
9251
|
+
/**
|
|
9252
|
+
* Do not remove. This is the only sanitization pass for callers that pass
|
|
9253
|
+
* an `HTMLElement` straight to `renderOptionLabel` (e.g. vanilla JS)
|
|
9254
|
+
* without going through `getOptionContent`, which sanitizes upstream.
|
|
9255
|
+
* `cloneToVNode` does pure structural conversion and no security
|
|
9256
|
+
* filtering, so dropping this call would reopen an XSS hole on the
|
|
9257
|
+
* direct `HTMLElement` path.
|
|
9258
|
+
*/
|
|
9259
|
+
sanitizeDOMTree(content);
|
|
9260
|
+
return (hAsync(Tag, { class: className, key: keyPrefix }, Array.from(content.childNodes).map((child, i) => cloneToVNode(child, keyPrefix, i))));
|
|
9261
|
+
};
|
|
9262
|
+
/**
|
|
9263
|
+
* Renders the label content for a select option within an overlay
|
|
9264
|
+
* interface based on the presence of rich content.
|
|
9265
|
+
*
|
|
9266
|
+
* Span elements should be used when this content renders within buttons,
|
|
9267
|
+
* depending on the select interface. Buttons can only have phrasing
|
|
9268
|
+
* content to prevent accessibility issues.
|
|
9269
|
+
*
|
|
9270
|
+
* @param option - The content option data containing label, slots,
|
|
9271
|
+
* and description.
|
|
9272
|
+
* @param className - The base CSS class for the label element.
|
|
9273
|
+
* @param useSpan - Whether to use a span element instead of a div for the label.
|
|
9274
|
+
*/
|
|
9275
|
+
const renderOptionLabel = (option, className, useSpan = false) => {
|
|
9276
|
+
const { id, label, startContent, endContent, description } = option;
|
|
9277
|
+
const hasRichContent = !!startContent || !!endContent || !!description;
|
|
9278
|
+
const Tag = useSpan ? 'span' : 'div';
|
|
9279
|
+
// Render simple string label if there is no rich content to display
|
|
9280
|
+
if (!hasRichContent && (typeof label === 'string' || !label)) {
|
|
9281
|
+
return (hAsync(Tag, { class: className, key: `${className}-${id}` }, label));
|
|
9282
|
+
}
|
|
9283
|
+
// Render the main label
|
|
9284
|
+
const labelEl = typeof label === 'string' || !label ? (
|
|
9285
|
+
// Label is a simple string or undefined
|
|
9286
|
+
hAsync(Tag, { key: `${className}-label-${id}` }, label)) : (
|
|
9287
|
+
// Label is an HTMLElement with potential rich content
|
|
9288
|
+
renderClonedContent(id, label, `${className}-text`, useSpan));
|
|
9289
|
+
// No rich content, render just the label
|
|
9290
|
+
if (!hasRichContent) {
|
|
9291
|
+
return (hAsync(Tag, { class: className, key: `${className}-${id}` }, labelEl));
|
|
9292
|
+
}
|
|
9293
|
+
// Render label with rich content (start, end, description)
|
|
9294
|
+
return (hAsync(Tag, { class: `${className} ${className}-has-rich-content`, key: `${className}-${id}` }, startContent && renderClonedContent(id, startContent, 'select-option-start', useSpan), hAsync(Tag, { class: "select-option-content", key: `${className}-content-${id}` }, labelEl, description && (hAsync(Tag, { class: "select-option-description", key: `${className}-desc-${id}` }, description))), endContent && renderClonedContent(id, endContent, 'select-option-end', useSpan)));
|
|
9295
|
+
};
|
|
9296
|
+
|
|
8764
9297
|
const hostContext = (selector, el) => {
|
|
8765
9298
|
return el.closest(selector) !== null;
|
|
8766
9299
|
};
|
|
@@ -9616,7 +10149,7 @@ const createAnimation = (animationId) => {
|
|
|
9616
10149
|
/**
|
|
9617
10150
|
* iOS Action Sheet Enter Animation
|
|
9618
10151
|
*/
|
|
9619
|
-
const iosEnterAnimation$
|
|
10152
|
+
const iosEnterAnimation$5 = (baseEl) => {
|
|
9620
10153
|
const baseAnimation = createAnimation();
|
|
9621
10154
|
const backdropAnimation = createAnimation();
|
|
9622
10155
|
const wrapperAnimation = createAnimation();
|
|
@@ -9640,7 +10173,7 @@ const iosEnterAnimation$6 = (baseEl) => {
|
|
|
9640
10173
|
/**
|
|
9641
10174
|
* iOS Action Sheet Leave Animation
|
|
9642
10175
|
*/
|
|
9643
|
-
const iosLeaveAnimation$
|
|
10176
|
+
const iosLeaveAnimation$5 = (baseEl) => {
|
|
9644
10177
|
const baseAnimation = createAnimation();
|
|
9645
10178
|
const backdropAnimation = createAnimation();
|
|
9646
10179
|
const wrapperAnimation = createAnimation();
|
|
@@ -9697,9 +10230,9 @@ const mdLeaveAnimation$5 = (baseEl) => {
|
|
|
9697
10230
|
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
9698
10231
|
};
|
|
9699
10232
|
|
|
9700
|
-
const actionSheetIosCss = () => `.sc-ion-action-sheet-ios-h{--color:initial;--button-color-activated:var(--button-color);--button-color-focused:var(--button-color);--button-color-hover:var(--button-color);--button-color-selected:var(--button-color);--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--height:auto;--max-height:calc(100% - (var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:block;position:fixed;outline:none;font-family:var(--ion-font-family, inherit);-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-action-sheet-ios-h{display:none}.action-sheet-wrapper.sc-ion-action-sheet-ios{left:0;right:0;bottom:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:block;position:absolute;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);z-index:10;pointer-events:none}.action-sheet-button.sc-ion-action-sheet-ios{display:block;position:relative;width:100%;border:0;outline:none;background:var(--button-background);color:var(--button-color);font-family:inherit;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-ios:disabled{color:var(--button-color-disabled);opacity:0.4}.action-sheet-button-inner.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;pointer-events:none;width:100%;height:100%;z-index:1}.action-sheet-container.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:end;justify-content:flex-end;height:100%;max-height:calc(100vh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)));max-height:calc(100dvh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)))}.action-sheet-group.sc-ion-action-sheet-ios{-ms-flex-negative:2;flex-shrink:2;overscroll-behavior-y:contain;overflow-y:auto;-webkit-overflow-scrolling:touch;pointer-events:all;background:var(--background)}@media (any-pointer: coarse){.action-sheet-group.sc-ion-action-sheet-ios::-webkit-scrollbar{display:none}}.action-sheet-group-cancel.sc-ion-action-sheet-ios{-ms-flex-negative:0;flex-shrink:0;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-ios::after{left:0;right:0;top:0;bottom:0;position:absolute;content:"";opacity:0}.action-sheet-selected.sc-ion-action-sheet-ios{color:var(--button-color-selected)}.action-sheet-selected.sc-ion-action-sheet-ios::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-button.ion-activated.sc-ion-action-sheet-ios{color:var(--button-color-activated)}.action-sheet-button.ion-activated.sc-ion-action-sheet-ios::after{background:var(--button-background-activated);opacity:var(--button-background-activated-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-ios{color:var(--button-color-focused)}.action-sheet-button.ion-focused.sc-ion-action-sheet-ios::after{background:var(--button-background-focused);opacity:var(--button-background-focused-opacity)}@media (any-hover: hover){.action-sheet-button.sc-ion-action-sheet-ios:not(:disabled):hover{color:var(--button-color-hover)}.action-sheet-button.sc-ion-action-sheet-ios:not(:disabled):hover::after{background:var(--button-background-hover);opacity:var(--button-background-hover-opacity)}}.sc-ion-action-sheet-ios-h{--background:var(--ion-overlay-background-color, var(--ion-color-step-100, var(--ion-background-color-step-100, #f9f9f9)));--backdrop-opacity:var(--ion-backdrop-opacity, 0.4);--button-background:linear-gradient(0deg, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08), rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08) 50%, transparent 50%) bottom/100% 1px no-repeat transparent;--button-background-activated:var(--ion-text-color, #000);--button-background-activated-opacity:.08;--button-background-hover:currentColor;--button-background-hover-opacity:.04;--button-background-focused:currentColor;--button-background-focused-opacity:.12;--button-background-selected:var(--ion-color-step-150, var(--ion-background-color-step-150, var(--ion-background-color, #fff)));--button-background-selected-opacity:1;--button-color:var(--ion-color-primary, #0054e9);--button-color-disabled:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));--color:var(--ion-color-step-400, var(--ion-text-color-step-600, #999999));text-align:center}.action-sheet-wrapper.sc-ion-action-sheet-ios{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:var(--ion-safe-area-top, 0);padding-bottom:var(--ion-safe-area-bottom, 0);-webkit-box-sizing:content-box;box-sizing:content-box}.action-sheet-container.sc-ion-action-sheet-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:0;padding-bottom:0}.action-sheet-group.sc-ion-action-sheet-ios{border-radius:13px;margin-bottom:8px}.action-sheet-group.sc-ion-action-sheet-ios:first-child{margin-top:10px}.action-sheet-group.sc-ion-action-sheet-ios:last-child{margin-bottom:10px}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-group.sc-ion-action-sheet-ios{background-color:transparent;-webkit-backdrop-filter:saturate(280%) blur(20px);backdrop-filter:saturate(280%) blur(20px)}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-title.sc-ion-action-sheet-ios,.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-button.sc-ion-action-sheet-ios{background-color:transparent;background-image:-webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)), to(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8))), -webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4)), color-stop(50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4)), color-stop(50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)));background-image:linear-gradient(0deg, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8), rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 100%), linear-gradient(0deg, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4), rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4) 50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 50%);background-repeat:no-repeat;background-position:top, bottom;background-size:100% calc(100% - 1px), 100% 1px;-webkit-backdrop-filter:saturate(120%);backdrop-filter:saturate(120%)}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-button.ion-activated.sc-ion-action-sheet-ios{background-color:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.7);background-image:none}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-cancel.sc-ion-action-sheet-ios{background:var(--button-background-selected)}}.action-sheet-title.sc-ion-action-sheet-ios{background:-webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08)), color-stop(50%, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08)), color-stop(50%, transparent)) bottom/100% 1px no-repeat transparent;background:linear-gradient(0deg, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08), rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08) 50%, transparent 50%) bottom/100% 1px no-repeat transparent}.action-sheet-title.sc-ion-action-sheet-ios{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:14px;padding-bottom:13px;color:var(--color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-size:max(13px, 0.8125rem);font-weight:400;text-align:center}.action-sheet-title.action-sheet-has-sub-title.sc-ion-action-sheet-ios{font-weight:600}.action-sheet-sub-title.sc-ion-action-sheet-ios{padding-left:0;padding-right:0;padding-top:6px;padding-bottom:0;font-size:max(13px, 0.8125rem);font-weight:400}.action-sheet-button.sc-ion-action-sheet-ios{-webkit-padding-start:14px;padding-inline-start:14px;-webkit-padding-end:14px;padding-inline-end:14px;padding-top:14px;padding-bottom:14px;min-height:56px;font-size:max(20px, 1.25rem);contain:content}.action-sheet-button.sc-ion-action-sheet-ios .action-sheet-icon.sc-ion-action-sheet-ios{-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:max(28px, 1.75rem);pointer-events:none}.action-sheet-button.sc-ion-action-sheet-ios:last-child{background-image:none}.action-sheet-selected.sc-ion-action-sheet-ios{font-weight:bold}.action-sheet-cancel.sc-ion-action-sheet-ios{font-weight:600}.action-sheet-cancel.sc-ion-action-sheet-ios::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-destructive.sc-ion-action-sheet-ios,.action-sheet-destructive.ion-activated.sc-ion-action-sheet-ios,.action-sheet-destructive.ion-focused.sc-ion-action-sheet-ios{color:var(--ion-color-danger, #c5000f)}@media (any-hover: hover){.action-sheet-destructive.sc-ion-action-sheet-ios:hover{color:var(--ion-color-danger, #c5000f)}}`;
|
|
10233
|
+
const actionSheetIosCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-action-sheet-ios,.alert-radio-label-has-rich-content.sc-ion-action-sheet-ios,.alert-checkbox-label-has-rich-content.sc-ion-action-sheet-ios,.select-option-label-has-rich-content.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:16px}.action-sheet-button-label-has-rich-content.sc-ion-action-sheet-ios,.alert-radio-label-has-rich-content.sc-ion-action-sheet-ios,.alert-checkbox-label-has-rich-content.sc-ion-action-sheet-ios,.select-option-content.sc-ion-action-sheet-ios{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-action-sheet-ios,.alert-checkbox-label-text.sc-ion-action-sheet-ios,.alert-radio-label-text.sc-ion-action-sheet-ios,.select-option-label-text.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-action-sheet-ios{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}.select-option-label.sc-ion-action-sheet-ios:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-action-sheet-ios::part(label),ion-radio.select-option-has-rich-content.sc-ion-action-sheet-ios [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-action-sheet-ios::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-action-sheet-ios [part~="label"],.select-option-content.sc-ion-action-sheet-ios{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-action-sheet-ios>ion-avatar.sc-ion-action-sheet-ios,.select-option-start.sc-ion-action-sheet-ios>ion-img.sc-ion-action-sheet-ios,.select-option-start.sc-ion-action-sheet-ios>ion-thumbnail.sc-ion-action-sheet-ios,.select-option-start.sc-ion-action-sheet-ios>img.sc-ion-action-sheet-ios,.select-option-start.sc-ion-action-sheet-ios>svg.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios>ion-avatar.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios>ion-img.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios>ion-thumbnail.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios>img.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios>svg.sc-ion-action-sheet-ios{width:44px;height:44px}.select-option-start.sc-ion-action-sheet-ios>ion-icon.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios>ion-icon.sc-ion-action-sheet-ios{width:28px;height:28px}.action-sheet-button-label-text.sc-ion-action-sheet-ios{-ms-flex-pack:center;justify-content:center}.select-option-has-rich-content.sc-ion-action-sheet-ios{-webkit-padding-end:16px;padding-inline-end:16px}.sc-ion-action-sheet-ios-h{--color:initial;--button-color-activated:var(--button-color);--button-color-focused:var(--button-color);--button-color-hover:var(--button-color);--button-color-selected:var(--button-color);--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--height:auto;--max-height:calc(100% - (var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:block;position:fixed;outline:none;font-family:var(--ion-font-family, inherit);-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-action-sheet-ios-h{display:none}.action-sheet-wrapper.sc-ion-action-sheet-ios{left:0;right:0;bottom:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:block;position:absolute;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);z-index:10;pointer-events:none}.action-sheet-button.sc-ion-action-sheet-ios{display:block;position:relative;width:100%;border:0;outline:none;background:var(--button-background);color:var(--button-color);font-family:inherit;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-ios:disabled{color:var(--button-color-disabled);opacity:0.4}.action-sheet-button.sc-ion-action-sheet-ios:disabled ion-icon.sc-ion-action-sheet-ios{color:currentColor}.action-sheet-button-inner.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;pointer-events:none;width:100%;height:100%;z-index:1}.action-sheet-container.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:end;justify-content:flex-end;height:100%;max-height:calc(100vh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)));max-height:calc(100dvh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)))}.action-sheet-group.sc-ion-action-sheet-ios{-ms-flex-negative:2;flex-shrink:2;overscroll-behavior-y:contain;overflow-y:auto;-webkit-overflow-scrolling:touch;pointer-events:all;background:var(--background)}@media (any-pointer: coarse){.action-sheet-group.sc-ion-action-sheet-ios::-webkit-scrollbar{display:none}}.action-sheet-group-cancel.sc-ion-action-sheet-ios{-ms-flex-negative:0;flex-shrink:0;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-ios::after{left:0;right:0;top:0;bottom:0;position:absolute;content:"";opacity:0}.action-sheet-selected.sc-ion-action-sheet-ios{color:var(--button-color-selected)}.action-sheet-selected.sc-ion-action-sheet-ios::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-button.ion-activated.sc-ion-action-sheet-ios{color:var(--button-color-activated)}.action-sheet-button.ion-activated.sc-ion-action-sheet-ios::after{background:var(--button-background-activated);opacity:var(--button-background-activated-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-ios:not(.ion-activated){color:var(--button-color-focused)}.action-sheet-button.ion-focused.sc-ion-action-sheet-ios:not(.ion-activated)::after{background:var(--button-background-focused);opacity:var(--button-background-focused-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-ios:not(.ion-activated).action-sheet-selected::after{background:var(--button-background-focused, var(--button-background-selected));opacity:var(--button-background-focused-opacity, var(--button-background-selected-opacity))}@media (any-hover: hover){.action-sheet-button.sc-ion-action-sheet-ios:not(:disabled):hover{color:var(--button-color-hover)}.action-sheet-button.sc-ion-action-sheet-ios:not(:disabled):hover::after{background:var(--button-background-hover);opacity:var(--button-background-hover-opacity)}}.sc-ion-action-sheet-ios-h{--background:var(--ion-overlay-background-color, var(--ion-color-step-100, var(--ion-background-color-step-100, #f9f9f9)));--backdrop-opacity:var(--ion-backdrop-opacity, 0.4);--button-background:linear-gradient(0deg, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08), rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08) 50%, transparent 50%) bottom/100% 1px no-repeat transparent;--button-background-activated:var(--ion-text-color, #000);--button-background-activated-opacity:.08;--button-background-hover:currentColor;--button-background-hover-opacity:.04;--button-background-focused:currentColor;--button-background-focused-opacity:.12;--button-background-selected:var(--ion-color-step-150, var(--ion-background-color-step-150, var(--ion-background-color, #fff)));--button-background-selected-opacity:1;--button-color:var(--ion-color-primary, #0054e9);--button-color-disabled:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));--color:var(--ion-color-step-400, var(--ion-text-color-step-600, #999999));text-align:center}.action-sheet-wrapper.sc-ion-action-sheet-ios{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:var(--ion-safe-area-top, 0);padding-bottom:var(--ion-safe-area-bottom, 0);-webkit-box-sizing:content-box;box-sizing:content-box}.action-sheet-container.sc-ion-action-sheet-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:0;padding-bottom:0}.action-sheet-group.sc-ion-action-sheet-ios{border-radius:13px;margin-bottom:8px}.action-sheet-group.sc-ion-action-sheet-ios:first-child{margin-top:10px}.action-sheet-group.sc-ion-action-sheet-ios:last-child{margin-bottom:10px}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-group.sc-ion-action-sheet-ios{background-color:transparent;-webkit-backdrop-filter:saturate(280%) blur(20px);backdrop-filter:saturate(280%) blur(20px)}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-title.sc-ion-action-sheet-ios,.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-button.sc-ion-action-sheet-ios{background-color:transparent;background-image:-webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)), to(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8))), -webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4)), color-stop(50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4)), color-stop(50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)));background-image:linear-gradient(0deg, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8), rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 100%), linear-gradient(0deg, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4), rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4) 50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 50%);background-repeat:no-repeat;background-position:top, bottom;background-size:100% calc(100% - 1px), 100% 1px;-webkit-backdrop-filter:saturate(120%);backdrop-filter:saturate(120%)}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-button.ion-activated.sc-ion-action-sheet-ios{background-color:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.7);background-image:none}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-cancel.sc-ion-action-sheet-ios{background:var(--button-background-selected)}}.action-sheet-title.sc-ion-action-sheet-ios{background:-webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08)), color-stop(50%, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08)), color-stop(50%, transparent)) bottom/100% 1px no-repeat transparent;background:linear-gradient(0deg, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08), rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08) 50%, transparent 50%) bottom/100% 1px no-repeat transparent}.action-sheet-title.sc-ion-action-sheet-ios{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:14px;padding-bottom:13px;color:var(--color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-size:max(13px, 0.8125rem);font-weight:400;text-align:center}.action-sheet-title.action-sheet-has-sub-title.sc-ion-action-sheet-ios{font-weight:600}.action-sheet-sub-title.sc-ion-action-sheet-ios{padding-left:0;padding-right:0;padding-top:6px;padding-bottom:0;font-size:max(13px, 0.8125rem);font-weight:400}.action-sheet-button.sc-ion-action-sheet-ios{-webkit-padding-start:14px;padding-inline-start:14px;-webkit-padding-end:14px;padding-inline-end:14px;padding-top:14px;padding-bottom:14px;min-height:56px;font-size:max(20px, 1.25rem);contain:content}.action-sheet-button.sc-ion-action-sheet-ios .action-sheet-icon.sc-ion-action-sheet-ios{-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:max(28px, 1.75rem);pointer-events:none}.action-sheet-button.sc-ion-action-sheet-ios:last-child{background-image:none}.action-sheet-selected.sc-ion-action-sheet-ios{font-weight:bold}.action-sheet-cancel.sc-ion-action-sheet-ios{font-weight:600}.action-sheet-cancel.sc-ion-action-sheet-ios::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-destructive.sc-ion-action-sheet-ios,.action-sheet-destructive.ion-activated.sc-ion-action-sheet-ios,.action-sheet-destructive.ion-focused.sc-ion-action-sheet-ios{color:var(--ion-color-danger, #c5000f)}@media (any-hover: hover){.action-sheet-destructive.sc-ion-action-sheet-ios:hover{color:var(--ion-color-danger, #c5000f)}}`;
|
|
9701
10234
|
|
|
9702
|
-
const actionSheetMdCss = () => `.sc-ion-action-sheet-md-h{--color:initial;--button-color-activated:var(--button-color);--button-color-focused:var(--button-color);--button-color-hover:var(--button-color);--button-color-selected:var(--button-color);--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--height:auto;--max-height:calc(100% - (var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:block;position:fixed;outline:none;font-family:var(--ion-font-family, inherit);-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-action-sheet-md-h{display:none}.action-sheet-wrapper.sc-ion-action-sheet-md{left:0;right:0;bottom:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:block;position:absolute;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);z-index:10;pointer-events:none}.action-sheet-button.sc-ion-action-sheet-md{display:block;position:relative;width:100%;border:0;outline:none;background:var(--button-background);color:var(--button-color);font-family:inherit;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-md:disabled{color:var(--button-color-disabled);opacity:0.4}.action-sheet-button-inner.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;pointer-events:none;width:100%;height:100%;z-index:1}.action-sheet-container.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:end;justify-content:flex-end;height:100%;max-height:calc(100vh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)));max-height:calc(100dvh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)))}.action-sheet-group.sc-ion-action-sheet-md{-ms-flex-negative:2;flex-shrink:2;overscroll-behavior-y:contain;overflow-y:auto;-webkit-overflow-scrolling:touch;pointer-events:all;background:var(--background)}@media (any-pointer: coarse){.action-sheet-group.sc-ion-action-sheet-md::-webkit-scrollbar{display:none}}.action-sheet-group-cancel.sc-ion-action-sheet-md{-ms-flex-negative:0;flex-shrink:0;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-md::after{left:0;right:0;top:0;bottom:0;position:absolute;content:"";opacity:0}.action-sheet-selected.sc-ion-action-sheet-md{color:var(--button-color-selected)}.action-sheet-selected.sc-ion-action-sheet-md::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-button.ion-activated.sc-ion-action-sheet-md{color:var(--button-color-activated)}.action-sheet-button.ion-activated.sc-ion-action-sheet-md::after{background:var(--button-background-activated);opacity:var(--button-background-activated-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-md{color:var(--button-color-focused)}.action-sheet-button.ion-focused.sc-ion-action-sheet-md::after{background:var(--button-background-focused);opacity:var(--button-background-focused-opacity)}@media (any-hover: hover){.action-sheet-button.sc-ion-action-sheet-md:not(:disabled):hover{color:var(--button-color-hover)}.action-sheet-button.sc-ion-action-sheet-md:not(:disabled):hover::after{background:var(--button-background-hover);opacity:var(--button-background-hover-opacity)}}.sc-ion-action-sheet-md-h{--background:var(--ion-overlay-background-color, var(--ion-background-color, #fff));--backdrop-opacity:var(--ion-backdrop-opacity, 0.32);--button-background:transparent;--button-background-selected:currentColor;--button-background-selected-opacity:0;--button-background-activated:transparent;--button-background-activated-opacity:0;--button-background-hover:currentColor;--button-background-hover-opacity:.04;--button-background-focused:currentColor;--button-background-focused-opacity:.12;--button-color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));--button-color-disabled:var(--button-color);--color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54)}.action-sheet-wrapper.sc-ion-action-sheet-md{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:var(--ion-safe-area-top, 0);margin-bottom:0}.action-sheet-title.sc-ion-action-sheet-md{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:20px;padding-bottom:17px;min-height:60px;color:var(--color, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54));font-size:1rem;text-align:start}.action-sheet-sub-title.sc-ion-action-sheet-md{padding-left:0;padding-right:0;padding-top:16px;padding-bottom:0;font-size:0.875rem}.action-sheet-group.sc-ion-action-sheet-md:first-child{padding-top:0}.action-sheet-group.sc-ion-action-sheet-md:last-child{padding-bottom:var(--ion-safe-area-bottom)}.action-sheet-button.sc-ion-action-sheet-md{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:12px;padding-bottom:12px;position:relative;min-height:52px;font-size:1rem;text-align:start;contain:content;overflow:hidden}.action-sheet-icon.sc-ion-action-sheet-md{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:32px;margin-inline-end:32px;margin-top:0;margin-bottom:0;color:var(--color);font-size:1.5rem}.action-sheet-button-inner.sc-ion-action-sheet-md{-ms-flex-pack:start;justify-content:flex-start}.action-sheet-selected.sc-ion-action-sheet-md{font-weight:bold}`;
|
|
10235
|
+
const actionSheetMdCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-action-sheet-md,.alert-radio-label-has-rich-content.sc-ion-action-sheet-md,.alert-checkbox-label-has-rich-content.sc-ion-action-sheet-md,.select-option-label-has-rich-content.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:16px}.action-sheet-button-label-has-rich-content.sc-ion-action-sheet-md,.alert-radio-label-has-rich-content.sc-ion-action-sheet-md,.alert-checkbox-label-has-rich-content.sc-ion-action-sheet-md,.select-option-content.sc-ion-action-sheet-md{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-action-sheet-md,.alert-checkbox-label-text.sc-ion-action-sheet-md,.alert-radio-label-text.sc-ion-action-sheet-md,.select-option-label-text.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-action-sheet-md{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}.select-option-label.sc-ion-action-sheet-md:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-action-sheet-md::part(label),ion-radio.select-option-has-rich-content.sc-ion-action-sheet-md [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-action-sheet-md::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-action-sheet-md [part~="label"],.select-option-content.sc-ion-action-sheet-md{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-action-sheet-md>ion-avatar.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>ion-avatar.sc-ion-action-sheet-md{width:40px;height:40px}.select-option-start.sc-ion-action-sheet-md>ion-icon.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>ion-icon.sc-ion-action-sheet-md{width:24px;height:24px}.select-option-start.sc-ion-action-sheet-md>ion-img.sc-ion-action-sheet-md,.select-option-start.sc-ion-action-sheet-md>img.sc-ion-action-sheet-md,.select-option-start.sc-ion-action-sheet-md>svg.sc-ion-action-sheet-md,.select-option-start.sc-ion-action-sheet-md>ion-thumbnail.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>ion-img.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>img.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>svg.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>ion-thumbnail.sc-ion-action-sheet-md{width:56px;height:56px}.select-option-start.sc-ion-action-sheet-md>video.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>video.sc-ion-action-sheet-md{width:114px;height:56px}.sc-ion-action-sheet-md-h{--color:initial;--button-color-activated:var(--button-color);--button-color-focused:var(--button-color);--button-color-hover:var(--button-color);--button-color-selected:var(--button-color);--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--height:auto;--max-height:calc(100% - (var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:block;position:fixed;outline:none;font-family:var(--ion-font-family, inherit);-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-action-sheet-md-h{display:none}.action-sheet-wrapper.sc-ion-action-sheet-md{left:0;right:0;bottom:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:block;position:absolute;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);z-index:10;pointer-events:none}.action-sheet-button.sc-ion-action-sheet-md{display:block;position:relative;width:100%;border:0;outline:none;background:var(--button-background);color:var(--button-color);font-family:inherit;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-md:disabled{color:var(--button-color-disabled);opacity:0.4}.action-sheet-button.sc-ion-action-sheet-md:disabled ion-icon.sc-ion-action-sheet-md{color:currentColor}.action-sheet-button-inner.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;pointer-events:none;width:100%;height:100%;z-index:1}.action-sheet-container.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:end;justify-content:flex-end;height:100%;max-height:calc(100vh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)));max-height:calc(100dvh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)))}.action-sheet-group.sc-ion-action-sheet-md{-ms-flex-negative:2;flex-shrink:2;overscroll-behavior-y:contain;overflow-y:auto;-webkit-overflow-scrolling:touch;pointer-events:all;background:var(--background)}@media (any-pointer: coarse){.action-sheet-group.sc-ion-action-sheet-md::-webkit-scrollbar{display:none}}.action-sheet-group-cancel.sc-ion-action-sheet-md{-ms-flex-negative:0;flex-shrink:0;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-md::after{left:0;right:0;top:0;bottom:0;position:absolute;content:"";opacity:0}.action-sheet-selected.sc-ion-action-sheet-md{color:var(--button-color-selected)}.action-sheet-selected.sc-ion-action-sheet-md::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-button.ion-activated.sc-ion-action-sheet-md{color:var(--button-color-activated)}.action-sheet-button.ion-activated.sc-ion-action-sheet-md::after{background:var(--button-background-activated);opacity:var(--button-background-activated-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-md:not(.ion-activated){color:var(--button-color-focused)}.action-sheet-button.ion-focused.sc-ion-action-sheet-md:not(.ion-activated)::after{background:var(--button-background-focused);opacity:var(--button-background-focused-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-md:not(.ion-activated).action-sheet-selected::after{background:var(--button-background-focused, var(--button-background-selected));opacity:var(--button-background-focused-opacity, var(--button-background-selected-opacity))}@media (any-hover: hover){.action-sheet-button.sc-ion-action-sheet-md:not(:disabled):hover{color:var(--button-color-hover)}.action-sheet-button.sc-ion-action-sheet-md:not(:disabled):hover::after{background:var(--button-background-hover);opacity:var(--button-background-hover-opacity)}}.sc-ion-action-sheet-md-h{--background:var(--ion-overlay-background-color, var(--ion-background-color, #fff));--backdrop-opacity:var(--ion-backdrop-opacity, 0.32);--button-background:transparent;--button-background-selected:currentColor;--button-background-selected-opacity:0;--button-background-activated:transparent;--button-background-activated-opacity:0;--button-background-hover:currentColor;--button-background-hover-opacity:.04;--button-background-focused:currentColor;--button-background-focused-opacity:.12;--button-color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));--button-color-disabled:var(--button-color);--color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54)}.action-sheet-wrapper.sc-ion-action-sheet-md{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:var(--ion-safe-area-top, 0);margin-bottom:0}.action-sheet-title.sc-ion-action-sheet-md{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:20px;padding-bottom:17px;min-height:60px;color:var(--color, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54));font-size:1rem;text-align:start}.action-sheet-sub-title.sc-ion-action-sheet-md{padding-left:0;padding-right:0;padding-top:16px;padding-bottom:0;font-size:0.875rem}.action-sheet-group.sc-ion-action-sheet-md:first-child{padding-top:0}.action-sheet-group.sc-ion-action-sheet-md:last-child{padding-bottom:var(--ion-safe-area-bottom)}.action-sheet-button.sc-ion-action-sheet-md{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:12px;padding-bottom:12px;position:relative;min-height:52px;font-size:1rem;text-align:start;contain:content;overflow:hidden}.action-sheet-icon.sc-ion-action-sheet-md{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:32px;margin-inline-end:32px;margin-top:0;margin-bottom:0;color:var(--color);font-size:1.5rem}.action-sheet-button-inner.sc-ion-action-sheet-md{-ms-flex-pack:start;justify-content:flex-start}.action-sheet-selected.sc-ion-action-sheet-md{font-weight:bold}`;
|
|
9703
10236
|
|
|
9704
10237
|
/**
|
|
9705
10238
|
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
@@ -9796,7 +10329,7 @@ class ActionSheet {
|
|
|
9796
10329
|
async present() {
|
|
9797
10330
|
const unlock = await this.lockController.lock();
|
|
9798
10331
|
await this.delegateController.attachViewToDom();
|
|
9799
|
-
await present(this, 'actionSheetEnter', iosEnterAnimation$
|
|
10332
|
+
await present(this, 'actionSheetEnter', iosEnterAnimation$5, mdEnterAnimation$5);
|
|
9800
10333
|
unlock();
|
|
9801
10334
|
}
|
|
9802
10335
|
/**
|
|
@@ -9813,7 +10346,7 @@ class ActionSheet {
|
|
|
9813
10346
|
*/
|
|
9814
10347
|
async dismiss(data, role) {
|
|
9815
10348
|
const unlock = await this.lockController.lock();
|
|
9816
|
-
const dismissed = await dismiss(this, data, role, 'actionSheetLeave', iosLeaveAnimation$
|
|
10349
|
+
const dismissed = await dismiss(this, data, role, 'actionSheetLeave', iosLeaveAnimation$5, mdLeaveAnimation$5);
|
|
9817
10350
|
if (dismissed) {
|
|
9818
10351
|
this.delegateController.removeViewFromDom();
|
|
9819
10352
|
}
|
|
@@ -9982,6 +10515,10 @@ class ActionSheet {
|
|
|
9982
10515
|
this.gesture = undefined;
|
|
9983
10516
|
}
|
|
9984
10517
|
this.triggerController.removeClickListener();
|
|
10518
|
+
// Clean up aria-hidden if removed without dismiss() being called
|
|
10519
|
+
if (this.presented) {
|
|
10520
|
+
cleanupRootFocusTrapAccessibility();
|
|
10521
|
+
}
|
|
9985
10522
|
}
|
|
9986
10523
|
componentWillLoad() {
|
|
9987
10524
|
var _a;
|
|
@@ -10070,12 +10607,26 @@ class ActionSheet {
|
|
|
10070
10607
|
if (isRadio) {
|
|
10071
10608
|
htmlAttrs['aria-checked'] = isActiveRadio ? 'true' : 'false';
|
|
10072
10609
|
}
|
|
10073
|
-
|
|
10610
|
+
/**
|
|
10611
|
+
* Cast to `SelectActionSheetButton` to access rich content
|
|
10612
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
10613
|
+
* that are passed through from `ion-select` but not
|
|
10614
|
+
* part of the public `ActionSheetButton` interface.
|
|
10615
|
+
*/
|
|
10616
|
+
const richButton = b;
|
|
10617
|
+
const optionLabelOptions = {
|
|
10618
|
+
id: buttonId,
|
|
10619
|
+
label: richButton.text,
|
|
10620
|
+
startContent: richButton.startContent,
|
|
10621
|
+
endContent: richButton.endContent,
|
|
10622
|
+
description: richButton.description,
|
|
10623
|
+
};
|
|
10624
|
+
return (hAsync("button", Object.assign({}, htmlAttrs, { role: isRadio ? 'radio' : undefined, type: "button", id: buttonId, class: Object.assign(Object.assign({}, buttonClass$2(b)), (isRadio && { 'action-sheet-selected': isActiveRadio })), onClick: () => {
|
|
10074
10625
|
if (isRadio) {
|
|
10075
10626
|
this.selectRadioButton(b);
|
|
10076
10627
|
}
|
|
10077
10628
|
this.buttonClick(b);
|
|
10078
|
-
}, disabled: b.disabled, tabIndex: tabIndex }), hAsync("span", { class: "action-sheet-button-inner" }, b.icon && hAsync("ion-icon", { icon: b.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" }),
|
|
10629
|
+
}, disabled: b.disabled, tabIndex: tabIndex }), hAsync("span", { class: "action-sheet-button-inner" }, b.icon && hAsync("ion-icon", { icon: b.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" }), renderOptionLabel(optionLabelOptions, 'action-sheet-button-label', true)), mode === 'md' && hAsync("ion-ripple-effect", null)));
|
|
10079
10630
|
});
|
|
10080
10631
|
}
|
|
10081
10632
|
render() {
|
|
@@ -10085,12 +10636,12 @@ class ActionSheet {
|
|
|
10085
10636
|
const cancelButton = allButtons.find((b) => b.role === 'cancel');
|
|
10086
10637
|
const buttons = allButtons.filter((b) => b.role !== 'cancel');
|
|
10087
10638
|
const headerID = `action-sheet-${overlayIndex}-header`;
|
|
10088
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
10639
|
+
return (hAsync(Host, Object.assign({ key: '7685831da9a78b73473246a2cea95cefa79a53c3', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
|
|
10089
10640
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
10090
|
-
}, class: Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'action-sheet-translucent': this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), hAsync("ion-backdrop", { key: '
|
|
10641
|
+
}, class: Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'action-sheet-translucent': this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), hAsync("ion-backdrop", { key: 'c70f00e401cac99b89412d1adb867f35bc855d57', tappable: this.backdropDismiss }), hAsync("div", { key: '3332893ce3098f1435875480b1269b2821d41660', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: 'eb406b0a9e303d6f94c5c7aa99c6f4c089bfbd41', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, hAsync("div", { key: '92ec855379f10e1e0bfce6ff68b45d3cda0c137c', class: "action-sheet-container" }, hAsync("div", { key: 'bc88a396d75396f574961471bf7e6c4edb513353', class: "action-sheet-group", ref: (el) => (this.groupEl = el), role: hasRadioButtons ? 'radiogroup' : undefined }, header !== undefined && (hAsync("div", { key: '33329e0193818888bdcaa443ff5ea301802e0787', id: headerID, class: {
|
|
10091
10642
|
'action-sheet-title': true,
|
|
10092
10643
|
'action-sheet-has-sub-title': this.subHeader !== undefined,
|
|
10093
|
-
} }, header, this.subHeader && hAsync("div", { key: '
|
|
10644
|
+
} }, header, this.subHeader && hAsync("div", { key: '92ac5a9217a12b7417f7aca9c4fdb7bf6b051364', class: "action-sheet-sub-title" }, this.subHeader))), this.renderActionSheetButtons(buttons)), cancelButton && (hAsync("div", { key: '020463b830fa48fc3ae647ea64f2aaa4d0969305', class: "action-sheet-group action-sheet-group-cancel" }, hAsync("button", Object.assign({ key: 'cefa9c70a2233f6652a81b1a2eae6e717712144d' }, cancelButton.htmlAttributes, { type: "button", class: buttonClass$2(cancelButton), onClick: () => this.buttonClick(cancelButton) }), hAsync("span", { key: '56d7e2f8bfb3644e4476895164d334445fda9b2f', class: "action-sheet-button-inner" }, cancelButton.icon && (hAsync("ion-icon", { key: '6a4a49254ec5cd96f4e0dce9447f90d8cac81913', icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), mode === 'md' && hAsync("ion-ripple-effect", { key: '7d3c6e8d70b0922ea0f75520856285ce1005c891' })))))), hAsync("div", { key: '958fc43e603c6a7f5d1e649d3326fce0f163b5d0', tabindex: "0", "aria-hidden": "true" })));
|
|
10094
10645
|
}
|
|
10095
10646
|
get el() { return getElement(this); }
|
|
10096
10647
|
static get watchers() { return {
|
|
@@ -10139,178 +10690,59 @@ class ActionSheet {
|
|
|
10139
10690
|
"$attrsToReflect$": []
|
|
10140
10691
|
}; }
|
|
10141
10692
|
}
|
|
10142
|
-
const buttonClass$
|
|
10693
|
+
const buttonClass$2 = (button) => {
|
|
10143
10694
|
return Object.assign({ 'action-sheet-button': true, 'ion-activatable': !button.disabled, 'ion-focusable': !button.disabled, [`action-sheet-${button.role}`]: button.role !== undefined }, getClassMap(button.cssClass));
|
|
10144
10695
|
};
|
|
10145
10696
|
|
|
10146
10697
|
const ENABLE_HTML_CONTENT_DEFAULT = false;
|
|
10147
10698
|
|
|
10699
|
+
// TODO(FW-6886, FW-6892, FW-6891): Remove this file in favor of the Modular Ionic component config. Each overlay will be able to select its own defaults for label placement and justify based on the interface and mode, so this utility will no longer be necessary.
|
|
10148
10700
|
/**
|
|
10149
|
-
*
|
|
10150
|
-
*
|
|
10151
|
-
|
|
10152
|
-
|
|
10153
|
-
|
|
10154
|
-
|
|
10155
|
-
|
|
10156
|
-
|
|
10157
|
-
|
|
10158
|
-
|
|
10159
|
-
|
|
10160
|
-
|
|
10161
|
-
|
|
10162
|
-
* fragment in Chrome. If a string
|
|
10163
|
-
* contains onload then we should not
|
|
10164
|
-
* attempt to add this to the fragment.
|
|
10165
|
-
*/
|
|
10166
|
-
if (untrustedString.includes('onload=')) {
|
|
10167
|
-
return '';
|
|
10168
|
-
}
|
|
10169
|
-
/**
|
|
10170
|
-
* Create a document fragment
|
|
10171
|
-
* separate from the main DOM,
|
|
10172
|
-
* create a div to do our work in
|
|
10173
|
-
*/
|
|
10174
|
-
const documentFragment = document.createDocumentFragment();
|
|
10175
|
-
const workingDiv = document.createElement('div');
|
|
10176
|
-
documentFragment.appendChild(workingDiv);
|
|
10177
|
-
workingDiv.innerHTML = untrustedString;
|
|
10178
|
-
/**
|
|
10179
|
-
* Remove any elements
|
|
10180
|
-
* that are blocked
|
|
10181
|
-
*/
|
|
10182
|
-
blockedTags.forEach((blockedTag) => {
|
|
10183
|
-
const getElementsToRemove = documentFragment.querySelectorAll(blockedTag);
|
|
10184
|
-
for (let elementIndex = getElementsToRemove.length - 1; elementIndex >= 0; elementIndex--) {
|
|
10185
|
-
const element = getElementsToRemove[elementIndex];
|
|
10186
|
-
if (element.parentNode) {
|
|
10187
|
-
element.parentNode.removeChild(element);
|
|
10188
|
-
}
|
|
10189
|
-
else {
|
|
10190
|
-
documentFragment.removeChild(element);
|
|
10191
|
-
}
|
|
10192
|
-
/**
|
|
10193
|
-
* We still need to sanitize
|
|
10194
|
-
* the children of this element
|
|
10195
|
-
* as they are left behind
|
|
10196
|
-
*/
|
|
10197
|
-
const childElements = getElementChildren(element);
|
|
10198
|
-
/* eslint-disable-next-line */
|
|
10199
|
-
for (let childIndex = 0; childIndex < childElements.length; childIndex++) {
|
|
10200
|
-
sanitizeElement(childElements[childIndex]);
|
|
10201
|
-
}
|
|
10202
|
-
}
|
|
10203
|
-
});
|
|
10204
|
-
/**
|
|
10205
|
-
* Go through remaining elements and remove
|
|
10206
|
-
* non-allowed attribs
|
|
10207
|
-
*/
|
|
10208
|
-
// IE does not support .children on document fragments, only .childNodes
|
|
10209
|
-
const dfChildren = getElementChildren(documentFragment);
|
|
10210
|
-
/* eslint-disable-next-line */
|
|
10211
|
-
for (let childIndex = 0; childIndex < dfChildren.length; childIndex++) {
|
|
10212
|
-
sanitizeElement(dfChildren[childIndex]);
|
|
10213
|
-
}
|
|
10214
|
-
// Append document fragment to div
|
|
10215
|
-
const fragmentDiv = document.createElement('div');
|
|
10216
|
-
fragmentDiv.appendChild(documentFragment);
|
|
10217
|
-
// First child is always the div we did our work in
|
|
10218
|
-
const getInnerDiv = fragmentDiv.querySelector('div');
|
|
10219
|
-
return getInnerDiv !== null ? getInnerDiv.innerHTML : fragmentDiv.innerHTML;
|
|
10220
|
-
}
|
|
10221
|
-
catch (err) {
|
|
10222
|
-
printIonError('sanitizeDOMString', err);
|
|
10223
|
-
return '';
|
|
10224
|
-
}
|
|
10225
|
-
};
|
|
10226
|
-
/**
|
|
10227
|
-
* Clean up current element based on allowed attributes
|
|
10228
|
-
* and then recursively dig down into any child elements to
|
|
10229
|
-
* clean those up as well
|
|
10701
|
+
* Returns the default `labelPlacement` for a radio or checkbox option
|
|
10702
|
+
* rendered inside an overlay. Defaults follow each mode's established
|
|
10703
|
+
* option-row layout:
|
|
10704
|
+
* - `ios`: `"start"` for radio in `alert` and `popover`. The `modal`
|
|
10705
|
+
* interface flips iOS radio back to `"end"`. Checkbox is always
|
|
10706
|
+
* `"end"` on iOS.
|
|
10707
|
+
* - everything else (e.g. `md`): `"end"`.
|
|
10708
|
+
*
|
|
10709
|
+
* `interfaceType` is optional; only `"modal"` changes the result, so
|
|
10710
|
+
* callers that aren't a modal can omit it.
|
|
10711
|
+
*
|
|
10712
|
+
* Used by `select-popover` and `select-modal` as the fallback when an
|
|
10713
|
+
* option doesn't explicitly set `labelPlacement`.
|
|
10230
10714
|
*/
|
|
10231
|
-
|
|
10232
|
-
|
|
10233
|
-
|
|
10234
|
-
if (element.nodeType && element.nodeType !== 1) {
|
|
10235
|
-
return;
|
|
10236
|
-
}
|
|
10237
|
-
/**
|
|
10238
|
-
* If attributes is not a NamedNodeMap
|
|
10239
|
-
* then we should remove the element entirely.
|
|
10240
|
-
* This helps avoid DOM Clobbering attacks where
|
|
10241
|
-
* attributes is overridden.
|
|
10242
|
-
*/
|
|
10243
|
-
if (typeof NamedNodeMap !== 'undefined' && !(element.attributes instanceof NamedNodeMap)) {
|
|
10244
|
-
element.remove();
|
|
10245
|
-
return;
|
|
10246
|
-
}
|
|
10247
|
-
for (let i = element.attributes.length - 1; i >= 0; i--) {
|
|
10248
|
-
const attribute = element.attributes.item(i);
|
|
10249
|
-
const attributeName = attribute.name;
|
|
10250
|
-
// remove non-allowed attribs
|
|
10251
|
-
if (!allowedAttributes.includes(attributeName.toLowerCase())) {
|
|
10252
|
-
element.removeAttribute(attributeName);
|
|
10253
|
-
continue;
|
|
10254
|
-
}
|
|
10255
|
-
// clean up any allowed attribs
|
|
10256
|
-
// that attempt to do any JS funny-business
|
|
10257
|
-
const attributeValue = attribute.value;
|
|
10258
|
-
/**
|
|
10259
|
-
* We also need to check the property value
|
|
10260
|
-
* as javascript: can allow special characters
|
|
10261
|
-
* such as 	 and still be valid (i.e. java	script)
|
|
10262
|
-
*/
|
|
10263
|
-
const propertyValue = element[attributeName];
|
|
10264
|
-
/* eslint-disable */
|
|
10265
|
-
if ((attributeValue != null && attributeValue.toLowerCase().includes('javascript:')) ||
|
|
10266
|
-
(propertyValue != null && propertyValue.toLowerCase().includes('javascript:'))) {
|
|
10267
|
-
element.removeAttribute(attributeName);
|
|
10268
|
-
}
|
|
10269
|
-
/* eslint-enable */
|
|
10270
|
-
}
|
|
10271
|
-
/**
|
|
10272
|
-
* Sanitize any nested children
|
|
10273
|
-
*/
|
|
10274
|
-
const childElements = getElementChildren(element);
|
|
10275
|
-
/* eslint-disable-next-line */
|
|
10276
|
-
for (let i = 0; i < childElements.length; i++) {
|
|
10277
|
-
sanitizeElement(childElements[i]);
|
|
10715
|
+
const getOverlayLabelPlacement = (mode, control, interfaceType) => {
|
|
10716
|
+
if (mode === 'ios' && control === 'radio' && interfaceType !== 'modal') {
|
|
10717
|
+
return 'start';
|
|
10278
10718
|
}
|
|
10719
|
+
return 'end';
|
|
10279
10720
|
};
|
|
10280
10721
|
/**
|
|
10281
|
-
*
|
|
10282
|
-
*
|
|
10722
|
+
* Returns the default `justify` for a radio or checkbox option rendered
|
|
10723
|
+
* inside an overlay. Defaults follow each mode's option-row layout:
|
|
10724
|
+
* - `ios`: `"space-between"` for radio in `alert` and `popover`. The
|
|
10725
|
+
* `modal` interface falls back to `"start"`. Checkbox is always `"start"`
|
|
10726
|
+
* on iOS.
|
|
10727
|
+
* - everything else (e.g. `md`): `"start"`.
|
|
10728
|
+
*
|
|
10729
|
+
* `interfaceType` is optional; only `"modal"` changes the result, so
|
|
10730
|
+
* callers that aren't a modal can omit it.
|
|
10731
|
+
*
|
|
10732
|
+
* Used by `select-popover` and `select-modal` as the fallback when an
|
|
10733
|
+
* option doesn't explicitly set `justify`.
|
|
10283
10734
|
*/
|
|
10284
|
-
|
|
10285
|
-
|
|
10286
|
-
|
|
10287
|
-
};
|
|
10288
|
-
const isSanitizerEnabled = () => {
|
|
10289
|
-
var _a;
|
|
10290
|
-
const win = window;
|
|
10291
|
-
const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config;
|
|
10292
|
-
if (config) {
|
|
10293
|
-
if (config.get) {
|
|
10294
|
-
return config.get('sanitizerEnabled', true);
|
|
10295
|
-
}
|
|
10296
|
-
else {
|
|
10297
|
-
return config.sanitizerEnabled === true || config.sanitizerEnabled === undefined;
|
|
10298
|
-
}
|
|
10735
|
+
const getOverlayLabelJustify = (mode, control, interfaceType) => {
|
|
10736
|
+
if (mode === 'ios' && control === 'radio' && interfaceType !== 'modal') {
|
|
10737
|
+
return 'space-between';
|
|
10299
10738
|
}
|
|
10300
|
-
return
|
|
10739
|
+
return 'start';
|
|
10301
10740
|
};
|
|
10302
|
-
const allowedAttributes = ['class', 'id', 'href', 'src', 'name', 'slot'];
|
|
10303
|
-
const blockedTags = ['script', 'style', 'iframe', 'meta', 'link', 'object', 'embed'];
|
|
10304
|
-
class IonicSafeString {
|
|
10305
|
-
constructor(value) {
|
|
10306
|
-
this.value = value;
|
|
10307
|
-
}
|
|
10308
|
-
}
|
|
10309
10741
|
|
|
10310
10742
|
/**
|
|
10311
10743
|
* iOS Alert Enter Animation
|
|
10312
10744
|
*/
|
|
10313
|
-
const iosEnterAnimation$
|
|
10745
|
+
const iosEnterAnimation$4 = (baseEl) => {
|
|
10314
10746
|
const baseAnimation = createAnimation();
|
|
10315
10747
|
const backdropAnimation = createAnimation();
|
|
10316
10748
|
const wrapperAnimation = createAnimation();
|
|
@@ -10335,7 +10767,7 @@ const iosEnterAnimation$5 = (baseEl) => {
|
|
|
10335
10767
|
/**
|
|
10336
10768
|
* iOS Alert Leave Animation
|
|
10337
10769
|
*/
|
|
10338
|
-
const iosLeaveAnimation$
|
|
10770
|
+
const iosLeaveAnimation$4 = (baseEl) => {
|
|
10339
10771
|
const baseAnimation = createAnimation();
|
|
10340
10772
|
const backdropAnimation = createAnimation();
|
|
10341
10773
|
const wrapperAnimation = createAnimation();
|
|
@@ -10392,9 +10824,9 @@ const mdLeaveAnimation$4 = (baseEl) => {
|
|
|
10392
10824
|
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
10393
10825
|
};
|
|
10394
10826
|
|
|
10395
|
-
const alertIosCss = () => `.sc-ion-alert-ios-h{--min-width:250px;--width:auto;--min-height:auto;--height:auto;--max-height:90%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-alert-ios-h{display:none}.alert-top.sc-ion-alert-ios-h{padding-top:50px;-ms-flex-align:start;align-items:flex-start}.alert-wrapper.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:content;opacity:0;z-index:10}.alert-title.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-sub-title.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-weight:normal}.alert-message.sc-ion-alert-ios,.alert-input-group.sc-ion-alert-ios{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch;overflow-y:auto;overscroll-behavior-y:contain}.alert-checkbox-label.sc-ion-alert-ios,.alert-radio-label.sc-ion-alert-ios{overflow-wrap:anywhere}@media (any-pointer: coarse){.alert-checkbox-group.sc-ion-alert-ios::-webkit-scrollbar,.alert-radio-group.sc-ion-alert-ios::-webkit-scrollbar,.alert-message.sc-ion-alert-ios::-webkit-scrollbar{display:none}}.alert-input.sc-ion-alert-ios{padding-left:0;padding-right:0;padding-top:10px;padding-bottom:10px;width:100%;border:0;background:inherit;font:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.alert-button-group.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;width:100%}.alert-button-group-vertical.sc-ion-alert-ios{-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.alert-button.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;border:0;font-size:0.875rem;line-height:1.25rem;z-index:0}.alert-button.ion-focused.sc-ion-alert-ios,.alert-tappable.ion-focused.sc-ion-alert-ios{background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.alert-button-inner.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;min-height:inherit}.alert-input-disabled.sc-ion-alert-ios,.alert-checkbox-button-disabled.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios,.alert-radio-button-disabled.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios{cursor:default;opacity:0.5;pointer-events:none}.alert-tappable.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:-ms-flexbox;display:flex;width:100%;border:0;background:transparent;font-size:inherit;line-height:initial;text-align:start;-webkit-appearance:none;-moz-appearance:none;appearance:none;contain:content}.alert-button.sc-ion-alert-ios,.alert-checkbox.sc-ion-alert-ios,.alert-input.sc-ion-alert-ios,.alert-radio.sc-ion-alert-ios{outline:none}.alert-radio-icon.sc-ion-alert-ios,.alert-checkbox-icon.sc-ion-alert-ios,.alert-checkbox-inner.sc-ion-alert-ios{-webkit-box-sizing:border-box;box-sizing:border-box}textarea.alert-input.sc-ion-alert-ios{min-height:37px;resize:none}.sc-ion-alert-ios-h{--background:var(--ion-overlay-background-color, var(--ion-color-step-100, var(--ion-background-color-step-100, #f9f9f9)));--max-width:clamp(270px, 16.875rem, 324px);--backdrop-opacity:var(--ion-backdrop-opacity, 0.3);font-size:max(14px, 0.875rem)}.alert-wrapper.sc-ion-alert-ios{border-radius:13px;-webkit-box-shadow:none;box-shadow:none;overflow:hidden}.alert-button.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios{pointer-events:none}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.alert-translucent.sc-ion-alert-ios-h .alert-wrapper.sc-ion-alert-ios{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.9);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}.alert-head.sc-ion-alert-ios{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:12px;padding-bottom:7px;text-align:center}.alert-title.sc-ion-alert-ios{margin-top:8px;color:var(--ion-text-color, #000);font-size:max(17px, 1.0625rem);font-weight:600}.alert-sub-title.sc-ion-alert-ios{color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666));font-size:max(14px, 0.875rem)}.alert-message.sc-ion-alert-ios,.alert-input-group.sc-ion-alert-ios{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:21px;color:var(--ion-text-color, #000);font-size:max(13px, 0.8125rem);text-align:center}.alert-message.sc-ion-alert-ios{max-height:240px}.alert-message.sc-ion-alert-ios:empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:12px}.alert-input.sc-ion-alert-ios{border-radius:7px;margin-top:10px;-webkit-padding-start:7px;padding-inline-start:7px;-webkit-padding-end:7px;padding-inline-end:7px;padding-top:7px;padding-bottom:7px;border:0.55px solid var(--ion-color-step-250, var(--ion-background-color-step-250, #bfbfbf));background-color:var(--ion-background-color, #fff);-webkit-appearance:none;-moz-appearance:none;appearance:none;font-size:1rem}.alert-input.sc-ion-alert-ios::-webkit-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-moz-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios:-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-ms-clear{display:none}.alert-input.sc-ion-alert-ios::-webkit-date-and-time-value{height:18px}.alert-radio-group.sc-ion-alert-ios,.alert-checkbox-group.sc-ion-alert-ios{-ms-scroll-chaining:none;overscroll-behavior:contain;max-height:240px;border-top:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);overflow-y:auto;-webkit-overflow-scrolling:touch}.alert-tappable.sc-ion-alert-ios{min-height:44px}.alert-radio-label.sc-ion-alert-ios{-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;-ms-flex-order:0;order:0;color:var(--ion-text-color, #000)}[aria-checked=true].sc-ion-alert-ios .alert-radio-label.sc-ion-alert-ios{color:var(--ion-color-primary, #0054e9)}.alert-radio-icon.sc-ion-alert-ios{position:relative;-ms-flex-order:1;order:1;min-width:30px}[aria-checked=true].sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios{top:-7px;position:absolute;width:6px;height:12px;-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:2px;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios{inset-inline-start:7px}.alert-checkbox-label.sc-ion-alert-ios{-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;color:var(--ion-text-color, #000)}.alert-checkbox-icon.sc-ion-alert-ios{border-radius:50%;-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:6px;margin-inline-end:6px;margin-top:10px;margin-bottom:10px;position:relative;width:min(1.375rem, 55.836px);height:min(1.375rem, 55.836px);border-width:0.125rem;border-style:solid;border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));background-color:var(--ion-item-background, var(--ion-background-color, #fff));contain:strict}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-icon.sc-ion-alert-ios{border-color:var(--ion-color-primary, #0054e9);background-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios{top:calc(min(1.375rem, 55.836px) / 8);position:absolute;width:calc(min(1.375rem, 55.836px) / 6 + 1px);height:calc(min(1.375rem, 55.836px) * 0.5);-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:0.125rem;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-background-color, #fff)}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios{inset-inline-start:calc(min(1.375rem, 55.836px) / 3)}.alert-button-group.sc-ion-alert-ios{-webkit-margin-end:-0.55px;margin-inline-end:-0.55px;-ms-flex-wrap:wrap;flex-wrap:wrap}.alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios{border-right:none}[dir=rtl].sc-ion-alert-ios-h .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:none}[dir=rtl].sc-ion-alert-ios .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:none}@supports selector(:dir(rtl)){.alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child:dir(rtl){border-right:none}}.alert-button.sc-ion-alert-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;border-radius:0;-ms-flex:1 1 auto;flex:1 1 auto;min-width:50%;height:max(44px, 2.75rem);border-top:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);background-color:transparent;color:var(--ion-color-primary, #0054e9);font-size:max(17px, 1.0625rem);overflow:hidden}[dir=rtl].sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:first-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:first-child{border-right:0}[dir=rtl].sc-ion-alert-ios .alert-button.sc-ion-alert-ios:first-child{border-right:0}@supports selector(:dir(rtl)){.alert-button.sc-ion-alert-ios:first-child:dir(rtl){border-right:0}}.alert-button.sc-ion-alert-ios:last-child{border-right:0;font-weight:bold}[dir=rtl].sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:last-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:last-child{border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}[dir=rtl].sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}@supports selector(:dir(rtl)){.alert-button.sc-ion-alert-ios:last-child:dir(rtl){border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}}.alert-button.ion-activated.sc-ion-alert-ios{background-color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.1)}.alert-button-role-destructive.sc-ion-alert-ios,.alert-button-role-destructive.ion-activated.sc-ion-alert-ios,.alert-button-role-destructive.ion-focused.sc-ion-alert-ios{color:var(--ion-color-danger, #c5000f)}`;
|
|
10827
|
+
const alertIosCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-alert-ios,.alert-radio-label-has-rich-content.sc-ion-alert-ios,.alert-checkbox-label-has-rich-content.sc-ion-alert-ios,.select-option-label-has-rich-content.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:16px}.action-sheet-button-label-has-rich-content.sc-ion-alert-ios,.alert-radio-label-has-rich-content.sc-ion-alert-ios,.alert-checkbox-label-has-rich-content.sc-ion-alert-ios,.select-option-content.sc-ion-alert-ios{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-alert-ios,.alert-checkbox-label-text.sc-ion-alert-ios,.alert-radio-label-text.sc-ion-alert-ios,.select-option-label-text.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-alert-ios{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}.select-option-label.sc-ion-alert-ios:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-alert-ios::part(label),ion-radio.select-option-has-rich-content.sc-ion-alert-ios [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-alert-ios::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-alert-ios [part~="label"],.select-option-content.sc-ion-alert-ios{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-alert-ios>ion-avatar.sc-ion-alert-ios,.select-option-start.sc-ion-alert-ios>ion-img.sc-ion-alert-ios,.select-option-start.sc-ion-alert-ios>ion-thumbnail.sc-ion-alert-ios,.select-option-start.sc-ion-alert-ios>img.sc-ion-alert-ios,.select-option-start.sc-ion-alert-ios>svg.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios>ion-avatar.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios>ion-img.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios>ion-thumbnail.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios>img.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios>svg.sc-ion-alert-ios{width:44px;height:44px}.select-option-start.sc-ion-alert-ios>ion-icon.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios>ion-icon.sc-ion-alert-ios{width:28px;height:28px}.action-sheet-button-label-text.sc-ion-alert-ios{-ms-flex-pack:center;justify-content:center}.select-option-has-rich-content.sc-ion-alert-ios{-webkit-padding-end:16px;padding-inline-end:16px}.sc-ion-alert-ios-h{--min-width:250px;--width:auto;--min-height:auto;--height:auto;--max-height:90%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-alert-ios-h{display:none}.alert-top.sc-ion-alert-ios-h{padding-top:50px;-ms-flex-align:start;align-items:flex-start}.alert-wrapper.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:content;opacity:0;z-index:10}.alert-title.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-sub-title.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-weight:normal}.alert-message.sc-ion-alert-ios,.alert-input-group.sc-ion-alert-ios{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch;overflow-y:auto;overscroll-behavior-y:contain}.alert-checkbox-label.sc-ion-alert-ios,.alert-radio-label.sc-ion-alert-ios{overflow-wrap:anywhere}@media (any-pointer: coarse){.alert-checkbox-group.sc-ion-alert-ios::-webkit-scrollbar,.alert-radio-group.sc-ion-alert-ios::-webkit-scrollbar,.alert-message.sc-ion-alert-ios::-webkit-scrollbar{display:none}}.alert-input.sc-ion-alert-ios{padding-left:0;padding-right:0;padding-top:10px;padding-bottom:10px;width:100%;border:0;background:inherit;font:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.alert-button-group.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;width:100%}.alert-button-group-vertical.sc-ion-alert-ios{-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.alert-button.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;border:0;font-size:0.875rem;line-height:1.25rem;z-index:0}.alert-button.ion-focused.sc-ion-alert-ios,.alert-tappable.ion-focused.sc-ion-alert-ios{background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.alert-button-inner.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;min-height:inherit}.radio-label-placement-start.sc-ion-alert-ios,.checkbox-label-placement-start.sc-ion-alert-ios{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.radio-label-placement-end.sc-ion-alert-ios,.checkbox-label-placement-end.sc-ion-alert-ios{-ms-flex-direction:row;flex-direction:row}.radio-justify-start.sc-ion-alert-ios,.checkbox-justify-start.sc-ion-alert-ios{-ms-flex-pack:start;justify-content:start}.radio-justify-end.sc-ion-alert-ios,.checkbox-justify-end.sc-ion-alert-ios{-ms-flex-pack:end;justify-content:end}.radio-justify-space-between.sc-ion-alert-ios,.checkbox-justify-space-between.sc-ion-alert-ios{-ms-flex-pack:justify;justify-content:space-between}.alert-input-disabled.sc-ion-alert-ios,.alert-checkbox-button-disabled.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios,.alert-radio-button-disabled.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios{cursor:default;opacity:0.5;pointer-events:none}.alert-tappable.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:-ms-flexbox;display:flex;width:100%;border:0;background:transparent;font-size:inherit;line-height:initial;text-align:start;-webkit-appearance:none;-moz-appearance:none;appearance:none;contain:content}.alert-button.sc-ion-alert-ios,.alert-checkbox.sc-ion-alert-ios,.alert-input.sc-ion-alert-ios,.alert-radio.sc-ion-alert-ios{outline:none}.alert-radio-icon.sc-ion-alert-ios,.alert-checkbox-icon.sc-ion-alert-ios,.alert-checkbox-inner.sc-ion-alert-ios{-webkit-box-sizing:border-box;box-sizing:border-box}textarea.alert-input.sc-ion-alert-ios{min-height:37px;resize:none}.sc-ion-alert-ios-h{--background:var(--ion-overlay-background-color, var(--ion-color-step-100, var(--ion-background-color-step-100, #f9f9f9)));--max-width:clamp(270px, 16.875rem, 324px);--backdrop-opacity:var(--ion-backdrop-opacity, 0.3);font-size:max(14px, 0.875rem)}.alert-wrapper.sc-ion-alert-ios{border-radius:13px;-webkit-box-shadow:none;box-shadow:none;overflow:hidden}.alert-button.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios{pointer-events:none}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.alert-translucent.sc-ion-alert-ios-h .alert-wrapper.sc-ion-alert-ios{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.9);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}.alert-head.sc-ion-alert-ios{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:12px;padding-bottom:7px;text-align:center}.alert-title.sc-ion-alert-ios{margin-top:8px;color:var(--ion-text-color, #000);font-size:max(17px, 1.0625rem);font-weight:600}.alert-sub-title.sc-ion-alert-ios{color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666));font-size:max(14px, 0.875rem)}.alert-message.sc-ion-alert-ios,.alert-input-group.sc-ion-alert-ios{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:21px;color:var(--ion-text-color, #000);font-size:max(13px, 0.8125rem);text-align:center}.alert-message.sc-ion-alert-ios{max-height:240px}.alert-message.sc-ion-alert-ios:empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:12px}.alert-input.sc-ion-alert-ios{border-radius:7px;margin-top:10px;-webkit-padding-start:7px;padding-inline-start:7px;-webkit-padding-end:7px;padding-inline-end:7px;padding-top:7px;padding-bottom:7px;border:0.55px solid var(--ion-color-step-250, var(--ion-background-color-step-250, #bfbfbf));background-color:var(--ion-background-color, #fff);-webkit-appearance:none;-moz-appearance:none;appearance:none;font-size:1rem}.alert-input.sc-ion-alert-ios::-webkit-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-moz-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios:-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-ms-clear{display:none}.alert-input.sc-ion-alert-ios::-webkit-date-and-time-value{height:18px}.alert-radio-group.sc-ion-alert-ios,.alert-checkbox-group.sc-ion-alert-ios{-ms-scroll-chaining:none;overscroll-behavior:contain;max-height:240px;border-top:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);overflow-y:auto;-webkit-overflow-scrolling:touch}.alert-tappable.sc-ion-alert-ios{min-height:44px}.alert-radio-label.sc-ion-alert-ios{-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px;padding-top:13px;padding-bottom:13px;color:var(--ion-text-color, #000)}[aria-checked=true].sc-ion-alert-ios .alert-radio-label.sc-ion-alert-ios{color:var(--ion-color-primary, #0054e9)}.alert-radio-icon.sc-ion-alert-ios{position:relative;-ms-flex-negative:0;flex-shrink:0;min-width:30px}[aria-checked=true].sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios{top:-7px;position:absolute;width:6px;height:12px;-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:2px;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-ios .radio-label-placement-end.sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios{inset-inline-end:7px}[aria-checked=true].sc-ion-alert-ios .radio-label-placement-start.sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios{inset-inline-start:7px}.alert-checkbox-label.sc-ion-alert-ios{-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px;padding-top:13px;padding-bottom:13px;color:var(--ion-text-color, #000)}.alert-checkbox-icon.sc-ion-alert-ios{border-radius:50%;margin-top:10px;margin-bottom:10px;position:relative;-ms-flex-negative:0;flex-shrink:0;width:min(1.375rem, 55.836px);height:min(1.375rem, 55.836px);border-width:0.125rem;border-style:solid;border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));background-color:var(--ion-item-background, var(--ion-background-color, #fff));contain:strict}.checkbox-label-placement-end.sc-ion-alert-ios .alert-checkbox-icon.sc-ion-alert-ios{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:6px;margin-inline-end:6px}.checkbox-label-placement-start.sc-ion-alert-ios .alert-checkbox-icon.sc-ion-alert-ios{-webkit-margin-start:6px;margin-inline-start:6px;-webkit-margin-end:16px;margin-inline-end:16px}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-icon.sc-ion-alert-ios{border-color:var(--ion-color-primary, #0054e9);background-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios{top:calc(min(1.375rem, 55.836px) / 8);position:absolute;width:calc(min(1.375rem, 55.836px) / 6 + 1px);height:calc(min(1.375rem, 55.836px) * 0.5);-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:0.125rem;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-background-color, #fff)}[aria-checked=true].sc-ion-alert-ios .checkbox-label-placement-end.sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios{inset-inline-start:calc(min(1.375rem, 55.836px) / 3)}[aria-checked=true].sc-ion-alert-ios .checkbox-label-placement-start.sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios{inset-inline-end:calc(min(1.375rem, 55.836px) / 3)}.alert-button-group.sc-ion-alert-ios{-webkit-margin-end:-0.55px;margin-inline-end:-0.55px;-ms-flex-wrap:wrap;flex-wrap:wrap}.alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios{border-right:none}[dir=rtl].sc-ion-alert-ios-h .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:none}[dir=rtl].sc-ion-alert-ios .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:none}@supports selector(:dir(rtl)){.alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child:dir(rtl){border-right:none}}.alert-button.sc-ion-alert-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;border-radius:0;-ms-flex:1 1 auto;flex:1 1 auto;min-width:50%;height:max(44px, 2.75rem);border-top:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);background-color:transparent;color:var(--ion-color-primary, #0054e9);font-size:max(17px, 1.0625rem);overflow:hidden}[dir=rtl].sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:first-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:first-child{border-right:0}[dir=rtl].sc-ion-alert-ios .alert-button.sc-ion-alert-ios:first-child{border-right:0}@supports selector(:dir(rtl)){.alert-button.sc-ion-alert-ios:first-child:dir(rtl){border-right:0}}.alert-button.sc-ion-alert-ios:last-child{border-right:0;font-weight:bold}[dir=rtl].sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:last-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:last-child{border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}[dir=rtl].sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}@supports selector(:dir(rtl)){.alert-button.sc-ion-alert-ios:last-child:dir(rtl){border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}}.alert-button.ion-activated.sc-ion-alert-ios{background-color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.1)}.alert-button-role-destructive.sc-ion-alert-ios,.alert-button-role-destructive.ion-activated.sc-ion-alert-ios,.alert-button-role-destructive.ion-focused.sc-ion-alert-ios{color:var(--ion-color-danger, #c5000f)}`;
|
|
10396
10828
|
|
|
10397
|
-
const alertMdCss = () => `.sc-ion-alert-md-h{--min-width:250px;--width:auto;--min-height:auto;--height:auto;--max-height:90%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-alert-md-h{display:none}.alert-top.sc-ion-alert-md-h{padding-top:50px;-ms-flex-align:start;align-items:flex-start}.alert-wrapper.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:content;opacity:0;z-index:10}.alert-title.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-sub-title.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-weight:normal}.alert-message.sc-ion-alert-md,.alert-input-group.sc-ion-alert-md{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch;overflow-y:auto;overscroll-behavior-y:contain}.alert-checkbox-label.sc-ion-alert-md,.alert-radio-label.sc-ion-alert-md{overflow-wrap:anywhere}@media (any-pointer: coarse){.alert-checkbox-group.sc-ion-alert-md::-webkit-scrollbar,.alert-radio-group.sc-ion-alert-md::-webkit-scrollbar,.alert-message.sc-ion-alert-md::-webkit-scrollbar{display:none}}.alert-input.sc-ion-alert-md{padding-left:0;padding-right:0;padding-top:10px;padding-bottom:10px;width:100%;border:0;background:inherit;font:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.alert-button-group.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;width:100%}.alert-button-group-vertical.sc-ion-alert-md{-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.alert-button.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;border:0;font-size:0.875rem;line-height:1.25rem;z-index:0}.alert-button.ion-focused.sc-ion-alert-md,.alert-tappable.ion-focused.sc-ion-alert-md{background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.alert-button-inner.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;min-height:inherit}.alert-input-disabled.sc-ion-alert-md,.alert-checkbox-button-disabled.sc-ion-alert-md .alert-button-inner.sc-ion-alert-md,.alert-radio-button-disabled.sc-ion-alert-md .alert-button-inner.sc-ion-alert-md{cursor:default;opacity:0.5;pointer-events:none}.alert-tappable.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:-ms-flexbox;display:flex;width:100%;border:0;background:transparent;font-size:inherit;line-height:initial;text-align:start;-webkit-appearance:none;-moz-appearance:none;appearance:none;contain:content}.alert-button.sc-ion-alert-md,.alert-checkbox.sc-ion-alert-md,.alert-input.sc-ion-alert-md,.alert-radio.sc-ion-alert-md{outline:none}.alert-radio-icon.sc-ion-alert-md,.alert-checkbox-icon.sc-ion-alert-md,.alert-checkbox-inner.sc-ion-alert-md{-webkit-box-sizing:border-box;box-sizing:border-box}textarea.alert-input.sc-ion-alert-md{min-height:37px;resize:none}.sc-ion-alert-md-h{--background:var(--ion-overlay-background-color, var(--ion-background-color, #fff));--max-width:280px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.32);font-size:0.875rem}.alert-wrapper.sc-ion-alert-md{border-radius:4px;-webkit-box-shadow:0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12);box-shadow:0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12)}.alert-head.sc-ion-alert-md{-webkit-padding-start:23px;padding-inline-start:23px;-webkit-padding-end:23px;padding-inline-end:23px;padding-top:20px;padding-bottom:15px;text-align:start}.alert-title.sc-ion-alert-md{color:var(--ion-text-color, #000);font-size:1.25rem;font-weight:500}.alert-sub-title.sc-ion-alert-md{color:var(--ion-text-color, #000);font-size:1rem}.alert-message.sc-ion-alert-md,.alert-input-group.sc-ion-alert-md{-webkit-padding-start:24px;padding-inline-start:24px;-webkit-padding-end:24px;padding-inline-end:24px;padding-top:20px;padding-bottom:20px;color:var(--ion-color-step-550, var(--ion-text-color-step-450, #737373))}.alert-message.sc-ion-alert-md{font-size:1rem}@media screen and (max-width: 767px){.alert-message.sc-ion-alert-md{max-height:266px}}.alert-message.sc-ion-alert-md:empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-head.sc-ion-alert-md+.alert-message.sc-ion-alert-md{padding-top:0}.alert-input.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:5px;border-bottom:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));color:var(--ion-text-color, #000)}.alert-input.sc-ion-alert-md::-webkit-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-moz-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md:-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-ms-clear{display:none}.alert-input.sc-ion-alert-md:focus{margin-bottom:4px;border-bottom:2px solid var(--ion-color-primary, #0054e9)}.alert-radio-group.sc-ion-alert-md,.alert-checkbox-group.sc-ion-alert-md{position:relative;border-top:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));border-bottom:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));overflow:auto}@media screen and (max-width: 767px){.alert-radio-group.sc-ion-alert-md,.alert-checkbox-group.sc-ion-alert-md{max-height:266px}}.alert-tappable.sc-ion-alert-md{position:relative;min-height:48px}.alert-radio-label.sc-ion-alert-md{-webkit-padding-start:52px;padding-inline-start:52px;-webkit-padding-end:26px;padding-inline-end:26px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));font-size:1rem}.alert-radio-icon.sc-ion-alert-md{top:0;border-radius:50%;display:block;position:relative;width:20px;height:20px;border-width:2px;border-style:solid;border-color:var(--ion-color-step-550, var(--ion-background-color-step-550, #737373))}.alert-radio-icon.sc-ion-alert-md{inset-inline-start:26px}.alert-radio-inner.sc-ion-alert-md{top:3px;border-radius:50%;position:absolute;width:10px;height:10px;-webkit-transform:scale3d(0, 0, 0);transform:scale3d(0, 0, 0);-webkit-transition:-webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:-webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:transform 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);background-color:var(--ion-color-primary, #0054e9)}.alert-radio-inner.sc-ion-alert-md{inset-inline-start:3px}[aria-checked=true].sc-ion-alert-md .alert-radio-label.sc-ion-alert-md{color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626))}[aria-checked=true].sc-ion-alert-md .alert-radio-icon.sc-ion-alert-md{border-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-md .alert-radio-inner.sc-ion-alert-md{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}.alert-checkbox-label.sc-ion-alert-md{-webkit-padding-start:53px;padding-inline-start:53px;-webkit-padding-end:26px;padding-inline-end:26px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;width:calc(100% - 53px);color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));font-size:1rem}.alert-checkbox-icon.sc-ion-alert-md{top:0;border-radius:2px;position:relative;width:16px;height:16px;border-width:2px;border-style:solid;border-color:var(--ion-color-step-550, var(--ion-background-color-step-550, #737373));contain:strict}.alert-checkbox-icon.sc-ion-alert-md{inset-inline-start:26px}[aria-checked=true].sc-ion-alert-md .alert-checkbox-icon.sc-ion-alert-md{border-color:var(--ion-color-primary, #0054e9);background-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-md .alert-checkbox-inner.sc-ion-alert-md{top:0;position:absolute;width:6px;height:10px;-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:2px;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-color-primary-contrast, #fff)}[aria-checked=true].sc-ion-alert-md .alert-checkbox-inner.sc-ion-alert-md{inset-inline-start:3px}.alert-button-group.sc-ion-alert-md{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse;-ms-flex-pack:end;justify-content:flex-end}.alert-button.sc-ion-alert-md{border-radius:2px;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:8px;margin-inline-end:8px;margin-top:0;margin-bottom:0;-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:10px;padding-bottom:10px;position:relative;background-color:transparent;color:var(--ion-color-primary, #0054e9);font-weight:500;text-align:end;text-transform:uppercase;overflow:hidden}.alert-button-inner.sc-ion-alert-md{-ms-flex-pack:end;justify-content:flex-end}@media screen and (min-width: 768px){.sc-ion-alert-md-h{--max-width:min(100vw - 96px, 560px);--max-height:min(100vh - 96px, 560px)}}`;
|
|
10829
|
+
const alertMdCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-alert-md,.alert-radio-label-has-rich-content.sc-ion-alert-md,.alert-checkbox-label-has-rich-content.sc-ion-alert-md,.select-option-label-has-rich-content.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:16px}.action-sheet-button-label-has-rich-content.sc-ion-alert-md,.alert-radio-label-has-rich-content.sc-ion-alert-md,.alert-checkbox-label-has-rich-content.sc-ion-alert-md,.select-option-content.sc-ion-alert-md{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-alert-md,.alert-checkbox-label-text.sc-ion-alert-md,.alert-radio-label-text.sc-ion-alert-md,.select-option-label-text.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-alert-md,.select-option-end.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-alert-md{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}.select-option-label.sc-ion-alert-md:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-alert-md::part(label),ion-radio.select-option-has-rich-content.sc-ion-alert-md [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-alert-md::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-alert-md [part~="label"],.select-option-content.sc-ion-alert-md{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-alert-md>ion-avatar.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>ion-avatar.sc-ion-alert-md{width:40px;height:40px}.select-option-start.sc-ion-alert-md>ion-icon.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>ion-icon.sc-ion-alert-md{width:24px;height:24px}.select-option-start.sc-ion-alert-md>ion-img.sc-ion-alert-md,.select-option-start.sc-ion-alert-md>img.sc-ion-alert-md,.select-option-start.sc-ion-alert-md>svg.sc-ion-alert-md,.select-option-start.sc-ion-alert-md>ion-thumbnail.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>ion-img.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>img.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>svg.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>ion-thumbnail.sc-ion-alert-md{width:56px;height:56px}.select-option-start.sc-ion-alert-md>video.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>video.sc-ion-alert-md{width:114px;height:56px}.sc-ion-alert-md-h{--min-width:250px;--width:auto;--min-height:auto;--height:auto;--max-height:90%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-alert-md-h{display:none}.alert-top.sc-ion-alert-md-h{padding-top:50px;-ms-flex-align:start;align-items:flex-start}.alert-wrapper.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:content;opacity:0;z-index:10}.alert-title.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-sub-title.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-weight:normal}.alert-message.sc-ion-alert-md,.alert-input-group.sc-ion-alert-md{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch;overflow-y:auto;overscroll-behavior-y:contain}.alert-checkbox-label.sc-ion-alert-md,.alert-radio-label.sc-ion-alert-md{overflow-wrap:anywhere}@media (any-pointer: coarse){.alert-checkbox-group.sc-ion-alert-md::-webkit-scrollbar,.alert-radio-group.sc-ion-alert-md::-webkit-scrollbar,.alert-message.sc-ion-alert-md::-webkit-scrollbar{display:none}}.alert-input.sc-ion-alert-md{padding-left:0;padding-right:0;padding-top:10px;padding-bottom:10px;width:100%;border:0;background:inherit;font:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.alert-button-group.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;width:100%}.alert-button-group-vertical.sc-ion-alert-md{-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.alert-button.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;border:0;font-size:0.875rem;line-height:1.25rem;z-index:0}.alert-button.ion-focused.sc-ion-alert-md,.alert-tappable.ion-focused.sc-ion-alert-md{background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.alert-button-inner.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;min-height:inherit}.radio-label-placement-start.sc-ion-alert-md,.checkbox-label-placement-start.sc-ion-alert-md{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.radio-label-placement-end.sc-ion-alert-md,.checkbox-label-placement-end.sc-ion-alert-md{-ms-flex-direction:row;flex-direction:row}.radio-justify-start.sc-ion-alert-md,.checkbox-justify-start.sc-ion-alert-md{-ms-flex-pack:start;justify-content:start}.radio-justify-end.sc-ion-alert-md,.checkbox-justify-end.sc-ion-alert-md{-ms-flex-pack:end;justify-content:end}.radio-justify-space-between.sc-ion-alert-md,.checkbox-justify-space-between.sc-ion-alert-md{-ms-flex-pack:justify;justify-content:space-between}.alert-input-disabled.sc-ion-alert-md,.alert-checkbox-button-disabled.sc-ion-alert-md .alert-button-inner.sc-ion-alert-md,.alert-radio-button-disabled.sc-ion-alert-md .alert-button-inner.sc-ion-alert-md{cursor:default;opacity:0.5;pointer-events:none}.alert-tappable.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:-ms-flexbox;display:flex;width:100%;border:0;background:transparent;font-size:inherit;line-height:initial;text-align:start;-webkit-appearance:none;-moz-appearance:none;appearance:none;contain:content}.alert-button.sc-ion-alert-md,.alert-checkbox.sc-ion-alert-md,.alert-input.sc-ion-alert-md,.alert-radio.sc-ion-alert-md{outline:none}.alert-radio-icon.sc-ion-alert-md,.alert-checkbox-icon.sc-ion-alert-md,.alert-checkbox-inner.sc-ion-alert-md{-webkit-box-sizing:border-box;box-sizing:border-box}textarea.alert-input.sc-ion-alert-md{min-height:37px;resize:none}.sc-ion-alert-md-h{--background:var(--ion-overlay-background-color, var(--ion-background-color, #fff));--max-width:280px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.32);font-size:0.875rem}.alert-wrapper.sc-ion-alert-md{border-radius:4px;-webkit-box-shadow:0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12);box-shadow:0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12)}.alert-head.sc-ion-alert-md{-webkit-padding-start:24px;padding-inline-start:24px;-webkit-padding-end:24px;padding-inline-end:24px;padding-top:20px;padding-bottom:15px;text-align:start}.alert-title.sc-ion-alert-md{color:var(--ion-text-color, #000);font-size:1.25rem;font-weight:500}.alert-sub-title.sc-ion-alert-md{color:var(--ion-text-color, #000);font-size:1rem}.alert-message.sc-ion-alert-md,.alert-input-group.sc-ion-alert-md{-webkit-padding-start:24px;padding-inline-start:24px;-webkit-padding-end:24px;padding-inline-end:24px;padding-top:20px;padding-bottom:20px;color:var(--ion-color-step-550, var(--ion-text-color-step-450, #737373))}.alert-message.sc-ion-alert-md{font-size:1rem}@media screen and (max-width: 767px){.alert-message.sc-ion-alert-md{max-height:266px}}.alert-message.sc-ion-alert-md:empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-head.sc-ion-alert-md+.alert-message.sc-ion-alert-md{padding-top:0}.alert-input.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:5px;border-bottom:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));color:var(--ion-text-color, #000)}.alert-input.sc-ion-alert-md::-webkit-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-moz-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md:-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-ms-clear{display:none}.alert-input.sc-ion-alert-md:focus{margin-bottom:4px;border-bottom:2px solid var(--ion-color-primary, #0054e9)}.alert-radio-group.sc-ion-alert-md,.alert-checkbox-group.sc-ion-alert-md{position:relative;border-top:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));border-bottom:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));overflow:auto}@media screen and (max-width: 767px){.alert-radio-group.sc-ion-alert-md,.alert-checkbox-group.sc-ion-alert-md{max-height:266px}}.alert-tappable.sc-ion-alert-md{position:relative;min-height:48px}.alert-radio-label.sc-ion-alert-md{padding-top:13px;padding-bottom:13px;max-width:calc(100% - 20px);color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));font-size:1rem}.radio-label-placement-end.sc-ion-alert-md .alert-radio-label.sc-ion-alert-md{-webkit-padding-start:56px;padding-inline-start:56px;-webkit-padding-end:24px;padding-inline-end:24px}.radio-label-placement-start.sc-ion-alert-md .alert-radio-label.sc-ion-alert-md{-webkit-padding-start:24px;padding-inline-start:24px;-webkit-padding-end:56px;padding-inline-end:56px}.alert-radio-icon.sc-ion-alert-md{top:0;border-radius:50%;display:block;position:relative;-ms-flex-negative:0;flex-shrink:0;width:20px;height:20px;border-width:2px;border-style:solid;border-color:var(--ion-color-step-550, var(--ion-background-color-step-550, #737373))}.radio-label-placement-end.sc-ion-alert-md .alert-radio-icon.sc-ion-alert-md{inset-inline-start:24px}.radio-label-placement-start.sc-ion-alert-md .alert-radio-icon.sc-ion-alert-md{inset-inline-end:24px}.alert-radio-inner.sc-ion-alert-md{top:3px;border-radius:50%;position:absolute;width:10px;height:10px;-webkit-transform:scale3d(0, 0, 0);transform:scale3d(0, 0, 0);-webkit-transition:-webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:-webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:transform 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);background-color:var(--ion-color-primary, #0054e9)}.alert-radio-inner.sc-ion-alert-md{inset-inline-start:3px}[aria-checked=true].sc-ion-alert-md .alert-radio-label.sc-ion-alert-md{color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626))}[aria-checked=true].sc-ion-alert-md .alert-radio-icon.sc-ion-alert-md{border-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-md .alert-radio-inner.sc-ion-alert-md{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}.alert-checkbox-label.sc-ion-alert-md{padding-top:13px;padding-bottom:13px;max-width:calc(100% - 16px);color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));font-size:1rem}.checkbox-label-placement-end.sc-ion-alert-md .alert-checkbox-label.sc-ion-alert-md{-webkit-padding-start:56px;padding-inline-start:56px;-webkit-padding-end:24px;padding-inline-end:24px}.checkbox-label-placement-start.sc-ion-alert-md .alert-checkbox-label.sc-ion-alert-md{-webkit-padding-start:24px;padding-inline-start:24px;-webkit-padding-end:56px;padding-inline-end:56px}.alert-checkbox-icon.sc-ion-alert-md{top:0;border-radius:2px;position:relative;-ms-flex-negative:0;flex-shrink:0;width:16px;height:16px;border-width:2px;border-style:solid;border-color:var(--ion-color-step-550, var(--ion-background-color-step-550, #737373));contain:strict}.checkbox-label-placement-end.sc-ion-alert-md .alert-checkbox-icon.sc-ion-alert-md{inset-inline-start:24px}.checkbox-label-placement-start.sc-ion-alert-md .alert-checkbox-icon.sc-ion-alert-md{inset-inline-end:24px}[aria-checked=true].sc-ion-alert-md .alert-checkbox-icon.sc-ion-alert-md{border-color:var(--ion-color-primary, #0054e9);background-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-md .alert-checkbox-inner.sc-ion-alert-md{top:0;position:absolute;width:6px;height:10px;-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:2px;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-color-primary-contrast, #fff)}[aria-checked=true].sc-ion-alert-md .alert-checkbox-inner.sc-ion-alert-md{inset-inline-start:3px}.alert-button-group.sc-ion-alert-md{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse;-ms-flex-pack:end;justify-content:flex-end}.alert-button.sc-ion-alert-md{border-radius:2px;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:8px;margin-inline-end:8px;margin-top:0;margin-bottom:0;-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:10px;padding-bottom:10px;position:relative;background-color:transparent;color:var(--ion-color-primary, #0054e9);font-weight:500;text-align:end;text-transform:uppercase;overflow:hidden}.alert-button-group.sc-ion-alert-md .alert-button-inner.sc-ion-alert-md{-ms-flex-pack:end;justify-content:flex-end}@media screen and (min-width: 768px){.sc-ion-alert-md-h{--max-width:min(100vw - 96px, 560px);--max-height:min(100vh - 96px, 560px)}}`;
|
|
10398
10830
|
|
|
10399
10831
|
// TODO(FW-2832): types
|
|
10400
10832
|
/**
|
|
@@ -10568,22 +11000,7 @@ class Alert {
|
|
|
10568
11000
|
this.inputType = inputTypes.values().next().value;
|
|
10569
11001
|
this.processedInputs = inputs.map((i, index) => {
|
|
10570
11002
|
var _a;
|
|
10571
|
-
return ({
|
|
10572
|
-
type: i.type || 'text',
|
|
10573
|
-
name: i.name || `${index}`,
|
|
10574
|
-
placeholder: i.placeholder || '',
|
|
10575
|
-
value: i.value,
|
|
10576
|
-
label: i.label,
|
|
10577
|
-
checked: !!i.checked,
|
|
10578
|
-
disabled: !!i.disabled,
|
|
10579
|
-
id: i.id || `alert-input-${this.overlayIndex}-${index}`,
|
|
10580
|
-
handler: i.handler,
|
|
10581
|
-
min: i.min,
|
|
10582
|
-
max: i.max,
|
|
10583
|
-
cssClass: (_a = i.cssClass) !== null && _a !== void 0 ? _a : '',
|
|
10584
|
-
attributes: i.attributes || {},
|
|
10585
|
-
tabindex: i.type === 'radio' && i !== focusable ? -1 : 0,
|
|
10586
|
-
});
|
|
11003
|
+
return Object.assign(Object.assign({}, i), { type: i.type || 'text', name: i.name || `${index}`, placeholder: i.placeholder || '', checked: !!i.checked, disabled: !!i.disabled, id: i.id || `alert-input-${this.overlayIndex}-${index}`, cssClass: (_a = i.cssClass) !== null && _a !== void 0 ? _a : '', attributes: i.attributes || {}, tabindex: i.type === 'radio' && i !== focusable ? -1 : 0 });
|
|
10587
11004
|
});
|
|
10588
11005
|
}
|
|
10589
11006
|
connectedCallback() {
|
|
@@ -10611,6 +11028,10 @@ class Alert {
|
|
|
10611
11028
|
this.gesture.destroy();
|
|
10612
11029
|
this.gesture = undefined;
|
|
10613
11030
|
}
|
|
11031
|
+
// Clean up aria-hidden if removed without dismiss() being called
|
|
11032
|
+
if (this.presented) {
|
|
11033
|
+
cleanupRootFocusTrapAccessibility();
|
|
11034
|
+
}
|
|
10614
11035
|
(_a = this.buttonGroupResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
10615
11036
|
this.buttonGroupResizeObserver = undefined;
|
|
10616
11037
|
}
|
|
@@ -10650,7 +11071,7 @@ class Alert {
|
|
|
10650
11071
|
async present() {
|
|
10651
11072
|
const unlock = await this.lockController.lock();
|
|
10652
11073
|
await this.delegateController.attachViewToDom();
|
|
10653
|
-
await present(this, 'alertEnter', iosEnterAnimation$
|
|
11074
|
+
await present(this, 'alertEnter', iosEnterAnimation$4, mdEnterAnimation$4).then(() => {
|
|
10654
11075
|
var _a, _b;
|
|
10655
11076
|
/**
|
|
10656
11077
|
* Check if alert has only one button and no inputs.
|
|
@@ -10681,7 +11102,7 @@ class Alert {
|
|
|
10681
11102
|
*/
|
|
10682
11103
|
async dismiss(data, role) {
|
|
10683
11104
|
const unlock = await this.lockController.lock();
|
|
10684
|
-
const dismissed = await dismiss(this, data, role, 'alertLeave', iosLeaveAnimation$
|
|
11105
|
+
const dismissed = await dismiss(this, data, role, 'alertLeave', iosLeaveAnimation$4, mdLeaveAnimation$4);
|
|
10685
11106
|
if (dismissed) {
|
|
10686
11107
|
this.delegateController.removeViewFromDom();
|
|
10687
11108
|
}
|
|
@@ -10779,14 +11200,61 @@ class Alert {
|
|
|
10779
11200
|
if (inputs.length === 0) {
|
|
10780
11201
|
return null;
|
|
10781
11202
|
}
|
|
10782
|
-
return (hAsync("div", { class: "alert-checkbox-group" }, inputs.map((i) =>
|
|
11203
|
+
return (hAsync("div", { class: "alert-checkbox-group" }, inputs.map((i) => {
|
|
11204
|
+
var _a, _b;
|
|
11205
|
+
/**
|
|
11206
|
+
* Cast to `SelectAlertInput` to access rich content
|
|
11207
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
11208
|
+
* that are passed through from `ion-select` but not
|
|
11209
|
+
* part of the public `AlertInput` interface.
|
|
11210
|
+
*/
|
|
11211
|
+
const richInput = i;
|
|
11212
|
+
const optionLabelOptions = {
|
|
11213
|
+
id: richInput.id,
|
|
11214
|
+
label: richInput.label,
|
|
11215
|
+
startContent: richInput.startContent,
|
|
11216
|
+
endContent: richInput.endContent,
|
|
11217
|
+
description: richInput.description,
|
|
11218
|
+
};
|
|
11219
|
+
const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'checkbox');
|
|
11220
|
+
const defaultJustify = getOverlayLabelJustify(mode, 'checkbox');
|
|
11221
|
+
return (hAsync("button", { type: "button", onClick: () => this.cbClick(i), "aria-checked": `${i.checked}`, id: i.id, disabled: i.disabled, tabIndex: i.tabindex, role: "checkbox", class: Object.assign(Object.assign({}, getClassMap(i.cssClass)), { 'alert-tappable': true, 'alert-checkbox': true, 'alert-checkbox-button': true, 'ion-focusable': !i.disabled, 'ion-activatable': !i.disabled, 'alert-checkbox-button-disabled': i.disabled || false }) }, hAsync("div", { class: {
|
|
11222
|
+
'alert-button-inner': true,
|
|
11223
|
+
[`checkbox-label-placement-${(_a = richInput.labelPlacement) !== null && _a !== void 0 ? _a : defaultLabelPlacement}`]: true,
|
|
11224
|
+
[`checkbox-justify-${(_b = richInput.justify) !== null && _b !== void 0 ? _b : defaultJustify}`]: true,
|
|
11225
|
+
} }, hAsync("div", { class: "alert-checkbox-icon" }, hAsync("div", { class: "alert-checkbox-inner" })), renderOptionLabel(optionLabelOptions, 'alert-checkbox-label')), mode === 'md' && hAsync("ion-ripple-effect", null)));
|
|
11226
|
+
})));
|
|
10783
11227
|
}
|
|
10784
11228
|
renderRadio() {
|
|
10785
11229
|
const inputs = this.processedInputs;
|
|
11230
|
+
const mode = getIonMode$1(this);
|
|
10786
11231
|
if (inputs.length === 0) {
|
|
10787
11232
|
return null;
|
|
10788
11233
|
}
|
|
10789
|
-
return (hAsync("div", { class: "alert-radio-group", role: "radiogroup", "aria-activedescendant": this.activeId }, inputs.map((i) =>
|
|
11234
|
+
return (hAsync("div", { class: "alert-radio-group", role: "radiogroup", "aria-activedescendant": this.activeId }, inputs.map((i) => {
|
|
11235
|
+
var _a, _b;
|
|
11236
|
+
/**
|
|
11237
|
+
* Cast to `SelectAlertInput` to access rich content
|
|
11238
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
11239
|
+
* that are passed through from `ion-select` but not
|
|
11240
|
+
* part of the public `AlertInput` interface.
|
|
11241
|
+
*/
|
|
11242
|
+
const richInput = i;
|
|
11243
|
+
const optionLabelOptions = {
|
|
11244
|
+
id: richInput.id,
|
|
11245
|
+
label: richInput.label,
|
|
11246
|
+
startContent: richInput.startContent,
|
|
11247
|
+
endContent: richInput.endContent,
|
|
11248
|
+
description: richInput.description,
|
|
11249
|
+
};
|
|
11250
|
+
const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'radio');
|
|
11251
|
+
const defaultJustify = getOverlayLabelJustify(mode, 'radio');
|
|
11252
|
+
return (hAsync("button", { type: "button", onClick: () => this.rbClick(i), "aria-checked": `${i.checked}`, disabled: i.disabled, id: i.id, tabIndex: i.tabindex, class: Object.assign(Object.assign({}, getClassMap(i.cssClass)), { 'alert-radio-button': true, 'alert-tappable': true, 'alert-radio': true, 'ion-focusable': !i.disabled, 'ion-activatable': !i.disabled, 'alert-radio-button-disabled': i.disabled || false }), role: "radio" }, hAsync("div", { class: {
|
|
11253
|
+
'alert-button-inner': true,
|
|
11254
|
+
[`radio-label-placement-${(_a = richInput.labelPlacement) !== null && _a !== void 0 ? _a : defaultLabelPlacement}`]: true,
|
|
11255
|
+
[`radio-justify-${(_b = richInput.justify) !== null && _b !== void 0 ? _b : defaultJustify}`]: true,
|
|
11256
|
+
} }, hAsync("div", { class: "alert-radio-icon" }, hAsync("div", { class: "alert-radio-inner" })), renderOptionLabel(optionLabelOptions, 'alert-radio-label'))));
|
|
11257
|
+
})));
|
|
10790
11258
|
}
|
|
10791
11259
|
renderInput() {
|
|
10792
11260
|
const inputs = this.processedInputs;
|
|
@@ -10866,7 +11334,7 @@ class Alert {
|
|
|
10866
11334
|
'alert-button-group': true,
|
|
10867
11335
|
'alert-button-group-vertical': buttons.length > 2 || this.isButtonGroupWrapped,
|
|
10868
11336
|
};
|
|
10869
|
-
return (hAsync("div", { class: alertButtonGroupClass, ref: (el) => (this.buttonGroupEl = el) }, buttons.map((button) => (hAsync("button", Object.assign({}, button.htmlAttributes, { type: "button", id: button.id, class: buttonClass$
|
|
11337
|
+
return (hAsync("div", { class: alertButtonGroupClass, ref: (el) => (this.buttonGroupEl = el) }, buttons.map((button) => (hAsync("button", Object.assign({}, button.htmlAttributes, { type: "button", id: button.id, class: buttonClass$1(button), tabIndex: 0, onClick: () => this.buttonClick(button) }), hAsync("span", { class: "alert-button-inner" }, button.text), mode === 'md' && hAsync("ion-ripple-effect", null))))));
|
|
10870
11338
|
}
|
|
10871
11339
|
renderAlertMessage(msgId) {
|
|
10872
11340
|
const { customHTMLEnabled, message } = this;
|
|
@@ -10889,9 +11357,9 @@ class Alert {
|
|
|
10889
11357
|
* If neither are defined, do not set aria-labelledby.
|
|
10890
11358
|
*/
|
|
10891
11359
|
const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
|
|
10892
|
-
return (hAsync(Host, { key: '
|
|
11360
|
+
return (hAsync(Host, { key: '022f3463b8e6c52064b90ec304c524847c3d5ad3', tabindex: "-1", style: {
|
|
10893
11361
|
zIndex: `${20000 + overlayIndex}`,
|
|
10894
|
-
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, hAsync("ion-backdrop", { key: '
|
|
11362
|
+
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, hAsync("ion-backdrop", { key: 'c3cd05738bc2834f54707edeb2fae06ec10d6fd2', tappable: this.backdropDismiss }), hAsync("div", { key: 'b44fadd9ba7ddf073854c5035538d11ae8e66bc2', tabindex: "0", "aria-hidden": "true" }), hAsync("div", Object.assign({ key: 'fafea048141a6c7957e62aef31faa8041dd610c1', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el) }, htmlAttributes), hAsync("div", { key: '3ad9d2d4b7cf425eab8293ddc12eff0fe8df1517', class: "alert-head" }, header && (hAsync("h2", { key: '7d9154f5ee595b7e4da6ecf3a20871f104c1256e', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (hAsync("h2", { key: '1f891f38004be6964e9406b84dd580145c42516a', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (hAsync("h3", { key: '2ab4d344ecb7e384e8f6d3d3e59ee5a1bbcc832c', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: '78a4ff09aa3aaafcd0dc2a42d036767d83b3cfa2', tabindex: "0", "aria-hidden": "true" })));
|
|
10895
11363
|
}
|
|
10896
11364
|
get el() { return getElement(this); }
|
|
10897
11365
|
static get watchers() { return {
|
|
@@ -10949,7 +11417,7 @@ const inputClass = (input) => {
|
|
|
10949
11417
|
var _a, _b, _c;
|
|
10950
11418
|
return Object.assign(Object.assign({ 'alert-input': true, 'alert-input-disabled': ((_b = (_a = input.attributes) === null || _a === void 0 ? void 0 : _a.disabled) !== null && _b !== void 0 ? _b : input.disabled) || false }, getClassMap(input.cssClass)), getClassMap(input.attributes ? (_c = input.attributes.class) === null || _c === void 0 ? void 0 : _c.toString() : ''));
|
|
10951
11419
|
};
|
|
10952
|
-
const buttonClass$
|
|
11420
|
+
const buttonClass$1 = (button) => {
|
|
10953
11421
|
return Object.assign({ 'alert-button': true, 'ion-focusable': true, 'ion-activatable': true, [`alert-button-role-${button.role}`]: button.role !== undefined }, getClassMap(button.cssClass));
|
|
10954
11422
|
};
|
|
10955
11423
|
|
|
@@ -15071,9 +15539,9 @@ const checkForPresentationFormatMismatch = (el, presentation, formatOptions) =>
|
|
|
15071
15539
|
}
|
|
15072
15540
|
};
|
|
15073
15541
|
|
|
15074
|
-
const datetimeIosCss = () => `:host{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;background:var(--background);overflow:hidden}:host(.datetime-size-fixed){width:auto;height:auto}:host(.datetime-size-fixed:not(.datetime-prefer-wheel)){max-width:350px}:host(.datetime-size-fixed.datetime-prefer-wheel){min-width:350px;max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content}:host(.datetime-size-cover){width:100%}:host .calendar-body,:host .datetime-year{opacity:0}:host(:not(.datetime-ready)) .datetime-year{position:absolute;pointer-events:none}:host(.datetime-ready) .calendar-body{opacity:1}:host(.datetime-ready) .datetime-year{display:none;opacity:1}:host .wheel-order-year-first .day-column{-ms-flex-order:3;order:3;text-align:end}:host .wheel-order-year-first .month-column{-ms-flex-order:2;order:2;text-align:end}:host .wheel-order-year-first .year-column{-ms-flex-order:1;order:1;text-align:start}:host .datetime-calendar,:host .datetime-year{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-flow:column;flex-flow:column}:host(.show-month-and-year) .datetime-year{display:-ms-flexbox;display:flex}:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{display:none}:host(.month-year-picker-open) .datetime-footer{display:none}:host(.datetime-disabled){pointer-events:none}:host(.datetime-disabled) .calendar-days-of-week,:host(.datetime-disabled) .datetime-time{opacity:0.4}:host(.datetime-readonly){pointer-events:none;}:host(.datetime-readonly) .calendar-action-buttons,:host(.datetime-readonly) .calendar-body,:host(.datetime-readonly) .datetime-year{pointer-events:initial}:host(.datetime-readonly) .calendar-day[disabled]:not(.calendar-day-constrained),:host(.datetime-readonly) .datetime-action-buttons ion-button[disabled]{opacity:1}:host .datetime-header .datetime-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .datetime-action-buttons.has-clear-button{width:100%}:host .datetime-action-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.datetime-action-buttons .datetime-action-buttons-container{display:-ms-flexbox;display:flex}:host .calendar-action-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .calendar-action-buttons ion-button{--background:transparent}:host .calendar-days-of-week{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}.calendar-days-of-week .day-of-week{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0}:host .calendar-body{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-webkit-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;overflow-x:scroll;overflow-y:hidden;scrollbar-width:none;outline:none}:host .calendar-body .calendar-month{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;scroll-snap-align:start;scroll-snap-stop:always;-ms-flex-negative:0;flex-shrink:0;width:100%}:host .calendar-body .calendar-month-disabled{scroll-snap-align:none}:host .calendar-body::-webkit-scrollbar{display:none}:host .calendar-body .calendar-month-grid{display:grid;grid-template-columns:repeat(7, 1fr)}:host .calendar-day-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:0;min-height:0;overflow:visible}.calendar-day{border-radius:50%;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:0px;padding-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:0px;margin-bottom:0px;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border:none;outline:none;background:none;color:currentColor;font-family:var(--ion-font-family, inherit);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:0}:host .calendar-day[disabled]{pointer-events:none;opacity:0.4}.calendar-day:not(.calendar-day-adjacent-day):focus{background:rgba(var(--ion-color-base-rgb), 0.2);-webkit-box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2)}:host .datetime-time{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host(.datetime-presentation-time) .datetime-time{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}:host ion-popover{--height:200px}:host .time-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .time-body{border-radius:8px;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px;display:-ms-flexbox;display:flex;border:none;background:var(--ion-color-step-300, var(--ion-background-color-step-300, #edeef0));color:var(--ion-text-color, #000);font-family:inherit;font-size:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host .time-body-active{color:var(--ion-color-base)}:host(.in-item){position:static}:host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle{color:var(--ion-color-base)}.calendar-month-year{min-width:0}.calendar-month-year-toggle{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;position:relative;border:0;outline:none;background:transparent;cursor:pointer;z-index:1}.calendar-month-year-toggle::after{left:0;right:0;top:0;bottom:0;position:absolute;content:"";opacity:0;-webkit-transition:opacity 15ms linear, background-color 15ms linear;transition:opacity 15ms linear, background-color 15ms linear;z-index:-1}.calendar-month-year-toggle.ion-focused::after{background:currentColor}.calendar-month-year-toggle:disabled{opacity:0.3;pointer-events:none}.calendar-month-year-toggle ion-icon{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:0;padding-inline-end:0;padding-top:0;padding-bottom:0;-ms-flex-negative:0;flex-shrink:0}.calendar-month-year-toggle #toggle-wrapper{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center}ion-picker{--highlight-background:var(--wheel-highlight-background);--highlight-border-radius:var(--wheel-highlight-border-radius);--fade-background-rgb:var(--wheel-fade-background-rgb)}:host{--background:var(--ion-color-light, #f4f5f8);--background-rgb:var(--ion-color-light-rgb, 244, 245, 248);--title-color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}:host(.datetime-presentation-date-time:not(.datetime-prefer-wheel)),:host(.datetime-presentation-time-date:not(.datetime-prefer-wheel)),:host(.datetime-presentation-date:not(.datetime-prefer-wheel)){min-height:350px}:host .datetime-header{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:16px;padding-bottom:16px;border-bottom:0.55px solid var(--ion-color-step-200, var(--ion-background-color-step-200, #cccccc));font-size:min(0.875rem, 22.4px)}:host .datetime-header .datetime-title{color:var(--title-color)}:host .datetime-header .datetime-selected-date{margin-top:10px}.calendar-month-year-toggle{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0px;padding-bottom:0px;min-height:44px;font-size:min(1rem, 25.6px);font-weight:600}.calendar-month-year-toggle.ion-focused::after{opacity:0.15}.calendar-month-year-toggle #toggle-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:8px;margin-inline-end:8px;margin-top:10px;margin-bottom:10px}:host .calendar-action-buttons .calendar-month-year-toggle ion-icon,:host .calendar-action-buttons ion-buttons ion-button{color:var(--ion-color-base)}:host .calendar-action-buttons ion-buttons{-ms-flex-align:stretch;align-items:stretch;height:100%}:host .calendar-action-buttons ion-buttons ion-button{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}:host .calendar-days-of-week{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:0;padding-bottom:0;color:var(--ion-color-step-300, var(--ion-text-color-step-700, #b3b3b3));font-size:min(0.75rem, 19.2px);font-weight:600;line-height:24px;text-transform:uppercase}@supports (border-radius: mod(1px, 1px)){.calendar-days-of-week .day-of-week{width:clamp(20px, calc(mod(min(1rem, 24px), 24px) * 10), 100%);height:24px;overflow:hidden}.calendar-day{border-radius:max(8px, mod(min(1rem, 24px), 24px) * 10)}}@supports ((border-radius: mod(1px, 1px)) and (background: -webkit-named-image(apple-pay-logo-black)) and (not (contain-intrinsic-size: none))) or (not (border-radius: mod(1px, 1px))){.calendar-days-of-week .day-of-week{width:auto;height:auto;overflow:initial}.calendar-day{border-radius:32px}}:host .calendar-body .calendar-month .calendar-month-grid{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;-ms-flex-align:center;align-items:center;height:calc(100% - 16px)}:host .calendar-day-wrapper{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;height:0;min-height:1rem}:host .calendar-day{width:40px;min-width:40px;height:40px;font-size:min(1.25rem, 32px)}.calendar-day.calendar-day-active{background:rgba(var(--ion-color-base-rgb), 0.2);font-size:min(1.375rem, 35.2px)}:host .calendar-day.calendar-day-today{color:var(--ion-color-base)}:host .calendar-day.calendar-day-active,:host .calendar-day.calendar-day-adjacent-day.calendar-day-active{color:var(--ion-color-base);font-weight:600}:host .calendar-day.calendar-day-today.calendar-day-active{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host .calendar-day.calendar-day-adjacent-day{color:var(--ion-color-step-300, var(--ion-text-color-step-700, #b3b3b3))}:host .datetime-time{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:8px;padding-bottom:16px;font-size:min(1rem, 25.6px)}:host .datetime-time .time-header{font-weight:600}:host .datetime-buttons{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;border-top:0.55px solid var(--ion-color-step-200, var(--ion-background-color-step-200, #cccccc))}:host .datetime-buttons ::slotted(ion-buttons),:host .datetime-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}:host .datetime-action-buttons{width:100%}`;
|
|
15542
|
+
const datetimeIosCss = () => `:host{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;background:var(--background);overflow:hidden}:host(.datetime-size-fixed){width:auto;height:auto}:host(.datetime-size-fixed:not(.datetime-prefer-wheel)){max-width:350px}:host(.datetime-size-fixed.datetime-prefer-wheel){min-width:350px;max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content}:host(.datetime-size-cover){width:100%}:host .calendar-body,:host .datetime-year{opacity:0}:host(:not(.datetime-ready)) .datetime-year{position:absolute;pointer-events:none}:host(.datetime-ready) .calendar-body{opacity:1}:host(.datetime-ready) .datetime-year{display:none;opacity:1}:host .wheel-order-year-first .day-column{-ms-flex-order:3;order:3;text-align:end}:host .wheel-order-year-first .month-column{-ms-flex-order:2;order:2;text-align:end}:host .wheel-order-year-first .year-column{-ms-flex-order:1;order:1;text-align:start}:host .datetime-calendar,:host .datetime-year{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-flow:column;flex-flow:column}:host(.show-month-and-year) .datetime-year{display:-ms-flexbox;display:flex}:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{display:none}:host(.month-year-picker-open) .datetime-footer{display:none}:host(.datetime-disabled){pointer-events:none}:host(.datetime-disabled) .calendar-days-of-week,:host(.datetime-disabled) .datetime-time{opacity:0.4}:host(.datetime-readonly){pointer-events:none;}:host(.datetime-readonly) .calendar-action-buttons,:host(.datetime-readonly) .calendar-body,:host(.datetime-readonly) .datetime-year{pointer-events:initial}:host(.datetime-readonly) .calendar-day[disabled]:not(.calendar-day-constrained),:host(.datetime-readonly) .datetime-action-buttons ion-button[disabled]{opacity:1}:host .datetime-header .datetime-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .datetime-action-buttons.has-clear-button{width:100%}:host .datetime-action-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .datetime-action-buttons ion-button{--color:var(--ion-color-primary, #0054e9)}.datetime-action-buttons .datetime-action-buttons-container{display:-ms-flexbox;display:flex}:host .calendar-action-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .calendar-action-buttons ion-button{--background:transparent}:host .calendar-days-of-week{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}.calendar-days-of-week .day-of-week{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0}:host .calendar-body{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-webkit-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;overflow-x:scroll;overflow-y:hidden;scrollbar-width:none;outline:none}:host .calendar-body .calendar-month{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;scroll-snap-align:start;scroll-snap-stop:always;-ms-flex-negative:0;flex-shrink:0;width:100%}:host .calendar-body .calendar-month-disabled{scroll-snap-align:none}:host .calendar-body::-webkit-scrollbar{display:none}:host .calendar-body .calendar-month-grid{display:grid;grid-template-columns:repeat(7, 1fr)}:host .calendar-day-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:0;min-height:0;overflow:visible}.calendar-day{border-radius:50%;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:0px;padding-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:0px;margin-bottom:0px;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border:none;outline:none;background:none;color:currentColor;font-family:var(--ion-font-family, inherit);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:0}:host .calendar-day[disabled]{pointer-events:none;opacity:0.4}.calendar-day:not(.calendar-day-adjacent-day):focus{background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2);-webkit-box-shadow:0px 0px 0px 4px rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2)}:host(.ion-color) .calendar-day:not(.calendar-day-adjacent-day):focus{background:rgba(var(--ion-color-base-rgb), 0.2);-webkit-box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2)}:host .datetime-time{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host(.datetime-presentation-time) .datetime-time{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}:host ion-popover{--height:200px}:host .time-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .time-body{border-radius:8px;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px;display:-ms-flexbox;display:flex;border:none;background:var(--ion-color-step-300, var(--ion-background-color-step-300, #edeef0));color:var(--ion-text-color, #000);font-family:inherit;font-size:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host .time-body-active{color:var(--ion-color-primary, #0054e9)}:host(.ion-color) .time-body-active{color:var(--ion-color-base)}:host(.in-item){position:static}:host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle{color:var(--ion-color-primary, #0054e9)}:host(.ion-color.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle{color:var(--ion-color-base)}.calendar-month-year{min-width:0}.calendar-month-year-toggle{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;position:relative;border:0;outline:none;background:transparent;cursor:pointer;z-index:1}.calendar-month-year-toggle::after{left:0;right:0;top:0;bottom:0;position:absolute;content:"";opacity:0;-webkit-transition:opacity 15ms linear, background-color 15ms linear;transition:opacity 15ms linear, background-color 15ms linear;z-index:-1}.calendar-month-year-toggle.ion-focused::after{background:currentColor}.calendar-month-year-toggle:disabled{opacity:0.3;pointer-events:none}.calendar-month-year-toggle ion-icon{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:0;padding-inline-end:0;padding-top:0;padding-bottom:0;-ms-flex-negative:0;flex-shrink:0}.calendar-month-year-toggle #toggle-wrapper{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center}ion-picker{--highlight-background:var(--wheel-highlight-background);--highlight-border-radius:var(--wheel-highlight-border-radius);--fade-background-rgb:var(--wheel-fade-background-rgb)}:host{--background:var(--ion-color-light, #f4f5f8);--background-rgb:var(--ion-color-light-rgb, 244, 245, 248);--title-color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}:host(.datetime-presentation-date-time:not(.datetime-prefer-wheel)),:host(.datetime-presentation-time-date:not(.datetime-prefer-wheel)),:host(.datetime-presentation-date:not(.datetime-prefer-wheel)){min-height:350px}:host .datetime-header{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:16px;padding-bottom:16px;border-bottom:0.55px solid var(--ion-color-step-200, var(--ion-background-color-step-200, #cccccc));font-size:min(0.875rem, 22.4px)}:host .datetime-header .datetime-title{color:var(--title-color)}:host .datetime-header .datetime-selected-date{margin-top:10px}.calendar-month-year-toggle{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0px;padding-bottom:0px;min-height:44px;font-size:min(1rem, 25.6px);font-weight:600}.calendar-month-year-toggle.ion-focused::after{opacity:0.15}.calendar-month-year-toggle #toggle-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:8px;margin-inline-end:8px;margin-top:10px;margin-bottom:10px}:host .calendar-action-buttons .calendar-month-year-toggle ion-icon,:host .calendar-action-buttons ion-buttons ion-button{color:var(--ion-color-primary, #0054e9)}:host(.ion-color) .calendar-action-buttons .calendar-month-year-toggle ion-icon,:host(.ion-color) .calendar-action-buttons ion-buttons ion-button{color:var(--ion-color-base)}:host .calendar-action-buttons ion-buttons{-ms-flex-align:stretch;align-items:stretch;height:100%}:host .calendar-action-buttons ion-buttons ion-button{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}:host .calendar-days-of-week{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:0;padding-bottom:0;color:var(--ion-color-step-300, var(--ion-text-color-step-700, #b3b3b3));font-size:min(0.75rem, 19.2px);font-weight:600;line-height:24px;text-transform:uppercase}@supports (border-radius: mod(1px, 1px)){.calendar-days-of-week .day-of-week{width:clamp(20px, calc(mod(min(1rem, 24px), 24px) * 10), 100%);height:24px;overflow:hidden}.calendar-day{border-radius:max(8px, mod(min(1rem, 24px), 24px) * 10)}}@supports ((border-radius: mod(1px, 1px)) and (background: -webkit-named-image(apple-pay-logo-black)) and (not (contain-intrinsic-size: none))) or (not (border-radius: mod(1px, 1px))){.calendar-days-of-week .day-of-week{width:auto;height:auto;overflow:initial}.calendar-day{border-radius:32px}}:host .calendar-body .calendar-month .calendar-month-grid{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;-ms-flex-align:center;align-items:center;height:calc(100% - 16px)}:host .calendar-day-wrapper{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;height:0;min-height:1rem}:host .calendar-day{width:40px;min-width:40px;height:40px;font-size:min(1.25rem, 32px)}.calendar-day.calendar-day-active{background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2);font-size:min(1.375rem, 35.2px)}:host(.ion-color) .calendar-day.calendar-day-active{background:rgba(var(--ion-color-base-rgb), 0.2)}:host .calendar-day.calendar-day-today{color:var(--ion-color-primary, #0054e9)}:host(.ion-color) .calendar-day.calendar-day-today{color:var(--ion-color-base)}:host .calendar-day.calendar-day-active,:host .calendar-day.calendar-day-adjacent-day.calendar-day-active{color:var(--ion-color-primary, #0054e9);font-weight:600}:host(.ion-color) .calendar-day.calendar-day-active,:host(.ion-color) .calendar-day.calendar-day-adjacent-day.calendar-day-active{color:var(--ion-color-base)}:host .calendar-day.calendar-day-today.calendar-day-active{background:var(--ion-color-primary, #0054e9);color:var(--ion-color-primary-contrast, #fff)}:host(.ion-color) .calendar-day.calendar-day-today.calendar-day-active{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host .calendar-day.calendar-day-adjacent-day{color:var(--ion-color-step-300, var(--ion-text-color-step-700, #b3b3b3))}:host .datetime-time{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:8px;padding-bottom:16px;font-size:min(1rem, 25.6px)}:host .datetime-time .time-header{font-weight:600}:host .datetime-buttons{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;border-top:0.55px solid var(--ion-color-step-200, var(--ion-background-color-step-200, #cccccc))}:host .datetime-buttons ::slotted(ion-buttons),:host .datetime-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}:host .datetime-action-buttons{width:100%}`;
|
|
15075
15543
|
|
|
15076
|
-
const datetimeMdCss = () => `:host{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;background:var(--background);overflow:hidden}:host(.datetime-size-fixed){width:auto;height:auto}:host(.datetime-size-fixed:not(.datetime-prefer-wheel)){max-width:350px}:host(.datetime-size-fixed.datetime-prefer-wheel){min-width:350px;max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content}:host(.datetime-size-cover){width:100%}:host .calendar-body,:host .datetime-year{opacity:0}:host(:not(.datetime-ready)) .datetime-year{position:absolute;pointer-events:none}:host(.datetime-ready) .calendar-body{opacity:1}:host(.datetime-ready) .datetime-year{display:none;opacity:1}:host .wheel-order-year-first .day-column{-ms-flex-order:3;order:3;text-align:end}:host .wheel-order-year-first .month-column{-ms-flex-order:2;order:2;text-align:end}:host .wheel-order-year-first .year-column{-ms-flex-order:1;order:1;text-align:start}:host .datetime-calendar,:host .datetime-year{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-flow:column;flex-flow:column}:host(.show-month-and-year) .datetime-year{display:-ms-flexbox;display:flex}:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{display:none}:host(.month-year-picker-open) .datetime-footer{display:none}:host(.datetime-disabled){pointer-events:none}:host(.datetime-disabled) .calendar-days-of-week,:host(.datetime-disabled) .datetime-time{opacity:0.4}:host(.datetime-readonly){pointer-events:none;}:host(.datetime-readonly) .calendar-action-buttons,:host(.datetime-readonly) .calendar-body,:host(.datetime-readonly) .datetime-year{pointer-events:initial}:host(.datetime-readonly) .calendar-day[disabled]:not(.calendar-day-constrained),:host(.datetime-readonly) .datetime-action-buttons ion-button[disabled]{opacity:1}:host .datetime-header .datetime-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .datetime-action-buttons.has-clear-button{width:100%}:host .datetime-action-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.datetime-action-buttons .datetime-action-buttons-container{display:-ms-flexbox;display:flex}:host .calendar-action-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .calendar-action-buttons ion-button{--background:transparent}:host .calendar-days-of-week{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}.calendar-days-of-week .day-of-week{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0}:host .calendar-body{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-webkit-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;overflow-x:scroll;overflow-y:hidden;scrollbar-width:none;outline:none}:host .calendar-body .calendar-month{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;scroll-snap-align:start;scroll-snap-stop:always;-ms-flex-negative:0;flex-shrink:0;width:100%}:host .calendar-body .calendar-month-disabled{scroll-snap-align:none}:host .calendar-body::-webkit-scrollbar{display:none}:host .calendar-body .calendar-month-grid{display:grid;grid-template-columns:repeat(7, 1fr)}:host .calendar-day-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:0;min-height:0;overflow:visible}.calendar-day{border-radius:50%;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:0px;padding-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:0px;margin-bottom:0px;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border:none;outline:none;background:none;color:currentColor;font-family:var(--ion-font-family, inherit);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:0}:host .calendar-day[disabled]{pointer-events:none;opacity:0.4}.calendar-day:not(.calendar-day-adjacent-day):focus{background:rgba(var(--ion-color-base-rgb), 0.2);-webkit-box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2)}:host .datetime-time{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host(.datetime-presentation-time) .datetime-time{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}:host ion-popover{--height:200px}:host .time-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .time-body{border-radius:8px;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px;display:-ms-flexbox;display:flex;border:none;background:var(--ion-color-step-300, var(--ion-background-color-step-300, #edeef0));color:var(--ion-text-color, #000);font-family:inherit;font-size:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host .time-body-active{color:var(--ion-color-base)}:host(.in-item){position:static}:host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle{color:var(--ion-color-base)}.calendar-month-year{min-width:0}.calendar-month-year-toggle{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;position:relative;border:0;outline:none;background:transparent;cursor:pointer;z-index:1}.calendar-month-year-toggle::after{left:0;right:0;top:0;bottom:0;position:absolute;content:"";opacity:0;-webkit-transition:opacity 15ms linear, background-color 15ms linear;transition:opacity 15ms linear, background-color 15ms linear;z-index:-1}.calendar-month-year-toggle.ion-focused::after{background:currentColor}.calendar-month-year-toggle:disabled{opacity:0.3;pointer-events:none}.calendar-month-year-toggle ion-icon{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:0;padding-inline-end:0;padding-top:0;padding-bottom:0;-ms-flex-negative:0;flex-shrink:0}.calendar-month-year-toggle #toggle-wrapper{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center}ion-picker{--highlight-background:var(--wheel-highlight-background);--highlight-border-radius:var(--wheel-highlight-border-radius);--fade-background-rgb:var(--wheel-fade-background-rgb)}:host{--background:var(--ion-color-step-100, var(--ion-background-color-step-100, #ffffff));--title-color:var(--ion-color-contrast)}:host .datetime-header{-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:20px;padding-inline-end:20px;padding-top:20px;padding-bottom:20px;background:var(--ion-color-base);color:var(--title-color)}:host .datetime-header .datetime-title{font-size:0.75rem;text-transform:uppercase}:host .datetime-header .datetime-selected-date{margin-top:30px;font-size:2.125rem}:host .calendar-action-buttons ion-button{--color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959))}.calendar-month-year-toggle{-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:12px;padding-bottom:12px;min-height:48px;background:transparent;color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959));z-index:1}.calendar-month-year-toggle.ion-focused::after{opacity:0.04}.calendar-month-year-toggle ion-ripple-effect{color:currentColor}@media (any-hover: hover){.calendar-month-year-toggle.ion-activatable:not(.ion-focused):hover::after{background:currentColor;opacity:0.04}}:host .calendar-days-of-week{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:0px;padding-bottom:0px;color:var(--ion-color-step-500, var(--ion-text-color-step-500, gray));font-size:0.875rem;line-height:36px}:host .calendar-body .calendar-month .calendar-month-grid{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:4px;padding-bottom:4px;grid-template-rows:repeat(6, 1fr)}:host .calendar-day{width:42px;min-width:42px;height:42px;font-size:0.875rem}:host .calendar-day.calendar-day-today{border:1px solid var(--ion-color-base);color:var(--ion-color-base)}:host .calendar-day.calendar-day-active,:host .calendar-day.calendar-day-adjacent-day.calendar-day-active{color:var(--ion-color-contrast)}.calendar-day.calendar-day-active,.calendar-day.calendar-day-active:focus{border:1px solid var(--ion-color-base);background:var(--ion-color-base)}:host .calendar-day.calendar-day-adjacent-day{color:var(--ion-color-step-500, var(--ion-text-color-step-500, gray))}:host .datetime-time{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:8px;padding-bottom:8px}:host .time-header{color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959))}:host(.datetime-presentation-month) .datetime-year,:host(.datetime-presentation-year) .datetime-year,:host(.datetime-presentation-month-year) .datetime-year{margin-top:20px;margin-bottom:20px}:host .datetime-buttons{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:10px;padding-bottom:10px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end}`;
|
|
15544
|
+
const datetimeMdCss = () => `:host{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;background:var(--background);overflow:hidden}:host(.datetime-size-fixed){width:auto;height:auto}:host(.datetime-size-fixed:not(.datetime-prefer-wheel)){max-width:350px}:host(.datetime-size-fixed.datetime-prefer-wheel){min-width:350px;max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content}:host(.datetime-size-cover){width:100%}:host .calendar-body,:host .datetime-year{opacity:0}:host(:not(.datetime-ready)) .datetime-year{position:absolute;pointer-events:none}:host(.datetime-ready) .calendar-body{opacity:1}:host(.datetime-ready) .datetime-year{display:none;opacity:1}:host .wheel-order-year-first .day-column{-ms-flex-order:3;order:3;text-align:end}:host .wheel-order-year-first .month-column{-ms-flex-order:2;order:2;text-align:end}:host .wheel-order-year-first .year-column{-ms-flex-order:1;order:1;text-align:start}:host .datetime-calendar,:host .datetime-year{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-flow:column;flex-flow:column}:host(.show-month-and-year) .datetime-year{display:-ms-flexbox;display:flex}:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{display:none}:host(.month-year-picker-open) .datetime-footer{display:none}:host(.datetime-disabled){pointer-events:none}:host(.datetime-disabled) .calendar-days-of-week,:host(.datetime-disabled) .datetime-time{opacity:0.4}:host(.datetime-readonly){pointer-events:none;}:host(.datetime-readonly) .calendar-action-buttons,:host(.datetime-readonly) .calendar-body,:host(.datetime-readonly) .datetime-year{pointer-events:initial}:host(.datetime-readonly) .calendar-day[disabled]:not(.calendar-day-constrained),:host(.datetime-readonly) .datetime-action-buttons ion-button[disabled]{opacity:1}:host .datetime-header .datetime-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .datetime-action-buttons.has-clear-button{width:100%}:host .datetime-action-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .datetime-action-buttons ion-button{--color:var(--ion-color-primary, #0054e9)}.datetime-action-buttons .datetime-action-buttons-container{display:-ms-flexbox;display:flex}:host .calendar-action-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .calendar-action-buttons ion-button{--background:transparent}:host .calendar-days-of-week{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}.calendar-days-of-week .day-of-week{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0}:host .calendar-body{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-webkit-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;overflow-x:scroll;overflow-y:hidden;scrollbar-width:none;outline:none}:host .calendar-body .calendar-month{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;scroll-snap-align:start;scroll-snap-stop:always;-ms-flex-negative:0;flex-shrink:0;width:100%}:host .calendar-body .calendar-month-disabled{scroll-snap-align:none}:host .calendar-body::-webkit-scrollbar{display:none}:host .calendar-body .calendar-month-grid{display:grid;grid-template-columns:repeat(7, 1fr)}:host .calendar-day-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:0;min-height:0;overflow:visible}.calendar-day{border-radius:50%;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:0px;padding-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:0px;margin-bottom:0px;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border:none;outline:none;background:none;color:currentColor;font-family:var(--ion-font-family, inherit);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:0}:host .calendar-day[disabled]{pointer-events:none;opacity:0.4}.calendar-day:not(.calendar-day-adjacent-day):focus{background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2);-webkit-box-shadow:0px 0px 0px 4px rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2)}:host(.ion-color) .calendar-day:not(.calendar-day-adjacent-day):focus{background:rgba(var(--ion-color-base-rgb), 0.2);-webkit-box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2)}:host .datetime-time{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host(.datetime-presentation-time) .datetime-time{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}:host ion-popover{--height:200px}:host .time-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .time-body{border-radius:8px;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px;display:-ms-flexbox;display:flex;border:none;background:var(--ion-color-step-300, var(--ion-background-color-step-300, #edeef0));color:var(--ion-text-color, #000);font-family:inherit;font-size:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host .time-body-active{color:var(--ion-color-primary, #0054e9)}:host(.ion-color) .time-body-active{color:var(--ion-color-base)}:host(.in-item){position:static}:host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle{color:var(--ion-color-primary, #0054e9)}:host(.ion-color.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle{color:var(--ion-color-base)}.calendar-month-year{min-width:0}.calendar-month-year-toggle{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;position:relative;border:0;outline:none;background:transparent;cursor:pointer;z-index:1}.calendar-month-year-toggle::after{left:0;right:0;top:0;bottom:0;position:absolute;content:"";opacity:0;-webkit-transition:opacity 15ms linear, background-color 15ms linear;transition:opacity 15ms linear, background-color 15ms linear;z-index:-1}.calendar-month-year-toggle.ion-focused::after{background:currentColor}.calendar-month-year-toggle:disabled{opacity:0.3;pointer-events:none}.calendar-month-year-toggle ion-icon{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:0;padding-inline-end:0;padding-top:0;padding-bottom:0;-ms-flex-negative:0;flex-shrink:0}.calendar-month-year-toggle #toggle-wrapper{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center}ion-picker{--highlight-background:var(--wheel-highlight-background);--highlight-border-radius:var(--wheel-highlight-border-radius);--fade-background-rgb:var(--wheel-fade-background-rgb)}:host{--background:var(--ion-color-step-100, var(--ion-background-color-step-100, #ffffff));--title-color:var(--ion-color-primary-contrast, #fff)}:host(.ion-color){--title-color:var(--ion-color-contrast)}:host .datetime-header{-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:20px;padding-inline-end:20px;padding-top:20px;padding-bottom:20px;background:var(--ion-color-primary, #0054e9);color:var(--title-color)}:host(.ion-color) .datetime-header{background:var(--ion-color-base)}:host .datetime-header .datetime-title{font-size:0.75rem;text-transform:uppercase}:host .datetime-header .datetime-selected-date{margin-top:30px;font-size:2.125rem}:host .calendar-action-buttons ion-button{--color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959))}.calendar-month-year-toggle{-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:12px;padding-bottom:12px;min-height:48px;background:transparent;color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959));z-index:1}.calendar-month-year-toggle.ion-focused::after{opacity:0.04}.calendar-month-year-toggle ion-ripple-effect{color:currentColor}@media (any-hover: hover){.calendar-month-year-toggle.ion-activatable:not(.ion-focused):hover::after{background:currentColor;opacity:0.04}}:host .calendar-days-of-week{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:0px;padding-bottom:0px;color:var(--ion-color-step-500, var(--ion-text-color-step-500, gray));font-size:0.875rem;line-height:36px}:host .calendar-body .calendar-month .calendar-month-grid{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:4px;padding-bottom:4px;grid-template-rows:repeat(6, 1fr)}:host .calendar-day{width:42px;min-width:42px;height:42px;font-size:0.875rem}:host .calendar-day.calendar-day-today{border:1px solid var(--ion-color-primary, #0054e9);color:var(--ion-color-primary, #0054e9)}:host(.ion-color) .calendar-day.calendar-day-today{border:1px solid var(--ion-color-base);color:var(--ion-color-base)}:host .calendar-day.calendar-day-active,:host .calendar-day.calendar-day-adjacent-day.calendar-day-active{color:var(--ion-color-primary-contrast, #fff)}:host(.ion-color) .calendar-day.calendar-day-active,:host(.ion-color) .calendar-day.calendar-day-adjacent-day.calendar-day-active{color:var(--ion-color-contrast)}.calendar-day.calendar-day-active,.calendar-day.calendar-day-active:focus{border:1px solid var(--ion-color-primary, #0054e9);background:var(--ion-color-primary, #0054e9)}:host(.ion-color) .calendar-day.calendar-day-active,:host(.ion-color) .calendar-day.calendar-day-active:focus{border:1px solid var(--ion-color-base);background:var(--ion-color-base)}:host .calendar-day.calendar-day-adjacent-day{color:var(--ion-color-step-500, var(--ion-text-color-step-500, gray))}:host .datetime-time{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:8px;padding-bottom:8px}:host .time-header{color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959))}:host(.datetime-presentation-month) .datetime-year,:host(.datetime-presentation-year) .datetime-year,:host(.datetime-presentation-month-year) .datetime-year{margin-top:20px;margin-bottom:20px}:host .datetime-buttons{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:10px;padding-bottom:10px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end}`;
|
|
15077
15545
|
|
|
15078
15546
|
/**
|
|
15079
15547
|
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
@@ -15139,12 +15607,6 @@ class Datetime {
|
|
|
15139
15607
|
isAdjacentDay: false,
|
|
15140
15608
|
};
|
|
15141
15609
|
this.isTimePopoverOpen = false;
|
|
15142
|
-
/**
|
|
15143
|
-
* The color to use from your application's color palette.
|
|
15144
|
-
* Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
|
|
15145
|
-
* For more information on colors, see [theming](/docs/theming/basics).
|
|
15146
|
-
*/
|
|
15147
|
-
this.color = 'primary';
|
|
15148
15610
|
/**
|
|
15149
15611
|
* The name of the control, which is submitted with the form data.
|
|
15150
15612
|
*/
|
|
@@ -16320,7 +16782,7 @@ class Datetime {
|
|
|
16320
16782
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), findPart));
|
|
16321
16783
|
this.setActiveParts(Object.assign(Object.assign({}, activePart), findPart));
|
|
16322
16784
|
ev.stopPropagation();
|
|
16323
|
-
} }, items.map((item) => (hAsync("ion-picker-column-option", { part: item.value === todayString ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: item.value, disabled: item.disabled, value: item.value }, item.text)))));
|
|
16785
|
+
} }, items.map((item) => (hAsync("ion-picker-column-option", { color: this.color, part: item.value === todayString ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: item.value, disabled: item.disabled, value: item.value }, item.text)))));
|
|
16324
16786
|
}
|
|
16325
16787
|
renderIndividualDatePickerColumns(forcePresentation) {
|
|
16326
16788
|
const { workingParts, isDateEnabled } = this;
|
|
@@ -16393,7 +16855,7 @@ class Datetime {
|
|
|
16393
16855
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { day: ev.detail.value }));
|
|
16394
16856
|
this.setActiveParts(Object.assign(Object.assign({}, activePart), { day: ev.detail.value }));
|
|
16395
16857
|
ev.stopPropagation();
|
|
16396
|
-
} }, days.map((day) => (hAsync("ion-picker-column-option", { part: day.value === pickerColumnValue ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: day.value, disabled: day.disabled, value: day.value }, day.text)))));
|
|
16858
|
+
} }, days.map((day) => (hAsync("ion-picker-column-option", { color: this.color, part: day.value === pickerColumnValue ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: day.value, disabled: day.disabled, value: day.value }, day.text)))));
|
|
16397
16859
|
}
|
|
16398
16860
|
renderMonthPickerColumn(months) {
|
|
16399
16861
|
if (months.length === 0) {
|
|
@@ -16408,7 +16870,7 @@ class Datetime {
|
|
|
16408
16870
|
this.setActiveParts(Object.assign(Object.assign({}, activePart), { month: ev.detail.value }));
|
|
16409
16871
|
}
|
|
16410
16872
|
ev.stopPropagation();
|
|
16411
|
-
} }, months.map((month) => (hAsync("ion-picker-column-option", { part: month.value === workingParts.month ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: month.value, disabled: month.disabled, value: month.value }, month.text)))));
|
|
16873
|
+
} }, months.map((month) => (hAsync("ion-picker-column-option", { color: this.color, part: month.value === workingParts.month ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: month.value, disabled: month.disabled, value: month.value }, month.text)))));
|
|
16412
16874
|
}
|
|
16413
16875
|
renderYearPickerColumn(years) {
|
|
16414
16876
|
if (years.length === 0) {
|
|
@@ -16423,7 +16885,7 @@ class Datetime {
|
|
|
16423
16885
|
this.setActiveParts(Object.assign(Object.assign({}, activePart), { year: ev.detail.value }));
|
|
16424
16886
|
}
|
|
16425
16887
|
ev.stopPropagation();
|
|
16426
|
-
} }, years.map((year) => (hAsync("ion-picker-column-option", { part: year.value === workingParts.year ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: year.value, disabled: year.disabled, value: year.value }, year.text)))));
|
|
16888
|
+
} }, years.map((year) => (hAsync("ion-picker-column-option", { color: this.color, part: year.value === workingParts.year ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: year.value, disabled: year.disabled, value: year.value }, year.text)))));
|
|
16427
16889
|
}
|
|
16428
16890
|
renderTimePickerColumns(forcePresentation) {
|
|
16429
16891
|
if (['date', 'month', 'month-year', 'year'].includes(forcePresentation)) {
|
|
@@ -16456,7 +16918,7 @@ class Datetime {
|
|
|
16456
16918
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { hour: ev.detail.value }));
|
|
16457
16919
|
this.setActiveParts(Object.assign(Object.assign({}, this.getActivePartsWithFallback()), { hour: ev.detail.value }));
|
|
16458
16920
|
ev.stopPropagation();
|
|
16459
|
-
} }, hoursData.map((hour) => (hAsync("ion-picker-column-option", { part: hour.value === activePart.hour ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: hour.value, disabled: hour.disabled, value: hour.value }, hour.text)))));
|
|
16921
|
+
} }, hoursData.map((hour) => (hAsync("ion-picker-column-option", { color: this.color, part: hour.value === activePart.hour ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: hour.value, disabled: hour.disabled, value: hour.value }, hour.text)))));
|
|
16460
16922
|
}
|
|
16461
16923
|
renderMinutePickerColumn(minutesData) {
|
|
16462
16924
|
const { disabled, workingParts } = this;
|
|
@@ -16467,7 +16929,7 @@ class Datetime {
|
|
|
16467
16929
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { minute: ev.detail.value }));
|
|
16468
16930
|
this.setActiveParts(Object.assign(Object.assign({}, this.getActivePartsWithFallback()), { minute: ev.detail.value }));
|
|
16469
16931
|
ev.stopPropagation();
|
|
16470
|
-
} }, minutesData.map((minute) => (hAsync("ion-picker-column-option", { part: minute.value === activePart.minute ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: minute.value, disabled: minute.disabled, value: minute.value }, minute.text)))));
|
|
16932
|
+
} }, minutesData.map((minute) => (hAsync("ion-picker-column-option", { color: this.color, part: minute.value === activePart.minute ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: minute.value, disabled: minute.disabled, value: minute.value }, minute.text)))));
|
|
16471
16933
|
}
|
|
16472
16934
|
renderDayPeriodPickerColumn(dayPeriodData) {
|
|
16473
16935
|
const { disabled, workingParts } = this;
|
|
@@ -16481,7 +16943,7 @@ class Datetime {
|
|
|
16481
16943
|
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { ampm: ev.detail.value, hour }));
|
|
16482
16944
|
this.setActiveParts(Object.assign(Object.assign({}, this.getActivePartsWithFallback()), { ampm: ev.detail.value, hour }));
|
|
16483
16945
|
ev.stopPropagation();
|
|
16484
|
-
} }, dayPeriodData.map((dayPeriod) => (hAsync("ion-picker-column-option", { part: dayPeriod.value === activePart.ampm ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: dayPeriod.value, disabled: dayPeriod.disabled, value: dayPeriod.value }, dayPeriod.text)))));
|
|
16946
|
+
} }, dayPeriodData.map((dayPeriod) => (hAsync("ion-picker-column-option", { color: this.color, part: dayPeriod.value === activePart.ampm ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: dayPeriod.value, disabled: dayPeriod.disabled, value: dayPeriod.value }, dayPeriod.text)))));
|
|
16485
16947
|
}
|
|
16486
16948
|
renderWheelView(forcePresentation) {
|
|
16487
16949
|
const { locale } = this;
|
|
@@ -16818,7 +17280,7 @@ class Datetime {
|
|
|
16818
17280
|
const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
|
|
16819
17281
|
const hasWheelVariant = hasDatePresentation && preferWheel;
|
|
16820
17282
|
renderHiddenInput(true, el, name, formatValue(value), disabled);
|
|
16821
|
-
return (hAsync(Host, { key: '
|
|
17283
|
+
return (hAsync(Host, { key: '79b906669d3e0d9ff356421a5f571d5cf12b6793', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses$1(color, {
|
|
16822
17284
|
[mode]: true,
|
|
16823
17285
|
['datetime-readonly']: readonly,
|
|
16824
17286
|
['datetime-disabled']: disabled,
|
|
@@ -16828,7 +17290,7 @@ class Datetime {
|
|
|
16828
17290
|
[`datetime-size-${size}`]: true,
|
|
16829
17291
|
[`datetime-prefer-wheel`]: hasWheelVariant,
|
|
16830
17292
|
[`datetime-grid`]: isGridStyle,
|
|
16831
|
-
})) }, hAsync("div", { key: '
|
|
17293
|
+
})) }, hAsync("div", { key: 'e29ce6edd79f3efb8f7cc4a81bb543d580e5f4c6', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
|
|
16832
17294
|
}
|
|
16833
17295
|
get el() { return getElement(this); }
|
|
16834
17296
|
static get watchers() { return {
|
|
@@ -16927,9 +17389,9 @@ const WHEEL_PART = 'wheel';
|
|
|
16927
17389
|
const WHEEL_ITEM_PART = 'wheel-item';
|
|
16928
17390
|
const WHEEL_ITEM_ACTIVE_PART = `active`;
|
|
16929
17391
|
|
|
16930
|
-
const datetimeButtonIosCss = () => `:host{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}:host button{border-radius:8px;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;margin-top:0px;margin-bottom:0px;position:relative;-webkit-transition:150ms color ease-in-out;transition:150ms color ease-in-out;border:none;background:var(--ion-color-step-300, var(--ion-background-color-step-300, #edeef0));color:var(--ion-text-color, #000);font-family:inherit;font-size:1rem;cursor:pointer;overflow:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host(.time-active) #time-button,:host(.date-active) #date-button{color:var(--ion-color-base)}:host(.datetime-button-disabled){pointer-events:none}:host(.datetime-button-disabled) button{opacity:0.4}:host button{-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px;padding-top:7px;padding-bottom:7px}:host button.ion-activated{color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}`;
|
|
17392
|
+
const datetimeButtonIosCss = () => `:host{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}:host button{border-radius:8px;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;margin-top:0px;margin-bottom:0px;position:relative;-webkit-transition:150ms color ease-in-out;transition:150ms color ease-in-out;border:none;background:var(--ion-color-step-300, var(--ion-background-color-step-300, #edeef0));color:var(--ion-text-color, #000);font-family:inherit;font-size:1rem;cursor:pointer;overflow:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host(.time-active) #time-button,:host(.date-active) #date-button{color:var(--ion-color-primary, #0054e9)}:host(.ion-color.time-active) #time-button,:host(.ion-color.date-active) #date-button{color:var(--ion-color-base)}:host(.datetime-button-disabled){pointer-events:none}:host(.datetime-button-disabled) button{opacity:0.4}:host button{-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px;padding-top:7px;padding-bottom:7px}:host button.ion-activated{color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}`;
|
|
16931
17393
|
|
|
16932
|
-
const datetimeButtonMdCss = () => `:host{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}:host button{border-radius:8px;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;margin-top:0px;margin-bottom:0px;position:relative;-webkit-transition:150ms color ease-in-out;transition:150ms color ease-in-out;border:none;background:var(--ion-color-step-300, var(--ion-background-color-step-300, #edeef0));color:var(--ion-text-color, #000);font-family:inherit;font-size:1rem;cursor:pointer;overflow:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host(.time-active) #time-button,:host(.date-active) #date-button{color:var(--ion-color-base)}:host(.datetime-button-disabled){pointer-events:none}:host(.datetime-button-disabled) button{opacity:0.4}:host button{-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px}`;
|
|
17394
|
+
const datetimeButtonMdCss = () => `:host{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}:host button{border-radius:8px;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;margin-top:0px;margin-bottom:0px;position:relative;-webkit-transition:150ms color ease-in-out;transition:150ms color ease-in-out;border:none;background:var(--ion-color-step-300, var(--ion-background-color-step-300, #edeef0));color:var(--ion-text-color, #000);font-family:inherit;font-size:1rem;cursor:pointer;overflow:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host(.time-active) #time-button,:host(.date-active) #date-button{color:var(--ion-color-primary, #0054e9)}:host(.ion-color.time-active) #time-button,:host(.ion-color.date-active) #date-button{color:var(--ion-color-base)}:host(.datetime-button-disabled){pointer-events:none}:host(.datetime-button-disabled) button{opacity:0.4}:host button{-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px}`;
|
|
16933
17395
|
|
|
16934
17396
|
/**
|
|
16935
17397
|
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
@@ -16946,12 +17408,6 @@ class DatetimeButton {
|
|
|
16946
17408
|
this.overlayEl = null;
|
|
16947
17409
|
this.datetimePresentation = 'date-time';
|
|
16948
17410
|
this.datetimeActive = false;
|
|
16949
|
-
/**
|
|
16950
|
-
* The color to use from your application's color palette.
|
|
16951
|
-
* Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
|
|
16952
|
-
* For more information on colors, see [theming](/docs/theming/basics).
|
|
16953
|
-
*/
|
|
16954
|
-
this.color = 'primary';
|
|
16955
17411
|
/**
|
|
16956
17412
|
* If `true`, the user cannot interact with the button.
|
|
16957
17413
|
*/
|
|
@@ -17265,11 +17721,11 @@ class DatetimeButton {
|
|
|
17265
17721
|
render() {
|
|
17266
17722
|
const { color, dateText, timeText, selectedButton, datetimeActive, disabled } = this;
|
|
17267
17723
|
const mode = getIonMode$1(this);
|
|
17268
|
-
return (hAsync(Host, { key: '
|
|
17724
|
+
return (hAsync(Host, { key: '2aaa284fe9b53b6347fcb5a1d325fbab1a6f38bd', class: createColorClasses$1(color, {
|
|
17269
17725
|
[mode]: true,
|
|
17270
17726
|
[`${selectedButton}-active`]: datetimeActive,
|
|
17271
17727
|
['datetime-button-disabled']: disabled,
|
|
17272
|
-
}) }, dateText && (hAsync("button", { key: '
|
|
17728
|
+
}) }, dateText && (hAsync("button", { key: 'd9698471fa5d5c834ca73db57f9ed98dfc705b4c', class: "ion-activatable", id: "date-button", "aria-expanded": datetimeActive ? 'true' : 'false', onClick: this.handleDateClick, disabled: disabled, part: "native", ref: (el) => (this.dateTargetEl = el) }, hAsync("slot", { key: 'c8761a7f25ae5b93c953b3486dd6335f5ad4fd53', name: "date-target" }, dateText), mode === 'md' && hAsync("ion-ripple-effect", { key: '3dd5e97af8d35a2b008de4ab01f690b3c2223135' }))), timeText && (hAsync("button", { key: '1107ca2382940b642b551f885f7ca763012c236c', class: "ion-activatable", id: "time-button", "aria-expanded": datetimeActive ? 'true' : 'false', onClick: this.handleTimeClick, disabled: disabled, part: "native", ref: (el) => (this.timeTargetEl = el) }, hAsync("slot", { key: '5cff53e486923b03715b9ab4dc0947e26f4ea1d9', name: "time-target" }, timeText), mode === 'md' && hAsync("ion-ripple-effect", { key: '5aac1facb6fc7457307c4f59a241e3a5b31facc8' })))));
|
|
17273
17729
|
}
|
|
17274
17730
|
get el() { return getElement(this); }
|
|
17275
17731
|
static get style() { return {
|
|
@@ -18734,6 +19190,8 @@ const createColorClasses = (color) => {
|
|
|
18734
19190
|
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}`;
|
|
18735
19191
|
|
|
18736
19192
|
/**
|
|
19193
|
+
* @deprecated
|
|
19194
|
+
*
|
|
18737
19195
|
* @part image - The inner `img` element.
|
|
18738
19196
|
*/
|
|
18739
19197
|
class Img {
|
|
@@ -18757,6 +19215,8 @@ class Img {
|
|
|
18757
19215
|
this.inheritedAttributes = inheritAttributes$1(this.el, ['draggable']);
|
|
18758
19216
|
}
|
|
18759
19217
|
componentDidLoad() {
|
|
19218
|
+
printIonWarning('[ion-img] - This component is deprecated and will be removed in Ionic v10. ' +
|
|
19219
|
+
'Use a native <img> with the loading="lazy" attribute instead.', this.el);
|
|
18760
19220
|
this.addIO();
|
|
18761
19221
|
}
|
|
18762
19222
|
disconnectedCallback() {
|
|
@@ -18809,7 +19269,7 @@ class Img {
|
|
|
18809
19269
|
render() {
|
|
18810
19270
|
const { loadSrc, alt, onLoad, loadError, inheritedAttributes } = this;
|
|
18811
19271
|
const { draggable } = inheritedAttributes;
|
|
18812
|
-
return (hAsync(Host, { key: '
|
|
19272
|
+
return (hAsync(Host, { key: '57bfb44d9850381fe7b6fcf0c9019b03f7ef86ec', class: getIonMode$1(this) }, hAsync("img", { key: '888ec06a266fa2751fc0147ede6a567f4e2b29a6', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
|
|
18813
19273
|
}
|
|
18814
19274
|
get el() { return getElement(this); }
|
|
18815
19275
|
static get watchers() { return {
|
|
@@ -19313,7 +19773,7 @@ class Input {
|
|
|
19313
19773
|
/**
|
|
19314
19774
|
* Whether auto correction should be enabled when the user is entering/editing the text value.
|
|
19315
19775
|
*/
|
|
19316
|
-
this.autocorrect =
|
|
19776
|
+
this.autocorrect = false;
|
|
19317
19777
|
/**
|
|
19318
19778
|
* Sets the [`autofocus` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus) on the native input element.
|
|
19319
19779
|
*
|
|
@@ -19770,7 +20230,7 @@ class Input {
|
|
|
19770
20230
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
19771
20231
|
*/
|
|
19772
20232
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
|
|
19773
|
-
return (hAsync(Host, { key: '
|
|
20233
|
+
return (hAsync(Host, { key: '6a05f61339d8045285d5820c2508296cc842c210', class: createColorClasses$1(this.color, {
|
|
19774
20234
|
[mode]: true,
|
|
19775
20235
|
'has-value': hasValue,
|
|
19776
20236
|
'has-focus': hasFocus,
|
|
@@ -19781,14 +20241,14 @@ class Input {
|
|
|
19781
20241
|
'in-item': inItem,
|
|
19782
20242
|
'in-item-color': hostContext('ion-item.ion-color', this.el),
|
|
19783
20243
|
'input-disabled': disabled,
|
|
19784
|
-
}) }, hAsync("label", { key: '
|
|
20244
|
+
}) }, hAsync("label", { key: 'b546d66f53ea25082494e3a4cb0ce7532ee649d7', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: '6af832f2b25fadee7a49adb999166dbc97565e2d', class: "native-wrapper", onClick: this.onLabelClick }, hAsync("slot", { key: 'e7a8895038a8d2503f646acfda20c6c1a99c2839', name: "start" }), hAsync("input", Object.assign({ key: 'ce85703e0434a6322bb4275a924e3cd91c79fa20', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect ? 'on' : 'off', autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined, "aria-labelledby": this.getLabelledById() }, this.inheritedAttributes)), this.clearInput && !readonly && !disabled && (hAsync("button", { key: '1e59589fc89a37d7830dc915b4c19d26a8f568c7', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
|
|
19785
20245
|
/**
|
|
19786
20246
|
* This prevents mobile browsers from
|
|
19787
20247
|
* blurring the input when the clear
|
|
19788
20248
|
* button is activated.
|
|
19789
20249
|
*/
|
|
19790
20250
|
ev.preventDefault();
|
|
19791
|
-
}, onClick: this.clearTextInput }, hAsync("ion-icon", { key: '
|
|
20251
|
+
}, onClick: this.clearTextInput }, hAsync("ion-icon", { key: '7d443c5061bf6436d3b77a2444676c679b3e62e4', "aria-hidden": "true", icon: clearIconData }))), hAsync("slot", { key: '5516f88d46886348217570ec1fadda0b79b63c01', name: "end" })), shouldRenderHighlight && hAsync("div", { key: '2a1fdb7e7c974654dfbb3afb4fbfd9204e9d9092', class: "input-highlight" })), this.renderBottomContent()));
|
|
19792
20252
|
}
|
|
19793
20253
|
get el() { return getElement(this); }
|
|
19794
20254
|
static get watchers() { return {
|
|
@@ -19816,7 +20276,7 @@ class Input {
|
|
|
19816
20276
|
"color": [513],
|
|
19817
20277
|
"autocapitalize": [1],
|
|
19818
20278
|
"autocomplete": [1],
|
|
19819
|
-
"autocorrect": [
|
|
20279
|
+
"autocorrect": [4],
|
|
19820
20280
|
"autofocus": [4],
|
|
19821
20281
|
"clearInput": [4, "clear-input"],
|
|
19822
20282
|
"clearInputIcon": [1, "clear-input-icon"],
|
|
@@ -21820,7 +22280,7 @@ class ListHeader {
|
|
|
21820
22280
|
/**
|
|
21821
22281
|
* iOS Loading Enter Animation
|
|
21822
22282
|
*/
|
|
21823
|
-
const iosEnterAnimation$
|
|
22283
|
+
const iosEnterAnimation$3 = (baseEl) => {
|
|
21824
22284
|
const baseAnimation = createAnimation();
|
|
21825
22285
|
const backdropAnimation = createAnimation();
|
|
21826
22286
|
const wrapperAnimation = createAnimation();
|
|
@@ -21845,7 +22305,7 @@ const iosEnterAnimation$4 = (baseEl) => {
|
|
|
21845
22305
|
/**
|
|
21846
22306
|
* iOS Loading Leave Animation
|
|
21847
22307
|
*/
|
|
21848
|
-
const iosLeaveAnimation$
|
|
22308
|
+
const iosLeaveAnimation$3 = (baseEl) => {
|
|
21849
22309
|
const baseAnimation = createAnimation();
|
|
21850
22310
|
const backdropAnimation = createAnimation();
|
|
21851
22311
|
const wrapperAnimation = createAnimation();
|
|
@@ -22018,6 +22478,10 @@ class Loading {
|
|
|
22018
22478
|
}
|
|
22019
22479
|
disconnectedCallback() {
|
|
22020
22480
|
this.triggerController.removeClickListener();
|
|
22481
|
+
// Clean up aria-hidden if removed without dismiss() being called
|
|
22482
|
+
if (this.presented) {
|
|
22483
|
+
cleanupRootFocusTrapAccessibility();
|
|
22484
|
+
}
|
|
22021
22485
|
}
|
|
22022
22486
|
/**
|
|
22023
22487
|
* Present the loading overlay after it has been created.
|
|
@@ -22025,7 +22489,7 @@ class Loading {
|
|
|
22025
22489
|
async present() {
|
|
22026
22490
|
const unlock = await this.lockController.lock();
|
|
22027
22491
|
await this.delegateController.attachViewToDom();
|
|
22028
|
-
await present(this, 'loadingEnter', iosEnterAnimation$
|
|
22492
|
+
await present(this, 'loadingEnter', iosEnterAnimation$3, mdEnterAnimation$3);
|
|
22029
22493
|
if (this.duration > 0) {
|
|
22030
22494
|
this.durationTimeout = setTimeout(() => this.dismiss(), this.duration + 10);
|
|
22031
22495
|
}
|
|
@@ -22048,7 +22512,7 @@ class Loading {
|
|
|
22048
22512
|
if (this.durationTimeout) {
|
|
22049
22513
|
clearTimeout(this.durationTimeout);
|
|
22050
22514
|
}
|
|
22051
|
-
const dismissed = await dismiss(this, data, role, 'loadingLeave', iosLeaveAnimation$
|
|
22515
|
+
const dismissed = await dismiss(this, data, role, 'loadingLeave', iosLeaveAnimation$3, mdLeaveAnimation$3);
|
|
22052
22516
|
if (dismissed) {
|
|
22053
22517
|
this.delegateController.removeViewFromDom();
|
|
22054
22518
|
}
|
|
@@ -22083,9 +22547,9 @@ class Loading {
|
|
|
22083
22547
|
* Otherwise, don't set aria-labelledby.
|
|
22084
22548
|
*/
|
|
22085
22549
|
const ariaLabelledBy = message !== undefined ? msgId : null;
|
|
22086
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
22550
|
+
return (hAsync(Host, Object.assign({ key: 'ab48bfcee8f7e3e33847a2f262fdc08b9ea804ca', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
|
|
22087
22551
|
zIndex: `${40000 + this.overlayIndex}`,
|
|
22088
|
-
}, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: '
|
|
22552
|
+
}, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: '41baccc7fb6474389a3a3431c208e829ef738b75', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '7b7290974abbe8db8739b19835aca9f8b5c271c2', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: 'e32466abfcc92aaad47ea03b1dcb49f66abe4b63', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (hAsync("div", { key: 'c5e6e6f9e3f39dba0225d08d7dd2c1b96a1d83c7', class: "loading-spinner" }, hAsync("ion-spinner", { key: 'f428038959d879404ea898011363aac0b807ad11', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), hAsync("div", { key: '490e531367b86c319fa4260722dcff4dd631fa88', tabindex: "0", "aria-hidden": "true" })));
|
|
22089
22553
|
}
|
|
22090
22554
|
get el() { return getElement(this); }
|
|
22091
22555
|
static get watchers() { return {
|
|
@@ -24067,14 +24531,7 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
|
|
|
24067
24531
|
return false;
|
|
24068
24532
|
};
|
|
24069
24533
|
const onStart = (detail) => {
|
|
24070
|
-
var _a;
|
|
24071
24534
|
const { deltaY } = detail;
|
|
24072
|
-
/**
|
|
24073
|
-
* Firefox automatically selects the header text during drag
|
|
24074
|
-
* due to the focusable wrapper (tabindex="-1"). Remove any
|
|
24075
|
-
* selection that may have occurred.
|
|
24076
|
-
*/
|
|
24077
|
-
(_a = window.getSelection()) === null || _a === void 0 ? void 0 : _a.removeAllRanges();
|
|
24078
24535
|
/**
|
|
24079
24536
|
* Get the initial scrollY value so
|
|
24080
24537
|
* that we can correctly reset the scrollY
|
|
@@ -24366,7 +24823,7 @@ const createEnterAnimation$1 = () => {
|
|
|
24366
24823
|
/**
|
|
24367
24824
|
* iOS Modal Enter Animation for the Card presentation style
|
|
24368
24825
|
*/
|
|
24369
|
-
const iosEnterAnimation$
|
|
24826
|
+
const iosEnterAnimation$2 = (baseEl, opts) => {
|
|
24370
24827
|
const { presentingEl, currentBreakpoint, expandToScroll } = opts;
|
|
24371
24828
|
const root = getElementRoot(baseEl);
|
|
24372
24829
|
const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
|
|
@@ -24459,7 +24916,7 @@ const createLeaveAnimation$1 = () => {
|
|
|
24459
24916
|
/**
|
|
24460
24917
|
* iOS Modal Leave Animation
|
|
24461
24918
|
*/
|
|
24462
|
-
const iosLeaveAnimation$
|
|
24919
|
+
const iosLeaveAnimation$2 = (baseEl, opts, duration = 500) => {
|
|
24463
24920
|
const { presentingEl, currentBreakpoint } = opts;
|
|
24464
24921
|
const root = getElementRoot(baseEl);
|
|
24465
24922
|
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
|
|
@@ -24960,13 +25417,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
24960
25417
|
return true;
|
|
24961
25418
|
};
|
|
24962
25419
|
const onStart = (detail) => {
|
|
24963
|
-
var _a;
|
|
24964
|
-
/**
|
|
24965
|
-
* Firefox automatically selects the header text during drag
|
|
24966
|
-
* due to the focusable wrapper (tabindex="-1"). Remove any
|
|
24967
|
-
* selection that may have occurred.
|
|
24968
|
-
*/
|
|
24969
|
-
(_a = window.getSelection()) === null || _a === void 0 ? void 0 : _a.removeAllRanges();
|
|
24970
25420
|
/**
|
|
24971
25421
|
* If canDismiss is anything other than `true`
|
|
24972
25422
|
* then users should be able to swipe down
|
|
@@ -25569,9 +26019,9 @@ const clearSafeAreaOverrides = (hostEl) => {
|
|
|
25569
26019
|
hostEl.style.removeProperty('--ion-safe-area-right');
|
|
25570
26020
|
};
|
|
25571
26021
|
|
|
25572
|
-
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-
|
|
26022
|
+
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}`;
|
|
25573
26023
|
|
|
25574
|
-
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-
|
|
26024
|
+
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}`;
|
|
25575
26025
|
|
|
25576
26026
|
// TODO(FW-2832): types
|
|
25577
26027
|
/**
|
|
@@ -25641,13 +26091,20 @@ class Modal {
|
|
|
25641
26091
|
/**
|
|
25642
26092
|
* The interaction behavior for the sheet modal when the handle is pressed.
|
|
25643
26093
|
*
|
|
25644
|
-
*
|
|
25645
|
-
*
|
|
26094
|
+
* Handle behavior is unavailable when the `handle` property is set to
|
|
26095
|
+
* `false` or when the `breakpoints` property is not set (using a
|
|
26096
|
+
* fullscreen or card modal).
|
|
26097
|
+
*
|
|
26098
|
+
* Set to `"cycle"` to make the handle focusable and let the sheet modal
|
|
26099
|
+
* cycle between available breakpoints when pressed. This keeps the sheet
|
|
26100
|
+
* operable with assistive technology.
|
|
26101
|
+
*
|
|
26102
|
+
* Set to `"none"` to make the handle purely decorative when pressed and
|
|
26103
|
+
* removed from the tab order.
|
|
25646
26104
|
*
|
|
25647
|
-
*
|
|
25648
|
-
* when the `breakpoints` property is not set (using a fullscreen or card modal).
|
|
26105
|
+
* Defaults to `"cycle"`.
|
|
25649
26106
|
*/
|
|
25650
|
-
this.handleBehavior = '
|
|
26107
|
+
this.handleBehavior = 'cycle';
|
|
25651
26108
|
/**
|
|
25652
26109
|
* If `true`, the modal will be dismissed when the backdrop is clicked.
|
|
25653
26110
|
*/
|
|
@@ -25839,6 +26296,10 @@ class Modal {
|
|
|
25839
26296
|
// Also called in dismiss() — intentional dual cleanup covers both
|
|
25840
26297
|
// dismiss-then-remove and direct DOM removal without dismiss.
|
|
25841
26298
|
this.cleanupSafeAreaOverrides();
|
|
26299
|
+
// Clean up aria-hidden if removed without dismiss() being called
|
|
26300
|
+
if (this.presented) {
|
|
26301
|
+
cleanupRootFocusTrapAccessibility();
|
|
26302
|
+
}
|
|
25842
26303
|
}
|
|
25843
26304
|
componentWillLoad() {
|
|
25844
26305
|
var _a;
|
|
@@ -26015,7 +26476,7 @@ class Modal {
|
|
|
26015
26476
|
this.statusBarStyle = await StatusBar.getStyle();
|
|
26016
26477
|
setCardStatusBarDark();
|
|
26017
26478
|
}
|
|
26018
|
-
await present(this, 'modalEnter', iosEnterAnimation$
|
|
26479
|
+
await present(this, 'modalEnter', iosEnterAnimation$2, mdEnterAnimation$2, {
|
|
26019
26480
|
presentingEl: presentingElement,
|
|
26020
26481
|
currentBreakpoint: this.initialBreakpoint,
|
|
26021
26482
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
@@ -26077,7 +26538,7 @@ class Modal {
|
|
|
26077
26538
|
// All of the elements needed for the swipe gesture
|
|
26078
26539
|
// should be in the DOM and referenced by now, except
|
|
26079
26540
|
// for the presenting el
|
|
26080
|
-
const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$
|
|
26541
|
+
const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$2);
|
|
26081
26542
|
const ani = (this.animation = animationBuilder(el, {
|
|
26082
26543
|
presentingEl: this.presentingElement,
|
|
26083
26544
|
expandToScroll: this.expandToScroll,
|
|
@@ -26096,7 +26557,7 @@ class Modal {
|
|
|
26096
26557
|
if (!wrapperEl || initialBreakpoint === undefined) {
|
|
26097
26558
|
return;
|
|
26098
26559
|
}
|
|
26099
|
-
const animationBuilder = this.enterAnimation || config.get('modalEnter', iosEnterAnimation$
|
|
26560
|
+
const animationBuilder = this.enterAnimation || config.get('modalEnter', iosEnterAnimation$2);
|
|
26100
26561
|
const ani = (this.animation = animationBuilder(this.el, {
|
|
26101
26562
|
presentingEl: this.presentingElement,
|
|
26102
26563
|
currentBreakpoint: initialBreakpoint,
|
|
@@ -26286,7 +26747,7 @@ class Modal {
|
|
|
26286
26747
|
window.removeEventListener(KEYBOARD_DID_OPEN, this.keyboardOpenCallback);
|
|
26287
26748
|
this.keyboardOpenCallback = undefined;
|
|
26288
26749
|
}
|
|
26289
|
-
const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation$
|
|
26750
|
+
const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation$2, mdLeaveAnimation$2, {
|
|
26290
26751
|
presentingEl: presentingElement,
|
|
26291
26752
|
currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
|
|
26292
26753
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
@@ -26718,26 +27179,20 @@ class Modal {
|
|
|
26718
27179
|
const isCardModal = presentingElement !== undefined && mode === 'ios';
|
|
26719
27180
|
const isHandleCycle = handleBehavior === 'cycle';
|
|
26720
27181
|
const isSheetModalWithHandle = isSheetModal && showHandle;
|
|
26721
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
27182
|
+
return (hAsync(Host, Object.assign({ key: '528f9e354f470e22563938e7531e3f23a97e4200', "no-router": true,
|
|
26722
27183
|
// Allow the modal to be navigable when the handle is focusable
|
|
26723
27184
|
tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
|
|
26724
27185
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
26725
|
-
}, 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: '
|
|
27186
|
+
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), hAsync("ion-backdrop", { key: '53983c96bc6b30df89986c8d9c978a8e6f78fe80', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: '34288a7343b7c47fed00d3abc73957f45f06d2fd', class: "modal-shadow" }), hAsync("div", Object.assign({ key: 'f9b37f547bd5c61037bbad1a71bfed80ba8c630b',
|
|
26726
27187
|
/*
|
|
26727
27188
|
role and aria-modal must be used on the
|
|
26728
27189
|
same element. They must also be set inside the
|
|
26729
27190
|
shadow DOM otherwise ion-button will not be highlighted
|
|
26730
27191
|
when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
|
|
26731
|
-
|
|
26732
|
-
tabIndex={-1} is required so present() can move focus to this
|
|
26733
|
-
element (which carries the dialog role) instead of the role-less
|
|
26734
|
-
host. role="dialog" alone does not make an element focusable, so
|
|
26735
|
-
without the tabindex focus() would be a no-op and screen readers
|
|
26736
|
-
may not properly announce the dialog and its content when it opens.
|
|
26737
27192
|
*/
|
|
26738
|
-
role: "dialog" }, inheritedAttributes, { "aria-modal": "true",
|
|
27193
|
+
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: 'b8741594108d3ea681ff41ff8f2241a4119578b1', class: "modal-handle",
|
|
26739
27194
|
// Prevents the handle from receiving keyboard focus when it does not cycle
|
|
26740
|
-
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: '
|
|
27195
|
+
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), hAsync("slot", { key: 'bcc7960fae3fed09076c704d08c3afc46caa0738', onSlotchange: this.onSlotChange }))));
|
|
26741
27196
|
}
|
|
26742
27197
|
get el() { return getElement(this); }
|
|
26743
27198
|
static get watchers() { return {
|
|
@@ -26840,15 +27295,6 @@ class ViewController {
|
|
|
26840
27295
|
this.state = VIEW_STATE_DESTROYED;
|
|
26841
27296
|
}
|
|
26842
27297
|
}
|
|
26843
|
-
const matches = (view, id, params) => {
|
|
26844
|
-
if (!view) {
|
|
26845
|
-
return false;
|
|
26846
|
-
}
|
|
26847
|
-
if (view.component !== id) {
|
|
26848
|
-
return false;
|
|
26849
|
-
}
|
|
26850
|
-
return shallowEqualStringMap(view.params, params);
|
|
26851
|
-
};
|
|
26852
27298
|
const convertToView = (page, params) => {
|
|
26853
27299
|
if (!page) {
|
|
26854
27300
|
return null;
|
|
@@ -26882,7 +27328,6 @@ class Nav {
|
|
|
26882
27328
|
this.ionNavDidChange = createEvent(this, "ionNavDidChange", 3);
|
|
26883
27329
|
this.transInstr = [];
|
|
26884
27330
|
this.gestureOrAnimationInProgress = false;
|
|
26885
|
-
this.useRouter = false;
|
|
26886
27331
|
this.isTransitioning = false;
|
|
26887
27332
|
this.destroyed = false;
|
|
26888
27333
|
this.views = [];
|
|
@@ -26908,14 +27353,9 @@ class Nav {
|
|
|
26908
27353
|
*/
|
|
26909
27354
|
return;
|
|
26910
27355
|
}
|
|
26911
|
-
|
|
26912
|
-
if (this.root !== undefined) {
|
|
26913
|
-
this.setRoot(this.root, this.rootParams);
|
|
26914
|
-
}
|
|
26915
|
-
}
|
|
27356
|
+
this.setRoot(this.root, this.rootParams);
|
|
26916
27357
|
}
|
|
26917
27358
|
componentWillLoad() {
|
|
26918
|
-
this.useRouter = document.querySelector('ion-router') !== null && this.el.closest('[no-router]') === null;
|
|
26919
27359
|
if (this.swipeGesture === undefined) {
|
|
26920
27360
|
const mode = getIonMode$1(this);
|
|
26921
27361
|
this.swipeGesture = config.getBoolean('swipeBackEnabled', mode === 'ios');
|
|
@@ -27080,78 +27520,6 @@ class Nav {
|
|
|
27080
27520
|
opts,
|
|
27081
27521
|
}, done);
|
|
27082
27522
|
}
|
|
27083
|
-
/**
|
|
27084
|
-
* Called by the router to update the view.
|
|
27085
|
-
*
|
|
27086
|
-
* @param id The component tag.
|
|
27087
|
-
* @param params The component params.
|
|
27088
|
-
* @param direction A direction hint.
|
|
27089
|
-
* @param animation an AnimationBuilder.
|
|
27090
|
-
*
|
|
27091
|
-
* @return the status.
|
|
27092
|
-
* @internal
|
|
27093
|
-
*/
|
|
27094
|
-
setRouteId(id, params, direction, animation) {
|
|
27095
|
-
const active = this.getActiveSync();
|
|
27096
|
-
if (matches(active, id, params)) {
|
|
27097
|
-
return Promise.resolve({
|
|
27098
|
-
changed: false,
|
|
27099
|
-
element: active.element,
|
|
27100
|
-
});
|
|
27101
|
-
}
|
|
27102
|
-
let resolve;
|
|
27103
|
-
const promise = new Promise((r) => (resolve = r));
|
|
27104
|
-
let finish;
|
|
27105
|
-
const commonOpts = {
|
|
27106
|
-
updateURL: false,
|
|
27107
|
-
viewIsReady: (enteringEl) => {
|
|
27108
|
-
let mark;
|
|
27109
|
-
const p = new Promise((r) => (mark = r));
|
|
27110
|
-
resolve({
|
|
27111
|
-
changed: true,
|
|
27112
|
-
element: enteringEl,
|
|
27113
|
-
markVisible: async () => {
|
|
27114
|
-
mark();
|
|
27115
|
-
await finish;
|
|
27116
|
-
},
|
|
27117
|
-
});
|
|
27118
|
-
return p;
|
|
27119
|
-
},
|
|
27120
|
-
};
|
|
27121
|
-
if (direction === 'root') {
|
|
27122
|
-
finish = this.setRoot(id, params, commonOpts);
|
|
27123
|
-
}
|
|
27124
|
-
else {
|
|
27125
|
-
// Look for a view matching the target in the view stack.
|
|
27126
|
-
const viewController = this.views.find((v) => matches(v, id, params));
|
|
27127
|
-
if (viewController) {
|
|
27128
|
-
finish = this.popTo(viewController, Object.assign(Object.assign({}, commonOpts), { direction: 'back', animationBuilder: animation }));
|
|
27129
|
-
}
|
|
27130
|
-
else if (direction === 'forward') {
|
|
27131
|
-
finish = this.push(id, params, Object.assign(Object.assign({}, commonOpts), { animationBuilder: animation }));
|
|
27132
|
-
}
|
|
27133
|
-
else if (direction === 'back') {
|
|
27134
|
-
finish = this.setRoot(id, params, Object.assign(Object.assign({}, commonOpts), { direction: 'back', animated: true, animationBuilder: animation }));
|
|
27135
|
-
}
|
|
27136
|
-
}
|
|
27137
|
-
return promise;
|
|
27138
|
-
}
|
|
27139
|
-
/**
|
|
27140
|
-
* Called by <ion-router> to retrieve the current component.
|
|
27141
|
-
*
|
|
27142
|
-
* @internal
|
|
27143
|
-
*/
|
|
27144
|
-
async getRouteId() {
|
|
27145
|
-
const active = this.getActiveSync();
|
|
27146
|
-
if (active) {
|
|
27147
|
-
return {
|
|
27148
|
-
id: active.element.tagName,
|
|
27149
|
-
params: active.params,
|
|
27150
|
-
element: active.element,
|
|
27151
|
-
};
|
|
27152
|
-
}
|
|
27153
|
-
return undefined;
|
|
27154
|
-
}
|
|
27155
27523
|
/**
|
|
27156
27524
|
* Get the active view.
|
|
27157
27525
|
*/
|
|
@@ -27217,25 +27585,6 @@ class Nav {
|
|
|
27217
27585
|
ti.reject = reject;
|
|
27218
27586
|
});
|
|
27219
27587
|
ti.done = done;
|
|
27220
|
-
/**
|
|
27221
|
-
* If using router, check to see if navigation hooks
|
|
27222
|
-
* will allow us to perform this transition. This
|
|
27223
|
-
* is required in order for hooks to work with
|
|
27224
|
-
* the ion-back-button or swipe to go back.
|
|
27225
|
-
*/
|
|
27226
|
-
if (ti.opts && ti.opts.updateURL !== false && this.useRouter) {
|
|
27227
|
-
const router = document.querySelector('ion-router');
|
|
27228
|
-
if (router) {
|
|
27229
|
-
const canTransition = await router.canTransition();
|
|
27230
|
-
if (canTransition === false) {
|
|
27231
|
-
return false;
|
|
27232
|
-
}
|
|
27233
|
-
if (typeof canTransition === 'string') {
|
|
27234
|
-
router.push(canTransition, ti.opts.direction || 'back');
|
|
27235
|
-
return false;
|
|
27236
|
-
}
|
|
27237
|
-
}
|
|
27238
|
-
}
|
|
27239
27588
|
// Normalize empty
|
|
27240
27589
|
if (((_b = ti.insertViews) === null || _b === void 0 ? void 0 : _b.length) === 0) {
|
|
27241
27590
|
ti.insertViews = undefined;
|
|
@@ -27256,13 +27605,6 @@ class Nav {
|
|
|
27256
27605
|
ti.done(result.hasCompleted, result.requiresTransition, result.enteringView, result.leavingView, result.direction);
|
|
27257
27606
|
}
|
|
27258
27607
|
ti.resolve(result.hasCompleted);
|
|
27259
|
-
if (ti.opts.updateURL !== false && this.useRouter) {
|
|
27260
|
-
const router = document.querySelector('ion-router');
|
|
27261
|
-
if (router) {
|
|
27262
|
-
const direction = result.direction === 'back' ? 'back' : 'forward';
|
|
27263
|
-
router.navChanged(direction);
|
|
27264
|
-
}
|
|
27265
|
-
}
|
|
27266
27608
|
}
|
|
27267
27609
|
failed(rejectReason, ti) {
|
|
27268
27610
|
if (this.destroyed) {
|
|
@@ -27692,7 +28034,7 @@ class Nav {
|
|
|
27692
28034
|
}
|
|
27693
28035
|
}
|
|
27694
28036
|
render() {
|
|
27695
|
-
return hAsync("slot", { key: '
|
|
28037
|
+
return hAsync("slot", { key: 'bb4a201a3a8079548f5474ff42293b28fc7599fb' });
|
|
27696
28038
|
}
|
|
27697
28039
|
get el() { return getElement(this); }
|
|
27698
28040
|
static get watchers() { return {
|
|
@@ -27723,8 +28065,6 @@ class Nav {
|
|
|
27723
28065
|
"removeIndex": [64],
|
|
27724
28066
|
"setRoot": [64],
|
|
27725
28067
|
"setPages": [64],
|
|
27726
|
-
"setRouteId": [64],
|
|
27727
|
-
"getRouteId": [64],
|
|
27728
28068
|
"getActive": [64],
|
|
27729
28069
|
"getByIndex": [64],
|
|
27730
28070
|
"canGoBack": [64],
|
|
@@ -27820,14 +28160,14 @@ class Note {
|
|
|
27820
28160
|
}; }
|
|
27821
28161
|
}
|
|
27822
28162
|
|
|
27823
|
-
const pickerIosCss
|
|
28163
|
+
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)))}`;
|
|
27824
28164
|
|
|
27825
|
-
const pickerMdCss
|
|
28165
|
+
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%)}`;
|
|
27826
28166
|
|
|
27827
28167
|
/**
|
|
27828
28168
|
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
27829
28169
|
*/
|
|
27830
|
-
|
|
28170
|
+
class Picker {
|
|
27831
28171
|
constructor(hostRef) {
|
|
27832
28172
|
registerInstance(this, hostRef);
|
|
27833
28173
|
this.ionInputModeChange = createEvent(this, "ionInputModeChange", 7);
|
|
@@ -28293,8 +28633,8 @@ let Picker$1 = class Picker {
|
|
|
28293
28633
|
}
|
|
28294
28634
|
get el() { return getElement(this); }
|
|
28295
28635
|
static get style() { return {
|
|
28296
|
-
ios: pickerIosCss
|
|
28297
|
-
md: pickerMdCss
|
|
28636
|
+
ios: pickerIosCss(),
|
|
28637
|
+
md: pickerMdCss()
|
|
28298
28638
|
}; }
|
|
28299
28639
|
static get cmpMeta() { return {
|
|
28300
28640
|
"$flags$": 297,
|
|
@@ -28306,324 +28646,9 @@ let Picker$1 = class Picker {
|
|
|
28306
28646
|
"$lazyBundleId$": "-",
|
|
28307
28647
|
"$attrsToReflect$": []
|
|
28308
28648
|
}; }
|
|
28309
|
-
};
|
|
28310
|
-
|
|
28311
|
-
/**
|
|
28312
|
-
* iOS Picker Enter Animation
|
|
28313
|
-
*/
|
|
28314
|
-
const iosEnterAnimation$2 = (baseEl) => {
|
|
28315
|
-
const baseAnimation = createAnimation();
|
|
28316
|
-
const backdropAnimation = createAnimation();
|
|
28317
|
-
const wrapperAnimation = createAnimation();
|
|
28318
|
-
backdropAnimation
|
|
28319
|
-
.addElement(baseEl.querySelector('ion-backdrop'))
|
|
28320
|
-
.fromTo('opacity', 0.01, 'var(--backdrop-opacity)')
|
|
28321
|
-
.beforeStyles({
|
|
28322
|
-
'pointer-events': 'none',
|
|
28323
|
-
})
|
|
28324
|
-
.afterClearStyles(['pointer-events']);
|
|
28325
|
-
wrapperAnimation
|
|
28326
|
-
.addElement(baseEl.querySelector('.picker-wrapper'))
|
|
28327
|
-
.fromTo('transform', 'translateY(100%)', 'translateY(0%)');
|
|
28328
|
-
return baseAnimation
|
|
28329
|
-
.addElement(baseEl)
|
|
28330
|
-
.easing('cubic-bezier(.36,.66,.04,1)')
|
|
28331
|
-
.duration(400)
|
|
28332
|
-
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
28333
|
-
};
|
|
28334
|
-
|
|
28335
|
-
/**
|
|
28336
|
-
* iOS Picker Leave Animation
|
|
28337
|
-
*/
|
|
28338
|
-
const iosLeaveAnimation$2 = (baseEl) => {
|
|
28339
|
-
const baseAnimation = createAnimation();
|
|
28340
|
-
const backdropAnimation = createAnimation();
|
|
28341
|
-
const wrapperAnimation = createAnimation();
|
|
28342
|
-
backdropAnimation
|
|
28343
|
-
.addElement(baseEl.querySelector('ion-backdrop'))
|
|
28344
|
-
.fromTo('opacity', 'var(--backdrop-opacity)', 0.01);
|
|
28345
|
-
wrapperAnimation
|
|
28346
|
-
.addElement(baseEl.querySelector('.picker-wrapper'))
|
|
28347
|
-
.fromTo('transform', 'translateY(0%)', 'translateY(100%)');
|
|
28348
|
-
return baseAnimation
|
|
28349
|
-
.addElement(baseEl)
|
|
28350
|
-
.easing('cubic-bezier(.36,.66,.04,1)')
|
|
28351
|
-
.duration(400)
|
|
28352
|
-
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
28353
|
-
};
|
|
28354
|
-
|
|
28355
|
-
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}`;
|
|
28356
|
-
|
|
28357
|
-
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}`;
|
|
28358
|
-
|
|
28359
|
-
// TODO(FW-2832): types
|
|
28360
|
-
/**
|
|
28361
|
-
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
28362
|
-
*/
|
|
28363
|
-
class Picker {
|
|
28364
|
-
constructor(hostRef) {
|
|
28365
|
-
registerInstance(this, hostRef);
|
|
28366
|
-
this.didPresent = createEvent(this, "ionPickerDidPresent", 7);
|
|
28367
|
-
this.willPresent = createEvent(this, "ionPickerWillPresent", 7);
|
|
28368
|
-
this.willDismiss = createEvent(this, "ionPickerWillDismiss", 7);
|
|
28369
|
-
this.didDismiss = createEvent(this, "ionPickerDidDismiss", 7);
|
|
28370
|
-
this.didPresentShorthand = createEvent(this, "didPresent", 7);
|
|
28371
|
-
this.willPresentShorthand = createEvent(this, "willPresent", 7);
|
|
28372
|
-
this.willDismissShorthand = createEvent(this, "willDismiss", 7);
|
|
28373
|
-
this.didDismissShorthand = createEvent(this, "didDismiss", 7);
|
|
28374
|
-
this.delegateController = createDelegateController(this);
|
|
28375
|
-
this.lockController = createLockController();
|
|
28376
|
-
this.triggerController = createTriggerController();
|
|
28377
|
-
this.presented = false;
|
|
28378
|
-
/** @internal */
|
|
28379
|
-
this.hasController = false;
|
|
28380
|
-
/**
|
|
28381
|
-
* If `true`, the keyboard will be automatically dismissed when the overlay is presented.
|
|
28382
|
-
*/
|
|
28383
|
-
this.keyboardClose = true;
|
|
28384
|
-
/**
|
|
28385
|
-
* Array of buttons to be displayed at the top of the picker.
|
|
28386
|
-
*/
|
|
28387
|
-
this.buttons = [];
|
|
28388
|
-
/**
|
|
28389
|
-
* Array of columns to be displayed in the picker.
|
|
28390
|
-
*/
|
|
28391
|
-
this.columns = [];
|
|
28392
|
-
/**
|
|
28393
|
-
* Number of milliseconds to wait before dismissing the picker.
|
|
28394
|
-
*/
|
|
28395
|
-
this.duration = 0;
|
|
28396
|
-
/**
|
|
28397
|
-
* If `true`, a backdrop will be displayed behind the picker.
|
|
28398
|
-
*/
|
|
28399
|
-
this.showBackdrop = true;
|
|
28400
|
-
/**
|
|
28401
|
-
* If `true`, the picker will be dismissed when the backdrop is clicked.
|
|
28402
|
-
*/
|
|
28403
|
-
this.backdropDismiss = true;
|
|
28404
|
-
/**
|
|
28405
|
-
* If `true`, the picker will animate.
|
|
28406
|
-
*/
|
|
28407
|
-
this.animated = true;
|
|
28408
|
-
/**
|
|
28409
|
-
* If `true`, the picker will open. If `false`, the picker will close.
|
|
28410
|
-
* Use this if you need finer grained control over presentation, otherwise
|
|
28411
|
-
* just use the pickerController or the `trigger` property.
|
|
28412
|
-
* Note: `isOpen` will not automatically be set back to `false` when
|
|
28413
|
-
* the picker dismisses. You will need to do that in your code.
|
|
28414
|
-
*/
|
|
28415
|
-
this.isOpen = false;
|
|
28416
|
-
this.onBackdropTap = () => {
|
|
28417
|
-
this.dismiss(undefined, BACKDROP);
|
|
28418
|
-
};
|
|
28419
|
-
this.dispatchCancelHandler = (ev) => {
|
|
28420
|
-
const role = ev.detail.role;
|
|
28421
|
-
if (isCancel(role)) {
|
|
28422
|
-
const cancelButton = this.buttons.find((b) => b.role === 'cancel');
|
|
28423
|
-
this.callButtonHandler(cancelButton);
|
|
28424
|
-
}
|
|
28425
|
-
};
|
|
28426
|
-
}
|
|
28427
|
-
onIsOpenChange(newValue, oldValue) {
|
|
28428
|
-
if (newValue === true && oldValue === false) {
|
|
28429
|
-
this.present();
|
|
28430
|
-
}
|
|
28431
|
-
else if (newValue === false && oldValue === true) {
|
|
28432
|
-
this.dismiss();
|
|
28433
|
-
}
|
|
28434
|
-
}
|
|
28435
|
-
triggerChanged() {
|
|
28436
|
-
const { trigger, el, triggerController } = this;
|
|
28437
|
-
if (trigger) {
|
|
28438
|
-
triggerController.addClickListener(el, trigger);
|
|
28439
|
-
}
|
|
28440
|
-
}
|
|
28441
|
-
connectedCallback() {
|
|
28442
|
-
prepareOverlay(this.el);
|
|
28443
|
-
this.triggerChanged();
|
|
28444
|
-
}
|
|
28445
|
-
disconnectedCallback() {
|
|
28446
|
-
this.triggerController.removeClickListener();
|
|
28447
|
-
}
|
|
28448
|
-
componentWillLoad() {
|
|
28449
|
-
var _a;
|
|
28450
|
-
if (!((_a = this.htmlAttributes) === null || _a === void 0 ? void 0 : _a.id)) {
|
|
28451
|
-
setOverlayId(this.el);
|
|
28452
|
-
}
|
|
28453
|
-
}
|
|
28454
|
-
componentDidLoad() {
|
|
28455
|
-
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);
|
|
28456
|
-
/**
|
|
28457
|
-
* If picker was rendered with isOpen="true"
|
|
28458
|
-
* then we should open picker immediately.
|
|
28459
|
-
*/
|
|
28460
|
-
if (this.isOpen === true) {
|
|
28461
|
-
raf(() => this.present());
|
|
28462
|
-
}
|
|
28463
|
-
/**
|
|
28464
|
-
* When binding values in frameworks such as Angular
|
|
28465
|
-
* it is possible for the value to be set after the Web Component
|
|
28466
|
-
* initializes but before the value watcher is set up in Stencil.
|
|
28467
|
-
* As a result, the watcher callback may not be fired.
|
|
28468
|
-
* We work around this by manually calling the watcher
|
|
28469
|
-
* callback when the component has loaded and the watcher
|
|
28470
|
-
* is configured.
|
|
28471
|
-
*/
|
|
28472
|
-
this.triggerChanged();
|
|
28473
|
-
}
|
|
28474
|
-
/**
|
|
28475
|
-
* Present the picker overlay after it has been created.
|
|
28476
|
-
*/
|
|
28477
|
-
async present() {
|
|
28478
|
-
const unlock = await this.lockController.lock();
|
|
28479
|
-
await this.delegateController.attachViewToDom();
|
|
28480
|
-
await present(this, 'pickerEnter', iosEnterAnimation$2, iosEnterAnimation$2, undefined);
|
|
28481
|
-
if (this.duration > 0) {
|
|
28482
|
-
this.durationTimeout = setTimeout(() => this.dismiss(), this.duration);
|
|
28483
|
-
}
|
|
28484
|
-
unlock();
|
|
28485
|
-
}
|
|
28486
|
-
/**
|
|
28487
|
-
* Dismiss the picker overlay after it has been presented.
|
|
28488
|
-
*
|
|
28489
|
-
* @param data Any data to emit in the dismiss events.
|
|
28490
|
-
* @param role The role of the element that is dismissing the picker.
|
|
28491
|
-
* This can be useful in a button handler for determining which button was
|
|
28492
|
-
* clicked to dismiss the picker.
|
|
28493
|
-
* Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
|
|
28494
|
-
*/
|
|
28495
|
-
async dismiss(data, role) {
|
|
28496
|
-
const unlock = await this.lockController.lock();
|
|
28497
|
-
if (this.durationTimeout) {
|
|
28498
|
-
clearTimeout(this.durationTimeout);
|
|
28499
|
-
}
|
|
28500
|
-
const dismissed = await dismiss(this, data, role, 'pickerLeave', iosLeaveAnimation$2, iosLeaveAnimation$2);
|
|
28501
|
-
if (dismissed) {
|
|
28502
|
-
this.delegateController.removeViewFromDom();
|
|
28503
|
-
}
|
|
28504
|
-
unlock();
|
|
28505
|
-
return dismissed;
|
|
28506
|
-
}
|
|
28507
|
-
/**
|
|
28508
|
-
* Returns a promise that resolves when the picker did dismiss.
|
|
28509
|
-
*/
|
|
28510
|
-
onDidDismiss() {
|
|
28511
|
-
return eventMethod(this.el, 'ionPickerDidDismiss');
|
|
28512
|
-
}
|
|
28513
|
-
/**
|
|
28514
|
-
* Returns a promise that resolves when the picker will dismiss.
|
|
28515
|
-
*/
|
|
28516
|
-
onWillDismiss() {
|
|
28517
|
-
return eventMethod(this.el, 'ionPickerWillDismiss');
|
|
28518
|
-
}
|
|
28519
|
-
/**
|
|
28520
|
-
* Get the column that matches the specified name.
|
|
28521
|
-
*
|
|
28522
|
-
* @param name The name of the column.
|
|
28523
|
-
*/
|
|
28524
|
-
getColumn(name) {
|
|
28525
|
-
return Promise.resolve(this.columns.find((column) => column.name === name));
|
|
28526
|
-
}
|
|
28527
|
-
async buttonClick(button) {
|
|
28528
|
-
const role = button.role;
|
|
28529
|
-
if (isCancel(role)) {
|
|
28530
|
-
return this.dismiss(undefined, role);
|
|
28531
|
-
}
|
|
28532
|
-
const shouldDismiss = await this.callButtonHandler(button);
|
|
28533
|
-
if (shouldDismiss) {
|
|
28534
|
-
return this.dismiss(this.getSelected(), button.role);
|
|
28535
|
-
}
|
|
28536
|
-
return Promise.resolve();
|
|
28537
|
-
}
|
|
28538
|
-
async callButtonHandler(button) {
|
|
28539
|
-
if (button) {
|
|
28540
|
-
// a handler has been provided, execute it
|
|
28541
|
-
// pass the handler the values from the inputs
|
|
28542
|
-
const rtn = await safeCall(button.handler, this.getSelected());
|
|
28543
|
-
if (rtn === false) {
|
|
28544
|
-
// if the return value of the handler is false then do not dismiss
|
|
28545
|
-
return false;
|
|
28546
|
-
}
|
|
28547
|
-
}
|
|
28548
|
-
return true;
|
|
28549
|
-
}
|
|
28550
|
-
getSelected() {
|
|
28551
|
-
const selected = {};
|
|
28552
|
-
this.columns.forEach((col, index) => {
|
|
28553
|
-
const selectedColumn = col.selectedIndex !== undefined ? col.options[col.selectedIndex] : undefined;
|
|
28554
|
-
selected[col.name] = {
|
|
28555
|
-
text: selectedColumn ? selectedColumn.text : undefined,
|
|
28556
|
-
value: selectedColumn ? selectedColumn.value : undefined,
|
|
28557
|
-
columnIndex: index,
|
|
28558
|
-
};
|
|
28559
|
-
});
|
|
28560
|
-
return selected;
|
|
28561
|
-
}
|
|
28562
|
-
render() {
|
|
28563
|
-
const { htmlAttributes } = this;
|
|
28564
|
-
const mode = getIonMode$1(this);
|
|
28565
|
-
return (hAsync(Host, Object.assign({ key: '80f66d33780d8a1352d24be9cb63a0cc03d01ab5', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
|
|
28566
|
-
zIndex: `${20000 + this.overlayIndex}`,
|
|
28567
|
-
}, class: Object.assign({ [mode]: true,
|
|
28568
|
-
// Used internally for styling
|
|
28569
|
-
[`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" })));
|
|
28570
|
-
}
|
|
28571
|
-
get el() { return getElement(this); }
|
|
28572
|
-
static get watchers() { return {
|
|
28573
|
-
"isOpen": [{
|
|
28574
|
-
"onIsOpenChange": 0
|
|
28575
|
-
}],
|
|
28576
|
-
"trigger": [{
|
|
28577
|
-
"triggerChanged": 0
|
|
28578
|
-
}]
|
|
28579
|
-
}; }
|
|
28580
|
-
static get style() { return {
|
|
28581
|
-
ios: pickerIosCss(),
|
|
28582
|
-
md: pickerMdCss()
|
|
28583
|
-
}; }
|
|
28584
|
-
static get cmpMeta() { return {
|
|
28585
|
-
"$flags$": 34,
|
|
28586
|
-
"$tagName$": "ion-picker-legacy",
|
|
28587
|
-
"$members$": {
|
|
28588
|
-
"overlayIndex": [2, "overlay-index"],
|
|
28589
|
-
"delegate": [16],
|
|
28590
|
-
"hasController": [4, "has-controller"],
|
|
28591
|
-
"keyboardClose": [4, "keyboard-close"],
|
|
28592
|
-
"enterAnimation": [16],
|
|
28593
|
-
"leaveAnimation": [16],
|
|
28594
|
-
"buttons": [16],
|
|
28595
|
-
"columns": [16],
|
|
28596
|
-
"cssClass": [1, "css-class"],
|
|
28597
|
-
"duration": [2],
|
|
28598
|
-
"showBackdrop": [4, "show-backdrop"],
|
|
28599
|
-
"backdropDismiss": [4, "backdrop-dismiss"],
|
|
28600
|
-
"animated": [4],
|
|
28601
|
-
"htmlAttributes": [16],
|
|
28602
|
-
"isOpen": [4, "is-open"],
|
|
28603
|
-
"trigger": [1],
|
|
28604
|
-
"presented": [32],
|
|
28605
|
-
"present": [64],
|
|
28606
|
-
"dismiss": [64],
|
|
28607
|
-
"onDidDismiss": [64],
|
|
28608
|
-
"onWillDismiss": [64],
|
|
28609
|
-
"getColumn": [64]
|
|
28610
|
-
},
|
|
28611
|
-
"$listeners$": undefined,
|
|
28612
|
-
"$lazyBundleId$": "-",
|
|
28613
|
-
"$attrsToReflect$": []
|
|
28614
|
-
}; }
|
|
28615
28649
|
}
|
|
28616
|
-
const buttonWrapperClass = (button) => {
|
|
28617
|
-
return {
|
|
28618
|
-
[`picker-toolbar-${button.role}`]: button.role !== undefined,
|
|
28619
|
-
'picker-toolbar-button': true,
|
|
28620
|
-
};
|
|
28621
|
-
};
|
|
28622
|
-
const buttonClass$1 = (button) => {
|
|
28623
|
-
return Object.assign({ 'picker-button': true, 'ion-activatable': true }, getClassMap(button.cssClass));
|
|
28624
|
-
};
|
|
28625
28650
|
|
|
28626
|
-
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)}}`;
|
|
28651
|
+
const pickerColumnCss = () => `:host{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;max-width:100%;height:200px;font-size:22px;text-align:center}.assistive-focusable{left:0;right:0;top:0;bottom:0;position:absolute;z-index:1;pointer-events:none}.assistive-focusable:focus{outline:none}.picker-opts{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0px;padding-bottom:0px;min-width:26px;max-height:200px;outline:none;text-align:inherit;-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;overflow-x:hidden;overflow-y:scroll;scrollbar-width:none}.picker-item-empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.picker-opts::-webkit-scrollbar{display:none}::slotted(ion-picker-column-option){display:block;scroll-snap-align:center}.picker-item-empty,:host(:not([disabled])) ::slotted(ion-picker-column-option.option-disabled){scroll-snap-align:none}::slotted([slot=prefix]),::slotted([slot=suffix]){max-width:200px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::slotted([slot=prefix]){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-ms-flex-pack:end;justify-content:end}::slotted([slot=suffix]){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-ms-flex-pack:start;justify-content:start}:host(.picker-column-disabled) .picker-opts{overflow-y:hidden}:host(.picker-column-disabled) ::slotted(ion-picker-column-option){cursor:default;opacity:0.4;pointer-events:none}@media (any-hover: hover){:host(:focus) .picker-opts{outline:none;background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2)}:host(.ion-color:focus) .picker-opts{background:rgba(var(--ion-color-base-rgb), 0.2)}}`;
|
|
28627
28652
|
|
|
28628
28653
|
/**
|
|
28629
28654
|
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
@@ -28645,12 +28670,6 @@ class PickerColumn {
|
|
|
28645
28670
|
* If `true`, the user cannot interact with the picker.
|
|
28646
28671
|
*/
|
|
28647
28672
|
this.disabled = false;
|
|
28648
|
-
/**
|
|
28649
|
-
* The color to use from your application's color palette.
|
|
28650
|
-
* Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
|
|
28651
|
-
* For more information on colors, see [theming](/docs/theming/basics).
|
|
28652
|
-
*/
|
|
28653
|
-
this.color = 'primary';
|
|
28654
28673
|
/**
|
|
28655
28674
|
* If `true`, tapping the picker will
|
|
28656
28675
|
* reveal a number input keyboard that lets
|
|
@@ -29168,14 +29187,14 @@ class PickerColumn {
|
|
|
29168
29187
|
render() {
|
|
29169
29188
|
const { color, disabled, isActive, numericInput } = this;
|
|
29170
29189
|
const mode = getIonMode$1(this);
|
|
29171
|
-
return (hAsync(Host, { key: '
|
|
29190
|
+
return (hAsync(Host, { key: '78b46ad10d88ea1bb43ca8c36748767912f03224', class: createColorClasses$1(color, {
|
|
29172
29191
|
[mode]: true,
|
|
29173
29192
|
['picker-column-active']: isActive,
|
|
29174
29193
|
['picker-column-numeric-input']: numericInput,
|
|
29175
29194
|
['picker-column-disabled']: disabled,
|
|
29176
|
-
}) }, hAsync("slot", { key: '
|
|
29195
|
+
}) }, hAsync("slot", { key: '761e501df77f7de896ffb3ebb99ebf88c5c3bf70', name: "prefix" }), hAsync("div", { key: '9f4caaeef8ab704522a85f30876d371712f47c5c', class: "picker-opts", ref: (el) => {
|
|
29177
29196
|
this.scrollEl = el;
|
|
29178
|
-
}, 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: '
|
|
29197
|
+
}, role: "slider", tabindex: this.disabled ? undefined : 0, "aria-label": this.ariaLabel, "aria-valuemin": 0, "aria-valuemax": 0, "aria-valuenow": 0, "aria-valuetext": this.getOptionValueText(this.activeItem), "aria-orientation": "vertical", onKeyDown: (ev) => this.onKeyDown(ev) }, hAsync("div", { key: '9d3533436aba6c61c93f65f84a077fba832194a0', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '3f18d3a47361f06f55321b65fdf5742a61722b26', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: 'eac0d20ab8c533ef829875e323e93e1ee2067d6d', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("slot", { key: '92e25989ef41cf6f910c73238e1a0a5ac03f1c1f' }), hAsync("div", { key: '33a84644ebdc84108b44a8e3a129b54e824939c8', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '128ad61a3a68c7ff2d2e44a6e968424fcc608a15', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '6e4d59a4f75befcbbf47279a263f28a69b12dbbd', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), hAsync("slot", { key: '3c6621b64438792a3024c90e3d9916a0a3614506', name: "suffix" })));
|
|
29179
29198
|
}
|
|
29180
29199
|
get el() { return getElement(this); }
|
|
29181
29200
|
static get watchers() { return {
|
|
@@ -29208,374 +29227,9 @@ class PickerColumn {
|
|
|
29208
29227
|
}
|
|
29209
29228
|
const PICKER_ITEM_ACTIVE_CLASS = 'option-active';
|
|
29210
29229
|
|
|
29211
|
-
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}}`;
|
|
29212
|
-
|
|
29213
|
-
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)}`;
|
|
29214
|
-
|
|
29215
|
-
/**
|
|
29216
|
-
* @internal
|
|
29217
|
-
*/
|
|
29218
|
-
class PickerColumnCmp {
|
|
29219
|
-
constructor(hostRef) {
|
|
29220
|
-
registerInstance(this, hostRef);
|
|
29221
|
-
this.ionPickerColChange = createEvent(this, "ionPickerColChange", 7);
|
|
29222
|
-
this.optHeight = 0;
|
|
29223
|
-
this.rotateFactor = 0;
|
|
29224
|
-
this.scaleFactor = 1;
|
|
29225
|
-
this.velocity = 0;
|
|
29226
|
-
this.y = 0;
|
|
29227
|
-
this.noAnimate = true;
|
|
29228
|
-
// `colDidChange` is a flag that gets set when the column is changed
|
|
29229
|
-
// dynamically. When this flag is set, the column will refresh
|
|
29230
|
-
// after the component re-renders to incorporate the new column data.
|
|
29231
|
-
// This is necessary because `this.refresh` queries for the option elements,
|
|
29232
|
-
// so it needs to wait for the latest elements to be available in the DOM.
|
|
29233
|
-
// Ex: column is created with 3 options. User updates the column data
|
|
29234
|
-
// to have 5 options. The column will still think it only has 3 options.
|
|
29235
|
-
this.colDidChange = false;
|
|
29236
|
-
}
|
|
29237
|
-
colChanged() {
|
|
29238
|
-
this.colDidChange = true;
|
|
29239
|
-
}
|
|
29240
|
-
async connectedCallback() {
|
|
29241
|
-
let pickerRotateFactor = 0;
|
|
29242
|
-
let pickerScaleFactor = 0.81;
|
|
29243
|
-
const mode = getIonMode$1(this);
|
|
29244
|
-
if (mode === 'ios') {
|
|
29245
|
-
pickerRotateFactor = -0.46;
|
|
29246
|
-
pickerScaleFactor = 1;
|
|
29247
|
-
}
|
|
29248
|
-
this.rotateFactor = pickerRotateFactor;
|
|
29249
|
-
this.scaleFactor = pickerScaleFactor;
|
|
29250
|
-
this.gesture = (await Promise.resolve().then(function () { return index; })).createGesture({
|
|
29251
|
-
el: this.el,
|
|
29252
|
-
gestureName: 'picker-swipe',
|
|
29253
|
-
gesturePriority: 100,
|
|
29254
|
-
threshold: 0,
|
|
29255
|
-
passive: false,
|
|
29256
|
-
onStart: (ev) => this.onStart(ev),
|
|
29257
|
-
onMove: (ev) => this.onMove(ev),
|
|
29258
|
-
onEnd: (ev) => this.onEnd(ev),
|
|
29259
|
-
});
|
|
29260
|
-
this.gesture.enable();
|
|
29261
|
-
// Options have not been initialized yet
|
|
29262
|
-
// Animation must be disabled through the `noAnimate` flag
|
|
29263
|
-
// Otherwise, the options will render
|
|
29264
|
-
// at the top of the column and transition down
|
|
29265
|
-
this.tmrId = setTimeout(() => {
|
|
29266
|
-
this.noAnimate = false;
|
|
29267
|
-
// After initialization, `refresh()` will be called
|
|
29268
|
-
// At this point, animation will be enabled. The options will
|
|
29269
|
-
// animate as they are being selected.
|
|
29270
|
-
this.refresh(true);
|
|
29271
|
-
}, 250);
|
|
29272
|
-
}
|
|
29273
|
-
componentDidLoad() {
|
|
29274
|
-
this.onDomChange();
|
|
29275
|
-
}
|
|
29276
|
-
componentDidUpdate() {
|
|
29277
|
-
// Options may have changed since last update.
|
|
29278
|
-
if (this.colDidChange) {
|
|
29279
|
-
// Animation must be disabled through the `onDomChange` parameter.
|
|
29280
|
-
// Otherwise, the recently added options will render
|
|
29281
|
-
// at the top of the column and transition down
|
|
29282
|
-
this.onDomChange(true, false);
|
|
29283
|
-
this.colDidChange = false;
|
|
29284
|
-
}
|
|
29285
|
-
}
|
|
29286
|
-
disconnectedCallback() {
|
|
29287
|
-
if (this.rafId !== undefined)
|
|
29288
|
-
cancelAnimationFrame(this.rafId);
|
|
29289
|
-
if (this.tmrId)
|
|
29290
|
-
clearTimeout(this.tmrId);
|
|
29291
|
-
if (this.gesture) {
|
|
29292
|
-
this.gesture.destroy();
|
|
29293
|
-
this.gesture = undefined;
|
|
29294
|
-
}
|
|
29295
|
-
}
|
|
29296
|
-
emitColChange() {
|
|
29297
|
-
this.ionPickerColChange.emit(this.col);
|
|
29298
|
-
}
|
|
29299
|
-
setSelected(selectedIndex, duration) {
|
|
29300
|
-
// if there is a selected index, then figure out it's y position
|
|
29301
|
-
// if there isn't a selected index, then just use the top y position
|
|
29302
|
-
const y = selectedIndex > -1 ? -(selectedIndex * this.optHeight) : 0;
|
|
29303
|
-
this.velocity = 0;
|
|
29304
|
-
// set what y position we're at
|
|
29305
|
-
if (this.rafId !== undefined)
|
|
29306
|
-
cancelAnimationFrame(this.rafId);
|
|
29307
|
-
this.update(y, duration, true);
|
|
29308
|
-
this.emitColChange();
|
|
29309
|
-
}
|
|
29310
|
-
update(y, duration, saveY) {
|
|
29311
|
-
if (!this.optsEl) {
|
|
29312
|
-
return;
|
|
29313
|
-
}
|
|
29314
|
-
// ensure we've got a good round number :)
|
|
29315
|
-
let translateY = 0;
|
|
29316
|
-
let translateZ = 0;
|
|
29317
|
-
const { col, rotateFactor } = this;
|
|
29318
|
-
const prevSelected = col.selectedIndex;
|
|
29319
|
-
const selectedIndex = (col.selectedIndex = this.indexForY(-y));
|
|
29320
|
-
const durationStr = duration === 0 ? '' : duration + 'ms';
|
|
29321
|
-
const scaleStr = `scale(${this.scaleFactor})`;
|
|
29322
|
-
const children = this.optsEl.children;
|
|
29323
|
-
for (let i = 0; i < children.length; i++) {
|
|
29324
|
-
const button = children[i];
|
|
29325
|
-
const opt = col.options[i];
|
|
29326
|
-
const optOffset = i * this.optHeight + y;
|
|
29327
|
-
let transform = '';
|
|
29328
|
-
if (rotateFactor !== 0) {
|
|
29329
|
-
const rotateX = optOffset * rotateFactor;
|
|
29330
|
-
if (Math.abs(rotateX) <= 90) {
|
|
29331
|
-
translateY = 0;
|
|
29332
|
-
translateZ = 90;
|
|
29333
|
-
transform = `rotateX(${rotateX}deg) `;
|
|
29334
|
-
}
|
|
29335
|
-
else {
|
|
29336
|
-
translateY = -9999;
|
|
29337
|
-
}
|
|
29338
|
-
}
|
|
29339
|
-
else {
|
|
29340
|
-
translateZ = 0;
|
|
29341
|
-
translateY = optOffset;
|
|
29342
|
-
}
|
|
29343
|
-
const selected = selectedIndex === i;
|
|
29344
|
-
transform += `translate3d(0px,${translateY}px,${translateZ}px) `;
|
|
29345
|
-
if (this.scaleFactor !== 1 && !selected) {
|
|
29346
|
-
transform += scaleStr;
|
|
29347
|
-
}
|
|
29348
|
-
// Update transition duration
|
|
29349
|
-
if (this.noAnimate) {
|
|
29350
|
-
opt.duration = 0;
|
|
29351
|
-
button.style.transitionDuration = '';
|
|
29352
|
-
}
|
|
29353
|
-
else if (duration !== opt.duration) {
|
|
29354
|
-
opt.duration = duration;
|
|
29355
|
-
button.style.transitionDuration = durationStr;
|
|
29356
|
-
}
|
|
29357
|
-
// Update transform
|
|
29358
|
-
if (transform !== opt.transform) {
|
|
29359
|
-
opt.transform = transform;
|
|
29360
|
-
}
|
|
29361
|
-
button.style.transform = transform;
|
|
29362
|
-
/**
|
|
29363
|
-
* Ensure that the select column
|
|
29364
|
-
* item has the selected class
|
|
29365
|
-
*/
|
|
29366
|
-
opt.selected = selected;
|
|
29367
|
-
if (selected) {
|
|
29368
|
-
button.classList.add(PICKER_OPT_SELECTED);
|
|
29369
|
-
}
|
|
29370
|
-
else {
|
|
29371
|
-
button.classList.remove(PICKER_OPT_SELECTED);
|
|
29372
|
-
}
|
|
29373
|
-
}
|
|
29374
|
-
this.col.prevSelected = prevSelected;
|
|
29375
|
-
if (saveY) {
|
|
29376
|
-
this.y = y;
|
|
29377
|
-
}
|
|
29378
|
-
if (this.lastIndex !== selectedIndex) {
|
|
29379
|
-
// have not set a last index yet
|
|
29380
|
-
hapticSelectionChanged();
|
|
29381
|
-
this.lastIndex = selectedIndex;
|
|
29382
|
-
}
|
|
29383
|
-
}
|
|
29384
|
-
decelerate() {
|
|
29385
|
-
if (this.velocity !== 0) {
|
|
29386
|
-
// still decelerating
|
|
29387
|
-
this.velocity *= DECELERATION_FRICTION;
|
|
29388
|
-
// do not let it go slower than a velocity of 1
|
|
29389
|
-
this.velocity = this.velocity > 0 ? Math.max(this.velocity, 1) : Math.min(this.velocity, -1);
|
|
29390
|
-
let y = this.y + this.velocity;
|
|
29391
|
-
if (y > this.minY) {
|
|
29392
|
-
// whoops, it's trying to scroll up farther than the options we have!
|
|
29393
|
-
y = this.minY;
|
|
29394
|
-
this.velocity = 0;
|
|
29395
|
-
}
|
|
29396
|
-
else if (y < this.maxY) {
|
|
29397
|
-
// gahh, it's trying to scroll down farther than we can!
|
|
29398
|
-
y = this.maxY;
|
|
29399
|
-
this.velocity = 0;
|
|
29400
|
-
}
|
|
29401
|
-
this.update(y, 0, true);
|
|
29402
|
-
const notLockedIn = Math.round(y) % this.optHeight !== 0 || Math.abs(this.velocity) > 1;
|
|
29403
|
-
if (notLockedIn) {
|
|
29404
|
-
// isn't locked in yet, keep decelerating until it is
|
|
29405
|
-
this.rafId = requestAnimationFrame(() => this.decelerate());
|
|
29406
|
-
}
|
|
29407
|
-
else {
|
|
29408
|
-
this.velocity = 0;
|
|
29409
|
-
this.emitColChange();
|
|
29410
|
-
hapticSelectionEnd();
|
|
29411
|
-
}
|
|
29412
|
-
}
|
|
29413
|
-
else if (this.y % this.optHeight !== 0) {
|
|
29414
|
-
// needs to still get locked into a position so options line up
|
|
29415
|
-
const currentPos = Math.abs(this.y % this.optHeight);
|
|
29416
|
-
// create a velocity in the direction it needs to scroll
|
|
29417
|
-
this.velocity = currentPos > this.optHeight / 2 ? 1 : -1;
|
|
29418
|
-
this.decelerate();
|
|
29419
|
-
}
|
|
29420
|
-
}
|
|
29421
|
-
indexForY(y) {
|
|
29422
|
-
return Math.min(Math.max(Math.abs(Math.round(y / this.optHeight)), 0), this.col.options.length - 1);
|
|
29423
|
-
}
|
|
29424
|
-
onStart(detail) {
|
|
29425
|
-
// We have to prevent default in order to block scrolling under the picker
|
|
29426
|
-
// but we DO NOT have to stop propagation, since we still want
|
|
29427
|
-
// some "click" events to capture
|
|
29428
|
-
if (detail.event.cancelable) {
|
|
29429
|
-
detail.event.preventDefault();
|
|
29430
|
-
}
|
|
29431
|
-
detail.event.stopPropagation();
|
|
29432
|
-
hapticSelectionStart();
|
|
29433
|
-
// reset everything
|
|
29434
|
-
if (this.rafId !== undefined)
|
|
29435
|
-
cancelAnimationFrame(this.rafId);
|
|
29436
|
-
const options = this.col.options;
|
|
29437
|
-
let minY = options.length - 1;
|
|
29438
|
-
let maxY = 0;
|
|
29439
|
-
for (let i = 0; i < options.length; i++) {
|
|
29440
|
-
if (!options[i].disabled) {
|
|
29441
|
-
minY = Math.min(minY, i);
|
|
29442
|
-
maxY = Math.max(maxY, i);
|
|
29443
|
-
}
|
|
29444
|
-
}
|
|
29445
|
-
this.minY = -(minY * this.optHeight);
|
|
29446
|
-
this.maxY = -(maxY * this.optHeight);
|
|
29447
|
-
}
|
|
29448
|
-
onMove(detail) {
|
|
29449
|
-
if (detail.event.cancelable) {
|
|
29450
|
-
detail.event.preventDefault();
|
|
29451
|
-
}
|
|
29452
|
-
detail.event.stopPropagation();
|
|
29453
|
-
// update the scroll position relative to pointer start position
|
|
29454
|
-
let y = this.y + detail.deltaY;
|
|
29455
|
-
if (y > this.minY) {
|
|
29456
|
-
// scrolling up higher than scroll area
|
|
29457
|
-
y = Math.pow(y, 0.8);
|
|
29458
|
-
this.bounceFrom = y;
|
|
29459
|
-
}
|
|
29460
|
-
else if (y < this.maxY) {
|
|
29461
|
-
// scrolling down below scroll area
|
|
29462
|
-
y += Math.pow(this.maxY - y, 0.9);
|
|
29463
|
-
this.bounceFrom = y;
|
|
29464
|
-
}
|
|
29465
|
-
else {
|
|
29466
|
-
this.bounceFrom = 0;
|
|
29467
|
-
}
|
|
29468
|
-
this.update(y, 0, false);
|
|
29469
|
-
}
|
|
29470
|
-
onEnd(detail) {
|
|
29471
|
-
if (this.bounceFrom > 0) {
|
|
29472
|
-
// bounce back up
|
|
29473
|
-
this.update(this.minY, 100, true);
|
|
29474
|
-
this.emitColChange();
|
|
29475
|
-
return;
|
|
29476
|
-
}
|
|
29477
|
-
else if (this.bounceFrom < 0) {
|
|
29478
|
-
// bounce back down
|
|
29479
|
-
this.update(this.maxY, 100, true);
|
|
29480
|
-
this.emitColChange();
|
|
29481
|
-
return;
|
|
29482
|
-
}
|
|
29483
|
-
this.velocity = clamp(-MAX_PICKER_SPEED, detail.velocityY * 23, MAX_PICKER_SPEED);
|
|
29484
|
-
if (this.velocity === 0 && detail.deltaY === 0) {
|
|
29485
|
-
const opt = detail.event.target.closest('.picker-opt');
|
|
29486
|
-
if (opt === null || opt === void 0 ? void 0 : opt.hasAttribute('opt-index')) {
|
|
29487
|
-
this.setSelected(parseInt(opt.getAttribute('opt-index'), 10), TRANSITION_DURATION);
|
|
29488
|
-
}
|
|
29489
|
-
}
|
|
29490
|
-
else {
|
|
29491
|
-
this.y += detail.deltaY;
|
|
29492
|
-
if (Math.abs(detail.velocityY) < 0.05) {
|
|
29493
|
-
const isScrollingUp = detail.deltaY > 0;
|
|
29494
|
-
const optHeightFraction = (Math.abs(this.y) % this.optHeight) / this.optHeight;
|
|
29495
|
-
if (isScrollingUp && optHeightFraction > 0.5) {
|
|
29496
|
-
this.velocity = Math.abs(this.velocity) * -1;
|
|
29497
|
-
}
|
|
29498
|
-
else if (!isScrollingUp && optHeightFraction <= 0.5) {
|
|
29499
|
-
this.velocity = Math.abs(this.velocity);
|
|
29500
|
-
}
|
|
29501
|
-
}
|
|
29502
|
-
this.decelerate();
|
|
29503
|
-
}
|
|
29504
|
-
}
|
|
29505
|
-
refresh(forceRefresh, animated) {
|
|
29506
|
-
var _a;
|
|
29507
|
-
let min = this.col.options.length - 1;
|
|
29508
|
-
let max = 0;
|
|
29509
|
-
const options = this.col.options;
|
|
29510
|
-
for (let i = 0; i < options.length; i++) {
|
|
29511
|
-
if (!options[i].disabled) {
|
|
29512
|
-
min = Math.min(min, i);
|
|
29513
|
-
max = Math.max(max, i);
|
|
29514
|
-
}
|
|
29515
|
-
}
|
|
29516
|
-
/**
|
|
29517
|
-
* Only update selected value if column has a
|
|
29518
|
-
* velocity of 0. If it does not, then the
|
|
29519
|
-
* column is animating might land on
|
|
29520
|
-
* a value different than the value at
|
|
29521
|
-
* selectedIndex
|
|
29522
|
-
*/
|
|
29523
|
-
if (this.velocity !== 0) {
|
|
29524
|
-
return;
|
|
29525
|
-
}
|
|
29526
|
-
const selectedIndex = clamp(min, (_a = this.col.selectedIndex) !== null && _a !== void 0 ? _a : 0, max);
|
|
29527
|
-
if (this.col.prevSelected !== selectedIndex || forceRefresh) {
|
|
29528
|
-
const y = selectedIndex * this.optHeight * -1;
|
|
29529
|
-
const duration = animated ? TRANSITION_DURATION : 0;
|
|
29530
|
-
this.velocity = 0;
|
|
29531
|
-
this.update(y, duration, true);
|
|
29532
|
-
}
|
|
29533
|
-
}
|
|
29534
|
-
onDomChange(forceRefresh, animated) {
|
|
29535
|
-
const colEl = this.optsEl;
|
|
29536
|
-
if (colEl) {
|
|
29537
|
-
// DOM READ
|
|
29538
|
-
// We perfom a DOM read over a rendered item, this needs to happen after the first render or after the column has changed
|
|
29539
|
-
this.optHeight = colEl.firstElementChild ? colEl.firstElementChild.clientHeight : 0;
|
|
29540
|
-
}
|
|
29541
|
-
this.refresh(forceRefresh, animated);
|
|
29542
|
-
}
|
|
29543
|
-
render() {
|
|
29544
|
-
const col = this.col;
|
|
29545
|
-
const mode = getIonMode$1(this);
|
|
29546
|
-
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: {
|
|
29547
|
-
'max-width': this.col.columnWidth,
|
|
29548
|
-
} }, 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))));
|
|
29549
|
-
}
|
|
29550
|
-
get el() { return getElement(this); }
|
|
29551
|
-
static get watchers() { return {
|
|
29552
|
-
"col": [{
|
|
29553
|
-
"colChanged": 0
|
|
29554
|
-
}]
|
|
29555
|
-
}; }
|
|
29556
|
-
static get style() { return {
|
|
29557
|
-
ios: pickerColumnIosCss(),
|
|
29558
|
-
md: pickerColumnMdCss()
|
|
29559
|
-
}; }
|
|
29560
|
-
static get cmpMeta() { return {
|
|
29561
|
-
"$flags$": 32,
|
|
29562
|
-
"$tagName$": "ion-picker-legacy-column",
|
|
29563
|
-
"$members$": {
|
|
29564
|
-
"col": [16]
|
|
29565
|
-
},
|
|
29566
|
-
"$listeners$": undefined,
|
|
29567
|
-
"$lazyBundleId$": "-",
|
|
29568
|
-
"$attrsToReflect$": []
|
|
29569
|
-
}; }
|
|
29570
|
-
}
|
|
29571
|
-
const PICKER_OPT_SELECTED = 'picker-opt-selected';
|
|
29572
|
-
const DECELERATION_FRICTION = 0.97;
|
|
29573
|
-
const MAX_PICKER_SPEED = 90;
|
|
29574
|
-
const TRANSITION_DURATION = 150;
|
|
29575
|
-
|
|
29576
29230
|
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}`;
|
|
29577
29231
|
|
|
29578
|
-
const pickerColumnOptionMdCss = () => `.picker-column-option-button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) .picker-column-option-button{cursor:default}:host(.option-active),:host([part~=active]){color:var(--ion-color-base)}`;
|
|
29232
|
+
const pickerColumnOptionMdCss = () => `.picker-column-option-button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) .picker-column-option-button{cursor:default}:host(.option-active),:host([part~=active]){color:var(--ion-color-primary, #0054e9)}:host(.ion-color.option-active),:host(.ion-color[part~=active]){color:var(--ion-color-base)}`;
|
|
29579
29233
|
|
|
29580
29234
|
class PickerColumnOption {
|
|
29581
29235
|
constructor(hostRef) {
|
|
@@ -29599,12 +29253,6 @@ class PickerColumnOption {
|
|
|
29599
29253
|
* If `true`, the user cannot interact with the picker column option.
|
|
29600
29254
|
*/
|
|
29601
29255
|
this.disabled = false;
|
|
29602
|
-
/**
|
|
29603
|
-
* The color to use from your application's color palette.
|
|
29604
|
-
* Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
|
|
29605
|
-
* For more information on colors, see [theming](/docs/theming/basics).
|
|
29606
|
-
*/
|
|
29607
|
-
this.color = 'primary';
|
|
29608
29256
|
}
|
|
29609
29257
|
/**
|
|
29610
29258
|
* The aria-label of the option has changed after the
|
|
@@ -29664,10 +29312,10 @@ class PickerColumnOption {
|
|
|
29664
29312
|
render() {
|
|
29665
29313
|
const { color, disabled, ariaLabel } = this;
|
|
29666
29314
|
const mode = getIonMode$1(this);
|
|
29667
|
-
return (hAsync(Host, { key: '
|
|
29315
|
+
return (hAsync(Host, { key: '98109dc9aeced749a3e879394d9a24de24204433', class: createColorClasses$1(color, {
|
|
29668
29316
|
[mode]: true,
|
|
29669
29317
|
['option-disabled']: disabled,
|
|
29670
|
-
}) }, hAsync("div", { key: '
|
|
29318
|
+
}) }, hAsync("div", { key: '42cb75738ea6925a7780b3ec9c1ff6823e340a24', class: 'picker-column-option-button', role: "button", "aria-label": ariaLabel, onClick: () => this.onClick() }, hAsync("slot", { key: '1f1b3862cdfb2b432016014e2e56330c0247d0b5' }))));
|
|
29671
29319
|
}
|
|
29672
29320
|
get el() { return getElement(this); }
|
|
29673
29321
|
static get watchers() { return {
|
|
@@ -30768,9 +30416,9 @@ const mdLeaveAnimation$1 = (baseEl) => {
|
|
|
30768
30416
|
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
30769
30417
|
};
|
|
30770
30418
|
|
|
30771
|
-
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)}}`;
|
|
30419
|
+
const popoverIosCss = () => `:host{--background:var(--ion-background-color, #fff);--min-width:0;--min-height:0;--max-width:auto;--height:auto;--offset-x:0px;--offset-y:0px;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:fixed;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);z-index:1001}:host(.popover-nested){pointer-events:none}:host(.popover-nested) .popover-wrapper{pointer-events:auto}:host(.overlay-hidden){display:none}.popover-wrapper{z-index:10}.popover-content{display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:auto;z-index:10}::slotted(.popover-viewport){--ion-safe-area-top:0px;--ion-safe-area-right:0px;--ion-safe-area-bottom:0px;--ion-safe-area-left:0px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}:host(.popover-nested.popover-side-left){--offset-x:5px}:host(.popover-nested.popover-side-right){--offset-x:-5px}:host(.popover-nested.popover-side-start){--offset-x:5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-start),:host-context([dir=rtl]).popover-nested.popover-side-start{--offset-x:-5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-start:dir(rtl)){--offset-x:-5px}}:host(.popover-nested.popover-side-end){--offset-x:-5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-end),:host-context([dir=rtl]).popover-nested.popover-side-end{--offset-x:5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-end:dir(rtl)){--offset-x:5px}}:host(.select-popover-rich-content){--width:clamp(250px, calc(100vw - 40px), 400px)}:host{--width:200px;--max-height:90%;--box-shadow:none;--backdrop-opacity:var(--ion-backdrop-opacity, 0.08)}:host(.popover-desktop){--box-shadow:0px 4px 16px 0px rgba(0, 0, 0, 0.12)}.popover-content{border-radius:10px}:host(.popover-desktop) .popover-content{border:0.5px solid var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.popover-arrow{display:block;position:absolute;width:20px;height:10px;overflow:hidden;z-index:11}.popover-arrow::after{top:3px;border-radius:3px;position:absolute;width:14px;height:14px;-webkit-transform:rotate(45deg);transform:rotate(45deg);background:var(--background);content:"";z-index:10}.popover-arrow::after{inset-inline-start:3px}:host(.popover-bottom) .popover-arrow{top:auto;bottom:-10px}:host(.popover-bottom) .popover-arrow::after{top:-6px}:host(.popover-side-left) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}:host(.popover-side-right) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}:host(.popover-side-top) .popover-arrow{-webkit-transform:rotate(180deg);transform:rotate(180deg)}:host(.popover-side-start) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}:host-context([dir=rtl]):host(.popover-side-start) .popover-arrow,:host-context([dir=rtl]).popover-side-start .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}@supports selector(:dir(rtl)){:host(.popover-side-start:dir(rtl)) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}}:host(.popover-side-end) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}:host-context([dir=rtl]):host(.popover-side-end) .popover-arrow,:host-context([dir=rtl]).popover-side-end .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}@supports selector(:dir(rtl)){:host(.popover-side-end:dir(rtl)) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}}.popover-arrow,.popover-content{opacity:0}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){:host(.popover-translucent) .popover-content,:host(.popover-translucent) .popover-arrow::after{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}`;
|
|
30772
30420
|
|
|
30773
|
-
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}`;
|
|
30421
|
+
const popoverMdCss = () => `:host{--background:var(--ion-background-color, #fff);--min-width:0;--min-height:0;--max-width:auto;--height:auto;--offset-x:0px;--offset-y:0px;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:fixed;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);z-index:1001}:host(.popover-nested){pointer-events:none}:host(.popover-nested) .popover-wrapper{pointer-events:auto}:host(.overlay-hidden){display:none}.popover-wrapper{z-index:10}.popover-content{display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:auto;z-index:10}::slotted(.popover-viewport){--ion-safe-area-top:0px;--ion-safe-area-right:0px;--ion-safe-area-bottom:0px;--ion-safe-area-left:0px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}:host(.popover-nested.popover-side-left){--offset-x:5px}:host(.popover-nested.popover-side-right){--offset-x:-5px}:host(.popover-nested.popover-side-start){--offset-x:5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-start),:host-context([dir=rtl]).popover-nested.popover-side-start{--offset-x:-5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-start:dir(rtl)){--offset-x:-5px}}:host(.popover-nested.popover-side-end){--offset-x:-5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-end),:host-context([dir=rtl]).popover-nested.popover-side-end{--offset-x:5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-end:dir(rtl)){--offset-x:5px}}:host(.select-popover-rich-content){--width:clamp(250px, calc(100vw - 40px), 400px)}:host{--width:250px;--max-height:90%;--box-shadow:0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}.popover-content{border-radius:4px;-webkit-transform-origin:left top;transform-origin:left top}:host-context([dir=rtl]) .popover-content{-webkit-transform-origin:right top;transform-origin:right top}[dir=rtl] .popover-content{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){.popover-content:dir(rtl){-webkit-transform-origin:right top;transform-origin:right top}}.popover-viewport{-webkit-transition-delay:100ms;transition-delay:100ms}.popover-wrapper{opacity:0}`;
|
|
30774
30422
|
|
|
30775
30423
|
// TODO(FW-2832): types
|
|
30776
30424
|
/**
|
|
@@ -30994,6 +30642,10 @@ class Popover {
|
|
|
30994
30642
|
this.headerResizeObserver.disconnect();
|
|
30995
30643
|
this.headerResizeObserver = undefined;
|
|
30996
30644
|
}
|
|
30645
|
+
// Clean up aria-hidden if removed without dismiss() being called
|
|
30646
|
+
if (this.presented) {
|
|
30647
|
+
cleanupRootFocusTrapAccessibility();
|
|
30648
|
+
}
|
|
30997
30649
|
}
|
|
30998
30650
|
componentWillLoad() {
|
|
30999
30651
|
var _a, _b;
|
|
@@ -31232,9 +30884,9 @@ class Popover {
|
|
|
31232
30884
|
const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
|
|
31233
30885
|
const desktop = isPlatform('desktop');
|
|
31234
30886
|
const enableArrow = arrow && !parentPopover;
|
|
31235
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
30887
|
+
return (hAsync(Host, Object.assign({ key: 'd7f3aa2c2fa93a93585e3eda9e4a6d0daaa541be', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
|
|
31236
30888
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
31237
|
-
}, 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: '
|
|
30889
|
+
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && hAsync("ion-backdrop", { key: 'b87be2ef14219997b9c47dcbaf904eb770d0e057', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), hAsync("div", { key: 'e6243572faf1b871ae2b34923410b2a6638469f0', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && hAsync("div", { key: '3d4938c9d0764a644398e0e7a4361106da1bd926', class: "popover-arrow", part: "arrow" }), hAsync("div", { key: '24ad6d777828aad2881d56595693e6022fc9cb8e', class: "popover-content", part: "content" }, hAsync("slot", { key: '79f83df74a5c5e3dd7650f15c1aa50795b90a345' })))));
|
|
31238
30890
|
}
|
|
31239
30891
|
get el() { return getElement(this); }
|
|
31240
30892
|
static get watchers() { return {
|
|
@@ -31345,7 +30997,7 @@ class ProgressBar {
|
|
|
31345
30997
|
const mode = getIonMode$1(this);
|
|
31346
30998
|
// If the progress is displayed as a solid bar.
|
|
31347
30999
|
const progressSolid = buffer === 1;
|
|
31348
|
-
return (hAsync(Host, { key: '
|
|
31000
|
+
return (hAsync(Host, { key: 'd7476268ce53b6a4f425b7bc9f01d6935eb411c3', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
|
|
31349
31001
|
[mode]: true,
|
|
31350
31002
|
[`progress-bar-${type}`]: true,
|
|
31351
31003
|
'progress-paused': paused,
|
|
@@ -31530,7 +31182,7 @@ class Radio {
|
|
|
31530
31182
|
const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
|
|
31531
31183
|
const mode = getIonMode$1(this);
|
|
31532
31184
|
const inItem = hostContext('ion-item', el);
|
|
31533
|
-
return (hAsync(Host, { key: '
|
|
31185
|
+
return (hAsync(Host, { key: 'd9425b252ed38086420d91d5c680421d121c99f4', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
|
|
31534
31186
|
[mode]: true,
|
|
31535
31187
|
'in-item': inItem,
|
|
31536
31188
|
'radio-checked': checked,
|
|
@@ -31541,10 +31193,10 @@ class Radio {
|
|
|
31541
31193
|
// Focus and active styling should not apply when the radio is in an item
|
|
31542
31194
|
'ion-activatable': !inItem,
|
|
31543
31195
|
'ion-focusable': !inItem,
|
|
31544
|
-
}), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, hAsync("label", { key: '
|
|
31196
|
+
}), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, hAsync("label", { key: 'de391fca2aa0b681af5c1d089121596c46e68271', class: "radio-wrapper" }, hAsync("div", { key: '44e4c71645f86a9e73ad58c0e8b41c0558b920f6', class: {
|
|
31545
31197
|
'label-text-wrapper': true,
|
|
31546
31198
|
'label-text-wrapper-hidden': !hasLabel,
|
|
31547
|
-
}, part: "label" }, hAsync("slot", { key: '
|
|
31199
|
+
}, part: "label" }, hAsync("slot", { key: '589d7c1b45a1918b5811663daa8f30788e7729f8' })), hAsync("div", { key: '0f61a17b195582d6c9a0c597cd40e6629256e479', class: "native-wrapper" }, this.renderRadioControl()))));
|
|
31548
31200
|
}
|
|
31549
31201
|
get el() { return getElement(this); }
|
|
31550
31202
|
static get watchers() { return {
|
|
@@ -31563,7 +31215,7 @@ class Radio {
|
|
|
31563
31215
|
"color": [513],
|
|
31564
31216
|
"name": [1],
|
|
31565
31217
|
"disabled": [4],
|
|
31566
|
-
"value": [
|
|
31218
|
+
"value": [520],
|
|
31567
31219
|
"labelPlacement": [1, "label-placement"],
|
|
31568
31220
|
"justify": [1],
|
|
31569
31221
|
"alignment": [1],
|
|
@@ -31574,7 +31226,7 @@ class Radio {
|
|
|
31574
31226
|
},
|
|
31575
31227
|
"$listeners$": undefined,
|
|
31576
31228
|
"$lazyBundleId$": "-",
|
|
31577
|
-
"$attrsToReflect$": [["color", "color"]]
|
|
31229
|
+
"$attrsToReflect$": [["color", "color"], ["value", "value"]]
|
|
31578
31230
|
}; }
|
|
31579
31231
|
}
|
|
31580
31232
|
let radioButtonIds = 0;
|
|
@@ -32639,7 +32291,7 @@ class Range {
|
|
|
32639
32291
|
const valueAtMin = dualKnobs ? this.valA === min || this.valB === min : this.valA === min;
|
|
32640
32292
|
const valueAtMax = dualKnobs ? this.valA === max || this.valB === max : this.valA === max;
|
|
32641
32293
|
renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
|
|
32642
|
-
return (hAsync(Host, { key: '
|
|
32294
|
+
return (hAsync(Host, { key: 'cd26f0187c0d37c7eb9df923f75c8a0f57c19ab6', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
|
|
32643
32295
|
[mode]: true,
|
|
32644
32296
|
'in-item': inItem,
|
|
32645
32297
|
'range-disabled': disabled,
|
|
@@ -32653,10 +32305,10 @@ class Range {
|
|
|
32653
32305
|
'range-item-end-adjustment': needsEndAdjustment,
|
|
32654
32306
|
'range-value-min': valueAtMin,
|
|
32655
32307
|
'range-value-max': valueAtMax,
|
|
32656
|
-
}) }, hAsync("label", { key: '
|
|
32308
|
+
}) }, hAsync("label", { key: '90224fd24b0e625a17e7972feff73a0ac31e093d', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: 'e07b9fa10983249c425eec26b741f0f628daf2b2', class: {
|
|
32657
32309
|
'label-text-wrapper': true,
|
|
32658
32310
|
'label-text-wrapper-hidden': !hasLabel,
|
|
32659
|
-
}, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: '
|
|
32311
|
+
}, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: '9e252f1190838fbae46e724bf665f9b1943600a4', class: "native-wrapper" }, hAsync("slot", { key: '950697dd9636da340de659812daa91fff50e5345', name: "start" }), this.renderRangeSlider(), hAsync("slot", { key: 'd3fce46b29db275af71e6149e725967839ec12b0', name: "end" })))));
|
|
32660
32312
|
}
|
|
32661
32313
|
get el() { return getElement(this); }
|
|
32662
32314
|
static get watchers() { return {
|
|
@@ -33727,7 +33379,7 @@ class Refresher {
|
|
|
33727
33379
|
}
|
|
33728
33380
|
render() {
|
|
33729
33381
|
const mode = getIonMode$1(this);
|
|
33730
|
-
return (hAsync(Host, { key: '
|
|
33382
|
+
return (hAsync(Host, { key: '1dd475095f76491206644828cf89fc6d2ec276d1', slot: "fixed", class: {
|
|
33731
33383
|
[mode]: true,
|
|
33732
33384
|
// Used internally for styling
|
|
33733
33385
|
[`refresher-${mode}`]: true,
|
|
@@ -33953,7 +33605,7 @@ class RefresherContent {
|
|
|
33953
33605
|
const pullingIcon = this.pullingIcon;
|
|
33954
33606
|
const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
|
|
33955
33607
|
const mode = getIonMode$1(this);
|
|
33956
|
-
return (hAsync(Host, { key: '
|
|
33608
|
+
return (hAsync(Host, { key: 'ec378d6a302be697c12c4f973a57c6ad2ada070f', class: mode }, hAsync("div", { key: '0055f98f8c5a1ed7979dc8146ec1f82a575860c7', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (hAsync("div", { key: '4f88468e26370df6889e72aa54ebb395ebf3757d', class: "refresher-pulling-icon" }, hAsync("div", { key: '05b3f8679576aaa6c2d84d60df6629a392df29e2', class: "spinner-arrow-container" }, hAsync("ion-spinner", { key: '0bf6ceea416ce1140c0f10a5bede063cae7054f4', name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (hAsync("div", { key: 'b71ede8455837968218edae28504e5e14bbc1f5c', class: "arrow-container" }, hAsync("ion-icon", { key: '30b808288d23d3eac681b1225cd8392fdacfefe1', icon: caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (hAsync("div", { key: 'fee1ae7e57ef8a02f5654808dff9dca3002b6702', class: "refresher-pulling-icon" }, hAsync("ion-icon", { key: '55b34a98028adb497fbc2ac66bdb3d5ae5b1705b', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), hAsync("div", { key: 'ef8f987daa8060cb6f8fd83c0864095042b9eecf', class: "refresher-refreshing" }, this.refreshingSpinner && (hAsync("div", { key: 'cd6fe0e81b34eeae11478fcc8a42044bff6f7a52', class: "refresher-refreshing-icon" }, hAsync("ion-spinner", { key: '9cd778229582b538d54589c4d8e4d470efb64aad', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
|
|
33957
33609
|
}
|
|
33958
33610
|
get el() { return getElement(this); }
|
|
33959
33611
|
static get cmpMeta() { return {
|
|
@@ -33994,7 +33646,7 @@ class Reorder {
|
|
|
33994
33646
|
render() {
|
|
33995
33647
|
const mode = getIonMode$1(this);
|
|
33996
33648
|
const reorderIcon = mode === 'ios' ? reorderThreeOutline : reorderTwoSharp;
|
|
33997
|
-
return (hAsync(Host, { key: '
|
|
33649
|
+
return (hAsync(Host, { key: '4d35db30b5b3df2020d2212abb3cfac94f9bc2b8', class: mode }, hAsync("slot", { key: '68a565ae4a47f6a9f5d6ba845b596fdfa629ece8' }, hAsync("ion-icon", { key: '168fb0f8eb9c02329274488900fcdb05d44cb895', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
|
|
33998
33650
|
}
|
|
33999
33651
|
get el() { return getElement(this); }
|
|
34000
33652
|
static get style() { return {
|
|
@@ -34265,7 +33917,7 @@ class ReorderGroup {
|
|
|
34265
33917
|
}
|
|
34266
33918
|
render() {
|
|
34267
33919
|
const mode = getIonMode$1(this);
|
|
34268
|
-
return (hAsync(Host, { key: '
|
|
33920
|
+
return (hAsync(Host, { key: '3afdc6a6c81bba2f88ea523d4b73c6fccff1b9ec', class: {
|
|
34269
33921
|
[mode]: true,
|
|
34270
33922
|
'reorder-enabled': !this.disabled,
|
|
34271
33923
|
'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
|
|
@@ -34383,7 +34035,7 @@ class RippleEffect {
|
|
|
34383
34035
|
}
|
|
34384
34036
|
render() {
|
|
34385
34037
|
const mode = getIonMode$1(this);
|
|
34386
|
-
return (hAsync(Host, { key: '
|
|
34038
|
+
return (hAsync(Host, { key: '5e88b5225414e29883256c86f111ded5bdf2ef91', role: "presentation", class: {
|
|
34387
34039
|
[mode]: true,
|
|
34388
34040
|
unbounded: this.unbounded,
|
|
34389
34041
|
} }));
|
|
@@ -34821,16 +34473,30 @@ const scrollToFragment = async (fragment, shouldContinue = () => true) => {
|
|
|
34821
34473
|
return false;
|
|
34822
34474
|
}
|
|
34823
34475
|
};
|
|
34476
|
+
/** How long the router waits for a navigation outlet before giving up and proceeding. */
|
|
34477
|
+
const NAV_NODE_TIMEOUT = 500;
|
|
34824
34478
|
const waitUntilNavNode = () => {
|
|
34825
34479
|
if (searchNavNode(document.body)) {
|
|
34826
34480
|
return Promise.resolve();
|
|
34827
34481
|
}
|
|
34828
34482
|
return new Promise((resolve) => {
|
|
34829
|
-
|
|
34483
|
+
/**
|
|
34484
|
+
* Outlets emit `ionNavWillLoad` as they load, so resolve as soon as one does.
|
|
34485
|
+
* A timeout backstops the case where the page has no outlet at all: without it
|
|
34486
|
+
* the router would wait forever and its `componentWillLoad` would never settle,
|
|
34487
|
+
* which in turn prevents the app from signalling that it has finished loading.
|
|
34488
|
+
*/
|
|
34489
|
+
const done = () => {
|
|
34490
|
+
window.removeEventListener('ionNavWillLoad', done);
|
|
34491
|
+
clearTimeout(timeout);
|
|
34492
|
+
resolve();
|
|
34493
|
+
};
|
|
34494
|
+
const timeout = setTimeout(done, NAV_NODE_TIMEOUT);
|
|
34495
|
+
window.addEventListener('ionNavWillLoad', done, { once: true });
|
|
34830
34496
|
});
|
|
34831
34497
|
};
|
|
34832
34498
|
/** Selector for all the outlets supported by the router. */
|
|
34833
|
-
const OUTLET_SELECTOR = ':not([no-router]) ion-
|
|
34499
|
+
const OUTLET_SELECTOR = ':not([no-router]) ion-tabs, :not([no-router]) ion-router-outlet';
|
|
34834
34500
|
const searchNavNode = (root) => {
|
|
34835
34501
|
if (!root) {
|
|
34836
34502
|
return undefined;
|
|
@@ -35517,10 +35183,10 @@ class RouterLink {
|
|
|
35517
35183
|
rel: this.rel,
|
|
35518
35184
|
target: this.target,
|
|
35519
35185
|
};
|
|
35520
|
-
return (hAsync(Host, { key: '
|
|
35186
|
+
return (hAsync(Host, { key: '6d5fdfa0dcf1eb216173bcc53f1f4d625f3ec551', onClick: this.onClick, class: createColorClasses$1(this.color, {
|
|
35521
35187
|
[mode]: true,
|
|
35522
35188
|
'ion-activatable': true,
|
|
35523
|
-
}) }, hAsync("a", Object.assign({ key: '
|
|
35189
|
+
}) }, hAsync("a", Object.assign({ key: '85796b7b48581fe9830ba1102dad7d1069de4e17' }, attrs), hAsync("slot", { key: '0f93b0da3ec4ae8f50f624f9e7bed87d13d712d0' }))));
|
|
35524
35190
|
}
|
|
35525
35191
|
static get style() { return routerLinkCss(); }
|
|
35526
35192
|
static get cmpMeta() { return {
|
|
@@ -35559,10 +35225,11 @@ class RouterOutlet {
|
|
|
35559
35225
|
*/
|
|
35560
35226
|
this.animated = true;
|
|
35561
35227
|
}
|
|
35228
|
+
swipeGestureChanged() {
|
|
35229
|
+
this.updateGestureEnabled();
|
|
35230
|
+
}
|
|
35562
35231
|
swipeHandlerChanged() {
|
|
35563
|
-
|
|
35564
|
-
this.gesture.enable(this.swipeHandler !== undefined);
|
|
35565
|
-
}
|
|
35232
|
+
this.updateGestureEnabled();
|
|
35566
35233
|
}
|
|
35567
35234
|
async connectedCallback() {
|
|
35568
35235
|
const onStart = () => {
|
|
@@ -35602,11 +35269,21 @@ class RouterOutlet {
|
|
|
35602
35269
|
this.gestureOrAnimationInProgress = false;
|
|
35603
35270
|
}
|
|
35604
35271
|
});
|
|
35605
|
-
this.
|
|
35272
|
+
if (this.swipeGesture === undefined) {
|
|
35273
|
+
this.swipeGesture = config.getBoolean('swipeBackEnabled', this.mode === 'ios');
|
|
35274
|
+
}
|
|
35275
|
+
else {
|
|
35276
|
+
this.updateGestureEnabled();
|
|
35277
|
+
}
|
|
35606
35278
|
}
|
|
35607
35279
|
componentWillLoad() {
|
|
35608
35280
|
this.ionNavWillLoad.emit();
|
|
35609
35281
|
}
|
|
35282
|
+
updateGestureEnabled() {
|
|
35283
|
+
if (this.gesture) {
|
|
35284
|
+
this.gesture.enable(this.swipeHandler !== undefined && this.swipeGesture === true);
|
|
35285
|
+
}
|
|
35286
|
+
}
|
|
35610
35287
|
disconnectedCallback() {
|
|
35611
35288
|
if (this.gesture) {
|
|
35612
35289
|
this.gesture.destroy();
|
|
@@ -35717,10 +35394,13 @@ class RouterOutlet {
|
|
|
35717
35394
|
return true;
|
|
35718
35395
|
}
|
|
35719
35396
|
render() {
|
|
35720
|
-
return hAsync("slot", { key: '
|
|
35397
|
+
return hAsync("slot", { key: 'ce09e6fbba7b0a2276cdde5245bb37c9a162c1c7' });
|
|
35721
35398
|
}
|
|
35722
35399
|
get el() { return getElement(this); }
|
|
35723
35400
|
static get watchers() { return {
|
|
35401
|
+
"swipeGesture": [{
|
|
35402
|
+
"swipeGestureChanged": 0
|
|
35403
|
+
}],
|
|
35724
35404
|
"swipeHandler": [{
|
|
35725
35405
|
"swipeHandlerChanged": 0
|
|
35726
35406
|
}]
|
|
@@ -35734,6 +35414,7 @@ class RouterOutlet {
|
|
|
35734
35414
|
"delegate": [16],
|
|
35735
35415
|
"animated": [4],
|
|
35736
35416
|
"animation": [16],
|
|
35417
|
+
"swipeGesture": [1028, "swipe-gesture"],
|
|
35737
35418
|
"swipeHandler": [16],
|
|
35738
35419
|
"commit": [64],
|
|
35739
35420
|
"setRouteId": [64],
|
|
@@ -35752,7 +35433,7 @@ class Row {
|
|
|
35752
35433
|
registerInstance(this, hostRef);
|
|
35753
35434
|
}
|
|
35754
35435
|
render() {
|
|
35755
|
-
return (hAsync(Host, { key: '
|
|
35436
|
+
return (hAsync(Host, { key: 'a9066661fff12baaf3e80b2e8c08591af72fe5b8', class: getIonMode$1(this) }, hAsync("slot", { key: '62b103af46d3a5ec9c146019ae300b68a4ae867a' })));
|
|
35756
35437
|
}
|
|
35757
35438
|
static get style() { return rowCss(); }
|
|
35758
35439
|
static get cmpMeta() { return {
|
|
@@ -35804,7 +35485,7 @@ class Searchbar {
|
|
|
35804
35485
|
/**
|
|
35805
35486
|
* Set the input's autocorrect property.
|
|
35806
35487
|
*/
|
|
35807
|
-
this.autocorrect =
|
|
35488
|
+
this.autocorrect = false;
|
|
35808
35489
|
/**
|
|
35809
35490
|
* Set the cancel button icon. Only applies to `md` mode.
|
|
35810
35491
|
* Defaults to `arrow-back-sharp`.
|
|
@@ -36225,8 +35906,8 @@ class Searchbar {
|
|
|
36225
35906
|
const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
|
|
36226
35907
|
const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
|
|
36227
35908
|
const shouldShowCancelButton = this.shouldShowCancelButton();
|
|
36228
|
-
const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '
|
|
36229
|
-
return (hAsync(Host, { key: '
|
|
35909
|
+
const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '73964da43dbd099fc7f3d30cbc4da11087701ac5', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, hAsync("div", { key: '27335a0e35f6c253c074685fa0b088404927bcbb', "aria-hidden": "true" }, mode === 'md' ? (hAsync("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
|
|
35910
|
+
return (hAsync(Host, { key: '1b4f6c4e7dffb02e092f0026ce3875822d98a631', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
|
|
36230
35911
|
[mode]: true,
|
|
36231
35912
|
'searchbar-animated': animated,
|
|
36232
35913
|
'searchbar-disabled': this.disabled,
|
|
@@ -36236,14 +35917,14 @@ class Searchbar {
|
|
|
36236
35917
|
'searchbar-has-focus': this.focused,
|
|
36237
35918
|
'searchbar-should-show-clear': this.shouldShowClearButton(),
|
|
36238
35919
|
'searchbar-should-show-cancel': this.shouldShowCancelButton(),
|
|
36239
|
-
}) }, hAsync("div", { key: '
|
|
35920
|
+
}) }, hAsync("div", { key: '587e1950e329cfb9d3658be5b2a6491e7af9321a', class: "searchbar-input-container" }, hAsync("input", Object.assign({ key: '7f78a3d22cce03af277a538b4d9f85faddf1fa80', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect ? 'on' : 'off', spellcheck: this.spellcheck }, this.inheritedAttributes)), mode === 'md' && cancelButton, hAsync("ion-icon", { key: '9fd3e458978b64e9e3358bcbb26471753f6ff2a6', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), hAsync("button", { key: 'c7864c85923668dfa25f5fc4a70c7dbf6da191b7', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
|
|
36240
35921
|
/**
|
|
36241
35922
|
* This prevents mobile browsers from
|
|
36242
35923
|
* blurring the input when the clear
|
|
36243
35924
|
* button is activated.
|
|
36244
35925
|
*/
|
|
36245
35926
|
ev.preventDefault();
|
|
36246
|
-
}, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '
|
|
35927
|
+
}, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '47e7a15c6c6d4df4c54c62b042842e499627da05', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
|
|
36247
35928
|
}
|
|
36248
35929
|
get el() { return getElement(this); }
|
|
36249
35930
|
static get watchers() { return {
|
|
@@ -36275,7 +35956,7 @@ class Searchbar {
|
|
|
36275
35956
|
"animated": [4],
|
|
36276
35957
|
"autocapitalize": [1],
|
|
36277
35958
|
"autocomplete": [1],
|
|
36278
|
-
"autocorrect": [
|
|
35959
|
+
"autocorrect": [4],
|
|
36279
35960
|
"cancelButtonIcon": [1, "cancel-button-icon"],
|
|
36280
35961
|
"cancelButtonText": [1, "cancel-button-text"],
|
|
36281
35962
|
"clearIcon": [1, "clear-icon"],
|
|
@@ -36852,14 +36533,14 @@ class Segment {
|
|
|
36852
36533
|
}
|
|
36853
36534
|
render() {
|
|
36854
36535
|
const mode = getIonMode$1(this);
|
|
36855
|
-
return (hAsync(Host, { key: '
|
|
36536
|
+
return (hAsync(Host, { key: 'bb626072e73f09c3433e1a769e09789a00822d8f', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
|
|
36856
36537
|
[mode]: true,
|
|
36857
36538
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
36858
36539
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
36859
36540
|
'segment-activated': this.activated,
|
|
36860
36541
|
'segment-disabled': this.disabled,
|
|
36861
36542
|
'segment-scrollable': this.scrollable,
|
|
36862
|
-
}) }, hAsync("slot", { key: '
|
|
36543
|
+
}) }, hAsync("slot", { key: '652d5037c2c2dee4d47a5710b1d150e691202d25', onSlotchange: this.onSlottedItemsChange })));
|
|
36863
36544
|
}
|
|
36864
36545
|
get el() { return getElement(this); }
|
|
36865
36546
|
static get watchers() { return {
|
|
@@ -37007,7 +36688,7 @@ class SegmentButton {
|
|
|
37007
36688
|
const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
|
|
37008
36689
|
const mode = getIonMode$1(this);
|
|
37009
36690
|
const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
|
|
37010
|
-
return (hAsync(Host, { key: '
|
|
36691
|
+
return (hAsync(Host, { key: '792f621c36260b1fceff2b4ec4fa95d98d51d46b', class: {
|
|
37011
36692
|
[mode]: true,
|
|
37012
36693
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
37013
36694
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
@@ -37023,7 +36704,7 @@ class SegmentButton {
|
|
|
37023
36704
|
'ion-activatable': true,
|
|
37024
36705
|
'ion-activatable-instant': true,
|
|
37025
36706
|
'ion-focusable': true,
|
|
37026
|
-
} }, hAsync("button", Object.assign({ key: '
|
|
36707
|
+
} }, hAsync("button", Object.assign({ key: '860698be6ceb8f08c0ce3d16ba82d4bb56adf030', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), hAsync("span", { key: 'e903a2642ff46797878a941887b5c596d52fd3a3', class: "button-inner" }, hAsync("slot", { key: '5fc6b842ecb7f0ab8df23b344bf6714f38dda89a' })), mode === 'md' && hAsync("ion-ripple-effect", { key: '710aaf6e4fa2b6cb15897a883e88dec17ef3829f' })), hAsync("div", { key: 'a7b036cba32420e9eb3f2d16487df0519ecc5289', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, hAsync("div", { key: 'a0a5f49ea7f2ecab8014f4f9ca473a27db8348b6', part: "indicator-background", class: "segment-button-indicator-background" }))));
|
|
37027
36708
|
}
|
|
37028
36709
|
get el() { return getElement(this); }
|
|
37029
36710
|
static get watchers() { return {
|
|
@@ -37060,7 +36741,7 @@ class SegmentContent {
|
|
|
37060
36741
|
registerInstance(this, hostRef);
|
|
37061
36742
|
}
|
|
37062
36743
|
render() {
|
|
37063
|
-
return (hAsync(Host, { key: '
|
|
36744
|
+
return (hAsync(Host, { key: 'ef39f29c444177c3b083cd35680ba891e4bb6a2a' }, hAsync("slot", { key: '51f9dd9ca084ddd928b376aa9d716509669c32b2' })));
|
|
37064
36745
|
}
|
|
37065
36746
|
static get style() { return segmentContentCss(); }
|
|
37066
36747
|
static get cmpMeta() { return {
|
|
@@ -37179,11 +36860,11 @@ class SegmentView {
|
|
|
37179
36860
|
}
|
|
37180
36861
|
render() {
|
|
37181
36862
|
const { disabled, isManualScroll, swipeGesture } = this;
|
|
37182
|
-
return (hAsync(Host, { key: '
|
|
36863
|
+
return (hAsync(Host, { key: 'a6c6ac0232c4bb6f2a954b3de7993019d71f423a', class: {
|
|
37183
36864
|
'segment-view-disabled': disabled,
|
|
37184
36865
|
'segment-view-scroll-disabled': isManualScroll === false,
|
|
37185
36866
|
'segment-view-swipe-disabled': swipeGesture === false,
|
|
37186
|
-
} }, hAsync("slot", { key: '
|
|
36867
|
+
} }, hAsync("slot", { key: '386305be2a75069c79def12005d9f6b49276763f' })));
|
|
37187
36868
|
}
|
|
37188
36869
|
get el() { return getElement(this); }
|
|
37189
36870
|
static get style() { return {
|
|
@@ -37205,9 +36886,9 @@ class SegmentView {
|
|
|
37205
36886
|
}; }
|
|
37206
36887
|
}
|
|
37207
36888
|
|
|
37208
|
-
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}`;
|
|
36889
|
+
const selectIosCss = () => `:host{--padding-top:0px;--padding-end:0px;--padding-bottom:0px;--padding-start:0px;--placeholder-color:currentColor;--placeholder-opacity:var(--ion-placeholder-opacity, 0.6);--background:transparent;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);--select-text-media-height:1.5em;--select-text-media-width:1.5em;--select-text-gap:12px;--highlight-color:var(--highlight-color-focused);display:block;position:relative;width:100%;min-height:44px;font-family:var(--ion-font-family, inherit);white-space:nowrap;cursor:pointer;z-index:2}:host(.select-label-placement-floating),:host(.select-label-placement-stacked){min-height:56px}:host(.ion-color){--highlight-color-focused:var(--ion-color-base)}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0}:host(.select-disabled){pointer-events:none}:host(.has-focus) button{border:2px solid #5e9ed6}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}.select-placeholder{color:var(--placeholder-color);opacity:var(--placeholder-opacity)}button{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.select-icon{-webkit-margin-start:4px;margin-inline-start:4px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0;position:relative;-ms-flex-negative:0;flex-shrink:0}:host(.in-item-color) .select-icon{color:inherit}:host(.select-label-placement-stacked) .select-icon,:host(.select-label-placement-floating) .select-icon{position:absolute;height:100%}:host(.select-ltr.select-label-placement-stacked) .select-icon,:host(.select-ltr.select-label-placement-floating) .select-icon{right:var(--padding-end, 0)}:host(.select-rtl.select-label-placement-stacked) .select-icon,:host(.select-rtl.select-label-placement-floating) .select-icon{left:var(--padding-start, 0)}.select-text{-ms-flex:1;flex:1;min-width:16px;font-size:inherit;text-overflow:ellipsis;white-space:inherit;overflow:hidden}.select-text>*+*{-webkit-margin-start:var(--select-text-gap);margin-inline-start:var(--select-text-gap)}.select-text img,.select-text ion-img,.select-text ion-icon,.select-text ion-thumbnail,.select-text ion-avatar{border-radius:var(--select-text-media-border-radius);width:var(--select-text-media-width);height:var(--select-text-media-height);border-width:var(--select-text-media-border-width);border-style:var(--select-text-media-border-style);border-color:var(--select-text-media-border-color)}.select-wrapper{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal;cursor:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.select-wrapper .select-placeholder{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.select-wrapper-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;overflow:hidden}:host(.select-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{-ms-flex-positive:1;flex-grow:1}:host(.ion-touched.ion-invalid){--highlight-color:var(--highlight-color-invalid)}:host(.ion-valid){--highlight-color:var(--highlight-color-valid)}.select-bottom{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:5px;padding-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;border-top:var(--border-width) var(--border-style) var(--border-color);font-size:0.75rem;white-space:normal}:host(.has-focus.ion-valid),:host(.select-expanded.ion-valid),:host(.ion-touched.ion-invalid),:host(.select-expanded.ion-touched.ion-invalid){--border-color:var(--highlight-color)}.select-bottom .error-text{display:none;color:var(--highlight-color-invalid)}.select-bottom .helper-text{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}:host(.ion-touched.ion-invalid) .select-bottom .error-text{display:block}:host(.ion-touched.ion-invalid) .select-bottom .helper-text{display:none}.label-text-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}.label-text,::slotted([slot=label]){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden,.select-outline-notch-hidden{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);overflow:hidden}:host(.select-justify-space-between) .select-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.select-justify-start) .select-wrapper{-ms-flex-pack:start;justify-content:start}:host(.select-justify-end) .select-wrapper{-ms-flex-pack:end;justify-content:end}:host(.select-label-placement-start) .select-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.select-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-end) .select-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.select-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.select-label-placement-stacked) .select-wrapper,:host(.select-label-placement-floating) .select-wrapper{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:start}:host(.select-label-placement-stacked) .label-text-wrapper,:host(.select-label-placement-floating) .label-text-wrapper{max-width:100%}:host(.select-ltr.select-label-placement-stacked) .label-text-wrapper,:host(.select-ltr.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host(.select-rtl.select-label-placement-stacked) .label-text-wrapper,:host(.select-rtl.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}:host(.select-label-placement-stacked) .native-wrapper,:host(.select-label-placement-floating) .native-wrapper{margin-left:0;margin-right:0;margin-top:1px;margin-bottom:0;-ms-flex-positive:1;flex-grow:1;width:100%}:host(.select-label-placement-floating) .label-text-wrapper{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}:host(.select-label-placement-floating:not(.label-floating)) .native-wrapper .select-placeholder{opacity:0}:host(.select-expanded.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-focus.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-value.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:1}:host(.label-floating) .label-text-wrapper{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}::slotted([slot=start]),::slotted([slot=end]){-ms-flex-negative:0;flex-shrink:0}::slotted([slot=start]:last-of-type){-webkit-margin-end:16px;margin-inline-end:16px;-webkit-margin-start:0;margin-inline-start:0}::slotted([slot=end]:first-of-type){-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}:host{--border-width:0.55px;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));--highlight-height:0px}.select-icon{width:1.125rem;height:1.125rem;color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959))}:host(.select-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{width:calc(100% - 1.125rem - 4px)}:host(.select-disabled){opacity:0.3}::slotted(ion-button[slot=start].button-has-icon-only),::slotted(ion-button[slot=end].button-has-icon-only){--border-radius:50%;--padding-start:0;--padding-end:0;--padding-top:0;--padding-bottom:0;aspect-ratio:1}`;
|
|
37209
36890
|
|
|
37210
|
-
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}`;
|
|
36891
|
+
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}`;
|
|
37211
36892
|
|
|
37212
36893
|
// TODO(FW-2832): types
|
|
37213
36894
|
/**
|
|
@@ -37242,6 +36923,7 @@ class Select {
|
|
|
37242
36923
|
this.helperTextId = `${this.inputId}-helper-text`;
|
|
37243
36924
|
this.errorTextId = `${this.inputId}-error-text`;
|
|
37244
36925
|
this.inheritedAttributes = {};
|
|
36926
|
+
this.customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
|
|
37245
36927
|
this.isExpanded = false;
|
|
37246
36928
|
/**
|
|
37247
36929
|
* The `hasFocus` state ensures the focus class is
|
|
@@ -37367,9 +37049,40 @@ class Select {
|
|
|
37367
37049
|
this.emitStyle();
|
|
37368
37050
|
}
|
|
37369
37051
|
setValue(value) {
|
|
37052
|
+
if (this.isValueEqual(this.value, value)) {
|
|
37053
|
+
return;
|
|
37054
|
+
}
|
|
37370
37055
|
this.value = value;
|
|
37371
37056
|
this.ionChange.emit({ value });
|
|
37372
37057
|
}
|
|
37058
|
+
isValueEqual(currentValue, newValue) {
|
|
37059
|
+
if (this.multiple) {
|
|
37060
|
+
const currentArr = Array.isArray(currentValue) ? currentValue : [];
|
|
37061
|
+
const newArr = Array.isArray(newValue) ? newValue : [];
|
|
37062
|
+
if (currentArr.length !== newArr.length) {
|
|
37063
|
+
return false;
|
|
37064
|
+
}
|
|
37065
|
+
// Multiset compare: each new value must match a distinct current value.
|
|
37066
|
+
// A plain `every(isOptionSelected)` would accept ['a','a'] as equal to
|
|
37067
|
+
// ['a','b'] when both 'a' and 'b' map to options whose values overlap.
|
|
37068
|
+
const remaining = currentArr.slice();
|
|
37069
|
+
return newArr.every((val) => {
|
|
37070
|
+
const idx = remaining.findIndex((c) => compareOptions(c, val, this.compareWith));
|
|
37071
|
+
if (idx === -1) {
|
|
37072
|
+
return false;
|
|
37073
|
+
}
|
|
37074
|
+
remaining.splice(idx, 1);
|
|
37075
|
+
return true;
|
|
37076
|
+
});
|
|
37077
|
+
}
|
|
37078
|
+
if (currentValue == null && newValue == null) {
|
|
37079
|
+
return true;
|
|
37080
|
+
}
|
|
37081
|
+
if (currentValue == null || newValue == null) {
|
|
37082
|
+
return false;
|
|
37083
|
+
}
|
|
37084
|
+
return compareOptions(currentValue, newValue, this.compareWith);
|
|
37085
|
+
}
|
|
37373
37086
|
async connectedCallback() {
|
|
37374
37087
|
const { el } = this;
|
|
37375
37088
|
this.notchController = createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
|
|
@@ -37563,10 +37276,11 @@ class Select {
|
|
|
37563
37276
|
.join(' ');
|
|
37564
37277
|
const optClass = `${OPTION_CLASS} ${copyClasses}`;
|
|
37565
37278
|
const isSelected = isOptionSelected(selectValue, value, this.compareWith);
|
|
37279
|
+
const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
|
|
37566
37280
|
return {
|
|
37567
|
-
|
|
37568
|
-
text: option.textContent,
|
|
37281
|
+
text: content !== null && content !== void 0 ? content : '',
|
|
37569
37282
|
cssClass: optClass,
|
|
37283
|
+
disabled: option.disabled,
|
|
37570
37284
|
handler: () => {
|
|
37571
37285
|
this.setValue(value);
|
|
37572
37286
|
},
|
|
@@ -37574,6 +37288,9 @@ class Select {
|
|
|
37574
37288
|
'aria-checked': isSelected ? 'true' : 'false',
|
|
37575
37289
|
role: 'radio',
|
|
37576
37290
|
},
|
|
37291
|
+
startContent,
|
|
37292
|
+
endContent,
|
|
37293
|
+
description: option.description,
|
|
37577
37294
|
};
|
|
37578
37295
|
});
|
|
37579
37296
|
// Add "cancel" button
|
|
@@ -37594,13 +37311,19 @@ class Select {
|
|
|
37594
37311
|
.filter((cls) => cls !== 'hydrated')
|
|
37595
37312
|
.join(' ');
|
|
37596
37313
|
const optClass = `${OPTION_CLASS} ${copyClasses}`;
|
|
37314
|
+
const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
|
|
37597
37315
|
return {
|
|
37598
37316
|
type: inputType,
|
|
37599
37317
|
cssClass: optClass,
|
|
37600
|
-
label:
|
|
37318
|
+
label: content !== null && content !== void 0 ? content : '',
|
|
37601
37319
|
value,
|
|
37602
37320
|
checked: isOptionSelected(selectValue, value, this.compareWith),
|
|
37603
37321
|
disabled: option.disabled,
|
|
37322
|
+
startContent,
|
|
37323
|
+
endContent,
|
|
37324
|
+
description: option.description,
|
|
37325
|
+
labelPlacement: option.labelPlacement,
|
|
37326
|
+
justify: option.justify,
|
|
37604
37327
|
};
|
|
37605
37328
|
});
|
|
37606
37329
|
return alertInputs;
|
|
@@ -37613,8 +37336,9 @@ class Select {
|
|
|
37613
37336
|
.filter((cls) => cls !== 'hydrated')
|
|
37614
37337
|
.join(' ');
|
|
37615
37338
|
const optClass = `${OPTION_CLASS} ${copyClasses}`;
|
|
37339
|
+
const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
|
|
37616
37340
|
return {
|
|
37617
|
-
text:
|
|
37341
|
+
text: content !== null && content !== void 0 ? content : '',
|
|
37618
37342
|
cssClass: optClass,
|
|
37619
37343
|
value,
|
|
37620
37344
|
checked: isOptionSelected(selectValue, value, this.compareWith),
|
|
@@ -37625,6 +37349,11 @@ class Select {
|
|
|
37625
37349
|
this.close();
|
|
37626
37350
|
}
|
|
37627
37351
|
},
|
|
37352
|
+
startContent,
|
|
37353
|
+
endContent,
|
|
37354
|
+
description: option.description,
|
|
37355
|
+
labelPlacement: option.labelPlacement,
|
|
37356
|
+
justify: option.justify,
|
|
37628
37357
|
};
|
|
37629
37358
|
});
|
|
37630
37359
|
return popoverOptions;
|
|
@@ -37657,15 +37386,21 @@ class Select {
|
|
|
37657
37386
|
ionShadowTarget: this.nativeWrapperEl,
|
|
37658
37387
|
} });
|
|
37659
37388
|
}
|
|
37389
|
+
const options = this.createOverlaySelectOptions(this.childOpts, value);
|
|
37390
|
+
const hasRichContent = options.some((opt) => opt.startContent || opt.endContent || opt.description);
|
|
37660
37391
|
const popoverOpts = Object.assign(Object.assign({ mode,
|
|
37661
37392
|
event, alignment: 'center', size,
|
|
37662
|
-
showBackdrop }, interfaceOptions), { component: 'ion-select-popover', cssClass: [
|
|
37393
|
+
showBackdrop }, interfaceOptions), { component: 'ion-select-popover', cssClass: [
|
|
37394
|
+
'select-popover',
|
|
37395
|
+
hasRichContent ? 'select-popover-rich-content' : undefined,
|
|
37396
|
+
interfaceOptions.cssClass,
|
|
37397
|
+
], componentProps: {
|
|
37663
37398
|
header: interfaceOptions.header,
|
|
37664
37399
|
subHeader: interfaceOptions.subHeader,
|
|
37665
37400
|
message: interfaceOptions.message,
|
|
37666
37401
|
multiple,
|
|
37667
37402
|
value,
|
|
37668
|
-
options
|
|
37403
|
+
options,
|
|
37669
37404
|
} });
|
|
37670
37405
|
return popoverController.create(popoverOpts);
|
|
37671
37406
|
}
|
|
@@ -37746,12 +37481,18 @@ class Select {
|
|
|
37746
37481
|
}
|
|
37747
37482
|
return;
|
|
37748
37483
|
}
|
|
37749
|
-
|
|
37484
|
+
/**
|
|
37485
|
+
* Returns the text to display in the select based on the selected value.
|
|
37486
|
+
*
|
|
37487
|
+
* @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`.
|
|
37488
|
+
* @returns The text to display in the select, either with or without HTML based on the `useHTML` parameter.
|
|
37489
|
+
*/
|
|
37490
|
+
getText(useHTML = false) {
|
|
37750
37491
|
const selectedText = this.selectedText;
|
|
37751
37492
|
if (selectedText != null && selectedText !== '') {
|
|
37752
37493
|
return selectedText;
|
|
37753
37494
|
}
|
|
37754
|
-
return generateText(this.childOpts, this.value, this.compareWith);
|
|
37495
|
+
return generateText(this.childOpts, this.value, this.compareWith, useHTML);
|
|
37755
37496
|
}
|
|
37756
37497
|
setFocus() {
|
|
37757
37498
|
if (this.focusEl) {
|
|
@@ -37821,6 +37562,47 @@ class Select {
|
|
|
37821
37562
|
*/
|
|
37822
37563
|
return this.renderLabel();
|
|
37823
37564
|
}
|
|
37565
|
+
/**
|
|
37566
|
+
* Wraps text nodes in the select text with span elements
|
|
37567
|
+
* so spacing can be added between elements without
|
|
37568
|
+
* changing the display to prevent losing the ellipses
|
|
37569
|
+
* behavior.
|
|
37570
|
+
*
|
|
37571
|
+
* Only wraps when the string contains HTML elements
|
|
37572
|
+
* alongside text.
|
|
37573
|
+
*/
|
|
37574
|
+
wrapSelectTextNodes(html) {
|
|
37575
|
+
const temp = document.createElement('div');
|
|
37576
|
+
temp.innerHTML = html;
|
|
37577
|
+
const hasElements = Array.from(temp.childNodes).some((n) => n.nodeType === Node.ELEMENT_NODE);
|
|
37578
|
+
// Return the plain text
|
|
37579
|
+
if (!hasElements) {
|
|
37580
|
+
return html;
|
|
37581
|
+
}
|
|
37582
|
+
Array.from(temp.childNodes).forEach((node) => {
|
|
37583
|
+
var _a, _b, _c, _d;
|
|
37584
|
+
if (node.nodeType === Node.TEXT_NODE && ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim())) {
|
|
37585
|
+
const text = node.textContent;
|
|
37586
|
+
/**
|
|
37587
|
+
* Split comma separator from the text content
|
|
37588
|
+
* e.g., ", Bacon" becomes ", " text node + <span>Bacon</span>.
|
|
37589
|
+
*/
|
|
37590
|
+
const commaMatch = text.match(/^(,\s*)(.*)/);
|
|
37591
|
+
if (commaMatch) {
|
|
37592
|
+
const commaNode = document.createTextNode(commaMatch[1]);
|
|
37593
|
+
const wrapper = document.createElement('span');
|
|
37594
|
+
wrapper.textContent = commaMatch[2];
|
|
37595
|
+
(_b = node.parentNode) === null || _b === void 0 ? void 0 : _b.replaceChild(wrapper, node);
|
|
37596
|
+
(_c = wrapper.parentNode) === null || _c === void 0 ? void 0 : _c.insertBefore(commaNode, wrapper);
|
|
37597
|
+
return;
|
|
37598
|
+
}
|
|
37599
|
+
const wrapper = document.createElement('span');
|
|
37600
|
+
(_d = node.parentNode) === null || _d === void 0 ? void 0 : _d.replaceChild(wrapper, node);
|
|
37601
|
+
wrapper.appendChild(node);
|
|
37602
|
+
}
|
|
37603
|
+
});
|
|
37604
|
+
return temp.innerHTML;
|
|
37605
|
+
}
|
|
37824
37606
|
/**
|
|
37825
37607
|
* Renders either the placeholder
|
|
37826
37608
|
* or the selected values based on
|
|
@@ -37828,7 +37610,7 @@ class Select {
|
|
|
37828
37610
|
*/
|
|
37829
37611
|
renderSelectText() {
|
|
37830
37612
|
const { placeholder } = this;
|
|
37831
|
-
const displayValue = this.getText();
|
|
37613
|
+
const displayValue = this.getText(true);
|
|
37832
37614
|
let addPlaceholderClass = false;
|
|
37833
37615
|
let selectText = displayValue;
|
|
37834
37616
|
if (selectText === '' && placeholder !== undefined) {
|
|
@@ -37840,6 +37622,10 @@ class Select {
|
|
|
37840
37622
|
'select-placeholder': addPlaceholderClass,
|
|
37841
37623
|
};
|
|
37842
37624
|
const textPart = addPlaceholderClass ? 'placeholder' : 'text';
|
|
37625
|
+
if (this.customHTMLEnabled) {
|
|
37626
|
+
const wrapped = this.wrapSelectTextNodes(selectText);
|
|
37627
|
+
return hAsync("div", { "aria-hidden": "true", class: selectTextClasses, part: textPart, innerHTML: wrapped });
|
|
37628
|
+
}
|
|
37843
37629
|
return (hAsync("div", { "aria-hidden": "true", class: selectTextClasses, part: textPart }, selectText));
|
|
37844
37630
|
}
|
|
37845
37631
|
/**
|
|
@@ -37862,6 +37648,7 @@ class Select {
|
|
|
37862
37648
|
get ariaLabel() {
|
|
37863
37649
|
var _a;
|
|
37864
37650
|
const { placeholder, inheritedAttributes } = this;
|
|
37651
|
+
// Get the plain text from the selected text
|
|
37865
37652
|
const displayValue = this.getText();
|
|
37866
37653
|
// The aria label should be preferred over visible text if both are specified
|
|
37867
37654
|
const definedLabel = (_a = inheritedAttributes['aria-label']) !== null && _a !== void 0 ? _a : this.labelText;
|
|
@@ -37955,7 +37742,7 @@ class Select {
|
|
|
37955
37742
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
37956
37743
|
*/
|
|
37957
37744
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
|
|
37958
|
-
return (hAsync(Host, { key: '
|
|
37745
|
+
return (hAsync(Host, { key: 'a3036d51e0db13332641e9523264ddd1ab031912', onClick: this.onClick, class: createColorClasses$1(this.color, {
|
|
37959
37746
|
[mode]: true,
|
|
37960
37747
|
'in-item': inItem,
|
|
37961
37748
|
'in-item-color': hostContext('ion-item.ion-color', el),
|
|
@@ -37973,7 +37760,7 @@ class Select {
|
|
|
37973
37760
|
[`select-justify-${justify}`]: justifyEnabled,
|
|
37974
37761
|
[`select-shape-${shape}`]: shape !== undefined,
|
|
37975
37762
|
[`select-label-placement-${labelPlacement}`]: true,
|
|
37976
|
-
}) }, hAsync("label", { key: '
|
|
37763
|
+
}) }, hAsync("label", { key: '58b77f683499b958840721bdb59a9bf822c7f218', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), hAsync("div", { key: '9e68d96524c1b87d6cb1bdce79fa86f2022be04a', class: "select-wrapper-inner", part: "inner" }, hAsync("slot", { key: 'c9bcc5d684d2cefadff6ad3ec91498d5b405afc5', name: "start" }), hAsync("div", { key: '5405bc15ffb3437ca00c64fbbc83d8eb2631c4ea', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: '95e2f041c8517afb1cc6bddb2c3c38cf41f2376e', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: 'f3d2410f678ea22a107121aea1bbda197a618ed6', class: "select-highlight" })), this.renderBottomContent()));
|
|
37977
37764
|
}
|
|
37978
37765
|
get el() { return getElement(this); }
|
|
37979
37766
|
static get watchers() { return {
|
|
@@ -38044,34 +37831,232 @@ const parseValue = (value) => {
|
|
|
38044
37831
|
}
|
|
38045
37832
|
return value.toString();
|
|
38046
37833
|
};
|
|
38047
|
-
const generateText = (opts, value, compareWith) => {
|
|
37834
|
+
const generateText = (opts, value, compareWith, useHTML = false) => {
|
|
38048
37835
|
if (value === undefined) {
|
|
38049
37836
|
return '';
|
|
38050
37837
|
}
|
|
38051
37838
|
if (Array.isArray(value)) {
|
|
38052
37839
|
return value
|
|
38053
|
-
.map((v) => textForValue(opts, v, compareWith))
|
|
37840
|
+
.map((v) => textForValue(opts, v, compareWith, useHTML))
|
|
38054
37841
|
.filter((opt) => opt !== null)
|
|
38055
37842
|
.join(', ');
|
|
38056
37843
|
}
|
|
38057
37844
|
else {
|
|
38058
|
-
return textForValue(opts, value, compareWith) || '';
|
|
37845
|
+
return textForValue(opts, value, compareWith, useHTML) || '';
|
|
38059
37846
|
}
|
|
38060
37847
|
};
|
|
38061
|
-
|
|
37848
|
+
/**
|
|
37849
|
+
* Returns the display text for a given value from the list of options.
|
|
37850
|
+
* When `useHTML` is true, returns sanitized HTML for the select text.
|
|
37851
|
+
* When `useHTML` is false, returns plain text for aria-label and other
|
|
37852
|
+
* text-only contexts.
|
|
37853
|
+
*
|
|
37854
|
+
* @param opts - The list of ion-select-option elements.
|
|
37855
|
+
* @param value - The value to find the matching option for.
|
|
37856
|
+
* @param compareWith - Custom comparison function or property name.
|
|
37857
|
+
* @param useHTML - If true, returns HTML string. If false, returns plain text.
|
|
37858
|
+
*/
|
|
37859
|
+
const textForValue = (opts, value, compareWith, useHTML = false) => {
|
|
38062
37860
|
const selectOpt = opts.find((opt) => {
|
|
38063
37861
|
return compareOptions(value, getOptionValue(opt), compareWith);
|
|
38064
37862
|
});
|
|
38065
|
-
|
|
37863
|
+
const customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
|
|
37864
|
+
if (!selectOpt) {
|
|
37865
|
+
return null;
|
|
37866
|
+
}
|
|
37867
|
+
// Return sanitized HTML for the select text
|
|
37868
|
+
if (customHTMLEnabled && useHTML) {
|
|
37869
|
+
return getOptionContent(selectOpt, undefined, true);
|
|
37870
|
+
}
|
|
37871
|
+
/**
|
|
37872
|
+
* When custom HTML is enabled, extract only the default slot content.
|
|
37873
|
+
* This ensures aria-label and other text-only contexts read only
|
|
37874
|
+
* the relevant option text.
|
|
37875
|
+
*/
|
|
37876
|
+
if (customHTMLEnabled) {
|
|
37877
|
+
const content = getOptionContent(selectOpt);
|
|
37878
|
+
if (typeof content === 'string') {
|
|
37879
|
+
return content;
|
|
37880
|
+
}
|
|
37881
|
+
/**
|
|
37882
|
+
* Elements were found in the default slot, extract and concatenate
|
|
37883
|
+
* their text content while trimming whitespace.
|
|
37884
|
+
*/
|
|
37885
|
+
if (content) {
|
|
37886
|
+
const texts = Array.from(content.childNodes)
|
|
37887
|
+
.map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); })
|
|
37888
|
+
.filter((t) => t);
|
|
37889
|
+
return texts.join(' ') || null;
|
|
37890
|
+
}
|
|
37891
|
+
// Empty option
|
|
37892
|
+
return null;
|
|
37893
|
+
}
|
|
37894
|
+
return getDefaultSlotPlainText(selectOpt);
|
|
37895
|
+
};
|
|
37896
|
+
/**
|
|
37897
|
+
* Trims whitespace from all text nodes within a DOM tree.
|
|
37898
|
+
* This prevents invisible layout shifts and unwanted gaps between
|
|
37899
|
+
* elements when HTML content is injected via innerHTML or cloneNode,
|
|
37900
|
+
* as browsers preserve whitespace (tabs, newlines, spaces) from
|
|
37901
|
+
* the original source markup.
|
|
37902
|
+
*
|
|
37903
|
+
* @param node The root node to start trimming text nodes from.
|
|
37904
|
+
*/
|
|
37905
|
+
const trimTextNodes = (node) => {
|
|
37906
|
+
node.childNodes.forEach((child) => {
|
|
37907
|
+
var _a;
|
|
37908
|
+
if (child.nodeType === Node.TEXT_NODE) {
|
|
37909
|
+
child.textContent = ((_a = child.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
|
|
37910
|
+
}
|
|
37911
|
+
else if (child.nodeType === Node.ELEMENT_NODE) {
|
|
37912
|
+
trimTextNodes(child);
|
|
37913
|
+
}
|
|
37914
|
+
});
|
|
37915
|
+
};
|
|
37916
|
+
/**
|
|
37917
|
+
* Extracts and clones content from an `ion-select-option` element
|
|
37918
|
+
* for rendering within overlay interfaces or the select text when `customHTMLEnabled` is `true`.
|
|
37919
|
+
*
|
|
37920
|
+
* @param option - The `ion-select-option` element to extract content from.
|
|
37921
|
+
* @param slotName - Optional slot name to extract. If omitted, extracts the default slot content.
|
|
37922
|
+
* @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.
|
|
37923
|
+
* @returns When `useHTML` is `true`, a sanitized HTML string. When `false`, a
|
|
37924
|
+
* div element containing cloned child nodes. Returns `null` if no matching
|
|
37925
|
+
* content is found.
|
|
37926
|
+
*/
|
|
37927
|
+
const getOptionContent = (option, slotName, useHTML = false) => {
|
|
37928
|
+
let nodes;
|
|
37929
|
+
if (slotName) {
|
|
37930
|
+
// Named slot: get elements with matching slot attribute
|
|
37931
|
+
nodes = Array.from(option.children).filter((el) => el.getAttribute('slot') === slotName);
|
|
37932
|
+
}
|
|
37933
|
+
else {
|
|
37934
|
+
// Default slot: get nodes without a slot attribute
|
|
37935
|
+
const defaultSlot = getOptionDefaultSlot(option) || [];
|
|
37936
|
+
nodes = defaultSlot.filter((node) => {
|
|
37937
|
+
var _a;
|
|
37938
|
+
/**
|
|
37939
|
+
* Exclude whitespace-only text nodes (newline noise between
|
|
37940
|
+
* markup elements). Element nodes are always kept, even when
|
|
37941
|
+
* their textContent is empty (e.g. <svg>, <img>).
|
|
37942
|
+
*/
|
|
37943
|
+
if (node.nodeType === Node.TEXT_NODE) {
|
|
37944
|
+
return ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim().length) !== 0;
|
|
37945
|
+
}
|
|
37946
|
+
return true;
|
|
37947
|
+
});
|
|
37948
|
+
}
|
|
37949
|
+
if (nodes.length === 0) {
|
|
37950
|
+
return null;
|
|
37951
|
+
}
|
|
37952
|
+
// Return plain text if no elements are found
|
|
37953
|
+
if (!slotName && nodes.every((n) => n.nodeType === Node.TEXT_NODE)) {
|
|
37954
|
+
return nodes.map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); }).join(' ') || null;
|
|
37955
|
+
}
|
|
37956
|
+
/**
|
|
37957
|
+
* Mirror known custom-element properties (e.g. ion-icon's `icon`)
|
|
37958
|
+
* onto attributes before cloning. Frameworks like Vue set these as
|
|
37959
|
+
* DOM properties, which `cloneNode` doesn't copy, so without this
|
|
37960
|
+
* step the cloned overlay copy renders without the prop's value.
|
|
37961
|
+
*/
|
|
37962
|
+
nodes.forEach((n) => {
|
|
37963
|
+
if (n.nodeType === Node.ELEMENT_NODE) {
|
|
37964
|
+
reflectPropertiesToAttributes(n);
|
|
37965
|
+
}
|
|
37966
|
+
});
|
|
37967
|
+
// Clone each node into a temporary container
|
|
37968
|
+
const container = document.createElement('div');
|
|
37969
|
+
nodes.forEach((n) => {
|
|
37970
|
+
var _a;
|
|
37971
|
+
const clone = n.cloneNode(true);
|
|
37972
|
+
if (clone.nodeType === Node.TEXT_NODE) {
|
|
37973
|
+
clone.textContent = ((_a = clone.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
|
|
37974
|
+
}
|
|
37975
|
+
else {
|
|
37976
|
+
trimTextNodes(clone);
|
|
37977
|
+
}
|
|
37978
|
+
container.appendChild(clone);
|
|
37979
|
+
});
|
|
37980
|
+
/**
|
|
37981
|
+
* Sanitize the cloned DOM in place. Trusted attributes (size, color,
|
|
37982
|
+
* shape, etc.) are preserved; event handlers, javascript: URLs, and
|
|
37983
|
+
* blocked tags are stripped.
|
|
37984
|
+
*/
|
|
37985
|
+
sanitizeDOMTree(container);
|
|
37986
|
+
if (useHTML) {
|
|
37987
|
+
return container.innerHTML.trim() || null;
|
|
37988
|
+
}
|
|
37989
|
+
return container;
|
|
37990
|
+
};
|
|
37991
|
+
/**
|
|
37992
|
+
* Returns the child nodes that belong to the default slot of an
|
|
37993
|
+
* option element, excluding any nodes that are assigned to named
|
|
37994
|
+
* slots.
|
|
37995
|
+
*
|
|
37996
|
+
* @param option - The `ion-select-option` element to extract default-slot nodes from.
|
|
37997
|
+
* @returns An array of default slot nodes, or `null` if none are found.
|
|
37998
|
+
*/
|
|
37999
|
+
const getOptionDefaultSlot = (option) => {
|
|
38000
|
+
const defaultSlotNodes = Array.from(option.childNodes).filter((node) => {
|
|
38001
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
38002
|
+
return !node.hasAttribute('slot');
|
|
38003
|
+
}
|
|
38004
|
+
return node.nodeType === Node.TEXT_NODE;
|
|
38005
|
+
});
|
|
38006
|
+
if (defaultSlotNodes.length === 0) {
|
|
38007
|
+
return null;
|
|
38008
|
+
}
|
|
38009
|
+
return defaultSlotNodes;
|
|
38010
|
+
};
|
|
38011
|
+
/**
|
|
38012
|
+
* Extracts plain text from only the default slot of an option,
|
|
38013
|
+
* excluding content assigned to named slots (start/end).
|
|
38014
|
+
*/
|
|
38015
|
+
const getDefaultSlotPlainText = (option) => {
|
|
38016
|
+
const texts = Array.from(option.childNodes)
|
|
38017
|
+
.filter((node) => {
|
|
38018
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
38019
|
+
return !node.hasAttribute('slot');
|
|
38020
|
+
}
|
|
38021
|
+
return node.nodeType === Node.TEXT_NODE;
|
|
38022
|
+
})
|
|
38023
|
+
.filter((node) => node.nodeType === Node.TEXT_NODE)
|
|
38024
|
+
.map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); })
|
|
38025
|
+
.filter((t) => t);
|
|
38026
|
+
return texts.join(' ');
|
|
38027
|
+
};
|
|
38028
|
+
/**
|
|
38029
|
+
* Extracts the rich content from an `ion-select-option`.
|
|
38030
|
+
* When `customHTMLEnabled` is `false`, only the plain text from the
|
|
38031
|
+
* default slot is read and the start and end slots are skipped.
|
|
38032
|
+
*
|
|
38033
|
+
* @param option - The `ion-select-option` element to extract content from.
|
|
38034
|
+
* @param customHTMLEnabled - Whether custom HTML rendering is enabled
|
|
38035
|
+
* via the `innerHTMLTemplatesEnabled` config.
|
|
38036
|
+
*/
|
|
38037
|
+
const extractOptionContent = (option, customHTMLEnabled) => {
|
|
38038
|
+
var _a, _b;
|
|
38039
|
+
if (!customHTMLEnabled) {
|
|
38040
|
+
return {
|
|
38041
|
+
content: getDefaultSlotPlainText(option),
|
|
38042
|
+
startContent: undefined,
|
|
38043
|
+
endContent: undefined,
|
|
38044
|
+
};
|
|
38045
|
+
}
|
|
38046
|
+
return {
|
|
38047
|
+
content: getOptionContent(option),
|
|
38048
|
+
startContent: (_a = getOptionContent(option, 'start')) !== null && _a !== void 0 ? _a : undefined,
|
|
38049
|
+
endContent: (_b = getOptionContent(option, 'end')) !== null && _b !== void 0 ? _b : undefined,
|
|
38050
|
+
};
|
|
38066
38051
|
};
|
|
38067
38052
|
let selectIds = 0;
|
|
38068
38053
|
const OPTION_CLASS = 'select-interface-option';
|
|
38069
38054
|
|
|
38070
|
-
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)}`;
|
|
38055
|
+
const ionicSelectModalMdCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-select-modal-ionic,.alert-radio-label-has-rich-content.sc-ion-select-modal-ionic,.alert-checkbox-label-has-rich-content.sc-ion-select-modal-ionic,.select-option-label-has-rich-content.sc-ion-select-modal-ionic{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:16px}.action-sheet-button-label-has-rich-content.sc-ion-select-modal-ionic,.alert-radio-label-has-rich-content.sc-ion-select-modal-ionic,.alert-checkbox-label-has-rich-content.sc-ion-select-modal-ionic,.select-option-content.sc-ion-select-modal-ionic{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-select-modal-ionic,.alert-checkbox-label-text.sc-ion-select-modal-ionic,.alert-radio-label-text.sc-ion-select-modal-ionic,.select-option-label-text.sc-ion-select-modal-ionic{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-select-modal-ionic,.select-option-end.sc-ion-select-modal-ionic{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-select-modal-ionic{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}.select-option-label.sc-ion-select-modal-ionic:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-select-modal-ionic{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-select-modal-ionic::part(label),ion-radio.select-option-has-rich-content.sc-ion-select-modal-ionic [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-select-modal-ionic::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-select-modal-ionic [part~="label"],.select-option-content.sc-ion-select-modal-ionic{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-select-modal-ionic>ion-avatar.sc-ion-select-modal-ionic,.select-option-end.sc-ion-select-modal-ionic>ion-avatar.sc-ion-select-modal-ionic{width:40px;height:40px}.select-option-start.sc-ion-select-modal-ionic>ion-icon.sc-ion-select-modal-ionic,.select-option-end.sc-ion-select-modal-ionic>ion-icon.sc-ion-select-modal-ionic{width:24px;height:24px}.select-option-start.sc-ion-select-modal-ionic>ion-img.sc-ion-select-modal-ionic,.select-option-start.sc-ion-select-modal-ionic>img.sc-ion-select-modal-ionic,.select-option-start.sc-ion-select-modal-ionic>svg.sc-ion-select-modal-ionic,.select-option-start.sc-ion-select-modal-ionic>ion-thumbnail.sc-ion-select-modal-ionic,.select-option-end.sc-ion-select-modal-ionic>ion-img.sc-ion-select-modal-ionic,.select-option-end.sc-ion-select-modal-ionic>img.sc-ion-select-modal-ionic,.select-option-end.sc-ion-select-modal-ionic>svg.sc-ion-select-modal-ionic,.select-option-end.sc-ion-select-modal-ionic>ion-thumbnail.sc-ion-select-modal-ionic{width:56px;height:56px}.select-option-start.sc-ion-select-modal-ionic>video.sc-ion-select-modal-ionic,.select-option-end.sc-ion-select-modal-ionic>video.sc-ion-select-modal-ionic{width:114px;height:56px}.sc-ion-select-modal-ionic-h{height:100%}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(container),ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic [part~="container"]{display:none}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(label),ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic [part~="label"]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-item.sc-ion-select-modal-ionic{--inner-border-width:0}.item-radio-checked.sc-ion-select-modal-ionic{--background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.08);--background-focused:var(--ion-color-primary, #0054e9);--background-focused-opacity:0.2;--background-hover:var(--ion-color-primary, #0054e9);--background-hover-opacity:0.12}.item-checkbox-checked.sc-ion-select-modal-ionic{--background-activated:var(--ion-item-color, var(--ion-text-color, #000));--background-focused:var(--ion-item-color, var(--ion-text-color, #000));--background-hover:var(--ion-item-color, var(--ion-text-color, #000));--color:var(--ion-color-primary, #0054e9)}`;
|
|
38071
38056
|
|
|
38072
|
-
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)}`;
|
|
38057
|
+
const selectModalIosCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-select-modal-ios,.alert-radio-label-has-rich-content.sc-ion-select-modal-ios,.alert-checkbox-label-has-rich-content.sc-ion-select-modal-ios,.select-option-label-has-rich-content.sc-ion-select-modal-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:16px}.action-sheet-button-label-has-rich-content.sc-ion-select-modal-ios,.alert-radio-label-has-rich-content.sc-ion-select-modal-ios,.alert-checkbox-label-has-rich-content.sc-ion-select-modal-ios,.select-option-content.sc-ion-select-modal-ios{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-select-modal-ios,.alert-checkbox-label-text.sc-ion-select-modal-ios,.alert-radio-label-text.sc-ion-select-modal-ios,.select-option-label-text.sc-ion-select-modal-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-select-modal-ios,.select-option-end.sc-ion-select-modal-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-select-modal-ios{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}.select-option-label.sc-ion-select-modal-ios:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-select-modal-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-select-modal-ios::part(label),ion-radio.select-option-has-rich-content.sc-ion-select-modal-ios [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-select-modal-ios::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-select-modal-ios [part~="label"],.select-option-content.sc-ion-select-modal-ios{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-select-modal-ios>ion-avatar.sc-ion-select-modal-ios,.select-option-start.sc-ion-select-modal-ios>ion-img.sc-ion-select-modal-ios,.select-option-start.sc-ion-select-modal-ios>ion-thumbnail.sc-ion-select-modal-ios,.select-option-start.sc-ion-select-modal-ios>img.sc-ion-select-modal-ios,.select-option-start.sc-ion-select-modal-ios>svg.sc-ion-select-modal-ios,.select-option-end.sc-ion-select-modal-ios>ion-avatar.sc-ion-select-modal-ios,.select-option-end.sc-ion-select-modal-ios>ion-img.sc-ion-select-modal-ios,.select-option-end.sc-ion-select-modal-ios>ion-thumbnail.sc-ion-select-modal-ios,.select-option-end.sc-ion-select-modal-ios>img.sc-ion-select-modal-ios,.select-option-end.sc-ion-select-modal-ios>svg.sc-ion-select-modal-ios{width:44px;height:44px}.select-option-start.sc-ion-select-modal-ios>ion-icon.sc-ion-select-modal-ios,.select-option-end.sc-ion-select-modal-ios>ion-icon.sc-ion-select-modal-ios{width:28px;height:28px}.action-sheet-button-label-text.sc-ion-select-modal-ios{-ms-flex-pack:center;justify-content:center}.select-option-has-rich-content.sc-ion-select-modal-ios{-webkit-padding-end:16px;padding-inline-end:16px}.sc-ion-select-modal-ios-h{height:100%}ion-item.sc-ion-select-modal-ios{--inner-padding-end:0}ion-radio.sc-ion-select-modal-ios::after{bottom:0;position:absolute;width:calc(100% - 0.9375rem - 16px);border-width:0px 0px 0.55px 0px;border-style:solid;border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));content:""}ion-radio.sc-ion-select-modal-ios::after{inset-inline-start:calc(0.9375rem + 16px)}`;
|
|
38073
38058
|
|
|
38074
|
-
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)}`;
|
|
38059
|
+
const selectModalMdCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-select-modal-md,.alert-radio-label-has-rich-content.sc-ion-select-modal-md,.alert-checkbox-label-has-rich-content.sc-ion-select-modal-md,.select-option-label-has-rich-content.sc-ion-select-modal-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:16px}.action-sheet-button-label-has-rich-content.sc-ion-select-modal-md,.alert-radio-label-has-rich-content.sc-ion-select-modal-md,.alert-checkbox-label-has-rich-content.sc-ion-select-modal-md,.select-option-content.sc-ion-select-modal-md{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-select-modal-md,.alert-checkbox-label-text.sc-ion-select-modal-md,.alert-radio-label-text.sc-ion-select-modal-md,.select-option-label-text.sc-ion-select-modal-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-select-modal-md,.select-option-end.sc-ion-select-modal-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-select-modal-md{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}.select-option-label.sc-ion-select-modal-md:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-select-modal-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-select-modal-md::part(label),ion-radio.select-option-has-rich-content.sc-ion-select-modal-md [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-select-modal-md::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-select-modal-md [part~="label"],.select-option-content.sc-ion-select-modal-md{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-select-modal-md>ion-avatar.sc-ion-select-modal-md,.select-option-end.sc-ion-select-modal-md>ion-avatar.sc-ion-select-modal-md{width:40px;height:40px}.select-option-start.sc-ion-select-modal-md>ion-icon.sc-ion-select-modal-md,.select-option-end.sc-ion-select-modal-md>ion-icon.sc-ion-select-modal-md{width:24px;height:24px}.select-option-start.sc-ion-select-modal-md>ion-img.sc-ion-select-modal-md,.select-option-start.sc-ion-select-modal-md>img.sc-ion-select-modal-md,.select-option-start.sc-ion-select-modal-md>svg.sc-ion-select-modal-md,.select-option-start.sc-ion-select-modal-md>ion-thumbnail.sc-ion-select-modal-md,.select-option-end.sc-ion-select-modal-md>ion-img.sc-ion-select-modal-md,.select-option-end.sc-ion-select-modal-md>img.sc-ion-select-modal-md,.select-option-end.sc-ion-select-modal-md>svg.sc-ion-select-modal-md,.select-option-end.sc-ion-select-modal-md>ion-thumbnail.sc-ion-select-modal-md{width:56px;height:56px}.select-option-start.sc-ion-select-modal-md>video.sc-ion-select-modal-md,.select-option-end.sc-ion-select-modal-md>video.sc-ion-select-modal-md{width:114px;height:56px}.sc-ion-select-modal-md-h{height:100%}ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md::part(container),ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md [part~="container"]{display:none}ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md::part(label),ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md [part~="label"]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-item.sc-ion-select-modal-md{--inner-border-width:0}.item-radio-checked.sc-ion-select-modal-md{--background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.08);--background-focused:var(--ion-color-primary, #0054e9);--background-focused-opacity:0.2;--background-hover:var(--ion-color-primary, #0054e9);--background-hover-opacity:0.12}.item-checkbox-checked.sc-ion-select-modal-md{--background-activated:var(--ion-item-color, var(--ion-text-color, #000));--background-focused:var(--ion-item-color, var(--ion-text-color, #000));--background-hover:var(--ion-item-color, var(--ion-text-color, #000));--color:var(--ion-color-primary, #0054e9)}`;
|
|
38075
38060
|
|
|
38076
38061
|
class SelectModal {
|
|
38077
38062
|
constructor(hostRef) {
|
|
@@ -38125,39 +38110,90 @@ class SelectModal {
|
|
|
38125
38110
|
}
|
|
38126
38111
|
}
|
|
38127
38112
|
renderRadioOptions() {
|
|
38113
|
+
const mode = getIonMode$1(this);
|
|
38128
38114
|
const checked = this.options.filter((o) => o.checked).map((o) => o.value)[0];
|
|
38129
|
-
return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, this.options.map((option) =>
|
|
38115
|
+
return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, this.options.map((option, index) => {
|
|
38116
|
+
var _a, _b;
|
|
38117
|
+
/**
|
|
38118
|
+
* Cast to `SelectOverlayOption` to access rich content
|
|
38119
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
38120
|
+
* that are passed through from `ion-select` but not
|
|
38121
|
+
* part of the public `SelectModalOption` interface.
|
|
38122
|
+
*/
|
|
38123
|
+
const richOption = option;
|
|
38124
|
+
const hasRichContent = !!richOption.startContent || !!richOption.endContent || !!richOption.description;
|
|
38125
|
+
const optionLabelOptions = {
|
|
38126
|
+
id: `modal-option-${index}`,
|
|
38127
|
+
label: richOption.text,
|
|
38128
|
+
startContent: richOption.startContent,
|
|
38129
|
+
endContent: richOption.endContent,
|
|
38130
|
+
description: richOption.description,
|
|
38131
|
+
};
|
|
38132
|
+
const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'radio', 'modal');
|
|
38133
|
+
const defaultJustify = getOverlayLabelJustify(mode, 'radio', 'modal');
|
|
38134
|
+
return (hAsync("ion-item", { lines: "none",
|
|
38130
38135
|
// TODO FW-4784
|
|
38131
|
-
|
|
38132
|
-
|
|
38133
|
-
|
|
38134
|
-
|
|
38135
|
-
|
|
38136
|
-
|
|
38137
|
-
|
|
38138
|
-
|
|
38139
|
-
|
|
38140
|
-
}
|
|
38141
|
-
|
|
38142
|
-
|
|
38143
|
-
this.pendingEnterTarget = null;
|
|
38144
|
-
if (shouldClose) {
|
|
38136
|
+
disabled: option.disabled, class: Object.assign({
|
|
38137
|
+
// TODO FW-4784
|
|
38138
|
+
'item-radio-checked': option.value === checked
|
|
38139
|
+
}, getClassMap(option.cssClass)) }, hAsync("ion-radio", { class: {
|
|
38140
|
+
'select-option-has-rich-content': hasRichContent,
|
|
38141
|
+
}, value: option.value, disabled: option.disabled, justify: (_a = richOption.justify) !== null && _a !== void 0 ? _a : defaultJustify, labelPlacement: (_b = richOption.labelPlacement) !== null && _b !== void 0 ? _b : defaultLabelPlacement, onClick: () => this.closeModal(), onKeyDown: (ev) => {
|
|
38142
|
+
if (ev.key === 'Enter' && !ev.repeat) {
|
|
38143
|
+
this.pendingEnterTarget = ev.currentTarget;
|
|
38144
|
+
}
|
|
38145
|
+
}, onKeyUp: (ev) => {
|
|
38146
|
+
if (ev.key === ' ') {
|
|
38147
|
+
// Space selects and dismisses in one press.
|
|
38145
38148
|
this.closeModal();
|
|
38146
38149
|
}
|
|
38147
|
-
|
|
38148
|
-
|
|
38150
|
+
else if (ev.key === 'Enter') {
|
|
38151
|
+
const shouldClose = this.pendingEnterTarget === ev.currentTarget;
|
|
38152
|
+
this.pendingEnterTarget = null;
|
|
38153
|
+
if (shouldClose) {
|
|
38154
|
+
this.closeModal();
|
|
38155
|
+
}
|
|
38156
|
+
}
|
|
38157
|
+
} }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
|
|
38158
|
+
})));
|
|
38149
38159
|
}
|
|
38150
38160
|
renderCheckboxOptions() {
|
|
38151
|
-
|
|
38161
|
+
const mode = getIonMode$1(this);
|
|
38162
|
+
return this.options.map((option, index) => {
|
|
38163
|
+
var _a, _b;
|
|
38164
|
+
/**
|
|
38165
|
+
* Cast to `SelectOverlayOption` to access rich content
|
|
38166
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
38167
|
+
* that are passed through from `ion-select` but not
|
|
38168
|
+
* part of the public `SelectModalOption` interface.
|
|
38169
|
+
*/
|
|
38170
|
+
const richOption = option;
|
|
38171
|
+
const hasRichContent = !!richOption.startContent || !!richOption.endContent || !!richOption.description;
|
|
38172
|
+
const optionLabelOptions = {
|
|
38173
|
+
id: `modal-option-${index}`,
|
|
38174
|
+
label: richOption.text,
|
|
38175
|
+
startContent: richOption.startContent,
|
|
38176
|
+
endContent: richOption.endContent,
|
|
38177
|
+
description: richOption.description,
|
|
38178
|
+
};
|
|
38179
|
+
const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'checkbox', 'modal');
|
|
38180
|
+
const defaultJustify = getOverlayLabelJustify(mode, 'checkbox', 'modal');
|
|
38181
|
+
return (hAsync("ion-item", {
|
|
38152
38182
|
// TODO FW-4784
|
|
38153
|
-
|
|
38154
|
-
|
|
38155
|
-
|
|
38156
|
-
|
|
38157
|
-
}
|
|
38183
|
+
disabled: option.disabled, class: Object.assign({
|
|
38184
|
+
// TODO FW-4784
|
|
38185
|
+
'item-checkbox-checked': option.checked
|
|
38186
|
+
}, getClassMap(option.cssClass))
|
|
38187
|
+
}, hAsync("ion-checkbox", { class: {
|
|
38188
|
+
'select-option-has-rich-content': hasRichContent,
|
|
38189
|
+
}, 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) => {
|
|
38190
|
+
this.setChecked(ev);
|
|
38191
|
+
this.callOptionHandler(ev);
|
|
38192
|
+
} }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
|
|
38193
|
+
});
|
|
38158
38194
|
}
|
|
38159
38195
|
render() {
|
|
38160
|
-
return (hAsync(Host, { key: '
|
|
38196
|
+
return (hAsync(Host, { key: '2cb1ae057b7a66f5d12c926f618f6b945f019803', class: getIonMode$1(this) }, hAsync("ion-header", { key: 'e41f1c4ad1c71dcc927d210502d6366cea894a14' }, hAsync("ion-toolbar", { key: '1a191dfc8980541469ee4d8996ba4de52cac1ac5' }, this.header !== undefined && hAsync("ion-title", { key: '14ab9cb7d41d15b982c6ccd8ba6cee0e9cb528d9' }, this.header), hAsync("ion-buttons", { key: '80451a2ed3a82138eb1575135cf2ebbd5e8f6e60', slot: "end" }, hAsync("ion-button", { key: '01a315cd739569f3c0b23a4d243d52b69b63dfa7', onClick: () => this.closeModal() }, this.cancelText)))), hAsync("ion-content", { key: 'd953101bae9a91f8108f7a5e411bb1e34338655d' }, hAsync("ion-list", { key: '171a5668afc67b03d2ee87e91cf400b17541bc7f' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
|
|
38161
38197
|
}
|
|
38162
38198
|
get el() { return getElement(this); }
|
|
38163
38199
|
static get style() { return {
|
|
@@ -38182,17 +38218,24 @@ class SelectModal {
|
|
|
38182
38218
|
|
|
38183
38219
|
const selectOptionCss = () => `:host{display:none}`;
|
|
38184
38220
|
|
|
38221
|
+
/**
|
|
38222
|
+
* @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
|
|
38223
|
+
*
|
|
38224
|
+
* @slot - Content is placed between the named slots if provided without a slot.
|
|
38225
|
+
* @slot start - Content is placed to the left of the select option text in LTR, and to the right in RTL.
|
|
38226
|
+
* @slot end - Content is placed to the right of the select option text in LTR, and to the left in RTL.
|
|
38227
|
+
*/
|
|
38185
38228
|
class SelectOption {
|
|
38186
38229
|
constructor(hostRef) {
|
|
38187
38230
|
registerInstance(this, hostRef);
|
|
38188
38231
|
this.inputId = `ion-selopt-${selectOptionIds++}`;
|
|
38189
38232
|
/**
|
|
38190
|
-
* If `true`, the user cannot interact with the select option.
|
|
38233
|
+
* If `true`, the user cannot interact with the select option.
|
|
38191
38234
|
*/
|
|
38192
38235
|
this.disabled = false;
|
|
38193
38236
|
}
|
|
38194
38237
|
render() {
|
|
38195
|
-
return hAsync(Host, { key: '
|
|
38238
|
+
return hAsync(Host, { key: '8b8bef0f5a55f18048708c34d3ea3ff0ff2f1d47', role: "option", id: this.inputId, class: getIonMode$1(this) });
|
|
38196
38239
|
}
|
|
38197
38240
|
get el() { return getElement(this); }
|
|
38198
38241
|
static get style() { return selectOptionCss(); }
|
|
@@ -38201,7 +38244,10 @@ class SelectOption {
|
|
|
38201
38244
|
"$tagName$": "ion-select-option",
|
|
38202
38245
|
"$members$": {
|
|
38203
38246
|
"disabled": [4],
|
|
38204
|
-
"value": [8]
|
|
38247
|
+
"value": [8],
|
|
38248
|
+
"description": [1],
|
|
38249
|
+
"labelPlacement": [1, "label-placement"],
|
|
38250
|
+
"justify": [1]
|
|
38205
38251
|
},
|
|
38206
38252
|
"$listeners$": undefined,
|
|
38207
38253
|
"$lazyBundleId$": "-",
|
|
@@ -38210,9 +38256,9 @@ class SelectOption {
|
|
|
38210
38256
|
}
|
|
38211
38257
|
let selectOptionIds = 0;
|
|
38212
38258
|
|
|
38213
|
-
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}`;
|
|
38259
|
+
const selectPopoverIosCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-select-popover-ios,.alert-radio-label-has-rich-content.sc-ion-select-popover-ios,.alert-checkbox-label-has-rich-content.sc-ion-select-popover-ios,.select-option-label-has-rich-content.sc-ion-select-popover-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:16px}.action-sheet-button-label-has-rich-content.sc-ion-select-popover-ios,.alert-radio-label-has-rich-content.sc-ion-select-popover-ios,.alert-checkbox-label-has-rich-content.sc-ion-select-popover-ios,.select-option-content.sc-ion-select-popover-ios{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-select-popover-ios,.alert-checkbox-label-text.sc-ion-select-popover-ios,.alert-radio-label-text.sc-ion-select-popover-ios,.select-option-label-text.sc-ion-select-popover-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-select-popover-ios,.select-option-end.sc-ion-select-popover-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-select-popover-ios{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}.select-option-label.sc-ion-select-popover-ios:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-select-popover-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-select-popover-ios::part(label),ion-radio.select-option-has-rich-content.sc-ion-select-popover-ios [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-select-popover-ios::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-select-popover-ios [part~="label"],.select-option-content.sc-ion-select-popover-ios{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-select-popover-ios>ion-avatar.sc-ion-select-popover-ios,.select-option-start.sc-ion-select-popover-ios>ion-img.sc-ion-select-popover-ios,.select-option-start.sc-ion-select-popover-ios>ion-thumbnail.sc-ion-select-popover-ios,.select-option-start.sc-ion-select-popover-ios>img.sc-ion-select-popover-ios,.select-option-start.sc-ion-select-popover-ios>svg.sc-ion-select-popover-ios,.select-option-end.sc-ion-select-popover-ios>ion-avatar.sc-ion-select-popover-ios,.select-option-end.sc-ion-select-popover-ios>ion-img.sc-ion-select-popover-ios,.select-option-end.sc-ion-select-popover-ios>ion-thumbnail.sc-ion-select-popover-ios,.select-option-end.sc-ion-select-popover-ios>img.sc-ion-select-popover-ios,.select-option-end.sc-ion-select-popover-ios>svg.sc-ion-select-popover-ios{width:44px;height:44px}.select-option-start.sc-ion-select-popover-ios>ion-icon.sc-ion-select-popover-ios,.select-option-end.sc-ion-select-popover-ios>ion-icon.sc-ion-select-popover-ios{width:28px;height:28px}.action-sheet-button-label-text.sc-ion-select-popover-ios{-ms-flex-pack:center;justify-content:center}.select-option-has-rich-content.sc-ion-select-popover-ios{-webkit-padding-end:16px;padding-inline-end:16px}.sc-ion-select-popover-ios-h ion-list.sc-ion-select-popover-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-list-header.sc-ion-select-popover-ios,ion-label.sc-ion-select-popover-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-select-popover-ios-h{overflow-y:auto}`;
|
|
38214
38260
|
|
|
38215
|
-
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)}`;
|
|
38261
|
+
const selectPopoverMdCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-select-popover-md,.alert-radio-label-has-rich-content.sc-ion-select-popover-md,.alert-checkbox-label-has-rich-content.sc-ion-select-popover-md,.select-option-label-has-rich-content.sc-ion-select-popover-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:16px}.action-sheet-button-label-has-rich-content.sc-ion-select-popover-md,.alert-radio-label-has-rich-content.sc-ion-select-popover-md,.alert-checkbox-label-has-rich-content.sc-ion-select-popover-md,.select-option-content.sc-ion-select-popover-md{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-select-popover-md,.alert-checkbox-label-text.sc-ion-select-popover-md,.alert-radio-label-text.sc-ion-select-popover-md,.select-option-label-text.sc-ion-select-popover-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-select-popover-md,.select-option-end.sc-ion-select-popover-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-select-popover-md{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}.select-option-label.sc-ion-select-popover-md:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-select-popover-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-select-popover-md::part(label),ion-radio.select-option-has-rich-content.sc-ion-select-popover-md [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-select-popover-md::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-select-popover-md [part~="label"],.select-option-content.sc-ion-select-popover-md{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-select-popover-md>ion-avatar.sc-ion-select-popover-md,.select-option-end.sc-ion-select-popover-md>ion-avatar.sc-ion-select-popover-md{width:40px;height:40px}.select-option-start.sc-ion-select-popover-md>ion-icon.sc-ion-select-popover-md,.select-option-end.sc-ion-select-popover-md>ion-icon.sc-ion-select-popover-md{width:24px;height:24px}.select-option-start.sc-ion-select-popover-md>ion-img.sc-ion-select-popover-md,.select-option-start.sc-ion-select-popover-md>img.sc-ion-select-popover-md,.select-option-start.sc-ion-select-popover-md>svg.sc-ion-select-popover-md,.select-option-start.sc-ion-select-popover-md>ion-thumbnail.sc-ion-select-popover-md,.select-option-end.sc-ion-select-popover-md>ion-img.sc-ion-select-popover-md,.select-option-end.sc-ion-select-popover-md>img.sc-ion-select-popover-md,.select-option-end.sc-ion-select-popover-md>svg.sc-ion-select-popover-md,.select-option-end.sc-ion-select-popover-md>ion-thumbnail.sc-ion-select-popover-md{width:56px;height:56px}.select-option-start.sc-ion-select-popover-md>video.sc-ion-select-popover-md,.select-option-end.sc-ion-select-popover-md>video.sc-ion-select-popover-md{width:114px;height:56px}.sc-ion-select-popover-md-h ion-list.sc-ion-select-popover-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-list-header.sc-ion-select-popover-md,ion-label.sc-ion-select-popover-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-select-popover-md-h{overflow-y:auto}ion-list.sc-ion-select-popover-md ion-radio.sc-ion-select-popover-md::part(container),ion-list.sc-ion-select-popover-md ion-radio.sc-ion-select-popover-md [part~="container"]{display:none}ion-list.sc-ion-select-popover-md ion-radio.sc-ion-select-popover-md::part(label),ion-list.sc-ion-select-popover-md ion-radio.sc-ion-select-popover-md [part~="label"]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-item.sc-ion-select-popover-md{--inner-border-width:0}.item-radio-checked.sc-ion-select-popover-md{--background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.08);--background-focused:var(--ion-color-primary, #0054e9);--background-focused-opacity:0.2;--background-hover:var(--ion-color-primary, #0054e9);--background-hover-opacity:0.12}.item-checkbox-checked.sc-ion-select-popover-md{--background-activated:var(--ion-item-color, var(--ion-text-color, #000));--background-focused:var(--ion-item-color, var(--ion-text-color, #000));--background-hover:var(--ion-item-color, var(--ion-text-color, #000));--color:var(--ion-color-primary, #0054e9)}`;
|
|
38216
38262
|
|
|
38217
38263
|
/**
|
|
38218
38264
|
* @internal
|
|
@@ -38286,41 +38332,91 @@ class SelectPopover {
|
|
|
38286
38332
|
}
|
|
38287
38333
|
}
|
|
38288
38334
|
renderCheckboxOptions(options) {
|
|
38289
|
-
|
|
38335
|
+
const mode = getIonMode$1(this);
|
|
38336
|
+
return options.map((option, index) => {
|
|
38337
|
+
var _a, _b;
|
|
38338
|
+
/**
|
|
38339
|
+
* Cast to `SelectOverlayOption` to access rich content
|
|
38340
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
38341
|
+
* that are passed through from `ion-select` but not
|
|
38342
|
+
* part of the public `SelectPopoverOption` interface.
|
|
38343
|
+
*/
|
|
38344
|
+
const richOption = option;
|
|
38345
|
+
const hasRichContent = !!richOption.startContent || !!richOption.endContent || !!richOption.description;
|
|
38346
|
+
const optionLabelOptions = {
|
|
38347
|
+
id: `popover-option-${index}`,
|
|
38348
|
+
label: richOption.text,
|
|
38349
|
+
startContent: richOption.startContent,
|
|
38350
|
+
endContent: richOption.endContent,
|
|
38351
|
+
description: richOption.description,
|
|
38352
|
+
};
|
|
38353
|
+
const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'checkbox');
|
|
38354
|
+
const defaultJustify = getOverlayLabelJustify(mode, 'checkbox');
|
|
38355
|
+
return (hAsync("ion-item", {
|
|
38290
38356
|
// TODO FW-4784
|
|
38291
|
-
|
|
38292
|
-
|
|
38293
|
-
|
|
38294
|
-
|
|
38295
|
-
}
|
|
38357
|
+
disabled: option.disabled, class: Object.assign({
|
|
38358
|
+
// TODO FW-4784
|
|
38359
|
+
'item-checkbox-checked': option.checked
|
|
38360
|
+
}, getClassMap(option.cssClass))
|
|
38361
|
+
}, hAsync("ion-checkbox", { class: {
|
|
38362
|
+
'select-option-has-rich-content': hasRichContent,
|
|
38363
|
+
}, 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) => {
|
|
38364
|
+
this.setChecked(ev);
|
|
38365
|
+
this.callOptionHandler(ev);
|
|
38366
|
+
} }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
|
|
38367
|
+
});
|
|
38296
38368
|
}
|
|
38297
38369
|
renderRadioOptions(options) {
|
|
38370
|
+
const mode = getIonMode$1(this);
|
|
38298
38371
|
const checked = options.filter((o) => o.checked).map((o) => o.value)[0];
|
|
38299
|
-
return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, options.map((option) =>
|
|
38372
|
+
return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, options.map((option, index) => {
|
|
38373
|
+
var _a, _b;
|
|
38374
|
+
/**
|
|
38375
|
+
* Cast to `SelectOverlayOption` to access rich content
|
|
38376
|
+
* fields (`startContent`, `endContent`, `description`)
|
|
38377
|
+
* that are passed through from `ion-select` but not
|
|
38378
|
+
* part of the public `SelectPopoverOption` interface.
|
|
38379
|
+
*/
|
|
38380
|
+
const richOption = option;
|
|
38381
|
+
const hasRichContent = !!richOption.startContent || !!richOption.endContent || !!richOption.description;
|
|
38382
|
+
const optionLabelOptions = {
|
|
38383
|
+
id: `popover-option-${index}`,
|
|
38384
|
+
label: richOption.text,
|
|
38385
|
+
startContent: richOption.startContent,
|
|
38386
|
+
endContent: richOption.endContent,
|
|
38387
|
+
description: richOption.description,
|
|
38388
|
+
};
|
|
38389
|
+
return (hAsync("ion-item", {
|
|
38300
38390
|
// TODO FW-4784
|
|
38301
|
-
|
|
38302
|
-
|
|
38303
|
-
|
|
38304
|
-
|
|
38305
|
-
|
|
38306
|
-
|
|
38307
|
-
|
|
38308
|
-
|
|
38309
|
-
|
|
38310
|
-
|
|
38311
|
-
|
|
38312
|
-
|
|
38313
|
-
|
|
38314
|
-
if (shouldDismiss) {
|
|
38391
|
+
disabled: option.disabled, class: Object.assign({
|
|
38392
|
+
// TODO FW-4784
|
|
38393
|
+
'item-radio-checked': option.value === checked
|
|
38394
|
+
}, getClassMap(option.cssClass))
|
|
38395
|
+
}, hAsync("ion-radio", { class: {
|
|
38396
|
+
'select-option-has-rich-content': hasRichContent,
|
|
38397
|
+
}, value: option.value, disabled: option.disabled, justify: (_a = richOption.justify) !== null && _a !== void 0 ? _a : getOverlayLabelJustify(mode, 'radio'), labelPlacement: (_b = richOption.labelPlacement) !== null && _b !== void 0 ? _b : getOverlayLabelPlacement(mode, 'radio'), onClick: () => this.dismissParentPopover(), onKeyDown: (ev) => {
|
|
38398
|
+
if (ev.key === 'Enter' && !ev.repeat) {
|
|
38399
|
+
this.pendingEnterTarget = ev.currentTarget;
|
|
38400
|
+
}
|
|
38401
|
+
}, onKeyUp: (ev) => {
|
|
38402
|
+
if (ev.key === ' ') {
|
|
38403
|
+
// Space selects and dismisses in one press.
|
|
38315
38404
|
this.dismissParentPopover();
|
|
38316
38405
|
}
|
|
38317
|
-
|
|
38318
|
-
|
|
38406
|
+
else if (ev.key === 'Enter') {
|
|
38407
|
+
const shouldDismiss = this.pendingEnterTarget === ev.currentTarget;
|
|
38408
|
+
this.pendingEnterTarget = null;
|
|
38409
|
+
if (shouldDismiss) {
|
|
38410
|
+
this.dismissParentPopover();
|
|
38411
|
+
}
|
|
38412
|
+
}
|
|
38413
|
+
} }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
|
|
38414
|
+
})));
|
|
38319
38415
|
}
|
|
38320
38416
|
render() {
|
|
38321
38417
|
const { header, message, options, subHeader } = this;
|
|
38322
38418
|
const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
|
|
38323
|
-
return (hAsync(Host, { key: '
|
|
38419
|
+
return (hAsync(Host, { key: 'd0c107e0ca78955a3cfcd9f098a527fb35eff14d', class: getIonMode$1(this) }, hAsync("ion-list", { key: '1e103312e22bf78d2201a0f88cc4fed789f62a2b' }, header !== undefined && hAsync("ion-list-header", { key: '657439905dc480112ed8d7f8d4a01464724de2bd' }, header), hasSubHeaderOrMessage && (hAsync("ion-item", { key: 'e0eaa0250bf233cf846adba5ddc141bf3430c2a8' }, hAsync("ion-label", { key: 'ad1cff877f9d582fbc64f9049603146fd1a1a6f9', class: "ion-text-wrap" }, subHeader !== undefined && hAsync("h3", { key: 'ead921d395b614a99c89a8ffe2a102a620f80767' }, subHeader), message !== undefined && hAsync("p", { key: '3a47e7091528930f33324ccd04d6734217155244' }, message)))), this.renderOptions(options))));
|
|
38324
38420
|
}
|
|
38325
38421
|
get el() { return getElement(this); }
|
|
38326
38422
|
static get style() { return {
|
|
@@ -38370,11 +38466,11 @@ class SkeletonText {
|
|
|
38370
38466
|
const animated = this.animated && config.getBoolean('animated', true);
|
|
38371
38467
|
const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
|
|
38372
38468
|
const mode = getIonMode$1(this);
|
|
38373
|
-
return (hAsync(Host, { key: '
|
|
38469
|
+
return (hAsync(Host, { key: '887d958d982345ce610730ab5c9ae35010430f75', class: {
|
|
38374
38470
|
[mode]: true,
|
|
38375
38471
|
'skeleton-text-animated': animated,
|
|
38376
38472
|
'in-media': inMedia,
|
|
38377
|
-
} }, hAsync("span", { key: '
|
|
38473
|
+
} }, hAsync("span", { key: 'a184f4b9780a2aada0a16729109ac81436e9c9e1' }, "\u00A0")));
|
|
38378
38474
|
}
|
|
38379
38475
|
get el() { return getElement(this); }
|
|
38380
38476
|
static get style() { return skeletonTextCss(); }
|
|
@@ -38426,7 +38522,7 @@ class Spinner {
|
|
|
38426
38522
|
svgs.push(buildLine(spinner, duration, i, spinner.lines));
|
|
38427
38523
|
}
|
|
38428
38524
|
}
|
|
38429
|
-
return (hAsync(Host, { key: '
|
|
38525
|
+
return (hAsync(Host, { key: 'c35ebd01186e860acb9cac260193f0836424fdf4', class: createColorClasses$1(self.color, {
|
|
38430
38526
|
[mode]: true,
|
|
38431
38527
|
[`spinner-${spinnerName}`]: true,
|
|
38432
38528
|
'spinner-paused': self.paused || config.getBoolean('_testing'),
|
|
@@ -38525,12 +38621,12 @@ class SplitPane {
|
|
|
38525
38621
|
}
|
|
38526
38622
|
render() {
|
|
38527
38623
|
const mode = getIonMode$1(this);
|
|
38528
|
-
return (hAsync(Host, { key: '
|
|
38624
|
+
return (hAsync(Host, { key: '694e989fafcfe2453e0a83b3cb736efaa1eb4fec', class: {
|
|
38529
38625
|
[mode]: true,
|
|
38530
38626
|
// Used internally for styling
|
|
38531
38627
|
[`split-pane-${mode}`]: true,
|
|
38532
38628
|
'split-pane-visible': this.visible,
|
|
38533
|
-
} }, hAsync("slot", { key: '
|
|
38629
|
+
} }, hAsync("slot", { key: 'dde7e9382b62cc11971aa233cf98c2314ae4f720' })));
|
|
38534
38630
|
}
|
|
38535
38631
|
get el() { return getElement(this); }
|
|
38536
38632
|
static get watchers() { return {
|
|
@@ -38602,10 +38698,10 @@ class Tab {
|
|
|
38602
38698
|
}
|
|
38603
38699
|
render() {
|
|
38604
38700
|
const { tab, active, component } = this;
|
|
38605
|
-
return (hAsync(Host, { key: '
|
|
38701
|
+
return (hAsync(Host, { key: '745262368a7f45244da459f4fa1730a46dd3e257', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
|
|
38606
38702
|
'ion-page': component === undefined,
|
|
38607
38703
|
'tab-hidden': !active,
|
|
38608
|
-
} }, hAsync("slot", { key: '
|
|
38704
|
+
} }, hAsync("slot", { key: '823d09a6f93bf7c0dc74f2b8717d1d3a62df1ad8' })));
|
|
38609
38705
|
}
|
|
38610
38706
|
get el() { return getElement(this); }
|
|
38611
38707
|
static get watchers() { return {
|
|
@@ -38719,11 +38815,11 @@ class TabBar {
|
|
|
38719
38815
|
const { color, translucent, keyboardVisible } = this;
|
|
38720
38816
|
const mode = getIonMode$1(this);
|
|
38721
38817
|
const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
|
|
38722
|
-
return (hAsync(Host, { key: '
|
|
38818
|
+
return (hAsync(Host, { key: '148f65df0818e9d220a9b46db74cb89ab94e62d2', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
|
|
38723
38819
|
[mode]: true,
|
|
38724
38820
|
'tab-bar-translucent': translucent,
|
|
38725
38821
|
'tab-bar-hidden': shouldHide,
|
|
38726
|
-
}) }, hAsync("slot", { key: '
|
|
38822
|
+
}) }, hAsync("slot", { key: 'a64e235f3703662e2dd7a834f752cc5b1490adbc' })));
|
|
38727
38823
|
}
|
|
38728
38824
|
get el() { return getElement(this); }
|
|
38729
38825
|
static get watchers() { return {
|
|
@@ -38821,7 +38917,7 @@ class TabButton {
|
|
|
38821
38917
|
rel,
|
|
38822
38918
|
target,
|
|
38823
38919
|
};
|
|
38824
|
-
return (hAsync(Host, { key: '
|
|
38920
|
+
return (hAsync(Host, { key: '1034b5a928ecec49bd8efec3730ea1b11a579cf3', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
|
|
38825
38921
|
[mode]: true,
|
|
38826
38922
|
'tab-selected': selected,
|
|
38827
38923
|
'tab-disabled': disabled,
|
|
@@ -38833,7 +38929,7 @@ class TabButton {
|
|
|
38833
38929
|
'ion-activatable': true,
|
|
38834
38930
|
'ion-selectable': true,
|
|
38835
38931
|
'ion-focusable': true,
|
|
38836
|
-
} }, hAsync("a", Object.assign({ key: '
|
|
38932
|
+
} }, hAsync("a", Object.assign({ key: '4cc8e695425956ffc7622af27c1b88a45f8a0c68' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), hAsync("span", { key: 'c529c166f557e1a5c744873c075b564c49786a2c', class: "button-inner" }, hAsync("slot", { key: 'f832355934d80267cd6e81e58b9c5afce0b42907' })), mode === 'md' && hAsync("ion-ripple-effect", { key: '90e79bdf38ba1cd89fca9ce63465e26a29b49316', type: "unbounded" }))));
|
|
38837
38933
|
}
|
|
38838
38934
|
get el() { return getElement(this); }
|
|
38839
38935
|
static get style() { return {
|
|
@@ -39024,7 +39120,7 @@ class Tabs {
|
|
|
39024
39120
|
return Array.from(this.el.querySelectorAll('ion-tab'));
|
|
39025
39121
|
}
|
|
39026
39122
|
render() {
|
|
39027
|
-
return (hAsync(Host, { key: '
|
|
39123
|
+
return (hAsync(Host, { key: 'ba04a29fdd02d7c758cbaa98cfc589949872d832', onIonTabButtonClick: this.onTabClicked }, hAsync("slot", { key: 'd5794140152e2c251e567eeb06afc392af74749d', name: "top" }), hAsync("div", { key: '26fb83786637fe7288901fbbdb3694b8bc94329f', class: "tabs-inner" }, hAsync("slot", { key: '60c663a8647e684455b533eaf5fa3908f9333ae9' })), hAsync("slot", { key: '2d9f7d07c8cdc72f5df200fa71fa56a9dd822c4c', name: "bottom" })));
|
|
39028
39124
|
}
|
|
39029
39125
|
get el() { return getElement(this); }
|
|
39030
39126
|
static get style() { return tabsCss(); }
|
|
@@ -39064,9 +39160,9 @@ class Text {
|
|
|
39064
39160
|
}
|
|
39065
39161
|
render() {
|
|
39066
39162
|
const mode = getIonMode$1(this);
|
|
39067
|
-
return (hAsync(Host, { key: '
|
|
39163
|
+
return (hAsync(Host, { key: '41ed8da617ed0e07bbfe96e32a000e1c6503e24e', class: createColorClasses$1(this.color, {
|
|
39068
39164
|
[mode]: true,
|
|
39069
|
-
}) }, hAsync("slot", { key: '
|
|
39165
|
+
}) }, hAsync("slot", { key: 'db8de04a2493537b3037f276b03abd92dfa56847' })));
|
|
39070
39166
|
}
|
|
39071
39167
|
static get style() { return textCss(); }
|
|
39072
39168
|
static get cmpMeta() { return {
|
|
@@ -39527,7 +39623,7 @@ class Textarea {
|
|
|
39527
39623
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
39528
39624
|
*/
|
|
39529
39625
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
|
|
39530
|
-
return (hAsync(Host, { key: '
|
|
39626
|
+
return (hAsync(Host, { key: 'eca1dfed53189408f614661ef3902cdb73d5f5de', class: createColorClasses$1(this.color, {
|
|
39531
39627
|
[mode]: true,
|
|
39532
39628
|
'has-value': hasValue,
|
|
39533
39629
|
'has-focus': hasFocus,
|
|
@@ -39536,7 +39632,7 @@ class Textarea {
|
|
|
39536
39632
|
[`textarea-shape-${shape}`]: shape !== undefined,
|
|
39537
39633
|
[`textarea-label-placement-${labelPlacement}`]: true,
|
|
39538
39634
|
'textarea-disabled': disabled,
|
|
39539
|
-
}) }, hAsync("label", { key: '
|
|
39635
|
+
}) }, hAsync("label", { key: 'd4d835ffedbf8b6de192096e21167ec4f7e01d30', class: "textarea-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: '39b03e26c23473de31a0237543eaf1e0875e6ed9', class: "textarea-wrapper-inner" }, hAsync("div", { key: 'e9e0997e7dc6d25f09e8439d81e138590c33a151', class: "start-slot-wrapper" }, hAsync("slot", { key: '2d88aace11d74196758e40af27a777eebb270019', name: "start" })), hAsync("div", { key: '8434424404f9fe707f9209ac6495a33bae060538', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, hAsync("textarea", Object.assign({ key: '5bb8eaeba76c39bccadb7c041a10fb077c422dcc', class: "native-textarea", ref: (el) => (this.nativeInput = el), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined }, this.inheritedAttributes), value)), hAsync("div", { key: '107707676552f8faca3e708285cc3266061a0394', class: "end-slot-wrapper" }, hAsync("slot", { key: 'dc890ffdce898f3d39a315e7bc432840559be466', name: "end" }))), shouldRenderHighlight && hAsync("div", { key: '4554ad09ac0908cea2e90bfa2301b4cd80ac7242', class: "textarea-highlight" })), this.renderBottomContent()));
|
|
39540
39636
|
}
|
|
39541
39637
|
get el() { return getElement(this); }
|
|
39542
39638
|
static get watchers() { return {
|
|
@@ -39605,7 +39701,7 @@ class Thumbnail {
|
|
|
39605
39701
|
registerInstance(this, hostRef);
|
|
39606
39702
|
}
|
|
39607
39703
|
render() {
|
|
39608
|
-
return (hAsync(Host, { key: '
|
|
39704
|
+
return (hAsync(Host, { key: '833e947c683b482a78f8f0df8c9a68e99478bbaa', class: getIonMode$1(this) }, hAsync("slot", { key: '6d1e9e686db88d91379f14121058dbf035d8ded2' })));
|
|
39609
39705
|
}
|
|
39610
39706
|
static get style() { return thumbnailCss(); }
|
|
39611
39707
|
static get cmpMeta() { return {
|
|
@@ -40465,9 +40561,9 @@ class Toast {
|
|
|
40465
40561
|
if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
|
|
40466
40562
|
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);
|
|
40467
40563
|
}
|
|
40468
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
40564
|
+
return (hAsync(Host, Object.assign({ key: '2acb2cd2e12ea0082986495929e4a596d4da2f38', tabindex: "-1" }, this.htmlAttributes, { style: {
|
|
40469
40565
|
zIndex: `${60000 + this.overlayIndex}`,
|
|
40470
|
-
}, 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: '
|
|
40566
|
+
}, class: createColorClasses$1(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), hAsync("div", { key: '8b24ba5d3d51d1ab94b9bf6bb5d6e4b8bb3248a7', class: wrapperClass, part: "wrapper" }, hAsync("div", { key: 'e1ebdf4f0425cc7b1e2688667ee9a2b3c545804a', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (hAsync("ion-icon", { key: '552b1ab8f4e72882cc8e878579c7a594119677e1', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), hAsync("div", { key: '8ac8d64f632fbedadb180132c83043474466bee0', class: "toast-content", part: "content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
|
|
40471
40567
|
}
|
|
40472
40568
|
get el() { return getElement(this); }
|
|
40473
40569
|
static get watchers() { return {
|
|
@@ -40785,7 +40881,7 @@ class Toggle {
|
|
|
40785
40881
|
const value = this.getValue();
|
|
40786
40882
|
const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
|
|
40787
40883
|
renderHiddenInput(true, el, name, checked ? value : '', disabled);
|
|
40788
|
-
return (hAsync(Host, { key: '
|
|
40884
|
+
return (hAsync(Host, { key: 'ab093ddb505af61685cbb8571af1e765fc0292f8', role: "switch", "aria-checked": `${checked}`, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick, "aria-labelledby": hasLabel ? inputLabelId : null, "aria-label": inheritedAttributes['aria-label'] || null, "aria-disabled": disabled ? 'true' : null, "aria-required": required ? 'true' : undefined, tabindex: disabled ? undefined : 0, onKeyDown: this.onKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, class: createColorClasses$1(color, {
|
|
40789
40885
|
[mode]: true,
|
|
40790
40886
|
'in-item': hostContext('ion-item', el),
|
|
40791
40887
|
'toggle-activated': activated,
|
|
@@ -40795,10 +40891,10 @@ class Toggle {
|
|
|
40795
40891
|
[`toggle-alignment-${alignment}`]: alignment !== undefined,
|
|
40796
40892
|
[`toggle-label-placement-${labelPlacement}`]: true,
|
|
40797
40893
|
[`toggle-${rtl}`]: true,
|
|
40798
|
-
}) }, hAsync("label", { key: '
|
|
40894
|
+
}) }, hAsync("label", { key: 'b4b05e458fcbc767e4392ae43e647b075780cad0', class: "toggle-wrapper", htmlFor: inputId }, hAsync("input", Object.assign({ key: 'c09100447011c51d5b49b4400ec7d72012e3bc6f', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, required: required }, inheritedAttributes)), hAsync("div", { key: '71cf059a999ae572a20127b76907e010ace486ad', class: {
|
|
40799
40895
|
'label-text-wrapper': true,
|
|
40800
40896
|
'label-text-wrapper-hidden': !hasLabel,
|
|
40801
|
-
}, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: '
|
|
40897
|
+
}, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: 'c480b96a0ddd926568f73291d71253d6f74438c7' }), this.renderHintText()), hAsync("div", { key: '96a2cbd1673e051a78f8b2b16535ecd3f0ed4339', class: "native-wrapper" }, this.renderToggleControl()))));
|
|
40802
40898
|
}
|
|
40803
40899
|
get el() { return getElement(this); }
|
|
40804
40900
|
static get watchers() { return {
|
|
@@ -40910,10 +41006,10 @@ class Toolbar {
|
|
|
40910
41006
|
this.childrenStyles.forEach((value) => {
|
|
40911
41007
|
Object.assign(childStyles, value);
|
|
40912
41008
|
});
|
|
40913
|
-
return (hAsync(Host, { key: '
|
|
41009
|
+
return (hAsync(Host, { key: '40bad6fa7e94262438da4bbe037dcf8a5fa2df22', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
|
|
40914
41010
|
[mode]: true,
|
|
40915
41011
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
40916
|
-
})) }, hAsync("div", { key: '
|
|
41012
|
+
})) }, hAsync("div", { key: 'df44c9f0fe3958116ab860b0dad79c53b89f6c59', class: "toolbar-background", part: "background" }), hAsync("div", { key: '2169ffa576875b8d5624211cc0b4bf86191562bc', class: "toolbar-container", part: "container" }, hAsync("slot", { key: 'c8910dcf1ce98ab427fd89c3396a67c2a75bdd07', name: "start" }), hAsync("slot", { key: '05da24d5ef96b9eebd83b534ce02c1f7bcd06680', name: "secondary" }), hAsync("div", { key: '090fea1541e7e2b6ad74a6ded4eadffdb471ccce', class: "toolbar-content", part: "content" }, hAsync("slot", { key: '507e143f92f6fa59ff23d94026411fa2c74f2f8e' })), hAsync("slot", { key: 'f79fdee472e657e26a910cb89d7551943e40e440', name: "primary" }), hAsync("slot", { key: 'dd40fe9ed490cf4346c642e195fdb524dc6cc4f5', name: "end" }))));
|
|
40917
41013
|
}
|
|
40918
41014
|
get el() { return getElement(this); }
|
|
40919
41015
|
static get style() { return {
|
|
@@ -40959,11 +41055,11 @@ class ToolbarTitle {
|
|
|
40959
41055
|
render() {
|
|
40960
41056
|
const mode = getIonMode$1(this);
|
|
40961
41057
|
const size = this.getSize();
|
|
40962
|
-
return (hAsync(Host, { key: '
|
|
41058
|
+
return (hAsync(Host, { key: 'd9317e8e66cb6112717f5a9c252658777efbd873', class: createColorClasses$1(this.color, {
|
|
40963
41059
|
[mode]: true,
|
|
40964
41060
|
[`title-${size}`]: true,
|
|
40965
41061
|
'title-rtl': document.dir === 'rtl',
|
|
40966
|
-
}) }, hAsync("div", { key: '
|
|
41062
|
+
}) }, hAsync("div", { key: 'a4d011d6d409bf006d8efe33667002edb109820a', class: "toolbar-title" }, hAsync("slot", { key: '4ca3303b957a0e5387f1e9058e5adb4c6275afcc' }))));
|
|
40967
41063
|
}
|
|
40968
41064
|
get el() { return getElement(this); }
|
|
40969
41065
|
static get watchers() { return {
|
|
@@ -41043,10 +41139,8 @@ registerComponents([
|
|
|
41043
41139
|
Nav,
|
|
41044
41140
|
NavLink,
|
|
41045
41141
|
Note,
|
|
41046
|
-
Picker$1,
|
|
41047
41142
|
Picker,
|
|
41048
41143
|
PickerColumn,
|
|
41049
|
-
PickerColumnCmp,
|
|
41050
41144
|
PickerColumnOption,
|
|
41051
41145
|
Popover,
|
|
41052
41146
|
ProgressBar,
|