voyager-ionic-core 8.4.1 → 8.5.0
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 +3 -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 +267 -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 +3 -3
- 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 +275 -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 +45 -13
- package/dist/cjs/ion-select-modal.cjs.entry.js +10 -10
- 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 +87 -10
- 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 +3 -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.ios.css +186 -0
- package/dist/collection/components/select-modal/select-modal.js +2 -2
- 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 +275 -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 +45 -13
- package/dist/esm/ion-select-modal.entry.js +10 -10
- 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-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-8deac7df.system.entry.js +4 -0
- 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-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-bdd6102f.system.entry.js +4 -0
- package/dist/ionic/p-bf64af90.system.js +4 -0
- package/dist/ionic/p-bf77d6fa.entry.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-c8bf9ba7.entry.js +4 -0
- 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 +723 -205
- package/hydrate/index.mjs +723 -205
- package/package.json +8 -8
- 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-626fd66d.system.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-adbc4bdf.entry.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-c2b74d92.system.entry.js +0 -4
- package/dist/ionic/p-c9f3a539.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-fec61c32.entry.js +0 -4
- package/dist/ionic/p-ff4b7e40.system.js +0 -4
|
@@ -5,23 +5,23 @@
|
|
|
5
5
|
|
|
6
6
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
7
7
|
|
|
8
|
-
const index$3 = require('./index-
|
|
9
|
-
const index$2 = require('./index-
|
|
10
|
-
const frameworkDelegate = require('./framework-delegate-
|
|
11
|
-
const helpers = require('./helpers-
|
|
8
|
+
const index$3 = require('./index-2e236a04.js');
|
|
9
|
+
const index$2 = require('./index-9b945a2d.js');
|
|
10
|
+
const frameworkDelegate = require('./framework-delegate-11b0ba2f.js');
|
|
11
|
+
const helpers = require('./helpers-d0dfbb50.js');
|
|
12
12
|
const lockController = require('./lock-controller-6585a42a.js');
|
|
13
|
-
const index$4 = require('./index-
|
|
13
|
+
const index$4 = require('./index-48b2a28e.js');
|
|
14
14
|
const capacitor = require('./capacitor-c04564bf.js');
|
|
15
|
-
const overlays = require('./overlays-
|
|
15
|
+
const overlays = require('./overlays-737576a2.js');
|
|
16
16
|
const theme = require('./theme-d1c573d2.js');
|
|
17
|
-
const index$5 = require('./index-
|
|
18
|
-
const ionicGlobal = require('./ionic-global-
|
|
17
|
+
const index$5 = require('./index-f68a486a.js');
|
|
18
|
+
const ionicGlobal = require('./ionic-global-acb665ad.js');
|
|
19
19
|
const keyboard = require('./keyboard-af1bb365.js');
|
|
20
20
|
const animation = require('./animation-b4fdf128.js');
|
|
21
21
|
const cubicBezier = require('./cubic-bezier-f2dccc53.js');
|
|
22
22
|
const index$1 = require('./index-ee07ed59.js');
|
|
23
23
|
const index = require('./index-c8d52405.js');
|
|
24
|
-
require('./hardware-back-button-
|
|
24
|
+
require('./hardware-back-button-5a99001f.js');
|
|
25
25
|
require('./gesture-controller-9436f482.js');
|
|
26
26
|
require('./keyboard-0272231f.js');
|
|
27
27
|
|
|
@@ -506,7 +506,7 @@ const computeDuration = (remaining, velocity) => {
|
|
|
506
506
|
};
|
|
507
507
|
|
|
508
508
|
const createSheetEnterAnimation = (opts) => {
|
|
509
|
-
const { currentBreakpoint, backdropBreakpoint } = opts;
|
|
509
|
+
const { currentBreakpoint, backdropBreakpoint, expandToScroll } = opts;
|
|
510
510
|
/**
|
|
511
511
|
* If the backdropBreakpoint is undefined, then the backdrop
|
|
512
512
|
* should always fade in. If the backdropBreakpoint came before the
|
|
@@ -526,7 +526,16 @@ const createSheetEnterAnimation = (opts) => {
|
|
|
526
526
|
{ offset: 0, opacity: 1, transform: 'translateY(100%)' },
|
|
527
527
|
{ offset: 1, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
|
|
528
528
|
]);
|
|
529
|
-
|
|
529
|
+
/**
|
|
530
|
+
* This allows the content to be scrollable at any breakpoint.
|
|
531
|
+
*/
|
|
532
|
+
const contentAnimation = !expandToScroll
|
|
533
|
+
? animation.createAnimation('contentAnimation').keyframes([
|
|
534
|
+
{ offset: 0, opacity: 1, maxHeight: `${(1 - currentBreakpoint) * 100}%` },
|
|
535
|
+
{ offset: 1, opacity: 1, maxHeight: `${currentBreakpoint * 100}%` },
|
|
536
|
+
])
|
|
537
|
+
: undefined;
|
|
538
|
+
return { wrapperAnimation, backdropAnimation, contentAnimation };
|
|
530
539
|
};
|
|
531
540
|
const createSheetLeaveAnimation = (opts) => {
|
|
532
541
|
const { currentBreakpoint, backdropBreakpoint } = opts;
|
|
@@ -561,22 +570,68 @@ const createEnterAnimation$1 = () => {
|
|
|
561
570
|
})
|
|
562
571
|
.afterClearStyles(['pointer-events']);
|
|
563
572
|
const wrapperAnimation = animation.createAnimation().fromTo('transform', 'translateY(100vh)', 'translateY(0vh)');
|
|
564
|
-
return { backdropAnimation, wrapperAnimation };
|
|
573
|
+
return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
|
|
565
574
|
};
|
|
566
575
|
/**
|
|
567
576
|
* iOS Modal Enter Animation for the Card presentation style
|
|
568
577
|
*/
|
|
569
578
|
const iosEnterAnimation = (baseEl, opts) => {
|
|
570
|
-
const { presentingEl, currentBreakpoint } = opts;
|
|
579
|
+
const { presentingEl, currentBreakpoint, expandToScroll } = opts;
|
|
571
580
|
const root = helpers.getElementRoot(baseEl);
|
|
572
|
-
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
|
|
581
|
+
const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
|
|
573
582
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
574
583
|
wrapperAnimation.addElement(root.querySelectorAll('.modal-wrapper, .modal-shadow')).beforeStyles({ opacity: 1 });
|
|
584
|
+
// The content animation is only added if scrolling is enabled for
|
|
585
|
+
// all the breakpoints.
|
|
586
|
+
!expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
|
|
575
587
|
const baseAnimation = animation.createAnimation('entering-base')
|
|
576
588
|
.addElement(baseEl)
|
|
577
589
|
.easing('cubic-bezier(0.32,0.72,0,1)')
|
|
578
590
|
.duration(500)
|
|
579
|
-
.addAnimation(wrapperAnimation)
|
|
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
|
+
});
|
|
632
|
+
if (contentAnimation) {
|
|
633
|
+
baseAnimation.addAnimation(contentAnimation);
|
|
634
|
+
}
|
|
580
635
|
if (presentingEl) {
|
|
581
636
|
const isMobile = window.innerWidth < 768;
|
|
582
637
|
const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
|
|
@@ -654,7 +709,7 @@ const createLeaveAnimation$1 = () => {
|
|
|
654
709
|
* iOS Modal Leave Animation
|
|
655
710
|
*/
|
|
656
711
|
const iosLeaveAnimation = (baseEl, opts, duration = 500) => {
|
|
657
|
-
const { presentingEl, currentBreakpoint } = opts;
|
|
712
|
+
const { presentingEl, currentBreakpoint, expandToScroll } = opts;
|
|
658
713
|
const root = helpers.getElementRoot(baseEl);
|
|
659
714
|
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
|
|
660
715
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
@@ -663,7 +718,29 @@ const iosLeaveAnimation = (baseEl, opts, duration = 500) => {
|
|
|
663
718
|
.addElement(baseEl)
|
|
664
719
|
.easing('cubic-bezier(0.32,0.72,0,1)')
|
|
665
720
|
.duration(duration)
|
|
666
|
-
.addAnimation(wrapperAnimation)
|
|
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
|
+
});
|
|
667
744
|
const appEl = baseEl.closest('ion-app');
|
|
668
745
|
if (presentingEl && appEl) {
|
|
669
746
|
const isMobile = window.innerWidth < 768;
|
|
@@ -741,22 +818,69 @@ const createEnterAnimation = () => {
|
|
|
741
818
|
{ offset: 0, opacity: 0.01, transform: 'translateY(40px)' },
|
|
742
819
|
{ offset: 1, opacity: 1, transform: `translateY(0px)` },
|
|
743
820
|
]);
|
|
744
|
-
return { backdropAnimation, wrapperAnimation };
|
|
821
|
+
return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
|
|
745
822
|
};
|
|
746
823
|
/**
|
|
747
824
|
* Md Modal Enter Animation
|
|
748
825
|
*/
|
|
749
826
|
const mdEnterAnimation = (baseEl, opts) => {
|
|
750
|
-
const { currentBreakpoint } = opts;
|
|
827
|
+
const { currentBreakpoint, expandToScroll } = opts;
|
|
751
828
|
const root = helpers.getElementRoot(baseEl);
|
|
752
|
-
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
|
|
829
|
+
const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
|
|
753
830
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
754
831
|
wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
|
|
755
|
-
|
|
832
|
+
// The content animation is only added if scrolling is enabled for
|
|
833
|
+
// all the breakpoints.
|
|
834
|
+
expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
|
|
835
|
+
const baseAnimation = animation.createAnimation()
|
|
756
836
|
.addElement(baseEl)
|
|
757
837
|
.easing('cubic-bezier(0.36,0.66,0.04,1)')
|
|
758
838
|
.duration(280)
|
|
759
|
-
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
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
|
+
});
|
|
880
|
+
if (contentAnimation) {
|
|
881
|
+
baseAnimation.addAnimation(contentAnimation);
|
|
882
|
+
}
|
|
883
|
+
return baseAnimation;
|
|
760
884
|
};
|
|
761
885
|
|
|
762
886
|
const createLeaveAnimation = () => {
|
|
@@ -771,18 +895,41 @@ const createLeaveAnimation = () => {
|
|
|
771
895
|
* Md Modal Leave Animation
|
|
772
896
|
*/
|
|
773
897
|
const mdLeaveAnimation = (baseEl, opts) => {
|
|
774
|
-
const { currentBreakpoint } = opts;
|
|
898
|
+
const { currentBreakpoint, expandToScroll } = opts;
|
|
775
899
|
const root = helpers.getElementRoot(baseEl);
|
|
776
900
|
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation();
|
|
777
901
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
778
902
|
wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
|
|
779
|
-
|
|
903
|
+
const baseAnimation = animation.createAnimation()
|
|
780
904
|
.easing('cubic-bezier(0.47,0,0.745,0.715)')
|
|
781
905
|
.duration(200)
|
|
782
|
-
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
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
|
+
});
|
|
929
|
+
return baseAnimation;
|
|
783
930
|
};
|
|
784
931
|
|
|
785
|
-
const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
|
|
932
|
+
const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], expandToScroll, getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
|
|
786
933
|
// Defaults for the sheet swipe animation
|
|
787
934
|
const defaultBackdrop = [
|
|
788
935
|
{ offset: 0, opacity: 'var(--backdrop-opacity)' },
|
|
@@ -799,6 +946,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
799
946
|
{ offset: 1, transform: 'translateY(100%)' },
|
|
800
947
|
],
|
|
801
948
|
BACKDROP_KEYFRAMES: backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop,
|
|
949
|
+
CONTENT_KEYFRAMES: [
|
|
950
|
+
{ offset: 0, maxHeight: '100%' },
|
|
951
|
+
{ offset: 1, maxHeight: '0%' },
|
|
952
|
+
],
|
|
802
953
|
};
|
|
803
954
|
const contentEl = baseEl.querySelector('ion-content');
|
|
804
955
|
const height = wrapperEl.clientHeight;
|
|
@@ -806,10 +957,11 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
806
957
|
let offset = 0;
|
|
807
958
|
let canDismissBlocksGesture = false;
|
|
808
959
|
const canDismissMaxStep = 0.95;
|
|
809
|
-
const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
|
|
810
|
-
const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
|
|
811
960
|
const maxBreakpoint = breakpoints[breakpoints.length - 1];
|
|
812
961
|
const minBreakpoint = breakpoints[0];
|
|
962
|
+
const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
|
|
963
|
+
const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
|
|
964
|
+
const contentAnimation = animation.childAnimations.find((ani) => ani.id === 'contentAnimation');
|
|
813
965
|
const enableBackdrop = () => {
|
|
814
966
|
baseEl.style.setProperty('pointer-events', 'auto');
|
|
815
967
|
backdropEl.style.setProperty('pointer-events', 'auto');
|
|
@@ -832,6 +984,31 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
832
984
|
*/
|
|
833
985
|
baseEl.classList.add(overlays.FOCUS_TRAP_DISABLE_CLASS);
|
|
834
986
|
};
|
|
987
|
+
/**
|
|
988
|
+
* Toggles the visible modal footer when `expandToScroll` is disabled.
|
|
989
|
+
* @param footer The footer to show.
|
|
990
|
+
*/
|
|
991
|
+
const swapFooterVisibility = (footer) => {
|
|
992
|
+
const originalFooter = baseEl.querySelector('ion-footer');
|
|
993
|
+
if (!originalFooter) {
|
|
994
|
+
return;
|
|
995
|
+
}
|
|
996
|
+
const clonedFooter = wrapperEl.nextElementSibling;
|
|
997
|
+
const footerToHide = footer === 'original' ? clonedFooter : originalFooter;
|
|
998
|
+
const footerToShow = footer === 'original' ? originalFooter : clonedFooter;
|
|
999
|
+
footerToShow.style.removeProperty('display');
|
|
1000
|
+
footerToShow.removeAttribute('aria-hidden');
|
|
1001
|
+
const page = baseEl.querySelector('.ion-page');
|
|
1002
|
+
if (footer === 'original') {
|
|
1003
|
+
page.style.removeProperty('padding-bottom');
|
|
1004
|
+
}
|
|
1005
|
+
else {
|
|
1006
|
+
const pagePadding = footerToShow.clientHeight;
|
|
1007
|
+
page.style.setProperty('padding-bottom', `${pagePadding}px`);
|
|
1008
|
+
}
|
|
1009
|
+
footerToHide.style.setProperty('display', 'none');
|
|
1010
|
+
footerToHide.setAttribute('aria-hidden', 'true');
|
|
1011
|
+
};
|
|
835
1012
|
/**
|
|
836
1013
|
* After the entering animation completes,
|
|
837
1014
|
* we need to set the animation to go from
|
|
@@ -843,6 +1020,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
843
1020
|
if (wrapperAnimation && backdropAnimation) {
|
|
844
1021
|
wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
|
|
845
1022
|
backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
|
|
1023
|
+
contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
|
|
846
1024
|
animation.progressStart(true, 1 - currentBreakpoint);
|
|
847
1025
|
/**
|
|
848
1026
|
* If backdrop is not enabled, then content
|
|
@@ -859,7 +1037,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
859
1037
|
disableBackdrop();
|
|
860
1038
|
}
|
|
861
1039
|
}
|
|
862
|
-
if (contentEl && currentBreakpoint !== maxBreakpoint) {
|
|
1040
|
+
if (contentEl && currentBreakpoint !== maxBreakpoint && expandToScroll) {
|
|
863
1041
|
contentEl.scrollY = false;
|
|
864
1042
|
}
|
|
865
1043
|
const canStart = (detail) => {
|
|
@@ -873,6 +1051,14 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
873
1051
|
*/
|
|
874
1052
|
const contentEl = index$2.findClosestIonContent(detail.event.target);
|
|
875
1053
|
currentBreakpoint = getCurrentBreakpoint();
|
|
1054
|
+
/**
|
|
1055
|
+
* If `expandToScroll` is disabled, we should not allow the swipe gesture
|
|
1056
|
+
* to start if the content is not scrolled to the top.
|
|
1057
|
+
*/
|
|
1058
|
+
if (!expandToScroll && contentEl) {
|
|
1059
|
+
const scrollEl = index$2.isIonContent(contentEl) ? helpers.getElementRoot(contentEl).querySelector('.inner-scroll') : contentEl;
|
|
1060
|
+
return scrollEl.scrollTop === 0;
|
|
1061
|
+
}
|
|
876
1062
|
if (currentBreakpoint === 1 && contentEl) {
|
|
877
1063
|
/**
|
|
878
1064
|
* The modal should never swipe to close on the content with a refresher.
|
|
@@ -903,6 +1089,15 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
903
1089
|
* Remove undefined check
|
|
904
1090
|
*/
|
|
905
1091
|
canDismissBlocksGesture = baseEl.canDismiss !== undefined && baseEl.canDismiss !== true && minBreakpoint === 0;
|
|
1092
|
+
/**
|
|
1093
|
+
* If expandToScroll is disabled, we need to swap
|
|
1094
|
+
* the footer visibility to the original, so if the modal
|
|
1095
|
+
* is dismissed, the footer dismisses with the modal
|
|
1096
|
+
* and doesn't stay on the screen after the modal is gone.
|
|
1097
|
+
*/
|
|
1098
|
+
if (!expandToScroll) {
|
|
1099
|
+
swapFooterVisibility('original');
|
|
1100
|
+
}
|
|
906
1101
|
/**
|
|
907
1102
|
* If we are pulling down, then it is possible we are pulling on the content.
|
|
908
1103
|
* We do not want scrolling to happen at the same time as the gesture.
|
|
@@ -920,6 +1115,13 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
920
1115
|
animation.progressStart(true, 1 - currentBreakpoint);
|
|
921
1116
|
};
|
|
922
1117
|
const onMove = (detail) => {
|
|
1118
|
+
/**
|
|
1119
|
+
* If `expandToScroll` is disabled, we should not allow the swipe gesture
|
|
1120
|
+
* to continue if the gesture is not pulling down.
|
|
1121
|
+
*/
|
|
1122
|
+
if (!expandToScroll && detail.deltaY <= 0) {
|
|
1123
|
+
return;
|
|
1124
|
+
}
|
|
923
1125
|
/**
|
|
924
1126
|
* If we are pulling down, then it is possible we are pulling on the content.
|
|
925
1127
|
* We do not want scrolling to happen at the same time as the gesture.
|
|
@@ -1018,6 +1220,19 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1018
1220
|
opacity: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(snapToBreakpoint, backdropBreakpoint)})`,
|
|
1019
1221
|
},
|
|
1020
1222
|
]);
|
|
1223
|
+
if (contentAnimation) {
|
|
1224
|
+
/**
|
|
1225
|
+
* The modal content should scroll at any breakpoint when expandToScroll
|
|
1226
|
+
* is disabled. In order to do this, the content needs to be completely
|
|
1227
|
+
* viewable so scrolling can access everything. Otherwise, the default
|
|
1228
|
+
* behavior would show the content off the screen and only allow
|
|
1229
|
+
* scrolling when the sheet is fully expanded.
|
|
1230
|
+
*/
|
|
1231
|
+
contentAnimation.keyframes([
|
|
1232
|
+
{ offset: 0, maxHeight: `${(1 - breakpointOffset) * 100}%` },
|
|
1233
|
+
{ offset: 1, maxHeight: `${snapToBreakpoint * 100}%` },
|
|
1234
|
+
]);
|
|
1235
|
+
}
|
|
1021
1236
|
animation.progressStep(0);
|
|
1022
1237
|
}
|
|
1023
1238
|
/**
|
|
@@ -1025,6 +1240,14 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1025
1240
|
* snapping animation completes.
|
|
1026
1241
|
*/
|
|
1027
1242
|
gesture.enable(false);
|
|
1243
|
+
/**
|
|
1244
|
+
* If expandToScroll is disabled, we need to swap
|
|
1245
|
+
* the footer visibility to the cloned one so the footer
|
|
1246
|
+
* doesn't flicker when the sheet's height is animated.
|
|
1247
|
+
*/
|
|
1248
|
+
if (!expandToScroll && shouldRemainOpen) {
|
|
1249
|
+
swapFooterVisibility('cloned');
|
|
1250
|
+
}
|
|
1028
1251
|
if (shouldPreventDismiss) {
|
|
1029
1252
|
handleCanDismiss(baseEl, animation);
|
|
1030
1253
|
}
|
|
@@ -1032,13 +1255,13 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1032
1255
|
onDismiss();
|
|
1033
1256
|
}
|
|
1034
1257
|
/**
|
|
1035
|
-
*
|
|
1036
|
-
*
|
|
1037
|
-
*
|
|
1038
|
-
*
|
|
1039
|
-
*
|
|
1258
|
+
* Enables scrolling immediately if the sheet is about to fully expand
|
|
1259
|
+
* or if it allows scrolling at any breakpoint. Without this, there would
|
|
1260
|
+
* be a ~500ms delay while the modal animation completes, causing a
|
|
1261
|
+
* noticeable lag. Native iOS allows scrolling as soon as the gesture is
|
|
1262
|
+
* released, so we align with that behavior.
|
|
1040
1263
|
*/
|
|
1041
|
-
if (contentEl && snapToBreakpoint === breakpoints[breakpoints.length - 1]) {
|
|
1264
|
+
if (contentEl && (snapToBreakpoint === breakpoints[breakpoints.length - 1] || !expandToScroll)) {
|
|
1042
1265
|
contentEl.scrollY = true;
|
|
1043
1266
|
}
|
|
1044
1267
|
return new Promise((resolve) => {
|
|
@@ -1056,6 +1279,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1056
1279
|
helpers.raf(() => {
|
|
1057
1280
|
wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
|
|
1058
1281
|
backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
|
|
1282
|
+
contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
|
|
1059
1283
|
animation.progressStart(true, 1 - snapToBreakpoint);
|
|
1060
1284
|
currentBreakpoint = snapToBreakpoint;
|
|
1061
1285
|
onBreakpointChange(currentBreakpoint);
|
|
@@ -1108,10 +1332,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1108
1332
|
};
|
|
1109
1333
|
};
|
|
1110
1334
|
|
|
1111
|
-
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}";
|
|
1335
|
+
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}";
|
|
1112
1336
|
const IonModalIosStyle0 = modalIosCss;
|
|
1113
1337
|
|
|
1114
|
-
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}";
|
|
1338
|
+
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}";
|
|
1115
1339
|
const IonModalMdStyle0 = modalMdCss;
|
|
1116
1340
|
|
|
1117
1341
|
const Modal = class {
|
|
@@ -1180,6 +1404,7 @@ const Modal = class {
|
|
|
1180
1404
|
this.enterAnimation = undefined;
|
|
1181
1405
|
this.leaveAnimation = undefined;
|
|
1182
1406
|
this.breakpoints = undefined;
|
|
1407
|
+
this.expandToScroll = true;
|
|
1183
1408
|
this.initialBreakpoint = undefined;
|
|
1184
1409
|
this.backdropBreakpoint = 0;
|
|
1185
1410
|
this.handle = undefined;
|
|
@@ -1395,6 +1620,7 @@ const Modal = class {
|
|
|
1395
1620
|
presentingEl: presentingElement,
|
|
1396
1621
|
currentBreakpoint: this.initialBreakpoint,
|
|
1397
1622
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
1623
|
+
expandToScroll: this.expandToScroll,
|
|
1398
1624
|
});
|
|
1399
1625
|
/* tslint:disable-next-line */
|
|
1400
1626
|
if (typeof window !== 'undefined') {
|
|
@@ -1445,7 +1671,10 @@ const Modal = class {
|
|
|
1445
1671
|
// should be in the DOM and referenced by now, except
|
|
1446
1672
|
// for the presenting el
|
|
1447
1673
|
const animationBuilder = this.leaveAnimation || ionicGlobal.config.get('modalLeave', iosLeaveAnimation);
|
|
1448
|
-
const ani = (this.animation = animationBuilder(el, {
|
|
1674
|
+
const ani = (this.animation = animationBuilder(el, {
|
|
1675
|
+
presentingEl: this.presentingElement,
|
|
1676
|
+
expandToScroll: this.expandToScroll,
|
|
1677
|
+
}));
|
|
1449
1678
|
const contentEl = index$2.findIonContent(el);
|
|
1450
1679
|
if (!contentEl) {
|
|
1451
1680
|
index$2.printIonContentErrorMsg(el);
|
|
@@ -1490,9 +1719,10 @@ const Modal = class {
|
|
|
1490
1719
|
presentingEl: this.presentingElement,
|
|
1491
1720
|
currentBreakpoint: initialBreakpoint,
|
|
1492
1721
|
backdropBreakpoint,
|
|
1722
|
+
expandToScroll: this.expandToScroll,
|
|
1493
1723
|
}));
|
|
1494
1724
|
ani.progressStart(true, 1);
|
|
1495
|
-
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) => {
|
|
1725
|
+
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) => {
|
|
1496
1726
|
if (this.currentBreakpoint !== breakpoint) {
|
|
1497
1727
|
this.currentBreakpoint = breakpoint;
|
|
1498
1728
|
this.ionBreakpointDidChange.emit({ breakpoint });
|
|
@@ -1570,6 +1800,7 @@ const Modal = class {
|
|
|
1570
1800
|
presentingEl: presentingElement,
|
|
1571
1801
|
currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
|
|
1572
1802
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
1803
|
+
expandToScroll: this.expandToScroll,
|
|
1573
1804
|
});
|
|
1574
1805
|
if (dismissed) {
|
|
1575
1806
|
const { delegate } = this.getDelegate();
|
|
@@ -1655,23 +1886,23 @@ const Modal = class {
|
|
|
1655
1886
|
return true;
|
|
1656
1887
|
}
|
|
1657
1888
|
render() {
|
|
1658
|
-
const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap } = this;
|
|
1889
|
+
const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap, expandToScroll, } = this;
|
|
1659
1890
|
const showHandle = handle !== false && isSheetModal;
|
|
1660
1891
|
const mode = ionicGlobal.getIonMode(this);
|
|
1661
1892
|
const isCardModal = presentingElement !== undefined && mode === 'ios';
|
|
1662
1893
|
const isHandleCycle = handleBehavior === 'cycle';
|
|
1663
|
-
return (index$3.h(index$3.Host, Object.assign({ key: '
|
|
1894
|
+
return (index$3.h(index$3.Host, Object.assign({ key: 'e661562f9e4126136cee337e4ab8ca69ac80faae', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
|
|
1664
1895
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
1665
|
-
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, '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: '
|
|
1896
|
+
}, 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: '9221692e0e111f99e80239ca44faaaed9b288425', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && index$3.h("div", { key: '20def7088d31e5eb13c3f2404c514cd8b74cd966', class: "modal-shadow" }), index$3.h("div", Object.assign({ key: 'b11229330571d4ff7b9136dfdddcd7d759ada876',
|
|
1666
1897
|
/*
|
|
1667
1898
|
role and aria-modal must be used on the
|
|
1668
1899
|
same element. They must also be set inside the
|
|
1669
1900
|
shadow DOM otherwise ion-button will not be highlighted
|
|
1670
1901
|
when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
|
|
1671
1902
|
*/
|
|
1672
|
-
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: '
|
|
1903
|
+
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: '95b2a62477dfbc063a91910f0d37357388cfd914', class: "modal-handle",
|
|
1673
1904
|
// Prevents the handle from receiving keyboard focus when it does not cycle
|
|
1674
|
-
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: '
|
|
1905
|
+
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: 'fba17dfdbdffbfd8992f473f633d172c5124dc19' }))));
|
|
1675
1906
|
}
|
|
1676
1907
|
get el() { return index$3.getElement(this); }
|
|
1677
1908
|
static get watchers() { return {
|
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
|
|
6
6
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
7
7
|
|
|
8
|
-
const index = require('./index-
|
|
8
|
+
const index = require('./index-2e236a04.js');
|
|
9
9
|
const cubicBezier = require('./cubic-bezier-f2dccc53.js');
|
|
10
|
-
const helpers = require('./helpers-
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const frameworkDelegate = require('./framework-delegate-
|
|
14
|
-
require('./index-
|
|
10
|
+
const helpers = require('./helpers-d0dfbb50.js');
|
|
11
|
+
const ionicGlobal = require('./ionic-global-acb665ad.js');
|
|
12
|
+
const index$1 = require('./index-f68a486a.js');
|
|
13
|
+
const frameworkDelegate = require('./framework-delegate-11b0ba2f.js');
|
|
14
|
+
require('./index-48b2a28e.js');
|
|
15
15
|
|
|
16
16
|
const VIEW_STATE_NEW = 1;
|
|
17
17
|
const VIEW_STATE_ATTACHED = 2;
|
|
@@ -137,7 +137,7 @@ const Nav = class {
|
|
|
137
137
|
// We want to set this flag before any watch callbacks are manually called
|
|
138
138
|
this.didLoad = true;
|
|
139
139
|
this.rootChanged();
|
|
140
|
-
this.gesture = (await Promise.resolve().then(function () { return require('./swipe-back-
|
|
140
|
+
this.gesture = (await Promise.resolve().then(function () { return require('./swipe-back-5c0003bd.js'); })).createSwipeBackGesture(this.el, this.canStart.bind(this), this.onStart.bind(this), this.onMove.bind(this), this.onEnd.bind(this));
|
|
141
141
|
this.swipeGestureChanged();
|
|
142
142
|
}
|
|
143
143
|
connectedCallback() {
|
|
@@ -903,7 +903,7 @@ const Nav = class {
|
|
|
903
903
|
}
|
|
904
904
|
}
|
|
905
905
|
render() {
|
|
906
|
-
return index.h("slot", { key: '
|
|
906
|
+
return index.h("slot", { key: '71e9b5d07fc90ca5534197a63a003a4154aabd59' });
|
|
907
907
|
}
|
|
908
908
|
get el() { return index.getElement(this); }
|
|
909
909
|
static get watchers() { return {
|
|
@@ -945,7 +945,7 @@ const NavLink = class {
|
|
|
945
945
|
this.routerAnimation = undefined;
|
|
946
946
|
}
|
|
947
947
|
render() {
|
|
948
|
-
return index.h(index.Host, { key: '
|
|
948
|
+
return index.h(index.Host, { key: '9ba170d1b10e08e8a6b5e6a30d363871d455a0a9', onClick: this.onClick });
|
|
949
949
|
}
|
|
950
950
|
get el() { return index.getElement(this); }
|
|
951
951
|
};
|