@ionic/core 8.8.19 → 8.8.20-dev.11787158518.168a2fea
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-icon.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-link.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-picker.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-route-redirect.js +1 -1
- package/components/ion-route.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--m5cCjbK.js +4 -0
- package/components/p-1jI5oW-W.js +4 -0
- package/components/{p-6J0vc7Z8.js → p-63OhffQv.js} +1 -1
- package/components/p-8FN7p701.js +4 -0
- package/components/p-B4uHHhPK.js +4 -0
- package/components/p-BMPN55of.js +4 -0
- package/components/p-BNJOu1Q2.js +4 -0
- package/components/p-BOvLNVKq.js +4 -0
- package/components/p-BSQPZ79H.js +4 -0
- package/components/p-BeamQXHF.js +4 -0
- package/components/p-BhamHSw3.js +4 -0
- package/components/p-Bjig0DJK.js +4 -0
- package/components/p-BjluhQMI.js +4 -0
- package/components/p-BlsIikdZ.js +4 -0
- package/components/p-BqPNzJf6.js +4 -0
- package/components/p-BrD9Xv62.js +4 -0
- package/components/p-BvJqoZ5R.js +4 -0
- package/components/p-Bz6z3Asd.js +4 -0
- package/components/p-C5KYjZWD.js +4 -0
- package/components/p-C6HnVvHO.js +4 -0
- package/components/p-C7jvh5Wy.js +4 -0
- package/components/p-C9BGR5fy.js +4 -0
- package/components/p-CB-y1CdP.js +4 -0
- package/components/p-CEW4RXZO.js +4 -0
- package/components/p-CHH3loEE.js +4 -0
- package/components/p-CJKUWjmg.js +4 -0
- package/components/{p-qMmFisyx.js → p-CMLAwl_N.js} +1 -1
- package/components/{p-C7II1iDj.js → p-C_phlPMC.js} +1 -1
- package/components/p-CbhUdtjf.js +4 -0
- package/components/p-CejmQs3h.js +4 -0
- package/components/p-CtZqa4HM.js +4 -0
- package/components/p-D7-vHX0A.js +4 -0
- package/components/p-D9qIVSWm.js +4 -0
- package/components/p-DD5fQ4EQ.js +4 -0
- package/components/p-DE-3iMNW.js +4 -0
- package/components/p-DFvZn99E.js +4 -0
- package/components/p-DHFt2rdc.js +4 -0
- package/components/p-DM-PrAoh.js +4 -0
- package/components/p-DSzSbVP2.js +4 -0
- package/components/{p--JUspHvy.js → p-DV85C0e0.js} +1 -1
- package/components/p-DWCzVL3Y.js +4 -0
- package/components/p-D_RCyzwu.js +4 -0
- package/components/p-D_tD8r3L.js +4 -0
- package/components/p-DaA_8eqt.js +4 -0
- package/components/p-DjCtLZbF.js +4 -0
- package/components/p-Dmd2xqCe.js +4 -0
- package/components/p-Dojwmvde.js +4 -0
- package/components/{p-BkKAANMJ.js → p-DwpKZ6rl.js} +1 -1
- package/components/p-DzRT60Tw.js +4 -0
- package/components/p-G0TxqHfe.js +4 -0
- package/components/p-G6JR-cr_.js +4 -0
- package/components/p-GG5GhznE.js +4 -0
- package/components/p-TXPDHL13.js +4 -0
- package/components/p-UIBJkZf8.js +4 -0
- package/components/p-_IKFD3ID.js +4 -0
- package/components/p-byZM6qHV.js +4 -0
- package/components/p-dKq2jIum.js +4 -0
- package/components/p-fruGqVHh.js +4 -0
- package/components/p-iYhH60Tc.js +4 -0
- package/components/p-ia3IDdJS.js +4 -0
- package/components/{p-DqLB8yFQ.js → p-ryyf_ItD.js} +1 -1
- package/dist/cjs/{animation-Ch16T-Nb.js → animation-C0mOHzej.js} +4 -4
- package/dist/cjs/{app-globals-Dd89e0MR.js → app-globals-BREG4twP.js} +1 -1
- package/dist/cjs/{button-active-AWp_ygDP.js → button-active-CVMevT9a.js} +3 -3
- package/dist/cjs/config-CjUbvdPW.js +36 -0
- package/dist/cjs/{dir-DD0jPVH3.js → dir-zwDPRE5K.js} +2 -3
- package/dist/cjs/{format-BUFWn4Bn.js → format-pp0Du3K-.js} +40 -30
- package/dist/cjs/{framework-delegate-CEzl4MEA.js → framework-delegate-Dfo5XsGv.js} +5 -7
- package/dist/cjs/{gesture-controller-dtqlP_q4.js → gesture-controller-BDUH7687.js} +15 -8
- package/dist/cjs/{haptic-ClPPQ_PS.js → haptic-Ch-X4gRx.js} +2 -3
- package/dist/cjs/{hardware-back-button-CXmUnTJC.js → hardware-back-button-fqpYh-kd.js} +4 -4
- package/dist/cjs/{helpers-DdZyl6WL.js → helpers-YPQybDph.js} +4 -4
- package/dist/cjs/index-B7zJsYWS.js +429 -0
- package/dist/cjs/{index-CukZnH1U.js → index-BLdJCcJY.js} +5 -5
- package/dist/cjs/{index-MWAIyVLl.js → index-DDg31ZF5.js} +3 -3
- package/dist/cjs/{index-DOiZqxWZ.js → index-DXsPSne6.js} +6 -7
- package/dist/cjs/{index-BJ2-LydH.js → index-DwlRtFZe.js} +9 -3
- package/dist/cjs/{index-BfaXsATC.js → index-uvry__L4.js} +31 -14
- package/dist/cjs/{index-DqmRDbxg.js → index-wOmugbdg.js} +1 -1
- package/dist/cjs/{index-CD92bI7B.js → index-zVCah4Uz.js} +2 -2
- package/dist/cjs/index.cjs.js +19 -19
- package/dist/cjs/{input-shims-CPKgrIe3.js → input-shims-Cbu1fcye.js} +10 -12
- package/dist/cjs/input.utils-BZdMWVrt.js +35 -0
- package/dist/cjs/ion-accordion_2.cjs.entry.js +369 -341
- package/dist/cjs/ion-action-sheet.cjs.entry.js +188 -77
- package/dist/cjs/ion-alert.cjs.entry.js +274 -112
- package/dist/cjs/ion-app_8.cjs.entry.js +307 -190
- package/dist/cjs/ion-avatar_3.cjs.entry.js +10 -4
- package/dist/cjs/ion-back-button.cjs.entry.js +48 -24
- package/dist/cjs/ion-backdrop.cjs.entry.js +18 -14
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +200 -122
- package/dist/cjs/ion-button_2.cjs.entry.js +139 -67
- package/dist/cjs/ion-card_5.cjs.entry.js +83 -31
- package/dist/cjs/ion-checkbox.cjs.entry.js +153 -102
- package/dist/cjs/ion-chip.cjs.entry.js +17 -11
- package/dist/cjs/ion-col_3.cjs.entry.js +134 -10
- package/dist/cjs/ion-datetime-button.cjs.entry.js +254 -242
- package/dist/cjs/ion-datetime.cjs.entry.js +2770 -0
- package/dist/cjs/ion-fab_3.cjs.entry.js +140 -82
- package/dist/cjs/ion-img.cjs.entry.js +35 -13
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +101 -73
- package/dist/cjs/ion-input-otp.cjs.entry.js +435 -372
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +36 -22
- package/dist/cjs/ion-input.cjs.entry.js +343 -212
- package/dist/cjs/ion-item-option_3.cjs.entry.js +95 -55
- package/dist/cjs/ion-item_8.cjs.entry.js +192 -93
- package/dist/cjs/ion-loading.cjs.entry.js +147 -61
- package/dist/cjs/ion-menu_3.cjs.entry.js +169 -107
- package/dist/cjs/ion-modal.cjs.entry.js +456 -262
- package/dist/cjs/ion-nav_2.cjs.entry.js +102 -159
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +38 -34
- package/dist/cjs/ion-picker-column.cjs.entry.js +418 -406
- package/dist/cjs/ion-picker.cjs.entry.js +402 -393
- package/dist/cjs/ion-popover.cjs.entry.js +320 -206
- package/dist/cjs/ion-progress-bar.cjs.entry.js +32 -26
- package/dist/cjs/ion-radio_2.cjs.entry.js +208 -135
- package/dist/cjs/ion-range.cjs.entry.js +304 -239
- package/dist/cjs/ion-refresher_2.cjs.entry.js +166 -94
- package/dist/cjs/ion-reorder_2.cjs.entry.js +54 -24
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +14 -14
- package/dist/cjs/ion-route_4.cjs.entry.js +176 -72
- package/dist/cjs/ion-searchbar.cjs.entry.js +291 -200
- package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
- package/dist/cjs/ion-segment-view.cjs.entry.js +28 -17
- package/dist/cjs/ion-segment_2.cjs.entry.js +169 -126
- package/dist/cjs/ion-select-modal.cjs.entry.js +105 -49
- package/dist/cjs/ion-select_3.cjs.entry.js +787 -260
- package/dist/cjs/ion-spinner.cjs.entry.js +24 -10
- package/dist/cjs/ion-split-pane.cjs.entry.js +29 -16
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +101 -42
- package/dist/cjs/ion-tab_2.cjs.entry.js +54 -28
- package/dist/cjs/ion-text.cjs.entry.js +11 -5
- package/dist/cjs/ion-textarea.cjs.entry.js +296 -189
- package/dist/cjs/ion-toast.cjs.entry.js +237 -118
- package/dist/cjs/ion-toggle.cjs.entry.js +175 -122
- package/dist/cjs/{ionic-global-BerQGEpE.js → ionic-global-k6hOWWpn.js} +13 -8
- package/dist/cjs/ionic.cjs.js +4 -4
- package/dist/cjs/{ios.transition-CTiTDh3m.js → ios.transition-zTmJz8T-.js} +14 -18
- package/dist/cjs/{item-multiple-inputs-jOJZE_I0.js → item-multiple-inputs-BdYSbfKN.js} +1 -1
- package/dist/cjs/{keyboard-hHzlEQpk.js → keyboard-Cix5TVkD.js} +2 -2
- package/dist/cjs/{keyboard-UuAS4D_9.js → keyboard-cHxZlTyz.js} +2 -2
- package/dist/cjs/{keyboard-controller-GXBiBRKS.js → keyboard-controller-PtZoN2GS.js} +6 -6
- package/dist/cjs/loader.cjs.js +4 -4
- package/dist/cjs/{md.transition-BpiTAaqF.js → md.transition-nb_4pUXu.js} +8 -9
- package/dist/cjs/overlay-control-label-D2sdL2O8.js +50 -0
- package/dist/cjs/{overlays-CQ_c1fko.js → overlays-KaNVDNqC.js} +48 -33
- package/dist/cjs/select-option-render-pULCGldr.js +123 -0
- package/dist/cjs/slot-mutation-controller-DPHmqXdV.js +397 -0
- package/dist/cjs/{status-tap-7FzRlXNr.js → status-tap-o9IIymsP.js} +4 -4
- package/dist/cjs/{swipe-back-DwTZiAc9.js → swipe-back-B7X9VOlH.js} +5 -5
- package/dist/cjs/{theme-CeDs6Hcv.js → theme-Bw0rpaNN.js} +6 -1
- package/dist/collection/collection-manifest.json +6 -10
- package/dist/collection/components/accordion/accordion.js +315 -312
- package/dist/collection/components/accordion-group/accordion-group.js +48 -25
- package/dist/collection/components/action-sheet/action-sheet.ios.css +228 -2
- package/dist/collection/components/action-sheet/action-sheet.js +173 -64
- package/dist/collection/components/action-sheet/action-sheet.md.css +174 -2
- package/dist/collection/components/action-sheet/test/basic/fixture.js +3 -0
- package/dist/collection/components/alert/alert.ios.css +279 -10
- package/dist/collection/components/alert/alert.js +257 -97
- package/dist/collection/components/alert/alert.md.css +268 -20
- package/dist/collection/components/app/app.js +3 -0
- package/dist/collection/components/back-button/back-button.js +42 -19
- package/dist/collection/components/backdrop/backdrop.js +16 -14
- package/dist/collection/components/badge/badge.js +6 -0
- package/dist/collection/components/breadcrumb/breadcrumb.js +91 -30
- package/dist/collection/components/breadcrumbs/breadcrumbs.js +103 -88
- package/dist/collection/components/button/button.js +132 -61
- package/dist/collection/components/buttons/buttons.js +13 -15
- package/dist/collection/components/card/card.js +54 -21
- package/dist/collection/components/card-header/card-header.js +12 -8
- package/dist/collection/components/card-subtitle/card-subtitle.js +6 -0
- package/dist/collection/components/card-title/card-title.js +6 -0
- package/dist/collection/components/checkbox/checkbox.js +147 -97
- package/dist/collection/components/chip/chip.js +14 -10
- package/dist/collection/components/col/col.js +127 -3
- package/dist/collection/components/content/content.js +93 -64
- package/dist/collection/components/datetime/datetime.ios.css +42 -2
- package/dist/collection/components/datetime/datetime.js +1042 -807
- package/dist/collection/components/datetime/datetime.md.css +42 -1
- package/dist/collection/components/datetime/utils/data.js +13 -14
- package/dist/collection/components/datetime/utils/format.js +21 -11
- package/dist/collection/components/datetime/utils/manipulation.js +8 -8
- package/dist/collection/components/datetime/utils/parse.js +10 -10
- package/dist/collection/components/datetime/utils/state.js +8 -2
- package/dist/collection/components/datetime/utils/validate.js +4 -5
- package/dist/collection/components/datetime-button/datetime-button.ios.css +5 -0
- package/dist/collection/components/datetime-button/datetime-button.js +247 -237
- package/dist/collection/components/datetime-button/datetime-button.md.css +5 -0
- package/dist/collection/components/fab/fab.js +20 -13
- package/dist/collection/components/fab-button/fab-button.js +104 -55
- package/dist/collection/components/fab-list/fab-list.js +10 -11
- package/dist/collection/components/footer/footer.js +50 -44
- package/dist/collection/components/grid/grid.js +4 -6
- package/dist/collection/components/header/header.js +35 -25
- package/dist/collection/components/img/img.js +34 -10
- package/dist/collection/components/infinite-scroll/infinite-scroll.js +73 -66
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +20 -3
- package/dist/collection/components/input/input.ios.css +57 -26
- package/dist/collection/components/input/input.js +336 -206
- package/dist/collection/components/input/input.md.css +79 -43
- package/dist/collection/components/input-otp/input-otp.js +430 -368
- package/dist/collection/components/input-password-toggle/input-password-toggle.js +32 -19
- package/dist/collection/components/item/item.js +99 -53
- package/dist/collection/components/item-divider/item-divider.js +17 -12
- package/dist/collection/components/item-group/item-group.js +1 -1
- package/dist/collection/components/item-option/item-option.js +50 -22
- package/dist/collection/components/item-options/item-options.js +11 -8
- package/dist/collection/components/item-sliding/item-sliding.js +27 -21
- package/dist/collection/components/label/label.js +26 -6
- package/dist/collection/components/list/list.js +11 -8
- package/dist/collection/components/list-header/list-header.js +12 -2
- package/dist/collection/components/loading/loading.js +135 -51
- package/dist/collection/components/menu/menu.js +103 -61
- package/dist/collection/components/menu-button/menu-button.js +30 -21
- package/dist/collection/components/menu-toggle/menu-toggle.js +22 -15
- package/dist/collection/components/modal/animations/ios.enter.js +1 -1
- package/dist/collection/components/modal/animations/md.enter.js +1 -1
- package/dist/collection/components/modal/gestures/sheet.js +22 -10
- package/dist/collection/components/modal/gestures/swipe-to-close.js +15 -3
- package/dist/collection/components/modal/modal.js +398 -228
- package/dist/collection/components/modal/safe-area-utils.js +6 -7
- package/dist/collection/components/modal/test/fixtures.js +3 -0
- package/dist/collection/components/nav/nav.js +69 -247
- package/dist/collection/components/nav/view-controller.js +7 -1
- package/dist/collection/components/nav-link/nav-link.js +21 -10
- package/dist/collection/components/note/note.js +8 -2
- package/dist/collection/components/picker/picker.js +398 -390
- package/dist/collection/components/picker-column/picker-column.css +3 -0
- package/dist/collection/components/picker-column/picker-column.js +414 -404
- package/dist/collection/components/picker-column-option/picker-column-option.js +33 -31
- package/dist/collection/components/picker-column-option/picker-column-option.md.css +6 -1
- package/dist/collection/components/popover/animations/ios.enter.js +1 -2
- package/dist/collection/components/popover/animations/md.enter.js +1 -2
- package/dist/collection/components/popover/popover.ios.css +15 -0
- package/dist/collection/components/popover/popover.js +302 -185
- package/dist/collection/components/popover/popover.md.css +15 -0
- package/dist/collection/components/popover/test/fixture.js +1 -0
- package/dist/collection/components/popover/utils.js +4 -6
- package/dist/collection/components/progress-bar/progress-bar.js +27 -23
- package/dist/collection/components/radio/radio.js +102 -66
- package/dist/collection/components/radio-group/radio-group.js +101 -66
- package/dist/collection/components/radio-group/test/fixtures.js +2 -0
- package/dist/collection/components/range/range.js +298 -234
- package/dist/collection/components/refresher/refresher.js +110 -78
- package/dist/collection/components/refresher-content/refresher-content.js +41 -4
- package/dist/collection/components/reorder/reorder.js +2 -1
- package/dist/collection/components/reorder-group/reorder-group.js +44 -15
- package/dist/collection/components/ripple-effect/ripple-effect.js +12 -13
- package/dist/collection/components/route/route.js +39 -10
- package/dist/collection/components/route-redirect/route-redirect.js +31 -0
- package/dist/collection/components/router/router.js +37 -33
- package/dist/collection/components/router/utils/dom.js +25 -7
- package/dist/collection/components/router/utils/matching.js +7 -9
- package/dist/collection/components/router/utils/parser.js +1 -1
- package/dist/collection/components/router/utils/path.js +0 -1
- package/dist/collection/components/router-link/router-link.js +37 -12
- package/dist/collection/components/router-outlet/router-outlet.js +82 -21
- package/dist/collection/components/row/row.js +1 -1
- package/dist/collection/components/searchbar/searchbar.js +289 -199
- package/dist/collection/components/segment/segment.js +120 -85
- package/dist/collection/components/segment-button/segment-button.js +43 -37
- package/dist/collection/components/segment-content/segment-content.js +1 -1
- package/dist/collection/components/segment-view/segment-view.js +26 -16
- package/dist/collection/components/select/select.ios.css +96 -69
- package/dist/collection/components/select/select.js +629 -213
- package/dist/collection/components/select/select.md.css +118 -85
- package/dist/collection/components/select-modal/select-modal.ios.css +218 -0
- package/dist/collection/components/select-modal/select-modal.js +92 -38
- package/dist/collection/components/select-modal/select-modal.md.css +164 -0
- package/dist/collection/components/select-modal/test/fixtures.js +8 -1
- package/dist/collection/components/select-option/select-option.js +110 -9
- package/dist/collection/components/select-popover/select-popover.ios.css +218 -0
- package/dist/collection/components/select-popover/select-popover.js +103 -36
- package/dist/collection/components/select-popover/select-popover.md.css +164 -0
- package/dist/collection/components/select-popover/test/fixtures.js +8 -1
- package/dist/collection/components/skeleton-text/skeleton-text.js +12 -8
- package/dist/collection/components/spinner/spinner.js +21 -9
- package/dist/collection/components/split-pane/split-pane.js +27 -15
- package/dist/collection/components/tab/tab.js +17 -6
- package/dist/collection/components/tab-bar/tab-bar.js +32 -14
- package/dist/collection/components/tab-button/tab-button.js +62 -23
- package/dist/collection/components/tabs/tabs.js +33 -20
- package/dist/collection/components/text/text.js +8 -2
- package/dist/collection/components/textarea/textarea.ios.css +94 -62
- package/dist/collection/components/textarea/textarea.js +287 -181
- package/dist/collection/components/textarea/textarea.md.css +103 -77
- package/dist/collection/components/thumbnail/thumbnail.js +1 -1
- package/dist/collection/components/title/title.js +18 -2
- package/dist/collection/components/toast/toast.js +223 -106
- package/dist/collection/components/toggle/toggle.js +167 -115
- package/dist/collection/components/toolbar/toolbar.js +15 -7
- package/dist/collection/global/config.js +4 -6
- package/dist/collection/global/ionic-global.js +8 -2
- package/dist/collection/index.js +1 -1
- package/dist/collection/utils/animation/animation.js +3 -3
- package/dist/collection/utils/config.js +5 -4
- package/dist/collection/utils/focus-controller/index.js +1 -1
- package/dist/collection/utils/focus-trap.js +3 -3
- package/dist/collection/utils/forms/index.js +1 -0
- package/dist/collection/utils/forms/start-container-controller.js +132 -0
- package/dist/collection/utils/framework-delegate.js +4 -6
- package/dist/collection/utils/gesture/gesture-controller.js +15 -8
- package/dist/collection/utils/gesture/index.js +10 -2
- package/dist/collection/utils/hardware-back-button.js +3 -3
- package/dist/collection/utils/helpers.js +2 -2
- package/dist/collection/utils/input-shims/hacks/scroll-assist.js +4 -5
- package/dist/collection/utils/input-shims/hacks/scroll-data.js +1 -2
- package/dist/collection/utils/keyboard/keyboard-controller.js +5 -5
- package/dist/collection/utils/keyboard/keyboard.js +1 -1
- package/dist/collection/utils/logging/index.js +23 -4
- package/dist/collection/utils/menu-controller/index.js +1 -2
- package/dist/collection/utils/native/haptic.js +2 -3
- package/dist/collection/utils/native/keyboard.js +2 -2
- package/dist/collection/utils/native/status-bar.js +1 -1
- package/dist/collection/utils/overlay-control-label.js +45 -0
- package/dist/collection/utils/overlays.js +38 -23
- package/dist/collection/utils/platform.js +4 -5
- package/dist/collection/utils/rtl/dir.js +2 -3
- package/dist/collection/utils/sanitization/index.js +276 -20
- package/dist/collection/utils/select-option-render.js +118 -0
- package/dist/collection/utils/slot-mutation-controller.js +1 -2
- package/dist/collection/utils/test/playwright/apply-keyboard-focus.js +1 -1
- package/dist/collection/utils/test/playwright/drag-element.js +2 -3
- package/dist/collection/utils/test/playwright/generator.js +3 -4
- package/dist/collection/utils/test/playwright/page/event-spy.js +11 -12
- package/dist/collection/utils/test/playwright/page/utils/goto.js +4 -5
- package/dist/collection/utils/test/playwright/page/utils/set-content.js +1 -1
- package/dist/collection/utils/test/playwright/page/utils/set-ion-viewport.js +2 -3
- package/dist/collection/utils/test/press-keys.js +10 -17
- package/dist/collection/utils/theme.js +6 -1
- package/dist/collection/utils/transition/ios.transition.js +9 -13
- package/dist/collection/utils/transition/md.transition.js +3 -4
- package/dist/docs.json +557 -1257
- package/dist/esm/{animation-DLJpuoEz.js → animation-CGFdmGk9.js} +4 -4
- package/dist/esm/{app-globals-D0C5S4hU.js → app-globals-CYmMeGdU.js} +1 -1
- package/dist/esm/{button-active-CXXy0FIE.js → button-active-BDOsVAiZ.js} +3 -3
- package/dist/esm/config-DWCzVL3Y.js +32 -0
- package/dist/esm/{dir-o8OKV5aD.js → dir-Dojwmvde.js} +2 -3
- package/dist/esm/{format-CAmvpAez.js → format-Dcwga61t.js} +41 -31
- package/dist/esm/{framework-delegate-B9yvYzqV.js → framework-delegate-BHTU2Ip9.js} +5 -7
- package/dist/esm/{gesture-controller-BTEOs1at.js → gesture-controller-TXPDHL13.js} +15 -8
- package/dist/esm/{haptic-DzAMWJuk.js → haptic-Cq4UAeka.js} +2 -3
- package/dist/esm/{hardware-back-button-B93Gru0Y.js → hardware-back-button-gLJHMX_F.js} +4 -4
- package/dist/esm/{helpers-DkCLSLI9.js → helpers-CAGf8Wgp.js} +4 -4
- package/dist/esm/{index-DV3sJJW8.js → index-BvabGprD.js} +2 -2
- package/dist/esm/index-CKM1DdGm.js +424 -0
- package/dist/esm/{index-tcQvqkiX.js → index-ChhhtsGZ.js} +32 -15
- package/dist/esm/{index-DwNKJodj.js → index-Clc-28O1.js} +3 -3
- package/dist/esm/{index-DdeElWma.js → index-CqneaaGd.js} +6 -7
- package/dist/esm/{index-Bck1OwMs.js → index-DcPaH5uL.js} +9 -3
- package/dist/esm/{index-B_8X7INq.js → index-T0JxBI8V.js} +2 -2
- package/dist/esm/{index-Dsz7OTeL.js → index-WlteAIqz.js} +5 -5
- package/dist/esm/index.js +17 -16
- package/dist/esm/{input-shims-d-hDv86G.js → input-shims-B8sfni1e.js} +10 -12
- package/dist/esm/input.utils-B1ValN_N.js +33 -0
- package/dist/esm/ion-accordion_2.entry.js +369 -341
- package/dist/esm/ion-action-sheet.entry.js +188 -77
- package/dist/esm/ion-alert.entry.js +273 -111
- package/dist/esm/ion-app_8.entry.js +307 -190
- package/dist/esm/ion-avatar_3.entry.js +10 -4
- package/dist/esm/ion-back-button.entry.js +48 -24
- package/dist/esm/ion-backdrop.entry.js +18 -14
- package/dist/esm/ion-breadcrumb_2.entry.js +200 -122
- package/dist/esm/ion-button_2.entry.js +139 -67
- package/dist/esm/ion-card_5.entry.js +83 -31
- package/dist/esm/ion-checkbox.entry.js +153 -102
- package/dist/esm/ion-chip.entry.js +17 -11
- package/dist/esm/ion-col_3.entry.js +134 -10
- package/dist/esm/ion-datetime-button.entry.js +254 -242
- package/dist/esm/ion-datetime.entry.js +2768 -0
- package/dist/esm/ion-fab_3.entry.js +140 -82
- package/dist/esm/ion-img.entry.js +35 -13
- package/dist/esm/ion-infinite-scroll_2.entry.js +100 -72
- package/dist/esm/ion-input-otp.entry.js +435 -372
- package/dist/esm/ion-input-password-toggle.entry.js +36 -22
- package/dist/esm/ion-input.entry.js +341 -210
- package/dist/esm/ion-item-option_3.entry.js +95 -55
- package/dist/esm/ion-item_8.entry.js +192 -93
- package/dist/esm/ion-loading.entry.js +146 -60
- package/dist/esm/ion-menu_3.entry.js +169 -107
- package/dist/esm/ion-modal.entry.js +456 -262
- package/dist/esm/ion-nav_2.entry.js +102 -159
- package/dist/esm/ion-picker-column-option.entry.js +38 -34
- package/dist/esm/ion-picker-column.entry.js +418 -406
- package/dist/esm/ion-picker.entry.js +402 -393
- package/dist/esm/ion-popover.entry.js +320 -206
- package/dist/esm/ion-progress-bar.entry.js +32 -26
- package/dist/esm/ion-radio_2.entry.js +208 -135
- package/dist/esm/ion-range.entry.js +304 -239
- package/dist/esm/ion-refresher_2.entry.js +164 -92
- package/dist/esm/ion-reorder_2.entry.js +54 -24
- package/dist/esm/ion-ripple-effect.entry.js +14 -14
- package/dist/esm/ion-route_4.entry.js +176 -72
- package/dist/esm/ion-searchbar.entry.js +291 -200
- package/dist/esm/ion-segment-content.entry.js +2 -2
- package/dist/esm/ion-segment-view.entry.js +28 -17
- package/dist/esm/ion-segment_2.entry.js +169 -126
- package/dist/esm/ion-select-modal.entry.js +105 -49
- package/dist/esm/ion-select_3.entry.js +787 -260
- package/dist/esm/ion-spinner.entry.js +24 -10
- package/dist/esm/ion-split-pane.entry.js +29 -16
- package/dist/esm/ion-tab-bar_2.entry.js +101 -42
- package/dist/esm/ion-tab_2.entry.js +54 -28
- package/dist/esm/ion-text.entry.js +11 -5
- package/dist/esm/ion-textarea.entry.js +295 -188
- package/dist/esm/ion-toast.entry.js +236 -117
- package/dist/esm/ion-toggle.entry.js +175 -122
- package/dist/esm/{ionic-global-Cp_eT4sZ.js → ionic-global-BVB7BrLT.js} +13 -8
- package/dist/esm/ionic.js +5 -5
- package/dist/esm/{ios.transition-CxNhMt4a.js → ios.transition-DXRCmcbC.js} +14 -18
- package/dist/esm/{item-multiple-inputs-DlNuqNJm.js → item-multiple-inputs-rU8VaNNg.js} +1 -1
- package/dist/esm/{keyboard-ywgs5efA.js → keyboard-Cj8mLJeq.js} +2 -2
- package/dist/esm/{keyboard-CUw4ekVy.js → keyboard-DAF8GNJ9.js} +2 -2
- package/dist/esm/{keyboard-controller-BaaVITYt.js → keyboard-controller-DEwoa1ev.js} +6 -6
- package/dist/esm/loader.js +5 -5
- package/dist/esm/{md.transition-IE4mC3kp.js → md.transition-BMngO4i_.js} +8 -9
- package/dist/esm/overlay-control-label-BSQPZ79H.js +47 -0
- package/dist/esm/{overlays-COCl_nm9.js → overlays-CPmIs9Ls.js} +48 -33
- package/dist/esm/select-option-render-C4m76VGH.js +121 -0
- package/dist/esm/slot-mutation-controller-DiE_C9un.js +393 -0
- package/dist/esm/{status-tap-HhO5eQI9.js → status-tap-CHB7KwIb.js} +4 -4
- package/dist/esm/{swipe-back-DK6afpuO.js → swipe-back-C9HW1bug.js} +5 -5
- package/dist/esm/{theme-DiVJyqlX.js → theme-byZM6qHV.js} +6 -1
- 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-06ec7136.entry.js +4 -0
- package/dist/ionic/p-09fe4fa3.entry.js +4 -0
- package/dist/ionic/p-10d45a07.entry.js +4 -0
- package/dist/ionic/p-208c8a07.entry.js +4 -0
- package/dist/ionic/p-212474fa.entry.js +4 -0
- package/dist/ionic/p-2eef1396.entry.js +4 -0
- package/dist/ionic/p-347e005d.entry.js +4 -0
- package/dist/ionic/p-3a0b3f1d.entry.js +4 -0
- package/dist/ionic/p-3b071259.entry.js +4 -0
- package/dist/ionic/{p-c6e49f3f.entry.js → p-40424a88.entry.js} +1 -1
- package/dist/ionic/p-4204184c.entry.js +4 -0
- package/dist/ionic/p-47464391.entry.js +4 -0
- package/dist/ionic/p-4eOQC00Z.js +4 -0
- package/dist/ionic/p-4f9c9126.entry.js +4 -0
- package/dist/ionic/p-5JsKPLJD.js +4 -0
- package/dist/ionic/p-5bc485c6.entry.js +4 -0
- package/dist/ionic/p-603a61e6.entry.js +4 -0
- package/dist/ionic/p-60576951.entry.js +4 -0
- package/dist/ionic/p-67a81d33.entry.js +4 -0
- package/dist/ionic/p-6affb775.entry.js +4 -0
- package/dist/ionic/p-6f120c25.entry.js +4 -0
- package/dist/ionic/p-71c82b60.entry.js +4 -0
- package/dist/ionic/p-79325ffe.entry.js +4 -0
- package/dist/ionic/{p-DZaO33Mw.js → p-7CBuOvEo.js} +1 -1
- package/dist/ionic/p-7e4d51fa.entry.js +4 -0
- package/dist/ionic/p-7f5d4664.entry.js +4 -0
- package/dist/ionic/p-80ee82fc.entry.js +4 -0
- package/dist/ionic/p-84af7dbc.entry.js +4 -0
- package/dist/ionic/p-89ca830a.entry.js +4 -0
- package/dist/ionic/p-93b8ec8f.entry.js +4 -0
- package/dist/ionic/p-946f65c2.entry.js +4 -0
- package/dist/ionic/p-9c4b39fb.entry.js +4 -0
- package/dist/ionic/p-B1NEZUzQ.js +4 -0
- package/dist/ionic/p-B1ck5iy-.js +4 -0
- package/dist/ionic/{p-Cd4H8ft-.js → p-B4FrqdW0.js} +1 -1
- package/dist/ionic/p-BB0LlG4y.js +4 -0
- package/dist/ionic/p-BMPN55of.js +4 -0
- package/dist/ionic/p-BSQPZ79H.js +4 -0
- package/dist/ionic/p-BYEAtHr-.js +4 -0
- package/dist/ionic/p-BhamHSw3.js +4 -0
- package/dist/ionic/{p-DV3sJJW8.js → p-BvabGprD.js} +1 -1
- package/dist/ionic/p-C-94tAim.js +4 -0
- package/dist/ionic/{p-DipZFfzN.js → p-C-eHZMYE.js} +1 -1
- package/dist/ionic/p-CBR_W98Z.js +4 -0
- package/dist/ionic/{p-ClM02LPk.js → p-CBWAXjA5.js} +1 -1
- package/dist/ionic/p-CMRtMbJc.js +4 -0
- package/dist/ionic/p-CPcPmkGv.js +4 -0
- package/dist/ionic/p-CaRuIadB.js +4 -0
- package/dist/ionic/p-Cdjxf_yg.js +4 -0
- package/dist/ionic/p-ChhhtsGZ.js +5 -0
- package/dist/ionic/p-CzS1qWve.js +4 -0
- package/dist/ionic/p-D5t_-oMk.js +4 -0
- package/dist/ionic/p-D94_RztK.js +4 -0
- package/dist/ionic/p-DWCzVL3Y.js +4 -0
- package/dist/ionic/p-DjjfauRM.js +4 -0
- package/dist/ionic/p-DkUB-ROc.js +4 -0
- package/dist/ionic/p-Dn0mqQ_R.js +4 -0
- package/dist/ionic/p-Dojwmvde.js +4 -0
- package/dist/ionic/p-DplOqGUv.js +4 -0
- package/dist/ionic/p-Dst_XmZh.js +4 -0
- package/dist/ionic/p-T71k3C35.js +4 -0
- package/dist/ionic/p-TXPDHL13.js +4 -0
- package/dist/ionic/p-UIBJkZf8.js +4 -0
- package/dist/ionic/p-a438b193.entry.js +4 -0
- package/dist/ionic/p-babaaaa7.entry.js +4 -0
- package/dist/ionic/p-be08d500.entry.js +4 -0
- package/dist/ionic/p-be9a4f51.entry.js +4 -0
- package/dist/ionic/p-byZM6qHV.js +4 -0
- package/dist/ionic/p-c00d3092.entry.js +4 -0
- package/dist/ionic/p-c36dc8f5.entry.js +4 -0
- package/dist/ionic/p-c72a7e17.entry.js +4 -0
- package/dist/ionic/p-c8edd88c.entry.js +4 -0
- package/dist/ionic/p-ce0e380b.entry.js +4 -0
- package/dist/ionic/p-ce32912b.entry.js +4 -0
- package/dist/ionic/p-d07cf130.entry.js +4 -0
- package/dist/ionic/p-d27edeb3.entry.js +4 -0
- package/dist/ionic/p-d5d2c506.entry.js +4 -0
- package/dist/ionic/p-d5e31ca9.entry.js +4 -0
- package/dist/ionic/p-de91444f.entry.js +4 -0
- package/dist/ionic/p-ded69ceb.entry.js +4 -0
- package/dist/ionic/p-df72866d.entry.js +4 -0
- package/dist/ionic/p-e47e3151.entry.js +4 -0
- package/dist/ionic/p-e621e5e8.entry.js +4 -0
- package/dist/ionic/p-eea9cf93.entry.js +4 -0
- package/dist/ionic/p-f402f5a4.entry.js +4 -0
- package/dist/ionic/p-fe1bfbcf.entry.js +4 -0
- package/{components/p-9GFIh9p1.js → dist/ionic/p-ffb90460.entry.js} +1 -1
- package/dist/types/components/img/img.d.ts +2 -0
- package/dist/types/components/input/input.d.ts +12 -6
- package/dist/types/components/modal/modal-interface.d.ts +9 -0
- 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 +30 -6
- package/dist/types/components/select-option/select-option.d.ts +42 -1
- package/dist/types/components/textarea/textarea.d.ts +12 -5
- 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 +1 -8
- package/dist/types/utils/forms/index.d.ts +1 -0
- package/dist/types/utils/forms/start-container-controller.d.ts +34 -0
- package/dist/types/utils/logging/index.d.ts +2 -1
- 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/dist/types/utils/test/playwright/playwright-page.d.ts +1 -1
- package/dist/types/utils/test/playwright/testExpect.d.ts +1 -1
- package/hydrate/index.js +10660 -7305
- package/hydrate/index.mjs +10660 -7305
- package/package.json +55 -12
- 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-0LM2oPMC.js +0 -4
- package/components/p-B21528L5.js +0 -4
- package/components/p-B2nSfLHH.js +0 -4
- package/components/p-B3qf4bEn.js +0 -4
- package/components/p-B9jFTlwE.js +0 -4
- package/components/p-BDd9Zrb9.js +0 -4
- package/components/p-BLmJ0zRm.js +0 -4
- package/components/p-BMYNBJgf.js +0 -4
- package/components/p-BRYd8D-I.js +0 -4
- package/components/p-BSEgsdFI.js +0 -4
- package/components/p-BTEOs1at.js +0 -4
- package/components/p-BTJrYwxN.js +0 -4
- package/components/p-BV-zKay-.js +0 -4
- package/components/p-BYRVyMu9.js +0 -4
- package/components/p-Bmq8qlkW.js +0 -4
- package/components/p-BuxQcfHK.js +0 -4
- package/components/p-Bz0dSlXZ.js +0 -4
- package/components/p-CHqRYvYm.js +0 -4
- package/components/p-CSZf8_j0.js +0 -4
- package/components/p-CTdRooFV.js +0 -4
- package/components/p-Cf2jSDS8.js +0 -4
- package/components/p-Cfx4M1Bn.js +0 -4
- package/components/p-CgkrslTX.js +0 -4
- package/components/p-CiCzYG2V.js +0 -4
- package/components/p-Ck0lEczL.js +0 -4
- package/components/p-CmR5uXej.js +0 -4
- package/components/p-CniZht3v.js +0 -4
- package/components/p-CsaojgEs.js +0 -4
- package/components/p-CtWGkNnJ.js +0 -4
- package/components/p-D13Eaw-8.js +0 -4
- package/components/p-D4FYu-4R.js +0 -4
- package/components/p-D6Ynv7Xh.js +0 -4
- package/components/p-DARjq3GM.js +0 -4
- package/components/p-DEZ2myA3.js +0 -4
- package/components/p-DOFCbuQR.js +0 -4
- package/components/p-DVe41iHI.js +0 -4
- package/components/p-DX5m9g56.js +0 -4
- package/components/p-DboHi2CL.js +0 -4
- package/components/p-DiVJyqlX.js +0 -4
- package/components/p-DmzFY5IC.js +0 -4
- package/components/p-DqZAXv2t.js +0 -4
- package/components/p-Dv8w0kqz.js +0 -4
- package/components/p-Dw7GNDKq.js +0 -4
- package/components/p-Dww01PNs.js +0 -4
- package/components/p-Gy276IJk.js +0 -4
- package/components/p-ZzLXTvyt.js +0 -4
- package/components/p-cyNmxje6.js +0 -4
- package/components/p-j5IxBIan.js +0 -4
- package/components/p-k_E4tX5Z.js +0 -4
- package/components/p-lVAbdiAu.js +0 -4
- package/components/p-o8OKV5aD.js +0 -4
- package/components/p-rCa2eL0j.js +0 -4
- package/dist/cjs/config-D6C-KlA9.js +0 -201
- package/dist/cjs/input.utils-DQaUGGed.js +0 -150
- package/dist/cjs/ion-datetime_3.cjs.entry.js +0 -3167
- package/dist/cjs/notch-controller-aiy8aQb-.js +0 -155
- 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/esm/input.utils-Cd23Gdd1.js +0 -147
- package/dist/esm/ion-datetime_3.entry.js +0 -3163
- package/dist/esm/notch-controller-Doqis1td.js +0 -153
- package/dist/ionic/p-01f81ea5.entry.js +0 -4
- package/dist/ionic/p-0283ea73.entry.js +0 -4
- package/dist/ionic/p-02ecae65.entry.js +0 -4
- package/dist/ionic/p-0672f677.entry.js +0 -4
- package/dist/ionic/p-0c06fe60.entry.js +0 -4
- package/dist/ionic/p-0fa9c382.entry.js +0 -4
- package/dist/ionic/p-1af4d74c.entry.js +0 -4
- package/dist/ionic/p-1d7ef0d2.entry.js +0 -4
- package/dist/ionic/p-26f05d3a.entry.js +0 -4
- package/dist/ionic/p-27d30585.entry.js +0 -4
- package/dist/ionic/p-2bb2cb18.entry.js +0 -4
- package/dist/ionic/p-31e7bd05.entry.js +0 -4
- package/dist/ionic/p-32f53010.entry.js +0 -4
- package/dist/ionic/p-35eb8b5c.entry.js +0 -4
- package/dist/ionic/p-37e720da.entry.js +0 -4
- package/dist/ionic/p-3efa137b.entry.js +0 -4
- package/dist/ionic/p-432bd72c.entry.js +0 -4
- package/dist/ionic/p-47214c72.entry.js +0 -4
- package/dist/ionic/p-4e172429.entry.js +0 -4
- package/dist/ionic/p-5c3da84e.entry.js +0 -4
- package/dist/ionic/p-5d1da0a2.entry.js +0 -4
- package/dist/ionic/p-5d8082fe.entry.js +0 -4
- package/dist/ionic/p-613d3c43.entry.js +0 -4
- package/dist/ionic/p-616e4d4f.entry.js +0 -4
- package/dist/ionic/p-65d611b2.entry.js +0 -4
- package/dist/ionic/p-67806e3f.entry.js +0 -4
- package/dist/ionic/p-68cbb2fc.entry.js +0 -4
- package/dist/ionic/p-737ae9eb.entry.js +0 -4
- package/dist/ionic/p-7b0d6248.entry.js +0 -4
- package/dist/ionic/p-7e71e470.entry.js +0 -4
- package/dist/ionic/p-84d5ce05.entry.js +0 -4
- package/dist/ionic/p-85d49987.entry.js +0 -4
- package/dist/ionic/p-8945088b.entry.js +0 -4
- package/dist/ionic/p-8b155568.entry.js +0 -4
- package/dist/ionic/p-90267c4b.entry.js +0 -4
- package/dist/ionic/p-92ad8a67.entry.js +0 -4
- package/dist/ionic/p-9a97d4e0.entry.js +0 -4
- package/dist/ionic/p-9e4b0894.entry.js +0 -4
- package/dist/ionic/p-9eeaBrnk.js +0 -4
- package/dist/ionic/p-B2kaj8sx.js +0 -4
- package/dist/ionic/p-B4y7nxsg.js +0 -4
- package/dist/ionic/p-B8t9Ro6f.js +0 -4
- package/dist/ionic/p-BEOxsxBw.js +0 -4
- package/dist/ionic/p-BJ2NxSHp.js +0 -4
- package/dist/ionic/p-BLiL8g0v.js +0 -4
- package/dist/ionic/p-BTEOs1at.js +0 -4
- package/dist/ionic/p-BUFIpxKM.js +0 -4
- package/dist/ionic/p-BYRVyMu9.js +0 -4
- package/dist/ionic/p-C0eMdTCW.js +0 -4
- package/dist/ionic/p-CKvCXMs9.js +0 -4
- package/dist/ionic/p-CPTv7G9B.js +0 -4
- package/dist/ionic/p-CtWGkNnJ.js +0 -4
- package/dist/ionic/p-CxMyXUtt.js +0 -4
- package/dist/ionic/p-D13Eaw-8.js +0 -4
- package/dist/ionic/p-DCoy2elM.js +0 -4
- package/dist/ionic/p-DiVJyqlX.js +0 -4
- package/dist/ionic/p-DqN5EA2O.js +0 -4
- package/dist/ionic/p-Dr9fTCb1.js +0 -4
- package/dist/ionic/p-DzWaWHGc.js +0 -4
- package/dist/ionic/p-EkpneKVM.js +0 -4
- package/dist/ionic/p-Nqf6uvGh.js +0 -4
- package/dist/ionic/p-SNAkTDfm.js +0 -4
- package/dist/ionic/p-ab00b0d8.entry.js +0 -4
- package/dist/ionic/p-c2175309.entry.js +0 -4
- package/dist/ionic/p-c4b69d9b.entry.js +0 -4
- package/dist/ionic/p-c4d8641b.entry.js +0 -4
- package/dist/ionic/p-ce637936.entry.js +0 -4
- package/dist/ionic/p-da85e958.entry.js +0 -4
- package/dist/ionic/p-dfa8d673.entry.js +0 -4
- package/dist/ionic/p-e139357c.entry.js +0 -4
- package/dist/ionic/p-e7b7a7b1.entry.js +0 -4
- package/dist/ionic/p-f37ca594.entry.js +0 -4
- package/dist/ionic/p-f8dd336e.entry.js +0 -4
- package/dist/ionic/p-f9de757b.entry.js +0 -4
- package/dist/ionic/p-fe11cf51.entry.js +0 -4
- package/dist/ionic/p-mjKAFv89.js +0 -4
- package/dist/ionic/p-o8OKV5aD.js +0 -4
- package/dist/ionic/p-tcQvqkiX.js +0 -5
- 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/components/{p-CO7fmmxt.js → p-LpMHEu3v.js} +0 -0
|
@@ -3,19 +3,19 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var index = require('./index-
|
|
7
|
-
var overlays = require('./overlays-
|
|
8
|
-
var frameworkDelegate = require('./framework-delegate-
|
|
9
|
-
var helpers = require('./helpers-
|
|
6
|
+
var index = require('./index-uvry__L4.js');
|
|
7
|
+
var overlays = require('./overlays-KaNVDNqC.js');
|
|
8
|
+
var frameworkDelegate = require('./framework-delegate-Dfo5XsGv.js');
|
|
9
|
+
var helpers = require('./helpers-YPQybDph.js');
|
|
10
10
|
var lockController = require('./lock-controller-aDB9wrEf.js');
|
|
11
|
-
var ionicGlobal = require('./ionic-global-
|
|
12
|
-
var theme = require('./theme-
|
|
13
|
-
var index$1 = require('./index-
|
|
14
|
-
var animation = require('./animation-
|
|
11
|
+
var ionicGlobal = require('./ionic-global-k6hOWWpn.js');
|
|
12
|
+
var theme = require('./theme-Bw0rpaNN.js');
|
|
13
|
+
var index$1 = require('./index-BLdJCcJY.js');
|
|
14
|
+
var animation = require('./animation-C0mOHzej.js');
|
|
15
15
|
require('./index-DkNv4J_i.js');
|
|
16
|
-
require('./hardware-back-button-
|
|
17
|
-
require('./gesture-controller-
|
|
18
|
-
require('./dir-
|
|
16
|
+
require('./hardware-back-button-fqpYh-kd.js');
|
|
17
|
+
require('./gesture-controller-BDUH7687.js');
|
|
18
|
+
require('./dir-zwDPRE5K.js');
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* Shared per-frame cache for safe-area insets. Avoids creating a temporary
|
|
@@ -329,10 +329,9 @@ const focusItem = (item) => {
|
|
|
329
329
|
const isTriggerElement = (el) => el.hasAttribute('data-ion-popover-trigger');
|
|
330
330
|
const configureKeyboardInteraction = (popoverEl) => {
|
|
331
331
|
const callback = async (ev) => {
|
|
332
|
-
var _a;
|
|
333
332
|
const activeElement = document.activeElement;
|
|
334
333
|
let items = [];
|
|
335
|
-
const targetTagName =
|
|
334
|
+
const targetTagName = ev.target?.tagName;
|
|
336
335
|
/**
|
|
337
336
|
* Only handle custom keyboard interactions for the host popover element
|
|
338
337
|
* and children ion-item elements.
|
|
@@ -353,7 +352,7 @@ const configureKeyboardInteraction = (popoverEl) => {
|
|
|
353
352
|
items = Array.from(popoverEl.querySelectorAll('ion-item:not(ion-popover ion-popover *):not([disabled])'));
|
|
354
353
|
/* eslint-disable-next-line */
|
|
355
354
|
}
|
|
356
|
-
catch
|
|
355
|
+
catch { }
|
|
357
356
|
switch (ev.key) {
|
|
358
357
|
/**
|
|
359
358
|
* If we are in a child popover
|
|
@@ -434,7 +433,6 @@ const configureKeyboardInteraction = (popoverEl) => {
|
|
|
434
433
|
* and viewport dimensions.
|
|
435
434
|
*/
|
|
436
435
|
const getPopoverPosition = (isRTL, contentWidth, contentHeight, arrowWidth, arrowHeight, reference, side, align, defaultPosition, triggerEl, event) => {
|
|
437
|
-
var _a;
|
|
438
436
|
let referenceCoordinates = {
|
|
439
437
|
top: 0,
|
|
440
438
|
left: 0,
|
|
@@ -479,8 +477,8 @@ const getPopoverPosition = (isRTL, contentWidth, contentHeight, arrowWidth, arro
|
|
|
479
477
|
* as a whole.
|
|
480
478
|
*/
|
|
481
479
|
const actualTriggerEl = (triggerEl ||
|
|
482
|
-
|
|
483
|
-
|
|
480
|
+
customEv?.detail?.ionShadowTarget ||
|
|
481
|
+
customEv?.target);
|
|
484
482
|
if (!actualTriggerEl) {
|
|
485
483
|
return defaultPosition;
|
|
486
484
|
}
|
|
@@ -849,7 +847,6 @@ const POPOVER_IOS_MIN_EDGE_MARGIN = 25;
|
|
|
849
847
|
*/
|
|
850
848
|
// TODO(FW-2832): types
|
|
851
849
|
const iosEnterAnimation = (baseEl, opts) => {
|
|
852
|
-
var _a;
|
|
853
850
|
const { event: ev, size, trigger, reference, side, align } = opts;
|
|
854
851
|
const doc = baseEl.ownerDocument;
|
|
855
852
|
const isRTL = doc.dir === 'rtl';
|
|
@@ -858,7 +855,7 @@ const iosEnterAnimation = (baseEl, opts) => {
|
|
|
858
855
|
const root = helpers.getElementRoot(baseEl);
|
|
859
856
|
const contentEl = root.querySelector('.popover-content');
|
|
860
857
|
const arrowEl = root.querySelector('.popover-arrow');
|
|
861
|
-
const referenceSizeEl = trigger ||
|
|
858
|
+
const referenceSizeEl = trigger || ev?.detail?.ionShadowTarget || ev?.target;
|
|
862
859
|
const { contentWidth, contentHeight } = getPopoverDimensions(size, contentEl, referenceSizeEl);
|
|
863
860
|
const { arrowWidth, arrowHeight } = getArrowDimensions(arrowEl);
|
|
864
861
|
const defaultPosition = {
|
|
@@ -986,7 +983,6 @@ const POPOVER_MD_BODY_PADDING = 12;
|
|
|
986
983
|
*/
|
|
987
984
|
// TODO(FW-2832): types
|
|
988
985
|
const mdEnterAnimation = (baseEl, opts) => {
|
|
989
|
-
var _a;
|
|
990
986
|
const { event: ev, size, trigger, reference, side, align } = opts;
|
|
991
987
|
const doc = baseEl.ownerDocument;
|
|
992
988
|
const isRTL = doc.dir === 'rtl';
|
|
@@ -994,7 +990,7 @@ const mdEnterAnimation = (baseEl, opts) => {
|
|
|
994
990
|
const bodyHeight = doc.defaultView.innerHeight;
|
|
995
991
|
const root = helpers.getElementRoot(baseEl);
|
|
996
992
|
const contentEl = root.querySelector('.popover-content');
|
|
997
|
-
const referenceSizeEl = trigger ||
|
|
993
|
+
const referenceSizeEl = trigger || ev?.detail?.ionShadowTarget || ev?.target;
|
|
998
994
|
const { contentWidth, contentHeight } = getPopoverDimensions(size, contentEl, referenceSizeEl);
|
|
999
995
|
const defaultPosition = {
|
|
1000
996
|
top: bodyHeight / 2 - contentHeight / 2,
|
|
@@ -1091,9 +1087,9 @@ const mdLeaveAnimation = (baseEl) => {
|
|
|
1091
1087
|
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
1092
1088
|
};
|
|
1093
1089
|
|
|
1094
|
-
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)}}`;
|
|
1090
|
+
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)}}`;
|
|
1095
1091
|
|
|
1096
|
-
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}`;
|
|
1092
|
+
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}`;
|
|
1097
1093
|
|
|
1098
1094
|
const Popover = class {
|
|
1099
1095
|
constructor(hostRef) {
|
|
@@ -1107,181 +1103,183 @@ const Popover = class {
|
|
|
1107
1103
|
this.willDismissShorthand = index.createEvent(this, "willDismiss", 7);
|
|
1108
1104
|
this.didDismissShorthand = index.createEvent(this, "didDismiss", 7);
|
|
1109
1105
|
this.ionMount = index.createEvent(this, "ionMount", 7);
|
|
1110
|
-
this.parentPopover = null;
|
|
1111
|
-
this.coreDelegate = frameworkDelegate.CoreDelegate();
|
|
1112
|
-
this.lockController = lockController.createLockController();
|
|
1113
|
-
this.inline = false;
|
|
1114
|
-
this.focusDescendantOnPresent = false;
|
|
1115
|
-
this.presented = false;
|
|
1116
|
-
/** @internal */
|
|
1117
|
-
this.hasController = false;
|
|
1118
|
-
/**
|
|
1119
|
-
* If `true`, the keyboard will be automatically dismissed when the overlay is presented.
|
|
1120
|
-
*/
|
|
1121
|
-
this.keyboardClose = true;
|
|
1122
|
-
/**
|
|
1123
|
-
* If `true`, the popover will be dismissed when the backdrop is clicked.
|
|
1124
|
-
*/
|
|
1125
|
-
this.backdropDismiss = true;
|
|
1126
|
-
/**
|
|
1127
|
-
* If `true`, a backdrop will be displayed behind the popover.
|
|
1128
|
-
* This property controls whether or not the backdrop
|
|
1129
|
-
* darkens the screen when the popover is presented.
|
|
1130
|
-
* It does not control whether or not the backdrop
|
|
1131
|
-
* is active or present in the DOM.
|
|
1132
|
-
*/
|
|
1133
|
-
this.showBackdrop = true;
|
|
1134
|
-
/**
|
|
1135
|
-
* If `true`, the popover will be translucent.
|
|
1136
|
-
* Only applies when the mode is `"ios"` and the device supports
|
|
1137
|
-
* [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).
|
|
1138
|
-
*/
|
|
1139
|
-
this.translucent = false;
|
|
1140
|
-
/**
|
|
1141
|
-
* If `true`, the popover will animate.
|
|
1142
|
-
*/
|
|
1143
|
-
this.animated = true;
|
|
1144
|
-
/**
|
|
1145
|
-
* Describes what kind of interaction with the trigger that
|
|
1146
|
-
* should cause the popover to open. Does not apply when the `trigger`
|
|
1147
|
-
* property is `undefined`.
|
|
1148
|
-
* If `"click"`, the popover will be presented when the trigger is left clicked.
|
|
1149
|
-
* If `"hover"`, the popover will be presented when a pointer hovers over the trigger.
|
|
1150
|
-
* If `"context-menu"`, the popover will be presented when the trigger is right
|
|
1151
|
-
* clicked on desktop and long pressed on mobile. This will also prevent your
|
|
1152
|
-
* device's normal context menu from appearing.
|
|
1153
|
-
*/
|
|
1154
|
-
this.triggerAction = 'click';
|
|
1155
|
-
/**
|
|
1156
|
-
* Describes how to calculate the popover width.
|
|
1157
|
-
* If `"cover"`, the popover width will match the width of the trigger.
|
|
1158
|
-
* If `"auto"`, the popover width will be set to a static default value.
|
|
1159
|
-
*/
|
|
1160
|
-
this.size = 'auto';
|
|
1161
|
-
/**
|
|
1162
|
-
* If `true`, the popover will be automatically
|
|
1163
|
-
* dismissed when the content has been clicked.
|
|
1164
|
-
*/
|
|
1165
|
-
this.dismissOnSelect = false;
|
|
1166
|
-
/**
|
|
1167
|
-
* Describes what to position the popover relative to.
|
|
1168
|
-
* If `"trigger"`, the popover will be positioned relative
|
|
1169
|
-
* to the trigger button. If passing in an event, this is
|
|
1170
|
-
* determined via event.target.
|
|
1171
|
-
* If `"event"`, the popover will be positioned relative
|
|
1172
|
-
* to the x/y coordinates of the trigger action. If passing
|
|
1173
|
-
* in an event, this is determined via event.clientX and event.clientY.
|
|
1174
|
-
*/
|
|
1175
|
-
this.reference = 'trigger';
|
|
1176
|
-
/**
|
|
1177
|
-
* Describes which side of the `reference` point to position
|
|
1178
|
-
* the popover on. The `"start"` and `"end"` values are RTL-aware,
|
|
1179
|
-
* and the `"left"` and `"right"` values are not.
|
|
1180
|
-
*/
|
|
1181
|
-
this.side = 'bottom';
|
|
1182
|
-
/**
|
|
1183
|
-
* If `true`, the popover will display an arrow that points at the
|
|
1184
|
-
* `reference` when running in `ios` mode. Does not apply in `md` mode.
|
|
1185
|
-
*/
|
|
1186
|
-
this.arrow = true;
|
|
1187
|
-
/**
|
|
1188
|
-
* If `true`, the popover will open. If `false`, the popover will close.
|
|
1189
|
-
* Use this if you need finer grained control over presentation, otherwise
|
|
1190
|
-
* just use the popoverController or the `trigger` property.
|
|
1191
|
-
* Note: `isOpen` will not automatically be set back to `false` when
|
|
1192
|
-
* the popover dismisses. You will need to do that in your code.
|
|
1193
|
-
*/
|
|
1194
|
-
this.isOpen = false;
|
|
1195
|
-
/**
|
|
1196
|
-
* @internal
|
|
1197
|
-
*
|
|
1198
|
-
* If `true` the popover will not register its own keyboard event handlers.
|
|
1199
|
-
* This allows the contents of the popover to handle their own keyboard interactions.
|
|
1200
|
-
*
|
|
1201
|
-
* If `false`, the popover will register its own keyboard event handlers for
|
|
1202
|
-
* navigating `ion-list` items within a popover (up/down/home/end/etc.).
|
|
1203
|
-
* This will also cancel browser keyboard event bindings to prevent scroll
|
|
1204
|
-
* behavior in a popover using a list of items.
|
|
1205
|
-
*/
|
|
1206
|
-
this.keyboardEvents = false;
|
|
1207
|
-
/**
|
|
1208
|
-
* If `true`, focus will not be allowed to move outside of this overlay.
|
|
1209
|
-
* If `false`, focus will be allowed to move outside of the overlay.
|
|
1210
|
-
*
|
|
1211
|
-
* In most scenarios this property should remain set to `true`. Setting
|
|
1212
|
-
* this property to `false` can cause severe accessibility issues as users
|
|
1213
|
-
* relying on assistive technologies may be able to move focus into
|
|
1214
|
-
* a confusing state. We recommend only setting this to `false` when
|
|
1215
|
-
* absolutely necessary.
|
|
1216
|
-
*
|
|
1217
|
-
* Developers may want to consider disabling focus trapping if this
|
|
1218
|
-
* overlay presents a non-Ionic overlay from a 3rd party library.
|
|
1219
|
-
* Developers would disable focus trapping on the Ionic overlay
|
|
1220
|
-
* when presenting the 3rd party overlay and then re-enable
|
|
1221
|
-
* focus trapping when dismissing the 3rd party overlay and moving
|
|
1222
|
-
* focus back to the Ionic overlay.
|
|
1223
|
-
*/
|
|
1224
|
-
this.focusTrap = true;
|
|
1225
|
-
/**
|
|
1226
|
-
* If `true`, the component passed into `ion-popover` will
|
|
1227
|
-
* automatically be mounted when the popover is created. The
|
|
1228
|
-
* component will remain mounted even when the popover is dismissed.
|
|
1229
|
-
* However, the component will be destroyed when the popover is
|
|
1230
|
-
* destroyed. This property is not reactive and should only be
|
|
1231
|
-
* used when initially creating a popover.
|
|
1232
|
-
*
|
|
1233
|
-
* Note: This feature only applies to inline popovers in JavaScript
|
|
1234
|
-
* frameworks such as Angular, React, and Vue.
|
|
1235
|
-
*/
|
|
1236
|
-
this.keepContentsMounted = false;
|
|
1237
|
-
this.onBackdropTap = () => {
|
|
1238
|
-
this.dismiss(undefined, overlays.BACKDROP);
|
|
1239
|
-
};
|
|
1240
|
-
this.onLifecycle = (modalEvent) => {
|
|
1241
|
-
const el = this.usersElement;
|
|
1242
|
-
const name = LIFECYCLE_MAP[modalEvent.type];
|
|
1243
|
-
if (el && name) {
|
|
1244
|
-
const event = new CustomEvent(name, {
|
|
1245
|
-
bubbles: false,
|
|
1246
|
-
cancelable: false,
|
|
1247
|
-
detail: modalEvent.detail,
|
|
1248
|
-
});
|
|
1249
|
-
el.dispatchEvent(event);
|
|
1250
|
-
}
|
|
1251
|
-
};
|
|
1252
|
-
this.configureTriggerInteraction = () => {
|
|
1253
|
-
const { trigger, triggerAction, el, destroyTriggerInteraction } = this;
|
|
1254
|
-
if (destroyTriggerInteraction) {
|
|
1255
|
-
destroyTriggerInteraction();
|
|
1256
|
-
}
|
|
1257
|
-
if (trigger === undefined) {
|
|
1258
|
-
return;
|
|
1259
|
-
}
|
|
1260
|
-
const triggerEl = (this.triggerEl = trigger !== undefined ? document.getElementById(trigger) : null);
|
|
1261
|
-
if (!triggerEl) {
|
|
1262
|
-
index.printIonWarning(`[ion-popover] - A trigger element with the ID "${trigger}" was not found in the DOM. The trigger element must be in the DOM when the "trigger" property is set on ion-popover.`, this.el);
|
|
1263
|
-
return;
|
|
1264
|
-
}
|
|
1265
|
-
this.destroyTriggerInteraction = configureTriggerInteraction(triggerEl, triggerAction, el);
|
|
1266
|
-
};
|
|
1267
|
-
this.configureKeyboardInteraction = () => {
|
|
1268
|
-
const { destroyKeyboardInteraction, el } = this;
|
|
1269
|
-
if (destroyKeyboardInteraction) {
|
|
1270
|
-
destroyKeyboardInteraction();
|
|
1271
|
-
}
|
|
1272
|
-
this.destroyKeyboardInteraction = configureKeyboardInteraction(el);
|
|
1273
|
-
};
|
|
1274
|
-
this.configureDismissInteraction = () => {
|
|
1275
|
-
const { destroyDismissInteraction, parentPopover, triggerAction, triggerEl, el } = this;
|
|
1276
|
-
if (!parentPopover || !triggerEl) {
|
|
1277
|
-
return;
|
|
1278
|
-
}
|
|
1279
|
-
if (destroyDismissInteraction) {
|
|
1280
|
-
destroyDismissInteraction();
|
|
1281
|
-
}
|
|
1282
|
-
this.destroyDismissInteraction = configureDismissInteraction(triggerEl, triggerAction, el, parentPopover);
|
|
1283
|
-
};
|
|
1284
1106
|
}
|
|
1107
|
+
usersElement;
|
|
1108
|
+
triggerEl;
|
|
1109
|
+
parentPopover = null;
|
|
1110
|
+
coreDelegate = frameworkDelegate.CoreDelegate();
|
|
1111
|
+
lockController = lockController.createLockController();
|
|
1112
|
+
destroyTriggerInteraction;
|
|
1113
|
+
destroyKeyboardInteraction;
|
|
1114
|
+
destroyDismissInteraction;
|
|
1115
|
+
headerResizeObserver;
|
|
1116
|
+
inline = false;
|
|
1117
|
+
workingDelegate;
|
|
1118
|
+
focusDescendantOnPresent = false;
|
|
1119
|
+
lastFocus;
|
|
1120
|
+
presented = false;
|
|
1121
|
+
get el() { return index.getElement(this); }
|
|
1122
|
+
/** @internal */
|
|
1123
|
+
hasController = false;
|
|
1124
|
+
/** @internal */
|
|
1125
|
+
delegate;
|
|
1126
|
+
/** @internal */
|
|
1127
|
+
overlayIndex;
|
|
1128
|
+
/**
|
|
1129
|
+
* Animation to use when the popover is presented.
|
|
1130
|
+
*/
|
|
1131
|
+
enterAnimation;
|
|
1132
|
+
/**
|
|
1133
|
+
* Animation to use when the popover is dismissed.
|
|
1134
|
+
*/
|
|
1135
|
+
leaveAnimation;
|
|
1136
|
+
/**
|
|
1137
|
+
* The component to display inside of the popover.
|
|
1138
|
+
* You only need to use this if you are not using
|
|
1139
|
+
* a JavaScript framework. Otherwise, you can just
|
|
1140
|
+
* slot your component inside of `ion-popover`.
|
|
1141
|
+
*/
|
|
1142
|
+
component;
|
|
1143
|
+
/**
|
|
1144
|
+
* The data to pass to the popover component.
|
|
1145
|
+
* You only need to use this if you are not using
|
|
1146
|
+
* a JavaScript framework. Otherwise, you can just
|
|
1147
|
+
* set the props directly on your component.
|
|
1148
|
+
*/
|
|
1149
|
+
componentProps;
|
|
1150
|
+
/**
|
|
1151
|
+
* If `true`, the keyboard will be automatically dismissed when the overlay is presented.
|
|
1152
|
+
*/
|
|
1153
|
+
keyboardClose = true;
|
|
1154
|
+
/**
|
|
1155
|
+
* Additional classes to apply for custom CSS. If multiple classes are
|
|
1156
|
+
* provided they should be separated by spaces.
|
|
1157
|
+
* @internal
|
|
1158
|
+
*/
|
|
1159
|
+
cssClass;
|
|
1160
|
+
/**
|
|
1161
|
+
* If `true`, the popover will be dismissed when the backdrop is clicked.
|
|
1162
|
+
*/
|
|
1163
|
+
backdropDismiss = true;
|
|
1164
|
+
/**
|
|
1165
|
+
* The event to pass to the popover animation.
|
|
1166
|
+
*/
|
|
1167
|
+
event;
|
|
1168
|
+
/**
|
|
1169
|
+
* If `true`, a backdrop will be displayed behind the popover.
|
|
1170
|
+
* This property controls whether or not the backdrop
|
|
1171
|
+
* darkens the screen when the popover is presented.
|
|
1172
|
+
* It does not control whether or not the backdrop
|
|
1173
|
+
* is active or present in the DOM.
|
|
1174
|
+
*/
|
|
1175
|
+
showBackdrop = true;
|
|
1176
|
+
/**
|
|
1177
|
+
* If `true`, the popover will be translucent.
|
|
1178
|
+
* Only applies when the mode is `"ios"` and the device supports
|
|
1179
|
+
* [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).
|
|
1180
|
+
*/
|
|
1181
|
+
translucent = false;
|
|
1182
|
+
/**
|
|
1183
|
+
* If `true`, the popover will animate.
|
|
1184
|
+
*/
|
|
1185
|
+
animated = true;
|
|
1186
|
+
/**
|
|
1187
|
+
* Additional attributes to pass to the popover.
|
|
1188
|
+
*/
|
|
1189
|
+
htmlAttributes;
|
|
1190
|
+
/**
|
|
1191
|
+
* Describes what kind of interaction with the trigger that
|
|
1192
|
+
* should cause the popover to open. Does not apply when the `trigger`
|
|
1193
|
+
* property is `undefined`.
|
|
1194
|
+
* If `"click"`, the popover will be presented when the trigger is left clicked.
|
|
1195
|
+
* If `"hover"`, the popover will be presented when a pointer hovers over the trigger.
|
|
1196
|
+
* If `"context-menu"`, the popover will be presented when the trigger is right
|
|
1197
|
+
* clicked on desktop and long pressed on mobile. This will also prevent your
|
|
1198
|
+
* device's normal context menu from appearing.
|
|
1199
|
+
*/
|
|
1200
|
+
triggerAction = 'click';
|
|
1201
|
+
/**
|
|
1202
|
+
* An ID corresponding to the trigger element that
|
|
1203
|
+
* causes the popover to open. Use the `trigger-action`
|
|
1204
|
+
* property to customize the interaction that results in
|
|
1205
|
+
* the popover opening.
|
|
1206
|
+
*/
|
|
1207
|
+
trigger;
|
|
1208
|
+
/**
|
|
1209
|
+
* Describes how to calculate the popover width.
|
|
1210
|
+
* If `"cover"`, the popover width will match the width of the trigger.
|
|
1211
|
+
* If `"auto"`, the popover width will be set to a static default value.
|
|
1212
|
+
*/
|
|
1213
|
+
size = 'auto';
|
|
1214
|
+
/**
|
|
1215
|
+
* If `true`, the popover will be automatically
|
|
1216
|
+
* dismissed when the content has been clicked.
|
|
1217
|
+
*/
|
|
1218
|
+
dismissOnSelect = false;
|
|
1219
|
+
/**
|
|
1220
|
+
* Describes what to position the popover relative to.
|
|
1221
|
+
* If `"trigger"`, the popover will be positioned relative
|
|
1222
|
+
* to the trigger button. If passing in an event, this is
|
|
1223
|
+
* determined via event.target.
|
|
1224
|
+
* If `"event"`, the popover will be positioned relative
|
|
1225
|
+
* to the x/y coordinates of the trigger action. If passing
|
|
1226
|
+
* in an event, this is determined via event.clientX and event.clientY.
|
|
1227
|
+
*/
|
|
1228
|
+
reference = 'trigger';
|
|
1229
|
+
/**
|
|
1230
|
+
* Describes which side of the `reference` point to position
|
|
1231
|
+
* the popover on. The `"start"` and `"end"` values are RTL-aware,
|
|
1232
|
+
* and the `"left"` and `"right"` values are not.
|
|
1233
|
+
*/
|
|
1234
|
+
side = 'bottom';
|
|
1235
|
+
/**
|
|
1236
|
+
* Describes how to align the popover content with the `reference` point.
|
|
1237
|
+
* Defaults to `"center"` for `ios` mode, and `"start"` for `md` mode.
|
|
1238
|
+
*/
|
|
1239
|
+
alignment;
|
|
1240
|
+
/**
|
|
1241
|
+
* If `true`, the popover will display an arrow that points at the
|
|
1242
|
+
* `reference` when running in `ios` mode. Does not apply in `md` mode.
|
|
1243
|
+
*/
|
|
1244
|
+
arrow = true;
|
|
1245
|
+
/**
|
|
1246
|
+
* If `true`, the popover will open. If `false`, the popover will close.
|
|
1247
|
+
* Use this if you need finer grained control over presentation, otherwise
|
|
1248
|
+
* just use the popoverController or the `trigger` property.
|
|
1249
|
+
* Note: `isOpen` will not automatically be set back to `false` when
|
|
1250
|
+
* the popover dismisses. You will need to do that in your code.
|
|
1251
|
+
*/
|
|
1252
|
+
isOpen = false;
|
|
1253
|
+
/**
|
|
1254
|
+
* @internal
|
|
1255
|
+
*
|
|
1256
|
+
* If `true` the popover will not register its own keyboard event handlers.
|
|
1257
|
+
* This allows the contents of the popover to handle their own keyboard interactions.
|
|
1258
|
+
*
|
|
1259
|
+
* If `false`, the popover will register its own keyboard event handlers for
|
|
1260
|
+
* navigating `ion-list` items within a popover (up/down/home/end/etc.).
|
|
1261
|
+
* This will also cancel browser keyboard event bindings to prevent scroll
|
|
1262
|
+
* behavior in a popover using a list of items.
|
|
1263
|
+
*/
|
|
1264
|
+
keyboardEvents = false;
|
|
1265
|
+
/**
|
|
1266
|
+
* If `true`, focus will not be allowed to move outside of this overlay.
|
|
1267
|
+
* If `false`, focus will be allowed to move outside of the overlay.
|
|
1268
|
+
*
|
|
1269
|
+
* In most scenarios this property should remain set to `true`. Setting
|
|
1270
|
+
* this property to `false` can cause severe accessibility issues as users
|
|
1271
|
+
* relying on assistive technologies may be able to move focus into
|
|
1272
|
+
* a confusing state. We recommend only setting this to `false` when
|
|
1273
|
+
* absolutely necessary.
|
|
1274
|
+
*
|
|
1275
|
+
* Developers may want to consider disabling focus trapping if this
|
|
1276
|
+
* overlay presents a non-Ionic overlay from a 3rd party library.
|
|
1277
|
+
* Developers would disable focus trapping on the Ionic overlay
|
|
1278
|
+
* when presenting the 3rd party overlay and then re-enable
|
|
1279
|
+
* focus trapping when dismissing the 3rd party overlay and moving
|
|
1280
|
+
* focus back to the Ionic overlay.
|
|
1281
|
+
*/
|
|
1282
|
+
focusTrap = true;
|
|
1285
1283
|
onTriggerChange() {
|
|
1286
1284
|
this.configureTriggerInteraction();
|
|
1287
1285
|
}
|
|
@@ -1293,6 +1291,66 @@ const Popover = class {
|
|
|
1293
1291
|
this.dismiss();
|
|
1294
1292
|
}
|
|
1295
1293
|
}
|
|
1294
|
+
/**
|
|
1295
|
+
* If `true`, the component passed into `ion-popover` will
|
|
1296
|
+
* automatically be mounted when the popover is created. The
|
|
1297
|
+
* component will remain mounted even when the popover is dismissed.
|
|
1298
|
+
* However, the component will be destroyed when the popover is
|
|
1299
|
+
* destroyed. This property is not reactive and should only be
|
|
1300
|
+
* used when initially creating a popover.
|
|
1301
|
+
*
|
|
1302
|
+
* Note: This feature only applies to inline popovers in JavaScript
|
|
1303
|
+
* frameworks such as Angular, React, and Vue.
|
|
1304
|
+
*/
|
|
1305
|
+
keepContentsMounted = false;
|
|
1306
|
+
/**
|
|
1307
|
+
* Emitted after the popover has presented.
|
|
1308
|
+
*/
|
|
1309
|
+
didPresent;
|
|
1310
|
+
/**
|
|
1311
|
+
* Emitted before the popover has presented.
|
|
1312
|
+
*/
|
|
1313
|
+
willPresent;
|
|
1314
|
+
/**
|
|
1315
|
+
* Emitted before the popover has dismissed.
|
|
1316
|
+
*/
|
|
1317
|
+
willDismiss;
|
|
1318
|
+
/**
|
|
1319
|
+
* Emitted after the popover has dismissed.
|
|
1320
|
+
*/
|
|
1321
|
+
didDismiss;
|
|
1322
|
+
/**
|
|
1323
|
+
* Emitted after the popover has presented.
|
|
1324
|
+
* Shorthand for ionPopoverWillDismiss.
|
|
1325
|
+
*/
|
|
1326
|
+
didPresentShorthand;
|
|
1327
|
+
/**
|
|
1328
|
+
* Emitted before the popover has presented.
|
|
1329
|
+
* Shorthand for ionPopoverWillPresent.
|
|
1330
|
+
*/
|
|
1331
|
+
willPresentShorthand;
|
|
1332
|
+
/**
|
|
1333
|
+
* Emitted before the popover has dismissed.
|
|
1334
|
+
* Shorthand for ionPopoverWillDismiss.
|
|
1335
|
+
*/
|
|
1336
|
+
willDismissShorthand;
|
|
1337
|
+
/**
|
|
1338
|
+
* Emitted after the popover has dismissed.
|
|
1339
|
+
* Shorthand for ionPopoverDidDismiss.
|
|
1340
|
+
*/
|
|
1341
|
+
didDismissShorthand;
|
|
1342
|
+
/**
|
|
1343
|
+
* Emitted before the popover has presented, but after the component
|
|
1344
|
+
* has been mounted in the DOM.
|
|
1345
|
+
* This event exists for ion-popover to resolve an issue with the
|
|
1346
|
+
* popover and the lazy build, that the transition is unable to get
|
|
1347
|
+
* the correct dimensions of the popover with auto sizing.
|
|
1348
|
+
* This is not required for other overlays, since the existing
|
|
1349
|
+
* overlay transitions are not effected by auto sizing content.
|
|
1350
|
+
*
|
|
1351
|
+
* @internal
|
|
1352
|
+
*/
|
|
1353
|
+
ionMount;
|
|
1296
1354
|
connectedCallback() {
|
|
1297
1355
|
const { configureTriggerInteraction, el } = this;
|
|
1298
1356
|
overlays.prepareOverlay(el);
|
|
@@ -1307,11 +1365,14 @@ const Popover = class {
|
|
|
1307
1365
|
this.headerResizeObserver.disconnect();
|
|
1308
1366
|
this.headerResizeObserver = undefined;
|
|
1309
1367
|
}
|
|
1368
|
+
// Clean up aria-hidden if removed without dismiss() being called
|
|
1369
|
+
if (this.presented) {
|
|
1370
|
+
overlays.cleanupRootFocusTrapAccessibility();
|
|
1371
|
+
}
|
|
1310
1372
|
}
|
|
1311
1373
|
componentWillLoad() {
|
|
1312
|
-
var _a, _b;
|
|
1313
1374
|
const { el } = this;
|
|
1314
|
-
const popoverId =
|
|
1375
|
+
const popoverId = this.htmlAttributes?.id ?? overlays.setOverlayId(el);
|
|
1315
1376
|
this.parentPopover = el.closest(`ion-popover:not(#${popoverId})`);
|
|
1316
1377
|
if (this.alignment === undefined) {
|
|
1317
1378
|
this.alignment = ionicGlobal.getIonMode(this) === 'ios' ? 'center' : 'start';
|
|
@@ -1461,8 +1522,7 @@ const Popover = class {
|
|
|
1461
1522
|
* of the content to the height of the header correctly.
|
|
1462
1523
|
*/
|
|
1463
1524
|
recalculateContentOnHeaderReady() {
|
|
1464
|
-
|
|
1465
|
-
const popoverContent = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.popover-content');
|
|
1525
|
+
const popoverContent = this.el.shadowRoot?.querySelector('.popover-content');
|
|
1466
1526
|
if (!popoverContent) {
|
|
1467
1527
|
return;
|
|
1468
1528
|
}
|
|
@@ -1473,9 +1533,8 @@ const Popover = class {
|
|
|
1473
1533
|
return;
|
|
1474
1534
|
}
|
|
1475
1535
|
this.headerResizeObserver = new ResizeObserver(async () => {
|
|
1476
|
-
var _a;
|
|
1477
1536
|
if (header.offsetHeight > 0) {
|
|
1478
|
-
|
|
1537
|
+
this.headerResizeObserver?.disconnect();
|
|
1479
1538
|
this.headerResizeObserver = undefined;
|
|
1480
1539
|
for (const contentEl of contentElements) {
|
|
1481
1540
|
await contentEl.recalculateDimensions();
|
|
@@ -1540,16 +1599,71 @@ const Popover = class {
|
|
|
1540
1599
|
onWillDismiss() {
|
|
1541
1600
|
return overlays.eventMethod(this.el, 'ionPopoverWillDismiss');
|
|
1542
1601
|
}
|
|
1602
|
+
onBackdropTap = () => {
|
|
1603
|
+
this.dismiss(undefined, overlays.BACKDROP);
|
|
1604
|
+
};
|
|
1605
|
+
onLifecycle = (modalEvent) => {
|
|
1606
|
+
const el = this.usersElement;
|
|
1607
|
+
const name = LIFECYCLE_MAP[modalEvent.type];
|
|
1608
|
+
if (el && name) {
|
|
1609
|
+
const event = new CustomEvent(name, {
|
|
1610
|
+
bubbles: false,
|
|
1611
|
+
cancelable: false,
|
|
1612
|
+
detail: modalEvent.detail,
|
|
1613
|
+
});
|
|
1614
|
+
el.dispatchEvent(event);
|
|
1615
|
+
}
|
|
1616
|
+
};
|
|
1617
|
+
configureTriggerInteraction = () => {
|
|
1618
|
+
const { trigger, triggerAction, el, destroyTriggerInteraction } = this;
|
|
1619
|
+
if (destroyTriggerInteraction) {
|
|
1620
|
+
destroyTriggerInteraction();
|
|
1621
|
+
}
|
|
1622
|
+
if (trigger === undefined) {
|
|
1623
|
+
return;
|
|
1624
|
+
}
|
|
1625
|
+
const triggerEl = (this.triggerEl = trigger !== undefined ? document.getElementById(trigger) : null);
|
|
1626
|
+
if (!triggerEl) {
|
|
1627
|
+
index.printIonWarning(`[ion-popover] - A trigger element with the ID "${trigger}" was not found in the DOM. The trigger element must be in the DOM when the "trigger" property is set on ion-popover.`, this.el);
|
|
1628
|
+
return;
|
|
1629
|
+
}
|
|
1630
|
+
this.destroyTriggerInteraction = configureTriggerInteraction(triggerEl, triggerAction, el);
|
|
1631
|
+
};
|
|
1632
|
+
configureKeyboardInteraction = () => {
|
|
1633
|
+
const { destroyKeyboardInteraction, el } = this;
|
|
1634
|
+
if (destroyKeyboardInteraction) {
|
|
1635
|
+
destroyKeyboardInteraction();
|
|
1636
|
+
}
|
|
1637
|
+
this.destroyKeyboardInteraction = configureKeyboardInteraction(el);
|
|
1638
|
+
};
|
|
1639
|
+
configureDismissInteraction = () => {
|
|
1640
|
+
const { destroyDismissInteraction, parentPopover, triggerAction, triggerEl, el } = this;
|
|
1641
|
+
if (!parentPopover || !triggerEl) {
|
|
1642
|
+
return;
|
|
1643
|
+
}
|
|
1644
|
+
if (destroyDismissInteraction) {
|
|
1645
|
+
destroyDismissInteraction();
|
|
1646
|
+
}
|
|
1647
|
+
this.destroyDismissInteraction = configureDismissInteraction(triggerEl, triggerAction, el, parentPopover);
|
|
1648
|
+
};
|
|
1543
1649
|
render() {
|
|
1544
1650
|
const mode = ionicGlobal.getIonMode(this);
|
|
1545
1651
|
const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
|
|
1546
1652
|
const desktop = ionicGlobal.isPlatform('desktop');
|
|
1547
1653
|
const enableArrow = arrow && !parentPopover;
|
|
1548
|
-
return (index.h(index.Host,
|
|
1654
|
+
return (index.h(index.Host, { key: '52ffc7116969ae1b8b927e67f2acbfe5f5434f70', "aria-modal": "true", "no-router": true, tabindex: "-1", ...htmlAttributes, style: {
|
|
1549
1655
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
1550
|
-
}, class:
|
|
1656
|
+
}, class: {
|
|
1657
|
+
...theme.getClassMap(this.cssClass),
|
|
1658
|
+
[mode]: true,
|
|
1659
|
+
'popover-translucent': this.translucent,
|
|
1660
|
+
'overlay-hidden': true,
|
|
1661
|
+
'popover-desktop': desktop,
|
|
1662
|
+
[`popover-side-${side}`]: true,
|
|
1663
|
+
[overlays.FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false,
|
|
1664
|
+
'popover-nested': !!parentPopover,
|
|
1665
|
+
}, onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }, !parentPopover && index.h("ion-backdrop", { key: '79a8e851dbd22119e21ffb2f4709c555251045c8', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), index.h("div", { key: 'c46c9f62c3ef3f902e23f27404eaa446a5d8cf88', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && index.h("div", { key: '9fdcbbc4ea6c7bde74f646d48eb77296b2c9dd83', class: "popover-arrow", part: "arrow" }), index.h("div", { key: '138e56bb83462ebb0908edb522b45ecf94b82aeb', class: "popover-content", part: "content" }, index.h("slot", { key: 'daeefcf002e8d89e91d6e0faf7f63f75b68a2dbe' })))));
|
|
1551
1666
|
}
|
|
1552
|
-
get el() { return index.getElement(this); }
|
|
1553
1667
|
static get watchers() { return {
|
|
1554
1668
|
"trigger": [{
|
|
1555
1669
|
"onTriggerChange": 0
|