@ionic/core 7.5.8-dev.11701876182.1e71e7a0 → 7.5.8-dev.11701894917.1c1465bd
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/animation.js +11 -12
- package/components/backdrop.js +0 -12
- package/components/checkbox.js +3 -5
- package/components/gesture-controller.js +1 -1
- package/components/index4.js +12 -10
- package/components/index5.js +22 -0
- package/components/input-shims.js +7 -12
- package/components/input.utils.js +2 -3
- package/components/ion-content.js +1 -1
- package/components/ion-datetime.js +15 -48
- package/components/ion-infinite-scroll.js +3 -11
- package/components/ion-input.js +8 -31
- package/components/ion-modal.js +2 -2
- package/components/ion-range.js +3 -5
- package/components/ion-select.js +29 -44
- package/components/ion-skeleton-text.js +1 -14
- package/components/ion-textarea.js +7 -30
- package/components/ion-toast.js +74 -419
- package/components/ion-toggle.js +3 -5
- package/components/item.js +2 -2
- package/components/label.js +2 -2
- package/components/overlays.js +6 -3
- package/components/radio-group.js +0 -2
- package/components/radio.js +5 -45
- package/dist/cjs/{animation-9b401d39.js → animation-cc40e39c.js} +12 -13
- package/dist/cjs/{button-active-a5185907.js → button-active-9d7e0640.js} +2 -2
- package/dist/cjs/{capacitor-c04564bf.js → capacitor-46980811.js} +1 -1
- package/dist/cjs/{gesture-controller-c40c045a.js → gesture-controller-9436f482.js} +1 -0
- package/dist/cjs/{haptic-b882e0bb.js → haptic-216df36c.js} +1 -1
- package/dist/cjs/index-306a7476.js +32 -0
- package/dist/cjs/{index-ce101dc9.js → index-5cbb20f9.js} +13 -11
- package/dist/cjs/{index-b4f986cd.js → index-8c1e77d6.js} +1 -1
- package/dist/cjs/{index-f8f13389.js → index-d4c2e02c.js} +2 -2
- package/dist/cjs/{index-d1b59ffa.js → index-ee07ed59.js} +1 -1
- package/dist/cjs/index.cjs.js +10 -10
- package/dist/cjs/{input-shims-a23bb0f4.js → input-shims-87102b6a.js} +10 -15
- package/dist/cjs/{input.utils-3d0166a2.js → input.utils-2a11c1fe.js} +3 -4
- package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -8
- package/dist/cjs/ion-alert.cjs.entry.js +8 -8
- package/dist/cjs/ion-app_8.cjs.entry.js +10 -10
- package/dist/cjs/ion-backdrop.cjs.entry.js +0 -12
- package/dist/cjs/ion-checkbox.cjs.entry.js +3 -5
- package/dist/cjs/ion-datetime_3.cjs.entry.js +14 -28
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -11
- package/dist/cjs/ion-input.cjs.entry.js +11 -34
- package/dist/cjs/ion-item-option_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-item_8.cjs.entry.js +4 -17
- package/dist/cjs/ion-loading.cjs.entry.js +4 -3
- package/dist/cjs/ion-menu_3.cjs.entry.js +7 -7
- package/dist/cjs/ion-modal.cjs.entry.js +10 -10
- package/dist/cjs/ion-nav_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-picker-column-internal.cjs.entry.js +3 -3
- package/dist/cjs/ion-popover.cjs.entry.js +5 -4
- package/dist/cjs/ion-radio_2.cjs.entry.js +4 -9
- package/dist/cjs/ion-range.cjs.entry.js +4 -6
- package/dist/cjs/ion-refresher_2.cjs.entry.js +7 -7
- package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-segment_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-select_3.cjs.entry.js +36 -51
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-textarea.cjs.entry.js +10 -33
- package/dist/cjs/ion-toast.cjs.entry.js +93 -434
- package/dist/cjs/ion-toggle.cjs.entry.js +7 -9
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/{ios.transition-6787b799.js → ios.transition-a4ffb5a2.js} +3 -3
- package/dist/cjs/{keyboard-af1bb365.js → keyboard-7d621ee9.js} +3 -3
- package/dist/cjs/{keyboard-0272231f.js → keyboard-9390928c.js} +1 -1
- package/dist/cjs/{keyboard-controller-c05e747a.js → keyboard-controller-2158b478.js} +2 -2
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{md.transition-e033d20a.js → md.transition-292abe1c.js} +3 -3
- package/dist/cjs/{notch-controller-9735e7ac.js → notch-controller-1dce508a.js} +1 -1
- package/dist/cjs/{overlays-27a6fb16.js → overlays-2c6b1072.js} +6 -4
- package/dist/cjs/{swipe-back-2a858bbd.js → swipe-back-b8f2330b.js} +2 -2
- package/dist/collection/components/backdrop/backdrop.js +0 -12
- package/dist/collection/components/checkbox/checkbox.ios.css +6 -0
- package/dist/collection/components/checkbox/checkbox.js +1 -4
- package/dist/collection/components/checkbox/checkbox.md.css +6 -0
- package/dist/collection/components/checkbox/test/checkbox.spec.js +0 -14
- package/dist/collection/components/content/content.css +0 -4
- package/dist/collection/components/datetime/datetime.ios.css +83 -25
- package/dist/collection/components/datetime/datetime.js +5 -20
- package/dist/collection/components/datetime/datetime.md.css +88 -25
- package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +1 -1
- package/dist/collection/components/datetime/test/a11y/datetime.spec.js +6 -9
- package/dist/collection/components/datetime/test/basic/datetime.e2e.js +10 -0
- package/dist/collection/components/datetime/test/month-year-picker/datetime.e2e.js +1 -1
- package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +2 -2
- package/dist/collection/components/infinite-scroll/infinite-scroll.js +3 -11
- package/dist/collection/components/input/input.ios.css +3 -10
- package/dist/collection/components/input/input.js +6 -31
- package/dist/collection/components/input/input.md.css +12 -13
- package/dist/collection/components/item/item.ios.css +3 -41
- package/dist/collection/components/item/item.md.css +3 -41
- package/dist/collection/components/item/test/basic/item.e2e.js +1 -1
- package/dist/collection/components/item/test/disabled/item.e2e.js +1 -0
- package/dist/collection/components/item/test/text/item.e2e.js +14 -0
- package/dist/collection/components/label/label.ios.css +3 -14
- package/dist/collection/components/label/label.md.css +3 -14
- package/dist/collection/components/modal/gestures/swipe-to-close.js +1 -2
- package/dist/collection/components/note/test/a11y/note.e2e.js +0 -43
- package/dist/collection/components/radio/radio.ios.css +6 -0
- package/dist/collection/components/radio/radio.js +3 -7
- package/dist/collection/components/radio/radio.md.css +6 -0
- package/dist/collection/components/radio/test/radio.spec.js +0 -14
- package/dist/collection/components/radio-group/radio-group.js +0 -24
- package/dist/collection/components/range/range.ios.css +6 -0
- package/dist/collection/components/range/range.js +1 -4
- package/dist/collection/components/range/range.md.css +6 -0
- package/dist/collection/components/range/test/range.spec.js +0 -16
- package/dist/collection/components/select/select.ios.css +7 -60
- package/dist/collection/components/select/select.js +28 -45
- package/dist/collection/components/select/select.md.css +19 -63
- package/dist/collection/components/select/test/item/select.e2e.js +0 -15
- package/dist/collection/components/select/test/label/select.e2e.js +1 -1
- package/dist/collection/components/select/test/legacy/wrapping/select.e2e.js +1 -1
- package/dist/collection/components/skeleton-text/skeleton-text.js +0 -39
- package/dist/collection/components/textarea/textarea.ios.css +5 -37
- package/dist/collection/components/textarea/textarea.js +5 -30
- package/dist/collection/components/textarea/textarea.md.css +14 -47
- package/dist/collection/components/toast/animations/ios.enter.js +1 -2
- package/dist/collection/components/toast/animations/md.enter.js +3 -4
- package/dist/collection/components/toast/animations/utils.js +14 -20
- package/dist/collection/components/toast/test/toast.spec.js +0 -80
- package/dist/collection/components/toast/toast.ios.css +10 -10
- package/dist/collection/components/toast/toast.js +1 -104
- package/dist/collection/components/toast/toast.md.css +0 -10
- package/dist/collection/components/toggle/test/toggle.spec.js +0 -12
- package/dist/collection/components/toggle/toggle.ios.css +6 -0
- package/dist/collection/components/toggle/toggle.js +1 -4
- package/dist/collection/components/toggle/toggle.md.css +6 -0
- package/dist/collection/utils/animation/animation.js +11 -12
- package/dist/collection/utils/animation/test/animation.spec.js +0 -16
- package/dist/collection/utils/browser/index.js +22 -0
- package/dist/collection/utils/forms/index.js +0 -1
- package/dist/collection/utils/gesture/gesture-controller.js +1 -1
- package/dist/collection/utils/input-shims/input-shims.js +6 -12
- package/dist/collection/utils/menu-controller/index.js +12 -10
- package/dist/collection/utils/overlays.js +5 -2
- package/dist/collection/utils/slot-mutation-controller.js +2 -3
- package/dist/collection/utils/test/overlays/overlays-scroll-blocking.spec.js +65 -0
- package/dist/docs.json +8 -176
- package/dist/esm/{animation-dde8cc0d.js → animation-fb0e0f6f.js} +12 -13
- package/dist/esm/{button-active-c6ee4f50.js → button-active-ed9d848c.js} +2 -2
- package/dist/esm/{capacitor-59395cbd.js → capacitor-b0e5fe83.js} +1 -1
- package/dist/esm/{gesture-controller-1bf57181.js → gesture-controller-314a54f6.js} +1 -1
- package/dist/esm/{haptic-554688a5.js → haptic-152c4172.js} +1 -1
- package/dist/esm/{index-2cf77112.js → index-39782642.js} +2 -2
- package/dist/esm/index-7a14ecec.js +29 -0
- package/dist/esm/{index-0c12c22b.js → index-80492ed3.js} +13 -11
- package/dist/esm/{index-82eeb47f.js → index-ba9976bb.js} +1 -1
- package/dist/esm/{index-1932b201.js → index-d8817fb0.js} +2 -2
- package/dist/esm/index.js +10 -10
- package/dist/esm/{input-shims-6539ce13.js → input-shims-0a2e541d.js} +9 -14
- package/dist/esm/{input.utils-a5a2d164.js → input.utils-2846d430.js} +3 -4
- package/dist/esm/ion-action-sheet.entry.js +8 -8
- package/dist/esm/ion-alert.entry.js +8 -8
- package/dist/esm/ion-app_8.entry.js +10 -10
- package/dist/esm/ion-backdrop.entry.js +0 -12
- package/dist/esm/ion-checkbox.entry.js +3 -5
- package/dist/esm/ion-datetime_3.entry.js +14 -28
- package/dist/esm/ion-infinite-scroll_2.entry.js +3 -11
- package/dist/esm/ion-input.entry.js +11 -34
- package/dist/esm/ion-item-option_3.entry.js +1 -1
- package/dist/esm/ion-item_8.entry.js +4 -17
- package/dist/esm/ion-loading.entry.js +4 -3
- package/dist/esm/ion-menu_3.entry.js +7 -7
- package/dist/esm/ion-modal.entry.js +10 -10
- package/dist/esm/ion-nav_2.entry.js +2 -2
- package/dist/esm/ion-picker-column-internal.entry.js +3 -3
- package/dist/esm/ion-popover.entry.js +5 -4
- package/dist/esm/ion-radio_2.entry.js +4 -9
- package/dist/esm/ion-range.entry.js +4 -6
- package/dist/esm/ion-refresher_2.entry.js +7 -7
- package/dist/esm/ion-reorder_2.entry.js +4 -4
- package/dist/esm/ion-segment_2.entry.js +1 -1
- package/dist/esm/ion-select_3.entry.js +32 -47
- package/dist/esm/ion-tab-bar_2.entry.js +4 -4
- package/dist/esm/ion-textarea.entry.js +10 -33
- package/dist/esm/ion-toast.entry.js +76 -417
- package/dist/esm/ion-toggle.entry.js +7 -9
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/{ios.transition-802a84a6.js → ios.transition-fd16bec1.js} +3 -3
- package/dist/esm/{keyboard-52278bd7.js → keyboard-c402e885.js} +3 -3
- package/dist/esm/{keyboard-controller-ec5c2bfa.js → keyboard-controller-5d90929a.js} +2 -2
- package/dist/esm/{keyboard-73175e24.js → keyboard-dbb05fb9.js} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{md.transition-43c2874d.js → md.transition-94ac93e1.js} +3 -3
- package/dist/esm/{notch-controller-fea7f9c5.js → notch-controller-d09b6aca.js} +1 -1
- package/dist/esm/{overlays-32ef481d.js → overlays-d23ea6e1.js} +7 -4
- package/dist/esm/{swipe-back-a6f386fc.js → swipe-back-a8ca7f93.js} +2 -2
- package/dist/esm-es5/{animation-dde8cc0d.js → animation-fb0e0f6f.js} +1 -1
- package/dist/esm-es5/{button-active-c6ee4f50.js → button-active-ed9d848c.js} +1 -1
- package/dist/esm-es5/{capacitor-59395cbd.js → capacitor-b0e5fe83.js} +1 -1
- package/dist/esm-es5/{gesture-controller-1bf57181.js → gesture-controller-314a54f6.js} +1 -1
- package/dist/esm-es5/{haptic-554688a5.js → haptic-152c4172.js} +1 -1
- package/dist/esm-es5/{index-2cf77112.js → index-39782642.js} +1 -1
- package/dist/esm-es5/index-80492ed3.js +4 -0
- package/dist/esm-es5/{index-82eeb47f.js → index-ba9976bb.js} +1 -1
- package/dist/esm-es5/{index-1932b201.js → index-d8817fb0.js} +1 -1
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/input-shims-0a2e541d.js +4 -0
- package/dist/esm-es5/input.utils-2846d430.js +4 -0
- 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-backdrop.entry.js +1 -1
- package/dist/esm-es5/ion-checkbox.entry.js +1 -1
- package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
- package/dist/esm-es5/ion-infinite-scroll_2.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-internal.entry.js +1 -1
- package/dist/esm-es5/ion-popover.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-segment_2.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-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-802a84a6.js → ios.transition-fd16bec1.js} +1 -1
- package/dist/esm-es5/{keyboard-52278bd7.js → keyboard-c402e885.js} +1 -1
- package/dist/esm-es5/{keyboard-controller-ec5c2bfa.js → keyboard-controller-5d90929a.js} +1 -1
- package/dist/esm-es5/{keyboard-73175e24.js → keyboard-dbb05fb9.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/md.transition-94ac93e1.js +4 -0
- package/dist/esm-es5/{notch-controller-fea7f9c5.js → notch-controller-d09b6aca.js} +1 -1
- package/dist/esm-es5/overlays-d23ea6e1.js +4 -0
- package/dist/esm-es5/swipe-back-a8ca7f93.js +4 -0
- package/dist/html.html-data.json +1 -14
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-8985cdb6.system.js → p-0e4f2e17.system.js} +1 -1
- package/dist/ionic/{p-33a37fad.system.js → p-1d624e03.system.js} +1 -1
- package/dist/ionic/p-1e57bd24.entry.js +4 -0
- package/dist/ionic/p-1f620cd4.system.entry.js +4 -0
- package/dist/ionic/{p-3dd98a73.entry.js → p-1fc72959.entry.js} +1 -1
- package/dist/ionic/{p-c7c8429a.system.js → p-20d469d0.system.js} +1 -1
- package/dist/ionic/p-22e5af95.entry.js +4 -0
- package/dist/ionic/p-232d1f22.entry.js +4 -0
- package/dist/ionic/{p-4d67d27a.entry.js → p-27ea6f4e.entry.js} +1 -1
- package/dist/ionic/p-2ab4e925.system.entry.js +4 -0
- package/dist/ionic/p-2d5aeccc.js +4 -0
- package/dist/ionic/p-2d600c25.system.js +4 -0
- package/dist/ionic/{p-a9978d08.entry.js → p-2dc43d20.entry.js} +1 -1
- package/dist/ionic/p-2f2293da.system.entry.js +4 -0
- package/dist/ionic/{p-251666e2.entry.js → p-2f300cca.entry.js} +1 -1
- package/dist/ionic/{p-31fcb233.system.js → p-30029cc2.system.js} +1 -1
- package/dist/ionic/{p-cabad15b.system.js → p-304383f9.system.js} +1 -1
- package/dist/ionic/p-308e1341.js +4 -0
- package/dist/ionic/{p-cdbeaadc.js → p-31158892.js} +1 -1
- package/dist/ionic/p-32303650.system.entry.js +4 -0
- package/dist/ionic/{p-0bd51c34.system.js → p-32e19bee.system.js} +1 -1
- package/dist/ionic/p-34c39c48.entry.js +4 -0
- package/dist/ionic/p-39a335b6.system.entry.js +4 -0
- package/dist/ionic/p-3b568d18.entry.js +4 -0
- package/dist/ionic/p-3ba01a9c.system.entry.js +4 -0
- package/dist/ionic/p-3c58a71b.js +4 -0
- package/dist/ionic/{p-31b2326e.system.js → p-3e1e14d9.system.js} +1 -1
- package/dist/ionic/{p-fba0a6e7.system.entry.js → p-3e3d06a6.system.entry.js} +1 -1
- package/dist/ionic/{p-78aadecb.entry.js → p-3f6270b3.entry.js} +1 -1
- package/dist/ionic/p-3fd26bd6.system.entry.js +4 -0
- package/dist/ionic/p-3fe96156.system.js +4 -0
- package/dist/ionic/p-42ba3902.entry.js +4 -0
- package/dist/ionic/{p-6de472cb.js → p-4890093d.js} +1 -1
- package/dist/ionic/{p-88fde0e0.entry.js → p-4911a5d6.entry.js} +1 -1
- package/dist/ionic/p-4a31c99f.entry.js +4 -0
- package/dist/ionic/{p-8acae6b0.system.entry.js → p-4df97e3c.system.entry.js} +1 -1
- package/dist/ionic/{p-27281edd.js → p-4e8e09e1.js} +1 -1
- package/dist/ionic/p-51abefb7.system.js +4 -0
- package/dist/ionic/{p-4f3ae45a.entry.js → p-535d2a67.entry.js} +1 -1
- package/dist/ionic/{p-5e745192.system.js → p-57477107.system.js} +1 -1
- package/dist/ionic/p-5a68960f.entry.js +4 -0
- package/dist/ionic/p-60502e3f.system.entry.js +4 -0
- package/dist/ionic/p-60b386c9.system.entry.js +4 -0
- package/dist/ionic/{p-42f189f4.js → p-643a8fae.js} +1 -1
- package/dist/ionic/{p-b6f9d32a.entry.js → p-67da080d.entry.js} +1 -1
- package/dist/ionic/p-6c37f051.js +4 -0
- package/dist/ionic/{p-a1987850.entry.js → p-6d72fb44.entry.js} +1 -1
- package/dist/ionic/{p-e6d68e02.system.entry.js → p-6fd64e7c.system.entry.js} +1 -1
- package/dist/ionic/{p-dee7c1d0.system.entry.js → p-73ea8f82.system.entry.js} +1 -1
- package/dist/ionic/{p-3a75d7fd.js → p-75445583.js} +1 -1
- package/dist/ionic/{p-f70970cf.js → p-76d3765d.js} +1 -1
- package/dist/ionic/{p-a0bb7b92.system.entry.js → p-77965464.system.entry.js} +1 -1
- package/dist/ionic/p-7b725280.entry.js +4 -0
- package/dist/ionic/p-83af3685.system.js +4 -0
- package/dist/ionic/p-856c430d.js +4 -0
- package/dist/ionic/p-8780cc2a.entry.js +4 -0
- package/dist/ionic/p-8c97cdc0.entry.js +4 -0
- package/dist/ionic/{p-f5d2dc9b.js → p-8ededb41.js} +1 -1
- package/dist/ionic/p-93000a81.system.entry.js +4 -0
- package/dist/ionic/{p-1cca10d6.system.js → p-95c26010.system.js} +1 -1
- package/dist/ionic/{p-ddbb2d5b.system.js → p-98d82c73.system.js} +1 -1
- package/dist/ionic/p-990ffd0e.js +4 -0
- package/dist/ionic/{p-bb3615f7.js → p-9b97df10.js} +1 -1
- package/dist/ionic/{p-3137c025.system.entry.js → p-9c229210.system.entry.js} +2 -2
- package/dist/ionic/p-a225bf0f.system.entry.js +4 -0
- package/dist/ionic/p-a60a1ce5.js +4 -0
- package/dist/ionic/p-a98dc0c1.entry.js +4 -0
- package/dist/ionic/{p-5eda1d7d.entry.js → p-a9a80f5b.entry.js} +1 -1
- package/dist/ionic/p-a9e3b5be.system.entry.js +4 -0
- package/dist/ionic/p-ab11130c.system.js +4 -0
- package/dist/ionic/p-ab9456e9.system.entry.js +4 -0
- package/dist/ionic/p-af16fe62.entry.js +4 -0
- package/dist/ionic/p-af19a573.entry.js +4 -0
- package/dist/ionic/{p-6de62649.system.entry.js → p-b4d31b30.system.entry.js} +1 -1
- package/dist/ionic/{p-46d400b4.system.entry.js → p-b752714f.system.entry.js} +1 -1
- package/dist/ionic/p-c14f8ac8.js +4 -0
- package/dist/ionic/p-cde52378.system.entry.js +4 -0
- package/dist/ionic/p-d43f1f3d.system.js +4 -0
- package/dist/ionic/p-d662d908.js +4 -0
- package/dist/ionic/p-d9695ad9.system.js +4 -0
- package/dist/ionic/p-da15f571.system.entry.js +4 -0
- package/dist/ionic/p-e1e5afe1.system.entry.js +4 -0
- package/dist/ionic/p-e3584231.system.js +1 -1
- package/dist/ionic/{p-ada96dd0.system.entry.js → p-e3ad9607.system.entry.js} +1 -1
- package/dist/ionic/p-e4d90573.js +4 -0
- package/dist/ionic/{p-6577aea9.system.entry.js → p-e8e86f69.system.entry.js} +1 -1
- package/dist/ionic/p-f54c72b0.system.js +4 -0
- package/dist/ionic/p-f78efbd1.entry.js +4 -0
- package/dist/ionic/p-f7a36cd0.system.js +4 -0
- package/dist/ionic/p-f967631d.js +4 -0
- package/dist/ionic/p-fe4dde76.entry.js +4 -0
- package/dist/ionic/{p-e24ce1e5.system.js → p-fff7a57e.system.js} +1 -1
- package/dist/types/components/backdrop/backdrop.d.ts +0 -3
- package/dist/types/components/checkbox/checkbox.d.ts +0 -1
- package/dist/types/components/datetime/datetime.d.ts +0 -1
- package/dist/types/components/infinite-scroll/infinite-scroll.d.ts +0 -7
- package/dist/types/components/input/input.d.ts +0 -2
- package/dist/types/components/menu/menu.d.ts +1 -1
- package/dist/types/components/radio/radio.d.ts +0 -1
- package/dist/types/components/radio-group/radio-group-interface.d.ts +0 -1
- package/dist/types/components/radio-group/radio-group.d.ts +1 -8
- package/dist/types/components/range/range.d.ts +0 -1
- package/dist/types/components/router/router.d.ts +1 -2
- package/dist/types/components/select/select.d.ts +1 -6
- package/dist/types/components/skeleton-text/skeleton-text.d.ts +1 -9
- package/dist/types/components/textarea/textarea.d.ts +0 -2
- package/dist/types/components/toast/animations/utils.d.ts +4 -15
- package/dist/types/components/toast/toast-interface.d.ts +0 -2
- package/dist/types/components/toast/toast.d.ts +1 -28
- package/dist/types/components/toggle/toggle.d.ts +0 -1
- package/dist/types/components.d.ts +6 -37
- package/dist/types/interface.d.ts +5 -1
- package/dist/types/utils/animation/animation-interface.d.ts +4 -4
- package/dist/types/utils/browser/index.d.ts +2 -11
- package/dist/types/utils/forms/index.d.ts +0 -1
- package/dist/types/utils/gesture/gesture-controller.d.ts +1 -0
- package/dist/types/utils/hardware-back-button.d.ts +0 -4
- package/dist/types/utils/overlays.d.ts +0 -1
- package/dist/types/utils/slot-mutation-controller.d.ts +2 -2
- package/hydrate/index.js +194 -676
- package/package.json +1 -1
- package/dist/cjs/compare-with-utils-df1001d7.js +0 -44
- package/dist/cjs/index-c8d52405.js +0 -10
- package/dist/collection/components/infinite-scroll/test/small-dom-update/infinite-scroll.e2e.js +0 -31
- package/dist/collection/components/input/test/slot/input.e2e.js +0 -51
- package/dist/collection/components/radio-group/test/radio-group.spec.js +0 -69
- package/dist/collection/components/select/test/slot/select.e2e.js +0 -67
- package/dist/collection/components/textarea/test/slot/textarea.e2e.js +0 -51
- package/dist/collection/components/toast/gestures/swipe-to-dismiss.js +0 -267
- package/dist/collection/components/toast/test/swipe-gesture/toast.e2e.js +0 -84
- package/dist/collection/components/toast/test/toast-config.spec.js +0 -25
- package/dist/collection/utils/forms/compare-with-utils.js +0 -39
- package/dist/esm/compare-with-utils-a96ff2ea.js +0 -41
- package/dist/esm/index-a5d50daf.js +0 -7
- package/dist/esm-es5/compare-with-utils-a96ff2ea.js +0 -4
- package/dist/esm-es5/index-0c12c22b.js +0 -4
- package/dist/esm-es5/input-shims-6539ce13.js +0 -4
- package/dist/esm-es5/input.utils-a5a2d164.js +0 -4
- package/dist/esm-es5/md.transition-43c2874d.js +0 -4
- package/dist/esm-es5/overlays-32ef481d.js +0 -4
- package/dist/esm-es5/swipe-back-a6f386fc.js +0 -4
- package/dist/ionic/p-01d14eba.system.entry.js +0 -4
- package/dist/ionic/p-042e6f4b.entry.js +0 -4
- package/dist/ionic/p-05d83227.system.entry.js +0 -4
- package/dist/ionic/p-16756e94.system.entry.js +0 -4
- package/dist/ionic/p-1b19c04b.entry.js +0 -4
- package/dist/ionic/p-1e4371bd.js +0 -4
- package/dist/ionic/p-28249b10.system.entry.js +0 -4
- package/dist/ionic/p-28a2c2a2.entry.js +0 -4
- package/dist/ionic/p-29d03b3a.js +0 -4
- package/dist/ionic/p-2b7827c7.js +0 -4
- package/dist/ionic/p-2d3b9fa3.system.entry.js +0 -4
- package/dist/ionic/p-2d539df1.entry.js +0 -4
- package/dist/ionic/p-35ce400e.system.js +0 -4
- package/dist/ionic/p-36d187af.js +0 -4
- package/dist/ionic/p-376a6063.js +0 -4
- package/dist/ionic/p-38f2c6bb.system.js +0 -4
- package/dist/ionic/p-39c31982.system.entry.js +0 -4
- package/dist/ionic/p-3e6b47e8.system.entry.js +0 -4
- package/dist/ionic/p-3f5179b5.entry.js +0 -4
- package/dist/ionic/p-40f68333.system.js +0 -4
- package/dist/ionic/p-438e1b8a.entry.js +0 -4
- package/dist/ionic/p-47b6ba5b.js +0 -4
- package/dist/ionic/p-517a9885.system.entry.js +0 -4
- package/dist/ionic/p-53ec4f1c.system.js +0 -4
- package/dist/ionic/p-5e4eec2e.entry.js +0 -4
- package/dist/ionic/p-6a6477b2.js +0 -4
- package/dist/ionic/p-72f6ff89.js +0 -4
- package/dist/ionic/p-765f4dde.entry.js +0 -4
- package/dist/ionic/p-7d92bf15.system.entry.js +0 -4
- package/dist/ionic/p-7ee0f3f2.entry.js +0 -4
- package/dist/ionic/p-8314281e.system.js +0 -4
- package/dist/ionic/p-88d5fbd3.js +0 -4
- package/dist/ionic/p-8d69a624.entry.js +0 -4
- package/dist/ionic/p-8de17614.system.entry.js +0 -4
- package/dist/ionic/p-908475e7.system.entry.js +0 -4
- package/dist/ionic/p-91d33c4a.js +0 -4
- package/dist/ionic/p-979d4f5c.system.js +0 -4
- package/dist/ionic/p-9b7f0b0f.entry.js +0 -4
- package/dist/ionic/p-9e447eb1.system.js +0 -4
- package/dist/ionic/p-9f6ee2c0.system.entry.js +0 -4
- package/dist/ionic/p-a0d7bb5e.system.js +0 -4
- package/dist/ionic/p-a3277a67.entry.js +0 -4
- package/dist/ionic/p-afd6ca9d.entry.js +0 -4
- package/dist/ionic/p-b56d0866.system.entry.js +0 -4
- package/dist/ionic/p-c61cc894.js +0 -4
- package/dist/ionic/p-d032f825.system.entry.js +0 -4
- package/dist/ionic/p-d51674c5.system.js +0 -4
- package/dist/ionic/p-de6f8b28.system.js +0 -4
- package/dist/ionic/p-de756e5c.js +0 -4
- package/dist/ionic/p-dfd9432a.entry.js +0 -4
- package/dist/ionic/p-e94c392d.entry.js +0 -4
- package/dist/ionic/p-f0445d82.system.entry.js +0 -4
- package/dist/ionic/p-f656e032.system.entry.js +0 -4
- package/dist/ionic/p-feae5133.entry.js +0 -4
- package/dist/types/components/toast/gestures/swipe-to-dismiss.d.ts +0 -9
- package/dist/types/jest.d.ts +0 -5
- package/dist/types/utils/forms/compare-with-utils.d.ts +0 -18
- /package/dist/esm-es5/{index-a5d50daf.js → index-7a14ecec.js} +0 -0
- /package/dist/ionic/{p-792919fd.system.js → p-0e94957a.system.js} +0 -0
- /package/dist/ionic/{p-7b30edcc.js → p-b347cfd1.js} +0 -0
|
@@ -189,16 +189,6 @@
|
|
|
189
189
|
}
|
|
190
190
|
}
|
|
191
191
|
|
|
192
|
-
.toast-wrapper.toast-top {
|
|
193
|
-
transform: translate3d(0, -100%, 0);
|
|
194
|
-
top: 0;
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
.toast-wrapper.toast-bottom {
|
|
198
|
-
transform: translate3d(0, 100%, 0);
|
|
199
|
-
bottom: 0;
|
|
200
|
-
}
|
|
201
|
-
|
|
202
192
|
.toast-container {
|
|
203
193
|
display: flex;
|
|
204
194
|
align-items: center;
|
|
@@ -37,18 +37,6 @@ describe('toggle', () => {
|
|
|
37
37
|
expect(t.enableOnOffLabels).toBe(true);
|
|
38
38
|
});
|
|
39
39
|
});
|
|
40
|
-
describe('shadow parts', () => {
|
|
41
|
-
it('should have shadow parts', async () => {
|
|
42
|
-
const page = await newSpecPage({
|
|
43
|
-
components: [Toggle],
|
|
44
|
-
html: `<ion-toggle>Label</ion-toggle>`,
|
|
45
|
-
});
|
|
46
|
-
const toggle = page.body.querySelector('ion-toggle');
|
|
47
|
-
expect(toggle).toHaveShadowPart('label');
|
|
48
|
-
expect(toggle).toHaveShadowPart('track');
|
|
49
|
-
expect(toggle).toHaveShadowPart('handle');
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
40
|
});
|
|
53
41
|
describe('ion-toggle: disabled', () => {
|
|
54
42
|
it('clicking disabled toggle should not toggle checked state', async () => {
|
|
@@ -184,6 +184,12 @@ input {
|
|
|
184
184
|
}
|
|
185
185
|
|
|
186
186
|
.label-text-wrapper {
|
|
187
|
+
/**
|
|
188
|
+
* This ensures that double tapping this text
|
|
189
|
+
* clicks the <label> and focuses the input
|
|
190
|
+
* when a screen reader is enabled.
|
|
191
|
+
*/
|
|
192
|
+
pointer-events: none;
|
|
187
193
|
text-overflow: ellipsis;
|
|
188
194
|
white-space: nowrap;
|
|
189
195
|
overflow: hidden;
|
|
@@ -18,7 +18,6 @@ import { getIonMode } from "../../global/ionic-global";
|
|
|
18
18
|
*
|
|
19
19
|
* @part track - The background track of the toggle.
|
|
20
20
|
* @part handle - The toggle handle, or knob, used to change the checked state.
|
|
21
|
-
* @part label - The label text describing the toggle.
|
|
22
21
|
*/
|
|
23
22
|
export class Toggle {
|
|
24
23
|
constructor() {
|
|
@@ -124,8 +123,6 @@ export class Toggle {
|
|
|
124
123
|
if (this.legacyFormController.hasLegacyControl()) {
|
|
125
124
|
this.ionStyle.emit({
|
|
126
125
|
'interactive-disabled': this.disabled,
|
|
127
|
-
// TODO(FW-2990): remove this
|
|
128
|
-
legacy: !!this.legacy,
|
|
129
126
|
});
|
|
130
127
|
}
|
|
131
128
|
}
|
|
@@ -193,7 +190,7 @@ export class Toggle {
|
|
|
193
190
|
}) }, h("label", { class: "toggle-wrapper" }, h("input", Object.assign({ type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl) }, this.inheritedAttributes)), h("div", { class: {
|
|
194
191
|
'label-text-wrapper': true,
|
|
195
192
|
'label-text-wrapper-hidden': !this.hasLabel,
|
|
196
|
-
}
|
|
193
|
+
} }, h("slot", null)), h("div", { class: "native-wrapper" }, this.renderToggleControl()))));
|
|
197
194
|
}
|
|
198
195
|
renderLegacyToggle() {
|
|
199
196
|
if (!this.hasLoggedDeprecationWarning) {
|
|
@@ -184,6 +184,12 @@ input {
|
|
|
184
184
|
}
|
|
185
185
|
|
|
186
186
|
.label-text-wrapper {
|
|
187
|
+
/**
|
|
188
|
+
* This ensures that double tapping this text
|
|
189
|
+
* clicks the <label> and focuses the input
|
|
190
|
+
* when a screen reader is enabled.
|
|
191
|
+
*/
|
|
192
|
+
pointer-events: none;
|
|
187
193
|
text-overflow: ellipsis;
|
|
188
194
|
white-space: nowrap;
|
|
189
195
|
overflow: hidden;
|
|
@@ -463,16 +463,6 @@ export const createAnimation = (animationId) => {
|
|
|
463
463
|
}
|
|
464
464
|
}
|
|
465
465
|
});
|
|
466
|
-
/**
|
|
467
|
-
* Clean up any value coercion before
|
|
468
|
-
* the user callbacks fire otherwise
|
|
469
|
-
* they may get stale values. For example,
|
|
470
|
-
* if someone calls progressStart(0) the
|
|
471
|
-
* animation may still be reversed.
|
|
472
|
-
*/
|
|
473
|
-
forceDurationValue = undefined;
|
|
474
|
-
forceDirectionValue = undefined;
|
|
475
|
-
forceDelayValue = undefined;
|
|
476
466
|
onFinishCallbacks.forEach((onFinishCallback) => {
|
|
477
467
|
return onFinishCallback.c(currentStep, ani);
|
|
478
468
|
});
|
|
@@ -677,8 +667,17 @@ export const createAnimation = (animationId) => {
|
|
|
677
667
|
update(false, false);
|
|
678
668
|
}
|
|
679
669
|
}
|
|
680
|
-
if (playTo !== undefined
|
|
681
|
-
|
|
670
|
+
if (playTo !== undefined) {
|
|
671
|
+
onFinish(() => {
|
|
672
|
+
forceDurationValue = undefined;
|
|
673
|
+
forceDirectionValue = undefined;
|
|
674
|
+
forceDelayValue = undefined;
|
|
675
|
+
}, {
|
|
676
|
+
oneTimeCallback: true,
|
|
677
|
+
});
|
|
678
|
+
if (!parentAnimation) {
|
|
679
|
+
play();
|
|
680
|
+
}
|
|
682
681
|
}
|
|
683
682
|
return ani;
|
|
684
683
|
};
|
|
@@ -5,22 +5,6 @@ import { createAnimation } from "../animation";
|
|
|
5
5
|
import { processKeyframes } from "../animation-utils";
|
|
6
6
|
import { getTimeGivenProgression } from "../cubic-bezier";
|
|
7
7
|
describe('Animation Class', () => {
|
|
8
|
-
describe('progressEnd callbacks', () => {
|
|
9
|
-
test('coerced state should be reset before onFinish runs', (done) => {
|
|
10
|
-
const el = document.createElement('div');
|
|
11
|
-
const animation = createAnimation()
|
|
12
|
-
.addElement(el)
|
|
13
|
-
.fromTo('transform', 'translateX(0px)', 'translateX(100px)')
|
|
14
|
-
.duration(50);
|
|
15
|
-
animation
|
|
16
|
-
.onFinish(() => {
|
|
17
|
-
expect(animation.getDirection()).toBe('normal');
|
|
18
|
-
expect(animation.getDuration()).toBe(50);
|
|
19
|
-
done();
|
|
20
|
-
})
|
|
21
|
-
.progressEnd(0, 0.5, 10);
|
|
22
|
-
});
|
|
23
|
-
});
|
|
24
8
|
describe('play()', () => {
|
|
25
9
|
it('should resolve when the animation is cancelled', async () => {
|
|
26
10
|
// Tell Jest to expect 1 assertion for async code
|
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
+
/**
|
|
5
|
+
* When accessing the document or window, it is important
|
|
6
|
+
* to account for SSR applications where the
|
|
7
|
+
* window is not available. Code that accesses
|
|
8
|
+
* window when it is not available will crash.
|
|
9
|
+
* Even checking if `window === undefined` will cause
|
|
10
|
+
* apps to crash in SSR.
|
|
11
|
+
*
|
|
12
|
+
* Use win below to access an SSR-safe version
|
|
13
|
+
* of the window.
|
|
14
|
+
*
|
|
15
|
+
* Example 1:
|
|
16
|
+
* Before:
|
|
17
|
+
* if (window.innerWidth > 768) { ... }
|
|
18
|
+
*
|
|
19
|
+
* After:
|
|
20
|
+
* import { win } from 'path/to/this/file';
|
|
21
|
+
* if (win?.innerWidth > 768) { ... }
|
|
22
|
+
*
|
|
23
|
+
* Note: Code inside of this if-block will
|
|
24
|
+
* not run in an SSR environment.
|
|
25
|
+
*/
|
|
4
26
|
export const win = typeof window !== 'undefined' ? window : undefined;
|
|
5
27
|
export const doc = typeof document !== 'undefined' ? document : undefined;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import { doc } from "../browser/index";
|
|
5
4
|
import { findClosestIonContent } from "../content";
|
|
6
5
|
import { componentOnReady } from "../helpers";
|
|
7
6
|
import { Keyboard } from "../native/keyboard";
|
|
@@ -12,13 +11,7 @@ const INPUT_BLURRING = true;
|
|
|
12
11
|
const SCROLL_ASSIST = true;
|
|
13
12
|
const HIDE_CARET = true;
|
|
14
13
|
export const startInputShims = async (config, platform) => {
|
|
15
|
-
|
|
16
|
-
* If doc is undefined then we are in an SSR environment
|
|
17
|
-
* where input shims do not apply.
|
|
18
|
-
*/
|
|
19
|
-
if (doc === undefined) {
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
14
|
+
const doc = document;
|
|
22
15
|
const isIOS = platform === 'ios';
|
|
23
16
|
const isAndroid = platform === 'android';
|
|
24
17
|
/**
|
|
@@ -97,10 +90,11 @@ export const startInputShims = async (config, platform) => {
|
|
|
97
90
|
for (const input of inputs) {
|
|
98
91
|
registerInput(input);
|
|
99
92
|
}
|
|
100
|
-
|
|
93
|
+
// TODO(FW-2832): types
|
|
94
|
+
doc.addEventListener('ionInputDidLoad', ((ev) => {
|
|
101
95
|
registerInput(ev.detail);
|
|
102
|
-
});
|
|
103
|
-
doc.addEventListener('ionInputDidUnload', (ev) => {
|
|
96
|
+
}));
|
|
97
|
+
doc.addEventListener('ionInputDidUnload', ((ev) => {
|
|
104
98
|
unregisterInput(ev.detail);
|
|
105
|
-
});
|
|
99
|
+
}));
|
|
106
100
|
};
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import { doc } from "../browser/index";
|
|
5
|
-
import { MENU_BACK_BUTTON_PRIORITY } from "../hardware-back-button";
|
|
6
4
|
import { printIonWarning } from "../logging/index";
|
|
5
|
+
import { MENU_BACK_BUTTON_PRIORITY } from "../hardware-back-button";
|
|
7
6
|
import { componentOnReady } from "../helpers";
|
|
8
7
|
import { menuOverlayAnimation } from "./animations/overlay";
|
|
9
8
|
import { menuPushAnimation } from "./animations/push";
|
|
@@ -185,14 +184,17 @@ const createMenuController = () => {
|
|
|
185
184
|
registerAnimation('reveal', menuRevealAnimation);
|
|
186
185
|
registerAnimation('push', menuPushAnimation);
|
|
187
186
|
registerAnimation('overlay', menuOverlayAnimation);
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
187
|
+
if (typeof document !== 'undefined') {
|
|
188
|
+
document.addEventListener('ionBackButton', (ev) => {
|
|
189
|
+
// TODO(FW-2832): type
|
|
190
|
+
const openMenu = _getOpenSync();
|
|
191
|
+
if (openMenu) {
|
|
192
|
+
ev.detail.register(MENU_BACK_BUTTON_PRIORITY, () => {
|
|
193
|
+
return openMenu.close();
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
}
|
|
196
198
|
return {
|
|
197
199
|
registerAnimation,
|
|
198
200
|
get,
|
|
@@ -5,6 +5,7 @@ import { doc } from "./browser/index";
|
|
|
5
5
|
import { config } from "../global/config";
|
|
6
6
|
import { getIonMode } from "../global/ionic-global";
|
|
7
7
|
import { CoreDelegate } from "./framework-delegate";
|
|
8
|
+
import { BACKDROP_NO_SCROLL } from "./gesture/gesture-controller";
|
|
8
9
|
import { OVERLAY_BACK_BUTTON_PRIORITY } from "./hardware-back-button";
|
|
9
10
|
import { addEventListener, componentOnReady, focusElement, getElementRoot, removeEventListener } from "./helpers";
|
|
10
11
|
import { printIonWarning } from "./logging";
|
|
@@ -389,6 +390,7 @@ export const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation
|
|
|
389
390
|
return;
|
|
390
391
|
}
|
|
391
392
|
setRootAriaHidden(true);
|
|
393
|
+
document.body.classList.add(BACKDROP_NO_SCROLL);
|
|
392
394
|
overlay.presented = true;
|
|
393
395
|
overlay.willPresent.emit();
|
|
394
396
|
(_a = overlay.willPresentShorthand) === null || _a === void 0 ? void 0 : _a.emit();
|
|
@@ -451,12 +453,14 @@ export const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLe
|
|
|
451
453
|
if (!overlay.presented) {
|
|
452
454
|
return false;
|
|
453
455
|
}
|
|
456
|
+
const lastOverlay = doc !== undefined && getPresentedOverlays(doc).length === 1;
|
|
454
457
|
/**
|
|
455
458
|
* If this is the last visible overlay then
|
|
456
459
|
* we want to re-add the root to the accessibility tree.
|
|
457
460
|
*/
|
|
458
|
-
if (
|
|
461
|
+
if (lastOverlay) {
|
|
459
462
|
setRootAriaHidden(false);
|
|
463
|
+
document.body.classList.remove(BACKDROP_NO_SCROLL);
|
|
460
464
|
}
|
|
461
465
|
overlay.presented = false;
|
|
462
466
|
try {
|
|
@@ -562,7 +566,6 @@ export const safeCall = (handler, arg) => {
|
|
|
562
566
|
};
|
|
563
567
|
export const BACKDROP = 'backdrop';
|
|
564
568
|
export const GESTURE = 'gesture';
|
|
565
|
-
export const OVERLAY_GESTURE_PRIORITY = 39;
|
|
566
569
|
/**
|
|
567
570
|
* Creates a delegate controller.
|
|
568
571
|
*
|
|
@@ -9,14 +9,13 @@ import { raf } from "./helpers";
|
|
|
9
9
|
* This is not needed for components using native slots in the Shadow DOM.
|
|
10
10
|
* @internal
|
|
11
11
|
* @param el The host element to observe
|
|
12
|
-
* @param slotName mutationCallback will fire when nodes on
|
|
12
|
+
* @param slotName mutationCallback will fire when nodes on this slot change
|
|
13
13
|
* @param mutationCallback The callback to fire whenever the slotted content changes
|
|
14
14
|
*/
|
|
15
15
|
export const createSlotMutationController = (el, slotName, mutationCallback) => {
|
|
16
16
|
let hostMutationObserver;
|
|
17
17
|
let slottedContentMutationObserver;
|
|
18
18
|
if (win !== undefined && 'MutationObserver' in win) {
|
|
19
|
-
const slots = Array.isArray(slotName) ? slotName : [slotName];
|
|
20
19
|
hostMutationObserver = new MutationObserver((entries) => {
|
|
21
20
|
for (const entry of entries) {
|
|
22
21
|
for (const node of entry.addedNodes) {
|
|
@@ -24,7 +23,7 @@ export const createSlotMutationController = (el, slotName, mutationCallback) =>
|
|
|
24
23
|
* Check to see if the added node
|
|
25
24
|
* is our slotted content.
|
|
26
25
|
*/
|
|
27
|
-
if (node.nodeType === Node.ELEMENT_NODE &&
|
|
26
|
+
if (node.nodeType === Node.ELEMENT_NODE && node.slot === slotName) {
|
|
28
27
|
/**
|
|
29
28
|
* If so, we want to watch the slotted
|
|
30
29
|
* content itself for changes. This lets us
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
+
*/
|
|
4
|
+
import { newSpecPage } from "@stencil/core/testing";
|
|
5
|
+
import { Modal } from "../../../components/modal/modal";
|
|
6
|
+
describe('overlays: scroll blocking', () => {
|
|
7
|
+
it('should not block scroll when the overlay is created', async () => {
|
|
8
|
+
const page = await newSpecPage({
|
|
9
|
+
components: [Modal],
|
|
10
|
+
html: `
|
|
11
|
+
<ion-modal></ion-modal>
|
|
12
|
+
`,
|
|
13
|
+
});
|
|
14
|
+
const body = page.doc.querySelector('body');
|
|
15
|
+
expect(body).not.toHaveClass('backdrop-no-scroll');
|
|
16
|
+
});
|
|
17
|
+
it('should block scroll when the overlay is presented', async () => {
|
|
18
|
+
const page = await newSpecPage({
|
|
19
|
+
components: [Modal],
|
|
20
|
+
html: `
|
|
21
|
+
<ion-modal></ion-modal>
|
|
22
|
+
`,
|
|
23
|
+
});
|
|
24
|
+
const modal = page.body.querySelector('ion-modal');
|
|
25
|
+
const body = page.doc.querySelector('body');
|
|
26
|
+
await modal.present();
|
|
27
|
+
expect(body).toHaveClass('backdrop-no-scroll');
|
|
28
|
+
await modal.dismiss();
|
|
29
|
+
expect(body).not.toHaveClass('backdrop-no-scroll');
|
|
30
|
+
});
|
|
31
|
+
it('should not block scroll when the overlay is dismissed', async () => {
|
|
32
|
+
const page = await newSpecPage({
|
|
33
|
+
components: [Modal],
|
|
34
|
+
html: `
|
|
35
|
+
<ion-modal></ion-modal>
|
|
36
|
+
`,
|
|
37
|
+
});
|
|
38
|
+
const modal = page.body.querySelector('ion-modal');
|
|
39
|
+
const body = page.doc.querySelector('body');
|
|
40
|
+
await modal.present();
|
|
41
|
+
expect(body).toHaveClass('backdrop-no-scroll');
|
|
42
|
+
await modal.dismiss();
|
|
43
|
+
expect(body).not.toHaveClass('backdrop-no-scroll');
|
|
44
|
+
});
|
|
45
|
+
it('should not enable scroll until last overlay is dismissed', async () => {
|
|
46
|
+
const page = await newSpecPage({
|
|
47
|
+
components: [Modal],
|
|
48
|
+
html: `
|
|
49
|
+
<ion-modal id="one"></ion-modal>
|
|
50
|
+
<ion-modal id="two"></ion-modal>
|
|
51
|
+
`,
|
|
52
|
+
});
|
|
53
|
+
const modalOne = page.body.querySelector('#one');
|
|
54
|
+
const modalTwo = page.body.querySelector('#two');
|
|
55
|
+
const body = page.doc.querySelector('body');
|
|
56
|
+
await modalOne.present();
|
|
57
|
+
expect(body).toHaveClass('backdrop-no-scroll');
|
|
58
|
+
await modalTwo.present();
|
|
59
|
+
expect(body).toHaveClass('backdrop-no-scroll');
|
|
60
|
+
await modalOne.dismiss();
|
|
61
|
+
expect(body).toHaveClass('backdrop-no-scroll');
|
|
62
|
+
await modalTwo.dismiss();
|
|
63
|
+
expect(body).not.toHaveClass('backdrop-no-scroll');
|
|
64
|
+
});
|
|
65
|
+
});
|