@ionic/core 8.4.4-dev.11741032668.18899f9b → 8.4.4-dev.11741046329.16b83b14
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 +40 -6
- package/components/helpers.js +1 -11
- package/components/index6.js +11 -3
- package/components/index9.js +1 -1
- package/components/ion-segment-button.js +9 -40
- package/components/ion-select.js +6 -4
- package/components/ion-toggle.js +6 -4
- package/components/ionic-global.js +1 -2
- package/components/modal.js +259 -35
- 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-05579976.js → framework-delegate-55f5683a.js} +1 -1
- package/dist/cjs/{hardware-back-button-f2cbbdce.js → hardware-back-button-9e8a2c4f.js} +1 -1
- package/dist/cjs/{helpers-4be3f90d.js → helpers-afaa9001.js} +0 -11
- package/dist/cjs/{index-c441c903.js → index-0d762bba.js} +2 -2
- package/dist/cjs/{index-5915f9b3.js → index-2a46a047.js} +11 -3
- package/dist/cjs/{index-9c6c9e9c.js → index-3652c918.js} +4 -4
- package/dist/cjs/{index-ad7a712e.js → index-9509ecad.js} +1 -1
- package/dist/cjs/{index-90ec3b6c.js → index-e975c92b.js} +5 -5
- package/dist/cjs/index.cjs.js +10 -10
- package/dist/cjs/{input-shims-e748a364.js → input-shims-cd05268a.js} +5 -3
- package/dist/cjs/{input.utils-74e4ec28.js → input.utils-ffb2f81b.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 +6 -6
- package/dist/cjs/ion-app_8.cjs.entry.js +14 -14
- package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
- 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 +39 -8
- package/dist/cjs/ion-chip.cjs.entry.js +1 -1
- package/dist/cjs/ion-col_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-datetime-button.cjs.entry.js +4 -4
- package/dist/cjs/ion-datetime_3.cjs.entry.js +7 -7
- 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 +5 -5
- package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
- package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
- package/dist/cjs/ion-loading.cjs.entry.js +6 -6
- package/dist/cjs/ion-menu_3.cjs.entry.js +7 -7
- package/dist/cjs/ion-modal.cjs.entry.js +266 -43
- package/dist/cjs/ion-nav_2.cjs.entry.js +6 -6
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +2 -2
- 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 +7 -7
- package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
- package/dist/cjs/ion-radio_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-range.cjs.entry.js +4 -4
- 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 +2 -2
- package/dist/cjs/ion-segment_2.cjs.entry.js +10 -41
- package/dist/cjs/ion-select-modal.cjs.entry.js +6 -6
- package/dist/cjs/ion-select_3.cjs.entry.js +12 -11
- package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
- package/dist/cjs/ion-split-pane.cjs.entry.js +1 -1
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-tab_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-text.cjs.entry.js +1 -1
- package/dist/cjs/ion-textarea.cjs.entry.js +5 -5
- package/dist/cjs/ion-toast.cjs.entry.js +6 -6
- 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-2dae3b92.js → ios.transition-0e664e88.js} +4 -4
- package/dist/cjs/loader.cjs.js +3 -3
- package/dist/cjs/{md.transition-ea3260a7.js → md.transition-2e8aef2c.js} +4 -4
- package/dist/cjs/{notch-controller-a0c464d1.js → notch-controller-d69150f5.js} +1 -1
- package/dist/cjs/{overlays-3880b5b5.js → overlays-65fdaff6.js} +5 -5
- package/dist/cjs/{status-tap-fb807fad.js → status-tap-d74f1429.js} +4 -3
- package/dist/cjs/{swipe-back-47a52b83.js → swipe-back-0303a5e4.js} +1 -1
- package/dist/collection/components/checkbox/checkbox.ios.css +52 -15
- package/dist/collection/components/checkbox/checkbox.js +90 -4
- package/dist/collection/components/checkbox/checkbox.md.css +52 -15
- package/dist/collection/components/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/segment-button/segment-button.js +9 -40
- package/dist/collection/components/select/select.js +23 -4
- package/dist/collection/components/toggle/toggle.js +23 -4
- package/dist/collection/components/toolbar/toolbar.js +6 -2
- package/dist/collection/utils/helpers.js +0 -10
- 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 +187 -2
- 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-f683816e.js → framework-delegate-63d1a679.js} +1 -1
- package/dist/esm/{hardware-back-button-44195e92.js → hardware-back-button-06ef3c3e.js} +1 -1
- package/dist/esm/{helpers-9b49d7d2.js → helpers-da915de8.js} +1 -11
- package/dist/esm/{index-b019fc18.js → index-2f7fde3d.js} +5 -5
- package/dist/esm/{index-9b0d46f4.js → index-6ad967f3.js} +11 -3
- package/dist/esm/{index-5a0f5fd0.js → index-79b30591.js} +1 -1
- package/dist/esm/{index-e1e9a0d3.js → index-cb21eccb.js} +4 -4
- package/dist/esm/{index-33f7e3ff.js → index-efb8ecdf.js} +2 -2
- package/dist/esm/index.js +10 -10
- package/dist/esm/{input-shims-0e65111b.js → input-shims-2fd7c6ef.js} +5 -3
- package/dist/esm/{input.utils-1ad8dafc.js → input.utils-961c9f17.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 +6 -6
- package/dist/esm/ion-app_8.entry.js +14 -14
- package/dist/esm/ion-avatar_3.entry.js +1 -1
- 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 +39 -8
- package/dist/esm/ion-chip.entry.js +1 -1
- package/dist/esm/ion-col_3.entry.js +1 -1
- package/dist/esm/ion-datetime-button.entry.js +4 -4
- package/dist/esm/ion-datetime_3.entry.js +7 -7
- 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 +5 -5
- package/dist/esm/ion-item-option_3.entry.js +4 -4
- package/dist/esm/ion-item_8.entry.js +2 -2
- package/dist/esm/ion-loading.entry.js +6 -6
- package/dist/esm/ion-menu_3.entry.js +7 -7
- package/dist/esm/ion-modal.entry.js +266 -43
- package/dist/esm/ion-nav_2.entry.js +6 -6
- package/dist/esm/ion-picker-column-option.entry.js +2 -2
- 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 +7 -7
- package/dist/esm/ion-progress-bar.entry.js +2 -2
- package/dist/esm/ion-radio_2.entry.js +2 -2
- package/dist/esm/ion-range.entry.js +4 -4
- 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 +2 -2
- package/dist/esm/ion-segment_2.entry.js +10 -41
- package/dist/esm/ion-select-modal.entry.js +6 -6
- package/dist/esm/ion-select_3.entry.js +12 -11
- package/dist/esm/ion-spinner.entry.js +1 -1
- package/dist/esm/ion-split-pane.entry.js +1 -1
- package/dist/esm/ion-tab-bar_2.entry.js +2 -2
- package/dist/esm/ion-tab_2.entry.js +2 -2
- package/dist/esm/ion-text.entry.js +1 -1
- package/dist/esm/ion-textarea.entry.js +5 -5
- package/dist/esm/ion-toast.entry.js +6 -6
- 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-b7103952.js → ios.transition-b1da3753.js} +4 -4
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{md.transition-e4034e0a.js → md.transition-571b3859.js} +4 -4
- package/dist/esm/{notch-controller-3dc61260.js → notch-controller-55b09e11.js} +1 -1
- package/dist/esm/{overlays-aea27b63.js → overlays-5deab4de.js} +5 -5
- package/dist/esm/{status-tap-163e8128.js → status-tap-79eac0ac.js} +4 -3
- package/dist/esm/{swipe-back-23ee7ab1.js → swipe-back-e5394307.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-f683816e.js → framework-delegate-63d1a679.js} +1 -1
- package/dist/esm-es5/{hardware-back-button-44195e92.js → hardware-back-button-06ef3c3e.js} +1 -1
- package/dist/esm-es5/{helpers-9b49d7d2.js → helpers-da915de8.js} +1 -1
- package/dist/esm-es5/{index-b019fc18.js → index-2f7fde3d.js} +1 -1
- package/dist/esm-es5/index-6ad967f3.js +4 -0
- package/dist/esm-es5/{index-5a0f5fd0.js → index-79b30591.js} +1 -1
- package/dist/esm-es5/{index-e1e9a0d3.js → index-cb21eccb.js} +1 -1
- package/dist/esm-es5/{index-33f7e3ff.js → index-efb8ecdf.js} +1 -1
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/input-shims-2fd7c6ef.js +4 -0
- package/dist/esm-es5/{input.utils-1ad8dafc.js → input.utils-961c9f17.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_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-b7103952.js → ios.transition-b1da3753.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/md.transition-571b3859.js +4 -0
- package/dist/esm-es5/{notch-controller-3dc61260.js → notch-controller-55b09e11.js} +1 -1
- package/dist/esm-es5/{overlays-aea27b63.js → overlays-5deab4de.js} +1 -1
- package/dist/esm-es5/status-tap-79eac0ac.js +4 -0
- package/dist/esm-es5/{swipe-back-23ee7ab1.js → swipe-back-e5394307.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-3c6d2c1e.system.entry.js → p-01186920.system.entry.js} +1 -1
- package/dist/ionic/p-0430c2e0.entry.js +4 -0
- package/dist/ionic/p-0574e87e.js +4 -0
- package/dist/ionic/{p-77b1bb00.system.entry.js → p-05b74e45.system.entry.js} +1 -1
- package/dist/ionic/{p-b7d2ba68.entry.js → p-081a4ce4.entry.js} +1 -1
- package/dist/ionic/p-0af823e1.js +4 -0
- package/dist/ionic/{p-aa63b365.system.js → p-0eb35a7f.system.js} +1 -1
- package/dist/ionic/p-1132ffee.entry.js +4 -0
- package/dist/ionic/{p-60f1b2fa.entry.js → p-120fb79a.entry.js} +1 -1
- package/dist/ionic/{p-98c08d09.entry.js → p-15d18206.entry.js} +1 -1
- package/dist/ionic/{p-035c0885.entry.js → p-15e76dd1.entry.js} +1 -1
- package/dist/ionic/{p-6b1f082e.entry.js → p-16188af7.entry.js} +1 -1
- package/dist/ionic/p-16bfb979.system.entry.js +4 -0
- package/dist/ionic/{p-5126cf1e.system.js → p-19ea7bff.system.js} +1 -1
- package/dist/ionic/{p-d60342e3.js → p-1a5bc5f7.js} +1 -1
- package/dist/ionic/{p-42808996.js → p-1ab13b2b.js} +1 -1
- package/dist/ionic/{p-13892787.system.entry.js → p-1e67b266.system.entry.js} +1 -1
- package/dist/ionic/{p-e2e19375.system.entry.js → p-2172893e.system.entry.js} +1 -1
- package/dist/ionic/{p-ea7c658c.system.entry.js → p-2346ab53.system.entry.js} +2 -2
- package/dist/ionic/{p-944d66b5.system.entry.js → p-248318e0.system.entry.js} +1 -1
- package/dist/ionic/{p-a873feda.system.entry.js → p-2507278c.system.entry.js} +1 -1
- package/dist/ionic/{p-eb599bcb.js → p-28706c6f.js} +1 -1
- package/dist/ionic/{p-4eed0eb2.system.entry.js → p-2abae1cc.system.entry.js} +1 -1
- package/dist/ionic/{p-a197ff3b.system.entry.js → p-2b838f86.system.entry.js} +1 -1
- package/dist/ionic/{p-a3705e10.entry.js → p-2da9c8a7.entry.js} +1 -1
- package/dist/ionic/{p-92e4df0c.system.entry.js → p-2e46590d.system.entry.js} +1 -1
- package/dist/ionic/{p-e78bff37.system.entry.js → p-302b50bb.system.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-2bc73fb5.js → p-34b11c24.js} +1 -1
- package/dist/ionic/{p-b3680e2f.system.js → p-3ad285e3.system.js} +1 -1
- package/dist/ionic/{p-8911101b.system.js → p-3c8e5c23.system.js} +1 -1
- package/dist/ionic/{p-d4ca0475.js → p-3cc276f4.js} +1 -1
- package/dist/ionic/p-49a0e74c.entry.js +4 -0
- package/dist/ionic/p-4c2d5b80.system.js +4 -0
- package/dist/ionic/p-4c98e2cf.system.js +4 -0
- package/dist/ionic/p-4ec778aa.entry.js +4 -0
- package/dist/ionic/{p-4ad78edc.entry.js → p-52d7a191.entry.js} +1 -1
- package/dist/ionic/{p-1543d6b2.system.entry.js → p-567de071.system.entry.js} +1 -1
- package/dist/ionic/p-577bc414.entry.js +4 -0
- package/dist/ionic/{p-22e4210e.system.entry.js → p-585b455c.system.entry.js} +1 -1
- package/dist/ionic/{p-42585688.system.entry.js → p-58d5df0c.system.entry.js} +1 -1
- package/dist/ionic/{p-026517fb.entry.js → p-5b932840.entry.js} +1 -1
- package/dist/ionic/{p-97acff20.system.js → p-5c08627a.system.js} +1 -1
- package/dist/ionic/{p-eb6f173b.entry.js → p-5c9eb9af.entry.js} +1 -1
- package/dist/ionic/{p-9c7efe25.system.entry.js → p-5fce0c0b.system.entry.js} +1 -1
- package/dist/ionic/{p-f00ba947.entry.js → p-61db139d.entry.js} +1 -1
- package/dist/ionic/{p-85b1ffae.entry.js → p-62af944c.entry.js} +1 -1
- package/dist/ionic/{p-4c9ccc7f.system.entry.js → p-63b0abde.system.entry.js} +1 -1
- package/dist/ionic/p-67222c16.system.js +4 -0
- package/dist/ionic/{p-ca908a50.system.entry.js → p-6933c482.system.entry.js} +1 -1
- package/dist/ionic/{p-c2583512.entry.js → p-6d32975a.entry.js} +1 -1
- package/dist/ionic/{p-dd0cad9c.entry.js → p-6d6cedc5.entry.js} +1 -1
- package/dist/ionic/{p-9c82a07c.system.entry.js → p-6dfb0f39.system.entry.js} +1 -1
- package/dist/ionic/{p-7a1766d6.js → p-72812e99.js} +1 -1
- package/dist/ionic/p-72bc8a1c.js +4 -0
- package/dist/ionic/{p-c3f4ea6c.system.entry.js → p-744c8672.system.entry.js} +1 -1
- package/dist/ionic/{p-d4896d36.system.entry.js → p-7458862e.system.entry.js} +1 -1
- package/dist/ionic/{p-d0a7f584.system.entry.js → p-74e3f0af.system.entry.js} +2 -2
- package/dist/ionic/p-7513b0c4.js +4 -0
- package/dist/ionic/{p-5a8efe64.system.entry.js → p-797eeea8.system.entry.js} +1 -1
- package/dist/ionic/{p-fd988d29.entry.js → p-7a02f476.entry.js} +1 -1
- package/dist/ionic/{p-0dc23518.entry.js → p-7a6eaf9e.entry.js} +1 -1
- package/dist/ionic/{p-288a2cff.entry.js → p-7b9a2b23.entry.js} +1 -1
- package/dist/ionic/{p-b637aa3f.system.entry.js → p-7ddc46c3.system.entry.js} +1 -1
- package/dist/ionic/p-7de1e42c.system.js +4 -0
- package/dist/ionic/{p-0eb2553a.system.entry.js → p-7ed1657c.system.entry.js} +1 -1
- package/dist/ionic/{p-95da3ae2.system.js → p-8635f5e6.system.js} +1 -1
- package/dist/ionic/{p-5bc12439.entry.js → p-8694928f.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-4f2f4e3b.entry.js → p-92763d3d.entry.js} +1 -1
- package/dist/ionic/{p-0d0a6fb9.system.entry.js → p-933727f9.system.entry.js} +1 -1
- package/dist/ionic/p-9343a445.js +4 -0
- package/dist/ionic/{p-656516a2.entry.js → p-937a7e21.entry.js} +1 -1
- package/dist/ionic/{p-2c9abc61.entry.js → p-948e6c6a.entry.js} +1 -1
- package/dist/ionic/{p-56a8aa85.entry.js → p-95775830.entry.js} +1 -1
- package/dist/ionic/{p-9065e1ed.system.entry.js → p-98231c01.system.entry.js} +1 -1
- package/dist/ionic/{p-808c9efc.system.entry.js → p-985a7e17.system.entry.js} +1 -1
- package/dist/ionic/{p-703d60a2.entry.js → p-98ff6b32.entry.js} +1 -1
- package/dist/ionic/{p-28cb707b.system.entry.js → p-9b122e3c.system.entry.js} +1 -1
- package/dist/ionic/{p-b609d03b.entry.js → p-9b428d25.entry.js} +1 -1
- package/dist/ionic/{p-85632b54.entry.js → p-9df2c6fb.entry.js} +1 -1
- package/dist/ionic/{p-eb4ac14d.system.js → p-9f3008d4.system.js} +1 -1
- package/dist/ionic/{p-d17f0dca.system.entry.js → p-9f364443.system.entry.js} +1 -1
- package/dist/ionic/{p-50c24ade.system.entry.js → p-a090bce8.system.entry.js} +1 -1
- package/dist/ionic/{p-5b03d498.system.entry.js → p-a0eb506c.system.entry.js} +1 -1
- package/dist/ionic/{p-4452a8ac.system.js → p-a15ddedb.system.js} +1 -1
- package/dist/ionic/p-a3db8ee3.js +4 -0
- package/dist/ionic/{p-9393bfbe.system.entry.js → p-a4a2420e.system.entry.js} +1 -1
- package/dist/ionic/{p-d86d7845.system.js → p-a69b9fc5.system.js} +1 -1
- package/dist/ionic/{p-1a790eef.system.js → p-a88dec0d.system.js} +2 -2
- package/dist/ionic/{p-c15a77e2.entry.js → p-a8f2c254.entry.js} +1 -1
- package/dist/ionic/{p-1c2f74e4.system.entry.js → p-ab674093.system.entry.js} +1 -1
- package/dist/ionic/{p-647b0625.system.js → p-ada36597.system.js} +1 -1
- package/dist/ionic/{p-42a9bb35.entry.js → p-afecb188.entry.js} +1 -1
- package/dist/ionic/{p-5b867a40.entry.js → p-b1eb86fd.entry.js} +1 -1
- package/dist/ionic/{p-c6ff3239.system.js → p-b3c60433.system.js} +1 -1
- package/dist/ionic/{p-bb11d9fb.js → p-b51e4004.js} +1 -1
- package/dist/ionic/{p-8db44ad3.js → p-b6efeab8.js} +1 -1
- package/dist/ionic/{p-406f9aa1.entry.js → p-b9d7015f.entry.js} +1 -1
- package/dist/ionic/{p-200dfb8f.entry.js → p-bb0db172.entry.js} +1 -1
- package/dist/ionic/{p-9d4a8059.entry.js → p-bdad26e3.entry.js} +1 -1
- package/dist/ionic/{p-842bb3c8.system.entry.js → p-bdf2cb2e.system.entry.js} +1 -1
- package/dist/ionic/{p-b5639a4f.entry.js → p-c41ac815.entry.js} +1 -1
- package/dist/ionic/{p-f1d1c614.system.js → p-c4238c12.system.js} +1 -1
- package/dist/ionic/p-c4b53b16.system.entry.js +4 -0
- package/dist/ionic/{p-dcc9aaf1.system.entry.js → p-cac0e0b3.system.entry.js} +1 -1
- package/dist/ionic/p-cb13696c.js +4 -0
- package/dist/ionic/{p-ef144104.system.entry.js → p-cba1f9bc.system.entry.js} +1 -1
- package/dist/ionic/p-cdc83025.entry.js +4 -0
- package/dist/ionic/p-d1c5b60e.system.js +4 -0
- package/dist/ionic/{p-881d9e52.system.js → p-d22e2a38.system.js} +1 -1
- package/dist/ionic/{p-8154947f.system.entry.js → p-d6eaffb1.system.entry.js} +2 -2
- package/dist/ionic/{p-e25cd3c7.js → p-d743e981.js} +1 -1
- package/dist/ionic/{p-72b65035.entry.js → p-d7aa6b00.entry.js} +1 -1
- package/dist/ionic/p-d7dd8fb1.entry.js +4 -0
- package/dist/ionic/{p-c3f5dcf9.entry.js → p-de930745.entry.js} +1 -1
- package/dist/ionic/{p-9fe2050a.entry.js → p-e06057c9.entry.js} +1 -1
- package/dist/ionic/{p-4a465405.system.entry.js → p-e09d6392.system.entry.js} +2 -2
- package/dist/ionic/p-e3171ff3.entry.js +4 -0
- package/dist/ionic/{p-16f1ba65.system.entry.js → p-e4ee80be.system.entry.js} +1 -1
- package/dist/ionic/p-e4fde4fb.system.entry.js +4 -0
- package/dist/ionic/p-e6376b93.system.entry.js +4 -0
- package/dist/ionic/{p-faa5e2b9.entry.js → p-e76dae93.entry.js} +1 -1
- package/dist/ionic/p-e8d56122.js +4 -0
- package/dist/ionic/{p-6f3d8334.js → p-ecceeb90.js} +1 -1
- package/dist/ionic/{p-d7fef52e.system.entry.js → p-ed75fcfb.system.entry.js} +1 -1
- package/dist/ionic/{p-acc78e36.entry.js → p-eef505e8.entry.js} +1 -1
- package/dist/ionic/{p-a33837c9.entry.js → p-f1060cd8.entry.js} +1 -1
- package/dist/ionic/{p-9ce56f65.system.entry.js → p-f1120724.system.entry.js} +1 -1
- package/dist/ionic/{p-0a499487.js → p-f1c4dcd4.js} +1 -1
- package/dist/ionic/{p-478dfa8c.system.entry.js → p-f3102647.system.entry.js} +1 -1
- package/dist/ionic/{p-13052792.entry.js → p-f63c2d12.entry.js} +1 -1
- package/dist/ionic/{p-5976e3b7.system.entry.js → p-fbd41a7e.system.entry.js} +1 -1
- package/dist/ionic/{p-712b57f9.system.entry.js → p-fca6ef5f.system.entry.js} +1 -1
- package/dist/ionic/{p-bed40aa8.entry.js → p-fceec762.entry.js} +1 -1
- package/dist/types/components/checkbox/checkbox.d.ts +25 -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/segment-button/segment-button.d.ts +1 -2
- 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 -1
- package/dist/types/utils/logging/index.d.ts +13 -1
- package/dist/types/utils/test/platform.utils.d.ts +1 -1
- package/hydrate/index.js +338 -105
- package/hydrate/index.mjs +338 -105
- package/package.json +1 -1
- 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-0e65111b.js +0 -4
- package/dist/esm-es5/md.transition-e4034e0a.js +0 -4
- package/dist/esm-es5/status-tap-163e8128.js +0 -4
- package/dist/ionic/p-0440660b.js +0 -4
- package/dist/ionic/p-06fee233.js +0 -4
- package/dist/ionic/p-075a94bd.js +0 -4
- package/dist/ionic/p-0ee3b5a2.system.js +0 -4
- package/dist/ionic/p-135e5731.js +0 -4
- package/dist/ionic/p-1f405274.js +0 -4
- package/dist/ionic/p-2c9eb774.system.js +0 -4
- package/dist/ionic/p-30ec5574.entry.js +0 -4
- package/dist/ionic/p-3667bc71.system.js +0 -4
- package/dist/ionic/p-3c7371c4.system.entry.js +0 -4
- package/dist/ionic/p-47e6c342.js +0 -4
- package/dist/ionic/p-4e8946f7.js +0 -4
- package/dist/ionic/p-51f13ac7.entry.js +0 -4
- package/dist/ionic/p-6167f80e.entry.js +0 -4
- package/dist/ionic/p-627c1f42.entry.js +0 -4
- package/dist/ionic/p-68dc53a5.js +0 -4
- package/dist/ionic/p-699c97a3.entry.js +0 -4
- package/dist/ionic/p-6bc9998f.entry.js +0 -4
- package/dist/ionic/p-75a0fffe.system.entry.js +0 -4
- package/dist/ionic/p-af09741c.entry.js +0 -4
- package/dist/ionic/p-c42a4dad.system.entry.js +0 -4
- package/dist/ionic/p-cc964e4f.system.js +0 -4
- package/dist/ionic/p-ddc058a7.system.entry.js +0 -4
- package/dist/ionic/p-e3357909.entry.js +0 -4
- package/dist/ionic/p-f4f255cb.system.js +0 -4
- package/dist/ionic/p-ff4b7e40.system.js +0 -4
package/hydrate/index.mjs
CHANGED
|
@@ -2706,16 +2706,6 @@ const shallowEqualStringMap = (map1, map2) => {
|
|
|
2706
2706
|
}
|
|
2707
2707
|
return true;
|
|
2708
2708
|
};
|
|
2709
|
-
const getNextSiblingOfType = (element) => {
|
|
2710
|
-
let sibling = element.nextSibling;
|
|
2711
|
-
while (sibling) {
|
|
2712
|
-
if (sibling.nodeType === Node.ELEMENT_NODE && sibling !== null) {
|
|
2713
|
-
return sibling;
|
|
2714
|
-
}
|
|
2715
|
-
sibling = sibling.nextSibling;
|
|
2716
|
-
}
|
|
2717
|
-
return null;
|
|
2718
|
-
};
|
|
2719
2709
|
|
|
2720
2710
|
/* Ionicons v7.2.2, ES Modules */
|
|
2721
2711
|
const arrowBackSharp = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><path stroke-linecap='square' stroke-miterlimit='10' stroke-width='48' d='M244 400L100 256l144-144M120 256h292' class='ionicon-fill-none'/></svg>";
|
|
@@ -2841,8 +2831,7 @@ const isHybrid = (win) => isCordova(win) || isCapacitorNative(win);
|
|
|
2841
2831
|
const isCordova = (win) => !!(win['cordova'] || win['phonegap'] || win['PhoneGap']);
|
|
2842
2832
|
const isCapacitorNative = (win) => {
|
|
2843
2833
|
const capacitor = win['Capacitor'];
|
|
2844
|
-
|
|
2845
|
-
return !!((capacitor === null || capacitor === void 0 ? void 0 : capacitor.isNative) || ((capacitor === null || capacitor === void 0 ? void 0 : capacitor.isNativePlatform) && !!capacitor.isNativePlatform()));
|
|
2834
|
+
return !!(capacitor === null || capacitor === void 0 ? void 0 : capacitor.isNative);
|
|
2846
2835
|
};
|
|
2847
2836
|
const isElectron = (win) => testUserAgent(win, /electron/i);
|
|
2848
2837
|
const isPWA = (win) => { var _a; return !!(((_a = win.matchMedia) === null || _a === void 0 ? void 0 : _a.call(win, '(display-mode: standalone)').matches) || win.navigator.standalone); };
|
|
@@ -3224,9 +3213,12 @@ let accordionIds = 0;
|
|
|
3224
3213
|
* @param message - The string message to be logged to the console.
|
|
3225
3214
|
*/
|
|
3226
3215
|
const printIonWarning = (message, ...params) => {
|
|
3227
|
-
|
|
3216
|
+
const logLevel = config.get('logLevel', "WARN" /* LogLevel.WARN */);
|
|
3217
|
+
if (["WARN" /* LogLevel.WARN */].includes(logLevel)) {
|
|
3218
|
+
return console.warn(`[Ionic Warning]: ${message}`, ...params);
|
|
3219
|
+
}
|
|
3228
3220
|
};
|
|
3229
|
-
|
|
3221
|
+
/**
|
|
3230
3222
|
* Logs an error to the console with an Ionic prefix
|
|
3231
3223
|
* to indicate the library that is warning the developer.
|
|
3232
3224
|
*
|
|
@@ -3234,7 +3226,10 @@ const printIonWarning = (message, ...params) => {
|
|
|
3234
3226
|
* @param params - Additional arguments to supply to the console.error.
|
|
3235
3227
|
*/
|
|
3236
3228
|
const printIonError = (message, ...params) => {
|
|
3237
|
-
|
|
3229
|
+
const logLevel = config.get('logLevel', "ERROR" /* LogLevel.ERROR */);
|
|
3230
|
+
if (["ERROR" /* LogLevel.ERROR */, "WARN" /* LogLevel.WARN */].includes(logLevel)) {
|
|
3231
|
+
return console.error(`[Ionic Error]: ${message}`, ...params);
|
|
3232
|
+
}
|
|
3238
3233
|
};
|
|
3239
3234
|
/**
|
|
3240
3235
|
* Prints an error informing developers that an implementation requires an element to be used
|
|
@@ -8435,10 +8430,10 @@ class CardTitle {
|
|
|
8435
8430
|
}; }
|
|
8436
8431
|
}
|
|
8437
8432
|
|
|
8438
|
-
const checkboxIosCss = ":host{--checkbox-background-checked:var(--ion-color-primary, #0054e9);--border-color-checked:var(--ion-color-primary, #0054e9);--checkmark-color:var(--ion-color-primary-contrast, #fff);--transition:none;display:inline-block;position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0;width:100%;height:100%}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}:host(.ion-color){--checkbox-background-checked:var(--ion-color-base);--border-color-checked:var(--ion-color-base);--checkmark-color:var(--ion-color-contrast)}.checkbox-wrapper{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;cursor:inherit}.label-text-wrapper{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host(.in-item) .label-text-wrapper,:host(.in-item:not(.checkbox-label-placement-stacked):not([slot])) .native-wrapper{margin-top:10px;margin-bottom:10px}:host(.in-item.checkbox-label-placement-stacked) .label-text-wrapper{margin-top:10px;margin-bottom:16px}:host(.in-item.checkbox-label-placement-stacked) .native-wrapper{margin-bottom:10px}.label-text-wrapper-hidden{display:none}input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.checkbox-icon{border-radius:var(--border-radius);position:relative;width:var(--size);height:var(--size);-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--checkbox-background);-webkit-box-sizing:border-box;box-sizing:border-box}.checkbox-icon path{fill:none;stroke:var(--checkmark-color);stroke-width:var(--checkmark-width);opacity:0}
|
|
8433
|
+
const checkboxIosCss = ":host{--checkbox-background-checked:var(--ion-color-primary, #0054e9);--border-color-checked:var(--ion-color-primary, #0054e9);--checkmark-color:var(--ion-color-primary-contrast, #fff);--transition:none;display:inline-block;position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0;width:100%;height:100%}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}:host(.ion-color){--checkbox-background-checked:var(--ion-color-base);--border-color-checked:var(--ion-color-base);--checkmark-color:var(--ion-color-contrast)}.checkbox-wrapper{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;cursor:inherit}.label-text-wrapper{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host(.in-item) .label-text-wrapper,:host(.in-item:not(.checkbox-label-placement-stacked):not([slot])) .native-wrapper{margin-top:10px;margin-bottom:10px}:host(.in-item.checkbox-label-placement-stacked) .label-text-wrapper{margin-top:10px;margin-bottom:16px}:host(.in-item.checkbox-label-placement-stacked) .native-wrapper{margin-bottom:10px}.label-text-wrapper-hidden{display:none}input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.checkbox-icon{border-radius:var(--border-radius);position:relative;width:var(--size);height:var(--size);-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--checkbox-background);-webkit-box-sizing:border-box;box-sizing:border-box}.checkbox-icon path{fill:none;stroke:var(--checkmark-color);stroke-width:var(--checkmark-width);opacity:0}.checkbox-bottom{padding-top:4px;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;font-size:0.75rem;white-space:normal}:host(.checkbox-label-placement-stacked) .checkbox-bottom{font-size:1rem}.checkbox-bottom .error-text{display:none;color:var(--ion-color-danger, #c5000f)}.checkbox-bottom .helper-text{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}:host(.ion-touched.ion-invalid) .checkbox-bottom .error-text{display:block}:host(.ion-touched.ion-invalid) .checkbox-bottom .helper-text{display:none}:host(.checkbox-label-placement-start) .checkbox-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.checkbox-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}:host(.checkbox-label-placement-end) .checkbox-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse;-ms-flex-pack:start;justify-content:start}:host(.checkbox-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}:host(.checkbox-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}:host(.checkbox-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.checkbox-label-placement-stacked) .checkbox-wrapper{-ms-flex-direction:column;flex-direction:column;text-align:center}:host(.checkbox-label-placement-stacked) .label-text-wrapper{-webkit-transform:scale(0.75);transform:scale(0.75);margin-left:0;margin-right:0;margin-bottom:16px;max-width:calc(100% / 0.75)}:host(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host-context([dir=rtl]):host(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper,:host-context([dir=rtl]).checkbox-label-placement-stacked.checkbox-alignment-start .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){:host(.checkbox-label-placement-stacked.checkbox-alignment-start:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}}:host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper{-webkit-transform-origin:center top;transform-origin:center top}:host-context([dir=rtl]):host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper,:host-context([dir=rtl]).checkbox-label-placement-stacked.checkbox-alignment-center .label-text-wrapper{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}@supports selector(:dir(rtl)){:host(.checkbox-label-placement-stacked.checkbox-alignment-center:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}}:host(.checkbox-justify-space-between) .checkbox-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.checkbox-justify-start) .checkbox-wrapper{-ms-flex-pack:start;justify-content:start}:host(.checkbox-justify-end) .checkbox-wrapper{-ms-flex-pack:end;justify-content:end}:host(.checkbox-alignment-start) .checkbox-wrapper{-ms-flex-align:start;align-items:start}:host(.checkbox-alignment-center) .checkbox-wrapper{-ms-flex-align:center;align-items:center}:host(.checkbox-justify-space-between),:host(.checkbox-justify-start),:host(.checkbox-justify-end),:host(.checkbox-alignment-start),:host(.checkbox-alignment-center){display:block}:host(.checkbox-checked) .checkbox-icon,:host(.checkbox-indeterminate) .checkbox-icon{border-color:var(--border-color-checked);background:var(--checkbox-background-checked)}:host(.checkbox-checked) .checkbox-icon path,:host(.checkbox-indeterminate) .checkbox-icon path{opacity:1}:host(.checkbox-disabled){pointer-events:none}:host{--border-radius:50%;--border-width:0.125rem;--border-style:solid;--border-color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.23);--checkbox-background:var(--ion-item-background, var(--ion-background-color, #fff));--size:min(1.375rem, 55.836px);--checkmark-width:1.5px}:host(.checkbox-disabled){opacity:0.3}";
|
|
8439
8434
|
var IonCheckboxIosStyle0 = checkboxIosCss;
|
|
8440
8435
|
|
|
8441
|
-
const checkboxMdCss = ":host{--checkbox-background-checked:var(--ion-color-primary, #0054e9);--border-color-checked:var(--ion-color-primary, #0054e9);--checkmark-color:var(--ion-color-primary-contrast, #fff);--transition:none;display:inline-block;position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0;width:100%;height:100%}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}:host(.ion-color){--checkbox-background-checked:var(--ion-color-base);--border-color-checked:var(--ion-color-base);--checkmark-color:var(--ion-color-contrast)}.checkbox-wrapper{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;cursor:inherit}.label-text-wrapper{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host(.in-item) .label-text-wrapper,:host(.in-item:not(.checkbox-label-placement-stacked):not([slot])) .native-wrapper{margin-top:10px;margin-bottom:10px}:host(.in-item.checkbox-label-placement-stacked) .label-text-wrapper{margin-top:10px;margin-bottom:16px}:host(.in-item.checkbox-label-placement-stacked) .native-wrapper{margin-bottom:10px}.label-text-wrapper-hidden{display:none}input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.checkbox-icon{border-radius:var(--border-radius);position:relative;width:var(--size);height:var(--size);-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--checkbox-background);-webkit-box-sizing:border-box;box-sizing:border-box}.checkbox-icon path{fill:none;stroke:var(--checkmark-color);stroke-width:var(--checkmark-width);opacity:0}
|
|
8436
|
+
const checkboxMdCss = ":host{--checkbox-background-checked:var(--ion-color-primary, #0054e9);--border-color-checked:var(--ion-color-primary, #0054e9);--checkmark-color:var(--ion-color-primary-contrast, #fff);--transition:none;display:inline-block;position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0;width:100%;height:100%}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}:host(.ion-color){--checkbox-background-checked:var(--ion-color-base);--border-color-checked:var(--ion-color-base);--checkmark-color:var(--ion-color-contrast)}.checkbox-wrapper{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;cursor:inherit}.label-text-wrapper{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host(.in-item) .label-text-wrapper,:host(.in-item:not(.checkbox-label-placement-stacked):not([slot])) .native-wrapper{margin-top:10px;margin-bottom:10px}:host(.in-item.checkbox-label-placement-stacked) .label-text-wrapper{margin-top:10px;margin-bottom:16px}:host(.in-item.checkbox-label-placement-stacked) .native-wrapper{margin-bottom:10px}.label-text-wrapper-hidden{display:none}input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.checkbox-icon{border-radius:var(--border-radius);position:relative;width:var(--size);height:var(--size);-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--checkbox-background);-webkit-box-sizing:border-box;box-sizing:border-box}.checkbox-icon path{fill:none;stroke:var(--checkmark-color);stroke-width:var(--checkmark-width);opacity:0}.checkbox-bottom{padding-top:4px;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;font-size:0.75rem;white-space:normal}:host(.checkbox-label-placement-stacked) .checkbox-bottom{font-size:1rem}.checkbox-bottom .error-text{display:none;color:var(--ion-color-danger, #c5000f)}.checkbox-bottom .helper-text{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}:host(.ion-touched.ion-invalid) .checkbox-bottom .error-text{display:block}:host(.ion-touched.ion-invalid) .checkbox-bottom .helper-text{display:none}:host(.checkbox-label-placement-start) .checkbox-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.checkbox-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}:host(.checkbox-label-placement-end) .checkbox-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse;-ms-flex-pack:start;justify-content:start}:host(.checkbox-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}:host(.checkbox-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}:host(.checkbox-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.checkbox-label-placement-stacked) .checkbox-wrapper{-ms-flex-direction:column;flex-direction:column;text-align:center}:host(.checkbox-label-placement-stacked) .label-text-wrapper{-webkit-transform:scale(0.75);transform:scale(0.75);margin-left:0;margin-right:0;margin-bottom:16px;max-width:calc(100% / 0.75)}:host(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host-context([dir=rtl]):host(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper,:host-context([dir=rtl]).checkbox-label-placement-stacked.checkbox-alignment-start .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){:host(.checkbox-label-placement-stacked.checkbox-alignment-start:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}}:host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper{-webkit-transform-origin:center top;transform-origin:center top}:host-context([dir=rtl]):host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper,:host-context([dir=rtl]).checkbox-label-placement-stacked.checkbox-alignment-center .label-text-wrapper{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}@supports selector(:dir(rtl)){:host(.checkbox-label-placement-stacked.checkbox-alignment-center:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}}:host(.checkbox-justify-space-between) .checkbox-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.checkbox-justify-start) .checkbox-wrapper{-ms-flex-pack:start;justify-content:start}:host(.checkbox-justify-end) .checkbox-wrapper{-ms-flex-pack:end;justify-content:end}:host(.checkbox-alignment-start) .checkbox-wrapper{-ms-flex-align:start;align-items:start}:host(.checkbox-alignment-center) .checkbox-wrapper{-ms-flex-align:center;align-items:center}:host(.checkbox-justify-space-between),:host(.checkbox-justify-start),:host(.checkbox-justify-end),:host(.checkbox-alignment-start),:host(.checkbox-alignment-center){display:block}:host(.checkbox-checked) .checkbox-icon,:host(.checkbox-indeterminate) .checkbox-icon{border-color:var(--border-color-checked);background:var(--checkbox-background-checked)}:host(.checkbox-checked) .checkbox-icon path,:host(.checkbox-indeterminate) .checkbox-icon path{opacity:1}:host(.checkbox-disabled){pointer-events:none}:host{--border-radius:calc(var(--size) * .125);--border-width:2px;--border-style:solid;--border-color:rgb(var(--ion-text-color-rgb, 0, 0, 0), 0.6);--checkmark-width:3;--checkbox-background:var(--ion-item-background, var(--ion-background-color, #fff));--transition:background 180ms cubic-bezier(0.4, 0, 0.2, 1);--size:18px}.checkbox-icon path{stroke-dasharray:30;stroke-dashoffset:30}:host(.checkbox-checked) .checkbox-icon path,:host(.checkbox-indeterminate) .checkbox-icon path{stroke-dashoffset:0;-webkit-transition:stroke-dashoffset 90ms linear 90ms;transition:stroke-dashoffset 90ms linear 90ms}:host(.checkbox-disabled) .label-text-wrapper{opacity:0.38}:host(.checkbox-disabled) .native-wrapper{opacity:0.63}";
|
|
8442
8437
|
var IonCheckboxMdStyle0 = checkboxMdCss;
|
|
8443
8438
|
|
|
8444
8439
|
/**
|
|
@@ -8449,6 +8444,9 @@ var IonCheckboxMdStyle0 = checkboxMdCss;
|
|
|
8449
8444
|
* @part container - The container for the checkbox mark.
|
|
8450
8445
|
* @part label - The label text describing the checkbox.
|
|
8451
8446
|
* @part mark - The checkmark used to indicate the checked state.
|
|
8447
|
+
* @part supporting-text - Supporting text displayed beneath the checkbox label.
|
|
8448
|
+
* @part helper-text - Supporting text displayed beneath the checkbox label when the checkbox is valid.
|
|
8449
|
+
* @part error-text - Supporting text displayed beneath the checkbox label when the checkbox is invalid and touched.
|
|
8452
8450
|
*/
|
|
8453
8451
|
class Checkbox {
|
|
8454
8452
|
constructor(hostRef) {
|
|
@@ -8457,6 +8455,8 @@ class Checkbox {
|
|
|
8457
8455
|
this.ionFocus = createEvent(this, "ionFocus", 7);
|
|
8458
8456
|
this.ionBlur = createEvent(this, "ionBlur", 7);
|
|
8459
8457
|
this.inputId = `ion-cb-${checkboxIds++}`;
|
|
8458
|
+
this.helperTextId = `${this.inputId}-helper-text`;
|
|
8459
|
+
this.errorTextId = `${this.inputId}-error-text`;
|
|
8460
8460
|
this.inheritedAttributes = {};
|
|
8461
8461
|
/**
|
|
8462
8462
|
* Sets the checked property and emits
|
|
@@ -8494,10 +8494,13 @@ class Checkbox {
|
|
|
8494
8494
|
this.checked = false;
|
|
8495
8495
|
this.indeterminate = false;
|
|
8496
8496
|
this.disabled = false;
|
|
8497
|
+
this.errorText = undefined;
|
|
8498
|
+
this.helperText = undefined;
|
|
8497
8499
|
this.value = 'on';
|
|
8498
8500
|
this.labelPlacement = 'start';
|
|
8499
8501
|
this.justify = undefined;
|
|
8500
8502
|
this.alignment = undefined;
|
|
8503
|
+
this.required = false;
|
|
8501
8504
|
}
|
|
8502
8505
|
componentWillLoad() {
|
|
8503
8506
|
this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
|
|
@@ -8508,12 +8511,38 @@ class Checkbox {
|
|
|
8508
8511
|
this.focusEl.focus();
|
|
8509
8512
|
}
|
|
8510
8513
|
}
|
|
8514
|
+
getHintTextID() {
|
|
8515
|
+
const { el, helperText, errorText, helperTextId, errorTextId } = this;
|
|
8516
|
+
if (el.classList.contains('ion-touched') && el.classList.contains('ion-invalid') && errorText) {
|
|
8517
|
+
return errorTextId;
|
|
8518
|
+
}
|
|
8519
|
+
if (helperText) {
|
|
8520
|
+
return helperTextId;
|
|
8521
|
+
}
|
|
8522
|
+
return undefined;
|
|
8523
|
+
}
|
|
8524
|
+
/**
|
|
8525
|
+
* Responsible for rendering helper text and error text.
|
|
8526
|
+
* This element should only be rendered if hint text is set.
|
|
8527
|
+
*/
|
|
8528
|
+
renderHintText() {
|
|
8529
|
+
const { helperText, errorText, helperTextId, errorTextId } = this;
|
|
8530
|
+
/**
|
|
8531
|
+
* undefined and empty string values should
|
|
8532
|
+
* be treated as not having helper/error text.
|
|
8533
|
+
*/
|
|
8534
|
+
const hasHintText = !!helperText || !!errorText;
|
|
8535
|
+
if (!hasHintText) {
|
|
8536
|
+
return;
|
|
8537
|
+
}
|
|
8538
|
+
return (hAsync("div", { class: "checkbox-bottom" }, hAsync("div", { id: helperTextId, class: "helper-text", part: "supporting-text helper-text" }, helperText), hAsync("div", { id: errorTextId, class: "error-text", part: "supporting-text error-text" }, errorText)));
|
|
8539
|
+
}
|
|
8511
8540
|
render() {
|
|
8512
|
-
const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, } = this;
|
|
8541
|
+
const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, required, } = this;
|
|
8513
8542
|
const mode = getIonMode$1(this);
|
|
8514
8543
|
const path = getSVGPath(mode, indeterminate);
|
|
8515
8544
|
renderHiddenInput(true, el, name, checked ? value : '', disabled);
|
|
8516
|
-
return (hAsync(Host, { key: '
|
|
8545
|
+
return (hAsync(Host, { key: '7ac31df89b07c781ddcd30a6a8c109494d0c500a', "aria-checked": indeterminate ? 'mixed' : `${checked}`, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId, class: createColorClasses$1(color, {
|
|
8517
8546
|
[mode]: true,
|
|
8518
8547
|
'in-item': hostContext('ion-item', el),
|
|
8519
8548
|
'checkbox-checked': checked,
|
|
@@ -8523,10 +8552,10 @@ class Checkbox {
|
|
|
8523
8552
|
[`checkbox-justify-${justify}`]: justify !== undefined,
|
|
8524
8553
|
[`checkbox-alignment-${alignment}`]: alignment !== undefined,
|
|
8525
8554
|
[`checkbox-label-placement-${labelPlacement}`]: true,
|
|
8526
|
-
}), onClick: this.onClick }, hAsync("label", { key: '
|
|
8555
|
+
}), onClick: this.onClick }, hAsync("label", { key: '674e923fe1ec83a33c31d67b0d414d61ba8f9e4b', class: "checkbox-wrapper" }, hAsync("input", Object.assign({ key: 'c4866e392fbdf3b76edcd1507cb67f40a213a4e7', 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)), hAsync("div", { key: '79cb96e5963b9331a760438ec8cc9e456215de91', class: {
|
|
8527
8556
|
'label-text-wrapper': true,
|
|
8528
8557
|
'label-text-wrapper-hidden': el.textContent === '',
|
|
8529
|
-
}, part: "label" }, hAsync("slot", { key: '
|
|
8558
|
+
}, part: "label" }, hAsync("slot", { key: '896cb26292c9a4a6c105afb39611472b93bf5e90' }), this.renderHintText()), hAsync("div", { key: '52cd22e79fd5db30b45d7b092aa5af3944392336', class: "native-wrapper" }, hAsync("svg", { key: '18d862ab7cc32055eaf200eea560ff1b2b6cbde0', class: "checkbox-icon", viewBox: "0 0 24 24", part: "container" }, path)))));
|
|
8530
8559
|
}
|
|
8531
8560
|
getSVGPath(mode, indeterminate) {
|
|
8532
8561
|
let path = indeterminate ? (hAsync("path", { d: "M6 12L18 12", part: "mark" })) : (hAsync("path", { d: "M5.9,12.5l3.8,3.8l8.8-8.8", part: "mark" }));
|
|
@@ -8549,10 +8578,13 @@ class Checkbox {
|
|
|
8549
8578
|
"checked": [1028],
|
|
8550
8579
|
"indeterminate": [1028],
|
|
8551
8580
|
"disabled": [4],
|
|
8581
|
+
"errorText": [1, "error-text"],
|
|
8582
|
+
"helperText": [1, "helper-text"],
|
|
8552
8583
|
"value": [8],
|
|
8553
8584
|
"labelPlacement": [1, "label-placement"],
|
|
8554
8585
|
"justify": [1],
|
|
8555
8586
|
"alignment": [1],
|
|
8587
|
+
"required": [4],
|
|
8556
8588
|
"setFocus": [64]
|
|
8557
8589
|
},
|
|
8558
8590
|
"$listeners$": undefined,
|
|
@@ -19028,7 +19060,7 @@ const computeDuration = (remaining, velocity) => {
|
|
|
19028
19060
|
};
|
|
19029
19061
|
|
|
19030
19062
|
const createSheetEnterAnimation = (opts) => {
|
|
19031
|
-
const { currentBreakpoint, backdropBreakpoint } = opts;
|
|
19063
|
+
const { currentBreakpoint, backdropBreakpoint, expandToScroll } = opts;
|
|
19032
19064
|
/**
|
|
19033
19065
|
* If the backdropBreakpoint is undefined, then the backdrop
|
|
19034
19066
|
* should always fade in. If the backdropBreakpoint came before the
|
|
@@ -19048,7 +19080,16 @@ const createSheetEnterAnimation = (opts) => {
|
|
|
19048
19080
|
{ offset: 0, opacity: 1, transform: 'translateY(100%)' },
|
|
19049
19081
|
{ offset: 1, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
|
|
19050
19082
|
]);
|
|
19051
|
-
|
|
19083
|
+
/**
|
|
19084
|
+
* This allows the content to be scrollable at any breakpoint.
|
|
19085
|
+
*/
|
|
19086
|
+
const contentAnimation = !expandToScroll
|
|
19087
|
+
? createAnimation('contentAnimation').keyframes([
|
|
19088
|
+
{ offset: 0, opacity: 1, maxHeight: `${(1 - currentBreakpoint) * 100}%` },
|
|
19089
|
+
{ offset: 1, opacity: 1, maxHeight: `${currentBreakpoint * 100}%` },
|
|
19090
|
+
])
|
|
19091
|
+
: undefined;
|
|
19092
|
+
return { wrapperAnimation, backdropAnimation, contentAnimation };
|
|
19052
19093
|
};
|
|
19053
19094
|
const createSheetLeaveAnimation = (opts) => {
|
|
19054
19095
|
const { currentBreakpoint, backdropBreakpoint } = opts;
|
|
@@ -19083,22 +19124,68 @@ const createEnterAnimation$1 = () => {
|
|
|
19083
19124
|
})
|
|
19084
19125
|
.afterClearStyles(['pointer-events']);
|
|
19085
19126
|
const wrapperAnimation = createAnimation().fromTo('transform', 'translateY(100vh)', 'translateY(0vh)');
|
|
19086
|
-
return { backdropAnimation, wrapperAnimation };
|
|
19127
|
+
return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
|
|
19087
19128
|
};
|
|
19088
19129
|
/**
|
|
19089
19130
|
* iOS Modal Enter Animation for the Card presentation style
|
|
19090
19131
|
*/
|
|
19091
19132
|
const iosEnterAnimation$3 = (baseEl, opts) => {
|
|
19092
|
-
const { presentingEl, currentBreakpoint } = opts;
|
|
19133
|
+
const { presentingEl, currentBreakpoint, expandToScroll } = opts;
|
|
19093
19134
|
const root = getElementRoot(baseEl);
|
|
19094
|
-
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
|
|
19135
|
+
const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
|
|
19095
19136
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
19096
19137
|
wrapperAnimation.addElement(root.querySelectorAll('.modal-wrapper, .modal-shadow')).beforeStyles({ opacity: 1 });
|
|
19138
|
+
// The content animation is only added if scrolling is enabled for
|
|
19139
|
+
// all the breakpoints.
|
|
19140
|
+
!expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
|
|
19097
19141
|
const baseAnimation = createAnimation('entering-base')
|
|
19098
19142
|
.addElement(baseEl)
|
|
19099
19143
|
.easing('cubic-bezier(0.32,0.72,0,1)')
|
|
19100
19144
|
.duration(500)
|
|
19101
|
-
.addAnimation(wrapperAnimation)
|
|
19145
|
+
.addAnimation([wrapperAnimation])
|
|
19146
|
+
.beforeAddWrite(() => {
|
|
19147
|
+
if (expandToScroll) {
|
|
19148
|
+
// Scroll can only be done when the modal is fully expanded.
|
|
19149
|
+
return;
|
|
19150
|
+
}
|
|
19151
|
+
/**
|
|
19152
|
+
* There are some browsers that causes flickering when
|
|
19153
|
+
* dragging the content when scroll is enabled at every
|
|
19154
|
+
* breakpoint. This is due to the wrapper element being
|
|
19155
|
+
* transformed off the screen and having a snap animation.
|
|
19156
|
+
*
|
|
19157
|
+
* A workaround is to clone the footer element and append
|
|
19158
|
+
* it outside of the wrapper element. This way, the footer
|
|
19159
|
+
* is still visible and the drag can be done without
|
|
19160
|
+
* flickering. The original footer is hidden until the modal
|
|
19161
|
+
* is dismissed. This maintains the animation of the footer
|
|
19162
|
+
* when the modal is dismissed.
|
|
19163
|
+
*
|
|
19164
|
+
* The workaround needs to be done before the animation starts
|
|
19165
|
+
* so there are no flickering issues.
|
|
19166
|
+
*/
|
|
19167
|
+
const ionFooter = baseEl.querySelector('ion-footer');
|
|
19168
|
+
/**
|
|
19169
|
+
* This check is needed to prevent more than one footer
|
|
19170
|
+
* from being appended to the shadow root.
|
|
19171
|
+
* Otherwise, iOS and MD enter animations would append
|
|
19172
|
+
* the footer twice.
|
|
19173
|
+
*/
|
|
19174
|
+
const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
|
|
19175
|
+
if (ionFooter && !ionFooterAlreadyAppended) {
|
|
19176
|
+
const footerHeight = ionFooter.clientHeight;
|
|
19177
|
+
const clonedFooter = ionFooter.cloneNode(true);
|
|
19178
|
+
baseEl.shadowRoot.appendChild(clonedFooter);
|
|
19179
|
+
ionFooter.style.setProperty('display', 'none');
|
|
19180
|
+
ionFooter.setAttribute('aria-hidden', 'true');
|
|
19181
|
+
// Padding is added to prevent some content from being hidden.
|
|
19182
|
+
const page = baseEl.querySelector('.ion-page');
|
|
19183
|
+
page.style.setProperty('padding-bottom', `${footerHeight}px`);
|
|
19184
|
+
}
|
|
19185
|
+
});
|
|
19186
|
+
if (contentAnimation) {
|
|
19187
|
+
baseAnimation.addAnimation(contentAnimation);
|
|
19188
|
+
}
|
|
19102
19189
|
if (presentingEl) {
|
|
19103
19190
|
const isMobile = window.innerWidth < 768;
|
|
19104
19191
|
const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
|
|
@@ -19176,7 +19263,7 @@ const createLeaveAnimation$1 = () => {
|
|
|
19176
19263
|
* iOS Modal Leave Animation
|
|
19177
19264
|
*/
|
|
19178
19265
|
const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
|
|
19179
|
-
const { presentingEl, currentBreakpoint } = opts;
|
|
19266
|
+
const { presentingEl, currentBreakpoint, expandToScroll } = opts;
|
|
19180
19267
|
const root = getElementRoot(baseEl);
|
|
19181
19268
|
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
|
|
19182
19269
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
@@ -19185,7 +19272,29 @@ const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
|
|
|
19185
19272
|
.addElement(baseEl)
|
|
19186
19273
|
.easing('cubic-bezier(0.32,0.72,0,1)')
|
|
19187
19274
|
.duration(duration)
|
|
19188
|
-
.addAnimation(wrapperAnimation)
|
|
19275
|
+
.addAnimation(wrapperAnimation)
|
|
19276
|
+
.beforeAddWrite(() => {
|
|
19277
|
+
if (expandToScroll) {
|
|
19278
|
+
// Scroll can only be done when the modal is fully expanded.
|
|
19279
|
+
return;
|
|
19280
|
+
}
|
|
19281
|
+
/**
|
|
19282
|
+
* If expandToScroll is disabled, we need to swap
|
|
19283
|
+
* the visibility to the original, so the footer
|
|
19284
|
+
* dismisses with the modal and doesn't stay
|
|
19285
|
+
* until the modal is removed from the DOM.
|
|
19286
|
+
*/
|
|
19287
|
+
const ionFooter = baseEl.querySelector('ion-footer');
|
|
19288
|
+
if (ionFooter) {
|
|
19289
|
+
const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
|
|
19290
|
+
ionFooter.style.removeProperty('display');
|
|
19291
|
+
ionFooter.removeAttribute('aria-hidden');
|
|
19292
|
+
clonedFooter.style.setProperty('display', 'none');
|
|
19293
|
+
clonedFooter.setAttribute('aria-hidden', 'true');
|
|
19294
|
+
const page = baseEl.querySelector('.ion-page');
|
|
19295
|
+
page.style.removeProperty('padding-bottom');
|
|
19296
|
+
}
|
|
19297
|
+
});
|
|
19189
19298
|
if (presentingEl) {
|
|
19190
19299
|
const isMobile = window.innerWidth < 768;
|
|
19191
19300
|
const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
|
|
@@ -19263,22 +19372,69 @@ const createEnterAnimation = () => {
|
|
|
19263
19372
|
{ offset: 0, opacity: 0.01, transform: 'translateY(40px)' },
|
|
19264
19373
|
{ offset: 1, opacity: 1, transform: `translateY(0px)` },
|
|
19265
19374
|
]);
|
|
19266
|
-
return { backdropAnimation, wrapperAnimation };
|
|
19375
|
+
return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
|
|
19267
19376
|
};
|
|
19268
19377
|
/**
|
|
19269
19378
|
* Md Modal Enter Animation
|
|
19270
19379
|
*/
|
|
19271
19380
|
const mdEnterAnimation$2 = (baseEl, opts) => {
|
|
19272
|
-
const { currentBreakpoint } = opts;
|
|
19381
|
+
const { currentBreakpoint, expandToScroll } = opts;
|
|
19273
19382
|
const root = getElementRoot(baseEl);
|
|
19274
|
-
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
|
|
19383
|
+
const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
|
|
19275
19384
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
19276
19385
|
wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
|
|
19277
|
-
|
|
19386
|
+
// The content animation is only added if scrolling is enabled for
|
|
19387
|
+
// all the breakpoints.
|
|
19388
|
+
expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
|
|
19389
|
+
const baseAnimation = createAnimation()
|
|
19278
19390
|
.addElement(baseEl)
|
|
19279
19391
|
.easing('cubic-bezier(0.36,0.66,0.04,1)')
|
|
19280
19392
|
.duration(280)
|
|
19281
|
-
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
19393
|
+
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
19394
|
+
.beforeAddWrite(() => {
|
|
19395
|
+
if (expandToScroll) {
|
|
19396
|
+
// Scroll can only be done when the modal is fully expanded.
|
|
19397
|
+
return;
|
|
19398
|
+
}
|
|
19399
|
+
/**
|
|
19400
|
+
* There are some browsers that causes flickering when
|
|
19401
|
+
* dragging the content when scroll is enabled at every
|
|
19402
|
+
* breakpoint. This is due to the wrapper element being
|
|
19403
|
+
* transformed off the screen and having a snap animation.
|
|
19404
|
+
*
|
|
19405
|
+
* A workaround is to clone the footer element and append
|
|
19406
|
+
* it outside of the wrapper element. This way, the footer
|
|
19407
|
+
* is still visible and the drag can be done without
|
|
19408
|
+
* flickering. The original footer is hidden until the modal
|
|
19409
|
+
* is dismissed. This maintains the animation of the footer
|
|
19410
|
+
* when the modal is dismissed.
|
|
19411
|
+
*
|
|
19412
|
+
* The workaround needs to be done before the animation starts
|
|
19413
|
+
* so there are no flickering issues.
|
|
19414
|
+
*/
|
|
19415
|
+
const ionFooter = baseEl.querySelector('ion-footer');
|
|
19416
|
+
/**
|
|
19417
|
+
* This check is needed to prevent more than one footer
|
|
19418
|
+
* from being appended to the shadow root.
|
|
19419
|
+
* Otherwise, iOS and MD enter animations would append
|
|
19420
|
+
* the footer twice.
|
|
19421
|
+
*/
|
|
19422
|
+
const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
|
|
19423
|
+
if (ionFooter && !ionFooterAlreadyAppended) {
|
|
19424
|
+
const footerHeight = ionFooter.clientHeight;
|
|
19425
|
+
const clonedFooter = ionFooter.cloneNode(true);
|
|
19426
|
+
baseEl.shadowRoot.appendChild(clonedFooter);
|
|
19427
|
+
ionFooter.style.setProperty('display', 'none');
|
|
19428
|
+
ionFooter.setAttribute('aria-hidden', 'true');
|
|
19429
|
+
// Padding is added to prevent some content from being hidden.
|
|
19430
|
+
const page = baseEl.querySelector('.ion-page');
|
|
19431
|
+
page.style.setProperty('padding-bottom', `${footerHeight}px`);
|
|
19432
|
+
}
|
|
19433
|
+
});
|
|
19434
|
+
if (contentAnimation) {
|
|
19435
|
+
baseAnimation.addAnimation(contentAnimation);
|
|
19436
|
+
}
|
|
19437
|
+
return baseAnimation;
|
|
19282
19438
|
};
|
|
19283
19439
|
|
|
19284
19440
|
const createLeaveAnimation = () => {
|
|
@@ -19293,18 +19449,41 @@ const createLeaveAnimation = () => {
|
|
|
19293
19449
|
* Md Modal Leave Animation
|
|
19294
19450
|
*/
|
|
19295
19451
|
const mdLeaveAnimation$2 = (baseEl, opts) => {
|
|
19296
|
-
const { currentBreakpoint } = opts;
|
|
19452
|
+
const { currentBreakpoint, expandToScroll } = opts;
|
|
19297
19453
|
const root = getElementRoot(baseEl);
|
|
19298
19454
|
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation();
|
|
19299
19455
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
19300
19456
|
wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
|
|
19301
|
-
|
|
19457
|
+
const baseAnimation = createAnimation()
|
|
19302
19458
|
.easing('cubic-bezier(0.47,0,0.745,0.715)')
|
|
19303
19459
|
.duration(200)
|
|
19304
|
-
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
19460
|
+
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
19461
|
+
.beforeAddWrite(() => {
|
|
19462
|
+
if (expandToScroll) {
|
|
19463
|
+
// Scroll can only be done when the modal is fully expanded.
|
|
19464
|
+
return;
|
|
19465
|
+
}
|
|
19466
|
+
/**
|
|
19467
|
+
* If expandToScroll is disabled, we need to swap
|
|
19468
|
+
* the visibility to the original, so the footer
|
|
19469
|
+
* dismisses with the modal and doesn't stay
|
|
19470
|
+
* until the modal is removed from the DOM.
|
|
19471
|
+
*/
|
|
19472
|
+
const ionFooter = baseEl.querySelector('ion-footer');
|
|
19473
|
+
if (ionFooter) {
|
|
19474
|
+
const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
|
|
19475
|
+
ionFooter.style.removeProperty('display');
|
|
19476
|
+
ionFooter.removeAttribute('aria-hidden');
|
|
19477
|
+
clonedFooter.style.setProperty('display', 'none');
|
|
19478
|
+
clonedFooter.setAttribute('aria-hidden', 'true');
|
|
19479
|
+
const page = baseEl.querySelector('.ion-page');
|
|
19480
|
+
page.style.removeProperty('padding-bottom');
|
|
19481
|
+
}
|
|
19482
|
+
});
|
|
19483
|
+
return baseAnimation;
|
|
19305
19484
|
};
|
|
19306
19485
|
|
|
19307
|
-
const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
|
|
19486
|
+
const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], expandToScroll, getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
|
|
19308
19487
|
// Defaults for the sheet swipe animation
|
|
19309
19488
|
const defaultBackdrop = [
|
|
19310
19489
|
{ offset: 0, opacity: 'var(--backdrop-opacity)' },
|
|
@@ -19321,6 +19500,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19321
19500
|
{ offset: 1, transform: 'translateY(100%)' },
|
|
19322
19501
|
],
|
|
19323
19502
|
BACKDROP_KEYFRAMES: backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop,
|
|
19503
|
+
CONTENT_KEYFRAMES: [
|
|
19504
|
+
{ offset: 0, maxHeight: '100%' },
|
|
19505
|
+
{ offset: 1, maxHeight: '0%' },
|
|
19506
|
+
],
|
|
19324
19507
|
};
|
|
19325
19508
|
const contentEl = baseEl.querySelector('ion-content');
|
|
19326
19509
|
const height = wrapperEl.clientHeight;
|
|
@@ -19328,10 +19511,11 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19328
19511
|
let offset = 0;
|
|
19329
19512
|
let canDismissBlocksGesture = false;
|
|
19330
19513
|
const canDismissMaxStep = 0.95;
|
|
19331
|
-
const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
|
|
19332
|
-
const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
|
|
19333
19514
|
const maxBreakpoint = breakpoints[breakpoints.length - 1];
|
|
19334
19515
|
const minBreakpoint = breakpoints[0];
|
|
19516
|
+
const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
|
|
19517
|
+
const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
|
|
19518
|
+
const contentAnimation = animation.childAnimations.find((ani) => ani.id === 'contentAnimation');
|
|
19335
19519
|
const enableBackdrop = () => {
|
|
19336
19520
|
baseEl.style.setProperty('pointer-events', 'auto');
|
|
19337
19521
|
backdropEl.style.setProperty('pointer-events', 'auto');
|
|
@@ -19354,6 +19538,31 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19354
19538
|
*/
|
|
19355
19539
|
baseEl.classList.add(FOCUS_TRAP_DISABLE_CLASS);
|
|
19356
19540
|
};
|
|
19541
|
+
/**
|
|
19542
|
+
* Toggles the visible modal footer when `expandToScroll` is disabled.
|
|
19543
|
+
* @param footer The footer to show.
|
|
19544
|
+
*/
|
|
19545
|
+
const swapFooterVisibility = (footer) => {
|
|
19546
|
+
const originalFooter = baseEl.querySelector('ion-footer');
|
|
19547
|
+
if (!originalFooter) {
|
|
19548
|
+
return;
|
|
19549
|
+
}
|
|
19550
|
+
const clonedFooter = wrapperEl.nextElementSibling;
|
|
19551
|
+
const footerToHide = footer === 'original' ? clonedFooter : originalFooter;
|
|
19552
|
+
const footerToShow = footer === 'original' ? originalFooter : clonedFooter;
|
|
19553
|
+
footerToShow.style.removeProperty('display');
|
|
19554
|
+
footerToShow.removeAttribute('aria-hidden');
|
|
19555
|
+
const page = baseEl.querySelector('.ion-page');
|
|
19556
|
+
if (footer === 'original') {
|
|
19557
|
+
page.style.removeProperty('padding-bottom');
|
|
19558
|
+
}
|
|
19559
|
+
else {
|
|
19560
|
+
const pagePadding = footerToShow.clientHeight;
|
|
19561
|
+
page.style.setProperty('padding-bottom', `${pagePadding}px`);
|
|
19562
|
+
}
|
|
19563
|
+
footerToHide.style.setProperty('display', 'none');
|
|
19564
|
+
footerToHide.setAttribute('aria-hidden', 'true');
|
|
19565
|
+
};
|
|
19357
19566
|
/**
|
|
19358
19567
|
* After the entering animation completes,
|
|
19359
19568
|
* we need to set the animation to go from
|
|
@@ -19365,6 +19574,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19365
19574
|
if (wrapperAnimation && backdropAnimation) {
|
|
19366
19575
|
wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
|
|
19367
19576
|
backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
|
|
19577
|
+
contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
|
|
19368
19578
|
animation.progressStart(true, 1 - currentBreakpoint);
|
|
19369
19579
|
/**
|
|
19370
19580
|
* If backdrop is not enabled, then content
|
|
@@ -19381,7 +19591,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19381
19591
|
disableBackdrop();
|
|
19382
19592
|
}
|
|
19383
19593
|
}
|
|
19384
|
-
if (contentEl && currentBreakpoint !== maxBreakpoint) {
|
|
19594
|
+
if (contentEl && currentBreakpoint !== maxBreakpoint && expandToScroll) {
|
|
19385
19595
|
contentEl.scrollY = false;
|
|
19386
19596
|
}
|
|
19387
19597
|
const canStart = (detail) => {
|
|
@@ -19395,6 +19605,13 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19395
19605
|
*/
|
|
19396
19606
|
const contentEl = findClosestIonContent(detail.event.target);
|
|
19397
19607
|
currentBreakpoint = getCurrentBreakpoint();
|
|
19608
|
+
/**
|
|
19609
|
+
* If we have expandToScroll disabled, we should not allow the swipe gesture to start
|
|
19610
|
+
* if the content is being swiped.
|
|
19611
|
+
*/
|
|
19612
|
+
if (!expandToScroll && contentEl) {
|
|
19613
|
+
return false;
|
|
19614
|
+
}
|
|
19398
19615
|
if (currentBreakpoint === 1 && contentEl) {
|
|
19399
19616
|
/**
|
|
19400
19617
|
* The modal should never swipe to close on the content with a refresher.
|
|
@@ -19425,6 +19642,15 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19425
19642
|
* Remove undefined check
|
|
19426
19643
|
*/
|
|
19427
19644
|
canDismissBlocksGesture = baseEl.canDismiss !== undefined && baseEl.canDismiss !== true && minBreakpoint === 0;
|
|
19645
|
+
/**
|
|
19646
|
+
* If expandToScroll is disabled, we need to swap
|
|
19647
|
+
* the footer visibility to the original, so if the modal
|
|
19648
|
+
* is dismissed, the footer dismisses with the modal
|
|
19649
|
+
* and doesn't stay on the screen after the modal is gone.
|
|
19650
|
+
*/
|
|
19651
|
+
if (!expandToScroll) {
|
|
19652
|
+
swapFooterVisibility('original');
|
|
19653
|
+
}
|
|
19428
19654
|
/**
|
|
19429
19655
|
* If we are pulling down, then it is possible we are pulling on the content.
|
|
19430
19656
|
* We do not want scrolling to happen at the same time as the gesture.
|
|
@@ -19540,6 +19766,19 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19540
19766
|
opacity: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(snapToBreakpoint, backdropBreakpoint)})`,
|
|
19541
19767
|
},
|
|
19542
19768
|
]);
|
|
19769
|
+
if (contentAnimation) {
|
|
19770
|
+
/**
|
|
19771
|
+
* The modal content should scroll at any breakpoint when expandToScroll
|
|
19772
|
+
* is disabled. In order to do this, the content needs to be completely
|
|
19773
|
+
* viewable so scrolling can access everything. Otherwise, the default
|
|
19774
|
+
* behavior would show the content off the screen and only allow
|
|
19775
|
+
* scrolling when the sheet is fully expanded.
|
|
19776
|
+
*/
|
|
19777
|
+
contentAnimation.keyframes([
|
|
19778
|
+
{ offset: 0, maxHeight: `${(1 - breakpointOffset) * 100}%` },
|
|
19779
|
+
{ offset: 1, maxHeight: `${snapToBreakpoint * 100}%` },
|
|
19780
|
+
]);
|
|
19781
|
+
}
|
|
19543
19782
|
animation.progressStep(0);
|
|
19544
19783
|
}
|
|
19545
19784
|
/**
|
|
@@ -19547,6 +19786,14 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19547
19786
|
* snapping animation completes.
|
|
19548
19787
|
*/
|
|
19549
19788
|
gesture.enable(false);
|
|
19789
|
+
/**
|
|
19790
|
+
* If expandToScroll is disabled, we need to swap
|
|
19791
|
+
* the footer visibility to the cloned one so the footer
|
|
19792
|
+
* doesn't flicker when the sheet's height is animated.
|
|
19793
|
+
*/
|
|
19794
|
+
if (!expandToScroll && shouldRemainOpen) {
|
|
19795
|
+
swapFooterVisibility('cloned');
|
|
19796
|
+
}
|
|
19550
19797
|
if (shouldPreventDismiss) {
|
|
19551
19798
|
handleCanDismiss(baseEl, animation);
|
|
19552
19799
|
}
|
|
@@ -19554,13 +19801,13 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19554
19801
|
onDismiss();
|
|
19555
19802
|
}
|
|
19556
19803
|
/**
|
|
19557
|
-
*
|
|
19558
|
-
*
|
|
19559
|
-
*
|
|
19560
|
-
*
|
|
19561
|
-
*
|
|
19804
|
+
* Enables scrolling immediately if the sheet is about to fully expand
|
|
19805
|
+
* or if it allows scrolling at any breakpoint. Without this, there would
|
|
19806
|
+
* be a ~500ms delay while the modal animation completes, causing a
|
|
19807
|
+
* noticeable lag. Native iOS allows scrolling as soon as the gesture is
|
|
19808
|
+
* released, so we align with that behavior.
|
|
19562
19809
|
*/
|
|
19563
|
-
if (contentEl && snapToBreakpoint === breakpoints[breakpoints.length - 1]) {
|
|
19810
|
+
if (contentEl && (snapToBreakpoint === breakpoints[breakpoints.length - 1] || !expandToScroll)) {
|
|
19564
19811
|
contentEl.scrollY = true;
|
|
19565
19812
|
}
|
|
19566
19813
|
return new Promise((resolve) => {
|
|
@@ -19578,6 +19825,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19578
19825
|
raf(() => {
|
|
19579
19826
|
wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
|
|
19580
19827
|
backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
|
|
19828
|
+
contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
|
|
19581
19829
|
animation.progressStart(true, 1 - snapToBreakpoint);
|
|
19582
19830
|
currentBreakpoint = snapToBreakpoint;
|
|
19583
19831
|
onBreakpointChange(currentBreakpoint);
|
|
@@ -19630,10 +19878,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19630
19878
|
};
|
|
19631
19879
|
};
|
|
19632
19880
|
|
|
19633
|
-
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}";
|
|
19881
|
+
const modalIosCss = ":host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:\"\"}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.4)}:host(.modal-card),:host(.modal-sheet){--border-radius:10px}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:10px}}.modal-wrapper{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}@media screen and (max-width: 767px){@supports (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - max(30px, var(--ion-safe-area-top)) - 10px)}}@supports not (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - 40px)}}:host(.modal-card) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-card){--backdrop-opacity:0;--width:100%;-ms-flex-align:end;align-items:flex-end}:host(.modal-card) .modal-shadow{display:none}:host(.modal-card) ion-backdrop{pointer-events:none}}@media screen and (min-width: 768px){:host(.modal-card){--width:calc(100% - 120px);--height:calc(100% - (120px + var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));--max-width:720px;--max-height:1000px;--backdrop-opacity:0;--box-shadow:0px 0px 30px 10px rgba(0, 0, 0, 0.1);-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out}:host(.modal-card) .modal-wrapper{-webkit-box-shadow:none;box-shadow:none}:host(.modal-card) .modal-shadow{-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}}:host(.modal-sheet) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer ion-toolbar:first-of-type{padding-top:6px}";
|
|
19634
19882
|
var IonModalIosStyle0 = modalIosCss;
|
|
19635
19883
|
|
|
19636
|
-
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}";
|
|
19884
|
+
const modalMdCss = ":host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:\"\"}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:2px;--box-shadow:0 28px 48px rgba(0, 0, 0, 0.4)}}.modal-wrapper{-webkit-transform:translate3d(0, 40px, 0);transform:translate3d(0, 40px, 0);opacity:0.01}";
|
|
19637
19885
|
var IonModalMdStyle0 = modalMdCss;
|
|
19638
19886
|
|
|
19639
19887
|
// TODO(FW-2832): types
|
|
@@ -19712,6 +19960,7 @@ class Modal {
|
|
|
19712
19960
|
this.enterAnimation = undefined;
|
|
19713
19961
|
this.leaveAnimation = undefined;
|
|
19714
19962
|
this.breakpoints = undefined;
|
|
19963
|
+
this.expandToScroll = true;
|
|
19715
19964
|
this.initialBreakpoint = undefined;
|
|
19716
19965
|
this.backdropBreakpoint = 0;
|
|
19717
19966
|
this.handle = undefined;
|
|
@@ -19927,6 +20176,7 @@ class Modal {
|
|
|
19927
20176
|
presentingEl: presentingElement,
|
|
19928
20177
|
currentBreakpoint: this.initialBreakpoint,
|
|
19929
20178
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
20179
|
+
expandToScroll: this.expandToScroll,
|
|
19930
20180
|
});
|
|
19931
20181
|
/* tslint:disable-next-line */
|
|
19932
20182
|
if (typeof window !== 'undefined') {
|
|
@@ -19977,7 +20227,10 @@ class Modal {
|
|
|
19977
20227
|
// should be in the DOM and referenced by now, except
|
|
19978
20228
|
// for the presenting el
|
|
19979
20229
|
const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$3);
|
|
19980
|
-
const ani = (this.animation = animationBuilder(el, {
|
|
20230
|
+
const ani = (this.animation = animationBuilder(el, {
|
|
20231
|
+
presentingEl: this.presentingElement,
|
|
20232
|
+
expandToScroll: this.expandToScroll,
|
|
20233
|
+
}));
|
|
19981
20234
|
const contentEl = findIonContent(el);
|
|
19982
20235
|
if (!contentEl) {
|
|
19983
20236
|
printIonContentErrorMsg(el);
|
|
@@ -20022,9 +20275,10 @@ class Modal {
|
|
|
20022
20275
|
presentingEl: this.presentingElement,
|
|
20023
20276
|
currentBreakpoint: initialBreakpoint,
|
|
20024
20277
|
backdropBreakpoint,
|
|
20278
|
+
expandToScroll: this.expandToScroll,
|
|
20025
20279
|
}));
|
|
20026
20280
|
ani.progressStart(true, 1);
|
|
20027
|
-
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) => {
|
|
20281
|
+
const { gesture, moveSheetToBreakpoint } = createSheetGesture(this.el, this.backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, ani, this.sortedBreakpoints, this.expandToScroll, () => { var _a; return (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : 0; }, () => this.sheetOnDismiss(), (breakpoint) => {
|
|
20028
20282
|
if (this.currentBreakpoint !== breakpoint) {
|
|
20029
20283
|
this.currentBreakpoint = breakpoint;
|
|
20030
20284
|
this.ionBreakpointDidChange.emit({ breakpoint });
|
|
@@ -20102,6 +20356,7 @@ class Modal {
|
|
|
20102
20356
|
presentingEl: presentingElement,
|
|
20103
20357
|
currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
|
|
20104
20358
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
20359
|
+
expandToScroll: this.expandToScroll,
|
|
20105
20360
|
});
|
|
20106
20361
|
if (dismissed) {
|
|
20107
20362
|
const { delegate } = this.getDelegate();
|
|
@@ -20187,23 +20442,23 @@ class Modal {
|
|
|
20187
20442
|
return true;
|
|
20188
20443
|
}
|
|
20189
20444
|
render() {
|
|
20190
|
-
const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap } = this;
|
|
20445
|
+
const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap, expandToScroll, } = this;
|
|
20191
20446
|
const showHandle = handle !== false && isSheetModal;
|
|
20192
20447
|
const mode = getIonMode$1(this);
|
|
20193
20448
|
const isCardModal = presentingElement !== undefined && mode === 'ios';
|
|
20194
20449
|
const isHandleCycle = handleBehavior === 'cycle';
|
|
20195
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
20450
|
+
return (hAsync(Host, Object.assign({ key: 'ff15df63e72caaeb0a4ad68e9eedeaaa7d3f3bde', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
|
|
20196
20451
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
20197
|
-
}, 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 }), hAsync("ion-backdrop", { key: '
|
|
20452
|
+
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), hAsync("ion-backdrop", { key: '27a73655779af9d175a829d3d2d29e42fd2a63ee', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: '406a65080087e7895026ecc2f04e9d707439e86f', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '8e410eb925374158996c82cbbd522f07d741679e',
|
|
20198
20453
|
/*
|
|
20199
20454
|
role and aria-modal must be used on the
|
|
20200
20455
|
same element. They must also be set inside the
|
|
20201
20456
|
shadow DOM otherwise ion-button will not be highlighted
|
|
20202
20457
|
when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
|
|
20203
20458
|
*/
|
|
20204
|
-
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '
|
|
20459
|
+
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '7326c969ebe5a70a35e83b09d3db2bb848c90e47', class: "modal-handle",
|
|
20205
20460
|
// Prevents the handle from receiving keyboard focus when it does not cycle
|
|
20206
|
-
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), hAsync("slot", { key: '
|
|
20461
|
+
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), hAsync("slot", { key: '0b65cdb9e337a27edf437b9e754e79f1449c217d' }))));
|
|
20207
20462
|
}
|
|
20208
20463
|
get el() { return getElement(this); }
|
|
20209
20464
|
static get watchers() { return {
|
|
@@ -20225,6 +20480,7 @@ class Modal {
|
|
|
20225
20480
|
"enterAnimation": [16],
|
|
20226
20481
|
"leaveAnimation": [16],
|
|
20227
20482
|
"breakpoints": [16],
|
|
20483
|
+
"expandToScroll": [4, "expand-to-scroll"],
|
|
20228
20484
|
"initialBreakpoint": [2, "initial-breakpoint"],
|
|
20229
20485
|
"backdropBreakpoint": [2, "backdrop-breakpoint"],
|
|
20230
20486
|
"handle": [4],
|
|
@@ -29325,35 +29581,7 @@ class SegmentButton {
|
|
|
29325
29581
|
valueChanged() {
|
|
29326
29582
|
this.updateState();
|
|
29327
29583
|
}
|
|
29328
|
-
|
|
29329
|
-
return new Promise((resolve, reject) => {
|
|
29330
|
-
let timeoutId = undefined;
|
|
29331
|
-
let animationFrameId;
|
|
29332
|
-
const check = () => {
|
|
29333
|
-
if (!ionSegment) {
|
|
29334
|
-
reject(new Error(`Segment not found when looking for Segment Content`));
|
|
29335
|
-
return;
|
|
29336
|
-
}
|
|
29337
|
-
const segmentView = getNextSiblingOfType(ionSegment); // Skip the text nodes
|
|
29338
|
-
const segmentContent = segmentView === null || segmentView === void 0 ? void 0 : segmentView.querySelector(`ion-segment-content[id="${contentId}"]`);
|
|
29339
|
-
if (segmentContent && timeoutId) {
|
|
29340
|
-
clearTimeout(timeoutId); // Clear the timeout if the segmentContent is found
|
|
29341
|
-
cancelAnimationFrame(animationFrameId);
|
|
29342
|
-
resolve(segmentContent);
|
|
29343
|
-
}
|
|
29344
|
-
else {
|
|
29345
|
-
animationFrameId = requestAnimationFrame(check); // Keep checking on the next animation frame
|
|
29346
|
-
}
|
|
29347
|
-
};
|
|
29348
|
-
check();
|
|
29349
|
-
// Set a timeout to reject the promise
|
|
29350
|
-
timeoutId = setTimeout(() => {
|
|
29351
|
-
cancelAnimationFrame(animationFrameId);
|
|
29352
|
-
reject(new Error(`Unable to find Segment Content with id="${contentId} within 1000 ms`));
|
|
29353
|
-
}, 1000);
|
|
29354
|
-
});
|
|
29355
|
-
}
|
|
29356
|
-
async connectedCallback() {
|
|
29584
|
+
connectedCallback() {
|
|
29357
29585
|
const segmentEl = (this.segmentEl = this.el.closest('ion-segment'));
|
|
29358
29586
|
if (segmentEl) {
|
|
29359
29587
|
this.updateState();
|
|
@@ -29363,14 +29591,11 @@ class SegmentButton {
|
|
|
29363
29591
|
// Return if there is no contentId defined
|
|
29364
29592
|
if (!this.contentId)
|
|
29365
29593
|
return;
|
|
29366
|
-
|
|
29367
|
-
|
|
29368
|
-
|
|
29369
|
-
|
|
29370
|
-
|
|
29371
|
-
catch (error) {
|
|
29372
|
-
// If no associated Segment Content exists, log an error and return
|
|
29373
|
-
console.error('Segment Button: ', error.message);
|
|
29594
|
+
// Attempt to find the Segment Content by its contentId
|
|
29595
|
+
const segmentContent = document.getElementById(this.contentId);
|
|
29596
|
+
// If no associated Segment Content exists, log an error and return
|
|
29597
|
+
if (!segmentContent) {
|
|
29598
|
+
console.error(`Segment Button: Unable to find Segment Content with id="${this.contentId}".`);
|
|
29374
29599
|
return;
|
|
29375
29600
|
}
|
|
29376
29601
|
// Ensure the found element is a valid ION-SEGMENT-CONTENT
|
|
@@ -29416,7 +29641,7 @@ class SegmentButton {
|
|
|
29416
29641
|
const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
|
|
29417
29642
|
const mode = getIonMode$1(this);
|
|
29418
29643
|
const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
|
|
29419
|
-
return (hAsync(Host, { key: '
|
|
29644
|
+
return (hAsync(Host, { key: 'd50a5d5e2f6206e8523598f258d8217d2903f69b', class: {
|
|
29420
29645
|
[mode]: true,
|
|
29421
29646
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
29422
29647
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
@@ -29432,7 +29657,7 @@ class SegmentButton {
|
|
|
29432
29657
|
'ion-activatable': true,
|
|
29433
29658
|
'ion-activatable-instant': true,
|
|
29434
29659
|
'ion-focusable': true,
|
|
29435
|
-
} }, hAsync("button", Object.assign({ key: '
|
|
29660
|
+
} }, hAsync("button", Object.assign({ key: 'b4f6f145286ba8ab79669e11035b906daa85ae7e', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), hAsync("span", { key: '67965996c9ffe70553875e00d3da0ae5b2b1d814', class: "button-inner" }, hAsync("slot", { key: '5087988fe45a8fdf388ec44c395d0b745b207806' })), mode === 'md' && hAsync("ion-ripple-effect", { key: 'b24858de0750bbc769b3183fac0077dfe817ba27' })), hAsync("div", { key: '97b4359432acd1c9da0816360cd1df9472e183f7', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, hAsync("div", { key: '0561738ea15b0986f4ed3d8276d5e6f2d13f7e51', part: "indicator-background", class: "segment-button-indicator-background" }))));
|
|
29436
29661
|
}
|
|
29437
29662
|
get el() { return getElement(this); }
|
|
29438
29663
|
static get watchers() { return {
|
|
@@ -29699,6 +29924,7 @@ class Select {
|
|
|
29699
29924
|
this.expandedIcon = undefined;
|
|
29700
29925
|
this.shape = undefined;
|
|
29701
29926
|
this.value = undefined;
|
|
29927
|
+
this.required = false;
|
|
29702
29928
|
}
|
|
29703
29929
|
styleChanged() {
|
|
29704
29930
|
this.emitStyle();
|
|
@@ -30183,8 +30409,8 @@ class Select {
|
|
|
30183
30409
|
return renderedLabel;
|
|
30184
30410
|
}
|
|
30185
30411
|
renderListbox() {
|
|
30186
|
-
const { disabled, inputId, isExpanded } = this;
|
|
30187
|
-
return (hAsync("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "dialog", "aria-expanded": `${isExpanded}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
|
|
30412
|
+
const { disabled, inputId, isExpanded, required } = this;
|
|
30413
|
+
return (hAsync("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "dialog", "aria-expanded": `${isExpanded}`, "aria-required": `${required}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
|
|
30188
30414
|
}
|
|
30189
30415
|
render() {
|
|
30190
30416
|
const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, shape, name, value } = this;
|
|
@@ -30215,7 +30441,7 @@ class Select {
|
|
|
30215
30441
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
30216
30442
|
*/
|
|
30217
30443
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
|
|
30218
|
-
return (hAsync(Host, { key: '
|
|
30444
|
+
return (hAsync(Host, { key: '491cf1b0e3aa31e7c9cfad3e87d83eb54272312a', onClick: this.onClick, class: createColorClasses$1(this.color, {
|
|
30219
30445
|
[mode]: true,
|
|
30220
30446
|
'in-item': inItem,
|
|
30221
30447
|
'in-item-color': hostContext('ion-item.ion-color', el),
|
|
@@ -30231,7 +30457,7 @@ class Select {
|
|
|
30231
30457
|
[`select-justify-${justify}`]: justifyEnabled,
|
|
30232
30458
|
[`select-shape-${shape}`]: shape !== undefined,
|
|
30233
30459
|
[`select-label-placement-${labelPlacement}`]: true,
|
|
30234
|
-
}) }, hAsync("label", { key: '
|
|
30460
|
+
}) }, hAsync("label", { key: '07bf3cb57bd1121383d8c746e3ac49da38300082', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), hAsync("div", { key: '884facd18342797576bbacc761d18d83c52762e3', class: "select-wrapper-inner" }, hAsync("slot", { key: 'c4f2a2a7a76f52db15f9a0b806017caea443c47a', name: "start" }), hAsync("div", { key: '235cf383f268cc74412722cd31e246cbd4c2abe5', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: '1481302e11c494d49dfd80a7aaf743f7e851558f', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: '8a45ea9280651695c8e5435f266c286f3e3f6a18', class: "select-highlight" }))));
|
|
30235
30461
|
}
|
|
30236
30462
|
get el() { return getElement(this); }
|
|
30237
30463
|
static get watchers() { return {
|
|
@@ -30267,6 +30493,7 @@ class Select {
|
|
|
30267
30493
|
"expandedIcon": [1, "expanded-icon"],
|
|
30268
30494
|
"shape": [1],
|
|
30269
30495
|
"value": [1032],
|
|
30496
|
+
"required": [4],
|
|
30270
30497
|
"isExpanded": [32],
|
|
30271
30498
|
"open": [64]
|
|
30272
30499
|
},
|
|
@@ -32663,6 +32890,7 @@ class Toggle {
|
|
|
32663
32890
|
this.labelPlacement = 'start';
|
|
32664
32891
|
this.justify = undefined;
|
|
32665
32892
|
this.alignment = undefined;
|
|
32893
|
+
this.required = false;
|
|
32666
32894
|
}
|
|
32667
32895
|
disabledChanged() {
|
|
32668
32896
|
if (this.gesture) {
|
|
@@ -32744,12 +32972,12 @@ class Toggle {
|
|
|
32744
32972
|
return this.el.textContent !== '';
|
|
32745
32973
|
}
|
|
32746
32974
|
render() {
|
|
32747
|
-
const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment } = this;
|
|
32975
|
+
const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment, required } = this;
|
|
32748
32976
|
const mode = getIonMode$1(this);
|
|
32749
32977
|
const value = this.getValue();
|
|
32750
32978
|
const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
|
|
32751
32979
|
renderHiddenInput(true, el, name, checked ? value : '', disabled);
|
|
32752
|
-
return (hAsync(Host, { key: '
|
|
32980
|
+
return (hAsync(Host, { key: 'ed75573caa6e37011f1453dd7f723fb9bd8a3656', onClick: this.onClick, class: createColorClasses$1(color, {
|
|
32753
32981
|
[mode]: true,
|
|
32754
32982
|
'in-item': hostContext('ion-item', el),
|
|
32755
32983
|
'toggle-activated': activated,
|
|
@@ -32759,10 +32987,10 @@ class Toggle {
|
|
|
32759
32987
|
[`toggle-alignment-${alignment}`]: alignment !== undefined,
|
|
32760
32988
|
[`toggle-label-placement-${labelPlacement}`]: true,
|
|
32761
32989
|
[`toggle-${rtl}`]: true,
|
|
32762
|
-
}) }, hAsync("label", { key: '
|
|
32990
|
+
}) }, hAsync("label", { key: '484860e2a33f4d123904edb96159f0e1972d3add', class: "toggle-wrapper" }, hAsync("input", Object.assign({ key: '360b53080aacfd99a9ff60ffb5219816bd4163ee', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl), required: required }, this.inheritedAttributes)), hAsync("div", { key: 'f7239fa668fe11257239ea30cf0198e4f3274f6b', class: {
|
|
32763
32991
|
'label-text-wrapper': true,
|
|
32764
32992
|
'label-text-wrapper-hidden': !this.hasLabel,
|
|
32765
|
-
}, part: "label" }, hAsync("slot", { key: '
|
|
32993
|
+
}, part: "label" }, hAsync("slot", { key: '9495a4a39889822ee68e0d89dc5a2f863d1feb3c' })), hAsync("div", { key: '55f1eb08c4b705e94fbcf02220bbe1d292f06155', class: "native-wrapper" }, this.renderToggleControl()))));
|
|
32766
32994
|
}
|
|
32767
32995
|
get el() { return getElement(this); }
|
|
32768
32996
|
static get watchers() { return {
|
|
@@ -32785,6 +33013,7 @@ class Toggle {
|
|
|
32785
33013
|
"labelPlacement": [1, "label-placement"],
|
|
32786
33014
|
"justify": [1],
|
|
32787
33015
|
"alignment": [1],
|
|
33016
|
+
"required": [4],
|
|
32788
33017
|
"activated": [32]
|
|
32789
33018
|
},
|
|
32790
33019
|
"$listeners$": undefined,
|
|
@@ -32816,6 +33045,10 @@ var IonToolbarMdStyle0 = toolbarMdCss;
|
|
|
32816
33045
|
* @slot secondary - Content is placed to the left of the toolbar text in `ios` mode, and directly to the right in `md` mode.
|
|
32817
33046
|
* @slot primary - Content is placed to the right of the toolbar text in `ios` mode, and to the far right in `md` mode.
|
|
32818
33047
|
* @slot end - Content is placed to the right of the toolbar text in LTR, and to the left in RTL.
|
|
33048
|
+
*
|
|
33049
|
+
* @part background - The background of the toolbar, covering the entire area behind the toolbar content.
|
|
33050
|
+
* @part container - The container that wraps all toolbar content, including the default slot and named slot content.
|
|
33051
|
+
* @part content - The container for the default slot, wrapping content provided without a named slot.
|
|
32819
33052
|
*/
|
|
32820
33053
|
class Toolbar {
|
|
32821
33054
|
constructor(hostRef) {
|
|
@@ -32866,10 +33099,10 @@ class Toolbar {
|
|
|
32866
33099
|
this.childrenStyles.forEach((value) => {
|
|
32867
33100
|
Object.assign(childStyles, value);
|
|
32868
33101
|
});
|
|
32869
|
-
return (hAsync(Host, { key: '
|
|
33102
|
+
return (hAsync(Host, { key: '4fdc9ae82a93237cc28ceb95b0ebd8069b62839d', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
|
|
32870
33103
|
[mode]: true,
|
|
32871
33104
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
32872
|
-
})) }, hAsync("div", { key: '
|
|
33105
|
+
})) }, hAsync("div", { key: '443a216362bbbf1c149ed12140d52b0f0ea2d664', class: "toolbar-background", part: "background" }), hAsync("div", { key: '1df87f4027d605e42757a13d4828df45b90a4fdc', class: "toolbar-container", part: "container" }, hAsync("slot", { key: 'f66f34972be8e3f4915b9c6f5808600dbaedb1ea', name: "start" }), hAsync("slot", { key: '14f38b0975e956f404c4eb3ee56f2055c6615276', name: "secondary" }), hAsync("div", { key: '75ba5953a25c7544793484d2b245792cb0a5af75', class: "toolbar-content", part: "content" }, hAsync("slot", { key: '149dfa58ff7106f318fecb4134e7c69edf8bc231' })), hAsync("slot", { key: '807ab9ad21d7f1d9d427a4086460bcb9e5e8c019', name: "primary" }), hAsync("slot", { key: 'bd2f9da95d2fa8e74dc6e0666587ceecbba99d9f', name: "end" }))));
|
|
32873
33106
|
}
|
|
32874
33107
|
get el() { return getElement(this); }
|
|
32875
33108
|
static get style() { return {
|