@ionic/core 8.4.6-dev.11741906766.14c01edc → 8.4.6
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/checkbox.js +6 -40
- package/components/index6.js +3 -11
- package/components/ion-input.js +9 -22
- 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 +3 -3
- 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-row.js +1 -1
- package/components/ion-searchbar.js +4 -4
- package/components/ion-segment-button.js +2 -2
- 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 +6 -50
- 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 +8 -21
- package/components/ion-thumbnail.js +1 -1
- package/components/ion-toast.js +2 -2
- package/components/ion-toggle.js +6 -40
- package/components/label.js +2 -2
- package/components/list-header.js +2 -2
- package/components/modal.js +35 -267
- 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 +2 -39
- 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/{data-27cc2c9c.js → data-21dc0f81.js} +1 -1
- package/dist/cjs/{index-f68a486a.js → index-55a184f7.js} +3 -3
- package/dist/cjs/{index-48b2a28e.js → index-5915f9b3.js} +3 -11
- package/dist/cjs/{index-9b945a2d.js → index-77e085b4.js} +1 -1
- package/dist/cjs/{index-fd6383b6.js → index-864d95f4.js} +1 -1
- package/dist/cjs/index.cjs.js +6 -6
- package/dist/cjs/{input-shims-2d27a5be.js → input-shims-52924092.js} +2 -4
- package/dist/cjs/{input.utils-2f642324.js → input.utils-e4144534.js} +1 -1
- package/dist/cjs/ion-accordion_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-action-sheet.cjs.entry.js +2 -2
- package/dist/cjs/ion-alert.cjs.entry.js +2 -2
- package/dist/cjs/ion-app_8.cjs.entry.js +10 -10
- package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-button_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-checkbox.cjs.entry.js +6 -37
- package/dist/cjs/ion-col_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-datetime-button.cjs.entry.js +2 -2
- package/dist/cjs/ion-datetime_3.cjs.entry.js +7 -7
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +1 -1
- package/dist/cjs/ion-input.cjs.entry.js +9 -21
- package/dist/cjs/ion-item-option_3.cjs.entry.js +6 -6
- package/dist/cjs/ion-item_8.cjs.entry.js +11 -11
- package/dist/cjs/ion-loading.cjs.entry.js +4 -4
- package/dist/cjs/ion-menu_3.cjs.entry.js +9 -9
- package/dist/cjs/ion-modal.cjs.entry.js +39 -270
- package/dist/cjs/ion-nav_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +2 -2
- package/dist/cjs/ion-popover.cjs.entry.js +5 -5
- package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
- package/dist/cjs/ion-radio_2.cjs.entry.js +4 -39
- package/dist/cjs/ion-range.cjs.entry.js +5 -5
- package/dist/cjs/ion-refresher_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
- package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
- package/dist/cjs/ion-searchbar.cjs.entry.js +4 -4
- package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
- package/dist/cjs/ion-segment-view.cjs.entry.js +2 -2
- package/dist/cjs/ion-segment_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-select-modal.cjs.entry.js +3 -3
- package/dist/cjs/ion-select_3.cjs.entry.js +10 -51
- package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
- package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-text.cjs.entry.js +2 -2
- package/dist/cjs/ion-textarea.cjs.entry.js +8 -20
- package/dist/cjs/ion-toast.cjs.entry.js +4 -4
- package/dist/cjs/ion-toggle.cjs.entry.js +6 -37
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/{ios.transition-f970164c.js → ios.transition-abac30e4.js} +2 -2
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{md.transition-aa8820dd.js → md.transition-e328f70d.js} +2 -2
- package/dist/cjs/{overlays-737576a2.js → overlays-2f264f05.js} +1 -1
- package/dist/cjs/{status-tap-08d1ac81.js → status-tap-191ccc90.js} +2 -3
- package/dist/collection/components/checkbox/checkbox.ios.css +15 -52
- package/dist/collection/components/checkbox/checkbox.js +4 -90
- package/dist/collection/components/checkbox/checkbox.md.css +15 -52
- package/dist/collection/components/input/input.ios.css +2 -3
- package/dist/collection/components/input/input.js +4 -18
- package/dist/collection/components/input/input.md.css +2 -7
- 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 +4 -50
- package/dist/collection/components/modal/animations/ios.leave.js +2 -24
- package/dist/collection/components/modal/animations/md.enter.js +5 -52
- package/dist/collection/components/modal/animations/md.leave.js +3 -26
- package/dist/collection/components/modal/animations/sheet.js +2 -11
- package/dist/collection/components/modal/gestures/sheet.js +10 -87
- package/dist/collection/components/modal/modal.ios.css +0 -16
- package/dist/collection/components/modal/modal.js +7 -32
- package/dist/collection/components/modal/modal.md.css +0 -6
- 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.js +1 -72
- package/dist/collection/components/range/range.js +3 -3
- 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 +2 -2
- 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 +0 -59
- package/dist/collection/components/select/select.js +4 -100
- package/dist/collection/components/select/select.md.css +0 -61
- 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 +2 -3
- package/dist/collection/components/textarea/textarea.js +3 -17
- package/dist/collection/components/textarea/textarea.md.css +2 -7
- 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 +15 -52
- package/dist/collection/components/toggle/toggle.js +4 -90
- package/dist/collection/components/toggle/toggle.md.css +15 -52
- package/dist/collection/components/toolbar/toolbar.js +2 -6
- package/dist/collection/utils/logging/index.js +3 -10
- package/dist/docs.json +2 -379
- package/dist/esm/{data-174ad5e0.js → data-ae11fd43.js} +1 -1
- package/dist/esm/{index-738d7504.js → index-9b0d46f4.js} +3 -11
- package/dist/esm/{index-a313df53.js → index-c4a831fd.js} +3 -3
- package/dist/esm/{index-933ca126.js → index-d4642b24.js} +1 -1
- package/dist/esm/{index-c63afbe6.js → index-df741ec6.js} +1 -1
- package/dist/esm/index.js +6 -6
- package/dist/esm/{input-shims-3070628a.js → input-shims-80c5b98e.js} +2 -4
- package/dist/esm/{input.utils-926c04a8.js → input.utils-3a4c0a2a.js} +1 -1
- package/dist/esm/ion-accordion_2.entry.js +1 -1
- package/dist/esm/ion-action-sheet.entry.js +2 -2
- package/dist/esm/ion-alert.entry.js +2 -2
- package/dist/esm/ion-app_8.entry.js +10 -10
- package/dist/esm/ion-avatar_3.entry.js +1 -1
- package/dist/esm/ion-button_2.entry.js +1 -1
- package/dist/esm/ion-checkbox.entry.js +6 -37
- package/dist/esm/ion-col_3.entry.js +1 -1
- package/dist/esm/ion-datetime-button.entry.js +2 -2
- package/dist/esm/ion-datetime_3.entry.js +7 -7
- package/dist/esm/ion-infinite-scroll_2.entry.js +2 -2
- package/dist/esm/ion-input-password-toggle.entry.js +1 -1
- package/dist/esm/ion-input.entry.js +10 -22
- package/dist/esm/ion-item-option_3.entry.js +6 -6
- package/dist/esm/ion-item_8.entry.js +11 -11
- package/dist/esm/ion-loading.entry.js +4 -4
- package/dist/esm/ion-menu_3.entry.js +9 -9
- package/dist/esm/ion-modal.entry.js +39 -270
- package/dist/esm/ion-nav_2.entry.js +4 -4
- package/dist/esm/ion-picker-column-option.entry.js +2 -2
- package/dist/esm/ion-popover.entry.js +5 -5
- package/dist/esm/ion-progress-bar.entry.js +1 -1
- package/dist/esm/ion-radio_2.entry.js +4 -39
- package/dist/esm/ion-range.entry.js +5 -5
- package/dist/esm/ion-refresher_2.entry.js +4 -4
- package/dist/esm/ion-reorder_2.entry.js +4 -4
- package/dist/esm/ion-ripple-effect.entry.js +1 -1
- package/dist/esm/ion-route_4.entry.js +2 -2
- package/dist/esm/ion-searchbar.entry.js +4 -4
- package/dist/esm/ion-segment-content.entry.js +1 -1
- package/dist/esm/ion-segment-view.entry.js +2 -2
- package/dist/esm/ion-segment_2.entry.js +4 -4
- package/dist/esm/ion-select-modal.entry.js +3 -3
- package/dist/esm/ion-select_3.entry.js +10 -51
- package/dist/esm/ion-spinner.entry.js +1 -1
- package/dist/esm/ion-split-pane.entry.js +2 -2
- package/dist/esm/ion-tab-bar_2.entry.js +4 -4
- package/dist/esm/ion-tab_2.entry.js +3 -3
- package/dist/esm/ion-text.entry.js +2 -2
- package/dist/esm/ion-textarea.entry.js +9 -21
- package/dist/esm/ion-toast.entry.js +4 -4
- package/dist/esm/ion-toggle.entry.js +6 -37
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/{ios.transition-5fe4d6c8.js → ios.transition-a81c9c6b.js} +2 -2
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{md.transition-3d0d3730.js → md.transition-dbb51edc.js} +2 -2
- package/dist/esm/{overlays-7579a420.js → overlays-4ff1fca8.js} +1 -1
- package/dist/esm/{status-tap-6367b913.js → status-tap-73b183f4.js} +2 -3
- package/dist/esm-es5/{data-174ad5e0.js → data-ae11fd43.js} +1 -1
- package/dist/esm-es5/index-9b0d46f4.js +4 -0
- package/dist/esm-es5/{index-a313df53.js → index-c4a831fd.js} +1 -1
- package/dist/esm-es5/{index-933ca126.js → index-d4642b24.js} +1 -1
- package/dist/esm-es5/{index-c63afbe6.js → index-df741ec6.js} +1 -1
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/input-shims-80c5b98e.js +4 -0
- package/dist/esm-es5/{input.utils-926c04a8.js → input.utils-3a4c0a2a.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-button_2.entry.js +1 -1
- package/dist/esm-es5/ion-checkbox.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-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-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.js +1 -1
- package/dist/esm-es5/{ios.transition-5fe4d6c8.js → ios.transition-a81c9c6b.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/md.transition-dbb51edc.js +4 -0
- package/dist/esm-es5/{overlays-7579a420.js → overlays-4ff1fca8.js} +1 -1
- package/dist/esm-es5/status-tap-73b183f4.js +4 -0
- package/dist/html.html-data.json +0 -48
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-77991411.system.js → p-00ab8b89.system.js} +2 -2
- package/dist/ionic/p-06fee233.js +4 -0
- package/dist/ionic/{p-4630688e.system.entry.js → p-0b860115.system.entry.js} +1 -1
- package/dist/ionic/{p-e5708e5d.system.entry.js → p-0eb49e5c.system.entry.js} +1 -1
- package/dist/ionic/{p-f94b2f2f.system.entry.js → p-11bbdab8.system.entry.js} +1 -1
- package/dist/ionic/p-1332050e.entry.js +4 -0
- package/dist/ionic/{p-7ff4f502.entry.js → p-16cd36e4.entry.js} +1 -1
- package/dist/ionic/p-19179876.js +4 -0
- package/dist/ionic/{p-491de063.system.entry.js → p-1a289aba.system.entry.js} +1 -1
- package/dist/ionic/{p-b6174297.entry.js → p-1cfb788a.entry.js} +1 -1
- package/dist/ionic/{p-0adb6909.system.entry.js → p-1ef02643.system.entry.js} +1 -1
- package/dist/ionic/p-1ffab75e.entry.js +4 -0
- package/dist/ionic/{p-37a438ad.system.entry.js → p-21d1c1c7.system.entry.js} +2 -2
- package/dist/ionic/{p-e7309bfa.js → p-27da8c2c.js} +1 -1
- package/dist/ionic/p-2d4658d4.system.entry.js +4 -0
- package/dist/ionic/{p-b9eb1465.system.entry.js → p-2f890012.system.entry.js} +1 -1
- package/dist/ionic/{p-3be7cdeb.system.entry.js → p-31d6b3d0.system.entry.js} +2 -2
- package/dist/ionic/{p-81378456.system.entry.js → p-3250466d.system.entry.js} +2 -2
- package/dist/ionic/{p-9b069739.entry.js → p-32d4ac00.entry.js} +1 -1
- package/dist/ionic/{p-eeee3990.system.entry.js → p-34b077b1.system.entry.js} +1 -1
- package/dist/ionic/{p-4d0190ad.system.entry.js → p-36079188.system.entry.js} +1 -1
- package/dist/ionic/{p-efa0f3f5.entry.js → p-360f5507.entry.js} +1 -1
- package/dist/ionic/{p-35f14792.entry.js → p-3705c194.entry.js} +1 -1
- package/dist/ionic/{p-e00b72ce.js → p-37e874f1.js} +1 -1
- package/dist/ionic/{p-838cc359.entry.js → p-39b5611c.entry.js} +1 -1
- package/dist/ionic/{p-ace2d2be.entry.js → p-3c66a690.entry.js} +1 -1
- package/dist/ionic/p-3e0bb0e1.entry.js +4 -0
- package/dist/ionic/p-3ef5e7fc.entry.js +4 -0
- package/dist/ionic/{p-9df36075.system.entry.js → p-3fc787a8.system.entry.js} +1 -1
- package/dist/ionic/{p-8fc426e2.entry.js → p-4979cd1d.entry.js} +1 -1
- package/dist/ionic/{p-ab7337e1.entry.js → p-4cfb0dc8.entry.js} +1 -1
- package/dist/ionic/{p-58c482af.entry.js → p-4e1b109b.entry.js} +1 -1
- package/dist/ionic/{p-8b1c1fd7.entry.js → p-5175f06a.entry.js} +1 -1
- package/dist/ionic/p-51fc2fac.system.entry.js +4 -0
- package/dist/ionic/{p-50f38461.entry.js → p-53d4d8c7.entry.js} +1 -1
- package/dist/ionic/p-5430a6da.entry.js +4 -0
- package/dist/ionic/{p-2ee9a2c6.entry.js → p-611d105b.entry.js} +1 -1
- package/dist/ionic/{p-e0c43e11.system.entry.js → p-6386ccd6.system.entry.js} +1 -1
- package/dist/ionic/{p-8deac7df.system.entry.js → p-6390c6ab.system.entry.js} +1 -1
- package/dist/ionic/p-64279526.js +4 -0
- package/dist/ionic/p-64da0521.system.js +4 -0
- package/dist/ionic/{p-def7a8bd.system.entry.js → p-684c6a80.system.entry.js} +1 -1
- package/dist/ionic/p-6aa6839e.entry.js +4 -0
- package/dist/ionic/p-6cb61a35.entry.js +4 -0
- package/dist/ionic/{p-e0a05506.js → p-7737b8fa.js} +1 -1
- package/dist/ionic/{p-3479f51b.system.js → p-782ed885.system.js} +1 -1
- package/dist/ionic/{p-b2296998.system.entry.js → p-7d425376.system.entry.js} +1 -1
- package/dist/ionic/{p-0bedc891.system.entry.js → p-811ff2a0.system.entry.js} +1 -1
- package/dist/ionic/{p-c25c0ba4.entry.js → p-847fd113.entry.js} +1 -1
- package/dist/ionic/{p-9e51f822.js → p-85446175.js} +1 -1
- package/dist/ionic/{p-42f6e75c.entry.js → p-85f19de9.entry.js} +1 -1
- package/dist/ionic/{p-a587b2ae.system.js → p-89204f3f.system.js} +1 -1
- package/dist/ionic/{p-e4683bfd.system.entry.js → p-8b378b48.system.entry.js} +1 -1
- package/dist/ionic/{p-c6a20407.system.entry.js → p-8cfaf64f.system.entry.js} +1 -1
- package/dist/ionic/p-8d611ccd.entry.js +4 -0
- package/dist/ionic/{p-4c94580e.js → p-8db97fa1.js} +1 -1
- package/dist/ionic/{p-3bd5fedc.system.js → p-8dbe745b.system.js} +1 -1
- package/dist/ionic/{p-72e6a9c6.entry.js → p-9023f5eb.entry.js} +1 -1
- package/dist/ionic/p-9048389e.entry.js +4 -0
- package/dist/ionic/{p-51c363e7.system.js → p-91fe21bb.system.js} +1 -1
- package/dist/ionic/{p-c8331397.system.entry.js → p-96f7bb84.system.entry.js} +1 -1
- package/dist/ionic/{p-c8bf9ba7.entry.js → p-9e7a9a27.entry.js} +1 -1
- package/dist/ionic/p-a300835e.system.entry.js +4 -0
- package/dist/ionic/p-a6042939.entry.js +4 -0
- package/dist/ionic/p-a6f13a4e.system.entry.js +4 -0
- package/dist/ionic/{p-e5c27d9f.system.entry.js → p-a8584808.system.entry.js} +1 -1
- package/dist/ionic/{p-472c7e08.system.entry.js → p-a8cc566d.system.entry.js} +1 -1
- package/dist/ionic/{p-0be8a0b5.entry.js → p-a9b9259c.entry.js} +1 -1
- package/dist/ionic/p-aae8187b.system.entry.js +4 -0
- package/dist/ionic/{p-060e4551.js → p-ad780230.js} +1 -1
- package/dist/ionic/{p-24ae7b33.system.js → p-adbbf974.system.js} +1 -1
- package/dist/ionic/p-ae518f0b.system.entry.js +4 -0
- package/dist/ionic/{p-d7032956.system.js → p-af873227.system.js} +1 -1
- package/dist/ionic/{p-b9f2e353.entry.js → p-afcd55c6.entry.js} +1 -1
- package/dist/ionic/{p-19c32a76.entry.js → p-afd7a6a9.entry.js} +1 -1
- package/dist/ionic/{p-ada878ce.entry.js → p-b7ed7f16.entry.js} +1 -1
- package/dist/ionic/{p-8fa4fa3f.entry.js → p-b88c5ce4.entry.js} +1 -1
- package/dist/ionic/{p-21371278.system.entry.js → p-b8e3b3ca.system.entry.js} +1 -1
- package/dist/ionic/p-bf64af90.system.js +1 -1
- package/dist/ionic/{p-524ad57e.system.entry.js → p-bf7f7084.system.entry.js} +2 -2
- package/dist/ionic/{p-4470f87b.system.entry.js → p-bf973e4b.system.entry.js} +2 -2
- package/dist/ionic/{p-ff4a1ba0.system.entry.js → p-c5abee89.system.entry.js} +1 -1
- package/dist/ionic/{p-f6bb9be7.system.entry.js → p-c8c27ae7.system.entry.js} +1 -1
- package/dist/ionic/p-cbd5b96a.entry.js +4 -0
- package/dist/ionic/p-ccbb47f5.entry.js +4 -0
- package/dist/ionic/{p-3af7b907.entry.js → p-cd239b25.entry.js} +1 -1
- package/dist/ionic/{p-daf1e8ec.system.entry.js → p-d4308e05.system.entry.js} +1 -1
- package/dist/ionic/{p-f7ce606e.js → p-d60342e3.js} +1 -1
- package/dist/ionic/{p-b2ee0628.system.entry.js → p-da5ae6cf.system.entry.js} +1 -1
- package/dist/ionic/{p-1d2844a5.system.entry.js → p-dbac4f3e.system.entry.js} +1 -1
- package/dist/ionic/{p-1f837356.entry.js → p-dc8cbb8b.entry.js} +1 -1
- package/dist/ionic/{p-1a9613bf.system.entry.js → p-dd141012.system.entry.js} +1 -1
- package/dist/ionic/{p-eec4b772.entry.js → p-ded39921.entry.js} +1 -1
- package/dist/ionic/{p-888d383b.system.entry.js → p-df4c00a4.system.entry.js} +1 -1
- package/dist/ionic/{p-13886789.entry.js → p-df61d353.entry.js} +1 -1
- package/dist/ionic/p-e394222f.entry.js +4 -0
- package/dist/ionic/p-ea925d34.system.entry.js +4 -0
- package/dist/ionic/{p-4c44d04c.js → p-ec631b0f.js} +1 -1
- package/dist/ionic/{p-8fa62efe.system.entry.js → p-f1ad06bd.system.entry.js} +1 -1
- package/dist/ionic/{p-747f9517.entry.js → p-f1b20f28.entry.js} +1 -1
- package/dist/ionic/{p-b055d618.entry.js → p-f1be5454.entry.js} +1 -1
- package/dist/ionic/{p-042d5353.system.js → p-f30071a2.system.js} +1 -1
- package/dist/ionic/{p-5eb6f582.system.js → p-f59611e2.system.js} +1 -1
- package/dist/ionic/{p-1bf5ec17.system.js → p-f687573e.system.js} +1 -1
- package/dist/ionic/{p-e0c0218f.system.entry.js → p-f97efff5.system.entry.js} +1 -1
- package/dist/ionic/{p-ac58d726.system.entry.js → p-f9e7de97.system.entry.js} +1 -1
- package/dist/ionic/{p-a520973b.entry.js → p-fd0f8d68.entry.js} +1 -1
- package/dist/ionic/p-ff4b7e40.system.js +4 -0
- package/dist/types/components/checkbox/checkbox.d.ts +0 -25
- package/dist/types/components/input/input.d.ts +0 -8
- package/dist/types/components/modal/animations/sheet.d.ts +0 -1
- package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
- package/dist/types/components/modal/modal-interface.d.ts +0 -1
- package/dist/types/components/modal/modal.d.ts +0 -14
- package/dist/types/components/radio-group/radio-group.d.ts +0 -15
- package/dist/types/components/select/select.d.ts +0 -29
- package/dist/types/components/textarea/textarea.d.ts +0 -8
- package/dist/types/components/toggle/toggle.d.ts +0 -25
- package/dist/types/components/toolbar/toolbar.d.ts +0 -4
- package/dist/types/components.d.ts +0 -96
- package/dist/types/utils/config.d.ts +0 -9
- package/dist/types/utils/logging/index.d.ts +1 -13
- package/hydrate/index.js +153 -575
- package/hydrate/index.mjs +153 -575
- package/package.json +2 -2
- package/dist/collection/components/radio-group/radio-group.ios.css +0 -205
- package/dist/collection/components/radio-group/radio-group.md.css +0 -205
- package/dist/esm-es5/index-738d7504.js +0 -4
- package/dist/esm-es5/input-shims-3070628a.js +0 -4
- package/dist/esm-es5/md.transition-3d0d3730.js +0 -4
- package/dist/esm-es5/status-tap-6367b913.js +0 -4
- package/dist/ionic/p-094c82d7.entry.js +0 -4
- package/dist/ionic/p-0ec5b7cf.system.js +0 -4
- package/dist/ionic/p-143ff664.system.entry.js +0 -4
- package/dist/ionic/p-18f9b6d5.entry.js +0 -4
- package/dist/ionic/p-2027221d.js +0 -4
- package/dist/ionic/p-29a5b4e4.entry.js +0 -4
- package/dist/ionic/p-2fa5a4b1.entry.js +0 -4
- package/dist/ionic/p-3f4327f7.js +0 -4
- package/dist/ionic/p-4493c1ac.entry.js +0 -4
- package/dist/ionic/p-54893ae3.entry.js +0 -4
- package/dist/ionic/p-54e9620f.js +0 -4
- package/dist/ionic/p-606887b7.system.entry.js +0 -4
- package/dist/ionic/p-6797c66e.system.js +0 -4
- package/dist/ionic/p-81474833.system.entry.js +0 -4
- package/dist/ionic/p-959cf042.system.entry.js +0 -4
- package/dist/ionic/p-a9f2c0a7.entry.js +0 -4
- package/dist/ionic/p-b8c2dbcd.entry.js +0 -4
- package/dist/ionic/p-bbc6db8c.entry.js +0 -4
- package/dist/ionic/p-bc3e5577.system.entry.js +0 -4
- package/dist/ionic/p-c258efb9.entry.js +0 -4
- package/dist/ionic/p-c5b5f44a.entry.js +0 -4
- package/dist/ionic/p-d8c9d5ac.system.entry.js +0 -4
- package/dist/ionic/p-e5cf01f1.entry.js +0 -4
- package/dist/ionic/p-ed768b77.entry.js +0 -4
- package/dist/ionic/p-f02e9382.system.entry.js +0 -4
package/components/modal.js
CHANGED
|
@@ -500,7 +500,7 @@ const computeDuration = (remaining, velocity) => {
|
|
|
500
500
|
};
|
|
501
501
|
|
|
502
502
|
const createSheetEnterAnimation = (opts) => {
|
|
503
|
-
const { currentBreakpoint, backdropBreakpoint
|
|
503
|
+
const { currentBreakpoint, backdropBreakpoint } = opts;
|
|
504
504
|
/**
|
|
505
505
|
* If the backdropBreakpoint is undefined, then the backdrop
|
|
506
506
|
* should always fade in. If the backdropBreakpoint came before the
|
|
@@ -520,16 +520,7 @@ const createSheetEnterAnimation = (opts) => {
|
|
|
520
520
|
{ offset: 0, opacity: 1, transform: 'translateY(100%)' },
|
|
521
521
|
{ offset: 1, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
|
|
522
522
|
]);
|
|
523
|
-
|
|
524
|
-
* This allows the content to be scrollable at any breakpoint.
|
|
525
|
-
*/
|
|
526
|
-
const contentAnimation = !expandToScroll
|
|
527
|
-
? createAnimation('contentAnimation').keyframes([
|
|
528
|
-
{ offset: 0, opacity: 1, maxHeight: `${(1 - currentBreakpoint) * 100}%` },
|
|
529
|
-
{ offset: 1, opacity: 1, maxHeight: `${currentBreakpoint * 100}%` },
|
|
530
|
-
])
|
|
531
|
-
: undefined;
|
|
532
|
-
return { wrapperAnimation, backdropAnimation, contentAnimation };
|
|
523
|
+
return { wrapperAnimation, backdropAnimation };
|
|
533
524
|
};
|
|
534
525
|
const createSheetLeaveAnimation = (opts) => {
|
|
535
526
|
const { currentBreakpoint, backdropBreakpoint } = opts;
|
|
@@ -564,68 +555,22 @@ const createEnterAnimation$1 = () => {
|
|
|
564
555
|
})
|
|
565
556
|
.afterClearStyles(['pointer-events']);
|
|
566
557
|
const wrapperAnimation = createAnimation().fromTo('transform', 'translateY(100vh)', 'translateY(0vh)');
|
|
567
|
-
return { backdropAnimation, wrapperAnimation
|
|
558
|
+
return { backdropAnimation, wrapperAnimation };
|
|
568
559
|
};
|
|
569
560
|
/**
|
|
570
561
|
* iOS Modal Enter Animation for the Card presentation style
|
|
571
562
|
*/
|
|
572
563
|
const iosEnterAnimation = (baseEl, opts) => {
|
|
573
|
-
const { presentingEl, currentBreakpoint
|
|
564
|
+
const { presentingEl, currentBreakpoint } = opts;
|
|
574
565
|
const root = getElementRoot(baseEl);
|
|
575
|
-
const { wrapperAnimation, backdropAnimation
|
|
566
|
+
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
|
|
576
567
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
577
568
|
wrapperAnimation.addElement(root.querySelectorAll('.modal-wrapper, .modal-shadow')).beforeStyles({ opacity: 1 });
|
|
578
|
-
// The content animation is only added if scrolling is enabled for
|
|
579
|
-
// all the breakpoints.
|
|
580
|
-
!expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
|
|
581
569
|
const baseAnimation = createAnimation('entering-base')
|
|
582
570
|
.addElement(baseEl)
|
|
583
571
|
.easing('cubic-bezier(0.32,0.72,0,1)')
|
|
584
572
|
.duration(500)
|
|
585
|
-
.addAnimation(
|
|
586
|
-
.beforeAddWrite(() => {
|
|
587
|
-
if (expandToScroll) {
|
|
588
|
-
// Scroll can only be done when the modal is fully expanded.
|
|
589
|
-
return;
|
|
590
|
-
}
|
|
591
|
-
/**
|
|
592
|
-
* There are some browsers that causes flickering when
|
|
593
|
-
* dragging the content when scroll is enabled at every
|
|
594
|
-
* breakpoint. This is due to the wrapper element being
|
|
595
|
-
* transformed off the screen and having a snap animation.
|
|
596
|
-
*
|
|
597
|
-
* A workaround is to clone the footer element and append
|
|
598
|
-
* it outside of the wrapper element. This way, the footer
|
|
599
|
-
* is still visible and the drag can be done without
|
|
600
|
-
* flickering. The original footer is hidden until the modal
|
|
601
|
-
* is dismissed. This maintains the animation of the footer
|
|
602
|
-
* when the modal is dismissed.
|
|
603
|
-
*
|
|
604
|
-
* The workaround needs to be done before the animation starts
|
|
605
|
-
* so there are no flickering issues.
|
|
606
|
-
*/
|
|
607
|
-
const ionFooter = baseEl.querySelector('ion-footer');
|
|
608
|
-
/**
|
|
609
|
-
* This check is needed to prevent more than one footer
|
|
610
|
-
* from being appended to the shadow root.
|
|
611
|
-
* Otherwise, iOS and MD enter animations would append
|
|
612
|
-
* the footer twice.
|
|
613
|
-
*/
|
|
614
|
-
const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
|
|
615
|
-
if (ionFooter && !ionFooterAlreadyAppended) {
|
|
616
|
-
const footerHeight = ionFooter.clientHeight;
|
|
617
|
-
const clonedFooter = ionFooter.cloneNode(true);
|
|
618
|
-
baseEl.shadowRoot.appendChild(clonedFooter);
|
|
619
|
-
ionFooter.style.setProperty('display', 'none');
|
|
620
|
-
ionFooter.setAttribute('aria-hidden', 'true');
|
|
621
|
-
// Padding is added to prevent some content from being hidden.
|
|
622
|
-
const page = baseEl.querySelector('.ion-page');
|
|
623
|
-
page.style.setProperty('padding-bottom', `${footerHeight}px`);
|
|
624
|
-
}
|
|
625
|
-
});
|
|
626
|
-
if (contentAnimation) {
|
|
627
|
-
baseAnimation.addAnimation(contentAnimation);
|
|
628
|
-
}
|
|
573
|
+
.addAnimation(wrapperAnimation);
|
|
629
574
|
if (presentingEl) {
|
|
630
575
|
const isMobile = window.innerWidth < 768;
|
|
631
576
|
const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
|
|
@@ -703,7 +648,7 @@ const createLeaveAnimation$1 = () => {
|
|
|
703
648
|
* iOS Modal Leave Animation
|
|
704
649
|
*/
|
|
705
650
|
const iosLeaveAnimation = (baseEl, opts, duration = 500) => {
|
|
706
|
-
const { presentingEl, currentBreakpoint
|
|
651
|
+
const { presentingEl, currentBreakpoint } = opts;
|
|
707
652
|
const root = getElementRoot(baseEl);
|
|
708
653
|
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
|
|
709
654
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
@@ -712,29 +657,7 @@ const iosLeaveAnimation = (baseEl, opts, duration = 500) => {
|
|
|
712
657
|
.addElement(baseEl)
|
|
713
658
|
.easing('cubic-bezier(0.32,0.72,0,1)')
|
|
714
659
|
.duration(duration)
|
|
715
|
-
.addAnimation(wrapperAnimation)
|
|
716
|
-
.beforeAddWrite(() => {
|
|
717
|
-
if (expandToScroll) {
|
|
718
|
-
// Scroll can only be done when the modal is fully expanded.
|
|
719
|
-
return;
|
|
720
|
-
}
|
|
721
|
-
/**
|
|
722
|
-
* If expandToScroll is disabled, we need to swap
|
|
723
|
-
* the visibility to the original, so the footer
|
|
724
|
-
* dismisses with the modal and doesn't stay
|
|
725
|
-
* until the modal is removed from the DOM.
|
|
726
|
-
*/
|
|
727
|
-
const ionFooter = baseEl.querySelector('ion-footer');
|
|
728
|
-
if (ionFooter) {
|
|
729
|
-
const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
|
|
730
|
-
ionFooter.style.removeProperty('display');
|
|
731
|
-
ionFooter.removeAttribute('aria-hidden');
|
|
732
|
-
clonedFooter.style.setProperty('display', 'none');
|
|
733
|
-
clonedFooter.setAttribute('aria-hidden', 'true');
|
|
734
|
-
const page = baseEl.querySelector('.ion-page');
|
|
735
|
-
page.style.removeProperty('padding-bottom');
|
|
736
|
-
}
|
|
737
|
-
});
|
|
660
|
+
.addAnimation(wrapperAnimation);
|
|
738
661
|
if (presentingEl) {
|
|
739
662
|
const isMobile = window.innerWidth < 768;
|
|
740
663
|
const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
|
|
@@ -812,69 +735,22 @@ const createEnterAnimation = () => {
|
|
|
812
735
|
{ offset: 0, opacity: 0.01, transform: 'translateY(40px)' },
|
|
813
736
|
{ offset: 1, opacity: 1, transform: `translateY(0px)` },
|
|
814
737
|
]);
|
|
815
|
-
return { backdropAnimation, wrapperAnimation
|
|
738
|
+
return { backdropAnimation, wrapperAnimation };
|
|
816
739
|
};
|
|
817
740
|
/**
|
|
818
741
|
* Md Modal Enter Animation
|
|
819
742
|
*/
|
|
820
743
|
const mdEnterAnimation = (baseEl, opts) => {
|
|
821
|
-
const { currentBreakpoint
|
|
744
|
+
const { currentBreakpoint } = opts;
|
|
822
745
|
const root = getElementRoot(baseEl);
|
|
823
|
-
const { wrapperAnimation, backdropAnimation
|
|
746
|
+
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
|
|
824
747
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
825
748
|
wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
|
|
826
|
-
|
|
827
|
-
// all the breakpoints.
|
|
828
|
-
expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
|
|
829
|
-
const baseAnimation = createAnimation()
|
|
749
|
+
return createAnimation()
|
|
830
750
|
.addElement(baseEl)
|
|
831
751
|
.easing('cubic-bezier(0.36,0.66,0.04,1)')
|
|
832
752
|
.duration(280)
|
|
833
|
-
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
834
|
-
.beforeAddWrite(() => {
|
|
835
|
-
if (expandToScroll) {
|
|
836
|
-
// Scroll can only be done when the modal is fully expanded.
|
|
837
|
-
return;
|
|
838
|
-
}
|
|
839
|
-
/**
|
|
840
|
-
* There are some browsers that causes flickering when
|
|
841
|
-
* dragging the content when scroll is enabled at every
|
|
842
|
-
* breakpoint. This is due to the wrapper element being
|
|
843
|
-
* transformed off the screen and having a snap animation.
|
|
844
|
-
*
|
|
845
|
-
* A workaround is to clone the footer element and append
|
|
846
|
-
* it outside of the wrapper element. This way, the footer
|
|
847
|
-
* is still visible and the drag can be done without
|
|
848
|
-
* flickering. The original footer is hidden until the modal
|
|
849
|
-
* is dismissed. This maintains the animation of the footer
|
|
850
|
-
* when the modal is dismissed.
|
|
851
|
-
*
|
|
852
|
-
* The workaround needs to be done before the animation starts
|
|
853
|
-
* so there are no flickering issues.
|
|
854
|
-
*/
|
|
855
|
-
const ionFooter = baseEl.querySelector('ion-footer');
|
|
856
|
-
/**
|
|
857
|
-
* This check is needed to prevent more than one footer
|
|
858
|
-
* from being appended to the shadow root.
|
|
859
|
-
* Otherwise, iOS and MD enter animations would append
|
|
860
|
-
* the footer twice.
|
|
861
|
-
*/
|
|
862
|
-
const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
|
|
863
|
-
if (ionFooter && !ionFooterAlreadyAppended) {
|
|
864
|
-
const footerHeight = ionFooter.clientHeight;
|
|
865
|
-
const clonedFooter = ionFooter.cloneNode(true);
|
|
866
|
-
baseEl.shadowRoot.appendChild(clonedFooter);
|
|
867
|
-
ionFooter.style.setProperty('display', 'none');
|
|
868
|
-
ionFooter.setAttribute('aria-hidden', 'true');
|
|
869
|
-
// Padding is added to prevent some content from being hidden.
|
|
870
|
-
const page = baseEl.querySelector('.ion-page');
|
|
871
|
-
page.style.setProperty('padding-bottom', `${footerHeight}px`);
|
|
872
|
-
}
|
|
873
|
-
});
|
|
874
|
-
if (contentAnimation) {
|
|
875
|
-
baseAnimation.addAnimation(contentAnimation);
|
|
876
|
-
}
|
|
877
|
-
return baseAnimation;
|
|
753
|
+
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
878
754
|
};
|
|
879
755
|
|
|
880
756
|
const createLeaveAnimation = () => {
|
|
@@ -889,41 +765,18 @@ const createLeaveAnimation = () => {
|
|
|
889
765
|
* Md Modal Leave Animation
|
|
890
766
|
*/
|
|
891
767
|
const mdLeaveAnimation = (baseEl, opts) => {
|
|
892
|
-
const { currentBreakpoint
|
|
768
|
+
const { currentBreakpoint } = opts;
|
|
893
769
|
const root = getElementRoot(baseEl);
|
|
894
770
|
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation();
|
|
895
771
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
896
772
|
wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
|
|
897
|
-
|
|
773
|
+
return createAnimation()
|
|
898
774
|
.easing('cubic-bezier(0.47,0,0.745,0.715)')
|
|
899
775
|
.duration(200)
|
|
900
|
-
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
901
|
-
.beforeAddWrite(() => {
|
|
902
|
-
if (expandToScroll) {
|
|
903
|
-
// Scroll can only be done when the modal is fully expanded.
|
|
904
|
-
return;
|
|
905
|
-
}
|
|
906
|
-
/**
|
|
907
|
-
* If expandToScroll is disabled, we need to swap
|
|
908
|
-
* the visibility to the original, so the footer
|
|
909
|
-
* dismisses with the modal and doesn't stay
|
|
910
|
-
* until the modal is removed from the DOM.
|
|
911
|
-
*/
|
|
912
|
-
const ionFooter = baseEl.querySelector('ion-footer');
|
|
913
|
-
if (ionFooter) {
|
|
914
|
-
const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
|
|
915
|
-
ionFooter.style.removeProperty('display');
|
|
916
|
-
ionFooter.removeAttribute('aria-hidden');
|
|
917
|
-
clonedFooter.style.setProperty('display', 'none');
|
|
918
|
-
clonedFooter.setAttribute('aria-hidden', 'true');
|
|
919
|
-
const page = baseEl.querySelector('.ion-page');
|
|
920
|
-
page.style.removeProperty('padding-bottom');
|
|
921
|
-
}
|
|
922
|
-
});
|
|
923
|
-
return baseAnimation;
|
|
776
|
+
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
924
777
|
};
|
|
925
778
|
|
|
926
|
-
const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [],
|
|
779
|
+
const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
|
|
927
780
|
// Defaults for the sheet swipe animation
|
|
928
781
|
const defaultBackdrop = [
|
|
929
782
|
{ offset: 0, opacity: 'var(--backdrop-opacity)' },
|
|
@@ -940,10 +793,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
940
793
|
{ offset: 1, transform: 'translateY(100%)' },
|
|
941
794
|
],
|
|
942
795
|
BACKDROP_KEYFRAMES: backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop,
|
|
943
|
-
CONTENT_KEYFRAMES: [
|
|
944
|
-
{ offset: 0, maxHeight: '100%' },
|
|
945
|
-
{ offset: 1, maxHeight: '0%' },
|
|
946
|
-
],
|
|
947
796
|
};
|
|
948
797
|
const contentEl = baseEl.querySelector('ion-content');
|
|
949
798
|
const height = wrapperEl.clientHeight;
|
|
@@ -951,11 +800,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
951
800
|
let offset = 0;
|
|
952
801
|
let canDismissBlocksGesture = false;
|
|
953
802
|
const canDismissMaxStep = 0.95;
|
|
954
|
-
const maxBreakpoint = breakpoints[breakpoints.length - 1];
|
|
955
|
-
const minBreakpoint = breakpoints[0];
|
|
956
803
|
const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
|
|
957
804
|
const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
|
|
958
|
-
const
|
|
805
|
+
const maxBreakpoint = breakpoints[breakpoints.length - 1];
|
|
806
|
+
const minBreakpoint = breakpoints[0];
|
|
959
807
|
const enableBackdrop = () => {
|
|
960
808
|
baseEl.style.setProperty('pointer-events', 'auto');
|
|
961
809
|
backdropEl.style.setProperty('pointer-events', 'auto');
|
|
@@ -978,31 +826,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
978
826
|
*/
|
|
979
827
|
baseEl.classList.add(FOCUS_TRAP_DISABLE_CLASS);
|
|
980
828
|
};
|
|
981
|
-
/**
|
|
982
|
-
* Toggles the visible modal footer when `expandToScroll` is disabled.
|
|
983
|
-
* @param footer The footer to show.
|
|
984
|
-
*/
|
|
985
|
-
const swapFooterVisibility = (footer) => {
|
|
986
|
-
const originalFooter = baseEl.querySelector('ion-footer');
|
|
987
|
-
if (!originalFooter) {
|
|
988
|
-
return;
|
|
989
|
-
}
|
|
990
|
-
const clonedFooter = wrapperEl.nextElementSibling;
|
|
991
|
-
const footerToHide = footer === 'original' ? clonedFooter : originalFooter;
|
|
992
|
-
const footerToShow = footer === 'original' ? originalFooter : clonedFooter;
|
|
993
|
-
footerToShow.style.removeProperty('display');
|
|
994
|
-
footerToShow.removeAttribute('aria-hidden');
|
|
995
|
-
const page = baseEl.querySelector('.ion-page');
|
|
996
|
-
if (footer === 'original') {
|
|
997
|
-
page.style.removeProperty('padding-bottom');
|
|
998
|
-
}
|
|
999
|
-
else {
|
|
1000
|
-
const pagePadding = footerToShow.clientHeight;
|
|
1001
|
-
page.style.setProperty('padding-bottom', `${pagePadding}px`);
|
|
1002
|
-
}
|
|
1003
|
-
footerToHide.style.setProperty('display', 'none');
|
|
1004
|
-
footerToHide.setAttribute('aria-hidden', 'true');
|
|
1005
|
-
};
|
|
1006
829
|
/**
|
|
1007
830
|
* After the entering animation completes,
|
|
1008
831
|
* we need to set the animation to go from
|
|
@@ -1014,7 +837,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1014
837
|
if (wrapperAnimation && backdropAnimation) {
|
|
1015
838
|
wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
|
|
1016
839
|
backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
|
|
1017
|
-
contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
|
|
1018
840
|
animation.progressStart(true, 1 - currentBreakpoint);
|
|
1019
841
|
/**
|
|
1020
842
|
* If backdrop is not enabled, then content
|
|
@@ -1031,7 +853,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1031
853
|
disableBackdrop();
|
|
1032
854
|
}
|
|
1033
855
|
}
|
|
1034
|
-
if (contentEl && currentBreakpoint !== maxBreakpoint
|
|
856
|
+
if (contentEl && currentBreakpoint !== maxBreakpoint) {
|
|
1035
857
|
contentEl.scrollY = false;
|
|
1036
858
|
}
|
|
1037
859
|
const canStart = (detail) => {
|
|
@@ -1045,14 +867,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1045
867
|
*/
|
|
1046
868
|
const contentEl = findClosestIonContent(detail.event.target);
|
|
1047
869
|
currentBreakpoint = getCurrentBreakpoint();
|
|
1048
|
-
/**
|
|
1049
|
-
* If `expandToScroll` is disabled, we should not allow the swipe gesture
|
|
1050
|
-
* to start if the content is not scrolled to the top.
|
|
1051
|
-
*/
|
|
1052
|
-
if (!expandToScroll && contentEl) {
|
|
1053
|
-
const scrollEl = isIonContent(contentEl) ? getElementRoot(contentEl).querySelector('.inner-scroll') : contentEl;
|
|
1054
|
-
return scrollEl.scrollTop === 0;
|
|
1055
|
-
}
|
|
1056
870
|
if (currentBreakpoint === 1 && contentEl) {
|
|
1057
871
|
/**
|
|
1058
872
|
* The modal should never swipe to close on the content with a refresher.
|
|
@@ -1083,15 +897,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1083
897
|
* Remove undefined check
|
|
1084
898
|
*/
|
|
1085
899
|
canDismissBlocksGesture = baseEl.canDismiss !== undefined && baseEl.canDismiss !== true && minBreakpoint === 0;
|
|
1086
|
-
/**
|
|
1087
|
-
* If expandToScroll is disabled, we need to swap
|
|
1088
|
-
* the footer visibility to the original, so if the modal
|
|
1089
|
-
* is dismissed, the footer dismisses with the modal
|
|
1090
|
-
* and doesn't stay on the screen after the modal is gone.
|
|
1091
|
-
*/
|
|
1092
|
-
if (!expandToScroll) {
|
|
1093
|
-
swapFooterVisibility('original');
|
|
1094
|
-
}
|
|
1095
900
|
/**
|
|
1096
901
|
* If we are pulling down, then it is possible we are pulling on the content.
|
|
1097
902
|
* We do not want scrolling to happen at the same time as the gesture.
|
|
@@ -1109,13 +914,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1109
914
|
animation.progressStart(true, 1 - currentBreakpoint);
|
|
1110
915
|
};
|
|
1111
916
|
const onMove = (detail) => {
|
|
1112
|
-
/**
|
|
1113
|
-
* If `expandToScroll` is disabled, we should not allow the swipe gesture
|
|
1114
|
-
* to continue if the gesture is not pulling down.
|
|
1115
|
-
*/
|
|
1116
|
-
if (!expandToScroll && detail.deltaY <= 0) {
|
|
1117
|
-
return;
|
|
1118
|
-
}
|
|
1119
917
|
/**
|
|
1120
918
|
* If we are pulling down, then it is possible we are pulling on the content.
|
|
1121
919
|
* We do not want scrolling to happen at the same time as the gesture.
|
|
@@ -1214,19 +1012,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1214
1012
|
opacity: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(snapToBreakpoint, backdropBreakpoint)})`,
|
|
1215
1013
|
},
|
|
1216
1014
|
]);
|
|
1217
|
-
if (contentAnimation) {
|
|
1218
|
-
/**
|
|
1219
|
-
* The modal content should scroll at any breakpoint when expandToScroll
|
|
1220
|
-
* is disabled. In order to do this, the content needs to be completely
|
|
1221
|
-
* viewable so scrolling can access everything. Otherwise, the default
|
|
1222
|
-
* behavior would show the content off the screen and only allow
|
|
1223
|
-
* scrolling when the sheet is fully expanded.
|
|
1224
|
-
*/
|
|
1225
|
-
contentAnimation.keyframes([
|
|
1226
|
-
{ offset: 0, maxHeight: `${(1 - breakpointOffset) * 100}%` },
|
|
1227
|
-
{ offset: 1, maxHeight: `${snapToBreakpoint * 100}%` },
|
|
1228
|
-
]);
|
|
1229
|
-
}
|
|
1230
1015
|
animation.progressStep(0);
|
|
1231
1016
|
}
|
|
1232
1017
|
/**
|
|
@@ -1234,14 +1019,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1234
1019
|
* snapping animation completes.
|
|
1235
1020
|
*/
|
|
1236
1021
|
gesture.enable(false);
|
|
1237
|
-
/**
|
|
1238
|
-
* If expandToScroll is disabled, we need to swap
|
|
1239
|
-
* the footer visibility to the cloned one so the footer
|
|
1240
|
-
* doesn't flicker when the sheet's height is animated.
|
|
1241
|
-
*/
|
|
1242
|
-
if (!expandToScroll && shouldRemainOpen) {
|
|
1243
|
-
swapFooterVisibility('cloned');
|
|
1244
|
-
}
|
|
1245
1022
|
if (shouldPreventDismiss) {
|
|
1246
1023
|
handleCanDismiss(baseEl, animation);
|
|
1247
1024
|
}
|
|
@@ -1249,13 +1026,13 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1249
1026
|
onDismiss();
|
|
1250
1027
|
}
|
|
1251
1028
|
/**
|
|
1252
|
-
*
|
|
1253
|
-
*
|
|
1254
|
-
*
|
|
1255
|
-
*
|
|
1256
|
-
* released, so we align with that
|
|
1029
|
+
* If the sheet is going to be fully expanded then we should enable
|
|
1030
|
+
* scrolling immediately. The sheet modal animation takes ~500ms to finish
|
|
1031
|
+
* so if we wait until then there is a visible delay for when scrolling is
|
|
1032
|
+
* re-enabled. Native iOS allows for scrolling on the sheet modal as soon
|
|
1033
|
+
* as the gesture is released, so we align with that.
|
|
1257
1034
|
*/
|
|
1258
|
-
if (contentEl &&
|
|
1035
|
+
if (contentEl && snapToBreakpoint === breakpoints[breakpoints.length - 1]) {
|
|
1259
1036
|
contentEl.scrollY = true;
|
|
1260
1037
|
}
|
|
1261
1038
|
return new Promise((resolve) => {
|
|
@@ -1273,7 +1050,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1273
1050
|
raf(() => {
|
|
1274
1051
|
wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
|
|
1275
1052
|
backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
|
|
1276
|
-
contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
|
|
1277
1053
|
animation.progressStart(true, 1 - snapToBreakpoint);
|
|
1278
1054
|
currentBreakpoint = snapToBreakpoint;
|
|
1279
1055
|
onBreakpointChange(currentBreakpoint);
|
|
@@ -1326,10 +1102,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
1326
1102
|
};
|
|
1327
1103
|
};
|
|
1328
1104
|
|
|
1329
|
-
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
|
|
1105
|
+
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}";
|
|
1330
1106
|
const IonModalIosStyle0 = modalIosCss;
|
|
1331
1107
|
|
|
1332
|
-
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
|
|
1108
|
+
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}";
|
|
1333
1109
|
const IonModalMdStyle0 = modalMdCss;
|
|
1334
1110
|
|
|
1335
1111
|
const Modal = /*@__PURE__*/ proxyCustomElement(class Modal extends HTMLElement {
|
|
@@ -1400,7 +1176,6 @@ const Modal = /*@__PURE__*/ proxyCustomElement(class Modal extends HTMLElement {
|
|
|
1400
1176
|
this.enterAnimation = undefined;
|
|
1401
1177
|
this.leaveAnimation = undefined;
|
|
1402
1178
|
this.breakpoints = undefined;
|
|
1403
|
-
this.expandToScroll = true;
|
|
1404
1179
|
this.initialBreakpoint = undefined;
|
|
1405
1180
|
this.backdropBreakpoint = 0;
|
|
1406
1181
|
this.handle = undefined;
|
|
@@ -1616,7 +1391,6 @@ const Modal = /*@__PURE__*/ proxyCustomElement(class Modal extends HTMLElement {
|
|
|
1616
1391
|
presentingEl: presentingElement,
|
|
1617
1392
|
currentBreakpoint: this.initialBreakpoint,
|
|
1618
1393
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
1619
|
-
expandToScroll: this.expandToScroll,
|
|
1620
1394
|
});
|
|
1621
1395
|
/* tslint:disable-next-line */
|
|
1622
1396
|
if (typeof window !== 'undefined') {
|
|
@@ -1667,10 +1441,7 @@ const Modal = /*@__PURE__*/ proxyCustomElement(class Modal extends HTMLElement {
|
|
|
1667
1441
|
// should be in the DOM and referenced by now, except
|
|
1668
1442
|
// for the presenting el
|
|
1669
1443
|
const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation);
|
|
1670
|
-
const ani = (this.animation = animationBuilder(el, {
|
|
1671
|
-
presentingEl: this.presentingElement,
|
|
1672
|
-
expandToScroll: this.expandToScroll,
|
|
1673
|
-
}));
|
|
1444
|
+
const ani = (this.animation = animationBuilder(el, { presentingEl: this.presentingElement }));
|
|
1674
1445
|
const contentEl = findIonContent(el);
|
|
1675
1446
|
if (!contentEl) {
|
|
1676
1447
|
printIonContentErrorMsg(el);
|
|
@@ -1715,10 +1486,9 @@ const Modal = /*@__PURE__*/ proxyCustomElement(class Modal extends HTMLElement {
|
|
|
1715
1486
|
presentingEl: this.presentingElement,
|
|
1716
1487
|
currentBreakpoint: initialBreakpoint,
|
|
1717
1488
|
backdropBreakpoint,
|
|
1718
|
-
expandToScroll: this.expandToScroll,
|
|
1719
1489
|
}));
|
|
1720
1490
|
ani.progressStart(true, 1);
|
|
1721
|
-
const { gesture, moveSheetToBreakpoint } = createSheetGesture(this.el, this.backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, ani, this.sortedBreakpoints,
|
|
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) => {
|
|
1722
1492
|
if (this.currentBreakpoint !== breakpoint) {
|
|
1723
1493
|
this.currentBreakpoint = breakpoint;
|
|
1724
1494
|
this.ionBreakpointDidChange.emit({ breakpoint });
|
|
@@ -1796,7 +1566,6 @@ const Modal = /*@__PURE__*/ proxyCustomElement(class Modal extends HTMLElement {
|
|
|
1796
1566
|
presentingEl: presentingElement,
|
|
1797
1567
|
currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
|
|
1798
1568
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
1799
|
-
expandToScroll: this.expandToScroll,
|
|
1800
1569
|
});
|
|
1801
1570
|
if (dismissed) {
|
|
1802
1571
|
const { delegate } = this.getDelegate();
|
|
@@ -1882,23 +1651,23 @@ const Modal = /*@__PURE__*/ proxyCustomElement(class Modal extends HTMLElement {
|
|
|
1882
1651
|
return true;
|
|
1883
1652
|
}
|
|
1884
1653
|
render() {
|
|
1885
|
-
const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap
|
|
1654
|
+
const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap } = this;
|
|
1886
1655
|
const showHandle = handle !== false && isSheetModal;
|
|
1887
1656
|
const mode = getIonMode(this);
|
|
1888
1657
|
const isCardModal = presentingElement !== undefined && mode === 'ios';
|
|
1889
1658
|
const isHandleCycle = handleBehavior === 'cycle';
|
|
1890
|
-
return (h(Host, Object.assign({ key: '
|
|
1659
|
+
return (h(Host, Object.assign({ key: 'b4da5111fe4719fa450c39b2d4bd884a302a7924', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
|
|
1891
1660
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
1892
|
-
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal,
|
|
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: 'c12dbf747e0eb914eaf1331798548ffc7e147763', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { key: 'da546ee80c6576b5acc66e959fd5009e0b9a8160', class: "modal-shadow" }), h("div", Object.assign({ key: '306ebe6427440ad5f7ed36d590e562d15a503b75',
|
|
1893
1662
|
/*
|
|
1894
1663
|
role and aria-modal must be used on the
|
|
1895
1664
|
same element. They must also be set inside the
|
|
1896
1665
|
shadow DOM otherwise ion-button will not be highlighted
|
|
1897
1666
|
when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
|
|
1898
1667
|
*/
|
|
1899
|
-
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: '
|
|
1668
|
+
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: 'c5d17e346fe255a7c0cacbbf15c0083f2d09c488', class: "modal-handle",
|
|
1900
1669
|
// Prevents the handle from receiving keyboard focus when it does not cycle
|
|
1901
|
-
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: '
|
|
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: '5cc714170a00b67f3eda0cd1d6f37c1489a99c83' }))));
|
|
1902
1671
|
}
|
|
1903
1672
|
get el() { return this; }
|
|
1904
1673
|
static get watchers() { return {
|
|
@@ -1917,7 +1686,6 @@ const Modal = /*@__PURE__*/ proxyCustomElement(class Modal extends HTMLElement {
|
|
|
1917
1686
|
"enterAnimation": [16],
|
|
1918
1687
|
"leaveAnimation": [16],
|
|
1919
1688
|
"breakpoints": [16],
|
|
1920
|
-
"expandToScroll": [4, "expand-to-scroll"],
|
|
1921
1689
|
"initialBreakpoint": [2, "initial-breakpoint"],
|
|
1922
1690
|
"backdropBreakpoint": [2, "backdrop-breakpoint"],
|
|
1923
1691
|
"handle": [4],
|
|
@@ -86,10 +86,10 @@ const PickerColumnOption = /*@__PURE__*/ proxyCustomElement(class PickerColumnOp
|
|
|
86
86
|
render() {
|
|
87
87
|
const { color, disabled, ariaLabel } = this;
|
|
88
88
|
const mode = getIonMode(this);
|
|
89
|
-
return (h(Host, { key: '
|
|
89
|
+
return (h(Host, { key: 'c743c6ef44bb9f765cc15b3b5d2864de6520203a', class: createColorClasses(color, {
|
|
90
90
|
[mode]: true,
|
|
91
91
|
['option-disabled']: disabled,
|
|
92
|
-
}) }, h("button", { key: '
|
|
92
|
+
}) }, h("button", { key: '4c3d9eb245c52b2c007f727e145cfb55759bd7a9', tabindex: "-1", "aria-label": ariaLabel, disabled: disabled, onClick: () => this.onClick() }, h("slot", { key: '4c907d2187cbe9d5941e27f2b12578e2b7271461' }))));
|
|
93
93
|
}
|
|
94
94
|
get el() { return this; }
|
|
95
95
|
static get watchers() { return {
|
|
@@ -343,9 +343,9 @@ const PickerColumnCmp = /*@__PURE__*/ proxyCustomElement(class PickerColumnCmp e
|
|
|
343
343
|
render() {
|
|
344
344
|
const col = this.col;
|
|
345
345
|
const mode = getIonMode(this);
|
|
346
|
-
return (h(Host, { key: '
|
|
346
|
+
return (h(Host, { key: 'c015eb8bc01b3287cbd1d71af0aa311b6be89d36', class: Object.assign({ [mode]: true, 'picker-col': true, 'picker-opts-left': this.col.align === 'left', 'picker-opts-right': this.col.align === 'right' }, getClassMap(col.cssClass)), style: {
|
|
347
347
|
'max-width': this.col.columnWidth,
|
|
348
|
-
} }, col.prefix && (h("div", { key: '
|
|
348
|
+
} }, col.prefix && (h("div", { key: 'f9de3fe2f5c7ad3256d6e5f44b6d03a2b1f96ffb', class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), h("div", { key: '10f9c12aa174f96c7cf9adc30efbb26695c0aa64', class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (h("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (h("div", { key: '1d9c0892ce56e0da9044c79eb953827166f5190b', class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
|
|
349
349
|
}
|
|
350
350
|
get el() { return this; }
|
|
351
351
|
static get watchers() { return {
|
package/components/popover.js
CHANGED
|
@@ -1294,9 +1294,9 @@ const Popover = /*@__PURE__*/ proxyCustomElement(class Popover extends HTMLEleme
|
|
|
1294
1294
|
const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
|
|
1295
1295
|
const desktop = isPlatform('desktop');
|
|
1296
1296
|
const enableArrow = arrow && !parentPopover;
|
|
1297
|
-
return (h(Host, Object.assign({ key: '
|
|
1297
|
+
return (h(Host, Object.assign({ key: 'ffe8b37c9ffb5cac210a7307e6cdfcf78712905b', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
|
|
1298
1298
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
1299
|
-
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && h("ion-backdrop", { key: '
|
|
1299
|
+
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && h("ion-backdrop", { key: '12b3ffa3928b4d56a4f09c3d2f5d493d47b45255', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: '2c2862d5c7e75b637973c712b4982bf4978c0cdf', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { key: '0cfacc52afaa7abc28c1b7742889d7a1c23a37ad', class: "popover-arrow", part: "arrow" }), h("div", { key: '3ef570c44d4fe7f063dd419008c92c8c40d3cd22', class: "popover-content", part: "content" }, h("slot", { key: '6fc5dfdce20fee1642bc1f05d41b5bf7d1034457' })))));
|
|
1300
1300
|
}
|
|
1301
1301
|
get el() { return this; }
|
|
1302
1302
|
static get watchers() { return {
|