voyager-ionic-core 8.5.7 → 8.6.1
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/action-sheet.js +37 -23
- package/components/alert.js +42 -26
- package/components/animation.js +2 -2
- package/components/backdrop.js +11 -4
- package/components/button-active.js +1 -1
- package/components/button.js +53 -29
- package/components/buttons.js +14 -4
- package/components/capacitor.js +1 -1
- package/components/checkbox.js +40 -16
- package/components/config.js +1 -1
- package/components/content.js +24 -5
- package/components/data.js +31 -6
- package/components/gesture-controller.js +1 -1
- package/components/haptic.js +1 -1
- package/components/hardware-back-button.js +2 -2
- package/components/header.js +12 -7
- package/components/helpers.js +3 -6
- package/components/icon.js +1 -2
- package/components/index.js +1 -1
- package/components/index2.js +1 -1
- package/components/index3.js +3 -5
- package/components/index4.js +1 -1
- package/components/index5.js +2 -2
- package/components/index6.js +28 -3
- package/components/index7.js +163 -27
- package/components/index8.js +1 -1
- package/components/index9.js +3 -163
- package/components/input-shims.js +25 -2
- package/components/input.utils.js +2 -2
- package/components/ion-accordion-group.js +20 -7
- package/components/ion-accordion.js +32 -14
- package/components/ion-app.js +4 -5
- package/components/ion-avatar.js +2 -4
- package/components/ion-back-button.js +12 -13
- package/components/ion-badge.js +2 -5
- package/components/ion-breadcrumb.js +22 -20
- package/components/ion-breadcrumbs.js +14 -10
- package/components/ion-card-content.js +2 -4
- package/components/ion-card-header.js +7 -5
- package/components/ion-card-subtitle.js +2 -5
- package/components/ion-card-title.js +2 -5
- package/components/ion-card.js +16 -11
- package/components/ion-chip.js +8 -5
- package/components/ion-col.js +1 -26
- package/components/ion-datetime-button.js +16 -14
- package/components/ion-datetime.js +222 -131
- package/components/ion-fab-button.js +37 -20
- package/components/ion-fab-list.js +7 -2
- package/components/ion-fab.js +10 -4
- package/components/ion-footer.js +13 -8
- package/components/ion-grid.js +4 -2
- package/components/ion-img.js +1 -6
- package/components/ion-infinite-scroll-content.js +2 -6
- package/components/ion-infinite-scroll.js +27 -6
- package/components/ion-input-otp.d.ts +11 -0
- package/components/ion-input-otp.js +631 -0
- package/components/ion-input-password-toggle.js +11 -13
- package/components/ion-input.js +79 -51
- package/components/ion-item-divider.js +11 -7
- package/components/ion-item-group.js +3 -5
- package/components/ion-item-option.js +16 -14
- package/components/ion-item-options.js +7 -5
- package/components/ion-item-sliding.js +8 -5
- package/components/ion-loading.js +38 -21
- package/components/ion-menu-button.js +17 -12
- package/components/ion-menu-toggle.js +11 -7
- package/components/ion-menu.js +28 -12
- package/components/ion-nav-link.js +7 -7
- package/components/ion-nav.js +9 -12
- package/components/ion-note.js +4 -7
- package/components/ion-picker-legacy.js +47 -27
- package/components/ion-progress-bar.js +20 -7
- package/components/ion-range.js +69 -29
- package/components/ion-refresher-content.js +2 -6
- package/components/ion-refresher.js +56 -8
- package/components/ion-reorder-group.js +7 -5
- package/components/ion-reorder.js +4 -6
- package/components/ion-route-redirect.js +0 -2
- package/components/ion-route.js +9 -7
- package/components/ion-router-link.js +9 -11
- package/components/ion-router-outlet.js +12 -10
- package/components/ion-router.js +19 -1
- package/components/ion-row.js +2 -3
- package/components/ion-searchbar.js +82 -33
- package/components/ion-segment-button.js +22 -13
- package/components/ion-segment-content.js +2 -3
- package/components/ion-segment-view.js +7 -7
- package/components/ion-segment.js +24 -13
- package/components/ion-select-option.js +5 -4
- package/components/ion-select.js +68 -34
- package/components/ion-skeleton-text.js +6 -4
- package/components/ion-split-pane.js +13 -8
- package/components/ion-tab-bar.js +9 -8
- package/components/ion-tab-button.js +12 -14
- package/components/ion-tab.js +5 -8
- package/components/ion-tabs.js +5 -6
- package/components/ion-text.js +3 -5
- package/components/ion-textarea.js +72 -36
- package/components/ion-thumbnail.js +2 -3
- package/components/ion-toast.js +58 -35
- package/components/ion-toggle.js +55 -24
- package/components/ionic-global.js +1 -1
- package/components/item.js +20 -14
- package/components/keyboard-controller.js +2 -2
- package/components/keyboard.js +134 -69
- package/components/keyboard2.js +69 -134
- package/components/label.js +4 -8
- package/components/list-header.js +4 -8
- package/components/list.js +6 -6
- package/components/modal.js +252 -205
- package/components/notch-controller.js +1 -1
- package/components/overlays.js +3 -3
- package/components/picker-column-option.js +20 -7
- package/components/picker-column.js +25 -10
- package/components/picker-column2.js +8 -11
- package/components/picker.js +2 -4
- package/components/popover.js +132 -40
- package/components/radio-group.js +11 -11
- package/components/radio.js +30 -16
- package/components/refresher.utils.js +2 -2
- package/components/ripple-effect.js +11 -3
- package/components/select-modal.js +4 -9
- package/components/select-popover.js +6 -9
- package/components/spinner.js +5 -6
- package/components/swipe-back.js +1 -1
- package/components/title.js +4 -8
- package/components/toolbar.js +4 -7
- package/css/core.css +1 -1
- package/css/core.css.map +1 -1
- package/css/global.bundle.css +1 -1
- package/css/global.bundle.css.map +1 -1
- package/css/ionic.bundle.css +1 -1
- package/css/ionic.bundle.css.map +1 -1
- package/css/structure.css +1 -1
- package/css/structure.css.map +1 -1
- package/dist/cjs/{animation-ab2d3449.js → animation-0T7gKwOt.js} +2 -2
- package/dist/cjs/{button-active-43e2b419.js → button-active-C-4ud7Ht.js} +3 -3
- package/dist/cjs/{capacitor-c04564bf.js → capacitor-DmA66EwP.js} +1 -1
- package/dist/cjs/{config-f6225ae7.js → config-U7OAuj53.js} +1 -1
- package/dist/cjs/{data-94e8d392.js → data-DRqa6oM4.js} +30 -5
- package/dist/cjs/{framework-delegate-862d9d00.js → framework-delegate-C7sIJyT5.js} +1 -1
- package/dist/cjs/{gesture-controller-9436f482.js → gesture-controller-dtqlP_q4.js} +1 -1
- package/dist/cjs/{haptic-f6b37aa3.js → haptic-ClPPQ_PS.js} +1 -1
- package/dist/cjs/{hardware-back-button-3d2b1004.js → hardware-back-button-D90qZxju.js} +2 -2
- package/dist/cjs/{helpers-8a48fdea.js → helpers-BITAzJfi.js} +2 -5
- package/dist/cjs/{index-dbe01e08.js → index-BDBT0u4l.js} +3 -3
- package/dist/cjs/{index-ee07ed59.js → index-CAvQ7Tka.js} +3 -4
- package/dist/cjs/{index-073c7cdc.js → index-CPbAsnJK.js} +1 -0
- package/dist/cjs/{index-31b07b9c.js → index-CVa6JE57.js} +3 -3
- package/dist/cjs/{index-a96d31ae.js → index-CxfLS2mX.js} +8 -9
- package/dist/cjs/{index-2e236a04.js → index-DODXXb_r.js} +1676 -675
- package/dist/cjs/{index-1eff7149.js → index-y0QaNtCi.js} +6 -7
- package/dist/cjs/index.cjs.js +22 -28
- package/dist/cjs/{input-shims-415be7ee.js → input-shims-D1Mfgd4s.js} +29 -6
- package/dist/cjs/{input.utils-a7957fd6.js → input.utils-DSoBEyUu.js} +3 -3
- package/dist/cjs/ion-accordion_2.cjs.entry.js +56 -29
- package/dist/cjs/ion-action-sheet.cjs.entry.js +50 -40
- package/dist/cjs/ion-alert.cjs.entry.js +59 -47
- package/dist/cjs/ion-app_8.cjs.entry.js +134 -105
- package/dist/cjs/ion-avatar_3.cjs.entry.js +10 -20
- package/dist/cjs/ion-back-button.cjs.entry.js +21 -26
- package/dist/cjs/ion-backdrop.cjs.entry.js +13 -10
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +39 -37
- package/dist/cjs/ion-button_2.cjs.entry.js +54 -37
- package/dist/cjs/ion-card_5.cjs.entry.js +36 -41
- package/dist/cjs/ion-checkbox.cjs.entry.js +44 -24
- package/dist/cjs/ion-chip.cjs.entry.js +11 -12
- package/dist/cjs/ion-col_3.cjs.entry.js +10 -38
- package/dist/cjs/ion-datetime-button.cjs.entry.js +23 -25
- package/dist/cjs/ion-datetime_3.cjs.entry.js +344 -241
- package/dist/cjs/ion-fab_3.cjs.entry.js +59 -35
- package/dist/cjs/ion-img.cjs.entry.js +4 -13
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +38 -25
- package/dist/cjs/ion-input-otp.cjs.entry.js +593 -0
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +17 -23
- package/dist/cjs/ion-input.cjs.entry.js +86 -62
- package/dist/cjs/ion-item-option_3.cjs.entry.js +40 -37
- package/dist/cjs/ion-item_8.cjs.entry.js +69 -74
- package/dist/cjs/ion-loading.cjs.entry.js +50 -37
- package/dist/cjs/ion-menu_3.cjs.entry.js +84 -63
- package/dist/cjs/ion-modal.cjs.entry.js +271 -228
- package/dist/cjs/ion-nav_2.cjs.entry.js +30 -37
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +24 -15
- package/dist/cjs/ion-picker-column.cjs.entry.js +32 -21
- package/dist/cjs/ion-picker.cjs.entry.js +4 -9
- package/dist/cjs/ion-popover.cjs.entry.js +143 -55
- package/dist/cjs/ion-progress-bar.cjs.entry.js +24 -15
- package/dist/cjs/ion-radio_2.cjs.entry.js +47 -37
- package/dist/cjs/ion-range.cjs.entry.js +78 -42
- package/dist/cjs/ion-refresher_2.cjs.entry.js +81 -41
- package/dist/cjs/ion-reorder_2.cjs.entry.js +19 -23
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +13 -9
- package/dist/cjs/ion-route_4.cjs.entry.js +52 -40
- package/dist/cjs/ion-searchbar.cjs.entry.js +91 -46
- package/dist/cjs/ion-segment-content.cjs.entry.js +3 -6
- package/dist/cjs/ion-segment-view.cjs.entry.js +8 -10
- package/dist/cjs/ion-segment_2.cjs.entry.js +55 -39
- package/dist/cjs/ion-select-modal.cjs.entry.js +12 -21
- package/dist/cjs/ion-select_3.cjs.entry.js +98 -70
- package/dist/cjs/ion-spinner.cjs.entry.js +12 -17
- package/dist/cjs/ion-split-pane.cjs.entry.js +16 -15
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +31 -36
- package/dist/cjs/ion-tab_2.cjs.entry.js +13 -20
- package/dist/cjs/ion-text.cjs.entry.js +6 -12
- package/dist/cjs/ion-textarea.cjs.entry.js +79 -47
- package/dist/cjs/ion-toast.cjs.entry.js +82 -63
- package/dist/cjs/ion-toggle.cjs.entry.js +64 -37
- package/dist/cjs/ionic.cjs.js +7 -10
- package/dist/cjs/{ios.transition-a131cd4d.js → ios.transition-baEy2tr4.js} +5 -6
- package/dist/cjs/{keyboard-0272231f.js → keyboard-UuAS4D_9.js} +1 -1
- package/dist/cjs/{keyboard-controller-c05e747a.js → keyboard-controller-GXBiBRKS.js} +2 -2
- package/dist/cjs/{keyboard-af1bb365.js → keyboard-hHzlEQpk.js} +3 -3
- package/dist/cjs/loader.cjs.js +3 -8
- package/dist/cjs/{md.transition-e018ebe5.js → md.transition-Bvc-JrM5.js} +5 -6
- package/dist/cjs/{notch-controller-09b7f358.js → notch-controller-BAbqGXRi.js} +2 -2
- package/dist/cjs/{overlays-4c291a05.js → overlays-DRDumz2b.js} +9 -10
- package/dist/cjs/{status-tap-f1acefac.js → status-tap-Db3WeCkO.js} +3 -4
- package/dist/cjs/{swipe-back-442ca3d7.js → swipe-back-bLyc4PSi.js} +5 -5
- package/dist/collection/collection-manifest.json +3 -2
- package/dist/collection/components/accordion/accordion.js +43 -13
- package/dist/collection/components/accordion-group/accordion-group.js +35 -8
- package/dist/collection/components/action-sheet/action-sheet.js +84 -31
- package/dist/collection/components/alert/alert.js +94 -34
- package/dist/collection/components/back-button/back-button.js +30 -14
- package/dist/collection/components/backdrop/backdrop.js +18 -3
- package/dist/collection/components/badge/badge.js +3 -4
- package/dist/collection/components/breadcrumb/breadcrumb.js +57 -26
- package/dist/collection/components/breadcrumbs/breadcrumbs.js +24 -10
- package/dist/collection/components/button/button.js +97 -36
- package/dist/collection/components/buttons/buttons.js +15 -1
- package/dist/collection/components/card/card.js +44 -16
- package/dist/collection/components/card-header/card-header.js +11 -3
- package/dist/collection/components/card-subtitle/card-subtitle.js +3 -4
- package/dist/collection/components/card-title/card-title.js +3 -4
- package/dist/collection/components/checkbox/checkbox.js +74 -24
- package/dist/collection/components/chip/chip.js +15 -4
- package/dist/collection/components/col/col.js +72 -50
- package/dist/collection/components/content/content.js +43 -9
- package/dist/collection/components/datetime/datetime.ios.css +7 -2
- package/dist/collection/components/datetime/datetime.js +323 -147
- package/dist/collection/components/datetime/datetime.md.css +9 -3
- package/dist/collection/components/datetime/utils/data.js +29 -4
- package/dist/collection/components/datetime-button/datetime-button.js +21 -11
- package/dist/collection/components/fab/fab.js +21 -6
- package/dist/collection/components/fab-button/fab-button.js +76 -28
- package/dist/collection/components/fab-list/fab-list.js +12 -2
- package/dist/collection/components/footer/footer.js +16 -5
- package/dist/collection/components/grid/grid.js +6 -1
- package/dist/collection/components/header/header.js +15 -4
- package/dist/collection/components/img/img.js +6 -6
- package/dist/collection/components/infinite-scroll/infinite-scroll.js +35 -7
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +6 -4
- package/dist/collection/components/input/input.js +178 -79
- package/dist/collection/components/input-otp/input-otp-interface.js +1 -0
- package/dist/collection/components/input-otp/input-otp.ios.css +381 -0
- package/dist/collection/components/input-otp/input-otp.js +1003 -0
- package/dist/collection/components/input-otp/input-otp.md.css +381 -0
- package/dist/collection/components/input-password-toggle/input-password-toggle.js +19 -11
- package/dist/collection/components/item/item.js +56 -21
- package/dist/collection/components/item-divider/item-divider.js +15 -5
- package/dist/collection/components/item-group/item-group.js +1 -1
- package/dist/collection/components/item-option/item-option.js +38 -18
- package/dist/collection/components/item-options/item-options.js +8 -2
- package/dist/collection/components/item-sliding/item-sliding.js +9 -3
- package/dist/collection/components/label/label.js +8 -6
- package/dist/collection/components/list/list.js +10 -4
- package/dist/collection/components/list-header/list-header.js +8 -8
- package/dist/collection/components/loading/loading.js +88 -31
- package/dist/collection/components/menu/menu.js +44 -12
- package/dist/collection/components/menu-button/menu-button.js +29 -12
- package/dist/collection/components/menu-toggle/menu-toggle.js +16 -7
- package/dist/collection/components/modal/animations/ios.enter.js +1 -41
- package/dist/collection/components/modal/animations/ios.leave.js +2 -24
- package/dist/collection/components/modal/animations/md.enter.js +2 -42
- package/dist/collection/components/modal/animations/md.leave.js +2 -24
- package/dist/collection/components/modal/gestures/sheet.js +122 -29
- package/dist/collection/components/modal/modal.ios.css +0 -10
- package/dist/collection/components/modal/modal.js +192 -55
- package/dist/collection/components/nav/nav.js +25 -12
- package/dist/collection/components/nav-link/nav-link.js +19 -9
- package/dist/collection/components/note/note.js +5 -6
- package/dist/collection/components/picker-column/picker-column.js +34 -10
- package/dist/collection/components/picker-column-option/picker-column-option.js +27 -6
- package/dist/collection/components/picker-legacy/picker.js +93 -33
- package/dist/collection/components/picker-legacy-column/picker-column.js +7 -5
- package/dist/collection/components/popover/popover.js +211 -58
- package/dist/collection/components/progress-bar/progress-bar.js +32 -7
- package/dist/collection/components/radio/radio.js +49 -19
- package/dist/collection/components/radio-group/radio-group.js +27 -13
- package/dist/collection/components/range/range.js +112 -37
- package/dist/collection/components/refresher/refresher.js +69 -7
- package/dist/collection/components/refresher-content/refresher-content.js +13 -9
- package/dist/collection/components/reorder/reorder.js +1 -1
- package/dist/collection/components/reorder-group/reorder-group.js +7 -2
- package/dist/collection/components/ripple-effect/ripple-effect.js +13 -2
- package/dist/collection/components/route/route.js +24 -9
- package/dist/collection/components/route-redirect/route-redirect.js +6 -6
- package/dist/collection/components/router/router.js +24 -2
- package/dist/collection/components/router-link/router-link.js +26 -14
- package/dist/collection/components/router-outlet/router-outlet.js +25 -9
- package/dist/collection/components/row/row.js +1 -1
- package/dist/collection/components/searchbar/searchbar.js +146 -51
- package/dist/collection/components/segment/segment.js +40 -15
- package/dist/collection/components/segment-button/segment-button.js +34 -13
- package/dist/collection/components/segment-content/segment-content.js +1 -1
- package/dist/collection/components/segment-view/segment-view.js +8 -4
- package/dist/collection/components/select/select.js +128 -48
- package/dist/collection/components/select-modal/select-modal.js +10 -5
- package/dist/collection/components/select-option/select-option.js +10 -4
- package/dist/collection/components/select-popover/select-popover.js +19 -9
- package/dist/collection/components/skeleton-text/skeleton-text.js +8 -3
- package/dist/collection/components/spinner/spinner.js +16 -8
- package/dist/collection/components/split-pane/split-pane.js +19 -6
- package/dist/collection/components/tab/tab.js +16 -9
- package/dist/collection/components/tab-bar/tab-bar.js +16 -7
- package/dist/collection/components/tab-button/tab-button.js +34 -18
- package/dist/collection/components/tabs/tabs.js +6 -4
- package/dist/collection/components/text/text.js +5 -6
- package/dist/collection/components/textarea/textarea.js +154 -59
- package/dist/collection/components/thumbnail/thumbnail.js +1 -1
- package/dist/collection/components/title/title.js +8 -8
- package/dist/collection/components/toast/toast.js +121 -47
- package/dist/collection/components/toggle/toggle.js +86 -28
- package/dist/collection/components/toolbar/toolbar.js +5 -4
- package/dist/collection/utils/input-shims/hacks/scroll-assist.js +23 -0
- package/dist/docs.d.ts +8 -0
- package/dist/docs.json +4490 -942
- package/dist/esm/{animation-8b25e105.js → animation-BWcUKtbn.js} +2 -2
- package/dist/esm/{button-active-90f1dbc4.js → button-active-Bxcnevju.js} +3 -3
- package/dist/esm/{capacitor-59395cbd.js → capacitor-CFERIeaU.js} +1 -1
- package/dist/esm/{config-9898ed97.js → config-AaTyISnm.js} +1 -1
- package/dist/esm/{data-0d7ea6eb.js → data-GIsHsYIB.js} +31 -6
- package/dist/esm/{framework-delegate-56b467ad.js → framework-delegate-DxcnWic_.js} +1 -1
- package/dist/esm/{gesture-controller-314a54f6.js → gesture-controller-BTEOs1at.js} +1 -1
- package/dist/esm/{haptic-ac164e4c.js → haptic-DzAMWJuk.js} +2 -2
- package/dist/esm/{hardware-back-button-a7eb8233.js → hardware-back-button-DcH0BbDp.js} +2 -2
- package/dist/esm/{helpers-d94bc8ad.js → helpers-1O4D2b7y.js} +3 -6
- package/dist/esm/{index-e2cf2ceb.js → index-BLV6ykCk.js} +2 -1
- package/dist/esm/{index-527b9e34.js → index-B_U9CtaY.js} +1667 -654
- package/dist/esm/{index-9a17db3d.js → index-BlJTBdxG.js} +3 -3
- package/dist/esm/{index-be190feb.js → index-CWbP1eJz.js} +3 -3
- package/dist/esm/{index-39782642.js → index-CfgBF1SE.js} +4 -6
- package/dist/esm/{index-18f31305.js → index-D8sncTHY.js} +5 -6
- package/dist/esm/{index-68c0d151.js → index-DfBA5ztX.js} +4 -5
- package/dist/esm/index.js +16 -18
- package/dist/esm/{input-shims-279903e2.js → input-shims-C3lNp93k.js} +29 -6
- package/dist/esm/{input.utils-40504d6d.js → input.utils-zWijNCrx.js} +3 -3
- package/dist/esm/ion-accordion_2.entry.js +52 -23
- package/dist/esm/ion-action-sheet.entry.js +48 -36
- package/dist/esm/ion-alert.entry.js +53 -39
- package/dist/esm/ion-app_8.entry.js +99 -68
- package/dist/esm/ion-avatar_3.entry.js +8 -16
- package/dist/esm/ion-back-button.entry.js +14 -17
- package/dist/esm/ion-backdrop.entry.js +12 -7
- package/dist/esm/ion-breadcrumb_2.entry.js +37 -33
- package/dist/esm/ion-button_2.entry.js +50 -31
- package/dist/esm/ion-card_5.entry.js +31 -34
- package/dist/esm/ion-checkbox.entry.js +43 -21
- package/dist/esm/ion-chip.entry.js +10 -9
- package/dist/esm/ion-col_3.entry.js +8 -34
- package/dist/esm/ion-datetime-button.entry.js +18 -18
- package/dist/esm/ion-datetime_3.entry.js +279 -174
- package/dist/esm/ion-fab_3.entry.js +56 -30
- package/dist/esm/ion-img.entry.js +3 -10
- package/dist/esm/ion-infinite-scroll_2.entry.js +33 -18
- package/dist/esm/ion-input-otp.entry.js +591 -0
- package/dist/esm/ion-input-password-toggle.entry.js +12 -16
- package/dist/esm/ion-input.entry.js +84 -58
- package/dist/esm/ion-item-option_3.entry.js +36 -31
- package/dist/esm/ion-item_8.entry.js +60 -63
- package/dist/esm/ion-loading.entry.js +46 -31
- package/dist/esm/ion-menu_3.entry.js +66 -43
- package/dist/esm/ion-modal.entry.js +260 -215
- package/dist/esm/ion-nav_2.entry.js +17 -22
- package/dist/esm/ion-picker-column-option.entry.js +23 -12
- package/dist/esm/ion-picker-column.entry.js +29 -16
- package/dist/esm/ion-picker.entry.js +4 -7
- package/dist/esm/ion-popover.entry.js +137 -47
- package/dist/esm/ion-progress-bar.entry.js +22 -11
- package/dist/esm/ion-radio_2.entry.js +45 -33
- package/dist/esm/ion-range.entry.js +72 -34
- package/dist/esm/ion-refresher_2.entry.js +68 -26
- package/dist/esm/ion-reorder_2.entry.js +17 -19
- package/dist/esm/ion-ripple-effect.entry.js +12 -6
- package/dist/esm/ion-route_4.entry.js +35 -21
- package/dist/esm/ion-searchbar.entry.js +86 -39
- package/dist/esm/ion-segment-content.entry.js +3 -4
- package/dist/esm/ion-segment-view.entry.js +8 -8
- package/dist/esm/ion-segment_2.entry.js +50 -32
- package/dist/esm/ion-select-modal.entry.js +12 -19
- package/dist/esm/ion-select_3.entry.js +88 -58
- package/dist/esm/ion-spinner.entry.js +8 -11
- package/dist/esm/ion-split-pane.entry.js +13 -10
- package/dist/esm/ion-tab-bar_2.entry.js +28 -31
- package/dist/esm/ion-tab_2.entry.js +11 -16
- package/dist/esm/ion-text.entry.js +5 -9
- package/dist/esm/ion-textarea.entry.js +77 -43
- package/dist/esm/ion-toast.entry.js +65 -44
- package/dist/esm/ion-toggle.entry.js +62 -33
- package/dist/esm/ionic.js +5 -7
- package/dist/esm/{ios.transition-4047cb68.js → ios.transition-BmXtMRXZ.js} +5 -6
- package/dist/esm/{keyboard-73175e24.js → keyboard-CUw4ekVy.js} +1 -1
- package/dist/esm/{keyboard-controller-ec5c2bfa.js → keyboard-controller-BaaVITYt.js} +2 -2
- package/dist/esm/{keyboard-52278bd7.js → keyboard-ywgs5efA.js} +3 -3
- package/dist/esm/loader.js +3 -6
- package/dist/esm/{md.transition-30ce8d1b.js → md.transition-CLI683c7.js} +5 -6
- package/dist/esm/{notch-controller-1a1f7183.js → notch-controller-C5LPspO8.js} +2 -2
- package/dist/esm/{overlays-d99dcb0a.js → overlays-8Y2rA-ps.js} +6 -7
- package/dist/esm/{status-tap-42a8af65.js → status-tap-7t9T91bG.js} +3 -4
- package/dist/esm/{swipe-back-04123e7c.js → swipe-back-D_6Vqlwy.js} +5 -5
- package/dist/html.html-data.json +377 -1
- package/dist/index.js +1 -1
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-0fc6fc38.entry.js +4 -0
- package/dist/ionic/p-14ae45e4.entry.js +4 -0
- package/dist/ionic/p-15da9760.entry.js +4 -0
- package/dist/ionic/p-1739f5f2.entry.js +4 -0
- package/dist/ionic/p-18f1813b.entry.js +4 -0
- package/dist/ionic/p-2020aa51.entry.js +4 -0
- package/dist/ionic/p-2c6c6991.entry.js +4 -0
- package/dist/ionic/p-2cfd6b61.entry.js +4 -0
- package/dist/ionic/p-2d01ecd5.entry.js +4 -0
- package/dist/ionic/p-2da6a16b.entry.js +4 -0
- package/dist/ionic/p-3a4feac2.entry.js +4 -0
- package/dist/ionic/p-473877b6.entry.js +4 -0
- package/dist/ionic/p-4b7d1f35.entry.js +4 -0
- package/dist/ionic/p-4d61f20b.entry.js +4 -0
- package/dist/ionic/p-4ddc10ef.entry.js +4 -0
- package/dist/ionic/p-56712fd4.entry.js +4 -0
- package/dist/ionic/p-6b666996.entry.js +4 -0
- package/dist/ionic/p-7149db7e.entry.js +4 -0
- package/dist/ionic/p-73d7ad90.entry.js +4 -0
- package/dist/ionic/p-76b697a3.entry.js +4 -0
- package/dist/ionic/{p-ed005d9c.js → p-7qk7mxdr.js} +1 -1
- package/dist/ionic/p-81f1b778.entry.js +4 -0
- package/dist/ionic/p-8957540a.entry.js +4 -0
- package/dist/ionic/p-8a8ef46b.entry.js +4 -0
- package/dist/ionic/p-8c674371.entry.js +4 -0
- package/dist/ionic/p-8f2f76e0.entry.js +4 -0
- package/dist/ionic/p-91bde659.entry.js +4 -0
- package/dist/ionic/p-96389029.entry.js +4 -0
- package/dist/ionic/p-97667b9c.entry.js +4 -0
- package/dist/ionic/p-9b46b31b.entry.js +4 -0
- package/dist/ionic/p-9e699d4a.entry.js +4 -0
- package/dist/ionic/p-9eeaBrnk.js +4 -0
- package/dist/ionic/p-B1MNHTYX.js +4 -0
- package/dist/ionic/p-B3XSxWNQ.js +4 -0
- package/dist/ionic/{p-da2b833b.js → p-BLV6ykCk.js} +1 -1
- package/dist/ionic/p-BROiNJRB.js +4 -0
- package/dist/ionic/p-B_U9CtaY.js +5 -0
- package/dist/ionic/{p-f08a92cc.js → p-BhLqfMrf.js} +1 -1
- package/dist/ionic/{p-2bb55ebc.js → p-BmQduG8c.js} +1 -1
- package/dist/ionic/p-CIGNaXM1.js +4 -0
- package/dist/ionic/{p-89b61afc.js → p-CKvCXMs9.js} +1 -1
- package/dist/ionic/p-CL-KfWxq.js +4 -0
- package/dist/ionic/p-CPgXVSua.js +4 -0
- package/dist/ionic/p-CRiGyYOA.js +4 -0
- package/dist/ionic/{p-10a1bddc.js → p-CbI9XwwW.js} +1 -1
- package/dist/ionic/p-Cl0B-RWe.js +4 -0
- package/dist/ionic/p-CtWGkNnJ.js +4 -0
- package/dist/ionic/{p-27281edd.js → p-D13Eaw-8.js} +1 -1
- package/dist/ionic/{p-0f5e6225.js → p-DCfS5Jk_.js} +1 -1
- package/dist/ionic/p-DgdWETCP.js +4 -0
- package/dist/ionic/p-Do-uqmtX.js +4 -0
- package/dist/ionic/p-DonTxalL.js +4 -0
- package/dist/ionic/{p-b7b1d91a.js → p-DzH0J0yi.js} +1 -1
- package/dist/ionic/p-QwEXyOze.js +4 -0
- package/dist/ionic/p-a6282370.entry.js +4 -0
- package/dist/ionic/p-a9ac80bd.entry.js +4 -0
- package/dist/ionic/p-a9f99c74.entry.js +4 -0
- package/dist/ionic/p-aIxOGKys.js +4 -0
- package/dist/ionic/p-aa8956c2.entry.js +4 -0
- package/dist/ionic/p-b37dbc31.entry.js +4 -0
- package/dist/ionic/p-b9f79efc.entry.js +4 -0
- package/dist/ionic/p-bNmY-WfR.js +4 -0
- package/dist/ionic/p-bb5fc02e.entry.js +4 -0
- package/dist/ionic/p-bc01c127.entry.js +4 -0
- package/dist/ionic/p-bec79123.entry.js +4 -0
- package/dist/ionic/p-c0335397.entry.js +4 -0
- package/dist/ionic/p-c448135a.entry.js +4 -0
- package/dist/ionic/p-c4912ca5.entry.js +4 -0
- package/dist/ionic/p-c884d7e3.entry.js +4 -0
- package/dist/ionic/p-cb787a4b.entry.js +4 -0
- package/dist/ionic/p-cd12ed1c.entry.js +4 -0
- package/dist/ionic/p-cf632ee2.entry.js +4 -0
- package/dist/ionic/p-d8ed5df0.entry.js +4 -0
- package/dist/ionic/p-e1260ed5.entry.js +4 -0
- package/dist/ionic/p-e30ff968.entry.js +4 -0
- package/dist/ionic/{p-b6d324f0.js → p-ei_RiGrl.js} +1 -1
- package/dist/ionic/p-f83db8cd.entry.js +4 -0
- package/dist/ionic/p-fbc5481b.entry.js +4 -0
- package/dist/ionic/p-fcc7437b.entry.js +4 -0
- package/dist/types/components/button/button.d.ts +11 -0
- package/dist/types/components/datetime/datetime-interface.d.ts +1 -0
- package/dist/types/components/datetime/datetime.d.ts +6 -0
- package/dist/types/components/datetime/utils/data.d.ts +3 -1
- package/dist/types/components/datetime/utils/manipulation.d.ts +1 -0
- package/dist/types/components/input-otp/input-otp-interface.d.ts +21 -0
- package/dist/types/components/input-otp/input-otp.d.ts +268 -0
- package/dist/types/components/searchbar/searchbar.d.ts +1 -1
- package/dist/types/components.d.ts +786 -2
- package/dist/types/interface.d.ts +1 -0
- package/dist/types/stencil-public-runtime.d.ts +29 -1
- package/hydrate/index.d.ts +44 -7
- package/hydrate/index.js +5671 -2585
- package/hydrate/index.mjs +5670 -2584
- package/loader/cdn.js +1 -2
- package/loader/index.cjs.js +1 -2
- package/loader/index.es2017.js +0 -1
- package/loader/index.js +1 -2
- package/package.json +4 -4
- package/dist/cjs/app-globals-ddceb1f4.js +0 -10
- package/dist/cjs/index-cc858e97.js +0 -129
- package/dist/cjs/ionic-global-6dea5a96.js +0 -152
- package/dist/esm/app-globals-dbdbb3df.js +0 -8
- package/dist/esm/index-cfd9c1f2.js +0 -121
- package/dist/esm/ionic-global-b26f573e.js +0 -147
- package/dist/esm/polyfills/core-js.js +0 -11
- package/dist/esm/polyfills/dom.js +0 -79
- package/dist/esm/polyfills/es5-html-element.js +0 -1
- package/dist/esm/polyfills/index.js +0 -34
- package/dist/esm/polyfills/system.js +0 -6
- package/dist/esm-es5/animation-8b25e105.js +0 -4
- package/dist/esm-es5/app-globals-dbdbb3df.js +0 -4
- package/dist/esm-es5/button-active-90f1dbc4.js +0 -4
- package/dist/esm-es5/capacitor-59395cbd.js +0 -4
- package/dist/esm-es5/compare-with-utils-a96ff2ea.js +0 -4
- package/dist/esm-es5/config-9898ed97.js +0 -4
- package/dist/esm-es5/cubic-bezier-fe2083dc.js +0 -4
- package/dist/esm-es5/data-0d7ea6eb.js +0 -4
- package/dist/esm-es5/dir-babeabeb.js +0 -4
- package/dist/esm-es5/focus-visible-dd40d69f.js +0 -4
- package/dist/esm-es5/framework-delegate-56b467ad.js +0 -4
- package/dist/esm-es5/gesture-controller-314a54f6.js +0 -4
- package/dist/esm-es5/haptic-ac164e4c.js +0 -4
- package/dist/esm-es5/hardware-back-button-a7eb8233.js +0 -4
- package/dist/esm-es5/helpers-d94bc8ad.js +0 -4
- package/dist/esm-es5/index-18f31305.js +0 -4
- package/dist/esm-es5/index-39782642.js +0 -4
- package/dist/esm-es5/index-527b9e34.js +0 -5
- package/dist/esm-es5/index-68c0d151.js +0 -4
- package/dist/esm-es5/index-9a17db3d.js +0 -4
- package/dist/esm-es5/index-a5d50daf.js +0 -4
- package/dist/esm-es5/index-be190feb.js +0 -4
- package/dist/esm-es5/index-cfd9c1f2.js +0 -5
- package/dist/esm-es5/index-e2cf2ceb.js +0 -4
- package/dist/esm-es5/index.js +0 -4
- package/dist/esm-es5/input-shims-279903e2.js +0 -4
- package/dist/esm-es5/input.utils-40504d6d.js +0 -4
- package/dist/esm-es5/ion-accordion_2.entry.js +0 -4
- package/dist/esm-es5/ion-action-sheet.entry.js +0 -4
- package/dist/esm-es5/ion-alert.entry.js +0 -4
- package/dist/esm-es5/ion-app_8.entry.js +0 -4
- package/dist/esm-es5/ion-avatar_3.entry.js +0 -4
- package/dist/esm-es5/ion-back-button.entry.js +0 -4
- package/dist/esm-es5/ion-backdrop.entry.js +0 -4
- package/dist/esm-es5/ion-breadcrumb_2.entry.js +0 -4
- package/dist/esm-es5/ion-button_2.entry.js +0 -4
- package/dist/esm-es5/ion-card_5.entry.js +0 -4
- package/dist/esm-es5/ion-checkbox.entry.js +0 -4
- package/dist/esm-es5/ion-chip.entry.js +0 -4
- package/dist/esm-es5/ion-col_3.entry.js +0 -4
- package/dist/esm-es5/ion-datetime-button.entry.js +0 -4
- package/dist/esm-es5/ion-datetime_3.entry.js +0 -4
- package/dist/esm-es5/ion-fab_3.entry.js +0 -4
- package/dist/esm-es5/ion-img.entry.js +0 -4
- package/dist/esm-es5/ion-infinite-scroll_2.entry.js +0 -4
- package/dist/esm-es5/ion-input-password-toggle.entry.js +0 -4
- package/dist/esm-es5/ion-input.entry.js +0 -4
- package/dist/esm-es5/ion-item-option_3.entry.js +0 -4
- package/dist/esm-es5/ion-item_8.entry.js +0 -4
- package/dist/esm-es5/ion-loading.entry.js +0 -4
- package/dist/esm-es5/ion-menu_3.entry.js +0 -4
- package/dist/esm-es5/ion-modal.entry.js +0 -4
- package/dist/esm-es5/ion-nav_2.entry.js +0 -4
- package/dist/esm-es5/ion-picker-column-option.entry.js +0 -4
- package/dist/esm-es5/ion-picker-column.entry.js +0 -4
- package/dist/esm-es5/ion-picker.entry.js +0 -4
- package/dist/esm-es5/ion-popover.entry.js +0 -4
- package/dist/esm-es5/ion-progress-bar.entry.js +0 -4
- package/dist/esm-es5/ion-radio_2.entry.js +0 -4
- package/dist/esm-es5/ion-range.entry.js +0 -4
- package/dist/esm-es5/ion-refresher_2.entry.js +0 -4
- package/dist/esm-es5/ion-reorder_2.entry.js +0 -4
- package/dist/esm-es5/ion-ripple-effect.entry.js +0 -4
- package/dist/esm-es5/ion-route_4.entry.js +0 -4
- package/dist/esm-es5/ion-searchbar.entry.js +0 -4
- package/dist/esm-es5/ion-segment-content.entry.js +0 -4
- package/dist/esm-es5/ion-segment-view.entry.js +0 -4
- package/dist/esm-es5/ion-segment_2.entry.js +0 -4
- package/dist/esm-es5/ion-select-modal.entry.js +0 -4
- package/dist/esm-es5/ion-select_3.entry.js +0 -4
- package/dist/esm-es5/ion-spinner.entry.js +0 -4
- package/dist/esm-es5/ion-split-pane.entry.js +0 -4
- package/dist/esm-es5/ion-tab-bar_2.entry.js +0 -4
- package/dist/esm-es5/ion-tab_2.entry.js +0 -4
- package/dist/esm-es5/ion-text.entry.js +0 -4
- package/dist/esm-es5/ion-textarea.entry.js +0 -4
- package/dist/esm-es5/ion-toast.entry.js +0 -4
- package/dist/esm-es5/ion-toggle.entry.js +0 -4
- package/dist/esm-es5/ionic-global-b26f573e.js +0 -4
- package/dist/esm-es5/ionic.js +0 -4
- package/dist/esm-es5/ios.transition-4047cb68.js +0 -4
- package/dist/esm-es5/keyboard-52278bd7.js +0 -4
- package/dist/esm-es5/keyboard-73175e24.js +0 -4
- package/dist/esm-es5/keyboard-controller-ec5c2bfa.js +0 -4
- package/dist/esm-es5/loader.js +0 -4
- package/dist/esm-es5/lock-controller-316928be.js +0 -4
- package/dist/esm-es5/md.transition-30ce8d1b.js +0 -4
- package/dist/esm-es5/notch-controller-1a1f7183.js +0 -4
- package/dist/esm-es5/overlays-d99dcb0a.js +0 -4
- package/dist/esm-es5/spinner-configs-964f7cf3.js +0 -4
- package/dist/esm-es5/status-tap-42a8af65.js +0 -4
- package/dist/esm-es5/swipe-back-04123e7c.js +0 -4
- package/dist/esm-es5/theme-01f3f29c.js +0 -4
- package/dist/esm-es5/watch-options-c2911ace.js +0 -4
- package/dist/ionic/ionic.js +0 -127
- package/dist/ionic/p-00023f5a.system.js +0 -4
- package/dist/ionic/p-012c3ceb.system.js +0 -4
- package/dist/ionic/p-03480b95.system.entry.js +0 -4
- package/dist/ionic/p-08cef0b1.entry.js +0 -4
- package/dist/ionic/p-08e01816.system.js +0 -4
- package/dist/ionic/p-0af640d6.entry.js +0 -4
- package/dist/ionic/p-105b2e8b.entry.js +0 -4
- package/dist/ionic/p-117d0013.system.entry.js +0 -4
- package/dist/ionic/p-11dca959.entry.js +0 -4
- package/dist/ionic/p-12193821.system.js +0 -4
- package/dist/ionic/p-12830298.system.entry.js +0 -4
- package/dist/ionic/p-14154301.system.entry.js +0 -4
- package/dist/ionic/p-1706b406.system.entry.js +0 -4
- package/dist/ionic/p-17e21141.js +0 -4
- package/dist/ionic/p-19494658.system.entry.js +0 -4
- package/dist/ionic/p-1966a13c.system.js +0 -4
- package/dist/ionic/p-1974d5b2.system.js +0 -4
- package/dist/ionic/p-1a7df1c3.system.js +0 -4
- package/dist/ionic/p-1a81ac09.system.js +0 -4
- package/dist/ionic/p-1b9c59ab.js +0 -4
- package/dist/ionic/p-1d307396.system.js +0 -4
- package/dist/ionic/p-1dfc11b3.system.js +0 -4
- package/dist/ionic/p-1e4371bd.js +0 -4
- package/dist/ionic/p-1e955a45.system.js +0 -4
- package/dist/ionic/p-200fc491.js +0 -4
- package/dist/ionic/p-20d469d0.system.js +0 -4
- package/dist/ionic/p-21891ead.js +0 -4
- package/dist/ionic/p-2233344a.system.js +0 -4
- package/dist/ionic/p-2469240b.entry.js +0 -4
- package/dist/ionic/p-24a6c8a3.system.entry.js +0 -4
- package/dist/ionic/p-257fb777.entry.js +0 -4
- package/dist/ionic/p-25b10f81.js +0 -4
- package/dist/ionic/p-2b7827c7.js +0 -4
- package/dist/ionic/p-2bff0e69.system.entry.js +0 -4
- package/dist/ionic/p-31dc303d.entry.js +0 -4
- package/dist/ionic/p-3535d6b5.entry.js +0 -4
- package/dist/ionic/p-35cdfd77.system.entry.js +0 -4
- package/dist/ionic/p-393ffcc2.entry.js +0 -4
- package/dist/ionic/p-39fa7dd1.system.entry.js +0 -4
- package/dist/ionic/p-3a30f31b.system.entry.js +0 -4
- package/dist/ionic/p-3e1e14d9.system.js +0 -4
- package/dist/ionic/p-42f08b26.system.entry.js +0 -4
- package/dist/ionic/p-4609d030.system.js +0 -4
- package/dist/ionic/p-481e0885.entry.js +0 -4
- package/dist/ionic/p-4a5be299.system.entry.js +0 -4
- package/dist/ionic/p-4c667fce.js +0 -4
- package/dist/ionic/p-4cf4172e.entry.js +0 -4
- package/dist/ionic/p-4da92dac.entry.js +0 -4
- package/dist/ionic/p-4ed5db19.system.js +0 -4
- package/dist/ionic/p-4f255d5a.system.js +0 -4
- package/dist/ionic/p-50cb2e8b.system.entry.js +0 -4
- package/dist/ionic/p-57957c0f.entry.js +0 -4
- package/dist/ionic/p-57d6e18e.entry.js +0 -4
- package/dist/ionic/p-57e55ecb.system.js +0 -4
- package/dist/ionic/p-5b67b447.js +0 -4
- package/dist/ionic/p-5c9feddc.system.entry.js +0 -4
- package/dist/ionic/p-5fac20aa.system.entry.js +0 -4
- package/dist/ionic/p-612096e6.system.entry.js +0 -4
- package/dist/ionic/p-6201c4ba.entry.js +0 -4
- package/dist/ionic/p-625248d0.system.js +0 -4
- package/dist/ionic/p-663413be.system.js +0 -4
- package/dist/ionic/p-6636a436.js +0 -4
- package/dist/ionic/p-66a5d6a8.js +0 -5
- package/dist/ionic/p-66df5468.system.entry.js +0 -4
- package/dist/ionic/p-67077d48.entry.js +0 -4
- package/dist/ionic/p-67cacd6d.entry.js +0 -4
- package/dist/ionic/p-6835ebdd.system.entry.js +0 -4
- package/dist/ionic/p-6b8530f5.system.entry.js +0 -4
- package/dist/ionic/p-6c474e87.entry.js +0 -4
- package/dist/ionic/p-6dd86ff5.system.entry.js +0 -4
- package/dist/ionic/p-6ec0c94a.entry.js +0 -4
- package/dist/ionic/p-6f832afe.system.entry.js +0 -4
- package/dist/ionic/p-707408c5.system.entry.js +0 -4
- package/dist/ionic/p-712c0131.entry.js +0 -4
- package/dist/ionic/p-721f43f9.entry.js +0 -4
- package/dist/ionic/p-7445a2e5.system.js +0 -4
- package/dist/ionic/p-7611ede3.system.entry.js +0 -4
- package/dist/ionic/p-781e2dbb.system.js +0 -4
- package/dist/ionic/p-792919fd.system.js +0 -4
- package/dist/ionic/p-7b8c12c3.entry.js +0 -4
- package/dist/ionic/p-7c5c7ae1.system.entry.js +0 -4
- package/dist/ionic/p-7e3e6ed2.entry.js +0 -4
- package/dist/ionic/p-7ffedf77.system.entry.js +0 -4
- package/dist/ionic/p-809483ac.js +0 -4
- package/dist/ionic/p-81904a80.entry.js +0 -4
- package/dist/ionic/p-84096b45.system.js +0 -4
- package/dist/ionic/p-8450f761.entry.js +0 -4
- package/dist/ionic/p-8460d95a.entry.js +0 -4
- package/dist/ionic/p-85b01465.js +0 -4
- package/dist/ionic/p-865fe95c.entry.js +0 -4
- package/dist/ionic/p-8674af94.entry.js +0 -4
- package/dist/ionic/p-890a4ee2.entry.js +0 -4
- package/dist/ionic/p-891553d8.entry.js +0 -4
- package/dist/ionic/p-8985cdb6.system.js +0 -4
- package/dist/ionic/p-8b050e84.system.js +0 -4
- package/dist/ionic/p-8d2d39d0.js +0 -4
- package/dist/ionic/p-8dacf4e2.entry.js +0 -4
- package/dist/ionic/p-8ededb41.js +0 -4
- package/dist/ionic/p-94551927.js +0 -4
- package/dist/ionic/p-95001a19.js +0 -4
- package/dist/ionic/p-965287fb.system.entry.js +0 -4
- package/dist/ionic/p-979d4f5c.system.js +0 -4
- package/dist/ionic/p-98fd942b.system.entry.js +0 -4
- package/dist/ionic/p-9df5043e.system.entry.js +0 -4
- package/dist/ionic/p-9e753482.system.entry.js +0 -4
- package/dist/ionic/p-a0fd2fe5.system.entry.js +0 -4
- package/dist/ionic/p-a2c6a9c8.entry.js +0 -4
- package/dist/ionic/p-a2dd5b69.system.entry.js +0 -4
- package/dist/ionic/p-a4866e3e.system.js +0 -4
- package/dist/ionic/p-a5dbe0ff.system.entry.js +0 -4
- package/dist/ionic/p-a7a97bf4.system.entry.js +0 -4
- package/dist/ionic/p-a835aca8.entry.js +0 -4
- package/dist/ionic/p-a83e3290.system.js +0 -4
- package/dist/ionic/p-a93873de.system.js +0 -4
- package/dist/ionic/p-aad57e35.entry.js +0 -4
- package/dist/ionic/p-ab7337e1.entry.js +0 -4
- package/dist/ionic/p-abe101da.system.js +0 -4
- package/dist/ionic/p-ad592db9.entry.js +0 -4
- package/dist/ionic/p-aded71ec.js +0 -4
- package/dist/ionic/p-ae039072.entry.js +0 -4
- package/dist/ionic/p-aebfab05.system.entry.js +0 -4
- package/dist/ionic/p-b06ac4a5.system.js +0 -4
- package/dist/ionic/p-b2e7eda0.system.entry.js +0 -4
- package/dist/ionic/p-b445ff65.entry.js +0 -4
- package/dist/ionic/p-b4d17da0.system.entry.js +0 -4
- package/dist/ionic/p-b5432d15.entry.js +0 -4
- package/dist/ionic/p-b8050298.system.entry.js +0 -4
- package/dist/ionic/p-b904cfe2.system.entry.js +0 -4
- package/dist/ionic/p-b9c793d4.entry.js +0 -4
- package/dist/ionic/p-bafc3eae.system.entry.js +0 -4
- package/dist/ionic/p-bf184319.system.entry.js +0 -4
- package/dist/ionic/p-bfb763d0.system.entry.js +0 -4
- package/dist/ionic/p-c16443a8.system.js +0 -4
- package/dist/ionic/p-c1b7d311.system.entry.js +0 -4
- package/dist/ionic/p-c2160d8c.entry.js +0 -4
- package/dist/ionic/p-c468af8a.system.js +0 -4
- package/dist/ionic/p-c5b77054.entry.js +0 -4
- package/dist/ionic/p-c5bfa3e9.entry.js +0 -4
- package/dist/ionic/p-c61cc894.js +0 -4
- package/dist/ionic/p-cad82569.entry.js +0 -4
- package/dist/ionic/p-d16fab3f.entry.js +0 -4
- package/dist/ionic/p-d1eb2d7f.entry.js +0 -4
- package/dist/ionic/p-d382f09c.system.js +0 -4
- package/dist/ionic/p-d8d84afa.system.js +0 -4
- package/dist/ionic/p-d984c1ab.system.entry.js +0 -4
- package/dist/ionic/p-dabe3bd4.js +0 -4
- package/dist/ionic/p-df069a0d.entry.js +0 -4
- package/dist/ionic/p-e1678e42.entry.js +0 -4
- package/dist/ionic/p-e6068998.system.entry.js +0 -4
- package/dist/ionic/p-e673a0a2.system.js +0 -4
- package/dist/ionic/p-e727e32d.system.entry.js +0 -4
- package/dist/ionic/p-e8245753.entry.js +0 -4
- package/dist/ionic/p-e887b6a9.system.js +0 -4
- package/dist/ionic/p-f08dfb19.entry.js +0 -4
- package/dist/ionic/p-f0c9f8e3.system.entry.js +0 -4
- package/dist/ionic/p-f0ef39ab.entry.js +0 -4
- package/dist/ionic/p-f11a9436.system.js +0 -5
- package/dist/ionic/p-f22490a7.system.entry.js +0 -4
- package/dist/ionic/p-f6bb9be7.system.entry.js +0 -4
- package/dist/ionic/p-f6e7d104.system.js +0 -4
- package/dist/ionic/p-f725bf9e.system.js +0 -4
- package/dist/ionic/p-f9a87db2.system.entry.js +0 -4
- package/dist/ionic/p-fa3f4b96.system.js +0 -4
- package/dist/ionic/p-fe063952.system.entry.js +0 -4
- package/loader/package.json +0 -11
- /package/dist/cjs/{compare-with-utils-df1001d7.js → compare-with-utils-DSicavqM.js} +0 -0
- /package/dist/cjs/{cubic-bezier-f2dccc53.js → cubic-bezier-DAjy1V-e.js} +0 -0
- /package/dist/cjs/{dir-94c21456.js → dir-Cn0z1rJH.js} +0 -0
- /package/dist/cjs/{focus-visible-7a0ce04f.js → focus-visible-CCvKiLh3.js} +0 -0
- /package/dist/cjs/{index-c8d52405.js → index-DkNv4J_i.js} +0 -0
- /package/dist/cjs/{lock-controller-6585a42a.js → lock-controller-aDB9wrEf.js} +0 -0
- /package/dist/cjs/{spinner-configs-282fd50a.js → spinner-configs-DxHKnd3-.js} +0 -0
- /package/dist/cjs/{theme-d1c573d2.js → theme-CeDs6Hcv.js} +0 -0
- /package/dist/cjs/{watch-options-f5f3e158.js → watch-options-CviOsrTS.js} +0 -0
- /package/dist/esm/{compare-with-utils-a96ff2ea.js → compare-with-utils-sObYyvOy.js} +0 -0
- /package/dist/esm/{cubic-bezier-fe2083dc.js → cubic-bezier-hHmYLOfE.js} +0 -0
- /package/dist/esm/{dir-babeabeb.js → dir-C53feagD.js} +0 -0
- /package/dist/esm/{focus-visible-dd40d69f.js → focus-visible-BmVRXR1y.js} +0 -0
- /package/dist/esm/{index-a5d50daf.js → index-ZjP4CjeZ.js} +0 -0
- /package/dist/esm/{lock-controller-316928be.js → lock-controller-B-hirT0v.js} +0 -0
- /package/dist/esm/{spinner-configs-964f7cf3.js → spinner-configs-D4RIp70E.js} +0 -0
- /package/dist/esm/{theme-01f3f29c.js → theme-DiVJyqlX.js} +0 -0
- /package/dist/esm/{watch-options-c2911ace.js → watch-options-Dtdm8lKC.js} +0 -0
- /package/dist/ionic/{p-ccd02320.js → p-B-hirT0v.js} +0 -0
- /package/dist/ionic/{p-9b97df10.js → p-BTEOs1at.js} +0 -0
- /package/dist/ionic/{p-d47265c8.js → p-BmVRXR1y.js} +0 -0
- /package/dist/ionic/{p-fb813dab.js → p-C53feagD.js} +0 -0
- /package/dist/ionic/{p-f0c2a614.js → p-D4RIp70E.js} +0 -0
- /package/dist/ionic/{p-47794def.js → p-DiVJyqlX.js} +0 -0
- /package/dist/ionic/{p-459d13d5.js → p-Dtdm8lKC.js} +0 -0
- /package/dist/ionic/{p-7b30edcc.js → p-ZjP4CjeZ.js} +0 -0
- /package/dist/ionic/{p-2408c236.js → p-hHmYLOfE.js} +0 -0
- /package/dist/ionic/{p-de756e5c.js → p-sObYyvOy.js} +0 -0
|
@@ -1,25 +1,23 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import { r as registerInstance,
|
|
5
|
-
import { f as findClosestIonContent, i as isIonContent, d as disableContentScrollY, r as resetContentScrollY, a as findIonContent, p as printIonContentErrorMsg } from './index-
|
|
6
|
-
import { C as CoreDelegate, a as attachComponent, d as detachComponent } from './framework-delegate-
|
|
7
|
-
import {
|
|
8
|
-
import { c as createLockController } from './lock-controller-
|
|
9
|
-
import {
|
|
10
|
-
import { g as
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import
|
|
19
|
-
import
|
|
20
|
-
import './
|
|
21
|
-
import './gesture-controller-314a54f6.js';
|
|
22
|
-
import './keyboard-73175e24.js';
|
|
4
|
+
import { r as registerInstance, d as createEvent, m as printIonWarning, w as writeTask, e as getIonMode, l as config, h, j as Host, k as getElement } from './index-B_U9CtaY.js';
|
|
5
|
+
import { f as findClosestIonContent, i as isIonContent, d as disableContentScrollY, r as resetContentScrollY, a as findIonContent, p as printIonContentErrorMsg } from './index-BlJTBdxG.js';
|
|
6
|
+
import { C as CoreDelegate, a as attachComponent, d as detachComponent } from './framework-delegate-DxcnWic_.js';
|
|
7
|
+
import { e as clamp, g as getElementRoot, r as raf, b as inheritAttributes, h as hasLazyBuild } from './helpers-1O4D2b7y.js';
|
|
8
|
+
import { c as createLockController } from './lock-controller-B-hirT0v.js';
|
|
9
|
+
import { g as getCapacitor } from './capacitor-CFERIeaU.js';
|
|
10
|
+
import { G as GESTURE, O as OVERLAY_GESTURE_PRIORITY, F as FOCUS_TRAP_DISABLE_CLASS, e as createTriggerController, B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod } from './overlays-8Y2rA-ps.js';
|
|
11
|
+
import { g as getClassMap } from './theme-DiVJyqlX.js';
|
|
12
|
+
import { e as deepReady, w as waitForMount } from './index-DfBA5ztX.js';
|
|
13
|
+
import { KEYBOARD_DID_OPEN } from './keyboard-ywgs5efA.js';
|
|
14
|
+
import { c as createAnimation } from './animation-BWcUKtbn.js';
|
|
15
|
+
import { g as getTimeGivenProgression } from './cubic-bezier-hHmYLOfE.js';
|
|
16
|
+
import { createGesture } from './index-CfgBF1SE.js';
|
|
17
|
+
import { w as win } from './index-ZjP4CjeZ.js';
|
|
18
|
+
import './hardware-back-button-DcH0BbDp.js';
|
|
19
|
+
import './gesture-controller-BTEOs1at.js';
|
|
20
|
+
import './keyboard-CUw4ekVy.js';
|
|
23
21
|
|
|
24
22
|
var Style;
|
|
25
23
|
(function (Style) {
|
|
@@ -441,7 +439,7 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss) =>
|
|
|
441
439
|
* canDismiss is checked.
|
|
442
440
|
*/
|
|
443
441
|
const shouldComplete = !isAttemptingDismissWithCanDismiss && threshold >= DISMISS_THRESHOLD;
|
|
444
|
-
let newStepValue = shouldComplete ? -
|
|
442
|
+
let newStepValue = shouldComplete ? -1e-3 : 0.001;
|
|
445
443
|
if (!shouldComplete) {
|
|
446
444
|
animation.easing('cubic-bezier(1, 0, 0.68, 0.28)');
|
|
447
445
|
newStepValue += getTimeGivenProgression([0, 0], [1, 0], [0.68, 0.28], [1, 1], clampedStep)[0];
|
|
@@ -584,47 +582,7 @@ const iosEnterAnimation = (baseEl, opts) => {
|
|
|
584
582
|
.addElement(baseEl)
|
|
585
583
|
.easing('cubic-bezier(0.32,0.72,0,1)')
|
|
586
584
|
.duration(500)
|
|
587
|
-
.addAnimation([wrapperAnimation])
|
|
588
|
-
.beforeAddWrite(() => {
|
|
589
|
-
if (expandToScroll) {
|
|
590
|
-
// Scroll can only be done when the modal is fully expanded.
|
|
591
|
-
return;
|
|
592
|
-
}
|
|
593
|
-
/**
|
|
594
|
-
* There are some browsers that causes flickering when
|
|
595
|
-
* dragging the content when scroll is enabled at every
|
|
596
|
-
* breakpoint. This is due to the wrapper element being
|
|
597
|
-
* transformed off the screen and having a snap animation.
|
|
598
|
-
*
|
|
599
|
-
* A workaround is to clone the footer element and append
|
|
600
|
-
* it outside of the wrapper element. This way, the footer
|
|
601
|
-
* is still visible and the drag can be done without
|
|
602
|
-
* flickering. The original footer is hidden until the modal
|
|
603
|
-
* is dismissed. This maintains the animation of the footer
|
|
604
|
-
* when the modal is dismissed.
|
|
605
|
-
*
|
|
606
|
-
* The workaround needs to be done before the animation starts
|
|
607
|
-
* so there are no flickering issues.
|
|
608
|
-
*/
|
|
609
|
-
const ionFooter = baseEl.querySelector('ion-footer');
|
|
610
|
-
/**
|
|
611
|
-
* This check is needed to prevent more than one footer
|
|
612
|
-
* from being appended to the shadow root.
|
|
613
|
-
* Otherwise, iOS and MD enter animations would append
|
|
614
|
-
* the footer twice.
|
|
615
|
-
*/
|
|
616
|
-
const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
|
|
617
|
-
if (ionFooter && !ionFooterAlreadyAppended) {
|
|
618
|
-
const footerHeight = ionFooter.clientHeight;
|
|
619
|
-
const clonedFooter = ionFooter.cloneNode(true);
|
|
620
|
-
baseEl.shadowRoot.appendChild(clonedFooter);
|
|
621
|
-
ionFooter.style.setProperty('display', 'none');
|
|
622
|
-
ionFooter.setAttribute('aria-hidden', 'true');
|
|
623
|
-
// Padding is added to prevent some content from being hidden.
|
|
624
|
-
const page = baseEl.querySelector('.ion-page');
|
|
625
|
-
page.style.setProperty('padding-bottom', `${footerHeight}px`);
|
|
626
|
-
}
|
|
627
|
-
});
|
|
585
|
+
.addAnimation([wrapperAnimation]);
|
|
628
586
|
if (contentAnimation) {
|
|
629
587
|
baseAnimation.addAnimation(contentAnimation);
|
|
630
588
|
}
|
|
@@ -705,7 +663,7 @@ const createLeaveAnimation$1 = () => {
|
|
|
705
663
|
* iOS Modal Leave Animation
|
|
706
664
|
*/
|
|
707
665
|
const iosLeaveAnimation = (baseEl, opts, duration = 500) => {
|
|
708
|
-
const { presentingEl, currentBreakpoint
|
|
666
|
+
const { presentingEl, currentBreakpoint } = opts;
|
|
709
667
|
const root = getElementRoot(baseEl);
|
|
710
668
|
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
|
|
711
669
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
@@ -714,29 +672,7 @@ const iosLeaveAnimation = (baseEl, opts, duration = 500) => {
|
|
|
714
672
|
.addElement(baseEl)
|
|
715
673
|
.easing('cubic-bezier(0.32,0.72,0,1)')
|
|
716
674
|
.duration(duration)
|
|
717
|
-
.addAnimation(wrapperAnimation)
|
|
718
|
-
.beforeAddWrite(() => {
|
|
719
|
-
if (expandToScroll) {
|
|
720
|
-
// Scroll can only be done when the modal is fully expanded.
|
|
721
|
-
return;
|
|
722
|
-
}
|
|
723
|
-
/**
|
|
724
|
-
* If expandToScroll is disabled, we need to swap
|
|
725
|
-
* the visibility to the original, so the footer
|
|
726
|
-
* dismisses with the modal and doesn't stay
|
|
727
|
-
* until the modal is removed from the DOM.
|
|
728
|
-
*/
|
|
729
|
-
const ionFooter = baseEl.querySelector('ion-footer');
|
|
730
|
-
if (ionFooter) {
|
|
731
|
-
const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
|
|
732
|
-
ionFooter.style.removeProperty('display');
|
|
733
|
-
ionFooter.removeAttribute('aria-hidden');
|
|
734
|
-
clonedFooter.style.setProperty('display', 'none');
|
|
735
|
-
clonedFooter.setAttribute('aria-hidden', 'true');
|
|
736
|
-
const page = baseEl.querySelector('.ion-page');
|
|
737
|
-
page.style.removeProperty('padding-bottom');
|
|
738
|
-
}
|
|
739
|
-
});
|
|
675
|
+
.addAnimation(wrapperAnimation);
|
|
740
676
|
const appEl = baseEl.closest('ion-app');
|
|
741
677
|
if (presentingEl && appEl) {
|
|
742
678
|
const isMobile = window.innerWidth < 768;
|
|
@@ -827,52 +763,12 @@ const mdEnterAnimation = (baseEl, opts) => {
|
|
|
827
763
|
wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
|
|
828
764
|
// The content animation is only added if scrolling is enabled for
|
|
829
765
|
// all the breakpoints.
|
|
830
|
-
expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
|
|
766
|
+
!expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
|
|
831
767
|
const baseAnimation = createAnimation()
|
|
832
768
|
.addElement(baseEl)
|
|
833
769
|
.easing('cubic-bezier(0.36,0.66,0.04,1)')
|
|
834
770
|
.duration(280)
|
|
835
|
-
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
836
|
-
.beforeAddWrite(() => {
|
|
837
|
-
if (expandToScroll) {
|
|
838
|
-
// Scroll can only be done when the modal is fully expanded.
|
|
839
|
-
return;
|
|
840
|
-
}
|
|
841
|
-
/**
|
|
842
|
-
* There are some browsers that causes flickering when
|
|
843
|
-
* dragging the content when scroll is enabled at every
|
|
844
|
-
* breakpoint. This is due to the wrapper element being
|
|
845
|
-
* transformed off the screen and having a snap animation.
|
|
846
|
-
*
|
|
847
|
-
* A workaround is to clone the footer element and append
|
|
848
|
-
* it outside of the wrapper element. This way, the footer
|
|
849
|
-
* is still visible and the drag can be done without
|
|
850
|
-
* flickering. The original footer is hidden until the modal
|
|
851
|
-
* is dismissed. This maintains the animation of the footer
|
|
852
|
-
* when the modal is dismissed.
|
|
853
|
-
*
|
|
854
|
-
* The workaround needs to be done before the animation starts
|
|
855
|
-
* so there are no flickering issues.
|
|
856
|
-
*/
|
|
857
|
-
const ionFooter = baseEl.querySelector('ion-footer');
|
|
858
|
-
/**
|
|
859
|
-
* This check is needed to prevent more than one footer
|
|
860
|
-
* from being appended to the shadow root.
|
|
861
|
-
* Otherwise, iOS and MD enter animations would append
|
|
862
|
-
* the footer twice.
|
|
863
|
-
*/
|
|
864
|
-
const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
|
|
865
|
-
if (ionFooter && !ionFooterAlreadyAppended) {
|
|
866
|
-
const footerHeight = ionFooter.clientHeight;
|
|
867
|
-
const clonedFooter = ionFooter.cloneNode(true);
|
|
868
|
-
baseEl.shadowRoot.appendChild(clonedFooter);
|
|
869
|
-
ionFooter.style.setProperty('display', 'none');
|
|
870
|
-
ionFooter.setAttribute('aria-hidden', 'true');
|
|
871
|
-
// Padding is added to prevent some content from being hidden.
|
|
872
|
-
const page = baseEl.querySelector('.ion-page');
|
|
873
|
-
page.style.setProperty('padding-bottom', `${footerHeight}px`);
|
|
874
|
-
}
|
|
875
|
-
});
|
|
771
|
+
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
876
772
|
if (contentAnimation) {
|
|
877
773
|
baseAnimation.addAnimation(contentAnimation);
|
|
878
774
|
}
|
|
@@ -891,7 +787,7 @@ const createLeaveAnimation = () => {
|
|
|
891
787
|
* Md Modal Leave Animation
|
|
892
788
|
*/
|
|
893
789
|
const mdLeaveAnimation = (baseEl, opts) => {
|
|
894
|
-
const { currentBreakpoint
|
|
790
|
+
const { currentBreakpoint } = opts;
|
|
895
791
|
const root = getElementRoot(baseEl);
|
|
896
792
|
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation();
|
|
897
793
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
@@ -899,29 +795,7 @@ const mdLeaveAnimation = (baseEl, opts) => {
|
|
|
899
795
|
const baseAnimation = createAnimation()
|
|
900
796
|
.easing('cubic-bezier(0.47,0,0.745,0.715)')
|
|
901
797
|
.duration(200)
|
|
902
|
-
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
903
|
-
.beforeAddWrite(() => {
|
|
904
|
-
if (expandToScroll) {
|
|
905
|
-
// Scroll can only be done when the modal is fully expanded.
|
|
906
|
-
return;
|
|
907
|
-
}
|
|
908
|
-
/**
|
|
909
|
-
* If expandToScroll is disabled, we need to swap
|
|
910
|
-
* the visibility to the original, so the footer
|
|
911
|
-
* dismisses with the modal and doesn't stay
|
|
912
|
-
* until the modal is removed from the DOM.
|
|
913
|
-
*/
|
|
914
|
-
const ionFooter = baseEl.querySelector('ion-footer');
|
|
915
|
-
if (ionFooter) {
|
|
916
|
-
const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
|
|
917
|
-
ionFooter.style.removeProperty('display');
|
|
918
|
-
ionFooter.removeAttribute('aria-hidden');
|
|
919
|
-
clonedFooter.style.setProperty('display', 'none');
|
|
920
|
-
clonedFooter.setAttribute('aria-hidden', 'true');
|
|
921
|
-
const page = baseEl.querySelector('.ion-page');
|
|
922
|
-
page.style.removeProperty('padding-bottom');
|
|
923
|
-
}
|
|
924
|
-
});
|
|
798
|
+
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
925
799
|
return baseAnimation;
|
|
926
800
|
};
|
|
927
801
|
|
|
@@ -953,6 +827,9 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
953
827
|
let offset = 0;
|
|
954
828
|
let canDismissBlocksGesture = false;
|
|
955
829
|
let cachedScrollEl = null;
|
|
830
|
+
let cachedFooterEls = null;
|
|
831
|
+
let cachedFooterYPosition = null;
|
|
832
|
+
let currentFooterState = null;
|
|
956
833
|
const canDismissMaxStep = 0.95;
|
|
957
834
|
const maxBreakpoint = breakpoints[breakpoints.length - 1];
|
|
958
835
|
const minBreakpoint = breakpoints[0];
|
|
@@ -982,29 +859,87 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
982
859
|
baseEl.classList.add(FOCUS_TRAP_DISABLE_CLASS);
|
|
983
860
|
};
|
|
984
861
|
/**
|
|
985
|
-
* Toggles the
|
|
986
|
-
*
|
|
862
|
+
* Toggles the footer to an absolute position while moving to prevent
|
|
863
|
+
* it from shaking while the sheet is being dragged.
|
|
864
|
+
* @param newPosition Whether the footer is in a moving or stationary position.
|
|
987
865
|
*/
|
|
988
|
-
const
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
866
|
+
const swapFooterPosition = (newPosition) => {
|
|
867
|
+
if (!cachedFooterEls) {
|
|
868
|
+
cachedFooterEls = Array.from(baseEl.querySelectorAll('ion-footer'));
|
|
869
|
+
if (!cachedFooterEls.length) {
|
|
870
|
+
return;
|
|
871
|
+
}
|
|
992
872
|
}
|
|
993
|
-
const clonedFooter = wrapperEl.nextElementSibling;
|
|
994
|
-
const footerToHide = footer === 'original' ? clonedFooter : originalFooter;
|
|
995
|
-
const footerToShow = footer === 'original' ? originalFooter : clonedFooter;
|
|
996
|
-
footerToShow.style.removeProperty('display');
|
|
997
|
-
footerToShow.removeAttribute('aria-hidden');
|
|
998
873
|
const page = baseEl.querySelector('.ion-page');
|
|
999
|
-
|
|
1000
|
-
|
|
874
|
+
currentFooterState = newPosition;
|
|
875
|
+
if (newPosition === 'stationary') {
|
|
876
|
+
cachedFooterEls.forEach((cachedFooterEl) => {
|
|
877
|
+
// Reset positioning styles to allow normal document flow
|
|
878
|
+
cachedFooterEl.classList.remove('modal-footer-moving');
|
|
879
|
+
cachedFooterEl.style.removeProperty('position');
|
|
880
|
+
cachedFooterEl.style.removeProperty('width');
|
|
881
|
+
cachedFooterEl.style.removeProperty('height');
|
|
882
|
+
cachedFooterEl.style.removeProperty('top');
|
|
883
|
+
cachedFooterEl.style.removeProperty('left');
|
|
884
|
+
page === null || page === void 0 ? void 0 : page.style.removeProperty('padding-bottom');
|
|
885
|
+
// Move to page
|
|
886
|
+
page === null || page === void 0 ? void 0 : page.appendChild(cachedFooterEl);
|
|
887
|
+
});
|
|
1001
888
|
}
|
|
1002
889
|
else {
|
|
1003
|
-
|
|
1004
|
-
|
|
890
|
+
let footerHeights = 0;
|
|
891
|
+
cachedFooterEls.forEach((cachedFooterEl, index) => {
|
|
892
|
+
// Get both the footer and document body positions
|
|
893
|
+
const cachedFooterElRect = cachedFooterEl.getBoundingClientRect();
|
|
894
|
+
const bodyRect = document.body.getBoundingClientRect();
|
|
895
|
+
// Calculate the total height of all footers
|
|
896
|
+
// so we can add padding to the page element
|
|
897
|
+
footerHeights += cachedFooterEl.clientHeight;
|
|
898
|
+
// Calculate absolute position relative to body
|
|
899
|
+
// We need to subtract the body's offsetTop to get true position within document.body
|
|
900
|
+
const absoluteTop = cachedFooterElRect.top - bodyRect.top;
|
|
901
|
+
const absoluteLeft = cachedFooterElRect.left - bodyRect.left;
|
|
902
|
+
// Capture the footer's current dimensions and store them in CSS variables for
|
|
903
|
+
// later use when applying absolute positioning.
|
|
904
|
+
cachedFooterEl.style.setProperty('--pinned-width', `${cachedFooterEl.clientWidth}px`);
|
|
905
|
+
cachedFooterEl.style.setProperty('--pinned-height', `${cachedFooterEl.clientHeight}px`);
|
|
906
|
+
cachedFooterEl.style.setProperty('--pinned-top', `${absoluteTop}px`);
|
|
907
|
+
cachedFooterEl.style.setProperty('--pinned-left', `${absoluteLeft}px`);
|
|
908
|
+
// Only cache the first footer's Y position
|
|
909
|
+
// This is used to determine if the sheet has been moved below the footer
|
|
910
|
+
// and needs to be swapped back to stationary so it collapses correctly.
|
|
911
|
+
if (index === 0) {
|
|
912
|
+
cachedFooterYPosition = absoluteTop;
|
|
913
|
+
// If there's a header, we need to combine the header height with the footer position
|
|
914
|
+
// because the header moves with the drag handle, so when it starts overlapping the footer,
|
|
915
|
+
// we need to account for that.
|
|
916
|
+
const header = baseEl.querySelector('ion-header');
|
|
917
|
+
if (header) {
|
|
918
|
+
cachedFooterYPosition -= header.clientHeight;
|
|
919
|
+
}
|
|
920
|
+
}
|
|
921
|
+
});
|
|
922
|
+
// Apply the pinning of styles after we've calculated everything
|
|
923
|
+
// so that we don't cause layouts to shift while calculating the footer positions.
|
|
924
|
+
// Otherwise, with multiple footers we'll end up capturing the wrong positions.
|
|
925
|
+
cachedFooterEls.forEach((cachedFooterEl) => {
|
|
926
|
+
// Add padding to the parent element to prevent content from being hidden
|
|
927
|
+
// when the footer is positioned absolutely. This has to be done before we
|
|
928
|
+
// make the footer absolutely positioned or we may accidentally cause the
|
|
929
|
+
// sheet to scroll.
|
|
930
|
+
page === null || page === void 0 ? void 0 : page.style.setProperty('padding-bottom', `${footerHeights}px`);
|
|
931
|
+
// Apply positioning styles to keep footer at bottom
|
|
932
|
+
cachedFooterEl.classList.add('modal-footer-moving');
|
|
933
|
+
// Apply our preserved styles to pin the footer
|
|
934
|
+
cachedFooterEl.style.setProperty('position', 'absolute');
|
|
935
|
+
cachedFooterEl.style.setProperty('width', 'var(--pinned-width)');
|
|
936
|
+
cachedFooterEl.style.setProperty('height', 'var(--pinned-height)');
|
|
937
|
+
cachedFooterEl.style.setProperty('top', 'var(--pinned-top)');
|
|
938
|
+
cachedFooterEl.style.setProperty('left', 'var(--pinned-left)');
|
|
939
|
+
// Move the element to the body when everything else is done
|
|
940
|
+
document.body.appendChild(cachedFooterEl);
|
|
941
|
+
});
|
|
1005
942
|
}
|
|
1006
|
-
footerToHide.style.setProperty('display', 'none');
|
|
1007
|
-
footerToHide.setAttribute('aria-hidden', 'true');
|
|
1008
943
|
};
|
|
1009
944
|
/**
|
|
1010
945
|
* After the entering animation completes,
|
|
@@ -1098,12 +1033,11 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1098
1033
|
}
|
|
1099
1034
|
/**
|
|
1100
1035
|
* If expandToScroll is disabled, we need to swap
|
|
1101
|
-
* the footer
|
|
1102
|
-
*
|
|
1103
|
-
* and doesn't stay on the screen after the modal is gone.
|
|
1036
|
+
* the footer position to moving so that it doesn't shake
|
|
1037
|
+
* while the sheet is being dragged.
|
|
1104
1038
|
*/
|
|
1105
1039
|
if (!expandToScroll) {
|
|
1106
|
-
|
|
1040
|
+
swapFooterPosition('moving');
|
|
1107
1041
|
}
|
|
1108
1042
|
/**
|
|
1109
1043
|
* If we are pulling down, then it is possible we are pulling on the content.
|
|
@@ -1122,6 +1056,21 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1122
1056
|
animation.progressStart(true, 1 - currentBreakpoint);
|
|
1123
1057
|
};
|
|
1124
1058
|
const onMove = (detail) => {
|
|
1059
|
+
/**
|
|
1060
|
+
* If `expandToScroll` is disabled, we need to see if we're currently below
|
|
1061
|
+
* the footer element and the footer is in a stationary position. If so,
|
|
1062
|
+
* we need to make the stationary the original position so that the footer
|
|
1063
|
+
* collapses with the sheet.
|
|
1064
|
+
*/
|
|
1065
|
+
if (!expandToScroll && cachedFooterYPosition !== null && currentFooterState !== null) {
|
|
1066
|
+
// Check if we need to swap the footer position
|
|
1067
|
+
if (detail.currentY >= cachedFooterYPosition && currentFooterState === 'moving') {
|
|
1068
|
+
swapFooterPosition('stationary');
|
|
1069
|
+
}
|
|
1070
|
+
else if (detail.currentY < cachedFooterYPosition && currentFooterState === 'stationary') {
|
|
1071
|
+
swapFooterPosition('moving');
|
|
1072
|
+
}
|
|
1073
|
+
}
|
|
1125
1074
|
/**
|
|
1126
1075
|
* If `expandToScroll` is disabled, and an upwards swipe gesture is done within
|
|
1127
1076
|
* the scrollable content, we should not allow the swipe gesture to continue.
|
|
@@ -1181,6 +1130,14 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1181
1130
|
* is not scrolled to the top.
|
|
1182
1131
|
*/
|
|
1183
1132
|
if (!expandToScroll && detail.deltaY <= 0 && cachedScrollEl && cachedScrollEl.scrollTop > 0) {
|
|
1133
|
+
/**
|
|
1134
|
+
* If expand to scroll is disabled, we need to make sure we swap the footer position
|
|
1135
|
+
* back to stationary so that it will collapse correctly if the modal is dismissed without
|
|
1136
|
+
* dragging (e.g. through a dismiss button).
|
|
1137
|
+
* This can cause issues if the user has a modal with content that can be dragged, as we'll
|
|
1138
|
+
* swap to moving on drag and if we don't swap back here then the footer will get stuck.
|
|
1139
|
+
*/
|
|
1140
|
+
swapFooterPosition('stationary');
|
|
1184
1141
|
return;
|
|
1185
1142
|
}
|
|
1186
1143
|
/**
|
|
@@ -1255,14 +1212,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1255
1212
|
* snapping animation completes.
|
|
1256
1213
|
*/
|
|
1257
1214
|
gesture.enable(false);
|
|
1258
|
-
/**
|
|
1259
|
-
* If expandToScroll is disabled, we need to swap
|
|
1260
|
-
* the footer visibility to the cloned one so the footer
|
|
1261
|
-
* doesn't flicker when the sheet's height is animated.
|
|
1262
|
-
*/
|
|
1263
|
-
if (!expandToScroll && shouldRemainOpen) {
|
|
1264
|
-
swapFooterVisibility('cloned');
|
|
1265
|
-
}
|
|
1266
1215
|
if (shouldPreventDismiss) {
|
|
1267
1216
|
handleCanDismiss(baseEl, animation);
|
|
1268
1217
|
}
|
|
@@ -1279,10 +1228,28 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1279
1228
|
if (contentEl && (snapToBreakpoint === breakpoints[breakpoints.length - 1] || !expandToScroll)) {
|
|
1280
1229
|
contentEl.scrollY = true;
|
|
1281
1230
|
}
|
|
1231
|
+
/**
|
|
1232
|
+
* If expandToScroll is disabled and we're animating
|
|
1233
|
+
* to close the sheet, we need to swap
|
|
1234
|
+
* the footer position to stationary so that it
|
|
1235
|
+
* will collapse correctly. We cannot just always swap
|
|
1236
|
+
* here or it'll be jittery while animating movement.
|
|
1237
|
+
*/
|
|
1238
|
+
if (!expandToScroll && snapToBreakpoint === 0) {
|
|
1239
|
+
swapFooterPosition('stationary');
|
|
1240
|
+
}
|
|
1282
1241
|
return new Promise((resolve) => {
|
|
1283
1242
|
animation
|
|
1284
1243
|
.onFinish(() => {
|
|
1285
1244
|
if (shouldRemainOpen) {
|
|
1245
|
+
/**
|
|
1246
|
+
* If expandToScroll is disabled, we need to swap
|
|
1247
|
+
* the footer position to stationary so that it
|
|
1248
|
+
* will act as it would by default.
|
|
1249
|
+
*/
|
|
1250
|
+
if (!expandToScroll) {
|
|
1251
|
+
swapFooterPosition('stationary');
|
|
1252
|
+
}
|
|
1286
1253
|
/**
|
|
1287
1254
|
* Once the snapping animation completes,
|
|
1288
1255
|
* we need to reset the animation to go
|
|
@@ -1347,11 +1314,9 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1347
1314
|
};
|
|
1348
1315
|
};
|
|
1349
1316
|
|
|
1350
|
-
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;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@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-safe-area-top) + 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}
|
|
1351
|
-
const IonModalIosStyle0 = modalIosCss;
|
|
1317
|
+
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;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@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-safe-area-top) + 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}";
|
|
1352
1318
|
|
|
1353
1319
|
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;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@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-safe-area-top) + 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}";
|
|
1354
|
-
const IonModalMdStyle0 = modalMdCss;
|
|
1355
1320
|
|
|
1356
1321
|
const Modal = class {
|
|
1357
1322
|
constructor(hostRef) {
|
|
@@ -1374,6 +1339,112 @@ const Modal = class {
|
|
|
1374
1339
|
this.inline = false;
|
|
1375
1340
|
// Whether or not modal is being dismissed via gesture
|
|
1376
1341
|
this.gestureAnimationDismissing = false;
|
|
1342
|
+
this.presented = false;
|
|
1343
|
+
/** @internal */
|
|
1344
|
+
this.hasController = false;
|
|
1345
|
+
/**
|
|
1346
|
+
* If `true`, the keyboard will be automatically dismissed when the overlay is presented.
|
|
1347
|
+
*/
|
|
1348
|
+
this.keyboardClose = true;
|
|
1349
|
+
/**
|
|
1350
|
+
* Controls whether scrolling or dragging within the sheet modal expands
|
|
1351
|
+
* it to a larger breakpoint. This only takes effect when `breakpoints`
|
|
1352
|
+
* and `initialBreakpoint` are set.
|
|
1353
|
+
*
|
|
1354
|
+
* If `true`, scrolling or dragging anywhere in the modal will first expand
|
|
1355
|
+
* it to the next breakpoint. Once fully expanded, scrolling will affect the
|
|
1356
|
+
* content.
|
|
1357
|
+
* If `false`, scrolling will always affect the content. The modal will
|
|
1358
|
+
* only expand when dragging the header or handle. The modal will close when
|
|
1359
|
+
* dragging the header or handle. It can also be closed when dragging the
|
|
1360
|
+
* content, but only if the content is scrolled to the top.
|
|
1361
|
+
*/
|
|
1362
|
+
this.expandToScroll = true;
|
|
1363
|
+
/**
|
|
1364
|
+
* A decimal value between 0 and 1 that indicates the
|
|
1365
|
+
* point after which the backdrop will begin to fade in
|
|
1366
|
+
* when using a sheet modal. Prior to this point, the
|
|
1367
|
+
* backdrop will be hidden and the content underneath
|
|
1368
|
+
* the sheet can be interacted with. This value is exclusive
|
|
1369
|
+
* meaning the backdrop will become active after the value
|
|
1370
|
+
* specified.
|
|
1371
|
+
*/
|
|
1372
|
+
this.backdropBreakpoint = 0;
|
|
1373
|
+
/**
|
|
1374
|
+
* The interaction behavior for the sheet modal when the handle is pressed.
|
|
1375
|
+
*
|
|
1376
|
+
* Defaults to `"none"`, which means the modal will not change size or position when the handle is pressed.
|
|
1377
|
+
* Set to `"cycle"` to let the modal cycle between available breakpoints when pressed.
|
|
1378
|
+
*
|
|
1379
|
+
* Handle behavior is unavailable when the `handle` property is set to `false` or
|
|
1380
|
+
* when the `breakpoints` property is not set (using a fullscreen or card modal).
|
|
1381
|
+
*/
|
|
1382
|
+
this.handleBehavior = 'none';
|
|
1383
|
+
/**
|
|
1384
|
+
* If `true`, the modal will be dismissed when the backdrop is clicked.
|
|
1385
|
+
*/
|
|
1386
|
+
this.backdropDismiss = true;
|
|
1387
|
+
/**
|
|
1388
|
+
* If `true`, a backdrop will be displayed behind the modal.
|
|
1389
|
+
* This property controls whether or not the backdrop
|
|
1390
|
+
* darkens the screen when the modal is presented.
|
|
1391
|
+
* It does not control whether or not the backdrop
|
|
1392
|
+
* is active or present in the DOM.
|
|
1393
|
+
*/
|
|
1394
|
+
this.showBackdrop = true;
|
|
1395
|
+
/**
|
|
1396
|
+
* If `true`, the modal will animate.
|
|
1397
|
+
*/
|
|
1398
|
+
this.animated = true;
|
|
1399
|
+
/**
|
|
1400
|
+
* If `true`, the modal will open. If `false`, the modal will close.
|
|
1401
|
+
* Use this if you need finer grained control over presentation, otherwise
|
|
1402
|
+
* just use the modalController or the `trigger` property.
|
|
1403
|
+
* Note: `isOpen` will not automatically be set back to `false` when
|
|
1404
|
+
* the modal dismisses. You will need to do that in your code.
|
|
1405
|
+
*/
|
|
1406
|
+
this.isOpen = false;
|
|
1407
|
+
/**
|
|
1408
|
+
* If `true`, the component passed into `ion-modal` will
|
|
1409
|
+
* automatically be mounted when the modal is created. The
|
|
1410
|
+
* component will remain mounted even when the modal is dismissed.
|
|
1411
|
+
* However, the component will be destroyed when the modal is
|
|
1412
|
+
* destroyed. This property is not reactive and should only be
|
|
1413
|
+
* used when initially creating a modal.
|
|
1414
|
+
*
|
|
1415
|
+
* Note: This feature only applies to inline modals in JavaScript
|
|
1416
|
+
* frameworks such as Angular, React, and Vue.
|
|
1417
|
+
*/
|
|
1418
|
+
this.keepContentsMounted = false;
|
|
1419
|
+
/**
|
|
1420
|
+
* If `true`, focus will not be allowed to move outside of this overlay.
|
|
1421
|
+
* If `false`, focus will be allowed to move outside of the overlay.
|
|
1422
|
+
*
|
|
1423
|
+
* In most scenarios this property should remain set to `true`. Setting
|
|
1424
|
+
* this property to `false` can cause severe accessibility issues as users
|
|
1425
|
+
* relying on assistive technologies may be able to move focus into
|
|
1426
|
+
* a confusing state. We recommend only setting this to `false` when
|
|
1427
|
+
* absolutely necessary.
|
|
1428
|
+
*
|
|
1429
|
+
* Developers may want to consider disabling focus trapping if this
|
|
1430
|
+
* overlay presents a non-Ionic overlay from a 3rd party library.
|
|
1431
|
+
* Developers would disable focus trapping on the Ionic overlay
|
|
1432
|
+
* when presenting the 3rd party overlay and then re-enable
|
|
1433
|
+
* focus trapping when dismissing the 3rd party overlay and moving
|
|
1434
|
+
* focus back to the Ionic overlay.
|
|
1435
|
+
*/
|
|
1436
|
+
this.focusTrap = true;
|
|
1437
|
+
/**
|
|
1438
|
+
* Determines whether or not a modal can dismiss
|
|
1439
|
+
* when calling the `dismiss` method.
|
|
1440
|
+
*
|
|
1441
|
+
* If the value is `true` or the value's function returns `true`, the modal will close when trying to dismiss.
|
|
1442
|
+
* If the value is `false` or the value's function returns `false`, the modal will not close when trying to dismiss.
|
|
1443
|
+
*
|
|
1444
|
+
* See https://ionicframework.com/docs/troubleshooting/runtime#accessing-this
|
|
1445
|
+
* if you need to access `this` from within the callback.
|
|
1446
|
+
*/
|
|
1447
|
+
this.canDismiss = true;
|
|
1377
1448
|
this.onHandleClick = () => {
|
|
1378
1449
|
const { sheetTransition, handleBehavior } = this;
|
|
1379
1450
|
if (handleBehavior !== 'cycle' || sheetTransition !== undefined) {
|
|
@@ -1411,32 +1482,6 @@ const Modal = class {
|
|
|
1411
1482
|
el.dispatchEvent(ev);
|
|
1412
1483
|
}
|
|
1413
1484
|
};
|
|
1414
|
-
this.presented = false;
|
|
1415
|
-
this.hasController = false;
|
|
1416
|
-
this.overlayIndex = undefined;
|
|
1417
|
-
this.delegate = undefined;
|
|
1418
|
-
this.keyboardClose = true;
|
|
1419
|
-
this.enterAnimation = undefined;
|
|
1420
|
-
this.leaveAnimation = undefined;
|
|
1421
|
-
this.breakpoints = undefined;
|
|
1422
|
-
this.expandToScroll = true;
|
|
1423
|
-
this.initialBreakpoint = undefined;
|
|
1424
|
-
this.backdropBreakpoint = 0;
|
|
1425
|
-
this.handle = undefined;
|
|
1426
|
-
this.handleBehavior = 'none';
|
|
1427
|
-
this.component = undefined;
|
|
1428
|
-
this.componentProps = undefined;
|
|
1429
|
-
this.cssClass = undefined;
|
|
1430
|
-
this.backdropDismiss = true;
|
|
1431
|
-
this.showBackdrop = true;
|
|
1432
|
-
this.animated = true;
|
|
1433
|
-
this.presentingElement = undefined;
|
|
1434
|
-
this.htmlAttributes = undefined;
|
|
1435
|
-
this.isOpen = false;
|
|
1436
|
-
this.trigger = undefined;
|
|
1437
|
-
this.keepContentsMounted = false;
|
|
1438
|
-
this.focusTrap = true;
|
|
1439
|
-
this.canDismiss = true;
|
|
1440
1485
|
}
|
|
1441
1486
|
onIsOpenChange(newValue, oldValue) {
|
|
1442
1487
|
if (newValue === true && oldValue === false) {
|
|
@@ -1906,18 +1951,18 @@ const Modal = class {
|
|
|
1906
1951
|
const mode = getIonMode(this);
|
|
1907
1952
|
const isCardModal = presentingElement !== undefined && mode === 'ios';
|
|
1908
1953
|
const isHandleCycle = handleBehavior === 'cycle';
|
|
1909
|
-
return (h(Host, Object.assign({ key: '
|
|
1954
|
+
return (h(Host, Object.assign({ key: '0bcbdcfcd7d890eb599da3f97f21c317d34f8e0e', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
|
|
1910
1955
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
1911
|
-
}, 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 }), h("ion-backdrop", { key: '
|
|
1956
|
+
}, 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 }), h("ion-backdrop", { key: 'd72159e73daa5af7349aa9e8f695aa435eb43069', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { key: 'fd2d9b13676ae72473881649a397b6eacde03a03', class: "modal-shadow" }), h("div", Object.assign({ key: '908eccb1ad982dcde2dbcff0cbb18b6e60f8ba74',
|
|
1912
1957
|
/*
|
|
1913
1958
|
role and aria-modal must be used on the
|
|
1914
1959
|
same element. They must also be set inside the
|
|
1915
1960
|
shadow DOM otherwise ion-button will not be highlighted
|
|
1916
1961
|
when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
|
|
1917
1962
|
*/
|
|
1918
|
-
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: '
|
|
1963
|
+
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: '332dc0b40363a77c7be62331d9f26def91c790e9', class: "modal-handle",
|
|
1919
1964
|
// Prevents the handle from receiving keyboard focus when it does not cycle
|
|
1920
|
-
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), h("slot", { key: '
|
|
1965
|
+
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), h("slot", { key: 'c32698350193c450327e97049daf8b8d1fda0d0e' }))));
|
|
1921
1966
|
}
|
|
1922
1967
|
get el() { return getElement(this); }
|
|
1923
1968
|
static get watchers() { return {
|
|
@@ -1932,8 +1977,8 @@ const LIFECYCLE_MAP = {
|
|
|
1932
1977
|
ionModalDidDismiss: 'ionViewDidLeave',
|
|
1933
1978
|
};
|
|
1934
1979
|
Modal.style = {
|
|
1935
|
-
ios:
|
|
1936
|
-
md:
|
|
1980
|
+
ios: modalIosCss,
|
|
1981
|
+
md: modalMdCss
|
|
1937
1982
|
};
|
|
1938
1983
|
|
|
1939
1984
|
export { Modal as ion_modal };
|