voyager-ionic-core 7.7.3 → 7.8.6
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 +3 -3
- package/components/alert.js +2 -2
- package/components/backdrop.js +1 -1
- package/components/button.js +4 -4
- package/components/buttons.js +1 -1
- package/components/checkbox.js +1 -1
- package/components/data.js +23 -38
- package/components/hardware-back-button.js +3 -3
- package/components/input-shims.js +5 -5
- package/components/ion-app.js +4 -4
- package/components/ion-avatar.js +1 -1
- package/components/ion-back-button.js +2 -2
- package/components/ion-badge.js +2 -2
- package/components/ion-breadcrumb.js +4 -4
- package/components/ion-breadcrumbs.js +2 -2
- package/components/ion-card-content.js +1 -1
- package/components/ion-card-header.js +2 -2
- package/components/ion-card-subtitle.js +2 -2
- package/components/ion-card-title.js +2 -2
- package/components/ion-card.js +1 -1
- package/components/ion-chip.js +2 -2
- package/components/ion-col.js +2 -2
- package/components/ion-content.js +3 -3
- package/components/ion-datetime-button.js +12 -11
- package/components/ion-datetime.js +75 -12
- package/components/ion-fab-button.js +2 -2
- package/components/ion-fab-list.js +2 -2
- package/components/ion-fab.js +2 -2
- package/components/ion-footer.js +2 -2
- package/components/ion-grid.js +2 -2
- package/components/ion-header.js +3 -3
- package/components/ion-img.js +1 -1
- package/components/ion-infinite-scroll-content.js +2 -2
- package/components/ion-infinite-scroll.js +1 -1
- package/components/ion-input.js +8 -0
- package/components/ion-item-divider.js +2 -2
- package/components/ion-item-group.js +1 -1
- package/components/ion-item-option.js +2 -2
- package/components/ion-item-options.js +1 -1
- 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-toggle.js +2 -2
- package/components/ion-menu.js +3 -3
- package/components/ion-modal.js +81 -25
- package/components/ion-nav-link.js +1 -1
- package/components/ion-nav.js +1 -1
- package/components/ion-picker.js +2 -2
- package/components/ion-progress-bar.js +1 -1
- package/components/ion-range.js +126 -21
- package/components/ion-refresher-content.js +1 -1
- package/components/ion-refresher.js +1 -1
- package/components/ion-reorder-group.js +1 -1
- package/components/ion-reorder.js +1 -1
- package/components/ion-router-link.js +2 -2
- package/components/ion-router-outlet.js +1 -1
- package/components/ion-row.js +1 -1
- package/components/ion-searchbar.js +35 -6
- package/components/ion-segment-button.js +3 -3
- package/components/ion-segment.js +2 -2
- package/components/ion-select-option.js +1 -1
- package/components/ion-skeleton-text.js +2 -2
- package/components/ion-split-pane.js +2 -2
- package/components/ion-tab-bar.js +2 -2
- package/components/ion-tab-button.js +2 -2
- package/components/ion-tab.js +2 -2
- package/components/ion-tabs.js +1 -1
- package/components/ion-text.js +2 -2
- package/components/ion-thumbnail.js +1 -1
- package/components/ion-title.js +2 -2
- package/components/ion-toast.js +2 -2
- package/components/ion-toolbar.js +2 -2
- package/components/item.js +1 -1
- package/components/label.js +1 -1
- package/components/list-header.js +2 -2
- package/components/list.js +1 -1
- package/components/note.js +2 -2
- package/components/overlays.js +61 -19
- package/components/picker-column-internal.js +8 -4
- package/components/picker-column.js +2 -2
- package/components/picker-internal.js +2 -2
- package/components/popover.js +4 -4
- package/components/radio-group.js +1 -1
- package/components/ripple-effect.js +1 -1
- package/components/select-popover.js +1 -1
- package/components/spinner.js +1 -1
- package/css/core.css +1 -561
- package/css/core.css.map +1 -1
- package/css/display.css +1 -131
- package/css/display.css.map +1 -1
- package/css/flex-utils.css +1 -81
- package/css/flex-utils.css.map +1 -1
- package/css/float-elements.css +1 -293
- package/css/float-elements.css.map +1 -1
- package/css/global.bundle.css +1 -457
- package/css/global.bundle.css.map +1 -1
- package/css/ionic-swiper.css +1 -127
- 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/normalize.css +1 -150
- package/css/normalize.css.map +1 -1
- package/css/padding.css +1 -202
- package/css/padding.css.map +1 -1
- package/css/structure.css +1 -152
- package/css/structure.css.map +1 -1
- package/css/text-alignment.css +1 -243
- package/css/text-alignment.css.map +1 -1
- package/css/text-transformation.css +1 -158
- package/css/text-transformation.css.map +1 -1
- package/css/typography.css +1 -157
- package/css/typography.css.map +1 -1
- package/css/utils.bundle.css +1 -1100
- package/css/utils.bundle.css.map +1 -1
- package/dist/cjs/{app-globals-92ad1b3d.js → app-globals-c5eb104c.js} +1 -1
- package/dist/cjs/{button-active-2d6520ec.js → button-active-181d142e.js} +1 -1
- package/dist/cjs/{data-a5109f09.js → data-4487a815.js} +22 -39
- package/dist/cjs/{hardware-back-button-2696acaf.js → hardware-back-button-adba3ac7.js} +5 -5
- package/dist/cjs/{index-9bfcb6e8.js → index-1f7c54f8.js} +3 -3
- package/dist/cjs/{index-0ffe376d.js → index-22617dd6.js} +51 -7
- package/dist/cjs/{index-4c96691f.js → index-5c38afe7.js} +2 -2
- package/dist/cjs/index.cjs.js +8 -8
- package/dist/cjs/{input-shims-a9a85bb9.js → input-shims-05ac9905.js} +5 -5
- package/dist/cjs/ion-accordion_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -8
- package/dist/cjs/ion-alert.cjs.entry.js +7 -7
- package/dist/cjs/ion-app_8.cjs.entry.js +24 -24
- package/dist/cjs/ion-avatar_3.cjs.entry.js +6 -6
- package/dist/cjs/ion-back-button.cjs.entry.js +4 -4
- package/dist/cjs/ion-backdrop.cjs.entry.js +3 -3
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +8 -8
- package/dist/cjs/ion-button_2.cjs.entry.js +6 -6
- package/dist/cjs/ion-card_5.cjs.entry.js +10 -10
- package/dist/cjs/ion-checkbox.cjs.entry.js +3 -3
- package/dist/cjs/ion-chip.cjs.entry.js +4 -4
- package/dist/cjs/ion-col_3.cjs.entry.js +7 -7
- package/dist/cjs/ion-datetime-button.cjs.entry.js +14 -13
- package/dist/cjs/ion-datetime_3.cjs.entry.js +80 -20
- package/dist/cjs/ion-fab_3.cjs.entry.js +8 -8
- package/dist/cjs/ion-img.cjs.entry.js +3 -3
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +5 -5
- package/dist/cjs/ion-input.cjs.entry.js +10 -2
- package/dist/cjs/ion-item-option_3.cjs.entry.js +6 -6
- package/dist/cjs/ion-item_8.cjs.entry.js +14 -14
- package/dist/cjs/ion-loading.cjs.entry.js +6 -6
- package/dist/cjs/ion-menu_3.cjs.entry.js +11 -11
- package/dist/cjs/ion-modal.cjs.entry.js +86 -30
- package/dist/cjs/ion-nav_2.cjs.entry.js +5 -5
- package/dist/cjs/ion-picker-column-internal.cjs.entry.js +10 -6
- package/dist/cjs/ion-picker-internal.cjs.entry.js +3 -3
- package/dist/cjs/ion-popover.cjs.entry.js +9 -9
- package/dist/cjs/ion-progress-bar.cjs.entry.js +3 -3
- package/dist/cjs/ion-radio_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-range.cjs.entry.js +128 -23
- package/dist/cjs/ion-refresher_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +3 -3
- package/dist/cjs/ion-route_4.cjs.entry.js +4 -4
- package/dist/cjs/ion-searchbar.cjs.entry.js +31 -7
- package/dist/cjs/ion-segment_2.cjs.entry.js +7 -7
- package/dist/cjs/ion-select_3.cjs.entry.js +6 -6
- package/dist/cjs/ion-spinner.cjs.entry.js +3 -3
- package/dist/cjs/ion-split-pane.cjs.entry.js +4 -4
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +6 -6
- package/dist/cjs/ion-tab_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-text.cjs.entry.js +4 -4
- package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
- package/dist/cjs/ion-toast.cjs.entry.js +6 -6
- package/dist/cjs/ion-toggle.cjs.entry.js +2 -2
- package/dist/cjs/{ionic-global-59a10130.js → ionic-global-c5503e93.js} +1 -1
- package/dist/cjs/ionic.cjs.js +5 -5
- package/dist/cjs/{ios.transition-96679580.js → ios.transition-30830fc4.js} +2 -2
- package/dist/cjs/loader.cjs.js +4 -4
- package/dist/cjs/{md.transition-d6c98822.js → md.transition-7f581866.js} +2 -2
- package/dist/cjs/{overlays-db5d96f3.js → overlays-129dfc13.js} +62 -20
- package/dist/cjs/{status-tap-7ad5f0fb.js → status-tap-03d82840.js} +1 -1
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/action-sheet/action-sheet.js +3 -3
- package/dist/collection/components/alert/alert.js +2 -2
- package/dist/collection/components/alert/test/a11y/alert.e2e.js +4 -0
- package/dist/collection/components/app/app.js +4 -4
- package/dist/collection/components/avatar/avatar.js +1 -1
- package/dist/collection/components/back-button/back-button.js +2 -2
- package/dist/collection/components/backdrop/backdrop.js +1 -1
- package/dist/collection/components/badge/badge.js +2 -2
- package/dist/collection/components/breadcrumb/breadcrumb.js +4 -4
- package/dist/collection/components/breadcrumbs/breadcrumbs.js +2 -2
- package/dist/collection/components/button/button.ios.css +5 -5
- package/dist/collection/components/button/button.js +2 -2
- package/dist/collection/components/button/button.md.css +4 -5
- package/dist/collection/components/buttons/buttons.js +1 -1
- package/dist/collection/components/card/card.js +1 -1
- package/dist/collection/components/card-content/card-content.js +1 -1
- package/dist/collection/components/card-header/card-header.js +2 -2
- package/dist/collection/components/card-subtitle/card-subtitle.js +2 -2
- package/dist/collection/components/card-title/card-title.js +2 -2
- package/dist/collection/components/checkbox/checkbox.js +1 -1
- package/dist/collection/components/checkbox/test/checkbox.spec.js +12 -0
- package/dist/collection/components/chip/chip.js +2 -2
- package/dist/collection/components/col/col.js +2 -2
- package/dist/collection/components/content/content.js +3 -3
- package/dist/collection/components/datetime/datetime.js +56 -12
- package/dist/collection/components/datetime/test/basic/datetime.e2e.js +80 -1
- package/dist/collection/components/datetime/test/format.spec.js +65 -15
- package/dist/collection/components/datetime/utils/format.js +24 -37
- package/dist/collection/components/datetime/utils/validate.js +45 -0
- package/dist/collection/components/datetime-button/datetime-button.js +12 -11
- package/dist/collection/components/datetime-button/test/basic/datetime-button.e2e.js +65 -0
- package/dist/collection/components/fab/fab.js +2 -2
- package/dist/collection/components/fab-button/fab-button.js +2 -2
- package/dist/collection/components/fab-list/fab-list.js +2 -2
- package/dist/collection/components/footer/footer.js +2 -2
- package/dist/collection/components/grid/grid.js +2 -2
- package/dist/collection/components/header/header.ios.css +5 -2
- package/dist/collection/components/header/header.js +2 -2
- package/dist/collection/components/header/test/basic/header.e2e.js +77 -0
- package/dist/collection/components/img/img.js +1 -1
- package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
- package/dist/collection/components/input/input.js +8 -0
- package/dist/collection/components/item/item.js +1 -1
- package/dist/collection/components/item/test/buttons/item.e2e.js +20 -4
- package/dist/collection/components/item-divider/item-divider.js +2 -2
- package/dist/collection/components/item-group/item-group.js +1 -1
- package/dist/collection/components/item-option/item-option.js +2 -2
- package/dist/collection/components/item-options/item-options.js +1 -1
- package/dist/collection/components/item-sliding/item-sliding.js +1 -1
- package/dist/collection/components/label/label.js +1 -1
- package/dist/collection/components/list/list.js +1 -1
- package/dist/collection/components/list-header/list-header.js +2 -2
- package/dist/collection/components/loading/loading.js +2 -2
- package/dist/collection/components/menu/menu.js +3 -3
- package/dist/collection/components/menu-button/menu-button.js +2 -2
- package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
- package/dist/collection/components/modal/gestures/sheet.js +45 -20
- package/dist/collection/components/modal/modal.js +38 -6
- package/dist/collection/components/modal/test/modal-attributes.spec.js +32 -0
- package/dist/collection/components/nav/nav.js +1 -1
- package/dist/collection/components/nav-link/nav-link.js +1 -1
- package/dist/collection/components/note/note.js +2 -2
- package/dist/collection/components/picker/picker.js +2 -2
- package/dist/collection/components/picker-column/picker-column.js +2 -2
- package/dist/collection/components/picker-column-internal/picker-column-internal.js +8 -4
- package/dist/collection/components/picker-internal/picker-internal.js +2 -2
- package/dist/collection/components/popover/popover.ios.css +0 -1
- package/dist/collection/components/popover/popover.js +2 -2
- package/dist/collection/components/popover/popover.md.css +0 -1
- package/dist/collection/components/popover/test/basic/popover.e2e.js +76 -0
- package/dist/collection/components/progress-bar/progress-bar.js +1 -1
- package/dist/collection/components/radio-group/radio-group.js +1 -1
- package/dist/collection/components/range/range.js +126 -21
- package/dist/collection/components/range/test/range-events.e2e.js +27 -0
- package/dist/collection/components/refresher/refresher.js +1 -1
- package/dist/collection/components/refresher-content/refresher-content.js +1 -1
- package/dist/collection/components/reorder/reorder.js +1 -1
- package/dist/collection/components/reorder-group/reorder-group.js +1 -1
- package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
- package/dist/collection/components/router-link/router-link.js +2 -2
- package/dist/collection/components/router-outlet/router-outlet.js +1 -1
- package/dist/collection/components/row/row.js +1 -1
- package/dist/collection/components/searchbar/searchbar.js +86 -6
- package/dist/collection/components/searchbar/test/searchbar.spec.js +20 -2
- package/dist/collection/components/segment/segment.js +2 -2
- package/dist/collection/components/segment-button/segment-button.js +3 -3
- package/dist/collection/components/select-option/select-option.js +1 -1
- package/dist/collection/components/select-popover/select-popover.js +1 -1
- package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
- package/dist/collection/components/spinner/spinner.js +1 -1
- package/dist/collection/components/split-pane/split-pane.js +2 -2
- package/dist/collection/components/tab/tab.js +2 -2
- package/dist/collection/components/tab-bar/tab-bar.js +2 -2
- package/dist/collection/components/tab-button/tab-button.js +2 -2
- package/dist/collection/components/tabs/tabs.js +1 -1
- package/dist/collection/components/text/text.js +2 -2
- package/dist/collection/components/thumbnail/thumbnail.js +1 -1
- package/dist/collection/components/title/title.js +2 -2
- package/dist/collection/components/toast/toast.js +2 -2
- package/dist/collection/components/toggle/toggle.js +1 -1
- package/dist/collection/components/toolbar/test/basic/toolbar.e2e.js +133 -5
- package/dist/collection/components/toolbar/toolbar.js +2 -2
- package/dist/collection/utils/hardware-back-button.js +2 -2
- package/dist/collection/utils/input-shims/hacks/scroll-assist.js +5 -5
- package/dist/collection/utils/overlays.js +61 -19
- package/dist/collection/utils/test/overlays/overlays.spec.js +53 -0
- package/dist/docs.json +117 -4
- package/dist/esm/{app-globals-5cf6195b.js → app-globals-318eef52.js} +1 -1
- package/dist/esm/{button-active-47ac8092.js → button-active-414be235.js} +1 -1
- package/dist/esm/{data-0f3ab200.js → data-bb424ba8.js} +23 -38
- package/dist/esm/{hardware-back-button-b410a047.js → hardware-back-button-6107a37c.js} +5 -5
- package/dist/esm/{index-e1b622e3.js → index-6e05b96e.js} +2 -2
- package/dist/esm/{index-4c30cddd.js → index-a1a47f01.js} +51 -7
- package/dist/esm/{index-348ed70a.js → index-fae1515c.js} +3 -3
- package/dist/esm/index.js +8 -8
- package/dist/esm/{input-shims-5329bbe8.js → input-shims-a52daa3a.js} +5 -5
- package/dist/esm/ion-accordion_2.entry.js +2 -2
- package/dist/esm/ion-action-sheet.entry.js +8 -8
- package/dist/esm/ion-alert.entry.js +7 -7
- package/dist/esm/ion-app_8.entry.js +24 -24
- package/dist/esm/ion-avatar_3.entry.js +6 -6
- package/dist/esm/ion-back-button.entry.js +4 -4
- package/dist/esm/ion-backdrop.entry.js +3 -3
- package/dist/esm/ion-breadcrumb_2.entry.js +8 -8
- package/dist/esm/ion-button_2.entry.js +6 -6
- package/dist/esm/ion-card_5.entry.js +10 -10
- package/dist/esm/ion-checkbox.entry.js +3 -3
- package/dist/esm/ion-chip.entry.js +4 -4
- package/dist/esm/ion-col_3.entry.js +7 -7
- package/dist/esm/ion-datetime-button.entry.js +14 -13
- package/dist/esm/ion-datetime_3.entry.js +80 -20
- package/dist/esm/ion-fab_3.entry.js +8 -8
- package/dist/esm/ion-img.entry.js +3 -3
- package/dist/esm/ion-infinite-scroll_2.entry.js +5 -5
- package/dist/esm/ion-input.entry.js +10 -2
- package/dist/esm/ion-item-option_3.entry.js +6 -6
- package/dist/esm/ion-item_8.entry.js +14 -14
- package/dist/esm/ion-loading.entry.js +6 -6
- package/dist/esm/ion-menu_3.entry.js +11 -11
- package/dist/esm/ion-modal.entry.js +86 -30
- package/dist/esm/ion-nav_2.entry.js +5 -5
- package/dist/esm/ion-picker-column-internal.entry.js +10 -6
- package/dist/esm/ion-picker-internal.entry.js +3 -3
- package/dist/esm/ion-popover.entry.js +9 -9
- package/dist/esm/ion-progress-bar.entry.js +3 -3
- package/dist/esm/ion-radio_2.entry.js +3 -3
- package/dist/esm/ion-range.entry.js +128 -23
- package/dist/esm/ion-refresher_2.entry.js +4 -4
- package/dist/esm/ion-reorder_2.entry.js +4 -4
- package/dist/esm/ion-ripple-effect.entry.js +3 -3
- package/dist/esm/ion-route_4.entry.js +4 -4
- package/dist/esm/ion-searchbar.entry.js +32 -8
- package/dist/esm/ion-segment_2.entry.js +7 -7
- package/dist/esm/ion-select_3.entry.js +6 -6
- package/dist/esm/ion-spinner.entry.js +3 -3
- package/dist/esm/ion-split-pane.entry.js +4 -4
- package/dist/esm/ion-tab-bar_2.entry.js +6 -6
- package/dist/esm/ion-tab_2.entry.js +4 -4
- package/dist/esm/ion-text.entry.js +4 -4
- package/dist/esm/ion-textarea.entry.js +2 -2
- package/dist/esm/ion-toast.entry.js +6 -6
- package/dist/esm/ion-toggle.entry.js +2 -2
- package/dist/esm/{ionic-global-ad9a1810.js → ionic-global-94f25d1b.js} +1 -1
- package/dist/esm/ionic.js +6 -6
- package/dist/esm/{ios.transition-7459f819.js → ios.transition-a50a9a55.js} +2 -2
- package/dist/esm/loader.js +5 -5
- package/dist/esm/{md.transition-b8224313.js → md.transition-0da92976.js} +2 -2
- package/dist/esm/{overlays-19b26885.js → overlays-b874c3c3.js} +62 -20
- package/dist/esm/{status-tap-b41ece3c.js → status-tap-dfea3607.js} +1 -1
- package/dist/esm-es5/app-globals-318eef52.js +4 -0
- package/dist/esm-es5/{button-active-47ac8092.js → button-active-414be235.js} +1 -1
- package/dist/esm-es5/data-bb424ba8.js +4 -0
- package/dist/esm-es5/framework-delegate-ed4ba327.js +2 -2
- package/dist/esm-es5/hardware-back-button-6107a37c.js +4 -0
- package/dist/esm-es5/index-6e05b96e.js +4 -0
- package/dist/esm-es5/index-a1a47f01.js +5 -0
- package/dist/esm-es5/{index-348ed70a.js → index-fae1515c.js} +1 -1
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/input-shims-a52daa3a.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-ad9a1810.js → ionic-global-94f25d1b.js} +1 -1
- package/dist/esm-es5/ionic.js +1 -1
- package/dist/esm-es5/{ios.transition-7459f819.js → ios.transition-a50a9a55.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/md.transition-0da92976.js +4 -0
- package/dist/esm-es5/overlays-b874c3c3.js +4 -0
- package/dist/esm-es5/{status-tap-b41ece3c.js → status-tap-dfea3607.js} +1 -1
- package/dist/html.html-data.json +13 -1
- 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-05253db9.js → p-0047bd0e.js} +1 -1
- package/dist/ionic/{p-ebc86ce9.system.entry.js → p-01a1ff55.system.entry.js} +1 -1
- package/dist/ionic/{p-2178329b.entry.js → p-01de45e4.entry.js} +1 -1
- package/dist/ionic/{p-125f8cdd.system.js → p-0609a7d8.system.js} +1 -1
- package/dist/ionic/{p-cfb4d7e0.js → p-08ab4c96.js} +1 -1
- package/dist/ionic/{p-76b8bcb8.system.entry.js → p-094cb5ba.system.entry.js} +1 -1
- package/dist/ionic/{p-6812d37d.js → p-0aac3a1c.js} +1 -1
- package/dist/ionic/{p-de55ec45.js → p-0b743628.js} +1 -1
- package/dist/ionic/p-185d82fc.entry.js +4 -0
- package/dist/ionic/p-193921ce.entry.js +4 -0
- package/dist/ionic/p-1cd372ed.js +4 -0
- package/dist/ionic/{p-a6c0a380.js → p-1e151efb.js} +1 -1
- package/dist/ionic/{p-7f30ad48.entry.js → p-211d8901.entry.js} +1 -1
- package/dist/ionic/p-212f2c37.entry.js +4 -0
- package/dist/ionic/p-2433bf5e.system.js +4 -0
- package/dist/ionic/p-2732a6ce.entry.js +4 -0
- package/dist/ionic/{p-89ca4c4b.system.js → p-280f1fe7.system.js} +1 -1
- package/dist/ionic/p-2c1408df.system.js +5 -0
- package/dist/ionic/p-2e2808f3.entry.js +4 -0
- package/dist/ionic/{p-70fbf4e2.entry.js → p-32086ea4.entry.js} +1 -1
- package/dist/ionic/{p-16a61810.entry.js → p-339dee28.entry.js} +1 -1
- package/dist/ionic/{p-88e9052d.entry.js → p-34e2b446.entry.js} +1 -1
- package/dist/ionic/{p-6e23d039.entry.js → p-374838e4.entry.js} +1 -1
- package/dist/ionic/p-3789920e.js +4 -0
- package/dist/ionic/{p-bdca4784.js → p-37aab7f7.js} +1 -1
- package/dist/ionic/p-3b7d328b.system.entry.js +4 -0
- package/dist/ionic/{p-02542247.system.entry.js → p-3b9edd02.system.entry.js} +1 -1
- package/dist/ionic/{p-d143fefa.system.entry.js → p-3d23a234.system.entry.js} +1 -1
- package/dist/ionic/{p-717e2526.system.entry.js → p-3f75319a.system.entry.js} +2 -2
- package/dist/ionic/p-47686f0a.system.entry.js +4 -0
- package/dist/ionic/{p-18918a24.system.entry.js → p-47d7ffb4.system.entry.js} +1 -1
- package/dist/ionic/{p-7e838f43.system.entry.js → p-48331301.system.entry.js} +1 -1
- package/dist/ionic/{p-a3df16b9.system.entry.js → p-491ec3d6.system.entry.js} +1 -1
- package/dist/ionic/p-495aabd4.system.entry.js +4 -0
- package/dist/ionic/{p-b0aa3806.system.entry.js → p-49616da4.system.entry.js} +1 -1
- package/dist/ionic/p-4c68b459.system.entry.js +4 -0
- package/dist/ionic/{p-5cb5f63d.system.entry.js → p-4cc54847.system.entry.js} +1 -1
- package/dist/ionic/p-4da978ac.entry.js +4 -0
- package/dist/ionic/{p-5de920f4.system.entry.js → p-4f9018d4.system.entry.js} +1 -1
- package/dist/ionic/{p-baf8eeac.system.entry.js → p-55ae3e14.system.entry.js} +1 -1
- package/dist/ionic/{p-9de75bac.system.entry.js → p-56271222.system.entry.js} +1 -1
- package/dist/ionic/{p-80aed9fb.system.entry.js → p-565a12d7.system.entry.js} +1 -1
- package/dist/ionic/{p-7e16220b.entry.js → p-56b810d5.entry.js} +1 -1
- package/dist/ionic/{p-a85d9047.system.entry.js → p-5a0345f7.system.entry.js} +1 -1
- package/dist/ionic/{p-f0e54781.system.entry.js → p-5b8d7cdb.system.entry.js} +1 -1
- package/dist/ionic/p-5d2011e1.entry.js +4 -0
- package/dist/ionic/p-5f3d659f.entry.js +4 -0
- package/dist/ionic/p-6236eae6.entry.js +4 -0
- package/dist/ionic/{p-4b8a620f.system.entry.js → p-625ef2fb.system.entry.js} +1 -1
- package/dist/ionic/{p-6525a8cd.system.js → p-638865d1.system.js} +1 -1
- package/dist/ionic/p-662cccde.entry.js +4 -0
- package/dist/ionic/p-68416ff0.entry.js +4 -0
- package/dist/ionic/{p-91f4e611.system.entry.js → p-686ddecb.system.entry.js} +2 -2
- package/dist/ionic/p-6a6550fa.js +4 -0
- package/dist/ionic/p-6a6c61b1.system.entry.js +4 -0
- package/dist/ionic/p-6afef6c1.system.js +2 -2
- package/dist/ionic/{p-abcedc15.system.entry.js → p-6b178502.system.entry.js} +1 -1
- package/dist/ionic/{p-2c86025e.system.js → p-6ecddf53.system.js} +1 -1
- package/dist/ionic/{p-822730c4.entry.js → p-70929384.entry.js} +1 -1
- package/dist/ionic/p-73d70509.system.js +4 -0
- package/dist/ionic/{p-c1a871ff.system.entry.js → p-776f7b9e.system.entry.js} +1 -1
- package/dist/ionic/p-7872e970.system.entry.js +4 -0
- package/dist/ionic/{p-657ccdd6.entry.js → p-804ffec9.entry.js} +1 -1
- package/dist/ionic/{p-b27bba38.system.entry.js → p-81c8fa81.system.entry.js} +1 -1
- package/dist/ionic/{p-8e651c29.entry.js → p-8294b727.entry.js} +1 -1
- package/dist/ionic/p-8528c070.entry.js +4 -0
- package/dist/ionic/p-87e81684.system.entry.js +4 -0
- package/dist/ionic/p-8954015c.entry.js +4 -0
- package/dist/ionic/p-8a1b0abb.system.js +4 -0
- package/dist/ionic/{p-2765a571.system.entry.js → p-8a335b91.system.entry.js} +1 -1
- package/dist/ionic/{p-479f5926.system.entry.js → p-8eba832c.system.entry.js} +1 -1
- package/dist/ionic/{p-b58686e0.entry.js → p-8ed4de58.entry.js} +1 -1
- package/dist/ionic/{p-a02ea777.entry.js → p-917bb906.entry.js} +1 -1
- package/dist/ionic/{p-ae2b3a7a.system.entry.js → p-93f86b06.system.entry.js} +1 -1
- package/dist/ionic/p-9625a2e6.entry.js +4 -0
- package/dist/ionic/{p-288649db.system.entry.js → p-9bc8bd0c.system.entry.js} +1 -1
- package/dist/ionic/{p-6f59cdbc.system.entry.js → p-9d53b773.system.entry.js} +2 -2
- package/dist/ionic/{p-dff97cfa.entry.js → p-9fbfbaef.entry.js} +1 -1
- package/dist/ionic/p-a04ecf1a.system.js +4 -0
- package/dist/ionic/{p-9998cb62.system.entry.js → p-a3b2d4a7.system.entry.js} +2 -2
- package/dist/ionic/{p-973b4db3.entry.js → p-a5cd2e1f.entry.js} +1 -1
- package/dist/ionic/p-a5d9fafe.entry.js +4 -0
- package/dist/ionic/{p-df504a37.system.js → p-a875459d.system.js} +1 -1
- package/dist/ionic/p-ad60590b.entry.js +4 -0
- package/dist/ionic/{p-c7288e78.system.entry.js → p-b1bebf4a.system.entry.js} +1 -1
- package/dist/ionic/p-b535c93a.entry.js +4 -0
- package/dist/ionic/p-b8735394.entry.js +4 -0
- package/dist/ionic/p-bb5bbcdf.js +4 -0
- package/dist/ionic/p-c379d010.system.entry.js +4 -0
- package/dist/ionic/{p-ce1c0a0e.system.entry.js → p-c5ce0862.system.entry.js} +2 -2
- package/dist/ionic/p-c76ef1ea.entry.js +4 -0
- package/dist/ionic/p-c8580577.system.js +4 -0
- package/dist/ionic/{p-2c4bfe1c.entry.js → p-cc0cf2d1.entry.js} +1 -1
- package/dist/ionic/{p-15a40a0b.system.entry.js → p-d3a95477.system.entry.js} +1 -1
- package/dist/ionic/{p-ceceac26.js → p-d68ecea4.js} +1 -1
- package/dist/ionic/p-d873a8c2.system.entry.js +4 -0
- package/dist/ionic/{p-079da3df.entry.js → p-dbd77435.entry.js} +1 -1
- package/dist/ionic/p-dc2d302c.entry.js +4 -0
- package/dist/ionic/{p-7670acd8.entry.js → p-dd2996cf.entry.js} +1 -1
- package/dist/ionic/{p-4788693d.entry.js → p-dec423a3.entry.js} +1 -1
- package/dist/ionic/{p-2ea71956.system.entry.js → p-deeae694.system.entry.js} +1 -1
- package/dist/ionic/p-e06d65b3.system.entry.js +4 -0
- package/dist/ionic/{p-cbcffe6e.system.js → p-e0948431.system.js} +1 -1
- package/dist/ionic/{p-86813176.system.entry.js → p-e15cfec4.system.entry.js} +1 -1
- package/dist/ionic/p-e1bd8d9c.system.entry.js +4 -0
- package/dist/ionic/{p-1636923f.system.js → p-e34eefb5.system.js} +1 -1
- package/dist/ionic/{p-b6279412.entry.js → p-e57a212a.entry.js} +1 -1
- package/dist/ionic/{p-437f4d02.system.entry.js → p-e6ee6ead.system.entry.js} +1 -1
- package/dist/ionic/p-e7055fb8.entry.js +4 -0
- package/dist/ionic/p-ea723fc4.entry.js +4 -0
- package/dist/ionic/p-ead0d463.js +5 -0
- package/dist/ionic/p-ed3ad350.entry.js +4 -0
- package/dist/ionic/{p-5d7e32ce.js → p-efef9f3a.js} +1 -1
- package/dist/ionic/p-f4ccaa64.entry.js +4 -0
- package/dist/ionic/{p-bcd9cad8.system.js → p-f4fb429a.system.js} +1 -1
- package/dist/ionic/p-f549716b.system.js +4 -0
- package/dist/ionic/p-f6a50d5c.entry.js +4 -0
- package/dist/ionic/p-fc053a55.entry.js +4 -0
- package/dist/ionic/{p-1f19958f.system.entry.js → p-fd059a23.system.entry.js} +1 -1
- package/dist/ionic/{p-e4e74b5f.system.entry.js → p-fdcf1482.system.entry.js} +1 -1
- package/dist/ionic/{p-3079950e.entry.js → p-fe3ae39d.entry.js} +1 -1
- package/dist/types/components/datetime/datetime-interface.d.ts +10 -0
- package/dist/types/components/datetime/datetime.d.ts +10 -1
- package/dist/types/components/datetime/utils/format.d.ts +7 -13
- package/dist/types/components/datetime/utils/manipulation.d.ts +7 -7
- package/dist/types/components/datetime/utils/state.d.ts +2 -2
- package/dist/types/components/datetime/utils/validate.d.ts +8 -0
- package/dist/types/components/input/input.utils.d.ts +1 -1
- package/dist/types/components/range/range.d.ts +29 -0
- package/dist/types/components/searchbar/searchbar.d.ts +37 -0
- package/dist/types/components/toggle/toggle.d.ts +1 -1
- package/dist/types/components.d.ts +36 -4
- package/dist/types/utils/framework-delegate.d.ts +1 -1
- package/dist/types/utils/hardware-back-button.d.ts +1 -1
- package/dist/types/utils/keyboard/keyboard-controller.d.ts +1 -1
- package/dist/types/utils/overlays.d.ts +2 -2
- package/hydrate/index.js +667 -316
- package/package.json +9 -5
- package/dist/collection/components/modal/test/a11y/modal.spec.js +0 -22
- package/dist/esm-es5/app-globals-5cf6195b.js +0 -4
- package/dist/esm-es5/data-0f3ab200.js +0 -4
- package/dist/esm-es5/hardware-back-button-b410a047.js +0 -4
- package/dist/esm-es5/index-4c30cddd.js +0 -5
- package/dist/esm-es5/index-e1b622e3.js +0 -4
- package/dist/esm-es5/input-shims-5329bbe8.js +0 -4
- package/dist/esm-es5/md.transition-b8224313.js +0 -4
- package/dist/esm-es5/overlays-19b26885.js +0 -4
- package/dist/ionic/p-021f9d72.entry.js +0 -4
- package/dist/ionic/p-02ad4bbe.js +0 -4
- package/dist/ionic/p-0b34d3a7.system.js +0 -4
- package/dist/ionic/p-12527c4b.entry.js +0 -4
- package/dist/ionic/p-1846513c.js +0 -4
- package/dist/ionic/p-1a680496.entry.js +0 -4
- package/dist/ionic/p-1f16d040.entry.js +0 -4
- package/dist/ionic/p-257046d2.system.js +0 -4
- package/dist/ionic/p-262024fd.entry.js +0 -4
- package/dist/ionic/p-2fd3c3dd.entry.js +0 -4
- package/dist/ionic/p-337ac0f5.entry.js +0 -4
- package/dist/ionic/p-36be3332.js +0 -4
- package/dist/ionic/p-482ea916.system.entry.js +0 -4
- package/dist/ionic/p-49f481cc.system.entry.js +0 -4
- package/dist/ionic/p-521b3971.entry.js +0 -4
- package/dist/ionic/p-644d03d7.system.entry.js +0 -4
- package/dist/ionic/p-6b6ca3f5.system.entry.js +0 -4
- package/dist/ionic/p-72fa96bf.system.js +0 -5
- package/dist/ionic/p-7330c044.system.js +0 -4
- package/dist/ionic/p-741a0f0d.system.entry.js +0 -4
- package/dist/ionic/p-7a615a5a.entry.js +0 -4
- package/dist/ionic/p-84b85535.entry.js +0 -4
- package/dist/ionic/p-85f66c3c.entry.js +0 -4
- package/dist/ionic/p-860e2539.system.entry.js +0 -4
- package/dist/ionic/p-8cc34120.entry.js +0 -4
- package/dist/ionic/p-9056778e.system.entry.js +0 -4
- package/dist/ionic/p-96084f36.entry.js +0 -4
- package/dist/ionic/p-97ca0cb9.system.js +0 -4
- package/dist/ionic/p-98aa0553.entry.js +0 -4
- package/dist/ionic/p-a1222c24.entry.js +0 -4
- package/dist/ionic/p-a4aa6dd2.system.entry.js +0 -4
- package/dist/ionic/p-a8459bfb.entry.js +0 -4
- package/dist/ionic/p-ae828bd9.system.entry.js +0 -4
- package/dist/ionic/p-b4d2f43c.system.js +0 -4
- package/dist/ionic/p-b727af6a.entry.js +0 -4
- package/dist/ionic/p-ba0fbecc.entry.js +0 -4
- package/dist/ionic/p-c1c7309e.entry.js +0 -4
- package/dist/ionic/p-cb3065b8.entry.js +0 -4
- package/dist/ionic/p-cb9812f7.entry.js +0 -4
- package/dist/ionic/p-d425b1de.entry.js +0 -4
- package/dist/ionic/p-d6c6541b.system.entry.js +0 -4
- package/dist/ionic/p-e1c52dc6.entry.js +0 -4
- package/dist/ionic/p-e626800f.system.entry.js +0 -4
- package/dist/ionic/p-e94c1402.entry.js +0 -4
- package/dist/ionic/p-ed4760ef.entry.js +0 -4
- package/dist/ionic/p-ed7a529f.js +0 -5
- package/dist/ionic/p-f02c41af.system.js +0 -4
- package/dist/ionic/p-f7dce541.js +0 -4
- package/dist/ionic/p-fa8d3b01.entry.js +0 -4
|
@@ -391,9 +391,9 @@ export class Alert {
|
|
|
391
391
|
* If neither is defined, don't set aria-labelledby.
|
|
392
392
|
*/
|
|
393
393
|
const ariaLabelledBy = header ? hdrId : subHeader ? subHdrId : null;
|
|
394
|
-
return (h(Host, Object.assign({ key: '
|
|
394
|
+
return (h(Host, Object.assign({ key: 'd623baf94bddc6b1932f128f6a605c6232b37fb5', role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "-1" }, htmlAttributes, { style: {
|
|
395
395
|
zIndex: `${20000 + overlayIndex}`,
|
|
396
|
-
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), h("ion-backdrop", { key: '
|
|
396
|
+
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), h("ion-backdrop", { key: 'a594ba787a73a33ba10e7a32ca863bd610730cb6', tappable: this.backdropDismiss }), h("div", { key: 'c95ef8332f46ce93fb8d3b7f0168ae5b939c52fd', tabindex: "0" }), h("div", { key: '1895ea338a8e446d01c6151552af658e1e1c841d', class: "alert-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, h("div", { key: '5156393eb8a8f3e60e7d4bce20b0b85196141b0e', class: "alert-head" }, header && (h("h2", { key: '72ba8253644adfeeb8472531234d3572af28b473', id: hdrId, class: "alert-title" }, header)), subHeader && (h("h2", { key: 'eb8d2443170fbea182199bb3b3f5446c98f1c17e', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), h("div", { key: '13c6fac1a58574156951ae2dfdd24790c0812e11', tabindex: "0" })));
|
|
397
397
|
}
|
|
398
398
|
static get is() { return "ion-alert"; }
|
|
399
399
|
static get encapsulation() { return "scoped"; }
|
|
@@ -222,6 +222,10 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
|
222
222
|
const ionAlertDidPresent = await page.spyOnEvent('ionAlertDidPresent');
|
|
223
223
|
await alert.evaluate((el) => el.present());
|
|
224
224
|
await ionAlertDidPresent.next();
|
|
225
|
+
/**
|
|
226
|
+
* The borders on the text fields may not be visible in the screenshot
|
|
227
|
+
* when using Safari, this is due to a WebKit rendering quirk.
|
|
228
|
+
*/
|
|
225
229
|
await expect(page).toHaveScreenshot(screenshot(`alert-text-fields-scale`));
|
|
226
230
|
});
|
|
227
231
|
});
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
4
|
import { Build, Host, h } from "@stencil/core";
|
|
5
|
-
import {
|
|
5
|
+
import { shouldUseCloseWatcher } from "../../utils/hardware-back-button";
|
|
6
6
|
import { printIonWarning } from "../../utils/logging/index";
|
|
7
7
|
import { isPlatform } from "../../utils/platform";
|
|
8
8
|
import { config } from "../../global/config";
|
|
@@ -27,7 +27,7 @@ export class App {
|
|
|
27
27
|
import('../../utils/input-shims/input-shims').then((module) => module.startInputShims(config, platform));
|
|
28
28
|
}
|
|
29
29
|
const hardwareBackButtonModule = await import('../../utils/hardware-back-button');
|
|
30
|
-
const supportsHardwareBackButtonEvents = isHybrid ||
|
|
30
|
+
const supportsHardwareBackButtonEvents = isHybrid || shouldUseCloseWatcher();
|
|
31
31
|
if (config.getBoolean('hardwareBackButton', supportsHardwareBackButtonEvents)) {
|
|
32
32
|
hardwareBackButtonModule.startHardwareBackButton();
|
|
33
33
|
}
|
|
@@ -36,7 +36,7 @@ export class App {
|
|
|
36
36
|
* If an app sets hardwareBackButton: false and experimentalCloseWatcher: true
|
|
37
37
|
* then the close watcher will not be used.
|
|
38
38
|
*/
|
|
39
|
-
if (
|
|
39
|
+
if (shouldUseCloseWatcher()) {
|
|
40
40
|
printIonWarning('experimentalCloseWatcher was set to `true`, but hardwareBackButton was set to `false`. Both config options must be `true` for the Close Watcher API to be used.');
|
|
41
41
|
}
|
|
42
42
|
hardwareBackButtonModule.blockHardwareBackButton();
|
|
@@ -65,7 +65,7 @@ export class App {
|
|
|
65
65
|
}
|
|
66
66
|
render() {
|
|
67
67
|
const mode = getIonMode(this);
|
|
68
|
-
return (h(Host, { key: '
|
|
68
|
+
return (h(Host, { key: '6d7c57453b4be454690e8f1a0721f1e3da8f92aa', class: {
|
|
69
69
|
[mode]: true,
|
|
70
70
|
'ion-page': true,
|
|
71
71
|
'force-statusbar-padding': config.getBoolean('_forceStatusbarPadding'),
|
|
@@ -5,7 +5,7 @@ import { Host, h } from "@stencil/core";
|
|
|
5
5
|
import { getIonMode } from "../../global/ionic-global";
|
|
6
6
|
export class Avatar {
|
|
7
7
|
render() {
|
|
8
|
-
return (h(Host, { key: '
|
|
8
|
+
return (h(Host, { key: 'f6014b524497bb18ae919ba6f6928407310d6870', class: getIonMode(this) }, h("slot", { key: '192ff4a8e10c0b0a4a2ed795ff2675afa8b23449' })));
|
|
9
9
|
}
|
|
10
10
|
static get is() { return "ion-avatar"; }
|
|
11
11
|
static get encapsulation() { return "shadow"; }
|
|
@@ -72,7 +72,7 @@ export class BackButton {
|
|
|
72
72
|
const showBackButton = defaultHref !== undefined;
|
|
73
73
|
const mode = getIonMode(this);
|
|
74
74
|
const ariaLabel = inheritedAttributes['aria-label'] || backButtonText || 'back';
|
|
75
|
-
return (h(Host, { key: '
|
|
75
|
+
return (h(Host, { key: '9e837be314ee8ea487ba2771d36668ef58442faa', onClick: this.onClick, class: createColorClasses(color, {
|
|
76
76
|
[mode]: true,
|
|
77
77
|
button: true, // ion-buttons target .button
|
|
78
78
|
'back-button-disabled': disabled,
|
|
@@ -82,7 +82,7 @@ export class BackButton {
|
|
|
82
82
|
'ion-activatable': true,
|
|
83
83
|
'ion-focusable': true,
|
|
84
84
|
'show-back-button': showBackButton,
|
|
85
|
-
}) }, h("button", { key: '
|
|
85
|
+
}) }, h("button", { key: 'c4531348bd80cf6163931c5fb432526aa8127043', type: type, disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }, h("span", { key: 'aab8c6d5f0a84aed9f4e4a2532a239b28c7d5589', class: "button-inner" }, backButtonIcon && (h("ion-icon", { key: '121eae10947b46a3d109709b79f4126b1c40ade4', part: "icon", icon: backButtonIcon, "aria-hidden": "true", lazy: false, "flip-rtl": icon === undefined })), backButtonText && (h("span", { key: '11c28875cc52b99470525d18c1f88f27c390a75a', part: "text", "aria-hidden": "true", class: "button-text" }, backButtonText))), mode === 'md' && h("ion-ripple-effect", { key: '804bf8a06cd033c99d61ec2665c842b3b25945fa', type: this.rippleType }))));
|
|
86
86
|
}
|
|
87
87
|
static get is() { return "ion-back-button"; }
|
|
88
88
|
static get encapsulation() { return "shadow"; }
|
|
@@ -35,7 +35,7 @@ export class Backdrop {
|
|
|
35
35
|
}
|
|
36
36
|
render() {
|
|
37
37
|
const mode = getIonMode(this);
|
|
38
|
-
return (h(Host, { key: '
|
|
38
|
+
return (h(Host, { key: '16b1328f4a058b8d3752e58dc56c44bed556c425', tabindex: "-1", "aria-hidden": "true", class: {
|
|
39
39
|
[mode]: true,
|
|
40
40
|
'backdrop-hide': !this.visible,
|
|
41
41
|
'backdrop-no-tappable': !this.tappable,
|
|
@@ -13,9 +13,9 @@ export class Badge {
|
|
|
13
13
|
}
|
|
14
14
|
render() {
|
|
15
15
|
const mode = getIonMode(this);
|
|
16
|
-
return (h(Host, { key: '
|
|
16
|
+
return (h(Host, { key: '22d41ceefb76f40dfbf739fd71483f1272a45858', class: createColorClasses(this.color, {
|
|
17
17
|
[mode]: true,
|
|
18
|
-
}) }, h("slot", { key: '
|
|
18
|
+
}) }, h("slot", { key: 'e7e65463bac5903971a8f9f6be55515f42b81a83' })));
|
|
19
19
|
}
|
|
20
20
|
static get is() { return "ion-badge"; }
|
|
21
21
|
static get encapsulation() { return "shadow"; }
|
|
@@ -64,7 +64,7 @@ export class Breadcrumb {
|
|
|
64
64
|
// to show the separator as long as it isn't also the last breadcrumb
|
|
65
65
|
// otherwise if not collapsed use the value in separator
|
|
66
66
|
const showSeparator = last ? false : collapsed ? (showCollapsedIndicator && !last ? true : false) : separator;
|
|
67
|
-
return (h(Host, { key: '
|
|
67
|
+
return (h(Host, { key: '6d354439f90ec3cfab9fbf93cb17a67fb9ca6034', onClick: (ev) => openURL(href, ev, routerDirection, routerAnimation), "aria-disabled": disabled ? 'true' : null, class: createColorClasses(color, {
|
|
68
68
|
[mode]: true,
|
|
69
69
|
'breadcrumb-active': active,
|
|
70
70
|
'breadcrumb-collapsed': collapsed,
|
|
@@ -74,15 +74,15 @@ export class Breadcrumb {
|
|
|
74
74
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
75
75
|
'ion-activatable': clickable,
|
|
76
76
|
'ion-focusable': clickable,
|
|
77
|
-
}) }, h(TagType, Object.assign({ key: '
|
|
77
|
+
}) }, h(TagType, Object.assign({ key: '4782977969bd84af02b1834573a6e51069b798ae' }, attrs, { class: "breadcrumb-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur }, inheritedAttributes), h("slot", { key: '7d5fb845e463b8195142099773e7f258fc8ed31d', name: "start" }), h("slot", { key: '6b642ccb9101c12f72124fed5dd0f6362345fb41' }), h("slot", { key: '9fb0841fed712e21d1e84b187e1bc9159cf80b56', name: "end" })), showCollapsedIndicator && (h("button", { key: '4b64544d879224d491447a79da8f8672b994af0b', part: "collapsed-indicator", "aria-label": "Show more breadcrumbs", onClick: () => this.collapsedIndicatorClick(), ref: (collapsedEl) => (this.collapsedRef = collapsedEl), class: {
|
|
78
78
|
'breadcrumbs-collapsed-indicator': true,
|
|
79
|
-
} }, h("ion-icon", { "aria-hidden": "true", icon: ellipsisHorizontal, lazy: false }))), showSeparator && (
|
|
79
|
+
} }, h("ion-icon", { key: '5a2511b237aa8c401f416e967a831f8315423949', "aria-hidden": "true", icon: ellipsisHorizontal, lazy: false }))), showSeparator && (
|
|
80
80
|
/**
|
|
81
81
|
* Separators should not be announced by narrators.
|
|
82
82
|
* We add aria-hidden on the span so that this applies
|
|
83
83
|
* to any custom separators too.
|
|
84
84
|
*/
|
|
85
|
-
h("span", { class: "breadcrumb-separator", part: "separator", "aria-hidden": "true" }, h("slot", { name: "separator" }, mode === 'ios' ? (h("ion-icon", { icon: chevronForwardOutline, lazy: false, "flip-rtl": true })) : (h("span", null, "/")))))));
|
|
85
|
+
h("span", { key: '348952855dd79eb92f8d370e5839a8d09aff4097', class: "breadcrumb-separator", part: "separator", "aria-hidden": "true" }, h("slot", { key: '0120f416edb1d776fa6900b5986b2b57eef554b3', name: "separator" }, mode === 'ios' ? (h("ion-icon", { icon: chevronForwardOutline, lazy: false, "flip-rtl": true })) : (h("span", null, "/")))))));
|
|
86
86
|
}
|
|
87
87
|
static get is() { return "ion-breadcrumb"; }
|
|
88
88
|
static get encapsulation() { return "shadow"; }
|
|
@@ -105,12 +105,12 @@ export class Breadcrumbs {
|
|
|
105
105
|
render() {
|
|
106
106
|
const { color, collapsed } = this;
|
|
107
107
|
const mode = getIonMode(this);
|
|
108
|
-
return (h(Host, { key: '
|
|
108
|
+
return (h(Host, { key: 'cd288d4bf5498f86d086eb999b506993818642f3', class: createColorClasses(color, {
|
|
109
109
|
[mode]: true,
|
|
110
110
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
111
111
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
112
112
|
'breadcrumbs-collapsed': collapsed,
|
|
113
|
-
}) }, h("slot", { key: '
|
|
113
|
+
}) }, h("slot", { key: '73c802065511dbebef3867b01ce929313d24cba2', onSlotchange: this.slotChanged })));
|
|
114
114
|
}
|
|
115
115
|
static get is() { return "ion-breadcrumbs"; }
|
|
116
116
|
static get encapsulation() { return "shadow"; }
|
|
@@ -330,11 +330,6 @@ ion-ripple-effect {
|
|
|
330
330
|
color: var(--ion-toolbar-background, var(--color));
|
|
331
331
|
}
|
|
332
332
|
|
|
333
|
-
:host(.button-outline.ion-activated.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native {
|
|
334
|
-
background: var(--ion-toolbar-color, var(--color));
|
|
335
|
-
color: var(--ion-toolbar-background, var(--background), var(--ion-color-primary-contrast, #fff));
|
|
336
|
-
}
|
|
337
|
-
|
|
338
333
|
/**
|
|
339
334
|
* Convert a font size to a dynamic font size.
|
|
340
335
|
* Fonts that participate in Dynamic Type should use
|
|
@@ -593,4 +588,9 @@ ion-ripple-effect {
|
|
|
593
588
|
|
|
594
589
|
:host(.button-solid.ion-color.ion-activated) .button-native::after {
|
|
595
590
|
background: var(--ion-color-shade);
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
:host(.button-outline.ion-activated.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native {
|
|
594
|
+
background: var(--ion-toolbar-color, var(--color));
|
|
595
|
+
color: var(--ion-toolbar-background, var(--background), var(--ion-color-primary-contrast, #fff));
|
|
596
596
|
}
|
|
@@ -199,7 +199,7 @@ export class Button {
|
|
|
199
199
|
{
|
|
200
200
|
type !== 'button' && this.renderHiddenButton();
|
|
201
201
|
}
|
|
202
|
-
return (h(Host, { key: '
|
|
202
|
+
return (h(Host, { key: '54569350aae49882123f0e22a720956eddee33f5', onClick: this.handleClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses(color, {
|
|
203
203
|
[mode]: true,
|
|
204
204
|
[buttonType]: true,
|
|
205
205
|
[`${buttonType}-${expand}`]: expand !== undefined,
|
|
@@ -214,7 +214,7 @@ export class Button {
|
|
|
214
214
|
'button-disabled': disabled,
|
|
215
215
|
'ion-activatable': true,
|
|
216
216
|
'ion-focusable': true,
|
|
217
|
-
}) }, h(TagType, Object.assign({ key: '
|
|
217
|
+
}) }, h(TagType, Object.assign({ key: '95c196fc5bf080ef308532c3627e2a9d68f24996' }, attrs, { class: "button-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur }, inheritedAttributes), h("span", { key: 'e247013b847158187258d28f37ab23905fe49110', class: "button-inner" }, h("slot", { key: '58ac0bd8f643f4392ddbe465fab26eedffe02b7a', name: "icon-only" }), h("slot", { key: '2289d37a37a64472ffe818b3b1126945cebf101e', name: "start" }), h("slot", { key: 'b69a915dff465d251f0466449b91450d4a4048a9' }), h("slot", { key: '594a80d6707fd5edabc03e467f7aae3011d020f6', name: "end" })), mode === 'md' && h("ion-ripple-effect", { key: 'b034770cadefe74922ed6564a17147ddc6c9fdb1', type: this.rippleType }))));
|
|
218
218
|
}
|
|
219
219
|
static get is() { return "ion-button"; }
|
|
220
220
|
static get encapsulation() { return "shadow"; }
|
|
@@ -330,11 +330,6 @@ ion-ripple-effect {
|
|
|
330
330
|
color: var(--ion-toolbar-background, var(--color));
|
|
331
331
|
}
|
|
332
332
|
|
|
333
|
-
:host(.button-outline.ion-activated.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native {
|
|
334
|
-
background: var(--ion-toolbar-color, var(--color));
|
|
335
|
-
color: var(--ion-toolbar-background, var(--background), var(--ion-color-primary-contrast, #fff));
|
|
336
|
-
}
|
|
337
|
-
|
|
338
333
|
/**
|
|
339
334
|
* Convert a font size to a dynamic font size.
|
|
340
335
|
* Fonts that participate in Dynamic Type should use
|
|
@@ -515,4 +510,8 @@ ion-ripple-effect {
|
|
|
515
510
|
:host(.button-outline.ion-color:hover) .button-native::after {
|
|
516
511
|
background: var(--ion-color-base);
|
|
517
512
|
}
|
|
513
|
+
}
|
|
514
|
+
:host(.button-outline.ion-activated.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native {
|
|
515
|
+
background: var(--ion-toolbar-background, var(--color));
|
|
516
|
+
color: var(--ion-toolbar-color, var(--background), var(--ion-color-primary-contrast, #fff));
|
|
518
517
|
}
|
|
@@ -9,7 +9,7 @@ export class Buttons {
|
|
|
9
9
|
}
|
|
10
10
|
render() {
|
|
11
11
|
const mode = getIonMode(this);
|
|
12
|
-
return (h(Host, { key: '
|
|
12
|
+
return (h(Host, { key: '2929fd8c4469bab2953c23d47f601706acb104f1', class: {
|
|
13
13
|
[mode]: true,
|
|
14
14
|
['buttons-collapse']: this.collapse,
|
|
15
15
|
} }));
|
|
@@ -49,7 +49,7 @@ export class Card {
|
|
|
49
49
|
}
|
|
50
50
|
render() {
|
|
51
51
|
const mode = getIonMode(this);
|
|
52
|
-
return (h(Host, { key: '
|
|
52
|
+
return (h(Host, { key: 'b92792294360fd974324b31ed2d3db00d3e2f8cd', class: createColorClasses(this.color, {
|
|
53
53
|
[mode]: true,
|
|
54
54
|
'card-disabled': this.disabled,
|
|
55
55
|
'ion-activatable': this.isClickable(),
|
|
@@ -9,7 +9,7 @@ import { getIonMode } from "../../global/ionic-global";
|
|
|
9
9
|
export class CardContent {
|
|
10
10
|
render() {
|
|
11
11
|
const mode = getIonMode(this);
|
|
12
|
-
return (h(Host, { key: '
|
|
12
|
+
return (h(Host, { key: 'dd95806f042fcd124b18126679f671be6e32a021', class: {
|
|
13
13
|
[mode]: true,
|
|
14
14
|
// Used internally for styling
|
|
15
15
|
[`card-content-${mode}`]: true,
|
|
@@ -14,11 +14,11 @@ export class CardHeader {
|
|
|
14
14
|
}
|
|
15
15
|
render() {
|
|
16
16
|
const mode = getIonMode(this);
|
|
17
|
-
return (h(Host, { key: '
|
|
17
|
+
return (h(Host, { key: '44077ad8e3edf7726d0f7a039046e32dc56a83c9', class: createColorClasses(this.color, {
|
|
18
18
|
'card-header-translucent': this.translucent,
|
|
19
19
|
'ion-inherit-color': true,
|
|
20
20
|
[mode]: true,
|
|
21
|
-
}) }, h("slot", { key: '
|
|
21
|
+
}) }, h("slot", { key: '51b6f4048d25521ece18d79e5361c762af41cae7' })));
|
|
22
22
|
}
|
|
23
23
|
static get is() { return "ion-card-header"; }
|
|
24
24
|
static get encapsulation() { return "shadow"; }
|
|
@@ -13,10 +13,10 @@ export class CardSubtitle {
|
|
|
13
13
|
}
|
|
14
14
|
render() {
|
|
15
15
|
const mode = getIonMode(this);
|
|
16
|
-
return (h(Host, { key: '
|
|
16
|
+
return (h(Host, { key: '6f94c9ced239cc945a148e0ecc7ab848fa70d8e3', role: "heading", "aria-level": "3", class: createColorClasses(this.color, {
|
|
17
17
|
'ion-inherit-color': true,
|
|
18
18
|
[mode]: true,
|
|
19
|
-
}) }, h("slot", { key: '
|
|
19
|
+
}) }, h("slot", { key: '445f81155799be5e81baa571bd16d57e5149df62' })));
|
|
20
20
|
}
|
|
21
21
|
static get is() { return "ion-card-subtitle"; }
|
|
22
22
|
static get encapsulation() { return "shadow"; }
|
|
@@ -13,10 +13,10 @@ export class CardTitle {
|
|
|
13
13
|
}
|
|
14
14
|
render() {
|
|
15
15
|
const mode = getIonMode(this);
|
|
16
|
-
return (h(Host, { key: '
|
|
16
|
+
return (h(Host, { key: 'a9e4190346e7d0a8e6089ec1fe01bca0f5f7200d', role: "heading", "aria-level": "2", class: createColorClasses(this.color, {
|
|
17
17
|
'ion-inherit-color': true,
|
|
18
18
|
[mode]: true,
|
|
19
|
-
}) }, h("slot", { key: '
|
|
19
|
+
}) }, h("slot", { key: '8d87636ad703545b6d2297629205a5a8616eb94e' })));
|
|
20
20
|
}
|
|
21
21
|
static get is() { return "ion-card-title"; }
|
|
22
22
|
static get encapsulation() { return "shadow"; }
|
|
@@ -105,7 +105,7 @@ export class Checkbox {
|
|
|
105
105
|
const mode = getIonMode(this);
|
|
106
106
|
const path = getSVGPath(mode, indeterminate);
|
|
107
107
|
renderHiddenInput(true, el, name, checked ? value : '', disabled);
|
|
108
|
-
return (h(Host, { class: createColorClasses(color, {
|
|
108
|
+
return (h(Host, { "aria-checked": indeterminate ? 'mixed' : `${checked}`, class: createColorClasses(color, {
|
|
109
109
|
[mode]: true,
|
|
110
110
|
'in-item': hostContext('ion-item', el),
|
|
111
111
|
'checkbox-checked': checked,
|
|
@@ -32,3 +32,15 @@ describe('ion-checkbox: disabled', () => {
|
|
|
32
32
|
expect(checkbox.checked).toBe(false);
|
|
33
33
|
});
|
|
34
34
|
});
|
|
35
|
+
describe('ion-checkbox: indeterminate', () => {
|
|
36
|
+
it('should have a mixed value for aria-checked', async () => {
|
|
37
|
+
const page = await newSpecPage({
|
|
38
|
+
components: [Checkbox],
|
|
39
|
+
html: `
|
|
40
|
+
<ion-checkbox indeterminate="true">Checkbox</ion-checkbox>
|
|
41
|
+
`,
|
|
42
|
+
});
|
|
43
|
+
const checkbox = page.body.querySelector('ion-checkbox');
|
|
44
|
+
expect(checkbox.getAttribute('aria-checked')).toBe('mixed');
|
|
45
|
+
});
|
|
46
|
+
});
|
|
@@ -15,12 +15,12 @@ export class Chip {
|
|
|
15
15
|
}
|
|
16
16
|
render() {
|
|
17
17
|
const mode = getIonMode(this);
|
|
18
|
-
return (h(Host, { key: '
|
|
18
|
+
return (h(Host, { key: '886c26b6e7b3e3ca8622a4a0926bdf6dea0a71d4', "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses(this.color, {
|
|
19
19
|
[mode]: true,
|
|
20
20
|
'chip-outline': this.outline,
|
|
21
21
|
'chip-disabled': this.disabled,
|
|
22
22
|
'ion-activatable': true,
|
|
23
|
-
}) }, h("slot", { key: '
|
|
23
|
+
}) }, h("slot", { key: 'd24353e79ac84013758cee1acb1b0f9b2ebb4d67' }), mode === 'md' && h("ion-ripple-effect", { key: 'b69bb3ce3d464251d5e11ba6a5240e4567f72f05' })));
|
|
24
24
|
}
|
|
25
25
|
static get is() { return "ion-chip"; }
|
|
26
26
|
static get encapsulation() { return "shadow"; }
|
|
@@ -111,9 +111,9 @@ export class Col {
|
|
|
111
111
|
render() {
|
|
112
112
|
const isRTL = document.dir === 'rtl';
|
|
113
113
|
const mode = getIonMode(this);
|
|
114
|
-
return (h(Host, { key: '
|
|
114
|
+
return (h(Host, { key: '56ecf3b3f2be05d5f179f2d136d4ab05a4525da9', class: {
|
|
115
115
|
[mode]: true,
|
|
116
|
-
}, style: Object.assign(Object.assign(Object.assign(Object.assign({}, this.calculateOffset(isRTL)), this.calculatePull(isRTL)), this.calculatePush(isRTL)), this.calculateSize()) }, h("slot", { key: '
|
|
116
|
+
}, style: Object.assign(Object.assign(Object.assign(Object.assign({}, this.calculateOffset(isRTL)), this.calculatePull(isRTL)), this.calculatePush(isRTL)), this.calculateSize()) }, h("slot", { key: '8f1113d39dcb709300ebbeaf81bc092c1dd8da3e' })));
|
|
117
117
|
}
|
|
118
118
|
static get is() { return "ion-col"; }
|
|
119
119
|
static get encapsulation() { return "shadow"; }
|
|
@@ -336,7 +336,7 @@ export class Content {
|
|
|
336
336
|
const transitionShadow = mode === 'ios';
|
|
337
337
|
const TagType = isMainContent ? 'main' : 'div';
|
|
338
338
|
this.resize();
|
|
339
|
-
return (h(Host, { key: '
|
|
339
|
+
return (h(Host, { key: 'e13815c0e6f6095150b112d3a1aaf2f509aa0d0b', class: createColorClasses(this.color, {
|
|
340
340
|
[mode]: true,
|
|
341
341
|
'content-sizing': hostContext('ion-popover', this.el),
|
|
342
342
|
overscroll: forceOverscroll,
|
|
@@ -344,12 +344,12 @@ export class Content {
|
|
|
344
344
|
}), style: {
|
|
345
345
|
'--offset-top': `${this.cTop}px`,
|
|
346
346
|
'--offset-bottom': `${this.cBottom}px`,
|
|
347
|
-
} }, h("div", { key: '
|
|
347
|
+
} }, h("div", { key: '8006c4a10d8f7dc83c646246961d018a8097236e', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), h(TagType, { key: '4dd2f58421493f7a4ca42f8f5d7b85cda8e320ea', class: {
|
|
348
348
|
'inner-scroll': true,
|
|
349
349
|
'scroll-x': scrollX,
|
|
350
350
|
'scroll-y': scrollY,
|
|
351
351
|
overscroll: (scrollX || scrollY) && forceOverscroll,
|
|
352
|
-
}, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, h("slot", { key: '
|
|
352
|
+
}, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, h("slot", { key: '37904f8f1d8319156cd901feb21930ef674fe0f7' })), transitionShadow ? (h("div", { class: "transition-effect" }, h("div", { class: "transition-cover" }), h("div", { class: "transition-shadow" }))) : null, h("slot", { key: '8f696583903af0548d064dca1a6bae060e127485', name: "fixed" })));
|
|
353
353
|
}
|
|
354
354
|
static get is() { return "ion-content"; }
|
|
355
355
|
static get encapsulation() { return "shadow"; }
|
|
@@ -11,11 +11,12 @@ import { caretDownSharp, caretUpSharp, chevronBack, chevronDown, chevronForward
|
|
|
11
11
|
import { getIonMode } from "../../global/ionic-global";
|
|
12
12
|
import { isSameDay, warnIfValueOutOfBounds, isBefore, isAfter } from "./utils/comparison";
|
|
13
13
|
import { generateMonths, getDaysOfMonth, getDaysOfWeek, getToday, getMonthColumnData, getDayColumnData, getYearColumnData, getTimeColumnsData, getCombinedDateColumnData, } from "./utils/data";
|
|
14
|
-
import { formatValue,
|
|
14
|
+
import { formatValue, getLocalizedDateTime, getLocalizedTime, getMonthAndYear } from "./utils/format";
|
|
15
15
|
import { isLocaleDayPeriodRTL, isMonthFirstLocale, getNumDaysInMonth, getHourCycle } from "./utils/helpers";
|
|
16
16
|
import { calculateHourFromAMPM, convertDataToISO, getClosestValidDate, getEndOfWeek, getNextDay, getNextMonth, getNextWeek, getNextYear, getPreviousDay, getPreviousMonth, getPreviousWeek, getPreviousYear, getStartOfWeek, validateParts, } from "./utils/manipulation";
|
|
17
17
|
import { clampDate, convertToArrayOfNumbers, getPartsFromCalendarDay, parseAmPm, parseDate, parseMaxParts, parseMinParts, } from "./utils/parse";
|
|
18
18
|
import { getCalendarDayState, getHighlightStyles, isDayDisabled, isMonthDisabled, isNextMonthDisabled, isPrevMonthDisabled, } from "./utils/state";
|
|
19
|
+
import { checkForPresentationFormatMismatch, warnIfTimeZoneProvided } from "./utils/validate";
|
|
19
20
|
/**
|
|
20
21
|
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
21
22
|
*
|
|
@@ -650,6 +651,7 @@ export class Datetime {
|
|
|
650
651
|
this.color = 'primary';
|
|
651
652
|
this.name = this.inputId;
|
|
652
653
|
this.disabled = false;
|
|
654
|
+
this.formatOptions = undefined;
|
|
653
655
|
this.readonly = false;
|
|
654
656
|
this.isDateEnabled = undefined;
|
|
655
657
|
this.min = undefined;
|
|
@@ -677,6 +679,11 @@ export class Datetime {
|
|
|
677
679
|
this.size = 'fixed';
|
|
678
680
|
this.preferWheel = false;
|
|
679
681
|
}
|
|
682
|
+
formatOptionsChanged() {
|
|
683
|
+
const { el, formatOptions, presentation } = this;
|
|
684
|
+
checkForPresentationFormatMismatch(el, presentation, formatOptions);
|
|
685
|
+
warnIfTimeZoneProvided(el, formatOptions);
|
|
686
|
+
}
|
|
680
687
|
disabledChanged() {
|
|
681
688
|
this.emitStyle();
|
|
682
689
|
}
|
|
@@ -686,6 +693,10 @@ export class Datetime {
|
|
|
686
693
|
maxChanged() {
|
|
687
694
|
this.processMaxParts();
|
|
688
695
|
}
|
|
696
|
+
presentationChanged() {
|
|
697
|
+
const { el, formatOptions, presentation } = this;
|
|
698
|
+
checkForPresentationFormatMismatch(el, presentation, formatOptions);
|
|
699
|
+
}
|
|
689
700
|
get isGridStyle() {
|
|
690
701
|
const { presentation, preferWheel } = this;
|
|
691
702
|
const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
|
|
@@ -788,6 +799,7 @@ export class Datetime {
|
|
|
788
799
|
this.initializeKeyboardListeners();
|
|
789
800
|
}
|
|
790
801
|
componentDidLoad() {
|
|
802
|
+
const { el, intersectionTrackerRef } = this;
|
|
791
803
|
/**
|
|
792
804
|
* If a scrollable element is hidden using `display: none`,
|
|
793
805
|
* it will not have a scroll height meaning we cannot scroll elements
|
|
@@ -813,14 +825,14 @@ export class Datetime {
|
|
|
813
825
|
this.el.classList.add('datetime-ready');
|
|
814
826
|
});
|
|
815
827
|
};
|
|
816
|
-
const visibleIO = new IntersectionObserver(visibleCallback, { threshold: 0.01 });
|
|
828
|
+
const visibleIO = new IntersectionObserver(visibleCallback, { threshold: 0.01, root: el });
|
|
817
829
|
/**
|
|
818
830
|
* Use raf to avoid a race condition between the component loading and
|
|
819
831
|
* its display animation starting (such as when shown in a modal). This
|
|
820
832
|
* could cause the datetime to start at a visibility of 0, erroneously
|
|
821
833
|
* triggering the `hiddenIO` observer below.
|
|
822
834
|
*/
|
|
823
|
-
raf(() => visibleIO === null || visibleIO === void 0 ? void 0 : visibleIO.observe(
|
|
835
|
+
raf(() => visibleIO === null || visibleIO === void 0 ? void 0 : visibleIO.observe(intersectionTrackerRef));
|
|
824
836
|
/**
|
|
825
837
|
* We need to clean up listeners when the datetime is hidden
|
|
826
838
|
* in a popover/modal so that we can properly scroll containers
|
|
@@ -846,8 +858,8 @@ export class Datetime {
|
|
|
846
858
|
this.el.classList.remove('datetime-ready');
|
|
847
859
|
});
|
|
848
860
|
};
|
|
849
|
-
const hiddenIO = new IntersectionObserver(hiddenCallback, { threshold: 0 });
|
|
850
|
-
raf(() => hiddenIO === null || hiddenIO === void 0 ? void 0 : hiddenIO.observe(
|
|
861
|
+
const hiddenIO = new IntersectionObserver(hiddenCallback, { threshold: 0, root: el });
|
|
862
|
+
raf(() => hiddenIO === null || hiddenIO === void 0 ? void 0 : hiddenIO.observe(intersectionTrackerRef));
|
|
851
863
|
/**
|
|
852
864
|
* Datetime uses Ionic components that emit
|
|
853
865
|
* ionFocus and ionBlur. These events are
|
|
@@ -921,7 +933,7 @@ export class Datetime {
|
|
|
921
933
|
});
|
|
922
934
|
}
|
|
923
935
|
componentWillLoad() {
|
|
924
|
-
const { el, highlightedDates, multiple, presentation, preferWheel } = this;
|
|
936
|
+
const { el, formatOptions, highlightedDates, multiple, presentation, preferWheel } = this;
|
|
925
937
|
if (multiple) {
|
|
926
938
|
if (presentation !== 'date') {
|
|
927
939
|
printIonWarning('Multiple date selection is only supported for presentation="date".', el);
|
|
@@ -938,6 +950,10 @@ export class Datetime {
|
|
|
938
950
|
printIonWarning('The highlightedDates property is not supported with preferWheel="true".', el);
|
|
939
951
|
}
|
|
940
952
|
}
|
|
953
|
+
if (formatOptions) {
|
|
954
|
+
checkForPresentationFormatMismatch(el, presentation, formatOptions);
|
|
955
|
+
warnIfTimeZoneProvided(el, formatOptions);
|
|
956
|
+
}
|
|
941
957
|
const hourValues = (this.parsedHourValues = convertToArrayOfNumbers(this.hourValues));
|
|
942
958
|
const minuteValues = (this.parsedMinuteValues = convertToArrayOfNumbers(this.minuteValues));
|
|
943
959
|
const monthValues = (this.parsedMonthValues = convertToArrayOfNumbers(this.monthValues));
|
|
@@ -1445,7 +1461,7 @@ export class Datetime {
|
|
|
1445
1461
|
return h("slot", { name: "time-label" }, "Time");
|
|
1446
1462
|
}
|
|
1447
1463
|
renderTimeOverlay() {
|
|
1448
|
-
const { disabled, hourCycle, isTimePopoverOpen, locale } = this;
|
|
1464
|
+
const { disabled, hourCycle, isTimePopoverOpen, locale, formatOptions } = this;
|
|
1449
1465
|
const computedHourCycle = getHourCycle(locale, hourCycle);
|
|
1450
1466
|
const activePart = this.getActivePartsWithFallback();
|
|
1451
1467
|
return [
|
|
@@ -1465,7 +1481,7 @@ export class Datetime {
|
|
|
1465
1481
|
await popoverRef.onWillDismiss();
|
|
1466
1482
|
this.isTimePopoverOpen = false;
|
|
1467
1483
|
}
|
|
1468
|
-
} }, getLocalizedTime(locale, activePart, computedHourCycle)),
|
|
1484
|
+
} }, getLocalizedTime(locale, activePart, computedHourCycle, formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.time)),
|
|
1469
1485
|
h("ion-popover", { alignment: "center", translucent: true, overlayIndex: 1, arrow: false, onWillPresent: (ev) => {
|
|
1470
1486
|
/**
|
|
1471
1487
|
* Intersection Observers do not consistently fire between Blink and Webkit
|
|
@@ -1488,7 +1504,8 @@ export class Datetime {
|
|
|
1488
1504
|
];
|
|
1489
1505
|
}
|
|
1490
1506
|
getHeaderSelectedDateText() {
|
|
1491
|
-
|
|
1507
|
+
var _a;
|
|
1508
|
+
const { activeParts, formatOptions, multiple, titleSelectedDatesFormatter } = this;
|
|
1492
1509
|
const isArray = Array.isArray(activeParts);
|
|
1493
1510
|
let headerText;
|
|
1494
1511
|
if (multiple && isArray && activeParts.length !== 1) {
|
|
@@ -1504,7 +1521,7 @@ export class Datetime {
|
|
|
1504
1521
|
}
|
|
1505
1522
|
else {
|
|
1506
1523
|
// for exactly 1 day selected (multiple set or not), show a formatted version of that
|
|
1507
|
-
headerText =
|
|
1524
|
+
headerText = getLocalizedDateTime(this.locale, this.getActivePartsWithFallback(), (_a = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.date) !== null && _a !== void 0 ? _a : { weekday: 'short', month: 'short', day: 'numeric' });
|
|
1508
1525
|
}
|
|
1509
1526
|
return headerText;
|
|
1510
1527
|
}
|
|
@@ -1593,7 +1610,7 @@ export class Datetime {
|
|
|
1593
1610
|
const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
|
|
1594
1611
|
const hasWheelVariant = hasDatePresentation && preferWheel;
|
|
1595
1612
|
renderHiddenInput(true, el, name, formatValue(value), disabled);
|
|
1596
|
-
return (h(Host, { key: '
|
|
1613
|
+
return (h(Host, { key: '8490192beb6c5c6064ed8f2a7be2d51846f84f36', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses(color, {
|
|
1597
1614
|
[mode]: true,
|
|
1598
1615
|
['datetime-readonly']: readonly,
|
|
1599
1616
|
['datetime-disabled']: disabled,
|
|
@@ -1603,7 +1620,7 @@ export class Datetime {
|
|
|
1603
1620
|
[`datetime-size-${size}`]: true,
|
|
1604
1621
|
[`datetime-prefer-wheel`]: hasWheelVariant,
|
|
1605
1622
|
[`datetime-grid`]: isGridStyle,
|
|
1606
|
-
})) }, this.renderDatetime(mode)));
|
|
1623
|
+
})) }, h("div", { key: 'a2959c07ed871f9004a2f11ab1385a5a7b5737fd', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
|
|
1607
1624
|
}
|
|
1608
1625
|
static get is() { return "ion-datetime"; }
|
|
1609
1626
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1681,6 +1698,27 @@ export class Datetime {
|
|
|
1681
1698
|
"reflect": false,
|
|
1682
1699
|
"defaultValue": "false"
|
|
1683
1700
|
},
|
|
1701
|
+
"formatOptions": {
|
|
1702
|
+
"type": "unknown",
|
|
1703
|
+
"mutable": false,
|
|
1704
|
+
"complexType": {
|
|
1705
|
+
"original": "FormatOptions",
|
|
1706
|
+
"resolved": "undefined | { date: DateTimeFormatOptions; time?: DateTimeFormatOptions | undefined; } | { date?: DateTimeFormatOptions | undefined; time: DateTimeFormatOptions; }",
|
|
1707
|
+
"references": {
|
|
1708
|
+
"FormatOptions": {
|
|
1709
|
+
"location": "import",
|
|
1710
|
+
"path": "./datetime-interface",
|
|
1711
|
+
"id": "src/components/datetime/datetime-interface.ts::FormatOptions"
|
|
1712
|
+
}
|
|
1713
|
+
}
|
|
1714
|
+
},
|
|
1715
|
+
"required": false,
|
|
1716
|
+
"optional": true,
|
|
1717
|
+
"docs": {
|
|
1718
|
+
"tags": [],
|
|
1719
|
+
"text": "Formatting options for dates and times.\nShould include a 'date' and/or 'time' object, each of which is of type [Intl.DateTimeFormatOptions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat#options)."
|
|
1720
|
+
}
|
|
1721
|
+
},
|
|
1684
1722
|
"readonly": {
|
|
1685
1723
|
"type": "boolean",
|
|
1686
1724
|
"mutable": false,
|
|
@@ -2376,6 +2414,9 @@ export class Datetime {
|
|
|
2376
2414
|
static get elementRef() { return "el"; }
|
|
2377
2415
|
static get watchers() {
|
|
2378
2416
|
return [{
|
|
2417
|
+
"propName": "formatOptions",
|
|
2418
|
+
"methodName": "formatOptionsChanged"
|
|
2419
|
+
}, {
|
|
2379
2420
|
"propName": "disabled",
|
|
2380
2421
|
"methodName": "disabledChanged"
|
|
2381
2422
|
}, {
|
|
@@ -2384,6 +2425,9 @@ export class Datetime {
|
|
|
2384
2425
|
}, {
|
|
2385
2426
|
"propName": "max",
|
|
2386
2427
|
"methodName": "maxChanged"
|
|
2428
|
+
}, {
|
|
2429
|
+
"propName": "presentation",
|
|
2430
|
+
"methodName": "presentationChanged"
|
|
2387
2431
|
}, {
|
|
2388
2432
|
"propName": "yearValues",
|
|
2389
2433
|
"methodName": "yearValuesChanged"
|