@ionic/core 7.5.4-dev.11701112913.1ea61220 → 7.5.4-dev.11702935369.11a4baba
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/animation.js +11 -12
- package/components/checkbox.js +0 -2
- package/components/index4.js +12 -10
- package/components/index5.js +22 -0
- package/components/input-shims.js +7 -12
- package/components/input.utils.js +2 -3
- package/components/ion-datetime.js +2 -2
- package/components/ion-input.js +8 -31
- package/components/ion-modal.js +2 -2
- package/components/ion-range.js +0 -2
- package/components/ion-select.js +29 -44
- package/components/ion-skeleton-text.js +1 -14
- package/components/ion-textarea.js +7 -30
- package/components/ion-toast.js +74 -419
- package/components/ion-toggle.js +0 -2
- package/components/item.js +2 -2
- package/components/label.js +2 -2
- package/components/overlays.js +1 -2
- package/components/radio-group.js +0 -2
- package/components/radio.js +2 -42
- package/dist/cjs/{animation-d101aa7a.js → animation-1083855c.js} +12 -13
- package/dist/cjs/{app-globals-ef077808.js → app-globals-d1892126.js} +1 -1
- package/dist/cjs/{button-active-69c3bee4.js → button-active-e93ab34d.js} +2 -2
- package/dist/cjs/{capacitor-f68447d3.js → capacitor-2ffba62a.js} +1 -1
- package/dist/cjs/{haptic-a74c2767.js → haptic-678abc9f.js} +1 -1
- package/dist/cjs/index-306a7476.js +32 -0
- package/dist/cjs/{index-9146d04a.js → index-4323b635.js} +14 -12
- package/dist/cjs/{index-adbcffee.js → index-84c4c696.js} +3 -3
- package/dist/cjs/{index-e9634bc9.js → index-9f379eaa.js} +1 -1
- package/dist/cjs/index.cjs.js +10 -10
- package/dist/cjs/{input-shims-3e3f35b9.js → input-shims-b0a75a01.js} +10 -15
- package/dist/cjs/{input.utils-bdb6953c.js → input.utils-0fe3097c.js} +3 -4
- package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -8
- package/dist/cjs/ion-alert.cjs.entry.js +8 -8
- package/dist/cjs/ion-app_8.cjs.entry.js +11 -11
- package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-back-button.cjs.entry.js +3 -3
- package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-card_5.cjs.entry.js +2 -2
- package/dist/cjs/ion-checkbox.cjs.entry.js +2 -4
- 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 +10 -10
- package/dist/cjs/ion-fab_3.cjs.entry.js +3 -3
- package/dist/cjs/ion-img.cjs.entry.js +2 -2
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-input.cjs.entry.js +14 -37
- package/dist/cjs/ion-item-option_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-item_8.cjs.entry.js +7 -20
- package/dist/cjs/ion-loading.cjs.entry.js +5 -5
- package/dist/cjs/ion-menu_3.cjs.entry.js +8 -8
- package/dist/cjs/ion-modal.cjs.entry.js +10 -10
- package/dist/cjs/ion-nav_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-picker-column-internal.cjs.entry.js +5 -5
- package/dist/cjs/ion-picker-internal.cjs.entry.js +1 -1
- package/dist/cjs/ion-popover.cjs.entry.js +6 -6
- package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
- package/dist/cjs/ion-radio_2.cjs.entry.js +3 -8
- package/dist/cjs/ion-range.cjs.entry.js +2 -4
- package/dist/cjs/ion-refresher_2.cjs.entry.js +7 -7
- package/dist/cjs/ion-reorder_2.cjs.entry.js +6 -6
- 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 +3 -3
- package/dist/cjs/ion-segment_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-select_3.cjs.entry.js +38 -54
- package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
- package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +6 -6
- 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 +12 -35
- package/dist/cjs/ion-toast.cjs.entry.js +93 -435
- package/dist/cjs/ion-toggle.cjs.entry.js +6 -8
- package/dist/cjs/{ionic-global-4538d91c.js → ionic-global-91f1f8f2.js} +1 -1
- package/dist/cjs/ionic.cjs.js +4 -4
- package/dist/cjs/{ios.transition-7972d9e3.js → ios.transition-facbe500.js} +4 -4
- package/dist/cjs/{keyboard-840107b3.js → keyboard-38f2bb7b.js} +3 -3
- package/dist/cjs/{keyboard-controller-019f42df.js → keyboard-controller-50beb83a.js} +2 -2
- package/dist/cjs/{keyboard-43df0428.js → keyboard-fd7db491.js} +1 -1
- package/dist/cjs/loader.cjs.js +4 -4
- package/dist/cjs/{md.transition-6e61a10f.js → md.transition-0a7d53f1.js} +4 -4
- package/dist/cjs/{notch-controller-c22d1344.js → notch-controller-f4f6af5d.js} +1 -1
- package/dist/cjs/{overlays-ba1a1e21.js → overlays-91bb8ff7.js} +2 -4
- package/dist/cjs/{status-tap-2e9f9c86.js → status-tap-a9d8edcf.js} +1 -1
- package/dist/collection/components/checkbox/checkbox.js +0 -2
- package/dist/collection/components/datetime/datetime.ios.css +0 -1
- package/dist/collection/components/datetime/datetime.md.css +0 -1
- package/dist/collection/components/icon/test/dir/heart-broken.svg +0 -0
- package/dist/collection/components/input/input.ios.css +3 -10
- package/dist/collection/components/input/input.js +6 -31
- package/dist/collection/components/input/input.md.css +12 -13
- package/dist/collection/components/item/item.ios.css +15 -85
- package/dist/collection/components/item/item.md.css +15 -85
- package/dist/collection/components/item/test/basic/item.e2e.js +0 -26
- package/dist/collection/components/item/test/disabled/item.e2e.js +1 -0
- package/dist/collection/components/item/test/icons/heart-broken.svg +0 -0
- package/dist/collection/components/item/test/text/item.e2e.js +14 -0
- package/dist/collection/components/label/label.ios.css +3 -14
- package/dist/collection/components/label/label.md.css +3 -14
- package/dist/collection/components/modal/gestures/swipe-to-close.js +1 -2
- package/dist/collection/components/note/test/a11y/note.e2e.js +0 -43
- package/dist/collection/components/radio/radio.js +2 -5
- package/dist/collection/components/radio-group/radio-group.js +0 -24
- package/dist/collection/components/range/range.js +0 -2
- package/dist/collection/components/select/select.ios.css +7 -61
- package/dist/collection/components/select/select.js +28 -45
- package/dist/collection/components/select/select.md.css +19 -64
- package/dist/collection/components/select/test/label/select.e2e.js +1 -1
- package/dist/collection/components/select/test/legacy/wrapping/select.e2e.js +1 -1
- package/dist/collection/components/skeleton-text/skeleton-text.js +0 -39
- package/dist/collection/components/textarea/textarea.ios.css +5 -37
- package/dist/collection/components/textarea/textarea.js +5 -30
- package/dist/collection/components/textarea/textarea.md.css +14 -47
- package/dist/collection/components/toast/animations/ios.enter.js +1 -2
- package/dist/collection/components/toast/animations/md.enter.js +3 -4
- package/dist/collection/components/toast/animations/utils.js +14 -20
- package/dist/collection/components/toast/toast.ios.css +10 -10
- package/dist/collection/components/toast/toast.js +1 -104
- package/dist/collection/components/toast/toast.md.css +0 -10
- package/dist/collection/components/toggle/toggle.js +0 -2
- package/dist/collection/utils/animation/animation.js +11 -12
- package/dist/collection/utils/browser/index.js +22 -0
- package/dist/collection/utils/forms/index.js +0 -1
- package/dist/collection/utils/input-shims/input-shims.js +6 -12
- package/dist/collection/utils/menu-controller/index.js +12 -10
- package/dist/collection/utils/overlays.js +0 -1
- package/dist/collection/utils/slot-mutation-controller.js +2 -3
- package/dist/docs.json +2 -127
- package/dist/esm/{animation-cf3dd234.js → animation-8aa13916.js} +12 -13
- package/dist/esm/{app-globals-ba8b3a06.js → app-globals-8d413354.js} +1 -1
- package/dist/esm/{button-active-109ba60d.js → button-active-c7a04c9a.js} +2 -2
- package/dist/esm/{capacitor-f1f25364.js → capacitor-b4979570.js} +1 -1
- package/dist/esm/{haptic-1a66d69f.js → haptic-1243b917.js} +1 -1
- package/dist/esm/index-7a14ecec.js +29 -0
- package/dist/esm/{index-50582f1c.js → index-d62333a6.js} +3 -3
- package/dist/esm/{index-6a48e009.js → index-e2052f20.js} +14 -12
- package/dist/esm/{index-c9e82353.js → index-f0cc4e14.js} +1 -1
- package/dist/esm/index.js +10 -10
- package/dist/esm/{input-shims-1d767845.js → input-shims-d0c93e5d.js} +9 -14
- package/dist/esm/{input.utils-2cf5e372.js → input.utils-ec063df4.js} +3 -4
- package/dist/esm/ion-accordion_2.entry.js +3 -3
- package/dist/esm/ion-action-sheet.entry.js +8 -8
- package/dist/esm/ion-alert.entry.js +8 -8
- package/dist/esm/ion-app_8.entry.js +11 -11
- package/dist/esm/ion-avatar_3.entry.js +2 -2
- package/dist/esm/ion-back-button.entry.js +3 -3
- package/dist/esm/ion-backdrop.entry.js +2 -2
- package/dist/esm/ion-breadcrumb_2.entry.js +3 -3
- package/dist/esm/ion-button_2.entry.js +2 -2
- package/dist/esm/ion-card_5.entry.js +2 -2
- package/dist/esm/ion-checkbox.entry.js +2 -4
- 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 +10 -10
- package/dist/esm/ion-fab_3.entry.js +3 -3
- package/dist/esm/ion-img.entry.js +2 -2
- package/dist/esm/ion-infinite-scroll_2.entry.js +2 -2
- package/dist/esm/ion-input.entry.js +14 -37
- package/dist/esm/ion-item-option_3.entry.js +2 -2
- package/dist/esm/ion-item_8.entry.js +7 -20
- package/dist/esm/ion-loading.entry.js +5 -5
- package/dist/esm/ion-menu_3.entry.js +8 -8
- package/dist/esm/ion-modal.entry.js +10 -10
- package/dist/esm/ion-nav_2.entry.js +3 -3
- package/dist/esm/ion-picker-column-internal.entry.js +5 -5
- package/dist/esm/ion-picker-internal.entry.js +1 -1
- package/dist/esm/ion-popover.entry.js +6 -6
- package/dist/esm/ion-progress-bar.entry.js +2 -2
- package/dist/esm/ion-radio_2.entry.js +3 -8
- package/dist/esm/ion-range.entry.js +2 -4
- package/dist/esm/ion-refresher_2.entry.js +7 -7
- package/dist/esm/ion-reorder_2.entry.js +6 -6
- 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 +3 -3
- package/dist/esm/ion-segment_2.entry.js +2 -2
- package/dist/esm/ion-select_3.entry.js +34 -50
- package/dist/esm/ion-spinner.entry.js +2 -2
- package/dist/esm/ion-split-pane.entry.js +2 -2
- package/dist/esm/ion-tab-bar_2.entry.js +6 -6
- 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 +12 -35
- package/dist/esm/ion-toast.entry.js +77 -419
- package/dist/esm/ion-toggle.entry.js +6 -8
- package/dist/esm/{ionic-global-7efdecd0.js → ionic-global-8673c5ce.js} +1 -1
- package/dist/esm/ionic.js +5 -5
- package/dist/esm/{ios.transition-e20d71bc.js → ios.transition-2fdb6f26.js} +4 -4
- package/dist/esm/{keyboard-b6230bfb.js → keyboard-b063f012.js} +1 -1
- package/dist/esm/{keyboard-9f771a04.js → keyboard-b551279d.js} +3 -3
- package/dist/esm/{keyboard-controller-3f0faa10.js → keyboard-controller-0c2dce71.js} +2 -2
- package/dist/esm/loader.js +5 -5
- package/dist/esm/{md.transition-a8469407.js → md.transition-6f8b3cd0.js} +4 -4
- package/dist/esm/{notch-controller-3f79197e.js → notch-controller-8c9c0e54.js} +1 -1
- package/dist/esm/{overlays-d79b34b4.js → overlays-d4c45da6.js} +3 -4
- package/dist/esm/polyfills/core-js.js +0 -0
- package/dist/esm/polyfills/dom.js +0 -0
- package/dist/esm/polyfills/es5-html-element.js +0 -0
- package/dist/esm/polyfills/index.js +0 -0
- package/dist/esm/polyfills/system.js +0 -0
- package/dist/esm/{status-tap-7ca28a1c.js → status-tap-71db1a8f.js} +1 -1
- package/dist/esm-es5/{animation-cf3dd234.js → animation-8aa13916.js} +1 -1
- package/dist/esm-es5/app-globals-8d413354.js +4 -0
- package/dist/esm-es5/{button-active-109ba60d.js → button-active-c7a04c9a.js} +1 -1
- package/dist/esm-es5/{capacitor-f1f25364.js → capacitor-b4979570.js} +1 -1
- package/dist/esm-es5/{haptic-1a66d69f.js → haptic-1243b917.js} +1 -1
- package/dist/esm-es5/{index-50582f1c.js → index-d62333a6.js} +1 -1
- package/dist/esm-es5/index-e2052f20.js +4 -0
- package/dist/esm-es5/index-f0cc4e14.js +4 -0
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/input-shims-d0c93e5d.js +4 -0
- package/dist/esm-es5/input.utils-ec063df4.js +4 -0
- 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-7efdecd0.js → ionic-global-8673c5ce.js} +1 -1
- package/dist/esm-es5/ionic.js +1 -1
- package/dist/esm-es5/{ios.transition-e20d71bc.js → ios.transition-2fdb6f26.js} +1 -1
- package/dist/esm-es5/{keyboard-b6230bfb.js → keyboard-b063f012.js} +1 -1
- package/dist/esm-es5/{keyboard-9f771a04.js → keyboard-b551279d.js} +1 -1
- package/dist/esm-es5/{keyboard-controller-3f0faa10.js → keyboard-controller-0c2dce71.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/md.transition-6f8b3cd0.js +4 -0
- package/dist/esm-es5/{notch-controller-3f79197e.js → notch-controller-8c9c0e54.js} +1 -1
- package/dist/esm-es5/{overlays-d79b34b4.js → overlays-d4c45da6.js} +1 -1
- package/dist/esm-es5/{status-tap-7ca28a1c.js → status-tap-71db1a8f.js} +1 -1
- package/dist/html.html-data.json +1 -14
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/ionic.js +1 -1
- package/dist/ionic/p-02863edb.system.js +4 -0
- package/dist/ionic/{p-bf3396e1.entry.js → p-0335e66c.entry.js} +1 -1
- package/dist/ionic/{p-1b5b6845.system.entry.js → p-076e622f.system.entry.js} +1 -1
- package/dist/ionic/{p-35787a6f.entry.js → p-08dcf03a.entry.js} +1 -1
- package/dist/ionic/{p-4c50b357.system.entry.js → p-091702af.system.entry.js} +1 -1
- package/dist/ionic/{p-e53f2605.entry.js → p-094dbfa5.entry.js} +1 -1
- package/dist/ionic/{p-1fc6b5a5.system.entry.js → p-0993782a.system.entry.js} +1 -1
- package/dist/ionic/p-0d8e9076.system.entry.js +4 -0
- package/dist/ionic/p-0f23c3a5.entry.js +4 -0
- package/dist/ionic/p-0f4f11eb.entry.js +4 -0
- package/dist/ionic/{p-8a9760f7.system.entry.js → p-10a2ab8c.system.entry.js} +1 -1
- package/dist/ionic/{p-3fc0b7ba.entry.js → p-1289df52.entry.js} +1 -1
- package/dist/ionic/{p-35e25602.system.entry.js → p-14be0381.system.entry.js} +1 -1
- package/dist/ionic/{p-2151a4a4.system.entry.js → p-153ea88b.system.entry.js} +1 -1
- package/dist/ionic/{p-e4d66e2d.system.entry.js → p-176a386b.system.entry.js} +1 -1
- package/dist/ionic/{p-15512a5e.system.entry.js → p-1acd1607.system.entry.js} +1 -1
- package/dist/ionic/{p-eec1aa12.system.entry.js → p-1b16c2ef.system.entry.js} +1 -1
- package/dist/ionic/{p-a3434028.system.entry.js → p-1df460d5.system.entry.js} +1 -1
- package/dist/ionic/{p-0148306b.system.js → p-1e87e3fb.system.js} +1 -1
- package/dist/ionic/{p-3962542f.system.entry.js → p-202654b4.system.entry.js} +1 -1
- package/dist/ionic/p-276afddd.js +4 -0
- package/dist/ionic/{p-ce20c101.entry.js → p-287d76e0.entry.js} +1 -1
- package/dist/ionic/{p-20ff4d7f.system.entry.js → p-2954d245.system.entry.js} +1 -1
- package/dist/ionic/p-2ac243b7.entry.js +4 -0
- package/dist/ionic/p-2e8e0045.js +4 -0
- package/dist/ionic/{p-138a4a93.entry.js → p-31589ed7.entry.js} +1 -1
- package/dist/ionic/{p-70bf6086.system.entry.js → p-3299adbf.system.entry.js} +1 -1
- package/dist/ionic/p-3602001b.system.js +4 -0
- package/dist/ionic/p-3632220b.system.js +4 -0
- package/dist/ionic/{p-3dedd258.system.entry.js → p-3878d22f.system.entry.js} +1 -1
- package/dist/ionic/{p-957f3028.system.entry.js → p-38fbf9f5.system.entry.js} +1 -1
- package/dist/ionic/{p-13dd7d20.system.js → p-3b3046e8.system.js} +1 -1
- package/dist/ionic/{p-e5fd9f10.js → p-3bad5c1a.js} +1 -1
- package/dist/ionic/{p-0c40f7d3.system.js → p-3d074f21.system.js} +1 -1
- package/dist/ionic/p-3daa6ecf.js +4 -0
- package/dist/ionic/{p-510bc27b.entry.js → p-40f5a803.entry.js} +1 -1
- package/dist/ionic/{p-958f1c70.system.js → p-41477ad9.system.js} +1 -1
- package/dist/ionic/{p-a135e3ba.js → p-419eb426.js} +1 -1
- package/dist/ionic/{p-0e8335b9.entry.js → p-44723fa5.entry.js} +1 -1
- package/dist/ionic/{p-5b978c94.system.js → p-4639874e.system.js} +2 -2
- package/dist/ionic/p-4c724478.entry.js +4 -0
- package/dist/ionic/{p-f6d089a7.entry.js → p-4d06fd5b.entry.js} +1 -1
- package/dist/ionic/{p-938c4956.js → p-4f91b9c6.js} +1 -1
- package/dist/ionic/{p-ed8a02a2.system.entry.js → p-51086b36.system.entry.js} +1 -1
- package/dist/ionic/{p-abaa9b48.system.js → p-5504ca9b.system.js} +1 -1
- package/dist/ionic/{p-020dd47f.entry.js → p-55a8f9a3.entry.js} +1 -1
- package/dist/ionic/p-5916b355.system.entry.js +4 -0
- package/dist/ionic/{p-bedc16f0.system.entry.js → p-5b9cb91d.system.entry.js} +1 -1
- package/dist/ionic/{p-2d86b19a.entry.js → p-6008efa0.entry.js} +1 -1
- package/dist/ionic/{p-cb6c380e.system.entry.js → p-664cb3ad.system.entry.js} +1 -1
- package/dist/ionic/p-67eecef4.system.js +4 -0
- package/dist/ionic/{p-27923249.system.entry.js → p-6a61d423.system.entry.js} +1 -1
- package/dist/ionic/{p-e525dbea.entry.js → p-6e4225ed.entry.js} +1 -1
- package/dist/ionic/{p-00a10b94.system.entry.js → p-793625e5.system.entry.js} +1 -1
- package/dist/ionic/{p-89703003.entry.js → p-7e6cf80c.entry.js} +1 -1
- package/dist/ionic/{p-c7138053.system.entry.js → p-7eaa28eb.system.entry.js} +1 -1
- package/dist/ionic/{p-696c63fb.system.entry.js → p-7fd77f56.system.entry.js} +1 -1
- package/dist/ionic/{p-11cb4e19.js → p-81c818e7.js} +1 -1
- package/dist/ionic/p-843fe6e3.entry.js +4 -0
- package/dist/ionic/p-8708a93c.entry.js +4 -0
- package/dist/ionic/{p-ab1908ba.system.entry.js → p-889118cf.system.entry.js} +1 -1
- package/dist/ionic/{p-9471d511.system.entry.js → p-88cfa8f1.system.entry.js} +1 -1
- package/dist/ionic/{p-edd568c5.js → p-8bda8767.js} +1 -1
- package/dist/ionic/p-8c44e074.system.entry.js +4 -0
- package/dist/ionic/{p-53f75103.system.js → p-8c63eccf.system.js} +1 -1
- package/dist/ionic/{p-5885e9af.js → p-8cf94fc1.js} +1 -1
- package/dist/ionic/p-8d9c5be5.system.entry.js +4 -0
- package/dist/ionic/{p-5a7df436.entry.js → p-8f518e79.entry.js} +1 -1
- package/dist/ionic/p-910c1904.system.entry.js +4 -0
- package/dist/ionic/{p-47826f19.entry.js → p-93a2c76b.entry.js} +1 -1
- package/dist/ionic/p-94154db4.js +4 -0
- package/dist/ionic/{p-c4381a06.entry.js → p-952c64ea.entry.js} +1 -1
- package/dist/ionic/{p-60f25049.js → p-959e7a7a.js} +1 -1
- package/dist/ionic/p-97c65aa5.js +4 -0
- package/dist/ionic/p-9ab6f3e6.system.js +4 -0
- package/dist/ionic/p-9c7a56f0.entry.js +4 -0
- package/dist/ionic/{p-51b94085.system.entry.js → p-9c933855.system.entry.js} +1 -1
- package/dist/ionic/{p-c2e199ac.entry.js → p-9da6eef4.entry.js} +1 -1
- package/dist/ionic/p-9e4bb700.entry.js +4 -0
- package/dist/ionic/{p-50375f3b.system.entry.js → p-a134a81b.system.entry.js} +1 -1
- package/dist/ionic/p-a30595f3.system.entry.js +4 -0
- package/dist/ionic/p-a3b6e1b2.entry.js +4 -0
- package/dist/ionic/{p-d3278cb8.entry.js → p-a7c33806.entry.js} +1 -1
- package/dist/ionic/p-a809a205.js +4 -0
- package/dist/ionic/{p-aec8a70a.system.js → p-ab4cff27.system.js} +1 -1
- package/dist/ionic/p-ad227931.system.js +4 -0
- package/dist/ionic/{p-5c7107b4.system.entry.js → p-ae2e4e30.system.entry.js} +1 -1
- package/dist/ionic/{p-8be2b964.entry.js → p-b1200f55.entry.js} +1 -1
- package/dist/ionic/{p-400a78f3.system.entry.js → p-b4085a03.system.entry.js} +1 -1
- package/dist/ionic/{p-9292fd42.system.js → p-b4b4bb29.system.js} +1 -1
- package/dist/ionic/{p-6a309574.js → p-b923f3d7.js} +1 -1
- package/dist/ionic/{p-25b8d65c.entry.js → p-b95cc39b.entry.js} +1 -1
- package/dist/ionic/{p-3e8d7ed8.js → p-b977b57a.js} +1 -1
- package/dist/ionic/{p-f9a641fa.system.js → p-bba2ce59.system.js} +1 -1
- package/dist/ionic/{p-d73eb00e.entry.js → p-bd946be0.entry.js} +1 -1
- package/dist/ionic/p-c096895d.system.js +4 -0
- package/dist/ionic/{p-a03566c4.system.entry.js → p-c2af8468.system.entry.js} +2 -2
- package/dist/ionic/p-c3b62be8.system.entry.js +4 -0
- package/dist/ionic/{p-2fb115dc.entry.js → p-c5106edf.entry.js} +1 -1
- package/dist/ionic/p-c75422d5.entry.js +4 -0
- package/dist/ionic/p-c87d155e.entry.js +4 -0
- package/dist/ionic/p-cbe7738f.entry.js +4 -0
- package/dist/ionic/p-cc196b34.js +4 -0
- package/dist/ionic/{p-1511dc35.system.js → p-cc68ad40.system.js} +1 -1
- package/dist/ionic/{p-e7d20dfb.system.js → p-ccdcb022.system.js} +1 -1
- package/dist/ionic/{p-6825ff8d.entry.js → p-cd1c8ab2.entry.js} +1 -1
- package/dist/ionic/{p-a6880f79.system.entry.js → p-cd3a87bd.system.entry.js} +1 -1
- package/dist/ionic/{p-7dafac2c.system.entry.js → p-ce62bf2c.system.entry.js} +1 -1
- package/dist/ionic/{p-ebdaf11b.entry.js → p-ce9bf0ed.entry.js} +1 -1
- package/dist/ionic/p-d05b431a.system.entry.js +4 -0
- package/dist/ionic/{p-71e70a57.system.entry.js → p-d0c701d0.system.entry.js} +1 -1
- package/dist/ionic/{p-03a36678.entry.js → p-d1ac0094.entry.js} +1 -1
- package/dist/ionic/p-d1de1188.js +4 -0
- package/dist/ionic/{p-f8febce9.system.entry.js → p-d27ade6f.system.entry.js} +1 -1
- package/dist/ionic/p-d37d3ebc.system.entry.js +4 -0
- package/dist/ionic/{p-b3d50a72.entry.js → p-d59f70db.entry.js} +1 -1
- package/dist/ionic/{p-152998a6.system.entry.js → p-d9c86724.system.entry.js} +1 -1
- package/dist/ionic/{p-df18d20d.js → p-da26ba41.js} +1 -1
- package/dist/ionic/{p-4430713b.entry.js → p-da6b2907.entry.js} +1 -1
- package/dist/ionic/p-dee844d7.js +4 -0
- package/dist/ionic/{p-9939c98e.entry.js → p-e23c3d22.entry.js} +1 -1
- package/dist/ionic/{p-bc48e521.system.entry.js → p-ecbc7728.system.entry.js} +1 -1
- package/dist/ionic/{p-12d62aa9.entry.js → p-ef0d410f.entry.js} +1 -1
- package/dist/ionic/{p-6abde4f1.system.entry.js → p-f2743f0f.system.entry.js} +1 -1
- package/dist/ionic/{p-a9424586.entry.js → p-f30dabf4.entry.js} +1 -1
- package/dist/ionic/{p-3e1deb37.system.entry.js → p-f323209c.system.entry.js} +1 -1
- package/dist/ionic/{p-664cc492.entry.js → p-f33808d4.entry.js} +1 -1
- package/dist/ionic/{p-bc6e32d2.entry.js → p-f3d770d2.entry.js} +1 -1
- package/dist/ionic/p-f47f2024.entry.js +4 -0
- package/dist/ionic/p-f9336ef9.system.js +4 -0
- package/dist/ionic/{p-d2de097b.entry.js → p-fc758470.entry.js} +1 -1
- package/dist/ionic/p-ff5a10f9.system.js +4 -0
- package/dist/types/components/input/input.d.ts +0 -2
- package/dist/types/components/radio-group/radio-group-interface.d.ts +0 -1
- package/dist/types/components/radio-group/radio-group.d.ts +1 -8
- package/dist/types/components/router/router.d.ts +1 -2
- package/dist/types/components/select/select.d.ts +1 -6
- package/dist/types/components/skeleton-text/skeleton-text.d.ts +1 -9
- package/dist/types/components/textarea/textarea.d.ts +0 -2
- package/dist/types/components/toast/animations/utils.d.ts +4 -15
- package/dist/types/components/toast/toast-interface.d.ts +0 -2
- package/dist/types/components/toast/toast.d.ts +1 -28
- package/dist/types/components.d.ts +6 -37
- package/dist/types/interface.d.ts +5 -1
- package/dist/types/utils/animation/animation-interface.d.ts +4 -4
- package/dist/types/utils/browser/index.d.ts +2 -11
- package/dist/types/utils/forms/index.d.ts +0 -1
- package/dist/types/utils/hardware-back-button.d.ts +0 -4
- package/dist/types/utils/overlays.d.ts +0 -1
- package/dist/types/utils/slot-mutation-controller.d.ts +2 -2
- package/dist/types/utils/test/playwright/page/utils/goto.d.ts +1 -1
- package/hydrate/index.js +169 -616
- package/package.json +31 -30
- package/dist/cjs/compare-with-utils-c0444525.js +0 -44
- package/dist/cjs/index-c8d52405.js +0 -10
- package/dist/collection/components/input/test/slot/input.e2e.js +0 -51
- package/dist/collection/components/select/test/slot/select.e2e.js +0 -67
- package/dist/collection/components/textarea/test/slot/textarea.e2e.js +0 -51
- package/dist/collection/components/toast/gestures/swipe-to-dismiss.js +0 -267
- package/dist/collection/components/toast/test/swipe-gesture/toast.e2e.js +0 -84
- package/dist/collection/utils/forms/compare-with-utils.js +0 -39
- package/dist/esm/compare-with-utils-4928c09d.js +0 -41
- package/dist/esm/index-a5d50daf.js +0 -7
- package/dist/esm-es5/app-globals-ba8b3a06.js +0 -4
- package/dist/esm-es5/compare-with-utils-4928c09d.js +0 -4
- package/dist/esm-es5/index-6a48e009.js +0 -4
- package/dist/esm-es5/index-c9e82353.js +0 -4
- package/dist/esm-es5/input-shims-1d767845.js +0 -4
- package/dist/esm-es5/input.utils-2cf5e372.js +0 -4
- package/dist/esm-es5/md.transition-a8469407.js +0 -4
- package/dist/ionic/p-02663394.system.js +0 -4
- package/dist/ionic/p-0fa05d7a.system.entry.js +0 -4
- package/dist/ionic/p-11104d0d.entry.js +0 -4
- package/dist/ionic/p-314c4dee.js +0 -4
- package/dist/ionic/p-33c650c5.entry.js +0 -4
- package/dist/ionic/p-3554b264.js +0 -4
- package/dist/ionic/p-37afecd5.entry.js +0 -4
- package/dist/ionic/p-3afb9c3d.entry.js +0 -4
- package/dist/ionic/p-3bc3d880.system.js +0 -4
- package/dist/ionic/p-40dd5937.system.js +0 -4
- package/dist/ionic/p-43716898.js +0 -4
- package/dist/ionic/p-494e75ad.js +0 -4
- package/dist/ionic/p-4e3c07a6.system.js +0 -4
- package/dist/ionic/p-4e4ee05e.js +0 -4
- package/dist/ionic/p-561cc050.system.js +0 -4
- package/dist/ionic/p-57b14769.js +0 -4
- package/dist/ionic/p-647fcea8.entry.js +0 -4
- package/dist/ionic/p-6b45cfd0.system.entry.js +0 -4
- package/dist/ionic/p-6c89025e.system.entry.js +0 -4
- package/dist/ionic/p-6dc21cd1.system.entry.js +0 -4
- package/dist/ionic/p-70dcf429.js +0 -4
- package/dist/ionic/p-710cea83.system.js +0 -4
- package/dist/ionic/p-78a8e1e8.entry.js +0 -4
- package/dist/ionic/p-79841aa8.entry.js +0 -4
- package/dist/ionic/p-7ac30f6a.entry.js +0 -4
- package/dist/ionic/p-7acd17bc.entry.js +0 -4
- package/dist/ionic/p-7b44e419.js +0 -4
- package/dist/ionic/p-81bdfa1c.system.entry.js +0 -4
- package/dist/ionic/p-8414ed31.entry.js +0 -4
- package/dist/ionic/p-92ac915c.system.js +0 -4
- package/dist/ionic/p-a6b819ca.entry.js +0 -4
- package/dist/ionic/p-ad6ed7ab.system.entry.js +0 -4
- package/dist/ionic/p-be499f29.entry.js +0 -4
- package/dist/ionic/p-c2db1374.system.js +0 -4
- package/dist/ionic/p-c3547c7a.system.js +0 -4
- package/dist/ionic/p-c700acef.system.js +0 -4
- package/dist/ionic/p-cd73cfd1.system.entry.js +0 -4
- package/dist/ionic/p-e3b7a2d0.system.entry.js +0 -4
- package/dist/ionic/p-e9fe3c8b.system.entry.js +0 -4
- package/dist/ionic/p-f2d4e3c8.entry.js +0 -4
- package/dist/ionic/p-f4ccdc77.js +0 -4
- package/dist/ionic/p-f7769c83.js +0 -4
- package/dist/node_modules/ionicons/dist/collection/components/icon/icon.css +0 -144
- package/dist/types/components/toast/gestures/swipe-to-dismiss.d.ts +0 -9
- package/dist/types/utils/forms/compare-with-utils.d.ts +0 -18
- /package/dist/cjs/{index-73186843.js → index-53026db1.js} +0 -0
- /package/dist/cjs/{index-09471526.js → index-677c4d13.js} +0 -0
- /package/dist/esm/{index-c132c5f1.js → index-4d016006.js} +0 -0
- /package/dist/esm/{index-4392ebcb.js → index-8eb0239b.js} +0 -0
- /package/dist/esm-es5/{index-c132c5f1.js → index-4d016006.js} +0 -0
- /package/dist/esm-es5/{index-a5d50daf.js → index-7a14ecec.js} +0 -0
- /package/dist/esm-es5/{index-4392ebcb.js → index-8eb0239b.js} +0 -0
- /package/dist/ionic/{p-8050b9b9.system.js → p-0c55ffe1.system.js} +0 -0
- /package/dist/ionic/{p-792919fd.system.js → p-0e94957a.system.js} +0 -0
- /package/dist/ionic/{p-dab42c1b.system.js → p-2814c8e5.system.js} +0 -0
- /package/dist/ionic/{p-f5e886cd.js → p-8a40746c.js} +0 -0
- /package/dist/ionic/{p-7b30edcc.js → p-b347cfd1.js} +0 -0
- /package/dist/ionic/{p-ea96fa73.js → p-e90d610c.js} +0 -0
|
@@ -334,7 +334,9 @@
|
|
|
334
334
|
}
|
|
335
335
|
|
|
336
336
|
.native-wrapper {
|
|
337
|
+
display: flex;
|
|
337
338
|
position: relative;
|
|
339
|
+
flex-grow: 1;
|
|
338
340
|
width: 100%;
|
|
339
341
|
height: 100%;
|
|
340
342
|
}
|
|
@@ -405,12 +407,6 @@
|
|
|
405
407
|
word-break: break-word;
|
|
406
408
|
}
|
|
407
409
|
|
|
408
|
-
.textarea-wrapper-inner {
|
|
409
|
-
display: flex;
|
|
410
|
-
width: 100%;
|
|
411
|
-
min-height: inherit;
|
|
412
|
-
}
|
|
413
|
-
|
|
414
410
|
:host(.ion-touched.ion-invalid) {
|
|
415
411
|
--highlight-color: var(--highlight-color-invalid);
|
|
416
412
|
}
|
|
@@ -686,13 +682,6 @@
|
|
|
686
682
|
margin-bottom: 0px;
|
|
687
683
|
}
|
|
688
684
|
|
|
689
|
-
:host(.textarea-label-placement-stacked) ::slotted([slot=start]),
|
|
690
|
-
:host(.textarea-label-placement-stacked) ::slotted([slot=end]),
|
|
691
|
-
:host(.textarea-label-placement-floating) ::slotted([slot=start]),
|
|
692
|
-
:host(.textarea-label-placement-floating) ::slotted([slot=end]) {
|
|
693
|
-
margin-top: 8px;
|
|
694
|
-
}
|
|
695
|
-
|
|
696
685
|
/**
|
|
697
686
|
* This makes the label sit over the textarea
|
|
698
687
|
* when the textarea is blurred and has no value.
|
|
@@ -718,7 +707,9 @@
|
|
|
718
707
|
/**
|
|
719
708
|
* This makes the label sit above the textarea.
|
|
720
709
|
*/
|
|
721
|
-
:host(.label-
|
|
710
|
+
:host(.textarea-label-placement-stacked) .label-text-wrapper,
|
|
711
|
+
:host(.has-focus.textarea-label-placement-floating) .label-text-wrapper,
|
|
712
|
+
:host(.has-value.textarea-label-placement-floating) .label-text-wrapper {
|
|
722
713
|
transform: translateY(50%) scale(0.75);
|
|
723
714
|
/**
|
|
724
715
|
* Label text should not extend
|
|
@@ -727,29 +718,6 @@
|
|
|
727
718
|
max-width: calc(100% / 0.75);
|
|
728
719
|
}
|
|
729
720
|
|
|
730
|
-
.start-slot-wrapper, .end-slot-wrapper {
|
|
731
|
-
padding-left: 0;
|
|
732
|
-
padding-right: 0;
|
|
733
|
-
padding-top: var(--padding-top);
|
|
734
|
-
padding-bottom: var(--padding-bottom);
|
|
735
|
-
display: flex;
|
|
736
|
-
flex-shrink: 0;
|
|
737
|
-
align-self: start;
|
|
738
|
-
}
|
|
739
|
-
|
|
740
|
-
::slotted([slot=start]),
|
|
741
|
-
::slotted([slot=end]) {
|
|
742
|
-
margin-top: 0;
|
|
743
|
-
}
|
|
744
|
-
|
|
745
|
-
::slotted([slot=start]) {
|
|
746
|
-
margin-inline-end: 16px;
|
|
747
|
-
}
|
|
748
|
-
|
|
749
|
-
::slotted([slot=end]) {
|
|
750
|
-
margin-inline-start: 16px;
|
|
751
|
-
}
|
|
752
|
-
|
|
753
721
|
/**
|
|
754
722
|
* Convert a font size to a dynamic font size.
|
|
755
723
|
* Fonts that participate in Dynamic Type should use
|
|
@@ -13,8 +13,6 @@ import { getCounterText } from "../input/input.utils";
|
|
|
13
13
|
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
14
14
|
*
|
|
15
15
|
* @slot label - The label text to associate with the textarea. Use the `labelPlacement` property to control where the label is placed relative to the textarea. Use this if you need to render a label with custom HTML. (EXPERIMENTAL)
|
|
16
|
-
* @slot start - Content to display at the leading edge of the textarea. (EXPERIMENTAL)
|
|
17
|
-
* @slot end - Content to display at the trailing edge of the textarea. (EXPERIMENTAL)
|
|
18
16
|
*/
|
|
19
17
|
export class Textarea {
|
|
20
18
|
constructor() {
|
|
@@ -123,7 +121,7 @@ export class Textarea {
|
|
|
123
121
|
connectedCallback() {
|
|
124
122
|
const { el } = this;
|
|
125
123
|
this.legacyFormController = createLegacyFormController(el);
|
|
126
|
-
this.slotMutationController = createSlotMutationController(el,
|
|
124
|
+
this.slotMutationController = createSlotMutationController(el, 'label', () => forceUpdate(this));
|
|
127
125
|
this.notchController = createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
|
|
128
126
|
this.emitStyle();
|
|
129
127
|
this.debounceChanged();
|
|
@@ -191,8 +189,6 @@ export class Textarea {
|
|
|
191
189
|
'has-placeholder': this.placeholder !== undefined,
|
|
192
190
|
'has-value': this.hasValue(),
|
|
193
191
|
'has-focus': this.hasFocus,
|
|
194
|
-
// TODO(FW-2876): remove this
|
|
195
|
-
legacy: !!this.legacy,
|
|
196
192
|
});
|
|
197
193
|
}
|
|
198
194
|
}
|
|
@@ -364,41 +360,20 @@ Developers can use the "legacy" property to continue using the legacy form marku
|
|
|
364
360
|
return (h("div", { class: "textarea-bottom" }, this.renderHintText(), this.renderCounter()));
|
|
365
361
|
}
|
|
366
362
|
renderTextarea() {
|
|
367
|
-
const { inputId, disabled, fill, shape, labelPlacement
|
|
363
|
+
const { inputId, disabled, fill, shape, labelPlacement } = this;
|
|
368
364
|
const mode = getIonMode(this);
|
|
369
365
|
const value = this.getValue();
|
|
370
366
|
const inItem = hostContext('ion-item', this.el);
|
|
371
367
|
const shouldRenderHighlight = mode === 'md' && fill !== 'outline' && !inItem;
|
|
372
|
-
const hasValue = this.hasValue();
|
|
373
|
-
const hasStartEndSlots = el.querySelector('[slot="start"], [slot="end"]') !== null;
|
|
374
|
-
/**
|
|
375
|
-
* If the label is stacked, it should always sit above the textarea.
|
|
376
|
-
* For floating labels, the label should move above the textarea if
|
|
377
|
-
* the textarea has a value, is focused, or has anything in either
|
|
378
|
-
* the start or end slot.
|
|
379
|
-
*
|
|
380
|
-
* If there is content in the start slot, the label would overlap
|
|
381
|
-
* it if not forced to float. This is also applied to the end slot
|
|
382
|
-
* because with the default or solid fills, the textarea is not
|
|
383
|
-
* vertically centered in the container, but the label is. This
|
|
384
|
-
* causes the slots and label to appear vertically offset from each
|
|
385
|
-
* other when the label isn't floating above the input. This doesn't
|
|
386
|
-
* apply to the outline fill, but this was not accounted for to keep
|
|
387
|
-
* things consistent.
|
|
388
|
-
*
|
|
389
|
-
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
390
|
-
*/
|
|
391
|
-
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
|
|
392
368
|
return (h(Host, { class: createColorClasses(this.color, {
|
|
393
369
|
[mode]: true,
|
|
394
|
-
'has-value': hasValue,
|
|
395
|
-
'has-focus': hasFocus,
|
|
396
|
-
'label-floating': labelShouldFloat,
|
|
370
|
+
'has-value': this.hasValue(),
|
|
371
|
+
'has-focus': this.hasFocus,
|
|
397
372
|
[`textarea-fill-${fill}`]: fill !== undefined,
|
|
398
373
|
[`textarea-shape-${shape}`]: shape !== undefined,
|
|
399
374
|
[`textarea-label-placement-${labelPlacement}`]: true,
|
|
400
375
|
'textarea-disabled': disabled,
|
|
401
|
-
}) }, h("label", { class: "textarea-wrapper"
|
|
376
|
+
}) }, h("label", { class: "textarea-wrapper" }, this.renderLabelContainer(), h("div", { class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, h("textarea", Object.assign({ class: "native-textarea", ref: (el) => (this.nativeInput = el), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown }, this.inheritedAttributes), value)), shouldRenderHighlight && h("div", { class: "textarea-highlight" })), this.renderBottomContent()));
|
|
402
377
|
}
|
|
403
378
|
render() {
|
|
404
379
|
const { legacyFormController } = this;
|
|
@@ -334,7 +334,9 @@
|
|
|
334
334
|
}
|
|
335
335
|
|
|
336
336
|
.native-wrapper {
|
|
337
|
+
display: flex;
|
|
337
338
|
position: relative;
|
|
339
|
+
flex-grow: 1;
|
|
338
340
|
width: 100%;
|
|
339
341
|
height: 100%;
|
|
340
342
|
}
|
|
@@ -405,12 +407,6 @@
|
|
|
405
407
|
word-break: break-word;
|
|
406
408
|
}
|
|
407
409
|
|
|
408
|
-
.textarea-wrapper-inner {
|
|
409
|
-
display: flex;
|
|
410
|
-
width: 100%;
|
|
411
|
-
min-height: inherit;
|
|
412
|
-
}
|
|
413
|
-
|
|
414
410
|
:host(.ion-touched.ion-invalid) {
|
|
415
411
|
--highlight-color: var(--highlight-color-invalid);
|
|
416
412
|
}
|
|
@@ -686,13 +682,6 @@
|
|
|
686
682
|
margin-bottom: 0px;
|
|
687
683
|
}
|
|
688
684
|
|
|
689
|
-
:host(.textarea-label-placement-stacked) ::slotted([slot=start]),
|
|
690
|
-
:host(.textarea-label-placement-stacked) ::slotted([slot=end]),
|
|
691
|
-
:host(.textarea-label-placement-floating) ::slotted([slot=start]),
|
|
692
|
-
:host(.textarea-label-placement-floating) ::slotted([slot=end]) {
|
|
693
|
-
margin-top: 8px;
|
|
694
|
-
}
|
|
695
|
-
|
|
696
685
|
/**
|
|
697
686
|
* This makes the label sit over the textarea
|
|
698
687
|
* when the textarea is blurred and has no value.
|
|
@@ -718,7 +707,9 @@
|
|
|
718
707
|
/**
|
|
719
708
|
* This makes the label sit above the textarea.
|
|
720
709
|
*/
|
|
721
|
-
:host(.label-
|
|
710
|
+
:host(.textarea-label-placement-stacked) .label-text-wrapper,
|
|
711
|
+
:host(.has-focus.textarea-label-placement-floating) .label-text-wrapper,
|
|
712
|
+
:host(.has-value.textarea-label-placement-floating) .label-text-wrapper {
|
|
722
713
|
transform: translateY(50%) scale(0.75);
|
|
723
714
|
/**
|
|
724
715
|
* Label text should not extend
|
|
@@ -727,29 +718,6 @@
|
|
|
727
718
|
max-width: calc(100% / 0.75);
|
|
728
719
|
}
|
|
729
720
|
|
|
730
|
-
.start-slot-wrapper, .end-slot-wrapper {
|
|
731
|
-
padding-left: 0;
|
|
732
|
-
padding-right: 0;
|
|
733
|
-
padding-top: var(--padding-top);
|
|
734
|
-
padding-bottom: var(--padding-bottom);
|
|
735
|
-
display: flex;
|
|
736
|
-
flex-shrink: 0;
|
|
737
|
-
align-self: start;
|
|
738
|
-
}
|
|
739
|
-
|
|
740
|
-
::slotted([slot=start]),
|
|
741
|
-
::slotted([slot=end]) {
|
|
742
|
-
margin-top: 0;
|
|
743
|
-
}
|
|
744
|
-
|
|
745
|
-
::slotted([slot=start]) {
|
|
746
|
-
margin-inline-end: 16px;
|
|
747
|
-
}
|
|
748
|
-
|
|
749
|
-
::slotted([slot=end]) {
|
|
750
|
-
margin-inline-start: 16px;
|
|
751
|
-
}
|
|
752
|
-
|
|
753
721
|
/**
|
|
754
722
|
* Convert a font size to a dynamic font size.
|
|
755
723
|
* Fonts that participate in Dynamic Type should use
|
|
@@ -959,7 +927,9 @@
|
|
|
959
927
|
}
|
|
960
928
|
}
|
|
961
929
|
|
|
962
|
-
:host(.
|
|
930
|
+
:host(.textarea-fill-solid.textarea-label-placement-stacked) .label-text-wrapper,
|
|
931
|
+
:host(.has-focus.textarea-fill-solid.textarea-label-placement-floating) .label-text-wrapper,
|
|
932
|
+
:host(.has-value.textarea-fill-solid.textarea-label-placement-floating) .label-text-wrapper {
|
|
963
933
|
/**
|
|
964
934
|
* Label text should not extend
|
|
965
935
|
* beyond the bounds of the textarea.
|
|
@@ -1091,7 +1061,9 @@
|
|
|
1091
1061
|
/**
|
|
1092
1062
|
* This makes the label sit above the textarea.
|
|
1093
1063
|
*/
|
|
1094
|
-
:host(.
|
|
1064
|
+
:host(.has-focus.textarea-fill-outline.textarea-label-placement-floating) .label-text-wrapper,
|
|
1065
|
+
:host(.has-value.textarea-fill-outline.textarea-label-placement-floating) .label-text-wrapper,
|
|
1066
|
+
:host(.textarea-fill-outline.textarea-label-placement-stacked) .label-text-wrapper {
|
|
1095
1067
|
transform: translateY(-32%) scale(0.75);
|
|
1096
1068
|
margin-left: 0;
|
|
1097
1069
|
margin-right: 0;
|
|
@@ -1123,13 +1095,6 @@
|
|
|
1123
1095
|
margin-bottom: 0px;
|
|
1124
1096
|
}
|
|
1125
1097
|
|
|
1126
|
-
:host(.textarea-fill-outline.textarea-label-placement-stacked) ::slotted([slot=start]),
|
|
1127
|
-
:host(.textarea-fill-outline.textarea-label-placement-stacked) ::slotted([slot=end]),
|
|
1128
|
-
:host(.textarea-fill-outline.textarea-label-placement-floating) ::slotted([slot=start]),
|
|
1129
|
-
:host(.textarea-fill-outline.textarea-label-placement-floating) ::slotted([slot=end]) {
|
|
1130
|
-
margin-top: 12px;
|
|
1131
|
-
}
|
|
1132
|
-
|
|
1133
1098
|
:host(.textarea-fill-outline) .textarea-outline-container {
|
|
1134
1099
|
left: 0;
|
|
1135
1100
|
right: 0;
|
|
@@ -1265,7 +1230,9 @@
|
|
|
1265
1230
|
* the floating/stacked label. We simulate this "cut out"
|
|
1266
1231
|
* by removing the top border from the notch fragment.
|
|
1267
1232
|
*/
|
|
1268
|
-
:host(.
|
|
1233
|
+
:host(.has-focus.textarea-fill-outline.textarea-label-placement-floating) .textarea-outline-notch,
|
|
1234
|
+
:host(.has-value.textarea-fill-outline.textarea-label-placement-floating) .textarea-outline-notch,
|
|
1235
|
+
:host(.textarea-fill-outline.textarea-label-placement-stacked) .textarea-outline-notch {
|
|
1269
1236
|
border-top: none;
|
|
1270
1237
|
}
|
|
1271
1238
|
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { createAnimation } from "../../../utils/animation/animation";
|
|
5
5
|
import { getElementRoot } from "../../../utils/helpers";
|
|
6
|
-
import { getOffsetForMiddlePosition } from "./utils";
|
|
7
6
|
/**
|
|
8
7
|
* iOS Toast Enter Animation
|
|
9
8
|
*/
|
|
@@ -19,7 +18,7 @@ export const iosEnterAnimation = (baseEl, opts) => {
|
|
|
19
18
|
wrapperAnimation.fromTo('transform', 'translateY(-100%)', `translateY(${top})`);
|
|
20
19
|
break;
|
|
21
20
|
case 'middle':
|
|
22
|
-
const topPosition =
|
|
21
|
+
const topPosition = Math.floor(baseEl.clientHeight / 2 - wrapperEl.clientHeight / 2);
|
|
23
22
|
wrapperEl.style.top = `${topPosition}px`;
|
|
24
23
|
wrapperAnimation.fromTo('opacity', 0.01, 1);
|
|
25
24
|
break;
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { createAnimation } from "../../../utils/animation/animation";
|
|
5
5
|
import { getElementRoot } from "../../../utils/helpers";
|
|
6
|
-
import { getOffsetForMiddlePosition } from "./utils";
|
|
7
6
|
/**
|
|
8
7
|
* MD Toast Enter Animation
|
|
9
8
|
*/
|
|
@@ -16,16 +15,16 @@ export const mdEnterAnimation = (baseEl, opts) => {
|
|
|
16
15
|
wrapperAnimation.addElement(wrapperEl);
|
|
17
16
|
switch (position) {
|
|
18
17
|
case 'top':
|
|
19
|
-
wrapperEl.style.
|
|
18
|
+
wrapperEl.style.top = top;
|
|
20
19
|
wrapperAnimation.fromTo('opacity', 0.01, 1);
|
|
21
20
|
break;
|
|
22
21
|
case 'middle':
|
|
23
|
-
const topPosition =
|
|
22
|
+
const topPosition = Math.floor(baseEl.clientHeight / 2 - wrapperEl.clientHeight / 2);
|
|
24
23
|
wrapperEl.style.top = `${topPosition}px`;
|
|
25
24
|
wrapperAnimation.fromTo('opacity', 0.01, 1);
|
|
26
25
|
break;
|
|
27
26
|
default:
|
|
28
|
-
wrapperEl.style.
|
|
27
|
+
wrapperEl.style.bottom = bottom;
|
|
29
28
|
wrapperAnimation.fromTo('opacity', 0.01, 1);
|
|
30
29
|
break;
|
|
31
30
|
}
|
|
@@ -7,12 +7,10 @@ import { printIonWarning } from "../../../utils/logging/index";
|
|
|
7
7
|
* Calculate the CSS top and bottom position of the toast, to be used
|
|
8
8
|
* as starting points for the animation keyframes.
|
|
9
9
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* top edge of the screen. This
|
|
13
|
-
*
|
|
14
|
-
* position='bottom' since we need to calculate from
|
|
15
|
-
* the bottom edge of the screen instead.
|
|
10
|
+
* Note that MD animates bottom-positioned toasts using style.bottom,
|
|
11
|
+
* which calculates from the bottom edge of the screen, while iOS uses
|
|
12
|
+
* translateY, which calculates from the top edge of the screen. This
|
|
13
|
+
* is why the bottom calculates differ slightly between modes.
|
|
16
14
|
*
|
|
17
15
|
* @param position The value of the toast's position prop.
|
|
18
16
|
* @param positionAnchor The element the toast should be anchored to,
|
|
@@ -27,7 +25,7 @@ export function getAnimationPosition(position, positionAnchor, mode, toast) {
|
|
|
27
25
|
*/
|
|
28
26
|
let offset;
|
|
29
27
|
if (mode === 'md') {
|
|
30
|
-
offset =
|
|
28
|
+
offset = 8;
|
|
31
29
|
}
|
|
32
30
|
else {
|
|
33
31
|
offset = position === 'top' ? 10 : -10;
|
|
@@ -50,7 +48,12 @@ export function getAnimationPosition(position, positionAnchor, mode, toast) {
|
|
|
50
48
|
* to the top edge of the anchor. We want to calculate from the
|
|
51
49
|
* bottom edge of the screen instead.
|
|
52
50
|
*/
|
|
53
|
-
|
|
51
|
+
if (mode === 'md') {
|
|
52
|
+
offset += win.innerHeight - box.top;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
offset -= win.innerHeight - box.top;
|
|
56
|
+
}
|
|
54
57
|
}
|
|
55
58
|
/**
|
|
56
59
|
* We don't include safe area here because that should already be
|
|
@@ -64,7 +67,9 @@ export function getAnimationPosition(position, positionAnchor, mode, toast) {
|
|
|
64
67
|
else {
|
|
65
68
|
return {
|
|
66
69
|
top: `calc(${offset}px + var(--ion-safe-area-top, 0px))`,
|
|
67
|
-
bottom:
|
|
70
|
+
bottom: mode === 'md'
|
|
71
|
+
? `calc(${offset}px + var(--ion-safe-area-bottom, 0px))`
|
|
72
|
+
: `calc(${offset}px - var(--ion-safe-area-bottom, 0px))`,
|
|
68
73
|
};
|
|
69
74
|
}
|
|
70
75
|
}
|
|
@@ -78,14 +83,3 @@ function warnIfAnchorIsHidden(positionAnchor, toast) {
|
|
|
78
83
|
printIonWarning('The positionAnchor element for ion-toast was found in the DOM, but appears to be hidden. This may lead to unexpected positioning of the toast.', toast);
|
|
79
84
|
}
|
|
80
85
|
}
|
|
81
|
-
/**
|
|
82
|
-
* Returns the top offset required to place
|
|
83
|
-
* the toast in the middle of the screen.
|
|
84
|
-
* Only needed when position="toast".
|
|
85
|
-
* @param toastHeight - The height of the ion-toast element
|
|
86
|
-
* @param wrapperHeight - The height of the .toast-wrapper element
|
|
87
|
-
* inside the toast's shadow root.
|
|
88
|
-
*/
|
|
89
|
-
export const getOffsetForMiddlePosition = (toastHeight, wrapperHeight) => {
|
|
90
|
-
return Math.floor(toastHeight / 2 - wrapperHeight / 2);
|
|
91
|
-
};
|
|
@@ -167,16 +167,6 @@
|
|
|
167
167
|
}
|
|
168
168
|
}
|
|
169
169
|
|
|
170
|
-
.toast-wrapper.toast-top {
|
|
171
|
-
transform: translate3d(0, -100%, 0);
|
|
172
|
-
top: 0;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
.toast-wrapper.toast-bottom {
|
|
176
|
-
transform: translate3d(0, 100%, 0);
|
|
177
|
-
bottom: 0;
|
|
178
|
-
}
|
|
179
|
-
|
|
180
170
|
.toast-container {
|
|
181
171
|
display: flex;
|
|
182
172
|
align-items: center;
|
|
@@ -309,10 +299,20 @@
|
|
|
309
299
|
background: rgba(var(--ion-color-base-rgb), 0.8);
|
|
310
300
|
}
|
|
311
301
|
}
|
|
302
|
+
.toast-wrapper.toast-top {
|
|
303
|
+
transform: translate3d(0, -100%, 0);
|
|
304
|
+
top: 0;
|
|
305
|
+
}
|
|
306
|
+
|
|
312
307
|
.toast-wrapper.toast-middle {
|
|
313
308
|
opacity: 0.01;
|
|
314
309
|
}
|
|
315
310
|
|
|
311
|
+
.toast-wrapper.toast-bottom {
|
|
312
|
+
transform: translate3d(0, 100%, 0);
|
|
313
|
+
bottom: 0;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
316
|
.toast-content {
|
|
317
317
|
-webkit-padding-start: 15px;
|
|
318
318
|
padding-inline-start: 15px;
|
|
@@ -6,7 +6,7 @@ import { ENABLE_HTML_CONTENT_DEFAULT } from "../../utils/config";
|
|
|
6
6
|
import { raf } from "../../utils/helpers";
|
|
7
7
|
import { createLockController } from "../../utils/lock-controller";
|
|
8
8
|
import { printIonWarning } from "../../utils/logging/index";
|
|
9
|
-
import {
|
|
9
|
+
import { createDelegateController, createTriggerController, dismiss, eventMethod, isCancel, prepareOverlay, present, safeCall, setOverlayId, } from "../../utils/overlays";
|
|
10
10
|
import { sanitizeDOMString } from "../../utils/sanitization/index";
|
|
11
11
|
import { createColorClasses, getClassMap } from "../../utils/theme";
|
|
12
12
|
import { config } from "../../global/config";
|
|
@@ -16,7 +16,6 @@ import { iosLeaveAnimation } from "./animations/ios.leave";
|
|
|
16
16
|
import { mdEnterAnimation } from "./animations/md.enter";
|
|
17
17
|
import { mdLeaveAnimation } from "./animations/md.leave";
|
|
18
18
|
import { getAnimationPosition } from "./animations/utils";
|
|
19
|
-
import { createSwipeToDismissGesture } from "./gestures/swipe-to-dismiss";
|
|
20
19
|
// TODO(FW-2832): types
|
|
21
20
|
/**
|
|
22
21
|
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
@@ -42,41 +41,6 @@ export class Toast {
|
|
|
42
41
|
this.callButtonHandler(cancelButton);
|
|
43
42
|
}
|
|
44
43
|
};
|
|
45
|
-
/**
|
|
46
|
-
* Create a new swipe gesture so Toast
|
|
47
|
-
* can be swiped to dismiss.
|
|
48
|
-
*/
|
|
49
|
-
this.createSwipeGesture = (toastPosition) => {
|
|
50
|
-
const gesture = (this.gesture = createSwipeToDismissGesture(this.el, toastPosition, () => {
|
|
51
|
-
/**
|
|
52
|
-
* If the gesture completed then
|
|
53
|
-
* we should dismiss the toast.
|
|
54
|
-
*/
|
|
55
|
-
this.dismiss(undefined, GESTURE);
|
|
56
|
-
}));
|
|
57
|
-
gesture.enable(true);
|
|
58
|
-
};
|
|
59
|
-
/**
|
|
60
|
-
* Destroy an existing swipe gesture
|
|
61
|
-
* so Toast can no longer be swiped to dismiss.
|
|
62
|
-
*/
|
|
63
|
-
this.destroySwipeGesture = () => {
|
|
64
|
-
const { gesture } = this;
|
|
65
|
-
if (gesture === undefined) {
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
gesture.destroy();
|
|
69
|
-
this.gesture = undefined;
|
|
70
|
-
};
|
|
71
|
-
/**
|
|
72
|
-
* Returns `true` if swipeGesture
|
|
73
|
-
* is configured to a value that enables the swipe behavior.
|
|
74
|
-
* Returns `false` otherwise.
|
|
75
|
-
*/
|
|
76
|
-
this.prefersSwipeGesture = () => {
|
|
77
|
-
const { swipeGesture } = this;
|
|
78
|
-
return swipeGesture === 'vertical';
|
|
79
|
-
};
|
|
80
44
|
this.revealContentToScreenReader = false;
|
|
81
45
|
this.overlayIndex = undefined;
|
|
82
46
|
this.delegate = undefined;
|
|
@@ -97,37 +61,9 @@ export class Toast {
|
|
|
97
61
|
this.animated = true;
|
|
98
62
|
this.icon = undefined;
|
|
99
63
|
this.htmlAttributes = undefined;
|
|
100
|
-
this.swipeGesture = undefined;
|
|
101
64
|
this.isOpen = false;
|
|
102
65
|
this.trigger = undefined;
|
|
103
66
|
}
|
|
104
|
-
swipeGestureChanged() {
|
|
105
|
-
/**
|
|
106
|
-
* If the Toast is presented, then we need to destroy
|
|
107
|
-
* any actives gestures before a new gesture is potentially
|
|
108
|
-
* created below.
|
|
109
|
-
*
|
|
110
|
-
* If the Toast is dismissed, then no gesture should be available
|
|
111
|
-
* since the Toast is not visible. This case should never
|
|
112
|
-
* happen since the "dismiss" method handles destroying
|
|
113
|
-
* any active swipe gestures, but we keep this code
|
|
114
|
-
* around to handle the first case.
|
|
115
|
-
*/
|
|
116
|
-
this.destroySwipeGesture();
|
|
117
|
-
/**
|
|
118
|
-
* A new swipe gesture should only be created
|
|
119
|
-
* if the Toast is presented. If the Toast is not
|
|
120
|
-
* yet presented then the "present" method will
|
|
121
|
-
* handle calling the swipe gesture setup function.
|
|
122
|
-
*/
|
|
123
|
-
if (this.presented && this.prefersSwipeGesture()) {
|
|
124
|
-
/**
|
|
125
|
-
* If the Toast is presented then
|
|
126
|
-
* lastPresentedPosition is defined.
|
|
127
|
-
*/
|
|
128
|
-
this.createSwipeGesture(this.lastPresentedPosition);
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
67
|
onIsOpenChange(newValue, oldValue) {
|
|
132
68
|
if (newValue === true && oldValue === false) {
|
|
133
69
|
this.present();
|
|
@@ -189,14 +125,6 @@ export class Toast {
|
|
|
189
125
|
if (this.duration > 0) {
|
|
190
126
|
this.durationTimeout = setTimeout(() => this.dismiss(undefined, 'timeout'), this.duration);
|
|
191
127
|
}
|
|
192
|
-
/**
|
|
193
|
-
* If the Toast has a swipe gesture then we can
|
|
194
|
-
* create the gesture so users can swipe the
|
|
195
|
-
* presented Toast.
|
|
196
|
-
*/
|
|
197
|
-
if (this.prefersSwipeGesture()) {
|
|
198
|
-
this.createSwipeGesture(animationPosition);
|
|
199
|
-
}
|
|
200
128
|
unlock();
|
|
201
129
|
}
|
|
202
130
|
/**
|
|
@@ -231,11 +159,6 @@ export class Toast {
|
|
|
231
159
|
this.revealContentToScreenReader = false;
|
|
232
160
|
}
|
|
233
161
|
this.lastPresentedPosition = undefined;
|
|
234
|
-
/**
|
|
235
|
-
* If the Toast has a swipe gesture then we can
|
|
236
|
-
* safely destroy it now that it is dismissed.
|
|
237
|
-
*/
|
|
238
|
-
this.destroySwipeGesture();
|
|
239
162
|
unlock();
|
|
240
163
|
return dismissed;
|
|
241
164
|
}
|
|
@@ -776,29 +699,6 @@ export class Toast {
|
|
|
776
699
|
"text": "Additional attributes to pass to the toast."
|
|
777
700
|
}
|
|
778
701
|
},
|
|
779
|
-
"swipeGesture": {
|
|
780
|
-
"type": "string",
|
|
781
|
-
"mutable": false,
|
|
782
|
-
"complexType": {
|
|
783
|
-
"original": "ToastSwipeGestureDirection",
|
|
784
|
-
"resolved": "\"vertical\" | undefined",
|
|
785
|
-
"references": {
|
|
786
|
-
"ToastSwipeGestureDirection": {
|
|
787
|
-
"location": "import",
|
|
788
|
-
"path": "./toast-interface",
|
|
789
|
-
"id": "src/components/toast/toast-interface.ts::ToastSwipeGestureDirection"
|
|
790
|
-
}
|
|
791
|
-
}
|
|
792
|
-
},
|
|
793
|
-
"required": false,
|
|
794
|
-
"optional": true,
|
|
795
|
-
"docs": {
|
|
796
|
-
"tags": [],
|
|
797
|
-
"text": "If set to 'vertical', the Toast can be dismissed with\na swipe gesture. The swipe direction is determined by\nthe value of the `position` property:\n`top`: The Toast can be swiped up to dismiss.\n`bottom`: The Toast can be swiped down to dismiss.\n`middle`: The Toast can be swiped up or down to dismiss."
|
|
798
|
-
},
|
|
799
|
-
"attribute": "swipe-gesture",
|
|
800
|
-
"reflect": false
|
|
801
|
-
},
|
|
802
702
|
"isOpen": {
|
|
803
703
|
"type": "boolean",
|
|
804
704
|
"mutable": false,
|
|
@@ -1109,9 +1009,6 @@ export class Toast {
|
|
|
1109
1009
|
static get elementRef() { return "el"; }
|
|
1110
1010
|
static get watchers() {
|
|
1111
1011
|
return [{
|
|
1112
|
-
"propName": "swipeGesture",
|
|
1113
|
-
"methodName": "swipeGestureChanged"
|
|
1114
|
-
}, {
|
|
1115
1012
|
"propName": "isOpen",
|
|
1116
1013
|
"methodName": "onIsOpenChange"
|
|
1117
1014
|
}, {
|
|
@@ -167,16 +167,6 @@
|
|
|
167
167
|
}
|
|
168
168
|
}
|
|
169
169
|
|
|
170
|
-
.toast-wrapper.toast-top {
|
|
171
|
-
transform: translate3d(0, -100%, 0);
|
|
172
|
-
top: 0;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
.toast-wrapper.toast-bottom {
|
|
176
|
-
transform: translate3d(0, 100%, 0);
|
|
177
|
-
bottom: 0;
|
|
178
|
-
}
|
|
179
|
-
|
|
180
170
|
.toast-container {
|
|
181
171
|
display: flex;
|
|
182
172
|
align-items: center;
|
|
@@ -463,16 +463,6 @@ export const createAnimation = (animationId) => {
|
|
|
463
463
|
}
|
|
464
464
|
}
|
|
465
465
|
});
|
|
466
|
-
/**
|
|
467
|
-
* Clean up any value coercion before
|
|
468
|
-
* the user callbacks fire otherwise
|
|
469
|
-
* they may get stale values. For example,
|
|
470
|
-
* if someone calls progressStart(0) the
|
|
471
|
-
* animation may still be reversed.
|
|
472
|
-
*/
|
|
473
|
-
forceDurationValue = undefined;
|
|
474
|
-
forceDirectionValue = undefined;
|
|
475
|
-
forceDelayValue = undefined;
|
|
476
466
|
onFinishCallbacks.forEach((onFinishCallback) => {
|
|
477
467
|
return onFinishCallback.c(currentStep, ani);
|
|
478
468
|
});
|
|
@@ -677,8 +667,17 @@ export const createAnimation = (animationId) => {
|
|
|
677
667
|
update(false, false);
|
|
678
668
|
}
|
|
679
669
|
}
|
|
680
|
-
if (playTo !== undefined
|
|
681
|
-
|
|
670
|
+
if (playTo !== undefined) {
|
|
671
|
+
onFinish(() => {
|
|
672
|
+
forceDurationValue = undefined;
|
|
673
|
+
forceDirectionValue = undefined;
|
|
674
|
+
forceDelayValue = undefined;
|
|
675
|
+
}, {
|
|
676
|
+
oneTimeCallback: true,
|
|
677
|
+
});
|
|
678
|
+
if (!parentAnimation) {
|
|
679
|
+
play();
|
|
680
|
+
}
|
|
682
681
|
}
|
|
683
682
|
return ani;
|
|
684
683
|
};
|
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
+
/**
|
|
5
|
+
* When accessing the document or window, it is important
|
|
6
|
+
* to account for SSR applications where the
|
|
7
|
+
* window is not available. Code that accesses
|
|
8
|
+
* window when it is not available will crash.
|
|
9
|
+
* Even checking if `window === undefined` will cause
|
|
10
|
+
* apps to crash in SSR.
|
|
11
|
+
*
|
|
12
|
+
* Use win below to access an SSR-safe version
|
|
13
|
+
* of the window.
|
|
14
|
+
*
|
|
15
|
+
* Example 1:
|
|
16
|
+
* Before:
|
|
17
|
+
* if (window.innerWidth > 768) { ... }
|
|
18
|
+
*
|
|
19
|
+
* After:
|
|
20
|
+
* import { win } from 'path/to/this/file';
|
|
21
|
+
* if (win?.innerWidth > 768) { ... }
|
|
22
|
+
*
|
|
23
|
+
* Note: Code inside of this if-block will
|
|
24
|
+
* not run in an SSR environment.
|
|
25
|
+
*/
|
|
4
26
|
export const win = typeof window !== 'undefined' ? window : undefined;
|
|
5
27
|
export const doc = typeof document !== 'undefined' ? document : undefined;
|