@ionic/core 7.3.4-dev.11694548895.1578981b → 7.3.4-dev.11694608913.1bc64f72
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/button-active.js +1 -1
- package/components/checkbox.js +6 -3
- package/components/data.js +31 -7
- package/components/index.js +2 -2
- package/components/index2.js +203 -429
- package/components/index3.js +429 -203
- package/components/input-shims.js +6 -20
- package/components/ion-datetime-button.js +3 -0
- package/components/ion-datetime.js +132 -92
- package/components/ion-item-sliding.js +1 -1
- package/components/ion-menu.js +1 -1
- package/components/ion-modal.js +2 -2
- package/components/ion-nav.js +1 -1
- package/components/ion-range.js +3 -3
- package/components/ion-refresher.js +3 -3
- package/components/ion-reorder-group.js +1 -1
- package/components/ion-router-outlet.js +1 -1
- package/components/ion-segment.js +1 -1
- package/components/ion-toggle.js +7 -4
- package/components/ios.transition.js +1 -1
- package/components/md.transition.js +1 -1
- package/components/picker-column.js +1 -1
- package/components/popover.js +1 -1
- package/components/radio.js +6 -3
- package/components/swipe-back.js +1 -1
- package/dist/cjs/{app-globals-a63c2a19.js → app-globals-a579aafd.js} +1 -1
- package/dist/cjs/{button-active-0ff8e82c.js → button-active-dfd2756e.js} +1 -1
- package/dist/cjs/{data-967b9c15.js → data-db832785.js} +31 -7
- package/dist/cjs/{index-184fdd62.js → index-484b1104.js} +6 -6
- package/dist/cjs/{index-e6416850.js → index-653be4df.js} +1 -1
- package/dist/cjs/{index-be8a2ab9.js → index-8568bedb.js} +3 -3
- package/dist/cjs/index.cjs.js +15 -14
- package/dist/cjs/{input-shims-93284c80.js → input-shims-f8569707.js} +7 -20
- package/dist/cjs/ion-accordion_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-action-sheet.cjs.entry.js +4 -4
- package/dist/cjs/ion-alert.cjs.entry.js +4 -4
- package/dist/cjs/ion-app_8.cjs.entry.js +5 -5
- package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
- package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-card_5.cjs.entry.js +2 -2
- package/dist/cjs/ion-checkbox.cjs.entry.js +7 -5
- package/dist/cjs/ion-chip.cjs.entry.js +2 -2
- package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-datetime-button.cjs.entry.js +6 -3
- package/dist/cjs/ion-datetime_3.cjs.entry.js +135 -96
- package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-img.cjs.entry.js +2 -2
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-input.cjs.entry.js +2 -2
- package/dist/cjs/ion-item-option_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
- package/dist/cjs/ion-loading.cjs.entry.js +3 -3
- package/dist/cjs/ion-menu_3.cjs.entry.js +4 -4
- package/dist/cjs/ion-modal.cjs.entry.js +4 -4
- package/dist/cjs/ion-nav_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-picker-column-internal.cjs.entry.js +2 -2
- package/dist/cjs/ion-picker-internal.cjs.entry.js +1 -1
- package/dist/cjs/ion-popover.cjs.entry.js +4 -4
- package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
- package/dist/cjs/ion-radio_2.cjs.entry.js +7 -5
- package/dist/cjs/ion-range.cjs.entry.js +4 -4
- package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
- package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
- package/dist/cjs/ion-searchbar.cjs.entry.js +2 -2
- package/dist/cjs/ion-segment_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-select_3.cjs.entry.js +3 -3
- package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
- package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-tab_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-text.cjs.entry.js +2 -2
- package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
- package/dist/cjs/ion-toast.cjs.entry.js +3 -3
- package/dist/cjs/ion-toggle.cjs.entry.js +7 -5
- package/dist/cjs/{ionic-global-6d5d27b5.js → ionic-global-f81d8b73.js} +1 -1
- package/dist/cjs/ionic.cjs.js +5 -5
- package/dist/cjs/{ios.transition-80582b44.js → ios.transition-f7c78d7c.js} +2 -2
- package/dist/cjs/loader.cjs.js +4 -4
- package/dist/cjs/{md.transition-eeca9fb5.js → md.transition-65dc7dce.js} +2 -2
- package/dist/cjs/{overlays-c78a0148.js → overlays-5c1706ed.js} +1 -1
- package/dist/cjs/{status-tap-cc4c6539.js → status-tap-4564b66c.js} +1 -1
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/checkbox/checkbox.ios.css +35 -0
- package/dist/collection/components/checkbox/checkbox.js +24 -4
- package/dist/collection/components/checkbox/checkbox.md.css +35 -0
- package/dist/collection/components/checkbox/test/item/checkbox.e2e.js +13 -0
- package/dist/collection/components/checkbox/test/label/checkbox.e2e.js +16 -0
- package/dist/collection/components/datetime/datetime.ios.css +32 -29
- package/dist/collection/components/datetime/datetime.js +137 -93
- package/dist/collection/components/datetime/datetime.md.css +20 -28
- package/dist/collection/components/datetime/test/basic/datetime.e2e.js +25 -0
- package/dist/collection/components/datetime/test/color/datetime.e2e.js +1 -1
- package/dist/collection/components/datetime/test/custom/datetime.e2e.js +27 -1
- package/dist/collection/components/datetime/test/prefer-wheel/datetime.e2e.js +15 -0
- package/dist/collection/components/datetime/test/set-value/datetime.e2e.js +9 -12
- package/dist/collection/components/datetime/utils/data.js +14 -6
- package/dist/collection/components/datetime/utils/parse.js +18 -1
- package/dist/collection/components/datetime-button/datetime-button.js +3 -0
- package/dist/collection/components/radio/radio.ios.css +35 -0
- package/dist/collection/components/radio/radio.js +24 -4
- package/dist/collection/components/radio/radio.md.css +35 -0
- package/dist/collection/components/radio/test/item/radio.e2e.js +15 -0
- package/dist/collection/components/radio/test/label-placement/radio.e2e.js +20 -0
- package/dist/collection/components/range/range.ios.css +41 -1
- package/dist/collection/components/range/range.js +3 -3
- package/dist/collection/components/range/range.md.css +41 -1
- package/dist/collection/components/range/test/label/range.e2e.js +48 -0
- package/dist/collection/components/toggle/test/item/toggle.e2e.js +15 -0
- package/dist/collection/components/toggle/test/label/toggle.e2e.js +16 -0
- package/dist/collection/components/toggle/toggle.ios.css +35 -1
- package/dist/collection/components/toggle/toggle.js +24 -4
- package/dist/collection/components/toggle/toggle.md.css +35 -1
- package/dist/collection/index.js +1 -0
- package/dist/collection/utils/input-shims/hacks/scroll-assist.js +3 -18
- package/dist/collection/utils/input-shims/hacks/scroll-data.js +3 -2
- package/dist/docs.json +148 -19
- package/dist/esm/{app-globals-c7886b40.js → app-globals-e8ddf830.js} +1 -1
- package/dist/esm/{button-active-b76ae4ec.js → button-active-2da0f611.js} +1 -1
- package/dist/esm/{data-4b448e3a.js → data-009dbf15.js} +31 -7
- package/dist/esm/{index-01839411.js → index-6391de89.js} +3 -3
- package/dist/esm/{index-adfb2000.js → index-847f2fde.js} +6 -6
- package/dist/esm/{index-48f5e259.js → index-b3e05099.js} +1 -1
- package/dist/esm/index.js +7 -7
- package/dist/esm/{input-shims-4f1b0af9.js → input-shims-af993f05.js} +7 -20
- package/dist/esm/ion-accordion_2.entry.js +2 -2
- package/dist/esm/ion-action-sheet.entry.js +4 -4
- package/dist/esm/ion-alert.entry.js +4 -4
- package/dist/esm/ion-app_8.entry.js +5 -5
- package/dist/esm/ion-avatar_3.entry.js +2 -2
- package/dist/esm/ion-back-button.entry.js +2 -2
- package/dist/esm/ion-backdrop.entry.js +2 -2
- package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
- package/dist/esm/ion-button_2.entry.js +2 -2
- package/dist/esm/ion-card_5.entry.js +2 -2
- package/dist/esm/ion-checkbox.entry.js +7 -5
- package/dist/esm/ion-chip.entry.js +2 -2
- package/dist/esm/ion-col_3.entry.js +2 -2
- package/dist/esm/ion-datetime-button.entry.js +6 -3
- package/dist/esm/ion-datetime_3.entry.js +135 -96
- package/dist/esm/ion-fab_3.entry.js +2 -2
- package/dist/esm/ion-img.entry.js +2 -2
- package/dist/esm/ion-infinite-scroll_2.entry.js +2 -2
- package/dist/esm/ion-input.entry.js +2 -2
- package/dist/esm/ion-item-option_3.entry.js +2 -2
- package/dist/esm/ion-item_8.entry.js +2 -2
- package/dist/esm/ion-loading.entry.js +3 -3
- package/dist/esm/ion-menu_3.entry.js +4 -4
- package/dist/esm/ion-modal.entry.js +4 -4
- package/dist/esm/ion-nav_2.entry.js +3 -3
- package/dist/esm/ion-picker-column-internal.entry.js +2 -2
- package/dist/esm/ion-picker-internal.entry.js +1 -1
- package/dist/esm/ion-popover.entry.js +4 -4
- package/dist/esm/ion-progress-bar.entry.js +2 -2
- package/dist/esm/ion-radio_2.entry.js +7 -5
- package/dist/esm/ion-range.entry.js +4 -4
- package/dist/esm/ion-refresher_2.entry.js +2 -2
- package/dist/esm/ion-reorder_2.entry.js +2 -2
- package/dist/esm/ion-ripple-effect.entry.js +2 -2
- package/dist/esm/ion-route_4.entry.js +2 -2
- package/dist/esm/ion-searchbar.entry.js +2 -2
- package/dist/esm/ion-segment_2.entry.js +2 -2
- package/dist/esm/ion-select_3.entry.js +3 -3
- package/dist/esm/ion-spinner.entry.js +2 -2
- package/dist/esm/ion-split-pane.entry.js +2 -2
- package/dist/esm/ion-tab-bar_2.entry.js +2 -2
- package/dist/esm/ion-tab_2.entry.js +1 -1
- package/dist/esm/ion-text.entry.js +2 -2
- package/dist/esm/ion-textarea.entry.js +2 -2
- package/dist/esm/ion-toast.entry.js +3 -3
- package/dist/esm/ion-toggle.entry.js +7 -5
- package/dist/esm/{ionic-global-9080266a.js → ionic-global-1ef19007.js} +1 -1
- package/dist/esm/ionic.js +6 -6
- package/dist/esm/{ios.transition-f43871cd.js → ios.transition-3137d23e.js} +2 -2
- package/dist/esm/loader.js +5 -5
- package/dist/esm/{md.transition-12d21ad0.js → md.transition-48b3b77c.js} +2 -2
- package/dist/esm/{overlays-4565894b.js → overlays-e1dadfe6.js} +1 -1
- package/dist/esm/{status-tap-121c711d.js → status-tap-823a0df3.js} +1 -1
- package/dist/esm-es5/app-globals-e8ddf830.js +4 -0
- package/dist/esm-es5/{button-active-b76ae4ec.js → button-active-2da0f611.js} +1 -1
- package/dist/esm-es5/data-009dbf15.js +4 -0
- package/dist/esm-es5/{index-01839411.js → index-6391de89.js} +1 -1
- package/dist/esm-es5/{index-48f5e259.js → index-b3e05099.js} +1 -1
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/input-shims-af993f05.js +4 -0
- package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
- package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
- package/dist/esm-es5/ion-alert.entry.js +1 -1
- package/dist/esm-es5/ion-app_8.entry.js +1 -1
- package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
- package/dist/esm-es5/ion-back-button.entry.js +1 -1
- package/dist/esm-es5/ion-backdrop.entry.js +1 -1
- package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
- package/dist/esm-es5/ion-button_2.entry.js +1 -1
- package/dist/esm-es5/ion-card_5.entry.js +1 -1
- package/dist/esm-es5/ion-checkbox.entry.js +1 -1
- package/dist/esm-es5/ion-chip.entry.js +1 -1
- package/dist/esm-es5/ion-col_3.entry.js +1 -1
- package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
- package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
- package/dist/esm-es5/ion-fab_3.entry.js +1 -1
- package/dist/esm-es5/ion-img.entry.js +1 -1
- package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
- package/dist/esm-es5/ion-input.entry.js +1 -1
- package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
- package/dist/esm-es5/ion-item_8.entry.js +1 -1
- package/dist/esm-es5/ion-loading.entry.js +1 -1
- package/dist/esm-es5/ion-menu_3.entry.js +1 -1
- package/dist/esm-es5/ion-modal.entry.js +1 -1
- package/dist/esm-es5/ion-nav_2.entry.js +1 -1
- package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
- package/dist/esm-es5/ion-picker-internal.entry.js +1 -1
- package/dist/esm-es5/ion-popover.entry.js +1 -1
- package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
- package/dist/esm-es5/ion-radio_2.entry.js +1 -1
- package/dist/esm-es5/ion-range.entry.js +1 -1
- package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
- package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
- package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
- package/dist/esm-es5/ion-route_4.entry.js +1 -1
- package/dist/esm-es5/ion-searchbar.entry.js +1 -1
- package/dist/esm-es5/ion-segment_2.entry.js +1 -1
- package/dist/esm-es5/ion-select_3.entry.js +1 -1
- package/dist/esm-es5/ion-spinner.entry.js +1 -1
- package/dist/esm-es5/ion-split-pane.entry.js +1 -1
- package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
- package/dist/esm-es5/ion-tab_2.entry.js +1 -1
- package/dist/esm-es5/ion-text.entry.js +1 -1
- package/dist/esm-es5/ion-textarea.entry.js +1 -1
- package/dist/esm-es5/ion-toast.entry.js +1 -1
- package/dist/esm-es5/ion-toggle.entry.js +1 -1
- package/dist/esm-es5/{ionic-global-9080266a.js → ionic-global-1ef19007.js} +1 -1
- package/dist/esm-es5/ionic.js +1 -1
- package/dist/esm-es5/{ios.transition-f43871cd.js → ios.transition-3137d23e.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/md.transition-48b3b77c.js +4 -0
- package/dist/esm-es5/{overlays-4565894b.js → overlays-e1dadfe6.js} +1 -1
- package/dist/esm-es5/{status-tap-121c711d.js → status-tap-823a0df3.js} +1 -1
- package/dist/html.html-data.json +52 -4
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/ionic.js +1 -1
- package/dist/ionic/{p-9b53c813.entry.js → p-0142ba6d.entry.js} +1 -1
- package/dist/ionic/{p-516421e2.system.entry.js → p-0219ac12.system.entry.js} +1 -1
- package/dist/ionic/{p-c2d6088f.entry.js → p-0660215f.entry.js} +1 -1
- package/dist/ionic/p-06902103.system.js +4 -0
- package/dist/ionic/{p-4446e19f.system.entry.js → p-06d6e9c0.system.entry.js} +1 -1
- package/dist/ionic/{p-74834696.system.entry.js → p-0b68c41d.system.entry.js} +1 -1
- package/dist/ionic/{p-e239ab05.system.entry.js → p-0cc2bf5a.system.entry.js} +1 -1
- package/dist/ionic/{p-5df94bf8.entry.js → p-0ff17c93.entry.js} +1 -1
- package/dist/ionic/{p-d57e8b06.js → p-11248f01.js} +1 -1
- package/dist/ionic/{p-5080e623.system.entry.js → p-11a42c03.system.entry.js} +1 -1
- package/dist/ionic/{p-a8270ae8.system.entry.js → p-1d82df31.system.entry.js} +1 -1
- package/dist/ionic/{p-48d378cf.entry.js → p-1ec4dc01.entry.js} +1 -1
- package/dist/ionic/p-1f4adf06.system.entry.js +4 -0
- package/dist/ionic/{p-4d2807fa.entry.js → p-1fb9aab8.entry.js} +1 -1
- package/dist/ionic/{p-9f3ad626.system.entry.js → p-2061c86f.system.entry.js} +1 -1
- package/dist/ionic/{p-28d8b87b.entry.js → p-208f640c.entry.js} +1 -1
- package/dist/ionic/p-218b6f33.entry.js +4 -0
- package/dist/ionic/{p-d8d30fd1.system.entry.js → p-2539e967.system.entry.js} +1 -1
- package/dist/ionic/p-273e78ae.entry.js +4 -0
- package/dist/ionic/p-2da6ba37.system.entry.js +4 -0
- package/dist/ionic/{p-4e1a58c6.system.entry.js → p-32d11ce2.system.entry.js} +1 -1
- package/dist/ionic/{p-c8c0d58a.system.entry.js → p-336420f9.system.entry.js} +1 -1
- package/dist/ionic/{p-be187db3.entry.js → p-341d5877.entry.js} +1 -1
- package/dist/ionic/{p-11d0977d.entry.js → p-38dd9aec.entry.js} +1 -1
- package/dist/ionic/{p-fde174d6.system.entry.js → p-3ef88fc2.system.entry.js} +1 -1
- package/dist/ionic/p-40138199.entry.js +4 -0
- package/dist/ionic/{p-765e6339.entry.js → p-430e902d.entry.js} +1 -1
- package/dist/ionic/p-44ef7224.system.js +4 -0
- package/dist/ionic/p-4531b920.system.js +4 -0
- package/dist/ionic/{p-8db97b90.entry.js → p-48144921.entry.js} +1 -1
- package/dist/ionic/{p-0ce43a8f.system.entry.js → p-4a153fbc.system.entry.js} +1 -1
- package/dist/ionic/p-4ca1ce6b.system.entry.js +4 -0
- package/dist/ionic/p-51b165af.system.js +4 -0
- package/dist/ionic/{p-98bfaff3.system.entry.js → p-57dc87eb.system.entry.js} +1 -1
- package/dist/ionic/{p-83459b99.entry.js → p-57f0efcc.entry.js} +1 -1
- package/dist/ionic/p-582dc7c1.js +4 -0
- package/dist/ionic/{p-ee55302a.system.entry.js → p-5ba27716.system.entry.js} +1 -1
- package/dist/ionic/{p-68deb933.entry.js → p-5c17f888.entry.js} +1 -1
- package/dist/ionic/{p-a037b6d5.system.entry.js → p-62324608.system.entry.js} +1 -1
- package/dist/ionic/{p-f62bed60.entry.js → p-639d7b25.entry.js} +1 -1
- package/dist/ionic/p-64ad5765.entry.js +4 -0
- package/dist/ionic/{p-9eced28c.entry.js → p-653f2fc6.entry.js} +1 -1
- package/dist/ionic/{p-b9179eab.entry.js → p-67b891af.entry.js} +1 -1
- package/dist/ionic/{p-8bcd482b.entry.js → p-68e0ea3c.entry.js} +1 -1
- package/dist/ionic/{p-2e5930dd.system.js → p-69303bb5.system.js} +1 -1
- package/dist/ionic/{p-42e0558f.entry.js → p-6b3afb0f.entry.js} +1 -1
- package/dist/ionic/{p-ec344ed1.system.entry.js → p-6bf632d0.system.entry.js} +1 -1
- package/dist/ionic/{p-cd002251.entry.js → p-728ac2b3.entry.js} +1 -1
- package/dist/ionic/p-778460f7.js +4 -0
- package/dist/ionic/{p-3f15f60b.entry.js → p-77f91ca9.entry.js} +1 -1
- package/dist/ionic/{p-b052b578.entry.js → p-785b0913.entry.js} +1 -1
- package/dist/ionic/{p-ff3d728d.system.js → p-7b16490a.system.js} +1 -1
- package/dist/ionic/{p-629b0629.js → p-7c938ad6.js} +1 -1
- package/dist/ionic/p-7cfd253c.js +4 -0
- package/dist/ionic/{p-5e549223.system.js → p-81597423.system.js} +1 -1
- package/dist/ionic/{p-3d5a6d14.system.js → p-82632e15.system.js} +1 -1
- package/dist/ionic/{p-23ddd787.system.entry.js → p-82f5c07e.system.entry.js} +1 -1
- package/dist/ionic/{p-b453b38d.entry.js → p-82f8ee51.entry.js} +1 -1
- package/dist/ionic/{p-a314559e.system.js → p-83008f7c.system.js} +2 -2
- package/dist/ionic/{p-7474a472.system.entry.js → p-839bd69f.system.entry.js} +1 -1
- package/dist/ionic/{p-9be96bf3.system.entry.js → p-83bcaec9.system.entry.js} +1 -1
- package/dist/ionic/p-86c5c320.entry.js +4 -0
- package/dist/ionic/{p-95188051.system.entry.js → p-87383d00.system.entry.js} +1 -1
- package/dist/ionic/{p-57847936.entry.js → p-8a676776.entry.js} +1 -1
- package/dist/ionic/{p-5fc777e6.system.js → p-8ba724fa.system.js} +1 -1
- package/dist/ionic/p-90ec5785.system.entry.js +4 -0
- package/dist/ionic/{p-b3f6f321.js → p-91459620.js} +1 -1
- package/dist/ionic/{p-49f2eaa6.entry.js → p-93e47822.entry.js} +1 -1
- package/dist/ionic/{p-fa8fc77b.system.entry.js → p-96c2a273.system.entry.js} +1 -1
- package/dist/ionic/{p-6dff4431.entry.js → p-98a189f3.entry.js} +1 -1
- package/dist/ionic/{p-0dbfa45f.entry.js → p-98ebc376.entry.js} +1 -1
- package/dist/ionic/{p-07656a8a.entry.js → p-99028088.entry.js} +1 -1
- package/dist/ionic/{p-84084b75.entry.js → p-99140340.entry.js} +1 -1
- package/dist/ionic/{p-47a11fc4.entry.js → p-9c32000a.entry.js} +1 -1
- package/dist/ionic/p-a2b25750.js +4 -0
- package/dist/ionic/{p-d524e68b.system.entry.js → p-a34669bf.system.entry.js} +1 -1
- package/dist/ionic/{p-bacf09d3.entry.js → p-a3f9d271.entry.js} +1 -1
- package/dist/ionic/p-a62c0ff4.js +4 -0
- package/dist/ionic/{p-5a9dc764.system.entry.js → p-af0bc751.system.entry.js} +1 -1
- package/dist/ionic/p-af986299.system.entry.js +4 -0
- package/dist/ionic/{p-6ccffb74.system.entry.js → p-b0e9e0b8.system.entry.js} +1 -1
- package/dist/ionic/{p-563068af.js → p-b22ee0dc.js} +1 -1
- package/dist/ionic/{p-204fb8f0.system.entry.js → p-b2514862.system.entry.js} +1 -1
- package/dist/ionic/p-b321c999.entry.js +4 -0
- package/dist/ionic/{p-bfee11b2.system.js → p-b32742f3.system.js} +1 -1
- package/dist/ionic/{p-3bf120f8.system.entry.js → p-b9654781.system.entry.js} +1 -1
- package/dist/ionic/{p-1c236453.system.entry.js → p-bbae0ac3.system.entry.js} +1 -1
- package/dist/ionic/{p-32983529.system.entry.js → p-bf4b8d8a.system.entry.js} +1 -1
- package/dist/ionic/{p-5163baf4.system.entry.js → p-c4afbed8.system.entry.js} +1 -1
- package/dist/ionic/p-c53dd7a2.entry.js +4 -0
- package/dist/ionic/{p-a033a91d.system.entry.js → p-d1bab5e7.system.entry.js} +1 -1
- package/dist/ionic/{p-5260588f.system.entry.js → p-d1d3b740.system.entry.js} +1 -1
- package/dist/ionic/{p-59b40b60.entry.js → p-d3378c35.entry.js} +1 -1
- package/dist/ionic/{p-eb91aee6.entry.js → p-d5e3bff3.entry.js} +1 -1
- package/dist/ionic/{p-dc4c9086.system.entry.js → p-d693e765.system.entry.js} +1 -1
- package/dist/ionic/p-d898dd46.js +4 -0
- package/dist/ionic/p-d8a0267b.system.entry.js +4 -0
- package/dist/ionic/{p-ef8a8827.system.entry.js → p-dbb48066.system.entry.js} +1 -1
- package/dist/ionic/{p-574411f2.system.entry.js → p-dc49c681.system.entry.js} +1 -1
- package/dist/ionic/{p-a122ecd0.system.js → p-df6743df.system.js} +1 -1
- package/dist/ionic/{p-6276ba2f.system.entry.js → p-e112994b.system.entry.js} +1 -1
- package/dist/ionic/{p-3c325277.js → p-e3cba96d.js} +1 -1
- package/dist/ionic/p-e3d5608d.system.js +4 -0
- package/dist/ionic/{p-2ac2278e.system.entry.js → p-e805ff9f.system.entry.js} +1 -1
- package/dist/ionic/{p-07f5e286.entry.js → p-e9c112ba.entry.js} +1 -1
- package/dist/ionic/{p-ec7ff98b.entry.js → p-ed7b205b.entry.js} +1 -1
- package/dist/ionic/{p-26276eb7.system.entry.js → p-f5b7b710.system.entry.js} +1 -1
- package/dist/ionic/p-f5c19164.entry.js +4 -0
- package/dist/ionic/{p-9e8727d6.entry.js → p-f7faa32d.entry.js} +1 -1
- package/dist/ionic/{p-fc991193.entry.js → p-f9567c67.entry.js} +1 -1
- package/dist/ionic/{p-810f1bc9.system.entry.js → p-f95f798a.system.entry.js} +1 -1
- package/dist/ionic/{p-6eb7b33c.system.entry.js → p-fa3327e8.system.entry.js} +1 -1
- package/dist/ionic/{p-072f99fd.entry.js → p-fabb7294.entry.js} +1 -1
- package/dist/ionic/{p-041ac2c3.entry.js → p-fac1660b.entry.js} +1 -1
- package/dist/ionic/{p-1916030e.entry.js → p-fe83e3e2.entry.js} +1 -1
- package/dist/ionic/{p-b703ebeb.system.entry.js → p-fea46870.system.entry.js} +1 -1
- package/dist/types/components/checkbox/checkbox.d.ts +8 -1
- package/dist/types/components/datetime/datetime.d.ts +23 -10
- package/dist/types/components/datetime/utils/data.d.ts +1 -1
- package/dist/types/components/datetime/utils/parse.d.ts +3 -3
- package/dist/types/components/radio/radio.d.ts +8 -1
- package/dist/types/components/range/range.d.ts +2 -1
- package/dist/types/components/toast/toast-interface.d.ts +3 -0
- package/dist/types/components/toggle/toggle.d.ts +8 -1
- package/dist/types/components.d.ts +40 -16
- package/dist/types/index.d.ts +1 -0
- package/dist/types/interface.d.ts +1 -0
- package/dist/types/stencil-public-runtime.d.ts +3 -3
- package/dist/types/utils/input-shims/hacks/scroll-data.d.ts +1 -1
- package/hydrate/index.d.ts +5 -5
- package/hydrate/index.js +234 -150
- package/package.json +3 -3
- package/dist/esm-es5/app-globals-c7886b40.js +0 -4
- package/dist/esm-es5/data-4b448e3a.js +0 -4
- package/dist/esm-es5/input-shims-4f1b0af9.js +0 -4
- package/dist/esm-es5/md.transition-12d21ad0.js +0 -4
- package/dist/ionic/p-17e961cf.entry.js +0 -4
- package/dist/ionic/p-1b533a76.system.entry.js +0 -4
- package/dist/ionic/p-1d4a4a94.system.js +0 -4
- package/dist/ionic/p-2b0ecc04.entry.js +0 -4
- package/dist/ionic/p-44a6f15d.system.entry.js +0 -4
- package/dist/ionic/p-4f7109fa.entry.js +0 -4
- package/dist/ionic/p-56495958.js +0 -4
- package/dist/ionic/p-601fd53c.js +0 -4
- package/dist/ionic/p-7106c152.system.js +0 -4
- package/dist/ionic/p-75d4ceab.js +0 -4
- package/dist/ionic/p-8f7edf3e.js +0 -4
- package/dist/ionic/p-99a3df5c.entry.js +0 -4
- package/dist/ionic/p-9eaaa910.entry.js +0 -4
- package/dist/ionic/p-a533868d.system.js +0 -4
- package/dist/ionic/p-af6125d1.system.entry.js +0 -4
- package/dist/ionic/p-b8d7f0eb.system.entry.js +0 -4
- package/dist/ionic/p-c4abd708.js +0 -4
- package/dist/ionic/p-c68a8814.system.js +0 -4
- package/dist/ionic/p-c7ce7e18.entry.js +0 -4
- package/dist/ionic/p-cc8910e7.system.js +0 -4
- package/dist/ionic/p-dacb0258.js +0 -4
- package/dist/ionic/p-dc7d392d.entry.js +0 -4
- package/dist/ionic/p-e65aed58.system.entry.js +0 -4
- package/dist/ionic/p-f3ec1f2b.entry.js +0 -4
- package/dist/ionic/p-fb26fa56.system.entry.js +0 -4
- /package/dist/esm-es5/{index-adfb2000.js → index-847f2fde.js} +0 -0
- /package/dist/ionic/{p-a18eb556.js → p-156967ec.js} +0 -0
- /package/dist/ionic/{p-2441ba84.system.js → p-5b553dc0.system.js} +0 -0
|
@@ -71,6 +71,7 @@ export class Toggle {
|
|
|
71
71
|
this.labelPlacement = 'start';
|
|
72
72
|
this.legacy = undefined;
|
|
73
73
|
this.justify = 'space-between';
|
|
74
|
+
this.alignment = 'center';
|
|
74
75
|
}
|
|
75
76
|
disabledChanged() {
|
|
76
77
|
this.emitStyle();
|
|
@@ -168,7 +169,7 @@ export class Toggle {
|
|
|
168
169
|
return legacyFormController.hasLegacyControl() ? this.renderLegacyToggle() : this.renderToggle();
|
|
169
170
|
}
|
|
170
171
|
renderToggle() {
|
|
171
|
-
const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name } = this;
|
|
172
|
+
const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment } = this;
|
|
172
173
|
const mode = getIonMode(this);
|
|
173
174
|
const value = this.getValue();
|
|
174
175
|
const rtl = isRTL(el) ? 'rtl' : 'ltr';
|
|
@@ -180,6 +181,7 @@ export class Toggle {
|
|
|
180
181
|
'toggle-checked': checked,
|
|
181
182
|
'toggle-disabled': disabled,
|
|
182
183
|
[`toggle-justify-${justify}`]: true,
|
|
184
|
+
[`toggle-alignment-${alignment}`]: true,
|
|
183
185
|
[`toggle-label-placement-${labelPlacement}`]: true,
|
|
184
186
|
[`toggle-${rtl}`]: true,
|
|
185
187
|
}) }, h("label", { class: "toggle-wrapper" }, h("input", Object.assign({ type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl) }, this.inheritedAttributes)), h("div", { class: {
|
|
@@ -352,15 +354,15 @@ Developers can dismiss this warning by removing their usage of the "legacy" prop
|
|
|
352
354
|
"type": "string",
|
|
353
355
|
"mutable": false,
|
|
354
356
|
"complexType": {
|
|
355
|
-
"original": "'start' | 'end' | 'fixed'",
|
|
356
|
-
"resolved": "\"end\" | \"fixed\" | \"start\"",
|
|
357
|
+
"original": "'start' | 'end' | 'fixed' | 'stacked'",
|
|
358
|
+
"resolved": "\"end\" | \"fixed\" | \"stacked\" | \"start\"",
|
|
357
359
|
"references": {}
|
|
358
360
|
},
|
|
359
361
|
"required": false,
|
|
360
362
|
"optional": false,
|
|
361
363
|
"docs": {
|
|
362
364
|
"tags": [],
|
|
363
|
-
"text": "Where to place the label relative to the input.\n`\"start\"`: The label will appear to the left of the toggle in LTR and to the right in RTL.\n`\"end\"`: The label will appear to the right of the toggle in LTR and to the left in RTL.\n`\"fixed\"`: The label has the same behavior as `\"start\"` except it also has a fixed width. Long text will be truncated with ellipses (\"...\")."
|
|
365
|
+
"text": "Where to place the label relative to the input.\n`\"start\"`: The label will appear to the left of the toggle in LTR and to the right in RTL.\n`\"end\"`: The label will appear to the right of the toggle in LTR and to the left in RTL.\n`\"fixed\"`: The label has the same behavior as `\"start\"` except it also has a fixed width. Long text will be truncated with ellipses (\"...\").\n`\"stacked\"`: The label will appear above the toggle regardless of the direction. The alignment of the label can be controlled with the `alignment` property."
|
|
364
366
|
},
|
|
365
367
|
"attribute": "label-placement",
|
|
366
368
|
"reflect": false,
|
|
@@ -400,6 +402,24 @@ Developers can dismiss this warning by removing their usage of the "legacy" prop
|
|
|
400
402
|
"attribute": "justify",
|
|
401
403
|
"reflect": false,
|
|
402
404
|
"defaultValue": "'space-between'"
|
|
405
|
+
},
|
|
406
|
+
"alignment": {
|
|
407
|
+
"type": "string",
|
|
408
|
+
"mutable": false,
|
|
409
|
+
"complexType": {
|
|
410
|
+
"original": "'start' | 'center'",
|
|
411
|
+
"resolved": "\"center\" | \"start\"",
|
|
412
|
+
"references": {}
|
|
413
|
+
},
|
|
414
|
+
"required": false,
|
|
415
|
+
"optional": false,
|
|
416
|
+
"docs": {
|
|
417
|
+
"tags": [],
|
|
418
|
+
"text": "How to control the alignment of the toggle and label on the cross axis.\n``\"start\"`: The label and control will appear on the left of the cross axis in LTR, and on the right side in RTL.\n`\"center\"`: The label and control will appear at the center of the cross axis in both LTR and RTL."
|
|
419
|
+
},
|
|
420
|
+
"attribute": "alignment",
|
|
421
|
+
"reflect": false,
|
|
422
|
+
"defaultValue": "'center'"
|
|
403
423
|
}
|
|
404
424
|
};
|
|
405
425
|
}
|
|
@@ -123,7 +123,6 @@ input {
|
|
|
123
123
|
display: flex;
|
|
124
124
|
position: relative;
|
|
125
125
|
flex-grow: 1;
|
|
126
|
-
align-items: center;
|
|
127
126
|
height: inherit;
|
|
128
127
|
transition: background-color 15ms linear;
|
|
129
128
|
cursor: inherit;
|
|
@@ -146,6 +145,15 @@ input {
|
|
|
146
145
|
margin-bottom: 10px;
|
|
147
146
|
}
|
|
148
147
|
|
|
148
|
+
:host(.in-item.toggle-label-placement-stacked) .label-text-wrapper {
|
|
149
|
+
margin-top: 10px;
|
|
150
|
+
margin-bottom: 16px;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
:host(.in-item.toggle-label-placement-stacked) .native-wrapper {
|
|
154
|
+
margin-bottom: 10px;
|
|
155
|
+
}
|
|
156
|
+
|
|
149
157
|
/**
|
|
150
158
|
* If no label text is placed into the slot
|
|
151
159
|
* then the element should be hidden otherwise
|
|
@@ -172,6 +180,14 @@ input {
|
|
|
172
180
|
justify-content: end;
|
|
173
181
|
}
|
|
174
182
|
|
|
183
|
+
:host(.toggle-alignment-start) .toggle-wrapper {
|
|
184
|
+
align-items: start;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
:host(.toggle-alignment-center) .toggle-wrapper {
|
|
188
|
+
align-items: center;
|
|
189
|
+
}
|
|
190
|
+
|
|
175
191
|
/**
|
|
176
192
|
* Label is on the left of the input in LTR and
|
|
177
193
|
* on the right in RTL.
|
|
@@ -235,6 +251,24 @@ input {
|
|
|
235
251
|
max-width: 200px;
|
|
236
252
|
}
|
|
237
253
|
|
|
254
|
+
/**
|
|
255
|
+
* Label is on top of the toggle.
|
|
256
|
+
*/
|
|
257
|
+
:host(.toggle-label-placement-stacked) .toggle-wrapper {
|
|
258
|
+
flex-direction: column;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
:host(.toggle-label-placement-stacked) .label-text-wrapper {
|
|
262
|
+
/**
|
|
263
|
+
* The margin between the label and
|
|
264
|
+
* the toggle should be on the bottom
|
|
265
|
+
* when the label sits on top.
|
|
266
|
+
*/
|
|
267
|
+
margin-left: 0;
|
|
268
|
+
margin-right: 0;
|
|
269
|
+
margin-bottom: 16px;
|
|
270
|
+
}
|
|
271
|
+
|
|
238
272
|
.toggle-icon-wrapper {
|
|
239
273
|
display: flex;
|
|
240
274
|
position: relative;
|
package/dist/collection/index.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import "ionicons";
|
|
5
5
|
export { createAnimation } from './utils/animation/animation';
|
|
6
|
+
export { getIonPageElement } from './utils/transition';
|
|
6
7
|
export { iosTransitionAnimation } from './utils/transition/ios.transition';
|
|
7
8
|
export { mdTransitionAnimation } from './utils/transition/md.transition';
|
|
8
9
|
export { getTimeGivenProgression } from './utils/animation/cubic-bezier';
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import { win } from "../../browser/index";
|
|
5
4
|
import { getScrollElement, scrollByPoint } from "../../content";
|
|
6
5
|
import { raf } from "../../helpers";
|
|
7
6
|
import { KeyboardResize } from "../../native/keyboard";
|
|
@@ -21,20 +20,6 @@ export const enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, ke
|
|
|
21
20
|
* Resize info is available on Capacitor 4+
|
|
22
21
|
*/
|
|
23
22
|
const addScrollPadding = enableScrollPadding && (keyboardResize === undefined || keyboardResize.mode === KeyboardResize.None);
|
|
24
|
-
/**
|
|
25
|
-
* When adding scroll padding we need to know
|
|
26
|
-
* how much of the viewport the keyboard obscures.
|
|
27
|
-
* We do this by subtracting the keyboard height
|
|
28
|
-
* from the platform height.
|
|
29
|
-
*
|
|
30
|
-
* If we compute this value when switching between
|
|
31
|
-
* inputs then the webview may already be resized.
|
|
32
|
-
* At this point, `win.innerHeight` has already accounted
|
|
33
|
-
* for the keyboard meaning we would then subtract
|
|
34
|
-
* the keyboard height again. This will result in the input
|
|
35
|
-
* being scrolled more than it needs to.
|
|
36
|
-
*/
|
|
37
|
-
const platformHeight = win !== undefined ? win.innerHeight : 0;
|
|
38
23
|
/**
|
|
39
24
|
* When the input is about to receive
|
|
40
25
|
* focus, we need to move it to prevent
|
|
@@ -51,7 +36,7 @@ export const enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, ke
|
|
|
51
36
|
inputEl.removeAttribute(SKIP_SCROLL_ASSIST);
|
|
52
37
|
return;
|
|
53
38
|
}
|
|
54
|
-
jsSetFocus(componentEl, inputEl, contentEl, footerEl, keyboardHeight, addScrollPadding, disableClonedInput
|
|
39
|
+
jsSetFocus(componentEl, inputEl, contentEl, footerEl, keyboardHeight, addScrollPadding, disableClonedInput);
|
|
55
40
|
};
|
|
56
41
|
componentEl.addEventListener('focusin', focusIn, true);
|
|
57
42
|
return () => {
|
|
@@ -74,11 +59,11 @@ const setManualFocus = (el) => {
|
|
|
74
59
|
el.setAttribute(SKIP_SCROLL_ASSIST, 'true');
|
|
75
60
|
el.focus();
|
|
76
61
|
};
|
|
77
|
-
const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHeight, enableScrollPadding, disableClonedInput = false
|
|
62
|
+
const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHeight, enableScrollPadding, disableClonedInput = false) => {
|
|
78
63
|
if (!contentEl && !footerEl) {
|
|
79
64
|
return;
|
|
80
65
|
}
|
|
81
|
-
const scrollData = getScrollData(componentEl, (contentEl || footerEl), keyboardHeight
|
|
66
|
+
const scrollData = getScrollData(componentEl, (contentEl || footerEl), keyboardHeight);
|
|
82
67
|
if (contentEl && Math.abs(scrollData.scrollAmount) < 4) {
|
|
83
68
|
// the text input is in a safe position that doesn't
|
|
84
69
|
// require it to be scrolled into view, just set focus now
|
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { SCROLL_AMOUNT_PADDING } from "./common";
|
|
5
5
|
const SCROLL_ASSIST_SPEED = 0.3;
|
|
6
|
-
export const getScrollData = (componentEl, contentEl, keyboardHeight
|
|
6
|
+
export const getScrollData = (componentEl, contentEl, keyboardHeight) => {
|
|
7
7
|
var _a;
|
|
8
8
|
const itemEl = (_a = componentEl.closest('ion-item,[ion-item]')) !== null && _a !== void 0 ? _a : componentEl;
|
|
9
|
-
return calcScrollData(itemEl.getBoundingClientRect(), contentEl.getBoundingClientRect(), keyboardHeight,
|
|
9
|
+
return calcScrollData(itemEl.getBoundingClientRect(), contentEl.getBoundingClientRect(), keyboardHeight, componentEl.ownerDocument.defaultView.innerHeight // TODO(FW-2832): type
|
|
10
|
+
);
|
|
10
11
|
};
|
|
11
12
|
const calcScrollData = (inputRect, contentRect, keyboardHeight, platformHeight) => {
|
|
12
13
|
// compute input's Y values relative to the body
|
package/dist/docs.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
|
-
"timestamp": "2023-09-
|
|
2
|
+
"timestamp": "2023-09-13T12:44:09",
|
|
3
3
|
"compiler": {
|
|
4
4
|
"name": "@stencil/core",
|
|
5
|
-
"version": "4.2.
|
|
5
|
+
"version": "4.2.0",
|
|
6
6
|
"typescriptVersion": "5.1.6"
|
|
7
7
|
},
|
|
8
8
|
"components": [
|
|
@@ -4959,6 +4959,33 @@
|
|
|
4959
4959
|
],
|
|
4960
4960
|
"usage": {},
|
|
4961
4961
|
"props": [
|
|
4962
|
+
{
|
|
4963
|
+
"name": "alignment",
|
|
4964
|
+
"type": "\"center\" | \"start\"",
|
|
4965
|
+
"complexType": {
|
|
4966
|
+
"original": "'start' | 'center'",
|
|
4967
|
+
"resolved": "\"center\" | \"start\"",
|
|
4968
|
+
"references": {}
|
|
4969
|
+
},
|
|
4970
|
+
"mutable": false,
|
|
4971
|
+
"attr": "alignment",
|
|
4972
|
+
"reflectToAttr": false,
|
|
4973
|
+
"docs": "How to control the alignment of the checkbox and label on the cross axis.\n`\"start\"`: The label and control will appear on the left of the cross axis in LTR, and on the right side in RTL.\n`\"center\"`: The label and control will appear at the center of the cross axis in both LTR and RTL.",
|
|
4974
|
+
"docsTags": [],
|
|
4975
|
+
"default": "'center'",
|
|
4976
|
+
"values": [
|
|
4977
|
+
{
|
|
4978
|
+
"value": "center",
|
|
4979
|
+
"type": "string"
|
|
4980
|
+
},
|
|
4981
|
+
{
|
|
4982
|
+
"value": "start",
|
|
4983
|
+
"type": "string"
|
|
4984
|
+
}
|
|
4985
|
+
],
|
|
4986
|
+
"optional": false,
|
|
4987
|
+
"required": false
|
|
4988
|
+
},
|
|
4962
4989
|
{
|
|
4963
4990
|
"name": "checked",
|
|
4964
4991
|
"type": "boolean",
|
|
@@ -5124,16 +5151,16 @@
|
|
|
5124
5151
|
},
|
|
5125
5152
|
{
|
|
5126
5153
|
"name": "labelPlacement",
|
|
5127
|
-
"type": "\"end\" | \"fixed\" | \"start\"",
|
|
5154
|
+
"type": "\"end\" | \"fixed\" | \"stacked\" | \"start\"",
|
|
5128
5155
|
"complexType": {
|
|
5129
|
-
"original": "'start' | 'end' | 'fixed'",
|
|
5130
|
-
"resolved": "\"end\" | \"fixed\" | \"start\"",
|
|
5156
|
+
"original": "'start' | 'end' | 'fixed' | 'stacked'",
|
|
5157
|
+
"resolved": "\"end\" | \"fixed\" | \"stacked\" | \"start\"",
|
|
5131
5158
|
"references": {}
|
|
5132
5159
|
},
|
|
5133
5160
|
"mutable": false,
|
|
5134
5161
|
"attr": "label-placement",
|
|
5135
5162
|
"reflectToAttr": false,
|
|
5136
|
-
"docs": "Where to place the label relative to the checkbox.\n`\"start\"`: The label will appear to the left of the checkbox in LTR and to the right in RTL.\n`\"end\"`: The label will appear to the right of the checkbox in LTR and to the left in RTL.\n`\"fixed\"`: The label has the same behavior as `\"start\"` except it also has a fixed width. Long text will be truncated with ellipses (\"...\").",
|
|
5163
|
+
"docs": "Where to place the label relative to the checkbox.\n`\"start\"`: The label will appear to the left of the checkbox in LTR and to the right in RTL.\n`\"end\"`: The label will appear to the right of the checkbox in LTR and to the left in RTL.\n`\"fixed\"`: The label has the same behavior as `\"start\"` except it also has a fixed width. Long text will be truncated with ellipses (\"...\").\n`\"stacked\"`: The label will appear above the checkbox regardless of the direction. The alignment of the label can be controlled with the `alignment` property.",
|
|
5137
5164
|
"docsTags": [],
|
|
5138
5165
|
"default": "'start'",
|
|
5139
5166
|
"values": [
|
|
@@ -5145,6 +5172,10 @@
|
|
|
5145
5172
|
"value": "fixed",
|
|
5146
5173
|
"type": "string"
|
|
5147
5174
|
},
|
|
5175
|
+
{
|
|
5176
|
+
"value": "stacked",
|
|
5177
|
+
"type": "string"
|
|
5178
|
+
},
|
|
5148
5179
|
{
|
|
5149
5180
|
"value": "start",
|
|
5150
5181
|
"type": "string"
|
|
@@ -6808,6 +6839,22 @@
|
|
|
6808
6839
|
{
|
|
6809
6840
|
"name": "part",
|
|
6810
6841
|
"text": "month-year-button - The button that opens the month/year picker when\nusing a grid style layout."
|
|
6842
|
+
},
|
|
6843
|
+
{
|
|
6844
|
+
"name": "part",
|
|
6845
|
+
"text": "calendar-day - The individual buttons that display a day inside of the datetime\ncalendar."
|
|
6846
|
+
},
|
|
6847
|
+
{
|
|
6848
|
+
"name": "part",
|
|
6849
|
+
"text": "calendar-day active - The currently selected calendar day."
|
|
6850
|
+
},
|
|
6851
|
+
{
|
|
6852
|
+
"name": "part",
|
|
6853
|
+
"text": "calendar-day today - The calendar day that contains the current day."
|
|
6854
|
+
},
|
|
6855
|
+
{
|
|
6856
|
+
"name": "part",
|
|
6857
|
+
"text": "calendar-day disabled - The calendar day that is disabled."
|
|
6811
6858
|
}
|
|
6812
6859
|
],
|
|
6813
6860
|
"usage": {},
|
|
@@ -7828,6 +7875,22 @@
|
|
|
7828
7875
|
}
|
|
7829
7876
|
],
|
|
7830
7877
|
"parts": [
|
|
7878
|
+
{
|
|
7879
|
+
"name": "calendar-day",
|
|
7880
|
+
"docs": "The individual buttons that display a day inside of the datetime\ncalendar."
|
|
7881
|
+
},
|
|
7882
|
+
{
|
|
7883
|
+
"name": "calendar-day active",
|
|
7884
|
+
"docs": "The currently selected calendar day."
|
|
7885
|
+
},
|
|
7886
|
+
{
|
|
7887
|
+
"name": "calendar-day disabled",
|
|
7888
|
+
"docs": "The calendar day that is disabled."
|
|
7889
|
+
},
|
|
7890
|
+
{
|
|
7891
|
+
"name": "calendar-day today",
|
|
7892
|
+
"docs": "The calendar day that contains the current day."
|
|
7893
|
+
},
|
|
7831
7894
|
{
|
|
7832
7895
|
"name": "month-year-button",
|
|
7833
7896
|
"docs": "The button that opens the month/year picker when\nusing a grid style layout."
|
|
@@ -19254,6 +19317,33 @@
|
|
|
19254
19317
|
],
|
|
19255
19318
|
"usage": {},
|
|
19256
19319
|
"props": [
|
|
19320
|
+
{
|
|
19321
|
+
"name": "alignment",
|
|
19322
|
+
"type": "\"center\" | \"start\"",
|
|
19323
|
+
"complexType": {
|
|
19324
|
+
"original": "'start' | 'center'",
|
|
19325
|
+
"resolved": "\"center\" | \"start\"",
|
|
19326
|
+
"references": {}
|
|
19327
|
+
},
|
|
19328
|
+
"mutable": false,
|
|
19329
|
+
"attr": "alignment",
|
|
19330
|
+
"reflectToAttr": false,
|
|
19331
|
+
"docs": "How to control the alignment of the radio and label on the cross axis.\n`\"start\"`: The label and control will appear on the left of the cross axis in LTR, and on the right side in RTL.\n`\"center\"`: The label and control will appear at the center of the cross axis in both LTR and RTL.",
|
|
19332
|
+
"docsTags": [],
|
|
19333
|
+
"default": "'center'",
|
|
19334
|
+
"values": [
|
|
19335
|
+
{
|
|
19336
|
+
"value": "center",
|
|
19337
|
+
"type": "string"
|
|
19338
|
+
},
|
|
19339
|
+
{
|
|
19340
|
+
"value": "start",
|
|
19341
|
+
"type": "string"
|
|
19342
|
+
}
|
|
19343
|
+
],
|
|
19344
|
+
"optional": false,
|
|
19345
|
+
"required": false
|
|
19346
|
+
},
|
|
19257
19347
|
{
|
|
19258
19348
|
"name": "color",
|
|
19259
19349
|
"type": "\"danger\" | \"dark\" | \"light\" | \"medium\" | \"primary\" | \"secondary\" | \"success\" | \"tertiary\" | \"warning\" | string & Record<never, never> | undefined",
|
|
@@ -19375,16 +19465,16 @@
|
|
|
19375
19465
|
},
|
|
19376
19466
|
{
|
|
19377
19467
|
"name": "labelPlacement",
|
|
19378
|
-
"type": "\"end\" | \"fixed\" | \"start\"",
|
|
19468
|
+
"type": "\"end\" | \"fixed\" | \"stacked\" | \"start\"",
|
|
19379
19469
|
"complexType": {
|
|
19380
|
-
"original": "'start' | 'end' | 'fixed'",
|
|
19381
|
-
"resolved": "\"end\" | \"fixed\" | \"start\"",
|
|
19470
|
+
"original": "'start' | 'end' | 'fixed' | 'stacked'",
|
|
19471
|
+
"resolved": "\"end\" | \"fixed\" | \"stacked\" | \"start\"",
|
|
19382
19472
|
"references": {}
|
|
19383
19473
|
},
|
|
19384
19474
|
"mutable": false,
|
|
19385
19475
|
"attr": "label-placement",
|
|
19386
19476
|
"reflectToAttr": false,
|
|
19387
|
-
"docs": "Where to place the label relative to the radio.\n`\"start\"`: The label will appear to the left of the radio in LTR and to the right in RTL.\n`\"end\"`: The label will appear to the right of the radio in LTR and to the left in RTL.\n`\"fixed\"`: The label has the same behavior as `\"start\"` except it also has a fixed width. Long text will be truncated with ellipses (\"...\").",
|
|
19477
|
+
"docs": "Where to place the label relative to the radio.\n`\"start\"`: The label will appear to the left of the radio in LTR and to the right in RTL.\n`\"end\"`: The label will appear to the right of the radio in LTR and to the left in RTL.\n`\"fixed\"`: The label has the same behavior as `\"start\"` except it also has a fixed width. Long text will be truncated with ellipses (\"...\").\n`\"stacked\"`: The label will appear above the radio regardless of the direction. The alignment of the label can be controlled with the `alignment` property.",
|
|
19388
19478
|
"docsTags": [],
|
|
19389
19479
|
"default": "'start'",
|
|
19390
19480
|
"values": [
|
|
@@ -19396,6 +19486,10 @@
|
|
|
19396
19486
|
"value": "fixed",
|
|
19397
19487
|
"type": "string"
|
|
19398
19488
|
},
|
|
19489
|
+
{
|
|
19490
|
+
"value": "stacked",
|
|
19491
|
+
"type": "string"
|
|
19492
|
+
},
|
|
19399
19493
|
{
|
|
19400
19494
|
"value": "start",
|
|
19401
19495
|
"type": "string"
|
|
@@ -19924,16 +20018,16 @@
|
|
|
19924
20018
|
},
|
|
19925
20019
|
{
|
|
19926
20020
|
"name": "labelPlacement",
|
|
19927
|
-
"type": "\"end\" | \"fixed\" | \"start\"",
|
|
20021
|
+
"type": "\"end\" | \"fixed\" | \"stacked\" | \"start\"",
|
|
19928
20022
|
"complexType": {
|
|
19929
|
-
"original": "'start' | 'end' | 'fixed'",
|
|
19930
|
-
"resolved": "\"end\" | \"fixed\" | \"start\"",
|
|
20023
|
+
"original": "'start' | 'end' | 'fixed' | 'stacked'",
|
|
20024
|
+
"resolved": "\"end\" | \"fixed\" | \"stacked\" | \"start\"",
|
|
19931
20025
|
"references": {}
|
|
19932
20026
|
},
|
|
19933
20027
|
"mutable": false,
|
|
19934
20028
|
"attr": "label-placement",
|
|
19935
20029
|
"reflectToAttr": false,
|
|
19936
|
-
"docs": "Where to place the label relative to the range.\n`\"start\"`: The label will appear to the left of the range in LTR and to the right in RTL.\n`\"end\"`: The label will appear to the right of the range in LTR and to the left in RTL.\n`\"fixed\"`: The label has the same behavior as `\"start\"` except it also has a fixed width. Long text will be truncated with ellipses (\"...\").",
|
|
20030
|
+
"docs": "Where to place the label relative to the range.\n`\"start\"`: The label will appear to the left of the range in LTR and to the right in RTL.\n`\"end\"`: The label will appear to the right of the range in LTR and to the left in RTL.\n`\"fixed\"`: The label has the same behavior as `\"start\"` except it also has a fixed width. Long text will be truncated with ellipses (\"...\").\n`\"stacked\"`: The label will appear above the range regardless of the direction.",
|
|
19937
20031
|
"docsTags": [],
|
|
19938
20032
|
"default": "'start'",
|
|
19939
20033
|
"values": [
|
|
@@ -19945,6 +20039,10 @@
|
|
|
19945
20039
|
"value": "fixed",
|
|
19946
20040
|
"type": "string"
|
|
19947
20041
|
},
|
|
20042
|
+
{
|
|
20043
|
+
"value": "stacked",
|
|
20044
|
+
"type": "string"
|
|
20045
|
+
},
|
|
19948
20046
|
{
|
|
19949
20047
|
"value": "start",
|
|
19950
20048
|
"type": "string"
|
|
@@ -28122,6 +28220,33 @@
|
|
|
28122
28220
|
],
|
|
28123
28221
|
"usage": {},
|
|
28124
28222
|
"props": [
|
|
28223
|
+
{
|
|
28224
|
+
"name": "alignment",
|
|
28225
|
+
"type": "\"center\" | \"start\"",
|
|
28226
|
+
"complexType": {
|
|
28227
|
+
"original": "'start' | 'center'",
|
|
28228
|
+
"resolved": "\"center\" | \"start\"",
|
|
28229
|
+
"references": {}
|
|
28230
|
+
},
|
|
28231
|
+
"mutable": false,
|
|
28232
|
+
"attr": "alignment",
|
|
28233
|
+
"reflectToAttr": false,
|
|
28234
|
+
"docs": "How to control the alignment of the toggle and label on the cross axis.\n``\"start\"`: The label and control will appear on the left of the cross axis in LTR, and on the right side in RTL.\n`\"center\"`: The label and control will appear at the center of the cross axis in both LTR and RTL.",
|
|
28235
|
+
"docsTags": [],
|
|
28236
|
+
"default": "'center'",
|
|
28237
|
+
"values": [
|
|
28238
|
+
{
|
|
28239
|
+
"value": "center",
|
|
28240
|
+
"type": "string"
|
|
28241
|
+
},
|
|
28242
|
+
{
|
|
28243
|
+
"value": "start",
|
|
28244
|
+
"type": "string"
|
|
28245
|
+
}
|
|
28246
|
+
],
|
|
28247
|
+
"optional": false,
|
|
28248
|
+
"required": false
|
|
28249
|
+
},
|
|
28125
28250
|
{
|
|
28126
28251
|
"name": "checked",
|
|
28127
28252
|
"type": "boolean",
|
|
@@ -28290,16 +28415,16 @@
|
|
|
28290
28415
|
},
|
|
28291
28416
|
{
|
|
28292
28417
|
"name": "labelPlacement",
|
|
28293
|
-
"type": "\"end\" | \"fixed\" | \"start\"",
|
|
28418
|
+
"type": "\"end\" | \"fixed\" | \"stacked\" | \"start\"",
|
|
28294
28419
|
"complexType": {
|
|
28295
|
-
"original": "'start' | 'end' | 'fixed'",
|
|
28296
|
-
"resolved": "\"end\" | \"fixed\" | \"start\"",
|
|
28420
|
+
"original": "'start' | 'end' | 'fixed' | 'stacked'",
|
|
28421
|
+
"resolved": "\"end\" | \"fixed\" | \"stacked\" | \"start\"",
|
|
28297
28422
|
"references": {}
|
|
28298
28423
|
},
|
|
28299
28424
|
"mutable": false,
|
|
28300
28425
|
"attr": "label-placement",
|
|
28301
28426
|
"reflectToAttr": false,
|
|
28302
|
-
"docs": "Where to place the label relative to the input.\n`\"start\"`: The label will appear to the left of the toggle in LTR and to the right in RTL.\n`\"end\"`: The label will appear to the right of the toggle in LTR and to the left in RTL.\n`\"fixed\"`: The label has the same behavior as `\"start\"` except it also has a fixed width. Long text will be truncated with ellipses (\"...\").",
|
|
28427
|
+
"docs": "Where to place the label relative to the input.\n`\"start\"`: The label will appear to the left of the toggle in LTR and to the right in RTL.\n`\"end\"`: The label will appear to the right of the toggle in LTR and to the left in RTL.\n`\"fixed\"`: The label has the same behavior as `\"start\"` except it also has a fixed width. Long text will be truncated with ellipses (\"...\").\n`\"stacked\"`: The label will appear above the toggle regardless of the direction. The alignment of the label can be controlled with the `alignment` property.",
|
|
28303
28428
|
"docsTags": [],
|
|
28304
28429
|
"default": "'start'",
|
|
28305
28430
|
"values": [
|
|
@@ -28311,6 +28436,10 @@
|
|
|
28311
28436
|
"value": "fixed",
|
|
28312
28437
|
"type": "string"
|
|
28313
28438
|
},
|
|
28439
|
+
{
|
|
28440
|
+
"value": "stacked",
|
|
28441
|
+
"type": "string"
|
|
28442
|
+
},
|
|
28314
28443
|
{
|
|
28315
28444
|
"value": "start",
|
|
28316
28445
|
"type": "string"
|
|
@@ -29157,7 +29286,7 @@
|
|
|
29157
29286
|
"path": "src/components/toast/toast-interface.ts"
|
|
29158
29287
|
},
|
|
29159
29288
|
"src/components/toast/toast-interface.ts::ToastButton": {
|
|
29160
|
-
"declaration": "export interface ToastButton {\n text?: string;\n icon?: string;\n side?: 'start' | 'end';\n role?: 'cancel' | string;\n cssClass?: string | string[];\n htmlAttributes?: { [key: string]: any };\n handler?: () => boolean | void | Promise<boolean | void>;\n}",
|
|
29289
|
+
"declaration": "export interface ToastButton {\n text?: string;\n icon?: string;\n side?: 'start' | 'end';\n role?: 'cancel' | string;\n\n /**\n * @deprecated Use the toast button's CSS Shadow Parts instead.\n */\n cssClass?: string | string[];\n htmlAttributes?: { [key: string]: any };\n handler?: () => boolean | void | Promise<boolean | void>;\n}",
|
|
29161
29290
|
"docstring": "",
|
|
29162
29291
|
"path": "src/components/toast/toast-interface.ts"
|
|
29163
29292
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import { w as writeTask } from './index-
|
|
4
|
+
import { w as writeTask } from './index-847f2fde.js';
|
|
5
5
|
import { h as hapticSelectionEnd, a as hapticSelectionStart, b as hapticSelectionChanged } from './haptic-6447af60.js';
|
|
6
6
|
import { createGesture } from './index-ff313b19.js';
|
|
7
7
|
|
|
@@ -185,7 +185,22 @@ const getPartsFromCalendarDay = (el) => {
|
|
|
185
185
|
};
|
|
186
186
|
function parseDate(val) {
|
|
187
187
|
if (Array.isArray(val)) {
|
|
188
|
-
|
|
188
|
+
const parsedArray = [];
|
|
189
|
+
for (const valStr of val) {
|
|
190
|
+
const parsedVal = parseDate(valStr);
|
|
191
|
+
/**
|
|
192
|
+
* If any of the values weren't parsed correctly, consider
|
|
193
|
+
* the entire batch incorrect. This simplifies the type
|
|
194
|
+
* signatures by having "undefined" be a general error case
|
|
195
|
+
* instead of returning (Datetime | undefined)[], which is
|
|
196
|
+
* harder for TS to perform type narrowing on.
|
|
197
|
+
*/
|
|
198
|
+
if (!parsedVal) {
|
|
199
|
+
return undefined;
|
|
200
|
+
}
|
|
201
|
+
parsedArray.push(parsedVal);
|
|
202
|
+
}
|
|
203
|
+
return parsedArray;
|
|
189
204
|
}
|
|
190
205
|
// manually parse IS0 cuz Date.parse cannot be trusted
|
|
191
206
|
// ISO 8601 format: 1994-12-15T13:47:20Z
|
|
@@ -205,6 +220,7 @@ function parseDate(val) {
|
|
|
205
220
|
}
|
|
206
221
|
if (parse === null) {
|
|
207
222
|
// wasn't able to parse the ISO datetime
|
|
223
|
+
printIonWarning(`Unable to parse date string: ${val}. Please provide a valid ISO 8601 datetime string.`);
|
|
208
224
|
return undefined;
|
|
209
225
|
}
|
|
210
226
|
// ensure all the parse values exist with at least 0
|
|
@@ -1225,12 +1241,20 @@ const generateTime = (refParts, hourCycle = 'h12', minParts, maxParts, hourValue
|
|
|
1225
1241
|
* Given DatetimeParts, generate the previous,
|
|
1226
1242
|
* current, and and next months.
|
|
1227
1243
|
*/
|
|
1228
|
-
const generateMonths = (refParts) => {
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1244
|
+
const generateMonths = (refParts, forcedDate) => {
|
|
1245
|
+
const current = { month: refParts.month, year: refParts.year, day: refParts.day };
|
|
1246
|
+
/**
|
|
1247
|
+
* If we're forcing a month to appear, and it's different from the current month,
|
|
1248
|
+
* ensure it appears by replacing the next or previous month as appropriate.
|
|
1249
|
+
*/
|
|
1250
|
+
if (forcedDate !== undefined && (refParts.month !== forcedDate.month || refParts.year !== forcedDate.year)) {
|
|
1251
|
+
const forced = { month: forcedDate.month, year: forcedDate.year, day: forcedDate.day };
|
|
1252
|
+
const forcedMonthIsBefore = isBefore(forced, current);
|
|
1253
|
+
return forcedMonthIsBefore
|
|
1254
|
+
? [forced, current, getNextMonth(refParts)]
|
|
1255
|
+
: [getPreviousMonth(refParts), current, forced];
|
|
1256
|
+
}
|
|
1257
|
+
return [getPreviousMonth(refParts), current, getNextMonth(refParts)];
|
|
1234
1258
|
};
|
|
1235
1259
|
const getMonthColumnData = (locale, refParts, minParts, maxParts, monthValues, formatOptions = {
|
|
1236
1260
|
month: 'long',
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import { w as writeTask, B as Build } from './index-
|
|
4
|
+
import { w as writeTask, B as Build } from './index-847f2fde.js';
|
|
5
5
|
import { r as raf } from './helpers-3379ba19.js';
|
|
6
6
|
|
|
7
7
|
const LIFECYCLE_WILL_ENTER = 'ionViewWillEnter';
|
|
@@ -10,8 +10,8 @@ const LIFECYCLE_WILL_LEAVE = 'ionViewWillLeave';
|
|
|
10
10
|
const LIFECYCLE_DID_LEAVE = 'ionViewDidLeave';
|
|
11
11
|
const LIFECYCLE_WILL_UNLOAD = 'ionViewWillUnload';
|
|
12
12
|
|
|
13
|
-
const iosTransitionAnimation = () => import('./ios.transition-
|
|
14
|
-
const mdTransitionAnimation = () => import('./md.transition-
|
|
13
|
+
const iosTransitionAnimation = () => import('./ios.transition-3137d23e.js');
|
|
14
|
+
const mdTransitionAnimation = () => import('./md.transition-48b3b77c.js');
|
|
15
15
|
// TODO(FW-2832): types
|
|
16
16
|
const transition = (opts) => {
|
|
17
17
|
return new Promise((resolve, reject) => {
|
|
@@ -131,13 +131,13 @@ const h = (nodeName, vnodeData, ...children) => {
|
|
|
131
131
|
};
|
|
132
132
|
walk(children);
|
|
133
133
|
if (vnodeData) {
|
|
134
|
+
// normalize class / classname attributes
|
|
134
135
|
if (vnodeData.key) {
|
|
135
136
|
key = vnodeData.key;
|
|
136
137
|
}
|
|
137
138
|
if (vnodeData.name) {
|
|
138
139
|
slotName = vnodeData.name;
|
|
139
140
|
}
|
|
140
|
-
// normalize class / className attributes
|
|
141
141
|
{
|
|
142
142
|
const classData = vnodeData.className || vnodeData.class;
|
|
143
143
|
if (classData) {
|
|
@@ -383,7 +383,7 @@ const clientHydrate = (parentVNode, childRenderNodes, slotNodes, shadowRootNodes
|
|
|
383
383
|
}
|
|
384
384
|
}
|
|
385
385
|
else if (childVNode.$hostId$ === hostId) {
|
|
386
|
-
// this comment node is
|
|
386
|
+
// this comment node is specifcally for this host id
|
|
387
387
|
if (childNodeType === SLOT_NODE_ID) {
|
|
388
388
|
// `${SLOT_NODE_ID}.${hostId}.${nodeId}.${depth}.${index}.${slotName}`;
|
|
389
389
|
childVNode.$tag$ = 'slot';
|
|
@@ -1610,7 +1610,7 @@ const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
|
|
|
1610
1610
|
// has a different next sibling or parent relocated
|
|
1611
1611
|
if (nodeToRelocate !== insertBeforeNode) {
|
|
1612
1612
|
if (!nodeToRelocate['s-hn'] && nodeToRelocate['s-ol']) {
|
|
1613
|
-
// probably a component in the index.html that doesn't have
|
|
1613
|
+
// probably a component in the index.html that doesn't have it's hostname set
|
|
1614
1614
|
nodeToRelocate['s-hn'] = nodeToRelocate['s-ol'].parentNode.nodeName;
|
|
1615
1615
|
}
|
|
1616
1616
|
// add it back to the dom but in its new home
|
|
@@ -2014,12 +2014,12 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
|
|
|
2014
2014
|
// customElements.define('my-component', MyComponent);
|
|
2015
2015
|
// </script>
|
|
2016
2016
|
// ```
|
|
2017
|
-
// In this case if we do not
|
|
2017
|
+
// In this case if we do not unshadow here and use the value of the shadowing property, attributeChangedCallback
|
|
2018
2018
|
// will be called with `newValue = "some-value"` and will set the shadowed property (this.someAttribute = "another-value")
|
|
2019
2019
|
// to the value that was set inline i.e. "some-value" from above example. When
|
|
2020
|
-
// the connectedCallback attempts to
|
|
2020
|
+
// the connectedCallback attempts to unshadow it will use "some-value" as the initial value rather than "another-value"
|
|
2021
2021
|
//
|
|
2022
|
-
// The case where the attribute was NOT set inline but was not set programmatically shall be handled/
|
|
2022
|
+
// The case where the attribute was NOT set inline but was not set programmatically shall be handled/unshadowed
|
|
2023
2023
|
// by connectedCallback as this attributeChangedCallback will not fire.
|
|
2024
2024
|
//
|
|
2025
2025
|
// https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties
|