@ionic/core 7.6.1-dev.11702425604.192f1b86 → 7.6.1-dev.11702569564.1746fa9f
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/hardware-back-button.js +41 -3
- package/components/ion-app.js +3 -1
- package/components/ion-input.js +2 -21
- package/components/ion-menu.js +5 -4
- package/components/ion-split-pane.js +2 -2
- package/components/ion-textarea.js +2 -25
- package/components/overlays.js +29 -10
- package/css/core.css +8 -0
- package/css/core.css.map +1 -1
- package/css/ionic.bundle.css +1 -1
- package/css/ionic.bundle.css.map +1 -1
- package/dist/cjs/{app-globals-7def22c8.js → app-globals-0af482c7.js} +1 -1
- package/dist/cjs/{button-active-962fe442.js → button-active-a5185907.js} +1 -1
- package/dist/cjs/{hardware-back-button-76833cac.js → hardware-back-button-353999c3.js} +42 -2
- package/dist/cjs/{index-3b012034.js → index-390a5c73.js} +2 -2
- package/dist/cjs/{index-50dcfe2f.js → index-bbb4336c.js} +8 -21
- package/dist/cjs/{index-17ab7794.js → index-f8f13389.js} +3 -3
- package/dist/cjs/index.cjs.js +8 -8
- package/dist/cjs/ion-accordion_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-action-sheet.cjs.entry.js +5 -5
- package/dist/cjs/ion-alert.cjs.entry.js +5 -5
- package/dist/cjs/ion-app_8.cjs.entry.js +9 -7
- package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
- package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-card_5.cjs.entry.js +2 -2
- package/dist/cjs/ion-checkbox.cjs.entry.js +2 -2
- 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 +2 -2
- package/dist/cjs/ion-datetime_3.cjs.entry.js +4 -4
- package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-img.cjs.entry.js +2 -2
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-input.cjs.entry.js +4 -23
- package/dist/cjs/ion-item-option_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
- package/dist/cjs/ion-loading.cjs.entry.js +4 -4
- package/dist/cjs/ion-menu_3.cjs.entry.js +8 -8
- package/dist/cjs/ion-modal.cjs.entry.js +5 -5
- package/dist/cjs/ion-nav_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-picker-column-internal.cjs.entry.js +2 -2
- package/dist/cjs/ion-picker-internal.cjs.entry.js +1 -1
- package/dist/cjs/ion-popover.cjs.entry.js +5 -5
- package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
- package/dist/cjs/ion-radio_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-range.cjs.entry.js +2 -2
- package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
- package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
- package/dist/cjs/ion-searchbar.cjs.entry.js +2 -2
- package/dist/cjs/ion-segment_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-select_3.cjs.entry.js +4 -4
- package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
- package/dist/cjs/ion-split-pane.cjs.entry.js +4 -4
- 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 +4 -27
- package/dist/cjs/ion-toast.cjs.entry.js +4 -4
- package/dist/cjs/ion-toggle.cjs.entry.js +2 -2
- package/dist/cjs/{ionic-global-a4edbf03.js → ionic-global-f4a2093b.js} +1 -1
- package/dist/cjs/ionic.cjs.js +5 -5
- package/dist/cjs/{ios.transition-b5353f3e.js → ios.transition-6787b799.js} +2 -2
- package/dist/cjs/loader.cjs.js +4 -4
- package/dist/cjs/{md.transition-67157dd9.js → md.transition-e033d20a.js} +2 -2
- package/dist/cjs/{overlays-e77cc023.js → overlays-5be6b614.js} +30 -11
- package/dist/cjs/{status-tap-b5d77c08.js → status-tap-415acac6.js} +1 -1
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/app/app.js +3 -1
- package/dist/collection/components/input/input.js +2 -21
- package/dist/collection/components/input/test/clear-on-edit/input.e2e.js +8 -28
- package/dist/collection/components/menu/menu.ios.css +4 -3
- package/dist/collection/components/menu/menu.js +2 -7
- package/dist/collection/components/menu/menu.md.css +4 -3
- package/dist/collection/components/split-pane/split-pane.ios.css +2 -1
- package/dist/collection/components/split-pane/split-pane.md.css +2 -1
- package/dist/collection/components/textarea/test/clear-on-edit/textarea.e2e.js +0 -36
- package/dist/collection/components/textarea/textarea.js +2 -25
- package/dist/collection/utils/hardware-back-button.js +39 -2
- package/dist/collection/utils/overlays.js +29 -9
- package/dist/docs.json +2 -7
- package/dist/esm/{app-globals-8c62bec2.js → app-globals-722340c4.js} +1 -1
- package/dist/esm/{button-active-308d3edd.js → button-active-c6ee4f50.js} +1 -1
- package/dist/esm/{hardware-back-button-b2bc76db.js → hardware-back-button-2f36ab27.js} +42 -3
- package/dist/esm/{index-b7d870cf.js → index-08d686eb.js} +8 -21
- package/dist/esm/{index-4743453d.js → index-1932b201.js} +3 -3
- package/dist/esm/{index-1193f005.js → index-2c866d2e.js} +2 -2
- package/dist/esm/index.js +8 -8
- package/dist/esm/ion-accordion_2.entry.js +2 -2
- package/dist/esm/ion-action-sheet.entry.js +5 -5
- package/dist/esm/ion-alert.entry.js +5 -5
- package/dist/esm/ion-app_8.entry.js +9 -7
- package/dist/esm/ion-avatar_3.entry.js +2 -2
- package/dist/esm/ion-back-button.entry.js +2 -2
- package/dist/esm/ion-backdrop.entry.js +2 -2
- package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
- package/dist/esm/ion-button_2.entry.js +2 -2
- package/dist/esm/ion-card_5.entry.js +2 -2
- package/dist/esm/ion-checkbox.entry.js +2 -2
- 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 +2 -2
- package/dist/esm/ion-datetime_3.entry.js +4 -4
- package/dist/esm/ion-fab_3.entry.js +2 -2
- package/dist/esm/ion-img.entry.js +2 -2
- package/dist/esm/ion-infinite-scroll_2.entry.js +2 -2
- package/dist/esm/ion-input.entry.js +4 -23
- package/dist/esm/ion-item-option_3.entry.js +2 -2
- package/dist/esm/ion-item_8.entry.js +2 -2
- package/dist/esm/ion-loading.entry.js +4 -4
- package/dist/esm/ion-menu_3.entry.js +8 -8
- package/dist/esm/ion-modal.entry.js +5 -5
- package/dist/esm/ion-nav_2.entry.js +3 -3
- package/dist/esm/ion-picker-column-internal.entry.js +2 -2
- package/dist/esm/ion-picker-internal.entry.js +1 -1
- package/dist/esm/ion-popover.entry.js +5 -5
- package/dist/esm/ion-progress-bar.entry.js +2 -2
- package/dist/esm/ion-radio_2.entry.js +2 -2
- package/dist/esm/ion-range.entry.js +2 -2
- package/dist/esm/ion-refresher_2.entry.js +2 -2
- package/dist/esm/ion-reorder_2.entry.js +2 -2
- package/dist/esm/ion-ripple-effect.entry.js +2 -2
- package/dist/esm/ion-route_4.entry.js +2 -2
- package/dist/esm/ion-searchbar.entry.js +2 -2
- package/dist/esm/ion-segment_2.entry.js +2 -2
- package/dist/esm/ion-select_3.entry.js +4 -4
- package/dist/esm/ion-spinner.entry.js +2 -2
- package/dist/esm/ion-split-pane.entry.js +4 -4
- 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 +4 -27
- package/dist/esm/ion-toast.entry.js +4 -4
- package/dist/esm/ion-toggle.entry.js +2 -2
- package/dist/esm/{ionic-global-1f99b929.js → ionic-global-c0cda98e.js} +1 -1
- package/dist/esm/ionic.js +6 -6
- package/dist/esm/{ios.transition-3376ccb2.js → ios.transition-802a84a6.js} +2 -2
- package/dist/esm/loader.js +5 -5
- package/dist/esm/{md.transition-f992779f.js → md.transition-43c2874d.js} +2 -2
- package/dist/esm/{overlays-b33f6bca.js → overlays-6e053935.js} +30 -11
- package/dist/esm/{status-tap-16fd8f3d.js → status-tap-2b93b1b5.js} +1 -1
- package/dist/esm-es5/app-globals-722340c4.js +4 -0
- package/dist/esm-es5/{button-active-308d3edd.js → button-active-c6ee4f50.js} +1 -1
- package/dist/esm-es5/hardware-back-button-2f36ab27.js +4 -0
- package/dist/esm-es5/index-08d686eb.js +5 -0
- package/dist/esm-es5/{index-4743453d.js → index-1932b201.js} +1 -1
- package/dist/esm-es5/{index-1193f005.js → index-2c866d2e.js} +1 -1
- 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-1f99b929.js → ionic-global-c0cda98e.js} +1 -1
- package/dist/esm-es5/ionic.js +1 -1
- package/dist/esm-es5/{ios.transition-3376ccb2.js → ios.transition-802a84a6.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/md.transition-43c2874d.js +4 -0
- package/dist/esm-es5/overlays-6e053935.js +4 -0
- package/dist/esm-es5/{status-tap-16fd8f3d.js → status-tap-2b93b1b5.js} +1 -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-469dd571.system.entry.js → p-01d14eba.system.entry.js} +1 -1
- package/dist/ionic/{p-7e614714.system.entry.js → p-05d83227.system.entry.js} +1 -1
- package/dist/ionic/{p-11786dc7.entry.js → p-0add7211.entry.js} +1 -1
- package/dist/ionic/{p-1b27ac67.entry.js → p-0c03967a.entry.js} +1 -1
- package/dist/ionic/{p-20e0e75d.system.entry.js → p-0e53f8ea.system.entry.js} +1 -1
- package/dist/ionic/{p-745e3339.system.entry.js → p-10437cc2.system.entry.js} +1 -1
- package/dist/ionic/{p-afa9f205.system.js → p-10469c3c.system.js} +1 -1
- package/dist/ionic/{p-3313c481.entry.js → p-1161a793.entry.js} +1 -1
- package/dist/ionic/{p-9fb45814.entry.js → p-1208f939.entry.js} +1 -1
- package/dist/ionic/p-1786bc72.js +4 -0
- package/dist/ionic/{p-a3013394.entry.js → p-17da5ed1.entry.js} +1 -1
- package/dist/ionic/{p-507ddbfe.system.entry.js → p-18b8a2f5.system.entry.js} +1 -1
- package/dist/ionic/{p-806a9810.entry.js → p-18ba8221.entry.js} +1 -1
- package/dist/ionic/{p-767f1a92.entry.js → p-1b19c04b.entry.js} +1 -1
- package/dist/ionic/{p-e33d1ebc.entry.js → p-2092f39f.entry.js} +1 -1
- package/dist/ionic/{p-06abe918.system.entry.js → p-209e2fc6.system.entry.js} +1 -1
- package/dist/ionic/{p-61e4d3ec.entry.js → p-28a2c2a2.entry.js} +1 -1
- package/dist/ionic/{p-332ea4d3.system.entry.js → p-2938823a.system.entry.js} +1 -1
- package/dist/ionic/{p-ebe8bd8a.entry.js → p-2b7bccc0.entry.js} +1 -1
- package/dist/ionic/{p-f434bcf3.system.entry.js → p-2d3b9fa3.system.entry.js} +1 -1
- package/dist/ionic/{p-6b0ce9b4.system.entry.js → p-3137c025.system.entry.js} +1 -1
- package/dist/ionic/{p-a074be82.system.js → p-31fcb233.system.js} +1 -1
- package/dist/ionic/{p-f6e9c227.system.js → p-33a37fad.system.js} +1 -1
- package/dist/ionic/p-350f7292.system.entry.js +4 -0
- package/dist/ionic/{p-44dc52e5.entry.js → p-353b349d.entry.js} +1 -1
- package/dist/ionic/{p-1c249831.entry.js → p-37094951.entry.js} +1 -1
- package/dist/ionic/{p-11a3973f.entry.js → p-3dd98a73.entry.js} +1 -1
- package/dist/ionic/{p-2a583966.entry.js → p-3f5179b5.entry.js} +1 -1
- package/dist/ionic/{p-5ad1fe3b.system.js → p-4155f352.system.js} +1 -1
- package/dist/ionic/{p-6e0539ea.system.entry.js → p-46d400b4.system.entry.js} +1 -1
- package/dist/ionic/{p-f2bfd3d7.entry.js → p-4f3ae45a.entry.js} +1 -1
- package/dist/ionic/{p-69641343.system.entry.js → p-4fb51e61.system.entry.js} +1 -1
- package/dist/ionic/{p-6855f26a.entry.js → p-51a087d6.entry.js} +1 -1
- package/dist/ionic/{p-a49931aa.system.js → p-54927cc0.system.js} +1 -1
- package/dist/ionic/p-564af202.system.entry.js +4 -0
- package/dist/ionic/{p-648ad047.system.entry.js → p-57668439.system.entry.js} +1 -1
- package/dist/ionic/{p-a06501e3.entry.js → p-588fdf40.entry.js} +1 -1
- package/dist/ionic/{p-9f94c72e.system.js → p-5b365ca7.system.js} +1 -1
- package/dist/ionic/{p-abd5d0d5.system.entry.js → p-5bebc7b3.system.entry.js} +1 -1
- package/dist/ionic/{p-0aa78a8d.system.js → p-5e745192.system.js} +1 -1
- package/dist/ionic/{p-7fae5c36.js → p-5ecae037.js} +1 -1
- package/dist/ionic/{p-c5acfeb1.entry.js → p-5eda1d7d.entry.js} +1 -1
- package/dist/ionic/{p-ddd48faf.system.entry.js → p-6577aea9.system.entry.js} +1 -1
- package/dist/ionic/{p-96d4814f.system.entry.js → p-6ad34705.system.entry.js} +1 -1
- package/dist/ionic/{p-98f35d98.js → p-6de472cb.js} +1 -1
- package/dist/ionic/{p-22827063.system.entry.js → p-6de62649.system.entry.js} +1 -1
- package/dist/ionic/{p-beeed22c.system.entry.js → p-6e70dd1a.system.entry.js} +1 -1
- package/dist/ionic/{p-ae4b7df8.entry.js → p-6fbecbda.entry.js} +1 -1
- package/dist/ionic/p-7195b457.js +4 -0
- package/dist/ionic/{p-0550f802.entry.js → p-765f4dde.entry.js} +1 -1
- package/dist/ionic/p-76c2040d.entry.js +4 -0
- package/dist/ionic/{p-26c4bf85.entry.js → p-78aadecb.entry.js} +1 -1
- package/dist/ionic/{p-c1701827.entry.js → p-7b69aaa4.entry.js} +1 -1
- package/dist/ionic/{p-dc71e4ef.system.entry.js → p-7d92bf15.system.entry.js} +1 -1
- package/dist/ionic/{p-3603c472.entry.js → p-7ee0f3f2.entry.js} +1 -1
- package/dist/ionic/{p-47bb15a1.entry.js → p-80fa068e.entry.js} +1 -1
- package/dist/ionic/p-88078c81.system.entry.js +4 -0
- package/dist/ionic/{p-3e8d5e53.entry.js → p-88fde0e0.entry.js} +1 -1
- package/dist/ionic/{p-28740823.system.entry.js → p-8d9bc2ef.system.entry.js} +1 -1
- package/dist/ionic/{p-529b24fb.entry.js → p-8f5d30f5.entry.js} +1 -1
- package/dist/ionic/{p-8f301ac5.system.entry.js → p-908475e7.system.entry.js} +1 -1
- package/dist/ionic/p-91d33c4a.js +4 -0
- package/dist/ionic/{p-cb8dff22.system.entry.js → p-9709ebd8.system.entry.js} +1 -1
- package/dist/ionic/{p-290d3fe9.js → p-9738fd82.js} +1 -1
- package/dist/ionic/{p-3dfc522b.entry.js → p-98f3d827.entry.js} +1 -1
- package/dist/ionic/{p-cf53213c.entry.js → p-9b7f0b0f.entry.js} +1 -1
- package/dist/ionic/{p-44a56556.js → p-9dd5071f.js} +1 -1
- package/dist/ionic/p-9e447eb1.system.js +4 -0
- package/dist/ionic/{p-0dfa4ab4.system.entry.js → p-9f6ee2c0.system.entry.js} +2 -2
- package/dist/ionic/{p-10ec9af7.system.entry.js → p-a0bb7b92.system.entry.js} +1 -1
- package/dist/ionic/{p-2894d5f6.entry.js → p-a1987850.entry.js} +1 -1
- package/dist/ionic/{p-7dc892f8.entry.js → p-a2da3efd.entry.js} +1 -1
- package/dist/ionic/p-a4afcc88.entry.js +4 -0
- package/dist/ionic/p-afd6ca9d.entry.js +4 -0
- package/dist/ionic/{p-b8a9e195.system.entry.js → p-b3b3efba.system.entry.js} +1 -1
- package/dist/ionic/p-b459a710.js +4 -0
- package/dist/ionic/{p-1501b945.system.js → p-b4a51c42.system.js} +1 -1
- package/dist/ionic/{p-0ebc87b7.system.entry.js → p-b56d0866.system.entry.js} +1 -1
- package/dist/ionic/{p-803efb5d.entry.js → p-b5f9f14c.entry.js} +1 -1
- package/dist/ionic/{p-d93eed83.system.entry.js → p-b6f5e4f2.system.entry.js} +1 -1
- package/dist/ionic/{p-85f48531.entry.js → p-b6f9d32a.entry.js} +1 -1
- package/dist/ionic/{p-4981ea0a.system.entry.js → p-b7010c69.system.entry.js} +1 -1
- package/dist/ionic/{p-932f2259.system.entry.js → p-bd9c0936.system.entry.js} +1 -1
- package/dist/ionic/{p-0509fd34.js → p-c3c3333a.js} +1 -1
- package/dist/ionic/{p-f0504446.system.entry.js → p-c847fb35.system.entry.js} +1 -1
- package/dist/ionic/{p-f894e0ad.entry.js → p-c85e04b9.entry.js} +1 -1
- package/dist/ionic/{p-b7058a0e.system.entry.js → p-c91ccbfa.system.entry.js} +1 -1
- package/dist/ionic/{p-4685218a.system.entry.js → p-c9a21dfd.system.entry.js} +1 -1
- package/dist/ionic/p-cae07fc5.system.js +4 -0
- package/dist/ionic/{p-4489dd20.system.entry.js → p-caf21b46.system.entry.js} +1 -1
- package/dist/ionic/{p-9fda6824.system.entry.js → p-cb8616b5.system.entry.js} +1 -1
- package/dist/ionic/{p-b7a2ffc9.system.entry.js → p-cce9f61a.system.entry.js} +1 -1
- package/dist/ionic/{p-04377cfa.js → p-cdbeaadc.js} +1 -1
- package/dist/ionic/{p-928ee57a.entry.js → p-cfe57b1b.entry.js} +1 -1
- package/dist/ionic/{p-a42ef163.system.entry.js → p-d032f825.system.entry.js} +1 -1
- package/dist/ionic/{p-60959b71.entry.js → p-d37b441e.entry.js} +1 -1
- package/dist/ionic/p-d3b030b8.system.js +5 -0
- package/dist/ionic/p-d483dac4.entry.js +4 -0
- package/dist/ionic/p-d7142c58.system.js +4 -0
- package/dist/ionic/{p-6fba0ce1.system.entry.js → p-dee7c1d0.system.entry.js} +1 -1
- package/dist/ionic/p-e3584231.system.js +4 -0
- package/dist/ionic/{p-a3ca2e64.entry.js → p-e503165e.entry.js} +1 -1
- package/dist/ionic/{p-2cf21a15.system.entry.js → p-e654c9bb.system.entry.js} +1 -1
- package/dist/ionic/{p-a821750c.system.entry.js → p-e6d68e02.system.entry.js} +1 -1
- package/dist/ionic/{p-19c379da.system.entry.js → p-e7ea9815.system.entry.js} +1 -1
- package/dist/ionic/{p-da5e2652.entry.js → p-e94c392d.entry.js} +1 -1
- package/dist/ionic/{p-84b567a6.entry.js → p-ea69616e.entry.js} +1 -1
- package/dist/ionic/{p-41208f54.system.entry.js → p-ef126ae8.system.entry.js} +1 -1
- package/dist/ionic/{p-b964aba3.entry.js → p-f3752035.entry.js} +1 -1
- package/dist/ionic/{p-cd1b920b.entry.js → p-f47b499a.entry.js} +1 -1
- package/dist/ionic/p-f4b23061.system.entry.js +4 -0
- package/dist/ionic/{p-6c277fa2.system.entry.js → p-f5109721.system.entry.js} +1 -1
- package/dist/ionic/{p-043aa6cc.system.entry.js → p-f656e032.system.entry.js} +1 -1
- package/dist/ionic/{p-0235067a.js → p-f70970cf.js} +1 -1
- package/dist/ionic/{p-c08fe2c0.entry.js → p-f8a5bb89.entry.js} +1 -1
- package/dist/ionic/{p-b78e6a44.entry.js → p-feae5133.entry.js} +1 -1
- package/dist/types/utils/config.d.ts +7 -0
- package/dist/types/utils/hardware-back-button.d.ts +7 -0
- package/hydrate/index.js +83 -110
- package/package.json +2 -2
- package/dist/collection/components/menu/test/custom/menu.e2e.js +0 -61
- package/dist/esm-es5/app-globals-8c62bec2.js +0 -4
- package/dist/esm-es5/hardware-back-button-b2bc76db.js +0 -4
- package/dist/esm-es5/index-b7d870cf.js +0 -5
- package/dist/esm-es5/md.transition-f992779f.js +0 -4
- package/dist/esm-es5/overlays-b33f6bca.js +0 -4
- package/dist/ionic/p-19d9ceb8.system.js +0 -4
- package/dist/ionic/p-2df97906.system.entry.js +0 -4
- package/dist/ionic/p-3671f1b9.system.js +0 -4
- package/dist/ionic/p-38531958.system.entry.js +0 -4
- package/dist/ionic/p-4b3623da.js +0 -4
- package/dist/ionic/p-4d145435.entry.js +0 -4
- package/dist/ionic/p-52cfafe9.system.js +0 -5
- package/dist/ionic/p-6ab03751.js +0 -4
- package/dist/ionic/p-790220fd.system.js +0 -4
- package/dist/ionic/p-950c05ad.entry.js +0 -4
- package/dist/ionic/p-97174c1e.js +0 -4
- package/dist/ionic/p-9a68d8ef.system.js +0 -4
- package/dist/ionic/p-aee39e06.entry.js +0 -4
- package/dist/ionic/p-cd574dfa.js +0 -4
- package/dist/ionic/p-dc6d8647.entry.js +0 -4
- package/dist/ionic/p-e2903cdc.system.entry.js +0 -4
- package/dist/ionic/p-ec652bc0.system.entry.js +0 -4
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { expect } from "@playwright/test";
|
|
5
5
|
import { test, configs } from "../../../../utils/test/playwright/index";
|
|
6
|
-
const IGNORED_KEYS = ['Enter', 'Tab', 'Shift', 'Meta', 'Alt', 'Control'];
|
|
7
6
|
configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
8
7
|
test.describe(title('input: clearOnEdit'), () => {
|
|
9
8
|
test('should clear when typed into', async ({ page }) => {
|
|
@@ -14,40 +13,21 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
14
13
|
await ionInput.next();
|
|
15
14
|
await expect(input).toHaveJSProperty('value', 'h');
|
|
16
15
|
});
|
|
17
|
-
test('should not clear
|
|
18
|
-
await page.setContent(`<ion-input
|
|
16
|
+
test('should not clear when enter is pressed', async ({ page }) => {
|
|
17
|
+
await page.setContent(`<ion-input value="abc" clear-on-edit="true" aria-label="input"></ion-input>`, config);
|
|
19
18
|
const input = page.locator('ion-input');
|
|
20
|
-
await input.
|
|
21
|
-
await
|
|
22
|
-
await
|
|
23
|
-
|
|
24
|
-
IGNORED_KEYS.forEach((ignoredKey) => {
|
|
25
|
-
test(`should not clear when ${ignoredKey} is pressed`, async ({ page, skip }) => {
|
|
26
|
-
skip.browser((browserName) => browserName === 'firefox' && ignoredKey === 'Meta', 'Firefox incorrectly adds "OS" to the input when pressing the Meta key on Linux');
|
|
27
|
-
await page.setContent(`<ion-input value="abc" clear-on-edit="true" aria-label="input"></ion-input>`, config);
|
|
28
|
-
const input = page.locator('ion-input');
|
|
29
|
-
await input.locator('input').focus();
|
|
30
|
-
await page.keyboard.press(ignoredKey);
|
|
31
|
-
await page.waitForChanges();
|
|
32
|
-
await expect(input).toHaveJSProperty('value', 'abc');
|
|
33
|
-
});
|
|
19
|
+
await input.locator('input').focus();
|
|
20
|
+
await page.keyboard.press('Enter');
|
|
21
|
+
await page.waitForChanges();
|
|
22
|
+
await expect(input).toHaveJSProperty('value', 'abc');
|
|
34
23
|
});
|
|
35
|
-
test('should clear
|
|
36
|
-
test.info().annotations.push({
|
|
37
|
-
type: 'issue',
|
|
38
|
-
description: 'https://github.com/ionic-team/ionic-framework/issues/28633',
|
|
39
|
-
});
|
|
24
|
+
test('should not clear when tab is pressed', async ({ page }) => {
|
|
40
25
|
await page.setContent(`<ion-input value="abc" clear-on-edit="true" aria-label="input"></ion-input>`, config);
|
|
41
26
|
const input = page.locator('ion-input');
|
|
42
27
|
await input.locator('input').focus();
|
|
43
|
-
|
|
44
|
-
await page.keyboard.press('Shift');
|
|
28
|
+
await page.keyboard.press('Tab');
|
|
45
29
|
await page.waitForChanges();
|
|
46
30
|
await expect(input).toHaveJSProperty('value', 'abc');
|
|
47
|
-
// allowed
|
|
48
|
-
await page.keyboard.press('a');
|
|
49
|
-
await page.waitForChanges();
|
|
50
|
-
await expect(input).toHaveJSProperty('value', 'a');
|
|
51
31
|
});
|
|
52
32
|
});
|
|
53
33
|
});
|
|
@@ -305,13 +305,14 @@ ion-backdrop {
|
|
|
305
305
|
left: 0;
|
|
306
306
|
right: 0;
|
|
307
307
|
width: auto;
|
|
308
|
-
|
|
309
|
-
|
|
308
|
+
/* stylelint-disable declaration-no-important */
|
|
309
|
+
transform: none !important;
|
|
310
|
+
box-shadow: none !important;
|
|
310
311
|
}
|
|
311
312
|
|
|
312
313
|
:host(.menu-pane-visible) ion-backdrop {
|
|
313
|
-
/* stylelint-disable-next-line declaration-no-important */
|
|
314
314
|
display: hidden !important;
|
|
315
|
+
/* stylelint-enable declaration-no-important */
|
|
315
316
|
}
|
|
316
317
|
|
|
317
318
|
/**
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import { Build, Host, h } from "@stencil/core";
|
|
5
5
|
import { getTimeGivenProgression } from "../../utils/animation/cubic-bezier";
|
|
6
6
|
import { GESTURE_CONTROLLER } from "../../utils/gesture/index";
|
|
7
|
+
import { shoudUseCloseWatcher } from "../../utils/hardware-back-button";
|
|
7
8
|
import { inheritAriaAttributes, assert, clamp, isEndSide as isEnd } from "../../utils/helpers";
|
|
8
9
|
import { menuController } from "../../utils/menu-controller/index";
|
|
9
10
|
import { getPresentedOverlay } from "../../utils/overlays";
|
|
@@ -595,7 +596,7 @@ export class Menu {
|
|
|
595
596
|
render() {
|
|
596
597
|
const { type, disabled, isPaneVisible, inheritedAttributes, side } = this;
|
|
597
598
|
const mode = getIonMode(this);
|
|
598
|
-
return (h(Host, { role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
|
|
599
|
+
return (h(Host, { onKeyDown: shoudUseCloseWatcher ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
|
|
599
600
|
[mode]: true,
|
|
600
601
|
[`menu-type-${type}`]: true,
|
|
601
602
|
'menu-enabled': !disabled,
|
|
@@ -993,12 +994,6 @@ export class Menu {
|
|
|
993
994
|
"target": undefined,
|
|
994
995
|
"capture": true,
|
|
995
996
|
"passive": false
|
|
996
|
-
}, {
|
|
997
|
-
"name": "keydown",
|
|
998
|
-
"method": "onKeydown",
|
|
999
|
-
"target": undefined,
|
|
1000
|
-
"capture": false,
|
|
1001
|
-
"passive": false
|
|
1002
997
|
}];
|
|
1003
998
|
}
|
|
1004
999
|
}
|
|
@@ -305,13 +305,14 @@ ion-backdrop {
|
|
|
305
305
|
left: 0;
|
|
306
306
|
right: 0;
|
|
307
307
|
width: auto;
|
|
308
|
-
|
|
309
|
-
|
|
308
|
+
/* stylelint-disable declaration-no-important */
|
|
309
|
+
transform: none !important;
|
|
310
|
+
box-shadow: none !important;
|
|
310
311
|
}
|
|
311
312
|
|
|
312
313
|
:host(.menu-pane-visible) ion-backdrop {
|
|
313
|
-
/* stylelint-disable-next-line declaration-no-important */
|
|
314
314
|
display: hidden !important;
|
|
315
|
+
/* stylelint-enable declaration-no-important */
|
|
315
316
|
}
|
|
316
317
|
|
|
317
318
|
/**
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { expect } from "@playwright/test";
|
|
5
5
|
import { test, configs } from "../../../../utils/test/playwright/index";
|
|
6
|
-
const IGNORED_KEYS = ['Tab', 'Shift', 'Meta', 'Alt', 'Control'];
|
|
7
6
|
configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
8
7
|
test.describe(title('textarea: clearOnEdit'), () => {
|
|
9
8
|
test('should clear when typed into', async ({ page }) => {
|
|
@@ -22,40 +21,5 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
22
21
|
await page.waitForChanges();
|
|
23
22
|
await expect(textarea).toHaveJSProperty('value', 'abc');
|
|
24
23
|
});
|
|
25
|
-
test('should not clear the textarea if it does not have an initial value when typing', async ({ page }) => {
|
|
26
|
-
await page.setContent(`<ion-textarea label="textarea" value="" clear-on-edit="true"></ion-textarea>`, config);
|
|
27
|
-
const textarea = page.locator('ion-textarea');
|
|
28
|
-
await textarea.click();
|
|
29
|
-
await textarea.type('hello world');
|
|
30
|
-
await expect(textarea).toHaveJSProperty('value', 'hello world');
|
|
31
|
-
});
|
|
32
|
-
IGNORED_KEYS.forEach((ignoredKey) => {
|
|
33
|
-
test(`should not clear when ${ignoredKey} is pressed`, async ({ page, skip }) => {
|
|
34
|
-
skip.browser((browserName) => browserName === 'firefox' && ignoredKey === 'Meta', 'Firefox incorrectly adds "OS" to the textarea when pressing the Meta key on Linux');
|
|
35
|
-
await page.setContent(`<ion-textarea value="abc" clear-on-edit="true" aria-label="textarea"></ion-textarea>`, config);
|
|
36
|
-
const textarea = page.locator('ion-textarea');
|
|
37
|
-
await textarea.locator('textarea').focus();
|
|
38
|
-
await page.keyboard.press(ignoredKey);
|
|
39
|
-
await page.waitForChanges();
|
|
40
|
-
await expect(textarea).toHaveJSProperty('value', 'abc');
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
test('should clear after when pressing valid key after pressing ignored key', async ({ page }) => {
|
|
44
|
-
test.info().annotations.push({
|
|
45
|
-
type: 'issue',
|
|
46
|
-
description: 'https://github.com/ionic-team/ionic-framework/issues/28633',
|
|
47
|
-
});
|
|
48
|
-
await page.setContent(`<ion-textarea value="abc" clear-on-edit="true" aria-label="textarea"></ion-textarea>`, config);
|
|
49
|
-
const textarea = page.locator('ion-textarea');
|
|
50
|
-
await textarea.locator('textarea').focus();
|
|
51
|
-
// ignored
|
|
52
|
-
await page.keyboard.press('Shift');
|
|
53
|
-
await page.waitForChanges();
|
|
54
|
-
await expect(textarea).toHaveJSProperty('value', 'abc');
|
|
55
|
-
// allowed
|
|
56
|
-
await page.keyboard.press('a');
|
|
57
|
-
await page.waitForChanges();
|
|
58
|
-
await expect(textarea).toHaveJSProperty('value', 'a');
|
|
59
|
-
});
|
|
60
24
|
});
|
|
61
25
|
});
|
|
@@ -238,38 +238,15 @@ export class Textarea {
|
|
|
238
238
|
if (!this.clearOnEdit) {
|
|
239
239
|
return;
|
|
240
240
|
}
|
|
241
|
-
/**
|
|
242
|
-
* The following keys do not modify the
|
|
243
|
-
* contents of the input. As a result, pressing
|
|
244
|
-
* them should not edit the textarea.
|
|
245
|
-
*
|
|
246
|
-
* We can't check to see if the value of the textarea
|
|
247
|
-
* was changed because we call checkClearOnEdit
|
|
248
|
-
* in a keydown listener, and the key has not yet
|
|
249
|
-
* been added to the textarea.
|
|
250
|
-
*
|
|
251
|
-
* Unlike ion-input, the "Enter" key does modify the
|
|
252
|
-
* textarea by adding a new line, so "Enter" is not
|
|
253
|
-
* included in the IGNORED_KEYS array.
|
|
254
|
-
*/
|
|
255
|
-
const IGNORED_KEYS = ['Tab', 'Shift', 'Meta', 'Alt', 'Control'];
|
|
256
|
-
const pressedIgnoredKey = IGNORED_KEYS.includes(ev.key);
|
|
257
241
|
/**
|
|
258
242
|
* Clear the textarea if the control has not been previously cleared
|
|
259
243
|
* during focus.
|
|
260
244
|
*/
|
|
261
|
-
if (!this.didTextareaClearOnEdit && this.hasValue() &&
|
|
245
|
+
if (!this.didTextareaClearOnEdit && this.hasValue() && ev.key !== 'Tab') {
|
|
262
246
|
this.value = '';
|
|
263
247
|
this.emitInputChange(ev);
|
|
264
248
|
}
|
|
265
|
-
|
|
266
|
-
* Pressing an IGNORED_KEYS first and
|
|
267
|
-
* then an allowed key will cause the input to not
|
|
268
|
-
* be cleared.
|
|
269
|
-
*/
|
|
270
|
-
if (!pressedIgnoredKey) {
|
|
271
|
-
this.didTextareaClearOnEdit = true;
|
|
272
|
-
}
|
|
249
|
+
this.didTextareaClearOnEdit = true;
|
|
273
250
|
}
|
|
274
251
|
focusChange() {
|
|
275
252
|
this.emitStyle();
|
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
+
import { win } from "./browser/index";
|
|
5
|
+
import { config } from "../global/config";
|
|
6
|
+
/**
|
|
7
|
+
* CloseWatcher is a newer API that lets
|
|
8
|
+
* use detect the hardware back button event
|
|
9
|
+
* in a web browser: https://caniuse.com/?search=closewatcher
|
|
10
|
+
* However, not every browser supports it yet.
|
|
11
|
+
*/
|
|
12
|
+
export const shoudUseCloseWatcher = config.get('experimentalCloseWatcher', false) && win !== undefined && 'CloseWatcher' in win;
|
|
4
13
|
/**
|
|
5
14
|
* When hardwareBackButton: false in config,
|
|
6
15
|
* we need to make sure we also block the default
|
|
@@ -17,7 +26,7 @@ export const blockHardwareBackButton = () => {
|
|
|
17
26
|
export const startHardwareBackButton = () => {
|
|
18
27
|
const doc = document;
|
|
19
28
|
let busy = false;
|
|
20
|
-
|
|
29
|
+
const backButtonCallback = () => {
|
|
21
30
|
if (busy) {
|
|
22
31
|
return;
|
|
23
32
|
}
|
|
@@ -63,7 +72,35 @@ export const startHardwareBackButton = () => {
|
|
|
63
72
|
}
|
|
64
73
|
};
|
|
65
74
|
processHandlers();
|
|
66
|
-
}
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* If the CloseWatcher is defined then
|
|
78
|
+
* we don't want to also listen for the native
|
|
79
|
+
* backbutton event otherwise we may get duplicate
|
|
80
|
+
* events firing.
|
|
81
|
+
*/
|
|
82
|
+
if (shoudUseCloseWatcher) {
|
|
83
|
+
let watcher;
|
|
84
|
+
const configureWatcher = () => {
|
|
85
|
+
watcher === null || watcher === void 0 ? void 0 : watcher.destroy();
|
|
86
|
+
watcher = new win.CloseWatcher();
|
|
87
|
+
/**
|
|
88
|
+
* Once a close request happens
|
|
89
|
+
* the watcher gets destroyed.
|
|
90
|
+
* As a result, we need to re-configure
|
|
91
|
+
* the watcher so we can respond to other
|
|
92
|
+
* close requests.
|
|
93
|
+
*/
|
|
94
|
+
watcher.onclose = () => {
|
|
95
|
+
backButtonCallback();
|
|
96
|
+
configureWatcher();
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
configureWatcher();
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
doc.addEventListener('backbutton', backButtonCallback);
|
|
103
|
+
}
|
|
67
104
|
};
|
|
68
105
|
export const OVERLAY_BACK_BUTTON_PRIORITY = 100;
|
|
69
106
|
export const MENU_BACK_BUTTON_PRIORITY = 99; // 1 less than overlay priority since menu is displayed behind overlays
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
4
|
import { doc } from "./browser/index";
|
|
5
|
+
import { shoudUseCloseWatcher } from "./hardware-back-button";
|
|
5
6
|
import { config } from "../global/config";
|
|
6
7
|
import { getIonMode } from "../global/ionic-global";
|
|
7
8
|
import { CoreDelegate } from "./framework-delegate";
|
|
@@ -296,19 +297,38 @@ const connectListeners = (doc) => {
|
|
|
296
297
|
const lastOverlay = getPresentedOverlay(doc);
|
|
297
298
|
if (lastOverlay === null || lastOverlay === void 0 ? void 0 : lastOverlay.backdropDismiss) {
|
|
298
299
|
ev.detail.register(OVERLAY_BACK_BUTTON_PRIORITY, () => {
|
|
299
|
-
|
|
300
|
+
/**
|
|
301
|
+
* Do not return this promise otherwise
|
|
302
|
+
* the hardware back button utility will
|
|
303
|
+
* be blocked until the overlay dismisses.
|
|
304
|
+
* This is important for a modal with canDismiss.
|
|
305
|
+
* If the application presents a confirmation alert
|
|
306
|
+
* in the "canDismiss" callback, then it will be impossible
|
|
307
|
+
* to use the hardware back button to dismiss the alert
|
|
308
|
+
* dialog because the hardware back button utility
|
|
309
|
+
* is blocked on waiting for the modal to dismiss.
|
|
310
|
+
*/
|
|
311
|
+
lastOverlay.dismiss(undefined, BACKDROP);
|
|
300
312
|
});
|
|
301
313
|
}
|
|
302
314
|
});
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
315
|
+
/**
|
|
316
|
+
* Handle ESC to close overlay
|
|
317
|
+
* CloseWatcher also handles pressing the Esc
|
|
318
|
+
* key, so if a browser supports CloseWatcher then
|
|
319
|
+
* this behavior will be handled via the ionBackButton
|
|
320
|
+
* event.
|
|
321
|
+
*/
|
|
322
|
+
if (!shoudUseCloseWatcher) {
|
|
323
|
+
doc.addEventListener('keydown', (ev) => {
|
|
324
|
+
if (ev.key === 'Escape') {
|
|
325
|
+
const lastOverlay = getPresentedOverlay(doc);
|
|
326
|
+
if (lastOverlay === null || lastOverlay === void 0 ? void 0 : lastOverlay.backdropDismiss) {
|
|
327
|
+
lastOverlay.dismiss(undefined, BACKDROP);
|
|
328
|
+
}
|
|
309
329
|
}
|
|
310
|
-
}
|
|
311
|
-
}
|
|
330
|
+
});
|
|
331
|
+
}
|
|
312
332
|
}
|
|
313
333
|
};
|
|
314
334
|
export const dismissOverlay = (doc, data, role, overlayTag, id) => {
|
package/dist/docs.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
|
-
"timestamp": "2023-12-
|
|
2
|
+
"timestamp": "2023-12-14T16:01:24",
|
|
3
3
|
"compiler": {
|
|
4
4
|
"name": "@stencil/core",
|
|
5
|
-
"version": "4.8.
|
|
5
|
+
"version": "4.8.1",
|
|
6
6
|
"typescriptVersion": "5.2.2"
|
|
7
7
|
},
|
|
8
8
|
"components": [
|
|
@@ -14490,11 +14490,6 @@
|
|
|
14490
14490
|
"event": "click",
|
|
14491
14491
|
"capture": true,
|
|
14492
14492
|
"passive": false
|
|
14493
|
-
},
|
|
14494
|
-
{
|
|
14495
|
-
"event": "keydown",
|
|
14496
|
-
"capture": false,
|
|
14497
|
-
"passive": false
|
|
14498
14493
|
}
|
|
14499
14494
|
],
|
|
14500
14495
|
"styles": [
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import { w as writeTask } from './index-
|
|
4
|
+
import { w as writeTask } from './index-08d686eb.js';
|
|
5
5
|
import { h as hapticSelectionEnd, a as hapticSelectionStart, b as hapticSelectionChanged } from './haptic-554688a5.js';
|
|
6
6
|
import { createGesture } from './index-2cf77112.js';
|
|
7
7
|
|
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
+
import { w as win } from './index-a5d50daf.js';
|
|
5
|
+
import { c as config } from './ionic-global-c0cda98e.js';
|
|
6
|
+
import './index-08d686eb.js';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* CloseWatcher is a newer API that lets
|
|
10
|
+
* use detect the hardware back button event
|
|
11
|
+
* in a web browser: https://caniuse.com/?search=closewatcher
|
|
12
|
+
* However, not every browser supports it yet.
|
|
13
|
+
*/
|
|
14
|
+
const shoudUseCloseWatcher = config.get('experimentalCloseWatcher', false) && win !== undefined && 'CloseWatcher' in win;
|
|
4
15
|
/**
|
|
5
16
|
* When hardwareBackButton: false in config,
|
|
6
17
|
* we need to make sure we also block the default
|
|
@@ -17,7 +28,7 @@ const blockHardwareBackButton = () => {
|
|
|
17
28
|
const startHardwareBackButton = () => {
|
|
18
29
|
const doc = document;
|
|
19
30
|
let busy = false;
|
|
20
|
-
|
|
31
|
+
const backButtonCallback = () => {
|
|
21
32
|
if (busy) {
|
|
22
33
|
return;
|
|
23
34
|
}
|
|
@@ -63,9 +74,37 @@ const startHardwareBackButton = () => {
|
|
|
63
74
|
}
|
|
64
75
|
};
|
|
65
76
|
processHandlers();
|
|
66
|
-
}
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* If the CloseWatcher is defined then
|
|
80
|
+
* we don't want to also listen for the native
|
|
81
|
+
* backbutton event otherwise we may get duplicate
|
|
82
|
+
* events firing.
|
|
83
|
+
*/
|
|
84
|
+
if (shoudUseCloseWatcher) {
|
|
85
|
+
let watcher;
|
|
86
|
+
const configureWatcher = () => {
|
|
87
|
+
watcher === null || watcher === void 0 ? void 0 : watcher.destroy();
|
|
88
|
+
watcher = new win.CloseWatcher();
|
|
89
|
+
/**
|
|
90
|
+
* Once a close request happens
|
|
91
|
+
* the watcher gets destroyed.
|
|
92
|
+
* As a result, we need to re-configure
|
|
93
|
+
* the watcher so we can respond to other
|
|
94
|
+
* close requests.
|
|
95
|
+
*/
|
|
96
|
+
watcher.onclose = () => {
|
|
97
|
+
backButtonCallback();
|
|
98
|
+
configureWatcher();
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
configureWatcher();
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
doc.addEventListener('backbutton', backButtonCallback);
|
|
105
|
+
}
|
|
67
106
|
};
|
|
68
107
|
const OVERLAY_BACK_BUTTON_PRIORITY = 100;
|
|
69
108
|
const MENU_BACK_BUTTON_PRIORITY = 99; // 1 less than overlay priority since menu is displayed behind overlays
|
|
70
109
|
|
|
71
|
-
export { MENU_BACK_BUTTON_PRIORITY, OVERLAY_BACK_BUTTON_PRIORITY, blockHardwareBackButton, startHardwareBackButton };
|
|
110
|
+
export { MENU_BACK_BUTTON_PRIORITY, OVERLAY_BACK_BUTTON_PRIORITY, blockHardwareBackButton, shoudUseCloseWatcher, startHardwareBackButton };
|
|
@@ -960,10 +960,8 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
|
|
|
960
960
|
}
|
|
961
961
|
}
|
|
962
962
|
}
|
|
963
|
-
// This needs to always happen so we can hide nodes that are projected
|
|
964
|
-
// to another component but don't end up in a slot
|
|
965
|
-
elm['s-hn'] = hostTagName;
|
|
966
963
|
{
|
|
964
|
+
elm['s-hn'] = hostTagName;
|
|
967
965
|
if (newVNode.$flags$ & (2 /* VNODE_FLAGS.isSlotFallback */ | 1 /* VNODE_FLAGS.isSlotReference */)) {
|
|
968
966
|
// remember the content reference comment
|
|
969
967
|
elm['s-sr'] = true;
|
|
@@ -976,11 +974,9 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
|
|
|
976
974
|
// check if we've got an old vnode for this slot
|
|
977
975
|
oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];
|
|
978
976
|
if (oldVNode && oldVNode.$tag$ === newVNode.$tag$ && oldParentVNode.$elm$) {
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
putBackInOriginalLocation(oldParentVNode.$elm$, false);
|
|
983
|
-
}
|
|
977
|
+
// we've got an old slot vnode and the wrapper is being replaced
|
|
978
|
+
// so let's move the old slot content back to it's original location
|
|
979
|
+
putBackInOriginalLocation(oldParentVNode.$elm$, false);
|
|
984
980
|
}
|
|
985
981
|
}
|
|
986
982
|
}
|
|
@@ -993,6 +989,9 @@ const putBackInOriginalLocation = (parentElm, recursive) => {
|
|
|
993
989
|
for (let i = oldSlotChildNodes.length - 1; i >= 0; i--) {
|
|
994
990
|
const childNode = oldSlotChildNodes[i];
|
|
995
991
|
if (childNode['s-hn'] !== hostTagName && childNode['s-ol']) {
|
|
992
|
+
// // this child node in the old element is from another component
|
|
993
|
+
// // remove this node from the old slot's parent
|
|
994
|
+
// childNode.remove();
|
|
996
995
|
// and relocate it back to it's original location
|
|
997
996
|
parentReferenceNode(childNode).insertBefore(childNode, referenceNode(childNode));
|
|
998
997
|
// remove the old original location comment entirely
|
|
@@ -1635,7 +1634,7 @@ const nullifyVNodeRefs = (vNode) => {
|
|
|
1635
1634
|
* @param isInitialLoad whether or not this is the first call after page load
|
|
1636
1635
|
*/
|
|
1637
1636
|
const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
|
|
1638
|
-
var _a, _b
|
|
1637
|
+
var _a, _b;
|
|
1639
1638
|
const hostElm = hostRef.$hostElement$;
|
|
1640
1639
|
const cmpMeta = hostRef.$cmpMeta$;
|
|
1641
1640
|
const oldVNode = hostRef.$vnode$ || newVNode(null, null);
|
|
@@ -1750,24 +1749,12 @@ const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
|
|
|
1750
1749
|
// we're just going to append the node as the last child of the parent. Passing
|
|
1751
1750
|
// `null` as the second arg here will trigger that behavior.
|
|
1752
1751
|
parentNodeRef.insertBefore(nodeToRelocate, insertBeforeNode);
|
|
1753
|
-
// Reset the `hidden` value back to what it was defined as originally
|
|
1754
|
-
// This solves a problem where a `slot` is dynamically rendered and `hidden` may have
|
|
1755
|
-
// been set on content originally, but now it has a slot to go to so it should have
|
|
1756
|
-
// the value it was defined as having in the DOM, not what we overrode it to.
|
|
1757
|
-
if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {
|
|
1758
|
-
nodeToRelocate.hidden = (_c = nodeToRelocate['s-ih']) !== null && _c !== void 0 ? _c : false;
|
|
1759
|
-
}
|
|
1760
1752
|
}
|
|
1761
1753
|
}
|
|
1762
1754
|
}
|
|
1763
1755
|
else {
|
|
1764
1756
|
// this node doesn't have a slot home to go to, so let's hide it
|
|
1765
1757
|
if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {
|
|
1766
|
-
// Store the initial value of `hidden` so we can reset it later when
|
|
1767
|
-
// moving nodes around.
|
|
1768
|
-
if (isInitialLoad) {
|
|
1769
|
-
nodeToRelocate['s-ih'] = (_d = nodeToRelocate.hidden) !== null && _d !== void 0 ? _d : false;
|
|
1770
|
-
}
|
|
1771
1758
|
nodeToRelocate.hidden = true;
|
|
1772
1759
|
}
|
|
1773
1760
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import { w as writeTask, B as Build } from './index-
|
|
4
|
+
import { w as writeTask, B as Build } from './index-08d686eb.js';
|
|
5
5
|
import { r as raf } from './helpers-ae653409.js';
|
|
6
6
|
|
|
7
7
|
const LIFECYCLE_WILL_ENTER = 'ionViewWillEnter';
|
|
@@ -10,8 +10,8 @@ const LIFECYCLE_WILL_LEAVE = 'ionViewWillLeave';
|
|
|
10
10
|
const LIFECYCLE_DID_LEAVE = 'ionViewDidLeave';
|
|
11
11
|
const LIFECYCLE_WILL_UNLOAD = 'ionViewWillUnload';
|
|
12
12
|
|
|
13
|
-
const iosTransitionAnimation = () => import('./ios.transition-
|
|
14
|
-
const mdTransitionAnimation = () => import('./md.transition-
|
|
13
|
+
const iosTransitionAnimation = () => import('./ios.transition-802a84a6.js');
|
|
14
|
+
const mdTransitionAnimation = () => import('./md.transition-43c2874d.js');
|
|
15
15
|
// TODO(FW-2832): types
|
|
16
16
|
const transition = (opts) => {
|
|
17
17
|
return new Promise((resolve, reject) => {
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
4
|
import { d as doc } from './index-a5d50daf.js';
|
|
5
|
-
import { MENU_BACK_BUTTON_PRIORITY } from './hardware-back-button-
|
|
5
|
+
import { MENU_BACK_BUTTON_PRIORITY } from './hardware-back-button-2f36ab27.js';
|
|
6
6
|
import { p as printIonWarning } from './index-9b0d46f4.js';
|
|
7
7
|
import { c as componentOnReady } from './helpers-ae653409.js';
|
|
8
|
-
import { b as getIonMode } from './ionic-global-
|
|
8
|
+
import { b as getIonMode } from './ionic-global-c0cda98e.js';
|
|
9
9
|
import { c as createAnimation } from './animation-dde8cc0d.js';
|
|
10
10
|
|
|
11
11
|
/**
|
package/dist/esm/index.js
CHANGED
|
@@ -2,21 +2,21 @@
|
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
4
|
export { c as createAnimation } from './animation-dde8cc0d.js';
|
|
5
|
-
export { a as LIFECYCLE_DID_ENTER, c as LIFECYCLE_DID_LEAVE, L as LIFECYCLE_WILL_ENTER, b as LIFECYCLE_WILL_LEAVE, d as LIFECYCLE_WILL_UNLOAD, g as getIonPageElement } from './index-
|
|
6
|
-
export { iosTransitionAnimation } from './ios.transition-
|
|
7
|
-
export { mdTransitionAnimation } from './md.transition-
|
|
5
|
+
export { a as LIFECYCLE_DID_ENTER, c as LIFECYCLE_DID_LEAVE, L as LIFECYCLE_WILL_ENTER, b as LIFECYCLE_WILL_LEAVE, d as LIFECYCLE_WILL_UNLOAD, g as getIonPageElement } from './index-1932b201.js';
|
|
6
|
+
export { iosTransitionAnimation } from './ios.transition-802a84a6.js';
|
|
7
|
+
export { mdTransitionAnimation } from './md.transition-43c2874d.js';
|
|
8
8
|
export { g as getTimeGivenProgression } from './cubic-bezier-fe2083dc.js';
|
|
9
9
|
export { createGesture } from './index-2cf77112.js';
|
|
10
|
-
export { g as getPlatforms, i as initialize, a as isPlatform } from './ionic-global-
|
|
10
|
+
export { g as getPlatforms, i as initialize, a as isPlatform } from './ionic-global-c0cda98e.js';
|
|
11
11
|
export { c as componentOnReady } from './helpers-ae653409.js';
|
|
12
12
|
export { I as IonicSafeString, g as getMode, s as setupConfig } from './config-49c88215.js';
|
|
13
13
|
export { o as openURL } from './theme-01f3f29c.js';
|
|
14
|
-
export { m as menuController } from './index-
|
|
15
|
-
export { b as actionSheetController, a as alertController, l as loadingController, m as modalController, p as pickerController, c as popoverController, t as toastController } from './overlays-
|
|
14
|
+
export { m as menuController } from './index-2c866d2e.js';
|
|
15
|
+
export { b as actionSheetController, a as alertController, l as loadingController, m as modalController, p as pickerController, c as popoverController, t as toastController } from './overlays-6e053935.js';
|
|
16
16
|
import './index-a5d50daf.js';
|
|
17
|
-
import './index-
|
|
17
|
+
import './index-08d686eb.js';
|
|
18
18
|
import './gesture-controller-1bf57181.js';
|
|
19
|
-
import './hardware-back-button-
|
|
19
|
+
import './hardware-back-button-2f36ab27.js';
|
|
20
20
|
import './index-9b0d46f4.js';
|
|
21
21
|
import './framework-delegate-bc1fd82a.js';
|
|
22
22
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import { r as registerInstance, h, H as Host, f as getElement, d as createEvent } from './index-
|
|
4
|
+
import { r as registerInstance, h, H as Host, f as getElement, d as createEvent } from './index-08d686eb.js';
|
|
5
5
|
import { r as raf, t as transitionEndAsync, a as addEventListener, b as removeEventListener, g as getElementRoot } from './helpers-ae653409.js';
|
|
6
6
|
import { l as chevronDown } from './index-c132c5f1.js';
|
|
7
|
-
import { c as config, b as getIonMode } from './ionic-global-
|
|
7
|
+
import { c as config, b as getIonMode } from './ionic-global-c0cda98e.js';
|
|
8
8
|
import { p as printIonWarning } from './index-9b0d46f4.js';
|
|
9
9
|
|
|
10
10
|
const accordionIosCss = ":host{display:block;position:relative;width:100%;background-color:var(--ion-background-color, #ffffff);overflow:hidden;z-index:0}:host(.accordion-expanding) ::slotted(ion-item[slot=header]),:host(.accordion-expanded) ::slotted(ion-item[slot=header]){--border-width:0px}:host(.accordion-animated){-webkit-transition:all 300ms cubic-bezier(0.25, 0.8, 0.5, 1);transition:all 300ms cubic-bezier(0.25, 0.8, 0.5, 1)}:host(.accordion-animated) #content{-webkit-transition:max-height 300ms cubic-bezier(0.25, 0.8, 0.5, 1);transition:max-height 300ms cubic-bezier(0.25, 0.8, 0.5, 1)}#content{overflow:hidden;will-change:max-height}:host(.accordion-collapsing) #content{max-height:0 !important}:host(.accordion-collapsed) #content{display:none}:host(.accordion-expanding) #content{max-height:0}:host(.accordion-expanding) #content-wrapper{overflow:auto}:host(.accordion-disabled) #header,:host(.accordion-readonly) #header,:host(.accordion-disabled) #content,:host(.accordion-readonly) #content{pointer-events:none}:host(.accordion-disabled) #header,:host(.accordion-disabled) #content{opacity:0.4}@media (prefers-reduced-motion: reduce){:host,#content{-webkit-transition:none !important;transition:none !important}}:host(.accordion-next) ::slotted(ion-item[slot=header]){--border-width:0.55px 0px 0.55px 0px}";
|