@ionic/core 8.4.4-dev.11741030124.1142ac6a → 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 +16 -41
- package/components/ion-toggle.js +6 -4
- 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/{data-21dc0f81.js → data-108e531d.js} +1 -1
- package/dist/cjs/{framework-delegate-05579976.js → framework-delegate-55f5683a.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-1ae3f40a.js → index-3652c918.js} +2 -2
- package/dist/cjs/{index-ad7a712e.js → index-9509ecad.js} +1 -1
- package/dist/cjs/{index-4e14a46e.js → index-e975c92b.js} +4 -4
- package/dist/cjs/index.cjs.js +8 -8
- 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 +2 -2
- package/dist/cjs/ion-action-sheet.cjs.entry.js +4 -4
- package/dist/cjs/ion-alert.cjs.entry.js +4 -4
- package/dist/cjs/ion-app_8.cjs.entry.js +11 -11
- package/dist/cjs/ion-back-button.cjs.entry.js +1 -1
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-card_5.cjs.entry.js +1 -1
- package/dist/cjs/ion-checkbox.cjs.entry.js +38 -7
- package/dist/cjs/ion-datetime-button.cjs.entry.js +3 -3
- package/dist/cjs/ion-datetime_3.cjs.entry.js +5 -5
- package/dist/cjs/ion-fab_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-img.cjs.entry.js +1 -1
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +1 -1
- package/dist/cjs/ion-input.cjs.entry.js +4 -4
- package/dist/cjs/ion-item-option_3.cjs.entry.js +3 -3
- package/dist/cjs/ion-item_8.cjs.entry.js +1 -1
- package/dist/cjs/ion-loading.cjs.entry.js +4 -4
- package/dist/cjs/ion-menu_3.cjs.entry.js +5 -5
- package/dist/cjs/ion-modal.cjs.entry.js +264 -41
- package/dist/cjs/ion-nav_2.cjs.entry.js +5 -5
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +1 -1
- package/dist/cjs/ion-picker-column.cjs.entry.js +1 -1
- package/dist/cjs/ion-picker.cjs.entry.js +1 -1
- package/dist/cjs/ion-popover.cjs.entry.js +5 -5
- package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
- package/dist/cjs/ion-radio_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-range.cjs.entry.js +3 -3
- package/dist/cjs/ion-refresher_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-reorder_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-route_4.cjs.entry.js +1 -1
- package/dist/cjs/ion-searchbar.cjs.entry.js +1 -1
- package/dist/cjs/ion-segment_2.cjs.entry.js +9 -40
- package/dist/cjs/ion-select-modal.cjs.entry.js +4 -4
- package/dist/cjs/ion-select_3.cjs.entry.js +19 -45
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-tab_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-textarea.cjs.entry.js +4 -4
- package/dist/cjs/ion-toast.cjs.entry.js +4 -4
- package/dist/cjs/ion-toggle.cjs.entry.js +6 -5
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/{ios.transition-afdec89f.js → ios.transition-0e664e88.js} +3 -3
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{md.transition-9f0d3db5.js → md.transition-2e8aef2c.js} +3 -3
- package/dist/cjs/{notch-controller-a0c464d1.js → notch-controller-d69150f5.js} +1 -1
- package/dist/cjs/{overlays-76b29cd4.js → overlays-65fdaff6.js} +3 -3
- 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 +32 -40
- 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/docs.json +187 -2
- 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/{helpers-9b49d7d2.js → helpers-da915de8.js} +1 -11
- package/dist/esm/{index-7ec5519a.js → index-2f7fde3d.js} +4 -4
- 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-8785a9c6.js → index-cb21eccb.js} +2 -2
- package/dist/esm/{index-33f7e3ff.js → index-efb8ecdf.js} +2 -2
- package/dist/esm/index.js +8 -8
- 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 +2 -2
- package/dist/esm/ion-action-sheet.entry.js +4 -4
- package/dist/esm/ion-alert.entry.js +4 -4
- package/dist/esm/ion-app_8.entry.js +11 -11
- package/dist/esm/ion-back-button.entry.js +1 -1
- package/dist/esm/ion-breadcrumb_2.entry.js +1 -1
- package/dist/esm/ion-button_2.entry.js +2 -2
- package/dist/esm/ion-card_5.entry.js +1 -1
- package/dist/esm/ion-checkbox.entry.js +38 -7
- package/dist/esm/ion-datetime-button.entry.js +3 -3
- package/dist/esm/ion-datetime_3.entry.js +5 -5
- package/dist/esm/ion-fab_3.entry.js +1 -1
- package/dist/esm/ion-img.entry.js +1 -1
- package/dist/esm/ion-infinite-scroll_2.entry.js +3 -3
- package/dist/esm/ion-input-password-toggle.entry.js +1 -1
- package/dist/esm/ion-input.entry.js +4 -4
- package/dist/esm/ion-item-option_3.entry.js +3 -3
- package/dist/esm/ion-item_8.entry.js +1 -1
- package/dist/esm/ion-loading.entry.js +4 -4
- package/dist/esm/ion-menu_3.entry.js +5 -5
- package/dist/esm/ion-modal.entry.js +264 -41
- package/dist/esm/ion-nav_2.entry.js +5 -5
- package/dist/esm/ion-picker-column-option.entry.js +1 -1
- package/dist/esm/ion-picker-column.entry.js +1 -1
- package/dist/esm/ion-picker.entry.js +1 -1
- package/dist/esm/ion-popover.entry.js +5 -5
- package/dist/esm/ion-progress-bar.entry.js +1 -1
- package/dist/esm/ion-radio_2.entry.js +1 -1
- package/dist/esm/ion-range.entry.js +3 -3
- package/dist/esm/ion-refresher_2.entry.js +3 -3
- package/dist/esm/ion-reorder_2.entry.js +3 -3
- package/dist/esm/ion-route_4.entry.js +1 -1
- package/dist/esm/ion-searchbar.entry.js +1 -1
- package/dist/esm/ion-segment_2.entry.js +9 -40
- package/dist/esm/ion-select-modal.entry.js +4 -4
- package/dist/esm/ion-select_3.entry.js +19 -45
- package/dist/esm/ion-tab-bar_2.entry.js +1 -1
- package/dist/esm/ion-tab_2.entry.js +2 -2
- package/dist/esm/ion-textarea.entry.js +4 -4
- package/dist/esm/ion-toast.entry.js +4 -4
- package/dist/esm/ion-toggle.entry.js +6 -5
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/{ios.transition-085853ff.js → ios.transition-b1da3753.js} +3 -3
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{md.transition-33826623.js → md.transition-571b3859.js} +3 -3
- package/dist/esm/{notch-controller-3dc61260.js → notch-controller-55b09e11.js} +1 -1
- package/dist/esm/{overlays-e3d0d356.js → overlays-5deab4de.js} +3 -3
- 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/{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/{helpers-9b49d7d2.js → helpers-da915de8.js} +1 -1
- package/dist/esm-es5/{index-7ec5519a.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-8785a9c6.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-back-button.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-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-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-tab-bar_2.entry.js +1 -1
- package/dist/esm-es5/ion-tab_2.entry.js +1 -1
- package/dist/esm-es5/ion-textarea.entry.js +1 -1
- package/dist/esm-es5/ion-toast.entry.js +1 -1
- package/dist/esm-es5/ion-toggle.entry.js +1 -1
- package/dist/esm-es5/ionic.js +1 -1
- package/dist/esm-es5/{ios.transition-085853ff.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-e3d0d356.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/{p-a9e24ae2.system.entry.js → p-01186920.system.entry.js} +1 -1
- package/dist/ionic/p-0430c2e0.entry.js +4 -0
- package/dist/ionic/{p-3eaf1444.system.entry.js → p-05b74e45.system.entry.js} +1 -1
- package/dist/ionic/{p-bb2a6761.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-203633d1.entry.js → p-120fb79a.entry.js} +1 -1
- package/dist/ionic/{p-5cde8ef3.entry.js → p-15d18206.entry.js} +1 -1
- package/dist/ionic/{p-e8f34871.entry.js → p-15e76dd1.entry.js} +1 -1
- package/dist/ionic/{p-7b98cebe.entry.js → p-16188af7.entry.js} +1 -1
- 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-84d08aae.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-0c9b6d3a.system.entry.js → p-2346ab53.system.entry.js} +1 -1
- package/dist/ionic/{p-162c8d0c.system.entry.js → p-248318e0.system.entry.js} +1 -1
- package/dist/ionic/{p-f5035354.js → p-28706c6f.js} +1 -1
- package/dist/ionic/{p-2515cb4d.system.entry.js → p-2b838f86.system.entry.js} +1 -1
- package/dist/ionic/{p-4c252070.entry.js → p-2da9c8a7.entry.js} +1 -1
- package/dist/ionic/{p-2ef3c7ee.system.entry.js → p-2e46590d.system.entry.js} +1 -1
- package/dist/ionic/{p-e265ae18.system.entry.js → p-302b50bb.system.entry.js} +1 -1
- package/dist/ionic/p-322c5fb4.system.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-d4ca0475.js → p-3cc276f4.js} +1 -1
- 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-92365bc1.system.entry.js → p-567de071.system.entry.js} +1 -1
- package/dist/ionic/p-577bc414.entry.js +4 -0
- package/dist/ionic/{p-b91acf8d.system.entry.js → p-585b455c.system.entry.js} +1 -1
- package/dist/ionic/{p-da8ef548.system.entry.js → p-58d5df0c.system.entry.js} +1 -1
- package/dist/ionic/{p-9eee4de1.system.js → p-5c08627a.system.js} +1 -1
- package/dist/ionic/{p-cc700b6b.entry.js → p-5c9eb9af.entry.js} +1 -1
- package/dist/ionic/{p-6b1bd0c1.entry.js → p-61db139d.entry.js} +1 -1
- package/dist/ionic/{p-f89cf011.system.entry.js → p-63b0abde.system.entry.js} +1 -1
- package/dist/ionic/p-67222c16.system.js +4 -0
- package/dist/ionic/{p-a4575db1.system.entry.js → p-6933c482.system.entry.js} +1 -1
- package/dist/ionic/{p-6190d0d6.entry.js → p-6d6cedc5.entry.js} +1 -1
- package/dist/ionic/{p-9a1f985d.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-4346c79d.system.entry.js → p-744c8672.system.entry.js} +1 -1
- package/dist/ionic/{p-1bbe8665.system.entry.js → p-74e3f0af.system.entry.js} +2 -2
- package/dist/ionic/p-7513b0c4.js +4 -0
- package/dist/ionic/{p-f78af648.system.entry.js → p-797eeea8.system.entry.js} +1 -1
- package/dist/ionic/{p-83e68c71.entry.js → p-7a02f476.entry.js} +1 -1
- package/dist/ionic/{p-14143257.entry.js → p-7a6eaf9e.entry.js} +1 -1
- package/dist/ionic/{p-fca17935.entry.js → p-7b9a2b23.entry.js} +1 -1
- package/dist/ionic/{p-70ccc275.system.entry.js → p-7ddc46c3.system.entry.js} +1 -1
- package/dist/ionic/{p-a2b6dd57.system.js → p-7de1e42c.system.js} +1 -1
- 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-803f0bc2.entry.js → p-8694928f.entry.js} +1 -1
- package/dist/ionic/{p-da074ff7.entry.js → p-89bf08c7.entry.js} +1 -1
- package/dist/ionic/{p-c29f8157.system.entry.js → p-8cfba7e9.system.entry.js} +1 -1
- package/dist/ionic/{p-82b931e2.entry.js → p-92763d3d.entry.js} +1 -1
- package/dist/ionic/{p-561ddcd4.system.entry.js → p-933727f9.system.entry.js} +2 -2
- package/dist/ionic/p-9343a445.js +4 -0
- package/dist/ionic/{p-02e23f26.entry.js → p-937a7e21.entry.js} +1 -1
- package/dist/ionic/{p-57379000.entry.js → p-948e6c6a.entry.js} +1 -1
- package/dist/ionic/{p-77e7b7b6.system.entry.js → p-98231c01.system.entry.js} +1 -1
- package/dist/ionic/{p-dc146a2a.system.entry.js → p-985a7e17.system.entry.js} +1 -1
- package/dist/ionic/{p-76446a85.entry.js → p-98ff6b32.entry.js} +1 -1
- package/dist/ionic/{p-a3c78186.system.entry.js → p-9b122e3c.system.entry.js} +1 -1
- package/dist/ionic/{p-0397811d.entry.js → p-9b428d25.entry.js} +1 -1
- package/dist/ionic/{p-41780810.entry.js → p-9df2c6fb.entry.js} +1 -1
- package/dist/ionic/{p-d3b26da4.system.entry.js → p-9f364443.system.entry.js} +1 -1
- package/dist/ionic/{p-3572f86a.system.entry.js → p-a090bce8.system.entry.js} +1 -1
- package/dist/ionic/{p-1bc65aec.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-e456ee59.system.entry.js → p-a4a2420e.system.entry.js} +1 -1
- package/dist/ionic/{p-1a790eef.system.js → p-a88dec0d.system.js} +2 -2
- package/dist/ionic/{p-b0d8bbee.entry.js → p-a8f2c254.entry.js} +1 -1
- package/dist/ionic/{p-3df889b3.system.entry.js → p-ab674093.system.entry.js} +1 -1
- package/dist/ionic/{p-c1b51537.system.js → p-ada36597.system.js} +1 -1
- package/dist/ionic/{p-45de8d2a.entry.js → p-b1eb86fd.entry.js} +1 -1
- package/dist/ionic/{p-e8232807.system.js → p-b3c60433.system.js} +1 -1
- package/dist/ionic/{p-bb11d9fb.js → p-b51e4004.js} +1 -1
- package/dist/ionic/{p-13dc21b0.js → p-b6efeab8.js} +1 -1
- package/dist/ionic/{p-9b3bb24e.entry.js → p-b9d7015f.entry.js} +1 -1
- package/dist/ionic/{p-c32644d7.entry.js → p-bb0db172.entry.js} +1 -1
- package/dist/ionic/{p-d06601eb.system.entry.js → p-bdf2cb2e.system.entry.js} +1 -1
- package/dist/ionic/{p-c8d645b3.entry.js → p-c41ac815.entry.js} +1 -1
- package/dist/ionic/{p-340e3f24.system.js → p-c4238c12.system.js} +1 -1
- package/dist/ionic/p-c4b53b16.system.entry.js +4 -0
- package/dist/ionic/{p-dd0c9350.system.entry.js → p-cac0e0b3.system.entry.js} +1 -1
- package/dist/ionic/{p-51dec25d.js → p-cb13696c.js} +1 -1
- package/dist/ionic/{p-7b96e5c1.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-9be5f3ee.system.entry.js → p-d6eaffb1.system.entry.js} +2 -2
- package/dist/ionic/{p-955c3eb8.entry.js → p-d7aa6b00.entry.js} +1 -1
- package/dist/ionic/p-d7dd8fb1.entry.js +4 -0
- package/dist/ionic/{p-265939f0.entry.js → p-de930745.entry.js} +1 -1
- package/dist/ionic/{p-57ceead7.entry.js → p-e06057c9.entry.js} +1 -1
- package/dist/ionic/{p-91f17b25.system.entry.js → p-e09d6392.system.entry.js} +2 -2
- package/dist/ionic/p-e3171ff3.entry.js +4 -0
- package/dist/ionic/{p-f301a694.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-f42743d1.entry.js → p-e76dae93.entry.js} +1 -1
- package/dist/ionic/p-e8d56122.js +4 -0
- package/dist/ionic/{p-e1bbacb7.entry.js → p-eef505e8.entry.js} +1 -1
- package/dist/ionic/{p-26194519.entry.js → p-f1060cd8.entry.js} +1 -1
- package/dist/ionic/{p-d192fdf7.system.entry.js → p-f1120724.system.entry.js} +1 -1
- package/dist/ionic/{p-02e1ebd9.js → p-f1c4dcd4.js} +1 -1
- package/dist/ionic/{p-32e99b0a.entry.js → p-f63c2d12.entry.js} +1 -1
- package/dist/ionic/{p-ffc48bc5.system.entry.js → p-fbd41a7e.system.entry.js} +1 -1
- package/dist/ionic/{p-e97a3f44.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/hydrate/index.js +346 -139
- package/hydrate/index.mjs +346 -139
- package/package.json +3 -3
- 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-33826623.js +0 -4
- package/dist/esm-es5/status-tap-163e8128.js +0 -4
- package/dist/ionic/p-06fee233.js +0 -4
- package/dist/ionic/p-075a94bd.js +0 -4
- package/dist/ionic/p-0a59f4fa.entry.js +0 -4
- package/dist/ionic/p-0e43be1b.entry.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-25fa1d30.system.entry.js +0 -4
- package/dist/ionic/p-2c9eb774.system.js +0 -4
- package/dist/ionic/p-48a8d9b4.system.entry.js +0 -4
- package/dist/ionic/p-56da53ad.system.entry.js +0 -4
- package/dist/ionic/p-61d044b4.entry.js +0 -4
- package/dist/ionic/p-68dc53a5.js +0 -4
- package/dist/ionic/p-84b1b9a0.entry.js +0 -4
- package/dist/ionic/p-8a836849.entry.js +0 -4
- package/dist/ionic/p-af09741c.entry.js +0 -4
- package/dist/ionic/p-b7433d7d.js +0 -4
- package/dist/ionic/p-df862603.entry.js +0 -4
- package/dist/ionic/p-e308de5b.system.js +0 -4
- package/dist/ionic/p-ff4b7e40.system.js +0 -4
package/hydrate/index.mjs
CHANGED
|
@@ -2706,16 +2706,6 @@ const shallowEqualStringMap = (map1, map2) => {
|
|
|
2706
2706
|
}
|
|
2707
2707
|
return true;
|
|
2708
2708
|
};
|
|
2709
|
-
const getNextSiblingOfType = (element) => {
|
|
2710
|
-
let sibling = element.nextSibling;
|
|
2711
|
-
while (sibling) {
|
|
2712
|
-
if (sibling.nodeType === Node.ELEMENT_NODE && sibling !== null) {
|
|
2713
|
-
return sibling;
|
|
2714
|
-
}
|
|
2715
|
-
sibling = sibling.nextSibling;
|
|
2716
|
-
}
|
|
2717
|
-
return null;
|
|
2718
|
-
};
|
|
2719
2709
|
|
|
2720
2710
|
/* Ionicons v7.2.2, ES Modules */
|
|
2721
2711
|
const arrowBackSharp = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><path stroke-linecap='square' stroke-miterlimit='10' stroke-width='48' d='M244 400L100 256l144-144M120 256h292' class='ionicon-fill-none'/></svg>";
|
|
@@ -3223,9 +3213,12 @@ let accordionIds = 0;
|
|
|
3223
3213
|
* @param message - The string message to be logged to the console.
|
|
3224
3214
|
*/
|
|
3225
3215
|
const printIonWarning = (message, ...params) => {
|
|
3226
|
-
|
|
3216
|
+
const logLevel = config.get('logLevel', "WARN" /* LogLevel.WARN */);
|
|
3217
|
+
if (["WARN" /* LogLevel.WARN */].includes(logLevel)) {
|
|
3218
|
+
return console.warn(`[Ionic Warning]: ${message}`, ...params);
|
|
3219
|
+
}
|
|
3227
3220
|
};
|
|
3228
|
-
|
|
3221
|
+
/**
|
|
3229
3222
|
* Logs an error to the console with an Ionic prefix
|
|
3230
3223
|
* to indicate the library that is warning the developer.
|
|
3231
3224
|
*
|
|
@@ -3233,7 +3226,10 @@ const printIonWarning = (message, ...params) => {
|
|
|
3233
3226
|
* @param params - Additional arguments to supply to the console.error.
|
|
3234
3227
|
*/
|
|
3235
3228
|
const printIonError = (message, ...params) => {
|
|
3236
|
-
|
|
3229
|
+
const logLevel = config.get('logLevel', "ERROR" /* LogLevel.ERROR */);
|
|
3230
|
+
if (["ERROR" /* LogLevel.ERROR */, "WARN" /* LogLevel.WARN */].includes(logLevel)) {
|
|
3231
|
+
return console.error(`[Ionic Error]: ${message}`, ...params);
|
|
3232
|
+
}
|
|
3237
3233
|
};
|
|
3238
3234
|
/**
|
|
3239
3235
|
* Prints an error informing developers that an implementation requires an element to be used
|
|
@@ -8434,10 +8430,10 @@ class CardTitle {
|
|
|
8434
8430
|
}; }
|
|
8435
8431
|
}
|
|
8436
8432
|
|
|
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}
|
|
8433
|
+
const checkboxIosCss = ":host{--checkbox-background-checked:var(--ion-color-primary, #0054e9);--border-color-checked:var(--ion-color-primary, #0054e9);--checkmark-color:var(--ion-color-primary-contrast, #fff);--transition:none;display:inline-block;position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0;width:100%;height:100%}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}:host(.ion-color){--checkbox-background-checked:var(--ion-color-base);--border-color-checked:var(--ion-color-base);--checkmark-color:var(--ion-color-contrast)}.checkbox-wrapper{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;cursor:inherit}.label-text-wrapper{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host(.in-item) .label-text-wrapper,:host(.in-item:not(.checkbox-label-placement-stacked):not([slot])) .native-wrapper{margin-top:10px;margin-bottom:10px}:host(.in-item.checkbox-label-placement-stacked) .label-text-wrapper{margin-top:10px;margin-bottom:16px}:host(.in-item.checkbox-label-placement-stacked) .native-wrapper{margin-bottom:10px}.label-text-wrapper-hidden{display:none}input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.checkbox-icon{border-radius:var(--border-radius);position:relative;width:var(--size);height:var(--size);-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--checkbox-background);-webkit-box-sizing:border-box;box-sizing:border-box}.checkbox-icon path{fill:none;stroke:var(--checkmark-color);stroke-width:var(--checkmark-width);opacity:0}.checkbox-bottom{padding-top:4px;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;font-size:0.75rem;white-space:normal}:host(.checkbox-label-placement-stacked) .checkbox-bottom{font-size:1rem}.checkbox-bottom .error-text{display:none;color:var(--ion-color-danger, #c5000f)}.checkbox-bottom .helper-text{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}:host(.ion-touched.ion-invalid) .checkbox-bottom .error-text{display:block}:host(.ion-touched.ion-invalid) .checkbox-bottom .helper-text{display:none}:host(.checkbox-label-placement-start) .checkbox-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.checkbox-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}:host(.checkbox-label-placement-end) .checkbox-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse;-ms-flex-pack:start;justify-content:start}:host(.checkbox-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}:host(.checkbox-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}:host(.checkbox-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.checkbox-label-placement-stacked) .checkbox-wrapper{-ms-flex-direction:column;flex-direction:column;text-align:center}:host(.checkbox-label-placement-stacked) .label-text-wrapper{-webkit-transform:scale(0.75);transform:scale(0.75);margin-left:0;margin-right:0;margin-bottom:16px;max-width:calc(100% / 0.75)}:host(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host-context([dir=rtl]):host(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper,:host-context([dir=rtl]).checkbox-label-placement-stacked.checkbox-alignment-start .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){:host(.checkbox-label-placement-stacked.checkbox-alignment-start:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}}:host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper{-webkit-transform-origin:center top;transform-origin:center top}:host-context([dir=rtl]):host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper,:host-context([dir=rtl]).checkbox-label-placement-stacked.checkbox-alignment-center .label-text-wrapper{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}@supports selector(:dir(rtl)){:host(.checkbox-label-placement-stacked.checkbox-alignment-center:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}}:host(.checkbox-justify-space-between) .checkbox-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.checkbox-justify-start) .checkbox-wrapper{-ms-flex-pack:start;justify-content:start}:host(.checkbox-justify-end) .checkbox-wrapper{-ms-flex-pack:end;justify-content:end}:host(.checkbox-alignment-start) .checkbox-wrapper{-ms-flex-align:start;align-items:start}:host(.checkbox-alignment-center) .checkbox-wrapper{-ms-flex-align:center;align-items:center}:host(.checkbox-justify-space-between),:host(.checkbox-justify-start),:host(.checkbox-justify-end),:host(.checkbox-alignment-start),:host(.checkbox-alignment-center){display:block}:host(.checkbox-checked) .checkbox-icon,:host(.checkbox-indeterminate) .checkbox-icon{border-color:var(--border-color-checked);background:var(--checkbox-background-checked)}:host(.checkbox-checked) .checkbox-icon path,:host(.checkbox-indeterminate) .checkbox-icon path{opacity:1}:host(.checkbox-disabled){pointer-events:none}:host{--border-radius:50%;--border-width:0.125rem;--border-style:solid;--border-color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.23);--checkbox-background:var(--ion-item-background, var(--ion-background-color, #fff));--size:min(1.375rem, 55.836px);--checkmark-width:1.5px}:host(.checkbox-disabled){opacity:0.3}";
|
|
8438
8434
|
var IonCheckboxIosStyle0 = checkboxIosCss;
|
|
8439
8435
|
|
|
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}
|
|
8436
|
+
const checkboxMdCss = ":host{--checkbox-background-checked:var(--ion-color-primary, #0054e9);--border-color-checked:var(--ion-color-primary, #0054e9);--checkmark-color:var(--ion-color-primary-contrast, #fff);--transition:none;display:inline-block;position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0;width:100%;height:100%}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}:host(.ion-color){--checkbox-background-checked:var(--ion-color-base);--border-color-checked:var(--ion-color-base);--checkmark-color:var(--ion-color-contrast)}.checkbox-wrapper{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;cursor:inherit}.label-text-wrapper{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host(.in-item) .label-text-wrapper,:host(.in-item:not(.checkbox-label-placement-stacked):not([slot])) .native-wrapper{margin-top:10px;margin-bottom:10px}:host(.in-item.checkbox-label-placement-stacked) .label-text-wrapper{margin-top:10px;margin-bottom:16px}:host(.in-item.checkbox-label-placement-stacked) .native-wrapper{margin-bottom:10px}.label-text-wrapper-hidden{display:none}input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.checkbox-icon{border-radius:var(--border-radius);position:relative;width:var(--size);height:var(--size);-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--checkbox-background);-webkit-box-sizing:border-box;box-sizing:border-box}.checkbox-icon path{fill:none;stroke:var(--checkmark-color);stroke-width:var(--checkmark-width);opacity:0}.checkbox-bottom{padding-top:4px;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;font-size:0.75rem;white-space:normal}:host(.checkbox-label-placement-stacked) .checkbox-bottom{font-size:1rem}.checkbox-bottom .error-text{display:none;color:var(--ion-color-danger, #c5000f)}.checkbox-bottom .helper-text{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}:host(.ion-touched.ion-invalid) .checkbox-bottom .error-text{display:block}:host(.ion-touched.ion-invalid) .checkbox-bottom .helper-text{display:none}:host(.checkbox-label-placement-start) .checkbox-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.checkbox-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}:host(.checkbox-label-placement-end) .checkbox-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse;-ms-flex-pack:start;justify-content:start}:host(.checkbox-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}:host(.checkbox-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}:host(.checkbox-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.checkbox-label-placement-stacked) .checkbox-wrapper{-ms-flex-direction:column;flex-direction:column;text-align:center}:host(.checkbox-label-placement-stacked) .label-text-wrapper{-webkit-transform:scale(0.75);transform:scale(0.75);margin-left:0;margin-right:0;margin-bottom:16px;max-width:calc(100% / 0.75)}:host(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host-context([dir=rtl]):host(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper,:host-context([dir=rtl]).checkbox-label-placement-stacked.checkbox-alignment-start .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){:host(.checkbox-label-placement-stacked.checkbox-alignment-start:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}}:host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper{-webkit-transform-origin:center top;transform-origin:center top}:host-context([dir=rtl]):host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper,:host-context([dir=rtl]).checkbox-label-placement-stacked.checkbox-alignment-center .label-text-wrapper{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}@supports selector(:dir(rtl)){:host(.checkbox-label-placement-stacked.checkbox-alignment-center:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}}:host(.checkbox-justify-space-between) .checkbox-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.checkbox-justify-start) .checkbox-wrapper{-ms-flex-pack:start;justify-content:start}:host(.checkbox-justify-end) .checkbox-wrapper{-ms-flex-pack:end;justify-content:end}:host(.checkbox-alignment-start) .checkbox-wrapper{-ms-flex-align:start;align-items:start}:host(.checkbox-alignment-center) .checkbox-wrapper{-ms-flex-align:center;align-items:center}:host(.checkbox-justify-space-between),:host(.checkbox-justify-start),:host(.checkbox-justify-end),:host(.checkbox-alignment-start),:host(.checkbox-alignment-center){display:block}:host(.checkbox-checked) .checkbox-icon,:host(.checkbox-indeterminate) .checkbox-icon{border-color:var(--border-color-checked);background:var(--checkbox-background-checked)}:host(.checkbox-checked) .checkbox-icon path,:host(.checkbox-indeterminate) .checkbox-icon path{opacity:1}:host(.checkbox-disabled){pointer-events:none}:host{--border-radius:calc(var(--size) * .125);--border-width:2px;--border-style:solid;--border-color:rgb(var(--ion-text-color-rgb, 0, 0, 0), 0.6);--checkmark-width:3;--checkbox-background:var(--ion-item-background, var(--ion-background-color, #fff));--transition:background 180ms cubic-bezier(0.4, 0, 0.2, 1);--size:18px}.checkbox-icon path{stroke-dasharray:30;stroke-dashoffset:30}:host(.checkbox-checked) .checkbox-icon path,:host(.checkbox-indeterminate) .checkbox-icon path{stroke-dashoffset:0;-webkit-transition:stroke-dashoffset 90ms linear 90ms;transition:stroke-dashoffset 90ms linear 90ms}:host(.checkbox-disabled) .label-text-wrapper{opacity:0.38}:host(.checkbox-disabled) .native-wrapper{opacity:0.63}";
|
|
8441
8437
|
var IonCheckboxMdStyle0 = checkboxMdCss;
|
|
8442
8438
|
|
|
8443
8439
|
/**
|
|
@@ -8448,6 +8444,9 @@ var IonCheckboxMdStyle0 = checkboxMdCss;
|
|
|
8448
8444
|
* @part container - The container for the checkbox mark.
|
|
8449
8445
|
* @part label - The label text describing the checkbox.
|
|
8450
8446
|
* @part mark - The checkmark used to indicate the checked state.
|
|
8447
|
+
* @part supporting-text - Supporting text displayed beneath the checkbox label.
|
|
8448
|
+
* @part helper-text - Supporting text displayed beneath the checkbox label when the checkbox is valid.
|
|
8449
|
+
* @part error-text - Supporting text displayed beneath the checkbox label when the checkbox is invalid and touched.
|
|
8451
8450
|
*/
|
|
8452
8451
|
class Checkbox {
|
|
8453
8452
|
constructor(hostRef) {
|
|
@@ -8456,6 +8455,8 @@ class Checkbox {
|
|
|
8456
8455
|
this.ionFocus = createEvent(this, "ionFocus", 7);
|
|
8457
8456
|
this.ionBlur = createEvent(this, "ionBlur", 7);
|
|
8458
8457
|
this.inputId = `ion-cb-${checkboxIds++}`;
|
|
8458
|
+
this.helperTextId = `${this.inputId}-helper-text`;
|
|
8459
|
+
this.errorTextId = `${this.inputId}-error-text`;
|
|
8459
8460
|
this.inheritedAttributes = {};
|
|
8460
8461
|
/**
|
|
8461
8462
|
* Sets the checked property and emits
|
|
@@ -8493,10 +8494,13 @@ class Checkbox {
|
|
|
8493
8494
|
this.checked = false;
|
|
8494
8495
|
this.indeterminate = false;
|
|
8495
8496
|
this.disabled = false;
|
|
8497
|
+
this.errorText = undefined;
|
|
8498
|
+
this.helperText = undefined;
|
|
8496
8499
|
this.value = 'on';
|
|
8497
8500
|
this.labelPlacement = 'start';
|
|
8498
8501
|
this.justify = undefined;
|
|
8499
8502
|
this.alignment = undefined;
|
|
8503
|
+
this.required = false;
|
|
8500
8504
|
}
|
|
8501
8505
|
componentWillLoad() {
|
|
8502
8506
|
this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
|
|
@@ -8507,12 +8511,38 @@ class Checkbox {
|
|
|
8507
8511
|
this.focusEl.focus();
|
|
8508
8512
|
}
|
|
8509
8513
|
}
|
|
8514
|
+
getHintTextID() {
|
|
8515
|
+
const { el, helperText, errorText, helperTextId, errorTextId } = this;
|
|
8516
|
+
if (el.classList.contains('ion-touched') && el.classList.contains('ion-invalid') && errorText) {
|
|
8517
|
+
return errorTextId;
|
|
8518
|
+
}
|
|
8519
|
+
if (helperText) {
|
|
8520
|
+
return helperTextId;
|
|
8521
|
+
}
|
|
8522
|
+
return undefined;
|
|
8523
|
+
}
|
|
8524
|
+
/**
|
|
8525
|
+
* Responsible for rendering helper text and error text.
|
|
8526
|
+
* This element should only be rendered if hint text is set.
|
|
8527
|
+
*/
|
|
8528
|
+
renderHintText() {
|
|
8529
|
+
const { helperText, errorText, helperTextId, errorTextId } = this;
|
|
8530
|
+
/**
|
|
8531
|
+
* undefined and empty string values should
|
|
8532
|
+
* be treated as not having helper/error text.
|
|
8533
|
+
*/
|
|
8534
|
+
const hasHintText = !!helperText || !!errorText;
|
|
8535
|
+
if (!hasHintText) {
|
|
8536
|
+
return;
|
|
8537
|
+
}
|
|
8538
|
+
return (hAsync("div", { class: "checkbox-bottom" }, hAsync("div", { id: helperTextId, class: "helper-text", part: "supporting-text helper-text" }, helperText), hAsync("div", { id: errorTextId, class: "error-text", part: "supporting-text error-text" }, errorText)));
|
|
8539
|
+
}
|
|
8510
8540
|
render() {
|
|
8511
|
-
const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, } = this;
|
|
8541
|
+
const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, required, } = this;
|
|
8512
8542
|
const mode = getIonMode$1(this);
|
|
8513
8543
|
const path = getSVGPath(mode, indeterminate);
|
|
8514
8544
|
renderHiddenInput(true, el, name, checked ? value : '', disabled);
|
|
8515
|
-
return (hAsync(Host, { key: '
|
|
8545
|
+
return (hAsync(Host, { key: '7ac31df89b07c781ddcd30a6a8c109494d0c500a', "aria-checked": indeterminate ? 'mixed' : `${checked}`, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId, class: createColorClasses$1(color, {
|
|
8516
8546
|
[mode]: true,
|
|
8517
8547
|
'in-item': hostContext('ion-item', el),
|
|
8518
8548
|
'checkbox-checked': checked,
|
|
@@ -8522,10 +8552,10 @@ class Checkbox {
|
|
|
8522
8552
|
[`checkbox-justify-${justify}`]: justify !== undefined,
|
|
8523
8553
|
[`checkbox-alignment-${alignment}`]: alignment !== undefined,
|
|
8524
8554
|
[`checkbox-label-placement-${labelPlacement}`]: true,
|
|
8525
|
-
}), onClick: this.onClick }, hAsync("label", { key: '
|
|
8555
|
+
}), onClick: this.onClick }, hAsync("label", { key: '674e923fe1ec83a33c31d67b0d414d61ba8f9e4b', class: "checkbox-wrapper" }, hAsync("input", Object.assign({ key: 'c4866e392fbdf3b76edcd1507cb67f40a213a4e7', type: "checkbox", checked: checked ? true : undefined, disabled: disabled, id: inputId, onChange: this.toggleChecked, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl), required: required }, inheritedAttributes)), hAsync("div", { key: '79cb96e5963b9331a760438ec8cc9e456215de91', class: {
|
|
8526
8556
|
'label-text-wrapper': true,
|
|
8527
8557
|
'label-text-wrapper-hidden': el.textContent === '',
|
|
8528
|
-
}, part: "label" }, hAsync("slot", { key: '
|
|
8558
|
+
}, part: "label" }, hAsync("slot", { key: '896cb26292c9a4a6c105afb39611472b93bf5e90' }), this.renderHintText()), hAsync("div", { key: '52cd22e79fd5db30b45d7b092aa5af3944392336', class: "native-wrapper" }, hAsync("svg", { key: '18d862ab7cc32055eaf200eea560ff1b2b6cbde0', class: "checkbox-icon", viewBox: "0 0 24 24", part: "container" }, path)))));
|
|
8529
8559
|
}
|
|
8530
8560
|
getSVGPath(mode, indeterminate) {
|
|
8531
8561
|
let path = indeterminate ? (hAsync("path", { d: "M6 12L18 12", part: "mark" })) : (hAsync("path", { d: "M5.9,12.5l3.8,3.8l8.8-8.8", part: "mark" }));
|
|
@@ -8548,10 +8578,13 @@ class Checkbox {
|
|
|
8548
8578
|
"checked": [1028],
|
|
8549
8579
|
"indeterminate": [1028],
|
|
8550
8580
|
"disabled": [4],
|
|
8581
|
+
"errorText": [1, "error-text"],
|
|
8582
|
+
"helperText": [1, "helper-text"],
|
|
8551
8583
|
"value": [8],
|
|
8552
8584
|
"labelPlacement": [1, "label-placement"],
|
|
8553
8585
|
"justify": [1],
|
|
8554
8586
|
"alignment": [1],
|
|
8587
|
+
"required": [4],
|
|
8555
8588
|
"setFocus": [64]
|
|
8556
8589
|
},
|
|
8557
8590
|
"$listeners$": undefined,
|
|
@@ -19027,7 +19060,7 @@ const computeDuration = (remaining, velocity) => {
|
|
|
19027
19060
|
};
|
|
19028
19061
|
|
|
19029
19062
|
const createSheetEnterAnimation = (opts) => {
|
|
19030
|
-
const { currentBreakpoint, backdropBreakpoint } = opts;
|
|
19063
|
+
const { currentBreakpoint, backdropBreakpoint, expandToScroll } = opts;
|
|
19031
19064
|
/**
|
|
19032
19065
|
* If the backdropBreakpoint is undefined, then the backdrop
|
|
19033
19066
|
* should always fade in. If the backdropBreakpoint came before the
|
|
@@ -19047,7 +19080,16 @@ const createSheetEnterAnimation = (opts) => {
|
|
|
19047
19080
|
{ offset: 0, opacity: 1, transform: 'translateY(100%)' },
|
|
19048
19081
|
{ offset: 1, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
|
|
19049
19082
|
]);
|
|
19050
|
-
|
|
19083
|
+
/**
|
|
19084
|
+
* This allows the content to be scrollable at any breakpoint.
|
|
19085
|
+
*/
|
|
19086
|
+
const contentAnimation = !expandToScroll
|
|
19087
|
+
? createAnimation('contentAnimation').keyframes([
|
|
19088
|
+
{ offset: 0, opacity: 1, maxHeight: `${(1 - currentBreakpoint) * 100}%` },
|
|
19089
|
+
{ offset: 1, opacity: 1, maxHeight: `${currentBreakpoint * 100}%` },
|
|
19090
|
+
])
|
|
19091
|
+
: undefined;
|
|
19092
|
+
return { wrapperAnimation, backdropAnimation, contentAnimation };
|
|
19051
19093
|
};
|
|
19052
19094
|
const createSheetLeaveAnimation = (opts) => {
|
|
19053
19095
|
const { currentBreakpoint, backdropBreakpoint } = opts;
|
|
@@ -19082,22 +19124,68 @@ const createEnterAnimation$1 = () => {
|
|
|
19082
19124
|
})
|
|
19083
19125
|
.afterClearStyles(['pointer-events']);
|
|
19084
19126
|
const wrapperAnimation = createAnimation().fromTo('transform', 'translateY(100vh)', 'translateY(0vh)');
|
|
19085
|
-
return { backdropAnimation, wrapperAnimation };
|
|
19127
|
+
return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
|
|
19086
19128
|
};
|
|
19087
19129
|
/**
|
|
19088
19130
|
* iOS Modal Enter Animation for the Card presentation style
|
|
19089
19131
|
*/
|
|
19090
19132
|
const iosEnterAnimation$3 = (baseEl, opts) => {
|
|
19091
|
-
const { presentingEl, currentBreakpoint } = opts;
|
|
19133
|
+
const { presentingEl, currentBreakpoint, expandToScroll } = opts;
|
|
19092
19134
|
const root = getElementRoot(baseEl);
|
|
19093
|
-
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
|
|
19135
|
+
const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
|
|
19094
19136
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
19095
19137
|
wrapperAnimation.addElement(root.querySelectorAll('.modal-wrapper, .modal-shadow')).beforeStyles({ opacity: 1 });
|
|
19138
|
+
// The content animation is only added if scrolling is enabled for
|
|
19139
|
+
// all the breakpoints.
|
|
19140
|
+
!expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
|
|
19096
19141
|
const baseAnimation = createAnimation('entering-base')
|
|
19097
19142
|
.addElement(baseEl)
|
|
19098
19143
|
.easing('cubic-bezier(0.32,0.72,0,1)')
|
|
19099
19144
|
.duration(500)
|
|
19100
|
-
.addAnimation(wrapperAnimation)
|
|
19145
|
+
.addAnimation([wrapperAnimation])
|
|
19146
|
+
.beforeAddWrite(() => {
|
|
19147
|
+
if (expandToScroll) {
|
|
19148
|
+
// Scroll can only be done when the modal is fully expanded.
|
|
19149
|
+
return;
|
|
19150
|
+
}
|
|
19151
|
+
/**
|
|
19152
|
+
* There are some browsers that causes flickering when
|
|
19153
|
+
* dragging the content when scroll is enabled at every
|
|
19154
|
+
* breakpoint. This is due to the wrapper element being
|
|
19155
|
+
* transformed off the screen and having a snap animation.
|
|
19156
|
+
*
|
|
19157
|
+
* A workaround is to clone the footer element and append
|
|
19158
|
+
* it outside of the wrapper element. This way, the footer
|
|
19159
|
+
* is still visible and the drag can be done without
|
|
19160
|
+
* flickering. The original footer is hidden until the modal
|
|
19161
|
+
* is dismissed. This maintains the animation of the footer
|
|
19162
|
+
* when the modal is dismissed.
|
|
19163
|
+
*
|
|
19164
|
+
* The workaround needs to be done before the animation starts
|
|
19165
|
+
* so there are no flickering issues.
|
|
19166
|
+
*/
|
|
19167
|
+
const ionFooter = baseEl.querySelector('ion-footer');
|
|
19168
|
+
/**
|
|
19169
|
+
* This check is needed to prevent more than one footer
|
|
19170
|
+
* from being appended to the shadow root.
|
|
19171
|
+
* Otherwise, iOS and MD enter animations would append
|
|
19172
|
+
* the footer twice.
|
|
19173
|
+
*/
|
|
19174
|
+
const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
|
|
19175
|
+
if (ionFooter && !ionFooterAlreadyAppended) {
|
|
19176
|
+
const footerHeight = ionFooter.clientHeight;
|
|
19177
|
+
const clonedFooter = ionFooter.cloneNode(true);
|
|
19178
|
+
baseEl.shadowRoot.appendChild(clonedFooter);
|
|
19179
|
+
ionFooter.style.setProperty('display', 'none');
|
|
19180
|
+
ionFooter.setAttribute('aria-hidden', 'true');
|
|
19181
|
+
// Padding is added to prevent some content from being hidden.
|
|
19182
|
+
const page = baseEl.querySelector('.ion-page');
|
|
19183
|
+
page.style.setProperty('padding-bottom', `${footerHeight}px`);
|
|
19184
|
+
}
|
|
19185
|
+
});
|
|
19186
|
+
if (contentAnimation) {
|
|
19187
|
+
baseAnimation.addAnimation(contentAnimation);
|
|
19188
|
+
}
|
|
19101
19189
|
if (presentingEl) {
|
|
19102
19190
|
const isMobile = window.innerWidth < 768;
|
|
19103
19191
|
const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
|
|
@@ -19175,7 +19263,7 @@ const createLeaveAnimation$1 = () => {
|
|
|
19175
19263
|
* iOS Modal Leave Animation
|
|
19176
19264
|
*/
|
|
19177
19265
|
const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
|
|
19178
|
-
const { presentingEl, currentBreakpoint } = opts;
|
|
19266
|
+
const { presentingEl, currentBreakpoint, expandToScroll } = opts;
|
|
19179
19267
|
const root = getElementRoot(baseEl);
|
|
19180
19268
|
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
|
|
19181
19269
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
@@ -19184,7 +19272,29 @@ const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
|
|
|
19184
19272
|
.addElement(baseEl)
|
|
19185
19273
|
.easing('cubic-bezier(0.32,0.72,0,1)')
|
|
19186
19274
|
.duration(duration)
|
|
19187
|
-
.addAnimation(wrapperAnimation)
|
|
19275
|
+
.addAnimation(wrapperAnimation)
|
|
19276
|
+
.beforeAddWrite(() => {
|
|
19277
|
+
if (expandToScroll) {
|
|
19278
|
+
// Scroll can only be done when the modal is fully expanded.
|
|
19279
|
+
return;
|
|
19280
|
+
}
|
|
19281
|
+
/**
|
|
19282
|
+
* If expandToScroll is disabled, we need to swap
|
|
19283
|
+
* the visibility to the original, so the footer
|
|
19284
|
+
* dismisses with the modal and doesn't stay
|
|
19285
|
+
* until the modal is removed from the DOM.
|
|
19286
|
+
*/
|
|
19287
|
+
const ionFooter = baseEl.querySelector('ion-footer');
|
|
19288
|
+
if (ionFooter) {
|
|
19289
|
+
const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
|
|
19290
|
+
ionFooter.style.removeProperty('display');
|
|
19291
|
+
ionFooter.removeAttribute('aria-hidden');
|
|
19292
|
+
clonedFooter.style.setProperty('display', 'none');
|
|
19293
|
+
clonedFooter.setAttribute('aria-hidden', 'true');
|
|
19294
|
+
const page = baseEl.querySelector('.ion-page');
|
|
19295
|
+
page.style.removeProperty('padding-bottom');
|
|
19296
|
+
}
|
|
19297
|
+
});
|
|
19188
19298
|
if (presentingEl) {
|
|
19189
19299
|
const isMobile = window.innerWidth < 768;
|
|
19190
19300
|
const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
|
|
@@ -19262,22 +19372,69 @@ const createEnterAnimation = () => {
|
|
|
19262
19372
|
{ offset: 0, opacity: 0.01, transform: 'translateY(40px)' },
|
|
19263
19373
|
{ offset: 1, opacity: 1, transform: `translateY(0px)` },
|
|
19264
19374
|
]);
|
|
19265
|
-
return { backdropAnimation, wrapperAnimation };
|
|
19375
|
+
return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
|
|
19266
19376
|
};
|
|
19267
19377
|
/**
|
|
19268
19378
|
* Md Modal Enter Animation
|
|
19269
19379
|
*/
|
|
19270
19380
|
const mdEnterAnimation$2 = (baseEl, opts) => {
|
|
19271
|
-
const { currentBreakpoint } = opts;
|
|
19381
|
+
const { currentBreakpoint, expandToScroll } = opts;
|
|
19272
19382
|
const root = getElementRoot(baseEl);
|
|
19273
|
-
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
|
|
19383
|
+
const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
|
|
19274
19384
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
19275
19385
|
wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
|
|
19276
|
-
|
|
19386
|
+
// The content animation is only added if scrolling is enabled for
|
|
19387
|
+
// all the breakpoints.
|
|
19388
|
+
expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
|
|
19389
|
+
const baseAnimation = createAnimation()
|
|
19277
19390
|
.addElement(baseEl)
|
|
19278
19391
|
.easing('cubic-bezier(0.36,0.66,0.04,1)')
|
|
19279
19392
|
.duration(280)
|
|
19280
|
-
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
19393
|
+
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
19394
|
+
.beforeAddWrite(() => {
|
|
19395
|
+
if (expandToScroll) {
|
|
19396
|
+
// Scroll can only be done when the modal is fully expanded.
|
|
19397
|
+
return;
|
|
19398
|
+
}
|
|
19399
|
+
/**
|
|
19400
|
+
* There are some browsers that causes flickering when
|
|
19401
|
+
* dragging the content when scroll is enabled at every
|
|
19402
|
+
* breakpoint. This is due to the wrapper element being
|
|
19403
|
+
* transformed off the screen and having a snap animation.
|
|
19404
|
+
*
|
|
19405
|
+
* A workaround is to clone the footer element and append
|
|
19406
|
+
* it outside of the wrapper element. This way, the footer
|
|
19407
|
+
* is still visible and the drag can be done without
|
|
19408
|
+
* flickering. The original footer is hidden until the modal
|
|
19409
|
+
* is dismissed. This maintains the animation of the footer
|
|
19410
|
+
* when the modal is dismissed.
|
|
19411
|
+
*
|
|
19412
|
+
* The workaround needs to be done before the animation starts
|
|
19413
|
+
* so there are no flickering issues.
|
|
19414
|
+
*/
|
|
19415
|
+
const ionFooter = baseEl.querySelector('ion-footer');
|
|
19416
|
+
/**
|
|
19417
|
+
* This check is needed to prevent more than one footer
|
|
19418
|
+
* from being appended to the shadow root.
|
|
19419
|
+
* Otherwise, iOS and MD enter animations would append
|
|
19420
|
+
* the footer twice.
|
|
19421
|
+
*/
|
|
19422
|
+
const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
|
|
19423
|
+
if (ionFooter && !ionFooterAlreadyAppended) {
|
|
19424
|
+
const footerHeight = ionFooter.clientHeight;
|
|
19425
|
+
const clonedFooter = ionFooter.cloneNode(true);
|
|
19426
|
+
baseEl.shadowRoot.appendChild(clonedFooter);
|
|
19427
|
+
ionFooter.style.setProperty('display', 'none');
|
|
19428
|
+
ionFooter.setAttribute('aria-hidden', 'true');
|
|
19429
|
+
// Padding is added to prevent some content from being hidden.
|
|
19430
|
+
const page = baseEl.querySelector('.ion-page');
|
|
19431
|
+
page.style.setProperty('padding-bottom', `${footerHeight}px`);
|
|
19432
|
+
}
|
|
19433
|
+
});
|
|
19434
|
+
if (contentAnimation) {
|
|
19435
|
+
baseAnimation.addAnimation(contentAnimation);
|
|
19436
|
+
}
|
|
19437
|
+
return baseAnimation;
|
|
19281
19438
|
};
|
|
19282
19439
|
|
|
19283
19440
|
const createLeaveAnimation = () => {
|
|
@@ -19292,18 +19449,41 @@ const createLeaveAnimation = () => {
|
|
|
19292
19449
|
* Md Modal Leave Animation
|
|
19293
19450
|
*/
|
|
19294
19451
|
const mdLeaveAnimation$2 = (baseEl, opts) => {
|
|
19295
|
-
const { currentBreakpoint } = opts;
|
|
19452
|
+
const { currentBreakpoint, expandToScroll } = opts;
|
|
19296
19453
|
const root = getElementRoot(baseEl);
|
|
19297
19454
|
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation();
|
|
19298
19455
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
19299
19456
|
wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
|
|
19300
|
-
|
|
19457
|
+
const baseAnimation = createAnimation()
|
|
19301
19458
|
.easing('cubic-bezier(0.47,0,0.745,0.715)')
|
|
19302
19459
|
.duration(200)
|
|
19303
|
-
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
19460
|
+
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
19461
|
+
.beforeAddWrite(() => {
|
|
19462
|
+
if (expandToScroll) {
|
|
19463
|
+
// Scroll can only be done when the modal is fully expanded.
|
|
19464
|
+
return;
|
|
19465
|
+
}
|
|
19466
|
+
/**
|
|
19467
|
+
* If expandToScroll is disabled, we need to swap
|
|
19468
|
+
* the visibility to the original, so the footer
|
|
19469
|
+
* dismisses with the modal and doesn't stay
|
|
19470
|
+
* until the modal is removed from the DOM.
|
|
19471
|
+
*/
|
|
19472
|
+
const ionFooter = baseEl.querySelector('ion-footer');
|
|
19473
|
+
if (ionFooter) {
|
|
19474
|
+
const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
|
|
19475
|
+
ionFooter.style.removeProperty('display');
|
|
19476
|
+
ionFooter.removeAttribute('aria-hidden');
|
|
19477
|
+
clonedFooter.style.setProperty('display', 'none');
|
|
19478
|
+
clonedFooter.setAttribute('aria-hidden', 'true');
|
|
19479
|
+
const page = baseEl.querySelector('.ion-page');
|
|
19480
|
+
page.style.removeProperty('padding-bottom');
|
|
19481
|
+
}
|
|
19482
|
+
});
|
|
19483
|
+
return baseAnimation;
|
|
19304
19484
|
};
|
|
19305
19485
|
|
|
19306
|
-
const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
|
|
19486
|
+
const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], expandToScroll, getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
|
|
19307
19487
|
// Defaults for the sheet swipe animation
|
|
19308
19488
|
const defaultBackdrop = [
|
|
19309
19489
|
{ offset: 0, opacity: 'var(--backdrop-opacity)' },
|
|
@@ -19320,6 +19500,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19320
19500
|
{ offset: 1, transform: 'translateY(100%)' },
|
|
19321
19501
|
],
|
|
19322
19502
|
BACKDROP_KEYFRAMES: backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop,
|
|
19503
|
+
CONTENT_KEYFRAMES: [
|
|
19504
|
+
{ offset: 0, maxHeight: '100%' },
|
|
19505
|
+
{ offset: 1, maxHeight: '0%' },
|
|
19506
|
+
],
|
|
19323
19507
|
};
|
|
19324
19508
|
const contentEl = baseEl.querySelector('ion-content');
|
|
19325
19509
|
const height = wrapperEl.clientHeight;
|
|
@@ -19327,10 +19511,11 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19327
19511
|
let offset = 0;
|
|
19328
19512
|
let canDismissBlocksGesture = false;
|
|
19329
19513
|
const canDismissMaxStep = 0.95;
|
|
19330
|
-
const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
|
|
19331
|
-
const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
|
|
19332
19514
|
const maxBreakpoint = breakpoints[breakpoints.length - 1];
|
|
19333
19515
|
const minBreakpoint = breakpoints[0];
|
|
19516
|
+
const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
|
|
19517
|
+
const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
|
|
19518
|
+
const contentAnimation = animation.childAnimations.find((ani) => ani.id === 'contentAnimation');
|
|
19334
19519
|
const enableBackdrop = () => {
|
|
19335
19520
|
baseEl.style.setProperty('pointer-events', 'auto');
|
|
19336
19521
|
backdropEl.style.setProperty('pointer-events', 'auto');
|
|
@@ -19353,6 +19538,31 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19353
19538
|
*/
|
|
19354
19539
|
baseEl.classList.add(FOCUS_TRAP_DISABLE_CLASS);
|
|
19355
19540
|
};
|
|
19541
|
+
/**
|
|
19542
|
+
* Toggles the visible modal footer when `expandToScroll` is disabled.
|
|
19543
|
+
* @param footer The footer to show.
|
|
19544
|
+
*/
|
|
19545
|
+
const swapFooterVisibility = (footer) => {
|
|
19546
|
+
const originalFooter = baseEl.querySelector('ion-footer');
|
|
19547
|
+
if (!originalFooter) {
|
|
19548
|
+
return;
|
|
19549
|
+
}
|
|
19550
|
+
const clonedFooter = wrapperEl.nextElementSibling;
|
|
19551
|
+
const footerToHide = footer === 'original' ? clonedFooter : originalFooter;
|
|
19552
|
+
const footerToShow = footer === 'original' ? originalFooter : clonedFooter;
|
|
19553
|
+
footerToShow.style.removeProperty('display');
|
|
19554
|
+
footerToShow.removeAttribute('aria-hidden');
|
|
19555
|
+
const page = baseEl.querySelector('.ion-page');
|
|
19556
|
+
if (footer === 'original') {
|
|
19557
|
+
page.style.removeProperty('padding-bottom');
|
|
19558
|
+
}
|
|
19559
|
+
else {
|
|
19560
|
+
const pagePadding = footerToShow.clientHeight;
|
|
19561
|
+
page.style.setProperty('padding-bottom', `${pagePadding}px`);
|
|
19562
|
+
}
|
|
19563
|
+
footerToHide.style.setProperty('display', 'none');
|
|
19564
|
+
footerToHide.setAttribute('aria-hidden', 'true');
|
|
19565
|
+
};
|
|
19356
19566
|
/**
|
|
19357
19567
|
* After the entering animation completes,
|
|
19358
19568
|
* we need to set the animation to go from
|
|
@@ -19364,6 +19574,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19364
19574
|
if (wrapperAnimation && backdropAnimation) {
|
|
19365
19575
|
wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
|
|
19366
19576
|
backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
|
|
19577
|
+
contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
|
|
19367
19578
|
animation.progressStart(true, 1 - currentBreakpoint);
|
|
19368
19579
|
/**
|
|
19369
19580
|
* If backdrop is not enabled, then content
|
|
@@ -19380,7 +19591,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19380
19591
|
disableBackdrop();
|
|
19381
19592
|
}
|
|
19382
19593
|
}
|
|
19383
|
-
if (contentEl && currentBreakpoint !== maxBreakpoint) {
|
|
19594
|
+
if (contentEl && currentBreakpoint !== maxBreakpoint && expandToScroll) {
|
|
19384
19595
|
contentEl.scrollY = false;
|
|
19385
19596
|
}
|
|
19386
19597
|
const canStart = (detail) => {
|
|
@@ -19394,6 +19605,13 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19394
19605
|
*/
|
|
19395
19606
|
const contentEl = findClosestIonContent(detail.event.target);
|
|
19396
19607
|
currentBreakpoint = getCurrentBreakpoint();
|
|
19608
|
+
/**
|
|
19609
|
+
* If we have expandToScroll disabled, we should not allow the swipe gesture to start
|
|
19610
|
+
* if the content is being swiped.
|
|
19611
|
+
*/
|
|
19612
|
+
if (!expandToScroll && contentEl) {
|
|
19613
|
+
return false;
|
|
19614
|
+
}
|
|
19397
19615
|
if (currentBreakpoint === 1 && contentEl) {
|
|
19398
19616
|
/**
|
|
19399
19617
|
* The modal should never swipe to close on the content with a refresher.
|
|
@@ -19424,6 +19642,15 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19424
19642
|
* Remove undefined check
|
|
19425
19643
|
*/
|
|
19426
19644
|
canDismissBlocksGesture = baseEl.canDismiss !== undefined && baseEl.canDismiss !== true && minBreakpoint === 0;
|
|
19645
|
+
/**
|
|
19646
|
+
* If expandToScroll is disabled, we need to swap
|
|
19647
|
+
* the footer visibility to the original, so if the modal
|
|
19648
|
+
* is dismissed, the footer dismisses with the modal
|
|
19649
|
+
* and doesn't stay on the screen after the modal is gone.
|
|
19650
|
+
*/
|
|
19651
|
+
if (!expandToScroll) {
|
|
19652
|
+
swapFooterVisibility('original');
|
|
19653
|
+
}
|
|
19427
19654
|
/**
|
|
19428
19655
|
* If we are pulling down, then it is possible we are pulling on the content.
|
|
19429
19656
|
* We do not want scrolling to happen at the same time as the gesture.
|
|
@@ -19539,6 +19766,19 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19539
19766
|
opacity: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(snapToBreakpoint, backdropBreakpoint)})`,
|
|
19540
19767
|
},
|
|
19541
19768
|
]);
|
|
19769
|
+
if (contentAnimation) {
|
|
19770
|
+
/**
|
|
19771
|
+
* The modal content should scroll at any breakpoint when expandToScroll
|
|
19772
|
+
* is disabled. In order to do this, the content needs to be completely
|
|
19773
|
+
* viewable so scrolling can access everything. Otherwise, the default
|
|
19774
|
+
* behavior would show the content off the screen and only allow
|
|
19775
|
+
* scrolling when the sheet is fully expanded.
|
|
19776
|
+
*/
|
|
19777
|
+
contentAnimation.keyframes([
|
|
19778
|
+
{ offset: 0, maxHeight: `${(1 - breakpointOffset) * 100}%` },
|
|
19779
|
+
{ offset: 1, maxHeight: `${snapToBreakpoint * 100}%` },
|
|
19780
|
+
]);
|
|
19781
|
+
}
|
|
19542
19782
|
animation.progressStep(0);
|
|
19543
19783
|
}
|
|
19544
19784
|
/**
|
|
@@ -19546,6 +19786,14 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19546
19786
|
* snapping animation completes.
|
|
19547
19787
|
*/
|
|
19548
19788
|
gesture.enable(false);
|
|
19789
|
+
/**
|
|
19790
|
+
* If expandToScroll is disabled, we need to swap
|
|
19791
|
+
* the footer visibility to the cloned one so the footer
|
|
19792
|
+
* doesn't flicker when the sheet's height is animated.
|
|
19793
|
+
*/
|
|
19794
|
+
if (!expandToScroll && shouldRemainOpen) {
|
|
19795
|
+
swapFooterVisibility('cloned');
|
|
19796
|
+
}
|
|
19549
19797
|
if (shouldPreventDismiss) {
|
|
19550
19798
|
handleCanDismiss(baseEl, animation);
|
|
19551
19799
|
}
|
|
@@ -19553,13 +19801,13 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19553
19801
|
onDismiss();
|
|
19554
19802
|
}
|
|
19555
19803
|
/**
|
|
19556
|
-
*
|
|
19557
|
-
*
|
|
19558
|
-
*
|
|
19559
|
-
*
|
|
19560
|
-
*
|
|
19804
|
+
* Enables scrolling immediately if the sheet is about to fully expand
|
|
19805
|
+
* or if it allows scrolling at any breakpoint. Without this, there would
|
|
19806
|
+
* be a ~500ms delay while the modal animation completes, causing a
|
|
19807
|
+
* noticeable lag. Native iOS allows scrolling as soon as the gesture is
|
|
19808
|
+
* released, so we align with that behavior.
|
|
19561
19809
|
*/
|
|
19562
|
-
if (contentEl && snapToBreakpoint === breakpoints[breakpoints.length - 1]) {
|
|
19810
|
+
if (contentEl && (snapToBreakpoint === breakpoints[breakpoints.length - 1] || !expandToScroll)) {
|
|
19563
19811
|
contentEl.scrollY = true;
|
|
19564
19812
|
}
|
|
19565
19813
|
return new Promise((resolve) => {
|
|
@@ -19577,6 +19825,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19577
19825
|
raf(() => {
|
|
19578
19826
|
wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
|
|
19579
19827
|
backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
|
|
19828
|
+
contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
|
|
19580
19829
|
animation.progressStart(true, 1 - snapToBreakpoint);
|
|
19581
19830
|
currentBreakpoint = snapToBreakpoint;
|
|
19582
19831
|
onBreakpointChange(currentBreakpoint);
|
|
@@ -19629,10 +19878,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19629
19878
|
};
|
|
19630
19879
|
};
|
|
19631
19880
|
|
|
19632
|
-
const modalIosCss = ":host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:\"\"}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.4)}:host(.modal-card),:host(.modal-sheet){--border-radius:10px}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:10px}}.modal-wrapper{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}@media screen and (max-width: 767px){@supports (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - max(30px, var(--ion-safe-area-top)) - 10px)}}@supports not (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - 40px)}}:host(.modal-card) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-card){--backdrop-opacity:0;--width:100%;-ms-flex-align:end;align-items:flex-end}:host(.modal-card) .modal-shadow{display:none}:host(.modal-card) ion-backdrop{pointer-events:none}}@media screen and (min-width: 768px){:host(.modal-card){--width:calc(100% - 120px);--height:calc(100% - (120px + var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));--max-width:720px;--max-height:1000px;--backdrop-opacity:0;--box-shadow:0px 0px 30px 10px rgba(0, 0, 0, 0.1);-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out}:host(.modal-card) .modal-wrapper{-webkit-box-shadow:none;box-shadow:none}:host(.modal-card) .modal-shadow{-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}}:host(.modal-sheet) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}";
|
|
19881
|
+
const modalIosCss = ":host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:\"\"}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.4)}:host(.modal-card),:host(.modal-sheet){--border-radius:10px}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:10px}}.modal-wrapper{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}@media screen and (max-width: 767px){@supports (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - max(30px, var(--ion-safe-area-top)) - 10px)}}@supports not (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - 40px)}}:host(.modal-card) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-card){--backdrop-opacity:0;--width:100%;-ms-flex-align:end;align-items:flex-end}:host(.modal-card) .modal-shadow{display:none}:host(.modal-card) ion-backdrop{pointer-events:none}}@media screen and (min-width: 768px){:host(.modal-card){--width:calc(100% - 120px);--height:calc(100% - (120px + var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));--max-width:720px;--max-height:1000px;--backdrop-opacity:0;--box-shadow:0px 0px 30px 10px rgba(0, 0, 0, 0.1);-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out}:host(.modal-card) .modal-wrapper{-webkit-box-shadow:none;box-shadow:none}:host(.modal-card) .modal-shadow{-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}}:host(.modal-sheet) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer ion-toolbar:first-of-type{padding-top:6px}";
|
|
19633
19882
|
var IonModalIosStyle0 = modalIosCss;
|
|
19634
19883
|
|
|
19635
|
-
const modalMdCss = ":host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:\"\"}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:2px;--box-shadow:0 28px 48px rgba(0, 0, 0, 0.4)}}.modal-wrapper{-webkit-transform:translate3d(0, 40px, 0);transform:translate3d(0, 40px, 0);opacity:0.01}";
|
|
19884
|
+
const modalMdCss = ":host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:\"\"}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:2px;--box-shadow:0 28px 48px rgba(0, 0, 0, 0.4)}}.modal-wrapper{-webkit-transform:translate3d(0, 40px, 0);transform:translate3d(0, 40px, 0);opacity:0.01}";
|
|
19636
19885
|
var IonModalMdStyle0 = modalMdCss;
|
|
19637
19886
|
|
|
19638
19887
|
// TODO(FW-2832): types
|
|
@@ -19711,6 +19960,7 @@ class Modal {
|
|
|
19711
19960
|
this.enterAnimation = undefined;
|
|
19712
19961
|
this.leaveAnimation = undefined;
|
|
19713
19962
|
this.breakpoints = undefined;
|
|
19963
|
+
this.expandToScroll = true;
|
|
19714
19964
|
this.initialBreakpoint = undefined;
|
|
19715
19965
|
this.backdropBreakpoint = 0;
|
|
19716
19966
|
this.handle = undefined;
|
|
@@ -19926,6 +20176,7 @@ class Modal {
|
|
|
19926
20176
|
presentingEl: presentingElement,
|
|
19927
20177
|
currentBreakpoint: this.initialBreakpoint,
|
|
19928
20178
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
20179
|
+
expandToScroll: this.expandToScroll,
|
|
19929
20180
|
});
|
|
19930
20181
|
/* tslint:disable-next-line */
|
|
19931
20182
|
if (typeof window !== 'undefined') {
|
|
@@ -19976,7 +20227,10 @@ class Modal {
|
|
|
19976
20227
|
// should be in the DOM and referenced by now, except
|
|
19977
20228
|
// for the presenting el
|
|
19978
20229
|
const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$3);
|
|
19979
|
-
const ani = (this.animation = animationBuilder(el, {
|
|
20230
|
+
const ani = (this.animation = animationBuilder(el, {
|
|
20231
|
+
presentingEl: this.presentingElement,
|
|
20232
|
+
expandToScroll: this.expandToScroll,
|
|
20233
|
+
}));
|
|
19980
20234
|
const contentEl = findIonContent(el);
|
|
19981
20235
|
if (!contentEl) {
|
|
19982
20236
|
printIonContentErrorMsg(el);
|
|
@@ -20021,9 +20275,10 @@ class Modal {
|
|
|
20021
20275
|
presentingEl: this.presentingElement,
|
|
20022
20276
|
currentBreakpoint: initialBreakpoint,
|
|
20023
20277
|
backdropBreakpoint,
|
|
20278
|
+
expandToScroll: this.expandToScroll,
|
|
20024
20279
|
}));
|
|
20025
20280
|
ani.progressStart(true, 1);
|
|
20026
|
-
const { gesture, moveSheetToBreakpoint } = createSheetGesture(this.el, this.backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, ani, this.sortedBreakpoints, () => { var _a; return (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : 0; }, () => this.sheetOnDismiss(), (breakpoint) => {
|
|
20281
|
+
const { gesture, moveSheetToBreakpoint } = createSheetGesture(this.el, this.backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, ani, this.sortedBreakpoints, this.expandToScroll, () => { var _a; return (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : 0; }, () => this.sheetOnDismiss(), (breakpoint) => {
|
|
20027
20282
|
if (this.currentBreakpoint !== breakpoint) {
|
|
20028
20283
|
this.currentBreakpoint = breakpoint;
|
|
20029
20284
|
this.ionBreakpointDidChange.emit({ breakpoint });
|
|
@@ -20101,6 +20356,7 @@ class Modal {
|
|
|
20101
20356
|
presentingEl: presentingElement,
|
|
20102
20357
|
currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
|
|
20103
20358
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
20359
|
+
expandToScroll: this.expandToScroll,
|
|
20104
20360
|
});
|
|
20105
20361
|
if (dismissed) {
|
|
20106
20362
|
const { delegate } = this.getDelegate();
|
|
@@ -20186,23 +20442,23 @@ class Modal {
|
|
|
20186
20442
|
return true;
|
|
20187
20443
|
}
|
|
20188
20444
|
render() {
|
|
20189
|
-
const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap } = this;
|
|
20445
|
+
const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap, expandToScroll, } = this;
|
|
20190
20446
|
const showHandle = handle !== false && isSheetModal;
|
|
20191
20447
|
const mode = getIonMode$1(this);
|
|
20192
20448
|
const isCardModal = presentingElement !== undefined && mode === 'ios';
|
|
20193
20449
|
const isHandleCycle = handleBehavior === 'cycle';
|
|
20194
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
20450
|
+
return (hAsync(Host, Object.assign({ key: 'ff15df63e72caaeb0a4ad68e9eedeaaa7d3f3bde', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
|
|
20195
20451
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
20196
|
-
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), hAsync("ion-backdrop", { key: '
|
|
20452
|
+
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), hAsync("ion-backdrop", { key: '27a73655779af9d175a829d3d2d29e42fd2a63ee', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: '406a65080087e7895026ecc2f04e9d707439e86f', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '8e410eb925374158996c82cbbd522f07d741679e',
|
|
20197
20453
|
/*
|
|
20198
20454
|
role and aria-modal must be used on the
|
|
20199
20455
|
same element. They must also be set inside the
|
|
20200
20456
|
shadow DOM otherwise ion-button will not be highlighted
|
|
20201
20457
|
when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
|
|
20202
20458
|
*/
|
|
20203
|
-
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '
|
|
20459
|
+
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '7326c969ebe5a70a35e83b09d3db2bb848c90e47', class: "modal-handle",
|
|
20204
20460
|
// Prevents the handle from receiving keyboard focus when it does not cycle
|
|
20205
|
-
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), hAsync("slot", { key: '
|
|
20461
|
+
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), hAsync("slot", { key: '0b65cdb9e337a27edf437b9e754e79f1449c217d' }))));
|
|
20206
20462
|
}
|
|
20207
20463
|
get el() { return getElement(this); }
|
|
20208
20464
|
static get watchers() { return {
|
|
@@ -20224,6 +20480,7 @@ class Modal {
|
|
|
20224
20480
|
"enterAnimation": [16],
|
|
20225
20481
|
"leaveAnimation": [16],
|
|
20226
20482
|
"breakpoints": [16],
|
|
20483
|
+
"expandToScroll": [4, "expand-to-scroll"],
|
|
20227
20484
|
"initialBreakpoint": [2, "initial-breakpoint"],
|
|
20228
20485
|
"backdropBreakpoint": [2, "backdrop-breakpoint"],
|
|
20229
20486
|
"handle": [4],
|
|
@@ -29324,35 +29581,7 @@ class SegmentButton {
|
|
|
29324
29581
|
valueChanged() {
|
|
29325
29582
|
this.updateState();
|
|
29326
29583
|
}
|
|
29327
|
-
|
|
29328
|
-
return new Promise((resolve, reject) => {
|
|
29329
|
-
let timeoutId = undefined;
|
|
29330
|
-
let animationFrameId;
|
|
29331
|
-
const check = () => {
|
|
29332
|
-
if (!ionSegment) {
|
|
29333
|
-
reject(new Error(`Segment not found when looking for Segment Content`));
|
|
29334
|
-
return;
|
|
29335
|
-
}
|
|
29336
|
-
const segmentView = getNextSiblingOfType(ionSegment); // Skip the text nodes
|
|
29337
|
-
const segmentContent = segmentView === null || segmentView === void 0 ? void 0 : segmentView.querySelector(`ion-segment-content[id="${contentId}"]`);
|
|
29338
|
-
if (segmentContent && timeoutId) {
|
|
29339
|
-
clearTimeout(timeoutId); // Clear the timeout if the segmentContent is found
|
|
29340
|
-
cancelAnimationFrame(animationFrameId);
|
|
29341
|
-
resolve(segmentContent);
|
|
29342
|
-
}
|
|
29343
|
-
else {
|
|
29344
|
-
animationFrameId = requestAnimationFrame(check); // Keep checking on the next animation frame
|
|
29345
|
-
}
|
|
29346
|
-
};
|
|
29347
|
-
check();
|
|
29348
|
-
// Set a timeout to reject the promise
|
|
29349
|
-
timeoutId = setTimeout(() => {
|
|
29350
|
-
cancelAnimationFrame(animationFrameId);
|
|
29351
|
-
reject(new Error(`Unable to find Segment Content with id="${contentId} within 1000 ms`));
|
|
29352
|
-
}, 1000);
|
|
29353
|
-
});
|
|
29354
|
-
}
|
|
29355
|
-
async connectedCallback() {
|
|
29584
|
+
connectedCallback() {
|
|
29356
29585
|
const segmentEl = (this.segmentEl = this.el.closest('ion-segment'));
|
|
29357
29586
|
if (segmentEl) {
|
|
29358
29587
|
this.updateState();
|
|
@@ -29362,14 +29591,11 @@ class SegmentButton {
|
|
|
29362
29591
|
// Return if there is no contentId defined
|
|
29363
29592
|
if (!this.contentId)
|
|
29364
29593
|
return;
|
|
29365
|
-
|
|
29366
|
-
|
|
29367
|
-
|
|
29368
|
-
|
|
29369
|
-
|
|
29370
|
-
catch (error) {
|
|
29371
|
-
// If no associated Segment Content exists, log an error and return
|
|
29372
|
-
console.error('Segment Button: ', error.message);
|
|
29594
|
+
// Attempt to find the Segment Content by its contentId
|
|
29595
|
+
const segmentContent = document.getElementById(this.contentId);
|
|
29596
|
+
// If no associated Segment Content exists, log an error and return
|
|
29597
|
+
if (!segmentContent) {
|
|
29598
|
+
console.error(`Segment Button: Unable to find Segment Content with id="${this.contentId}".`);
|
|
29373
29599
|
return;
|
|
29374
29600
|
}
|
|
29375
29601
|
// Ensure the found element is a valid ION-SEGMENT-CONTENT
|
|
@@ -29415,7 +29641,7 @@ class SegmentButton {
|
|
|
29415
29641
|
const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
|
|
29416
29642
|
const mode = getIonMode$1(this);
|
|
29417
29643
|
const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
|
|
29418
|
-
return (hAsync(Host, { key: '
|
|
29644
|
+
return (hAsync(Host, { key: 'd50a5d5e2f6206e8523598f258d8217d2903f69b', class: {
|
|
29419
29645
|
[mode]: true,
|
|
29420
29646
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
29421
29647
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
@@ -29431,7 +29657,7 @@ class SegmentButton {
|
|
|
29431
29657
|
'ion-activatable': true,
|
|
29432
29658
|
'ion-activatable-instant': true,
|
|
29433
29659
|
'ion-focusable': true,
|
|
29434
|
-
} }, hAsync("button", Object.assign({ key: '
|
|
29660
|
+
} }, hAsync("button", Object.assign({ key: 'b4f6f145286ba8ab79669e11035b906daa85ae7e', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), hAsync("span", { key: '67965996c9ffe70553875e00d3da0ae5b2b1d814', class: "button-inner" }, hAsync("slot", { key: '5087988fe45a8fdf388ec44c395d0b745b207806' })), mode === 'md' && hAsync("ion-ripple-effect", { key: 'b24858de0750bbc769b3183fac0077dfe817ba27' })), hAsync("div", { key: '97b4359432acd1c9da0816360cd1df9472e183f7', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, hAsync("div", { key: '0561738ea15b0986f4ed3d8276d5e6f2d13f7e51', part: "indicator-background", class: "segment-button-indicator-background" }))));
|
|
29435
29661
|
}
|
|
29436
29662
|
get el() { return getElement(this); }
|
|
29437
29663
|
static get watchers() { return {
|
|
@@ -29698,6 +29924,7 @@ class Select {
|
|
|
29698
29924
|
this.expandedIcon = undefined;
|
|
29699
29925
|
this.shape = undefined;
|
|
29700
29926
|
this.value = undefined;
|
|
29927
|
+
this.required = false;
|
|
29701
29928
|
}
|
|
29702
29929
|
styleChanged() {
|
|
29703
29930
|
this.emitStyle();
|
|
@@ -29753,8 +29980,15 @@ class Select {
|
|
|
29753
29980
|
}
|
|
29754
29981
|
this.isExpanded = true;
|
|
29755
29982
|
const overlay = (this.overlay = await this.createOverlay(event));
|
|
29756
|
-
|
|
29757
|
-
|
|
29983
|
+
overlay.onDidDismiss().then(() => {
|
|
29984
|
+
this.overlay = undefined;
|
|
29985
|
+
this.isExpanded = false;
|
|
29986
|
+
this.ionDismiss.emit();
|
|
29987
|
+
this.setFocus();
|
|
29988
|
+
});
|
|
29989
|
+
await overlay.present();
|
|
29990
|
+
// focus selected option for popovers and modals
|
|
29991
|
+
if (this.interface === 'popover' || this.interface === 'modal') {
|
|
29758
29992
|
const indexOfSelected = this.childOpts.findIndex((o) => o.value === this.value);
|
|
29759
29993
|
if (indexOfSelected > -1) {
|
|
29760
29994
|
const selectedItem = overlay.querySelector(`.select-interface-option:nth-child(${indexOfSelected + 1})`);
|
|
@@ -29772,7 +30006,6 @@ class Select {
|
|
|
29772
30006
|
*/
|
|
29773
30007
|
const interactiveEl = selectedItem.querySelector('ion-radio, ion-checkbox');
|
|
29774
30008
|
if (interactiveEl) {
|
|
29775
|
-
selectedItem.scrollIntoView({ block: 'nearest' });
|
|
29776
30009
|
// Needs to be called before `focusVisibleElement` to prevent issue with focus event bubbling
|
|
29777
30010
|
// and removing `ion-focused` style
|
|
29778
30011
|
interactiveEl.setFocus();
|
|
@@ -29796,40 +30029,7 @@ class Select {
|
|
|
29796
30029
|
focusVisibleElement(firstEnabledOption.closest('ion-item'));
|
|
29797
30030
|
}
|
|
29798
30031
|
}
|
|
29799
|
-
};
|
|
29800
|
-
// For modals and popovers, we can scroll before they're visible
|
|
29801
|
-
if (this.interface === 'modal') {
|
|
29802
|
-
overlay.addEventListener('ionModalWillPresent', scrollSelectedIntoView, { once: true });
|
|
29803
|
-
}
|
|
29804
|
-
else if (this.interface === 'popover') {
|
|
29805
|
-
overlay.addEventListener('ionPopoverWillPresent', scrollSelectedIntoView, { once: true });
|
|
29806
|
-
}
|
|
29807
|
-
else {
|
|
29808
|
-
/**
|
|
29809
|
-
* For alerts and action sheets, we need to wait a frame after willPresent
|
|
29810
|
-
* because these overlays don't have their content in the DOM immediately
|
|
29811
|
-
* when willPresent fires. By waiting a frame, we ensure the content is
|
|
29812
|
-
* rendered and can be properly scrolled into view.
|
|
29813
|
-
*/
|
|
29814
|
-
const scrollAfterRender = () => {
|
|
29815
|
-
requestAnimationFrame(() => {
|
|
29816
|
-
scrollSelectedIntoView();
|
|
29817
|
-
});
|
|
29818
|
-
};
|
|
29819
|
-
if (this.interface === 'alert') {
|
|
29820
|
-
overlay.addEventListener('ionAlertWillPresent', scrollAfterRender, { once: true });
|
|
29821
|
-
}
|
|
29822
|
-
else if (this.interface === 'action-sheet') {
|
|
29823
|
-
overlay.addEventListener('ionActionSheetWillPresent', scrollAfterRender, { once: true });
|
|
29824
|
-
}
|
|
29825
30032
|
}
|
|
29826
|
-
overlay.onDidDismiss().then(() => {
|
|
29827
|
-
this.overlay = undefined;
|
|
29828
|
-
this.isExpanded = false;
|
|
29829
|
-
this.ionDismiss.emit();
|
|
29830
|
-
this.setFocus();
|
|
29831
|
-
});
|
|
29832
|
-
await overlay.present();
|
|
29833
30033
|
return overlay;
|
|
29834
30034
|
}
|
|
29835
30035
|
createOverlay(ev) {
|
|
@@ -30209,8 +30409,8 @@ class Select {
|
|
|
30209
30409
|
return renderedLabel;
|
|
30210
30410
|
}
|
|
30211
30411
|
renderListbox() {
|
|
30212
|
-
const { disabled, inputId, isExpanded } = this;
|
|
30213
|
-
return (hAsync("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "dialog", "aria-expanded": `${isExpanded}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
|
|
30412
|
+
const { disabled, inputId, isExpanded, required } = this;
|
|
30413
|
+
return (hAsync("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "dialog", "aria-expanded": `${isExpanded}`, "aria-required": `${required}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
|
|
30214
30414
|
}
|
|
30215
30415
|
render() {
|
|
30216
30416
|
const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, shape, name, value } = this;
|
|
@@ -30241,7 +30441,7 @@ class Select {
|
|
|
30241
30441
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
30242
30442
|
*/
|
|
30243
30443
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
|
|
30244
|
-
return (hAsync(Host, { key: '
|
|
30444
|
+
return (hAsync(Host, { key: '491cf1b0e3aa31e7c9cfad3e87d83eb54272312a', onClick: this.onClick, class: createColorClasses$1(this.color, {
|
|
30245
30445
|
[mode]: true,
|
|
30246
30446
|
'in-item': inItem,
|
|
30247
30447
|
'in-item-color': hostContext('ion-item.ion-color', el),
|
|
@@ -30257,7 +30457,7 @@ class Select {
|
|
|
30257
30457
|
[`select-justify-${justify}`]: justifyEnabled,
|
|
30258
30458
|
[`select-shape-${shape}`]: shape !== undefined,
|
|
30259
30459
|
[`select-label-placement-${labelPlacement}`]: true,
|
|
30260
|
-
}) }, hAsync("label", { key: '
|
|
30460
|
+
}) }, hAsync("label", { key: '07bf3cb57bd1121383d8c746e3ac49da38300082', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), hAsync("div", { key: '884facd18342797576bbacc761d18d83c52762e3', class: "select-wrapper-inner" }, hAsync("slot", { key: 'c4f2a2a7a76f52db15f9a0b806017caea443c47a', name: "start" }), hAsync("div", { key: '235cf383f268cc74412722cd31e246cbd4c2abe5', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: '1481302e11c494d49dfd80a7aaf743f7e851558f', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: '8a45ea9280651695c8e5435f266c286f3e3f6a18', class: "select-highlight" }))));
|
|
30261
30461
|
}
|
|
30262
30462
|
get el() { return getElement(this); }
|
|
30263
30463
|
static get watchers() { return {
|
|
@@ -30293,6 +30493,7 @@ class Select {
|
|
|
30293
30493
|
"expandedIcon": [1, "expanded-icon"],
|
|
30294
30494
|
"shape": [1],
|
|
30295
30495
|
"value": [1032],
|
|
30496
|
+
"required": [4],
|
|
30296
30497
|
"isExpanded": [32],
|
|
30297
30498
|
"open": [64]
|
|
30298
30499
|
},
|
|
@@ -32689,6 +32890,7 @@ class Toggle {
|
|
|
32689
32890
|
this.labelPlacement = 'start';
|
|
32690
32891
|
this.justify = undefined;
|
|
32691
32892
|
this.alignment = undefined;
|
|
32893
|
+
this.required = false;
|
|
32692
32894
|
}
|
|
32693
32895
|
disabledChanged() {
|
|
32694
32896
|
if (this.gesture) {
|
|
@@ -32770,12 +32972,12 @@ class Toggle {
|
|
|
32770
32972
|
return this.el.textContent !== '';
|
|
32771
32973
|
}
|
|
32772
32974
|
render() {
|
|
32773
|
-
const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment } = this;
|
|
32975
|
+
const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment, required } = this;
|
|
32774
32976
|
const mode = getIonMode$1(this);
|
|
32775
32977
|
const value = this.getValue();
|
|
32776
32978
|
const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
|
|
32777
32979
|
renderHiddenInput(true, el, name, checked ? value : '', disabled);
|
|
32778
|
-
return (hAsync(Host, { key: '
|
|
32980
|
+
return (hAsync(Host, { key: 'ed75573caa6e37011f1453dd7f723fb9bd8a3656', onClick: this.onClick, class: createColorClasses$1(color, {
|
|
32779
32981
|
[mode]: true,
|
|
32780
32982
|
'in-item': hostContext('ion-item', el),
|
|
32781
32983
|
'toggle-activated': activated,
|
|
@@ -32785,10 +32987,10 @@ class Toggle {
|
|
|
32785
32987
|
[`toggle-alignment-${alignment}`]: alignment !== undefined,
|
|
32786
32988
|
[`toggle-label-placement-${labelPlacement}`]: true,
|
|
32787
32989
|
[`toggle-${rtl}`]: true,
|
|
32788
|
-
}) }, hAsync("label", { key: '
|
|
32990
|
+
}) }, hAsync("label", { key: '484860e2a33f4d123904edb96159f0e1972d3add', class: "toggle-wrapper" }, hAsync("input", Object.assign({ key: '360b53080aacfd99a9ff60ffb5219816bd4163ee', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl), required: required }, this.inheritedAttributes)), hAsync("div", { key: 'f7239fa668fe11257239ea30cf0198e4f3274f6b', class: {
|
|
32789
32991
|
'label-text-wrapper': true,
|
|
32790
32992
|
'label-text-wrapper-hidden': !this.hasLabel,
|
|
32791
|
-
}, part: "label" }, hAsync("slot", { key: '
|
|
32993
|
+
}, part: "label" }, hAsync("slot", { key: '9495a4a39889822ee68e0d89dc5a2f863d1feb3c' })), hAsync("div", { key: '55f1eb08c4b705e94fbcf02220bbe1d292f06155', class: "native-wrapper" }, this.renderToggleControl()))));
|
|
32792
32994
|
}
|
|
32793
32995
|
get el() { return getElement(this); }
|
|
32794
32996
|
static get watchers() { return {
|
|
@@ -32811,6 +33013,7 @@ class Toggle {
|
|
|
32811
33013
|
"labelPlacement": [1, "label-placement"],
|
|
32812
33014
|
"justify": [1],
|
|
32813
33015
|
"alignment": [1],
|
|
33016
|
+
"required": [4],
|
|
32814
33017
|
"activated": [32]
|
|
32815
33018
|
},
|
|
32816
33019
|
"$listeners$": undefined,
|
|
@@ -32842,6 +33045,10 @@ var IonToolbarMdStyle0 = toolbarMdCss;
|
|
|
32842
33045
|
* @slot secondary - Content is placed to the left of the toolbar text in `ios` mode, and directly to the right in `md` mode.
|
|
32843
33046
|
* @slot primary - Content is placed to the right of the toolbar text in `ios` mode, and to the far right in `md` mode.
|
|
32844
33047
|
* @slot end - Content is placed to the right of the toolbar text in LTR, and to the left in RTL.
|
|
33048
|
+
*
|
|
33049
|
+
* @part background - The background of the toolbar, covering the entire area behind the toolbar content.
|
|
33050
|
+
* @part container - The container that wraps all toolbar content, including the default slot and named slot content.
|
|
33051
|
+
* @part content - The container for the default slot, wrapping content provided without a named slot.
|
|
32845
33052
|
*/
|
|
32846
33053
|
class Toolbar {
|
|
32847
33054
|
constructor(hostRef) {
|
|
@@ -32892,10 +33099,10 @@ class Toolbar {
|
|
|
32892
33099
|
this.childrenStyles.forEach((value) => {
|
|
32893
33100
|
Object.assign(childStyles, value);
|
|
32894
33101
|
});
|
|
32895
|
-
return (hAsync(Host, { key: '
|
|
33102
|
+
return (hAsync(Host, { key: '4fdc9ae82a93237cc28ceb95b0ebd8069b62839d', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
|
|
32896
33103
|
[mode]: true,
|
|
32897
33104
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
32898
|
-
})) }, hAsync("div", { key: '
|
|
33105
|
+
})) }, hAsync("div", { key: '443a216362bbbf1c149ed12140d52b0f0ea2d664', class: "toolbar-background", part: "background" }), hAsync("div", { key: '1df87f4027d605e42757a13d4828df45b90a4fdc', class: "toolbar-container", part: "container" }, hAsync("slot", { key: 'f66f34972be8e3f4915b9c6f5808600dbaedb1ea', name: "start" }), hAsync("slot", { key: '14f38b0975e956f404c4eb3ee56f2055c6615276', name: "secondary" }), hAsync("div", { key: '75ba5953a25c7544793484d2b245792cb0a5af75', class: "toolbar-content", part: "content" }, hAsync("slot", { key: '149dfa58ff7106f318fecb4134e7c69edf8bc231' })), hAsync("slot", { key: '807ab9ad21d7f1d9d427a4086460bcb9e5e8c019', name: "primary" }), hAsync("slot", { key: 'bd2f9da95d2fa8e74dc6e0666587ceecbba99d9f', name: "end" }))));
|
|
32899
33106
|
}
|
|
32900
33107
|
get el() { return getElement(this); }
|
|
32901
33108
|
static get style() { return {
|