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
|
@@ -3,27 +3,23 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
const index = require('./index-c8d52405.js');
|
|
24
|
-
require('./hardware-back-button-3d2b1004.js');
|
|
25
|
-
require('./gesture-controller-9436f482.js');
|
|
26
|
-
require('./keyboard-0272231f.js');
|
|
6
|
+
var index$3 = require('./index-DODXXb_r.js');
|
|
7
|
+
var index$2 = require('./index-CVa6JE57.js');
|
|
8
|
+
var frameworkDelegate = require('./framework-delegate-C7sIJyT5.js');
|
|
9
|
+
var helpers = require('./helpers-BITAzJfi.js');
|
|
10
|
+
var lockController = require('./lock-controller-aDB9wrEf.js');
|
|
11
|
+
var capacitor = require('./capacitor-DmA66EwP.js');
|
|
12
|
+
var overlays = require('./overlays-DRDumz2b.js');
|
|
13
|
+
var theme = require('./theme-CeDs6Hcv.js');
|
|
14
|
+
var index$4 = require('./index-y0QaNtCi.js');
|
|
15
|
+
var keyboard = require('./keyboard-hHzlEQpk.js');
|
|
16
|
+
var animation = require('./animation-0T7gKwOt.js');
|
|
17
|
+
var cubicBezier = require('./cubic-bezier-DAjy1V-e.js');
|
|
18
|
+
var index$1 = require('./index-CAvQ7Tka.js');
|
|
19
|
+
var index = require('./index-DkNv4J_i.js');
|
|
20
|
+
require('./hardware-back-button-D90qZxju.js');
|
|
21
|
+
require('./gesture-controller-dtqlP_q4.js');
|
|
22
|
+
require('./keyboard-UuAS4D_9.js');
|
|
27
23
|
|
|
28
24
|
var Style;
|
|
29
25
|
(function (Style) {
|
|
@@ -445,7 +441,7 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss) =>
|
|
|
445
441
|
* canDismiss is checked.
|
|
446
442
|
*/
|
|
447
443
|
const shouldComplete = !isAttemptingDismissWithCanDismiss && threshold >= DISMISS_THRESHOLD;
|
|
448
|
-
let newStepValue = shouldComplete ? -
|
|
444
|
+
let newStepValue = shouldComplete ? -1e-3 : 0.001;
|
|
449
445
|
if (!shouldComplete) {
|
|
450
446
|
animation.easing('cubic-bezier(1, 0, 0.68, 0.28)');
|
|
451
447
|
newStepValue += cubicBezier.getTimeGivenProgression([0, 0], [1, 0], [0.68, 0.28], [1, 1], clampedStep)[0];
|
|
@@ -588,47 +584,7 @@ const iosEnterAnimation = (baseEl, opts) => {
|
|
|
588
584
|
.addElement(baseEl)
|
|
589
585
|
.easing('cubic-bezier(0.32,0.72,0,1)')
|
|
590
586
|
.duration(500)
|
|
591
|
-
.addAnimation([wrapperAnimation])
|
|
592
|
-
.beforeAddWrite(() => {
|
|
593
|
-
if (expandToScroll) {
|
|
594
|
-
// Scroll can only be done when the modal is fully expanded.
|
|
595
|
-
return;
|
|
596
|
-
}
|
|
597
|
-
/**
|
|
598
|
-
* There are some browsers that causes flickering when
|
|
599
|
-
* dragging the content when scroll is enabled at every
|
|
600
|
-
* breakpoint. This is due to the wrapper element being
|
|
601
|
-
* transformed off the screen and having a snap animation.
|
|
602
|
-
*
|
|
603
|
-
* A workaround is to clone the footer element and append
|
|
604
|
-
* it outside of the wrapper element. This way, the footer
|
|
605
|
-
* is still visible and the drag can be done without
|
|
606
|
-
* flickering. The original footer is hidden until the modal
|
|
607
|
-
* is dismissed. This maintains the animation of the footer
|
|
608
|
-
* when the modal is dismissed.
|
|
609
|
-
*
|
|
610
|
-
* The workaround needs to be done before the animation starts
|
|
611
|
-
* so there are no flickering issues.
|
|
612
|
-
*/
|
|
613
|
-
const ionFooter = baseEl.querySelector('ion-footer');
|
|
614
|
-
/**
|
|
615
|
-
* This check is needed to prevent more than one footer
|
|
616
|
-
* from being appended to the shadow root.
|
|
617
|
-
* Otherwise, iOS and MD enter animations would append
|
|
618
|
-
* the footer twice.
|
|
619
|
-
*/
|
|
620
|
-
const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
|
|
621
|
-
if (ionFooter && !ionFooterAlreadyAppended) {
|
|
622
|
-
const footerHeight = ionFooter.clientHeight;
|
|
623
|
-
const clonedFooter = ionFooter.cloneNode(true);
|
|
624
|
-
baseEl.shadowRoot.appendChild(clonedFooter);
|
|
625
|
-
ionFooter.style.setProperty('display', 'none');
|
|
626
|
-
ionFooter.setAttribute('aria-hidden', 'true');
|
|
627
|
-
// Padding is added to prevent some content from being hidden.
|
|
628
|
-
const page = baseEl.querySelector('.ion-page');
|
|
629
|
-
page.style.setProperty('padding-bottom', `${footerHeight}px`);
|
|
630
|
-
}
|
|
631
|
-
});
|
|
587
|
+
.addAnimation([wrapperAnimation]);
|
|
632
588
|
if (contentAnimation) {
|
|
633
589
|
baseAnimation.addAnimation(contentAnimation);
|
|
634
590
|
}
|
|
@@ -709,7 +665,7 @@ const createLeaveAnimation$1 = () => {
|
|
|
709
665
|
* iOS Modal Leave Animation
|
|
710
666
|
*/
|
|
711
667
|
const iosLeaveAnimation = (baseEl, opts, duration = 500) => {
|
|
712
|
-
const { presentingEl, currentBreakpoint
|
|
668
|
+
const { presentingEl, currentBreakpoint } = opts;
|
|
713
669
|
const root = helpers.getElementRoot(baseEl);
|
|
714
670
|
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
|
|
715
671
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
@@ -718,29 +674,7 @@ const iosLeaveAnimation = (baseEl, opts, duration = 500) => {
|
|
|
718
674
|
.addElement(baseEl)
|
|
719
675
|
.easing('cubic-bezier(0.32,0.72,0,1)')
|
|
720
676
|
.duration(duration)
|
|
721
|
-
.addAnimation(wrapperAnimation)
|
|
722
|
-
.beforeAddWrite(() => {
|
|
723
|
-
if (expandToScroll) {
|
|
724
|
-
// Scroll can only be done when the modal is fully expanded.
|
|
725
|
-
return;
|
|
726
|
-
}
|
|
727
|
-
/**
|
|
728
|
-
* If expandToScroll is disabled, we need to swap
|
|
729
|
-
* the visibility to the original, so the footer
|
|
730
|
-
* dismisses with the modal and doesn't stay
|
|
731
|
-
* until the modal is removed from the DOM.
|
|
732
|
-
*/
|
|
733
|
-
const ionFooter = baseEl.querySelector('ion-footer');
|
|
734
|
-
if (ionFooter) {
|
|
735
|
-
const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
|
|
736
|
-
ionFooter.style.removeProperty('display');
|
|
737
|
-
ionFooter.removeAttribute('aria-hidden');
|
|
738
|
-
clonedFooter.style.setProperty('display', 'none');
|
|
739
|
-
clonedFooter.setAttribute('aria-hidden', 'true');
|
|
740
|
-
const page = baseEl.querySelector('.ion-page');
|
|
741
|
-
page.style.removeProperty('padding-bottom');
|
|
742
|
-
}
|
|
743
|
-
});
|
|
677
|
+
.addAnimation(wrapperAnimation);
|
|
744
678
|
const appEl = baseEl.closest('ion-app');
|
|
745
679
|
if (presentingEl && appEl) {
|
|
746
680
|
const isMobile = window.innerWidth < 768;
|
|
@@ -831,52 +765,12 @@ const mdEnterAnimation = (baseEl, opts) => {
|
|
|
831
765
|
wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
|
|
832
766
|
// The content animation is only added if scrolling is enabled for
|
|
833
767
|
// all the breakpoints.
|
|
834
|
-
expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
|
|
768
|
+
!expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
|
|
835
769
|
const baseAnimation = animation.createAnimation()
|
|
836
770
|
.addElement(baseEl)
|
|
837
771
|
.easing('cubic-bezier(0.36,0.66,0.04,1)')
|
|
838
772
|
.duration(280)
|
|
839
|
-
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
840
|
-
.beforeAddWrite(() => {
|
|
841
|
-
if (expandToScroll) {
|
|
842
|
-
// Scroll can only be done when the modal is fully expanded.
|
|
843
|
-
return;
|
|
844
|
-
}
|
|
845
|
-
/**
|
|
846
|
-
* There are some browsers that causes flickering when
|
|
847
|
-
* dragging the content when scroll is enabled at every
|
|
848
|
-
* breakpoint. This is due to the wrapper element being
|
|
849
|
-
* transformed off the screen and having a snap animation.
|
|
850
|
-
*
|
|
851
|
-
* A workaround is to clone the footer element and append
|
|
852
|
-
* it outside of the wrapper element. This way, the footer
|
|
853
|
-
* is still visible and the drag can be done without
|
|
854
|
-
* flickering. The original footer is hidden until the modal
|
|
855
|
-
* is dismissed. This maintains the animation of the footer
|
|
856
|
-
* when the modal is dismissed.
|
|
857
|
-
*
|
|
858
|
-
* The workaround needs to be done before the animation starts
|
|
859
|
-
* so there are no flickering issues.
|
|
860
|
-
*/
|
|
861
|
-
const ionFooter = baseEl.querySelector('ion-footer');
|
|
862
|
-
/**
|
|
863
|
-
* This check is needed to prevent more than one footer
|
|
864
|
-
* from being appended to the shadow root.
|
|
865
|
-
* Otherwise, iOS and MD enter animations would append
|
|
866
|
-
* the footer twice.
|
|
867
|
-
*/
|
|
868
|
-
const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
|
|
869
|
-
if (ionFooter && !ionFooterAlreadyAppended) {
|
|
870
|
-
const footerHeight = ionFooter.clientHeight;
|
|
871
|
-
const clonedFooter = ionFooter.cloneNode(true);
|
|
872
|
-
baseEl.shadowRoot.appendChild(clonedFooter);
|
|
873
|
-
ionFooter.style.setProperty('display', 'none');
|
|
874
|
-
ionFooter.setAttribute('aria-hidden', 'true');
|
|
875
|
-
// Padding is added to prevent some content from being hidden.
|
|
876
|
-
const page = baseEl.querySelector('.ion-page');
|
|
877
|
-
page.style.setProperty('padding-bottom', `${footerHeight}px`);
|
|
878
|
-
}
|
|
879
|
-
});
|
|
773
|
+
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
880
774
|
if (contentAnimation) {
|
|
881
775
|
baseAnimation.addAnimation(contentAnimation);
|
|
882
776
|
}
|
|
@@ -895,7 +789,7 @@ const createLeaveAnimation = () => {
|
|
|
895
789
|
* Md Modal Leave Animation
|
|
896
790
|
*/
|
|
897
791
|
const mdLeaveAnimation = (baseEl, opts) => {
|
|
898
|
-
const { currentBreakpoint
|
|
792
|
+
const { currentBreakpoint } = opts;
|
|
899
793
|
const root = helpers.getElementRoot(baseEl);
|
|
900
794
|
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation();
|
|
901
795
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
@@ -903,29 +797,7 @@ const mdLeaveAnimation = (baseEl, opts) => {
|
|
|
903
797
|
const baseAnimation = animation.createAnimation()
|
|
904
798
|
.easing('cubic-bezier(0.47,0,0.745,0.715)')
|
|
905
799
|
.duration(200)
|
|
906
|
-
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
907
|
-
.beforeAddWrite(() => {
|
|
908
|
-
if (expandToScroll) {
|
|
909
|
-
// Scroll can only be done when the modal is fully expanded.
|
|
910
|
-
return;
|
|
911
|
-
}
|
|
912
|
-
/**
|
|
913
|
-
* If expandToScroll is disabled, we need to swap
|
|
914
|
-
* the visibility to the original, so the footer
|
|
915
|
-
* dismisses with the modal and doesn't stay
|
|
916
|
-
* until the modal is removed from the DOM.
|
|
917
|
-
*/
|
|
918
|
-
const ionFooter = baseEl.querySelector('ion-footer');
|
|
919
|
-
if (ionFooter) {
|
|
920
|
-
const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
|
|
921
|
-
ionFooter.style.removeProperty('display');
|
|
922
|
-
ionFooter.removeAttribute('aria-hidden');
|
|
923
|
-
clonedFooter.style.setProperty('display', 'none');
|
|
924
|
-
clonedFooter.setAttribute('aria-hidden', 'true');
|
|
925
|
-
const page = baseEl.querySelector('.ion-page');
|
|
926
|
-
page.style.removeProperty('padding-bottom');
|
|
927
|
-
}
|
|
928
|
-
});
|
|
800
|
+
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
929
801
|
return baseAnimation;
|
|
930
802
|
};
|
|
931
803
|
|
|
@@ -957,6 +829,9 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
957
829
|
let offset = 0;
|
|
958
830
|
let canDismissBlocksGesture = false;
|
|
959
831
|
let cachedScrollEl = null;
|
|
832
|
+
let cachedFooterEls = null;
|
|
833
|
+
let cachedFooterYPosition = null;
|
|
834
|
+
let currentFooterState = null;
|
|
960
835
|
const canDismissMaxStep = 0.95;
|
|
961
836
|
const maxBreakpoint = breakpoints[breakpoints.length - 1];
|
|
962
837
|
const minBreakpoint = breakpoints[0];
|
|
@@ -986,29 +861,87 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
986
861
|
baseEl.classList.add(overlays.FOCUS_TRAP_DISABLE_CLASS);
|
|
987
862
|
};
|
|
988
863
|
/**
|
|
989
|
-
* Toggles the
|
|
990
|
-
*
|
|
864
|
+
* Toggles the footer to an absolute position while moving to prevent
|
|
865
|
+
* it from shaking while the sheet is being dragged.
|
|
866
|
+
* @param newPosition Whether the footer is in a moving or stationary position.
|
|
991
867
|
*/
|
|
992
|
-
const
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
868
|
+
const swapFooterPosition = (newPosition) => {
|
|
869
|
+
if (!cachedFooterEls) {
|
|
870
|
+
cachedFooterEls = Array.from(baseEl.querySelectorAll('ion-footer'));
|
|
871
|
+
if (!cachedFooterEls.length) {
|
|
872
|
+
return;
|
|
873
|
+
}
|
|
996
874
|
}
|
|
997
|
-
const clonedFooter = wrapperEl.nextElementSibling;
|
|
998
|
-
const footerToHide = footer === 'original' ? clonedFooter : originalFooter;
|
|
999
|
-
const footerToShow = footer === 'original' ? originalFooter : clonedFooter;
|
|
1000
|
-
footerToShow.style.removeProperty('display');
|
|
1001
|
-
footerToShow.removeAttribute('aria-hidden');
|
|
1002
875
|
const page = baseEl.querySelector('.ion-page');
|
|
1003
|
-
|
|
1004
|
-
|
|
876
|
+
currentFooterState = newPosition;
|
|
877
|
+
if (newPosition === 'stationary') {
|
|
878
|
+
cachedFooterEls.forEach((cachedFooterEl) => {
|
|
879
|
+
// Reset positioning styles to allow normal document flow
|
|
880
|
+
cachedFooterEl.classList.remove('modal-footer-moving');
|
|
881
|
+
cachedFooterEl.style.removeProperty('position');
|
|
882
|
+
cachedFooterEl.style.removeProperty('width');
|
|
883
|
+
cachedFooterEl.style.removeProperty('height');
|
|
884
|
+
cachedFooterEl.style.removeProperty('top');
|
|
885
|
+
cachedFooterEl.style.removeProperty('left');
|
|
886
|
+
page === null || page === void 0 ? void 0 : page.style.removeProperty('padding-bottom');
|
|
887
|
+
// Move to page
|
|
888
|
+
page === null || page === void 0 ? void 0 : page.appendChild(cachedFooterEl);
|
|
889
|
+
});
|
|
1005
890
|
}
|
|
1006
891
|
else {
|
|
1007
|
-
|
|
1008
|
-
|
|
892
|
+
let footerHeights = 0;
|
|
893
|
+
cachedFooterEls.forEach((cachedFooterEl, index) => {
|
|
894
|
+
// Get both the footer and document body positions
|
|
895
|
+
const cachedFooterElRect = cachedFooterEl.getBoundingClientRect();
|
|
896
|
+
const bodyRect = document.body.getBoundingClientRect();
|
|
897
|
+
// Calculate the total height of all footers
|
|
898
|
+
// so we can add padding to the page element
|
|
899
|
+
footerHeights += cachedFooterEl.clientHeight;
|
|
900
|
+
// Calculate absolute position relative to body
|
|
901
|
+
// We need to subtract the body's offsetTop to get true position within document.body
|
|
902
|
+
const absoluteTop = cachedFooterElRect.top - bodyRect.top;
|
|
903
|
+
const absoluteLeft = cachedFooterElRect.left - bodyRect.left;
|
|
904
|
+
// Capture the footer's current dimensions and store them in CSS variables for
|
|
905
|
+
// later use when applying absolute positioning.
|
|
906
|
+
cachedFooterEl.style.setProperty('--pinned-width', `${cachedFooterEl.clientWidth}px`);
|
|
907
|
+
cachedFooterEl.style.setProperty('--pinned-height', `${cachedFooterEl.clientHeight}px`);
|
|
908
|
+
cachedFooterEl.style.setProperty('--pinned-top', `${absoluteTop}px`);
|
|
909
|
+
cachedFooterEl.style.setProperty('--pinned-left', `${absoluteLeft}px`);
|
|
910
|
+
// Only cache the first footer's Y position
|
|
911
|
+
// This is used to determine if the sheet has been moved below the footer
|
|
912
|
+
// and needs to be swapped back to stationary so it collapses correctly.
|
|
913
|
+
if (index === 0) {
|
|
914
|
+
cachedFooterYPosition = absoluteTop;
|
|
915
|
+
// If there's a header, we need to combine the header height with the footer position
|
|
916
|
+
// because the header moves with the drag handle, so when it starts overlapping the footer,
|
|
917
|
+
// we need to account for that.
|
|
918
|
+
const header = baseEl.querySelector('ion-header');
|
|
919
|
+
if (header) {
|
|
920
|
+
cachedFooterYPosition -= header.clientHeight;
|
|
921
|
+
}
|
|
922
|
+
}
|
|
923
|
+
});
|
|
924
|
+
// Apply the pinning of styles after we've calculated everything
|
|
925
|
+
// so that we don't cause layouts to shift while calculating the footer positions.
|
|
926
|
+
// Otherwise, with multiple footers we'll end up capturing the wrong positions.
|
|
927
|
+
cachedFooterEls.forEach((cachedFooterEl) => {
|
|
928
|
+
// Add padding to the parent element to prevent content from being hidden
|
|
929
|
+
// when the footer is positioned absolutely. This has to be done before we
|
|
930
|
+
// make the footer absolutely positioned or we may accidentally cause the
|
|
931
|
+
// sheet to scroll.
|
|
932
|
+
page === null || page === void 0 ? void 0 : page.style.setProperty('padding-bottom', `${footerHeights}px`);
|
|
933
|
+
// Apply positioning styles to keep footer at bottom
|
|
934
|
+
cachedFooterEl.classList.add('modal-footer-moving');
|
|
935
|
+
// Apply our preserved styles to pin the footer
|
|
936
|
+
cachedFooterEl.style.setProperty('position', 'absolute');
|
|
937
|
+
cachedFooterEl.style.setProperty('width', 'var(--pinned-width)');
|
|
938
|
+
cachedFooterEl.style.setProperty('height', 'var(--pinned-height)');
|
|
939
|
+
cachedFooterEl.style.setProperty('top', 'var(--pinned-top)');
|
|
940
|
+
cachedFooterEl.style.setProperty('left', 'var(--pinned-left)');
|
|
941
|
+
// Move the element to the body when everything else is done
|
|
942
|
+
document.body.appendChild(cachedFooterEl);
|
|
943
|
+
});
|
|
1009
944
|
}
|
|
1010
|
-
footerToHide.style.setProperty('display', 'none');
|
|
1011
|
-
footerToHide.setAttribute('aria-hidden', 'true');
|
|
1012
945
|
};
|
|
1013
946
|
/**
|
|
1014
947
|
* After the entering animation completes,
|
|
@@ -1102,12 +1035,11 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1102
1035
|
}
|
|
1103
1036
|
/**
|
|
1104
1037
|
* If expandToScroll is disabled, we need to swap
|
|
1105
|
-
* the footer
|
|
1106
|
-
*
|
|
1107
|
-
* and doesn't stay on the screen after the modal is gone.
|
|
1038
|
+
* the footer position to moving so that it doesn't shake
|
|
1039
|
+
* while the sheet is being dragged.
|
|
1108
1040
|
*/
|
|
1109
1041
|
if (!expandToScroll) {
|
|
1110
|
-
|
|
1042
|
+
swapFooterPosition('moving');
|
|
1111
1043
|
}
|
|
1112
1044
|
/**
|
|
1113
1045
|
* If we are pulling down, then it is possible we are pulling on the content.
|
|
@@ -1126,6 +1058,21 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1126
1058
|
animation.progressStart(true, 1 - currentBreakpoint);
|
|
1127
1059
|
};
|
|
1128
1060
|
const onMove = (detail) => {
|
|
1061
|
+
/**
|
|
1062
|
+
* If `expandToScroll` is disabled, we need to see if we're currently below
|
|
1063
|
+
* the footer element and the footer is in a stationary position. If so,
|
|
1064
|
+
* we need to make the stationary the original position so that the footer
|
|
1065
|
+
* collapses with the sheet.
|
|
1066
|
+
*/
|
|
1067
|
+
if (!expandToScroll && cachedFooterYPosition !== null && currentFooterState !== null) {
|
|
1068
|
+
// Check if we need to swap the footer position
|
|
1069
|
+
if (detail.currentY >= cachedFooterYPosition && currentFooterState === 'moving') {
|
|
1070
|
+
swapFooterPosition('stationary');
|
|
1071
|
+
}
|
|
1072
|
+
else if (detail.currentY < cachedFooterYPosition && currentFooterState === 'stationary') {
|
|
1073
|
+
swapFooterPosition('moving');
|
|
1074
|
+
}
|
|
1075
|
+
}
|
|
1129
1076
|
/**
|
|
1130
1077
|
* If `expandToScroll` is disabled, and an upwards swipe gesture is done within
|
|
1131
1078
|
* the scrollable content, we should not allow the swipe gesture to continue.
|
|
@@ -1185,6 +1132,14 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1185
1132
|
* is not scrolled to the top.
|
|
1186
1133
|
*/
|
|
1187
1134
|
if (!expandToScroll && detail.deltaY <= 0 && cachedScrollEl && cachedScrollEl.scrollTop > 0) {
|
|
1135
|
+
/**
|
|
1136
|
+
* If expand to scroll is disabled, we need to make sure we swap the footer position
|
|
1137
|
+
* back to stationary so that it will collapse correctly if the modal is dismissed without
|
|
1138
|
+
* dragging (e.g. through a dismiss button).
|
|
1139
|
+
* This can cause issues if the user has a modal with content that can be dragged, as we'll
|
|
1140
|
+
* swap to moving on drag and if we don't swap back here then the footer will get stuck.
|
|
1141
|
+
*/
|
|
1142
|
+
swapFooterPosition('stationary');
|
|
1188
1143
|
return;
|
|
1189
1144
|
}
|
|
1190
1145
|
/**
|
|
@@ -1259,14 +1214,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1259
1214
|
* snapping animation completes.
|
|
1260
1215
|
*/
|
|
1261
1216
|
gesture.enable(false);
|
|
1262
|
-
/**
|
|
1263
|
-
* If expandToScroll is disabled, we need to swap
|
|
1264
|
-
* the footer visibility to the cloned one so the footer
|
|
1265
|
-
* doesn't flicker when the sheet's height is animated.
|
|
1266
|
-
*/
|
|
1267
|
-
if (!expandToScroll && shouldRemainOpen) {
|
|
1268
|
-
swapFooterVisibility('cloned');
|
|
1269
|
-
}
|
|
1270
1217
|
if (shouldPreventDismiss) {
|
|
1271
1218
|
handleCanDismiss(baseEl, animation);
|
|
1272
1219
|
}
|
|
@@ -1283,10 +1230,28 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1283
1230
|
if (contentEl && (snapToBreakpoint === breakpoints[breakpoints.length - 1] || !expandToScroll)) {
|
|
1284
1231
|
contentEl.scrollY = true;
|
|
1285
1232
|
}
|
|
1233
|
+
/**
|
|
1234
|
+
* If expandToScroll is disabled and we're animating
|
|
1235
|
+
* to close the sheet, we need to swap
|
|
1236
|
+
* the footer position to stationary so that it
|
|
1237
|
+
* will collapse correctly. We cannot just always swap
|
|
1238
|
+
* here or it'll be jittery while animating movement.
|
|
1239
|
+
*/
|
|
1240
|
+
if (!expandToScroll && snapToBreakpoint === 0) {
|
|
1241
|
+
swapFooterPosition('stationary');
|
|
1242
|
+
}
|
|
1286
1243
|
return new Promise((resolve) => {
|
|
1287
1244
|
animation
|
|
1288
1245
|
.onFinish(() => {
|
|
1289
1246
|
if (shouldRemainOpen) {
|
|
1247
|
+
/**
|
|
1248
|
+
* If expandToScroll is disabled, we need to swap
|
|
1249
|
+
* the footer position to stationary so that it
|
|
1250
|
+
* will act as it would by default.
|
|
1251
|
+
*/
|
|
1252
|
+
if (!expandToScroll) {
|
|
1253
|
+
swapFooterPosition('stationary');
|
|
1254
|
+
}
|
|
1290
1255
|
/**
|
|
1291
1256
|
* Once the snapping animation completes,
|
|
1292
1257
|
* we need to reset the animation to go
|
|
@@ -1351,11 +1316,9 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1351
1316
|
};
|
|
1352
1317
|
};
|
|
1353
1318
|
|
|
1354
|
-
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}
|
|
1355
|
-
const IonModalIosStyle0 = modalIosCss;
|
|
1319
|
+
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}";
|
|
1356
1320
|
|
|
1357
1321
|
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}";
|
|
1358
|
-
const IonModalMdStyle0 = modalMdCss;
|
|
1359
1322
|
|
|
1360
1323
|
const Modal = class {
|
|
1361
1324
|
constructor(hostRef) {
|
|
@@ -1378,6 +1341,112 @@ const Modal = class {
|
|
|
1378
1341
|
this.inline = false;
|
|
1379
1342
|
// Whether or not modal is being dismissed via gesture
|
|
1380
1343
|
this.gestureAnimationDismissing = false;
|
|
1344
|
+
this.presented = false;
|
|
1345
|
+
/** @internal */
|
|
1346
|
+
this.hasController = false;
|
|
1347
|
+
/**
|
|
1348
|
+
* If `true`, the keyboard will be automatically dismissed when the overlay is presented.
|
|
1349
|
+
*/
|
|
1350
|
+
this.keyboardClose = true;
|
|
1351
|
+
/**
|
|
1352
|
+
* Controls whether scrolling or dragging within the sheet modal expands
|
|
1353
|
+
* it to a larger breakpoint. This only takes effect when `breakpoints`
|
|
1354
|
+
* and `initialBreakpoint` are set.
|
|
1355
|
+
*
|
|
1356
|
+
* If `true`, scrolling or dragging anywhere in the modal will first expand
|
|
1357
|
+
* it to the next breakpoint. Once fully expanded, scrolling will affect the
|
|
1358
|
+
* content.
|
|
1359
|
+
* If `false`, scrolling will always affect the content. The modal will
|
|
1360
|
+
* only expand when dragging the header or handle. The modal will close when
|
|
1361
|
+
* dragging the header or handle. It can also be closed when dragging the
|
|
1362
|
+
* content, but only if the content is scrolled to the top.
|
|
1363
|
+
*/
|
|
1364
|
+
this.expandToScroll = true;
|
|
1365
|
+
/**
|
|
1366
|
+
* A decimal value between 0 and 1 that indicates the
|
|
1367
|
+
* point after which the backdrop will begin to fade in
|
|
1368
|
+
* when using a sheet modal. Prior to this point, the
|
|
1369
|
+
* backdrop will be hidden and the content underneath
|
|
1370
|
+
* the sheet can be interacted with. This value is exclusive
|
|
1371
|
+
* meaning the backdrop will become active after the value
|
|
1372
|
+
* specified.
|
|
1373
|
+
*/
|
|
1374
|
+
this.backdropBreakpoint = 0;
|
|
1375
|
+
/**
|
|
1376
|
+
* The interaction behavior for the sheet modal when the handle is pressed.
|
|
1377
|
+
*
|
|
1378
|
+
* Defaults to `"none"`, which means the modal will not change size or position when the handle is pressed.
|
|
1379
|
+
* Set to `"cycle"` to let the modal cycle between available breakpoints when pressed.
|
|
1380
|
+
*
|
|
1381
|
+
* Handle behavior is unavailable when the `handle` property is set to `false` or
|
|
1382
|
+
* when the `breakpoints` property is not set (using a fullscreen or card modal).
|
|
1383
|
+
*/
|
|
1384
|
+
this.handleBehavior = 'none';
|
|
1385
|
+
/**
|
|
1386
|
+
* If `true`, the modal will be dismissed when the backdrop is clicked.
|
|
1387
|
+
*/
|
|
1388
|
+
this.backdropDismiss = true;
|
|
1389
|
+
/**
|
|
1390
|
+
* If `true`, a backdrop will be displayed behind the modal.
|
|
1391
|
+
* This property controls whether or not the backdrop
|
|
1392
|
+
* darkens the screen when the modal is presented.
|
|
1393
|
+
* It does not control whether or not the backdrop
|
|
1394
|
+
* is active or present in the DOM.
|
|
1395
|
+
*/
|
|
1396
|
+
this.showBackdrop = true;
|
|
1397
|
+
/**
|
|
1398
|
+
* If `true`, the modal will animate.
|
|
1399
|
+
*/
|
|
1400
|
+
this.animated = true;
|
|
1401
|
+
/**
|
|
1402
|
+
* If `true`, the modal will open. If `false`, the modal will close.
|
|
1403
|
+
* Use this if you need finer grained control over presentation, otherwise
|
|
1404
|
+
* just use the modalController or the `trigger` property.
|
|
1405
|
+
* Note: `isOpen` will not automatically be set back to `false` when
|
|
1406
|
+
* the modal dismisses. You will need to do that in your code.
|
|
1407
|
+
*/
|
|
1408
|
+
this.isOpen = false;
|
|
1409
|
+
/**
|
|
1410
|
+
* If `true`, the component passed into `ion-modal` will
|
|
1411
|
+
* automatically be mounted when the modal is created. The
|
|
1412
|
+
* component will remain mounted even when the modal is dismissed.
|
|
1413
|
+
* However, the component will be destroyed when the modal is
|
|
1414
|
+
* destroyed. This property is not reactive and should only be
|
|
1415
|
+
* used when initially creating a modal.
|
|
1416
|
+
*
|
|
1417
|
+
* Note: This feature only applies to inline modals in JavaScript
|
|
1418
|
+
* frameworks such as Angular, React, and Vue.
|
|
1419
|
+
*/
|
|
1420
|
+
this.keepContentsMounted = false;
|
|
1421
|
+
/**
|
|
1422
|
+
* If `true`, focus will not be allowed to move outside of this overlay.
|
|
1423
|
+
* If `false`, focus will be allowed to move outside of the overlay.
|
|
1424
|
+
*
|
|
1425
|
+
* In most scenarios this property should remain set to `true`. Setting
|
|
1426
|
+
* this property to `false` can cause severe accessibility issues as users
|
|
1427
|
+
* relying on assistive technologies may be able to move focus into
|
|
1428
|
+
* a confusing state. We recommend only setting this to `false` when
|
|
1429
|
+
* absolutely necessary.
|
|
1430
|
+
*
|
|
1431
|
+
* Developers may want to consider disabling focus trapping if this
|
|
1432
|
+
* overlay presents a non-Ionic overlay from a 3rd party library.
|
|
1433
|
+
* Developers would disable focus trapping on the Ionic overlay
|
|
1434
|
+
* when presenting the 3rd party overlay and then re-enable
|
|
1435
|
+
* focus trapping when dismissing the 3rd party overlay and moving
|
|
1436
|
+
* focus back to the Ionic overlay.
|
|
1437
|
+
*/
|
|
1438
|
+
this.focusTrap = true;
|
|
1439
|
+
/**
|
|
1440
|
+
* Determines whether or not a modal can dismiss
|
|
1441
|
+
* when calling the `dismiss` method.
|
|
1442
|
+
*
|
|
1443
|
+
* If the value is `true` or the value's function returns `true`, the modal will close when trying to dismiss.
|
|
1444
|
+
* If the value is `false` or the value's function returns `false`, the modal will not close when trying to dismiss.
|
|
1445
|
+
*
|
|
1446
|
+
* See https://ionicframework.com/docs/troubleshooting/runtime#accessing-this
|
|
1447
|
+
* if you need to access `this` from within the callback.
|
|
1448
|
+
*/
|
|
1449
|
+
this.canDismiss = true;
|
|
1381
1450
|
this.onHandleClick = () => {
|
|
1382
1451
|
const { sheetTransition, handleBehavior } = this;
|
|
1383
1452
|
if (handleBehavior !== 'cycle' || sheetTransition !== undefined) {
|
|
@@ -1415,32 +1484,6 @@ const Modal = class {
|
|
|
1415
1484
|
el.dispatchEvent(ev);
|
|
1416
1485
|
}
|
|
1417
1486
|
};
|
|
1418
|
-
this.presented = false;
|
|
1419
|
-
this.hasController = false;
|
|
1420
|
-
this.overlayIndex = undefined;
|
|
1421
|
-
this.delegate = undefined;
|
|
1422
|
-
this.keyboardClose = true;
|
|
1423
|
-
this.enterAnimation = undefined;
|
|
1424
|
-
this.leaveAnimation = undefined;
|
|
1425
|
-
this.breakpoints = undefined;
|
|
1426
|
-
this.expandToScroll = true;
|
|
1427
|
-
this.initialBreakpoint = undefined;
|
|
1428
|
-
this.backdropBreakpoint = 0;
|
|
1429
|
-
this.handle = undefined;
|
|
1430
|
-
this.handleBehavior = 'none';
|
|
1431
|
-
this.component = undefined;
|
|
1432
|
-
this.componentProps = undefined;
|
|
1433
|
-
this.cssClass = undefined;
|
|
1434
|
-
this.backdropDismiss = true;
|
|
1435
|
-
this.showBackdrop = true;
|
|
1436
|
-
this.animated = true;
|
|
1437
|
-
this.presentingElement = undefined;
|
|
1438
|
-
this.htmlAttributes = undefined;
|
|
1439
|
-
this.isOpen = false;
|
|
1440
|
-
this.trigger = undefined;
|
|
1441
|
-
this.keepContentsMounted = false;
|
|
1442
|
-
this.focusTrap = true;
|
|
1443
|
-
this.canDismiss = true;
|
|
1444
1487
|
}
|
|
1445
1488
|
onIsOpenChange(newValue, oldValue) {
|
|
1446
1489
|
if (newValue === true && oldValue === false) {
|
|
@@ -1510,7 +1553,7 @@ const Modal = class {
|
|
|
1510
1553
|
this.currentBreakpoint = this.initialBreakpoint;
|
|
1511
1554
|
}
|
|
1512
1555
|
if (breakpoints !== undefined && initialBreakpoint !== undefined && !breakpoints.includes(initialBreakpoint)) {
|
|
1513
|
-
index$
|
|
1556
|
+
index$3.printIonWarning('[ion-modal] - Your breakpoints array must include the initialBreakpoint value.');
|
|
1514
1557
|
}
|
|
1515
1558
|
if (!((_a = this.htmlAttributes) === null || _a === void 0 ? void 0 : _a.id)) {
|
|
1516
1559
|
overlays.setOverlayId(this.el);
|
|
@@ -1610,7 +1653,7 @@ const Modal = class {
|
|
|
1610
1653
|
* get the transition incorrect.
|
|
1611
1654
|
*/
|
|
1612
1655
|
if (helpers.hasLazyBuild(el)) {
|
|
1613
|
-
await index$
|
|
1656
|
+
await index$4.deepReady(this.usersElement);
|
|
1614
1657
|
/**
|
|
1615
1658
|
* If keepContentsMounted="true" then the
|
|
1616
1659
|
* JS Framework has already mounted the inner
|
|
@@ -1621,7 +1664,7 @@ const Modal = class {
|
|
|
1621
1664
|
*/
|
|
1622
1665
|
}
|
|
1623
1666
|
else if (!this.keepContentsMounted) {
|
|
1624
|
-
await index$
|
|
1667
|
+
await index$4.waitForMount();
|
|
1625
1668
|
}
|
|
1626
1669
|
index$3.writeTask(() => this.el.classList.add('show-modal'));
|
|
1627
1670
|
const hasCardModal = presentingElement !== undefined;
|
|
@@ -1630,7 +1673,7 @@ const Modal = class {
|
|
|
1630
1673
|
* start of the animation so that it completes
|
|
1631
1674
|
* by the time the card animation is done.
|
|
1632
1675
|
*/
|
|
1633
|
-
if (hasCardModal &&
|
|
1676
|
+
if (hasCardModal && index$3.getIonMode(this) === 'ios') {
|
|
1634
1677
|
// Cache the original status bar color before the modal is presented
|
|
1635
1678
|
this.statusBarStyle = await StatusBar.getStyle();
|
|
1636
1679
|
setCardStatusBarDark();
|
|
@@ -1682,14 +1725,14 @@ const Modal = class {
|
|
|
1682
1725
|
}
|
|
1683
1726
|
initSwipeToClose() {
|
|
1684
1727
|
var _a;
|
|
1685
|
-
if (
|
|
1728
|
+
if (index$3.getIonMode(this) !== 'ios') {
|
|
1686
1729
|
return;
|
|
1687
1730
|
}
|
|
1688
1731
|
const { el } = this;
|
|
1689
1732
|
// All of the elements needed for the swipe gesture
|
|
1690
1733
|
// should be in the DOM and referenced by now, except
|
|
1691
1734
|
// for the presenting el
|
|
1692
|
-
const animationBuilder = this.leaveAnimation || index$
|
|
1735
|
+
const animationBuilder = this.leaveAnimation || index$3.config.get('modalLeave', iosLeaveAnimation);
|
|
1693
1736
|
const ani = (this.animation = animationBuilder(el, {
|
|
1694
1737
|
presentingEl: this.presentingElement,
|
|
1695
1738
|
expandToScroll: this.expandToScroll,
|
|
@@ -1733,7 +1776,7 @@ const Modal = class {
|
|
|
1733
1776
|
if (!wrapperEl || initialBreakpoint === undefined) {
|
|
1734
1777
|
return;
|
|
1735
1778
|
}
|
|
1736
|
-
const animationBuilder = this.enterAnimation || index$
|
|
1779
|
+
const animationBuilder = this.enterAnimation || index$3.config.get('modalEnter', iosEnterAnimation);
|
|
1737
1780
|
const ani = (this.animation = animationBuilder(this.el, {
|
|
1738
1781
|
presentingEl: this.presentingElement,
|
|
1739
1782
|
currentBreakpoint: initialBreakpoint,
|
|
@@ -1807,7 +1850,7 @@ const Modal = class {
|
|
|
1807
1850
|
* finishes when the dismiss animation does.
|
|
1808
1851
|
*/
|
|
1809
1852
|
const hasCardModal = presentingElement !== undefined;
|
|
1810
|
-
if (hasCardModal &&
|
|
1853
|
+
if (hasCardModal && index$3.getIonMode(this) === 'ios') {
|
|
1811
1854
|
setCardStatusBarDefault(this.statusBarStyle);
|
|
1812
1855
|
}
|
|
1813
1856
|
/* tslint:disable-next-line */
|
|
@@ -1855,11 +1898,11 @@ const Modal = class {
|
|
|
1855
1898
|
*/
|
|
1856
1899
|
async setCurrentBreakpoint(breakpoint) {
|
|
1857
1900
|
if (!this.isSheetModal) {
|
|
1858
|
-
index$
|
|
1901
|
+
index$3.printIonWarning('[ion-modal] - setCurrentBreakpoint is only supported on sheet modals.');
|
|
1859
1902
|
return;
|
|
1860
1903
|
}
|
|
1861
1904
|
if (!this.breakpoints.includes(breakpoint)) {
|
|
1862
|
-
index$
|
|
1905
|
+
index$3.printIonWarning(`[ion-modal] - Attempted to set invalid breakpoint value ${breakpoint}. Please double check that the breakpoint value is part of your defined breakpoints.`);
|
|
1863
1906
|
return;
|
|
1864
1907
|
}
|
|
1865
1908
|
const { currentBreakpoint, moveSheetToBreakpoint, canDismiss, breakpoints, animated } = this;
|
|
@@ -1907,21 +1950,21 @@ const Modal = class {
|
|
|
1907
1950
|
render() {
|
|
1908
1951
|
const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap, expandToScroll, } = this;
|
|
1909
1952
|
const showHandle = handle !== false && isSheetModal;
|
|
1910
|
-
const mode =
|
|
1953
|
+
const mode = index$3.getIonMode(this);
|
|
1911
1954
|
const isCardModal = presentingElement !== undefined && mode === 'ios';
|
|
1912
1955
|
const isHandleCycle = handleBehavior === 'cycle';
|
|
1913
|
-
return (index$3.h(index$3.Host, Object.assign({ key: '
|
|
1956
|
+
return (index$3.h(index$3.Host, Object.assign({ key: '0bcbdcfcd7d890eb599da3f97f21c317d34f8e0e', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
|
|
1914
1957
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
1915
|
-
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [overlays.FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, theme.getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), index$3.h("ion-backdrop", { key: '
|
|
1958
|
+
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [overlays.FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, theme.getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), index$3.h("ion-backdrop", { key: 'd72159e73daa5af7349aa9e8f695aa435eb43069', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && index$3.h("div", { key: 'fd2d9b13676ae72473881649a397b6eacde03a03', class: "modal-shadow" }), index$3.h("div", Object.assign({ key: '908eccb1ad982dcde2dbcff0cbb18b6e60f8ba74',
|
|
1916
1959
|
/*
|
|
1917
1960
|
role and aria-modal must be used on the
|
|
1918
1961
|
same element. They must also be set inside the
|
|
1919
1962
|
shadow DOM otherwise ion-button will not be highlighted
|
|
1920
1963
|
when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
|
|
1921
1964
|
*/
|
|
1922
|
-
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (index$3.h("button", { key: '
|
|
1965
|
+
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (index$3.h("button", { key: '332dc0b40363a77c7be62331d9f26def91c790e9', class: "modal-handle",
|
|
1923
1966
|
// Prevents the handle from receiving keyboard focus when it does not cycle
|
|
1924
|
-
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), index$3.h("slot", { key: '
|
|
1967
|
+
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), index$3.h("slot", { key: 'c32698350193c450327e97049daf8b8d1fda0d0e' }))));
|
|
1925
1968
|
}
|
|
1926
1969
|
get el() { return index$3.getElement(this); }
|
|
1927
1970
|
static get watchers() { return {
|
|
@@ -1936,8 +1979,8 @@ const LIFECYCLE_MAP = {
|
|
|
1936
1979
|
ionModalDidDismiss: 'ionViewDidLeave',
|
|
1937
1980
|
};
|
|
1938
1981
|
Modal.style = {
|
|
1939
|
-
ios:
|
|
1940
|
-
md:
|
|
1982
|
+
ios: modalIosCss,
|
|
1983
|
+
md: modalMdCss
|
|
1941
1984
|
};
|
|
1942
1985
|
|
|
1943
1986
|
exports.ion_modal = Modal;
|