voyager-ionic-core 8.4.3 → 8.5.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/alert.js +30 -4
- package/components/checkbox.js +40 -6
- package/components/helpers.js +17 -29
- package/components/index6.js +11 -3
- package/components/index9.js +1 -1
- package/components/ion-input.js +22 -9
- package/components/ion-item-divider.js +2 -2
- package/components/ion-item-group.js +1 -1
- package/components/ion-item-option.js +2 -2
- package/components/ion-item-options.js +1 -1
- package/components/ion-item-sliding.js +1 -1
- package/components/ion-loading.js +2 -2
- package/components/ion-menu-button.js +2 -2
- package/components/ion-menu-toggle.js +2 -2
- package/components/ion-menu.js +2 -2
- package/components/ion-nav-link.js +1 -1
- package/components/ion-nav.js +1 -1
- package/components/ion-note.js +2 -2
- package/components/ion-picker-legacy.js +2 -2
- package/components/ion-progress-bar.js +1 -1
- package/components/ion-range.js +28 -6
- package/components/ion-refresher-content.js +1 -1
- package/components/ion-refresher.js +1 -1
- package/components/ion-reorder-group.js +1 -1
- package/components/ion-reorder.js +1 -1
- package/components/ion-router-link.js +2 -2
- package/components/ion-router-outlet.js +1 -1
- package/components/ion-router.js +1 -1
- package/components/ion-row.js +1 -1
- package/components/ion-searchbar.js +4 -4
- package/components/ion-segment-button.js +40 -9
- package/components/ion-segment-content.js +1 -1
- package/components/ion-segment-view.js +2 -2
- package/components/ion-segment.js +2 -2
- package/components/ion-select-option.js +1 -1
- package/components/ion-select.js +87 -16
- package/components/ion-skeleton-text.js +2 -2
- package/components/ion-split-pane.js +2 -2
- package/components/ion-tab-bar.js +2 -2
- package/components/ion-tab-button.js +2 -2
- package/components/ion-tab.js +2 -2
- package/components/ion-tabs.js +1 -1
- package/components/ion-text.js +2 -2
- package/components/ion-textarea.js +21 -8
- package/components/ion-thumbnail.js +1 -1
- package/components/ion-toast.js +2 -2
- package/components/ion-toggle.js +41 -6
- package/components/ionic-global.js +3 -13
- package/components/label.js +2 -2
- package/components/list-header.js +2 -2
- package/components/modal.js +286 -35
- package/components/picker-column-option.js +2 -2
- package/components/picker-column2.js +2 -2
- package/components/popover.js +2 -2
- package/components/radio-group.js +39 -2
- package/components/radio.js +3 -3
- package/components/ripple-effect.js +1 -1
- package/components/select-modal.js +1 -1
- package/components/select-popover.js +1 -1
- package/components/spinner.js +1 -1
- package/components/title.js +2 -2
- package/components/toolbar.js +2 -2
- package/css/core.css.map +1 -1
- package/css/ionic.bundle.css.map +1 -1
- package/dist/cjs/{app-globals-21afee77.js → app-globals-dd592863.js} +1 -1
- package/dist/cjs/{button-active-3f2f60b4.js → button-active-43e2b419.js} +1 -1
- package/dist/cjs/{data-21dc0f81.js → data-27cc2c9c.js} +1 -1
- package/dist/cjs/{framework-delegate-55f5683a.js → framework-delegate-11b0ba2f.js} +1 -1
- package/dist/cjs/{hardware-back-button-9e8a2c4f.js → hardware-back-button-5a99001f.js} +2 -2
- package/dist/cjs/{helpers-afaa9001.js → helpers-d0dfbb50.js} +18 -28
- package/dist/cjs/{index-73f75efb.js → index-2e236a04.js} +0 -4
- package/dist/cjs/{index-9509ecad.js → index-363fe6b2.js} +1 -1
- package/dist/cjs/{index-5915f9b3.js → index-48b2a28e.js} +11 -3
- package/dist/cjs/{index-5b6a7459.js → index-9b945a2d.js} +2 -2
- package/dist/cjs/{index-f05acd21.js → index-f68a486a.js} +6 -6
- package/dist/cjs/{index-8e789962.js → index-fd6383b6.js} +4 -4
- package/dist/cjs/index.cjs.js +11 -11
- package/dist/cjs/{input-shims-9e59ef62.js → input-shims-2d27a5be.js} +5 -3
- package/dist/cjs/{input.utils-611cde0b.js → input.utils-2f642324.js} +2 -2
- package/dist/cjs/ion-accordion_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -8
- package/dist/cjs/ion-alert.cjs.entry.js +38 -12
- package/dist/cjs/ion-app_8.cjs.entry.js +18 -18
- package/dist/cjs/ion-avatar_3.cjs.entry.js +3 -3
- package/dist/cjs/ion-back-button.cjs.entry.js +3 -3
- package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-button_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-card_5.cjs.entry.js +3 -3
- package/dist/cjs/ion-checkbox.cjs.entry.js +40 -9
- package/dist/cjs/ion-chip.cjs.entry.js +2 -2
- package/dist/cjs/ion-col_3.cjs.entry.js +3 -3
- package/dist/cjs/ion-datetime-button.cjs.entry.js +5 -5
- package/dist/cjs/ion-datetime_3.cjs.entry.js +12 -12
- package/dist/cjs/ion-fab_3.cjs.entry.js +3 -3
- package/dist/cjs/ion-img.cjs.entry.js +3 -3
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +5 -5
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +3 -3
- package/dist/cjs/ion-input.cjs.entry.js +25 -13
- package/dist/cjs/ion-item-option_3.cjs.entry.js +9 -9
- package/dist/cjs/ion-item_8.cjs.entry.js +14 -14
- package/dist/cjs/ion-loading.cjs.entry.js +9 -9
- package/dist/cjs/ion-menu_3.cjs.entry.js +14 -14
- package/dist/cjs/ion-modal.cjs.entry.js +294 -44
- package/dist/cjs/ion-nav_2.cjs.entry.js +9 -9
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +5 -5
- package/dist/cjs/ion-picker-column.cjs.entry.js +3 -3
- package/dist/cjs/ion-picker.cjs.entry.js +2 -2
- package/dist/cjs/ion-popover.cjs.entry.js +10 -10
- package/dist/cjs/ion-progress-bar.cjs.entry.js +4 -4
- package/dist/cjs/ion-radio_2.cjs.entry.js +42 -7
- package/dist/cjs/ion-range.cjs.entry.js +31 -10
- package/dist/cjs/ion-refresher_2.cjs.entry.js +7 -7
- package/dist/cjs/ion-reorder_2.cjs.entry.js +7 -7
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +3 -3
- package/dist/cjs/ion-route_4.cjs.entry.js +5 -5
- package/dist/cjs/ion-searchbar.cjs.entry.js +7 -7
- package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
- package/dist/cjs/ion-segment-view.cjs.entry.js +3 -3
- package/dist/cjs/ion-segment_2.cjs.entry.js +44 -13
- package/dist/cjs/ion-select-modal.cjs.entry.js +8 -8
- package/dist/cjs/ion-select_3.cjs.entry.js +93 -25
- package/dist/cjs/ion-spinner.cjs.entry.js +3 -3
- package/dist/cjs/ion-split-pane.cjs.entry.js +4 -4
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +7 -7
- package/dist/cjs/ion-tab_2.cjs.entry.js +6 -6
- package/dist/cjs/ion-text.cjs.entry.js +4 -4
- package/dist/cjs/ion-textarea.cjs.entry.js +24 -12
- package/dist/cjs/ion-toast.cjs.entry.js +9 -9
- package/dist/cjs/ion-toggle.cjs.entry.js +41 -9
- package/dist/cjs/{ionic-global-d9a8bb5b.js → ionic-global-acb665ad.js} +3 -13
- package/dist/cjs/ionic.cjs.js +4 -4
- package/dist/cjs/{ios.transition-cf40433b.js → ios.transition-f970164c.js} +5 -5
- package/dist/cjs/loader.cjs.js +4 -4
- package/dist/cjs/{md.transition-ededf99f.js → md.transition-aa8820dd.js} +5 -5
- package/dist/cjs/{notch-controller-d69150f5.js → notch-controller-58d2e557.js} +1 -1
- package/dist/cjs/{overlays-aa669eb8.js → overlays-737576a2.js} +5 -5
- package/dist/cjs/{status-tap-37681226.js → status-tap-08d1ac81.js} +5 -4
- package/dist/cjs/{swipe-back-f38a434a.js → swipe-back-5c0003bd.js} +1 -1
- package/dist/collection/components/alert/alert.js +34 -4
- package/dist/collection/components/checkbox/checkbox.ios.css +52 -15
- package/dist/collection/components/checkbox/checkbox.js +90 -4
- package/dist/collection/components/checkbox/checkbox.md.css +52 -15
- package/dist/collection/components/input/input.ios.css +3 -2
- package/dist/collection/components/input/input.js +18 -4
- package/dist/collection/components/input/input.md.css +7 -2
- package/dist/collection/components/item-divider/item-divider.js +2 -2
- package/dist/collection/components/item-group/item-group.js +1 -1
- package/dist/collection/components/item-option/item-option.js +2 -2
- package/dist/collection/components/item-options/item-options.js +1 -1
- package/dist/collection/components/item-sliding/item-sliding.js +1 -1
- package/dist/collection/components/label/label.js +2 -2
- package/dist/collection/components/list-header/list-header.js +2 -2
- package/dist/collection/components/loading/loading.js +2 -2
- package/dist/collection/components/menu/menu.js +2 -2
- package/dist/collection/components/menu-button/menu-button.js +2 -2
- package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
- package/dist/collection/components/modal/animations/ios.enter.js +50 -4
- package/dist/collection/components/modal/animations/ios.leave.js +24 -2
- package/dist/collection/components/modal/animations/md.enter.js +52 -5
- package/dist/collection/components/modal/animations/md.leave.js +26 -3
- package/dist/collection/components/modal/animations/sheet.js +11 -2
- package/dist/collection/components/modal/gestures/sheet.js +108 -12
- package/dist/collection/components/modal/modal.ios.css +16 -0
- package/dist/collection/components/modal/modal.js +32 -7
- package/dist/collection/components/modal/modal.md.css +6 -0
- package/dist/collection/components/nav/nav.js +1 -1
- package/dist/collection/components/nav-link/nav-link.js +1 -1
- package/dist/collection/components/note/note.js +2 -2
- package/dist/collection/components/picker-column-option/picker-column-option.js +2 -2
- package/dist/collection/components/picker-legacy/picker.js +2 -2
- package/dist/collection/components/picker-legacy-column/picker-column.js +2 -2
- package/dist/collection/components/popover/popover.js +2 -2
- package/dist/collection/components/progress-bar/progress-bar.js +1 -1
- package/dist/collection/components/radio/radio.js +3 -3
- package/dist/collection/components/radio-group/radio-group.ios.css +205 -0
- package/dist/collection/components/radio-group/radio-group.js +72 -1
- package/dist/collection/components/radio-group/radio-group.md.css +205 -0
- package/dist/collection/components/range/range.js +25 -6
- package/dist/collection/components/refresher/refresher.js +1 -1
- package/dist/collection/components/refresher-content/refresher-content.js +1 -1
- package/dist/collection/components/reorder/reorder.js +1 -1
- package/dist/collection/components/reorder-group/reorder-group.js +1 -1
- package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
- package/dist/collection/components/router-link/router-link.js +2 -2
- package/dist/collection/components/router-outlet/router-outlet.js +1 -1
- package/dist/collection/components/row/row.js +1 -1
- package/dist/collection/components/searchbar/searchbar.js +4 -4
- package/dist/collection/components/segment/segment.js +2 -2
- package/dist/collection/components/segment-button/segment-button.js +40 -9
- package/dist/collection/components/segment-content/segment-content.js +1 -1
- package/dist/collection/components/segment-view/segment-view.js +2 -2
- package/dist/collection/components/select/select.ios.css +59 -0
- package/dist/collection/components/select/select.js +136 -13
- package/dist/collection/components/select/select.md.css +61 -0
- package/dist/collection/components/select-modal/select-modal.js +1 -1
- package/dist/collection/components/select-option/select-option.js +1 -1
- package/dist/collection/components/select-popover/select-popover.js +1 -1
- package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
- package/dist/collection/components/spinner/spinner.js +1 -1
- package/dist/collection/components/split-pane/split-pane.js +2 -2
- package/dist/collection/components/tab/tab.js +2 -2
- package/dist/collection/components/tab-bar/tab-bar.js +2 -2
- package/dist/collection/components/tab-button/tab-button.js +2 -2
- package/dist/collection/components/tabs/tabs.js +1 -1
- package/dist/collection/components/text/text.js +2 -2
- package/dist/collection/components/textarea/textarea.ios.css +3 -2
- package/dist/collection/components/textarea/textarea.js +17 -3
- package/dist/collection/components/textarea/textarea.md.css +7 -2
- package/dist/collection/components/thumbnail/thumbnail.js +1 -1
- package/dist/collection/components/title/title.js +2 -2
- package/dist/collection/components/toast/toast.js +2 -2
- package/dist/collection/components/toggle/toggle.ios.css +52 -15
- package/dist/collection/components/toggle/toggle.js +91 -4
- package/dist/collection/components/toggle/toggle.md.css +52 -15
- package/dist/collection/components/toolbar/toolbar.js +6 -2
- package/dist/collection/global/ionic-global.js +1 -12
- package/dist/collection/utils/floating-point/index.js +5 -0
- package/dist/collection/utils/helpers.js +16 -28
- package/dist/collection/utils/logging/index.js +10 -3
- package/dist/collection/utils/platform.js +2 -1
- package/dist/collection/utils/test/platform.utils.js +1 -1
- package/dist/docs.json +383 -2
- package/dist/esm/{app-globals-5dbb61a5.js → app-globals-7b6cbf1a.js} +1 -1
- package/dist/esm/{button-active-f6503382.js → button-active-90f1dbc4.js} +1 -1
- package/dist/esm/{data-ae11fd43.js → data-174ad5e0.js} +1 -1
- package/dist/esm/{framework-delegate-63d1a679.js → framework-delegate-c7d92b77.js} +1 -1
- package/dist/esm/{hardware-back-button-06ef3c3e.js → hardware-back-button-864101a3.js} +2 -2
- package/dist/esm/{helpers-da915de8.js → helpers-e48b0397.js} +17 -29
- package/dist/esm/{index-28849c61.js → index-527b9e34.js} +1 -4
- package/dist/esm/{index-9b0d46f4.js → index-738d7504.js} +11 -3
- package/dist/esm/{index-79b30591.js → index-8222b29f.js} +1 -1
- package/dist/esm/{index-5cc724f3.js → index-933ca126.js} +2 -2
- package/dist/esm/{index-3ad7f18b.js → index-a313df53.js} +6 -6
- package/dist/esm/{index-24b48b06.js → index-c63afbe6.js} +4 -4
- package/dist/esm/index.js +11 -11
- package/dist/esm/{input-shims-0314bbe5.js → input-shims-3070628a.js} +5 -3
- package/dist/esm/{input.utils-09c71bc7.js → input.utils-926c04a8.js} +2 -2
- package/dist/esm/ion-accordion_2.entry.js +4 -4
- package/dist/esm/ion-action-sheet.entry.js +8 -8
- package/dist/esm/ion-alert.entry.js +38 -12
- package/dist/esm/ion-app_8.entry.js +18 -18
- package/dist/esm/ion-avatar_3.entry.js +3 -3
- package/dist/esm/ion-back-button.entry.js +3 -3
- package/dist/esm/ion-backdrop.entry.js +2 -2
- package/dist/esm/ion-breadcrumb_2.entry.js +3 -3
- package/dist/esm/ion-button_2.entry.js +4 -4
- package/dist/esm/ion-card_5.entry.js +3 -3
- package/dist/esm/ion-checkbox.entry.js +40 -9
- package/dist/esm/ion-chip.entry.js +2 -2
- package/dist/esm/ion-col_3.entry.js +3 -3
- package/dist/esm/ion-datetime-button.entry.js +5 -5
- package/dist/esm/ion-datetime_3.entry.js +12 -12
- package/dist/esm/ion-fab_3.entry.js +3 -3
- package/dist/esm/ion-img.entry.js +3 -3
- package/dist/esm/ion-infinite-scroll_2.entry.js +5 -5
- package/dist/esm/ion-input-password-toggle.entry.js +3 -3
- package/dist/esm/ion-input.entry.js +25 -13
- package/dist/esm/ion-item-option_3.entry.js +9 -9
- package/dist/esm/ion-item_8.entry.js +14 -14
- package/dist/esm/ion-loading.entry.js +9 -9
- package/dist/esm/ion-menu_3.entry.js +14 -14
- package/dist/esm/ion-modal.entry.js +294 -44
- package/dist/esm/ion-nav_2.entry.js +9 -9
- package/dist/esm/ion-picker-column-option.entry.js +5 -5
- package/dist/esm/ion-picker-column.entry.js +3 -3
- package/dist/esm/ion-picker.entry.js +2 -2
- package/dist/esm/ion-popover.entry.js +10 -10
- package/dist/esm/ion-progress-bar.entry.js +4 -4
- package/dist/esm/ion-radio_2.entry.js +42 -7
- package/dist/esm/ion-range.entry.js +31 -10
- package/dist/esm/ion-refresher_2.entry.js +7 -7
- package/dist/esm/ion-reorder_2.entry.js +7 -7
- package/dist/esm/ion-ripple-effect.entry.js +3 -3
- package/dist/esm/ion-route_4.entry.js +5 -5
- package/dist/esm/ion-searchbar.entry.js +7 -7
- package/dist/esm/ion-segment-content.entry.js +2 -2
- package/dist/esm/ion-segment-view.entry.js +3 -3
- package/dist/esm/ion-segment_2.entry.js +44 -13
- package/dist/esm/ion-select-modal.entry.js +8 -8
- package/dist/esm/ion-select_3.entry.js +93 -25
- package/dist/esm/ion-spinner.entry.js +3 -3
- package/dist/esm/ion-split-pane.entry.js +4 -4
- package/dist/esm/ion-tab-bar_2.entry.js +7 -7
- package/dist/esm/ion-tab_2.entry.js +6 -6
- package/dist/esm/ion-text.entry.js +4 -4
- package/dist/esm/ion-textarea.entry.js +24 -12
- package/dist/esm/ion-toast.entry.js +9 -9
- package/dist/esm/ion-toggle.entry.js +41 -9
- package/dist/esm/{ionic-global-c81d82ab.js → ionic-global-ca86cf32.js} +3 -13
- package/dist/esm/ionic.js +5 -5
- package/dist/esm/{ios.transition-4ee1a3af.js → ios.transition-5fe4d6c8.js} +5 -5
- package/dist/esm/loader.js +5 -5
- package/dist/esm/{md.transition-5106a0d2.js → md.transition-3d0d3730.js} +5 -5
- package/dist/esm/{notch-controller-55b09e11.js → notch-controller-381a5334.js} +1 -1
- package/dist/esm/{overlays-e7b9d6d9.js → overlays-7579a420.js} +5 -5
- package/dist/esm/{status-tap-f472b09f.js → status-tap-6367b913.js} +5 -4
- package/dist/esm/{swipe-back-b613d7db.js → swipe-back-326faa1c.js} +1 -1
- package/dist/esm-es5/app-globals-7b6cbf1a.js +4 -0
- package/dist/esm-es5/{button-active-f6503382.js → button-active-90f1dbc4.js} +1 -1
- package/dist/esm-es5/{data-ae11fd43.js → data-174ad5e0.js} +1 -1
- package/dist/esm-es5/{framework-delegate-63d1a679.js → framework-delegate-c7d92b77.js} +1 -1
- package/dist/esm-es5/{hardware-back-button-06ef3c3e.js → hardware-back-button-864101a3.js} +1 -1
- package/dist/esm-es5/helpers-e48b0397.js +4 -0
- package/dist/esm-es5/index-527b9e34.js +5 -0
- package/dist/esm-es5/index-738d7504.js +4 -0
- package/dist/esm-es5/{index-79b30591.js → index-8222b29f.js} +1 -1
- package/dist/esm-es5/{index-5cc724f3.js → index-933ca126.js} +1 -1
- package/dist/esm-es5/{index-3ad7f18b.js → index-a313df53.js} +1 -1
- package/dist/esm-es5/{index-24b48b06.js → index-c63afbe6.js} +1 -1
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/input-shims-3070628a.js +4 -0
- package/dist/esm-es5/{input.utils-09c71bc7.js → input.utils-926c04a8.js} +1 -1
- package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
- package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
- package/dist/esm-es5/ion-alert.entry.js +1 -1
- package/dist/esm-es5/ion-app_8.entry.js +1 -1
- package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
- package/dist/esm-es5/ion-back-button.entry.js +1 -1
- package/dist/esm-es5/ion-backdrop.entry.js +1 -1
- package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
- package/dist/esm-es5/ion-button_2.entry.js +1 -1
- package/dist/esm-es5/ion-card_5.entry.js +1 -1
- package/dist/esm-es5/ion-checkbox.entry.js +1 -1
- package/dist/esm-es5/ion-chip.entry.js +1 -1
- package/dist/esm-es5/ion-col_3.entry.js +1 -1
- package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
- package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
- package/dist/esm-es5/ion-fab_3.entry.js +1 -1
- package/dist/esm-es5/ion-img.entry.js +1 -1
- package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
- package/dist/esm-es5/ion-input-password-toggle.entry.js +1 -1
- package/dist/esm-es5/ion-input.entry.js +1 -1
- package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
- package/dist/esm-es5/ion-item_8.entry.js +1 -1
- package/dist/esm-es5/ion-loading.entry.js +1 -1
- package/dist/esm-es5/ion-menu_3.entry.js +1 -1
- package/dist/esm-es5/ion-modal.entry.js +1 -1
- package/dist/esm-es5/ion-nav_2.entry.js +1 -1
- package/dist/esm-es5/ion-picker-column-option.entry.js +1 -1
- package/dist/esm-es5/ion-picker-column.entry.js +1 -1
- package/dist/esm-es5/ion-picker.entry.js +1 -1
- package/dist/esm-es5/ion-popover.entry.js +1 -1
- package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
- package/dist/esm-es5/ion-radio_2.entry.js +1 -1
- package/dist/esm-es5/ion-range.entry.js +1 -1
- package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
- package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
- package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
- package/dist/esm-es5/ion-route_4.entry.js +1 -1
- package/dist/esm-es5/ion-searchbar.entry.js +1 -1
- package/dist/esm-es5/ion-segment-content.entry.js +1 -1
- package/dist/esm-es5/ion-segment-view.entry.js +1 -1
- package/dist/esm-es5/ion-segment_2.entry.js +1 -1
- package/dist/esm-es5/ion-select-modal.entry.js +1 -1
- package/dist/esm-es5/ion-select_3.entry.js +1 -1
- package/dist/esm-es5/ion-spinner.entry.js +1 -1
- package/dist/esm-es5/ion-split-pane.entry.js +1 -1
- package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
- package/dist/esm-es5/ion-tab_2.entry.js +1 -1
- package/dist/esm-es5/ion-text.entry.js +1 -1
- package/dist/esm-es5/ion-textarea.entry.js +1 -1
- package/dist/esm-es5/ion-toast.entry.js +1 -1
- package/dist/esm-es5/ion-toggle.entry.js +1 -1
- package/dist/esm-es5/ionic-global-ca86cf32.js +4 -0
- package/dist/esm-es5/ionic.js +1 -1
- package/dist/esm-es5/{ios.transition-4ee1a3af.js → ios.transition-5fe4d6c8.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/md.transition-3d0d3730.js +4 -0
- package/dist/esm-es5/{notch-controller-55b09e11.js → notch-controller-381a5334.js} +1 -1
- package/dist/esm-es5/{overlays-e7b9d6d9.js → overlays-7579a420.js} +1 -1
- package/dist/esm-es5/status-tap-6367b913.js +4 -0
- package/dist/esm-es5/{swipe-back-b613d7db.js → swipe-back-326faa1c.js} +1 -1
- package/dist/html.html-data.json +48 -0
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/ionic.js +1 -1
- package/dist/ionic/{p-58d5df0c.system.entry.js → p-023e8017.system.entry.js} +1 -1
- package/dist/ionic/{p-f9a53abb.system.js → p-042d5353.system.js} +1 -1
- package/dist/ionic/p-060e4551.js +4 -0
- package/dist/ionic/p-0749768d.entry.js +4 -0
- package/dist/ionic/p-094c82d7.entry.js +4 -0
- package/dist/ionic/{p-7458862e.system.entry.js → p-0adb6909.system.entry.js} +1 -1
- package/dist/ionic/{p-508d024a.entry.js → p-0be8a0b5.entry.js} +1 -1
- package/dist/ionic/{p-2507278c.system.entry.js → p-0bedc891.system.entry.js} +2 -2
- package/dist/ionic/{p-63b0abde.system.entry.js → p-0c9b8240.system.entry.js} +1 -1
- package/dist/ionic/p-0ec5b7cf.system.js +4 -0
- package/dist/ionic/{p-7ed1657c.system.entry.js → p-1164ff6b.system.entry.js} +1 -1
- package/dist/ionic/p-13886789.entry.js +4 -0
- package/dist/ionic/p-143ff664.system.entry.js +4 -0
- package/dist/ionic/p-18f9b6d5.entry.js +4 -0
- package/dist/ionic/{p-62af944c.entry.js → p-19c32a76.entry.js} +1 -1
- package/dist/ionic/{p-e4f69534.system.entry.js → p-1a9613bf.system.entry.js} +1 -1
- package/dist/ionic/{p-f687573e.system.js → p-1bf5ec17.system.js} +1 -1
- package/dist/ionic/{p-5fce0c0b.system.entry.js → p-1c1d781d.system.entry.js} +1 -1
- package/dist/ionic/p-1d2844a5.system.entry.js +4 -0
- package/dist/ionic/p-1d98a7f1.entry.js +4 -0
- package/dist/ionic/p-1f837356.entry.js +4 -0
- package/dist/ionic/p-2027221d.js +4 -0
- package/dist/ionic/{p-69066a53.js → p-21891ead.js} +1 -1
- package/dist/ionic/{p-d743e981.js → p-22bc235f.js} +1 -1
- package/dist/ionic/{p-a4565eb5.system.js → p-24ae7b33.system.js} +1 -1
- package/dist/ionic/{p-184fbc9e.system.js → p-294271c7.system.js} +1 -1
- package/dist/ionic/p-297d6806.system.js +4 -0
- package/dist/ionic/p-29a5b4e4.entry.js +4 -0
- package/dist/ionic/{p-01186920.system.entry.js → p-2ab4a324.system.entry.js} +1 -1
- package/dist/ionic/{p-ffd131f9.system.entry.js → p-2b59470f.system.entry.js} +1 -1
- package/dist/ionic/{p-9e33104d.entry.js → p-2ee9a2c6.entry.js} +1 -1
- package/dist/ionic/p-2fa5a4b1.entry.js +4 -0
- package/dist/ionic/{p-e7ed4a7f.system.js → p-3479f51b.system.js} +1 -1
- package/dist/ionic/{p-afecb188.entry.js → p-35f14792.entry.js} +1 -1
- package/dist/ionic/{p-7ddc46c3.system.entry.js → p-37a438ad.system.entry.js} +2 -2
- package/dist/ionic/{p-937a7e21.entry.js → p-3af7b907.entry.js} +1 -1
- package/dist/ionic/{p-c449820c.system.js → p-3bd5fedc.system.js} +1 -1
- package/dist/ionic/{p-d18ab582.system.entry.js → p-3be7cdeb.system.entry.js} +2 -2
- package/dist/ionic/{p-a15ddedb.system.js → p-3e86b4fa.system.js} +1 -1
- package/dist/ionic/p-3f4327f7.js +4 -0
- package/dist/ionic/{p-982315a6.entry.js → p-42f6e75c.entry.js} +1 -1
- package/dist/ionic/{p-5823babc.system.entry.js → p-4470f87b.system.entry.js} +2 -2
- package/dist/ionic/p-4493c1ac.entry.js +4 -0
- package/dist/ionic/{p-8635f5e6.system.js → p-44e168f3.system.js} +1 -1
- package/dist/ionic/{p-c29f8157.system.entry.js → p-4630688e.system.entry.js} +1 -1
- package/dist/ionic/{p-98231c01.system.entry.js → p-472c7e08.system.entry.js} +1 -1
- package/dist/ionic/p-4888cb66.system.entry.js +4 -0
- package/dist/ionic/{p-2e46590d.system.entry.js → p-491de063.system.entry.js} +1 -1
- package/dist/ionic/{p-985a7e17.system.entry.js → p-49cb79a1.system.entry.js} +1 -1
- package/dist/ionic/{p-d6841eac.js → p-4c44d04c.js} +1 -1
- package/dist/ionic/p-4c94580e.js +4 -0
- package/dist/ionic/{p-1e010627.system.entry.js → p-4d0190ad.system.entry.js} +2 -2
- package/dist/ionic/{p-bb0db172.entry.js → p-50f38461.entry.js} +1 -1
- package/dist/ionic/{p-0c06e09b.system.js → p-51c363e7.system.js} +1 -1
- package/dist/ionic/{p-f1acf541.system.entry.js → p-524ad57e.system.entry.js} +1 -1
- package/dist/ionic/{p-a61cba41.entry.js → p-54893ae3.entry.js} +1 -1
- package/dist/ionic/p-54e9620f.js +4 -0
- package/dist/ionic/p-58c482af.entry.js +4 -0
- package/dist/ionic/p-597ff9af.js +4 -0
- package/dist/ionic/{p-5da94421.system.js → p-5eb6f582.system.js} +1 -1
- package/dist/ionic/{p-15e76dd1.entry.js → p-5f4ff20a.entry.js} +1 -1
- package/dist/ionic/{p-fbf284c7.entry.js → p-5f8cd560.entry.js} +1 -1
- package/dist/ionic/p-606887b7.system.entry.js +4 -0
- package/dist/ionic/{p-bdad26e3.entry.js → p-61e794fb.entry.js} +1 -1
- package/dist/ionic/p-66a5d6a8.js +5 -0
- package/dist/ionic/p-67163d4a.entry.js +4 -0
- package/dist/ionic/p-6797c66e.system.js +4 -0
- package/dist/ionic/p-6bb846d3.entry.js +4 -0
- package/dist/ionic/{p-d7aa6b00.entry.js → p-6e24cf82.entry.js} +1 -1
- package/dist/ionic/p-72e6a9c6.entry.js +4 -0
- package/dist/ionic/{p-5b932840.entry.js → p-747f9517.entry.js} +1 -1
- package/dist/ionic/{p-9ea607bd.system.js → p-77991411.system.js} +2 -2
- package/dist/ionic/{p-9f3008d4.system.js → p-7cc33a9a.system.js} +1 -1
- package/dist/ionic/{p-f3102647.system.entry.js → p-7e3b5638.system.entry.js} +1 -1
- package/dist/ionic/p-7f39653f.entry.js +4 -0
- package/dist/ionic/{p-98ff6b32.entry.js → p-7ff4f502.entry.js} +1 -1
- package/dist/ionic/p-81474833.system.entry.js +4 -0
- package/dist/ionic/{p-4439fc2a.entry.js → p-838cc359.entry.js} +1 -1
- package/dist/ionic/{p-52d7a191.entry.js → p-85f6070f.entry.js} +1 -1
- package/dist/ionic/{p-e4ee80be.system.entry.js → p-888d383b.system.entry.js} +1 -1
- package/dist/ionic/{p-da074ff7.entry.js → p-8b1c1fd7.entry.js} +1 -1
- package/dist/ionic/{p-32d44024.system.entry.js → p-8deac7df.system.entry.js} +1 -1
- package/dist/ionic/p-8fc426e2.entry.js +4 -0
- package/dist/ionic/p-959cf042.system.entry.js +4 -0
- package/dist/ionic/{p-17a9ca63.system.entry.js → p-96450929.system.entry.js} +2 -2
- package/dist/ionic/{p-19ea7bff.system.js → p-9a2ff5ea.system.js} +1 -1
- package/dist/ionic/p-9a5420dd.js +4 -0
- package/dist/ionic/{p-ecceeb90.js → p-9af7f110.js} +1 -1
- package/dist/ionic/{p-6d32975a.entry.js → p-9b069739.entry.js} +1 -1
- package/dist/ionic/{p-ca065903.system.entry.js → p-9df36075.system.entry.js} +1 -1
- package/dist/ionic/p-9e51f822.js +4 -0
- package/dist/ionic/{p-372ae7f4.system.js → p-a4866e3e.system.js} +1 -1
- package/dist/ionic/{p-95775830.entry.js → p-a520973b.entry.js} +1 -1
- package/dist/ionic/{p-17474161.system.js → p-a587b2ae.system.js} +1 -1
- package/dist/ionic/{p-cac0e0b3.system.entry.js → p-a63b345e.system.entry.js} +1 -1
- package/dist/ionic/{p-3c8e5c23.system.js → p-a6625de8.system.js} +1 -1
- package/dist/ionic/{p-6416c34c.system.entry.js → p-a6df5168.system.entry.js} +1 -1
- package/dist/ionic/p-a9f2c0a7.entry.js +4 -0
- package/dist/ionic/{p-73dc4950.entry.js → p-ab7337e1.entry.js} +1 -1
- package/dist/ionic/{p-ed75fcfb.system.entry.js → p-ac58d726.system.entry.js} +1 -1
- package/dist/ionic/p-ace2d2be.entry.js +4 -0
- package/dist/ionic/{p-efaffe74.entry.js → p-ada878ce.entry.js} +1 -1
- package/dist/ionic/p-b055d618.entry.js +4 -0
- package/dist/ionic/p-b0e53bc7.entry.js +4 -0
- package/dist/ionic/{p-2799c6d3.system.entry.js → p-b2296998.system.entry.js} +1 -1
- package/dist/ionic/{p-fca6ef5f.system.entry.js → p-b2ee0628.system.entry.js} +1 -1
- package/dist/ionic/{p-9fa07aec.entry.js → p-b6174297.entry.js} +1 -1
- package/dist/ionic/{p-c41ac815.entry.js → p-b85d199c.entry.js} +1 -1
- package/dist/ionic/p-b9ea58ef.js +4 -0
- package/dist/ionic/{p-14e159ea.system.entry.js → p-b9eb1465.system.entry.js} +1 -1
- package/dist/ionic/p-b9f2e353.entry.js +4 -0
- package/dist/ionic/p-bbc6db8c.entry.js +4 -0
- package/dist/ionic/p-bf64af90.system.js +4 -0
- package/dist/ionic/{p-33a8a71b.entry.js → p-c005cc37.entry.js} +1 -1
- package/dist/ionic/{p-45693d7e.entry.js → p-c25c0ba4.entry.js} +1 -1
- package/dist/ionic/p-c5b5f44a.entry.js +4 -0
- package/dist/ionic/{p-2172893e.system.entry.js → p-c6a20407.system.entry.js} +1 -1
- package/dist/ionic/{p-1046866e.system.entry.js → p-c8331397.system.entry.js} +1 -1
- package/dist/ionic/{p-34b11c24.js → p-c8402249.js} +1 -1
- package/dist/ionic/{p-61e3f887.entry.js → p-c8bf9ba7.entry.js} +1 -1
- package/dist/ionic/{p-72812e99.js → p-ceaea4ce.js} +1 -1
- package/dist/ionic/{p-1e67b266.system.entry.js → p-d37fdc68.system.entry.js} +1 -1
- package/dist/ionic/{p-0aa833fb.system.js → p-d7032956.system.js} +1 -1
- package/dist/ionic/p-d8c9d5ac.system.entry.js +4 -0
- package/dist/ionic/{p-2b838f86.system.entry.js → p-daf1e8ec.system.entry.js} +1 -1
- package/dist/ionic/{p-2bd0ae94.system.entry.js → p-def7a8bd.system.entry.js} +1 -1
- package/dist/ionic/p-e00b72ce.js +4 -0
- package/dist/ionic/{p-96cc4814.js → p-e0a05506.js} +1 -1
- package/dist/ionic/p-e0c0218f.system.entry.js +4 -0
- package/dist/ionic/{p-6499df44.system.entry.js → p-e0c43e11.system.entry.js} +1 -1
- package/dist/ionic/{p-2abae1cc.system.entry.js → p-e4683bfd.system.entry.js} +1 -1
- package/dist/ionic/{p-567de071.system.entry.js → p-e5708e5d.system.entry.js} +1 -1
- package/dist/ionic/{p-12a722b8.system.entry.js → p-e5c27d9f.system.entry.js} +1 -1
- package/dist/ionic/{p-06e58c4e.js → p-e7309bfa.js} +1 -1
- package/dist/ionic/p-ed768b77.entry.js +4 -0
- package/dist/ionic/p-eec4b772.entry.js +4 -0
- package/dist/ionic/p-eeee3990.system.entry.js +4 -0
- package/dist/ionic/p-efa0f3f5.entry.js +4 -0
- package/dist/ionic/p-f02e9382.system.entry.js +4 -0
- package/dist/ionic/p-f11a9436.system.js +5 -0
- package/dist/ionic/p-f201b53a.system.js +4 -0
- package/dist/ionic/{p-3cc276f4.js → p-f554845e.js} +1 -1
- package/dist/ionic/{p-424eb140.system.entry.js → p-f6bb9be7.system.entry.js} +1 -1
- package/dist/ionic/{p-d60342e3.js → p-f7ce606e.js} +1 -1
- package/dist/ionic/{p-1fe02220.system.entry.js → p-f94b2f2f.system.entry.js} +1 -1
- package/dist/ionic/{p-797eeea8.system.entry.js → p-ff4a1ba0.system.entry.js} +1 -1
- package/dist/types/components/checkbox/checkbox.d.ts +25 -0
- package/dist/types/components/input/input.d.ts +8 -0
- package/dist/types/components/modal/animations/sheet.d.ts +1 -0
- package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
- package/dist/types/components/modal/modal-interface.d.ts +1 -0
- package/dist/types/components/modal/modal.d.ts +14 -0
- package/dist/types/components/radio-group/radio-group.d.ts +15 -0
- package/dist/types/components/range/range.d.ts +3 -2
- package/dist/types/components/segment-button/segment-button.d.ts +2 -1
- package/dist/types/components/select/select.d.ts +29 -0
- package/dist/types/components/textarea/textarea.d.ts +8 -0
- package/dist/types/components/toggle/toggle.d.ts +25 -0
- package/dist/types/components/toolbar/toolbar.d.ts +4 -0
- package/dist/types/components.d.ts +96 -0
- package/dist/types/utils/config.d.ts +9 -3
- package/dist/types/utils/helpers.d.ts +5 -0
- package/dist/types/utils/logging/index.d.ts +13 -1
- package/dist/types/utils/native/capacitor.d.ts +7 -1
- package/dist/types/utils/test/platform.utils.d.ts +1 -1
- package/hydrate/index.js +739 -203
- package/hydrate/index.mjs +739 -203
- package/package.json +11 -11
- package/dist/esm-es5/app-globals-5dbb61a5.js +0 -4
- package/dist/esm-es5/helpers-da915de8.js +0 -4
- package/dist/esm-es5/index-28849c61.js +0 -5
- package/dist/esm-es5/index-9b0d46f4.js +0 -4
- package/dist/esm-es5/input-shims-0314bbe5.js +0 -4
- package/dist/esm-es5/ionic-global-c81d82ab.js +0 -4
- package/dist/esm-es5/md.transition-5106a0d2.js +0 -4
- package/dist/esm-es5/status-tap-f472b09f.js +0 -4
- package/dist/ionic/p-0303d0f8.js +0 -4
- package/dist/ionic/p-04909654.entry.js +0 -4
- package/dist/ionic/p-0574e87e.js +0 -4
- package/dist/ionic/p-06fee233.js +0 -4
- package/dist/ionic/p-081a4ce4.entry.js +0 -4
- package/dist/ionic/p-12c45a7c.entry.js +0 -4
- package/dist/ionic/p-14be4015.entry.js +0 -4
- package/dist/ionic/p-16188af7.entry.js +0 -4
- package/dist/ionic/p-16799667.system.entry.js +0 -4
- package/dist/ionic/p-16bfb979.system.entry.js +0 -4
- package/dist/ionic/p-19ec4f42.entry.js +0 -4
- package/dist/ionic/p-21e5e7e4.js +0 -4
- package/dist/ionic/p-25180df3.system.js +0 -5
- package/dist/ionic/p-2690b1de.js +0 -4
- package/dist/ionic/p-2b9b78c7.entry.js +0 -4
- package/dist/ionic/p-2fc0dafe.entry.js +0 -4
- package/dist/ionic/p-322c5fb4.system.js +0 -4
- package/dist/ionic/p-37cb43bd.system.entry.js +0 -4
- package/dist/ionic/p-3ad285e3.system.js +0 -4
- package/dist/ionic/p-404aede0.system.entry.js +0 -4
- package/dist/ionic/p-49a0e74c.entry.js +0 -4
- package/dist/ionic/p-4ec778aa.entry.js +0 -4
- package/dist/ionic/p-51796b2d.entry.js +0 -4
- package/dist/ionic/p-5ab1b709.entry.js +0 -4
- package/dist/ionic/p-69666e8a.system.entry.js +0 -4
- package/dist/ionic/p-6b280620.entry.js +0 -4
- package/dist/ionic/p-6d6cedc5.entry.js +0 -4
- package/dist/ionic/p-7b9a2b23.entry.js +0 -4
- package/dist/ionic/p-88e63c7d.js +0 -4
- package/dist/ionic/p-908d6080.entry.js +0 -4
- package/dist/ionic/p-942b5e13.entry.js +0 -4
- package/dist/ionic/p-9df2c6fb.entry.js +0 -4
- package/dist/ionic/p-a43467d8.entry.js +0 -4
- package/dist/ionic/p-a69b9fc5.system.js +0 -4
- package/dist/ionic/p-b2272f51.system.entry.js +0 -4
- package/dist/ionic/p-b335ffed.system.entry.js +0 -4
- package/dist/ionic/p-b51e4004.js +0 -4
- package/dist/ionic/p-b79ba17c.entry.js +0 -4
- package/dist/ionic/p-b7af48c0.js +0 -4
- package/dist/ionic/p-b82d4cab.js +0 -4
- package/dist/ionic/p-b9d7015f.entry.js +0 -4
- package/dist/ionic/p-bc36ad98.system.entry.js +0 -4
- package/dist/ionic/p-c4b53b16.system.entry.js +0 -4
- package/dist/ionic/p-c9f3a539.entry.js +0 -4
- package/dist/ionic/p-cdc83025.entry.js +0 -4
- package/dist/ionic/p-d836d43e.js +0 -5
- package/dist/ionic/p-de930745.entry.js +0 -4
- package/dist/ionic/p-dfb78785.system.js +0 -4
- package/dist/ionic/p-e563a35c.entry.js +0 -4
- package/dist/ionic/p-e6635685.js +0 -4
- package/dist/ionic/p-ebf042e0.system.entry.js +0 -4
- package/dist/ionic/p-ff4b7e40.system.js +0 -4
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import { r as registerInstance,
|
|
5
|
-
import { f as findClosestIonContent, i as isIonContent, d as disableContentScrollY, r as resetContentScrollY, a as findIonContent, p as printIonContentErrorMsg } from './index-
|
|
6
|
-
import { C as CoreDelegate, a as attachComponent, d as detachComponent } from './framework-delegate-
|
|
7
|
-
import { g as getElementRoot, j as clamp, r as raf, h as inheritAttributes, k as hasLazyBuild } from './helpers-
|
|
4
|
+
import { r as registerInstance, c as createEvent, w as writeTask, h, e as Host, f as getElement } from './index-527b9e34.js';
|
|
5
|
+
import { f as findClosestIonContent, i as isIonContent, d as disableContentScrollY, r as resetContentScrollY, a as findIonContent, p as printIonContentErrorMsg } from './index-933ca126.js';
|
|
6
|
+
import { C as CoreDelegate, a as attachComponent, d as detachComponent } from './framework-delegate-c7d92b77.js';
|
|
7
|
+
import { g as getElementRoot, j as clamp, r as raf, h as inheritAttributes, k as hasLazyBuild } from './helpers-e48b0397.js';
|
|
8
8
|
import { c as createLockController } from './lock-controller-316928be.js';
|
|
9
|
-
import { p as printIonWarning } from './index-
|
|
9
|
+
import { p as printIonWarning } from './index-738d7504.js';
|
|
10
10
|
import { g as getCapacitor } from './capacitor-59395cbd.js';
|
|
11
|
-
import { G as GESTURE, O as OVERLAY_GESTURE_PRIORITY, F as FOCUS_TRAP_DISABLE_CLASS, e as createTriggerController, B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod } from './overlays-
|
|
11
|
+
import { G as GESTURE, O as OVERLAY_GESTURE_PRIORITY, F as FOCUS_TRAP_DISABLE_CLASS, e as createTriggerController, B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod } from './overlays-7579a420.js';
|
|
12
12
|
import { g as getClassMap } from './theme-01f3f29c.js';
|
|
13
|
-
import { e as deepReady, w as waitForMount } from './index-
|
|
14
|
-
import { b as getIonMode, c as config } from './ionic-global-
|
|
13
|
+
import { e as deepReady, w as waitForMount } from './index-a313df53.js';
|
|
14
|
+
import { b as getIonMode, c as config } from './ionic-global-ca86cf32.js';
|
|
15
15
|
import { KEYBOARD_DID_OPEN } from './keyboard-52278bd7.js';
|
|
16
16
|
import { c as createAnimation } from './animation-eab5a4ca.js';
|
|
17
17
|
import { g as getTimeGivenProgression } from './cubic-bezier-fe2083dc.js';
|
|
18
18
|
import { createGesture } from './index-39782642.js';
|
|
19
19
|
import { w as win } from './index-a5d50daf.js';
|
|
20
|
-
import './hardware-back-button-
|
|
20
|
+
import './hardware-back-button-864101a3.js';
|
|
21
21
|
import './gesture-controller-314a54f6.js';
|
|
22
22
|
import './keyboard-73175e24.js';
|
|
23
23
|
|
|
@@ -502,7 +502,7 @@ const computeDuration = (remaining, velocity) => {
|
|
|
502
502
|
};
|
|
503
503
|
|
|
504
504
|
const createSheetEnterAnimation = (opts) => {
|
|
505
|
-
const { currentBreakpoint, backdropBreakpoint } = opts;
|
|
505
|
+
const { currentBreakpoint, backdropBreakpoint, expandToScroll } = opts;
|
|
506
506
|
/**
|
|
507
507
|
* If the backdropBreakpoint is undefined, then the backdrop
|
|
508
508
|
* should always fade in. If the backdropBreakpoint came before the
|
|
@@ -522,7 +522,16 @@ const createSheetEnterAnimation = (opts) => {
|
|
|
522
522
|
{ offset: 0, opacity: 1, transform: 'translateY(100%)' },
|
|
523
523
|
{ offset: 1, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
|
|
524
524
|
]);
|
|
525
|
-
|
|
525
|
+
/**
|
|
526
|
+
* This allows the content to be scrollable at any breakpoint.
|
|
527
|
+
*/
|
|
528
|
+
const contentAnimation = !expandToScroll
|
|
529
|
+
? createAnimation('contentAnimation').keyframes([
|
|
530
|
+
{ offset: 0, opacity: 1, maxHeight: `${(1 - currentBreakpoint) * 100}%` },
|
|
531
|
+
{ offset: 1, opacity: 1, maxHeight: `${currentBreakpoint * 100}%` },
|
|
532
|
+
])
|
|
533
|
+
: undefined;
|
|
534
|
+
return { wrapperAnimation, backdropAnimation, contentAnimation };
|
|
526
535
|
};
|
|
527
536
|
const createSheetLeaveAnimation = (opts) => {
|
|
528
537
|
const { currentBreakpoint, backdropBreakpoint } = opts;
|
|
@@ -557,22 +566,68 @@ const createEnterAnimation$1 = () => {
|
|
|
557
566
|
})
|
|
558
567
|
.afterClearStyles(['pointer-events']);
|
|
559
568
|
const wrapperAnimation = createAnimation().fromTo('transform', 'translateY(100vh)', 'translateY(0vh)');
|
|
560
|
-
return { backdropAnimation, wrapperAnimation };
|
|
569
|
+
return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
|
|
561
570
|
};
|
|
562
571
|
/**
|
|
563
572
|
* iOS Modal Enter Animation for the Card presentation style
|
|
564
573
|
*/
|
|
565
574
|
const iosEnterAnimation = (baseEl, opts) => {
|
|
566
|
-
const { presentingEl, currentBreakpoint } = opts;
|
|
575
|
+
const { presentingEl, currentBreakpoint, expandToScroll } = opts;
|
|
567
576
|
const root = getElementRoot(baseEl);
|
|
568
|
-
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
|
|
577
|
+
const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
|
|
569
578
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
570
579
|
wrapperAnimation.addElement(root.querySelectorAll('.modal-wrapper, .modal-shadow')).beforeStyles({ opacity: 1 });
|
|
580
|
+
// The content animation is only added if scrolling is enabled for
|
|
581
|
+
// all the breakpoints.
|
|
582
|
+
!expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
|
|
571
583
|
const baseAnimation = createAnimation('entering-base')
|
|
572
584
|
.addElement(baseEl)
|
|
573
585
|
.easing('cubic-bezier(0.32,0.72,0,1)')
|
|
574
586
|
.duration(500)
|
|
575
|
-
.addAnimation(wrapperAnimation)
|
|
587
|
+
.addAnimation([wrapperAnimation])
|
|
588
|
+
.beforeAddWrite(() => {
|
|
589
|
+
if (expandToScroll) {
|
|
590
|
+
// Scroll can only be done when the modal is fully expanded.
|
|
591
|
+
return;
|
|
592
|
+
}
|
|
593
|
+
/**
|
|
594
|
+
* There are some browsers that causes flickering when
|
|
595
|
+
* dragging the content when scroll is enabled at every
|
|
596
|
+
* breakpoint. This is due to the wrapper element being
|
|
597
|
+
* transformed off the screen and having a snap animation.
|
|
598
|
+
*
|
|
599
|
+
* A workaround is to clone the footer element and append
|
|
600
|
+
* it outside of the wrapper element. This way, the footer
|
|
601
|
+
* is still visible and the drag can be done without
|
|
602
|
+
* flickering. The original footer is hidden until the modal
|
|
603
|
+
* is dismissed. This maintains the animation of the footer
|
|
604
|
+
* when the modal is dismissed.
|
|
605
|
+
*
|
|
606
|
+
* The workaround needs to be done before the animation starts
|
|
607
|
+
* so there are no flickering issues.
|
|
608
|
+
*/
|
|
609
|
+
const ionFooter = baseEl.querySelector('ion-footer');
|
|
610
|
+
/**
|
|
611
|
+
* This check is needed to prevent more than one footer
|
|
612
|
+
* from being appended to the shadow root.
|
|
613
|
+
* Otherwise, iOS and MD enter animations would append
|
|
614
|
+
* the footer twice.
|
|
615
|
+
*/
|
|
616
|
+
const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
|
|
617
|
+
if (ionFooter && !ionFooterAlreadyAppended) {
|
|
618
|
+
const footerHeight = ionFooter.clientHeight;
|
|
619
|
+
const clonedFooter = ionFooter.cloneNode(true);
|
|
620
|
+
baseEl.shadowRoot.appendChild(clonedFooter);
|
|
621
|
+
ionFooter.style.setProperty('display', 'none');
|
|
622
|
+
ionFooter.setAttribute('aria-hidden', 'true');
|
|
623
|
+
// Padding is added to prevent some content from being hidden.
|
|
624
|
+
const page = baseEl.querySelector('.ion-page');
|
|
625
|
+
page.style.setProperty('padding-bottom', `${footerHeight}px`);
|
|
626
|
+
}
|
|
627
|
+
});
|
|
628
|
+
if (contentAnimation) {
|
|
629
|
+
baseAnimation.addAnimation(contentAnimation);
|
|
630
|
+
}
|
|
576
631
|
if (presentingEl) {
|
|
577
632
|
const isMobile = window.innerWidth < 768;
|
|
578
633
|
const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
|
|
@@ -650,7 +705,7 @@ const createLeaveAnimation$1 = () => {
|
|
|
650
705
|
* iOS Modal Leave Animation
|
|
651
706
|
*/
|
|
652
707
|
const iosLeaveAnimation = (baseEl, opts, duration = 500) => {
|
|
653
|
-
const { presentingEl, currentBreakpoint } = opts;
|
|
708
|
+
const { presentingEl, currentBreakpoint, expandToScroll } = opts;
|
|
654
709
|
const root = getElementRoot(baseEl);
|
|
655
710
|
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
|
|
656
711
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
@@ -659,7 +714,29 @@ const iosLeaveAnimation = (baseEl, opts, duration = 500) => {
|
|
|
659
714
|
.addElement(baseEl)
|
|
660
715
|
.easing('cubic-bezier(0.32,0.72,0,1)')
|
|
661
716
|
.duration(duration)
|
|
662
|
-
.addAnimation(wrapperAnimation)
|
|
717
|
+
.addAnimation(wrapperAnimation)
|
|
718
|
+
.beforeAddWrite(() => {
|
|
719
|
+
if (expandToScroll) {
|
|
720
|
+
// Scroll can only be done when the modal is fully expanded.
|
|
721
|
+
return;
|
|
722
|
+
}
|
|
723
|
+
/**
|
|
724
|
+
* If expandToScroll is disabled, we need to swap
|
|
725
|
+
* the visibility to the original, so the footer
|
|
726
|
+
* dismisses with the modal and doesn't stay
|
|
727
|
+
* until the modal is removed from the DOM.
|
|
728
|
+
*/
|
|
729
|
+
const ionFooter = baseEl.querySelector('ion-footer');
|
|
730
|
+
if (ionFooter) {
|
|
731
|
+
const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
|
|
732
|
+
ionFooter.style.removeProperty('display');
|
|
733
|
+
ionFooter.removeAttribute('aria-hidden');
|
|
734
|
+
clonedFooter.style.setProperty('display', 'none');
|
|
735
|
+
clonedFooter.setAttribute('aria-hidden', 'true');
|
|
736
|
+
const page = baseEl.querySelector('.ion-page');
|
|
737
|
+
page.style.removeProperty('padding-bottom');
|
|
738
|
+
}
|
|
739
|
+
});
|
|
663
740
|
const appEl = baseEl.closest('ion-app');
|
|
664
741
|
if (presentingEl && appEl) {
|
|
665
742
|
const isMobile = window.innerWidth < 768;
|
|
@@ -737,22 +814,69 @@ const createEnterAnimation = () => {
|
|
|
737
814
|
{ offset: 0, opacity: 0.01, transform: 'translateY(40px)' },
|
|
738
815
|
{ offset: 1, opacity: 1, transform: `translateY(0px)` },
|
|
739
816
|
]);
|
|
740
|
-
return { backdropAnimation, wrapperAnimation };
|
|
817
|
+
return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
|
|
741
818
|
};
|
|
742
819
|
/**
|
|
743
820
|
* Md Modal Enter Animation
|
|
744
821
|
*/
|
|
745
822
|
const mdEnterAnimation = (baseEl, opts) => {
|
|
746
|
-
const { currentBreakpoint } = opts;
|
|
823
|
+
const { currentBreakpoint, expandToScroll } = opts;
|
|
747
824
|
const root = getElementRoot(baseEl);
|
|
748
|
-
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
|
|
825
|
+
const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
|
|
749
826
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
750
827
|
wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
|
|
751
|
-
|
|
828
|
+
// The content animation is only added if scrolling is enabled for
|
|
829
|
+
// all the breakpoints.
|
|
830
|
+
expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
|
|
831
|
+
const baseAnimation = createAnimation()
|
|
752
832
|
.addElement(baseEl)
|
|
753
833
|
.easing('cubic-bezier(0.36,0.66,0.04,1)')
|
|
754
834
|
.duration(280)
|
|
755
|
-
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
835
|
+
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
836
|
+
.beforeAddWrite(() => {
|
|
837
|
+
if (expandToScroll) {
|
|
838
|
+
// Scroll can only be done when the modal is fully expanded.
|
|
839
|
+
return;
|
|
840
|
+
}
|
|
841
|
+
/**
|
|
842
|
+
* There are some browsers that causes flickering when
|
|
843
|
+
* dragging the content when scroll is enabled at every
|
|
844
|
+
* breakpoint. This is due to the wrapper element being
|
|
845
|
+
* transformed off the screen and having a snap animation.
|
|
846
|
+
*
|
|
847
|
+
* A workaround is to clone the footer element and append
|
|
848
|
+
* it outside of the wrapper element. This way, the footer
|
|
849
|
+
* is still visible and the drag can be done without
|
|
850
|
+
* flickering. The original footer is hidden until the modal
|
|
851
|
+
* is dismissed. This maintains the animation of the footer
|
|
852
|
+
* when the modal is dismissed.
|
|
853
|
+
*
|
|
854
|
+
* The workaround needs to be done before the animation starts
|
|
855
|
+
* so there are no flickering issues.
|
|
856
|
+
*/
|
|
857
|
+
const ionFooter = baseEl.querySelector('ion-footer');
|
|
858
|
+
/**
|
|
859
|
+
* This check is needed to prevent more than one footer
|
|
860
|
+
* from being appended to the shadow root.
|
|
861
|
+
* Otherwise, iOS and MD enter animations would append
|
|
862
|
+
* the footer twice.
|
|
863
|
+
*/
|
|
864
|
+
const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
|
|
865
|
+
if (ionFooter && !ionFooterAlreadyAppended) {
|
|
866
|
+
const footerHeight = ionFooter.clientHeight;
|
|
867
|
+
const clonedFooter = ionFooter.cloneNode(true);
|
|
868
|
+
baseEl.shadowRoot.appendChild(clonedFooter);
|
|
869
|
+
ionFooter.style.setProperty('display', 'none');
|
|
870
|
+
ionFooter.setAttribute('aria-hidden', 'true');
|
|
871
|
+
// Padding is added to prevent some content from being hidden.
|
|
872
|
+
const page = baseEl.querySelector('.ion-page');
|
|
873
|
+
page.style.setProperty('padding-bottom', `${footerHeight}px`);
|
|
874
|
+
}
|
|
875
|
+
});
|
|
876
|
+
if (contentAnimation) {
|
|
877
|
+
baseAnimation.addAnimation(contentAnimation);
|
|
878
|
+
}
|
|
879
|
+
return baseAnimation;
|
|
756
880
|
};
|
|
757
881
|
|
|
758
882
|
const createLeaveAnimation = () => {
|
|
@@ -767,18 +891,41 @@ const createLeaveAnimation = () => {
|
|
|
767
891
|
* Md Modal Leave Animation
|
|
768
892
|
*/
|
|
769
893
|
const mdLeaveAnimation = (baseEl, opts) => {
|
|
770
|
-
const { currentBreakpoint } = opts;
|
|
894
|
+
const { currentBreakpoint, expandToScroll } = opts;
|
|
771
895
|
const root = getElementRoot(baseEl);
|
|
772
896
|
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation();
|
|
773
897
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
774
898
|
wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
|
|
775
|
-
|
|
899
|
+
const baseAnimation = createAnimation()
|
|
776
900
|
.easing('cubic-bezier(0.47,0,0.745,0.715)')
|
|
777
901
|
.duration(200)
|
|
778
|
-
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
902
|
+
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
903
|
+
.beforeAddWrite(() => {
|
|
904
|
+
if (expandToScroll) {
|
|
905
|
+
// Scroll can only be done when the modal is fully expanded.
|
|
906
|
+
return;
|
|
907
|
+
}
|
|
908
|
+
/**
|
|
909
|
+
* If expandToScroll is disabled, we need to swap
|
|
910
|
+
* the visibility to the original, so the footer
|
|
911
|
+
* dismisses with the modal and doesn't stay
|
|
912
|
+
* until the modal is removed from the DOM.
|
|
913
|
+
*/
|
|
914
|
+
const ionFooter = baseEl.querySelector('ion-footer');
|
|
915
|
+
if (ionFooter) {
|
|
916
|
+
const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
|
|
917
|
+
ionFooter.style.removeProperty('display');
|
|
918
|
+
ionFooter.removeAttribute('aria-hidden');
|
|
919
|
+
clonedFooter.style.setProperty('display', 'none');
|
|
920
|
+
clonedFooter.setAttribute('aria-hidden', 'true');
|
|
921
|
+
const page = baseEl.querySelector('.ion-page');
|
|
922
|
+
page.style.removeProperty('padding-bottom');
|
|
923
|
+
}
|
|
924
|
+
});
|
|
925
|
+
return baseAnimation;
|
|
779
926
|
};
|
|
780
927
|
|
|
781
|
-
const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
|
|
928
|
+
const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], expandToScroll, getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
|
|
782
929
|
// Defaults for the sheet swipe animation
|
|
783
930
|
const defaultBackdrop = [
|
|
784
931
|
{ offset: 0, opacity: 'var(--backdrop-opacity)' },
|
|
@@ -795,17 +942,23 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
795
942
|
{ offset: 1, transform: 'translateY(100%)' },
|
|
796
943
|
],
|
|
797
944
|
BACKDROP_KEYFRAMES: backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop,
|
|
945
|
+
CONTENT_KEYFRAMES: [
|
|
946
|
+
{ offset: 0, maxHeight: '100%' },
|
|
947
|
+
{ offset: 1, maxHeight: '0%' },
|
|
948
|
+
],
|
|
798
949
|
};
|
|
799
950
|
const contentEl = baseEl.querySelector('ion-content');
|
|
800
951
|
const height = wrapperEl.clientHeight;
|
|
801
952
|
let currentBreakpoint = initialBreakpoint;
|
|
802
953
|
let offset = 0;
|
|
803
954
|
let canDismissBlocksGesture = false;
|
|
955
|
+
let cachedScrollEl = null;
|
|
804
956
|
const canDismissMaxStep = 0.95;
|
|
805
|
-
const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
|
|
806
|
-
const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
|
|
807
957
|
const maxBreakpoint = breakpoints[breakpoints.length - 1];
|
|
808
958
|
const minBreakpoint = breakpoints[0];
|
|
959
|
+
const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
|
|
960
|
+
const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
|
|
961
|
+
const contentAnimation = animation.childAnimations.find((ani) => ani.id === 'contentAnimation');
|
|
809
962
|
const enableBackdrop = () => {
|
|
810
963
|
baseEl.style.setProperty('pointer-events', 'auto');
|
|
811
964
|
backdropEl.style.setProperty('pointer-events', 'auto');
|
|
@@ -828,6 +981,31 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
828
981
|
*/
|
|
829
982
|
baseEl.classList.add(FOCUS_TRAP_DISABLE_CLASS);
|
|
830
983
|
};
|
|
984
|
+
/**
|
|
985
|
+
* Toggles the visible modal footer when `expandToScroll` is disabled.
|
|
986
|
+
* @param footer The footer to show.
|
|
987
|
+
*/
|
|
988
|
+
const swapFooterVisibility = (footer) => {
|
|
989
|
+
const originalFooter = baseEl.querySelector('ion-footer');
|
|
990
|
+
if (!originalFooter) {
|
|
991
|
+
return;
|
|
992
|
+
}
|
|
993
|
+
const clonedFooter = wrapperEl.nextElementSibling;
|
|
994
|
+
const footerToHide = footer === 'original' ? clonedFooter : originalFooter;
|
|
995
|
+
const footerToShow = footer === 'original' ? originalFooter : clonedFooter;
|
|
996
|
+
footerToShow.style.removeProperty('display');
|
|
997
|
+
footerToShow.removeAttribute('aria-hidden');
|
|
998
|
+
const page = baseEl.querySelector('.ion-page');
|
|
999
|
+
if (footer === 'original') {
|
|
1000
|
+
page.style.removeProperty('padding-bottom');
|
|
1001
|
+
}
|
|
1002
|
+
else {
|
|
1003
|
+
const pagePadding = footerToShow.clientHeight;
|
|
1004
|
+
page.style.setProperty('padding-bottom', `${pagePadding}px`);
|
|
1005
|
+
}
|
|
1006
|
+
footerToHide.style.setProperty('display', 'none');
|
|
1007
|
+
footerToHide.setAttribute('aria-hidden', 'true');
|
|
1008
|
+
};
|
|
831
1009
|
/**
|
|
832
1010
|
* After the entering animation completes,
|
|
833
1011
|
* we need to set the animation to go from
|
|
@@ -839,6 +1017,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
839
1017
|
if (wrapperAnimation && backdropAnimation) {
|
|
840
1018
|
wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
|
|
841
1019
|
backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
|
|
1020
|
+
contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
|
|
842
1021
|
animation.progressStart(true, 1 - currentBreakpoint);
|
|
843
1022
|
/**
|
|
844
1023
|
* If backdrop is not enabled, then content
|
|
@@ -855,7 +1034,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
855
1034
|
disableBackdrop();
|
|
856
1035
|
}
|
|
857
1036
|
}
|
|
858
|
-
if (contentEl && currentBreakpoint !== maxBreakpoint) {
|
|
1037
|
+
if (contentEl && currentBreakpoint !== maxBreakpoint && expandToScroll) {
|
|
859
1038
|
contentEl.scrollY = false;
|
|
860
1039
|
}
|
|
861
1040
|
const canStart = (detail) => {
|
|
@@ -869,6 +1048,14 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
869
1048
|
*/
|
|
870
1049
|
const contentEl = findClosestIonContent(detail.event.target);
|
|
871
1050
|
currentBreakpoint = getCurrentBreakpoint();
|
|
1051
|
+
/**
|
|
1052
|
+
* If `expandToScroll` is disabled, we should not allow the swipe gesture
|
|
1053
|
+
* to start if the content is not scrolled to the top.
|
|
1054
|
+
*/
|
|
1055
|
+
if (!expandToScroll && contentEl) {
|
|
1056
|
+
const scrollEl = isIonContent(contentEl) ? getElementRoot(contentEl).querySelector('.inner-scroll') : contentEl;
|
|
1057
|
+
return scrollEl.scrollTop === 0;
|
|
1058
|
+
}
|
|
872
1059
|
if (currentBreakpoint === 1 && contentEl) {
|
|
873
1060
|
/**
|
|
874
1061
|
* The modal should never swipe to close on the content with a refresher.
|
|
@@ -899,6 +1086,25 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
899
1086
|
* Remove undefined check
|
|
900
1087
|
*/
|
|
901
1088
|
canDismissBlocksGesture = baseEl.canDismiss !== undefined && baseEl.canDismiss !== true && minBreakpoint === 0;
|
|
1089
|
+
/**
|
|
1090
|
+
* Cache the scroll element reference when the gesture starts,
|
|
1091
|
+
* this allows us to avoid querying the DOM for the target in onMove,
|
|
1092
|
+
* which would impact performance significantly.
|
|
1093
|
+
*/
|
|
1094
|
+
if (!expandToScroll) {
|
|
1095
|
+
const targetEl = findClosestIonContent(detail.event.target);
|
|
1096
|
+
cachedScrollEl =
|
|
1097
|
+
targetEl && isIonContent(targetEl) ? getElementRoot(targetEl).querySelector('.inner-scroll') : targetEl;
|
|
1098
|
+
}
|
|
1099
|
+
/**
|
|
1100
|
+
* If expandToScroll is disabled, we need to swap
|
|
1101
|
+
* the footer visibility to the original, so if the modal
|
|
1102
|
+
* is dismissed, the footer dismisses with the modal
|
|
1103
|
+
* and doesn't stay on the screen after the modal is gone.
|
|
1104
|
+
*/
|
|
1105
|
+
if (!expandToScroll) {
|
|
1106
|
+
swapFooterVisibility('original');
|
|
1107
|
+
}
|
|
902
1108
|
/**
|
|
903
1109
|
* If we are pulling down, then it is possible we are pulling on the content.
|
|
904
1110
|
* We do not want scrolling to happen at the same time as the gesture.
|
|
@@ -916,6 +1122,13 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
916
1122
|
animation.progressStart(true, 1 - currentBreakpoint);
|
|
917
1123
|
};
|
|
918
1124
|
const onMove = (detail) => {
|
|
1125
|
+
/**
|
|
1126
|
+
* If `expandToScroll` is disabled, and an upwards swipe gesture is done within
|
|
1127
|
+
* the scrollable content, we should not allow the swipe gesture to continue.
|
|
1128
|
+
*/
|
|
1129
|
+
if (!expandToScroll && detail.deltaY <= 0 && cachedScrollEl) {
|
|
1130
|
+
return;
|
|
1131
|
+
}
|
|
919
1132
|
/**
|
|
920
1133
|
* If we are pulling down, then it is possible we are pulling on the content.
|
|
921
1134
|
* We do not want scrolling to happen at the same time as the gesture.
|
|
@@ -962,6 +1175,14 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
962
1175
|
animation.progressStep(offset);
|
|
963
1176
|
};
|
|
964
1177
|
const onEnd = (detail) => {
|
|
1178
|
+
/**
|
|
1179
|
+
* If expandToScroll is disabled, we should not allow the moveSheetToBreakpoint
|
|
1180
|
+
* function to be called if the user is trying to swipe content upwards and the content
|
|
1181
|
+
* is not scrolled to the top.
|
|
1182
|
+
*/
|
|
1183
|
+
if (!expandToScroll && detail.deltaY <= 0 && cachedScrollEl && cachedScrollEl.scrollTop > 0) {
|
|
1184
|
+
return;
|
|
1185
|
+
}
|
|
965
1186
|
/**
|
|
966
1187
|
* When the gesture releases, we need to determine
|
|
967
1188
|
* the closest breakpoint to snap to.
|
|
@@ -1014,6 +1235,19 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1014
1235
|
opacity: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(snapToBreakpoint, backdropBreakpoint)})`,
|
|
1015
1236
|
},
|
|
1016
1237
|
]);
|
|
1238
|
+
if (contentAnimation) {
|
|
1239
|
+
/**
|
|
1240
|
+
* The modal content should scroll at any breakpoint when expandToScroll
|
|
1241
|
+
* is disabled. In order to do this, the content needs to be completely
|
|
1242
|
+
* viewable so scrolling can access everything. Otherwise, the default
|
|
1243
|
+
* behavior would show the content off the screen and only allow
|
|
1244
|
+
* scrolling when the sheet is fully expanded.
|
|
1245
|
+
*/
|
|
1246
|
+
contentAnimation.keyframes([
|
|
1247
|
+
{ offset: 0, maxHeight: `${(1 - breakpointOffset) * 100}%` },
|
|
1248
|
+
{ offset: 1, maxHeight: `${snapToBreakpoint * 100}%` },
|
|
1249
|
+
]);
|
|
1250
|
+
}
|
|
1017
1251
|
animation.progressStep(0);
|
|
1018
1252
|
}
|
|
1019
1253
|
/**
|
|
@@ -1021,6 +1255,14 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1021
1255
|
* snapping animation completes.
|
|
1022
1256
|
*/
|
|
1023
1257
|
gesture.enable(false);
|
|
1258
|
+
/**
|
|
1259
|
+
* If expandToScroll is disabled, we need to swap
|
|
1260
|
+
* the footer visibility to the cloned one so the footer
|
|
1261
|
+
* doesn't flicker when the sheet's height is animated.
|
|
1262
|
+
*/
|
|
1263
|
+
if (!expandToScroll && shouldRemainOpen) {
|
|
1264
|
+
swapFooterVisibility('cloned');
|
|
1265
|
+
}
|
|
1024
1266
|
if (shouldPreventDismiss) {
|
|
1025
1267
|
handleCanDismiss(baseEl, animation);
|
|
1026
1268
|
}
|
|
@@ -1028,13 +1270,13 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1028
1270
|
onDismiss();
|
|
1029
1271
|
}
|
|
1030
1272
|
/**
|
|
1031
|
-
*
|
|
1032
|
-
*
|
|
1033
|
-
*
|
|
1034
|
-
*
|
|
1035
|
-
*
|
|
1273
|
+
* Enables scrolling immediately if the sheet is about to fully expand
|
|
1274
|
+
* or if it allows scrolling at any breakpoint. Without this, there would
|
|
1275
|
+
* be a ~500ms delay while the modal animation completes, causing a
|
|
1276
|
+
* noticeable lag. Native iOS allows scrolling as soon as the gesture is
|
|
1277
|
+
* released, so we align with that behavior.
|
|
1036
1278
|
*/
|
|
1037
|
-
if (contentEl && snapToBreakpoint === breakpoints[breakpoints.length - 1]) {
|
|
1279
|
+
if (contentEl && (snapToBreakpoint === breakpoints[breakpoints.length - 1] || !expandToScroll)) {
|
|
1038
1280
|
contentEl.scrollY = true;
|
|
1039
1281
|
}
|
|
1040
1282
|
return new Promise((resolve) => {
|
|
@@ -1052,6 +1294,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1052
1294
|
raf(() => {
|
|
1053
1295
|
wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
|
|
1054
1296
|
backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
|
|
1297
|
+
contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
|
|
1055
1298
|
animation.progressStart(true, 1 - snapToBreakpoint);
|
|
1056
1299
|
currentBreakpoint = snapToBreakpoint;
|
|
1057
1300
|
onBreakpointChange(currentBreakpoint);
|
|
@@ -1104,10 +1347,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1104
1347
|
};
|
|
1105
1348
|
};
|
|
1106
1349
|
|
|
1107
|
-
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{--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}";
|
|
1350
|
+
const modalIosCss = ":host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:\"\"}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.4)}:host(.modal-card),:host(.modal-sheet){--border-radius:10px}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:10px}}.modal-wrapper{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}@media screen and (max-width: 767px){@supports (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - max(30px, var(--ion-safe-area-top)) - 10px)}}@supports not (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - 40px)}}:host(.modal-card) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-card){--backdrop-opacity:0;--width:100%;-ms-flex-align:end;align-items:flex-end}:host(.modal-card) .modal-shadow{display:none}:host(.modal-card) ion-backdrop{pointer-events:none}}@media screen and (min-width: 768px){:host(.modal-card){--width:calc(100% - 120px);--height:calc(100% - (120px + var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));--max-width:720px;--max-height:1000px;--backdrop-opacity:0;--box-shadow:0px 0px 30px 10px rgba(0, 0, 0, 0.1);-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out}:host(.modal-card) .modal-wrapper{-webkit-box-shadow:none;box-shadow:none}:host(.modal-card) .modal-shadow{-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}}:host(.modal-sheet) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer ion-toolbar:first-of-type{padding-top:6px}";
|
|
1108
1351
|
const IonModalIosStyle0 = modalIosCss;
|
|
1109
1352
|
|
|
1110
|
-
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{--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}";
|
|
1353
|
+
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}";
|
|
1111
1354
|
const IonModalMdStyle0 = modalMdCss;
|
|
1112
1355
|
|
|
1113
1356
|
const Modal = class {
|
|
@@ -1176,6 +1419,7 @@ const Modal = class {
|
|
|
1176
1419
|
this.enterAnimation = undefined;
|
|
1177
1420
|
this.leaveAnimation = undefined;
|
|
1178
1421
|
this.breakpoints = undefined;
|
|
1422
|
+
this.expandToScroll = true;
|
|
1179
1423
|
this.initialBreakpoint = undefined;
|
|
1180
1424
|
this.backdropBreakpoint = 0;
|
|
1181
1425
|
this.handle = undefined;
|
|
@@ -1391,6 +1635,7 @@ const Modal = class {
|
|
|
1391
1635
|
presentingEl: presentingElement,
|
|
1392
1636
|
currentBreakpoint: this.initialBreakpoint,
|
|
1393
1637
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
1638
|
+
expandToScroll: this.expandToScroll,
|
|
1394
1639
|
});
|
|
1395
1640
|
/* tslint:disable-next-line */
|
|
1396
1641
|
if (typeof window !== 'undefined') {
|
|
@@ -1441,7 +1686,10 @@ const Modal = class {
|
|
|
1441
1686
|
// should be in the DOM and referenced by now, except
|
|
1442
1687
|
// for the presenting el
|
|
1443
1688
|
const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation);
|
|
1444
|
-
const ani = (this.animation = animationBuilder(el, {
|
|
1689
|
+
const ani = (this.animation = animationBuilder(el, {
|
|
1690
|
+
presentingEl: this.presentingElement,
|
|
1691
|
+
expandToScroll: this.expandToScroll,
|
|
1692
|
+
}));
|
|
1445
1693
|
const contentEl = findIonContent(el);
|
|
1446
1694
|
if (!contentEl) {
|
|
1447
1695
|
printIonContentErrorMsg(el);
|
|
@@ -1486,9 +1734,10 @@ const Modal = class {
|
|
|
1486
1734
|
presentingEl: this.presentingElement,
|
|
1487
1735
|
currentBreakpoint: initialBreakpoint,
|
|
1488
1736
|
backdropBreakpoint,
|
|
1737
|
+
expandToScroll: this.expandToScroll,
|
|
1489
1738
|
}));
|
|
1490
1739
|
ani.progressStart(true, 1);
|
|
1491
|
-
const { gesture, moveSheetToBreakpoint } = createSheetGesture(this.el, this.backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, ani, this.sortedBreakpoints, () => { var _a; return (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : 0; }, () => this.sheetOnDismiss(), (breakpoint) => {
|
|
1740
|
+
const { gesture, moveSheetToBreakpoint } = createSheetGesture(this.el, this.backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, ani, this.sortedBreakpoints, this.expandToScroll, () => { var _a; return (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : 0; }, () => this.sheetOnDismiss(), (breakpoint) => {
|
|
1492
1741
|
if (this.currentBreakpoint !== breakpoint) {
|
|
1493
1742
|
this.currentBreakpoint = breakpoint;
|
|
1494
1743
|
this.ionBreakpointDidChange.emit({ breakpoint });
|
|
@@ -1566,6 +1815,7 @@ const Modal = class {
|
|
|
1566
1815
|
presentingEl: presentingElement,
|
|
1567
1816
|
currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
|
|
1568
1817
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
1818
|
+
expandToScroll: this.expandToScroll,
|
|
1569
1819
|
});
|
|
1570
1820
|
if (dismissed) {
|
|
1571
1821
|
const { delegate } = this.getDelegate();
|
|
@@ -1651,23 +1901,23 @@ const Modal = class {
|
|
|
1651
1901
|
return true;
|
|
1652
1902
|
}
|
|
1653
1903
|
render() {
|
|
1654
|
-
const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap } = this;
|
|
1904
|
+
const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap, expandToScroll, } = this;
|
|
1655
1905
|
const showHandle = handle !== false && isSheetModal;
|
|
1656
1906
|
const mode = getIonMode(this);
|
|
1657
1907
|
const isCardModal = presentingElement !== undefined && mode === 'ios';
|
|
1658
1908
|
const isHandleCycle = handleBehavior === 'cycle';
|
|
1659
|
-
return (h(Host, Object.assign({ key: '
|
|
1909
|
+
return (h(Host, Object.assign({ key: 'e661562f9e4126136cee337e4ab8ca69ac80faae', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
|
|
1660
1910
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
1661
|
-
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), h("ion-backdrop", { key: '
|
|
1911
|
+
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), h("ion-backdrop", { key: '9221692e0e111f99e80239ca44faaaed9b288425', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { key: '20def7088d31e5eb13c3f2404c514cd8b74cd966', class: "modal-shadow" }), h("div", Object.assign({ key: 'b11229330571d4ff7b9136dfdddcd7d759ada876',
|
|
1662
1912
|
/*
|
|
1663
1913
|
role and aria-modal must be used on the
|
|
1664
1914
|
same element. They must also be set inside the
|
|
1665
1915
|
shadow DOM otherwise ion-button will not be highlighted
|
|
1666
1916
|
when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
|
|
1667
1917
|
*/
|
|
1668
|
-
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: '
|
|
1918
|
+
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: '95b2a62477dfbc063a91910f0d37357388cfd914', class: "modal-handle",
|
|
1669
1919
|
// Prevents the handle from receiving keyboard focus when it does not cycle
|
|
1670
|
-
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), h("slot", { key: '
|
|
1920
|
+
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), h("slot", { key: 'fba17dfdbdffbfd8992f473f633d172c5124dc19' }))));
|
|
1671
1921
|
}
|
|
1672
1922
|
get el() { return getElement(this); }
|
|
1673
1923
|
static get watchers() { return {
|