@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.js
CHANGED
|
@@ -2710,16 +2710,6 @@ const shallowEqualStringMap = (map1, map2) => {
|
|
|
2710
2710
|
}
|
|
2711
2711
|
return true;
|
|
2712
2712
|
};
|
|
2713
|
-
const getNextSiblingOfType = (element) => {
|
|
2714
|
-
let sibling = element.nextSibling;
|
|
2715
|
-
while (sibling) {
|
|
2716
|
-
if (sibling.nodeType === Node.ELEMENT_NODE && sibling !== null) {
|
|
2717
|
-
return sibling;
|
|
2718
|
-
}
|
|
2719
|
-
sibling = sibling.nextSibling;
|
|
2720
|
-
}
|
|
2721
|
-
return null;
|
|
2722
|
-
};
|
|
2723
2713
|
|
|
2724
2714
|
/* Ionicons v7.2.2, ES Modules */
|
|
2725
2715
|
const arrowBackSharp = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><path stroke-linecap='square' stroke-miterlimit='10' stroke-width='48' d='M244 400L100 256l144-144M120 256h292' class='ionicon-fill-none'/></svg>";
|
|
@@ -3227,9 +3217,12 @@ let accordionIds = 0;
|
|
|
3227
3217
|
* @param message - The string message to be logged to the console.
|
|
3228
3218
|
*/
|
|
3229
3219
|
const printIonWarning = (message, ...params) => {
|
|
3230
|
-
|
|
3220
|
+
const logLevel = config.get('logLevel', "WARN" /* LogLevel.WARN */);
|
|
3221
|
+
if (["WARN" /* LogLevel.WARN */].includes(logLevel)) {
|
|
3222
|
+
return console.warn(`[Ionic Warning]: ${message}`, ...params);
|
|
3223
|
+
}
|
|
3231
3224
|
};
|
|
3232
|
-
|
|
3225
|
+
/**
|
|
3233
3226
|
* Logs an error to the console with an Ionic prefix
|
|
3234
3227
|
* to indicate the library that is warning the developer.
|
|
3235
3228
|
*
|
|
@@ -3237,7 +3230,10 @@ const printIonWarning = (message, ...params) => {
|
|
|
3237
3230
|
* @param params - Additional arguments to supply to the console.error.
|
|
3238
3231
|
*/
|
|
3239
3232
|
const printIonError = (message, ...params) => {
|
|
3240
|
-
|
|
3233
|
+
const logLevel = config.get('logLevel', "ERROR" /* LogLevel.ERROR */);
|
|
3234
|
+
if (["ERROR" /* LogLevel.ERROR */, "WARN" /* LogLevel.WARN */].includes(logLevel)) {
|
|
3235
|
+
return console.error(`[Ionic Error]: ${message}`, ...params);
|
|
3236
|
+
}
|
|
3241
3237
|
};
|
|
3242
3238
|
/**
|
|
3243
3239
|
* Prints an error informing developers that an implementation requires an element to be used
|
|
@@ -8438,10 +8434,10 @@ class CardTitle {
|
|
|
8438
8434
|
}; }
|
|
8439
8435
|
}
|
|
8440
8436
|
|
|
8441
|
-
const checkboxIosCss = ":host{--checkbox-background-checked:var(--ion-color-primary, #0054e9);--border-color-checked:var(--ion-color-primary, #0054e9);--checkmark-color:var(--ion-color-primary-contrast, #fff);--transition:none;display:inline-block;position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0;width:100%;height:100%}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}:host(.ion-color){--checkbox-background-checked:var(--ion-color-base);--border-color-checked:var(--ion-color-base);--checkmark-color:var(--ion-color-contrast)}.checkbox-wrapper{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;cursor:inherit}.label-text-wrapper{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host(.in-item) .label-text-wrapper,:host(.in-item:not(.checkbox-label-placement-stacked):not([slot])) .native-wrapper{margin-top:10px;margin-bottom:10px}:host(.in-item.checkbox-label-placement-stacked) .label-text-wrapper{margin-top:10px;margin-bottom:16px}:host(.in-item.checkbox-label-placement-stacked) .native-wrapper{margin-bottom:10px}.label-text-wrapper-hidden{display:none}input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.checkbox-icon{border-radius:var(--border-radius);position:relative;width:var(--size);height:var(--size);-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--checkbox-background);-webkit-box-sizing:border-box;box-sizing:border-box}.checkbox-icon path{fill:none;stroke:var(--checkmark-color);stroke-width:var(--checkmark-width);opacity:0}
|
|
8437
|
+
const checkboxIosCss = ":host{--checkbox-background-checked:var(--ion-color-primary, #0054e9);--border-color-checked:var(--ion-color-primary, #0054e9);--checkmark-color:var(--ion-color-primary-contrast, #fff);--transition:none;display:inline-block;position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0;width:100%;height:100%}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}:host(.ion-color){--checkbox-background-checked:var(--ion-color-base);--border-color-checked:var(--ion-color-base);--checkmark-color:var(--ion-color-contrast)}.checkbox-wrapper{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;cursor:inherit}.label-text-wrapper{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host(.in-item) .label-text-wrapper,:host(.in-item:not(.checkbox-label-placement-stacked):not([slot])) .native-wrapper{margin-top:10px;margin-bottom:10px}:host(.in-item.checkbox-label-placement-stacked) .label-text-wrapper{margin-top:10px;margin-bottom:16px}:host(.in-item.checkbox-label-placement-stacked) .native-wrapper{margin-bottom:10px}.label-text-wrapper-hidden{display:none}input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.checkbox-icon{border-radius:var(--border-radius);position:relative;width:var(--size);height:var(--size);-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--checkbox-background);-webkit-box-sizing:border-box;box-sizing:border-box}.checkbox-icon path{fill:none;stroke:var(--checkmark-color);stroke-width:var(--checkmark-width);opacity:0}.checkbox-bottom{padding-top:4px;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;font-size:0.75rem;white-space:normal}:host(.checkbox-label-placement-stacked) .checkbox-bottom{font-size:1rem}.checkbox-bottom .error-text{display:none;color:var(--ion-color-danger, #c5000f)}.checkbox-bottom .helper-text{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}:host(.ion-touched.ion-invalid) .checkbox-bottom .error-text{display:block}:host(.ion-touched.ion-invalid) .checkbox-bottom .helper-text{display:none}:host(.checkbox-label-placement-start) .checkbox-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.checkbox-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}:host(.checkbox-label-placement-end) .checkbox-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse;-ms-flex-pack:start;justify-content:start}:host(.checkbox-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}:host(.checkbox-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}:host(.checkbox-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.checkbox-label-placement-stacked) .checkbox-wrapper{-ms-flex-direction:column;flex-direction:column;text-align:center}:host(.checkbox-label-placement-stacked) .label-text-wrapper{-webkit-transform:scale(0.75);transform:scale(0.75);margin-left:0;margin-right:0;margin-bottom:16px;max-width:calc(100% / 0.75)}:host(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host-context([dir=rtl]):host(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper,:host-context([dir=rtl]).checkbox-label-placement-stacked.checkbox-alignment-start .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){:host(.checkbox-label-placement-stacked.checkbox-alignment-start:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}}:host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper{-webkit-transform-origin:center top;transform-origin:center top}:host-context([dir=rtl]):host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper,:host-context([dir=rtl]).checkbox-label-placement-stacked.checkbox-alignment-center .label-text-wrapper{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}@supports selector(:dir(rtl)){:host(.checkbox-label-placement-stacked.checkbox-alignment-center:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}}:host(.checkbox-justify-space-between) .checkbox-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.checkbox-justify-start) .checkbox-wrapper{-ms-flex-pack:start;justify-content:start}:host(.checkbox-justify-end) .checkbox-wrapper{-ms-flex-pack:end;justify-content:end}:host(.checkbox-alignment-start) .checkbox-wrapper{-ms-flex-align:start;align-items:start}:host(.checkbox-alignment-center) .checkbox-wrapper{-ms-flex-align:center;align-items:center}:host(.checkbox-justify-space-between),:host(.checkbox-justify-start),:host(.checkbox-justify-end),:host(.checkbox-alignment-start),:host(.checkbox-alignment-center){display:block}:host(.checkbox-checked) .checkbox-icon,:host(.checkbox-indeterminate) .checkbox-icon{border-color:var(--border-color-checked);background:var(--checkbox-background-checked)}:host(.checkbox-checked) .checkbox-icon path,:host(.checkbox-indeterminate) .checkbox-icon path{opacity:1}:host(.checkbox-disabled){pointer-events:none}:host{--border-radius:50%;--border-width:0.125rem;--border-style:solid;--border-color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.23);--checkbox-background:var(--ion-item-background, var(--ion-background-color, #fff));--size:min(1.375rem, 55.836px);--checkmark-width:1.5px}:host(.checkbox-disabled){opacity:0.3}";
|
|
8442
8438
|
var IonCheckboxIosStyle0 = checkboxIosCss;
|
|
8443
8439
|
|
|
8444
|
-
const checkboxMdCss = ":host{--checkbox-background-checked:var(--ion-color-primary, #0054e9);--border-color-checked:var(--ion-color-primary, #0054e9);--checkmark-color:var(--ion-color-primary-contrast, #fff);--transition:none;display:inline-block;position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0;width:100%;height:100%}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}:host(.ion-color){--checkbox-background-checked:var(--ion-color-base);--border-color-checked:var(--ion-color-base);--checkmark-color:var(--ion-color-contrast)}.checkbox-wrapper{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;cursor:inherit}.label-text-wrapper{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host(.in-item) .label-text-wrapper,:host(.in-item:not(.checkbox-label-placement-stacked):not([slot])) .native-wrapper{margin-top:10px;margin-bottom:10px}:host(.in-item.checkbox-label-placement-stacked) .label-text-wrapper{margin-top:10px;margin-bottom:16px}:host(.in-item.checkbox-label-placement-stacked) .native-wrapper{margin-bottom:10px}.label-text-wrapper-hidden{display:none}input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.checkbox-icon{border-radius:var(--border-radius);position:relative;width:var(--size);height:var(--size);-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--checkbox-background);-webkit-box-sizing:border-box;box-sizing:border-box}.checkbox-icon path{fill:none;stroke:var(--checkmark-color);stroke-width:var(--checkmark-width);opacity:0}
|
|
8440
|
+
const checkboxMdCss = ":host{--checkbox-background-checked:var(--ion-color-primary, #0054e9);--border-color-checked:var(--ion-color-primary, #0054e9);--checkmark-color:var(--ion-color-primary-contrast, #fff);--transition:none;display:inline-block;position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0;width:100%;height:100%}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}:host(.ion-color){--checkbox-background-checked:var(--ion-color-base);--border-color-checked:var(--ion-color-base);--checkmark-color:var(--ion-color-contrast)}.checkbox-wrapper{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;cursor:inherit}.label-text-wrapper{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host(.in-item) .label-text-wrapper,:host(.in-item:not(.checkbox-label-placement-stacked):not([slot])) .native-wrapper{margin-top:10px;margin-bottom:10px}:host(.in-item.checkbox-label-placement-stacked) .label-text-wrapper{margin-top:10px;margin-bottom:16px}:host(.in-item.checkbox-label-placement-stacked) .native-wrapper{margin-bottom:10px}.label-text-wrapper-hidden{display:none}input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.checkbox-icon{border-radius:var(--border-radius);position:relative;width:var(--size);height:var(--size);-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--checkbox-background);-webkit-box-sizing:border-box;box-sizing:border-box}.checkbox-icon path{fill:none;stroke:var(--checkmark-color);stroke-width:var(--checkmark-width);opacity:0}.checkbox-bottom{padding-top:4px;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;font-size:0.75rem;white-space:normal}:host(.checkbox-label-placement-stacked) .checkbox-bottom{font-size:1rem}.checkbox-bottom .error-text{display:none;color:var(--ion-color-danger, #c5000f)}.checkbox-bottom .helper-text{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}:host(.ion-touched.ion-invalid) .checkbox-bottom .error-text{display:block}:host(.ion-touched.ion-invalid) .checkbox-bottom .helper-text{display:none}:host(.checkbox-label-placement-start) .checkbox-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.checkbox-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}:host(.checkbox-label-placement-end) .checkbox-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse;-ms-flex-pack:start;justify-content:start}:host(.checkbox-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}:host(.checkbox-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}:host(.checkbox-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.checkbox-label-placement-stacked) .checkbox-wrapper{-ms-flex-direction:column;flex-direction:column;text-align:center}:host(.checkbox-label-placement-stacked) .label-text-wrapper{-webkit-transform:scale(0.75);transform:scale(0.75);margin-left:0;margin-right:0;margin-bottom:16px;max-width:calc(100% / 0.75)}:host(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host-context([dir=rtl]):host(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper,:host-context([dir=rtl]).checkbox-label-placement-stacked.checkbox-alignment-start .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){:host(.checkbox-label-placement-stacked.checkbox-alignment-start:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}}:host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper{-webkit-transform-origin:center top;transform-origin:center top}:host-context([dir=rtl]):host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper,:host-context([dir=rtl]).checkbox-label-placement-stacked.checkbox-alignment-center .label-text-wrapper{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}@supports selector(:dir(rtl)){:host(.checkbox-label-placement-stacked.checkbox-alignment-center:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}}:host(.checkbox-justify-space-between) .checkbox-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.checkbox-justify-start) .checkbox-wrapper{-ms-flex-pack:start;justify-content:start}:host(.checkbox-justify-end) .checkbox-wrapper{-ms-flex-pack:end;justify-content:end}:host(.checkbox-alignment-start) .checkbox-wrapper{-ms-flex-align:start;align-items:start}:host(.checkbox-alignment-center) .checkbox-wrapper{-ms-flex-align:center;align-items:center}:host(.checkbox-justify-space-between),:host(.checkbox-justify-start),:host(.checkbox-justify-end),:host(.checkbox-alignment-start),:host(.checkbox-alignment-center){display:block}:host(.checkbox-checked) .checkbox-icon,:host(.checkbox-indeterminate) .checkbox-icon{border-color:var(--border-color-checked);background:var(--checkbox-background-checked)}:host(.checkbox-checked) .checkbox-icon path,:host(.checkbox-indeterminate) .checkbox-icon path{opacity:1}:host(.checkbox-disabled){pointer-events:none}:host{--border-radius:calc(var(--size) * .125);--border-width:2px;--border-style:solid;--border-color:rgb(var(--ion-text-color-rgb, 0, 0, 0), 0.6);--checkmark-width:3;--checkbox-background:var(--ion-item-background, var(--ion-background-color, #fff));--transition:background 180ms cubic-bezier(0.4, 0, 0.2, 1);--size:18px}.checkbox-icon path{stroke-dasharray:30;stroke-dashoffset:30}:host(.checkbox-checked) .checkbox-icon path,:host(.checkbox-indeterminate) .checkbox-icon path{stroke-dashoffset:0;-webkit-transition:stroke-dashoffset 90ms linear 90ms;transition:stroke-dashoffset 90ms linear 90ms}:host(.checkbox-disabled) .label-text-wrapper{opacity:0.38}:host(.checkbox-disabled) .native-wrapper{opacity:0.63}";
|
|
8445
8441
|
var IonCheckboxMdStyle0 = checkboxMdCss;
|
|
8446
8442
|
|
|
8447
8443
|
/**
|
|
@@ -8452,6 +8448,9 @@ var IonCheckboxMdStyle0 = checkboxMdCss;
|
|
|
8452
8448
|
* @part container - The container for the checkbox mark.
|
|
8453
8449
|
* @part label - The label text describing the checkbox.
|
|
8454
8450
|
* @part mark - The checkmark used to indicate the checked state.
|
|
8451
|
+
* @part supporting-text - Supporting text displayed beneath the checkbox label.
|
|
8452
|
+
* @part helper-text - Supporting text displayed beneath the checkbox label when the checkbox is valid.
|
|
8453
|
+
* @part error-text - Supporting text displayed beneath the checkbox label when the checkbox is invalid and touched.
|
|
8455
8454
|
*/
|
|
8456
8455
|
class Checkbox {
|
|
8457
8456
|
constructor(hostRef) {
|
|
@@ -8460,6 +8459,8 @@ class Checkbox {
|
|
|
8460
8459
|
this.ionFocus = createEvent(this, "ionFocus", 7);
|
|
8461
8460
|
this.ionBlur = createEvent(this, "ionBlur", 7);
|
|
8462
8461
|
this.inputId = `ion-cb-${checkboxIds++}`;
|
|
8462
|
+
this.helperTextId = `${this.inputId}-helper-text`;
|
|
8463
|
+
this.errorTextId = `${this.inputId}-error-text`;
|
|
8463
8464
|
this.inheritedAttributes = {};
|
|
8464
8465
|
/**
|
|
8465
8466
|
* Sets the checked property and emits
|
|
@@ -8497,10 +8498,13 @@ class Checkbox {
|
|
|
8497
8498
|
this.checked = false;
|
|
8498
8499
|
this.indeterminate = false;
|
|
8499
8500
|
this.disabled = false;
|
|
8501
|
+
this.errorText = undefined;
|
|
8502
|
+
this.helperText = undefined;
|
|
8500
8503
|
this.value = 'on';
|
|
8501
8504
|
this.labelPlacement = 'start';
|
|
8502
8505
|
this.justify = undefined;
|
|
8503
8506
|
this.alignment = undefined;
|
|
8507
|
+
this.required = false;
|
|
8504
8508
|
}
|
|
8505
8509
|
componentWillLoad() {
|
|
8506
8510
|
this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
|
|
@@ -8511,12 +8515,38 @@ class Checkbox {
|
|
|
8511
8515
|
this.focusEl.focus();
|
|
8512
8516
|
}
|
|
8513
8517
|
}
|
|
8518
|
+
getHintTextID() {
|
|
8519
|
+
const { el, helperText, errorText, helperTextId, errorTextId } = this;
|
|
8520
|
+
if (el.classList.contains('ion-touched') && el.classList.contains('ion-invalid') && errorText) {
|
|
8521
|
+
return errorTextId;
|
|
8522
|
+
}
|
|
8523
|
+
if (helperText) {
|
|
8524
|
+
return helperTextId;
|
|
8525
|
+
}
|
|
8526
|
+
return undefined;
|
|
8527
|
+
}
|
|
8528
|
+
/**
|
|
8529
|
+
* Responsible for rendering helper text and error text.
|
|
8530
|
+
* This element should only be rendered if hint text is set.
|
|
8531
|
+
*/
|
|
8532
|
+
renderHintText() {
|
|
8533
|
+
const { helperText, errorText, helperTextId, errorTextId } = this;
|
|
8534
|
+
/**
|
|
8535
|
+
* undefined and empty string values should
|
|
8536
|
+
* be treated as not having helper/error text.
|
|
8537
|
+
*/
|
|
8538
|
+
const hasHintText = !!helperText || !!errorText;
|
|
8539
|
+
if (!hasHintText) {
|
|
8540
|
+
return;
|
|
8541
|
+
}
|
|
8542
|
+
return (hAsync("div", { class: "checkbox-bottom" }, hAsync("div", { id: helperTextId, class: "helper-text", part: "supporting-text helper-text" }, helperText), hAsync("div", { id: errorTextId, class: "error-text", part: "supporting-text error-text" }, errorText)));
|
|
8543
|
+
}
|
|
8514
8544
|
render() {
|
|
8515
|
-
const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, } = this;
|
|
8545
|
+
const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, required, } = this;
|
|
8516
8546
|
const mode = getIonMode$1(this);
|
|
8517
8547
|
const path = getSVGPath(mode, indeterminate);
|
|
8518
8548
|
renderHiddenInput(true, el, name, checked ? value : '', disabled);
|
|
8519
|
-
return (hAsync(Host, { key: '
|
|
8549
|
+
return (hAsync(Host, { key: '7ac31df89b07c781ddcd30a6a8c109494d0c500a', "aria-checked": indeterminate ? 'mixed' : `${checked}`, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId, class: createColorClasses$1(color, {
|
|
8520
8550
|
[mode]: true,
|
|
8521
8551
|
'in-item': hostContext('ion-item', el),
|
|
8522
8552
|
'checkbox-checked': checked,
|
|
@@ -8526,10 +8556,10 @@ class Checkbox {
|
|
|
8526
8556
|
[`checkbox-justify-${justify}`]: justify !== undefined,
|
|
8527
8557
|
[`checkbox-alignment-${alignment}`]: alignment !== undefined,
|
|
8528
8558
|
[`checkbox-label-placement-${labelPlacement}`]: true,
|
|
8529
|
-
}), onClick: this.onClick }, hAsync("label", { key: '
|
|
8559
|
+
}), onClick: this.onClick }, hAsync("label", { key: '674e923fe1ec83a33c31d67b0d414d61ba8f9e4b', class: "checkbox-wrapper" }, hAsync("input", Object.assign({ key: 'c4866e392fbdf3b76edcd1507cb67f40a213a4e7', type: "checkbox", checked: checked ? true : undefined, disabled: disabled, id: inputId, onChange: this.toggleChecked, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl), required: required }, inheritedAttributes)), hAsync("div", { key: '79cb96e5963b9331a760438ec8cc9e456215de91', class: {
|
|
8530
8560
|
'label-text-wrapper': true,
|
|
8531
8561
|
'label-text-wrapper-hidden': el.textContent === '',
|
|
8532
|
-
}, part: "label" }, hAsync("slot", { key: '
|
|
8562
|
+
}, part: "label" }, hAsync("slot", { key: '896cb26292c9a4a6c105afb39611472b93bf5e90' }), this.renderHintText()), hAsync("div", { key: '52cd22e79fd5db30b45d7b092aa5af3944392336', class: "native-wrapper" }, hAsync("svg", { key: '18d862ab7cc32055eaf200eea560ff1b2b6cbde0', class: "checkbox-icon", viewBox: "0 0 24 24", part: "container" }, path)))));
|
|
8533
8563
|
}
|
|
8534
8564
|
getSVGPath(mode, indeterminate) {
|
|
8535
8565
|
let path = indeterminate ? (hAsync("path", { d: "M6 12L18 12", part: "mark" })) : (hAsync("path", { d: "M5.9,12.5l3.8,3.8l8.8-8.8", part: "mark" }));
|
|
@@ -8552,10 +8582,13 @@ class Checkbox {
|
|
|
8552
8582
|
"checked": [1028],
|
|
8553
8583
|
"indeterminate": [1028],
|
|
8554
8584
|
"disabled": [4],
|
|
8585
|
+
"errorText": [1, "error-text"],
|
|
8586
|
+
"helperText": [1, "helper-text"],
|
|
8555
8587
|
"value": [8],
|
|
8556
8588
|
"labelPlacement": [1, "label-placement"],
|
|
8557
8589
|
"justify": [1],
|
|
8558
8590
|
"alignment": [1],
|
|
8591
|
+
"required": [4],
|
|
8559
8592
|
"setFocus": [64]
|
|
8560
8593
|
},
|
|
8561
8594
|
"$listeners$": undefined,
|
|
@@ -19031,7 +19064,7 @@ const computeDuration = (remaining, velocity) => {
|
|
|
19031
19064
|
};
|
|
19032
19065
|
|
|
19033
19066
|
const createSheetEnterAnimation = (opts) => {
|
|
19034
|
-
const { currentBreakpoint, backdropBreakpoint } = opts;
|
|
19067
|
+
const { currentBreakpoint, backdropBreakpoint, expandToScroll } = opts;
|
|
19035
19068
|
/**
|
|
19036
19069
|
* If the backdropBreakpoint is undefined, then the backdrop
|
|
19037
19070
|
* should always fade in. If the backdropBreakpoint came before the
|
|
@@ -19051,7 +19084,16 @@ const createSheetEnterAnimation = (opts) => {
|
|
|
19051
19084
|
{ offset: 0, opacity: 1, transform: 'translateY(100%)' },
|
|
19052
19085
|
{ offset: 1, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
|
|
19053
19086
|
]);
|
|
19054
|
-
|
|
19087
|
+
/**
|
|
19088
|
+
* This allows the content to be scrollable at any breakpoint.
|
|
19089
|
+
*/
|
|
19090
|
+
const contentAnimation = !expandToScroll
|
|
19091
|
+
? createAnimation('contentAnimation').keyframes([
|
|
19092
|
+
{ offset: 0, opacity: 1, maxHeight: `${(1 - currentBreakpoint) * 100}%` },
|
|
19093
|
+
{ offset: 1, opacity: 1, maxHeight: `${currentBreakpoint * 100}%` },
|
|
19094
|
+
])
|
|
19095
|
+
: undefined;
|
|
19096
|
+
return { wrapperAnimation, backdropAnimation, contentAnimation };
|
|
19055
19097
|
};
|
|
19056
19098
|
const createSheetLeaveAnimation = (opts) => {
|
|
19057
19099
|
const { currentBreakpoint, backdropBreakpoint } = opts;
|
|
@@ -19086,22 +19128,68 @@ const createEnterAnimation$1 = () => {
|
|
|
19086
19128
|
})
|
|
19087
19129
|
.afterClearStyles(['pointer-events']);
|
|
19088
19130
|
const wrapperAnimation = createAnimation().fromTo('transform', 'translateY(100vh)', 'translateY(0vh)');
|
|
19089
|
-
return { backdropAnimation, wrapperAnimation };
|
|
19131
|
+
return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
|
|
19090
19132
|
};
|
|
19091
19133
|
/**
|
|
19092
19134
|
* iOS Modal Enter Animation for the Card presentation style
|
|
19093
19135
|
*/
|
|
19094
19136
|
const iosEnterAnimation$3 = (baseEl, opts) => {
|
|
19095
|
-
const { presentingEl, currentBreakpoint } = opts;
|
|
19137
|
+
const { presentingEl, currentBreakpoint, expandToScroll } = opts;
|
|
19096
19138
|
const root = getElementRoot(baseEl);
|
|
19097
|
-
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
|
|
19139
|
+
const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
|
|
19098
19140
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
19099
19141
|
wrapperAnimation.addElement(root.querySelectorAll('.modal-wrapper, .modal-shadow')).beforeStyles({ opacity: 1 });
|
|
19142
|
+
// The content animation is only added if scrolling is enabled for
|
|
19143
|
+
// all the breakpoints.
|
|
19144
|
+
!expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
|
|
19100
19145
|
const baseAnimation = createAnimation('entering-base')
|
|
19101
19146
|
.addElement(baseEl)
|
|
19102
19147
|
.easing('cubic-bezier(0.32,0.72,0,1)')
|
|
19103
19148
|
.duration(500)
|
|
19104
|
-
.addAnimation(wrapperAnimation)
|
|
19149
|
+
.addAnimation([wrapperAnimation])
|
|
19150
|
+
.beforeAddWrite(() => {
|
|
19151
|
+
if (expandToScroll) {
|
|
19152
|
+
// Scroll can only be done when the modal is fully expanded.
|
|
19153
|
+
return;
|
|
19154
|
+
}
|
|
19155
|
+
/**
|
|
19156
|
+
* There are some browsers that causes flickering when
|
|
19157
|
+
* dragging the content when scroll is enabled at every
|
|
19158
|
+
* breakpoint. This is due to the wrapper element being
|
|
19159
|
+
* transformed off the screen and having a snap animation.
|
|
19160
|
+
*
|
|
19161
|
+
* A workaround is to clone the footer element and append
|
|
19162
|
+
* it outside of the wrapper element. This way, the footer
|
|
19163
|
+
* is still visible and the drag can be done without
|
|
19164
|
+
* flickering. The original footer is hidden until the modal
|
|
19165
|
+
* is dismissed. This maintains the animation of the footer
|
|
19166
|
+
* when the modal is dismissed.
|
|
19167
|
+
*
|
|
19168
|
+
* The workaround needs to be done before the animation starts
|
|
19169
|
+
* so there are no flickering issues.
|
|
19170
|
+
*/
|
|
19171
|
+
const ionFooter = baseEl.querySelector('ion-footer');
|
|
19172
|
+
/**
|
|
19173
|
+
* This check is needed to prevent more than one footer
|
|
19174
|
+
* from being appended to the shadow root.
|
|
19175
|
+
* Otherwise, iOS and MD enter animations would append
|
|
19176
|
+
* the footer twice.
|
|
19177
|
+
*/
|
|
19178
|
+
const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
|
|
19179
|
+
if (ionFooter && !ionFooterAlreadyAppended) {
|
|
19180
|
+
const footerHeight = ionFooter.clientHeight;
|
|
19181
|
+
const clonedFooter = ionFooter.cloneNode(true);
|
|
19182
|
+
baseEl.shadowRoot.appendChild(clonedFooter);
|
|
19183
|
+
ionFooter.style.setProperty('display', 'none');
|
|
19184
|
+
ionFooter.setAttribute('aria-hidden', 'true');
|
|
19185
|
+
// Padding is added to prevent some content from being hidden.
|
|
19186
|
+
const page = baseEl.querySelector('.ion-page');
|
|
19187
|
+
page.style.setProperty('padding-bottom', `${footerHeight}px`);
|
|
19188
|
+
}
|
|
19189
|
+
});
|
|
19190
|
+
if (contentAnimation) {
|
|
19191
|
+
baseAnimation.addAnimation(contentAnimation);
|
|
19192
|
+
}
|
|
19105
19193
|
if (presentingEl) {
|
|
19106
19194
|
const isMobile = window.innerWidth < 768;
|
|
19107
19195
|
const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
|
|
@@ -19179,7 +19267,7 @@ const createLeaveAnimation$1 = () => {
|
|
|
19179
19267
|
* iOS Modal Leave Animation
|
|
19180
19268
|
*/
|
|
19181
19269
|
const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
|
|
19182
|
-
const { presentingEl, currentBreakpoint } = opts;
|
|
19270
|
+
const { presentingEl, currentBreakpoint, expandToScroll } = opts;
|
|
19183
19271
|
const root = getElementRoot(baseEl);
|
|
19184
19272
|
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
|
|
19185
19273
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
@@ -19188,7 +19276,29 @@ const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
|
|
|
19188
19276
|
.addElement(baseEl)
|
|
19189
19277
|
.easing('cubic-bezier(0.32,0.72,0,1)')
|
|
19190
19278
|
.duration(duration)
|
|
19191
|
-
.addAnimation(wrapperAnimation)
|
|
19279
|
+
.addAnimation(wrapperAnimation)
|
|
19280
|
+
.beforeAddWrite(() => {
|
|
19281
|
+
if (expandToScroll) {
|
|
19282
|
+
// Scroll can only be done when the modal is fully expanded.
|
|
19283
|
+
return;
|
|
19284
|
+
}
|
|
19285
|
+
/**
|
|
19286
|
+
* If expandToScroll is disabled, we need to swap
|
|
19287
|
+
* the visibility to the original, so the footer
|
|
19288
|
+
* dismisses with the modal and doesn't stay
|
|
19289
|
+
* until the modal is removed from the DOM.
|
|
19290
|
+
*/
|
|
19291
|
+
const ionFooter = baseEl.querySelector('ion-footer');
|
|
19292
|
+
if (ionFooter) {
|
|
19293
|
+
const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
|
|
19294
|
+
ionFooter.style.removeProperty('display');
|
|
19295
|
+
ionFooter.removeAttribute('aria-hidden');
|
|
19296
|
+
clonedFooter.style.setProperty('display', 'none');
|
|
19297
|
+
clonedFooter.setAttribute('aria-hidden', 'true');
|
|
19298
|
+
const page = baseEl.querySelector('.ion-page');
|
|
19299
|
+
page.style.removeProperty('padding-bottom');
|
|
19300
|
+
}
|
|
19301
|
+
});
|
|
19192
19302
|
if (presentingEl) {
|
|
19193
19303
|
const isMobile = window.innerWidth < 768;
|
|
19194
19304
|
const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
|
|
@@ -19266,22 +19376,69 @@ const createEnterAnimation = () => {
|
|
|
19266
19376
|
{ offset: 0, opacity: 0.01, transform: 'translateY(40px)' },
|
|
19267
19377
|
{ offset: 1, opacity: 1, transform: `translateY(0px)` },
|
|
19268
19378
|
]);
|
|
19269
|
-
return { backdropAnimation, wrapperAnimation };
|
|
19379
|
+
return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
|
|
19270
19380
|
};
|
|
19271
19381
|
/**
|
|
19272
19382
|
* Md Modal Enter Animation
|
|
19273
19383
|
*/
|
|
19274
19384
|
const mdEnterAnimation$2 = (baseEl, opts) => {
|
|
19275
|
-
const { currentBreakpoint } = opts;
|
|
19385
|
+
const { currentBreakpoint, expandToScroll } = opts;
|
|
19276
19386
|
const root = getElementRoot(baseEl);
|
|
19277
|
-
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
|
|
19387
|
+
const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
|
|
19278
19388
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
19279
19389
|
wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
|
|
19280
|
-
|
|
19390
|
+
// The content animation is only added if scrolling is enabled for
|
|
19391
|
+
// all the breakpoints.
|
|
19392
|
+
expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
|
|
19393
|
+
const baseAnimation = createAnimation()
|
|
19281
19394
|
.addElement(baseEl)
|
|
19282
19395
|
.easing('cubic-bezier(0.36,0.66,0.04,1)')
|
|
19283
19396
|
.duration(280)
|
|
19284
|
-
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
19397
|
+
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
19398
|
+
.beforeAddWrite(() => {
|
|
19399
|
+
if (expandToScroll) {
|
|
19400
|
+
// Scroll can only be done when the modal is fully expanded.
|
|
19401
|
+
return;
|
|
19402
|
+
}
|
|
19403
|
+
/**
|
|
19404
|
+
* There are some browsers that causes flickering when
|
|
19405
|
+
* dragging the content when scroll is enabled at every
|
|
19406
|
+
* breakpoint. This is due to the wrapper element being
|
|
19407
|
+
* transformed off the screen and having a snap animation.
|
|
19408
|
+
*
|
|
19409
|
+
* A workaround is to clone the footer element and append
|
|
19410
|
+
* it outside of the wrapper element. This way, the footer
|
|
19411
|
+
* is still visible and the drag can be done without
|
|
19412
|
+
* flickering. The original footer is hidden until the modal
|
|
19413
|
+
* is dismissed. This maintains the animation of the footer
|
|
19414
|
+
* when the modal is dismissed.
|
|
19415
|
+
*
|
|
19416
|
+
* The workaround needs to be done before the animation starts
|
|
19417
|
+
* so there are no flickering issues.
|
|
19418
|
+
*/
|
|
19419
|
+
const ionFooter = baseEl.querySelector('ion-footer');
|
|
19420
|
+
/**
|
|
19421
|
+
* This check is needed to prevent more than one footer
|
|
19422
|
+
* from being appended to the shadow root.
|
|
19423
|
+
* Otherwise, iOS and MD enter animations would append
|
|
19424
|
+
* the footer twice.
|
|
19425
|
+
*/
|
|
19426
|
+
const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
|
|
19427
|
+
if (ionFooter && !ionFooterAlreadyAppended) {
|
|
19428
|
+
const footerHeight = ionFooter.clientHeight;
|
|
19429
|
+
const clonedFooter = ionFooter.cloneNode(true);
|
|
19430
|
+
baseEl.shadowRoot.appendChild(clonedFooter);
|
|
19431
|
+
ionFooter.style.setProperty('display', 'none');
|
|
19432
|
+
ionFooter.setAttribute('aria-hidden', 'true');
|
|
19433
|
+
// Padding is added to prevent some content from being hidden.
|
|
19434
|
+
const page = baseEl.querySelector('.ion-page');
|
|
19435
|
+
page.style.setProperty('padding-bottom', `${footerHeight}px`);
|
|
19436
|
+
}
|
|
19437
|
+
});
|
|
19438
|
+
if (contentAnimation) {
|
|
19439
|
+
baseAnimation.addAnimation(contentAnimation);
|
|
19440
|
+
}
|
|
19441
|
+
return baseAnimation;
|
|
19285
19442
|
};
|
|
19286
19443
|
|
|
19287
19444
|
const createLeaveAnimation = () => {
|
|
@@ -19296,18 +19453,41 @@ const createLeaveAnimation = () => {
|
|
|
19296
19453
|
* Md Modal Leave Animation
|
|
19297
19454
|
*/
|
|
19298
19455
|
const mdLeaveAnimation$2 = (baseEl, opts) => {
|
|
19299
|
-
const { currentBreakpoint } = opts;
|
|
19456
|
+
const { currentBreakpoint, expandToScroll } = opts;
|
|
19300
19457
|
const root = getElementRoot(baseEl);
|
|
19301
19458
|
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation();
|
|
19302
19459
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
19303
19460
|
wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
|
|
19304
|
-
|
|
19461
|
+
const baseAnimation = createAnimation()
|
|
19305
19462
|
.easing('cubic-bezier(0.47,0,0.745,0.715)')
|
|
19306
19463
|
.duration(200)
|
|
19307
|
-
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
19464
|
+
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
19465
|
+
.beforeAddWrite(() => {
|
|
19466
|
+
if (expandToScroll) {
|
|
19467
|
+
// Scroll can only be done when the modal is fully expanded.
|
|
19468
|
+
return;
|
|
19469
|
+
}
|
|
19470
|
+
/**
|
|
19471
|
+
* If expandToScroll is disabled, we need to swap
|
|
19472
|
+
* the visibility to the original, so the footer
|
|
19473
|
+
* dismisses with the modal and doesn't stay
|
|
19474
|
+
* until the modal is removed from the DOM.
|
|
19475
|
+
*/
|
|
19476
|
+
const ionFooter = baseEl.querySelector('ion-footer');
|
|
19477
|
+
if (ionFooter) {
|
|
19478
|
+
const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
|
|
19479
|
+
ionFooter.style.removeProperty('display');
|
|
19480
|
+
ionFooter.removeAttribute('aria-hidden');
|
|
19481
|
+
clonedFooter.style.setProperty('display', 'none');
|
|
19482
|
+
clonedFooter.setAttribute('aria-hidden', 'true');
|
|
19483
|
+
const page = baseEl.querySelector('.ion-page');
|
|
19484
|
+
page.style.removeProperty('padding-bottom');
|
|
19485
|
+
}
|
|
19486
|
+
});
|
|
19487
|
+
return baseAnimation;
|
|
19308
19488
|
};
|
|
19309
19489
|
|
|
19310
|
-
const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
|
|
19490
|
+
const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], expandToScroll, getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
|
|
19311
19491
|
// Defaults for the sheet swipe animation
|
|
19312
19492
|
const defaultBackdrop = [
|
|
19313
19493
|
{ offset: 0, opacity: 'var(--backdrop-opacity)' },
|
|
@@ -19324,6 +19504,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19324
19504
|
{ offset: 1, transform: 'translateY(100%)' },
|
|
19325
19505
|
],
|
|
19326
19506
|
BACKDROP_KEYFRAMES: backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop,
|
|
19507
|
+
CONTENT_KEYFRAMES: [
|
|
19508
|
+
{ offset: 0, maxHeight: '100%' },
|
|
19509
|
+
{ offset: 1, maxHeight: '0%' },
|
|
19510
|
+
],
|
|
19327
19511
|
};
|
|
19328
19512
|
const contentEl = baseEl.querySelector('ion-content');
|
|
19329
19513
|
const height = wrapperEl.clientHeight;
|
|
@@ -19331,10 +19515,11 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19331
19515
|
let offset = 0;
|
|
19332
19516
|
let canDismissBlocksGesture = false;
|
|
19333
19517
|
const canDismissMaxStep = 0.95;
|
|
19334
|
-
const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
|
|
19335
|
-
const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
|
|
19336
19518
|
const maxBreakpoint = breakpoints[breakpoints.length - 1];
|
|
19337
19519
|
const minBreakpoint = breakpoints[0];
|
|
19520
|
+
const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
|
|
19521
|
+
const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
|
|
19522
|
+
const contentAnimation = animation.childAnimations.find((ani) => ani.id === 'contentAnimation');
|
|
19338
19523
|
const enableBackdrop = () => {
|
|
19339
19524
|
baseEl.style.setProperty('pointer-events', 'auto');
|
|
19340
19525
|
backdropEl.style.setProperty('pointer-events', 'auto');
|
|
@@ -19357,6 +19542,31 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19357
19542
|
*/
|
|
19358
19543
|
baseEl.classList.add(FOCUS_TRAP_DISABLE_CLASS);
|
|
19359
19544
|
};
|
|
19545
|
+
/**
|
|
19546
|
+
* Toggles the visible modal footer when `expandToScroll` is disabled.
|
|
19547
|
+
* @param footer The footer to show.
|
|
19548
|
+
*/
|
|
19549
|
+
const swapFooterVisibility = (footer) => {
|
|
19550
|
+
const originalFooter = baseEl.querySelector('ion-footer');
|
|
19551
|
+
if (!originalFooter) {
|
|
19552
|
+
return;
|
|
19553
|
+
}
|
|
19554
|
+
const clonedFooter = wrapperEl.nextElementSibling;
|
|
19555
|
+
const footerToHide = footer === 'original' ? clonedFooter : originalFooter;
|
|
19556
|
+
const footerToShow = footer === 'original' ? originalFooter : clonedFooter;
|
|
19557
|
+
footerToShow.style.removeProperty('display');
|
|
19558
|
+
footerToShow.removeAttribute('aria-hidden');
|
|
19559
|
+
const page = baseEl.querySelector('.ion-page');
|
|
19560
|
+
if (footer === 'original') {
|
|
19561
|
+
page.style.removeProperty('padding-bottom');
|
|
19562
|
+
}
|
|
19563
|
+
else {
|
|
19564
|
+
const pagePadding = footerToShow.clientHeight;
|
|
19565
|
+
page.style.setProperty('padding-bottom', `${pagePadding}px`);
|
|
19566
|
+
}
|
|
19567
|
+
footerToHide.style.setProperty('display', 'none');
|
|
19568
|
+
footerToHide.setAttribute('aria-hidden', 'true');
|
|
19569
|
+
};
|
|
19360
19570
|
/**
|
|
19361
19571
|
* After the entering animation completes,
|
|
19362
19572
|
* we need to set the animation to go from
|
|
@@ -19368,6 +19578,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19368
19578
|
if (wrapperAnimation && backdropAnimation) {
|
|
19369
19579
|
wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
|
|
19370
19580
|
backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
|
|
19581
|
+
contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
|
|
19371
19582
|
animation.progressStart(true, 1 - currentBreakpoint);
|
|
19372
19583
|
/**
|
|
19373
19584
|
* If backdrop is not enabled, then content
|
|
@@ -19384,7 +19595,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19384
19595
|
disableBackdrop();
|
|
19385
19596
|
}
|
|
19386
19597
|
}
|
|
19387
|
-
if (contentEl && currentBreakpoint !== maxBreakpoint) {
|
|
19598
|
+
if (contentEl && currentBreakpoint !== maxBreakpoint && expandToScroll) {
|
|
19388
19599
|
contentEl.scrollY = false;
|
|
19389
19600
|
}
|
|
19390
19601
|
const canStart = (detail) => {
|
|
@@ -19398,6 +19609,13 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19398
19609
|
*/
|
|
19399
19610
|
const contentEl = findClosestIonContent(detail.event.target);
|
|
19400
19611
|
currentBreakpoint = getCurrentBreakpoint();
|
|
19612
|
+
/**
|
|
19613
|
+
* If we have expandToScroll disabled, we should not allow the swipe gesture to start
|
|
19614
|
+
* if the content is being swiped.
|
|
19615
|
+
*/
|
|
19616
|
+
if (!expandToScroll && contentEl) {
|
|
19617
|
+
return false;
|
|
19618
|
+
}
|
|
19401
19619
|
if (currentBreakpoint === 1 && contentEl) {
|
|
19402
19620
|
/**
|
|
19403
19621
|
* The modal should never swipe to close on the content with a refresher.
|
|
@@ -19428,6 +19646,15 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19428
19646
|
* Remove undefined check
|
|
19429
19647
|
*/
|
|
19430
19648
|
canDismissBlocksGesture = baseEl.canDismiss !== undefined && baseEl.canDismiss !== true && minBreakpoint === 0;
|
|
19649
|
+
/**
|
|
19650
|
+
* If expandToScroll is disabled, we need to swap
|
|
19651
|
+
* the footer visibility to the original, so if the modal
|
|
19652
|
+
* is dismissed, the footer dismisses with the modal
|
|
19653
|
+
* and doesn't stay on the screen after the modal is gone.
|
|
19654
|
+
*/
|
|
19655
|
+
if (!expandToScroll) {
|
|
19656
|
+
swapFooterVisibility('original');
|
|
19657
|
+
}
|
|
19431
19658
|
/**
|
|
19432
19659
|
* If we are pulling down, then it is possible we are pulling on the content.
|
|
19433
19660
|
* We do not want scrolling to happen at the same time as the gesture.
|
|
@@ -19543,6 +19770,19 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19543
19770
|
opacity: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(snapToBreakpoint, backdropBreakpoint)})`,
|
|
19544
19771
|
},
|
|
19545
19772
|
]);
|
|
19773
|
+
if (contentAnimation) {
|
|
19774
|
+
/**
|
|
19775
|
+
* The modal content should scroll at any breakpoint when expandToScroll
|
|
19776
|
+
* is disabled. In order to do this, the content needs to be completely
|
|
19777
|
+
* viewable so scrolling can access everything. Otherwise, the default
|
|
19778
|
+
* behavior would show the content off the screen and only allow
|
|
19779
|
+
* scrolling when the sheet is fully expanded.
|
|
19780
|
+
*/
|
|
19781
|
+
contentAnimation.keyframes([
|
|
19782
|
+
{ offset: 0, maxHeight: `${(1 - breakpointOffset) * 100}%` },
|
|
19783
|
+
{ offset: 1, maxHeight: `${snapToBreakpoint * 100}%` },
|
|
19784
|
+
]);
|
|
19785
|
+
}
|
|
19546
19786
|
animation.progressStep(0);
|
|
19547
19787
|
}
|
|
19548
19788
|
/**
|
|
@@ -19550,6 +19790,14 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19550
19790
|
* snapping animation completes.
|
|
19551
19791
|
*/
|
|
19552
19792
|
gesture.enable(false);
|
|
19793
|
+
/**
|
|
19794
|
+
* If expandToScroll is disabled, we need to swap
|
|
19795
|
+
* the footer visibility to the cloned one so the footer
|
|
19796
|
+
* doesn't flicker when the sheet's height is animated.
|
|
19797
|
+
*/
|
|
19798
|
+
if (!expandToScroll && shouldRemainOpen) {
|
|
19799
|
+
swapFooterVisibility('cloned');
|
|
19800
|
+
}
|
|
19553
19801
|
if (shouldPreventDismiss) {
|
|
19554
19802
|
handleCanDismiss(baseEl, animation);
|
|
19555
19803
|
}
|
|
@@ -19557,13 +19805,13 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19557
19805
|
onDismiss();
|
|
19558
19806
|
}
|
|
19559
19807
|
/**
|
|
19560
|
-
*
|
|
19561
|
-
*
|
|
19562
|
-
*
|
|
19563
|
-
*
|
|
19564
|
-
*
|
|
19808
|
+
* Enables scrolling immediately if the sheet is about to fully expand
|
|
19809
|
+
* or if it allows scrolling at any breakpoint. Without this, there would
|
|
19810
|
+
* be a ~500ms delay while the modal animation completes, causing a
|
|
19811
|
+
* noticeable lag. Native iOS allows scrolling as soon as the gesture is
|
|
19812
|
+
* released, so we align with that behavior.
|
|
19565
19813
|
*/
|
|
19566
|
-
if (contentEl && snapToBreakpoint === breakpoints[breakpoints.length - 1]) {
|
|
19814
|
+
if (contentEl && (snapToBreakpoint === breakpoints[breakpoints.length - 1] || !expandToScroll)) {
|
|
19567
19815
|
contentEl.scrollY = true;
|
|
19568
19816
|
}
|
|
19569
19817
|
return new Promise((resolve) => {
|
|
@@ -19581,6 +19829,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19581
19829
|
raf(() => {
|
|
19582
19830
|
wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
|
|
19583
19831
|
backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
|
|
19832
|
+
contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
|
|
19584
19833
|
animation.progressStart(true, 1 - snapToBreakpoint);
|
|
19585
19834
|
currentBreakpoint = snapToBreakpoint;
|
|
19586
19835
|
onBreakpointChange(currentBreakpoint);
|
|
@@ -19633,10 +19882,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19633
19882
|
};
|
|
19634
19883
|
};
|
|
19635
19884
|
|
|
19636
|
-
const modalIosCss = ":host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:\"\"}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.4)}:host(.modal-card),:host(.modal-sheet){--border-radius:10px}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:10px}}.modal-wrapper{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}@media screen and (max-width: 767px){@supports (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - max(30px, var(--ion-safe-area-top)) - 10px)}}@supports not (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - 40px)}}:host(.modal-card) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-card){--backdrop-opacity:0;--width:100%;-ms-flex-align:end;align-items:flex-end}:host(.modal-card) .modal-shadow{display:none}:host(.modal-card) ion-backdrop{pointer-events:none}}@media screen and (min-width: 768px){:host(.modal-card){--width:calc(100% - 120px);--height:calc(100% - (120px + var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));--max-width:720px;--max-height:1000px;--backdrop-opacity:0;--box-shadow:0px 0px 30px 10px rgba(0, 0, 0, 0.1);-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out}:host(.modal-card) .modal-wrapper{-webkit-box-shadow:none;box-shadow:none}:host(.modal-card) .modal-shadow{-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}}:host(.modal-sheet) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}";
|
|
19885
|
+
const modalIosCss = ":host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:\"\"}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.4)}:host(.modal-card),:host(.modal-sheet){--border-radius:10px}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:10px}}.modal-wrapper{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}@media screen and (max-width: 767px){@supports (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - max(30px, var(--ion-safe-area-top)) - 10px)}}@supports not (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - 40px)}}:host(.modal-card) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-card){--backdrop-opacity:0;--width:100%;-ms-flex-align:end;align-items:flex-end}:host(.modal-card) .modal-shadow{display:none}:host(.modal-card) ion-backdrop{pointer-events:none}}@media screen and (min-width: 768px){:host(.modal-card){--width:calc(100% - 120px);--height:calc(100% - (120px + var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));--max-width:720px;--max-height:1000px;--backdrop-opacity:0;--box-shadow:0px 0px 30px 10px rgba(0, 0, 0, 0.1);-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out}:host(.modal-card) .modal-wrapper{-webkit-box-shadow:none;box-shadow:none}:host(.modal-card) .modal-shadow{-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}}:host(.modal-sheet) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer ion-toolbar:first-of-type{padding-top:6px}";
|
|
19637
19886
|
var IonModalIosStyle0 = modalIosCss;
|
|
19638
19887
|
|
|
19639
|
-
const modalMdCss = ":host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:\"\"}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:2px;--box-shadow:0 28px 48px rgba(0, 0, 0, 0.4)}}.modal-wrapper{-webkit-transform:translate3d(0, 40px, 0);transform:translate3d(0, 40px, 0);opacity:0.01}";
|
|
19888
|
+
const modalMdCss = ":host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:\"\"}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:2px;--box-shadow:0 28px 48px rgba(0, 0, 0, 0.4)}}.modal-wrapper{-webkit-transform:translate3d(0, 40px, 0);transform:translate3d(0, 40px, 0);opacity:0.01}";
|
|
19640
19889
|
var IonModalMdStyle0 = modalMdCss;
|
|
19641
19890
|
|
|
19642
19891
|
// TODO(FW-2832): types
|
|
@@ -19715,6 +19964,7 @@ class Modal {
|
|
|
19715
19964
|
this.enterAnimation = undefined;
|
|
19716
19965
|
this.leaveAnimation = undefined;
|
|
19717
19966
|
this.breakpoints = undefined;
|
|
19967
|
+
this.expandToScroll = true;
|
|
19718
19968
|
this.initialBreakpoint = undefined;
|
|
19719
19969
|
this.backdropBreakpoint = 0;
|
|
19720
19970
|
this.handle = undefined;
|
|
@@ -19930,6 +20180,7 @@ class Modal {
|
|
|
19930
20180
|
presentingEl: presentingElement,
|
|
19931
20181
|
currentBreakpoint: this.initialBreakpoint,
|
|
19932
20182
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
20183
|
+
expandToScroll: this.expandToScroll,
|
|
19933
20184
|
});
|
|
19934
20185
|
/* tslint:disable-next-line */
|
|
19935
20186
|
if (typeof window !== 'undefined') {
|
|
@@ -19980,7 +20231,10 @@ class Modal {
|
|
|
19980
20231
|
// should be in the DOM and referenced by now, except
|
|
19981
20232
|
// for the presenting el
|
|
19982
20233
|
const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$3);
|
|
19983
|
-
const ani = (this.animation = animationBuilder(el, {
|
|
20234
|
+
const ani = (this.animation = animationBuilder(el, {
|
|
20235
|
+
presentingEl: this.presentingElement,
|
|
20236
|
+
expandToScroll: this.expandToScroll,
|
|
20237
|
+
}));
|
|
19984
20238
|
const contentEl = findIonContent(el);
|
|
19985
20239
|
if (!contentEl) {
|
|
19986
20240
|
printIonContentErrorMsg(el);
|
|
@@ -20025,9 +20279,10 @@ class Modal {
|
|
|
20025
20279
|
presentingEl: this.presentingElement,
|
|
20026
20280
|
currentBreakpoint: initialBreakpoint,
|
|
20027
20281
|
backdropBreakpoint,
|
|
20282
|
+
expandToScroll: this.expandToScroll,
|
|
20028
20283
|
}));
|
|
20029
20284
|
ani.progressStart(true, 1);
|
|
20030
|
-
const { gesture, moveSheetToBreakpoint } = createSheetGesture(this.el, this.backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, ani, this.sortedBreakpoints, () => { var _a; return (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : 0; }, () => this.sheetOnDismiss(), (breakpoint) => {
|
|
20285
|
+
const { gesture, moveSheetToBreakpoint } = createSheetGesture(this.el, this.backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, ani, this.sortedBreakpoints, this.expandToScroll, () => { var _a; return (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : 0; }, () => this.sheetOnDismiss(), (breakpoint) => {
|
|
20031
20286
|
if (this.currentBreakpoint !== breakpoint) {
|
|
20032
20287
|
this.currentBreakpoint = breakpoint;
|
|
20033
20288
|
this.ionBreakpointDidChange.emit({ breakpoint });
|
|
@@ -20105,6 +20360,7 @@ class Modal {
|
|
|
20105
20360
|
presentingEl: presentingElement,
|
|
20106
20361
|
currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
|
|
20107
20362
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
20363
|
+
expandToScroll: this.expandToScroll,
|
|
20108
20364
|
});
|
|
20109
20365
|
if (dismissed) {
|
|
20110
20366
|
const { delegate } = this.getDelegate();
|
|
@@ -20190,23 +20446,23 @@ class Modal {
|
|
|
20190
20446
|
return true;
|
|
20191
20447
|
}
|
|
20192
20448
|
render() {
|
|
20193
|
-
const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap } = this;
|
|
20449
|
+
const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap, expandToScroll, } = this;
|
|
20194
20450
|
const showHandle = handle !== false && isSheetModal;
|
|
20195
20451
|
const mode = getIonMode$1(this);
|
|
20196
20452
|
const isCardModal = presentingElement !== undefined && mode === 'ios';
|
|
20197
20453
|
const isHandleCycle = handleBehavior === 'cycle';
|
|
20198
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
20454
|
+
return (hAsync(Host, Object.assign({ key: 'ff15df63e72caaeb0a4ad68e9eedeaaa7d3f3bde', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
|
|
20199
20455
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
20200
|
-
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), hAsync("ion-backdrop", { key: '
|
|
20456
|
+
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), hAsync("ion-backdrop", { key: '27a73655779af9d175a829d3d2d29e42fd2a63ee', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: '406a65080087e7895026ecc2f04e9d707439e86f', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '8e410eb925374158996c82cbbd522f07d741679e',
|
|
20201
20457
|
/*
|
|
20202
20458
|
role and aria-modal must be used on the
|
|
20203
20459
|
same element. They must also be set inside the
|
|
20204
20460
|
shadow DOM otherwise ion-button will not be highlighted
|
|
20205
20461
|
when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
|
|
20206
20462
|
*/
|
|
20207
|
-
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '
|
|
20463
|
+
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '7326c969ebe5a70a35e83b09d3db2bb848c90e47', class: "modal-handle",
|
|
20208
20464
|
// Prevents the handle from receiving keyboard focus when it does not cycle
|
|
20209
|
-
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), hAsync("slot", { key: '
|
|
20465
|
+
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), hAsync("slot", { key: '0b65cdb9e337a27edf437b9e754e79f1449c217d' }))));
|
|
20210
20466
|
}
|
|
20211
20467
|
get el() { return getElement(this); }
|
|
20212
20468
|
static get watchers() { return {
|
|
@@ -20228,6 +20484,7 @@ class Modal {
|
|
|
20228
20484
|
"enterAnimation": [16],
|
|
20229
20485
|
"leaveAnimation": [16],
|
|
20230
20486
|
"breakpoints": [16],
|
|
20487
|
+
"expandToScroll": [4, "expand-to-scroll"],
|
|
20231
20488
|
"initialBreakpoint": [2, "initial-breakpoint"],
|
|
20232
20489
|
"backdropBreakpoint": [2, "backdrop-breakpoint"],
|
|
20233
20490
|
"handle": [4],
|
|
@@ -29328,35 +29585,7 @@ class SegmentButton {
|
|
|
29328
29585
|
valueChanged() {
|
|
29329
29586
|
this.updateState();
|
|
29330
29587
|
}
|
|
29331
|
-
|
|
29332
|
-
return new Promise((resolve, reject) => {
|
|
29333
|
-
let timeoutId = undefined;
|
|
29334
|
-
let animationFrameId;
|
|
29335
|
-
const check = () => {
|
|
29336
|
-
if (!ionSegment) {
|
|
29337
|
-
reject(new Error(`Segment not found when looking for Segment Content`));
|
|
29338
|
-
return;
|
|
29339
|
-
}
|
|
29340
|
-
const segmentView = getNextSiblingOfType(ionSegment); // Skip the text nodes
|
|
29341
|
-
const segmentContent = segmentView === null || segmentView === void 0 ? void 0 : segmentView.querySelector(`ion-segment-content[id="${contentId}"]`);
|
|
29342
|
-
if (segmentContent && timeoutId) {
|
|
29343
|
-
clearTimeout(timeoutId); // Clear the timeout if the segmentContent is found
|
|
29344
|
-
cancelAnimationFrame(animationFrameId);
|
|
29345
|
-
resolve(segmentContent);
|
|
29346
|
-
}
|
|
29347
|
-
else {
|
|
29348
|
-
animationFrameId = requestAnimationFrame(check); // Keep checking on the next animation frame
|
|
29349
|
-
}
|
|
29350
|
-
};
|
|
29351
|
-
check();
|
|
29352
|
-
// Set a timeout to reject the promise
|
|
29353
|
-
timeoutId = setTimeout(() => {
|
|
29354
|
-
cancelAnimationFrame(animationFrameId);
|
|
29355
|
-
reject(new Error(`Unable to find Segment Content with id="${contentId} within 1000 ms`));
|
|
29356
|
-
}, 1000);
|
|
29357
|
-
});
|
|
29358
|
-
}
|
|
29359
|
-
async connectedCallback() {
|
|
29588
|
+
connectedCallback() {
|
|
29360
29589
|
const segmentEl = (this.segmentEl = this.el.closest('ion-segment'));
|
|
29361
29590
|
if (segmentEl) {
|
|
29362
29591
|
this.updateState();
|
|
@@ -29366,14 +29595,11 @@ class SegmentButton {
|
|
|
29366
29595
|
// Return if there is no contentId defined
|
|
29367
29596
|
if (!this.contentId)
|
|
29368
29597
|
return;
|
|
29369
|
-
|
|
29370
|
-
|
|
29371
|
-
|
|
29372
|
-
|
|
29373
|
-
|
|
29374
|
-
catch (error) {
|
|
29375
|
-
// If no associated Segment Content exists, log an error and return
|
|
29376
|
-
console.error('Segment Button: ', error.message);
|
|
29598
|
+
// Attempt to find the Segment Content by its contentId
|
|
29599
|
+
const segmentContent = document.getElementById(this.contentId);
|
|
29600
|
+
// If no associated Segment Content exists, log an error and return
|
|
29601
|
+
if (!segmentContent) {
|
|
29602
|
+
console.error(`Segment Button: Unable to find Segment Content with id="${this.contentId}".`);
|
|
29377
29603
|
return;
|
|
29378
29604
|
}
|
|
29379
29605
|
// Ensure the found element is a valid ION-SEGMENT-CONTENT
|
|
@@ -29419,7 +29645,7 @@ class SegmentButton {
|
|
|
29419
29645
|
const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
|
|
29420
29646
|
const mode = getIonMode$1(this);
|
|
29421
29647
|
const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
|
|
29422
|
-
return (hAsync(Host, { key: '
|
|
29648
|
+
return (hAsync(Host, { key: 'd50a5d5e2f6206e8523598f258d8217d2903f69b', class: {
|
|
29423
29649
|
[mode]: true,
|
|
29424
29650
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
29425
29651
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
@@ -29435,7 +29661,7 @@ class SegmentButton {
|
|
|
29435
29661
|
'ion-activatable': true,
|
|
29436
29662
|
'ion-activatable-instant': true,
|
|
29437
29663
|
'ion-focusable': true,
|
|
29438
|
-
} }, hAsync("button", Object.assign({ key: '
|
|
29664
|
+
} }, hAsync("button", Object.assign({ key: 'b4f6f145286ba8ab79669e11035b906daa85ae7e', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), hAsync("span", { key: '67965996c9ffe70553875e00d3da0ae5b2b1d814', class: "button-inner" }, hAsync("slot", { key: '5087988fe45a8fdf388ec44c395d0b745b207806' })), mode === 'md' && hAsync("ion-ripple-effect", { key: 'b24858de0750bbc769b3183fac0077dfe817ba27' })), hAsync("div", { key: '97b4359432acd1c9da0816360cd1df9472e183f7', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, hAsync("div", { key: '0561738ea15b0986f4ed3d8276d5e6f2d13f7e51', part: "indicator-background", class: "segment-button-indicator-background" }))));
|
|
29439
29665
|
}
|
|
29440
29666
|
get el() { return getElement(this); }
|
|
29441
29667
|
static get watchers() { return {
|
|
@@ -29702,6 +29928,7 @@ class Select {
|
|
|
29702
29928
|
this.expandedIcon = undefined;
|
|
29703
29929
|
this.shape = undefined;
|
|
29704
29930
|
this.value = undefined;
|
|
29931
|
+
this.required = false;
|
|
29705
29932
|
}
|
|
29706
29933
|
styleChanged() {
|
|
29707
29934
|
this.emitStyle();
|
|
@@ -29757,8 +29984,15 @@ class Select {
|
|
|
29757
29984
|
}
|
|
29758
29985
|
this.isExpanded = true;
|
|
29759
29986
|
const overlay = (this.overlay = await this.createOverlay(event));
|
|
29760
|
-
|
|
29761
|
-
|
|
29987
|
+
overlay.onDidDismiss().then(() => {
|
|
29988
|
+
this.overlay = undefined;
|
|
29989
|
+
this.isExpanded = false;
|
|
29990
|
+
this.ionDismiss.emit();
|
|
29991
|
+
this.setFocus();
|
|
29992
|
+
});
|
|
29993
|
+
await overlay.present();
|
|
29994
|
+
// focus selected option for popovers and modals
|
|
29995
|
+
if (this.interface === 'popover' || this.interface === 'modal') {
|
|
29762
29996
|
const indexOfSelected = this.childOpts.findIndex((o) => o.value === this.value);
|
|
29763
29997
|
if (indexOfSelected > -1) {
|
|
29764
29998
|
const selectedItem = overlay.querySelector(`.select-interface-option:nth-child(${indexOfSelected + 1})`);
|
|
@@ -29776,7 +30010,6 @@ class Select {
|
|
|
29776
30010
|
*/
|
|
29777
30011
|
const interactiveEl = selectedItem.querySelector('ion-radio, ion-checkbox');
|
|
29778
30012
|
if (interactiveEl) {
|
|
29779
|
-
selectedItem.scrollIntoView({ block: 'nearest' });
|
|
29780
30013
|
// Needs to be called before `focusVisibleElement` to prevent issue with focus event bubbling
|
|
29781
30014
|
// and removing `ion-focused` style
|
|
29782
30015
|
interactiveEl.setFocus();
|
|
@@ -29800,40 +30033,7 @@ class Select {
|
|
|
29800
30033
|
focusVisibleElement(firstEnabledOption.closest('ion-item'));
|
|
29801
30034
|
}
|
|
29802
30035
|
}
|
|
29803
|
-
};
|
|
29804
|
-
// For modals and popovers, we can scroll before they're visible
|
|
29805
|
-
if (this.interface === 'modal') {
|
|
29806
|
-
overlay.addEventListener('ionModalWillPresent', scrollSelectedIntoView, { once: true });
|
|
29807
|
-
}
|
|
29808
|
-
else if (this.interface === 'popover') {
|
|
29809
|
-
overlay.addEventListener('ionPopoverWillPresent', scrollSelectedIntoView, { once: true });
|
|
29810
|
-
}
|
|
29811
|
-
else {
|
|
29812
|
-
/**
|
|
29813
|
-
* For alerts and action sheets, we need to wait a frame after willPresent
|
|
29814
|
-
* because these overlays don't have their content in the DOM immediately
|
|
29815
|
-
* when willPresent fires. By waiting a frame, we ensure the content is
|
|
29816
|
-
* rendered and can be properly scrolled into view.
|
|
29817
|
-
*/
|
|
29818
|
-
const scrollAfterRender = () => {
|
|
29819
|
-
requestAnimationFrame(() => {
|
|
29820
|
-
scrollSelectedIntoView();
|
|
29821
|
-
});
|
|
29822
|
-
};
|
|
29823
|
-
if (this.interface === 'alert') {
|
|
29824
|
-
overlay.addEventListener('ionAlertWillPresent', scrollAfterRender, { once: true });
|
|
29825
|
-
}
|
|
29826
|
-
else if (this.interface === 'action-sheet') {
|
|
29827
|
-
overlay.addEventListener('ionActionSheetWillPresent', scrollAfterRender, { once: true });
|
|
29828
|
-
}
|
|
29829
30036
|
}
|
|
29830
|
-
overlay.onDidDismiss().then(() => {
|
|
29831
|
-
this.overlay = undefined;
|
|
29832
|
-
this.isExpanded = false;
|
|
29833
|
-
this.ionDismiss.emit();
|
|
29834
|
-
this.setFocus();
|
|
29835
|
-
});
|
|
29836
|
-
await overlay.present();
|
|
29837
30037
|
return overlay;
|
|
29838
30038
|
}
|
|
29839
30039
|
createOverlay(ev) {
|
|
@@ -30213,8 +30413,8 @@ class Select {
|
|
|
30213
30413
|
return renderedLabel;
|
|
30214
30414
|
}
|
|
30215
30415
|
renderListbox() {
|
|
30216
|
-
const { disabled, inputId, isExpanded } = this;
|
|
30217
|
-
return (hAsync("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "dialog", "aria-expanded": `${isExpanded}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
|
|
30416
|
+
const { disabled, inputId, isExpanded, required } = this;
|
|
30417
|
+
return (hAsync("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "dialog", "aria-expanded": `${isExpanded}`, "aria-required": `${required}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
|
|
30218
30418
|
}
|
|
30219
30419
|
render() {
|
|
30220
30420
|
const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, shape, name, value } = this;
|
|
@@ -30245,7 +30445,7 @@ class Select {
|
|
|
30245
30445
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
30246
30446
|
*/
|
|
30247
30447
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
|
|
30248
|
-
return (hAsync(Host, { key: '
|
|
30448
|
+
return (hAsync(Host, { key: '491cf1b0e3aa31e7c9cfad3e87d83eb54272312a', onClick: this.onClick, class: createColorClasses$1(this.color, {
|
|
30249
30449
|
[mode]: true,
|
|
30250
30450
|
'in-item': inItem,
|
|
30251
30451
|
'in-item-color': hostContext('ion-item.ion-color', el),
|
|
@@ -30261,7 +30461,7 @@ class Select {
|
|
|
30261
30461
|
[`select-justify-${justify}`]: justifyEnabled,
|
|
30262
30462
|
[`select-shape-${shape}`]: shape !== undefined,
|
|
30263
30463
|
[`select-label-placement-${labelPlacement}`]: true,
|
|
30264
|
-
}) }, hAsync("label", { key: '
|
|
30464
|
+
}) }, hAsync("label", { key: '07bf3cb57bd1121383d8c746e3ac49da38300082', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), hAsync("div", { key: '884facd18342797576bbacc761d18d83c52762e3', class: "select-wrapper-inner" }, hAsync("slot", { key: 'c4f2a2a7a76f52db15f9a0b806017caea443c47a', name: "start" }), hAsync("div", { key: '235cf383f268cc74412722cd31e246cbd4c2abe5', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: '1481302e11c494d49dfd80a7aaf743f7e851558f', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: '8a45ea9280651695c8e5435f266c286f3e3f6a18', class: "select-highlight" }))));
|
|
30265
30465
|
}
|
|
30266
30466
|
get el() { return getElement(this); }
|
|
30267
30467
|
static get watchers() { return {
|
|
@@ -30297,6 +30497,7 @@ class Select {
|
|
|
30297
30497
|
"expandedIcon": [1, "expanded-icon"],
|
|
30298
30498
|
"shape": [1],
|
|
30299
30499
|
"value": [1032],
|
|
30500
|
+
"required": [4],
|
|
30300
30501
|
"isExpanded": [32],
|
|
30301
30502
|
"open": [64]
|
|
30302
30503
|
},
|
|
@@ -32693,6 +32894,7 @@ class Toggle {
|
|
|
32693
32894
|
this.labelPlacement = 'start';
|
|
32694
32895
|
this.justify = undefined;
|
|
32695
32896
|
this.alignment = undefined;
|
|
32897
|
+
this.required = false;
|
|
32696
32898
|
}
|
|
32697
32899
|
disabledChanged() {
|
|
32698
32900
|
if (this.gesture) {
|
|
@@ -32774,12 +32976,12 @@ class Toggle {
|
|
|
32774
32976
|
return this.el.textContent !== '';
|
|
32775
32977
|
}
|
|
32776
32978
|
render() {
|
|
32777
|
-
const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment } = this;
|
|
32979
|
+
const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment, required } = this;
|
|
32778
32980
|
const mode = getIonMode$1(this);
|
|
32779
32981
|
const value = this.getValue();
|
|
32780
32982
|
const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
|
|
32781
32983
|
renderHiddenInput(true, el, name, checked ? value : '', disabled);
|
|
32782
|
-
return (hAsync(Host, { key: '
|
|
32984
|
+
return (hAsync(Host, { key: 'ed75573caa6e37011f1453dd7f723fb9bd8a3656', onClick: this.onClick, class: createColorClasses$1(color, {
|
|
32783
32985
|
[mode]: true,
|
|
32784
32986
|
'in-item': hostContext('ion-item', el),
|
|
32785
32987
|
'toggle-activated': activated,
|
|
@@ -32789,10 +32991,10 @@ class Toggle {
|
|
|
32789
32991
|
[`toggle-alignment-${alignment}`]: alignment !== undefined,
|
|
32790
32992
|
[`toggle-label-placement-${labelPlacement}`]: true,
|
|
32791
32993
|
[`toggle-${rtl}`]: true,
|
|
32792
|
-
}) }, hAsync("label", { key: '
|
|
32994
|
+
}) }, hAsync("label", { key: '484860e2a33f4d123904edb96159f0e1972d3add', class: "toggle-wrapper" }, hAsync("input", Object.assign({ key: '360b53080aacfd99a9ff60ffb5219816bd4163ee', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl), required: required }, this.inheritedAttributes)), hAsync("div", { key: 'f7239fa668fe11257239ea30cf0198e4f3274f6b', class: {
|
|
32793
32995
|
'label-text-wrapper': true,
|
|
32794
32996
|
'label-text-wrapper-hidden': !this.hasLabel,
|
|
32795
|
-
}, part: "label" }, hAsync("slot", { key: '
|
|
32997
|
+
}, part: "label" }, hAsync("slot", { key: '9495a4a39889822ee68e0d89dc5a2f863d1feb3c' })), hAsync("div", { key: '55f1eb08c4b705e94fbcf02220bbe1d292f06155', class: "native-wrapper" }, this.renderToggleControl()))));
|
|
32796
32998
|
}
|
|
32797
32999
|
get el() { return getElement(this); }
|
|
32798
33000
|
static get watchers() { return {
|
|
@@ -32815,6 +33017,7 @@ class Toggle {
|
|
|
32815
33017
|
"labelPlacement": [1, "label-placement"],
|
|
32816
33018
|
"justify": [1],
|
|
32817
33019
|
"alignment": [1],
|
|
33020
|
+
"required": [4],
|
|
32818
33021
|
"activated": [32]
|
|
32819
33022
|
},
|
|
32820
33023
|
"$listeners$": undefined,
|
|
@@ -32846,6 +33049,10 @@ var IonToolbarMdStyle0 = toolbarMdCss;
|
|
|
32846
33049
|
* @slot secondary - Content is placed to the left of the toolbar text in `ios` mode, and directly to the right in `md` mode.
|
|
32847
33050
|
* @slot primary - Content is placed to the right of the toolbar text in `ios` mode, and to the far right in `md` mode.
|
|
32848
33051
|
* @slot end - Content is placed to the right of the toolbar text in LTR, and to the left in RTL.
|
|
33052
|
+
*
|
|
33053
|
+
* @part background - The background of the toolbar, covering the entire area behind the toolbar content.
|
|
33054
|
+
* @part container - The container that wraps all toolbar content, including the default slot and named slot content.
|
|
33055
|
+
* @part content - The container for the default slot, wrapping content provided without a named slot.
|
|
32849
33056
|
*/
|
|
32850
33057
|
class Toolbar {
|
|
32851
33058
|
constructor(hostRef) {
|
|
@@ -32896,10 +33103,10 @@ class Toolbar {
|
|
|
32896
33103
|
this.childrenStyles.forEach((value) => {
|
|
32897
33104
|
Object.assign(childStyles, value);
|
|
32898
33105
|
});
|
|
32899
|
-
return (hAsync(Host, { key: '
|
|
33106
|
+
return (hAsync(Host, { key: '4fdc9ae82a93237cc28ceb95b0ebd8069b62839d', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
|
|
32900
33107
|
[mode]: true,
|
|
32901
33108
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
32902
|
-
})) }, hAsync("div", { key: '
|
|
33109
|
+
})) }, hAsync("div", { key: '443a216362bbbf1c149ed12140d52b0f0ea2d664', class: "toolbar-background", part: "background" }), hAsync("div", { key: '1df87f4027d605e42757a13d4828df45b90a4fdc', class: "toolbar-container", part: "container" }, hAsync("slot", { key: 'f66f34972be8e3f4915b9c6f5808600dbaedb1ea', name: "start" }), hAsync("slot", { key: '14f38b0975e956f404c4eb3ee56f2055c6615276', name: "secondary" }), hAsync("div", { key: '75ba5953a25c7544793484d2b245792cb0a5af75', class: "toolbar-content", part: "content" }, hAsync("slot", { key: '149dfa58ff7106f318fecb4134e7c69edf8bc231' })), hAsync("slot", { key: '807ab9ad21d7f1d9d427a4086460bcb9e5e8c019', name: "primary" }), hAsync("slot", { key: 'bd2f9da95d2fa8e74dc6e0666587ceecbba99d9f', name: "end" }))));
|
|
32903
33110
|
}
|
|
32904
33111
|
get el() { return getElement(this); }
|
|
32905
33112
|
static get style() { return {
|