@ionic/core 7.6.1-dev.11702322681.17e39348 → 7.6.1-dev.11702498225.1ad6eda6
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/ion-input.js +21 -2
- package/components/ion-menu.js +2 -2
- package/components/ion-split-pane.js +2 -2
- package/components/ion-textarea.js +25 -2
- package/components/item.js +2 -2
- package/css/core.css +0 -8
- 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-0af482c7.js → app-globals-7def22c8.js} +1 -1
- package/dist/cjs/{button-active-a5185907.js → button-active-962fe442.js} +1 -1
- package/dist/cjs/{index-f8f13389.js → index-17ab7794.js} +3 -3
- package/dist/cjs/{index-ce101dc9.js → index-3b012034.js} +1 -1
- package/dist/cjs/{index-bbb4336c.js → index-50dcfe2f.js} +21 -8
- package/dist/cjs/index.cjs.js +7 -7
- package/dist/cjs/ion-accordion_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-action-sheet.cjs.entry.js +4 -4
- package/dist/cjs/ion-alert.cjs.entry.js +4 -4
- package/dist/cjs/ion-app_8.cjs.entry.js +4 -4
- 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 +3 -3
- 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 +23 -4
- package/dist/cjs/ion-item-option_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-item_8.cjs.entry.js +4 -4
- package/dist/cjs/ion-loading.cjs.entry.js +3 -3
- package/dist/cjs/ion-menu_3.cjs.entry.js +6 -6
- package/dist/cjs/ion-modal.cjs.entry.js +4 -4
- 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 +4 -4
- 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 +3 -3
- 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 +27 -4
- package/dist/cjs/ion-toast.cjs.entry.js +3 -3
- package/dist/cjs/ion-toggle.cjs.entry.js +2 -2
- package/dist/cjs/{ionic-global-f4a2093b.js → ionic-global-a4edbf03.js} +1 -1
- package/dist/cjs/ionic.cjs.js +4 -4
- package/dist/cjs/{ios.transition-6787b799.js → ios.transition-b5353f3e.js} +2 -2
- package/dist/cjs/loader.cjs.js +3 -3
- package/dist/cjs/{md.transition-e033d20a.js → md.transition-67157dd9.js} +2 -2
- package/dist/cjs/{overlays-27a6fb16.js → overlays-e77cc023.js} +1 -1
- package/dist/cjs/{status-tap-415acac6.js → status-tap-b5d77c08.js} +1 -1
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/input/input.js +21 -2
- package/dist/collection/components/input/test/clear-on-edit/input.e2e.js +28 -8
- package/dist/collection/components/item/item.ios.css +6 -0
- package/dist/collection/components/item/item.md.css +6 -0
- package/dist/collection/components/label/test/a11y/label.e2e.js +25 -0
- package/dist/collection/components/menu/menu.ios.css +3 -4
- package/dist/collection/components/menu/menu.md.css +3 -4
- package/dist/collection/components/menu/test/custom/menu.e2e.js +61 -0
- package/dist/collection/components/split-pane/split-pane.ios.css +1 -2
- package/dist/collection/components/split-pane/split-pane.md.css +1 -2
- package/dist/collection/components/textarea/test/clear-on-edit/textarea.e2e.js +36 -0
- package/dist/collection/components/textarea/textarea.js +25 -2
- package/dist/docs.json +2 -2
- package/dist/esm/{app-globals-722340c4.js → app-globals-8c62bec2.js} +1 -1
- package/dist/esm/{button-active-c6ee4f50.js → button-active-308d3edd.js} +1 -1
- package/dist/esm/{index-0c12c22b.js → index-1193f005.js} +1 -1
- package/dist/esm/{index-1932b201.js → index-4743453d.js} +3 -3
- package/dist/esm/{index-08d686eb.js → index-b7d870cf.js} +21 -8
- package/dist/esm/index.js +7 -7
- package/dist/esm/ion-accordion_2.entry.js +2 -2
- package/dist/esm/ion-action-sheet.entry.js +4 -4
- package/dist/esm/ion-alert.entry.js +4 -4
- package/dist/esm/ion-app_8.entry.js +4 -4
- 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 +3 -3
- 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 +23 -4
- package/dist/esm/ion-item-option_3.entry.js +2 -2
- package/dist/esm/ion-item_8.entry.js +4 -4
- package/dist/esm/ion-loading.entry.js +3 -3
- package/dist/esm/ion-menu_3.entry.js +6 -6
- package/dist/esm/ion-modal.entry.js +4 -4
- 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 +4 -4
- 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 +3 -3
- 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 +27 -4
- package/dist/esm/ion-toast.entry.js +3 -3
- package/dist/esm/ion-toggle.entry.js +2 -2
- package/dist/esm/{ionic-global-c0cda98e.js → ionic-global-1f99b929.js} +1 -1
- package/dist/esm/ionic.js +5 -5
- package/dist/esm/{ios.transition-802a84a6.js → ios.transition-3376ccb2.js} +2 -2
- package/dist/esm/loader.js +4 -4
- package/dist/esm/{md.transition-43c2874d.js → md.transition-f992779f.js} +2 -2
- package/dist/esm/{overlays-32ef481d.js → overlays-b33f6bca.js} +1 -1
- package/dist/esm/{status-tap-2b93b1b5.js → status-tap-16fd8f3d.js} +1 -1
- package/dist/esm-es5/app-globals-8c62bec2.js +4 -0
- package/dist/esm-es5/{button-active-c6ee4f50.js → button-active-308d3edd.js} +1 -1
- package/dist/esm-es5/{index-0c12c22b.js → index-1193f005.js} +1 -1
- package/dist/esm-es5/{index-1932b201.js → index-4743453d.js} +1 -1
- package/dist/esm-es5/index-b7d870cf.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-c0cda98e.js → ionic-global-1f99b929.js} +1 -1
- package/dist/esm-es5/ionic.js +1 -1
- package/dist/esm-es5/{ios.transition-802a84a6.js → ios.transition-3376ccb2.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/md.transition-f992779f.js +4 -0
- package/dist/esm-es5/{overlays-32ef481d.js → overlays-b33f6bca.js} +1 -1
- package/dist/esm-es5/{status-tap-2b93b1b5.js → status-tap-16fd8f3d.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-f70970cf.js → p-0235067a.js} +1 -1
- package/dist/ionic/{p-cdbeaadc.js → p-04377cfa.js} +1 -1
- package/dist/ionic/{p-f656e032.system.entry.js → p-043aa6cc.system.entry.js} +1 -1
- package/dist/ionic/{p-c3c3333a.js → p-0509fd34.js} +1 -1
- package/dist/ionic/{p-765f4dde.entry.js → p-0550f802.entry.js} +1 -1
- package/dist/ionic/{p-8acae6b0.system.entry.js → p-06abe918.system.entry.js} +1 -1
- package/dist/ionic/{p-5e745192.system.js → p-0aa78a8d.system.js} +1 -1
- package/dist/ionic/p-0cc80201.entry.js +4 -0
- package/dist/ionic/{p-9f6ee2c0.system.entry.js → p-0dfa4ab4.system.entry.js} +2 -2
- package/dist/ionic/{p-b56d0866.system.entry.js → p-0ebc87b7.system.entry.js} +1 -1
- package/dist/ionic/{p-a0bb7b92.system.entry.js → p-10ec9af7.system.entry.js} +1 -1
- package/dist/ionic/{p-0add7211.entry.js → p-11786dc7.entry.js} +1 -1
- package/dist/ionic/{p-3dd98a73.entry.js → p-11a3973f.entry.js} +1 -1
- package/dist/ionic/{p-b4a51c42.system.js → p-1501b945.system.js} +1 -1
- package/dist/ionic/{p-e7ea9815.system.entry.js → p-19c379da.system.entry.js} +1 -1
- package/dist/ionic/{p-e3584231.system.js → p-19d9ceb8.system.js} +1 -1
- package/dist/ionic/{p-2d539df1.entry.js → p-1b27ac67.entry.js} +1 -1
- package/dist/ionic/{p-a3277a67.entry.js → p-1c249831.entry.js} +1 -1
- package/dist/ionic/{p-0e53f8ea.system.entry.js → p-20e0e75d.system.entry.js} +1 -1
- package/dist/ionic/{p-6de62649.system.entry.js → p-22827063.system.entry.js} +1 -1
- package/dist/ionic/{p-78aadecb.entry.js → p-26c4bf85.entry.js} +1 -1
- package/dist/ionic/{p-8de17614.system.entry.js → p-28740823.system.entry.js} +1 -1
- package/dist/ionic/{p-a1987850.entry.js → p-2894d5f6.entry.js} +1 -1
- package/dist/ionic/{p-9738fd82.js → p-290d3fe9.js} +1 -1
- package/dist/ionic/{p-3f5179b5.entry.js → p-2a583966.entry.js} +1 -1
- package/dist/ionic/{p-28249b10.system.entry.js → p-2cf21a15.system.entry.js} +1 -1
- package/dist/ionic/p-2df97906.system.entry.js +4 -0
- package/dist/ionic/{p-1161a793.entry.js → p-3313c481.entry.js} +1 -1
- package/dist/ionic/{p-2938823a.system.entry.js → p-332ea4d3.system.entry.js} +1 -1
- package/dist/ionic/{p-a0d7bb5e.system.js → p-3671f1b9.system.js} +1 -1
- package/dist/ionic/p-38531958.system.entry.js +4 -0
- package/dist/ionic/{p-98f3d827.entry.js → p-3dfc522b.entry.js} +1 -1
- package/dist/ionic/{p-88fde0e0.entry.js → p-3e8d5e53.entry.js} +1 -1
- package/dist/ionic/{p-ef126ae8.system.entry.js → p-41208f54.system.entry.js} +1 -1
- package/dist/ionic/p-42925096.system.entry.js +4 -0
- package/dist/ionic/{p-caf21b46.system.entry.js → p-4489dd20.system.entry.js} +1 -1
- package/dist/ionic/{p-72f6ff89.js → p-44a56556.js} +1 -1
- package/dist/ionic/{p-353b349d.entry.js → p-44dc52e5.entry.js} +1 -1
- package/dist/ionic/{p-c9a21dfd.system.entry.js → p-4685218a.system.entry.js} +1 -1
- package/dist/ionic/{p-01d14eba.system.entry.js → p-469dd571.system.entry.js} +1 -1
- package/dist/ionic/{p-80fa068e.entry.js → p-47bb15a1.entry.js} +1 -1
- package/dist/ionic/{p-b7010c69.system.entry.js → p-4981ea0a.system.entry.js} +1 -1
- package/dist/ionic/{p-438e1b8a.entry.js → p-4d145435.entry.js} +1 -1
- package/dist/ionic/{p-16756e94.system.entry.js → p-507ddbfe.system.entry.js} +1 -1
- package/dist/ionic/{p-8f5d30f5.entry.js → p-529b24fb.entry.js} +1 -1
- package/dist/ionic/p-52cfafe9.system.js +5 -0
- package/dist/ionic/{p-4155f352.system.js → p-5ad1fe3b.system.js} +1 -1
- package/dist/ionic/{p-d37b441e.entry.js → p-60959b71.entry.js} +1 -1
- package/dist/ionic/{p-28a2c2a2.entry.js → p-61e4d3ec.entry.js} +1 -1
- package/dist/ionic/{p-ada96dd0.system.entry.js → p-648ad047.system.entry.js} +1 -1
- package/dist/ionic/{p-51a087d6.entry.js → p-6855f26a.entry.js} +1 -1
- package/dist/ionic/{p-4fb51e61.system.entry.js → p-69641343.system.entry.js} +1 -1
- package/dist/ionic/{p-47b6ba5b.js → p-6ab03751.js} +1 -1
- package/dist/ionic/{p-3137c025.system.entry.js → p-6b0ce9b4.system.entry.js} +1 -1
- package/dist/ionic/{p-517a9885.system.entry.js → p-6c277fa2.system.entry.js} +1 -1
- package/dist/ionic/{p-46d400b4.system.entry.js → p-6e0539ea.system.entry.js} +1 -1
- package/dist/ionic/{p-dee7c1d0.system.entry.js → p-6fba0ce1.system.entry.js} +1 -1
- package/dist/ionic/{p-10437cc2.system.entry.js → p-745e3339.system.entry.js} +1 -1
- package/dist/ionic/{p-1b19c04b.entry.js → p-767f1a92.entry.js} +1 -1
- package/dist/ionic/{p-b936ec9d.entry.js → p-7dc892f8.entry.js} +1 -1
- package/dist/ionic/{p-5ecae037.js → p-7fae5c36.js} +1 -1
- package/dist/ionic/{p-b5f9f14c.entry.js → p-803efb5d.entry.js} +1 -1
- package/dist/ionic/{p-18ba8221.entry.js → p-806a9810.entry.js} +1 -1
- package/dist/ionic/{p-ea69616e.entry.js → p-84b567a6.entry.js} +1 -1
- package/dist/ionic/{p-b6f9d32a.entry.js → p-85f48531.entry.js} +1 -1
- package/dist/ionic/{p-908475e7.system.entry.js → p-8f301ac5.system.entry.js} +1 -1
- package/dist/ionic/{p-cfe57b1b.entry.js → p-928ee57a.entry.js} +1 -1
- package/dist/ionic/{p-4b4c7343.system.entry.js → p-932f2259.system.entry.js} +1 -1
- package/dist/ionic/p-950c05ad.entry.js +4 -0
- package/dist/ionic/{p-6ad34705.system.entry.js → p-96d4814f.system.entry.js} +1 -1
- package/dist/ionic/p-97174c1e.js +4 -0
- package/dist/ionic/{p-6de472cb.js → p-98f35d98.js} +1 -1
- package/dist/ionic/p-9a68d8ef.system.js +4 -0
- package/dist/ionic/{p-5b365ca7.system.js → p-9f94c72e.system.js} +1 -1
- package/dist/ionic/{p-1208f939.entry.js → p-9fb45814.entry.js} +1 -1
- package/dist/ionic/{p-3e6b47e8.system.entry.js → p-9fda6824.system.entry.js} +1 -1
- package/dist/ionic/{p-588fdf40.entry.js → p-a06501e3.entry.js} +1 -1
- package/dist/ionic/{p-31fcb233.system.js → p-a074be82.system.js} +1 -1
- package/dist/ionic/{p-17da5ed1.entry.js → p-a3013394.entry.js} +1 -1
- package/dist/ionic/{p-dfd9432a.entry.js → p-a3ca2e64.entry.js} +1 -1
- package/dist/ionic/{p-d032f825.system.entry.js → p-a42ef163.system.entry.js} +1 -1
- package/dist/ionic/{p-8314281e.system.js → p-a49931aa.system.js} +1 -1
- package/dist/ionic/{p-e6d68e02.system.entry.js → p-a821750c.system.entry.js} +1 -1
- package/dist/ionic/{p-5bebc7b3.system.entry.js → p-abd5d0d5.system.entry.js} +1 -1
- package/dist/ionic/{p-6fbecbda.entry.js → p-ae4b7df8.entry.js} +1 -1
- package/dist/ionic/{p-a9978d08.entry.js → p-aee39e06.entry.js} +1 -1
- package/dist/ionic/{p-e24ce1e5.system.js → p-afa9f205.system.js} +1 -1
- package/dist/ionic/{p-c91ccbfa.system.entry.js → p-b7058a0e.system.entry.js} +1 -1
- package/dist/ionic/{p-feae5133.entry.js → p-b78e6a44.entry.js} +1 -1
- package/dist/ionic/{p-cce9f61a.system.entry.js → p-b7a2ffc9.system.entry.js} +1 -1
- package/dist/ionic/{p-b3b3efba.system.entry.js → p-b8a9e195.system.entry.js} +1 -1
- package/dist/ionic/{p-f3752035.entry.js → p-b964aba3.entry.js} +1 -1
- package/dist/ionic/{p-6e70dd1a.system.entry.js → p-beeed22c.system.entry.js} +1 -1
- package/dist/ionic/{p-f8a5bb89.entry.js → p-c08fe2c0.entry.js} +1 -1
- package/dist/ionic/{p-4d67d27a.entry.js → p-c1701827.entry.js} +1 -1
- package/dist/ionic/{p-5eda1d7d.entry.js → p-c5acfeb1.entry.js} +1 -1
- package/dist/ionic/{p-9709ebd8.system.entry.js → p-cb8dff22.system.entry.js} +1 -1
- package/dist/ionic/{p-042e6f4b.entry.js → p-cd1b920b.entry.js} +1 -1
- package/dist/ionic/p-cd574dfa.js +4 -0
- package/dist/ionic/{p-9b7f0b0f.entry.js → p-cf53213c.entry.js} +1 -1
- package/dist/ionic/{p-b6f5e4f2.system.entry.js → p-d93eed83.system.entry.js} +1 -1
- package/dist/ionic/{p-e94c392d.entry.js → p-da5e2652.entry.js} +1 -1
- package/dist/ionic/p-dc6d8647.entry.js +4 -0
- package/dist/ionic/{p-7d92bf15.system.entry.js → p-dc71e4ef.system.entry.js} +1 -1
- package/dist/ionic/{p-6577aea9.system.entry.js → p-ddd48faf.system.entry.js} +1 -1
- package/dist/ionic/p-e2903cdc.system.entry.js +4 -0
- package/dist/ionic/{p-2092f39f.entry.js → p-e33d1ebc.entry.js} +1 -1
- package/dist/ionic/{p-8d69a624.entry.js → p-ebe8bd8a.entry.js} +1 -1
- package/dist/ionic/{p-39c31982.system.entry.js → p-ec652bc0.system.entry.js} +1 -1
- package/dist/ionic/{p-c847fb35.system.entry.js → p-f0504446.system.entry.js} +1 -1
- package/dist/ionic/{p-4f3ae45a.entry.js → p-f2bfd3d7.entry.js} +1 -1
- package/dist/ionic/{p-2d3b9fa3.system.entry.js → p-f434bcf3.system.entry.js} +1 -1
- package/dist/ionic/{p-33a37fad.system.js → p-f6e9c227.system.js} +1 -1
- package/dist/ionic/{p-251666e2.entry.js → p-f894e0ad.entry.js} +1 -1
- package/hydrate/index.js +88 -45
- package/package.json +2 -2
- package/dist/esm-es5/app-globals-722340c4.js +0 -4
- package/dist/esm-es5/index-08d686eb.js +0 -5
- package/dist/esm-es5/md.transition-43c2874d.js +0 -4
- package/dist/ionic/p-05d83227.system.entry.js +0 -4
- package/dist/ionic/p-1786bc72.js +0 -4
- package/dist/ionic/p-350f7292.system.entry.js +0 -4
- package/dist/ionic/p-564af202.system.entry.js +0 -4
- package/dist/ionic/p-7ee0f3f2.entry.js +0 -4
- package/dist/ionic/p-91d33c4a.js +0 -4
- package/dist/ionic/p-9e447eb1.system.js +0 -4
- package/dist/ionic/p-a4afcc88.entry.js +0 -4
- package/dist/ionic/p-afd6ca9d.entry.js +0 -4
- package/dist/ionic/p-d3b030b8.system.js +0 -5
- package/dist/ionic/p-fba0a6e7.system.entry.js +0 -4
package/dist/cjs/ionic.cjs.js
CHANGED
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
|
|
6
6
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
7
7
|
|
|
8
|
-
const index = require('./index-
|
|
9
|
-
const appGlobals = require('./app-globals-
|
|
10
|
-
require('./ionic-global-
|
|
8
|
+
const index = require('./index-50dcfe2f.js');
|
|
9
|
+
const appGlobals = require('./app-globals-7def22c8.js');
|
|
10
|
+
require('./ionic-global-a4edbf03.js');
|
|
11
11
|
|
|
12
12
|
/*
|
|
13
|
-
Stencil Client Patch Browser v4.8.
|
|
13
|
+
Stencil Client Patch Browser v4.8.2 | MIT Licensed | https://stenciljs.com
|
|
14
14
|
*/
|
|
15
15
|
const patchBrowser = () => {
|
|
16
16
|
const importMeta = (typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.src || new URL('ionic.cjs.js', document.baseURI).href));
|
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
6
|
const animation = require('./animation-9b401d39.js');
|
|
7
|
-
const index = require('./index-
|
|
7
|
+
const index = require('./index-17ab7794.js');
|
|
8
8
|
require('./index-c8d52405.js');
|
|
9
9
|
require('./helpers-76bb7efb.js');
|
|
10
|
-
require('./index-
|
|
10
|
+
require('./index-50dcfe2f.js');
|
|
11
11
|
|
|
12
12
|
const DURATION = 540;
|
|
13
13
|
// TODO(FW-2832): types
|
package/dist/cjs/loader.cjs.js
CHANGED
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
|
|
6
6
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
7
7
|
|
|
8
|
-
const index = require('./index-
|
|
9
|
-
const appGlobals = require('./app-globals-
|
|
10
|
-
require('./ionic-global-
|
|
8
|
+
const index = require('./index-50dcfe2f.js');
|
|
9
|
+
const appGlobals = require('./app-globals-7def22c8.js');
|
|
10
|
+
require('./ionic-global-a4edbf03.js');
|
|
11
11
|
|
|
12
12
|
const defineCustomElements = (win, options) => {
|
|
13
13
|
if (typeof window === 'undefined') return undefined;
|
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
6
|
const animation = require('./animation-9b401d39.js');
|
|
7
|
-
const index = require('./index-
|
|
7
|
+
const index = require('./index-17ab7794.js');
|
|
8
8
|
require('./index-c8d52405.js');
|
|
9
9
|
require('./helpers-76bb7efb.js');
|
|
10
|
-
require('./index-
|
|
10
|
+
require('./index-50dcfe2f.js');
|
|
11
11
|
|
|
12
12
|
const mdTransitionAnimation = (_, opts) => {
|
|
13
13
|
var _a, _b, _c;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
6
|
const index = require('./index-c8d52405.js');
|
|
7
|
-
const ionicGlobal = require('./ionic-global-
|
|
7
|
+
const ionicGlobal = require('./ionic-global-a4edbf03.js');
|
|
8
8
|
const frameworkDelegate = require('./framework-delegate-1c29b14a.js');
|
|
9
9
|
const hardwareBackButton = require('./hardware-back-button-76833cac.js');
|
|
10
10
|
const helpers = require('./helpers-76bb7efb.js');
|
|
@@ -269,15 +269,34 @@ export class Input {
|
|
|
269
269
|
if (!this.shouldClearOnEdit()) {
|
|
270
270
|
return;
|
|
271
271
|
}
|
|
272
|
+
/**
|
|
273
|
+
* The following keys do not modify the
|
|
274
|
+
* contents of the input. As a result, pressing
|
|
275
|
+
* them should not edit the input.
|
|
276
|
+
*
|
|
277
|
+
* We can't check to see if the value of the input
|
|
278
|
+
* was changed because we call checkClearOnEdit
|
|
279
|
+
* in a keydown listener, and the key has not yet
|
|
280
|
+
* been added to the input.
|
|
281
|
+
*/
|
|
282
|
+
const IGNORED_KEYS = ['Enter', 'Tab', 'Shift', 'Meta', 'Alt', 'Control'];
|
|
283
|
+
const pressedIgnoredKey = IGNORED_KEYS.includes(ev.key);
|
|
272
284
|
/**
|
|
273
285
|
* Clear the input if the control has not been previously cleared during focus.
|
|
274
286
|
* Do not clear if the user hitting enter to submit a form.
|
|
275
287
|
*/
|
|
276
|
-
if (!this.didInputClearOnEdit && this.hasValue() &&
|
|
288
|
+
if (!this.didInputClearOnEdit && this.hasValue() && !pressedIgnoredKey) {
|
|
277
289
|
this.value = '';
|
|
278
290
|
this.emitInputChange(ev);
|
|
279
291
|
}
|
|
280
|
-
|
|
292
|
+
/**
|
|
293
|
+
* Pressing an IGNORED_KEYS first and
|
|
294
|
+
* then an allowed key will cause the input to not
|
|
295
|
+
* be cleared.
|
|
296
|
+
*/
|
|
297
|
+
if (!pressedIgnoredKey) {
|
|
298
|
+
this.didInputClearOnEdit = true;
|
|
299
|
+
}
|
|
281
300
|
}
|
|
282
301
|
hasValue() {
|
|
283
302
|
return this.getValue().length > 0;
|
|
@@ -3,6 +3,7 @@
|
|
|
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'];
|
|
6
7
|
configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
7
8
|
test.describe(title('input: clearOnEdit'), () => {
|
|
8
9
|
test('should clear when typed into', async ({ page }) => {
|
|
@@ -13,21 +14,40 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
13
14
|
await ionInput.next();
|
|
14
15
|
await expect(input).toHaveJSProperty('value', 'h');
|
|
15
16
|
});
|
|
16
|
-
test('should not clear
|
|
17
|
-
await page.setContent(`<ion-input value="
|
|
17
|
+
test('should not clear the input if it does not have an initial value when typing', async ({ page }) => {
|
|
18
|
+
await page.setContent(`<ion-input label="input" value="" clear-on-edit="true"></ion-input>`, config);
|
|
18
19
|
const input = page.locator('ion-input');
|
|
19
|
-
await input.
|
|
20
|
-
await
|
|
21
|
-
await
|
|
22
|
-
|
|
20
|
+
await input.click();
|
|
21
|
+
await input.type('hello world');
|
|
22
|
+
await expect(input).toHaveJSProperty('value', 'hello world');
|
|
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
|
+
});
|
|
23
34
|
});
|
|
24
|
-
test('should
|
|
35
|
+
test('should clear after when pressing valid key after pressing ignored key', async ({ page }) => {
|
|
36
|
+
test.info().annotations.push({
|
|
37
|
+
type: 'issue',
|
|
38
|
+
description: 'https://github.com/ionic-team/ionic-framework/issues/28633',
|
|
39
|
+
});
|
|
25
40
|
await page.setContent(`<ion-input value="abc" clear-on-edit="true" aria-label="input"></ion-input>`, config);
|
|
26
41
|
const input = page.locator('ion-input');
|
|
27
42
|
await input.locator('input').focus();
|
|
28
|
-
|
|
43
|
+
// ignored
|
|
44
|
+
await page.keyboard.press('Shift');
|
|
29
45
|
await page.waitForChanges();
|
|
30
46
|
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');
|
|
31
51
|
});
|
|
32
52
|
});
|
|
33
53
|
});
|
|
@@ -418,6 +418,12 @@ button, a {
|
|
|
418
418
|
::slotted(ion-label:not([slot=end])) {
|
|
419
419
|
flex: 1;
|
|
420
420
|
width: min-content;
|
|
421
|
+
/**
|
|
422
|
+
* We allow labels in the default
|
|
423
|
+
* slot to grow. However, we do not
|
|
424
|
+
* want them to grow indefinitely.
|
|
425
|
+
*/
|
|
426
|
+
max-width: 100%;
|
|
421
427
|
}
|
|
422
428
|
|
|
423
429
|
:host(.item-input) {
|
|
@@ -418,6 +418,12 @@ button, a {
|
|
|
418
418
|
::slotted(ion-label:not([slot=end])) {
|
|
419
419
|
flex: 1;
|
|
420
420
|
width: min-content;
|
|
421
|
+
/**
|
|
422
|
+
* We allow labels in the default
|
|
423
|
+
* slot to grow. However, we do not
|
|
424
|
+
* want them to grow indefinitely.
|
|
425
|
+
*/
|
|
426
|
+
max-width: 100%;
|
|
421
427
|
}
|
|
422
428
|
|
|
423
429
|
:host(.item-input) {
|
|
@@ -64,3 +64,28 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
|
64
64
|
});
|
|
65
65
|
});
|
|
66
66
|
});
|
|
67
|
+
configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
68
|
+
test.describe(title('label: text wrapping in item'), () => {
|
|
69
|
+
test('long text should not cause label to expand infinitely', async ({ page }) => {
|
|
70
|
+
await page.setContent(`
|
|
71
|
+
<style>
|
|
72
|
+
div {
|
|
73
|
+
text-overflow: ellipsis;
|
|
74
|
+
overflow: hidden;
|
|
75
|
+
white-space: nowrap;
|
|
76
|
+
}
|
|
77
|
+
</style>
|
|
78
|
+
<ion-item>
|
|
79
|
+
<ion-label>
|
|
80
|
+
<!-- This text should be truncated with ellipses -->
|
|
81
|
+
<div>
|
|
82
|
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
|
83
|
+
</div>
|
|
84
|
+
</ion-label>
|
|
85
|
+
</ion-item>
|
|
86
|
+
`, config);
|
|
87
|
+
const item = page.locator('ion-item');
|
|
88
|
+
await expect(item).toHaveScreenshot(screenshot(`label-item-wrap`));
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
});
|
|
@@ -305,14 +305,13 @@ ion-backdrop {
|
|
|
305
305
|
left: 0;
|
|
306
306
|
right: 0;
|
|
307
307
|
width: auto;
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
box-shadow: none !important;
|
|
308
|
+
transform: none;
|
|
309
|
+
box-shadow: none;
|
|
311
310
|
}
|
|
312
311
|
|
|
313
312
|
: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 */
|
|
316
315
|
}
|
|
317
316
|
|
|
318
317
|
/**
|
|
@@ -305,14 +305,13 @@ ion-backdrop {
|
|
|
305
305
|
left: 0;
|
|
306
306
|
right: 0;
|
|
307
307
|
width: auto;
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
box-shadow: none !important;
|
|
308
|
+
transform: none;
|
|
309
|
+
box-shadow: none;
|
|
311
310
|
}
|
|
312
311
|
|
|
313
312
|
: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 */
|
|
316
315
|
}
|
|
317
316
|
|
|
318
317
|
/**
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
+
*/
|
|
4
|
+
import { expect } from "@playwright/test";
|
|
5
|
+
import { configs, test } from "../../../../utils/test/playwright/index";
|
|
6
|
+
/**
|
|
7
|
+
* This behavior does not vary across directions.
|
|
8
|
+
*/
|
|
9
|
+
configs({ directions: ['ltr'] }).forEach(({ title, config, screenshot }) => {
|
|
10
|
+
test.describe(title('menu: custom'), () => {
|
|
11
|
+
test('should allow styling the menu box shadow when inside a split pane', async ({ page }) => {
|
|
12
|
+
test.info().annotations.push({
|
|
13
|
+
type: 'issue',
|
|
14
|
+
description: 'https://github.com/ionic-team/ionic-framework/issues/21530',
|
|
15
|
+
});
|
|
16
|
+
await page.setContent(`
|
|
17
|
+
<style>
|
|
18
|
+
ion-split-pane {
|
|
19
|
+
--side-width: 200px;
|
|
20
|
+
--side-min-width: 200px;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
ion-menu {
|
|
24
|
+
box-shadow: 10px 5px 5px red;
|
|
25
|
+
z-index: 1;
|
|
26
|
+
}
|
|
27
|
+
</style>
|
|
28
|
+
|
|
29
|
+
<ion-app>
|
|
30
|
+
<ion-split-pane when="xs" id="splitPane" content-id="split-content">
|
|
31
|
+
<ion-menu side="start" content-id="split-content">
|
|
32
|
+
<ion-header>
|
|
33
|
+
<ion-toolbar color="secondary">
|
|
34
|
+
<ion-title>Menu</ion-title>
|
|
35
|
+
</ion-toolbar>
|
|
36
|
+
</ion-header>
|
|
37
|
+
|
|
38
|
+
<ion-content class="ion-padding">Menu Content</ion-content>
|
|
39
|
+
</ion-menu>
|
|
40
|
+
|
|
41
|
+
<div class="ion-page" id="split-content">
|
|
42
|
+
<ion-header>
|
|
43
|
+
<ion-toolbar>
|
|
44
|
+
<ion-buttons slot="start">
|
|
45
|
+
<ion-menu-button></ion-menu-button>
|
|
46
|
+
</ion-buttons>
|
|
47
|
+
|
|
48
|
+
<ion-title>Content</ion-title>
|
|
49
|
+
</ion-toolbar>
|
|
50
|
+
</ion-header>
|
|
51
|
+
|
|
52
|
+
<ion-content class="ion-padding">Main Content</ion-content>
|
|
53
|
+
</div>
|
|
54
|
+
</ion-split-pane>
|
|
55
|
+
</ion-app>
|
|
56
|
+
`, config);
|
|
57
|
+
const app = page.locator('ion-app');
|
|
58
|
+
await expect(app).toHaveScreenshot(screenshot(`menu-custom-split-pane`));
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
});
|
|
@@ -3,6 +3,7 @@
|
|
|
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'];
|
|
6
7
|
configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
|
|
7
8
|
test.describe(title('textarea: clearOnEdit'), () => {
|
|
8
9
|
test('should clear when typed into', async ({ page }) => {
|
|
@@ -21,5 +22,40 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
21
22
|
await page.waitForChanges();
|
|
22
23
|
await expect(textarea).toHaveJSProperty('value', 'abc');
|
|
23
24
|
});
|
|
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
|
+
});
|
|
24
60
|
});
|
|
25
61
|
});
|
|
@@ -238,15 +238,38 @@ 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);
|
|
241
257
|
/**
|
|
242
258
|
* Clear the textarea if the control has not been previously cleared
|
|
243
259
|
* during focus.
|
|
244
260
|
*/
|
|
245
|
-
if (!this.didTextareaClearOnEdit && this.hasValue() &&
|
|
261
|
+
if (!this.didTextareaClearOnEdit && this.hasValue() && !pressedIgnoredKey) {
|
|
246
262
|
this.value = '';
|
|
247
263
|
this.emitInputChange(ev);
|
|
248
264
|
}
|
|
249
|
-
|
|
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
|
+
}
|
|
250
273
|
}
|
|
251
274
|
focusChange() {
|
|
252
275
|
this.emitStyle();
|
package/dist/docs.json
CHANGED
|
@@ -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-b7d870cf.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
|
|
|
@@ -5,7 +5,7 @@ import { d as doc } from './index-a5d50daf.js';
|
|
|
5
5
|
import { MENU_BACK_BUTTON_PRIORITY } from './hardware-back-button-b2bc76db.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-1f99b929.js';
|
|
9
9
|
import { c as createAnimation } from './animation-dde8cc0d.js';
|
|
10
10
|
|
|
11
11
|
/**
|
|
@@ -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-b7d870cf.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-3376ccb2.js');
|
|
14
|
+
const mdTransitionAnimation = () => import('./md.transition-f992779f.js');
|
|
15
15
|
// TODO(FW-2832): types
|
|
16
16
|
const transition = (opts) => {
|
|
17
17
|
return new Promise((resolve, reject) => {
|
|
@@ -960,8 +960,10 @@ 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;
|
|
963
966
|
{
|
|
964
|
-
elm['s-hn'] = hostTagName;
|
|
965
967
|
if (newVNode.$flags$ & (2 /* VNODE_FLAGS.isSlotFallback */ | 1 /* VNODE_FLAGS.isSlotReference */)) {
|
|
966
968
|
// remember the content reference comment
|
|
967
969
|
elm['s-sr'] = true;
|
|
@@ -974,9 +976,11 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
|
|
|
974
976
|
// check if we've got an old vnode for this slot
|
|
975
977
|
oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];
|
|
976
978
|
if (oldVNode && oldVNode.$tag$ === newVNode.$tag$ && oldParentVNode.$elm$) {
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
979
|
+
{
|
|
980
|
+
// we've got an old slot vnode and the wrapper is being replaced
|
|
981
|
+
// so let's move the old slot content back to its original location
|
|
982
|
+
putBackInOriginalLocation(oldParentVNode.$elm$, false);
|
|
983
|
+
}
|
|
980
984
|
}
|
|
981
985
|
}
|
|
982
986
|
}
|
|
@@ -989,9 +993,6 @@ const putBackInOriginalLocation = (parentElm, recursive) => {
|
|
|
989
993
|
for (let i = oldSlotChildNodes.length - 1; i >= 0; i--) {
|
|
990
994
|
const childNode = oldSlotChildNodes[i];
|
|
991
995
|
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();
|
|
995
996
|
// and relocate it back to it's original location
|
|
996
997
|
parentReferenceNode(childNode).insertBefore(childNode, referenceNode(childNode));
|
|
997
998
|
// remove the old original location comment entirely
|
|
@@ -1634,7 +1635,7 @@ const nullifyVNodeRefs = (vNode) => {
|
|
|
1634
1635
|
* @param isInitialLoad whether or not this is the first call after page load
|
|
1635
1636
|
*/
|
|
1636
1637
|
const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
|
|
1637
|
-
var _a, _b;
|
|
1638
|
+
var _a, _b, _c, _d;
|
|
1638
1639
|
const hostElm = hostRef.$hostElement$;
|
|
1639
1640
|
const cmpMeta = hostRef.$cmpMeta$;
|
|
1640
1641
|
const oldVNode = hostRef.$vnode$ || newVNode(null, null);
|
|
@@ -1749,12 +1750,24 @@ const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
|
|
|
1749
1750
|
// we're just going to append the node as the last child of the parent. Passing
|
|
1750
1751
|
// `null` as the second arg here will trigger that behavior.
|
|
1751
1752
|
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
|
+
}
|
|
1752
1760
|
}
|
|
1753
1761
|
}
|
|
1754
1762
|
}
|
|
1755
1763
|
else {
|
|
1756
1764
|
// this node doesn't have a slot home to go to, so let's hide it
|
|
1757
1765
|
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
|
+
}
|
|
1758
1771
|
nodeToRelocate.hidden = true;
|
|
1759
1772
|
}
|
|
1760
1773
|
}
|
package/dist/esm/index.js
CHANGED
|
@@ -2,19 +2,19 @@
|
|
|
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-4743453d.js';
|
|
6
|
+
export { iosTransitionAnimation } from './ios.transition-3376ccb2.js';
|
|
7
|
+
export { mdTransitionAnimation } from './md.transition-f992779f.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-1f99b929.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-1193f005.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-b33f6bca.js';
|
|
16
16
|
import './index-a5d50daf.js';
|
|
17
|
-
import './index-
|
|
17
|
+
import './index-b7d870cf.js';
|
|
18
18
|
import './gesture-controller-1bf57181.js';
|
|
19
19
|
import './hardware-back-button-b2bc76db.js';
|
|
20
20
|
import './index-9b0d46f4.js';
|
|
@@ -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-b7d870cf.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-1f99b929.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}";
|