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
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
4
|
import { Host, forceUpdate, h } from "@stencil/core";
|
|
5
|
-
import { debounceEvent, raf, componentOnReady } from "../../utils/helpers";
|
|
5
|
+
import { debounceEvent, raf, componentOnReady, inheritAttributes } from "../../utils/helpers";
|
|
6
6
|
import { isRTL } from "../../utils/rtl/index";
|
|
7
7
|
import { createColorClasses } from "../../utils/theme";
|
|
8
8
|
import { arrowBackSharp, closeCircle, closeSharp, searchOutline, searchSharp } from "ionicons/icons";
|
|
@@ -16,6 +16,7 @@ export class Searchbar {
|
|
|
16
16
|
this.isCancelVisible = false;
|
|
17
17
|
this.shouldAlignLeft = true;
|
|
18
18
|
this.inputId = `ion-searchbar-${searchbarIds++}`;
|
|
19
|
+
this.inheritedAttributes = {};
|
|
19
20
|
/**
|
|
20
21
|
* Clears the input field and triggers the control change.
|
|
21
22
|
*/
|
|
@@ -116,6 +117,7 @@ export class Searchbar {
|
|
|
116
117
|
this.noAnimate = true;
|
|
117
118
|
this.color = undefined;
|
|
118
119
|
this.animated = false;
|
|
120
|
+
this.autocapitalize = 'default';
|
|
119
121
|
this.autocomplete = 'off';
|
|
120
122
|
this.autocorrect = 'off';
|
|
121
123
|
this.cancelButtonIcon = config.get('backButtonIcon', arrowBackSharp);
|
|
@@ -125,6 +127,8 @@ export class Searchbar {
|
|
|
125
127
|
this.disabled = false;
|
|
126
128
|
this.inputmode = undefined;
|
|
127
129
|
this.enterkeyhint = undefined;
|
|
130
|
+
this.maxlength = undefined;
|
|
131
|
+
this.minlength = undefined;
|
|
128
132
|
this.name = this.inputId;
|
|
129
133
|
this.placeholder = 'Search';
|
|
130
134
|
this.searchIcon = undefined;
|
|
@@ -134,6 +138,21 @@ export class Searchbar {
|
|
|
134
138
|
this.type = 'search';
|
|
135
139
|
this.value = '';
|
|
136
140
|
}
|
|
141
|
+
/**
|
|
142
|
+
* lang and dir are globally enumerated attributes.
|
|
143
|
+
* As a result, creating these as properties
|
|
144
|
+
* can have unintended side effects. Instead, we
|
|
145
|
+
* listen for attribute changes and inherit them
|
|
146
|
+
* to the inner `<input>` element.
|
|
147
|
+
*/
|
|
148
|
+
onLangChanged(newValue) {
|
|
149
|
+
this.inheritedAttributes = Object.assign(Object.assign({}, this.inheritedAttributes), { lang: newValue });
|
|
150
|
+
forceUpdate(this);
|
|
151
|
+
}
|
|
152
|
+
onDirChanged(newValue) {
|
|
153
|
+
this.inheritedAttributes = Object.assign(Object.assign({}, this.inheritedAttributes), { dir: newValue });
|
|
154
|
+
forceUpdate(this);
|
|
155
|
+
}
|
|
137
156
|
debounceChanged() {
|
|
138
157
|
const { ionInput, debounce, originalIonInput } = this;
|
|
139
158
|
/**
|
|
@@ -158,6 +177,9 @@ export class Searchbar {
|
|
|
158
177
|
connectedCallback() {
|
|
159
178
|
this.emitStyle();
|
|
160
179
|
}
|
|
180
|
+
componentWillLoad() {
|
|
181
|
+
this.inheritedAttributes = Object.assign({}, inheritAttributes(this.el, ['lang', 'dir']));
|
|
182
|
+
}
|
|
161
183
|
componentDidLoad() {
|
|
162
184
|
this.originalIonInput = this.ionInput;
|
|
163
185
|
this.positionElements();
|
|
@@ -350,14 +372,14 @@ export class Searchbar {
|
|
|
350
372
|
return true;
|
|
351
373
|
}
|
|
352
374
|
render() {
|
|
353
|
-
const { cancelButtonText } = this;
|
|
375
|
+
const { cancelButtonText, autocapitalize } = this;
|
|
354
376
|
const animated = this.animated && config.getBoolean('animated', true);
|
|
355
377
|
const mode = getIonMode(this);
|
|
356
378
|
const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
|
|
357
379
|
const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
|
|
358
380
|
const shouldShowCancelButton = this.shouldShowCancelButton();
|
|
359
|
-
const cancelButton = this.showCancelButton !== 'never' && (h("button", { key: '
|
|
360
|
-
return (h(Host, { key: '
|
|
381
|
+
const cancelButton = this.showCancelButton !== 'never' && (h("button", { key: '9c7b4d2e86d9bcd12e57c9a96723d3da598a3773', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, h("div", { key: '1c25268a776134cccd29eb752898cb8ac0eed30f', "aria-hidden": "true" }, mode === 'md' ? (h("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
|
|
382
|
+
return (h(Host, { key: 'feef9fc7e405656e134a76dc037aaaa1a4ce36b4', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses(this.color, {
|
|
361
383
|
[mode]: true,
|
|
362
384
|
'searchbar-animated': animated,
|
|
363
385
|
'searchbar-disabled': this.disabled,
|
|
@@ -367,14 +389,14 @@ export class Searchbar {
|
|
|
367
389
|
'searchbar-has-focus': this.focused,
|
|
368
390
|
'searchbar-should-show-clear': this.shouldShowClearButton(),
|
|
369
391
|
'searchbar-should-show-cancel': this.shouldShowCancelButton(),
|
|
370
|
-
}) }, h("div", { key: '
|
|
392
|
+
}) }, h("div", { key: '92e3925dc0de468e5665705902153837105dfa57', class: "searchbar-input-container" }, h("input", Object.assign({ key: 'fb74faf81b347a62338ccdac981525df1c52b322', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }, this.inheritedAttributes)), mode === 'md' && cancelButton, h("ion-icon", { key: 'd58c3636dac1d2e4135989f4c07dc95c51492e60', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), h("button", { key: '1cece7c63ca5ca4b8799e15ee6d2bac100ef0d5e', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
|
|
371
393
|
/**
|
|
372
394
|
* This prevents mobile browsers from
|
|
373
395
|
* blurring the input when the clear
|
|
374
396
|
* button is activated.
|
|
375
397
|
*/
|
|
376
398
|
ev.preventDefault();
|
|
377
|
-
}, onClick: () => this.onClearInput(true) }, h("ion-icon", { key: '
|
|
399
|
+
}, onClick: () => this.onClearInput(true) }, h("ion-icon", { key: 'fe3c2b9cac29002f69e95a89b554c7504e2df050', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
|
|
378
400
|
}
|
|
379
401
|
static get is() { return "ion-searchbar"; }
|
|
380
402
|
static get encapsulation() { return "scoped"; }
|
|
@@ -433,6 +455,24 @@ export class Searchbar {
|
|
|
433
455
|
"reflect": false,
|
|
434
456
|
"defaultValue": "false"
|
|
435
457
|
},
|
|
458
|
+
"autocapitalize": {
|
|
459
|
+
"type": "string",
|
|
460
|
+
"mutable": false,
|
|
461
|
+
"complexType": {
|
|
462
|
+
"original": "string",
|
|
463
|
+
"resolved": "string",
|
|
464
|
+
"references": {}
|
|
465
|
+
},
|
|
466
|
+
"required": false,
|
|
467
|
+
"optional": false,
|
|
468
|
+
"docs": {
|
|
469
|
+
"tags": [],
|
|
470
|
+
"text": "Indicates whether and how the text value should be automatically capitalized as it is entered/edited by the user.\nAvailable options: `\"off\"`, `\"none\"`, `\"on\"`, `\"sentences\"`, `\"words\"`, `\"characters\"`."
|
|
471
|
+
},
|
|
472
|
+
"attribute": "autocapitalize",
|
|
473
|
+
"reflect": false,
|
|
474
|
+
"defaultValue": "'default'"
|
|
475
|
+
},
|
|
436
476
|
"autocomplete": {
|
|
437
477
|
"type": "string",
|
|
438
478
|
"mutable": false,
|
|
@@ -597,6 +637,40 @@ export class Searchbar {
|
|
|
597
637
|
"attribute": "enterkeyhint",
|
|
598
638
|
"reflect": false
|
|
599
639
|
},
|
|
640
|
+
"maxlength": {
|
|
641
|
+
"type": "number",
|
|
642
|
+
"mutable": false,
|
|
643
|
+
"complexType": {
|
|
644
|
+
"original": "number",
|
|
645
|
+
"resolved": "number | undefined",
|
|
646
|
+
"references": {}
|
|
647
|
+
},
|
|
648
|
+
"required": false,
|
|
649
|
+
"optional": true,
|
|
650
|
+
"docs": {
|
|
651
|
+
"tags": [],
|
|
652
|
+
"text": "This attribute specifies the maximum number of characters that the user can enter."
|
|
653
|
+
},
|
|
654
|
+
"attribute": "maxlength",
|
|
655
|
+
"reflect": false
|
|
656
|
+
},
|
|
657
|
+
"minlength": {
|
|
658
|
+
"type": "number",
|
|
659
|
+
"mutable": false,
|
|
660
|
+
"complexType": {
|
|
661
|
+
"original": "number",
|
|
662
|
+
"resolved": "number | undefined",
|
|
663
|
+
"references": {}
|
|
664
|
+
},
|
|
665
|
+
"required": false,
|
|
666
|
+
"optional": true,
|
|
667
|
+
"docs": {
|
|
668
|
+
"tags": [],
|
|
669
|
+
"text": "This attribute specifies the minimum number of characters that the user can enter."
|
|
670
|
+
},
|
|
671
|
+
"attribute": "minlength",
|
|
672
|
+
"reflect": false
|
|
673
|
+
},
|
|
600
674
|
"name": {
|
|
601
675
|
"type": "string",
|
|
602
676
|
"mutable": false,
|
|
@@ -922,6 +996,12 @@ export class Searchbar {
|
|
|
922
996
|
static get elementRef() { return "el"; }
|
|
923
997
|
static get watchers() {
|
|
924
998
|
return [{
|
|
999
|
+
"propName": "lang",
|
|
1000
|
+
"methodName": "onLangChanged"
|
|
1001
|
+
}, {
|
|
1002
|
+
"propName": "dir",
|
|
1003
|
+
"methodName": "onDirChanged"
|
|
1004
|
+
}, {
|
|
925
1005
|
"propName": "debounce",
|
|
926
1006
|
"methodName": "debounceChanged"
|
|
927
1007
|
}, {
|
|
@@ -4,12 +4,30 @@
|
|
|
4
4
|
import { newSpecPage } from "@stencil/core/testing";
|
|
5
5
|
import { Searchbar } from "../searchbar";
|
|
6
6
|
describe('searchbar: rendering', () => {
|
|
7
|
-
it('should inherit
|
|
7
|
+
it('should inherit properties on load', async () => {
|
|
8
8
|
const page = await newSpecPage({
|
|
9
9
|
components: [Searchbar],
|
|
10
|
-
html: '<ion-searchbar name="search"></ion-searchbar>',
|
|
10
|
+
html: '<ion-searchbar autocapitalize="off" maxlength="4" minlength="2" name="search"></ion-searchbar>',
|
|
11
11
|
});
|
|
12
12
|
const nativeEl = page.body.querySelector('ion-searchbar input');
|
|
13
13
|
expect(nativeEl.getAttribute('name')).toBe('search');
|
|
14
|
+
expect(nativeEl.getAttribute('maxlength')).toBe('4');
|
|
15
|
+
expect(nativeEl.getAttribute('minlength')).toBe('2');
|
|
16
|
+
expect(nativeEl.getAttribute('autocapitalize')).toBe('off');
|
|
17
|
+
});
|
|
18
|
+
it('should inherit watched attributes', async () => {
|
|
19
|
+
const page = await newSpecPage({
|
|
20
|
+
components: [Searchbar],
|
|
21
|
+
html: '<ion-searchbar dir="ltr" lang="en-US"></ion-searchbar>',
|
|
22
|
+
});
|
|
23
|
+
const searchbarEl = page.body.querySelector('ion-searchbar');
|
|
24
|
+
const nativeEl = searchbarEl.querySelector('input');
|
|
25
|
+
expect(nativeEl.getAttribute('lang')).toBe('en-US');
|
|
26
|
+
expect(nativeEl.getAttribute('dir')).toBe('ltr');
|
|
27
|
+
searchbarEl.setAttribute('lang', 'es-ES');
|
|
28
|
+
searchbarEl.setAttribute('dir', 'rtl');
|
|
29
|
+
await page.waitForChanges();
|
|
30
|
+
expect(nativeEl.getAttribute('lang')).toBe('es-ES');
|
|
31
|
+
expect(nativeEl.getAttribute('dir')).toBe('rtl');
|
|
14
32
|
});
|
|
15
33
|
});
|
|
@@ -420,14 +420,14 @@ export class Segment {
|
|
|
420
420
|
}
|
|
421
421
|
render() {
|
|
422
422
|
const mode = getIonMode(this);
|
|
423
|
-
return (h(Host, { key: '
|
|
423
|
+
return (h(Host, { key: '01c94f9fcc51fb5a7612588c87155a130b7c8a9d', role: "tablist", onClick: this.onClick, class: createColorClasses(this.color, {
|
|
424
424
|
[mode]: true,
|
|
425
425
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
426
426
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
427
427
|
'segment-activated': this.activated,
|
|
428
428
|
'segment-disabled': this.disabled,
|
|
429
429
|
'segment-scrollable': this.scrollable,
|
|
430
|
-
}) }, h("slot", { key: '
|
|
430
|
+
}) }, h("slot", { key: 'b0afdfcb7506a765df42d1d6eb4e1d81bf8fd92a' })));
|
|
431
431
|
}
|
|
432
432
|
static get is() { return "ion-segment"; }
|
|
433
433
|
static get encapsulation() { return "shadow"; }
|
|
@@ -78,7 +78,7 @@ export class SegmentButton {
|
|
|
78
78
|
const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
|
|
79
79
|
const mode = getIonMode(this);
|
|
80
80
|
const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
|
|
81
|
-
return (h(Host, { key: '
|
|
81
|
+
return (h(Host, { key: 'daed55711fdb550747d2ad5fb6e012bff6f6b176', class: {
|
|
82
82
|
[mode]: true,
|
|
83
83
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
84
84
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
@@ -94,10 +94,10 @@ export class SegmentButton {
|
|
|
94
94
|
'ion-activatable': true,
|
|
95
95
|
'ion-activatable-instant': true,
|
|
96
96
|
'ion-focusable': true,
|
|
97
|
-
} }, h("button", Object.assign({ key: '
|
|
97
|
+
} }, h("button", Object.assign({ key: '851a4b8ff7e45f5fc559c4d8e9c3102441dbd10e', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), h("span", { key: 'b2dc87747e81ce49dfa1269355027d9380226a6a', class: "button-inner" }, h("slot", { key: '00e21fdcafb533605518beebb9557c724fc88e76' })), mode === 'md' && h("ion-ripple-effect", { key: '358c90ab1b43aae3bc6eb1e58fb38d4892894a68' })), h("div", { key: '20fd3f7c43dd117541314e852d894af855050707', part: "indicator", class: {
|
|
98
98
|
'segment-button-indicator': true,
|
|
99
99
|
'segment-button-indicator-animated': true,
|
|
100
|
-
} }, h("div", { key: '
|
|
100
|
+
} }, h("div", { key: 'bebdeb84466c404d52ce48feda1ece5fb1f202b0', part: "indicator-background", class: "segment-button-indicator-background" }))));
|
|
101
101
|
}
|
|
102
102
|
static get is() { return "ion-segment-button"; }
|
|
103
103
|
static get encapsulation() { return "shadow"; }
|
|
@@ -10,7 +10,7 @@ export class SelectOption {
|
|
|
10
10
|
this.value = undefined;
|
|
11
11
|
}
|
|
12
12
|
render() {
|
|
13
|
-
return h(Host, { key: '
|
|
13
|
+
return h(Host, { key: 'abf6e85d60e815f59077910abec922826bf46eb2', role: "option", id: this.inputId, class: getIonMode(this) });
|
|
14
14
|
}
|
|
15
15
|
static get is() { return "ion-select-option"; }
|
|
16
16
|
static get encapsulation() { return "shadow"; }
|
|
@@ -102,7 +102,7 @@ export class SelectPopover {
|
|
|
102
102
|
render() {
|
|
103
103
|
const { header, message, options, subHeader } = this;
|
|
104
104
|
const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
|
|
105
|
-
return (h(Host, { key: '
|
|
105
|
+
return (h(Host, { key: 'ddf45e058c75aae175f8589e3539ff152a5b47ad', class: getIonMode(this) }, h("ion-list", { key: '52dbf712bf6cbdcb9d2e6223b99c67ecc90977ff' }, header !== undefined && h("ion-list-header", { key: '692fc85c97591f09a2a9b0bccc8f71e97681cc09' }, header), hasSubHeaderOrMessage && (h("ion-item", { key: 'ecab23444eaadc3ed21e7053d50890db1012475f' }, h("ion-label", { key: '639f08137d7066fd79316f63e850ddcc6a3b54a7', class: "ion-text-wrap" }, subHeader !== undefined && h("h3", { key: 'dc501101ac9d68b1d0ce80679b339a2b132d1ae9' }, subHeader), message !== undefined && h("p", { key: '5ead8c1a2e90d29fe0f05e04a9fa65c7e9e62ca5' }, message)))), this.renderOptions(options))));
|
|
106
106
|
}
|
|
107
107
|
static get is() { return "ion-select-popover"; }
|
|
108
108
|
static get encapsulation() { return "scoped"; }
|
|
@@ -25,11 +25,11 @@ export class SkeletonText {
|
|
|
25
25
|
const animated = this.animated && config.getBoolean('animated', true);
|
|
26
26
|
const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
|
|
27
27
|
const mode = getIonMode(this);
|
|
28
|
-
return (h(Host, { key: '
|
|
28
|
+
return (h(Host, { key: '4dab0fd2de666de12ad8f6dc6ed1e1de0be67ddd', class: {
|
|
29
29
|
[mode]: true,
|
|
30
30
|
'skeleton-text-animated': animated,
|
|
31
31
|
'in-media': inMedia,
|
|
32
|
-
} }, h("span", { key: '
|
|
32
|
+
} }, h("span", { key: 'f8f908ec24d65e63b14d9a54640a5f18f0fa8fa5' }, "\u00A0")));
|
|
33
33
|
}
|
|
34
34
|
static get is() { return "ion-skeleton-text"; }
|
|
35
35
|
static get encapsulation() { return "shadow"; }
|
|
@@ -39,7 +39,7 @@ export class Spinner {
|
|
|
39
39
|
svgs.push(buildLine(spinner, duration, i, spinner.lines));
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
-
return (h(Host, { key: '
|
|
42
|
+
return (h(Host, { key: '9e08bf306b28bdd76884d353dcaaf31c1bb591f2', class: createColorClasses(self.color, {
|
|
43
43
|
[mode]: true,
|
|
44
44
|
[`spinner-${spinnerName}`]: true,
|
|
45
45
|
'spinner-paused': self.paused || config.getBoolean('_testing'),
|
|
@@ -108,12 +108,12 @@ export class SplitPane {
|
|
|
108
108
|
}
|
|
109
109
|
render() {
|
|
110
110
|
const mode = getIonMode(this);
|
|
111
|
-
return (h(Host, { key: '
|
|
111
|
+
return (h(Host, { key: '57ee198506248916e74d8d082ad547a471e6cc73', class: {
|
|
112
112
|
[mode]: true,
|
|
113
113
|
// Used internally for styling
|
|
114
114
|
[`split-pane-${mode}`]: true,
|
|
115
115
|
'split-pane-visible': this.visible,
|
|
116
|
-
} }, h("slot", { key: '
|
|
116
|
+
} }, h("slot", { key: '2cd89fa50cfe8a7a6bdda981bb89d5a24a8eec88' })));
|
|
117
117
|
}
|
|
118
118
|
static get is() { return "ion-split-pane"; }
|
|
119
119
|
static get encapsulation() { return "shadow"; }
|
|
@@ -48,10 +48,10 @@ export class Tab {
|
|
|
48
48
|
}
|
|
49
49
|
render() {
|
|
50
50
|
const { tab, active, component } = this;
|
|
51
|
-
return (h(Host, { key: '
|
|
51
|
+
return (h(Host, { key: '4fe50fa809503794be2ef91383e49b72cad6fa82', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
|
|
52
52
|
'ion-page': component === undefined,
|
|
53
53
|
'tab-hidden': !active,
|
|
54
|
-
} }, h("slot", { key: '
|
|
54
|
+
} }, h("slot", { key: '937777a826936d6b399329a926a704008339803e' })));
|
|
55
55
|
}
|
|
56
56
|
static get is() { return "ion-tab"; }
|
|
57
57
|
static get encapsulation() { return "shadow"; }
|
|
@@ -51,11 +51,11 @@ export class TabBar {
|
|
|
51
51
|
const { color, translucent, keyboardVisible } = this;
|
|
52
52
|
const mode = getIonMode(this);
|
|
53
53
|
const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
|
|
54
|
-
return (h(Host, { key: '
|
|
54
|
+
return (h(Host, { key: '5083528e7f802d2f323ce50585edc98eeb9754c6', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses(color, {
|
|
55
55
|
[mode]: true,
|
|
56
56
|
'tab-bar-translucent': translucent,
|
|
57
57
|
'tab-bar-hidden': shouldHide,
|
|
58
|
-
}) }, h("slot", { key: '
|
|
58
|
+
}) }, h("slot", { key: 'eb33cdd12da49062219d4aa17a319c3e6361c5c5' })));
|
|
59
59
|
}
|
|
60
60
|
static get is() { return "ion-tab-bar"; }
|
|
61
61
|
static get encapsulation() { return "shadow"; }
|
|
@@ -70,7 +70,7 @@ export class TabButton {
|
|
|
70
70
|
rel,
|
|
71
71
|
target,
|
|
72
72
|
};
|
|
73
|
-
return (h(Host, { key: '
|
|
73
|
+
return (h(Host, { key: 'c7b6a72766b71f34800137dadcf29af657bebddf', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
|
|
74
74
|
[mode]: true,
|
|
75
75
|
'tab-selected': selected,
|
|
76
76
|
'tab-disabled': disabled,
|
|
@@ -82,7 +82,7 @@ export class TabButton {
|
|
|
82
82
|
'ion-activatable': true,
|
|
83
83
|
'ion-selectable': true,
|
|
84
84
|
'ion-focusable': true,
|
|
85
|
-
} }, h("a", Object.assign({ key: '
|
|
85
|
+
} }, h("a", Object.assign({ key: 'a1eca4a5cf0dfdb55099811d03f204f7b3807a2e' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), h("span", { key: '888a6d8b95c2f0ca8f74f492729bd28f0d3273d5', class: "button-inner" }, h("slot", { key: '83a234af52ffce9ff0f4cc497712c962115a5813' })), mode === 'md' && h("ion-ripple-effect", { key: '771aff1b83233411e0cf706c3e94c78bca534794', type: "unbounded" }))));
|
|
86
86
|
}
|
|
87
87
|
static get is() { return "ion-tab-button"; }
|
|
88
88
|
static get encapsulation() { return "shadow"; }
|
|
@@ -135,7 +135,7 @@ export class Tabs {
|
|
|
135
135
|
return Array.from(this.el.querySelectorAll('ion-tab'));
|
|
136
136
|
}
|
|
137
137
|
render() {
|
|
138
|
-
return (h(Host, { key: '
|
|
138
|
+
return (h(Host, { key: '5102fdd8ae80408811312631f0739c356d913840', onIonTabButtonClick: this.onTabClicked }, h("slot", { key: '55f781cd010dcebf9675f2a0b4eab9f4271b780e', name: "top" }), h("div", { key: '2da0ee7b8c82e4bfa42f8bc5873e23e50a88c405', class: "tabs-inner" }, h("slot", { key: '6335a62a10398c008c91f87f15b4a940a95e175d' })), h("slot", { key: '9b6f08a21c703cc7fdebd48eb746d0fde6a8454d', name: "bottom" })));
|
|
139
139
|
}
|
|
140
140
|
static get is() { return "ion-tabs"; }
|
|
141
141
|
static get encapsulation() { return "shadow"; }
|
|
@@ -13,9 +13,9 @@ export class Text {
|
|
|
13
13
|
}
|
|
14
14
|
render() {
|
|
15
15
|
const mode = getIonMode(this);
|
|
16
|
-
return (h(Host, { key: '
|
|
16
|
+
return (h(Host, { key: '4330b56cbc4e15953d9b3162fb40af728a8195dd', class: createColorClasses(this.color, {
|
|
17
17
|
[mode]: true,
|
|
18
|
-
}) }, h("slot", { key: '
|
|
18
|
+
}) }, h("slot", { key: 'ec674a71d8fbb04d537fd79d617d9db4a607c340' })));
|
|
19
19
|
}
|
|
20
20
|
static get is() { return "ion-text"; }
|
|
21
21
|
static get encapsulation() { return "shadow"; }
|
|
@@ -5,7 +5,7 @@ import { Host, h } from "@stencil/core";
|
|
|
5
5
|
import { getIonMode } from "../../global/ionic-global";
|
|
6
6
|
export class Thumbnail {
|
|
7
7
|
render() {
|
|
8
|
-
return (h(Host, { key: '
|
|
8
|
+
return (h(Host, { key: 'd2667635930e4c0896805f452357e7dc9086bc72', class: getIonMode(this) }, h("slot", { key: '66eb1487f3da4da2ef71b812a8d0f0fe884c7d81' })));
|
|
9
9
|
}
|
|
10
10
|
static get is() { return "ion-thumbnail"; }
|
|
11
11
|
static get encapsulation() { return "shadow"; }
|
|
@@ -27,11 +27,11 @@ export class ToolbarTitle {
|
|
|
27
27
|
render() {
|
|
28
28
|
const mode = getIonMode(this);
|
|
29
29
|
const size = this.getSize();
|
|
30
|
-
return (h(Host, { key: '
|
|
30
|
+
return (h(Host, { key: '6f43362b782ef7d340c241bb66f1469663c03cc1', class: createColorClasses(this.color, {
|
|
31
31
|
[mode]: true,
|
|
32
32
|
[`title-${size}`]: true,
|
|
33
33
|
'title-rtl': document.dir === 'rtl',
|
|
34
|
-
}) }, h("div", { key: '
|
|
34
|
+
}) }, h("div", { key: '9c3ff1a289e533ee3426b71ab5560fbea3529502', class: "toolbar-title" }, h("slot", { key: '50d5cc5a1519ad58f1994d2f8c8f08f62baac1fe' }))));
|
|
35
35
|
}
|
|
36
36
|
static get is() { return "ion-title"; }
|
|
37
37
|
static get encapsulation() { return "shadow"; }
|
|
@@ -388,9 +388,9 @@ export class Toast {
|
|
|
388
388
|
if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
|
|
389
389
|
printIonWarning('This toast is using start and end buttons with the stacked toast layout. We recommend following the best practice of using either start or end buttons with the stacked toast layout.', el);
|
|
390
390
|
}
|
|
391
|
-
return (h(Host, Object.assign({ key: '
|
|
391
|
+
return (h(Host, Object.assign({ key: '23803334fb668f6ce7044d3a321cb84bc753bd16', tabindex: "-1" }, this.htmlAttributes, { style: {
|
|
392
392
|
zIndex: `${60000 + this.overlayIndex}`,
|
|
393
|
-
}, class: createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), h("div", { key: '
|
|
393
|
+
}, class: createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), h("div", { key: '7cd7138ba079fccf97f318b91e9986491ab4214d', class: wrapperClass }, h("div", { key: '93b78fa64e24435adeb77a04c1d1d53d2f093864', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (h("ion-icon", { key: '9a3c71b164ebcfba2540acb7568beffa76b62f47', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), h("div", { key: 'feb9268102d844f1314205f7440de7066cf0620e', class: "toast-content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
|
|
394
394
|
}
|
|
395
395
|
static get is() { return "ion-toast"; }
|
|
396
396
|
static get encapsulation() { return "shadow"; }
|
|
@@ -421,7 +421,7 @@ Developers can dismiss this warning by removing their usage of the "legacy" prop
|
|
|
421
421
|
"optional": false,
|
|
422
422
|
"docs": {
|
|
423
423
|
"tags": [],
|
|
424
|
-
"text": "How to control the alignment of the toggle and label on the cross axis.\n
|
|
424
|
+
"text": "How to control the alignment of the toggle and label on the cross axis.\n`\"start\"`: The label and control will appear on the left of the cross axis in LTR, and on the right side in RTL.\n`\"center\"`: The label and control will appear at the center of the cross axis in both LTR and RTL."
|
|
425
425
|
},
|
|
426
426
|
"attribute": "alignment",
|
|
427
427
|
"reflect": false,
|
|
@@ -3,13 +3,141 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { expect } from "@playwright/test";
|
|
5
5
|
import { configs, test } from "../../../../utils/test/playwright/index";
|
|
6
|
-
configs().forEach(({ title, screenshot, config }) => {
|
|
6
|
+
configs({ themes: ['light', 'dark'], directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
|
|
7
|
+
test.describe(title('toolbar: basic (LTR only)'), () => {
|
|
8
|
+
test('should not have visual regressions with text only', async ({ page }) => {
|
|
9
|
+
await page.setContent(`
|
|
10
|
+
<ion-header>
|
|
11
|
+
<ion-toolbar>
|
|
12
|
+
<ion-title>Toolbar</ion-title>
|
|
13
|
+
</ion-toolbar>
|
|
14
|
+
</ion-header>
|
|
15
|
+
`, config);
|
|
16
|
+
const header = page.locator('ion-header');
|
|
17
|
+
await expect(header).toHaveScreenshot(screenshot(`toolbar-basic-text-only`));
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
configs({ themes: ['light', 'dark'] }).forEach(({ title, screenshot, config }) => {
|
|
7
22
|
test.describe(title('toolbar: basic'), () => {
|
|
8
|
-
test('should
|
|
9
|
-
await page.
|
|
10
|
-
|
|
23
|
+
test('should truncate long title with ellipsis', async ({ page }) => {
|
|
24
|
+
await page.setContent(`
|
|
25
|
+
<ion-header>
|
|
26
|
+
<ion-toolbar>
|
|
27
|
+
<ion-title>This is the title that never ends. It just goes on and on my friend.</ion-title>
|
|
28
|
+
</ion-toolbar>
|
|
29
|
+
</ion-header>
|
|
30
|
+
`, config);
|
|
31
|
+
const header = page.locator('ion-header');
|
|
32
|
+
await expect(header).toHaveScreenshot(screenshot(`toolbar-basic-long-text`));
|
|
33
|
+
});
|
|
34
|
+
test('should not have visual regressions with icon-only buttons', async ({ page }) => {
|
|
35
|
+
await page.setContent(`
|
|
36
|
+
<ion-header>
|
|
37
|
+
<ion-toolbar>
|
|
38
|
+
<ion-buttons slot="secondary">
|
|
39
|
+
<ion-button>
|
|
40
|
+
<ion-icon slot="icon-only" name="person-circle"></ion-icon>
|
|
41
|
+
</ion-button>
|
|
42
|
+
<ion-button>
|
|
43
|
+
<ion-icon slot="icon-only" name="search"></ion-icon>
|
|
44
|
+
</ion-button>
|
|
45
|
+
</ion-buttons>
|
|
46
|
+
<ion-buttons slot="primary">
|
|
47
|
+
<ion-button color="secondary">
|
|
48
|
+
<ion-icon slot="icon-only" ios="ellipsis-horizontal" md="ellipsis-vertical"></ion-icon>
|
|
49
|
+
</ion-button>
|
|
50
|
+
</ion-buttons>
|
|
51
|
+
<ion-title>Toolbar</ion-title>
|
|
52
|
+
</ion-toolbar>
|
|
53
|
+
<ion-toolbar>
|
|
54
|
+
<ion-buttons slot="secondary">
|
|
55
|
+
<ion-button class="ion-activated">
|
|
56
|
+
<ion-icon slot="icon-only" name="person-circle"></ion-icon>
|
|
57
|
+
</ion-button>
|
|
58
|
+
<ion-button class="ion-activated">
|
|
59
|
+
<ion-icon slot="icon-only" name="search"></ion-icon>
|
|
60
|
+
</ion-button>
|
|
61
|
+
</ion-buttons>
|
|
62
|
+
<ion-buttons slot="primary">
|
|
63
|
+
<ion-button color="secondary" class="ion-activated">
|
|
64
|
+
<ion-icon slot="icon-only" ios="ellipsis-horizontal" md="ellipsis-vertical"></ion-icon>
|
|
65
|
+
</ion-button>
|
|
66
|
+
</ion-buttons>
|
|
67
|
+
<ion-title>Activated Buttons</ion-title>
|
|
68
|
+
</ion-toolbar>
|
|
69
|
+
</ion-header>
|
|
70
|
+
`, config);
|
|
71
|
+
const header = page.locator('ion-header');
|
|
72
|
+
await expect(header).toHaveScreenshot(screenshot(`toolbar-basic-icon-buttons`));
|
|
73
|
+
});
|
|
74
|
+
test('should not have visual regressions with buttons with icons and text', async ({ page }) => {
|
|
75
|
+
await page.setContent(`
|
|
76
|
+
<ion-header>
|
|
77
|
+
<ion-toolbar>
|
|
78
|
+
<ion-buttons slot="secondary">
|
|
79
|
+
<ion-button fill="solid">
|
|
80
|
+
<ion-icon slot="start" name="person-circle"></ion-icon>
|
|
81
|
+
Solid
|
|
82
|
+
</ion-button>
|
|
83
|
+
</ion-buttons>
|
|
84
|
+
<ion-title>Solid</ion-title>
|
|
85
|
+
<ion-buttons slot="primary">
|
|
86
|
+
<ion-button fill="solid" color="secondary">
|
|
87
|
+
Help
|
|
88
|
+
<ion-icon slot="end" name="help-circle"></ion-icon>
|
|
89
|
+
</ion-button>
|
|
90
|
+
</ion-buttons>
|
|
91
|
+
</ion-toolbar>
|
|
92
|
+
<ion-toolbar>
|
|
93
|
+
<ion-buttons slot="secondary">
|
|
94
|
+
<ion-button fill="solid" class="ion-activated">
|
|
95
|
+
<ion-icon slot="start" name="person-circle"></ion-icon>
|
|
96
|
+
Solid
|
|
97
|
+
</ion-button>
|
|
98
|
+
</ion-buttons>
|
|
99
|
+
<ion-title>Solid Activated</ion-title>
|
|
100
|
+
<ion-buttons slot="primary">
|
|
101
|
+
<ion-button fill="solid" color="secondary" class="ion-activated">
|
|
102
|
+
Help
|
|
103
|
+
<ion-icon slot="end" name="help-circle"></ion-icon>
|
|
104
|
+
</ion-button>
|
|
105
|
+
</ion-buttons>
|
|
106
|
+
</ion-toolbar>
|
|
107
|
+
<ion-toolbar>
|
|
108
|
+
<ion-buttons slot="secondary">
|
|
109
|
+
<ion-button fill="outline">
|
|
110
|
+
<ion-icon slot="start" name="star"></ion-icon>
|
|
111
|
+
Star
|
|
112
|
+
</ion-button>
|
|
113
|
+
</ion-buttons>
|
|
114
|
+
<ion-title>Outline</ion-title>
|
|
115
|
+
<ion-buttons slot="primary">
|
|
116
|
+
<ion-button color="secondary" fill="outline">
|
|
117
|
+
Info
|
|
118
|
+
<ion-icon slot="end" name="information-circle"></ion-icon>
|
|
119
|
+
</ion-button>
|
|
120
|
+
</ion-buttons>
|
|
121
|
+
</ion-toolbar>
|
|
122
|
+
<ion-toolbar>
|
|
123
|
+
<ion-buttons slot="secondary">
|
|
124
|
+
<ion-button fill="outline" class="ion-activated">
|
|
125
|
+
<ion-icon slot="start" name="star"></ion-icon>
|
|
126
|
+
Star
|
|
127
|
+
</ion-button>
|
|
128
|
+
</ion-buttons>
|
|
129
|
+
<ion-title>Outline Activated</ion-title>
|
|
130
|
+
<ion-buttons slot="primary">
|
|
131
|
+
<ion-button color="secondary" fill="outline" class="ion-activated">
|
|
132
|
+
Info
|
|
133
|
+
<ion-icon slot="end" name="information-circle"></ion-icon>
|
|
134
|
+
</ion-button>
|
|
135
|
+
</ion-buttons>
|
|
136
|
+
</ion-toolbar>
|
|
137
|
+
</ion-header>
|
|
138
|
+
`, config);
|
|
11
139
|
const header = page.locator('ion-header');
|
|
12
|
-
await expect(header).toHaveScreenshot(screenshot(`toolbar-basic`));
|
|
140
|
+
await expect(header).toHaveScreenshot(screenshot(`toolbar-basic-text-icon-buttons`));
|
|
13
141
|
});
|
|
14
142
|
});
|
|
15
143
|
});
|
|
@@ -62,10 +62,10 @@ export class Toolbar {
|
|
|
62
62
|
this.childrenStyles.forEach((value) => {
|
|
63
63
|
Object.assign(childStyles, value);
|
|
64
64
|
});
|
|
65
|
-
return (h(Host, { key: '
|
|
65
|
+
return (h(Host, { key: '8907ed75fbb2b1dced55c481bba6363f1dca815b', class: Object.assign(Object.assign({}, childStyles), createColorClasses(this.color, {
|
|
66
66
|
[mode]: true,
|
|
67
67
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
68
|
-
})) }, h("div", { key: '
|
|
68
|
+
})) }, h("div", { key: '6bfa09b08d6517f0d680f53b739854cecd631bc9', class: "toolbar-background" }), h("div", { key: '1531bd6dd9e0a5843309bba854b744c453037ad0', class: "toolbar-container" }, h("slot", { key: '881b41697d386eae651b019128573f0fa432cd33', name: "start" }), h("slot", { key: '64a284e6eae5311ac3125dfadb4bb32bdba9d089', name: "secondary" }), h("div", { key: 'c1f47503563b38084b27d7ba54f17ec478482b94', class: "toolbar-content" }, h("slot", { key: '9a85acfba72252705619ae32acae9c14f81aa57d' })), h("slot", { key: '89e08bd761dc6940dbebc5d06f5f080af204aa72', name: "primary" }), h("slot", { key: 'a1cb7d95627f8a3d24dd4b9c11718fc164f53674', name: "end" }))));
|
|
69
69
|
}
|
|
70
70
|
static get is() { return "ion-toolbar"; }
|
|
71
71
|
static get encapsulation() { return "shadow"; }
|