@ionic/core 8.4.4-dev.11741384305.15abf5ef → 8.4.4-dev.11741632207.1cb10db6
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 +4 -30
- package/components/checkbox.js +6 -4
- package/components/helpers.js +1 -7
- package/components/index6.js +11 -3
- package/components/index9.js +1 -1
- package/components/ion-input.js +2 -2
- 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 +6 -28
- 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 +3 -3
- 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 -4
- 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 +4 -4
- package/components/ion-thumbnail.js +1 -1
- package/components/ion-toast.js +2 -2
- package/components/ion-toggle.js +6 -4
- package/components/ionic-global.js +1 -2
- package/components/label.js +2 -2
- package/components/list-header.js +2 -2
- package/components/modal.js +259 -35
- package/components/picker-column-option.js +2 -2
- package/components/picker-column2.js +2 -2
- package/components/popover.js +2 -2
- package/components/radio-group.js +39 -2
- package/components/radio.js +3 -3
- package/components/ripple-effect.js +1 -1
- package/components/select-modal.js +1 -1
- package/components/select-popover.js +1 -1
- package/components/spinner.js +1 -1
- package/components/title.js +2 -2
- package/components/toolbar.js +2 -2
- package/css/core.css.map +1 -1
- package/css/ionic.bundle.css.map +1 -1
- package/dist/cjs/{app-globals-4283fe37.js → app-globals-21afee77.js} +1 -1
- package/dist/cjs/{data-21dc0f81.js → data-108e531d.js} +1 -1
- package/dist/cjs/{framework-delegate-c4f2ba04.js → framework-delegate-05579976.js} +1 -1
- package/dist/cjs/{hardware-back-button-f2cbbdce.js → hardware-back-button-9e8a2c4f.js} +1 -1
- package/dist/cjs/{helpers-b14a0f09.js → helpers-4be3f90d.js} +0 -7
- package/dist/cjs/{index-1248dbd7.js → index-0ff61d0b.js} +4 -4
- package/dist/cjs/{index-4e37257d.js → index-26bb7e42.js} +5 -5
- package/dist/cjs/{index-5915f9b3.js → index-2a46a047.js} +11 -3
- package/dist/cjs/{index-a4a74252.js → index-6770fc00.js} +2 -2
- package/dist/cjs/{index-786364c7.js → index-ad7a712e.js} +1 -1
- package/dist/cjs/index.cjs.js +10 -10
- package/dist/cjs/{input-shims-b4c0eee7.js → input-shims-fd997b01.js} +5 -3
- package/dist/cjs/{input.utils-4af208ab.js → input.utils-c15a1814.js} +2 -2
- package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-action-sheet.cjs.entry.js +6 -6
- package/dist/cjs/ion-alert.cjs.entry.js +10 -36
- package/dist/cjs/ion-app_8.cjs.entry.js +17 -17
- package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
- package/dist/cjs/ion-backdrop.cjs.entry.js +1 -1
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-button_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-card_5.cjs.entry.js +2 -2
- package/dist/cjs/ion-checkbox.cjs.entry.js +7 -6
- package/dist/cjs/ion-chip.cjs.entry.js +1 -1
- package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-datetime-button.cjs.entry.js +4 -4
- package/dist/cjs/ion-datetime_3.cjs.entry.js +11 -11
- package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-img.cjs.entry.js +2 -2
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +2 -2
- package/dist/cjs/ion-input.cjs.entry.js +7 -7
- package/dist/cjs/ion-item-option_3.cjs.entry.js +8 -8
- package/dist/cjs/ion-item_8.cjs.entry.js +13 -13
- package/dist/cjs/ion-loading.cjs.entry.js +8 -8
- package/dist/cjs/ion-menu_3.cjs.entry.js +13 -13
- package/dist/cjs/ion-modal.cjs.entry.js +266 -43
- package/dist/cjs/ion-nav_2.cjs.entry.js +8 -8
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +4 -4
- package/dist/cjs/ion-picker-column.cjs.entry.js +2 -2
- package/dist/cjs/ion-picker.cjs.entry.js +1 -1
- package/dist/cjs/ion-popover.cjs.entry.js +9 -9
- package/dist/cjs/ion-progress-bar.cjs.entry.js +3 -3
- package/dist/cjs/ion-radio_2.cjs.entry.js +41 -6
- package/dist/cjs/ion-range.cjs.entry.js +9 -30
- package/dist/cjs/ion-refresher_2.cjs.entry.js +6 -6
- package/dist/cjs/ion-reorder_2.cjs.entry.js +6 -6
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
- package/dist/cjs/ion-route_4.cjs.entry.js +4 -4
- package/dist/cjs/ion-searchbar.cjs.entry.js +6 -6
- 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 +6 -6
- package/dist/cjs/ion-select-modal.cjs.entry.js +7 -7
- package/dist/cjs/ion-select_3.cjs.entry.js +14 -13
- package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
- package/dist/cjs/ion-split-pane.cjs.entry.js +3 -3
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +6 -6
- package/dist/cjs/ion-tab_2.cjs.entry.js +5 -5
- package/dist/cjs/ion-text.cjs.entry.js +3 -3
- package/dist/cjs/ion-textarea.cjs.entry.js +9 -9
- package/dist/cjs/ion-toast.cjs.entry.js +8 -8
- package/dist/cjs/ion-toggle.cjs.entry.js +7 -6
- package/dist/cjs/{ionic-global-96da1b2e.js → ionic-global-d9a8bb5b.js} +1 -2
- package/dist/cjs/ionic.cjs.js +3 -3
- package/dist/cjs/{ios.transition-8d363d77.js → ios.transition-a4f35c55.js} +4 -4
- package/dist/cjs/loader.cjs.js +3 -3
- package/dist/cjs/{md.transition-57d695fa.js → md.transition-cdf904e6.js} +4 -4
- package/dist/cjs/{notch-controller-bd07748b.js → notch-controller-a0c464d1.js} +1 -1
- package/dist/cjs/{overlays-27703a30.js → overlays-86695cf1.js} +5 -5
- package/dist/cjs/{status-tap-654077ee.js → status-tap-1a2485c1.js} +4 -3
- package/dist/cjs/{swipe-back-b70cd52e.js → swipe-back-47a52b83.js} +1 -1
- package/dist/collection/components/alert/alert.js +4 -34
- package/dist/collection/components/checkbox/checkbox.js +23 -4
- package/dist/collection/components/input/input.ios.css +3 -2
- 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 +79 -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 +6 -25
- 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.js +23 -4
- package/dist/collection/components/select-modal/select-modal.js +1 -1
- package/dist/collection/components/select-option/select-option.js +1 -1
- package/dist/collection/components/select-popover/select-popover.js +1 -1
- package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
- package/dist/collection/components/spinner/spinner.js +1 -1
- package/dist/collection/components/split-pane/split-pane.js +2 -2
- package/dist/collection/components/tab/tab.js +2 -2
- package/dist/collection/components/tab-bar/tab-bar.js +2 -2
- package/dist/collection/components/tab-button/tab-button.js +2 -2
- package/dist/collection/components/tabs/tabs.js +1 -1
- package/dist/collection/components/text/text.js +2 -2
- package/dist/collection/components/textarea/textarea.ios.css +3 -2
- package/dist/collection/components/textarea/textarea.js +2 -2
- 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.js +23 -4
- package/dist/collection/components/toolbar/toolbar.js +6 -2
- package/dist/collection/utils/floating-point/index.js +0 -5
- package/dist/collection/utils/helpers.js +0 -6
- package/dist/collection/utils/logging/index.js +10 -3
- package/dist/collection/utils/platform.js +1 -2
- package/dist/collection/utils/test/platform.utils.js +1 -1
- package/dist/docs.json +163 -6
- package/dist/esm/{app-globals-c10a1137.js → app-globals-5dbb61a5.js} +1 -1
- package/dist/esm/{data-ae11fd43.js → data-b3284b5e.js} +1 -1
- package/dist/esm/{framework-delegate-42bc40b1.js → framework-delegate-f683816e.js} +1 -1
- package/dist/esm/{hardware-back-button-44195e92.js → hardware-back-button-06ef3c3e.js} +1 -1
- package/dist/esm/{helpers-13b816c6.js → helpers-9b49d7d2.js} +1 -7
- package/dist/esm/{index-28c8fd64.js → index-5a0f5fd0.js} +1 -1
- package/dist/esm/{index-4b39521b.js → index-6a5baab0.js} +5 -5
- package/dist/esm/{index-9b0d46f4.js → index-6ad967f3.js} +11 -3
- package/dist/esm/{index-6b548278.js → index-7105cd59.js} +4 -4
- package/dist/esm/{index-edf58462.js → index-dd0f7395.js} +2 -2
- package/dist/esm/index.js +10 -10
- package/dist/esm/{input-shims-5e5e47e8.js → input-shims-dff819a9.js} +5 -3
- package/dist/esm/{input.utils-d3717b00.js → input.utils-2f1029cf.js} +2 -2
- package/dist/esm/ion-accordion_2.entry.js +3 -3
- package/dist/esm/ion-action-sheet.entry.js +6 -6
- package/dist/esm/ion-alert.entry.js +10 -36
- package/dist/esm/ion-app_8.entry.js +17 -17
- package/dist/esm/ion-avatar_3.entry.js +2 -2
- package/dist/esm/ion-back-button.entry.js +2 -2
- package/dist/esm/ion-backdrop.entry.js +1 -1
- package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
- package/dist/esm/ion-button_2.entry.js +3 -3
- package/dist/esm/ion-card_5.entry.js +2 -2
- package/dist/esm/ion-checkbox.entry.js +7 -6
- package/dist/esm/ion-chip.entry.js +1 -1
- package/dist/esm/ion-col_3.entry.js +2 -2
- package/dist/esm/ion-datetime-button.entry.js +4 -4
- package/dist/esm/ion-datetime_3.entry.js +11 -11
- package/dist/esm/ion-fab_3.entry.js +2 -2
- package/dist/esm/ion-img.entry.js +2 -2
- package/dist/esm/ion-infinite-scroll_2.entry.js +4 -4
- package/dist/esm/ion-input-password-toggle.entry.js +2 -2
- package/dist/esm/ion-input.entry.js +7 -7
- package/dist/esm/ion-item-option_3.entry.js +8 -8
- package/dist/esm/ion-item_8.entry.js +13 -13
- package/dist/esm/ion-loading.entry.js +8 -8
- package/dist/esm/ion-menu_3.entry.js +13 -13
- package/dist/esm/ion-modal.entry.js +266 -43
- package/dist/esm/ion-nav_2.entry.js +8 -8
- package/dist/esm/ion-picker-column-option.entry.js +4 -4
- package/dist/esm/ion-picker-column.entry.js +2 -2
- package/dist/esm/ion-picker.entry.js +1 -1
- package/dist/esm/ion-popover.entry.js +9 -9
- package/dist/esm/ion-progress-bar.entry.js +3 -3
- package/dist/esm/ion-radio_2.entry.js +41 -6
- package/dist/esm/ion-range.entry.js +9 -30
- package/dist/esm/ion-refresher_2.entry.js +6 -6
- package/dist/esm/ion-reorder_2.entry.js +6 -6
- package/dist/esm/ion-ripple-effect.entry.js +2 -2
- package/dist/esm/ion-route_4.entry.js +4 -4
- package/dist/esm/ion-searchbar.entry.js +6 -6
- 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 +6 -6
- package/dist/esm/ion-select-modal.entry.js +7 -7
- package/dist/esm/ion-select_3.entry.js +14 -13
- package/dist/esm/ion-spinner.entry.js +2 -2
- package/dist/esm/ion-split-pane.entry.js +3 -3
- package/dist/esm/ion-tab-bar_2.entry.js +6 -6
- package/dist/esm/ion-tab_2.entry.js +5 -5
- package/dist/esm/ion-text.entry.js +3 -3
- package/dist/esm/ion-textarea.entry.js +9 -9
- package/dist/esm/ion-toast.entry.js +8 -8
- package/dist/esm/ion-toggle.entry.js +7 -6
- package/dist/esm/{ionic-global-bf78a847.js → ionic-global-c81d82ab.js} +1 -2
- package/dist/esm/ionic.js +3 -3
- package/dist/esm/{ios.transition-e7a4de4f.js → ios.transition-314468a2.js} +4 -4
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{md.transition-290d8802.js → md.transition-a560e0e2.js} +4 -4
- package/dist/esm/{notch-controller-bb8f3a48.js → notch-controller-3dc61260.js} +1 -1
- package/dist/esm/{overlays-4ff6e618.js → overlays-9a81f230.js} +5 -5
- package/dist/esm/{status-tap-ba401484.js → status-tap-d07dbc82.js} +4 -3
- package/dist/esm/{swipe-back-a258b011.js → swipe-back-23ee7ab1.js} +1 -1
- package/dist/esm-es5/app-globals-5dbb61a5.js +4 -0
- package/dist/esm-es5/{data-ae11fd43.js → data-b3284b5e.js} +1 -1
- package/dist/esm-es5/{framework-delegate-42bc40b1.js → framework-delegate-f683816e.js} +1 -1
- package/dist/esm-es5/{hardware-back-button-44195e92.js → hardware-back-button-06ef3c3e.js} +1 -1
- package/dist/esm-es5/{helpers-13b816c6.js → helpers-9b49d7d2.js} +1 -1
- package/dist/esm-es5/{index-28c8fd64.js → index-5a0f5fd0.js} +1 -1
- package/dist/esm-es5/{index-4b39521b.js → index-6a5baab0.js} +1 -1
- package/dist/esm-es5/index-6ad967f3.js +4 -0
- package/dist/esm-es5/{index-6b548278.js → index-7105cd59.js} +1 -1
- package/dist/esm-es5/{index-edf58462.js → index-dd0f7395.js} +1 -1
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/input-shims-dff819a9.js +4 -0
- package/dist/esm-es5/{input.utils-d3717b00.js → input.utils-2f1029cf.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-bf78a847.js → ionic-global-c81d82ab.js} +1 -1
- package/dist/esm-es5/ionic.js +1 -1
- package/dist/esm-es5/{ios.transition-e7a4de4f.js → ios.transition-314468a2.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/md.transition-a560e0e2.js +4 -0
- package/dist/esm-es5/{notch-controller-bb8f3a48.js → notch-controller-3dc61260.js} +1 -1
- package/dist/esm-es5/{overlays-4ff6e618.js → overlays-9a81f230.js} +1 -1
- package/dist/esm-es5/status-tap-d07dbc82.js +4 -0
- package/dist/esm-es5/{swipe-back-a258b011.js → swipe-back-23ee7ab1.js} +1 -1
- package/dist/html.html-data.json +24 -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-04b4ee62.entry.js +4 -0
- package/dist/ionic/p-0574e87e.js +4 -0
- package/dist/ionic/{p-64bb1da1.system.js → p-058e61eb.system.js} +1 -1
- package/dist/ionic/{p-91b944fa.entry.js → p-0609cf64.entry.js} +1 -1
- package/dist/ionic/{p-4a98a017.system.entry.js → p-0eb2553a.system.entry.js} +1 -1
- package/dist/ionic/{p-213b12ce.system.entry.js → p-1283c4fa.system.entry.js} +1 -1
- package/dist/ionic/p-155f4d90.entry.js +4 -0
- package/dist/ionic/p-16960598.entry.js +4 -0
- package/dist/ionic/{p-7a9407cc.system.entry.js → p-18e101b7.system.entry.js} +2 -2
- package/dist/ionic/{p-d60342e3.js → p-1a5bc5f7.js} +1 -1
- package/dist/ionic/{p-85b1ffae.entry.js → p-1c934892.entry.js} +1 -1
- package/dist/ionic/p-1f405274.js +4 -0
- package/dist/ionic/{p-ae02a7ea.system.entry.js → p-1f9fa897.system.entry.js} +1 -1
- package/dist/ionic/p-21227121.js +4 -0
- package/dist/ionic/{p-a69cf9ea.entry.js → p-21c7f006.entry.js} +1 -1
- package/dist/ionic/p-22149a4f.js +4 -0
- package/dist/ionic/{p-8c0d81a9.entry.js → p-29c6c783.entry.js} +1 -1
- package/dist/ionic/{p-17c772fb.entry.js → p-2abc5389.entry.js} +1 -1
- package/dist/ionic/{p-3559bd4f.js → p-2bc73fb5.js} +1 -1
- package/dist/ionic/p-2c9eb774.system.js +4 -0
- package/dist/ionic/p-2cd35dd9.entry.js +4 -0
- package/dist/ionic/{p-42a9bb35.entry.js → p-2d1d8a25.entry.js} +1 -1
- package/dist/ionic/p-322c5fb4.system.js +4 -0
- package/dist/ionic/{p-c66604e4.entry.js → p-33a8a71b.entry.js} +1 -1
- package/dist/ionic/{p-f687573e.system.js → p-343b6b1d.system.js} +1 -1
- package/dist/ionic/{p-5ae70860.js → p-346b2baf.js} +1 -1
- package/dist/ionic/p-3624eb4f.entry.js +4 -0
- package/dist/ionic/{p-eab9414f.entry.js → p-36c448fe.entry.js} +1 -1
- package/dist/ionic/{p-166f4ba0.entry.js → p-3731296e.entry.js} +1 -1
- package/dist/ionic/{p-5d1be985.js → p-39dd4f62.js} +1 -1
- package/dist/ionic/{p-8911101b.system.js → p-3c8e5c23.system.js} +1 -1
- package/dist/ionic/p-3e6be709.entry.js +4 -0
- package/dist/ionic/{p-f5a536e1.system.js → p-4452a8ac.system.js} +1 -1
- package/dist/ionic/{p-fd2c0aa6.entry.js → p-462ddb40.entry.js} +1 -1
- package/dist/ionic/{p-e3be9fa8.system.entry.js → p-484d855b.system.entry.js} +2 -2
- package/dist/ionic/{p-5e9733d0.entry.js → p-4a1d747d.entry.js} +1 -1
- package/dist/ionic/p-4a25618e.system.entry.js +4 -0
- package/dist/ionic/{p-1f62c30b.entry.js → p-4ad78edc.entry.js} +1 -1
- package/dist/ionic/{p-ffb6d30e.js → p-4d3a5f86.js} +1 -1
- package/dist/ionic/{p-e4c1fd74.system.entry.js → p-4f8e2c0a.system.entry.js} +1 -1
- package/dist/ionic/{p-52b61cba.system.js → p-5126cf1e.system.js} +1 -1
- package/dist/ionic/p-52245809.js +4 -0
- package/dist/ionic/p-5733b3de.system.entry.js +4 -0
- package/dist/ionic/{p-6a649fcd.system.js → p-578efda4.system.js} +2 -2
- package/dist/ionic/p-5c9324c6.js +4 -0
- package/dist/ionic/{p-424eb140.system.entry.js → p-5cc9314d.system.entry.js} +1 -1
- package/dist/ionic/{p-9c7efe25.system.entry.js → p-5fce0c0b.system.entry.js} +1 -1
- package/dist/ionic/{p-feab8373.system.entry.js → p-60e2b91f.system.entry.js} +2 -2
- package/dist/ionic/{p-6347c733.system.entry.js → p-648f5e38.system.entry.js} +1 -1
- package/dist/ionic/{p-ac2c154f.system.entry.js → p-655723eb.system.entry.js} +1 -1
- package/dist/ionic/p-665c22ee.entry.js +4 -0
- package/dist/ionic/p-67222c16.system.js +4 -0
- package/dist/ionic/{p-486dc46d.system.entry.js → p-68c5fcd6.system.entry.js} +1 -1
- package/dist/ionic/{p-136ff13e.entry.js → p-6ca64f4e.entry.js} +1 -1
- package/dist/ionic/{p-fced06e0.entry.js → p-6e077659.entry.js} +1 -1
- package/dist/ionic/{p-13637707.entry.js → p-70af0afb.entry.js} +1 -1
- package/dist/ionic/p-712fedc9.entry.js +4 -0
- package/dist/ionic/{p-f8ef15ba.system.entry.js → p-73262d9e.system.entry.js} +1 -1
- package/dist/ionic/{p-0116e7d7.system.js → p-73897169.system.js} +1 -1
- package/dist/ionic/{p-712b57f9.system.entry.js → p-744b2484.system.entry.js} +1 -1
- package/dist/ionic/p-75544514.system.entry.js +4 -0
- package/dist/ionic/{p-48e13807.system.entry.js → p-75cc5913.system.entry.js} +1 -1
- package/dist/ionic/{p-37a21d70.entry.js → p-78604c34.entry.js} +1 -1
- package/dist/ionic/{p-bc148b43.system.entry.js → p-78c884a1.system.entry.js} +1 -1
- package/dist/ionic/{p-89e678fa.js → p-7a1766d6.js} +1 -1
- package/dist/ionic/{p-16799667.system.entry.js → p-7af3d1e8.system.entry.js} +1 -1
- package/dist/ionic/p-7b02a0e4.entry.js +4 -0
- package/dist/ionic/{p-1b2657c9.system.entry.js → p-7c3b0a9b.system.entry.js} +1 -1
- package/dist/ionic/{p-31918ee1.entry.js → p-826a2aaf.entry.js} +1 -1
- package/dist/ionic/{p-e0a2abde.system.entry.js → p-84d08aae.system.entry.js} +1 -1
- package/dist/ionic/{p-c09a2f58.system.js → p-860eb968.system.js} +1 -1
- package/dist/ionic/{p-5996d3ad.system.entry.js → p-88d323cd.system.entry.js} +1 -1
- package/dist/ionic/{p-ebd0a280.entry.js → p-89bf08c7.entry.js} +1 -1
- package/dist/ionic/{p-830f1a37.system.entry.js → p-8cfba7e9.system.entry.js} +1 -1
- package/dist/ionic/{p-bba0bc47.system.js → p-8e407469.system.js} +1 -1
- package/dist/ionic/{p-e84da6cb.system.entry.js → p-8f2fe279.system.entry.js} +1 -1
- package/dist/ionic/p-8f4361a8.system.entry.js +4 -0
- package/dist/ionic/{p-8f89c8e3.entry.js → p-955c3eb8.entry.js} +1 -1
- package/dist/ionic/{p-f6e7870b.system.js → p-95da3ae2.system.js} +1 -1
- package/dist/ionic/{p-230af7f2.js → p-990630ca.js} +1 -1
- package/dist/ionic/p-9a100adc.entry.js +4 -0
- package/dist/ionic/{p-34182275.entry.js → p-9b3bb24e.entry.js} +1 -1
- package/dist/ionic/{p-eb4ac14d.system.js → p-9f3008d4.system.js} +1 -1
- package/dist/ionic/p-9f763f14.entry.js +4 -0
- package/dist/ionic/{p-a8d31cd5.entry.js → p-a309ca1c.entry.js} +1 -1
- package/dist/ionic/p-a43ad5b5.entry.js +4 -0
- package/dist/ionic/{p-d86d7845.system.js → p-a69b9fc5.system.js} +1 -1
- package/dist/ionic/{p-c3a51c19.system.entry.js → p-a6cf686b.system.entry.js} +1 -1
- package/dist/ionic/{p-c55254f0.system.entry.js → p-a9e24ae2.system.entry.js} +1 -1
- package/dist/ionic/{p-d6b3e734.system.entry.js → p-a9eda6d0.system.entry.js} +1 -1
- package/dist/ionic/{p-d7607262.system.js → p-acb30a5c.system.js} +1 -1
- package/dist/ionic/{p-361ab803.system.entry.js → p-acc8399c.system.entry.js} +2 -2
- package/dist/ionic/{p-45109533.system.entry.js → p-ad10b555.system.entry.js} +1 -1
- package/dist/ionic/{p-953d9cf5.system.js → p-af452fa4.system.js} +1 -1
- package/dist/ionic/{p-b533b7ab.system.entry.js → p-af744710.system.entry.js} +1 -1
- package/dist/ionic/{p-026517fb.entry.js → p-b1f885df.entry.js} +1 -1
- package/dist/ionic/{p-8aa290af.system.js → p-b3680e2f.system.js} +1 -1
- package/dist/ionic/{p-ee41045b.system.entry.js → p-b3c4ddc2.system.entry.js} +1 -1
- package/dist/ionic/p-b93144e1.entry.js +4 -0
- package/dist/ionic/p-b936eb7e.system.entry.js +4 -0
- package/dist/ionic/p-ba3f918e.entry.js +4 -0
- package/dist/ionic/{p-6eb35904.js → p-bb11d9fb.js} +1 -1
- package/dist/ionic/{p-00d5ab83.entry.js → p-bb2a6761.entry.js} +1 -1
- package/dist/ionic/{p-327b452e.entry.js → p-bc616455.entry.js} +1 -1
- package/dist/ionic/{p-9d4a8059.entry.js → p-bdad26e3.entry.js} +1 -1
- package/dist/ionic/{p-56a8aa85.entry.js → p-bf63d4b2.entry.js} +1 -1
- package/dist/ionic/{p-6c85db7e.system.entry.js → p-c1dbc8b6.system.entry.js} +2 -2
- package/dist/ionic/p-c3802319.system.js +4 -0
- package/dist/ionic/{p-43df2d06.system.entry.js → p-c59abcb6.system.entry.js} +2 -2
- package/dist/ionic/{p-ca5eef42.entry.js → p-c67ded77.entry.js} +1 -1
- package/dist/ionic/{p-a4b108a7.entry.js → p-c8d645b3.entry.js} +1 -1
- package/dist/ionic/{p-07d0478c.js → p-c935cfc9.js} +1 -1
- package/dist/ionic/{p-5d3dc32b.system.entry.js → p-ca7b5bec.system.entry.js} +1 -1
- package/dist/ionic/{p-b566749e.js → p-d4ca0475.js} +1 -1
- package/dist/ionic/{p-e25cd3c7.js → p-d743e981.js} +1 -1
- package/dist/ionic/{p-80f2a47b.entry.js → p-d7bb5325.entry.js} +1 -1
- package/dist/ionic/{p-364ed29d.system.entry.js → p-d821466d.system.entry.js} +1 -1
- package/dist/ionic/{p-733f53f8.system.js → p-d99e8644.system.js} +1 -1
- package/dist/ionic/{p-05f90810.system.entry.js → p-da8ef548.system.entry.js} +1 -1
- package/dist/ionic/{p-de4fef3c.system.entry.js → p-dc146a2a.system.entry.js} +1 -1
- package/dist/ionic/{p-25580c85.system.entry.js → p-dd0c9350.system.entry.js} +1 -1
- package/dist/ionic/{p-c06312bf.entry.js → p-dde1e5b8.entry.js} +1 -1
- package/dist/ionic/{p-d785235b.system.entry.js → p-e06861a9.system.entry.js} +1 -1
- package/dist/ionic/{p-a873feda.system.entry.js → p-e0a6dc45.system.entry.js} +1 -1
- package/dist/ionic/{p-0793353d.system.entry.js → p-e32557bb.system.entry.js} +1 -1
- package/dist/ionic/{p-cc991f05.entry.js → p-e5ed3da9.entry.js} +1 -1
- package/dist/ionic/p-e75b0c87.entry.js +4 -0
- package/dist/ionic/p-e8d56122.js +4 -0
- package/dist/ionic/{p-441c2c8c.entry.js → p-e8f34871.entry.js} +1 -1
- package/dist/ionic/{p-4eed0eb2.system.entry.js → p-e9ddf8fe.system.entry.js} +1 -1
- package/dist/ionic/{p-6f3d8334.js → p-ecceeb90.js} +1 -1
- package/dist/ionic/{p-73dc4950.entry.js → p-f2a72b24.entry.js} +1 -1
- package/dist/ionic/{p-d854f4bc.system.entry.js → p-f2fb9a7b.system.entry.js} +1 -1
- package/dist/ionic/{p-478dfa8c.system.entry.js → p-f3102647.system.entry.js} +1 -1
- package/dist/ionic/{p-379d9002.entry.js → p-f5d6624d.entry.js} +1 -1
- package/dist/ionic/{p-c3de6cd1.system.entry.js → p-f89cf011.system.entry.js} +1 -1
- package/dist/ionic/{p-d4896d36.system.entry.js → p-f8e37d24.system.entry.js} +1 -1
- package/dist/ionic/{p-3fe95571.system.entry.js → p-fa210a45.system.entry.js} +1 -1
- package/dist/ionic/p-fbf86e62.system.js +4 -0
- package/dist/ionic/{p-16dd9c9b.entry.js → p-fca17935.entry.js} +1 -1
- package/dist/ionic/{p-d7fef52e.system.entry.js → p-fd4e25b5.system.entry.js} +1 -1
- package/dist/ionic/{p-c2583512.entry.js → p-fd6cff12.entry.js} +1 -1
- package/dist/types/components/checkbox/checkbox.d.ts +6 -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 +11 -0
- package/dist/types/components/radio-group/radio-group.d.ts +15 -0
- package/dist/types/components/range/range.d.ts +2 -3
- package/dist/types/components/select/select.d.ts +6 -0
- package/dist/types/components/toggle/toggle.d.ts +6 -0
- package/dist/types/components/toolbar/toolbar.d.ts +4 -0
- package/dist/types/components.d.ts +48 -0
- package/dist/types/utils/config.d.ts +9 -0
- package/dist/types/utils/helpers.d.ts +0 -4
- package/dist/types/utils/logging/index.d.ts +13 -1
- package/dist/types/utils/native/capacitor.d.ts +1 -7
- package/dist/types/utils/test/platform.utils.d.ts +1 -1
- package/hydrate/index.js +424 -201
- package/hydrate/index.mjs +424 -201
- package/package.json +5 -5
- package/dist/esm-es5/app-globals-c10a1137.js +0 -4
- package/dist/esm-es5/index-9b0d46f4.js +0 -4
- package/dist/esm-es5/input-shims-5e5e47e8.js +0 -4
- package/dist/esm-es5/md.transition-290d8802.js +0 -4
- package/dist/esm-es5/status-tap-ba401484.js +0 -4
- package/dist/ionic/p-06078f9d.entry.js +0 -4
- package/dist/ionic/p-06fee233.js +0 -4
- package/dist/ionic/p-14be4015.entry.js +0 -4
- package/dist/ionic/p-30ec5574.entry.js +0 -4
- package/dist/ionic/p-37264dcc.entry.js +0 -4
- package/dist/ionic/p-4075165f.js +0 -4
- package/dist/ionic/p-4133f9ec.entry.js +0 -4
- package/dist/ionic/p-4429e8c5.entry.js +0 -4
- package/dist/ionic/p-47ed8b64.entry.js +0 -4
- package/dist/ionic/p-4e8946f7.js +0 -4
- package/dist/ionic/p-51d4cdba.system.js +0 -4
- package/dist/ionic/p-665f9987.entry.js +0 -4
- package/dist/ionic/p-8b367303.entry.js +0 -4
- package/dist/ionic/p-8f3d6be8.entry.js +0 -4
- package/dist/ionic/p-9e23592d.system.js +0 -4
- package/dist/ionic/p-a749d4a9.entry.js +0 -4
- package/dist/ionic/p-acb5a6e4.entry.js +0 -4
- package/dist/ionic/p-b1c4a9db.js +0 -4
- package/dist/ionic/p-b58057d4.js +0 -4
- package/dist/ionic/p-b5a10c8b.system.entry.js +0 -4
- package/dist/ionic/p-b6ee3fc7.system.entry.js +0 -4
- package/dist/ionic/p-c312ea08.entry.js +0 -4
- package/dist/ionic/p-c42a4dad.system.entry.js +0 -4
- package/dist/ionic/p-cbeb0dd2.system.entry.js +0 -4
- package/dist/ionic/p-e03cd18a.system.entry.js +0 -4
- package/dist/ionic/p-e03d645e.entry.js +0 -4
- package/dist/ionic/p-ebb85488.entry.js +0 -4
- package/dist/ionic/p-efa8edbc.system.js +0 -4
- package/dist/ionic/p-f1bbc785.js +0 -4
- package/dist/ionic/p-f4f255cb.system.js +0 -4
- package/dist/ionic/p-f6fe87c1.js +0 -4
- package/dist/ionic/p-ff4b7e40.system.js +0 -4
|
@@ -72,7 +72,6 @@ export class Alert {
|
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
74
|
onKeydown(ev) {
|
|
75
|
-
var _a;
|
|
76
75
|
const inputTypes = new Set(this.processedInputs.map((i) => i.type));
|
|
77
76
|
/**
|
|
78
77
|
* Based on keyboard navigation requirements, the
|
|
@@ -82,17 +81,6 @@ export class Alert {
|
|
|
82
81
|
ev.preventDefault();
|
|
83
82
|
return;
|
|
84
83
|
}
|
|
85
|
-
/**
|
|
86
|
-
* Ensure when alert container is being focused, and the user presses the tab + shift keys, the focus will be set to the last alert button.
|
|
87
|
-
*/
|
|
88
|
-
if (ev.target.classList.contains('alert-wrapper')) {
|
|
89
|
-
if (ev.key === 'Tab' && ev.shiftKey) {
|
|
90
|
-
ev.preventDefault();
|
|
91
|
-
const lastChildBtn = (_a = this.wrapperEl) === null || _a === void 0 ? void 0 : _a.querySelector('.alert-button:last-child');
|
|
92
|
-
lastChildBtn.focus();
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
84
|
// The only inputs we want to navigate between using arrow keys are the radios
|
|
97
85
|
// ignore the keydown event if it is not on a radio button
|
|
98
86
|
if (!inputTypes.has('radio') ||
|
|
@@ -224,21 +212,7 @@ export class Alert {
|
|
|
224
212
|
async present() {
|
|
225
213
|
const unlock = await this.lockController.lock();
|
|
226
214
|
await this.delegateController.attachViewToDom();
|
|
227
|
-
await present(this, 'alertEnter', iosEnterAnimation, mdEnterAnimation)
|
|
228
|
-
var _a, _b;
|
|
229
|
-
/**
|
|
230
|
-
* Check if alert has only one button and no inputs.
|
|
231
|
-
* If so, then focus on the button. Otherwise, focus the alert wrapper.
|
|
232
|
-
* This will map to the default native alert behavior.
|
|
233
|
-
*/
|
|
234
|
-
if (this.buttons.length === 1 && this.inputs.length === 0) {
|
|
235
|
-
const queryBtn = (_a = this.wrapperEl) === null || _a === void 0 ? void 0 : _a.querySelector('.alert-button');
|
|
236
|
-
queryBtn.focus();
|
|
237
|
-
}
|
|
238
|
-
else {
|
|
239
|
-
(_b = this.wrapperEl) === null || _b === void 0 ? void 0 : _b.focus();
|
|
240
|
-
}
|
|
241
|
-
});
|
|
215
|
+
await present(this, 'alertEnter', iosEnterAnimation, mdEnterAnimation);
|
|
242
216
|
unlock();
|
|
243
217
|
}
|
|
244
218
|
/**
|
|
@@ -412,8 +386,8 @@ export class Alert {
|
|
|
412
386
|
const { overlayIndex, header, subHeader, message, htmlAttributes } = this;
|
|
413
387
|
const mode = getIonMode(this);
|
|
414
388
|
const hdrId = `alert-${overlayIndex}-hdr`;
|
|
415
|
-
const msgId = `alert-${overlayIndex}-msg`;
|
|
416
389
|
const subHdrId = `alert-${overlayIndex}-sub-hdr`;
|
|
390
|
+
const msgId = `alert-${overlayIndex}-msg`;
|
|
417
391
|
const role = this.inputs.length > 0 || this.buttons.length > 0 ? 'alertdialog' : 'alert';
|
|
418
392
|
/**
|
|
419
393
|
* Use both the header and subHeader ids if they are defined.
|
|
@@ -422,9 +396,9 @@ export class Alert {
|
|
|
422
396
|
* If neither are defined, do not set aria-labelledby.
|
|
423
397
|
*/
|
|
424
398
|
const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
|
|
425
|
-
return (h(Host, { key: '
|
|
399
|
+
return (h(Host, Object.assign({ key: 'ad7e14b4f92a09387aa80abfb718a755e4e889d6', role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "-1" }, htmlAttributes, { style: {
|
|
426
400
|
zIndex: `${20000 + overlayIndex}`,
|
|
427
|
-
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, h("ion-backdrop", { key: '
|
|
401
|
+
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), h("ion-backdrop", { key: '4b4693dca3c910aa9a61c4d90295d785ec6cbe3d', tappable: this.backdropDismiss }), h("div", { key: '64fd19b8f1d8246dcc869053f858bc33506def4b', tabindex: "0", "aria-hidden": "true" }), h("div", { key: 'e61ba6f339c3a02cecd37d8b641ee5043018eb29', class: "alert-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, h("div", { key: '044e00667ffcb74aa2c5e0d0b42669c4004dbb4f', class: "alert-head" }, header && (h("h2", { key: '1aaae8d58722c4cf5debb1f00415ab7ed0a52bbd', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (h("h2", { key: '9c9854dc3b0ad40f1861a49b76d5636afcae9c74', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (h("h3", { key: '19aaca9912f77cde4ae8079be210eda697ed8de1', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), h("div", { key: 'a85d27c516f7cdbc85b19f40d2f0bd865490b6a7', tabindex: "0", "aria-hidden": "true" })));
|
|
428
402
|
}
|
|
429
403
|
static get is() { return "ion-alert"; }
|
|
430
404
|
static get encapsulation() { return "scoped"; }
|
|
@@ -948,10 +922,6 @@ export class Alert {
|
|
|
948
922
|
"Promise": {
|
|
949
923
|
"location": "global",
|
|
950
924
|
"id": "global::Promise"
|
|
951
|
-
},
|
|
952
|
-
"HTMLButtonElement": {
|
|
953
|
-
"location": "global",
|
|
954
|
-
"id": "global::HTMLButtonElement"
|
|
955
925
|
}
|
|
956
926
|
},
|
|
957
927
|
"return": "Promise<void>"
|
|
@@ -58,6 +58,7 @@ export class Checkbox {
|
|
|
58
58
|
this.labelPlacement = 'start';
|
|
59
59
|
this.justify = undefined;
|
|
60
60
|
this.alignment = undefined;
|
|
61
|
+
this.required = false;
|
|
61
62
|
}
|
|
62
63
|
componentWillLoad() {
|
|
63
64
|
this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
|
|
@@ -69,11 +70,11 @@ export class Checkbox {
|
|
|
69
70
|
}
|
|
70
71
|
}
|
|
71
72
|
render() {
|
|
72
|
-
const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, } = this;
|
|
73
|
+
const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, required, } = this;
|
|
73
74
|
const mode = getIonMode(this);
|
|
74
75
|
const path = getSVGPath(mode, indeterminate);
|
|
75
76
|
renderHiddenInput(true, el, name, checked ? value : '', disabled);
|
|
76
|
-
return (h(Host, { key: '
|
|
77
|
+
return (h(Host, { key: '07a5884062dd256b570e856270c74a5a09d2f2a5', "aria-checked": indeterminate ? 'mixed' : `${checked}`, class: createColorClasses(color, {
|
|
77
78
|
[mode]: true,
|
|
78
79
|
'in-item': hostContext('ion-item', el),
|
|
79
80
|
'checkbox-checked': checked,
|
|
@@ -83,10 +84,10 @@ export class Checkbox {
|
|
|
83
84
|
[`checkbox-justify-${justify}`]: justify !== undefined,
|
|
84
85
|
[`checkbox-alignment-${alignment}`]: alignment !== undefined,
|
|
85
86
|
[`checkbox-label-placement-${labelPlacement}`]: true,
|
|
86
|
-
}), onClick: this.onClick }, h("label", { key: '
|
|
87
|
+
}), onClick: this.onClick }, h("label", { key: '3439d546e8b60187421db698eab63a0bdd31c973', class: "checkbox-wrapper" }, h("input", Object.assign({ key: '9f45cf7dbdedcf01ec132c11e16979adb1aa102f', type: "checkbox", checked: checked ? true : undefined, disabled: disabled, id: inputId, onChange: this.toggleChecked, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl), required: required }, inheritedAttributes)), h("div", { key: '4e882f98939cc4b7c7ab7459c751d3f4bb2023fe', class: {
|
|
87
88
|
'label-text-wrapper': true,
|
|
88
89
|
'label-text-wrapper-hidden': el.textContent === '',
|
|
89
|
-
}, part: "label" }, h("slot", { key: '
|
|
90
|
+
}, part: "label" }, h("slot", { key: '0abda81297a086d02c4a56af75005547971dfcfe' })), h("div", { key: '36489ea3f48a7d0ec46b77c243f9f253ef5c2b3b', class: "native-wrapper" }, h("svg", { key: '4c53b52f5e93752672a34eb6f180b75fa9af9046', class: "checkbox-icon", viewBox: "0 0 24 24", part: "container" }, path)))));
|
|
90
91
|
}
|
|
91
92
|
getSVGPath(mode, indeterminate) {
|
|
92
93
|
let path = indeterminate ? (h("path", { d: "M6 12L18 12", part: "mark" })) : (h("path", { d: "M5.9,12.5l3.8,3.8l8.8-8.8", part: "mark" }));
|
|
@@ -275,6 +276,24 @@ export class Checkbox {
|
|
|
275
276
|
},
|
|
276
277
|
"attribute": "alignment",
|
|
277
278
|
"reflect": false
|
|
279
|
+
},
|
|
280
|
+
"required": {
|
|
281
|
+
"type": "boolean",
|
|
282
|
+
"mutable": false,
|
|
283
|
+
"complexType": {
|
|
284
|
+
"original": "boolean",
|
|
285
|
+
"resolved": "boolean",
|
|
286
|
+
"references": {}
|
|
287
|
+
},
|
|
288
|
+
"required": false,
|
|
289
|
+
"optional": false,
|
|
290
|
+
"docs": {
|
|
291
|
+
"tags": [],
|
|
292
|
+
"text": "If true, screen readers will announce it as a required field. This property\nworks only for accessibility purposes, it will not prevent the form from\nsubmitting if the value is invalid."
|
|
293
|
+
},
|
|
294
|
+
"attribute": "required",
|
|
295
|
+
"reflect": false,
|
|
296
|
+
"defaultValue": "false"
|
|
278
297
|
}
|
|
279
298
|
};
|
|
280
299
|
}
|
|
@@ -311,6 +311,7 @@
|
|
|
311
311
|
justify-content: space-between;
|
|
312
312
|
border-top: var(--border-width) var(--border-style) var(--border-color);
|
|
313
313
|
font-size: 0.75rem;
|
|
314
|
+
white-space: normal;
|
|
314
315
|
}
|
|
315
316
|
|
|
316
317
|
/**
|
|
@@ -340,7 +341,7 @@
|
|
|
340
341
|
|
|
341
342
|
.input-bottom .helper-text {
|
|
342
343
|
display: block;
|
|
343
|
-
color: var(--ion-color-step-
|
|
344
|
+
color: var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));
|
|
344
345
|
}
|
|
345
346
|
|
|
346
347
|
:host(.ion-touched.ion-invalid) .input-bottom .error-text {
|
|
@@ -359,7 +360,7 @@
|
|
|
359
360
|
*/
|
|
360
361
|
-webkit-margin-start: auto;
|
|
361
362
|
margin-inline-start: auto;
|
|
362
|
-
color: var(--ion-color-step-
|
|
363
|
+
color: var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));
|
|
363
364
|
white-space: nowrap;
|
|
364
365
|
padding-inline-start: 16px;
|
|
365
366
|
}
|
|
@@ -311,6 +311,7 @@
|
|
|
311
311
|
justify-content: space-between;
|
|
312
312
|
border-top: var(--border-width) var(--border-style) var(--border-color);
|
|
313
313
|
font-size: 0.75rem;
|
|
314
|
+
white-space: normal;
|
|
314
315
|
}
|
|
315
316
|
|
|
316
317
|
/**
|
|
@@ -340,7 +341,7 @@
|
|
|
340
341
|
|
|
341
342
|
.input-bottom .helper-text {
|
|
342
343
|
display: block;
|
|
343
|
-
color: var(--ion-color-step-
|
|
344
|
+
color: var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));
|
|
344
345
|
}
|
|
345
346
|
|
|
346
347
|
:host(.ion-touched.ion-invalid) .input-bottom .error-text {
|
|
@@ -359,7 +360,7 @@
|
|
|
359
360
|
*/
|
|
360
361
|
-webkit-margin-start: auto;
|
|
361
362
|
margin-inline-start: auto;
|
|
362
|
-
color: var(--ion-color-step-
|
|
363
|
+
color: var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));
|
|
363
364
|
white-space: nowrap;
|
|
364
365
|
padding-inline-start: 16px;
|
|
365
366
|
}
|
|
@@ -799,6 +800,10 @@
|
|
|
799
800
|
--border-color: var(--highlight-color);
|
|
800
801
|
}
|
|
801
802
|
|
|
803
|
+
/**
|
|
804
|
+
* The bottom content should never have
|
|
805
|
+
* a border with the solid style.
|
|
806
|
+
*/
|
|
802
807
|
:host(.input-fill-solid) .input-bottom {
|
|
803
808
|
border-top: none;
|
|
804
809
|
}
|
|
@@ -18,11 +18,11 @@ export class ItemDivider {
|
|
|
18
18
|
}
|
|
19
19
|
render() {
|
|
20
20
|
const mode = getIonMode(this);
|
|
21
|
-
return (h(Host, { key: '
|
|
21
|
+
return (h(Host, { key: '7150b1a3a881c3c312db40821acb9830c2885ccf', class: createColorClasses(this.color, {
|
|
22
22
|
[mode]: true,
|
|
23
23
|
'item-divider-sticky': this.sticky,
|
|
24
24
|
item: true,
|
|
25
|
-
}) }, h("slot", { key: '
|
|
25
|
+
}) }, h("slot", { key: '6e9d9615f475392a81177bc49b4b01dbdab67925', name: "start" }), h("div", { key: '12fe6b840ad1a1897cc34529e488207b2df448f7', class: "item-divider-inner" }, h("div", { key: '626776a8c9887dd2df5ecf3b7861beb742b41e03', class: "item-divider-wrapper" }, h("slot", { key: '90379dd99914e24ae45c9571c8d390f9b6622fd4' })), h("slot", { key: '105644332c08530155b9cd8e8c6fa9e332072a63', name: "end" }))));
|
|
26
26
|
}
|
|
27
27
|
static get is() { return "ion-item-divider"; }
|
|
28
28
|
static get encapsulation() { return "shadow"; }
|
|
@@ -6,7 +6,7 @@ import { getIonMode } from "../../global/ionic-global";
|
|
|
6
6
|
export class ItemGroup {
|
|
7
7
|
render() {
|
|
8
8
|
const mode = getIonMode(this);
|
|
9
|
-
return (h(Host, { key: '
|
|
9
|
+
return (h(Host, { key: 'de2a969ed0dda880bc560a325848b28d0287fdb9', role: "group", class: {
|
|
10
10
|
[mode]: true,
|
|
11
11
|
// Used internally for styling
|
|
12
12
|
[`item-group-${mode}`]: true,
|
|
@@ -44,12 +44,12 @@ export class ItemOption {
|
|
|
44
44
|
href: this.href,
|
|
45
45
|
target: this.target,
|
|
46
46
|
};
|
|
47
|
-
return (h(Host, { key: '
|
|
47
|
+
return (h(Host, { key: '1b7708dd178dc2c9280652ca3da38c84ba7b767f', onClick: this.onClick, class: createColorClasses(this.color, {
|
|
48
48
|
[mode]: true,
|
|
49
49
|
'item-option-disabled': disabled,
|
|
50
50
|
'item-option-expandable': expandable,
|
|
51
51
|
'ion-activatable': true,
|
|
52
|
-
}) }, h(TagType, Object.assign({ key: '
|
|
52
|
+
}) }, h(TagType, Object.assign({ key: 'd9f899f5425ad6b97071494485aa3ca90bc89d30' }, attrs, { class: "button-native", part: "native", disabled: disabled }), h("span", { key: 'adc2cf72b4363be9b9eeb3584723e2bfc862af20', class: "button-inner" }, h("slot", { key: 'e668fe8e655a74e6a35e979e0cd488506b962dbf', name: "top" }), h("div", { key: '2ddcdb92b6b19c3cc549a7aee2400d1a6eeb51f1', class: "horizontal-wrapper" }, h("slot", { key: '441f13df18b72e5ed6bb51b157722e065b5847d2', name: "start" }), h("slot", { key: '425d815874b49e1628880160d7175ed3ca36ca39', name: "icon-only" }), h("slot", { key: '27437d3fa3365b12bc030704e18481fdfb14aebb' }), h("slot", { key: 'bd39330771c7f85c6df10f7f9050335ee7f14ff0', name: "end" })), h("slot", { key: '440cb6dc7743d50b261d4bf61d2c24e24b89e58c', name: "bottom" })), mode === 'md' && h("ion-ripple-effect", { key: '29632941464bbb34551cf64961187643f62bf755' }))));
|
|
53
53
|
}
|
|
54
54
|
static get is() { return "ion-item-option"; }
|
|
55
55
|
static get encapsulation() { return "shadow"; }
|
|
@@ -17,7 +17,7 @@ export class ItemOptions {
|
|
|
17
17
|
render() {
|
|
18
18
|
const mode = getIonMode(this);
|
|
19
19
|
const isEnd = isEndSide(this.side);
|
|
20
|
-
return (h(Host, { key: '
|
|
20
|
+
return (h(Host, { key: '7df4b71547524bf359c48e1b40ccbc44e850f632', class: {
|
|
21
21
|
[mode]: true,
|
|
22
22
|
// Used internally for styling
|
|
23
23
|
[`item-options-${mode}`]: true,
|
|
@@ -386,7 +386,7 @@ export class ItemSliding {
|
|
|
386
386
|
}
|
|
387
387
|
render() {
|
|
388
388
|
const mode = getIonMode(this);
|
|
389
|
-
return (h(Host, { key: '
|
|
389
|
+
return (h(Host, { key: '22f83febcbc1bc27e4ddbd7fcbe590de60a10e89', class: {
|
|
390
390
|
[mode]: true,
|
|
391
391
|
'item-sliding-active-slide': this.state !== 2 /* SlidingState.Disabled */,
|
|
392
392
|
'item-sliding-active-options-end': (this.state & 8 /* SlidingState.End */) !== 0,
|
|
@@ -55,13 +55,13 @@ export class Label {
|
|
|
55
55
|
render() {
|
|
56
56
|
const position = this.position;
|
|
57
57
|
const mode = getIonMode(this);
|
|
58
|
-
return (h(Host, { key: '
|
|
58
|
+
return (h(Host, { key: '4da84c95351a74b547f8224ecfa66924d21398c5', class: createColorClasses(this.color, {
|
|
59
59
|
[mode]: true,
|
|
60
60
|
'in-item-color': hostContext('ion-item.ion-color', this.el),
|
|
61
61
|
[`label-${position}`]: position !== undefined,
|
|
62
62
|
[`label-no-animate`]: this.noAnimate,
|
|
63
63
|
'label-rtl': document.dir === 'rtl',
|
|
64
|
-
}) }, h("slot", { key: '
|
|
64
|
+
}) }, h("slot", { key: 'ea158ebb620275e5492965234d0ab925d391f919' })));
|
|
65
65
|
}
|
|
66
66
|
static get is() { return "ion-label"; }
|
|
67
67
|
static get encapsulation() { return "scoped"; }
|
|
@@ -15,10 +15,10 @@ export class ListHeader {
|
|
|
15
15
|
render() {
|
|
16
16
|
const { lines } = this;
|
|
17
17
|
const mode = getIonMode(this);
|
|
18
|
-
return (h(Host, { key: '
|
|
18
|
+
return (h(Host, { key: '95ce2135e2b1ad4d7d6020b0fb9bc6e02b3c0851', class: createColorClasses(this.color, {
|
|
19
19
|
[mode]: true,
|
|
20
20
|
[`list-header-lines-${lines}`]: lines !== undefined,
|
|
21
|
-
}) }, h("div", { key: '
|
|
21
|
+
}) }, h("div", { key: '3065b0a094bc31a90518898a5126a813c8a33816', class: "list-header-inner" }, h("slot", { key: 'fe15c87d7867f3e5d8185645c49c0228496697b8' }))));
|
|
22
22
|
}
|
|
23
23
|
static get is() { return "ion-list-header"; }
|
|
24
24
|
static get encapsulation() { return "shadow"; }
|
|
@@ -161,9 +161,9 @@ export class Loading {
|
|
|
161
161
|
* Otherwise, don't set aria-labelledby.
|
|
162
162
|
*/
|
|
163
163
|
const ariaLabelledBy = message !== undefined ? msgId : null;
|
|
164
|
-
return (h(Host, Object.assign({ key: '
|
|
164
|
+
return (h(Host, Object.assign({ key: 'd6066c8b56b1fe4b597a243a7dab191ef0d21286', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
|
|
165
165
|
zIndex: `${40000 + this.overlayIndex}`,
|
|
166
|
-
}, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), h("ion-backdrop", { key: '
|
|
166
|
+
}, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), h("ion-backdrop", { key: '2431eda00a2a3f510f5dfc39b7c7d47c056dfa3d', visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { key: 'cf210aaf5e754e4eccdb49cf7ead4647b3f9b2d1', tabindex: "0", "aria-hidden": "true" }), h("div", { key: 'fa9375143d391656d70e181d25b952c77c2fc6ec', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (h("div", { key: '8e4a4ed994f7f62df86b03696ac95162df41f52d', class: "loading-spinner" }, h("ion-spinner", { key: 'e5b323c272d365853ba92bd211e390b4fd4751d2', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), h("div", { key: 'cae35ec8c34800477bff3ebcec8010e632158233', tabindex: "0", "aria-hidden": "true" })));
|
|
167
167
|
}
|
|
168
168
|
static get is() { return "ion-loading"; }
|
|
169
169
|
static get encapsulation() { return "scoped"; }
|
|
@@ -614,14 +614,14 @@ export class Menu {
|
|
|
614
614
|
* the ionBackButton listener in the menu controller
|
|
615
615
|
* will handle closing the menu when Escape is pressed.
|
|
616
616
|
*/
|
|
617
|
-
return (h(Host, { key: '
|
|
617
|
+
return (h(Host, { key: '342db8551d26604128b29b21d2d8c37593972ed9', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
|
|
618
618
|
[mode]: true,
|
|
619
619
|
[`menu-type-${type}`]: true,
|
|
620
620
|
'menu-enabled': !disabled,
|
|
621
621
|
[`menu-side-${side}`]: true,
|
|
622
622
|
'menu-pane-visible': isPaneVisible,
|
|
623
623
|
'split-pane-side': hostContext('ion-split-pane', el),
|
|
624
|
-
} }, h("div", { key: '
|
|
624
|
+
} }, h("div", { key: '3c9bec2862b7fb9d88de66b1600be01f6735e3dd', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, h("slot", { key: '76283b4b2a65c78646f92c3b273eea021eda499c' })), h("ion-backdrop", { key: '121c395bc4873542a1b6ae2c9e23f2e881e75d93', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
|
|
625
625
|
}
|
|
626
626
|
static get is() { return "ion-menu"; }
|
|
627
627
|
static get encapsulation() { return "shadow"; }
|
|
@@ -46,7 +46,7 @@ export class MenuButton {
|
|
|
46
46
|
type: this.type,
|
|
47
47
|
};
|
|
48
48
|
const ariaLabel = inheritedAttributes['aria-label'] || 'menu';
|
|
49
|
-
return (h(Host, { key: '
|
|
49
|
+
return (h(Host, { key: '3cde3704f28eb275f4a5ff2985bbb68c1024e79c', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses(color, {
|
|
50
50
|
[mode]: true,
|
|
51
51
|
button: true, // ion-buttons target .button
|
|
52
52
|
'menu-button-hidden': hidden,
|
|
@@ -55,7 +55,7 @@ export class MenuButton {
|
|
|
55
55
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
56
56
|
'ion-activatable': true,
|
|
57
57
|
'ion-focusable': true,
|
|
58
|
-
}) }, h("button", Object.assign({ key: '
|
|
58
|
+
}) }, h("button", Object.assign({ key: 'a02a3374288bd1759b6e352ada8eab0d45c6422f' }, attrs, { disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }), h("span", { key: 'ba699f2277a4e7b27ce5e42faeefc53d8805bb43', class: "button-inner" }, h("slot", { key: '829fe6cbdeb173f50d1a670389d1565baa6273e4' }, h("ion-icon", { key: 'a9a9f7b8dcffc648a8429fe0adbe766869de72fd', part: "icon", icon: menuIcon, mode: mode, lazy: false, "aria-hidden": "true" }))), mode === 'md' && h("ion-ripple-effect", { key: '48deca9a771a249f2fc76eaa8b9741c8d66d8355', type: "unbounded" }))));
|
|
59
59
|
}
|
|
60
60
|
static get is() { return "ion-menu-button"; }
|
|
61
61
|
static get encapsulation() { return "shadow"; }
|
|
@@ -26,10 +26,10 @@ export class MenuToggle {
|
|
|
26
26
|
render() {
|
|
27
27
|
const mode = getIonMode(this);
|
|
28
28
|
const hidden = this.autoHide && !this.visible;
|
|
29
|
-
return (h(Host, { key: '
|
|
29
|
+
return (h(Host, { key: '88e88fa13ac7f10ba3acfe378bd11cda0c7e2749', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
|
|
30
30
|
[mode]: true,
|
|
31
31
|
'menu-toggle-hidden': hidden,
|
|
32
|
-
} }, h("slot", { key: '
|
|
32
|
+
} }, h("slot", { key: '0a14c7b63eda64702d2fd1b4bc7db4809892842d' })));
|
|
33
33
|
}
|
|
34
34
|
static get is() { return "ion-menu-toggle"; }
|
|
35
35
|
static get encapsulation() { return "shadow"; }
|
|
@@ -13,22 +13,68 @@ const createEnterAnimation = () => {
|
|
|
13
13
|
})
|
|
14
14
|
.afterClearStyles(['pointer-events']);
|
|
15
15
|
const wrapperAnimation = createAnimation().fromTo('transform', 'translateY(100vh)', 'translateY(0vh)');
|
|
16
|
-
return { backdropAnimation, wrapperAnimation };
|
|
16
|
+
return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
|
|
17
17
|
};
|
|
18
18
|
/**
|
|
19
19
|
* iOS Modal Enter Animation for the Card presentation style
|
|
20
20
|
*/
|
|
21
21
|
export const iosEnterAnimation = (baseEl, opts) => {
|
|
22
|
-
const { presentingEl, currentBreakpoint } = opts;
|
|
22
|
+
const { presentingEl, currentBreakpoint, expandToScroll } = opts;
|
|
23
23
|
const root = getElementRoot(baseEl);
|
|
24
|
-
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
|
|
24
|
+
const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
|
|
25
25
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
26
26
|
wrapperAnimation.addElement(root.querySelectorAll('.modal-wrapper, .modal-shadow')).beforeStyles({ opacity: 1 });
|
|
27
|
+
// The content animation is only added if scrolling is enabled for
|
|
28
|
+
// all the breakpoints.
|
|
29
|
+
!expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
|
|
27
30
|
const baseAnimation = createAnimation('entering-base')
|
|
28
31
|
.addElement(baseEl)
|
|
29
32
|
.easing('cubic-bezier(0.32,0.72,0,1)')
|
|
30
33
|
.duration(500)
|
|
31
|
-
.addAnimation(wrapperAnimation)
|
|
34
|
+
.addAnimation([wrapperAnimation])
|
|
35
|
+
.beforeAddWrite(() => {
|
|
36
|
+
if (expandToScroll) {
|
|
37
|
+
// Scroll can only be done when the modal is fully expanded.
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* There are some browsers that causes flickering when
|
|
42
|
+
* dragging the content when scroll is enabled at every
|
|
43
|
+
* breakpoint. This is due to the wrapper element being
|
|
44
|
+
* transformed off the screen and having a snap animation.
|
|
45
|
+
*
|
|
46
|
+
* A workaround is to clone the footer element and append
|
|
47
|
+
* it outside of the wrapper element. This way, the footer
|
|
48
|
+
* is still visible and the drag can be done without
|
|
49
|
+
* flickering. The original footer is hidden until the modal
|
|
50
|
+
* is dismissed. This maintains the animation of the footer
|
|
51
|
+
* when the modal is dismissed.
|
|
52
|
+
*
|
|
53
|
+
* The workaround needs to be done before the animation starts
|
|
54
|
+
* so there are no flickering issues.
|
|
55
|
+
*/
|
|
56
|
+
const ionFooter = baseEl.querySelector('ion-footer');
|
|
57
|
+
/**
|
|
58
|
+
* This check is needed to prevent more than one footer
|
|
59
|
+
* from being appended to the shadow root.
|
|
60
|
+
* Otherwise, iOS and MD enter animations would append
|
|
61
|
+
* the footer twice.
|
|
62
|
+
*/
|
|
63
|
+
const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
|
|
64
|
+
if (ionFooter && !ionFooterAlreadyAppended) {
|
|
65
|
+
const footerHeight = ionFooter.clientHeight;
|
|
66
|
+
const clonedFooter = ionFooter.cloneNode(true);
|
|
67
|
+
baseEl.shadowRoot.appendChild(clonedFooter);
|
|
68
|
+
ionFooter.style.setProperty('display', 'none');
|
|
69
|
+
ionFooter.setAttribute('aria-hidden', 'true');
|
|
70
|
+
// Padding is added to prevent some content from being hidden.
|
|
71
|
+
const page = baseEl.querySelector('.ion-page');
|
|
72
|
+
page.style.setProperty('padding-bottom', `${footerHeight}px`);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
if (contentAnimation) {
|
|
76
|
+
baseAnimation.addAnimation(contentAnimation);
|
|
77
|
+
}
|
|
32
78
|
if (presentingEl) {
|
|
33
79
|
const isMobile = window.innerWidth < 768;
|
|
34
80
|
const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
|
|
@@ -14,7 +14,7 @@ const createLeaveAnimation = () => {
|
|
|
14
14
|
* iOS Modal Leave Animation
|
|
15
15
|
*/
|
|
16
16
|
export const iosLeaveAnimation = (baseEl, opts, duration = 500) => {
|
|
17
|
-
const { presentingEl, currentBreakpoint } = opts;
|
|
17
|
+
const { presentingEl, currentBreakpoint, expandToScroll } = opts;
|
|
18
18
|
const root = getElementRoot(baseEl);
|
|
19
19
|
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation();
|
|
20
20
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
@@ -23,7 +23,29 @@ export const iosLeaveAnimation = (baseEl, opts, duration = 500) => {
|
|
|
23
23
|
.addElement(baseEl)
|
|
24
24
|
.easing('cubic-bezier(0.32,0.72,0,1)')
|
|
25
25
|
.duration(duration)
|
|
26
|
-
.addAnimation(wrapperAnimation)
|
|
26
|
+
.addAnimation(wrapperAnimation)
|
|
27
|
+
.beforeAddWrite(() => {
|
|
28
|
+
if (expandToScroll) {
|
|
29
|
+
// Scroll can only be done when the modal is fully expanded.
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* If expandToScroll is disabled, we need to swap
|
|
34
|
+
* the visibility to the original, so the footer
|
|
35
|
+
* dismisses with the modal and doesn't stay
|
|
36
|
+
* until the modal is removed from the DOM.
|
|
37
|
+
*/
|
|
38
|
+
const ionFooter = baseEl.querySelector('ion-footer');
|
|
39
|
+
if (ionFooter) {
|
|
40
|
+
const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
|
|
41
|
+
ionFooter.style.removeProperty('display');
|
|
42
|
+
ionFooter.removeAttribute('aria-hidden');
|
|
43
|
+
clonedFooter.style.setProperty('display', 'none');
|
|
44
|
+
clonedFooter.setAttribute('aria-hidden', 'true');
|
|
45
|
+
const page = baseEl.querySelector('.ion-page');
|
|
46
|
+
page.style.removeProperty('padding-bottom');
|
|
47
|
+
}
|
|
48
|
+
});
|
|
27
49
|
if (presentingEl) {
|
|
28
50
|
const isMobile = window.innerWidth < 768;
|
|
29
51
|
const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
|
|
@@ -15,20 +15,67 @@ const createEnterAnimation = () => {
|
|
|
15
15
|
{ offset: 0, opacity: 0.01, transform: 'translateY(40px)' },
|
|
16
16
|
{ offset: 1, opacity: 1, transform: `translateY(0px)` },
|
|
17
17
|
]);
|
|
18
|
-
return { backdropAnimation, wrapperAnimation };
|
|
18
|
+
return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
|
|
19
19
|
};
|
|
20
20
|
/**
|
|
21
21
|
* Md Modal Enter Animation
|
|
22
22
|
*/
|
|
23
23
|
export const mdEnterAnimation = (baseEl, opts) => {
|
|
24
|
-
const { currentBreakpoint } = opts;
|
|
24
|
+
const { currentBreakpoint, expandToScroll } = opts;
|
|
25
25
|
const root = getElementRoot(baseEl);
|
|
26
|
-
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
|
|
26
|
+
const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
|
|
27
27
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
28
28
|
wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
|
|
29
|
-
|
|
29
|
+
// The content animation is only added if scrolling is enabled for
|
|
30
|
+
// all the breakpoints.
|
|
31
|
+
expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
|
|
32
|
+
const baseAnimation = createAnimation()
|
|
30
33
|
.addElement(baseEl)
|
|
31
34
|
.easing('cubic-bezier(0.36,0.66,0.04,1)')
|
|
32
35
|
.duration(280)
|
|
33
|
-
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
36
|
+
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
37
|
+
.beforeAddWrite(() => {
|
|
38
|
+
if (expandToScroll) {
|
|
39
|
+
// Scroll can only be done when the modal is fully expanded.
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* There are some browsers that causes flickering when
|
|
44
|
+
* dragging the content when scroll is enabled at every
|
|
45
|
+
* breakpoint. This is due to the wrapper element being
|
|
46
|
+
* transformed off the screen and having a snap animation.
|
|
47
|
+
*
|
|
48
|
+
* A workaround is to clone the footer element and append
|
|
49
|
+
* it outside of the wrapper element. This way, the footer
|
|
50
|
+
* is still visible and the drag can be done without
|
|
51
|
+
* flickering. The original footer is hidden until the modal
|
|
52
|
+
* is dismissed. This maintains the animation of the footer
|
|
53
|
+
* when the modal is dismissed.
|
|
54
|
+
*
|
|
55
|
+
* The workaround needs to be done before the animation starts
|
|
56
|
+
* so there are no flickering issues.
|
|
57
|
+
*/
|
|
58
|
+
const ionFooter = baseEl.querySelector('ion-footer');
|
|
59
|
+
/**
|
|
60
|
+
* This check is needed to prevent more than one footer
|
|
61
|
+
* from being appended to the shadow root.
|
|
62
|
+
* Otherwise, iOS and MD enter animations would append
|
|
63
|
+
* the footer twice.
|
|
64
|
+
*/
|
|
65
|
+
const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
|
|
66
|
+
if (ionFooter && !ionFooterAlreadyAppended) {
|
|
67
|
+
const footerHeight = ionFooter.clientHeight;
|
|
68
|
+
const clonedFooter = ionFooter.cloneNode(true);
|
|
69
|
+
baseEl.shadowRoot.appendChild(clonedFooter);
|
|
70
|
+
ionFooter.style.setProperty('display', 'none');
|
|
71
|
+
ionFooter.setAttribute('aria-hidden', 'true');
|
|
72
|
+
// Padding is added to prevent some content from being hidden.
|
|
73
|
+
const page = baseEl.querySelector('.ion-page');
|
|
74
|
+
page.style.setProperty('padding-bottom', `${footerHeight}px`);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
if (contentAnimation) {
|
|
78
|
+
baseAnimation.addAnimation(contentAnimation);
|
|
79
|
+
}
|
|
80
|
+
return baseAnimation;
|
|
34
81
|
};
|
|
@@ -16,13 +16,36 @@ const createLeaveAnimation = () => {
|
|
|
16
16
|
* Md Modal Leave Animation
|
|
17
17
|
*/
|
|
18
18
|
export const mdLeaveAnimation = (baseEl, opts) => {
|
|
19
|
-
const { currentBreakpoint } = opts;
|
|
19
|
+
const { currentBreakpoint, expandToScroll } = opts;
|
|
20
20
|
const root = getElementRoot(baseEl);
|
|
21
21
|
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation();
|
|
22
22
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
23
23
|
wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
|
|
24
|
-
|
|
24
|
+
const baseAnimation = createAnimation()
|
|
25
25
|
.easing('cubic-bezier(0.47,0,0.745,0.715)')
|
|
26
26
|
.duration(200)
|
|
27
|
-
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
27
|
+
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
28
|
+
.beforeAddWrite(() => {
|
|
29
|
+
if (expandToScroll) {
|
|
30
|
+
// Scroll can only be done when the modal is fully expanded.
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* If expandToScroll is disabled, we need to swap
|
|
35
|
+
* the visibility to the original, so the footer
|
|
36
|
+
* dismisses with the modal and doesn't stay
|
|
37
|
+
* until the modal is removed from the DOM.
|
|
38
|
+
*/
|
|
39
|
+
const ionFooter = baseEl.querySelector('ion-footer');
|
|
40
|
+
if (ionFooter) {
|
|
41
|
+
const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
|
|
42
|
+
ionFooter.style.removeProperty('display');
|
|
43
|
+
ionFooter.removeAttribute('aria-hidden');
|
|
44
|
+
clonedFooter.style.setProperty('display', 'none');
|
|
45
|
+
clonedFooter.setAttribute('aria-hidden', 'true');
|
|
46
|
+
const page = baseEl.querySelector('.ion-page');
|
|
47
|
+
page.style.removeProperty('padding-bottom');
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
return baseAnimation;
|
|
28
51
|
};
|