@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.js
CHANGED
|
@@ -2710,16 +2710,6 @@ const shallowEqualStringMap = (map1, map2) => {
|
|
|
2710
2710
|
}
|
|
2711
2711
|
return true;
|
|
2712
2712
|
};
|
|
2713
|
-
const getNextSiblingOfType = (element) => {
|
|
2714
|
-
let sibling = element.nextSibling;
|
|
2715
|
-
while (sibling) {
|
|
2716
|
-
if (sibling.nodeType === Node.ELEMENT_NODE && sibling !== null) {
|
|
2717
|
-
return sibling;
|
|
2718
|
-
}
|
|
2719
|
-
sibling = sibling.nextSibling;
|
|
2720
|
-
}
|
|
2721
|
-
return null;
|
|
2722
|
-
};
|
|
2723
2713
|
|
|
2724
2714
|
/* Ionicons v7.2.2, ES Modules */
|
|
2725
2715
|
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>";
|
|
@@ -2845,8 +2835,7 @@ const isHybrid = (win) => isCordova(win) || isCapacitorNative(win);
|
|
|
2845
2835
|
const isCordova = (win) => !!(win['cordova'] || win['phonegap'] || win['PhoneGap']);
|
|
2846
2836
|
const isCapacitorNative = (win) => {
|
|
2847
2837
|
const capacitor = win['Capacitor'];
|
|
2848
|
-
|
|
2849
|
-
return !!((capacitor === null || capacitor === void 0 ? void 0 : capacitor.isNative) || ((capacitor === null || capacitor === void 0 ? void 0 : capacitor.isNativePlatform) && !!capacitor.isNativePlatform()));
|
|
2838
|
+
return !!(capacitor === null || capacitor === void 0 ? void 0 : capacitor.isNative);
|
|
2850
2839
|
};
|
|
2851
2840
|
const isElectron = (win) => testUserAgent(win, /electron/i);
|
|
2852
2841
|
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); };
|
|
@@ -3228,9 +3217,12 @@ let accordionIds = 0;
|
|
|
3228
3217
|
* @param message - The string message to be logged to the console.
|
|
3229
3218
|
*/
|
|
3230
3219
|
const printIonWarning = (message, ...params) => {
|
|
3231
|
-
|
|
3220
|
+
const logLevel = config.get('logLevel', "WARN" /* LogLevel.WARN */);
|
|
3221
|
+
if (["WARN" /* LogLevel.WARN */].includes(logLevel)) {
|
|
3222
|
+
return console.warn(`[Ionic Warning]: ${message}`, ...params);
|
|
3223
|
+
}
|
|
3232
3224
|
};
|
|
3233
|
-
|
|
3225
|
+
/**
|
|
3234
3226
|
* Logs an error to the console with an Ionic prefix
|
|
3235
3227
|
* to indicate the library that is warning the developer.
|
|
3236
3228
|
*
|
|
@@ -3238,7 +3230,10 @@ const printIonWarning = (message, ...params) => {
|
|
|
3238
3230
|
* @param params - Additional arguments to supply to the console.error.
|
|
3239
3231
|
*/
|
|
3240
3232
|
const printIonError = (message, ...params) => {
|
|
3241
|
-
|
|
3233
|
+
const logLevel = config.get('logLevel', "ERROR" /* LogLevel.ERROR */);
|
|
3234
|
+
if (["ERROR" /* LogLevel.ERROR */, "WARN" /* LogLevel.WARN */].includes(logLevel)) {
|
|
3235
|
+
return console.error(`[Ionic Error]: ${message}`, ...params);
|
|
3236
|
+
}
|
|
3242
3237
|
};
|
|
3243
3238
|
/**
|
|
3244
3239
|
* Prints an error informing developers that an implementation requires an element to be used
|
|
@@ -8439,10 +8434,10 @@ class CardTitle {
|
|
|
8439
8434
|
}; }
|
|
8440
8435
|
}
|
|
8441
8436
|
|
|
8442
|
-
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}
|
|
8437
|
+
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}";
|
|
8443
8438
|
var IonCheckboxIosStyle0 = checkboxIosCss;
|
|
8444
8439
|
|
|
8445
|
-
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}
|
|
8440
|
+
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}";
|
|
8446
8441
|
var IonCheckboxMdStyle0 = checkboxMdCss;
|
|
8447
8442
|
|
|
8448
8443
|
/**
|
|
@@ -8453,6 +8448,9 @@ var IonCheckboxMdStyle0 = checkboxMdCss;
|
|
|
8453
8448
|
* @part container - The container for the checkbox mark.
|
|
8454
8449
|
* @part label - The label text describing the checkbox.
|
|
8455
8450
|
* @part mark - The checkmark used to indicate the checked state.
|
|
8451
|
+
* @part supporting-text - Supporting text displayed beneath the checkbox label.
|
|
8452
|
+
* @part helper-text - Supporting text displayed beneath the checkbox label when the checkbox is valid.
|
|
8453
|
+
* @part error-text - Supporting text displayed beneath the checkbox label when the checkbox is invalid and touched.
|
|
8456
8454
|
*/
|
|
8457
8455
|
class Checkbox {
|
|
8458
8456
|
constructor(hostRef) {
|
|
@@ -8461,6 +8459,8 @@ class Checkbox {
|
|
|
8461
8459
|
this.ionFocus = createEvent(this, "ionFocus", 7);
|
|
8462
8460
|
this.ionBlur = createEvent(this, "ionBlur", 7);
|
|
8463
8461
|
this.inputId = `ion-cb-${checkboxIds++}`;
|
|
8462
|
+
this.helperTextId = `${this.inputId}-helper-text`;
|
|
8463
|
+
this.errorTextId = `${this.inputId}-error-text`;
|
|
8464
8464
|
this.inheritedAttributes = {};
|
|
8465
8465
|
/**
|
|
8466
8466
|
* Sets the checked property and emits
|
|
@@ -8498,10 +8498,13 @@ class Checkbox {
|
|
|
8498
8498
|
this.checked = false;
|
|
8499
8499
|
this.indeterminate = false;
|
|
8500
8500
|
this.disabled = false;
|
|
8501
|
+
this.errorText = undefined;
|
|
8502
|
+
this.helperText = undefined;
|
|
8501
8503
|
this.value = 'on';
|
|
8502
8504
|
this.labelPlacement = 'start';
|
|
8503
8505
|
this.justify = undefined;
|
|
8504
8506
|
this.alignment = undefined;
|
|
8507
|
+
this.required = false;
|
|
8505
8508
|
}
|
|
8506
8509
|
componentWillLoad() {
|
|
8507
8510
|
this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
|
|
@@ -8512,12 +8515,38 @@ class Checkbox {
|
|
|
8512
8515
|
this.focusEl.focus();
|
|
8513
8516
|
}
|
|
8514
8517
|
}
|
|
8518
|
+
getHintTextID() {
|
|
8519
|
+
const { el, helperText, errorText, helperTextId, errorTextId } = this;
|
|
8520
|
+
if (el.classList.contains('ion-touched') && el.classList.contains('ion-invalid') && errorText) {
|
|
8521
|
+
return errorTextId;
|
|
8522
|
+
}
|
|
8523
|
+
if (helperText) {
|
|
8524
|
+
return helperTextId;
|
|
8525
|
+
}
|
|
8526
|
+
return undefined;
|
|
8527
|
+
}
|
|
8528
|
+
/**
|
|
8529
|
+
* Responsible for rendering helper text and error text.
|
|
8530
|
+
* This element should only be rendered if hint text is set.
|
|
8531
|
+
*/
|
|
8532
|
+
renderHintText() {
|
|
8533
|
+
const { helperText, errorText, helperTextId, errorTextId } = this;
|
|
8534
|
+
/**
|
|
8535
|
+
* undefined and empty string values should
|
|
8536
|
+
* be treated as not having helper/error text.
|
|
8537
|
+
*/
|
|
8538
|
+
const hasHintText = !!helperText || !!errorText;
|
|
8539
|
+
if (!hasHintText) {
|
|
8540
|
+
return;
|
|
8541
|
+
}
|
|
8542
|
+
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)));
|
|
8543
|
+
}
|
|
8515
8544
|
render() {
|
|
8516
|
-
const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, } = this;
|
|
8545
|
+
const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, required, } = this;
|
|
8517
8546
|
const mode = getIonMode$1(this);
|
|
8518
8547
|
const path = getSVGPath(mode, indeterminate);
|
|
8519
8548
|
renderHiddenInput(true, el, name, checked ? value : '', disabled);
|
|
8520
|
-
return (hAsync(Host, { key: '
|
|
8549
|
+
return (hAsync(Host, { key: '7ac31df89b07c781ddcd30a6a8c109494d0c500a', "aria-checked": indeterminate ? 'mixed' : `${checked}`, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId, class: createColorClasses$1(color, {
|
|
8521
8550
|
[mode]: true,
|
|
8522
8551
|
'in-item': hostContext('ion-item', el),
|
|
8523
8552
|
'checkbox-checked': checked,
|
|
@@ -8527,10 +8556,10 @@ class Checkbox {
|
|
|
8527
8556
|
[`checkbox-justify-${justify}`]: justify !== undefined,
|
|
8528
8557
|
[`checkbox-alignment-${alignment}`]: alignment !== undefined,
|
|
8529
8558
|
[`checkbox-label-placement-${labelPlacement}`]: true,
|
|
8530
|
-
}), onClick: this.onClick }, hAsync("label", { key: '
|
|
8559
|
+
}), 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: {
|
|
8531
8560
|
'label-text-wrapper': true,
|
|
8532
8561
|
'label-text-wrapper-hidden': el.textContent === '',
|
|
8533
|
-
}, part: "label" }, hAsync("slot", { key: '
|
|
8562
|
+
}, 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)))));
|
|
8534
8563
|
}
|
|
8535
8564
|
getSVGPath(mode, indeterminate) {
|
|
8536
8565
|
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" }));
|
|
@@ -8553,10 +8582,13 @@ class Checkbox {
|
|
|
8553
8582
|
"checked": [1028],
|
|
8554
8583
|
"indeterminate": [1028],
|
|
8555
8584
|
"disabled": [4],
|
|
8585
|
+
"errorText": [1, "error-text"],
|
|
8586
|
+
"helperText": [1, "helper-text"],
|
|
8556
8587
|
"value": [8],
|
|
8557
8588
|
"labelPlacement": [1, "label-placement"],
|
|
8558
8589
|
"justify": [1],
|
|
8559
8590
|
"alignment": [1],
|
|
8591
|
+
"required": [4],
|
|
8560
8592
|
"setFocus": [64]
|
|
8561
8593
|
},
|
|
8562
8594
|
"$listeners$": undefined,
|
|
@@ -19032,7 +19064,7 @@ const computeDuration = (remaining, velocity) => {
|
|
|
19032
19064
|
};
|
|
19033
19065
|
|
|
19034
19066
|
const createSheetEnterAnimation = (opts) => {
|
|
19035
|
-
const { currentBreakpoint, backdropBreakpoint } = opts;
|
|
19067
|
+
const { currentBreakpoint, backdropBreakpoint, expandToScroll } = opts;
|
|
19036
19068
|
/**
|
|
19037
19069
|
* If the backdropBreakpoint is undefined, then the backdrop
|
|
19038
19070
|
* should always fade in. If the backdropBreakpoint came before the
|
|
@@ -19052,7 +19084,16 @@ const createSheetEnterAnimation = (opts) => {
|
|
|
19052
19084
|
{ offset: 0, opacity: 1, transform: 'translateY(100%)' },
|
|
19053
19085
|
{ offset: 1, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
|
|
19054
19086
|
]);
|
|
19055
|
-
|
|
19087
|
+
/**
|
|
19088
|
+
* This allows the content to be scrollable at any breakpoint.
|
|
19089
|
+
*/
|
|
19090
|
+
const contentAnimation = !expandToScroll
|
|
19091
|
+
? createAnimation('contentAnimation').keyframes([
|
|
19092
|
+
{ offset: 0, opacity: 1, maxHeight: `${(1 - currentBreakpoint) * 100}%` },
|
|
19093
|
+
{ offset: 1, opacity: 1, maxHeight: `${currentBreakpoint * 100}%` },
|
|
19094
|
+
])
|
|
19095
|
+
: undefined;
|
|
19096
|
+
return { wrapperAnimation, backdropAnimation, contentAnimation };
|
|
19056
19097
|
};
|
|
19057
19098
|
const createSheetLeaveAnimation = (opts) => {
|
|
19058
19099
|
const { currentBreakpoint, backdropBreakpoint } = opts;
|
|
@@ -19087,22 +19128,68 @@ const createEnterAnimation$1 = () => {
|
|
|
19087
19128
|
})
|
|
19088
19129
|
.afterClearStyles(['pointer-events']);
|
|
19089
19130
|
const wrapperAnimation = createAnimation().fromTo('transform', 'translateY(100vh)', 'translateY(0vh)');
|
|
19090
|
-
return { backdropAnimation, wrapperAnimation };
|
|
19131
|
+
return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
|
|
19091
19132
|
};
|
|
19092
19133
|
/**
|
|
19093
19134
|
* iOS Modal Enter Animation for the Card presentation style
|
|
19094
19135
|
*/
|
|
19095
19136
|
const iosEnterAnimation$3 = (baseEl, opts) => {
|
|
19096
|
-
const { presentingEl, currentBreakpoint } = opts;
|
|
19137
|
+
const { presentingEl, currentBreakpoint, expandToScroll } = opts;
|
|
19097
19138
|
const root = getElementRoot(baseEl);
|
|
19098
|
-
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
|
|
19139
|
+
const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
|
|
19099
19140
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
19100
19141
|
wrapperAnimation.addElement(root.querySelectorAll('.modal-wrapper, .modal-shadow')).beforeStyles({ opacity: 1 });
|
|
19142
|
+
// The content animation is only added if scrolling is enabled for
|
|
19143
|
+
// all the breakpoints.
|
|
19144
|
+
!expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
|
|
19101
19145
|
const baseAnimation = createAnimation('entering-base')
|
|
19102
19146
|
.addElement(baseEl)
|
|
19103
19147
|
.easing('cubic-bezier(0.32,0.72,0,1)')
|
|
19104
19148
|
.duration(500)
|
|
19105
|
-
.addAnimation(wrapperAnimation)
|
|
19149
|
+
.addAnimation([wrapperAnimation])
|
|
19150
|
+
.beforeAddWrite(() => {
|
|
19151
|
+
if (expandToScroll) {
|
|
19152
|
+
// Scroll can only be done when the modal is fully expanded.
|
|
19153
|
+
return;
|
|
19154
|
+
}
|
|
19155
|
+
/**
|
|
19156
|
+
* There are some browsers that causes flickering when
|
|
19157
|
+
* dragging the content when scroll is enabled at every
|
|
19158
|
+
* breakpoint. This is due to the wrapper element being
|
|
19159
|
+
* transformed off the screen and having a snap animation.
|
|
19160
|
+
*
|
|
19161
|
+
* A workaround is to clone the footer element and append
|
|
19162
|
+
* it outside of the wrapper element. This way, the footer
|
|
19163
|
+
* is still visible and the drag can be done without
|
|
19164
|
+
* flickering. The original footer is hidden until the modal
|
|
19165
|
+
* is dismissed. This maintains the animation of the footer
|
|
19166
|
+
* when the modal is dismissed.
|
|
19167
|
+
*
|
|
19168
|
+
* The workaround needs to be done before the animation starts
|
|
19169
|
+
* so there are no flickering issues.
|
|
19170
|
+
*/
|
|
19171
|
+
const ionFooter = baseEl.querySelector('ion-footer');
|
|
19172
|
+
/**
|
|
19173
|
+
* This check is needed to prevent more than one footer
|
|
19174
|
+
* from being appended to the shadow root.
|
|
19175
|
+
* Otherwise, iOS and MD enter animations would append
|
|
19176
|
+
* the footer twice.
|
|
19177
|
+
*/
|
|
19178
|
+
const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
|
|
19179
|
+
if (ionFooter && !ionFooterAlreadyAppended) {
|
|
19180
|
+
const footerHeight = ionFooter.clientHeight;
|
|
19181
|
+
const clonedFooter = ionFooter.cloneNode(true);
|
|
19182
|
+
baseEl.shadowRoot.appendChild(clonedFooter);
|
|
19183
|
+
ionFooter.style.setProperty('display', 'none');
|
|
19184
|
+
ionFooter.setAttribute('aria-hidden', 'true');
|
|
19185
|
+
// Padding is added to prevent some content from being hidden.
|
|
19186
|
+
const page = baseEl.querySelector('.ion-page');
|
|
19187
|
+
page.style.setProperty('padding-bottom', `${footerHeight}px`);
|
|
19188
|
+
}
|
|
19189
|
+
});
|
|
19190
|
+
if (contentAnimation) {
|
|
19191
|
+
baseAnimation.addAnimation(contentAnimation);
|
|
19192
|
+
}
|
|
19106
19193
|
if (presentingEl) {
|
|
19107
19194
|
const isMobile = window.innerWidth < 768;
|
|
19108
19195
|
const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
|
|
@@ -19180,7 +19267,7 @@ const createLeaveAnimation$1 = () => {
|
|
|
19180
19267
|
* iOS Modal Leave Animation
|
|
19181
19268
|
*/
|
|
19182
19269
|
const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
|
|
19183
|
-
const { presentingEl, currentBreakpoint } = opts;
|
|
19270
|
+
const { presentingEl, currentBreakpoint, expandToScroll } = opts;
|
|
19184
19271
|
const root = getElementRoot(baseEl);
|
|
19185
19272
|
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
|
|
19186
19273
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
@@ -19189,7 +19276,29 @@ const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
|
|
|
19189
19276
|
.addElement(baseEl)
|
|
19190
19277
|
.easing('cubic-bezier(0.32,0.72,0,1)')
|
|
19191
19278
|
.duration(duration)
|
|
19192
|
-
.addAnimation(wrapperAnimation)
|
|
19279
|
+
.addAnimation(wrapperAnimation)
|
|
19280
|
+
.beforeAddWrite(() => {
|
|
19281
|
+
if (expandToScroll) {
|
|
19282
|
+
// Scroll can only be done when the modal is fully expanded.
|
|
19283
|
+
return;
|
|
19284
|
+
}
|
|
19285
|
+
/**
|
|
19286
|
+
* If expandToScroll is disabled, we need to swap
|
|
19287
|
+
* the visibility to the original, so the footer
|
|
19288
|
+
* dismisses with the modal and doesn't stay
|
|
19289
|
+
* until the modal is removed from the DOM.
|
|
19290
|
+
*/
|
|
19291
|
+
const ionFooter = baseEl.querySelector('ion-footer');
|
|
19292
|
+
if (ionFooter) {
|
|
19293
|
+
const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
|
|
19294
|
+
ionFooter.style.removeProperty('display');
|
|
19295
|
+
ionFooter.removeAttribute('aria-hidden');
|
|
19296
|
+
clonedFooter.style.setProperty('display', 'none');
|
|
19297
|
+
clonedFooter.setAttribute('aria-hidden', 'true');
|
|
19298
|
+
const page = baseEl.querySelector('.ion-page');
|
|
19299
|
+
page.style.removeProperty('padding-bottom');
|
|
19300
|
+
}
|
|
19301
|
+
});
|
|
19193
19302
|
if (presentingEl) {
|
|
19194
19303
|
const isMobile = window.innerWidth < 768;
|
|
19195
19304
|
const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
|
|
@@ -19267,22 +19376,69 @@ const createEnterAnimation = () => {
|
|
|
19267
19376
|
{ offset: 0, opacity: 0.01, transform: 'translateY(40px)' },
|
|
19268
19377
|
{ offset: 1, opacity: 1, transform: `translateY(0px)` },
|
|
19269
19378
|
]);
|
|
19270
|
-
return { backdropAnimation, wrapperAnimation };
|
|
19379
|
+
return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
|
|
19271
19380
|
};
|
|
19272
19381
|
/**
|
|
19273
19382
|
* Md Modal Enter Animation
|
|
19274
19383
|
*/
|
|
19275
19384
|
const mdEnterAnimation$2 = (baseEl, opts) => {
|
|
19276
|
-
const { currentBreakpoint } = opts;
|
|
19385
|
+
const { currentBreakpoint, expandToScroll } = opts;
|
|
19277
19386
|
const root = getElementRoot(baseEl);
|
|
19278
|
-
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
|
|
19387
|
+
const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
|
|
19279
19388
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
19280
19389
|
wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
|
|
19281
|
-
|
|
19390
|
+
// The content animation is only added if scrolling is enabled for
|
|
19391
|
+
// all the breakpoints.
|
|
19392
|
+
expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
|
|
19393
|
+
const baseAnimation = createAnimation()
|
|
19282
19394
|
.addElement(baseEl)
|
|
19283
19395
|
.easing('cubic-bezier(0.36,0.66,0.04,1)')
|
|
19284
19396
|
.duration(280)
|
|
19285
|
-
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
19397
|
+
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
19398
|
+
.beforeAddWrite(() => {
|
|
19399
|
+
if (expandToScroll) {
|
|
19400
|
+
// Scroll can only be done when the modal is fully expanded.
|
|
19401
|
+
return;
|
|
19402
|
+
}
|
|
19403
|
+
/**
|
|
19404
|
+
* There are some browsers that causes flickering when
|
|
19405
|
+
* dragging the content when scroll is enabled at every
|
|
19406
|
+
* breakpoint. This is due to the wrapper element being
|
|
19407
|
+
* transformed off the screen and having a snap animation.
|
|
19408
|
+
*
|
|
19409
|
+
* A workaround is to clone the footer element and append
|
|
19410
|
+
* it outside of the wrapper element. This way, the footer
|
|
19411
|
+
* is still visible and the drag can be done without
|
|
19412
|
+
* flickering. The original footer is hidden until the modal
|
|
19413
|
+
* is dismissed. This maintains the animation of the footer
|
|
19414
|
+
* when the modal is dismissed.
|
|
19415
|
+
*
|
|
19416
|
+
* The workaround needs to be done before the animation starts
|
|
19417
|
+
* so there are no flickering issues.
|
|
19418
|
+
*/
|
|
19419
|
+
const ionFooter = baseEl.querySelector('ion-footer');
|
|
19420
|
+
/**
|
|
19421
|
+
* This check is needed to prevent more than one footer
|
|
19422
|
+
* from being appended to the shadow root.
|
|
19423
|
+
* Otherwise, iOS and MD enter animations would append
|
|
19424
|
+
* the footer twice.
|
|
19425
|
+
*/
|
|
19426
|
+
const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
|
|
19427
|
+
if (ionFooter && !ionFooterAlreadyAppended) {
|
|
19428
|
+
const footerHeight = ionFooter.clientHeight;
|
|
19429
|
+
const clonedFooter = ionFooter.cloneNode(true);
|
|
19430
|
+
baseEl.shadowRoot.appendChild(clonedFooter);
|
|
19431
|
+
ionFooter.style.setProperty('display', 'none');
|
|
19432
|
+
ionFooter.setAttribute('aria-hidden', 'true');
|
|
19433
|
+
// Padding is added to prevent some content from being hidden.
|
|
19434
|
+
const page = baseEl.querySelector('.ion-page');
|
|
19435
|
+
page.style.setProperty('padding-bottom', `${footerHeight}px`);
|
|
19436
|
+
}
|
|
19437
|
+
});
|
|
19438
|
+
if (contentAnimation) {
|
|
19439
|
+
baseAnimation.addAnimation(contentAnimation);
|
|
19440
|
+
}
|
|
19441
|
+
return baseAnimation;
|
|
19286
19442
|
};
|
|
19287
19443
|
|
|
19288
19444
|
const createLeaveAnimation = () => {
|
|
@@ -19297,18 +19453,41 @@ const createLeaveAnimation = () => {
|
|
|
19297
19453
|
* Md Modal Leave Animation
|
|
19298
19454
|
*/
|
|
19299
19455
|
const mdLeaveAnimation$2 = (baseEl, opts) => {
|
|
19300
|
-
const { currentBreakpoint } = opts;
|
|
19456
|
+
const { currentBreakpoint, expandToScroll } = opts;
|
|
19301
19457
|
const root = getElementRoot(baseEl);
|
|
19302
19458
|
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation();
|
|
19303
19459
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
19304
19460
|
wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
|
|
19305
|
-
|
|
19461
|
+
const baseAnimation = createAnimation()
|
|
19306
19462
|
.easing('cubic-bezier(0.47,0,0.745,0.715)')
|
|
19307
19463
|
.duration(200)
|
|
19308
|
-
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
19464
|
+
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
19465
|
+
.beforeAddWrite(() => {
|
|
19466
|
+
if (expandToScroll) {
|
|
19467
|
+
// Scroll can only be done when the modal is fully expanded.
|
|
19468
|
+
return;
|
|
19469
|
+
}
|
|
19470
|
+
/**
|
|
19471
|
+
* If expandToScroll is disabled, we need to swap
|
|
19472
|
+
* the visibility to the original, so the footer
|
|
19473
|
+
* dismisses with the modal and doesn't stay
|
|
19474
|
+
* until the modal is removed from the DOM.
|
|
19475
|
+
*/
|
|
19476
|
+
const ionFooter = baseEl.querySelector('ion-footer');
|
|
19477
|
+
if (ionFooter) {
|
|
19478
|
+
const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
|
|
19479
|
+
ionFooter.style.removeProperty('display');
|
|
19480
|
+
ionFooter.removeAttribute('aria-hidden');
|
|
19481
|
+
clonedFooter.style.setProperty('display', 'none');
|
|
19482
|
+
clonedFooter.setAttribute('aria-hidden', 'true');
|
|
19483
|
+
const page = baseEl.querySelector('.ion-page');
|
|
19484
|
+
page.style.removeProperty('padding-bottom');
|
|
19485
|
+
}
|
|
19486
|
+
});
|
|
19487
|
+
return baseAnimation;
|
|
19309
19488
|
};
|
|
19310
19489
|
|
|
19311
|
-
const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
|
|
19490
|
+
const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], expandToScroll, getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
|
|
19312
19491
|
// Defaults for the sheet swipe animation
|
|
19313
19492
|
const defaultBackdrop = [
|
|
19314
19493
|
{ offset: 0, opacity: 'var(--backdrop-opacity)' },
|
|
@@ -19325,6 +19504,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19325
19504
|
{ offset: 1, transform: 'translateY(100%)' },
|
|
19326
19505
|
],
|
|
19327
19506
|
BACKDROP_KEYFRAMES: backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop,
|
|
19507
|
+
CONTENT_KEYFRAMES: [
|
|
19508
|
+
{ offset: 0, maxHeight: '100%' },
|
|
19509
|
+
{ offset: 1, maxHeight: '0%' },
|
|
19510
|
+
],
|
|
19328
19511
|
};
|
|
19329
19512
|
const contentEl = baseEl.querySelector('ion-content');
|
|
19330
19513
|
const height = wrapperEl.clientHeight;
|
|
@@ -19332,10 +19515,11 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19332
19515
|
let offset = 0;
|
|
19333
19516
|
let canDismissBlocksGesture = false;
|
|
19334
19517
|
const canDismissMaxStep = 0.95;
|
|
19335
|
-
const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
|
|
19336
|
-
const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
|
|
19337
19518
|
const maxBreakpoint = breakpoints[breakpoints.length - 1];
|
|
19338
19519
|
const minBreakpoint = breakpoints[0];
|
|
19520
|
+
const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
|
|
19521
|
+
const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
|
|
19522
|
+
const contentAnimation = animation.childAnimations.find((ani) => ani.id === 'contentAnimation');
|
|
19339
19523
|
const enableBackdrop = () => {
|
|
19340
19524
|
baseEl.style.setProperty('pointer-events', 'auto');
|
|
19341
19525
|
backdropEl.style.setProperty('pointer-events', 'auto');
|
|
@@ -19358,6 +19542,31 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19358
19542
|
*/
|
|
19359
19543
|
baseEl.classList.add(FOCUS_TRAP_DISABLE_CLASS);
|
|
19360
19544
|
};
|
|
19545
|
+
/**
|
|
19546
|
+
* Toggles the visible modal footer when `expandToScroll` is disabled.
|
|
19547
|
+
* @param footer The footer to show.
|
|
19548
|
+
*/
|
|
19549
|
+
const swapFooterVisibility = (footer) => {
|
|
19550
|
+
const originalFooter = baseEl.querySelector('ion-footer');
|
|
19551
|
+
if (!originalFooter) {
|
|
19552
|
+
return;
|
|
19553
|
+
}
|
|
19554
|
+
const clonedFooter = wrapperEl.nextElementSibling;
|
|
19555
|
+
const footerToHide = footer === 'original' ? clonedFooter : originalFooter;
|
|
19556
|
+
const footerToShow = footer === 'original' ? originalFooter : clonedFooter;
|
|
19557
|
+
footerToShow.style.removeProperty('display');
|
|
19558
|
+
footerToShow.removeAttribute('aria-hidden');
|
|
19559
|
+
const page = baseEl.querySelector('.ion-page');
|
|
19560
|
+
if (footer === 'original') {
|
|
19561
|
+
page.style.removeProperty('padding-bottom');
|
|
19562
|
+
}
|
|
19563
|
+
else {
|
|
19564
|
+
const pagePadding = footerToShow.clientHeight;
|
|
19565
|
+
page.style.setProperty('padding-bottom', `${pagePadding}px`);
|
|
19566
|
+
}
|
|
19567
|
+
footerToHide.style.setProperty('display', 'none');
|
|
19568
|
+
footerToHide.setAttribute('aria-hidden', 'true');
|
|
19569
|
+
};
|
|
19361
19570
|
/**
|
|
19362
19571
|
* After the entering animation completes,
|
|
19363
19572
|
* we need to set the animation to go from
|
|
@@ -19369,6 +19578,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19369
19578
|
if (wrapperAnimation && backdropAnimation) {
|
|
19370
19579
|
wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
|
|
19371
19580
|
backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
|
|
19581
|
+
contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
|
|
19372
19582
|
animation.progressStart(true, 1 - currentBreakpoint);
|
|
19373
19583
|
/**
|
|
19374
19584
|
* If backdrop is not enabled, then content
|
|
@@ -19385,7 +19595,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19385
19595
|
disableBackdrop();
|
|
19386
19596
|
}
|
|
19387
19597
|
}
|
|
19388
|
-
if (contentEl && currentBreakpoint !== maxBreakpoint) {
|
|
19598
|
+
if (contentEl && currentBreakpoint !== maxBreakpoint && expandToScroll) {
|
|
19389
19599
|
contentEl.scrollY = false;
|
|
19390
19600
|
}
|
|
19391
19601
|
const canStart = (detail) => {
|
|
@@ -19399,6 +19609,13 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19399
19609
|
*/
|
|
19400
19610
|
const contentEl = findClosestIonContent(detail.event.target);
|
|
19401
19611
|
currentBreakpoint = getCurrentBreakpoint();
|
|
19612
|
+
/**
|
|
19613
|
+
* If we have expandToScroll disabled, we should not allow the swipe gesture to start
|
|
19614
|
+
* if the content is being swiped.
|
|
19615
|
+
*/
|
|
19616
|
+
if (!expandToScroll && contentEl) {
|
|
19617
|
+
return false;
|
|
19618
|
+
}
|
|
19402
19619
|
if (currentBreakpoint === 1 && contentEl) {
|
|
19403
19620
|
/**
|
|
19404
19621
|
* The modal should never swipe to close on the content with a refresher.
|
|
@@ -19429,6 +19646,15 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19429
19646
|
* Remove undefined check
|
|
19430
19647
|
*/
|
|
19431
19648
|
canDismissBlocksGesture = baseEl.canDismiss !== undefined && baseEl.canDismiss !== true && minBreakpoint === 0;
|
|
19649
|
+
/**
|
|
19650
|
+
* If expandToScroll is disabled, we need to swap
|
|
19651
|
+
* the footer visibility to the original, so if the modal
|
|
19652
|
+
* is dismissed, the footer dismisses with the modal
|
|
19653
|
+
* and doesn't stay on the screen after the modal is gone.
|
|
19654
|
+
*/
|
|
19655
|
+
if (!expandToScroll) {
|
|
19656
|
+
swapFooterVisibility('original');
|
|
19657
|
+
}
|
|
19432
19658
|
/**
|
|
19433
19659
|
* If we are pulling down, then it is possible we are pulling on the content.
|
|
19434
19660
|
* We do not want scrolling to happen at the same time as the gesture.
|
|
@@ -19544,6 +19770,19 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19544
19770
|
opacity: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(snapToBreakpoint, backdropBreakpoint)})`,
|
|
19545
19771
|
},
|
|
19546
19772
|
]);
|
|
19773
|
+
if (contentAnimation) {
|
|
19774
|
+
/**
|
|
19775
|
+
* The modal content should scroll at any breakpoint when expandToScroll
|
|
19776
|
+
* is disabled. In order to do this, the content needs to be completely
|
|
19777
|
+
* viewable so scrolling can access everything. Otherwise, the default
|
|
19778
|
+
* behavior would show the content off the screen and only allow
|
|
19779
|
+
* scrolling when the sheet is fully expanded.
|
|
19780
|
+
*/
|
|
19781
|
+
contentAnimation.keyframes([
|
|
19782
|
+
{ offset: 0, maxHeight: `${(1 - breakpointOffset) * 100}%` },
|
|
19783
|
+
{ offset: 1, maxHeight: `${snapToBreakpoint * 100}%` },
|
|
19784
|
+
]);
|
|
19785
|
+
}
|
|
19547
19786
|
animation.progressStep(0);
|
|
19548
19787
|
}
|
|
19549
19788
|
/**
|
|
@@ -19551,6 +19790,14 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19551
19790
|
* snapping animation completes.
|
|
19552
19791
|
*/
|
|
19553
19792
|
gesture.enable(false);
|
|
19793
|
+
/**
|
|
19794
|
+
* If expandToScroll is disabled, we need to swap
|
|
19795
|
+
* the footer visibility to the cloned one so the footer
|
|
19796
|
+
* doesn't flicker when the sheet's height is animated.
|
|
19797
|
+
*/
|
|
19798
|
+
if (!expandToScroll && shouldRemainOpen) {
|
|
19799
|
+
swapFooterVisibility('cloned');
|
|
19800
|
+
}
|
|
19554
19801
|
if (shouldPreventDismiss) {
|
|
19555
19802
|
handleCanDismiss(baseEl, animation);
|
|
19556
19803
|
}
|
|
@@ -19558,13 +19805,13 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19558
19805
|
onDismiss();
|
|
19559
19806
|
}
|
|
19560
19807
|
/**
|
|
19561
|
-
*
|
|
19562
|
-
*
|
|
19563
|
-
*
|
|
19564
|
-
*
|
|
19565
|
-
*
|
|
19808
|
+
* Enables scrolling immediately if the sheet is about to fully expand
|
|
19809
|
+
* or if it allows scrolling at any breakpoint. Without this, there would
|
|
19810
|
+
* be a ~500ms delay while the modal animation completes, causing a
|
|
19811
|
+
* noticeable lag. Native iOS allows scrolling as soon as the gesture is
|
|
19812
|
+
* released, so we align with that behavior.
|
|
19566
19813
|
*/
|
|
19567
|
-
if (contentEl && snapToBreakpoint === breakpoints[breakpoints.length - 1]) {
|
|
19814
|
+
if (contentEl && (snapToBreakpoint === breakpoints[breakpoints.length - 1] || !expandToScroll)) {
|
|
19568
19815
|
contentEl.scrollY = true;
|
|
19569
19816
|
}
|
|
19570
19817
|
return new Promise((resolve) => {
|
|
@@ -19582,6 +19829,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19582
19829
|
raf(() => {
|
|
19583
19830
|
wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
|
|
19584
19831
|
backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
|
|
19832
|
+
contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
|
|
19585
19833
|
animation.progressStart(true, 1 - snapToBreakpoint);
|
|
19586
19834
|
currentBreakpoint = snapToBreakpoint;
|
|
19587
19835
|
onBreakpointChange(currentBreakpoint);
|
|
@@ -19634,10 +19882,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19634
19882
|
};
|
|
19635
19883
|
};
|
|
19636
19884
|
|
|
19637
|
-
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}";
|
|
19885
|
+
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}";
|
|
19638
19886
|
var IonModalIosStyle0 = modalIosCss;
|
|
19639
19887
|
|
|
19640
|
-
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}";
|
|
19888
|
+
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}";
|
|
19641
19889
|
var IonModalMdStyle0 = modalMdCss;
|
|
19642
19890
|
|
|
19643
19891
|
// TODO(FW-2832): types
|
|
@@ -19716,6 +19964,7 @@ class Modal {
|
|
|
19716
19964
|
this.enterAnimation = undefined;
|
|
19717
19965
|
this.leaveAnimation = undefined;
|
|
19718
19966
|
this.breakpoints = undefined;
|
|
19967
|
+
this.expandToScroll = true;
|
|
19719
19968
|
this.initialBreakpoint = undefined;
|
|
19720
19969
|
this.backdropBreakpoint = 0;
|
|
19721
19970
|
this.handle = undefined;
|
|
@@ -19931,6 +20180,7 @@ class Modal {
|
|
|
19931
20180
|
presentingEl: presentingElement,
|
|
19932
20181
|
currentBreakpoint: this.initialBreakpoint,
|
|
19933
20182
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
20183
|
+
expandToScroll: this.expandToScroll,
|
|
19934
20184
|
});
|
|
19935
20185
|
/* tslint:disable-next-line */
|
|
19936
20186
|
if (typeof window !== 'undefined') {
|
|
@@ -19981,7 +20231,10 @@ class Modal {
|
|
|
19981
20231
|
// should be in the DOM and referenced by now, except
|
|
19982
20232
|
// for the presenting el
|
|
19983
20233
|
const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$3);
|
|
19984
|
-
const ani = (this.animation = animationBuilder(el, {
|
|
20234
|
+
const ani = (this.animation = animationBuilder(el, {
|
|
20235
|
+
presentingEl: this.presentingElement,
|
|
20236
|
+
expandToScroll: this.expandToScroll,
|
|
20237
|
+
}));
|
|
19985
20238
|
const contentEl = findIonContent(el);
|
|
19986
20239
|
if (!contentEl) {
|
|
19987
20240
|
printIonContentErrorMsg(el);
|
|
@@ -20026,9 +20279,10 @@ class Modal {
|
|
|
20026
20279
|
presentingEl: this.presentingElement,
|
|
20027
20280
|
currentBreakpoint: initialBreakpoint,
|
|
20028
20281
|
backdropBreakpoint,
|
|
20282
|
+
expandToScroll: this.expandToScroll,
|
|
20029
20283
|
}));
|
|
20030
20284
|
ani.progressStart(true, 1);
|
|
20031
|
-
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) => {
|
|
20285
|
+
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) => {
|
|
20032
20286
|
if (this.currentBreakpoint !== breakpoint) {
|
|
20033
20287
|
this.currentBreakpoint = breakpoint;
|
|
20034
20288
|
this.ionBreakpointDidChange.emit({ breakpoint });
|
|
@@ -20106,6 +20360,7 @@ class Modal {
|
|
|
20106
20360
|
presentingEl: presentingElement,
|
|
20107
20361
|
currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
|
|
20108
20362
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
20363
|
+
expandToScroll: this.expandToScroll,
|
|
20109
20364
|
});
|
|
20110
20365
|
if (dismissed) {
|
|
20111
20366
|
const { delegate } = this.getDelegate();
|
|
@@ -20191,23 +20446,23 @@ class Modal {
|
|
|
20191
20446
|
return true;
|
|
20192
20447
|
}
|
|
20193
20448
|
render() {
|
|
20194
|
-
const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap } = this;
|
|
20449
|
+
const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap, expandToScroll, } = this;
|
|
20195
20450
|
const showHandle = handle !== false && isSheetModal;
|
|
20196
20451
|
const mode = getIonMode$1(this);
|
|
20197
20452
|
const isCardModal = presentingElement !== undefined && mode === 'ios';
|
|
20198
20453
|
const isHandleCycle = handleBehavior === 'cycle';
|
|
20199
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
20454
|
+
return (hAsync(Host, Object.assign({ key: 'ff15df63e72caaeb0a4ad68e9eedeaaa7d3f3bde', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
|
|
20200
20455
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
20201
|
-
}, 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: '
|
|
20456
|
+
}, 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',
|
|
20202
20457
|
/*
|
|
20203
20458
|
role and aria-modal must be used on the
|
|
20204
20459
|
same element. They must also be set inside the
|
|
20205
20460
|
shadow DOM otherwise ion-button will not be highlighted
|
|
20206
20461
|
when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
|
|
20207
20462
|
*/
|
|
20208
|
-
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '
|
|
20463
|
+
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",
|
|
20209
20464
|
// Prevents the handle from receiving keyboard focus when it does not cycle
|
|
20210
|
-
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: '
|
|
20465
|
+
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' }))));
|
|
20211
20466
|
}
|
|
20212
20467
|
get el() { return getElement(this); }
|
|
20213
20468
|
static get watchers() { return {
|
|
@@ -20229,6 +20484,7 @@ class Modal {
|
|
|
20229
20484
|
"enterAnimation": [16],
|
|
20230
20485
|
"leaveAnimation": [16],
|
|
20231
20486
|
"breakpoints": [16],
|
|
20487
|
+
"expandToScroll": [4, "expand-to-scroll"],
|
|
20232
20488
|
"initialBreakpoint": [2, "initial-breakpoint"],
|
|
20233
20489
|
"backdropBreakpoint": [2, "backdrop-breakpoint"],
|
|
20234
20490
|
"handle": [4],
|
|
@@ -29329,35 +29585,7 @@ class SegmentButton {
|
|
|
29329
29585
|
valueChanged() {
|
|
29330
29586
|
this.updateState();
|
|
29331
29587
|
}
|
|
29332
|
-
|
|
29333
|
-
return new Promise((resolve, reject) => {
|
|
29334
|
-
let timeoutId = undefined;
|
|
29335
|
-
let animationFrameId;
|
|
29336
|
-
const check = () => {
|
|
29337
|
-
if (!ionSegment) {
|
|
29338
|
-
reject(new Error(`Segment not found when looking for Segment Content`));
|
|
29339
|
-
return;
|
|
29340
|
-
}
|
|
29341
|
-
const segmentView = getNextSiblingOfType(ionSegment); // Skip the text nodes
|
|
29342
|
-
const segmentContent = segmentView === null || segmentView === void 0 ? void 0 : segmentView.querySelector(`ion-segment-content[id="${contentId}"]`);
|
|
29343
|
-
if (segmentContent && timeoutId) {
|
|
29344
|
-
clearTimeout(timeoutId); // Clear the timeout if the segmentContent is found
|
|
29345
|
-
cancelAnimationFrame(animationFrameId);
|
|
29346
|
-
resolve(segmentContent);
|
|
29347
|
-
}
|
|
29348
|
-
else {
|
|
29349
|
-
animationFrameId = requestAnimationFrame(check); // Keep checking on the next animation frame
|
|
29350
|
-
}
|
|
29351
|
-
};
|
|
29352
|
-
check();
|
|
29353
|
-
// Set a timeout to reject the promise
|
|
29354
|
-
timeoutId = setTimeout(() => {
|
|
29355
|
-
cancelAnimationFrame(animationFrameId);
|
|
29356
|
-
reject(new Error(`Unable to find Segment Content with id="${contentId} within 1000 ms`));
|
|
29357
|
-
}, 1000);
|
|
29358
|
-
});
|
|
29359
|
-
}
|
|
29360
|
-
async connectedCallback() {
|
|
29588
|
+
connectedCallback() {
|
|
29361
29589
|
const segmentEl = (this.segmentEl = this.el.closest('ion-segment'));
|
|
29362
29590
|
if (segmentEl) {
|
|
29363
29591
|
this.updateState();
|
|
@@ -29367,14 +29595,11 @@ class SegmentButton {
|
|
|
29367
29595
|
// Return if there is no contentId defined
|
|
29368
29596
|
if (!this.contentId)
|
|
29369
29597
|
return;
|
|
29370
|
-
|
|
29371
|
-
|
|
29372
|
-
|
|
29373
|
-
|
|
29374
|
-
|
|
29375
|
-
catch (error) {
|
|
29376
|
-
// If no associated Segment Content exists, log an error and return
|
|
29377
|
-
console.error('Segment Button: ', error.message);
|
|
29598
|
+
// Attempt to find the Segment Content by its contentId
|
|
29599
|
+
const segmentContent = document.getElementById(this.contentId);
|
|
29600
|
+
// If no associated Segment Content exists, log an error and return
|
|
29601
|
+
if (!segmentContent) {
|
|
29602
|
+
console.error(`Segment Button: Unable to find Segment Content with id="${this.contentId}".`);
|
|
29378
29603
|
return;
|
|
29379
29604
|
}
|
|
29380
29605
|
// Ensure the found element is a valid ION-SEGMENT-CONTENT
|
|
@@ -29420,7 +29645,7 @@ class SegmentButton {
|
|
|
29420
29645
|
const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
|
|
29421
29646
|
const mode = getIonMode$1(this);
|
|
29422
29647
|
const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
|
|
29423
|
-
return (hAsync(Host, { key: '
|
|
29648
|
+
return (hAsync(Host, { key: 'd50a5d5e2f6206e8523598f258d8217d2903f69b', class: {
|
|
29424
29649
|
[mode]: true,
|
|
29425
29650
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
29426
29651
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
@@ -29436,7 +29661,7 @@ class SegmentButton {
|
|
|
29436
29661
|
'ion-activatable': true,
|
|
29437
29662
|
'ion-activatable-instant': true,
|
|
29438
29663
|
'ion-focusable': true,
|
|
29439
|
-
} }, hAsync("button", Object.assign({ key: '
|
|
29664
|
+
} }, 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" }))));
|
|
29440
29665
|
}
|
|
29441
29666
|
get el() { return getElement(this); }
|
|
29442
29667
|
static get watchers() { return {
|
|
@@ -29703,6 +29928,7 @@ class Select {
|
|
|
29703
29928
|
this.expandedIcon = undefined;
|
|
29704
29929
|
this.shape = undefined;
|
|
29705
29930
|
this.value = undefined;
|
|
29931
|
+
this.required = false;
|
|
29706
29932
|
}
|
|
29707
29933
|
styleChanged() {
|
|
29708
29934
|
this.emitStyle();
|
|
@@ -30187,8 +30413,8 @@ class Select {
|
|
|
30187
30413
|
return renderedLabel;
|
|
30188
30414
|
}
|
|
30189
30415
|
renderListbox() {
|
|
30190
|
-
const { disabled, inputId, isExpanded } = this;
|
|
30191
|
-
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) }));
|
|
30416
|
+
const { disabled, inputId, isExpanded, required } = this;
|
|
30417
|
+
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) }));
|
|
30192
30418
|
}
|
|
30193
30419
|
render() {
|
|
30194
30420
|
const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, shape, name, value } = this;
|
|
@@ -30219,7 +30445,7 @@ class Select {
|
|
|
30219
30445
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
30220
30446
|
*/
|
|
30221
30447
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
|
|
30222
|
-
return (hAsync(Host, { key: '
|
|
30448
|
+
return (hAsync(Host, { key: '491cf1b0e3aa31e7c9cfad3e87d83eb54272312a', onClick: this.onClick, class: createColorClasses$1(this.color, {
|
|
30223
30449
|
[mode]: true,
|
|
30224
30450
|
'in-item': inItem,
|
|
30225
30451
|
'in-item-color': hostContext('ion-item.ion-color', el),
|
|
@@ -30235,7 +30461,7 @@ class Select {
|
|
|
30235
30461
|
[`select-justify-${justify}`]: justifyEnabled,
|
|
30236
30462
|
[`select-shape-${shape}`]: shape !== undefined,
|
|
30237
30463
|
[`select-label-placement-${labelPlacement}`]: true,
|
|
30238
|
-
}) }, hAsync("label", { key: '
|
|
30464
|
+
}) }, 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" }))));
|
|
30239
30465
|
}
|
|
30240
30466
|
get el() { return getElement(this); }
|
|
30241
30467
|
static get watchers() { return {
|
|
@@ -30271,6 +30497,7 @@ class Select {
|
|
|
30271
30497
|
"expandedIcon": [1, "expanded-icon"],
|
|
30272
30498
|
"shape": [1],
|
|
30273
30499
|
"value": [1032],
|
|
30500
|
+
"required": [4],
|
|
30274
30501
|
"isExpanded": [32],
|
|
30275
30502
|
"open": [64]
|
|
30276
30503
|
},
|
|
@@ -32667,6 +32894,7 @@ class Toggle {
|
|
|
32667
32894
|
this.labelPlacement = 'start';
|
|
32668
32895
|
this.justify = undefined;
|
|
32669
32896
|
this.alignment = undefined;
|
|
32897
|
+
this.required = false;
|
|
32670
32898
|
}
|
|
32671
32899
|
disabledChanged() {
|
|
32672
32900
|
if (this.gesture) {
|
|
@@ -32748,12 +32976,12 @@ class Toggle {
|
|
|
32748
32976
|
return this.el.textContent !== '';
|
|
32749
32977
|
}
|
|
32750
32978
|
render() {
|
|
32751
|
-
const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment } = this;
|
|
32979
|
+
const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment, required } = this;
|
|
32752
32980
|
const mode = getIonMode$1(this);
|
|
32753
32981
|
const value = this.getValue();
|
|
32754
32982
|
const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
|
|
32755
32983
|
renderHiddenInput(true, el, name, checked ? value : '', disabled);
|
|
32756
|
-
return (hAsync(Host, { key: '
|
|
32984
|
+
return (hAsync(Host, { key: 'ed75573caa6e37011f1453dd7f723fb9bd8a3656', onClick: this.onClick, class: createColorClasses$1(color, {
|
|
32757
32985
|
[mode]: true,
|
|
32758
32986
|
'in-item': hostContext('ion-item', el),
|
|
32759
32987
|
'toggle-activated': activated,
|
|
@@ -32763,10 +32991,10 @@ class Toggle {
|
|
|
32763
32991
|
[`toggle-alignment-${alignment}`]: alignment !== undefined,
|
|
32764
32992
|
[`toggle-label-placement-${labelPlacement}`]: true,
|
|
32765
32993
|
[`toggle-${rtl}`]: true,
|
|
32766
|
-
}) }, hAsync("label", { key: '
|
|
32994
|
+
}) }, 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: {
|
|
32767
32995
|
'label-text-wrapper': true,
|
|
32768
32996
|
'label-text-wrapper-hidden': !this.hasLabel,
|
|
32769
|
-
}, part: "label" }, hAsync("slot", { key: '
|
|
32997
|
+
}, part: "label" }, hAsync("slot", { key: '9495a4a39889822ee68e0d89dc5a2f863d1feb3c' })), hAsync("div", { key: '55f1eb08c4b705e94fbcf02220bbe1d292f06155', class: "native-wrapper" }, this.renderToggleControl()))));
|
|
32770
32998
|
}
|
|
32771
32999
|
get el() { return getElement(this); }
|
|
32772
33000
|
static get watchers() { return {
|
|
@@ -32789,6 +33017,7 @@ class Toggle {
|
|
|
32789
33017
|
"labelPlacement": [1, "label-placement"],
|
|
32790
33018
|
"justify": [1],
|
|
32791
33019
|
"alignment": [1],
|
|
33020
|
+
"required": [4],
|
|
32792
33021
|
"activated": [32]
|
|
32793
33022
|
},
|
|
32794
33023
|
"$listeners$": undefined,
|
|
@@ -32820,6 +33049,10 @@ var IonToolbarMdStyle0 = toolbarMdCss;
|
|
|
32820
33049
|
* @slot secondary - Content is placed to the left of the toolbar text in `ios` mode, and directly to the right in `md` mode.
|
|
32821
33050
|
* @slot primary - Content is placed to the right of the toolbar text in `ios` mode, and to the far right in `md` mode.
|
|
32822
33051
|
* @slot end - Content is placed to the right of the toolbar text in LTR, and to the left in RTL.
|
|
33052
|
+
*
|
|
33053
|
+
* @part background - The background of the toolbar, covering the entire area behind the toolbar content.
|
|
33054
|
+
* @part container - The container that wraps all toolbar content, including the default slot and named slot content.
|
|
33055
|
+
* @part content - The container for the default slot, wrapping content provided without a named slot.
|
|
32823
33056
|
*/
|
|
32824
33057
|
class Toolbar {
|
|
32825
33058
|
constructor(hostRef) {
|
|
@@ -32870,10 +33103,10 @@ class Toolbar {
|
|
|
32870
33103
|
this.childrenStyles.forEach((value) => {
|
|
32871
33104
|
Object.assign(childStyles, value);
|
|
32872
33105
|
});
|
|
32873
|
-
return (hAsync(Host, { key: '
|
|
33106
|
+
return (hAsync(Host, { key: '4fdc9ae82a93237cc28ceb95b0ebd8069b62839d', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
|
|
32874
33107
|
[mode]: true,
|
|
32875
33108
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
32876
|
-
})) }, hAsync("div", { key: '
|
|
33109
|
+
})) }, 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" }))));
|
|
32877
33110
|
}
|
|
32878
33111
|
get el() { return getElement(this); }
|
|
32879
33112
|
static get style() { return {
|