@ionic/core 7.4.4-dev.11699475060.1eee2115 → 7.4.4-dev.11700515976.1ccd503d
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/alert.js +8 -0
- package/components/checkbox.js +0 -3
- package/components/data.js +96 -22
- package/components/haptic.js +1 -0
- package/components/icon.js +9 -5
- package/components/index.js +1 -0
- package/components/index4.js +26 -19
- package/components/index7.js +1 -1
- package/components/ion-datetime-button.js +4 -4
- package/components/ion-datetime.js +3 -3
- package/components/ion-menu.js +0 -12
- package/components/ion-nav.js +1 -0
- package/components/ion-router.js +3 -0
- package/components/ion-select.js +18 -32
- package/components/ion-toast.js +157 -13
- package/components/ion-toggle.js +0 -3
- package/components/ios.transition.js +1 -0
- package/components/overlays.js +1 -0
- package/components/radio-group.js +1 -1
- package/components/radio.js +1 -4
- package/dist/cjs/{app-globals-fe1ad535.js → app-globals-84b6a756.js} +1 -1
- package/dist/cjs/{button-active-0932cee9.js → button-active-f2147e85.js} +2 -2
- package/dist/cjs/{data-db832785.js → data-c8d21093.js} +96 -22
- package/dist/cjs/{haptic-c5f6b4d5.js → haptic-678abc9f.js} +1 -0
- package/dist/cjs/{index-305a23dc.js → index-14a4821e.js} +51 -95
- package/dist/cjs/{index-f94cbab1.js → index-2e612e35.js} +27 -20
- package/dist/cjs/{index-d3568232.js → index-33d2809c.js} +3 -3
- package/dist/cjs/{index-d8d1fc0b.js → index-d8f84c5a.js} +1 -1
- package/dist/cjs/index.cjs.js +10 -8
- package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-action-sheet.cjs.entry.js +5 -5
- package/dist/cjs/ion-alert.cjs.entry.js +13 -5
- package/dist/cjs/ion-app_8.cjs.entry.js +4 -4
- package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-back-button.cjs.entry.js +3 -3
- package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-button_2.cjs.entry.js +11 -7
- package/dist/cjs/ion-card_5.cjs.entry.js +2 -2
- package/dist/cjs/ion-checkbox.cjs.entry.js +2 -5
- package/dist/cjs/ion-chip.cjs.entry.js +2 -2
- package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-datetime-button.cjs.entry.js +6 -6
- package/dist/cjs/ion-datetime_3.cjs.entry.js +8 -8
- package/dist/cjs/ion-fab_3.cjs.entry.js +3 -3
- package/dist/cjs/ion-img.cjs.entry.js +2 -2
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-input.cjs.entry.js +3 -3
- package/dist/cjs/ion-item-option_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-item_8.cjs.entry.js +3 -3
- package/dist/cjs/ion-loading.cjs.entry.js +3 -3
- package/dist/cjs/ion-menu_3.cjs.entry.js +8 -19
- package/dist/cjs/ion-modal.cjs.entry.js +4 -4
- package/dist/cjs/ion-nav_2.cjs.entry.js +4 -3
- package/dist/cjs/ion-picker-column-internal.cjs.entry.js +3 -3
- package/dist/cjs/ion-picker-internal.cjs.entry.js +1 -1
- package/dist/cjs/ion-popover.cjs.entry.js +4 -4
- package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
- package/dist/cjs/ion-radio_2.cjs.entry.js +4 -7
- package/dist/cjs/ion-range.cjs.entry.js +2 -2
- package/dist/cjs/ion-refresher_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
- package/dist/cjs/ion-route_4.cjs.entry.js +5 -2
- package/dist/cjs/ion-searchbar.cjs.entry.js +3 -3
- package/dist/cjs/ion-segment_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-select_3.cjs.entry.js +22 -36
- package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
- package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-tab_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-text.cjs.entry.js +2 -2
- package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
- package/dist/cjs/ion-toast.cjs.entry.js +175 -33
- package/dist/cjs/ion-toggle.cjs.entry.js +4 -7
- package/dist/cjs/{ionic-global-fb752503.js → ionic-global-a71608df.js} +1 -1
- package/dist/cjs/ionic.cjs.js +5 -5
- package/dist/cjs/{ios.transition-7d688757.js → ios.transition-8ddf91e6.js} +3 -2
- package/dist/cjs/loader.cjs.js +4 -4
- package/dist/cjs/{md.transition-d77d3c2e.js → md.transition-44ff8566.js} +2 -2
- package/dist/cjs/{overlays-7e1a08fa.js → overlays-9cab437c.js} +2 -1
- package/dist/cjs/{status-tap-778e8054.js → status-tap-8c22e017.js} +1 -1
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/alert/alert.js +8 -0
- package/dist/collection/components/alert/test/a11y/alert.e2e.js +11 -0
- package/dist/collection/components/checkbox/checkbox.js +0 -3
- package/dist/collection/components/datetime/datetime.js +12 -6
- package/dist/collection/components/datetime/test/hour-cycle/datetime.e2e.js +14 -0
- package/dist/collection/components/datetime/utils/data.js +33 -7
- package/dist/collection/components/datetime/utils/format.js +27 -10
- package/dist/collection/components/datetime/utils/helpers.js +37 -5
- package/dist/collection/components/datetime-button/datetime-button.js +4 -4
- package/dist/collection/components/menu/menu.js +0 -12
- package/dist/collection/components/menu/test/multiple/menu.e2e.js +60 -0
- package/dist/collection/components/nav/nav.js +1 -0
- package/dist/collection/components/radio/radio.js +1 -4
- package/dist/collection/components/radio-group/radio-group.js +1 -1
- package/dist/collection/components/router/router.js +2 -0
- package/dist/collection/components/router/utils/path.js +1 -0
- package/dist/collection/components/select/select.js +18 -32
- package/dist/collection/components/toast/animations/ios.enter.js +2 -3
- package/dist/collection/components/toast/animations/ios.leave.js +2 -3
- package/dist/collection/components/toast/animations/md.enter.js +2 -3
- package/dist/collection/components/toast/animations/utils.js +85 -0
- package/dist/collection/components/toast/test/position-anchor/toast.e2e.js +45 -0
- package/dist/collection/components/toast/toast.js +98 -9
- package/dist/collection/components/toggle/toggle.js +0 -3
- package/dist/collection/index.js +1 -0
- package/dist/collection/utils/menu-controller/index.js +26 -19
- package/dist/collection/utils/native/haptic.js +1 -0
- package/dist/collection/utils/overlays.js +1 -0
- package/dist/collection/utils/transition/ios.transition.js +1 -0
- package/dist/docs.json +74 -11
- package/dist/esm/{app-globals-ec816a70.js → app-globals-df292a32.js} +1 -1
- package/dist/esm/{button-active-5136c12d.js → button-active-3dd473a1.js} +2 -2
- package/dist/esm/{data-009dbf15.js → data-44d9e816.js} +96 -22
- package/dist/esm/{haptic-6447af60.js → haptic-1243b917.js} +1 -0
- package/dist/esm/{index-ecfc2c9f.js → index-504b03f0.js} +1 -1
- package/dist/esm/{index-641aeeed.js → index-6e10cd02.js} +3 -3
- package/dist/esm/{index-d78b533e.js → index-c3e624b7.js} +27 -20
- package/dist/esm/{index-b49b173c.js → index-cb894020.js} +51 -95
- package/dist/esm/index.js +9 -8
- package/dist/esm/ion-accordion_2.entry.js +3 -3
- package/dist/esm/ion-action-sheet.entry.js +5 -5
- package/dist/esm/ion-alert.entry.js +13 -5
- package/dist/esm/ion-app_8.entry.js +4 -4
- package/dist/esm/ion-avatar_3.entry.js +2 -2
- package/dist/esm/ion-back-button.entry.js +3 -3
- package/dist/esm/ion-backdrop.entry.js +2 -2
- package/dist/esm/ion-breadcrumb_2.entry.js +3 -3
- package/dist/esm/ion-button_2.entry.js +11 -7
- package/dist/esm/ion-card_5.entry.js +2 -2
- package/dist/esm/ion-checkbox.entry.js +2 -5
- package/dist/esm/ion-chip.entry.js +2 -2
- package/dist/esm/ion-col_3.entry.js +2 -2
- package/dist/esm/ion-datetime-button.entry.js +6 -6
- package/dist/esm/ion-datetime_3.entry.js +8 -8
- package/dist/esm/ion-fab_3.entry.js +3 -3
- package/dist/esm/ion-img.entry.js +2 -2
- package/dist/esm/ion-infinite-scroll_2.entry.js +2 -2
- package/dist/esm/ion-input.entry.js +3 -3
- package/dist/esm/ion-item-option_3.entry.js +2 -2
- package/dist/esm/ion-item_8.entry.js +3 -3
- package/dist/esm/ion-loading.entry.js +3 -3
- package/dist/esm/ion-menu_3.entry.js +7 -18
- package/dist/esm/ion-modal.entry.js +4 -4
- package/dist/esm/ion-nav_2.entry.js +4 -3
- package/dist/esm/ion-picker-column-internal.entry.js +3 -3
- package/dist/esm/ion-picker-internal.entry.js +1 -1
- package/dist/esm/ion-popover.entry.js +4 -4
- package/dist/esm/ion-progress-bar.entry.js +2 -2
- package/dist/esm/ion-radio_2.entry.js +4 -7
- package/dist/esm/ion-range.entry.js +2 -2
- package/dist/esm/ion-refresher_2.entry.js +4 -4
- package/dist/esm/ion-reorder_2.entry.js +4 -4
- package/dist/esm/ion-ripple-effect.entry.js +2 -2
- package/dist/esm/ion-route_4.entry.js +5 -2
- package/dist/esm/ion-searchbar.entry.js +3 -3
- package/dist/esm/ion-segment_2.entry.js +2 -2
- package/dist/esm/ion-select_3.entry.js +22 -36
- package/dist/esm/ion-spinner.entry.js +2 -2
- package/dist/esm/ion-split-pane.entry.js +2 -2
- package/dist/esm/ion-tab-bar_2.entry.js +2 -2
- package/dist/esm/ion-tab_2.entry.js +1 -1
- package/dist/esm/ion-text.entry.js +2 -2
- package/dist/esm/ion-textarea.entry.js +2 -2
- package/dist/esm/ion-toast.entry.js +159 -17
- package/dist/esm/ion-toggle.entry.js +4 -7
- package/dist/esm/{ionic-global-246ca78f.js → ionic-global-63a8d8c9.js} +1 -1
- package/dist/esm/ionic.js +6 -6
- package/dist/esm/{ios.transition-04c9a97a.js → ios.transition-6707a3a1.js} +3 -2
- package/dist/esm/loader.js +5 -5
- package/dist/esm/{md.transition-67a8aabd.js → md.transition-957964fd.js} +2 -2
- package/dist/esm/{overlays-2fa52617.js → overlays-753933fc.js} +2 -1
- package/dist/esm/{status-tap-9aeeaca5.js → status-tap-73e982b6.js} +1 -1
- package/dist/esm-es5/app-globals-df292a32.js +4 -0
- package/dist/esm-es5/{button-active-5136c12d.js → button-active-3dd473a1.js} +1 -1
- package/dist/esm-es5/data-44d9e816.js +4 -0
- package/dist/esm-es5/{index-641aeeed.js → index-6e10cd02.js} +1 -1
- package/dist/esm-es5/index-c3e624b7.js +4 -0
- package/dist/esm-es5/index-cb894020.js +5 -0
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
- package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
- package/dist/esm-es5/ion-alert.entry.js +1 -1
- package/dist/esm-es5/ion-app_8.entry.js +1 -1
- package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
- package/dist/esm-es5/ion-back-button.entry.js +1 -1
- package/dist/esm-es5/ion-backdrop.entry.js +1 -1
- package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
- package/dist/esm-es5/ion-button_2.entry.js +1 -1
- package/dist/esm-es5/ion-card_5.entry.js +1 -1
- package/dist/esm-es5/ion-checkbox.entry.js +1 -1
- package/dist/esm-es5/ion-chip.entry.js +1 -1
- package/dist/esm-es5/ion-col_3.entry.js +1 -1
- package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
- package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
- package/dist/esm-es5/ion-fab_3.entry.js +1 -1
- package/dist/esm-es5/ion-img.entry.js +1 -1
- package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
- package/dist/esm-es5/ion-input.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-picker-internal.entry.js +1 -1
- package/dist/esm-es5/ion-popover.entry.js +1 -1
- package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
- package/dist/esm-es5/ion-radio_2.entry.js +1 -1
- package/dist/esm-es5/ion-range.entry.js +1 -1
- package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
- package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
- package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
- package/dist/esm-es5/ion-route_4.entry.js +1 -1
- package/dist/esm-es5/ion-searchbar.entry.js +1 -1
- package/dist/esm-es5/ion-segment_2.entry.js +1 -1
- package/dist/esm-es5/ion-select_3.entry.js +1 -1
- package/dist/esm-es5/ion-spinner.entry.js +1 -1
- package/dist/esm-es5/ion-split-pane.entry.js +1 -1
- package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
- package/dist/esm-es5/ion-tab_2.entry.js +1 -1
- package/dist/esm-es5/ion-text.entry.js +1 -1
- package/dist/esm-es5/ion-textarea.entry.js +1 -1
- package/dist/esm-es5/ion-toast.entry.js +1 -1
- package/dist/esm-es5/ion-toggle.entry.js +1 -1
- package/dist/esm-es5/{ionic-global-246ca78f.js → ionic-global-63a8d8c9.js} +1 -1
- package/dist/esm-es5/ionic.js +1 -1
- package/dist/esm-es5/{ios.transition-04c9a97a.js → ios.transition-6707a3a1.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/{md.transition-67a8aabd.js → md.transition-957964fd.js} +1 -1
- package/dist/esm-es5/{overlays-2fa52617.js → overlays-753933fc.js} +1 -1
- package/dist/esm-es5/{status-tap-9aeeaca5.js → status-tap-73e982b6.js} +1 -1
- package/dist/html.html-data.json +11 -1
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/ionic.js +1 -1
- package/dist/ionic/{p-deb6ddad.entry.js → p-0023e6eb.entry.js} +1 -1
- package/dist/ionic/{p-8e24ebbc.js → p-00cf2d6c.js} +1 -1
- package/dist/ionic/{p-b109a3d7.system.entry.js → p-00f709ca.system.entry.js} +1 -1
- package/dist/ionic/{p-8ee012cb.system.entry.js → p-037e2738.system.entry.js} +1 -1
- package/dist/ionic/{p-914ac0fc.entry.js → p-03f7e3cc.entry.js} +1 -1
- package/dist/ionic/{p-ec9052a4.entry.js → p-0459db58.entry.js} +1 -1
- package/dist/ionic/{p-d7b8d224.entry.js → p-06756f31.entry.js} +1 -1
- package/dist/ionic/p-0779a5c8.system.js +4 -0
- package/dist/ionic/{p-4e6e43c1.entry.js → p-0793ebfd.entry.js} +1 -1
- package/dist/ionic/p-0d198537.js +4 -0
- package/dist/ionic/{p-257cf0b7.entry.js → p-0d3d44e7.entry.js} +1 -1
- package/dist/ionic/p-100ea813.system.entry.js +4 -0
- package/dist/ionic/{p-576e6d0f.system.entry.js → p-10fcb3a3.system.entry.js} +1 -1
- package/dist/ionic/{p-5403baaa.system.entry.js → p-14fd96a2.system.entry.js} +1 -1
- package/dist/ionic/p-17240d90.js +4 -0
- package/dist/ionic/p-1d9b39f3.js +4 -0
- package/dist/ionic/{p-629aa3fd.system.js → p-26fbffd4.system.js} +1 -1
- package/dist/ionic/{p-a7eec917.entry.js → p-2acea831.entry.js} +1 -1
- package/dist/ionic/p-2b47b2ce.entry.js +4 -0
- package/dist/ionic/p-32b5f10e.entry.js +4 -0
- package/dist/ionic/{p-32717950.system.entry.js → p-3634b770.system.entry.js} +1 -1
- package/dist/ionic/{p-2784263e.system.entry.js → p-37fc0d22.system.entry.js} +1 -1
- package/dist/ionic/{p-fcf47f80.entry.js → p-3bf7c0dc.entry.js} +1 -1
- package/dist/ionic/{p-1f81b5be.entry.js → p-3db27dec.entry.js} +1 -1
- package/dist/ionic/{p-818b2e75.entry.js → p-3dce88bf.entry.js} +1 -1
- package/dist/ionic/{p-38ccfd71.system.entry.js → p-3e6b0330.system.entry.js} +1 -1
- package/dist/ionic/{p-6ac3e877.system.entry.js → p-416d7f8d.system.entry.js} +1 -1
- package/dist/ionic/{p-048f1ebe.entry.js → p-44fa0a61.entry.js} +1 -1
- package/dist/ionic/{p-35818410.entry.js → p-4555335a.entry.js} +1 -1
- package/dist/ionic/p-469d6a98.entry.js +4 -0
- package/dist/ionic/{p-1d0aa82f.system.entry.js → p-48159bfc.system.entry.js} +1 -1
- package/dist/ionic/{p-fccfe602.entry.js → p-4c20879c.entry.js} +1 -1
- package/dist/ionic/{p-b61a2fa0.system.entry.js → p-4e76e29a.system.entry.js} +1 -1
- package/dist/ionic/p-50125c8c.js +4 -0
- package/dist/ionic/{p-a04bfada.entry.js → p-50d83224.entry.js} +1 -1
- package/dist/ionic/p-520789c2.js +4 -0
- package/dist/ionic/{p-b3c68723.system.js → p-534a1cbc.system.js} +1 -1
- package/dist/ionic/{p-c4a5de01.entry.js → p-57743e20.entry.js} +1 -1
- package/dist/ionic/{p-0d74acfb.system.entry.js → p-5b5311f6.system.entry.js} +1 -1
- package/dist/ionic/{p-c49672d8.system.js → p-5c24c115.system.js} +1 -1
- package/dist/ionic/{p-d55c9f92.system.entry.js → p-5cafe439.system.entry.js} +1 -1
- package/dist/ionic/{p-f623aa6d.entry.js → p-60dee335.entry.js} +1 -1
- package/dist/ionic/p-68b405cc.entry.js +4 -0
- package/dist/ionic/{p-5b32b053.entry.js → p-6a3c14d1.entry.js} +1 -1
- package/dist/ionic/{p-4d6ac0fe.system.entry.js → p-6a92db9d.system.entry.js} +1 -1
- package/dist/ionic/{p-6129af0a.system.entry.js → p-6c7d61b9.system.entry.js} +1 -1
- package/dist/ionic/p-6cfcb294.system.js +4 -0
- package/dist/ionic/{p-3a58e3a4.system.entry.js → p-6f3099b6.system.entry.js} +1 -1
- package/dist/ionic/{p-5efb899f.entry.js → p-70441a5b.entry.js} +1 -1
- package/dist/ionic/p-73eba881.system.js +4 -0
- package/dist/ionic/{p-c7428627.system.entry.js → p-7520e873.system.entry.js} +1 -1
- package/dist/ionic/{p-108f9d49.entry.js → p-7887ac7a.entry.js} +1 -1
- package/dist/ionic/{p-76378400.js → p-7a590a28.js} +1 -1
- package/dist/ionic/{p-d35217be.entry.js → p-7b15d413.entry.js} +1 -1
- package/dist/ionic/{p-6ba7fad7.system.js → p-82c72668.system.js} +1 -1
- package/dist/ionic/{p-cf0c93e3.system.entry.js → p-84549737.system.entry.js} +1 -1
- package/dist/ionic/{p-9173418c.system.entry.js → p-88a1a4fe.system.entry.js} +1 -1
- package/dist/ionic/{p-170e9de0.system.entry.js → p-8957b1de.system.entry.js} +1 -1
- package/dist/ionic/{p-03c381ec.system.entry.js → p-89e3d112.system.entry.js} +1 -1
- package/dist/ionic/{p-181b7c2a.js → p-8a289322.js} +1 -1
- package/dist/ionic/{p-29073efe.system.entry.js → p-8f36cde3.system.entry.js} +1 -1
- package/dist/ionic/{p-df5fe0be.system.js → p-90012797.system.js} +1 -1
- package/dist/ionic/p-903c36fe.js +5 -0
- package/dist/ionic/{p-1ecba429.entry.js → p-9201a4d3.entry.js} +1 -1
- package/dist/ionic/{p-6ea2e653.entry.js → p-92d72ad8.entry.js} +1 -1
- package/dist/ionic/{p-9b4a77fc.system.entry.js → p-9736406a.system.entry.js} +1 -1
- package/dist/ionic/{p-3f3da911.system.entry.js → p-9a6f6789.system.entry.js} +1 -1
- package/dist/ionic/{p-d89d0de0.entry.js → p-9b796813.entry.js} +1 -1
- package/dist/ionic/{p-02a4e81a.js → p-9dbc208c.js} +1 -1
- package/dist/ionic/{p-eab10949.system.entry.js → p-9e91c83f.system.entry.js} +1 -1
- package/dist/ionic/{p-939e0fa1.system.js → p-9f9efb31.system.js} +1 -1
- package/dist/ionic/{p-c48fc95d.system.entry.js → p-a157df46.system.entry.js} +1 -1
- package/dist/ionic/p-a4ce3b06.system.entry.js +4 -0
- package/dist/ionic/{p-6fb80ef3.system.entry.js → p-a60cff26.system.entry.js} +1 -1
- package/dist/ionic/{p-f588e951.entry.js → p-a7361c85.entry.js} +1 -1
- package/dist/ionic/{p-e1ac688a.entry.js → p-a99e7e72.entry.js} +1 -1
- package/dist/ionic/{p-6f8a95a3.system.entry.js → p-a9b13f18.system.entry.js} +1 -1
- package/dist/ionic/p-aae05032.entry.js +4 -0
- package/dist/ionic/{p-54f6cd27.system.entry.js → p-abfd1f2e.system.entry.js} +1 -1
- package/dist/ionic/{p-eac263dd.entry.js → p-ac32f6ce.entry.js} +1 -1
- package/dist/ionic/{p-5cd791b3.system.entry.js → p-ae57449e.system.entry.js} +1 -1
- package/dist/ionic/{p-f960fd84.system.entry.js → p-ae8121f5.system.entry.js} +1 -1
- package/dist/ionic/{p-c3efbcf5.system.js → p-b25a96b7.system.js} +1 -1
- package/dist/ionic/{p-55d3a9b2.entry.js → p-b27772bf.entry.js} +1 -1
- package/dist/ionic/{p-706a0391.entry.js → p-b4c0e9ee.entry.js} +1 -1
- package/dist/ionic/{p-8a2801f1.system.entry.js → p-b4daca17.system.entry.js} +1 -1
- package/dist/ionic/{p-35eb1d95.entry.js → p-b4f14d9e.entry.js} +1 -1
- package/dist/ionic/{p-5b976d70.entry.js → p-b79eb3cd.entry.js} +1 -1
- package/dist/ionic/{p-04e7c8fd.entry.js → p-b7ac706d.entry.js} +1 -1
- package/dist/ionic/p-b8c3f071.system.js +4 -0
- package/dist/ionic/{p-839276d4.entry.js → p-b9e2aede.entry.js} +1 -1
- package/dist/ionic/{p-4b8db805.entry.js → p-bc7420cc.entry.js} +1 -1
- package/dist/ionic/{p-33a8349a.system.entry.js → p-c09e1da9.system.entry.js} +1 -1
- package/dist/ionic/{p-3c2c6fce.entry.js → p-c0c794dd.entry.js} +1 -1
- package/dist/ionic/{p-96ba8eac.entry.js → p-ca655a7c.entry.js} +1 -1
- package/dist/ionic/{p-117cd69f.system.entry.js → p-ccdd595c.system.entry.js} +1 -1
- package/dist/ionic/p-d0d59328.entry.js +4 -0
- package/dist/ionic/p-d1df86ff.entry.js +4 -0
- package/dist/ionic/{p-e2fd0895.entry.js → p-d2a278b1.entry.js} +1 -1
- package/dist/ionic/{p-908720f3.system.entry.js → p-d8eeabae.system.entry.js} +1 -1
- package/dist/ionic/{p-e0f52215.system.entry.js → p-d90f0779.system.entry.js} +1 -1
- package/dist/ionic/{p-164b0e76.entry.js → p-da024961.entry.js} +1 -1
- package/dist/ionic/{p-238f0ac5.system.entry.js → p-db8b267a.system.entry.js} +1 -1
- package/dist/ionic/{p-99dfa53f.system.entry.js → p-dcfea01f.system.entry.js} +1 -1
- package/dist/ionic/{p-51269f3b.system.js → p-e0f66356.system.js} +1 -1
- package/dist/ionic/{p-1289b3b5.system.entry.js → p-e263255c.system.entry.js} +1 -1
- package/dist/ionic/{p-95b14c73.system.entry.js → p-e6d2cca2.system.entry.js} +1 -1
- package/dist/ionic/p-ec25d547.system.js +4 -0
- package/dist/ionic/{p-4bb26b01.system.entry.js → p-ec451ef7.system.entry.js} +1 -1
- package/dist/ionic/{p-63505fbb.js → p-ee8881d0.js} +1 -1
- package/dist/ionic/{p-64e20cd9.entry.js → p-ef4408d6.entry.js} +1 -1
- package/dist/ionic/{p-45f5c8ba.system.entry.js → p-efd574eb.system.entry.js} +1 -1
- package/dist/ionic/{p-beb864e4.system.entry.js → p-f37d6823.system.entry.js} +1 -1
- package/dist/ionic/{p-72aea40e.system.entry.js → p-f48af9da.system.entry.js} +1 -1
- package/dist/ionic/{p-db1a1e00.entry.js → p-fa06c407.entry.js} +1 -1
- package/dist/ionic/{p-b3690814.system.entry.js → p-fbc7995a.system.entry.js} +1 -1
- package/dist/node_modules/ionicons/dist/collection/components/icon/icon.css +46 -4
- package/dist/types/components/datetime/datetime-interface.d.ts +1 -0
- package/dist/types/components/datetime/datetime.d.ts +2 -2
- package/dist/types/components/datetime/utils/data.d.ts +3 -3
- package/dist/types/components/datetime/utils/format.d.ts +3 -3
- package/dist/types/components/datetime/utils/helpers.d.ts +15 -1
- package/dist/types/components/menu/menu-interface.d.ts +0 -1
- package/dist/types/components/toast/animations/ios.enter.d.ts +2 -1
- package/dist/types/components/toast/animations/ios.leave.d.ts +2 -2
- package/dist/types/components/toast/animations/md.enter.d.ts +2 -1
- package/dist/types/components/toast/animations/utils.d.ts +18 -0
- package/dist/types/components/toast/toast-interface.d.ts +11 -0
- package/dist/types/components/toast/toast.d.ts +21 -1
- package/dist/types/components.d.ts +16 -8
- package/dist/types/index.d.ts +1 -0
- package/dist/types/utils/menu-controller/index.d.ts +1 -2
- package/hydrate/index.js +359 -158
- package/package.json +6 -7
- package/dist/collection/components/select/test/disabled/select.e2e.js +0 -30
- package/dist/esm-es5/app-globals-ec816a70.js +0 -4
- package/dist/esm-es5/data-009dbf15.js +0 -4
- package/dist/esm-es5/index-b49b173c.js +0 -5
- package/dist/esm-es5/index-d78b533e.js +0 -4
- package/dist/ionic/p-05ae600a.system.js +0 -4
- package/dist/ionic/p-06ac429a.js +0 -5
- package/dist/ionic/p-0c37546b.system.entry.js +0 -4
- package/dist/ionic/p-13d6e57a.js +0 -4
- package/dist/ionic/p-1c82e9ff.js +0 -4
- package/dist/ionic/p-29e3a9bb.entry.js +0 -4
- package/dist/ionic/p-32d364f0.entry.js +0 -4
- package/dist/ionic/p-37448ac1.entry.js +0 -4
- package/dist/ionic/p-44ef7224.system.js +0 -4
- package/dist/ionic/p-4dd96c8d.entry.js +0 -4
- package/dist/ionic/p-5bc5008c.entry.js +0 -4
- package/dist/ionic/p-5c3e72a8.system.js +0 -4
- package/dist/ionic/p-5c651aab.system.entry.js +0 -4
- package/dist/ionic/p-5ece7025.system.js +0 -4
- package/dist/ionic/p-65a5761f.js +0 -4
- package/dist/ionic/p-73ed9a91.js +0 -4
- package/dist/ionic/p-7cfd253c.js +0 -4
- package/dist/ionic/p-8297652e.entry.js +0 -4
- package/dist/ionic/p-a18ec02b.entry.js +0 -4
- package/dist/ionic/p-fbcb157b.system.js +0 -4
- /package/dist/esm-es5/{haptic-6447af60.js → haptic-1243b917.js} +0 -0
- /package/dist/esm-es5/{index-ecfc2c9f.js → index-504b03f0.js} +0 -0
- /package/dist/ionic/{p-0a87858b.js → p-15bae383.js} +0 -0
- /package/dist/ionic/{p-8985b268.system.js → p-3f919368.system.js} +0 -0
- /package/dist/ionic/{p-14d7b7e2.system.js → p-b4b4bb29.system.js} +0 -0
- /package/dist/ionic/{p-bb6f38ed.js → p-b923f3d7.js} +0 -0
package/hydrate/index.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
7
7
|
|
|
8
8
|
/*!
|
|
9
|
-
Stencil Mock Doc v4.4.
|
|
9
|
+
Stencil Mock Doc v4.4.0 | MIT Licensed | https://stenciljs.com
|
|
10
10
|
*/
|
|
11
11
|
const CONTENT_REF_ID = 'r';
|
|
12
12
|
const ORG_LOCATION_ID = 'o';
|
|
@@ -5594,42 +5594,36 @@ const createElm = (e, t, o, n) => {
|
|
|
5594
5594
|
isSvgMode && "svg" === l && (isSvgMode = !1));
|
|
5595
5595
|
}, updateFallbackSlotVisibility = e => {
|
|
5596
5596
|
const t = e.childNodes;
|
|
5597
|
-
|
|
5598
|
-
|
|
5599
|
-
|
|
5600
|
-
|
|
5601
|
-
|
|
5602
|
-
|
|
5603
|
-
e.hidden = !0;
|
|
5604
|
-
break;
|
|
5605
|
-
}
|
|
5606
|
-
} else if (1 === n.nodeType || 3 === n.nodeType && "" !== n.textContent.trim()) {
|
|
5607
|
-
e.hidden = !0;
|
|
5597
|
+
let o, n, s, l, a, r;
|
|
5598
|
+
for (n = 0, s = t.length; n < s; n++) if (o = t[n], 1 === o.nodeType) {
|
|
5599
|
+
if (o["s-sr"]) for (a = o["s-sn"], o.hidden = !1, l = 0; l < s; l++) if (r = t[l].nodeType,
|
|
5600
|
+
t[l]["s-hn"] !== o["s-hn"] || "" !== a) {
|
|
5601
|
+
if (1 === r && a === t[l].getAttribute("slot")) {
|
|
5602
|
+
o.hidden = !0;
|
|
5608
5603
|
break;
|
|
5609
5604
|
}
|
|
5605
|
+
} else if (1 === r || 3 === r && "" !== t[l].textContent.trim()) {
|
|
5606
|
+
o.hidden = !0;
|
|
5607
|
+
break;
|
|
5610
5608
|
}
|
|
5611
|
-
updateFallbackSlotVisibility(
|
|
5609
|
+
updateFallbackSlotVisibility(o);
|
|
5612
5610
|
}
|
|
5613
|
-
}, relocateNodes = [],
|
|
5614
|
-
let t, o, n;
|
|
5615
|
-
|
|
5616
|
-
|
|
5617
|
-
|
|
5618
|
-
|
|
5619
|
-
|
|
5620
|
-
|
|
5621
|
-
|
|
5622
|
-
|
|
5623
|
-
|
|
5624
|
-
|
|
5625
|
-
|
|
5626
|
-
|
|
5627
|
-
|
|
5628
|
-
|
|
5629
|
-
$nodeToRelocate$: t
|
|
5630
|
-
});
|
|
5631
|
-
}
|
|
5632
|
-
1 === s.nodeType && markSlotContentForRelocation(s);
|
|
5611
|
+
}, relocateNodes = [], relocateSlotContent = e => {
|
|
5612
|
+
let t, o, n, s, l, a, r = 0;
|
|
5613
|
+
const i = e.childNodes, d = i.length;
|
|
5614
|
+
for (;r < d; r++) {
|
|
5615
|
+
if (t = i[r], t["s-sr"] && (o = t["s-cr"]) && o.parentNode) for (n = o.parentNode.childNodes,
|
|
5616
|
+
s = t["s-sn"], a = n.length - 1; a >= 0; a--) o = n[a], o["s-cn"] || o["s-nr"] || o["s-hn"] === t["s-hn"] || (isNodeLocatedInSlot(o, s) ? (l = relocateNodes.find((e => e.$nodeToRelocate$ === o)),
|
|
5617
|
+
checkSlotFallbackVisibility = !0, o["s-sn"] = o["s-sn"] || s, l ? l.$slotRefNode$ = t : relocateNodes.push({
|
|
5618
|
+
$slotRefNode$: t,
|
|
5619
|
+
$nodeToRelocate$: o
|
|
5620
|
+
}), o["s-sr"] && relocateNodes.map((e => {
|
|
5621
|
+
isNodeLocatedInSlot(e.$nodeToRelocate$, o["s-sn"]) && (l = relocateNodes.find((e => e.$nodeToRelocate$ === o)),
|
|
5622
|
+
l && !e.$slotRefNode$ && (e.$slotRefNode$ = l.$slotRefNode$));
|
|
5623
|
+
}))) : relocateNodes.some((e => e.$nodeToRelocate$ === o)) || relocateNodes.push({
|
|
5624
|
+
$nodeToRelocate$: o
|
|
5625
|
+
}));
|
|
5626
|
+
1 === t.nodeType && relocateSlotContent(t);
|
|
5633
5627
|
}
|
|
5634
5628
|
}, isNodeLocatedInSlot = (e, t) => 1 === e.nodeType ? null === e.getAttribute("slot") && "" === t || e.getAttribute("slot") === t : e["s-sn"] === t || "" === t, nullifyVNodeRefs = e => {
|
|
5635
5629
|
(e.$attrs$ && e.$attrs$.ref && e.$attrs$.ref(null), e.$children$ && e.$children$.map(nullifyVNodeRefs));
|
|
@@ -5644,7 +5638,7 @@ const createElm = (e, t, o, n) => {
|
|
|
5644
5638
|
BUILD.slotRelocation) {
|
|
5645
5639
|
if (plt.$flags$ |= 1, checkSlotRelocate) {
|
|
5646
5640
|
let e, t, o, n, s, l;
|
|
5647
|
-
|
|
5641
|
+
relocateSlotContent(a.$elm$);
|
|
5648
5642
|
let r = 0;
|
|
5649
5643
|
for (;r < relocateNodes.length; r++) e = relocateNodes[r], t = e.$nodeToRelocate$,
|
|
5650
5644
|
t["s-ol"] || (o = originalLocationDebugNode(t) ,
|
|
@@ -5710,9 +5704,9 @@ const callRender = (e, t, o, n) => {
|
|
|
5710
5704
|
BUILD.isDev ), 64 & e.$flags$ ? ((safeCall$1(s, "componentDidUpdate"),
|
|
5711
5705
|
BUILD.isDev ), n()) : (e.$flags$ |= 64, addHydratedFlag(o),
|
|
5712
5706
|
(safeCall$1(s, "componentDidLoad"),
|
|
5713
|
-
BUILD.isDev ), n(), (e.$onReadyResolve$(o), l || appDidLoad())), e.$onInstanceResolve$(o),
|
|
5714
|
-
|
|
5715
|
-
|
|
5707
|
+
BUILD.isDev ), n(), (e.$onReadyResolve$(o), l || appDidLoad())), e.$onInstanceResolve$(o), (e.$onRenderResolve$ && (e.$onRenderResolve$(),
|
|
5708
|
+
e.$onRenderResolve$ = void 0), 512 & e.$flags$ && nextTick((() => scheduleUpdate(e, !1))),
|
|
5709
|
+
e.$flags$ &= -517);
|
|
5716
5710
|
}, forceUpdate$1 = e => {
|
|
5717
5711
|
return !1;
|
|
5718
5712
|
}, appDidLoad = e => {
|
|
@@ -5802,11 +5796,10 @@ const callRender = (e, t, o, n) => {
|
|
|
5802
5796
|
}
|
|
5803
5797
|
}
|
|
5804
5798
|
return e;
|
|
5805
|
-
}, initializeComponent = async (e, t, o, n) => {
|
|
5806
|
-
let s;
|
|
5799
|
+
}, initializeComponent = async (e, t, o, n, s) => {
|
|
5807
5800
|
if (0 == (32 & t.$flags$)) {
|
|
5808
5801
|
if (t.$flags$ |= 32, BUILD.lazyLoad ) {
|
|
5809
|
-
if (s = loadModule(o)
|
|
5802
|
+
if ((s = loadModule(o)).then) {
|
|
5810
5803
|
const e = (() => {});
|
|
5811
5804
|
s = await s, e();
|
|
5812
5805
|
}
|
|
@@ -6428,7 +6421,7 @@ const shallowEqualStringMap = (map1, map2) => {
|
|
|
6428
6421
|
return true;
|
|
6429
6422
|
};
|
|
6430
6423
|
|
|
6431
|
-
/* Ionicons v7.1.
|
|
6424
|
+
/* Ionicons v7.1.2, ES Modules */
|
|
6432
6425
|
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>";
|
|
6433
6426
|
const arrowDown = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M112 268l144 144 144-144M256 392V100' class='ionicon-fill-none'/></svg>";
|
|
6434
6427
|
const caretBackSharp = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><path d='M368 64L144 256l224 192V64z'/></svg>";
|
|
@@ -7156,6 +7149,7 @@ const HapticEngine = {
|
|
|
7156
7149
|
* if the browser does not support the Vibrate API.
|
|
7157
7150
|
*/
|
|
7158
7151
|
if ((capacitor === null || capacitor === void 0 ? void 0 : capacitor.getPlatform()) === 'web') {
|
|
7152
|
+
// eslint-disable-next-line @typescript-eslint/prefer-optional-chain
|
|
7159
7153
|
return typeof navigator !== 'undefined' && navigator.vibrate !== undefined;
|
|
7160
7154
|
}
|
|
7161
7155
|
return true;
|
|
@@ -8225,6 +8219,7 @@ const setOverlayId = (el) => {
|
|
|
8225
8219
|
return el.id;
|
|
8226
8220
|
};
|
|
8227
8221
|
const createOverlay = (tagName, opts) => {
|
|
8222
|
+
// eslint-disable-next-line @typescript-eslint/prefer-optional-chain
|
|
8228
8223
|
if (typeof window !== 'undefined' && typeof window.customElements !== 'undefined') {
|
|
8229
8224
|
return window.customElements.whenDefined(tagName).then(() => {
|
|
8230
8225
|
const element = document.createElement(tagName);
|
|
@@ -10553,6 +10548,14 @@ class Alert {
|
|
|
10553
10548
|
}
|
|
10554
10549
|
onKeydown(ev) {
|
|
10555
10550
|
const inputTypes = new Set(this.processedInputs.map((i) => i.type));
|
|
10551
|
+
/**
|
|
10552
|
+
* Based on keyboard navigation requirements, the
|
|
10553
|
+
* checkbox should not respond to the enter keydown event.
|
|
10554
|
+
*/
|
|
10555
|
+
if (inputTypes.has('checkbox') && ev.key === 'Enter') {
|
|
10556
|
+
ev.preventDefault();
|
|
10557
|
+
return;
|
|
10558
|
+
}
|
|
10556
10559
|
// The only inputs we want to navigate between using arrow keys are the radios
|
|
10557
10560
|
// ignore the keydown event if it is not on a radio button
|
|
10558
10561
|
if (!inputTypes.has('radio') ||
|
|
@@ -12192,9 +12195,6 @@ class Checkbox {
|
|
|
12192
12195
|
this.ionBlur.emit();
|
|
12193
12196
|
};
|
|
12194
12197
|
this.onClick = (ev) => {
|
|
12195
|
-
if (this.disabled) {
|
|
12196
|
-
return;
|
|
12197
|
-
}
|
|
12198
12198
|
this.toggleChecked(ev);
|
|
12199
12199
|
};
|
|
12200
12200
|
this.color = undefined;
|
|
@@ -13082,13 +13082,19 @@ const warnIfValueOutOfBounds = (value, min, max) => {
|
|
|
13082
13082
|
const isLeapYear = (year) => {
|
|
13083
13083
|
return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
|
|
13084
13084
|
};
|
|
13085
|
-
|
|
13085
|
+
/**
|
|
13086
|
+
* Determines the hour cycle for a user.
|
|
13087
|
+
* If the hour cycle is explicitly defined, just use that.
|
|
13088
|
+
* Otherwise, we try to derive it from either the specified
|
|
13089
|
+
* locale extension tags or from Intl.DateTimeFormat directly.
|
|
13090
|
+
*/
|
|
13091
|
+
const getHourCycle = (locale, hourCycle) => {
|
|
13086
13092
|
/**
|
|
13087
|
-
* If developer has explicitly enabled
|
|
13093
|
+
* If developer has explicitly enabled 24-hour time
|
|
13088
13094
|
* then return early and do not look at the system default.
|
|
13089
13095
|
*/
|
|
13090
13096
|
if (hourCycle !== undefined) {
|
|
13091
|
-
return hourCycle
|
|
13097
|
+
return hourCycle;
|
|
13092
13098
|
}
|
|
13093
13099
|
/**
|
|
13094
13100
|
* If hourCycle was not specified, check the locale
|
|
@@ -13099,7 +13105,7 @@ const is24Hour = (locale, hourCycle) => {
|
|
|
13099
13105
|
const formatted = new Intl.DateTimeFormat(locale, { hour: 'numeric' });
|
|
13100
13106
|
const options = formatted.resolvedOptions();
|
|
13101
13107
|
if (options.hourCycle !== undefined) {
|
|
13102
|
-
return options.hourCycle
|
|
13108
|
+
return options.hourCycle;
|
|
13103
13109
|
}
|
|
13104
13110
|
/**
|
|
13105
13111
|
* If hourCycle is not specified (either through lack
|
|
@@ -13112,7 +13118,33 @@ const is24Hour = (locale, hourCycle) => {
|
|
|
13112
13118
|
if (!hour) {
|
|
13113
13119
|
throw new Error('Hour value not found from DateTimeFormat');
|
|
13114
13120
|
}
|
|
13115
|
-
|
|
13121
|
+
/**
|
|
13122
|
+
* Midnight for h11 starts at 0:00am
|
|
13123
|
+
* Midnight for h12 starts at 12:00am
|
|
13124
|
+
* Midnight for h23 starts at 00:00
|
|
13125
|
+
* Midnight for h24 starts at 24:00
|
|
13126
|
+
*/
|
|
13127
|
+
switch (hour.value) {
|
|
13128
|
+
case '0':
|
|
13129
|
+
return 'h11';
|
|
13130
|
+
case '12':
|
|
13131
|
+
return 'h12';
|
|
13132
|
+
case '00':
|
|
13133
|
+
return 'h23';
|
|
13134
|
+
case '24':
|
|
13135
|
+
return 'h24';
|
|
13136
|
+
default:
|
|
13137
|
+
throw new Error(`Invalid hour cycle "${hourCycle}"`);
|
|
13138
|
+
}
|
|
13139
|
+
};
|
|
13140
|
+
/**
|
|
13141
|
+
* Determine if the hour cycle uses a 24-hour format.
|
|
13142
|
+
* Returns true for h23 and h24. Returns false otherwise.
|
|
13143
|
+
* If you don't know the hourCycle, use getHourCycle above
|
|
13144
|
+
* and pass the result into this function.
|
|
13145
|
+
*/
|
|
13146
|
+
const is24Hour = (hourCycle) => {
|
|
13147
|
+
return hourCycle === 'h23' || hourCycle === 'h24';
|
|
13116
13148
|
};
|
|
13117
13149
|
/**
|
|
13118
13150
|
* Given a date object, returns the number
|
|
@@ -13779,7 +13811,7 @@ const getFormattedDayPeriod = (dayPeriod) => {
|
|
|
13779
13811
|
}
|
|
13780
13812
|
return dayPeriod.toUpperCase();
|
|
13781
13813
|
};
|
|
13782
|
-
const getLocalizedTime = (locale, refParts,
|
|
13814
|
+
const getLocalizedTime = (locale, refParts, hourCycle) => {
|
|
13783
13815
|
const timeParts = {
|
|
13784
13816
|
hour: refParts.hour,
|
|
13785
13817
|
minute: refParts.minute,
|
|
@@ -13801,7 +13833,7 @@ const getLocalizedTime = (locale, refParts, use24Hour) => {
|
|
|
13801
13833
|
* We use hourCycle here instead of hour12 due to:
|
|
13802
13834
|
* https://bugs.chromium.org/p/chromium/issues/detail?id=1347316&q=hour12&can=2
|
|
13803
13835
|
*/
|
|
13804
|
-
hourCycle
|
|
13836
|
+
hourCycle,
|
|
13805
13837
|
/**
|
|
13806
13838
|
* Setting Z at the end indicates that this
|
|
13807
13839
|
* date string is in the UTC time zone. This
|
|
@@ -13839,17 +13871,33 @@ const addTimePadding = (value) => {
|
|
|
13839
13871
|
* 12 hour times it ensures that
|
|
13840
13872
|
* hour 0 is formatted as '12'.
|
|
13841
13873
|
*/
|
|
13842
|
-
const getFormattedHour = (hour,
|
|
13843
|
-
if (use24Hour) {
|
|
13844
|
-
return addTimePadding(hour);
|
|
13845
|
-
}
|
|
13874
|
+
const getFormattedHour = (hour, hourCycle) => {
|
|
13846
13875
|
/**
|
|
13847
|
-
*
|
|
13848
|
-
*
|
|
13849
|
-
*
|
|
13876
|
+
* Midnight for h11 starts at 0:00am
|
|
13877
|
+
* Midnight for h12 starts at 12:00am
|
|
13878
|
+
* Midnight for h23 starts at 00:00
|
|
13879
|
+
* Midnight for h24 starts at 24:00
|
|
13850
13880
|
*/
|
|
13851
13881
|
if (hour === 0) {
|
|
13852
|
-
|
|
13882
|
+
switch (hourCycle) {
|
|
13883
|
+
case 'h11':
|
|
13884
|
+
return '0';
|
|
13885
|
+
case 'h12':
|
|
13886
|
+
return '12';
|
|
13887
|
+
case 'h23':
|
|
13888
|
+
return '00';
|
|
13889
|
+
case 'h24':
|
|
13890
|
+
return '24';
|
|
13891
|
+
default:
|
|
13892
|
+
throw new Error(`Invalid hour cycle "${hourCycle}"`);
|
|
13893
|
+
}
|
|
13894
|
+
}
|
|
13895
|
+
const use24Hour = is24Hour(hourCycle);
|
|
13896
|
+
/**
|
|
13897
|
+
* h23 and h24 use 24 hour times.
|
|
13898
|
+
*/
|
|
13899
|
+
if (use24Hour) {
|
|
13900
|
+
return addTimePadding(hour);
|
|
13853
13901
|
}
|
|
13854
13902
|
return hour.toString();
|
|
13855
13903
|
};
|
|
@@ -14084,8 +14132,14 @@ const minutes = [
|
|
|
14084
14132
|
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
|
|
14085
14133
|
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
|
|
14086
14134
|
];
|
|
14135
|
+
// h11 hour system uses 0-11. Midnight starts at 0:00am.
|
|
14136
|
+
const hour11 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
|
|
14137
|
+
// h12 hour system uses 0-12. Midnight starts at 12:00am.
|
|
14087
14138
|
const hour12 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
|
|
14139
|
+
// h23 hour system uses 0-23. Midnight starts at 0:00.
|
|
14088
14140
|
const hour23 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23];
|
|
14141
|
+
// h24 hour system uses 1-24. Midnight starts at 24:00.
|
|
14142
|
+
const hour24 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0];
|
|
14089
14143
|
/**
|
|
14090
14144
|
* Given a locale and a mode,
|
|
14091
14145
|
* return an array with formatted days
|
|
@@ -14154,14 +14208,33 @@ const getDaysOfMonth = (month, year, firstDayOfWeek) => {
|
|
|
14154
14208
|
}
|
|
14155
14209
|
return days;
|
|
14156
14210
|
};
|
|
14211
|
+
/**
|
|
14212
|
+
* Returns an array of pre-defined hour
|
|
14213
|
+
* values based on the provided hourCycle.
|
|
14214
|
+
*/
|
|
14215
|
+
const getHourData = (hourCycle) => {
|
|
14216
|
+
switch (hourCycle) {
|
|
14217
|
+
case 'h11':
|
|
14218
|
+
return hour11;
|
|
14219
|
+
case 'h12':
|
|
14220
|
+
return hour12;
|
|
14221
|
+
case 'h23':
|
|
14222
|
+
return hour23;
|
|
14223
|
+
case 'h24':
|
|
14224
|
+
return hour24;
|
|
14225
|
+
default:
|
|
14226
|
+
throw new Error(`Invalid hour cycle "${hourCycle}"`);
|
|
14227
|
+
}
|
|
14228
|
+
};
|
|
14157
14229
|
/**
|
|
14158
14230
|
* Given a local, reference datetime parts and option
|
|
14159
14231
|
* max/min bound datetime parts, calculate the acceptable
|
|
14160
14232
|
* hour and minute values according to the bounds and locale.
|
|
14161
14233
|
*/
|
|
14162
|
-
const generateTime = (refParts, hourCycle = 'h12', minParts, maxParts, hourValues, minuteValues) => {
|
|
14163
|
-
const
|
|
14164
|
-
|
|
14234
|
+
const generateTime = (locale, refParts, hourCycle = 'h12', minParts, maxParts, hourValues, minuteValues) => {
|
|
14235
|
+
const computedHourCycle = getHourCycle(locale, hourCycle);
|
|
14236
|
+
const use24Hour = is24Hour(computedHourCycle);
|
|
14237
|
+
let processedHours = getHourData(computedHourCycle);
|
|
14165
14238
|
let processedMinutes = minutes;
|
|
14166
14239
|
let isAMAllowed = true;
|
|
14167
14240
|
let isPMAllowed = true;
|
|
@@ -14493,11 +14566,12 @@ const getCombinedDateColumnData = (locale, todayParts, minParts, maxParts, dayVa
|
|
|
14493
14566
|
};
|
|
14494
14567
|
};
|
|
14495
14568
|
const getTimeColumnsData = (locale, refParts, hourCycle, minParts, maxParts, allowedHourValues, allowedMinuteValues) => {
|
|
14496
|
-
const
|
|
14497
|
-
const
|
|
14569
|
+
const computedHourCycle = getHourCycle(locale, hourCycle);
|
|
14570
|
+
const use24Hour = is24Hour(computedHourCycle);
|
|
14571
|
+
const { hours, minutes, am, pm } = generateTime(locale, refParts, computedHourCycle, minParts, maxParts, allowedHourValues, allowedMinuteValues);
|
|
14498
14572
|
const hoursItems = hours.map((hour) => {
|
|
14499
14573
|
return {
|
|
14500
|
-
text: getFormattedHour(hour,
|
|
14574
|
+
text: getFormattedHour(hour, computedHourCycle),
|
|
14501
14575
|
value: getInternalHourValue(hour, use24Hour, refParts.ampm),
|
|
14502
14576
|
};
|
|
14503
14577
|
});
|
|
@@ -16060,7 +16134,7 @@ class Datetime {
|
|
|
16060
16134
|
}
|
|
16061
16135
|
renderTimeOverlay() {
|
|
16062
16136
|
const { hourCycle, isTimePopoverOpen, locale } = this;
|
|
16063
|
-
const
|
|
16137
|
+
const computedHourCycle = getHourCycle(locale, hourCycle);
|
|
16064
16138
|
const activePart = this.getActivePartsWithFallback();
|
|
16065
16139
|
return [
|
|
16066
16140
|
hAsync("div", { class: "time-header" }, this.renderTimeLabel()),
|
|
@@ -16079,7 +16153,7 @@ class Datetime {
|
|
|
16079
16153
|
await popoverRef.onWillDismiss();
|
|
16080
16154
|
this.isTimePopoverOpen = false;
|
|
16081
16155
|
}
|
|
16082
|
-
} }, getLocalizedTime(locale, activePart,
|
|
16156
|
+
} }, getLocalizedTime(locale, activePart, computedHourCycle)),
|
|
16083
16157
|
hAsync("ion-popover", { alignment: "center", translucent: true, overlayIndex: 1, arrow: false, onWillPresent: (ev) => {
|
|
16084
16158
|
/**
|
|
16085
16159
|
* Intersection Observers do not consistently fire between Blink and Webkit
|
|
@@ -16344,13 +16418,13 @@ class DatetimeButton {
|
|
|
16344
16418
|
* warning in the console.
|
|
16345
16419
|
*/
|
|
16346
16420
|
const firstParsedDatetime = parsedDatetimes[0];
|
|
16347
|
-
const
|
|
16421
|
+
const computedHourCycle = getHourCycle(locale, hourCycle);
|
|
16348
16422
|
this.dateText = this.timeText = undefined;
|
|
16349
16423
|
switch (datetimePresentation) {
|
|
16350
16424
|
case 'date-time':
|
|
16351
16425
|
case 'time-date':
|
|
16352
16426
|
const dateText = getMonthDayAndYear(locale, firstParsedDatetime);
|
|
16353
|
-
const timeText = getLocalizedTime(locale, firstParsedDatetime,
|
|
16427
|
+
const timeText = getLocalizedTime(locale, firstParsedDatetime, computedHourCycle);
|
|
16354
16428
|
if (preferWheel) {
|
|
16355
16429
|
this.dateText = `${dateText} ${timeText}`;
|
|
16356
16430
|
}
|
|
@@ -16377,7 +16451,7 @@ class DatetimeButton {
|
|
|
16377
16451
|
}
|
|
16378
16452
|
break;
|
|
16379
16453
|
case 'time':
|
|
16380
|
-
this.timeText = getLocalizedTime(locale, firstParsedDatetime,
|
|
16454
|
+
this.timeText = getLocalizedTime(locale, firstParsedDatetime, computedHourCycle);
|
|
16381
16455
|
break;
|
|
16382
16456
|
case 'month-year':
|
|
16383
16457
|
this.dateText = getMonthAndYear(locale, firstParsedDatetime);
|
|
@@ -17766,7 +17840,7 @@ const isRTL = (hostEl) => {
|
|
|
17766
17840
|
return (document === null || document === void 0 ? void 0 : document.dir.toLowerCase()) === 'rtl';
|
|
17767
17841
|
};
|
|
17768
17842
|
|
|
17769
|
-
const iconCss = "/*!@:host*/.sc-ion-icon-h{display:inline-block;width:1em;height:1em;contain:strict;fill:currentColor;-webkit-box-sizing:content-box !important;box-sizing:content-box !important}/*!@:host .ionicon*/.sc-ion-icon-h .ionicon.sc-ion-icon{stroke:currentColor}/*!@.ionicon-fill-none*/.ionicon-fill-none.sc-ion-icon{fill:none}/*!@.ionicon-stroke-width*/.ionicon-stroke-width.sc-ion-icon{stroke-width:32px;stroke-width:var(--ionicon-stroke-width, 32px)}/*!@.icon-inner,\n.ionicon,\nsvg*/.icon-inner.sc-ion-icon,.ionicon.sc-ion-icon,svg.sc-ion-icon{display:block;height:100%;width:100%}/*!@:host(.flip-rtl) .icon-inner*/.flip-rtl.sc-ion-icon-h .icon-inner.sc-ion-icon{-webkit-transform:scaleX(-1);transform:scaleX(-1)}/*!@:host(.icon-small)*/.icon-small.sc-ion-icon-h{font-size:18px !important}/*!@:host(.icon-large)*/.icon-large.sc-ion-icon-h{font-size:32px !important}/*!@:host(.ion-color)*/.ion-color.sc-ion-icon-h{color:var(--ion-color-base) !important}/*!@:host(.ion-color-primary)*/.ion-color-primary.sc-ion-icon-h{--ion-color-base:var(--ion-color-primary, #3880ff)}/*!@:host(.ion-color-secondary)*/.ion-color-secondary.sc-ion-icon-h{--ion-color-base:var(--ion-color-secondary, #0cd1e8)}/*!@:host(.ion-color-tertiary)*/.ion-color-tertiary.sc-ion-icon-h{--ion-color-base:var(--ion-color-tertiary, #f4a942)}/*!@:host(.ion-color-success)*/.ion-color-success.sc-ion-icon-h{--ion-color-base:var(--ion-color-success, #10dc60)}/*!@:host(.ion-color-warning)*/.ion-color-warning.sc-ion-icon-h{--ion-color-base:var(--ion-color-warning, #ffce00)}/*!@:host(.ion-color-danger)*/.ion-color-danger.sc-ion-icon-h{--ion-color-base:var(--ion-color-danger, #f14141)}/*!@:host(.ion-color-light)*/.ion-color-light.sc-ion-icon-h{--ion-color-base:var(--ion-color-light, #f4f5f8)}/*!@:host(.ion-color-medium)*/.ion-color-medium.sc-ion-icon-h{--ion-color-base:var(--ion-color-medium, #989aa2)}/*!@:host(.ion-color-dark)*/.ion-color-dark.sc-ion-icon-h{--ion-color-base:var(--ion-color-dark, #222428)}";
|
|
17843
|
+
const iconCss = "/*!@:host*/.sc-ion-icon-h{display:inline-block;width:1em;height:1em;contain:strict;fill:currentColor;-webkit-box-sizing:content-box !important;box-sizing:content-box !important}/*!@:host .ionicon*/.sc-ion-icon-h .ionicon.sc-ion-icon{stroke:currentColor}/*!@.ionicon-fill-none*/.ionicon-fill-none.sc-ion-icon{fill:none}/*!@.ionicon-stroke-width*/.ionicon-stroke-width.sc-ion-icon{stroke-width:32px;stroke-width:var(--ionicon-stroke-width, 32px)}/*!@.icon-inner,\n.ionicon,\nsvg*/.icon-inner.sc-ion-icon,.ionicon.sc-ion-icon,svg.sc-ion-icon{display:block;height:100%;width:100%}@supports (background: -webkit-named-image(i)){/*!@:host(.icon-rtl) .icon-inner*/.icon-rtl.sc-ion-icon-h .icon-inner.sc-ion-icon{-webkit-transform:scaleX(-1);transform:scaleX(-1)}}@supports not selector(:dir(rtl)) and selector(:host-context([dir='rtl'])){/*!@:host(.icon-rtl) .icon-inner*/.icon-rtl.sc-ion-icon-h .icon-inner.sc-ion-icon{-webkit-transform:scaleX(-1);transform:scaleX(-1)}}/*!@:host(.flip-rtl):host-context([dir='rtl']) .icon-inner*/.flip-rtl.sc-ion-icon-h -no-combinator[dir='rtl'].sc-ion-icon-h .icon-inner.sc-ion-icon,[dir='rtl'] .sc-ion-icon-h .icon-inner.sc-ion-icon{-webkit-transform:scaleX(-1);transform:scaleX(-1)}@supports selector(:dir(rtl)){/*!@:host(.flip-rtl:dir(rtl)) .icon-inner*/.flip-rtl.sc-ion-icon-h:dir(rtl) .icon-inner.sc-ion-icon{-webkit-transform:scaleX(-1);transform:scaleX(-1)}/*!@:host(.flip-rtl:dir(ltr)) .icon-inner*/.flip-rtl.sc-ion-icon-h:dir(ltr) .icon-inner.sc-ion-icon{-webkit-transform:scaleX(1);transform:scaleX(1)}}/*!@:host(.icon-small)*/.icon-small.sc-ion-icon-h{font-size:18px !important}/*!@:host(.icon-large)*/.icon-large.sc-ion-icon-h{font-size:32px !important}/*!@:host(.ion-color)*/.ion-color.sc-ion-icon-h{color:var(--ion-color-base) !important}/*!@:host(.ion-color-primary)*/.ion-color-primary.sc-ion-icon-h{--ion-color-base:var(--ion-color-primary, #3880ff)}/*!@:host(.ion-color-secondary)*/.ion-color-secondary.sc-ion-icon-h{--ion-color-base:var(--ion-color-secondary, #0cd1e8)}/*!@:host(.ion-color-tertiary)*/.ion-color-tertiary.sc-ion-icon-h{--ion-color-base:var(--ion-color-tertiary, #f4a942)}/*!@:host(.ion-color-success)*/.ion-color-success.sc-ion-icon-h{--ion-color-base:var(--ion-color-success, #10dc60)}/*!@:host(.ion-color-warning)*/.ion-color-warning.sc-ion-icon-h{--ion-color-base:var(--ion-color-warning, #ffce00)}/*!@:host(.ion-color-danger)*/.ion-color-danger.sc-ion-icon-h{--ion-color-base:var(--ion-color-danger, #f14141)}/*!@:host(.ion-color-light)*/.ion-color-light.sc-ion-icon-h{--ion-color-base:var(--ion-color-light, #f4f5f8)}/*!@:host(.ion-color-medium)*/.ion-color-medium.sc-ion-icon-h{--ion-color-base:var(--ion-color-medium, #989aa2)}/*!@:host(.ion-color-dark)*/.ion-color-dark.sc-ion-icon-h{--ion-color-base:var(--ion-color-dark, #222428)}";
|
|
17770
17844
|
|
|
17771
17845
|
class Icon {
|
|
17772
17846
|
constructor(hostRef) {
|
|
@@ -17820,11 +17894,15 @@ class Icon {
|
|
|
17820
17894
|
this.iconName = getName(this.name, this.icon, this.mode, this.ios, this.md);
|
|
17821
17895
|
}
|
|
17822
17896
|
render() {
|
|
17823
|
-
const {
|
|
17897
|
+
const { flipRtl, iconName, inheritedAttributes, el } = this;
|
|
17824
17898
|
const mode = this.mode || 'md';
|
|
17825
|
-
|
|
17826
|
-
|
|
17827
|
-
|
|
17899
|
+
// we have designated that arrows & chevrons should automatically flip (unless flip-rtl is set to false) because "back" is left in ltr and right in rtl, and "forward" is the opposite
|
|
17900
|
+
const shouldAutoFlip = iconName
|
|
17901
|
+
? (iconName.includes('arrow') || iconName.includes('chevron')) && flipRtl !== false
|
|
17902
|
+
: false;
|
|
17903
|
+
// if shouldBeFlippable is true, the icon should change direction when `dir` changes
|
|
17904
|
+
const shouldBeFlippable = flipRtl || shouldAutoFlip;
|
|
17905
|
+
return (hAsync(Host, Object.assign({ role: "img", class: Object.assign(Object.assign({ [mode]: true }, createColorClasses(this.color)), { [`icon-${this.size}`]: !!this.size, 'flip-rtl': shouldBeFlippable, 'icon-rtl': shouldBeFlippable && isRTL(el) }) }, inheritedAttributes), (hAsync("div", { class: "icon-inner" }))));
|
|
17828
17906
|
}
|
|
17829
17907
|
static get assetsDirs() { return ["svg"]; }
|
|
17830
17908
|
get el() { return getElement(this); }
|
|
@@ -20427,21 +20505,21 @@ const createMenuController = () => {
|
|
|
20427
20505
|
const menuAnimations = new Map();
|
|
20428
20506
|
const menus = [];
|
|
20429
20507
|
const open = async (menu) => {
|
|
20430
|
-
const menuEl = await get(menu);
|
|
20508
|
+
const menuEl = await get(menu, true);
|
|
20431
20509
|
if (menuEl) {
|
|
20432
20510
|
return menuEl.open();
|
|
20433
20511
|
}
|
|
20434
20512
|
return false;
|
|
20435
20513
|
};
|
|
20436
20514
|
const close = async (menu) => {
|
|
20437
|
-
const menuEl = await (menu !== undefined ? get(menu) : getOpen());
|
|
20515
|
+
const menuEl = await (menu !== undefined ? get(menu, true) : getOpen());
|
|
20438
20516
|
if (menuEl !== undefined) {
|
|
20439
20517
|
return menuEl.close();
|
|
20440
20518
|
}
|
|
20441
20519
|
return false;
|
|
20442
20520
|
};
|
|
20443
20521
|
const toggle = async (menu) => {
|
|
20444
|
-
const menuEl = await get(menu);
|
|
20522
|
+
const menuEl = await get(menu, true);
|
|
20445
20523
|
if (menuEl) {
|
|
20446
20524
|
return menuEl.toggle();
|
|
20447
20525
|
}
|
|
@@ -20479,18 +20557,35 @@ const createMenuController = () => {
|
|
|
20479
20557
|
}
|
|
20480
20558
|
return false;
|
|
20481
20559
|
};
|
|
20482
|
-
|
|
20560
|
+
/**
|
|
20561
|
+
* Finds and returns the menu specified by "menu" if registered.
|
|
20562
|
+
* @param menu - The side or ID of the desired menu
|
|
20563
|
+
* @param logOnMultipleSideMenus - If true, this function will log a warning
|
|
20564
|
+
* if "menu" is a side but multiple menus on the same side were found. Since this function
|
|
20565
|
+
* is used in multiple places, we default this log to false so that the calling
|
|
20566
|
+
* functions can choose whether or not it is appropriate to log this warning.
|
|
20567
|
+
*/
|
|
20568
|
+
const get = async (menu, logOnMultipleSideMenus = false) => {
|
|
20483
20569
|
await waitUntilReady();
|
|
20484
20570
|
if (menu === 'start' || menu === 'end') {
|
|
20485
20571
|
// there could be more than one menu on the same side
|
|
20486
20572
|
// so first try to get the enabled one
|
|
20487
|
-
const
|
|
20488
|
-
if (
|
|
20489
|
-
|
|
20573
|
+
const menuRefs = menus.filter((m) => m.side === menu && !m.disabled);
|
|
20574
|
+
if (menuRefs.length >= 1) {
|
|
20575
|
+
if (menuRefs.length > 1 && logOnMultipleSideMenus) {
|
|
20576
|
+
printIonWarning(`menuController queried for a menu on the "${menu}" side, but ${menuRefs.length} menus were found. The first menu reference will be used. If this is not the behavior you want then pass the ID of the menu instead of its side.`, menuRefs.map((m) => m.el));
|
|
20577
|
+
}
|
|
20578
|
+
return menuRefs[0].el;
|
|
20490
20579
|
}
|
|
20491
20580
|
// didn't find a menu side that is enabled
|
|
20492
20581
|
// so try to get the first menu side found
|
|
20493
|
-
|
|
20582
|
+
const sideMenuRefs = menus.filter((m) => m.side === menu);
|
|
20583
|
+
if (sideMenuRefs.length >= 1) {
|
|
20584
|
+
if (sideMenuRefs.length > 1 && logOnMultipleSideMenus) {
|
|
20585
|
+
printIonWarning(`menuController queried for a menu on the "${menu}" side, but ${sideMenuRefs.length} menus were found. The first menu reference will be used. If this is not the behavior you want then pass the ID of the menu instead of its side.`, sideMenuRefs.map((m) => m.el));
|
|
20586
|
+
}
|
|
20587
|
+
return sideMenuRefs[0].el;
|
|
20588
|
+
}
|
|
20494
20589
|
}
|
|
20495
20590
|
else if (menu != null) {
|
|
20496
20591
|
// the menuId was not left or right
|
|
@@ -20532,9 +20627,6 @@ const createMenuController = () => {
|
|
|
20532
20627
|
};
|
|
20533
20628
|
const _register = (menu) => {
|
|
20534
20629
|
if (menus.indexOf(menu) < 0) {
|
|
20535
|
-
if (!menu.disabled) {
|
|
20536
|
-
_setActiveMenu(menu);
|
|
20537
|
-
}
|
|
20538
20630
|
menus.push(menu);
|
|
20539
20631
|
}
|
|
20540
20632
|
};
|
|
@@ -20544,13 +20636,6 @@ const createMenuController = () => {
|
|
|
20544
20636
|
menus.splice(index, 1);
|
|
20545
20637
|
}
|
|
20546
20638
|
};
|
|
20547
|
-
const _setActiveMenu = (menu) => {
|
|
20548
|
-
// if this menu should be enabled
|
|
20549
|
-
// then find all the other menus on this same side
|
|
20550
|
-
// and automatically disable other same side menus
|
|
20551
|
-
const side = menu.side;
|
|
20552
|
-
menus.filter((m) => m.side === side && m !== menu).forEach((m) => (m.disabled = true));
|
|
20553
|
-
};
|
|
20554
20639
|
const _setOpen = async (menu, shouldOpen, animated) => {
|
|
20555
20640
|
if (isAnimatingSync()) {
|
|
20556
20641
|
return false;
|
|
@@ -20622,7 +20707,6 @@ const createMenuController = () => {
|
|
|
20622
20707
|
_register,
|
|
20623
20708
|
_unregister,
|
|
20624
20709
|
_setOpen,
|
|
20625
|
-
_setActiveMenu,
|
|
20626
20710
|
};
|
|
20627
20711
|
};
|
|
20628
20712
|
const menuController = /*@__PURE__*/ createMenuController();
|
|
@@ -21178,17 +21262,6 @@ class Menu {
|
|
|
21178
21262
|
*/
|
|
21179
21263
|
this.afterAnimation(false);
|
|
21180
21264
|
}
|
|
21181
|
-
if (doc === null || doc === void 0 ? void 0 : doc.contains(this.el)) {
|
|
21182
|
-
/**
|
|
21183
|
-
* Only set the active menu if the menu element is
|
|
21184
|
-
* present in the DOM. Otherwise if it was destructively
|
|
21185
|
-
* re-hydrated (through Angular Universal), then ignore
|
|
21186
|
-
* setting the removed node as the active menu.
|
|
21187
|
-
*/
|
|
21188
|
-
if (!this.disabled) {
|
|
21189
|
-
menuController._setActiveMenu(this);
|
|
21190
|
-
}
|
|
21191
|
-
}
|
|
21192
21265
|
}
|
|
21193
21266
|
render() {
|
|
21194
21267
|
const { type, disabled, isPaneVisible, inheritedAttributes, side } = this;
|
|
@@ -23992,6 +24065,7 @@ class Nav {
|
|
|
23992
24065
|
: undefined;
|
|
23993
24066
|
const mode = getIonMode$1(this);
|
|
23994
24067
|
const enteringEl = enteringView.element;
|
|
24068
|
+
// eslint-disable-next-line @typescript-eslint/prefer-optional-chain
|
|
23995
24069
|
const leavingEl = leavingView && leavingView.element;
|
|
23996
24070
|
const animationOpts = Object.assign(Object.assign({ mode, showGoBack: this.canGoBackSync(enteringView), baseEl: this.el, progressCallback, animated: this.animated && config.getBoolean('animated', true), enteringEl,
|
|
23997
24071
|
leavingEl }, opts), { animationBuilder: opts.animationBuilder || this.animation || config.get('navAnimation') });
|
|
@@ -27202,10 +27276,7 @@ class Radio {
|
|
|
27202
27276
|
}
|
|
27203
27277
|
};
|
|
27204
27278
|
this.onClick = () => {
|
|
27205
|
-
const { radioGroup, checked
|
|
27206
|
-
if (disabled) {
|
|
27207
|
-
return;
|
|
27208
|
-
}
|
|
27279
|
+
const { radioGroup, checked } = this;
|
|
27209
27280
|
/**
|
|
27210
27281
|
* The legacy control uses a native input inside
|
|
27211
27282
|
* of the radio host, so we can set this.checked
|
|
@@ -27426,7 +27497,7 @@ class RadioGroup {
|
|
|
27426
27497
|
* using the `name` attribute.
|
|
27427
27498
|
*/
|
|
27428
27499
|
const selectedRadio = ev.target && ev.target.closest('ion-radio');
|
|
27429
|
-
if (selectedRadio
|
|
27500
|
+
if (selectedRadio) {
|
|
27430
27501
|
const currentValue = this.value;
|
|
27431
27502
|
const newValue = selectedRadio.value;
|
|
27432
27503
|
if (newValue !== currentValue) {
|
|
@@ -29753,6 +29824,7 @@ const chainToSegments = (chain) => {
|
|
|
29753
29824
|
for (const route of chain) {
|
|
29754
29825
|
for (const segment of route.segments) {
|
|
29755
29826
|
if (segment[0] === ':') {
|
|
29827
|
+
// eslint-disable-next-line @typescript-eslint/prefer-optional-chain
|
|
29756
29828
|
const param = route.params && route.params[segment.slice(1)];
|
|
29757
29829
|
if (!param) {
|
|
29758
29830
|
return null;
|
|
@@ -30448,12 +30520,14 @@ class Router {
|
|
|
30448
30520
|
}
|
|
30449
30521
|
const routes = readRoutes(this.el);
|
|
30450
30522
|
const fromChain = findChainForSegments(from, routes);
|
|
30523
|
+
// eslint-disable-next-line @typescript-eslint/prefer-optional-chain
|
|
30451
30524
|
const beforeLeaveHook = fromChain && fromChain[fromChain.length - 1].beforeLeave;
|
|
30452
30525
|
const canLeave = beforeLeaveHook ? await beforeLeaveHook() : true;
|
|
30453
30526
|
if (canLeave === false || typeof canLeave === 'object') {
|
|
30454
30527
|
return canLeave;
|
|
30455
30528
|
}
|
|
30456
30529
|
const toChain = findChainForSegments(to, routes);
|
|
30530
|
+
// eslint-disable-next-line @typescript-eslint/prefer-optional-chain
|
|
30457
30531
|
const beforeEnterHook = toChain && toChain[toChain.length - 1].beforeEnter;
|
|
30458
30532
|
return beforeEnterHook ? beforeEnterHook() : true;
|
|
30459
30533
|
}
|
|
@@ -31850,39 +31924,25 @@ class Select {
|
|
|
31850
31924
|
await overlay.present();
|
|
31851
31925
|
// focus selected option for popovers
|
|
31852
31926
|
if (this.interface === 'popover') {
|
|
31853
|
-
|
|
31854
|
-
|
|
31855
|
-
|
|
31856
|
-
|
|
31857
|
-
|
|
31858
|
-
/**
|
|
31859
|
-
* Browsers such as Firefox do not
|
|
31860
|
-
* correctly delegate focus when manually
|
|
31861
|
-
* focusing an element with delegatesFocus.
|
|
31862
|
-
* We work around this by manually focusing
|
|
31863
|
-
* the interactive element.
|
|
31864
|
-
* ion-radio and ion-checkbox are the only
|
|
31865
|
-
* elements that ion-select-popover uses, so
|
|
31866
|
-
* we only need to worry about those two components
|
|
31867
|
-
* when focusing.
|
|
31868
|
-
*/
|
|
31869
|
-
const interactiveEl = selectedItem.querySelector('ion-radio, ion-checkbox');
|
|
31870
|
-
if (interactiveEl) {
|
|
31871
|
-
interactiveEl.focus();
|
|
31872
|
-
}
|
|
31873
|
-
}
|
|
31874
|
-
}
|
|
31875
|
-
else {
|
|
31927
|
+
let indexOfSelected = this.childOpts.map((o) => o.value).indexOf(this.value);
|
|
31928
|
+
indexOfSelected = indexOfSelected > -1 ? indexOfSelected : 0; // default to first option if nothing selected
|
|
31929
|
+
const selectedItem = overlay.querySelector(`.select-interface-option:nth-child(${indexOfSelected + 1})`);
|
|
31930
|
+
if (selectedItem) {
|
|
31931
|
+
focusElement(selectedItem);
|
|
31876
31932
|
/**
|
|
31877
|
-
*
|
|
31933
|
+
* Browsers such as Firefox do not
|
|
31934
|
+
* correctly delegate focus when manually
|
|
31935
|
+
* focusing an element with delegatesFocus.
|
|
31936
|
+
* We work around this by manually focusing
|
|
31937
|
+
* the interactive element.
|
|
31938
|
+
* ion-radio and ion-checkbox are the only
|
|
31939
|
+
* elements that ion-select-popover uses, so
|
|
31940
|
+
* we only need to worry about those two components
|
|
31941
|
+
* when focusing.
|
|
31878
31942
|
*/
|
|
31879
|
-
const
|
|
31880
|
-
if (
|
|
31881
|
-
|
|
31882
|
-
/**
|
|
31883
|
-
* Focus the option for the same reason as we do above.
|
|
31884
|
-
*/
|
|
31885
|
-
firstEnabledOption.focus();
|
|
31943
|
+
const interactiveEl = selectedItem.querySelector('ion-radio, ion-checkbox');
|
|
31944
|
+
if (interactiveEl) {
|
|
31945
|
+
interactiveEl.focus();
|
|
31886
31946
|
}
|
|
31887
31947
|
}
|
|
31888
31948
|
}
|
|
@@ -32353,7 +32413,7 @@ Developers can use the "legacy" property to continue using the legacy form marku
|
|
|
32353
32413
|
}
|
|
32354
32414
|
renderListbox() {
|
|
32355
32415
|
const { disabled, inputId, isExpanded } = this;
|
|
32356
|
-
return (hAsync("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "
|
|
32416
|
+
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) }));
|
|
32357
32417
|
}
|
|
32358
32418
|
render() {
|
|
32359
32419
|
const { legacyFormController } = this;
|
|
@@ -33695,13 +33755,12 @@ class Thumbnail {
|
|
|
33695
33755
|
/**
|
|
33696
33756
|
* iOS Toast Enter Animation
|
|
33697
33757
|
*/
|
|
33698
|
-
const iosEnterAnimation = (baseEl,
|
|
33758
|
+
const iosEnterAnimation = (baseEl, opts) => {
|
|
33699
33759
|
const baseAnimation = createAnimation();
|
|
33700
33760
|
const wrapperAnimation = createAnimation();
|
|
33761
|
+
const { position, top, bottom } = opts;
|
|
33701
33762
|
const root = getElementRoot(baseEl);
|
|
33702
33763
|
const wrapperEl = root.querySelector('.toast-wrapper');
|
|
33703
|
-
const bottom = `calc(-10px - var(--ion-safe-area-bottom, 0px))`;
|
|
33704
|
-
const top = `calc(10px + var(--ion-safe-area-top, 0px))`;
|
|
33705
33764
|
wrapperAnimation.addElement(wrapperEl);
|
|
33706
33765
|
switch (position) {
|
|
33707
33766
|
case 'top':
|
|
@@ -33722,13 +33781,12 @@ const iosEnterAnimation = (baseEl, position) => {
|
|
|
33722
33781
|
/**
|
|
33723
33782
|
* iOS Toast Leave Animation
|
|
33724
33783
|
*/
|
|
33725
|
-
const iosLeaveAnimation = (baseEl,
|
|
33784
|
+
const iosLeaveAnimation = (baseEl, opts) => {
|
|
33726
33785
|
const baseAnimation = createAnimation();
|
|
33727
33786
|
const wrapperAnimation = createAnimation();
|
|
33787
|
+
const { position, top, bottom } = opts;
|
|
33728
33788
|
const root = getElementRoot(baseEl);
|
|
33729
33789
|
const wrapperEl = root.querySelector('.toast-wrapper');
|
|
33730
|
-
const bottom = `calc(-10px - var(--ion-safe-area-bottom, 0px))`;
|
|
33731
|
-
const top = `calc(10px + var(--ion-safe-area-top, 0px))`;
|
|
33732
33790
|
wrapperAnimation.addElement(wrapperEl);
|
|
33733
33791
|
switch (position) {
|
|
33734
33792
|
case 'top':
|
|
@@ -33747,13 +33805,12 @@ const iosLeaveAnimation = (baseEl, position) => {
|
|
|
33747
33805
|
/**
|
|
33748
33806
|
* MD Toast Enter Animation
|
|
33749
33807
|
*/
|
|
33750
|
-
const mdEnterAnimation = (baseEl,
|
|
33808
|
+
const mdEnterAnimation = (baseEl, opts) => {
|
|
33751
33809
|
const baseAnimation = createAnimation();
|
|
33752
33810
|
const wrapperAnimation = createAnimation();
|
|
33811
|
+
const { position, top, bottom } = opts;
|
|
33753
33812
|
const root = getElementRoot(baseEl);
|
|
33754
33813
|
const wrapperEl = root.querySelector('.toast-wrapper');
|
|
33755
|
-
const bottom = `calc(8px + var(--ion-safe-area-bottom, 0px))`;
|
|
33756
|
-
const top = `calc(8px + var(--ion-safe-area-top, 0px))`;
|
|
33757
33814
|
wrapperAnimation.addElement(wrapperEl);
|
|
33758
33815
|
switch (position) {
|
|
33759
33816
|
case 'top':
|
|
@@ -33785,6 +33842,87 @@ const mdLeaveAnimation = (baseEl) => {
|
|
|
33785
33842
|
return baseAnimation.easing('cubic-bezier(.36,.66,.04,1)').duration(300).addAnimation(wrapperAnimation);
|
|
33786
33843
|
};
|
|
33787
33844
|
|
|
33845
|
+
/**
|
|
33846
|
+
* Calculate the CSS top and bottom position of the toast, to be used
|
|
33847
|
+
* as starting points for the animation keyframes.
|
|
33848
|
+
*
|
|
33849
|
+
* Note that MD animates bottom-positioned toasts using style.bottom,
|
|
33850
|
+
* which calculates from the bottom edge of the screen, while iOS uses
|
|
33851
|
+
* translateY, which calculates from the top edge of the screen. This
|
|
33852
|
+
* is why the bottom calculates differ slightly between modes.
|
|
33853
|
+
*
|
|
33854
|
+
* @param position The value of the toast's position prop.
|
|
33855
|
+
* @param positionAnchor The element the toast should be anchored to,
|
|
33856
|
+
* if applicable.
|
|
33857
|
+
* @param mode The toast component's mode (md, ios, etc).
|
|
33858
|
+
* @param toast A reference to the toast element itself.
|
|
33859
|
+
*/
|
|
33860
|
+
function getAnimationPosition(position, positionAnchor, mode, toast) {
|
|
33861
|
+
/**
|
|
33862
|
+
* Start with a predefined offset from the edge the toast will be
|
|
33863
|
+
* positioned relative to, whether on the screen or anchor element.
|
|
33864
|
+
*/
|
|
33865
|
+
let offset;
|
|
33866
|
+
if (mode === 'md') {
|
|
33867
|
+
offset = 8;
|
|
33868
|
+
}
|
|
33869
|
+
else {
|
|
33870
|
+
offset = position === 'top' ? 10 : -10;
|
|
33871
|
+
}
|
|
33872
|
+
/**
|
|
33873
|
+
* If positionAnchor is defined, add in the distance from the target
|
|
33874
|
+
* screen edge to the target anchor edge. For position="top", the
|
|
33875
|
+
* bottom anchor edge is targeted. For position="bottom", the top
|
|
33876
|
+
* anchor edge is targeted.
|
|
33877
|
+
*/
|
|
33878
|
+
if (positionAnchor && win$1) {
|
|
33879
|
+
warnIfAnchorIsHidden(positionAnchor, toast);
|
|
33880
|
+
const box = positionAnchor.getBoundingClientRect();
|
|
33881
|
+
if (position === 'top') {
|
|
33882
|
+
offset += box.bottom;
|
|
33883
|
+
}
|
|
33884
|
+
else if (position === 'bottom') {
|
|
33885
|
+
/**
|
|
33886
|
+
* Just box.top is the distance from the top edge of the screen
|
|
33887
|
+
* to the top edge of the anchor. We want to calculate from the
|
|
33888
|
+
* bottom edge of the screen instead.
|
|
33889
|
+
*/
|
|
33890
|
+
if (mode === 'md') {
|
|
33891
|
+
offset += win$1.innerHeight - box.top;
|
|
33892
|
+
}
|
|
33893
|
+
else {
|
|
33894
|
+
offset -= win$1.innerHeight - box.top;
|
|
33895
|
+
}
|
|
33896
|
+
}
|
|
33897
|
+
/**
|
|
33898
|
+
* We don't include safe area here because that should already be
|
|
33899
|
+
* accounted for when checking the position of the anchor.
|
|
33900
|
+
*/
|
|
33901
|
+
return {
|
|
33902
|
+
top: `${offset}px`,
|
|
33903
|
+
bottom: `${offset}px`,
|
|
33904
|
+
};
|
|
33905
|
+
}
|
|
33906
|
+
else {
|
|
33907
|
+
return {
|
|
33908
|
+
top: `calc(${offset}px + var(--ion-safe-area-top, 0px))`,
|
|
33909
|
+
bottom: mode === 'md'
|
|
33910
|
+
? `calc(${offset}px + var(--ion-safe-area-bottom, 0px))`
|
|
33911
|
+
: `calc(${offset}px - var(--ion-safe-area-bottom, 0px))`,
|
|
33912
|
+
};
|
|
33913
|
+
}
|
|
33914
|
+
}
|
|
33915
|
+
/**
|
|
33916
|
+
* If the anchor element is hidden, getBoundingClientRect()
|
|
33917
|
+
* will return all 0s for it, which can cause unexpected
|
|
33918
|
+
* results in the position calculation when animating.
|
|
33919
|
+
*/
|
|
33920
|
+
function warnIfAnchorIsHidden(positionAnchor, toast) {
|
|
33921
|
+
if (positionAnchor.offsetParent === null) {
|
|
33922
|
+
printIonWarning('The positionAnchor element for ion-toast was found in the DOM, but appears to be hidden. This may lead to unexpected positioning of the toast.', toast);
|
|
33923
|
+
}
|
|
33924
|
+
}
|
|
33925
|
+
|
|
33788
33926
|
const toastIosCss = "/*!@:host*/.sc-ion-toast-ios-h{--border-width:0;--border-style:none;--border-color:initial;--box-shadow:none;--min-width:auto;--width:auto;--min-height:auto;--height:auto;--max-height:auto;--white-space:normal;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;color:var(--color);font-family:var(--ion-font-family, inherit);contain:strict;z-index:1001;pointer-events:none}@supports (inset-inline-start: 0){/*!@:host*/.sc-ion-toast-ios-h{inset-inline-start:0}}@supports not (inset-inline-start: 0){/*!@:host*/.sc-ion-toast-ios-h{left:0}/*!@:host-context([dir=rtl])*/[dir=rtl].sc-ion-toast-ios-h,[dir=rtl] .sc-ion-toast-ios-h{left:unset;right:unset;right:0}/*!@@supports selector(:dir(rtl))*/@supports .sc-ion-toast-ios selector(.sc-ion-toast-ios:dir(rtl)){.sc-ion-toast-ios-h:dir(rtl){left:unset;right:unset;right:0}}}/*!@:host(.overlay-hidden)*/.overlay-hidden.sc-ion-toast-ios-h{display:none}/*!@:host(.ion-color)*/.ion-color.sc-ion-toast-ios-h{--button-color:inherit;color:var(--ion-color-contrast)}/*!@:host(.ion-color) .toast-button-cancel*/.ion-color.sc-ion-toast-ios-h .toast-button-cancel.sc-ion-toast-ios{color:inherit}/*!@:host(.ion-color) .toast-wrapper*/.ion-color.sc-ion-toast-ios-h .toast-wrapper.sc-ion-toast-ios{background:var(--ion-color-base)}/*!@.toast-wrapper*/.toast-wrapper.sc-ion-toast-ios{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)}@supports (inset-inline-start: 0){/*!@.toast-wrapper*/.toast-wrapper.sc-ion-toast-ios{inset-inline-start:var(--start);inset-inline-end:var(--end)}}@supports not (inset-inline-start: 0){/*!@.toast-wrapper*/.toast-wrapper.sc-ion-toast-ios{left:var(--start);right:var(--end)}/*!@:host-context([dir=rtl]) .toast-wrapper*/[dir=rtl].sc-ion-toast-ios-h .toast-wrapper.sc-ion-toast-ios,[dir=rtl] .sc-ion-toast-ios-h .toast-wrapper.sc-ion-toast-ios{left:unset;right:unset;left:var(--end);right:var(--start)}/*!@[dir=rtl] .toast-wrapper*/[dir=rtl].sc-ion-toast-ios .toast-wrapper.sc-ion-toast-ios{left:unset;right:unset;left:var(--end);right:var(--start)}/*!@@supports selector(:dir(rtl))*/@supports .sc-ion-toast-ios selector(.sc-ion-toast-ios:dir(rtl)){.toast-wrapper:dir(rtl){left:unset;right:unset;left:var(--end);right:var(--start)}}}/*!@.toast-container*/.toast-container.sc-ion-toast-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;pointer-events:auto;height:inherit;min-height:inherit;max-height:inherit;contain:content}/*!@.toast-layout-stacked .toast-container*/.toast-layout-stacked.sc-ion-toast-ios .toast-container.sc-ion-toast-ios{-ms-flex-wrap:wrap;flex-wrap:wrap}/*!@.toast-layout-baseline .toast-content*/.toast-layout-baseline.sc-ion-toast-ios .toast-content.sc-ion-toast-ios{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center}/*!@.toast-icon*/.toast-icon.sc-ion-toast-ios{-webkit-margin-start:16px;margin-inline-start:16px}/*!@.toast-message*/.toast-message.sc-ion-toast-ios{-ms-flex:1;flex:1;white-space:var(--white-space)}/*!@.toast-button-group*/.toast-button-group.sc-ion-toast-ios{display:-ms-flexbox;display:flex}/*!@.toast-layout-stacked .toast-button-group*/.toast-layout-stacked.sc-ion-toast-ios .toast-button-group.sc-ion-toast-ios{-ms-flex-pack:end;justify-content:end;width:100%}/*!@.toast-button*/.toast-button.sc-ion-toast-ios{border:0;outline:none;color:var(--button-color);z-index:0}/*!@.toast-icon,\n.toast-button-icon*/.toast-icon.sc-ion-toast-ios,.toast-button-icon.sc-ion-toast-ios{font-size:1.4em}/*!@.toast-button-inner*/.toast-button-inner.sc-ion-toast-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}@media (any-hover: hover){/*!@.toast-button:hover*/.toast-button.sc-ion-toast-ios:hover{cursor:pointer}}/*!@:host*/.sc-ion-toast-ios-h{--background:var(--ion-color-step-50, #f2f2f2);--border-radius:14px;--button-color:var(--ion-color-primary, #3880ff);--color:var(--ion-color-step-850, #262626);--max-width:700px;--start:10px;--end:10px;font-size:14px}/*!@.toast-wrapper*/.toast-wrapper.sc-ion-toast-ios{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:auto;margin-bottom:auto;display:block;position:absolute;z-index:10}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){/*!@:host(.toast-translucent) .toast-wrapper*/.toast-translucent.sc-ion-toast-ios-h .toast-wrapper.sc-ion-toast-ios{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}/*!@:host(.ion-color.toast-translucent) .toast-wrapper*/.ion-color.toast-translucent.sc-ion-toast-ios-h .toast-wrapper.sc-ion-toast-ios{background:rgba(var(--ion-color-base-rgb), 0.8)}}/*!@.toast-wrapper.toast-top*/.toast-wrapper.toast-top.sc-ion-toast-ios{-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0);top:0}/*!@.toast-wrapper.toast-middle*/.toast-wrapper.toast-middle.sc-ion-toast-ios{opacity:0.01}/*!@.toast-wrapper.toast-bottom*/.toast-wrapper.toast-bottom.sc-ion-toast-ios{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);bottom:0}/*!@.toast-content*/.toast-content.sc-ion-toast-ios{-webkit-padding-start:15px;padding-inline-start:15px;-webkit-padding-end:15px;padding-inline-end:15px;padding-top:15px;padding-bottom:15px}/*!@.toast-header*/.toast-header.sc-ion-toast-ios{margin-bottom:2px;font-weight:500}/*!@.toast-button*/.toast-button.sc-ion-toast-ios{-webkit-padding-start:15px;padding-inline-start:15px;-webkit-padding-end:15px;padding-inline-end:15px;padding-top:10px;padding-bottom:10px;height:44px;-webkit-transition:background-color, opacity 100ms linear;transition:background-color, opacity 100ms linear;border:0;background-color:transparent;font-family:var(--ion-font-family);font-size:17px;font-weight:500;overflow:hidden}/*!@.toast-button.ion-activated*/.toast-button.ion-activated.sc-ion-toast-ios{opacity:0.4}@media (any-hover: hover){/*!@.toast-button:hover*/.toast-button.sc-ion-toast-ios:hover{opacity:0.6}}";
|
|
33789
33927
|
|
|
33790
33928
|
const toastMdCss = "/*!@:host*/.sc-ion-toast-md-h{--border-width:0;--border-style:none;--border-color:initial;--box-shadow:none;--min-width:auto;--width:auto;--min-height:auto;--height:auto;--max-height:auto;--white-space:normal;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;color:var(--color);font-family:var(--ion-font-family, inherit);contain:strict;z-index:1001;pointer-events:none}@supports (inset-inline-start: 0){/*!@:host*/.sc-ion-toast-md-h{inset-inline-start:0}}@supports not (inset-inline-start: 0){/*!@:host*/.sc-ion-toast-md-h{left:0}/*!@:host-context([dir=rtl])*/[dir=rtl].sc-ion-toast-md-h,[dir=rtl] .sc-ion-toast-md-h{left:unset;right:unset;right:0}/*!@@supports selector(:dir(rtl))*/@supports .sc-ion-toast-md selector(.sc-ion-toast-md:dir(rtl)){.sc-ion-toast-md-h:dir(rtl){left:unset;right:unset;right:0}}}/*!@:host(.overlay-hidden)*/.overlay-hidden.sc-ion-toast-md-h{display:none}/*!@:host(.ion-color)*/.ion-color.sc-ion-toast-md-h{--button-color:inherit;color:var(--ion-color-contrast)}/*!@:host(.ion-color) .toast-button-cancel*/.ion-color.sc-ion-toast-md-h .toast-button-cancel.sc-ion-toast-md{color:inherit}/*!@:host(.ion-color) .toast-wrapper*/.ion-color.sc-ion-toast-md-h .toast-wrapper.sc-ion-toast-md{background:var(--ion-color-base)}/*!@.toast-wrapper*/.toast-wrapper.sc-ion-toast-md{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)}@supports (inset-inline-start: 0){/*!@.toast-wrapper*/.toast-wrapper.sc-ion-toast-md{inset-inline-start:var(--start);inset-inline-end:var(--end)}}@supports not (inset-inline-start: 0){/*!@.toast-wrapper*/.toast-wrapper.sc-ion-toast-md{left:var(--start);right:var(--end)}/*!@:host-context([dir=rtl]) .toast-wrapper*/[dir=rtl].sc-ion-toast-md-h .toast-wrapper.sc-ion-toast-md,[dir=rtl] .sc-ion-toast-md-h .toast-wrapper.sc-ion-toast-md{left:unset;right:unset;left:var(--end);right:var(--start)}/*!@[dir=rtl] .toast-wrapper*/[dir=rtl].sc-ion-toast-md .toast-wrapper.sc-ion-toast-md{left:unset;right:unset;left:var(--end);right:var(--start)}/*!@@supports selector(:dir(rtl))*/@supports .sc-ion-toast-md selector(.sc-ion-toast-md:dir(rtl)){.toast-wrapper:dir(rtl){left:unset;right:unset;left:var(--end);right:var(--start)}}}/*!@.toast-container*/.toast-container.sc-ion-toast-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;pointer-events:auto;height:inherit;min-height:inherit;max-height:inherit;contain:content}/*!@.toast-layout-stacked .toast-container*/.toast-layout-stacked.sc-ion-toast-md .toast-container.sc-ion-toast-md{-ms-flex-wrap:wrap;flex-wrap:wrap}/*!@.toast-layout-baseline .toast-content*/.toast-layout-baseline.sc-ion-toast-md .toast-content.sc-ion-toast-md{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center}/*!@.toast-icon*/.toast-icon.sc-ion-toast-md{-webkit-margin-start:16px;margin-inline-start:16px}/*!@.toast-message*/.toast-message.sc-ion-toast-md{-ms-flex:1;flex:1;white-space:var(--white-space)}/*!@.toast-button-group*/.toast-button-group.sc-ion-toast-md{display:-ms-flexbox;display:flex}/*!@.toast-layout-stacked .toast-button-group*/.toast-layout-stacked.sc-ion-toast-md .toast-button-group.sc-ion-toast-md{-ms-flex-pack:end;justify-content:end;width:100%}/*!@.toast-button*/.toast-button.sc-ion-toast-md{border:0;outline:none;color:var(--button-color);z-index:0}/*!@.toast-icon,\n.toast-button-icon*/.toast-icon.sc-ion-toast-md,.toast-button-icon.sc-ion-toast-md{font-size:1.4em}/*!@.toast-button-inner*/.toast-button-inner.sc-ion-toast-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}@media (any-hover: hover){/*!@.toast-button:hover*/.toast-button.sc-ion-toast-md:hover{cursor:pointer}}/*!@:host*/.sc-ion-toast-md-h{--background:var(--ion-color-step-800, #333333);--border-radius:4px;--box-shadow:0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12);--button-color:var(--ion-color-primary, #3880ff);--color:var(--ion-color-step-50, #f2f2f2);--max-width:700px;--start:8px;--end:8px;font-size:14px}/*!@.toast-wrapper*/.toast-wrapper.sc-ion-toast-md{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:auto;margin-bottom:auto;display:block;position:absolute;opacity:0.01;z-index:10}/*!@.toast-content*/.toast-content.sc-ion-toast-md{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:14px;padding-bottom:14px}/*!@.toast-header*/.toast-header.sc-ion-toast-md{margin-bottom:2px;font-weight:500;line-height:20px}/*!@.toast-message*/.toast-message.sc-ion-toast-md{line-height:20px}/*!@.toast-layout-baseline .toast-button-group-start*/.toast-layout-baseline.sc-ion-toast-md .toast-button-group-start.sc-ion-toast-md{-webkit-margin-start:8px;margin-inline-start:8px}/*!@.toast-layout-stacked .toast-button-group-start*/.toast-layout-stacked.sc-ion-toast-md .toast-button-group-start.sc-ion-toast-md{-webkit-margin-end:8px;margin-inline-end:8px;margin-top:8px}/*!@.toast-layout-baseline .toast-button-group-end*/.toast-layout-baseline.sc-ion-toast-md .toast-button-group-end.sc-ion-toast-md{-webkit-margin-end:8px;margin-inline-end:8px}/*!@.toast-layout-stacked .toast-button-group-end*/.toast-layout-stacked.sc-ion-toast-md .toast-button-group-end.sc-ion-toast-md{-webkit-margin-end:8px;margin-inline-end:8px;margin-bottom:8px}/*!@.toast-button*/.toast-button.sc-ion-toast-md{-webkit-padding-start:15px;padding-inline-start:15px;-webkit-padding-end:15px;padding-inline-end:15px;padding-top:10px;padding-bottom:10px;position:relative;background-color:transparent;font-family:var(--ion-font-family);font-size:14px;font-weight:500;letter-spacing:0.84px;text-transform:uppercase;overflow:hidden}/*!@.toast-button-cancel*/.toast-button-cancel.sc-ion-toast-md{color:var(--ion-color-step-100, #e6e6e6)}/*!@.toast-button-icon-only*/.toast-button-icon-only.sc-ion-toast-md{border-radius:50%;-webkit-padding-start:9px;padding-inline-start:9px;-webkit-padding-end:9px;padding-inline-end:9px;padding-top:9px;padding-bottom:9px;width:36px;height:36px}@media (any-hover: hover){/*!@.toast-button:hover*/.toast-button.sc-ion-toast-md:hover{background-color:rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.08)}/*!@.toast-button-cancel:hover*/.toast-button-cancel.sc-ion-toast-md:hover{background-color:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.08)}}";
|
|
@@ -33837,6 +33975,7 @@ class Toast {
|
|
|
33837
33975
|
this.message = undefined;
|
|
33838
33976
|
this.keyboardClose = false;
|
|
33839
33977
|
this.position = 'bottom';
|
|
33978
|
+
this.positionAnchor = undefined;
|
|
33840
33979
|
this.buttons = undefined;
|
|
33841
33980
|
this.translucent = false;
|
|
33842
33981
|
this.animated = true;
|
|
@@ -33884,7 +34023,19 @@ class Toast {
|
|
|
33884
34023
|
async present() {
|
|
33885
34024
|
const unlock = await this.lockController.lock();
|
|
33886
34025
|
await this.delegateController.attachViewToDom();
|
|
33887
|
-
|
|
34026
|
+
const { el, position } = this;
|
|
34027
|
+
const anchor = this.getAnchorElement();
|
|
34028
|
+
const animationPosition = getAnimationPosition(position, anchor, getIonMode$1(this), el);
|
|
34029
|
+
/**
|
|
34030
|
+
* Cache the calculated position of the toast, so we can re-use it
|
|
34031
|
+
* in the dismiss animation.
|
|
34032
|
+
*/
|
|
34033
|
+
this.lastPresentedPosition = animationPosition;
|
|
34034
|
+
await present(this, 'toastEnter', iosEnterAnimation, mdEnterAnimation, {
|
|
34035
|
+
position,
|
|
34036
|
+
top: animationPosition.top,
|
|
34037
|
+
bottom: animationPosition.bottom,
|
|
34038
|
+
});
|
|
33888
34039
|
/**
|
|
33889
34040
|
* Content is revealed to screen readers after
|
|
33890
34041
|
* the transition to avoid jank since this
|
|
@@ -33906,15 +34057,28 @@ class Toast {
|
|
|
33906
34057
|
* Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
|
|
33907
34058
|
*/
|
|
33908
34059
|
async dismiss(data, role) {
|
|
34060
|
+
var _a, _b;
|
|
33909
34061
|
const unlock = await this.lockController.lock();
|
|
33910
|
-
|
|
33911
|
-
|
|
34062
|
+
const { durationTimeout, position, lastPresentedPosition } = this;
|
|
34063
|
+
if (durationTimeout) {
|
|
34064
|
+
clearTimeout(durationTimeout);
|
|
33912
34065
|
}
|
|
33913
|
-
const dismissed = await dismiss(this, data, role, 'toastLeave', iosLeaveAnimation, mdLeaveAnimation,
|
|
34066
|
+
const dismissed = await dismiss(this, data, role, 'toastLeave', iosLeaveAnimation, mdLeaveAnimation,
|
|
34067
|
+
/**
|
|
34068
|
+
* Fetch the cached position that was calculated back in the present
|
|
34069
|
+
* animation. We always want to animate the dismiss from the same
|
|
34070
|
+
* position the present stopped at, so the animation looks continuous.
|
|
34071
|
+
*/
|
|
34072
|
+
{
|
|
34073
|
+
position,
|
|
34074
|
+
top: (_a = lastPresentedPosition === null || lastPresentedPosition === void 0 ? void 0 : lastPresentedPosition.top) !== null && _a !== void 0 ? _a : '',
|
|
34075
|
+
bottom: (_b = lastPresentedPosition === null || lastPresentedPosition === void 0 ? void 0 : lastPresentedPosition.bottom) !== null && _b !== void 0 ? _b : '',
|
|
34076
|
+
});
|
|
33914
34077
|
if (dismissed) {
|
|
33915
34078
|
this.delegateController.removeViewFromDom();
|
|
33916
34079
|
this.revealContentToScreenReader = false;
|
|
33917
34080
|
}
|
|
34081
|
+
this.lastPresentedPosition = undefined;
|
|
33918
34082
|
unlock();
|
|
33919
34083
|
return dismissed;
|
|
33920
34084
|
}
|
|
@@ -33938,6 +34102,44 @@ class Toast {
|
|
|
33938
34102
|
: [];
|
|
33939
34103
|
return buttons;
|
|
33940
34104
|
}
|
|
34105
|
+
/**
|
|
34106
|
+
* Returns the element specified by the positionAnchor prop,
|
|
34107
|
+
* or undefined if prop's value is an ID string and the element
|
|
34108
|
+
* is not found in the DOM.
|
|
34109
|
+
*/
|
|
34110
|
+
getAnchorElement() {
|
|
34111
|
+
const { position, positionAnchor, el } = this;
|
|
34112
|
+
/**
|
|
34113
|
+
* If positionAnchor is undefined then
|
|
34114
|
+
* no anchor should be used when presenting the toast.
|
|
34115
|
+
*/
|
|
34116
|
+
if (positionAnchor === undefined) {
|
|
34117
|
+
return;
|
|
34118
|
+
}
|
|
34119
|
+
if (position === 'middle' && positionAnchor !== undefined) {
|
|
34120
|
+
printIonWarning('The positionAnchor property is ignored when using position="middle".', this.el);
|
|
34121
|
+
return undefined;
|
|
34122
|
+
}
|
|
34123
|
+
if (typeof positionAnchor === 'string') {
|
|
34124
|
+
/**
|
|
34125
|
+
* If the anchor is defined as an ID, find the element.
|
|
34126
|
+
* We do this on every present so the toast doesn't need
|
|
34127
|
+
* to account for the surrounding DOM changing since the
|
|
34128
|
+
* last time it was presented.
|
|
34129
|
+
*/
|
|
34130
|
+
const foundEl = document.getElementById(positionAnchor);
|
|
34131
|
+
if (foundEl === null) {
|
|
34132
|
+
printIonWarning(`An anchor element with an ID of "${positionAnchor}" was not found in the DOM.`, el);
|
|
34133
|
+
return undefined;
|
|
34134
|
+
}
|
|
34135
|
+
return foundEl;
|
|
34136
|
+
}
|
|
34137
|
+
if (positionAnchor instanceof HTMLElement) {
|
|
34138
|
+
return positionAnchor;
|
|
34139
|
+
}
|
|
34140
|
+
printIonWarning('Invalid positionAnchor value:', positionAnchor, el);
|
|
34141
|
+
return undefined;
|
|
34142
|
+
}
|
|
33941
34143
|
async buttonClick(button) {
|
|
33942
34144
|
const role = button.role;
|
|
33943
34145
|
if (isCancel(role)) {
|
|
@@ -34045,6 +34247,7 @@ class Toast {
|
|
|
34045
34247
|
"message": [1],
|
|
34046
34248
|
"keyboardClose": [4, "keyboard-close"],
|
|
34047
34249
|
"position": [1],
|
|
34250
|
+
"positionAnchor": [1, "position-anchor"],
|
|
34048
34251
|
"buttons": [16],
|
|
34049
34252
|
"translucent": [4],
|
|
34050
34253
|
"animated": [4],
|
|
@@ -34112,9 +34315,6 @@ class Toggle {
|
|
|
34112
34315
|
}
|
|
34113
34316
|
};
|
|
34114
34317
|
this.onClick = (ev) => {
|
|
34115
|
-
if (this.disabled) {
|
|
34116
|
-
return;
|
|
34117
|
-
}
|
|
34118
34318
|
ev.preventDefault();
|
|
34119
34319
|
if (this.lastDrag + 300 < Date.now()) {
|
|
34120
34320
|
this.toggleChecked();
|
|
@@ -34765,6 +34965,7 @@ const iosTransitionAnimation = (navEl, opts) => {
|
|
|
34765
34965
|
.easing(opts.easing || EASING)
|
|
34766
34966
|
.fill('both')
|
|
34767
34967
|
.beforeRemoveClass('ion-page-invisible');
|
|
34968
|
+
// eslint-disable-next-line @typescript-eslint/prefer-optional-chain
|
|
34768
34969
|
if (leavingEl && navEl !== null && navEl !== undefined) {
|
|
34769
34970
|
const navDecorAnimation = createAnimation();
|
|
34770
34971
|
navDecorAnimation.addElement(navEl);
|