@ionic/core 7.5.8-dev.11701876182.1e71e7a0 → 7.5.8-dev.11702056888.11188f48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/animation.js +11 -12
- package/components/backdrop.js +0 -12
- package/components/checkbox.js +3 -5
- package/components/data.js +1 -1
- package/components/gesture-controller.js +1 -1
- package/components/index4.js +12 -10
- package/components/index5.js +22 -0
- package/components/input-shims.js +7 -12
- package/components/input.utils.js +2 -3
- package/components/ion-content.js +1 -1
- package/components/ion-datetime.js +40 -64
- package/components/ion-infinite-scroll.js +3 -11
- package/components/ion-input.js +8 -31
- package/components/ion-modal.js +2 -2
- package/components/ion-picker-column-option.d.ts +11 -0
- package/components/ion-picker-column-option.js +9 -0
- package/components/ion-picker-column.js +2 -2
- package/components/ion-picker-legacy-column.d.ts +11 -0
- package/components/ion-picker-legacy-column.js +9 -0
- package/components/{ion-picker-internal.d.ts → ion-picker-legacy.d.ts} +4 -4
- package/components/ion-picker-legacy.js +309 -0
- package/components/ion-picker.js +1 -309
- package/components/ion-range.js +3 -5
- package/components/ion-select.js +29 -44
- package/components/ion-skeleton-text.js +1 -14
- package/components/ion-textarea.js +7 -30
- package/components/ion-toast.js +74 -419
- package/components/ion-toggle.js +3 -5
- package/components/item.js +2 -2
- package/components/label.js +2 -2
- package/components/overlays.js +12 -6
- package/components/picker-column-option.js +122 -0
- package/components/picker-column.js +351 -322
- package/components/picker-column2.js +379 -0
- package/components/{picker-internal.js → picker.js} +29 -22
- package/components/radio-group.js +0 -2
- package/components/radio.js +5 -45
- package/dist/cjs/{animation-9b401d39.js → animation-cc40e39c.js} +12 -13
- package/dist/cjs/{button-active-a5185907.js → button-active-9d7e0640.js} +2 -2
- package/dist/cjs/{capacitor-c04564bf.js → capacitor-46980811.js} +1 -1
- package/dist/cjs/{data-36b9094e.js → data-e7526b58.js} +1 -1
- package/dist/cjs/{gesture-controller-c40c045a.js → gesture-controller-9436f482.js} +1 -0
- package/dist/cjs/{haptic-b882e0bb.js → haptic-216df36c.js} +1 -1
- package/dist/cjs/index-306a7476.js +32 -0
- package/dist/cjs/{index-ce101dc9.js → index-5cbb20f9.js} +13 -11
- package/dist/cjs/{index-b4f986cd.js → index-8c1e77d6.js} +1 -1
- package/dist/cjs/{index-f8f13389.js → index-d4c2e02c.js} +2 -2
- package/dist/cjs/{index-d1b59ffa.js → index-ee07ed59.js} +1 -1
- package/dist/cjs/index.cjs.js +10 -10
- package/dist/cjs/{input-shims-a23bb0f4.js → input-shims-87102b6a.js} +10 -15
- package/dist/cjs/{input.utils-3d0166a2.js → input.utils-2a11c1fe.js} +3 -4
- package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -8
- package/dist/cjs/ion-alert.cjs.entry.js +8 -8
- package/dist/cjs/ion-app_8.cjs.entry.js +10 -10
- package/dist/cjs/ion-backdrop.cjs.entry.js +0 -12
- package/dist/cjs/ion-checkbox.cjs.entry.js +3 -5
- package/dist/cjs/ion-datetime-button.cjs.entry.js +1 -1
- package/dist/cjs/ion-datetime_3.cjs.entry.js +40 -60
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -11
- package/dist/cjs/ion-input.cjs.entry.js +11 -34
- package/dist/cjs/ion-item-option_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-item_8.cjs.entry.js +4 -17
- package/dist/cjs/ion-loading.cjs.entry.js +4 -3
- package/dist/cjs/ion-menu_3.cjs.entry.js +7 -7
- package/dist/cjs/ion-modal.cjs.entry.js +10 -10
- package/dist/cjs/ion-nav_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +104 -0
- package/dist/cjs/{ion-picker-column-internal.cjs.entry.js → ion-picker-column.cjs.entry.js} +106 -89
- package/dist/cjs/{ion-picker-internal.cjs.entry.js → ion-picker.cjs.entry.js} +26 -19
- package/dist/cjs/ion-popover.cjs.entry.js +5 -4
- package/dist/cjs/ion-radio_2.cjs.entry.js +4 -9
- package/dist/cjs/ion-range.cjs.entry.js +4 -6
- package/dist/cjs/ion-refresher_2.cjs.entry.js +7 -7
- package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-segment_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-select_3.cjs.entry.js +36 -51
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-textarea.cjs.entry.js +10 -33
- package/dist/cjs/ion-toast.cjs.entry.js +93 -434
- package/dist/cjs/ion-toggle.cjs.entry.js +7 -9
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/{ios.transition-6787b799.js → ios.transition-a4ffb5a2.js} +3 -3
- package/dist/cjs/{keyboard-af1bb365.js → keyboard-7d621ee9.js} +3 -3
- package/dist/cjs/{keyboard-0272231f.js → keyboard-9390928c.js} +1 -1
- package/dist/cjs/{keyboard-controller-c05e747a.js → keyboard-controller-2158b478.js} +2 -2
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{md.transition-e033d20a.js → md.transition-292abe1c.js} +3 -3
- package/dist/cjs/{notch-controller-9735e7ac.js → notch-controller-1dce508a.js} +1 -1
- package/dist/cjs/{overlays-27a6fb16.js → overlays-e8e05b0e.js} +12 -7
- package/dist/cjs/{swipe-back-2a858bbd.js → swipe-back-b8f2330b.js} +2 -2
- package/dist/collection/collection-manifest.json +7 -6
- package/dist/collection/components/backdrop/backdrop.js +0 -12
- package/dist/collection/components/checkbox/checkbox.ios.css +6 -0
- package/dist/collection/components/checkbox/checkbox.js +1 -4
- package/dist/collection/components/checkbox/checkbox.md.css +6 -0
- package/dist/collection/components/checkbox/test/checkbox.spec.js +0 -14
- package/dist/collection/components/content/content.css +0 -4
- package/dist/collection/components/datetime/datetime.ios.css +85 -38
- package/dist/collection/components/datetime/datetime.js +24 -36
- package/dist/collection/components/datetime/datetime.md.css +90 -38
- package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +1 -1
- package/dist/collection/components/datetime/test/a11y/datetime.spec.js +6 -9
- package/dist/collection/components/datetime/test/basic/datetime.e2e.js +10 -0
- package/dist/collection/components/datetime/test/datetime.e2e.js +2 -2
- package/dist/collection/components/datetime/test/disabled/datetime.spec.js +4 -4
- package/dist/collection/components/datetime/test/locale/datetime.e2e.js +2 -2
- package/dist/collection/components/datetime/test/minmax/datetime.e2e.js +6 -6
- package/dist/collection/components/datetime/test/month-year-picker/datetime.e2e.js +1 -1
- package/dist/collection/components/datetime/test/prefer-wheel/datetime.e2e.js +43 -41
- package/dist/collection/components/datetime/test/presentation/datetime.e2e.js +1 -1
- package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +4 -4
- package/dist/collection/components/datetime/test/values/datetime.e2e.js +15 -12
- package/dist/collection/components/datetime/utils/data.js +1 -1
- package/dist/collection/components/infinite-scroll/infinite-scroll.js +3 -11
- package/dist/collection/components/input/input.ios.css +3 -10
- package/dist/collection/components/input/input.js +6 -31
- package/dist/collection/components/input/input.md.css +12 -13
- package/dist/collection/components/item/item.ios.css +3 -41
- package/dist/collection/components/item/item.md.css +3 -41
- package/dist/collection/components/item/test/basic/item.e2e.js +1 -1
- package/dist/collection/components/item/test/disabled/item.e2e.js +1 -0
- package/dist/collection/components/item/test/text/item.e2e.js +14 -0
- package/dist/collection/components/label/label.ios.css +3 -14
- package/dist/collection/components/label/label.md.css +3 -14
- package/dist/collection/components/modal/gestures/swipe-to-close.js +1 -2
- package/dist/collection/components/note/test/a11y/note.e2e.js +0 -43
- package/dist/collection/components/picker/picker.ios.css +113 -211
- package/dist/collection/components/picker/picker.js +468 -743
- package/dist/collection/components/picker/picker.md.css +109 -198
- package/dist/collection/components/{picker-internal/test/a11y/picker-internal.e2e.js → picker/test/a11y/picker.e2e.js} +2 -2
- package/dist/collection/components/picker/test/basic/picker.e2e.js +99 -13
- package/dist/collection/components/picker/test/custom/picker.e2e.js +85 -0
- package/dist/collection/components/{picker-internal/test/keyboard-entry/picker-internal.e2e.js → picker/test/keyboard-entry/picker.e2e.js} +63 -32
- package/dist/collection/components/{picker-column-internal/picker-column-internal.md.css → picker-column/picker-column.css} +96 -83
- package/dist/collection/components/picker-column/picker-column.js +497 -335
- package/dist/collection/components/{picker-column-internal/test/basic/picker-column-internal.e2e.js → picker-column/test/basic/picker-column.e2e.js} +8 -8
- package/dist/collection/components/picker-column/test/disabled/picker-column.e2e.js +91 -0
- package/dist/collection/components/picker-column/test/slots/picker-column.e2e.js +39 -0
- package/dist/collection/components/picker-column-option/picker-column-option.ios.css +87 -0
- package/dist/collection/components/picker-column-option/picker-column-option.js +173 -0
- package/dist/collection/components/{picker-column-internal/picker-column-internal.ios.css → picker-column-option/picker-column-option.md.css} +6 -53
- package/dist/collection/components/picker-column-option/test/a11y/picker-column-option.e2e.js +18 -0
- package/dist/collection/components/picker-column-option/test/basic/picker-column-option.e2e.js +37 -0
- package/dist/collection/components/picker-column-option/test/picker-column-option.spec.js +29 -0
- package/dist/collection/components/{picker-internal/picker-internal.md.css → picker-legacy/picker.ios.css} +207 -98
- package/dist/collection/components/picker-legacy/picker.js +817 -0
- package/dist/collection/components/{picker-internal/picker-internal.ios.css → picker-legacy/picker.md.css} +192 -100
- package/dist/collection/components/picker-legacy/test/basic/picker.e2e.js +25 -0
- package/dist/collection/components/{picker → picker-legacy}/test/is-open/picker.e2e.js +4 -4
- package/dist/collection/components/{picker → picker-legacy}/test/picker-id.spec.js +5 -5
- package/dist/collection/components/{picker → picker-legacy}/test/trigger/picker.e2e.js +1 -1
- package/dist/collection/components/picker-legacy-column/picker-column.js +419 -0
- package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column-aria.spec.js +3 -3
- package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column-dynamic.spec.js +2 -2
- package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column.spec.js +2 -2
- package/dist/collection/components/{picker-column → picker-legacy-column}/test/standalone/picker-column.e2e.js +3 -3
- package/dist/collection/components/radio/radio.ios.css +6 -0
- package/dist/collection/components/radio/radio.js +3 -7
- package/dist/collection/components/radio/radio.md.css +6 -0
- package/dist/collection/components/radio/test/radio.spec.js +0 -14
- package/dist/collection/components/radio-group/radio-group.js +0 -24
- package/dist/collection/components/range/range.ios.css +6 -0
- package/dist/collection/components/range/range.js +1 -4
- package/dist/collection/components/range/range.md.css +6 -0
- package/dist/collection/components/range/test/range.spec.js +0 -16
- package/dist/collection/components/select/select.ios.css +7 -60
- package/dist/collection/components/select/select.js +28 -45
- package/dist/collection/components/select/select.md.css +19 -63
- package/dist/collection/components/select/test/item/select.e2e.js +0 -15
- package/dist/collection/components/select/test/label/select.e2e.js +1 -1
- package/dist/collection/components/select/test/legacy/wrapping/select.e2e.js +1 -1
- package/dist/collection/components/skeleton-text/skeleton-text.js +0 -39
- package/dist/collection/components/textarea/textarea.ios.css +5 -37
- package/dist/collection/components/textarea/textarea.js +5 -30
- package/dist/collection/components/textarea/textarea.md.css +14 -47
- package/dist/collection/components/toast/animations/ios.enter.js +1 -2
- package/dist/collection/components/toast/animations/md.enter.js +3 -4
- package/dist/collection/components/toast/animations/utils.js +14 -20
- package/dist/collection/components/toast/test/toast.spec.js +0 -80
- package/dist/collection/components/toast/toast.ios.css +10 -10
- package/dist/collection/components/toast/toast.js +1 -104
- package/dist/collection/components/toast/toast.md.css +0 -10
- package/dist/collection/components/toggle/test/toggle.spec.js +0 -12
- package/dist/collection/components/toggle/toggle.ios.css +6 -0
- package/dist/collection/components/toggle/toggle.js +1 -4
- package/dist/collection/components/toggle/toggle.md.css +6 -0
- package/dist/collection/utils/animation/animation.js +11 -12
- package/dist/collection/utils/animation/test/animation.spec.js +0 -16
- package/dist/collection/utils/browser/index.js +22 -0
- package/dist/collection/utils/forms/index.js +0 -1
- package/dist/collection/utils/gesture/gesture-controller.js +1 -1
- package/dist/collection/utils/input-shims/input-shims.js +6 -12
- package/dist/collection/utils/menu-controller/index.js +12 -10
- package/dist/collection/utils/overlays.js +11 -5
- package/dist/collection/utils/slot-mutation-controller.js +2 -3
- package/dist/collection/utils/test/overlays/overlays-scroll-blocking.spec.js +65 -0
- package/dist/docs.json +573 -272
- package/dist/esm/{animation-dde8cc0d.js → animation-fb0e0f6f.js} +12 -13
- package/dist/esm/{button-active-c6ee4f50.js → button-active-ed9d848c.js} +2 -2
- package/dist/esm/{capacitor-59395cbd.js → capacitor-b0e5fe83.js} +1 -1
- package/dist/esm/{data-f5c75b4e.js → data-4b9508c9.js} +1 -1
- package/dist/esm/{gesture-controller-1bf57181.js → gesture-controller-314a54f6.js} +1 -1
- package/dist/esm/{haptic-554688a5.js → haptic-152c4172.js} +1 -1
- package/dist/esm/{index-2cf77112.js → index-39782642.js} +2 -2
- package/dist/esm/index-7a14ecec.js +29 -0
- package/dist/esm/{index-0c12c22b.js → index-80492ed3.js} +13 -11
- package/dist/esm/{index-82eeb47f.js → index-ba9976bb.js} +1 -1
- package/dist/esm/{index-1932b201.js → index-d8817fb0.js} +2 -2
- package/dist/esm/index.js +10 -10
- package/dist/esm/{input-shims-6539ce13.js → input-shims-0a2e541d.js} +9 -14
- package/dist/esm/{input.utils-a5a2d164.js → input.utils-2846d430.js} +3 -4
- package/dist/esm/ion-action-sheet.entry.js +8 -8
- package/dist/esm/ion-alert.entry.js +8 -8
- package/dist/esm/ion-app_8.entry.js +10 -10
- package/dist/esm/ion-backdrop.entry.js +0 -12
- package/dist/esm/ion-checkbox.entry.js +3 -5
- package/dist/esm/ion-datetime-button.entry.js +1 -1
- package/dist/esm/ion-datetime_3.entry.js +39 -59
- package/dist/esm/ion-infinite-scroll_2.entry.js +3 -11
- package/dist/esm/ion-input.entry.js +11 -34
- package/dist/esm/ion-item-option_3.entry.js +1 -1
- package/dist/esm/ion-item_8.entry.js +4 -17
- package/dist/esm/ion-loading.entry.js +4 -3
- package/dist/esm/ion-menu_3.entry.js +7 -7
- package/dist/esm/ion-modal.entry.js +10 -10
- package/dist/esm/ion-nav_2.entry.js +2 -2
- package/dist/esm/ion-picker-column-option.entry.js +100 -0
- package/dist/esm/{ion-picker-column-internal.entry.js → ion-picker-column.entry.js} +106 -89
- package/dist/esm/{ion-picker-internal.entry.js → ion-picker.entry.js} +26 -19
- package/dist/esm/ion-popover.entry.js +5 -4
- package/dist/esm/ion-radio_2.entry.js +4 -9
- package/dist/esm/ion-range.entry.js +4 -6
- package/dist/esm/ion-refresher_2.entry.js +7 -7
- package/dist/esm/ion-reorder_2.entry.js +4 -4
- package/dist/esm/ion-segment_2.entry.js +1 -1
- package/dist/esm/ion-select_3.entry.js +32 -47
- package/dist/esm/ion-tab-bar_2.entry.js +4 -4
- package/dist/esm/ion-textarea.entry.js +10 -33
- package/dist/esm/ion-toast.entry.js +76 -417
- package/dist/esm/ion-toggle.entry.js +7 -9
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/{ios.transition-802a84a6.js → ios.transition-fd16bec1.js} +3 -3
- package/dist/esm/{keyboard-52278bd7.js → keyboard-c402e885.js} +3 -3
- package/dist/esm/{keyboard-controller-ec5c2bfa.js → keyboard-controller-5d90929a.js} +2 -2
- package/dist/esm/{keyboard-73175e24.js → keyboard-dbb05fb9.js} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{md.transition-43c2874d.js → md.transition-94ac93e1.js} +3 -3
- package/dist/esm/{notch-controller-fea7f9c5.js → notch-controller-d09b6aca.js} +1 -1
- package/dist/esm/{overlays-32ef481d.js → overlays-fbc5cab5.js} +13 -7
- package/dist/esm/{swipe-back-a6f386fc.js → swipe-back-a8ca7f93.js} +2 -2
- package/dist/esm-es5/{animation-dde8cc0d.js → animation-fb0e0f6f.js} +1 -1
- package/dist/esm-es5/{button-active-c6ee4f50.js → button-active-ed9d848c.js} +1 -1
- package/dist/esm-es5/{capacitor-59395cbd.js → capacitor-b0e5fe83.js} +1 -1
- package/dist/esm-es5/{gesture-controller-1bf57181.js → gesture-controller-314a54f6.js} +1 -1
- package/dist/esm-es5/{haptic-554688a5.js → haptic-152c4172.js} +1 -1
- package/dist/esm-es5/{index-2cf77112.js → index-39782642.js} +1 -1
- package/dist/esm-es5/index-80492ed3.js +4 -0
- package/dist/esm-es5/{index-82eeb47f.js → index-ba9976bb.js} +1 -1
- package/dist/esm-es5/{index-1932b201.js → index-d8817fb0.js} +1 -1
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/input-shims-0a2e541d.js +4 -0
- package/dist/esm-es5/input.utils-2846d430.js +4 -0
- package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
- package/dist/esm-es5/ion-alert.entry.js +1 -1
- package/dist/esm-es5/ion-app_8.entry.js +1 -1
- package/dist/esm-es5/ion-backdrop.entry.js +1 -1
- package/dist/esm-es5/ion-checkbox.entry.js +1 -1
- package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
- package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
- package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
- package/dist/esm-es5/ion-input.entry.js +1 -1
- package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
- package/dist/esm-es5/ion-item_8.entry.js +1 -1
- package/dist/esm-es5/ion-loading.entry.js +1 -1
- package/dist/esm-es5/ion-menu_3.entry.js +1 -1
- package/dist/esm-es5/ion-modal.entry.js +1 -1
- package/dist/esm-es5/ion-nav_2.entry.js +1 -1
- package/dist/esm-es5/ion-picker-column-option.entry.js +4 -0
- package/dist/esm-es5/ion-picker-column.entry.js +4 -0
- package/dist/esm-es5/ion-picker.entry.js +4 -0
- package/dist/esm-es5/ion-popover.entry.js +1 -1
- package/dist/esm-es5/ion-radio_2.entry.js +1 -1
- package/dist/esm-es5/ion-range.entry.js +1 -1
- package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
- package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
- package/dist/esm-es5/ion-segment_2.entry.js +1 -1
- package/dist/esm-es5/ion-select_3.entry.js +1 -1
- package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
- package/dist/esm-es5/ion-textarea.entry.js +1 -1
- package/dist/esm-es5/ion-toast.entry.js +1 -1
- package/dist/esm-es5/ion-toggle.entry.js +1 -1
- package/dist/esm-es5/ionic.js +1 -1
- package/dist/esm-es5/{ios.transition-802a84a6.js → ios.transition-fd16bec1.js} +1 -1
- package/dist/esm-es5/{keyboard-52278bd7.js → keyboard-c402e885.js} +1 -1
- package/dist/esm-es5/{keyboard-controller-ec5c2bfa.js → keyboard-controller-5d90929a.js} +1 -1
- package/dist/esm-es5/{keyboard-73175e24.js → keyboard-dbb05fb9.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/md.transition-94ac93e1.js +4 -0
- package/dist/esm-es5/{notch-controller-fea7f9c5.js → notch-controller-d09b6aca.js} +1 -1
- package/dist/esm-es5/overlays-fbc5cab5.js +4 -0
- package/dist/esm-es5/swipe-back-a8ca7f93.js +4 -0
- package/dist/html.html-data.json +153 -15
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-8985cdb6.system.js → p-0e4f2e17.system.js} +1 -1
- package/dist/ionic/{p-33a37fad.system.js → p-1d624e03.system.js} +1 -1
- package/dist/ionic/{p-3dd98a73.entry.js → p-1fc72959.entry.js} +1 -1
- package/dist/ionic/{p-c7c8429a.system.js → p-20d469d0.system.js} +1 -1
- package/dist/ionic/{p-251666e2.entry.js → p-21c3515a.entry.js} +1 -1
- package/dist/ionic/p-22e5af95.entry.js +4 -0
- package/dist/ionic/p-232d1f22.entry.js +4 -0
- package/dist/ionic/p-23672c82.system.entry.js +4 -0
- package/dist/ionic/p-26798a7b.system.entry.js +4 -0
- package/dist/ionic/p-27bcbbc7.system.entry.js +4 -0
- package/dist/ionic/p-2ab4e925.system.entry.js +4 -0
- package/dist/ionic/p-2d5aeccc.js +4 -0
- package/dist/ionic/p-2d600c25.system.js +4 -0
- package/dist/ionic/{p-31fcb233.system.js → p-30029cc2.system.js} +1 -1
- package/dist/ionic/{p-cabad15b.system.js → p-304383f9.system.js} +1 -1
- package/dist/ionic/p-308e1341.js +4 -0
- package/dist/ionic/{p-cdbeaadc.js → p-31158892.js} +1 -1
- package/dist/ionic/p-32303650.system.entry.js +4 -0
- package/dist/ionic/{p-0bd51c34.system.js → p-32e19bee.system.js} +1 -1
- package/dist/ionic/p-34c39c48.entry.js +4 -0
- package/dist/ionic/p-36d194c5.entry.js +4 -0
- package/dist/ionic/p-3ba01a9c.system.entry.js +4 -0
- package/dist/ionic/p-3c58a71b.js +4 -0
- package/dist/ionic/{p-31b2326e.system.js → p-3e1e14d9.system.js} +1 -1
- package/dist/ionic/{p-78aadecb.entry.js → p-3f6270b3.entry.js} +1 -1
- package/dist/ionic/p-3fd26bd6.system.entry.js +4 -0
- package/dist/ionic/p-3fe96156.system.js +4 -0
- package/dist/ionic/p-42ba3902.entry.js +4 -0
- package/dist/ionic/{p-6de472cb.js → p-4890093d.js} +1 -1
- package/dist/ionic/{p-88fde0e0.entry.js → p-4911a5d6.entry.js} +1 -1
- package/dist/ionic/p-4a081ea9.entry.js +4 -0
- package/dist/ionic/p-4a31c99f.entry.js +4 -0
- package/dist/ionic/p-4a36430f.system.entry.js +4 -0
- package/dist/ionic/{p-27281edd.js → p-4e8e09e1.js} +1 -1
- package/dist/ionic/p-51abefb7.system.js +4 -0
- package/dist/ionic/{p-4f3ae45a.entry.js → p-535d2a67.entry.js} +1 -1
- package/dist/ionic/{p-e24ce1e5.system.js → p-54dfc9b5.system.js} +1 -1
- package/dist/ionic/p-563c41f0.system.entry.js +4 -0
- package/dist/ionic/{p-5e745192.system.js → p-57477107.system.js} +1 -1
- package/dist/ionic/p-5a1aac13.system.entry.js +4 -0
- package/dist/ionic/p-5a68960f.entry.js +4 -0
- package/dist/ionic/{p-4d67d27a.entry.js → p-5d42b6b4.entry.js} +1 -1
- package/dist/ionic/{p-42f189f4.js → p-643a8fae.js} +1 -1
- package/dist/ionic/{p-a9978d08.entry.js → p-6b7c55cd.entry.js} +1 -1
- package/dist/ionic/p-6c37f051.js +4 -0
- package/dist/ionic/{p-a1987850.entry.js → p-6d72fb44.entry.js} +1 -1
- package/dist/ionic/{p-e6d68e02.system.entry.js → p-6fd64e7c.system.entry.js} +1 -1
- package/dist/ionic/p-73190c5f.entry.js +4 -0
- package/dist/ionic/p-73aa7604.entry.js +4 -0
- package/dist/ionic/{p-3a75d7fd.js → p-75445583.js} +1 -1
- package/dist/ionic/{p-f70970cf.js → p-76d3765d.js} +1 -1
- package/dist/ionic/{p-a0bb7b92.system.entry.js → p-77965464.system.entry.js} +1 -1
- package/dist/ionic/p-7b725280.entry.js +4 -0
- package/dist/ionic/p-8017aad2.system.entry.js +4 -0
- package/dist/ionic/p-83af3685.system.js +4 -0
- package/dist/ionic/p-846ee227.entry.js +4 -0
- package/dist/ionic/p-856c430d.js +4 -0
- package/dist/ionic/p-8a1ad27c.system.entry.js +4 -0
- package/dist/ionic/p-8ab2d8be.entry.js +4 -0
- package/dist/ionic/p-8c97cdc0.entry.js +4 -0
- package/dist/ionic/{p-f5d2dc9b.js → p-8ededb41.js} +1 -1
- package/dist/ionic/p-8fa6583d.system.js +4 -0
- package/dist/ionic/p-93000a81.system.entry.js +4 -0
- package/dist/ionic/{p-1cca10d6.system.js → p-95c26010.system.js} +1 -1
- package/dist/ionic/{p-8acae6b0.system.entry.js → p-96dbbac1.system.entry.js} +1 -1
- package/dist/ionic/{p-ddbb2d5b.system.js → p-98d82c73.system.js} +1 -1
- package/dist/ionic/p-990ffd0e.js +4 -0
- package/dist/ionic/{p-bb3615f7.js → p-9b97df10.js} +1 -1
- package/dist/ionic/{p-3137c025.system.entry.js → p-9c229210.system.entry.js} +2 -2
- package/dist/ionic/p-a225bf0f.system.entry.js +4 -0
- package/dist/ionic/p-a60a1ce5.js +4 -0
- package/dist/ionic/p-a8baa23e.entry.js +4 -0
- package/dist/ionic/p-a98dc0c1.entry.js +4 -0
- package/dist/ionic/{p-5eda1d7d.entry.js → p-a9a80f5b.entry.js} +1 -1
- package/dist/ionic/p-a9e3b5be.system.entry.js +4 -0
- package/dist/ionic/p-ab9456e9.system.entry.js +4 -0
- package/dist/ionic/p-afcf4620.entry.js +4 -0
- package/dist/ionic/{p-ddb30596.entry.js → p-b133e9b4.entry.js} +1 -1
- package/dist/ionic/{p-6de62649.system.entry.js → p-b4d31b30.system.entry.js} +1 -1
- package/dist/ionic/{p-46d400b4.system.entry.js → p-b752714f.system.entry.js} +1 -1
- package/dist/ionic/{p-fba0a6e7.system.entry.js → p-c18de88a.system.entry.js} +1 -1
- package/dist/ionic/p-c8f0a036.entry.js +4 -0
- package/dist/ionic/p-ca8938f4.js +4 -0
- package/dist/ionic/p-cde52378.system.entry.js +4 -0
- package/dist/ionic/p-d43f1f3d.system.js +4 -0
- package/dist/ionic/p-d662d908.js +4 -0
- package/dist/ionic/p-d9695ad9.system.js +4 -0
- package/dist/ionic/p-da15f571.system.entry.js +4 -0
- package/dist/ionic/p-e3584231.system.js +1 -1
- package/dist/ionic/p-e4d90573.js +4 -0
- package/dist/ionic/{p-6577aea9.system.entry.js → p-e8e86f69.system.entry.js} +1 -1
- package/dist/ionic/p-f54c72b0.system.js +4 -0
- package/dist/ionic/p-f7a36cd0.system.js +4 -0
- package/dist/ionic/{p-9eec42cc.system.entry.js → p-f910cc73.system.entry.js} +1 -1
- package/dist/ionic/p-f967631d.js +4 -0
- package/dist/ionic/{p-ada96dd0.system.entry.js → p-fbf3a689.system.entry.js} +1 -1
- package/dist/ionic/p-fe4dde76.entry.js +4 -0
- package/dist/ionic/p-ffd5dba4.system.entry.js +4 -0
- package/dist/types/components/backdrop/backdrop.d.ts +0 -3
- package/dist/types/components/checkbox/checkbox.d.ts +0 -1
- package/dist/types/components/datetime/datetime.d.ts +0 -1
- package/dist/types/components/datetime/utils/data.d.ts +11 -7
- package/dist/types/components/infinite-scroll/infinite-scroll.d.ts +0 -7
- package/dist/types/components/input/input.d.ts +0 -2
- package/dist/types/components/menu/menu.d.ts +1 -1
- package/dist/types/components/picker/picker-interfaces.d.ts +8 -0
- package/dist/types/components/picker/picker.d.ts +74 -131
- package/dist/types/components/picker-column/picker-column-interfaces.d.ts +4 -0
- package/dist/types/components/picker-column/picker-column.d.ts +99 -39
- package/dist/types/components/picker-column-option/picker-column-option.d.ts +66 -0
- package/dist/types/components/picker-legacy/picker.d.ts +158 -0
- package/dist/types/components/picker-legacy-column/picker-column.d.ts +46 -0
- package/dist/types/components/radio/radio.d.ts +0 -1
- package/dist/types/components/radio-group/radio-group-interface.d.ts +0 -1
- package/dist/types/components/radio-group/radio-group.d.ts +1 -8
- package/dist/types/components/range/range.d.ts +0 -1
- package/dist/types/components/router/router.d.ts +1 -2
- package/dist/types/components/select/select.d.ts +1 -6
- package/dist/types/components/skeleton-text/skeleton-text.d.ts +1 -9
- package/dist/types/components/textarea/textarea.d.ts +0 -2
- package/dist/types/components/toast/animations/utils.d.ts +4 -15
- package/dist/types/components/toast/toast-interface.d.ts +0 -2
- package/dist/types/components/toast/toast.d.ts +1 -28
- package/dist/types/components/toggle/toggle.d.ts +0 -1
- package/dist/types/components.d.ts +161 -159
- package/dist/types/interface.d.ts +6 -2
- 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/config.d.ts +2 -2
- package/dist/types/utils/forms/index.d.ts +0 -1
- package/dist/types/utils/gesture/gesture-controller.d.ts +1 -0
- package/dist/types/utils/hardware-back-button.d.ts +0 -4
- package/dist/types/utils/overlays.d.ts +5 -3
- package/dist/types/utils/slot-mutation-controller.d.ts +2 -2
- package/hydrate/index.js +1528 -1886
- package/package.json +1 -1
- package/components/ion-picker-column-internal.d.ts +0 -11
- package/components/ion-picker-column-internal.js +0 -9
- package/components/ion-picker-internal.js +0 -9
- package/components/picker-column-internal.js +0 -390
- package/dist/cjs/compare-with-utils-df1001d7.js +0 -44
- package/dist/cjs/index-c8d52405.js +0 -10
- package/dist/collection/components/infinite-scroll/test/small-dom-update/infinite-scroll.e2e.js +0 -31
- package/dist/collection/components/input/test/slot/input.e2e.js +0 -51
- package/dist/collection/components/picker-column-internal/picker-column-internal.js +0 -565
- package/dist/collection/components/picker-column-internal/test/disabled/picker-column-internal.e2e.js +0 -162
- package/dist/collection/components/picker-internal/picker-internal.js +0 -544
- package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +0 -118
- package/dist/collection/components/radio-group/test/radio-group.spec.js +0 -69
- package/dist/collection/components/select/test/slot/select.e2e.js +0 -67
- package/dist/collection/components/textarea/test/slot/textarea.e2e.js +0 -51
- package/dist/collection/components/toast/gestures/swipe-to-dismiss.js +0 -267
- package/dist/collection/components/toast/test/swipe-gesture/toast.e2e.js +0 -84
- package/dist/collection/components/toast/test/toast-config.spec.js +0 -25
- package/dist/collection/utils/forms/compare-with-utils.js +0 -39
- package/dist/esm/compare-with-utils-a96ff2ea.js +0 -41
- package/dist/esm/index-a5d50daf.js +0 -7
- package/dist/esm-es5/compare-with-utils-a96ff2ea.js +0 -4
- package/dist/esm-es5/index-0c12c22b.js +0 -4
- package/dist/esm-es5/input-shims-6539ce13.js +0 -4
- package/dist/esm-es5/input.utils-a5a2d164.js +0 -4
- package/dist/esm-es5/ion-picker-column-internal.entry.js +0 -4
- package/dist/esm-es5/ion-picker-internal.entry.js +0 -4
- package/dist/esm-es5/md.transition-43c2874d.js +0 -4
- package/dist/esm-es5/overlays-32ef481d.js +0 -4
- package/dist/esm-es5/swipe-back-a6f386fc.js +0 -4
- package/dist/ionic/p-01d14eba.system.entry.js +0 -4
- package/dist/ionic/p-042e6f4b.entry.js +0 -4
- package/dist/ionic/p-05d83227.system.entry.js +0 -4
- package/dist/ionic/p-16756e94.system.entry.js +0 -4
- package/dist/ionic/p-1b19c04b.entry.js +0 -4
- package/dist/ionic/p-1e4371bd.js +0 -4
- package/dist/ionic/p-28249b10.system.entry.js +0 -4
- package/dist/ionic/p-28a2c2a2.entry.js +0 -4
- package/dist/ionic/p-29d03b3a.js +0 -4
- package/dist/ionic/p-2b7827c7.js +0 -4
- package/dist/ionic/p-2d3b9fa3.system.entry.js +0 -4
- package/dist/ionic/p-2d539df1.entry.js +0 -4
- package/dist/ionic/p-35ce400e.system.js +0 -4
- package/dist/ionic/p-36d187af.js +0 -4
- package/dist/ionic/p-376a6063.js +0 -4
- package/dist/ionic/p-38f2c6bb.system.js +0 -4
- package/dist/ionic/p-39c31982.system.entry.js +0 -4
- package/dist/ionic/p-3e6b47e8.system.entry.js +0 -4
- package/dist/ionic/p-3f5179b5.entry.js +0 -4
- package/dist/ionic/p-40f68333.system.js +0 -4
- package/dist/ionic/p-438e1b8a.entry.js +0 -4
- package/dist/ionic/p-47b6ba5b.js +0 -4
- package/dist/ionic/p-517a9885.system.entry.js +0 -4
- package/dist/ionic/p-53ec4f1c.system.js +0 -4
- package/dist/ionic/p-5e4eec2e.entry.js +0 -4
- package/dist/ionic/p-6a6477b2.js +0 -4
- package/dist/ionic/p-72f6ff89.js +0 -4
- package/dist/ionic/p-765f4dde.entry.js +0 -4
- package/dist/ionic/p-7d92bf15.system.entry.js +0 -4
- package/dist/ionic/p-7ee0f3f2.entry.js +0 -4
- package/dist/ionic/p-80fa068e.entry.js +0 -4
- package/dist/ionic/p-8314281e.system.js +0 -4
- package/dist/ionic/p-88d5fbd3.js +0 -4
- package/dist/ionic/p-8d69a624.entry.js +0 -4
- package/dist/ionic/p-8de17614.system.entry.js +0 -4
- package/dist/ionic/p-908475e7.system.entry.js +0 -4
- package/dist/ionic/p-91d33c4a.js +0 -4
- package/dist/ionic/p-979d4f5c.system.js +0 -4
- package/dist/ionic/p-9b7f0b0f.entry.js +0 -4
- package/dist/ionic/p-9e447eb1.system.js +0 -4
- package/dist/ionic/p-9f6ee2c0.system.entry.js +0 -4
- package/dist/ionic/p-a0d7bb5e.system.js +0 -4
- package/dist/ionic/p-a3277a67.entry.js +0 -4
- package/dist/ionic/p-afd6ca9d.entry.js +0 -4
- package/dist/ionic/p-b56d0866.system.entry.js +0 -4
- package/dist/ionic/p-b6f9d32a.entry.js +0 -4
- package/dist/ionic/p-c61cc894.js +0 -4
- package/dist/ionic/p-cce9f61a.system.entry.js +0 -4
- package/dist/ionic/p-d032f825.system.entry.js +0 -4
- package/dist/ionic/p-d51674c5.system.js +0 -4
- package/dist/ionic/p-de6f8b28.system.js +0 -4
- package/dist/ionic/p-de756e5c.js +0 -4
- package/dist/ionic/p-dee7c1d0.system.entry.js +0 -4
- package/dist/ionic/p-dfd9432a.entry.js +0 -4
- package/dist/ionic/p-e94c392d.entry.js +0 -4
- package/dist/ionic/p-f0445d82.system.entry.js +0 -4
- package/dist/ionic/p-f656e032.system.entry.js +0 -4
- package/dist/ionic/p-feae5133.entry.js +0 -4
- package/dist/types/components/picker-column-internal/picker-column-internal-interfaces.d.ts +0 -5
- package/dist/types/components/picker-column-internal/picker-column-internal.d.ts +0 -102
- package/dist/types/components/picker-internal/picker-internal-interfaces.d.ts +0 -8
- package/dist/types/components/picker-internal/picker-internal.d.ts +0 -102
- package/dist/types/components/toast/gestures/swipe-to-dismiss.d.ts +0 -9
- package/dist/types/jest.d.ts +0 -5
- package/dist/types/utils/forms/compare-with-utils.d.ts +0 -18
- /package/dist/collection/components/{picker-internal/picker-internal-interfaces.js → picker/picker-interfaces.js} +0 -0
- /package/dist/collection/components/{picker-column-internal/picker-column-internal-interfaces.js → picker-column/picker-column-interfaces.js} +0 -0
- /package/dist/collection/components/{picker → picker-legacy}/animations/ios.enter.js +0 -0
- /package/dist/collection/components/{picker → picker-legacy}/animations/ios.leave.js +0 -0
- /package/dist/collection/components/{picker → picker-legacy}/picker-interface.js +0 -0
- /package/dist/collection/components/{picker-column → picker-legacy-column}/picker-column.ios.css +0 -0
- /package/dist/collection/components/{picker-column → picker-legacy-column}/picker-column.md.css +0 -0
- /package/dist/collection/components/{picker-column → picker-legacy-column}/test/test.utils.js +0 -0
- /package/dist/esm-es5/{data-f5c75b4e.js → data-4b9508c9.js} +0 -0
- /package/dist/esm-es5/{index-a5d50daf.js → index-7a14ecec.js} +0 -0
- /package/dist/ionic/{p-792919fd.system.js → p-0e94957a.system.js} +0 -0
- /package/dist/ionic/{p-2aea8b1e.js → p-368f5215.js} +0 -0
- /package/dist/ionic/{p-7b30edcc.js → p-b347cfd1.js} +0 -0
- /package/dist/ionic/{p-82e3d633.system.js → p-f58981c2.system.js} +0 -0
- /package/dist/types/components/{picker → picker-legacy}/animations/ios.enter.d.ts +0 -0
- /package/dist/types/components/{picker → picker-legacy}/animations/ios.leave.d.ts +0 -0
- /package/dist/types/components/{picker → picker-legacy}/picker-interface.d.ts +0 -0
- /package/dist/types/components/{picker-column → picker-legacy-column}/test/test.utils.d.ts +0 -0
|
@@ -161,7 +161,7 @@ class TimePickerFixture {
|
|
|
161
161
|
await this.page.waitForChanges();
|
|
162
162
|
}
|
|
163
163
|
async expectTime(hour, minute, ampm) {
|
|
164
|
-
const pickerColumns = this.timePicker.locator('ion-picker-column
|
|
164
|
+
const pickerColumns = this.timePicker.locator('ion-picker-column');
|
|
165
165
|
await expect(pickerColumns.nth(0)).toHaveJSProperty('value', hour);
|
|
166
166
|
await expect(pickerColumns.nth(1)).toHaveJSProperty('value', minute);
|
|
167
167
|
await expect(pickerColumns.nth(2)).toHaveJSProperty('value', ampm);
|
|
@@ -34,7 +34,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config, scree
|
|
|
34
34
|
await expect(calendarMonthYear).toHaveText('February 2022');
|
|
35
35
|
await calendarMonthYear.click();
|
|
36
36
|
await page.waitForChanges();
|
|
37
|
-
await page.locator('.month-column
|
|
37
|
+
await page.locator('.month-column ion-picker-column-option').nth(2).click();
|
|
38
38
|
await page.waitForChanges();
|
|
39
39
|
await expect(calendarMonthYear).toHaveText('March 2022');
|
|
40
40
|
await expect(ionChange).not.toHaveReceivedEvent();
|
|
@@ -46,14 +46,14 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config, scree
|
|
|
46
46
|
const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab';
|
|
47
47
|
await page.waitForSelector('.datetime-ready');
|
|
48
48
|
const calendarMonthYear = page.locator('ion-datetime .calendar-month-year');
|
|
49
|
-
const monthYearButton = page.locator('.calendar-month-year
|
|
49
|
+
const monthYearButton = page.locator('.calendar-month-year-toggle');
|
|
50
50
|
await expect(calendarMonthYear).toHaveText('February 2022');
|
|
51
51
|
await page.keyboard.press(tabKey);
|
|
52
52
|
await expect(monthYearButton).toBeFocused();
|
|
53
53
|
await page.waitForChanges();
|
|
54
54
|
await page.keyboard.press('Enter');
|
|
55
55
|
await page.waitForChanges();
|
|
56
|
-
const marchPickerItem = page.locator('.month-column
|
|
56
|
+
const marchPickerItem = page.locator('.month-column ion-picker-column-option').nth(2);
|
|
57
57
|
await expect(marchPickerItem).toBeVisible();
|
|
58
58
|
});
|
|
59
59
|
test('should view next month via next button', async ({ page }) => {
|
|
@@ -75,7 +75,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config, scree
|
|
|
75
75
|
`, config);
|
|
76
76
|
const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab';
|
|
77
77
|
const datetime = page.locator('ion-datetime');
|
|
78
|
-
const monthYearButton = page.locator('.calendar-month-year
|
|
78
|
+
const monthYearButton = page.locator('.calendar-month-year-toggle');
|
|
79
79
|
const prevButton = page.locator('.calendar-next-prev ion-button:nth-child(1)');
|
|
80
80
|
const nextButton = page.locator('.calendar-next-prev ion-button:nth-child(2)');
|
|
81
81
|
const calendarMonthYear = page.locator('ion-datetime .calendar-month-year');
|
|
@@ -22,28 +22,28 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
22
22
|
await page.setContent(`
|
|
23
23
|
<ion-datetime locale="en-US" presentation="month-year" month-values="5,6,10"></ion-datetime>
|
|
24
24
|
`, config);
|
|
25
|
-
const items = page.locator('.month-column
|
|
25
|
+
const items = page.locator('.month-column ion-picker-column-option');
|
|
26
26
|
await expect(items).toHaveText(['May', 'June', 'October']);
|
|
27
27
|
});
|
|
28
28
|
test('should render correct years', async ({ page }) => {
|
|
29
29
|
await page.setContent(`
|
|
30
30
|
<ion-datetime locale="en-US" presentation="month-year" year-values="2022,2021,2020"></ion-datetime>
|
|
31
31
|
`, config);
|
|
32
|
-
const items = page.locator('.year-column
|
|
32
|
+
const items = page.locator('.year-column ion-picker-column-option');
|
|
33
33
|
await expect(items).toHaveText(['2022', '2021', '2020']);
|
|
34
34
|
});
|
|
35
35
|
test('should render correct hours', async ({ page }) => {
|
|
36
36
|
await page.setContent(`
|
|
37
37
|
<ion-datetime locale="en-US" presentation="time" hour-values="1,2,3"></ion-datetime>
|
|
38
38
|
`, config);
|
|
39
|
-
const items = page.locator('ion-picker-column
|
|
39
|
+
const items = page.locator('ion-picker-column:first-of-type ion-picker-column-option');
|
|
40
40
|
await expect(items).toHaveText(['1', '2', '3']);
|
|
41
41
|
});
|
|
42
42
|
test('should render correct minutes', async ({ page }) => {
|
|
43
43
|
await page.setContent(`
|
|
44
44
|
<ion-datetime locale="en-US" presentation="time" minute-values="1,2,3"></ion-datetime>
|
|
45
45
|
`, config);
|
|
46
|
-
const items = page.locator('ion-picker-column
|
|
46
|
+
const items = page.locator('ion-picker-column:nth-of-type(2) ion-picker-column-option');
|
|
47
47
|
await expect(items).toHaveText(['01', '02', '03']);
|
|
48
48
|
});
|
|
49
49
|
test('should adjust default parts for allowed hour and minute values', async ({ page }) => {
|
|
@@ -69,19 +69,22 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
69
69
|
</script>
|
|
70
70
|
`, config);
|
|
71
71
|
await page.waitForSelector('.datetime-ready');
|
|
72
|
-
const
|
|
72
|
+
const minuteColumn = page.locator('ion-picker-column').nth(1);
|
|
73
|
+
const minuteItems = minuteColumn.locator('ion-picker-column-option');
|
|
73
74
|
await expect(minuteItems).toHaveText(['00', '15', '30', '45']);
|
|
74
|
-
await expect(
|
|
75
|
-
const
|
|
75
|
+
await expect(minuteColumn).toHaveJSProperty('value', 15);
|
|
76
|
+
const hourColumn = page.locator('ion-picker-column').nth(0);
|
|
77
|
+
const hourItems = hourColumn.locator('ion-picker-column-option');
|
|
76
78
|
await expect(hourItems).toHaveText(['2']);
|
|
77
|
-
await expect(
|
|
79
|
+
await expect(hourColumn).toHaveJSProperty('value', 2);
|
|
78
80
|
/**
|
|
79
81
|
* Since the allowed hour is 2AM, the time period
|
|
80
82
|
* should switch from PM to AM.
|
|
81
83
|
*/
|
|
82
|
-
const
|
|
84
|
+
const ampmColumn = page.locator('ion-picker-column').nth(2);
|
|
85
|
+
const ampmItems = ampmColumn.locator('ion-picker-column-option');
|
|
83
86
|
await expect(ampmItems).toHaveText(['AM', 'PM']);
|
|
84
|
-
await expect(
|
|
87
|
+
await expect(ampmColumn).toHaveJSProperty('value', 'am');
|
|
85
88
|
});
|
|
86
89
|
test('should adjust default parts month for allowed month values', async ({ page }) => {
|
|
87
90
|
/**
|
|
@@ -106,9 +109,9 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
|
|
|
106
109
|
</script>
|
|
107
110
|
`, config);
|
|
108
111
|
await page.waitForSelector('.datetime-ready');
|
|
109
|
-
const monthItems = page.locator('.month-column
|
|
112
|
+
const monthItems = page.locator('.month-column ion-picker-column-option');
|
|
110
113
|
await expect(monthItems).toHaveText(['January']);
|
|
111
|
-
await expect(monthItems.nth(0)).toHaveClass(/
|
|
114
|
+
await expect(monthItems.nth(0)).toHaveClass(/option-active/);
|
|
112
115
|
});
|
|
113
116
|
test('today date highlight should persist even if disallowed from dayValues', async ({ page }) => {
|
|
114
117
|
/**
|
|
@@ -323,7 +323,7 @@ export const getMonthColumnData = (locale, refParts, minParts, maxParts, monthVa
|
|
|
323
323
|
* @param minParts The minimum bound on the date that can be returned
|
|
324
324
|
* @param maxParts The maximum bound on the date that can be returned
|
|
325
325
|
* @param dayValues The allowed date values
|
|
326
|
-
* @returns Date data to be used in ion-picker-column
|
|
326
|
+
* @returns Date data to be used in ion-picker-column
|
|
327
327
|
*/
|
|
328
328
|
export const getDayColumnData = (locale, refParts, minParts, maxParts, dayValues, formatOptions = {
|
|
329
329
|
day: 'numeric',
|
|
@@ -8,13 +8,6 @@ export class InfiniteScroll {
|
|
|
8
8
|
constructor() {
|
|
9
9
|
this.thrPx = 0;
|
|
10
10
|
this.thrPc = 0;
|
|
11
|
-
/**
|
|
12
|
-
* didFire exists so that ionInfinite
|
|
13
|
-
* does not fire multiple times if
|
|
14
|
-
* users continue to scroll after
|
|
15
|
-
* scrolling into the infinite
|
|
16
|
-
* scroll threshold.
|
|
17
|
-
*/
|
|
18
11
|
this.didFire = false;
|
|
19
12
|
this.isBusy = false;
|
|
20
13
|
this.onScroll = () => {
|
|
@@ -42,6 +35,9 @@ export class InfiniteScroll {
|
|
|
42
35
|
return 3;
|
|
43
36
|
}
|
|
44
37
|
}
|
|
38
|
+
else {
|
|
39
|
+
this.didFire = false;
|
|
40
|
+
}
|
|
45
41
|
return 4;
|
|
46
42
|
};
|
|
47
43
|
this.isLoading = false;
|
|
@@ -141,15 +137,11 @@ export class InfiniteScroll {
|
|
|
141
137
|
writeTask(() => {
|
|
142
138
|
scrollEl.scrollTop = newScrollTop;
|
|
143
139
|
this.isBusy = false;
|
|
144
|
-
this.didFire = false;
|
|
145
140
|
});
|
|
146
141
|
});
|
|
147
142
|
});
|
|
148
143
|
});
|
|
149
144
|
}
|
|
150
|
-
else {
|
|
151
|
-
this.didFire = false;
|
|
152
|
-
}
|
|
153
145
|
}
|
|
154
146
|
canStart() {
|
|
155
147
|
return !this.disabled && !this.isBusy && !!this.scrollEl && !this.isLoading;
|
|
@@ -350,7 +350,6 @@
|
|
|
350
350
|
display: flex;
|
|
351
351
|
position: relative;
|
|
352
352
|
flex-grow: 1;
|
|
353
|
-
align-items: center;
|
|
354
353
|
width: 100%;
|
|
355
354
|
}
|
|
356
355
|
|
|
@@ -655,7 +654,9 @@
|
|
|
655
654
|
/**
|
|
656
655
|
* This makes the label sit above the input.
|
|
657
656
|
*/
|
|
658
|
-
:host(.label-
|
|
657
|
+
:host(.input-label-placement-stacked) .label-text-wrapper,
|
|
658
|
+
:host(.has-focus.input-label-placement-floating) .label-text-wrapper,
|
|
659
|
+
:host(.has-value.input-label-placement-floating) .label-text-wrapper {
|
|
659
660
|
transform: translateY(50%) scale(0.75);
|
|
660
661
|
/**
|
|
661
662
|
* Label text should not extend
|
|
@@ -664,14 +665,6 @@
|
|
|
664
665
|
max-width: calc(100% / 0.75);
|
|
665
666
|
}
|
|
666
667
|
|
|
667
|
-
::slotted([slot=start]) {
|
|
668
|
-
margin-inline-end: 16px;
|
|
669
|
-
}
|
|
670
|
-
|
|
671
|
-
::slotted([slot=end]) {
|
|
672
|
-
margin-inline-start: 16px;
|
|
673
|
-
}
|
|
674
|
-
|
|
675
668
|
/**
|
|
676
669
|
* Convert a font size to a dynamic font size.
|
|
677
670
|
* Fonts that participate in Dynamic Type should use
|
|
@@ -14,8 +14,6 @@ import { getCounterText } from "./input.utils";
|
|
|
14
14
|
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
15
15
|
*
|
|
16
16
|
* @slot label - The label text to associate with the input. Use the `labelPlacement` property to control where the label is placed relative to the input. Use this if you need to render a label with custom HTML. (EXPERIMENTAL)
|
|
17
|
-
* @slot start - Content to display at the leading edge of the input. (EXPERIMENTAL)
|
|
18
|
-
* @slot end - Content to display at the trailing edge of the input. (EXPERIMENTAL)
|
|
19
17
|
*/
|
|
20
18
|
export class Input {
|
|
21
19
|
constructor() {
|
|
@@ -159,7 +157,7 @@ export class Input {
|
|
|
159
157
|
connectedCallback() {
|
|
160
158
|
const { el } = this;
|
|
161
159
|
this.legacyFormController = createLegacyFormController(el);
|
|
162
|
-
this.slotMutationController = createSlotMutationController(el,
|
|
160
|
+
this.slotMutationController = createSlotMutationController(el, 'label', () => forceUpdate(this));
|
|
163
161
|
this.notchController = createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
|
|
164
162
|
this.emitStyle();
|
|
165
163
|
this.debounceChanged();
|
|
@@ -260,8 +258,6 @@ export class Input {
|
|
|
260
258
|
'has-value': this.hasValue(),
|
|
261
259
|
'has-focus': this.hasFocus,
|
|
262
260
|
'interactive-disabled': this.disabled,
|
|
263
|
-
// TODO(FW-2764): remove this
|
|
264
|
-
legacy: !!this.legacy,
|
|
265
261
|
});
|
|
266
262
|
}
|
|
267
263
|
}
|
|
@@ -367,50 +363,29 @@ export class Input {
|
|
|
367
363
|
return this.renderLabel();
|
|
368
364
|
}
|
|
369
365
|
renderInput() {
|
|
370
|
-
const { disabled, fill, readonly, shape, inputId, labelPlacement
|
|
366
|
+
const { disabled, fill, readonly, shape, inputId, labelPlacement } = this;
|
|
371
367
|
const mode = getIonMode(this);
|
|
372
368
|
const value = this.getValue();
|
|
373
369
|
const inItem = hostContext('ion-item', this.el);
|
|
374
370
|
const shouldRenderHighlight = mode === 'md' && fill !== 'outline' && !inItem;
|
|
375
|
-
const hasValue = this.hasValue();
|
|
376
|
-
const hasStartEndSlots = el.querySelector('[slot="start"], [slot="end"]') !== null;
|
|
377
|
-
/**
|
|
378
|
-
* If the label is stacked, it should always sit above the input.
|
|
379
|
-
* For floating labels, the label should move above the input if
|
|
380
|
-
* the input has a value, is focused, or has anything in either
|
|
381
|
-
* the start or end slot.
|
|
382
|
-
*
|
|
383
|
-
* If there is content in the start slot, the label would overlap
|
|
384
|
-
* it if not forced to float. This is also applied to the end slot
|
|
385
|
-
* because with the default or solid fills, the input is not
|
|
386
|
-
* vertically centered in the container, but the label is. This
|
|
387
|
-
* causes the slots and label to appear vertically offset from each
|
|
388
|
-
* other when the label isn't floating above the input. This doesn't
|
|
389
|
-
* apply to the outline fill, but this was not accounted for to keep
|
|
390
|
-
* things consistent.
|
|
391
|
-
*
|
|
392
|
-
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
393
|
-
*/
|
|
394
|
-
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
|
|
395
371
|
return (h(Host, { class: createColorClasses(this.color, {
|
|
396
372
|
[mode]: true,
|
|
397
|
-
'has-value': hasValue,
|
|
398
|
-
'has-focus': hasFocus,
|
|
399
|
-
'label-floating': labelShouldFloat,
|
|
373
|
+
'has-value': this.hasValue(),
|
|
374
|
+
'has-focus': this.hasFocus,
|
|
400
375
|
[`input-fill-${fill}`]: fill !== undefined,
|
|
401
376
|
[`input-shape-${shape}`]: shape !== undefined,
|
|
402
377
|
[`input-label-placement-${labelPlacement}`]: true,
|
|
403
378
|
'in-item': inItem,
|
|
404
379
|
'in-item-color': hostContext('ion-item.ion-color', this.el),
|
|
405
380
|
'input-disabled': disabled,
|
|
406
|
-
}) }, h("label", { class: "input-wrapper"
|
|
381
|
+
}) }, h("label", { class: "input-wrapper" }, this.renderLabelContainer(), h("div", { class: "native-wrapper" }, h("input", Object.assign({ class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, accept: this.accept, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, size: this.size, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd }, this.inheritedAttributes)), this.clearInput && !readonly && !disabled && (h("button", { "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
|
|
407
382
|
/**
|
|
408
383
|
* This prevents mobile browsers from
|
|
409
384
|
* blurring the input when the clear
|
|
410
385
|
* button is activated.
|
|
411
386
|
*/
|
|
412
387
|
ev.preventDefault();
|
|
413
|
-
}, onClick: this.clearTextInput }, h("ion-icon", { "aria-hidden": "true", icon: mode === 'ios' ? closeCircle : closeSharp })))
|
|
388
|
+
}, onClick: this.clearTextInput }, h("ion-icon", { "aria-hidden": "true", icon: mode === 'ios' ? closeCircle : closeSharp })))), shouldRenderHighlight && h("div", { class: "input-highlight" })), this.renderBottomContent()));
|
|
414
389
|
}
|
|
415
390
|
// TODO FW-2764 Remove this
|
|
416
391
|
renderLegacyInput() {
|
|
@@ -350,7 +350,6 @@
|
|
|
350
350
|
display: flex;
|
|
351
351
|
position: relative;
|
|
352
352
|
flex-grow: 1;
|
|
353
|
-
align-items: center;
|
|
354
353
|
width: 100%;
|
|
355
354
|
}
|
|
356
355
|
|
|
@@ -655,7 +654,9 @@
|
|
|
655
654
|
/**
|
|
656
655
|
* This makes the label sit above the input.
|
|
657
656
|
*/
|
|
658
|
-
:host(.label-
|
|
657
|
+
:host(.input-label-placement-stacked) .label-text-wrapper,
|
|
658
|
+
:host(.has-focus.input-label-placement-floating) .label-text-wrapper,
|
|
659
|
+
:host(.has-value.input-label-placement-floating) .label-text-wrapper {
|
|
659
660
|
transform: translateY(50%) scale(0.75);
|
|
660
661
|
/**
|
|
661
662
|
* Label text should not extend
|
|
@@ -664,14 +665,6 @@
|
|
|
664
665
|
max-width: calc(100% / 0.75);
|
|
665
666
|
}
|
|
666
667
|
|
|
667
|
-
::slotted([slot=start]) {
|
|
668
|
-
margin-inline-end: 16px;
|
|
669
|
-
}
|
|
670
|
-
|
|
671
|
-
::slotted([slot=end]) {
|
|
672
|
-
margin-inline-start: 16px;
|
|
673
|
-
}
|
|
674
|
-
|
|
675
668
|
/**
|
|
676
669
|
* Convert a font size to a dynamic font size.
|
|
677
670
|
* Fonts that participate in Dynamic Type should use
|
|
@@ -914,7 +907,9 @@
|
|
|
914
907
|
}
|
|
915
908
|
}
|
|
916
909
|
|
|
917
|
-
:host(.
|
|
910
|
+
:host(.input-fill-solid.input-label-placement-stacked) .label-text-wrapper,
|
|
911
|
+
:host(.has-focus.input-fill-solid.input-label-placement-floating) .label-text-wrapper,
|
|
912
|
+
:host(.has-value.input-fill-solid.input-label-placement-floating) .label-text-wrapper {
|
|
918
913
|
/**
|
|
919
914
|
* Label text should not extend
|
|
920
915
|
* beyond the bounds of the input.
|
|
@@ -1068,7 +1063,9 @@
|
|
|
1068
1063
|
/**
|
|
1069
1064
|
* This makes the label sit above the input.
|
|
1070
1065
|
*/
|
|
1071
|
-
:host(.
|
|
1066
|
+
:host(.has-focus.input-fill-outline.input-label-placement-floating) .label-text-wrapper,
|
|
1067
|
+
:host(.has-value.input-fill-outline.input-label-placement-floating) .label-text-wrapper,
|
|
1068
|
+
:host(.input-fill-outline.input-label-placement-stacked) .label-text-wrapper {
|
|
1072
1069
|
transform: translateY(-32%) scale(0.75);
|
|
1073
1070
|
margin-left: 0;
|
|
1074
1071
|
margin-right: 0;
|
|
@@ -1229,7 +1226,9 @@
|
|
|
1229
1226
|
* the floating/stacked label. We simulate this "cut out"
|
|
1230
1227
|
* by removing the top border from the notch fragment.
|
|
1231
1228
|
*/
|
|
1232
|
-
:host(.
|
|
1229
|
+
:host(.has-focus.input-fill-outline.input-label-placement-floating) .input-outline-notch,
|
|
1230
|
+
:host(.has-value.input-fill-outline.input-label-placement-floating) .input-outline-notch,
|
|
1231
|
+
:host(.input-fill-outline.input-label-placement-stacked) .input-outline-notch {
|
|
1233
1232
|
border-top: none;
|
|
1234
1233
|
}
|
|
1235
1234
|
|
|
@@ -100,14 +100,6 @@
|
|
|
100
100
|
* @prop --highlight-color-valid: The color of the highlight on the item when valid. Only applies to inputs and textareas using the legacy form syntax. DEPRECATED: Highlights can be styled on `ion-input` or `ion-textarea` when using the modern form syntax.
|
|
101
101
|
* @prop --highlight-color-invalid: The color of the highlight on the item when invalid. Only applies to inputs and textareas using the legacy form syntax. DEPRECATED: Highlights can be styled on `ion-input` or `ion-textarea` when using the modern form syntax.
|
|
102
102
|
*/
|
|
103
|
-
/**
|
|
104
|
-
* We change the minimum width as the
|
|
105
|
-
* font size changes. Using a fixed minimum
|
|
106
|
-
* width means that fewer and fewer characters
|
|
107
|
-
* can be displayed in the same space as the
|
|
108
|
-
* text grows.
|
|
109
|
-
*/
|
|
110
|
-
--inner-min-width: 4rem;
|
|
111
103
|
--border-radius: 0px;
|
|
112
104
|
--border-width: 0px;
|
|
113
105
|
--border-style: solid;
|
|
@@ -238,7 +230,6 @@
|
|
|
238
230
|
/* stylelint-enable */
|
|
239
231
|
display: flex;
|
|
240
232
|
position: relative;
|
|
241
|
-
flex-wrap: wrap;
|
|
242
233
|
align-items: inherit;
|
|
243
234
|
justify-content: inherit;
|
|
244
235
|
width: 100%;
|
|
@@ -250,8 +241,8 @@
|
|
|
250
241
|
outline: none;
|
|
251
242
|
background: var(--background);
|
|
252
243
|
overflow: inherit;
|
|
253
|
-
z-index: 1;
|
|
254
244
|
box-sizing: border-box;
|
|
245
|
+
z-index: 1;
|
|
255
246
|
}
|
|
256
247
|
:host-context([dir=rtl]) .item-native {
|
|
257
248
|
padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
|
|
@@ -270,10 +261,6 @@
|
|
|
270
261
|
}
|
|
271
262
|
}
|
|
272
263
|
|
|
273
|
-
:host(.item-legacy) .item-native {
|
|
274
|
-
flex-wrap: unset;
|
|
275
|
-
}
|
|
276
|
-
|
|
277
264
|
.item-native::-moz-focus-inner {
|
|
278
265
|
border: 0;
|
|
279
266
|
}
|
|
@@ -309,20 +296,10 @@ button, a {
|
|
|
309
296
|
/* stylelint-enable */
|
|
310
297
|
display: flex;
|
|
311
298
|
position: relative;
|
|
312
|
-
flex: 1
|
|
299
|
+
flex: 1;
|
|
313
300
|
flex-direction: inherit;
|
|
314
|
-
flex-wrap: wrap;
|
|
315
301
|
align-items: inherit;
|
|
316
302
|
align-self: stretch;
|
|
317
|
-
/**
|
|
318
|
-
* The min-width defines when the
|
|
319
|
-
* content in the default slot should
|
|
320
|
-
* stop wrapping/truncating within its own
|
|
321
|
-
* container. At this point the entire
|
|
322
|
-
* container will wrap to the next line.
|
|
323
|
-
*/
|
|
324
|
-
min-width: var(--inner-min-width);
|
|
325
|
-
max-width: 100%;
|
|
326
303
|
min-height: inherit;
|
|
327
304
|
border-width: var(--inner-border-width);
|
|
328
305
|
border-style: var(--border-style);
|
|
@@ -348,12 +325,6 @@ button, a {
|
|
|
348
325
|
}
|
|
349
326
|
}
|
|
350
327
|
|
|
351
|
-
:host(.item-legacy) .item-inner {
|
|
352
|
-
flex: 1;
|
|
353
|
-
flex-wrap: unset;
|
|
354
|
-
max-width: unset;
|
|
355
|
-
}
|
|
356
|
-
|
|
357
328
|
.item-bottom {
|
|
358
329
|
margin-left: 0;
|
|
359
330
|
margin-right: 0;
|
|
@@ -417,7 +388,6 @@ button, a {
|
|
|
417
388
|
|
|
418
389
|
::slotted(ion-label:not([slot=end])) {
|
|
419
390
|
flex: 1;
|
|
420
|
-
width: min-content;
|
|
421
391
|
}
|
|
422
392
|
|
|
423
393
|
:host(.item-input) {
|
|
@@ -426,23 +396,15 @@ button, a {
|
|
|
426
396
|
|
|
427
397
|
.input-wrapper {
|
|
428
398
|
display: flex;
|
|
429
|
-
flex: 1
|
|
399
|
+
flex: 1;
|
|
430
400
|
flex-direction: inherit;
|
|
431
|
-
flex-wrap: wrap;
|
|
432
401
|
align-items: inherit;
|
|
433
402
|
align-self: stretch;
|
|
434
|
-
max-width: 100%;
|
|
435
403
|
text-overflow: ellipsis;
|
|
436
404
|
overflow: inherit;
|
|
437
405
|
box-sizing: border-box;
|
|
438
406
|
}
|
|
439
407
|
|
|
440
|
-
:host(.item-legacy) .input-wrapper {
|
|
441
|
-
flex: 1;
|
|
442
|
-
flex-wrap: unset;
|
|
443
|
-
max-width: unset;
|
|
444
|
-
}
|
|
445
|
-
|
|
446
408
|
:host(.item-label-stacked),
|
|
447
409
|
:host(.item-label-floating) {
|
|
448
410
|
align-items: start;
|
|
@@ -100,14 +100,6 @@
|
|
|
100
100
|
* @prop --highlight-color-valid: The color of the highlight on the item when valid. Only applies to inputs and textareas using the legacy form syntax. DEPRECATED: Highlights can be styled on `ion-input` or `ion-textarea` when using the modern form syntax.
|
|
101
101
|
* @prop --highlight-color-invalid: The color of the highlight on the item when invalid. Only applies to inputs and textareas using the legacy form syntax. DEPRECATED: Highlights can be styled on `ion-input` or `ion-textarea` when using the modern form syntax.
|
|
102
102
|
*/
|
|
103
|
-
/**
|
|
104
|
-
* We change the minimum width as the
|
|
105
|
-
* font size changes. Using a fixed minimum
|
|
106
|
-
* width means that fewer and fewer characters
|
|
107
|
-
* can be displayed in the same space as the
|
|
108
|
-
* text grows.
|
|
109
|
-
*/
|
|
110
|
-
--inner-min-width: 4rem;
|
|
111
103
|
--border-radius: 0px;
|
|
112
104
|
--border-width: 0px;
|
|
113
105
|
--border-style: solid;
|
|
@@ -238,7 +230,6 @@
|
|
|
238
230
|
/* stylelint-enable */
|
|
239
231
|
display: flex;
|
|
240
232
|
position: relative;
|
|
241
|
-
flex-wrap: wrap;
|
|
242
233
|
align-items: inherit;
|
|
243
234
|
justify-content: inherit;
|
|
244
235
|
width: 100%;
|
|
@@ -250,8 +241,8 @@
|
|
|
250
241
|
outline: none;
|
|
251
242
|
background: var(--background);
|
|
252
243
|
overflow: inherit;
|
|
253
|
-
z-index: 1;
|
|
254
244
|
box-sizing: border-box;
|
|
245
|
+
z-index: 1;
|
|
255
246
|
}
|
|
256
247
|
:host-context([dir=rtl]) .item-native {
|
|
257
248
|
padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
|
|
@@ -270,10 +261,6 @@
|
|
|
270
261
|
}
|
|
271
262
|
}
|
|
272
263
|
|
|
273
|
-
:host(.item-legacy) .item-native {
|
|
274
|
-
flex-wrap: unset;
|
|
275
|
-
}
|
|
276
|
-
|
|
277
264
|
.item-native::-moz-focus-inner {
|
|
278
265
|
border: 0;
|
|
279
266
|
}
|
|
@@ -309,20 +296,10 @@ button, a {
|
|
|
309
296
|
/* stylelint-enable */
|
|
310
297
|
display: flex;
|
|
311
298
|
position: relative;
|
|
312
|
-
flex: 1
|
|
299
|
+
flex: 1;
|
|
313
300
|
flex-direction: inherit;
|
|
314
|
-
flex-wrap: wrap;
|
|
315
301
|
align-items: inherit;
|
|
316
302
|
align-self: stretch;
|
|
317
|
-
/**
|
|
318
|
-
* The min-width defines when the
|
|
319
|
-
* content in the default slot should
|
|
320
|
-
* stop wrapping/truncating within its own
|
|
321
|
-
* container. At this point the entire
|
|
322
|
-
* container will wrap to the next line.
|
|
323
|
-
*/
|
|
324
|
-
min-width: var(--inner-min-width);
|
|
325
|
-
max-width: 100%;
|
|
326
303
|
min-height: inherit;
|
|
327
304
|
border-width: var(--inner-border-width);
|
|
328
305
|
border-style: var(--border-style);
|
|
@@ -348,12 +325,6 @@ button, a {
|
|
|
348
325
|
}
|
|
349
326
|
}
|
|
350
327
|
|
|
351
|
-
:host(.item-legacy) .item-inner {
|
|
352
|
-
flex: 1;
|
|
353
|
-
flex-wrap: unset;
|
|
354
|
-
max-width: unset;
|
|
355
|
-
}
|
|
356
|
-
|
|
357
328
|
.item-bottom {
|
|
358
329
|
margin-left: 0;
|
|
359
330
|
margin-right: 0;
|
|
@@ -417,7 +388,6 @@ button, a {
|
|
|
417
388
|
|
|
418
389
|
::slotted(ion-label:not([slot=end])) {
|
|
419
390
|
flex: 1;
|
|
420
|
-
width: min-content;
|
|
421
391
|
}
|
|
422
392
|
|
|
423
393
|
:host(.item-input) {
|
|
@@ -426,23 +396,15 @@ button, a {
|
|
|
426
396
|
|
|
427
397
|
.input-wrapper {
|
|
428
398
|
display: flex;
|
|
429
|
-
flex: 1
|
|
399
|
+
flex: 1;
|
|
430
400
|
flex-direction: inherit;
|
|
431
|
-
flex-wrap: wrap;
|
|
432
401
|
align-items: inherit;
|
|
433
402
|
align-self: stretch;
|
|
434
|
-
max-width: 100%;
|
|
435
403
|
text-overflow: ellipsis;
|
|
436
404
|
overflow: inherit;
|
|
437
405
|
box-sizing: border-box;
|
|
438
406
|
}
|
|
439
407
|
|
|
440
|
-
:host(.item-legacy) .input-wrapper {
|
|
441
|
-
flex: 1;
|
|
442
|
-
flex-wrap: unset;
|
|
443
|
-
max-width: unset;
|
|
444
|
-
}
|
|
445
|
-
|
|
446
408
|
:host(.item-label-stacked),
|
|
447
409
|
:host(.item-label-floating) {
|
|
448
410
|
align-items: start;
|
|
@@ -29,7 +29,7 @@ configs().forEach(({ title, screenshot, config }) => {
|
|
|
29
29
|
</ion-item>
|
|
30
30
|
|
|
31
31
|
<ion-item>
|
|
32
|
-
<ion-label
|
|
32
|
+
<ion-label> Single line text that should have ellipses when it doesn't all fit in the item</ion-label>
|
|
33
33
|
</ion-item>
|
|
34
34
|
</ion-list>
|
|
35
35
|
`, config);
|
|
@@ -11,6 +11,7 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
|
11
11
|
test('should not have visual regressions', async ({ page }) => {
|
|
12
12
|
await page.goto(`/src/components/item/test/disabled`, config);
|
|
13
13
|
await page.setIonViewport();
|
|
14
|
+
// TODO: FW-4037 - Fix label color inconsistency between disabled controls
|
|
14
15
|
await expect(page).toHaveScreenshot(screenshot(`item-disabled-diff`));
|
|
15
16
|
});
|
|
16
17
|
});
|
|
@@ -0,0 +1,14 @@
|
|
|
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
|
+
configs().forEach(({ title, screenshot, config }) => {
|
|
7
|
+
test.describe(title('item: text'), () => {
|
|
8
|
+
test('should not have visual regressions', async ({ page }) => {
|
|
9
|
+
await page.goto(`/src/components/item/test/text`, config);
|
|
10
|
+
await page.setIonViewport();
|
|
11
|
+
await expect(page).toHaveScreenshot(screenshot(`item-text-diff`));
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
});
|
|
@@ -63,24 +63,17 @@
|
|
|
63
63
|
font-family: var(--ion-font-family, inherit);
|
|
64
64
|
font-size: inherit;
|
|
65
65
|
text-overflow: ellipsis;
|
|
66
|
-
box-sizing: border-box;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
:host-context(.item-legacy) {
|
|
70
66
|
white-space: nowrap;
|
|
71
67
|
overflow: hidden;
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
:host-context(.item:not(.item-input):not(.item-legacy)) {
|
|
75
|
-
flex-grow: 1;
|
|
68
|
+
box-sizing: border-box;
|
|
76
69
|
}
|
|
77
70
|
|
|
78
71
|
:host(.ion-color) {
|
|
79
72
|
color: var(--ion-color-base);
|
|
80
73
|
}
|
|
81
74
|
|
|
82
|
-
:host(.ion-text-
|
|
83
|
-
|
|
75
|
+
:host(.ion-text-wrap) {
|
|
76
|
+
white-space: normal;
|
|
84
77
|
}
|
|
85
78
|
|
|
86
79
|
:host-context(.item-interactive-disabled:not(.item-multiple-inputs)) {
|
|
@@ -99,10 +92,6 @@
|
|
|
99
92
|
align-self: baseline;
|
|
100
93
|
}
|
|
101
94
|
|
|
102
|
-
:host-context(.item-skeleton-text) {
|
|
103
|
-
overflow: hidden;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
95
|
:host(.label-fixed) {
|
|
107
96
|
flex: 0 0 100px;
|
|
108
97
|
width: 100px;
|