@ionic/core 7.3.4-dev.11694441708.198de185 → 7.3.4-dev.11694445679.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/action-sheet.js +2 -2
- package/components/button-active.js +1 -1
- package/components/button.js +2 -2
- package/components/buttons.js +2 -2
- 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/ion-back-button.js +2 -2
- package/components/ion-badge.js +2 -2
- package/components/ion-breadcrumb.js +2 -2
- package/components/ion-card-content.js +2 -2
- package/components/ion-card-subtitle.js +2 -2
- package/components/ion-card-title.js +2 -2
- package/components/ion-card.js +2 -2
- package/components/ion-chip.js +3 -8
- package/components/ion-datetime-button.js +5 -2
- package/components/ion-datetime.js +132 -92
- package/components/ion-header.js +1 -1
- package/components/ion-item-divider.js +2 -2
- package/components/ion-item-option.js +2 -2
- package/components/ion-item-options.js +2 -2
- package/components/ion-item-sliding.js +1 -1
- package/components/ion-loading.js +2 -2
- package/components/ion-menu-button.js +2 -2
- package/components/ion-menu.js +3 -3
- 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-reorder.js +2 -2
- package/components/ion-router-outlet.js +1 -1
- package/components/ion-searchbar.js +3 -9
- package/components/ion-segment.js +1 -1
- package/components/ion-textarea.js +2 -2
- package/components/ion-title.js +2 -2
- package/components/ion-toast.js +2 -2
- package/components/ion-toggle.js +7 -4
- package/components/ion-toolbar.js +2 -2
- package/components/ios.transition.js +5 -5
- package/components/item.js +2 -2
- package/components/label.js +2 -2
- package/components/list-header.js +2 -2
- package/components/md.transition.js +1 -1
- package/components/note.js +2 -2
- 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/css/core.css +0 -100
- package/css/core.css.map +1 -1
- package/css/display.css +0 -33
- package/css/display.css.map +1 -1
- package/css/float-elements.css +0 -33
- package/css/float-elements.css.map +1 -1
- package/css/global.bundle.css +6 -84
- package/css/global.bundle.css.map +1 -1
- package/css/ionic-swiper.css +0 -33
- package/css/ionic-swiper.css.map +1 -1
- package/css/ionic.bundle.css +1 -1
- package/css/ionic.bundle.css.map +1 -1
- package/css/padding.css +0 -33
- package/css/padding.css.map +1 -1
- package/css/structure.css +0 -33
- package/css/structure.css.map +1 -1
- package/css/text-alignment.css +0 -33
- package/css/text-alignment.css.map +1 -1
- package/css/text-transformation.css +0 -33
- package/css/text-transformation.css.map +1 -1
- package/css/typography.css +6 -51
- package/css/typography.css.map +1 -1
- package/css/utils.bundle.css +0 -165
- package/css/utils.bundle.css.map +1 -1
- package/dist/cjs/{data-967b9c15.js → data-db832785.js} +31 -7
- package/dist/cjs/{index-552c4df4.js → index-8568bedb.js} +2 -2
- package/dist/cjs/index.cjs.js +12 -11
- package/dist/cjs/ion-action-sheet.cjs.entry.js +2 -2
- package/dist/cjs/ion-app_8.cjs.entry.js +8 -8
- 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-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 +8 -8
- package/dist/cjs/ion-checkbox.cjs.entry.js +5 -3
- package/dist/cjs/ion-chip.cjs.entry.js +2 -7
- package/dist/cjs/ion-datetime-button.cjs.entry.js +6 -3
- package/dist/cjs/ion-datetime_3.cjs.entry.js +132 -93
- package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
- package/dist/cjs/ion-item_8.cjs.entry.js +10 -10
- package/dist/cjs/ion-loading.cjs.entry.js +2 -2
- package/dist/cjs/ion-menu_3.cjs.entry.js +4 -4
- package/dist/cjs/ion-modal.cjs.entry.js +1 -1
- package/dist/cjs/ion-nav_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-popover.cjs.entry.js +1 -1
- package/dist/cjs/ion-radio_2.cjs.entry.js +5 -3
- package/dist/cjs/ion-range.cjs.entry.js +2 -2
- package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-searchbar.cjs.entry.js +3 -9
- package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
- package/dist/cjs/ion-toast.cjs.entry.js +2 -2
- package/dist/cjs/ion-toggle.cjs.entry.js +5 -3
- package/dist/cjs/ionic.cjs.js +2 -2
- package/dist/cjs/{ios.transition-b53fc1d5.js → ios.transition-f7c78d7c.js} +5 -5
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{md.transition-d96426d5.js → md.transition-65dc7dce.js} +1 -1
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/accordion/accordion.ios.css +0 -66
- package/dist/collection/components/accordion/accordion.md.css +0 -33
- package/dist/collection/components/accordion-group/accordion-group.ios.css +0 -66
- package/dist/collection/components/accordion-group/accordion-group.md.css +0 -99
- package/dist/collection/components/action-sheet/action-sheet.ios.css +12 -80
- package/dist/collection/components/action-sheet/action-sheet.md.css +8 -76
- package/dist/collection/components/action-sheet/test/a11y/action-sheet.e2e.js +0 -27
- package/dist/collection/components/alert/alert.ios.css +0 -99
- package/dist/collection/components/alert/alert.md.css +0 -99
- package/dist/collection/components/avatar/avatar.ios.css +0 -66
- package/dist/collection/components/avatar/avatar.md.css +0 -66
- package/dist/collection/components/back-button/back-button.ios.css +1 -83
- package/dist/collection/components/back-button/back-button.md.css +3 -75
- package/dist/collection/components/backdrop/backdrop.ios.css +0 -66
- package/dist/collection/components/backdrop/backdrop.md.css +0 -66
- package/dist/collection/components/badge/badge.ios.css +1 -75
- package/dist/collection/components/badge/badge.md.css +1 -67
- package/dist/collection/components/breadcrumb/breadcrumb.ios.css +3 -80
- package/dist/collection/components/breadcrumb/breadcrumb.md.css +3 -69
- package/dist/collection/components/breadcrumbs/breadcrumbs.ios.css +0 -33
- package/dist/collection/components/breadcrumbs/breadcrumbs.md.css +0 -33
- package/dist/collection/components/breadcrumbs/test/a11y/breadcrumbs.e2e.js +0 -21
- package/dist/collection/components/button/button.ios.css +19 -118
- package/dist/collection/components/button/button.md.css +3 -69
- package/dist/collection/components/buttons/buttons.ios.css +3 -102
- package/dist/collection/components/buttons/buttons.md.css +2 -101
- package/dist/collection/components/card/card.ios.css +1 -67
- package/dist/collection/components/card/card.md.css +1 -67
- package/dist/collection/components/card-content/card-content.ios.css +5 -71
- package/dist/collection/components/card-content/card-content.md.css +5 -71
- package/dist/collection/components/card-header/card-header.ios.css +0 -66
- package/dist/collection/components/card-header/card-header.md.css +0 -66
- package/dist/collection/components/card-subtitle/card-subtitle.ios.css +1 -67
- package/dist/collection/components/card-subtitle/card-subtitle.md.css +1 -67
- package/dist/collection/components/card-title/card-title.ios.css +1 -67
- package/dist/collection/components/card-title/card-title.md.css +1 -67
- package/dist/collection/components/checkbox/checkbox.ios.css +35 -99
- package/dist/collection/components/checkbox/checkbox.js +24 -4
- package/dist/collection/components/checkbox/checkbox.md.css +35 -99
- 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/chip/{chip.md.css → chip.css} +7 -43
- package/dist/collection/components/chip/chip.js +2 -4
- package/dist/collection/components/col/col.css +0 -66
- package/dist/collection/components/content/content.css +0 -33
- package/dist/collection/components/datetime/datetime.ios.css +32 -95
- package/dist/collection/components/datetime/datetime.js +137 -93
- package/dist/collection/components/datetime/datetime.md.css +20 -94
- 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.css +2 -36
- package/dist/collection/components/datetime-button/datetime-button.js +3 -0
- package/dist/collection/components/fab/fab.css +0 -66
- package/dist/collection/components/fab-button/fab-button.ios.css +0 -66
- package/dist/collection/components/fab-button/fab-button.md.css +0 -66
- package/dist/collection/components/fab-list/fab-list.css +0 -66
- package/dist/collection/components/footer/footer.ios.css +0 -66
- package/dist/collection/components/footer/footer.md.css +0 -66
- package/dist/collection/components/grid/grid.css +0 -66
- package/dist/collection/components/header/header.ios.css +2 -71
- package/dist/collection/components/header/header.md.css +0 -66
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +0 -66
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +0 -66
- package/dist/collection/components/input/input.ios.css +0 -99
- package/dist/collection/components/input/input.md.css +0 -198
- package/dist/collection/components/item/item.ios.css +4 -70
- package/dist/collection/components/item/item.md.css +6 -138
- package/dist/collection/components/item/test/a11y/item.e2e.js +1 -116
- package/dist/collection/components/item-divider/item-divider.ios.css +9 -101
- package/dist/collection/components/item-divider/item-divider.md.css +11 -103
- package/dist/collection/components/item-group/item-group.ios.css +1 -68
- package/dist/collection/components/item-group/item-group.md.css +1 -68
- package/dist/collection/components/item-option/item-option.ios.css +1 -67
- package/dist/collection/components/item-option/item-option.md.css +1 -67
- package/dist/collection/components/item-options/item-options.ios.css +1 -99
- package/dist/collection/components/item-options/item-options.md.css +1 -99
- package/dist/collection/components/item-sliding/item-sliding.css +0 -33
- package/dist/collection/components/label/label.ios.css +6 -105
- package/dist/collection/components/label/label.md.css +5 -104
- package/dist/collection/components/list/list.ios.css +0 -99
- package/dist/collection/components/list/list.md.css +0 -99
- package/dist/collection/components/list-header/list-header.ios.css +1 -100
- package/dist/collection/components/list-header/list-header.md.css +1 -100
- package/dist/collection/components/loading/loading.ios.css +1 -67
- package/dist/collection/components/loading/loading.md.css +1 -67
- package/dist/collection/components/loading/test/a11y/loading.e2e.js +0 -19
- package/dist/collection/components/menu/menu.ios.css +94 -66
- package/dist/collection/components/menu/menu.md.css +94 -66
- package/dist/collection/components/menu-button/menu-button.ios.css +2 -70
- package/dist/collection/components/menu-button/menu-button.md.css +3 -71
- package/dist/collection/components/menu-button/test/a11y/menu-button.e2e.js +1 -20
- package/dist/collection/components/modal/modal.ios.css +0 -66
- package/dist/collection/components/modal/modal.md.css +0 -66
- package/dist/collection/components/nav/nav.css +0 -33
- package/dist/collection/components/note/note.ios.css +0 -67
- package/dist/collection/components/note/note.md.css +1 -67
- package/dist/collection/components/picker/picker.ios.css +0 -66
- package/dist/collection/components/picker/picker.md.css +0 -66
- package/dist/collection/components/picker-column/picker-column.ios.css +0 -66
- package/dist/collection/components/picker-column/picker-column.md.css +0 -66
- package/dist/collection/components/picker-column-internal/picker-column-internal.ios.css +0 -33
- package/dist/collection/components/picker-column-internal/picker-column-internal.md.css +0 -66
- package/dist/collection/components/picker-internal/picker-internal.ios.css +0 -66
- package/dist/collection/components/picker-internal/picker-internal.md.css +0 -66
- package/dist/collection/components/popover/popover.ios.css +0 -66
- package/dist/collection/components/popover/popover.md.css +0 -66
- package/dist/collection/components/progress-bar/progress-bar.ios.css +0 -33
- package/dist/collection/components/progress-bar/progress-bar.md.css +0 -33
- package/dist/collection/components/radio/radio.ios.css +33 -97
- package/dist/collection/components/radio/radio.js +24 -4
- package/dist/collection/components/radio/radio.md.css +33 -97
- 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 +46 -80
- package/dist/collection/components/range/range.js +3 -3
- package/dist/collection/components/range/range.md.css +49 -97
- package/dist/collection/components/range/test/a11y/range.e2e.js +0 -22
- package/dist/collection/components/range/test/label/range.e2e.js +48 -0
- package/dist/collection/components/refresher/refresher.ios.css +0 -66
- package/dist/collection/components/refresher/refresher.md.css +0 -66
- package/dist/collection/components/reorder/reorder.ios.css +2 -75
- package/dist/collection/components/reorder/reorder.md.css +2 -75
- package/dist/collection/components/reorder-group/reorder-group.css +0 -33
- package/dist/collection/components/ripple-effect/ripple-effect.css +0 -33
- package/dist/collection/components/router-link/router-link.css +0 -33
- package/dist/collection/components/router-outlet/router-outlet.css +0 -33
- package/dist/collection/components/router-outlet/router-outlet.js +6 -1
- package/dist/collection/components/row/row.css +0 -66
- package/dist/collection/components/searchbar/searchbar.ios.css +16 -95
- package/dist/collection/components/searchbar/searchbar.js +1 -7
- package/dist/collection/components/searchbar/searchbar.md.css +10 -77
- package/dist/collection/components/searchbar/test/basic/searchbar.e2e.js +0 -18
- package/dist/collection/components/segment/segment.ios.css +0 -99
- package/dist/collection/components/segment/segment.md.css +0 -99
- package/dist/collection/components/segment-button/segment-button.ios.css +0 -66
- package/dist/collection/components/segment-button/segment-button.md.css +0 -66
- package/dist/collection/components/select/select.ios.css +0 -99
- package/dist/collection/components/select/select.md.css +0 -165
- package/dist/collection/components/select-popover/select-popover.ios.css +1 -101
- package/dist/collection/components/select-popover/select-popover.md.css +0 -99
- package/dist/collection/components/skeleton-text/skeleton-text.css +0 -33
- package/dist/collection/components/spinner/spinner.css +0 -33
- package/dist/collection/components/split-pane/split-pane.ios.css +0 -99
- package/dist/collection/components/split-pane/split-pane.md.css +0 -99
- package/dist/collection/components/tab-bar/tab-bar.ios.css +0 -99
- package/dist/collection/components/tab-bar/tab-bar.md.css +0 -99
- package/dist/collection/components/tab-button/tab-button.ios.css +0 -66
- package/dist/collection/components/tab-button/tab-button.md.css +0 -66
- package/dist/collection/components/tabs/tabs.css +0 -33
- package/dist/collection/components/text/text.css +0 -33
- package/dist/collection/components/textarea/test/a11y/textarea.e2e.js +1 -15
- package/dist/collection/components/textarea/textarea.ios.css +1 -133
- package/dist/collection/components/textarea/textarea.md.css +1 -199
- package/dist/collection/components/thumbnail/thumbnail.css +0 -33
- package/dist/collection/components/title/title.ios.css +10 -43
- package/dist/collection/components/title/title.md.css +2 -35
- package/dist/collection/components/toast/test/a11y/toast.e2e.js +1 -98
- package/dist/collection/components/toast/toast.ios.css +3 -74
- package/dist/collection/components/toast/toast.md.css +4 -74
- 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 -100
- package/dist/collection/components/toggle/toggle.js +24 -4
- package/dist/collection/components/toggle/toggle.md.css +35 -100
- package/dist/collection/components/toolbar/toolbar.ios.css +16 -70
- package/dist/collection/components/toolbar/toolbar.md.css +2 -70
- package/dist/collection/index.js +1 -0
- package/dist/collection/utils/transition/ios.transition.js +4 -4
- package/dist/docs.json +155 -21
- package/dist/esm/{data-4b448e3a.js → data-009dbf15.js} +31 -7
- package/dist/esm/{index-2970aafc.js → index-6391de89.js} +2 -2
- package/dist/esm/index.js +4 -4
- package/dist/esm/ion-action-sheet.entry.js +2 -2
- package/dist/esm/ion-app_8.entry.js +8 -8
- package/dist/esm/ion-avatar_3.entry.js +2 -2
- package/dist/esm/ion-back-button.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 +8 -8
- package/dist/esm/ion-checkbox.entry.js +5 -3
- package/dist/esm/ion-chip.entry.js +2 -7
- package/dist/esm/ion-datetime-button.entry.js +6 -3
- package/dist/esm/ion-datetime_3.entry.js +132 -93
- package/dist/esm/ion-item-option_3.entry.js +4 -4
- package/dist/esm/ion-item_8.entry.js +10 -10
- package/dist/esm/ion-loading.entry.js +2 -2
- package/dist/esm/ion-menu_3.entry.js +4 -4
- package/dist/esm/ion-modal.entry.js +1 -1
- package/dist/esm/ion-nav_2.entry.js +1 -1
- package/dist/esm/ion-popover.entry.js +1 -1
- package/dist/esm/ion-radio_2.entry.js +5 -3
- package/dist/esm/ion-range.entry.js +2 -2
- package/dist/esm/ion-reorder_2.entry.js +2 -2
- package/dist/esm/ion-searchbar.entry.js +3 -9
- package/dist/esm/ion-textarea.entry.js +2 -2
- package/dist/esm/ion-toast.entry.js +2 -2
- package/dist/esm/ion-toggle.entry.js +5 -3
- package/dist/esm/ionic.js +2 -2
- package/dist/esm/{ios.transition-4e8d7fb7.js → ios.transition-3137d23e.js} +5 -5
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{md.transition-2b41d64c.js → md.transition-48b3b77c.js} +1 -1
- package/dist/esm-es5/data-009dbf15.js +4 -0
- package/dist/esm-es5/{index-2970aafc.js → index-6391de89.js} +1 -1
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/ion-action-sheet.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-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-datetime-button.entry.js +1 -1
- package/dist/esm-es5/ion-datetime_3.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-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-reorder_2.entry.js +1 -1
- package/dist/esm-es5/ion-searchbar.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-3137d23e.js +4 -0
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/{md.transition-2b41d64c.js → md.transition-48b3b77c.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-06902103.system.js +4 -0
- package/dist/ionic/{p-a5481fd3.system.entry.js → p-0b68c41d.system.entry.js} +1 -1
- package/dist/ionic/p-0cc2bf5a.system.entry.js +4 -0
- package/dist/ionic/p-11248f01.js +4 -0
- package/dist/ionic/p-1f4adf06.system.entry.js +4 -0
- package/dist/ionic/p-2061c86f.system.entry.js +4 -0
- package/dist/ionic/{p-80eed21b.entry.js → p-208f640c.entry.js} +1 -1
- package/dist/ionic/p-218b6f33.entry.js +4 -0
- package/dist/ionic/p-2da6ba37.system.entry.js +4 -0
- package/dist/ionic/p-341d5877.entry.js +4 -0
- package/dist/ionic/p-38dd9aec.entry.js +4 -0
- package/dist/ionic/p-40138199.entry.js +4 -0
- package/dist/ionic/p-430e902d.entry.js +4 -0
- package/dist/ionic/p-44ef7224.system.js +4 -0
- package/dist/ionic/p-48144921.entry.js +4 -0
- package/dist/ionic/p-4ca1ce6b.system.entry.js +4 -0
- package/dist/ionic/p-51b165af.system.js +4 -0
- package/dist/ionic/p-57f0efcc.entry.js +4 -0
- package/dist/ionic/p-5ba27716.system.entry.js +4 -0
- package/dist/ionic/{p-2e45dce9.system.entry.js → p-62324608.system.entry.js} +1 -1
- package/dist/ionic/{p-5d418c78.entry.js → p-653f2fc6.entry.js} +1 -1
- package/dist/ionic/p-67b891af.entry.js +4 -0
- package/dist/ionic/p-69303bb5.system.js +4 -0
- package/dist/ionic/p-6b3afb0f.entry.js +4 -0
- package/dist/ionic/p-6bf632d0.system.entry.js +4 -0
- package/dist/ionic/{p-c569a270.entry.js → p-728ac2b3.entry.js} +1 -1
- package/dist/ionic/p-7cfd253c.js +4 -0
- package/dist/ionic/p-82f5c07e.system.entry.js +4 -0
- package/dist/ionic/p-82f8ee51.entry.js +4 -0
- package/dist/ionic/p-83bcaec9.system.entry.js +4 -0
- package/dist/ionic/p-86c5c320.entry.js +4 -0
- package/dist/ionic/{p-586e0a90.system.entry.js → p-87383d00.system.entry.js} +1 -1
- package/dist/ionic/p-90ec5785.system.entry.js +4 -0
- package/dist/ionic/{p-eaede417.entry.js → p-98ebc376.entry.js} +1 -1
- package/dist/ionic/p-9c32000a.entry.js +4 -0
- package/dist/ionic/{p-1decbac2.js → p-a2b25750.js} +1 -1
- package/dist/ionic/p-a34669bf.system.entry.js +4 -0
- package/dist/ionic/p-a3f9d271.entry.js +4 -0
- package/dist/ionic/p-a62c0ff4.js +4 -0
- package/dist/ionic/p-af0bc751.system.entry.js +4 -0
- package/dist/ionic/p-af986299.system.entry.js +4 -0
- package/dist/ionic/p-b0e9e0b8.system.entry.js +4 -0
- package/dist/ionic/p-b321c999.entry.js +4 -0
- package/dist/ionic/p-bbae0ac3.system.entry.js +4 -0
- package/dist/ionic/p-bf4b8d8a.system.entry.js +4 -0
- package/dist/ionic/p-d5e3bff3.entry.js +4 -0
- package/dist/ionic/p-d8a0267b.system.entry.js +4 -0
- package/dist/ionic/p-dbb48066.system.entry.js +4 -0
- package/dist/ionic/p-dc49c681.system.entry.js +4 -0
- package/dist/ionic/{p-f7dcca6a.system.js → p-df6743df.system.js} +1 -1
- package/dist/ionic/p-e112994b.system.entry.js +4 -0
- package/dist/ionic/{p-f29fe8c3.system.js → p-e3d5608d.system.js} +1 -1
- package/dist/ionic/p-e805ff9f.system.entry.js +4 -0
- package/dist/ionic/p-ed7b205b.entry.js +4 -0
- package/dist/ionic/p-f5c19164.entry.js +4 -0
- package/dist/ionic/p-f9567c67.entry.js +4 -0
- package/dist/ionic/p-fa3327e8.system.entry.js +4 -0
- package/dist/ionic/{p-fbb2649b.entry.js → p-fabb7294.entry.js} +1 -1
- package/dist/ionic/{p-8eed522b.entry.js → p-fac1660b.entry.js} +1 -1
- package/dist/ionic/p-fe83e3e2.entry.js +4 -0
- 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/hydrate/index.js +345 -264
- package/package.json +3 -3
- package/dist/collection/components/back-button/test/a11y/back-button.e2e.js +0 -26
- package/dist/collection/components/badge/test/a11y/badge.e2e.js +0 -22
- package/dist/collection/components/button/test/a11y/button.e2e.js +0 -61
- package/dist/collection/components/buttons/test/a11y/buttons.e2e.js +0 -74
- package/dist/collection/components/card/test/a11y/card.e2e.js +0 -31
- package/dist/collection/components/chip/chip.ios.css +0 -190
- package/dist/collection/components/chip/test/a11y/chip.e2e.js +0 -58
- package/dist/collection/components/datetime-button/test/a11y/datetime-button.e2e.js +0 -38
- package/dist/collection/components/item-divider/test/a11y/item-divider.e2e.js +0 -44
- package/dist/collection/components/item-sliding/test/a11y/item-sliding.e2e.js +0 -34
- package/dist/collection/components/label/test/a11y/label.e2e.js +0 -66
- package/dist/collection/components/list-header/test/a11y/list-header.e2e.js +0 -24
- package/dist/collection/components/note/test/a11y/note.e2e.js +0 -52
- package/dist/collection/components/reorder-group/test/a11y/reorder-group.e2e.js +0 -33
- package/dist/collection/components/searchbar/test/a11y/searchbar.e2e.js +0 -37
- package/dist/collection/components/title/test/a11y/title.e2e.js +0 -61
- package/dist/collection/css/test/a11y/typography.e2e.js +0 -32
- package/dist/esm-es5/data-4b448e3a.js +0 -4
- package/dist/esm-es5/ios.transition-4e8d7fb7.js +0 -4
- package/dist/ionic/p-0053fe81.system.entry.js +0 -4
- package/dist/ionic/p-060aa1aa.entry.js +0 -4
- package/dist/ionic/p-0e4377e6.system.entry.js +0 -4
- package/dist/ionic/p-1e5f9f20.entry.js +0 -4
- package/dist/ionic/p-2c012642.entry.js +0 -4
- package/dist/ionic/p-2cdcd6f2.entry.js +0 -4
- package/dist/ionic/p-2f4e5cd6.system.entry.js +0 -4
- package/dist/ionic/p-2f6fbeab.system.entry.js +0 -4
- package/dist/ionic/p-39bf6a89.js +0 -4
- package/dist/ionic/p-418fc6f2.system.entry.js +0 -4
- package/dist/ionic/p-468ac44a.system.entry.js +0 -4
- package/dist/ionic/p-5009cb46.entry.js +0 -4
- package/dist/ionic/p-5b88f780.entry.js +0 -4
- package/dist/ionic/p-5e8d7def.system.entry.js +0 -4
- package/dist/ionic/p-601fd53c.js +0 -4
- package/dist/ionic/p-65105512.entry.js +0 -4
- package/dist/ionic/p-66d2ef38.entry.js +0 -4
- package/dist/ionic/p-721933ff.system.js +0 -4
- package/dist/ionic/p-7ea1a467.system.js +0 -4
- package/dist/ionic/p-80b152fd.system.entry.js +0 -4
- package/dist/ionic/p-89d96720.entry.js +0 -4
- package/dist/ionic/p-91f9a6aa.system.entry.js +0 -4
- package/dist/ionic/p-94f99a8b.entry.js +0 -4
- package/dist/ionic/p-985d547d.system.entry.js +0 -4
- package/dist/ionic/p-98b618ce.system.entry.js +0 -4
- package/dist/ionic/p-9e306450.system.entry.js +0 -4
- package/dist/ionic/p-b03dae0c.system.entry.js +0 -4
- package/dist/ionic/p-b062bc29.entry.js +0 -4
- package/dist/ionic/p-b0b8c0c9.system.entry.js +0 -4
- package/dist/ionic/p-b3394798.system.entry.js +0 -4
- package/dist/ionic/p-bc8b9c38.system.entry.js +0 -4
- package/dist/ionic/p-c4aea998.entry.js +0 -4
- package/dist/ionic/p-c64711cc.entry.js +0 -4
- package/dist/ionic/p-c9fd7db5.system.entry.js +0 -4
- package/dist/ionic/p-caa4c0fa.entry.js +0 -4
- package/dist/ionic/p-cc8910e7.system.js +0 -4
- package/dist/ionic/p-cd4b6518.system.js +0 -4
- package/dist/ionic/p-d1e6b365.entry.js +0 -4
- package/dist/ionic/p-d4044209.system.entry.js +0 -4
- package/dist/ionic/p-d6de281e.entry.js +0 -4
- package/dist/ionic/p-e497d6a5.js +0 -4
- package/dist/ionic/p-e53b8af4.system.entry.js +0 -4
- package/dist/ionic/p-f1e5e368.system.entry.js +0 -4
- package/dist/ionic/p-f2b925a2.system.entry.js +0 -4
- package/dist/ionic/p-f78e60a5.entry.js +0 -4
- package/dist/ionic/p-f902ddc6.entry.js +0 -4
- package/dist/ionic/p-f9ec8c18.entry.js +0 -4
- package/dist/ionic/p-fade59a2.system.entry.js +0 -4
|
@@ -1,36 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Convert a font size to a dynamic font size.
|
|
3
|
-
* Fonts that participate in Dynamic Type should use
|
|
4
|
-
* dynamic font sizes.
|
|
5
|
-
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
6
|
-
* @param unit (optional) - The unit to convert to. Use this if you want to
|
|
7
|
-
* convert to a unit other than $baselineUnit.
|
|
8
|
-
*/
|
|
9
|
-
/**
|
|
10
|
-
* Convert a font size to a dynamic font size but impose
|
|
11
|
-
* a maximum font size.
|
|
12
|
-
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
13
|
-
* @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
|
|
14
|
-
* @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
|
|
15
|
-
* convert to a unit other than $baselineUnit.
|
|
16
|
-
*/
|
|
17
|
-
/**
|
|
18
|
-
* Convert a font size to a dynamic font size but impose
|
|
19
|
-
* a minimum font size.
|
|
20
|
-
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
21
|
-
* @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
|
|
22
|
-
* @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
|
|
23
|
-
* convert to a unit other than $baselineUnit.
|
|
24
|
-
*/
|
|
25
|
-
/**
|
|
26
|
-
* Convert a font size to a dynamic font size but impose
|
|
27
|
-
* maximum and minimum font sizes.
|
|
28
|
-
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
29
|
-
* @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
|
|
30
|
-
* @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
|
|
31
|
-
* @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
|
|
32
|
-
* convert to a unit other than $baselineUnit.
|
|
33
|
-
*/
|
|
34
1
|
:host {
|
|
35
2
|
/**
|
|
36
3
|
* @prop --background: The primary background of the datetime component.
|
|
@@ -314,6 +281,8 @@ ion-picker-column-internal {
|
|
|
314
281
|
}
|
|
315
282
|
|
|
316
283
|
:host .calendar-body .calendar-month {
|
|
284
|
+
display: flex;
|
|
285
|
+
flex-flow: column;
|
|
317
286
|
/**
|
|
318
287
|
* Swiping should snap to at
|
|
319
288
|
* most one month at a time.
|
|
@@ -347,11 +316,21 @@ ion-picker-column-internal {
|
|
|
347
316
|
grid-template-columns: repeat(7, 1fr);
|
|
348
317
|
}
|
|
349
318
|
|
|
319
|
+
:host .calendar-day-wrapper {
|
|
320
|
+
display: flex;
|
|
321
|
+
align-items: center;
|
|
322
|
+
justify-content: center;
|
|
323
|
+
min-width: 0;
|
|
324
|
+
min-height: 0;
|
|
325
|
+
overflow: visible;
|
|
326
|
+
}
|
|
327
|
+
|
|
350
328
|
/**
|
|
351
329
|
* Center the day text vertically
|
|
352
330
|
* and horizontally within its grid cell.
|
|
353
331
|
*/
|
|
354
332
|
:host .calendar-day {
|
|
333
|
+
border-radius: 50%;
|
|
355
334
|
-webkit-padding-start: 0px;
|
|
356
335
|
padding-inline-start: 0px;
|
|
357
336
|
-webkit-padding-end: 0px;
|
|
@@ -383,18 +362,9 @@ ion-picker-column-internal {
|
|
|
383
362
|
opacity: 0.4;
|
|
384
363
|
}
|
|
385
364
|
|
|
386
|
-
.calendar-day
|
|
387
|
-
|
|
388
|
-
-
|
|
389
|
-
padding-inline-start: 4px;
|
|
390
|
-
-webkit-padding-end: 4px;
|
|
391
|
-
padding-inline-end: 4px;
|
|
392
|
-
padding-top: 4px;
|
|
393
|
-
padding-bottom: 4px;
|
|
394
|
-
position: absolute;
|
|
395
|
-
width: 32px;
|
|
396
|
-
height: 32px;
|
|
397
|
-
z-index: -1;
|
|
365
|
+
.calendar-day:focus {
|
|
366
|
+
background: rgba(var(--ion-color-base-rgb), 0.2);
|
|
367
|
+
box-shadow: 0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2);
|
|
398
368
|
}
|
|
399
369
|
|
|
400
370
|
:host .datetime-time {
|
|
@@ -448,39 +418,6 @@ ion-picker-column-internal {
|
|
|
448
418
|
--color: var(--ion-color-base);
|
|
449
419
|
}
|
|
450
420
|
|
|
451
|
-
/**
|
|
452
|
-
* Convert a font size to a dynamic font size.
|
|
453
|
-
* Fonts that participate in Dynamic Type should use
|
|
454
|
-
* dynamic font sizes.
|
|
455
|
-
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
456
|
-
* @param unit (optional) - The unit to convert to. Use this if you want to
|
|
457
|
-
* convert to a unit other than $baselineUnit.
|
|
458
|
-
*/
|
|
459
|
-
/**
|
|
460
|
-
* Convert a font size to a dynamic font size but impose
|
|
461
|
-
* a maximum font size.
|
|
462
|
-
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
463
|
-
* @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
|
|
464
|
-
* @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
|
|
465
|
-
* convert to a unit other than $baselineUnit.
|
|
466
|
-
*/
|
|
467
|
-
/**
|
|
468
|
-
* Convert a font size to a dynamic font size but impose
|
|
469
|
-
* a minimum font size.
|
|
470
|
-
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
471
|
-
* @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
|
|
472
|
-
* @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
|
|
473
|
-
* convert to a unit other than $baselineUnit.
|
|
474
|
-
*/
|
|
475
|
-
/**
|
|
476
|
-
* Convert a font size to a dynamic font size but impose
|
|
477
|
-
* maximum and minimum font sizes.
|
|
478
|
-
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
479
|
-
* @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
|
|
480
|
-
* @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
|
|
481
|
-
* @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
|
|
482
|
-
* convert to a unit other than $baselineUnit.
|
|
483
|
-
*/
|
|
484
421
|
:host {
|
|
485
422
|
--background: var(--ion-color-light, #ffffff);
|
|
486
423
|
--background-rgb: var(--ion-color-light-rgb);
|
|
@@ -567,25 +504,30 @@ ion-picker-column-internal {
|
|
|
567
504
|
padding-inline-end: 8px;
|
|
568
505
|
padding-top: 8px;
|
|
569
506
|
padding-bottom: 8px;
|
|
507
|
+
align-items: center;
|
|
570
508
|
height: calc(100% - 16px);
|
|
571
509
|
}
|
|
572
510
|
|
|
573
|
-
:host .calendar-day {
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
511
|
+
:host .calendar-day-wrapper {
|
|
512
|
+
-webkit-padding-start: 4px;
|
|
513
|
+
padding-inline-start: 4px;
|
|
514
|
+
-webkit-padding-end: 4px;
|
|
515
|
+
padding-inline-end: 4px;
|
|
516
|
+
padding-top: 4px;
|
|
517
|
+
padding-bottom: 4px;
|
|
518
|
+
height: 0;
|
|
519
|
+
min-height: 16px;
|
|
580
520
|
}
|
|
581
521
|
|
|
582
|
-
|
|
583
|
-
|
|
522
|
+
:host .calendar-day {
|
|
523
|
+
width: 40px;
|
|
524
|
+
min-width: 40px;
|
|
525
|
+
height: 40px;
|
|
526
|
+
font-size: 20px;
|
|
584
527
|
}
|
|
585
528
|
|
|
586
|
-
.calendar-day
|
|
587
|
-
|
|
588
|
-
background: var(--ion-color-base) !important;
|
|
529
|
+
.calendar-day.calendar-day-active {
|
|
530
|
+
background: rgba(var(--ion-color-base-rgb), 0.2);
|
|
589
531
|
}
|
|
590
532
|
|
|
591
533
|
/**
|
|
@@ -614,11 +556,6 @@ ion-picker-column-internal {
|
|
|
614
556
|
color: var(--ion-color-contrast);
|
|
615
557
|
}
|
|
616
558
|
|
|
617
|
-
.calendar-day.calendar-day-today.calendar-day-active .calendar-day-highlight {
|
|
618
|
-
background: var(--ion-color-base);
|
|
619
|
-
opacity: 1;
|
|
620
|
-
}
|
|
621
|
-
|
|
622
559
|
:host .datetime-time {
|
|
623
560
|
-webkit-padding-start: 16px;
|
|
624
561
|
padding-inline-start: 16px;
|
|
@@ -33,16 +33,17 @@ import { getCalendarDayState, getHighlightStyles, isDayDisabled, isMonthDisabled
|
|
|
33
33
|
*
|
|
34
34
|
* @part month-year-button - The button that opens the month/year picker when
|
|
35
35
|
* using a grid style layout.
|
|
36
|
+
*
|
|
37
|
+
* @part calendar-day - The individual buttons that display a day inside of the datetime
|
|
38
|
+
* calendar.
|
|
39
|
+
* @part calendar-day active - The currently selected calendar day.
|
|
40
|
+
* @part calendar-day today - The calendar day that contains the current day.
|
|
41
|
+
* @part calendar-day disabled - The calendar day that is disabled.
|
|
36
42
|
*/
|
|
37
43
|
export class Datetime {
|
|
38
44
|
constructor() {
|
|
39
45
|
this.inputId = `ion-dt-${datetimeIds++}`;
|
|
40
46
|
this.prevPresentation = null;
|
|
41
|
-
/**
|
|
42
|
-
* Duplicate reference to `activeParts` that does not trigger a re-render of the component.
|
|
43
|
-
* Allows caching an instance of the `activeParts` in between render cycles.
|
|
44
|
-
*/
|
|
45
|
-
this.activePartsClone = [];
|
|
46
47
|
this.warnIfIncorrectValueUsage = () => {
|
|
47
48
|
const { multiple, value } = this;
|
|
48
49
|
if (!multiple && Array.isArray(value)) {
|
|
@@ -70,9 +71,9 @@ export class Datetime {
|
|
|
70
71
|
* data. This should be used when rendering an
|
|
71
72
|
* interface in an environment where the `value`
|
|
72
73
|
* may not be set. This function works
|
|
73
|
-
* by returning the first selected date
|
|
74
|
-
*
|
|
75
|
-
*
|
|
74
|
+
* by returning the first selected date and then
|
|
75
|
+
* falling back to defaultParts if no active date
|
|
76
|
+
* is selected.
|
|
76
77
|
*/
|
|
77
78
|
this.getActivePartsWithFallback = () => {
|
|
78
79
|
var _a;
|
|
@@ -80,8 +81,8 @@ export class Datetime {
|
|
|
80
81
|
return (_a = this.getActivePart()) !== null && _a !== void 0 ? _a : defaultParts;
|
|
81
82
|
};
|
|
82
83
|
this.getActivePart = () => {
|
|
83
|
-
const {
|
|
84
|
-
return Array.isArray(
|
|
84
|
+
const { activeParts } = this;
|
|
85
|
+
return Array.isArray(activeParts) ? activeParts[0] : activeParts;
|
|
85
86
|
};
|
|
86
87
|
this.closeParentOverlay = () => {
|
|
87
88
|
const popoverOrModal = this.el.closest('ion-modal, ion-popover');
|
|
@@ -93,7 +94,7 @@ export class Datetime {
|
|
|
93
94
|
this.workingParts = Object.assign({}, parts);
|
|
94
95
|
};
|
|
95
96
|
this.setActiveParts = (parts, removeDate = false) => {
|
|
96
|
-
const { multiple, minParts, maxParts,
|
|
97
|
+
const { multiple, minParts, maxParts, activeParts } = this;
|
|
97
98
|
/**
|
|
98
99
|
* When setting the active parts, it is possible
|
|
99
100
|
* to set invalid data. For example,
|
|
@@ -107,16 +108,7 @@ export class Datetime {
|
|
|
107
108
|
const validatedParts = validateParts(parts, minParts, maxParts);
|
|
108
109
|
this.setWorkingParts(validatedParts);
|
|
109
110
|
if (multiple) {
|
|
110
|
-
|
|
111
|
-
* We read from activePartsClone here because valueChanged() only updates that,
|
|
112
|
-
* so it's the more reliable source of truth. If we read from activeParts, then
|
|
113
|
-
* if you click July 1, manually set the value to July 2, and then click July 3,
|
|
114
|
-
* the new value would be [July 1, July 3], ignoring the value set.
|
|
115
|
-
*
|
|
116
|
-
* We can then pass the new value to activeParts (rather than activePartsClone)
|
|
117
|
-
* since the clone will be updated automatically by activePartsChanged().
|
|
118
|
-
*/
|
|
119
|
-
const activePartsArray = Array.isArray(activePartsClone) ? activePartsClone : [activePartsClone];
|
|
111
|
+
const activePartsArray = Array.isArray(activeParts) ? activeParts : [activeParts];
|
|
120
112
|
if (removeDate) {
|
|
121
113
|
this.activeParts = activePartsArray.filter((p) => !isSameDay(p, validatedParts));
|
|
122
114
|
}
|
|
@@ -241,7 +233,7 @@ export class Datetime {
|
|
|
241
233
|
/**
|
|
242
234
|
* Get the number of padding days so
|
|
243
235
|
* we know how much to offset our next selector by
|
|
244
|
-
* to grab the correct
|
|
236
|
+
* to grab the correct calendar-day element.
|
|
245
237
|
*/
|
|
246
238
|
const padding = currentMonth.querySelectorAll('.calendar-day-padding');
|
|
247
239
|
const { day } = this.workingParts;
|
|
@@ -252,7 +244,7 @@ export class Datetime {
|
|
|
252
244
|
* Get the calendar day element
|
|
253
245
|
* and focus it.
|
|
254
246
|
*/
|
|
255
|
-
const dayEl = currentMonth.querySelector(`.calendar-day:nth-of-type(${padding.length + day})`);
|
|
247
|
+
const dayEl = currentMonth.querySelector(`.calendar-day-wrapper:nth-of-type(${padding.length + day}) .calendar-day`);
|
|
256
248
|
if (dayEl) {
|
|
257
249
|
dayEl.focus();
|
|
258
250
|
}
|
|
@@ -333,6 +325,19 @@ export class Datetime {
|
|
|
333
325
|
const monthBox = month.getBoundingClientRect();
|
|
334
326
|
if (Math.abs(monthBox.x - box.x) > 2)
|
|
335
327
|
return;
|
|
328
|
+
/**
|
|
329
|
+
* If we're force-rendering a month, assume we've
|
|
330
|
+
* scrolled to that and return it.
|
|
331
|
+
*
|
|
332
|
+
* If forceRenderDate is ever used in a context where the
|
|
333
|
+
* forced month is not immediately auto-scrolled to, this
|
|
334
|
+
* should be updated to also check whether `month` has the
|
|
335
|
+
* same month and year as the forced date.
|
|
336
|
+
*/
|
|
337
|
+
const { forceRenderDate } = this;
|
|
338
|
+
if (forceRenderDate !== undefined) {
|
|
339
|
+
return { month: forceRenderDate.month, year: forceRenderDate.year, day: forceRenderDate.day };
|
|
340
|
+
}
|
|
336
341
|
/**
|
|
337
342
|
* From here, we can determine if the start
|
|
338
343
|
* month or the end month was scrolled into view.
|
|
@@ -387,6 +392,9 @@ export class Datetime {
|
|
|
387
392
|
this.setWorkingParts(Object.assign(Object.assign({}, this.workingParts), { month, day: day, year }));
|
|
388
393
|
calendarBodyRef.scrollLeft = workingMonth.clientWidth * (isRTL(this.el) ? -1 : 1);
|
|
389
394
|
calendarBodyRef.style.removeProperty('overflow');
|
|
395
|
+
if (this.resolveForceDateScrolling) {
|
|
396
|
+
this.resolveForceDateScrolling();
|
|
397
|
+
}
|
|
390
398
|
});
|
|
391
399
|
};
|
|
392
400
|
/**
|
|
@@ -441,10 +449,17 @@ export class Datetime {
|
|
|
441
449
|
}
|
|
442
450
|
};
|
|
443
451
|
this.processValue = (value) => {
|
|
444
|
-
const hasValue = value !== null && value !== undefined;
|
|
452
|
+
const hasValue = value !== null && value !== undefined && (!Array.isArray(value) || value.length > 0);
|
|
445
453
|
const valueToProcess = hasValue ? parseDate(value) : this.defaultParts;
|
|
446
|
-
const { minParts, maxParts } = this;
|
|
454
|
+
const { minParts, maxParts, workingParts, el } = this;
|
|
447
455
|
this.warnIfIncorrectValueUsage();
|
|
456
|
+
/**
|
|
457
|
+
* Return early if the value wasn't parsed correctly, such as
|
|
458
|
+
* if an improperly formatted date string was provided.
|
|
459
|
+
*/
|
|
460
|
+
if (!valueToProcess) {
|
|
461
|
+
return;
|
|
462
|
+
}
|
|
448
463
|
/**
|
|
449
464
|
* Datetime should only warn of out of bounds values
|
|
450
465
|
* if set by the user. If the `value` is undefined,
|
|
@@ -462,16 +477,9 @@ export class Datetime {
|
|
|
462
477
|
* that the values don't necessarily have to be in order.
|
|
463
478
|
*/
|
|
464
479
|
const singleValue = Array.isArray(valueToProcess) ? valueToProcess[0] : valueToProcess;
|
|
465
|
-
const
|
|
480
|
+
const targetValue = clampDate(singleValue, minParts, maxParts);
|
|
481
|
+
const { month, day, year, hour, minute } = targetValue;
|
|
466
482
|
const ampm = parseAmPm(hour);
|
|
467
|
-
this.setWorkingParts({
|
|
468
|
-
month,
|
|
469
|
-
day,
|
|
470
|
-
year,
|
|
471
|
-
hour,
|
|
472
|
-
minute,
|
|
473
|
-
ampm,
|
|
474
|
-
});
|
|
475
483
|
/**
|
|
476
484
|
* Since `activeParts` indicates a value that
|
|
477
485
|
* been explicitly selected either by the
|
|
@@ -501,6 +509,62 @@ export class Datetime {
|
|
|
501
509
|
*/
|
|
502
510
|
this.activeParts = [];
|
|
503
511
|
}
|
|
512
|
+
/**
|
|
513
|
+
* Only animate if:
|
|
514
|
+
* 1. We're using grid style (wheel style pickers should just jump to new value)
|
|
515
|
+
* 2. The month and/or year actually changed, and both are defined (otherwise there's nothing to animate to)
|
|
516
|
+
* 3. The calendar body is visible (prevents animation when in collapsed datetime-button, for example)
|
|
517
|
+
* 4. The month/year picker is not open (since you wouldn't see the animation anyway)
|
|
518
|
+
*/
|
|
519
|
+
const didChangeMonth = (month !== undefined && month !== workingParts.month) || (year !== undefined && year !== workingParts.year);
|
|
520
|
+
const bodyIsVisible = el.classList.contains('datetime-ready');
|
|
521
|
+
const { isGridStyle, showMonthAndYear } = this;
|
|
522
|
+
if (isGridStyle && didChangeMonth && bodyIsVisible && !showMonthAndYear) {
|
|
523
|
+
this.animateToDate(targetValue);
|
|
524
|
+
}
|
|
525
|
+
else {
|
|
526
|
+
/**
|
|
527
|
+
* We only need to do this if we didn't just animate to a new month,
|
|
528
|
+
* since that calls prevMonth/nextMonth which calls setWorkingParts for us.
|
|
529
|
+
*/
|
|
530
|
+
this.setWorkingParts({
|
|
531
|
+
month,
|
|
532
|
+
day,
|
|
533
|
+
year,
|
|
534
|
+
hour,
|
|
535
|
+
minute,
|
|
536
|
+
ampm,
|
|
537
|
+
});
|
|
538
|
+
}
|
|
539
|
+
};
|
|
540
|
+
this.animateToDate = async (targetValue) => {
|
|
541
|
+
const { workingParts } = this;
|
|
542
|
+
/**
|
|
543
|
+
* Tell other render functions that we need to force the
|
|
544
|
+
* target month to appear in place of the actual next/prev month.
|
|
545
|
+
* Because this is a State variable, a rerender will be triggered
|
|
546
|
+
* automatically, updating the rendered months.
|
|
547
|
+
*/
|
|
548
|
+
this.forceRenderDate = targetValue;
|
|
549
|
+
/**
|
|
550
|
+
* Flag that we've started scrolling to the forced date.
|
|
551
|
+
* The resolve function will be called by the datetime's
|
|
552
|
+
* scroll listener when it's done updating everything.
|
|
553
|
+
* This is a replacement for making prev/nextMonth async,
|
|
554
|
+
* since the logic we're waiting on is in a listener.
|
|
555
|
+
*/
|
|
556
|
+
const forceDateScrollingPromise = new Promise((resolve) => {
|
|
557
|
+
this.resolveForceDateScrolling = resolve;
|
|
558
|
+
});
|
|
559
|
+
/**
|
|
560
|
+
* Animate smoothly to the forced month. This will also update
|
|
561
|
+
* workingParts and correct the surrounding months for us.
|
|
562
|
+
*/
|
|
563
|
+
const targetMonthIsBefore = isBefore(targetValue, workingParts);
|
|
564
|
+
targetMonthIsBefore ? this.prevMonth() : this.nextMonth();
|
|
565
|
+
await forceDateScrollingPromise;
|
|
566
|
+
this.resolveForceDateScrolling = undefined;
|
|
567
|
+
this.forceRenderDate = undefined;
|
|
504
568
|
};
|
|
505
569
|
this.onFocus = () => {
|
|
506
570
|
this.ionFocus.emit();
|
|
@@ -556,6 +620,7 @@ export class Datetime {
|
|
|
556
620
|
ampm: 'pm',
|
|
557
621
|
};
|
|
558
622
|
this.isTimePopoverOpen = false;
|
|
623
|
+
this.forceRenderDate = undefined;
|
|
559
624
|
this.color = 'primary';
|
|
560
625
|
this.name = this.inputId;
|
|
561
626
|
this.disabled = false;
|
|
@@ -595,6 +660,11 @@ export class Datetime {
|
|
|
595
660
|
maxChanged() {
|
|
596
661
|
this.processMaxParts();
|
|
597
662
|
}
|
|
663
|
+
get isGridStyle() {
|
|
664
|
+
const { presentation, preferWheel } = this;
|
|
665
|
+
const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
|
|
666
|
+
return hasDatePresentation && !preferWheel;
|
|
667
|
+
}
|
|
598
668
|
yearValuesChanged() {
|
|
599
669
|
this.parsedYearValues = convertToArrayOfNumbers(this.yearValues);
|
|
600
670
|
}
|
|
@@ -610,51 +680,13 @@ export class Datetime {
|
|
|
610
680
|
minuteValuesChanged() {
|
|
611
681
|
this.parsedMinuteValues = convertToArrayOfNumbers(this.minuteValues);
|
|
612
682
|
}
|
|
613
|
-
activePartsChanged() {
|
|
614
|
-
this.activePartsClone = this.activeParts;
|
|
615
|
-
}
|
|
616
683
|
/**
|
|
617
684
|
* Update the datetime value when the value changes
|
|
618
685
|
*/
|
|
619
|
-
valueChanged() {
|
|
620
|
-
const { value
|
|
686
|
+
async valueChanged() {
|
|
687
|
+
const { value } = this;
|
|
621
688
|
if (this.hasValue()) {
|
|
622
|
-
this.
|
|
623
|
-
/**
|
|
624
|
-
* Clones the value of the `activeParts` to the private clone, to update
|
|
625
|
-
* the date display on the current render cycle without causing another render.
|
|
626
|
-
*
|
|
627
|
-
* This allows us to update the current value's date/time display without
|
|
628
|
-
* refocusing or shifting the user's display (leaves the user in place).
|
|
629
|
-
*/
|
|
630
|
-
const valueDateParts = parseDate(value);
|
|
631
|
-
if (valueDateParts) {
|
|
632
|
-
warnIfValueOutOfBounds(valueDateParts, minParts, maxParts);
|
|
633
|
-
if (Array.isArray(valueDateParts)) {
|
|
634
|
-
this.activePartsClone = [...valueDateParts];
|
|
635
|
-
}
|
|
636
|
-
else {
|
|
637
|
-
const { month, day, year, hour, minute } = valueDateParts;
|
|
638
|
-
const ampm = hour != null ? (hour >= 12 ? 'pm' : 'am') : undefined;
|
|
639
|
-
this.activePartsClone = Object.assign(Object.assign({}, this.activeParts), { month,
|
|
640
|
-
day,
|
|
641
|
-
year,
|
|
642
|
-
hour,
|
|
643
|
-
minute,
|
|
644
|
-
ampm });
|
|
645
|
-
/**
|
|
646
|
-
* The working parts am/pm value must be updated when the value changes, to
|
|
647
|
-
* ensure the time picker hour column values are generated correctly.
|
|
648
|
-
*
|
|
649
|
-
* Note that we don't need to do this if valueDateParts is an array, since
|
|
650
|
-
* multiple="true" does not apply to time pickers.
|
|
651
|
-
*/
|
|
652
|
-
this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { ampm }));
|
|
653
|
-
}
|
|
654
|
-
}
|
|
655
|
-
else {
|
|
656
|
-
printIonWarning(`Unable to parse date string: ${value}. Please provide a valid ISO 8601 datetime string.`);
|
|
657
|
-
}
|
|
689
|
+
this.processValue(value);
|
|
658
690
|
}
|
|
659
691
|
this.emitStyle();
|
|
660
692
|
this.ionValueChange.emit({ value });
|
|
@@ -857,8 +889,6 @@ export class Datetime {
|
|
|
857
889
|
printIonWarning('The highlightedDates property is not supported with preferWheel="true".', el);
|
|
858
890
|
}
|
|
859
891
|
}
|
|
860
|
-
this.processMinParts();
|
|
861
|
-
this.processMaxParts();
|
|
862
892
|
const hourValues = (this.parsedHourValues = convertToArrayOfNumbers(this.hourValues));
|
|
863
893
|
const minuteValues = (this.parsedMinuteValues = convertToArrayOfNumbers(this.minuteValues));
|
|
864
894
|
const monthValues = (this.parsedMonthValues = convertToArrayOfNumbers(this.monthValues));
|
|
@@ -866,6 +896,8 @@ export class Datetime {
|
|
|
866
896
|
const dayValues = (this.parsedDayValues = convertToArrayOfNumbers(this.dayValues));
|
|
867
897
|
const todayParts = (this.todayParts = parseDate(getToday()));
|
|
868
898
|
this.defaultParts = getClosestValidDate(todayParts, monthValues, dayValues, yearValues, hourValues, minuteValues);
|
|
899
|
+
this.processMinParts();
|
|
900
|
+
this.processMaxParts();
|
|
869
901
|
this.processValue(this.value);
|
|
870
902
|
this.emitStyle();
|
|
871
903
|
}
|
|
@@ -1250,7 +1282,7 @@ export class Datetime {
|
|
|
1250
1282
|
const { el, highlightedDates, isDateEnabled, multiple } = this;
|
|
1251
1283
|
const referenceParts = { month, day, year };
|
|
1252
1284
|
const isCalendarPadding = day === null;
|
|
1253
|
-
const { isActive, isToday, ariaLabel, ariaSelected, disabled, text } = getCalendarDayState(this.locale, referenceParts, this.
|
|
1285
|
+
const { isActive, isToday, ariaLabel, ariaSelected, disabled, text } = getCalendarDayState(this.locale, referenceParts, this.activeParts, this.todayParts, this.minParts, this.maxParts, this.parsedDayValues);
|
|
1254
1286
|
const dateIsoString = convertDataToISO(referenceParts);
|
|
1255
1287
|
let isCalDayDisabled = isCalMonthDisabled || disabled;
|
|
1256
1288
|
if (!isCalDayDisabled && isDateEnabled !== undefined) {
|
|
@@ -1274,14 +1306,30 @@ export class Datetime {
|
|
|
1274
1306
|
if (highlightedDates !== undefined && !isActive && day !== null) {
|
|
1275
1307
|
dateStyle = getHighlightStyles(highlightedDates, dateIsoString, el);
|
|
1276
1308
|
}
|
|
1277
|
-
|
|
1309
|
+
let dateParts = undefined;
|
|
1310
|
+
// "Filler days" at the beginning of the grid should not get the calendar day
|
|
1311
|
+
// CSS parts added to them
|
|
1312
|
+
if (!isCalendarPadding) {
|
|
1313
|
+
dateParts = `calendar-day${isActive ? ' active' : ''}${isToday ? ' today' : ''}${isCalDayDisabled ? ' disabled' : ''}`;
|
|
1314
|
+
}
|
|
1315
|
+
return (h("div", { class: "calendar-day-wrapper" }, h("button", {
|
|
1316
|
+
// We need to use !important for the inline styles here because
|
|
1317
|
+
// otherwise the CSS shadow parts will override these styles.
|
|
1318
|
+
// See https://github.com/WICG/webcomponents/issues/847
|
|
1319
|
+
// Both the CSS shadow parts and highlightedDates styles are
|
|
1320
|
+
// provided by the developer, but highlightedDates styles should
|
|
1321
|
+
// always take priority.
|
|
1322
|
+
ref: (el) => {
|
|
1323
|
+
if (el) {
|
|
1324
|
+
el.style.setProperty('color', `${dateStyle ? dateStyle.textColor : ''}`, 'important');
|
|
1325
|
+
el.style.setProperty('background-color', `${dateStyle ? dateStyle.backgroundColor : ''}`, 'important');
|
|
1326
|
+
}
|
|
1327
|
+
}, tabindex: "-1", "data-day": day, "data-month": month, "data-year": year, "data-index": index, "data-day-of-week": dayOfWeek, disabled: isCalDayDisabled, class: {
|
|
1278
1328
|
'calendar-day-padding': isCalendarPadding,
|
|
1279
1329
|
'calendar-day': true,
|
|
1280
1330
|
'calendar-day-active': isActive,
|
|
1281
1331
|
'calendar-day-today': isToday,
|
|
1282
|
-
},
|
|
1283
|
-
color: dateStyle.textColor,
|
|
1284
|
-
}, "aria-hidden": isCalendarPadding ? 'true' : null, "aria-selected": ariaSelected, "aria-label": ariaLabel, onClick: () => {
|
|
1332
|
+
}, part: dateParts, "aria-hidden": isCalendarPadding ? 'true' : null, "aria-selected": ariaSelected, "aria-label": ariaLabel, onClick: () => {
|
|
1285
1333
|
if (isCalendarPadding) {
|
|
1286
1334
|
return;
|
|
1287
1335
|
}
|
|
@@ -1301,13 +1349,12 @@ export class Datetime {
|
|
|
1301
1349
|
day,
|
|
1302
1350
|
year }));
|
|
1303
1351
|
}
|
|
1304
|
-
}
|
|
1305
|
-
|
|
1306
|
-
} }), text));
|
|
1352
|
+
}
|
|
1353
|
+
}, text)));
|
|
1307
1354
|
}))));
|
|
1308
1355
|
}
|
|
1309
1356
|
renderCalendarBody() {
|
|
1310
|
-
return (h("div", { class: "calendar-body ion-focusable", ref: (el) => (this.calendarBodyRef = el), tabindex: "0" }, generateMonths(this.workingParts).map(({ month, year }) => {
|
|
1357
|
+
return (h("div", { class: "calendar-body ion-focusable", ref: (el) => (this.calendarBodyRef = el), tabindex: "0" }, generateMonths(this.workingParts, this.forceRenderDate).map(({ month, year }) => {
|
|
1311
1358
|
return this.renderMonth(month, year);
|
|
1312
1359
|
})));
|
|
1313
1360
|
}
|
|
@@ -1462,14 +1509,13 @@ export class Datetime {
|
|
|
1462
1509
|
}
|
|
1463
1510
|
}
|
|
1464
1511
|
render() {
|
|
1465
|
-
const { name, value, disabled, el, color, readonly, showMonthAndYear, preferWheel, presentation, size } = this;
|
|
1512
|
+
const { name, value, disabled, el, color, readonly, showMonthAndYear, preferWheel, presentation, size, isGridStyle, } = this;
|
|
1466
1513
|
const mode = getIonMode(this);
|
|
1467
1514
|
const isMonthAndYearPresentation = presentation === 'year' || presentation === 'month' || presentation === 'month-year';
|
|
1468
1515
|
const shouldShowMonthAndYear = showMonthAndYear || isMonthAndYearPresentation;
|
|
1469
1516
|
const monthYearPickerOpen = showMonthAndYear && !isMonthAndYearPresentation;
|
|
1470
1517
|
const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
|
|
1471
1518
|
const hasWheelVariant = hasDatePresentation && preferWheel;
|
|
1472
|
-
const hasGrid = hasDatePresentation && !preferWheel;
|
|
1473
1519
|
renderHiddenInput(true, el, name, formatValue(value), disabled);
|
|
1474
1520
|
return (h(Host, { "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses(color, {
|
|
1475
1521
|
[mode]: true,
|
|
@@ -1480,7 +1526,7 @@ export class Datetime {
|
|
|
1480
1526
|
[`datetime-presentation-${presentation}`]: true,
|
|
1481
1527
|
[`datetime-size-${size}`]: true,
|
|
1482
1528
|
[`datetime-prefer-wheel`]: hasWheelVariant,
|
|
1483
|
-
[`datetime-grid`]:
|
|
1529
|
+
[`datetime-grid`]: isGridStyle,
|
|
1484
1530
|
})) }, this.renderDatetime(mode)));
|
|
1485
1531
|
}
|
|
1486
1532
|
static get is() { return "ion-datetime"; }
|
|
@@ -2039,7 +2085,8 @@ export class Datetime {
|
|
|
2039
2085
|
"showMonthAndYear": {},
|
|
2040
2086
|
"activeParts": {},
|
|
2041
2087
|
"workingParts": {},
|
|
2042
|
-
"isTimePopoverOpen": {}
|
|
2088
|
+
"isTimePopoverOpen": {},
|
|
2089
|
+
"forceRenderDate": {}
|
|
2043
2090
|
};
|
|
2044
2091
|
}
|
|
2045
2092
|
static get events() {
|
|
@@ -2267,9 +2314,6 @@ export class Datetime {
|
|
|
2267
2314
|
}, {
|
|
2268
2315
|
"propName": "minuteValues",
|
|
2269
2316
|
"methodName": "minuteValuesChanged"
|
|
2270
|
-
}, {
|
|
2271
|
-
"propName": "activeParts",
|
|
2272
|
-
"methodName": "activePartsChanged"
|
|
2273
2317
|
}, {
|
|
2274
2318
|
"propName": "value",
|
|
2275
2319
|
"methodName": "valueChanged"
|