@ionic/core 7.5.4-dev.11699037031.16f5cbc8 → 7.5.4-dev.11699282935.1db450b0
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/ion-datetime.js +2 -2
- package/components/ion-header.js +1 -1
- package/components/ion-input.js +0 -2
- package/components/ion-range.js +0 -2
- package/components/ion-select.js +25 -5
- package/components/ion-skeleton-text.js +1 -14
- package/components/ion-textarea.js +0 -2
- package/components/ion-toast.js +18 -13
- package/components/ion-toggle.js +0 -2
- package/components/item.js +2 -2
- package/components/label.js +2 -2
- package/components/list.js +2 -2
- package/components/radio-group.js +0 -2
- package/components/radio.js +2 -35
- package/dist/cjs/{animation-d101aa7a.js → animation-1083855c.js} +12 -13
- package/dist/cjs/{button-active-69c3bee4.js → button-active-625d1d77.js} +1 -1
- 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-adbcffee.js → index-135a6097.js} +2 -2
- package/dist/cjs/index-306a7476.js +32 -0
- package/dist/cjs/{index-9146d04a.js → index-3659e3a5.js} +13 -11
- package/dist/cjs/{index-e9634bc9.js → index-9f379eaa.js} +1 -1
- package/dist/cjs/index.cjs.js +8 -8
- package/dist/cjs/{input-shims-3e3f35b9.js → input-shims-b0a75a01.js} +10 -15
- package/dist/cjs/{input.utils-590f0f18.js → input.utils-0fe3097c.js} +1 -1
- package/dist/cjs/ion-action-sheet.cjs.entry.js +6 -6
- package/dist/cjs/ion-alert.cjs.entry.js +6 -6
- package/dist/cjs/ion-app_8.cjs.entry.js +9 -9
- package/dist/cjs/ion-checkbox.cjs.entry.js +0 -2
- package/dist/cjs/ion-datetime_3.cjs.entry.js +7 -7
- package/dist/cjs/ion-input.cjs.entry.js +3 -5
- package/dist/cjs/ion-item_8.cjs.entry.js +6 -19
- package/dist/cjs/ion-loading.cjs.entry.js +3 -3
- package/dist/cjs/ion-menu_3.cjs.entry.js +5 -5
- package/dist/cjs/ion-modal.cjs.entry.js +7 -7
- package/dist/cjs/ion-nav_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-picker-column-internal.cjs.entry.js +3 -3
- package/dist/cjs/ion-popover.cjs.entry.js +4 -4
- package/dist/cjs/ion-radio_2.cjs.entry.js +1 -6
- package/dist/cjs/ion-range.cjs.entry.js +0 -2
- package/dist/cjs/ion-refresher_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-reorder_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-select_3.cjs.entry.js +31 -12
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-textarea.cjs.entry.js +3 -5
- package/dist/cjs/ion-toast.cjs.entry.js +21 -16
- package/dist/cjs/ion-toggle.cjs.entry.js +3 -5
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/{ios.transition-7972d9e3.js → ios.transition-b71990aa.js} +3 -3
- 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 +1 -1
- package/dist/cjs/{md.transition-6e61a10f.js → md.transition-3caa648a.js} +3 -3
- package/dist/cjs/{notch-controller-c22d1344.js → notch-controller-f4f6af5d.js} +1 -1
- package/dist/cjs/{overlays-d80a2cf2.js → overlays-6d1daf80.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/header/header.ios.css +3 -1
- package/dist/collection/components/input/input.js +0 -2
- package/dist/collection/components/item/item.ios.css +3 -25
- package/dist/collection/components/item/item.md.css +3 -25
- 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/list/list.ios.css +15 -1
- package/dist/collection/components/list/list.md.css +41 -3
- package/dist/collection/components/list/test/lines/list.e2e.js +143 -0
- package/dist/collection/components/note/test/a11y/note.e2e.js +0 -43
- package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +5 -0
- 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 +0 -5
- package/dist/collection/components/select/select.js +24 -4
- package/dist/collection/components/select/select.md.css +0 -5
- 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.js +0 -2
- package/dist/collection/components/toast/animations/md.enter.js +2 -2
- package/dist/collection/components/toast/animations/utils.js +14 -9
- package/dist/collection/components/toast/toast.ios.css +10 -10
- 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/docs.json +2 -43
- package/dist/esm/{animation-cf3dd234.js → animation-8aa13916.js} +12 -13
- package/dist/esm/{button-active-109ba60d.js → button-active-1fb561b0.js} +1 -1
- 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-6a48e009.js → index-056b43e7.js} +13 -11
- package/dist/esm/{index-50582f1c.js → index-47a510cf.js} +2 -2
- package/dist/esm/index-7a14ecec.js +29 -0
- package/dist/esm/{index-c9e82353.js → index-f0cc4e14.js} +1 -1
- package/dist/esm/index.js +8 -8
- package/dist/esm/{input-shims-1d767845.js → input-shims-d0c93e5d.js} +9 -14
- package/dist/esm/{input.utils-d04a7212.js → input.utils-ec063df4.js} +1 -1
- package/dist/esm/ion-action-sheet.entry.js +6 -6
- package/dist/esm/ion-alert.entry.js +6 -6
- package/dist/esm/ion-app_8.entry.js +9 -9
- package/dist/esm/ion-checkbox.entry.js +0 -2
- package/dist/esm/ion-datetime_3.entry.js +7 -7
- package/dist/esm/ion-input.entry.js +3 -5
- package/dist/esm/ion-item_8.entry.js +6 -19
- package/dist/esm/ion-loading.entry.js +3 -3
- package/dist/esm/ion-menu_3.entry.js +5 -5
- package/dist/esm/ion-modal.entry.js +7 -7
- package/dist/esm/ion-nav_2.entry.js +1 -1
- package/dist/esm/ion-picker-column-internal.entry.js +3 -3
- package/dist/esm/ion-popover.entry.js +4 -4
- package/dist/esm/ion-radio_2.entry.js +1 -6
- package/dist/esm/ion-range.entry.js +0 -2
- package/dist/esm/ion-refresher_2.entry.js +4 -4
- package/dist/esm/ion-reorder_2.entry.js +3 -3
- package/dist/esm/ion-select_3.entry.js +27 -8
- package/dist/esm/ion-tab-bar_2.entry.js +4 -4
- package/dist/esm/ion-textarea.entry.js +3 -5
- package/dist/esm/ion-toast.entry.js +21 -16
- package/dist/esm/ion-toggle.entry.js +3 -5
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/{ios.transition-e20d71bc.js → ios.transition-b53e19a3.js} +3 -3
- 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 +1 -1
- package/dist/esm/{md.transition-a8469407.js → md.transition-276c1159.js} +3 -3
- package/dist/esm/{notch-controller-3f79197e.js → notch-controller-8c9c0e54.js} +1 -1
- package/dist/esm/{overlays-a31c8878.js → overlays-928a4afe.js} +1 -1
- package/dist/esm-es5/{animation-cf3dd234.js → animation-8aa13916.js} +1 -1
- package/dist/esm-es5/{button-active-109ba60d.js → button-active-1fb561b0.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-056b43e7.js +4 -0
- package/dist/esm-es5/{index-50582f1c.js → index-47a510cf.js} +1 -1
- 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-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-checkbox.entry.js +1 -1
- package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
- package/dist/esm-es5/ion-input.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-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-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-e20d71bc.js → ios.transition-b53e19a3.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-a8469407.js → md.transition-276c1159.js} +1 -1
- package/dist/esm-es5/{notch-controller-3f79197e.js → notch-controller-8c9c0e54.js} +1 -1
- package/dist/esm-es5/{overlays-a31c8878.js → overlays-928a4afe.js} +1 -1
- package/dist/html.html-data.json +1 -5
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-02663394.system.js +1 -1
- package/dist/ionic/p-0816f061.entry.js +4 -0
- package/dist/ionic/{p-e91c7eb4.system.entry.js → p-084413f2.system.entry.js} +1 -1
- package/dist/ionic/{p-c32a6c04.entry.js → p-09ec6b90.entry.js} +1 -1
- package/dist/ionic/p-0e7712cb.entry.js +4 -0
- package/dist/ionic/{p-a03566c4.system.entry.js → p-1589d649.system.entry.js} +1 -1
- package/dist/ionic/{p-bc48e521.system.entry.js → p-16b94c87.system.entry.js} +1 -1
- package/dist/ionic/p-17ebfee6.entry.js +4 -0
- package/dist/ionic/{p-47826f19.entry.js → p-18532ed6.entry.js} +1 -1
- package/dist/ionic/{p-4c75cb48.system.js → p-1a1fcc8b.system.js} +1 -1
- package/dist/ionic/p-1ad8ddc1.system.entry.js +4 -0
- package/dist/ionic/{p-1667596c.js → p-276afddd.js} +1 -1
- package/dist/ionic/p-28acf48d.system.entry.js +4 -0
- package/dist/ionic/p-2e8e0045.js +4 -0
- package/dist/ionic/{p-50375f3b.system.entry.js → p-30d6fb24.system.entry.js} +1 -1
- package/dist/ionic/{p-3fc0b7ba.entry.js → p-33986d02.entry.js} +1 -1
- package/dist/ionic/p-3602001b.system.js +4 -0
- package/dist/ionic/{p-7def197f.system.js → p-3632220b.system.js} +1 -1
- package/dist/ionic/{p-e5fd9f10.js → p-3bad5c1a.js} +1 -1
- package/dist/ionic/p-40762835.entry.js +4 -0
- package/dist/ionic/{p-3a769110.system.entry.js → p-40c0c580.system.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-4eb8645b.system.entry.js +4 -0
- package/dist/ionic/{p-75338011.entry.js → p-565d1dc5.entry.js} +1 -1
- package/dist/ionic/{p-35787a6f.entry.js → p-59f491c5.entry.js} +1 -1
- package/dist/ionic/p-5f4c4347.system.entry.js +4 -0
- package/dist/ionic/p-5feb31c6.entry.js +4 -0
- package/dist/ionic/{p-1e59dd04.system.entry.js → p-60f55715.system.entry.js} +1 -1
- package/dist/ionic/{p-957f3028.system.entry.js → p-677a233c.system.entry.js} +1 -1
- package/dist/ionic/p-67eecef4.system.js +4 -0
- package/dist/ionic/{p-98c70e3c.system.js → p-7d3be70f.system.js} +1 -1
- package/dist/ionic/{p-53b1930e.entry.js → p-80baef4f.entry.js} +1 -1
- package/dist/ionic/{p-11cb4e19.js → p-81c818e7.js} +1 -1
- package/dist/ionic/{p-ce20c101.entry.js → p-82c503f7.entry.js} +1 -1
- package/dist/ionic/{p-59107f99.system.entry.js → p-8704e922.system.entry.js} +1 -1
- package/dist/ionic/{p-0c40f7d3.system.js → p-8cc04bea.system.js} +1 -1
- package/dist/ionic/{p-5885e9af.js → p-8cf94fc1.js} +1 -1
- package/dist/ionic/{p-abaa9b48.system.js → p-940a581d.system.js} +1 -1
- package/dist/ionic/p-97c65aa5.js +4 -0
- package/dist/ionic/p-9ab6f3e6.system.js +4 -0
- package/dist/ionic/{p-9b34caa0.system.entry.js → p-9bb21465.system.entry.js} +1 -1
- package/dist/ionic/{p-13dd7d20.system.js → p-a07cd4aa.system.js} +1 -1
- package/dist/ionic/{p-edd568c5.js → p-a2200630.js} +1 -1
- package/dist/ionic/{p-c09fa14d.entry.js → p-a3545dad.entry.js} +1 -1
- package/dist/ionic/{p-b86c6c05.entry.js → p-a5b3aa82.entry.js} +1 -1
- package/dist/ionic/{p-9939c98e.entry.js → p-a843f88e.entry.js} +1 -1
- package/dist/ionic/p-a8e2b2b0.js +4 -0
- package/dist/ionic/p-aa310f38.entry.js +4 -0
- package/dist/ionic/{p-aec8a70a.system.js → p-ab4cff27.system.js} +1 -1
- package/dist/ionic/p-ae590bcd.entry.js +4 -0
- package/dist/ionic/{p-90020ef0.system.entry.js → p-af589369.system.entry.js} +1 -1
- package/dist/ionic/p-b1075d53.system.js +4 -0
- package/dist/ionic/{p-9292fd42.system.js → p-b4b4bb29.system.js} +1 -1
- package/dist/ionic/p-b6be9a42.system.js +4 -0
- package/dist/ionic/{p-6a309574.js → p-b923f3d7.js} +1 -1
- package/dist/ionic/{p-f9a641fa.system.js → p-bba2ce59.system.js} +1 -1
- package/dist/ionic/{p-0becf7b5.system.entry.js → p-bf731526.system.entry.js} +1 -1
- package/dist/ionic/p-c3278d57.js +4 -0
- package/dist/ionic/p-c6e9ffd6.js +4 -0
- package/dist/ionic/{p-e66f7d10.system.entry.js → p-cbbefe72.system.entry.js} +1 -1
- package/dist/ionic/p-cc196b34.js +4 -0
- package/dist/ionic/{p-e7d20dfb.system.js → p-ccdcb022.system.js} +1 -1
- package/dist/ionic/p-d1de1188.js +4 -0
- package/dist/ionic/{p-4c50b357.system.entry.js → p-d40d3245.system.entry.js} +1 -1
- package/dist/ionic/p-d6c6b195.system.entry.js +4 -0
- package/dist/ionic/{p-2fb115dc.entry.js → p-da3e5259.entry.js} +1 -1
- package/dist/ionic/p-daf71560.entry.js +4 -0
- package/dist/ionic/{p-9471d511.system.entry.js → p-dbc066cd.system.entry.js} +1 -1
- package/dist/ionic/p-df9d7fe1.entry.js +4 -0
- package/dist/ionic/{p-71e70a57.system.entry.js → p-e1e64156.system.entry.js} +1 -1
- package/dist/ionic/{p-ed8a02a2.system.entry.js → p-e96da585.system.entry.js} +1 -1
- package/dist/ionic/{p-999a7271.entry.js → p-eb5283b6.entry.js} +1 -1
- package/dist/ionic/{p-3962542f.system.entry.js → p-ec8347e0.system.entry.js} +1 -1
- package/dist/ionic/p-f2ad4b10.entry.js +4 -0
- package/dist/ionic/{p-df18d20d.js → p-f87219d2.js} +1 -1
- package/dist/ionic/{p-307963db.js → p-fb10190f.js} +1 -1
- package/dist/ionic/p-ff5a10f9.system.js +4 -0
- 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 -4
- package/dist/types/components/skeleton-text/skeleton-text.d.ts +1 -9
- package/dist/types/components/toast/animations/utils.d.ts +4 -6
- package/dist/types/components.d.ts +4 -27
- 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/hydrate/index.js +96 -105
- package/package.json +1 -1
- package/dist/cjs/compare-with-utils-50c82573.js +0 -37
- package/dist/cjs/index-c8d52405.js +0 -10
- package/dist/collection/components/radio-group/test/compare-with/radio-group.e2e.js +0 -93
- package/dist/collection/utils/forms/compare-with-utils.js +0 -32
- package/dist/esm/compare-with-utils-363d00b3.js +0 -34
- package/dist/esm/index-a5d50daf.js +0 -7
- package/dist/esm-es5/compare-with-utils-363d00b3.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-d04a7212.js +0 -4
- package/dist/ionic/p-11104d0d.entry.js +0 -4
- package/dist/ionic/p-139bd79d.system.entry.js +0 -4
- package/dist/ionic/p-265fec8a.entry.js +0 -4
- package/dist/ionic/p-314c4dee.js +0 -4
- package/dist/ionic/p-3554b264.js +0 -4
- package/dist/ionic/p-3afb9c3d.entry.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-6d3ba3ba.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-73df8d76.system.js +0 -4
- package/dist/ionic/p-7acd17bc.entry.js +0 -4
- package/dist/ionic/p-7d68e4ea.entry.js +0 -4
- package/dist/ionic/p-8140a084.entry.js +0 -4
- package/dist/ionic/p-8e7ff561.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-c2db1374.system.js +0 -4
- package/dist/ionic/p-c3547c7a.system.js +0 -4
- package/dist/ionic/p-d54a8393.system.entry.js +0 -4
- package/dist/ionic/p-e9fe3c8b.system.entry.js +0 -4
- package/dist/ionic/p-ea78392c.js +0 -4
- package/dist/ionic/p-f7769c83.js +0 -4
- package/dist/ionic/p-f7bc6157.system.entry.js +0 -4
- package/dist/ionic/p-fa67d712.entry.js +0 -4
- package/dist/ionic/p-fdcd4618.entry.js +0 -4
- package/dist/types/utils/forms/compare-with-utils.d.ts +0 -11
- /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-7b30edcc.js → p-b347cfd1.js} +0 -0
|
@@ -208,7 +208,6 @@
|
|
|
208
208
|
/* stylelint-enable */
|
|
209
209
|
display: flex;
|
|
210
210
|
position: relative;
|
|
211
|
-
flex-wrap: wrap;
|
|
212
211
|
align-items: inherit;
|
|
213
212
|
justify-content: inherit;
|
|
214
213
|
width: 100%;
|
|
@@ -220,8 +219,8 @@
|
|
|
220
219
|
outline: none;
|
|
221
220
|
background: var(--background);
|
|
222
221
|
overflow: inherit;
|
|
223
|
-
z-index: 1;
|
|
224
222
|
box-sizing: border-box;
|
|
223
|
+
z-index: 1;
|
|
225
224
|
}
|
|
226
225
|
:host-context([dir=rtl]) .item-native {
|
|
227
226
|
padding-right: calc(var(--padding-start) + var(--ion-safe-area-right, 0px));
|
|
@@ -240,10 +239,6 @@
|
|
|
240
239
|
}
|
|
241
240
|
}
|
|
242
241
|
|
|
243
|
-
:host(.item-legacy) .item-native {
|
|
244
|
-
flex-wrap: unset;
|
|
245
|
-
}
|
|
246
|
-
|
|
247
242
|
.item-native::-moz-focus-inner {
|
|
248
243
|
border: 0;
|
|
249
244
|
}
|
|
@@ -279,12 +274,10 @@ button, a {
|
|
|
279
274
|
/* stylelint-enable */
|
|
280
275
|
display: flex;
|
|
281
276
|
position: relative;
|
|
282
|
-
flex: 1
|
|
277
|
+
flex: 1;
|
|
283
278
|
flex-direction: inherit;
|
|
284
|
-
flex-wrap: wrap;
|
|
285
279
|
align-items: inherit;
|
|
286
280
|
align-self: stretch;
|
|
287
|
-
max-width: 100%;
|
|
288
281
|
min-height: inherit;
|
|
289
282
|
border-width: var(--inner-border-width);
|
|
290
283
|
border-style: var(--border-style);
|
|
@@ -310,12 +303,6 @@ button, a {
|
|
|
310
303
|
}
|
|
311
304
|
}
|
|
312
305
|
|
|
313
|
-
:host(.item-legacy) .item-inner {
|
|
314
|
-
flex: 1;
|
|
315
|
-
flex-wrap: unset;
|
|
316
|
-
max-width: unset;
|
|
317
|
-
}
|
|
318
|
-
|
|
319
306
|
.item-bottom {
|
|
320
307
|
margin-left: 0;
|
|
321
308
|
margin-right: 0;
|
|
@@ -379,7 +366,6 @@ button, a {
|
|
|
379
366
|
|
|
380
367
|
::slotted(ion-label:not([slot=end])) {
|
|
381
368
|
flex: 1;
|
|
382
|
-
width: min-content;
|
|
383
369
|
}
|
|
384
370
|
|
|
385
371
|
:host(.item-input) {
|
|
@@ -388,23 +374,15 @@ button, a {
|
|
|
388
374
|
|
|
389
375
|
.input-wrapper {
|
|
390
376
|
display: flex;
|
|
391
|
-
flex: 1
|
|
377
|
+
flex: 1;
|
|
392
378
|
flex-direction: inherit;
|
|
393
|
-
flex-wrap: wrap;
|
|
394
379
|
align-items: inherit;
|
|
395
380
|
align-self: stretch;
|
|
396
|
-
max-width: 100%;
|
|
397
381
|
text-overflow: ellipsis;
|
|
398
382
|
overflow: inherit;
|
|
399
383
|
box-sizing: border-box;
|
|
400
384
|
}
|
|
401
385
|
|
|
402
|
-
:host(.item-legacy) .input-wrapper {
|
|
403
|
-
flex: 1;
|
|
404
|
-
flex-wrap: unset;
|
|
405
|
-
max-width: unset;
|
|
406
|
-
}
|
|
407
|
-
|
|
408
386
|
:host(.item-label-stacked),
|
|
409
387
|
:host(.item-label-floating) {
|
|
410
388
|
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
|
+
});
|
|
@@ -41,24 +41,17 @@
|
|
|
41
41
|
font-family: var(--ion-font-family, inherit);
|
|
42
42
|
font-size: inherit;
|
|
43
43
|
text-overflow: ellipsis;
|
|
44
|
-
box-sizing: border-box;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
:host-context(.item-legacy) {
|
|
48
44
|
white-space: nowrap;
|
|
49
45
|
overflow: hidden;
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
:host-context(.item:not(.item-input):not(.item-legacy)) {
|
|
53
|
-
flex-grow: 1;
|
|
46
|
+
box-sizing: border-box;
|
|
54
47
|
}
|
|
55
48
|
|
|
56
49
|
:host(.ion-color) {
|
|
57
50
|
color: var(--ion-color-base);
|
|
58
51
|
}
|
|
59
52
|
|
|
60
|
-
:host(.ion-text-
|
|
61
|
-
|
|
53
|
+
:host(.ion-text-wrap) {
|
|
54
|
+
white-space: normal;
|
|
62
55
|
}
|
|
63
56
|
|
|
64
57
|
:host-context(.item-interactive-disabled:not(.item-multiple-inputs)) {
|
|
@@ -77,10 +70,6 @@
|
|
|
77
70
|
align-self: baseline;
|
|
78
71
|
}
|
|
79
72
|
|
|
80
|
-
:host-context(.item-skeleton-text) {
|
|
81
|
-
overflow: hidden;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
73
|
:host(.label-fixed) {
|
|
85
74
|
flex: 0 0 100px;
|
|
86
75
|
width: 100px;
|
|
@@ -41,24 +41,17 @@
|
|
|
41
41
|
font-family: var(--ion-font-family, inherit);
|
|
42
42
|
font-size: inherit;
|
|
43
43
|
text-overflow: ellipsis;
|
|
44
|
-
box-sizing: border-box;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
:host-context(.item-legacy) {
|
|
48
44
|
white-space: nowrap;
|
|
49
45
|
overflow: hidden;
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
:host-context(.item:not(.item-input):not(.item-legacy)) {
|
|
53
|
-
flex-grow: 1;
|
|
46
|
+
box-sizing: border-box;
|
|
54
47
|
}
|
|
55
48
|
|
|
56
49
|
:host(.ion-color) {
|
|
57
50
|
color: var(--ion-color-base);
|
|
58
51
|
}
|
|
59
52
|
|
|
60
|
-
:host(.ion-text-
|
|
61
|
-
|
|
53
|
+
:host(.ion-text-wrap) {
|
|
54
|
+
white-space: normal;
|
|
62
55
|
}
|
|
63
56
|
|
|
64
57
|
:host-context(.item-interactive-disabled:not(.item-multiple-inputs)) {
|
|
@@ -77,10 +70,6 @@
|
|
|
77
70
|
align-self: baseline;
|
|
78
71
|
}
|
|
79
72
|
|
|
80
|
-
:host-context(.item-skeleton-text) {
|
|
81
|
-
overflow: hidden;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
73
|
:host(.label-fixed) {
|
|
85
74
|
flex: 0 0 100px;
|
|
86
75
|
width: 100px;
|
|
@@ -130,7 +130,21 @@ ion-list.list-inset {
|
|
|
130
130
|
border-radius: 10px;
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
-
|
|
133
|
+
/**
|
|
134
|
+
* These selectors ensure the last item in the list
|
|
135
|
+
* has the correct border.
|
|
136
|
+
* We need to consider the following scenarios:
|
|
137
|
+
1. The only item in a list.
|
|
138
|
+
2. The last item in a list as long as it is not the only item.
|
|
139
|
+
3. The item in the last item-sliding in a list.
|
|
140
|
+
* Note that we do not select ion-item:last-of-type
|
|
141
|
+
* because that will cause the borders to disappear on
|
|
142
|
+
* items in an item-sliding when the item is the last
|
|
143
|
+
* element in the item-sliding container.
|
|
144
|
+
*/
|
|
145
|
+
.list-ios.list-inset ion-item:only-child,
|
|
146
|
+
.list-ios.list-inset ion-item:not(:only-of-type):last-of-type,
|
|
147
|
+
.list-ios.list-inset ion-item-sliding:last-of-type ion-item {
|
|
134
148
|
--border-width: 0;
|
|
135
149
|
--inner-border-width: 0;
|
|
136
150
|
}
|
|
@@ -166,12 +166,50 @@ ion-list.list-inset {
|
|
|
166
166
|
border-radius: 2px;
|
|
167
167
|
}
|
|
168
168
|
|
|
169
|
-
|
|
169
|
+
/**
|
|
170
|
+
* These selectors ensure the first item in the list
|
|
171
|
+
* has the correct radius.
|
|
172
|
+
* We need to consider the following scenarios:
|
|
173
|
+
1. The first item in a list as long as it is not the only item.
|
|
174
|
+
2. The item in the first item-sliding in a list.
|
|
175
|
+
* Note that we do not select "ion-item-sliding ion-item:first-of-type"
|
|
176
|
+
* because that will cause the borders to disappear on
|
|
177
|
+
* items in an item-sliding when the item is the first
|
|
178
|
+
* element in the item-sliding container.
|
|
179
|
+
*/
|
|
180
|
+
.list-md.list-inset ion-item:not(:only-of-type):first-of-type,
|
|
181
|
+
.list-md.list-inset ion-item-sliding:first-of-type ion-item {
|
|
170
182
|
--border-radius: 2px 2px 0 0;
|
|
171
183
|
}
|
|
172
184
|
|
|
173
|
-
|
|
174
|
-
|
|
185
|
+
/**
|
|
186
|
+
* These selectors ensure the last item in the list
|
|
187
|
+
* has the correct radius and border.
|
|
188
|
+
* We need to consider the following scenarios:
|
|
189
|
+
1. The last item in a list as long as it is not the only item.
|
|
190
|
+
2. The item in the last item-sliding in a list.
|
|
191
|
+
* Note that we do not select "ion-item-sliding ion-item:last-of-type"
|
|
192
|
+
* because that will cause the borders to disappear on
|
|
193
|
+
* items in an item-sliding when the item is the last
|
|
194
|
+
* element in the item-sliding container.
|
|
195
|
+
*/
|
|
196
|
+
.list-md.list-inset ion-item:not(:only-of-type):last-of-type,
|
|
197
|
+
.list-md.list-inset ion-item-sliding:last-of-type ion-item {
|
|
198
|
+
--border-radius: 0 0 2px 2px;
|
|
199
|
+
--border-width: 0;
|
|
200
|
+
--inner-border-width: 0;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* The only item in a list should have a border radius
|
|
205
|
+
* on all corners.
|
|
206
|
+
* We target :only-child instead of :only-of-type
|
|
207
|
+
* otherwise borders will disappear on items inside of
|
|
208
|
+
* ion-item-sliding because the item will be the only
|
|
209
|
+
* one of its type inside of the ion-item-sliding group.
|
|
210
|
+
*/
|
|
211
|
+
.list-md.list-inset ion-item:only-child {
|
|
212
|
+
--border-radius: 2px;
|
|
175
213
|
--border-width: 0;
|
|
176
214
|
--inner-border-width: 0;
|
|
177
215
|
}
|
|
@@ -22,3 +22,146 @@ configs().forEach(({ title, screenshot, config }) => {
|
|
|
22
22
|
});
|
|
23
23
|
});
|
|
24
24
|
});
|
|
25
|
+
/**
|
|
26
|
+
* Padding and border color ensures the bottom border can be easily seen if it regresses.
|
|
27
|
+
* The background color ensures that any border radius values can be seen.
|
|
28
|
+
*/
|
|
29
|
+
configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
30
|
+
test.describe(title('list: lines with children'), () => {
|
|
31
|
+
test('only item in inset list should not have line', async ({ page }) => {
|
|
32
|
+
test.info().annotations.push({
|
|
33
|
+
type: 'issue',
|
|
34
|
+
description: 'https://github.com/ionic-team/ionic-framework/issues/28435',
|
|
35
|
+
});
|
|
36
|
+
await page.setContent(`
|
|
37
|
+
<style>
|
|
38
|
+
#container {
|
|
39
|
+
padding: 10px;
|
|
40
|
+
background: #0088cc;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
ion-item {
|
|
44
|
+
--border-color: red;
|
|
45
|
+
}
|
|
46
|
+
</style>
|
|
47
|
+
<div id="container">
|
|
48
|
+
<ion-list inset="true">
|
|
49
|
+
<ion-item>
|
|
50
|
+
<ion-label>Item 0</ion-label>
|
|
51
|
+
</ion-item>
|
|
52
|
+
</ion-list>
|
|
53
|
+
</div>
|
|
54
|
+
`, config);
|
|
55
|
+
const container = page.locator('#container');
|
|
56
|
+
await expect(container).toHaveScreenshot(screenshot('inset-list-only-item-no-lines'));
|
|
57
|
+
});
|
|
58
|
+
test('last item in inset list with end options should not have line', async ({ page }) => {
|
|
59
|
+
test.info().annotations.push({
|
|
60
|
+
type: 'issue',
|
|
61
|
+
description: 'https://github.com/ionic-team/ionic-framework/issues/28435',
|
|
62
|
+
});
|
|
63
|
+
await page.setContent(`
|
|
64
|
+
<style>
|
|
65
|
+
#container {
|
|
66
|
+
padding: 10px;
|
|
67
|
+
background: #0088cc;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
ion-item {
|
|
71
|
+
--border-color: red;
|
|
72
|
+
}
|
|
73
|
+
</style>
|
|
74
|
+
<div id="container">
|
|
75
|
+
<ion-list inset="true">
|
|
76
|
+
<ion-item-sliding>
|
|
77
|
+
<ion-item>
|
|
78
|
+
<ion-label>Item 0</ion-label>
|
|
79
|
+
</ion-item>
|
|
80
|
+
<ion-item-options slot="end">
|
|
81
|
+
<ion-item-option color="warning">
|
|
82
|
+
<ion-icon slot="icon-only" name="pin"></ion-icon>
|
|
83
|
+
</ion-item-option>
|
|
84
|
+
</ion-item-options>
|
|
85
|
+
</ion-item-sliding>
|
|
86
|
+
|
|
87
|
+
<ion-item-sliding>
|
|
88
|
+
<ion-item>
|
|
89
|
+
<ion-label>Item 1</ion-label>
|
|
90
|
+
</ion-item>
|
|
91
|
+
<ion-item-options slot="end">
|
|
92
|
+
<ion-item-option color="warning">
|
|
93
|
+
<ion-icon slot="icon-only" name="pin"></ion-icon>
|
|
94
|
+
</ion-item-option>
|
|
95
|
+
</ion-item-options>
|
|
96
|
+
</ion-item-sliding>
|
|
97
|
+
|
|
98
|
+
<ion-item-sliding>
|
|
99
|
+
<ion-item>
|
|
100
|
+
<ion-label>Item 2</ion-label>
|
|
101
|
+
</ion-item>
|
|
102
|
+
<ion-item-options slot="end">
|
|
103
|
+
<ion-item-option color="warning">
|
|
104
|
+
<ion-icon slot="icon-only" name="pin"></ion-icon>
|
|
105
|
+
</ion-item-option>
|
|
106
|
+
</ion-item-options>
|
|
107
|
+
</ion-item-sliding>
|
|
108
|
+
</ion-list>
|
|
109
|
+
</div>
|
|
110
|
+
`, config);
|
|
111
|
+
const container = page.locator('#container');
|
|
112
|
+
await expect(container).toHaveScreenshot(screenshot('inset-list-end-options-no-lines'));
|
|
113
|
+
});
|
|
114
|
+
test('last item in inset list with start options should not have line', async ({ page }) => {
|
|
115
|
+
await page.setContent(`
|
|
116
|
+
<style>
|
|
117
|
+
#container {
|
|
118
|
+
padding: 10px;
|
|
119
|
+
background: #0088cc;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
ion-item {
|
|
123
|
+
--border-color: red;
|
|
124
|
+
}
|
|
125
|
+
</style>
|
|
126
|
+
<div id="container">
|
|
127
|
+
<ion-list inset="true">
|
|
128
|
+
<ion-item-sliding>
|
|
129
|
+
<ion-item-options slot="start">
|
|
130
|
+
<ion-item-option color="warning">
|
|
131
|
+
<ion-icon slot="icon-only" name="pin"></ion-icon>
|
|
132
|
+
</ion-item-option>
|
|
133
|
+
</ion-item-options>
|
|
134
|
+
<ion-item>
|
|
135
|
+
<ion-label>Item 0</ion-label>
|
|
136
|
+
</ion-item>
|
|
137
|
+
</ion-item-sliding>
|
|
138
|
+
|
|
139
|
+
<ion-item-sliding>
|
|
140
|
+
<ion-item-options slot="start">
|
|
141
|
+
<ion-item-option color="warning">
|
|
142
|
+
<ion-icon slot="icon-only" name="pin"></ion-icon>
|
|
143
|
+
</ion-item-option>
|
|
144
|
+
</ion-item-options>
|
|
145
|
+
<ion-item>
|
|
146
|
+
<ion-label>Item 1</ion-label>
|
|
147
|
+
</ion-item>
|
|
148
|
+
</ion-item-sliding>
|
|
149
|
+
|
|
150
|
+
<ion-item-sliding>
|
|
151
|
+
<ion-item-options slot="start">
|
|
152
|
+
<ion-item-option color="warning">
|
|
153
|
+
<ion-icon slot="icon-only" name="pin"></ion-icon>
|
|
154
|
+
</ion-item-option>
|
|
155
|
+
</ion-item-options>
|
|
156
|
+
<ion-item>
|
|
157
|
+
<ion-label>Item 2</ion-label>
|
|
158
|
+
</ion-item>
|
|
159
|
+
</ion-item-sliding>
|
|
160
|
+
</ion-list>
|
|
161
|
+
</div>
|
|
162
|
+
`, config);
|
|
163
|
+
const container = page.locator('#container');
|
|
164
|
+
await expect(container).toHaveScreenshot(screenshot('inset-list-start-options-no-lines'));
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
});
|
|
@@ -48,48 +48,5 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
|
48
48
|
const note = page.locator('ion-note');
|
|
49
49
|
await expect(note).toHaveScreenshot(screenshot(`note-item-divider-scale`));
|
|
50
50
|
});
|
|
51
|
-
test('should wrap label to the next line without truncating', async ({ page }) => {
|
|
52
|
-
await page.setContent(`
|
|
53
|
-
<style>
|
|
54
|
-
html {
|
|
55
|
-
font-size: 310%;
|
|
56
|
-
}
|
|
57
|
-
</style>
|
|
58
|
-
|
|
59
|
-
<ion-list>
|
|
60
|
-
<ion-item>
|
|
61
|
-
<ion-note slot="start">Really really long note</ion-note>
|
|
62
|
-
<ion-label>Label</ion-label>
|
|
63
|
-
</ion-item>
|
|
64
|
-
|
|
65
|
-
<ion-item>
|
|
66
|
-
<ion-label>Label</ion-label>
|
|
67
|
-
<ion-note slot="end">Really really long note</ion-note>
|
|
68
|
-
</ion-item>
|
|
69
|
-
|
|
70
|
-
<ion-item>
|
|
71
|
-
<ion-note slot="start">Note</ion-note>
|
|
72
|
-
<ion-label>Really really long label</ion-label>
|
|
73
|
-
</ion-item>
|
|
74
|
-
|
|
75
|
-
<ion-item>
|
|
76
|
-
<ion-label>Really really long label</ion-label>
|
|
77
|
-
<ion-note slot="end">Note</ion-note>
|
|
78
|
-
</ion-item>
|
|
79
|
-
|
|
80
|
-
<ion-item>
|
|
81
|
-
<ion-note slot="start">Really really long note</ion-note>
|
|
82
|
-
<ion-label>Really really long label</ion-label>
|
|
83
|
-
</ion-item>
|
|
84
|
-
|
|
85
|
-
<ion-item>
|
|
86
|
-
<ion-label>Really really long label</ion-label>
|
|
87
|
-
<ion-note slot="end">Really really long note</ion-note>
|
|
88
|
-
</ion-item>
|
|
89
|
-
</ion-list>
|
|
90
|
-
`, config);
|
|
91
|
-
const list = page.locator('ion-list');
|
|
92
|
-
await expect(list).toHaveScreenshot(screenshot(`note-wrapping-label-scale`));
|
|
93
|
-
});
|
|
94
51
|
});
|
|
95
52
|
});
|
|
@@ -10,6 +10,11 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
|
10
10
|
test.describe(title('picker-internal: rendering'), () => {
|
|
11
11
|
test('inline pickers should not have visual regression', async ({ page }) => {
|
|
12
12
|
await page.goto(`/src/components/picker-internal/test/basic`, config);
|
|
13
|
+
const fullStack = page.locator('#inline button[data-value="full-stack"]');
|
|
14
|
+
const onion = page.locator('#inline button[data-value="onion"]');
|
|
15
|
+
await expect(fullStack).toHaveClass(/picker-item-active/);
|
|
16
|
+
await expect(onion).toHaveClass(/picker-item-active/);
|
|
17
|
+
await page.waitForChanges();
|
|
13
18
|
await expect(page.locator('#inline')).toHaveScreenshot(screenshot(`picker-internal-inline-diff`));
|
|
14
19
|
});
|
|
15
20
|
});
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
4
|
import { Host, h } from "@stencil/core";
|
|
5
|
-
import { createLegacyFormController
|
|
5
|
+
import { createLegacyFormController } from "../../utils/forms/index";
|
|
6
6
|
import { addEventListener, getAriaLabel, removeEventListener } from "../../utils/helpers";
|
|
7
7
|
import { printIonWarning } from "../../utils/logging/index";
|
|
8
8
|
import { createColorClasses, hostContext } from "../../utils/theme";
|
|
@@ -23,8 +23,7 @@ export class Radio {
|
|
|
23
23
|
this.hasLoggedDeprecationWarning = false;
|
|
24
24
|
this.updateState = () => {
|
|
25
25
|
if (this.radioGroup) {
|
|
26
|
-
|
|
27
|
-
this.checked = isOptionSelected(radioGroupValue, this.value, compareWith);
|
|
26
|
+
this.checked = this.radioGroup.value === this.value;
|
|
28
27
|
}
|
|
29
28
|
};
|
|
30
29
|
this.onClick = () => {
|
|
@@ -121,8 +120,6 @@ export class Radio {
|
|
|
121
120
|
emitStyle() {
|
|
122
121
|
const style = {
|
|
123
122
|
'interactive-disabled': this.disabled,
|
|
124
|
-
// TODO(FW-3125): remove this
|
|
125
|
-
legacy: !!this.legacy,
|
|
126
123
|
};
|
|
127
124
|
if (this.legacyFormController.hasLegacyControl()) {
|
|
128
125
|
style['radio-checked'] = this.checked;
|
|
@@ -47,7 +47,6 @@ export class RadioGroup {
|
|
|
47
47
|
}
|
|
48
48
|
};
|
|
49
49
|
this.allowEmptySelection = false;
|
|
50
|
-
this.compareWith = undefined;
|
|
51
50
|
this.name = this.inputId;
|
|
52
51
|
this.value = undefined;
|
|
53
52
|
}
|
|
@@ -159,29 +158,6 @@ export class RadioGroup {
|
|
|
159
158
|
"reflect": false,
|
|
160
159
|
"defaultValue": "false"
|
|
161
160
|
},
|
|
162
|
-
"compareWith": {
|
|
163
|
-
"type": "string",
|
|
164
|
-
"mutable": false,
|
|
165
|
-
"complexType": {
|
|
166
|
-
"original": "string | RadioGroupCompareFn | null",
|
|
167
|
-
"resolved": "((currentValue: any, compareValue: any) => boolean) | null | string | undefined",
|
|
168
|
-
"references": {
|
|
169
|
-
"RadioGroupCompareFn": {
|
|
170
|
-
"location": "import",
|
|
171
|
-
"path": "./radio-group-interface",
|
|
172
|
-
"id": "src/components/radio-group/radio-group-interface.ts::RadioGroupCompareFn"
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
},
|
|
176
|
-
"required": false,
|
|
177
|
-
"optional": true,
|
|
178
|
-
"docs": {
|
|
179
|
-
"tags": [],
|
|
180
|
-
"text": "This property allows developers to specify a custom function or property\nname for comparing objects when determining the selected option in the\nion-radio-group. When not specified, the default behavior will use object\nequality (===) for comparison."
|
|
181
|
-
},
|
|
182
|
-
"attribute": "compare-with",
|
|
183
|
-
"reflect": false
|
|
184
|
-
},
|
|
185
161
|
"name": {
|
|
186
162
|
"type": "string",
|
|
187
163
|
"mutable": false,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
4
|
import { Host, h, forceUpdate } from "@stencil/core";
|
|
5
|
-
import {
|
|
5
|
+
import { createLegacyFormController, createNotchController } from "../../utils/forms/index";
|
|
6
6
|
import { findItemLabel, focusElement, getAriaLabel, renderHiddenInput, inheritAttributes } from "../../utils/helpers";
|
|
7
7
|
import { printIonWarning } from "../../utils/logging/index";
|
|
8
8
|
import { actionSheetController, alertController, popoverController } from "../../utils/overlays";
|
|
@@ -465,8 +465,6 @@ export class Select {
|
|
|
465
465
|
style['has-placeholder'] = this.placeholder !== undefined;
|
|
466
466
|
style['has-value'] = this.hasValue();
|
|
467
467
|
style['has-focus'] = this.isExpanded;
|
|
468
|
-
// TODO(FW-3194): remove this
|
|
469
|
-
style['legacy'] = !!this.legacy;
|
|
470
468
|
}
|
|
471
469
|
this.ionStyle.emit(style);
|
|
472
470
|
}
|
|
@@ -739,7 +737,7 @@ Developers can use the "legacy" property to continue using the legacy form marku
|
|
|
739
737
|
"optional": true,
|
|
740
738
|
"docs": {
|
|
741
739
|
"tags": [],
|
|
742
|
-
"text": "
|
|
740
|
+
"text": "A property name or function used to compare object values"
|
|
743
741
|
},
|
|
744
742
|
"attribute": "compare-with",
|
|
745
743
|
"reflect": false
|
|
@@ -1217,6 +1215,17 @@ Developers can use the "legacy" property to continue using the legacy form marku
|
|
|
1217
1215
|
}];
|
|
1218
1216
|
}
|
|
1219
1217
|
}
|
|
1218
|
+
const isOptionSelected = (currentValue, compareValue, compareWith) => {
|
|
1219
|
+
if (currentValue === undefined) {
|
|
1220
|
+
return false;
|
|
1221
|
+
}
|
|
1222
|
+
if (Array.isArray(currentValue)) {
|
|
1223
|
+
return currentValue.some((val) => compareOptions(val, compareValue, compareWith));
|
|
1224
|
+
}
|
|
1225
|
+
else {
|
|
1226
|
+
return compareOptions(currentValue, compareValue, compareWith);
|
|
1227
|
+
}
|
|
1228
|
+
};
|
|
1220
1229
|
const getOptionValue = (el) => {
|
|
1221
1230
|
const value = el.value;
|
|
1222
1231
|
return value === undefined ? el.textContent || '' : value;
|
|
@@ -1230,6 +1239,17 @@ const parseValue = (value) => {
|
|
|
1230
1239
|
}
|
|
1231
1240
|
return value.toString();
|
|
1232
1241
|
};
|
|
1242
|
+
const compareOptions = (currentValue, compareValue, compareWith) => {
|
|
1243
|
+
if (typeof compareWith === 'function') {
|
|
1244
|
+
return compareWith(currentValue, compareValue);
|
|
1245
|
+
}
|
|
1246
|
+
else if (typeof compareWith === 'string') {
|
|
1247
|
+
return currentValue[compareWith] === compareValue[compareWith];
|
|
1248
|
+
}
|
|
1249
|
+
else {
|
|
1250
|
+
return Array.isArray(compareValue) ? compareValue.includes(currentValue) : currentValue === compareValue;
|
|
1251
|
+
}
|
|
1252
|
+
};
|
|
1233
1253
|
const generateText = (opts, value, compareWith) => {
|
|
1234
1254
|
if (value === undefined) {
|
|
1235
1255
|
return '';
|
|
@@ -27,7 +27,7 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
|
27
27
|
await page.setContent(`
|
|
28
28
|
<ion-item>
|
|
29
29
|
<ion-label>Really long label should not wrap</ion-label>
|
|
30
|
-
<ion-select value="wrap"
|
|
30
|
+
<ion-select value="wrap" class="ion-text-wrap">
|
|
31
31
|
<ion-select-option value="wrap">Should wrap value only when label exists and really long text exists to make it wrap the text</ion-select-option>
|
|
32
32
|
</ion-select>
|
|
33
33
|
</ion-item>
|