voyager-ionic-core 8.3.3 → 8.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/action-sheet.js +2 -2
- package/components/alert.js +7 -5
- package/components/backdrop.js +1 -1
- package/components/button.js +2 -2
- package/components/buttons.js +2 -2
- package/components/checkbox.js +7 -5
- package/components/content.js +446 -0
- package/components/header.js +356 -0
- package/components/index4.js +2 -2
- package/components/ion-app.js +1 -1
- 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 +1 -441
- package/components/ion-datetime-button.js +2 -2
- package/components/ion-datetime.js +2 -2
- 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 +1 -351
- 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-password-toggle.js +3 -3
- package/components/ion-input.js +20 -5
- 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 +19 -19
- package/components/ion-modal.js +1 -1737
- package/components/ion-nav-link.js +1 -1
- package/components/ion-nav.js +1 -1
- package/components/ion-note.js +2 -2
- package/components/ion-picker-legacy.js +2 -2
- package/components/ion-progress-bar.js +1 -1
- package/components/ion-range.js +3 -3
- 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 +4 -4
- package/components/ion-segment-button.js +24 -5
- package/components/ion-segment-content.d.ts +11 -0
- package/components/ion-segment-content.js +37 -0
- package/components/ion-segment-view.d.ts +11 -0
- package/components/ion-segment-view.js +140 -0
- package/components/ion-segment.js +110 -15
- package/components/ion-select-modal.d.ts +11 -0
- package/components/ion-select-modal.js +9 -0
- package/components/ion-select-option.js +1 -1
- package/components/ion-select.js +114 -41
- 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-textarea.js +19 -4
- package/components/ion-thumbnail.js +1 -1
- package/components/ion-title.js +1 -70
- package/components/ion-toast.js +2 -2
- package/components/ion-toggle.js +3 -3
- package/components/ion-toolbar.js +1 -88
- package/components/label.js +2 -2
- package/components/list-header.js +2 -2
- package/components/list.js +1 -1
- package/components/modal.js +1742 -0
- package/components/overlays.js +62 -7
- package/components/picker-column-option.js +2 -2
- package/components/picker-column.js +3 -3
- package/components/picker-column2.js +2 -2
- package/components/picker.js +2 -2
- package/components/popover.js +2 -2
- package/components/radio-group.js +5 -3
- package/components/radio.js +7 -5
- package/components/ripple-effect.js +1 -1
- package/components/select-modal.js +197 -0
- package/components/select-popover.js +1 -1
- package/components/spinner.js +1 -1
- package/components/title.js +75 -0
- package/components/toolbar.js +93 -0
- package/dist/cjs/{index-9cd00dc3.js → index-8e789962.js} +2 -2
- package/dist/cjs/index.cjs.js +2 -2
- package/dist/cjs/ion-action-sheet.cjs.entry.js +3 -3
- package/dist/cjs/ion-alert.cjs.entry.js +8 -6
- package/dist/cjs/ion-app_8.cjs.entry.js +15 -15
- package/dist/cjs/ion-avatar_3.cjs.entry.js +4 -4
- package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
- package/dist/cjs/ion-backdrop.cjs.entry.js +1 -1
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +6 -6
- package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-card_5.cjs.entry.js +8 -8
- package/dist/cjs/ion-checkbox.cjs.entry.js +5 -4
- package/dist/cjs/ion-chip.cjs.entry.js +2 -2
- package/dist/cjs/ion-col_3.cjs.entry.js +5 -5
- package/dist/cjs/ion-datetime-button.cjs.entry.js +2 -2
- package/dist/cjs/ion-datetime_3.cjs.entry.js +7 -7
- package/dist/cjs/ion-fab_3.cjs.entry.js +6 -6
- package/dist/cjs/ion-img.cjs.entry.js +1 -1
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +3 -3
- package/dist/cjs/ion-input.cjs.entry.js +20 -5
- package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
- package/dist/cjs/ion-item_8.cjs.entry.js +12 -12
- package/dist/cjs/ion-loading.cjs.entry.js +3 -3
- package/dist/cjs/ion-menu_3.cjs.entry.js +24 -24
- package/dist/cjs/ion-modal.cjs.entry.js +5 -5
- package/dist/cjs/ion-nav_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +2 -2
- package/dist/cjs/ion-picker-column.cjs.entry.js +3 -3
- package/dist/cjs/ion-picker.cjs.entry.js +2 -2
- package/dist/cjs/ion-popover.cjs.entry.js +3 -3
- package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
- package/dist/cjs/ion-radio_2.cjs.entry.js +12 -8
- package/dist/cjs/ion-range.cjs.entry.js +3 -3
- package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
- package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
- package/dist/cjs/ion-searchbar.cjs.entry.js +4 -4
- package/dist/cjs/ion-segment-content.cjs.entry.js +23 -0
- package/dist/cjs/ion-segment-view.cjs.entry.js +122 -0
- package/dist/cjs/ion-segment_2.cjs.entry.js +132 -19
- package/dist/cjs/ion-select-modal.cjs.entry.js +111 -0
- package/dist/cjs/ion-select_3.cjs.entry.js +40 -15
- package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
- package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-text.cjs.entry.js +2 -2
- package/dist/cjs/ion-textarea.cjs.entry.js +19 -4
- package/dist/cjs/ion-toast.cjs.entry.js +3 -3
- package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{overlays-0123d7d4.js → overlays-ba0f6986.js} +62 -7
- package/dist/collection/collection-manifest.json +3 -0
- package/dist/collection/components/action-sheet/action-sheet.js +2 -2
- package/dist/collection/components/alert/alert.js +7 -5
- package/dist/collection/components/app/app.js +1 -1
- 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.js +2 -2
- package/dist/collection/components/buttons/buttons.js +2 -2
- 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 +29 -4
- 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 +2 -2
- package/dist/collection/components/datetime-button/datetime-button.js +2 -2
- 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.js +2 -2
- 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 +20 -5
- package/dist/collection/components/input-password-toggle/input-password-toggle.js +3 -3
- 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 +2 -2
- 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 +47 -27
- 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/modal.js +4 -4
- 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 +3 -3
- package/dist/collection/components/picker-column-option/picker-column-option.js +2 -2
- package/dist/collection/components/picker-legacy/picker.js +2 -2
- package/dist/collection/components/picker-legacy-column/picker-column.js +2 -2
- package/dist/collection/components/popover/popover.js +2 -2
- package/dist/collection/components/progress-bar/progress-bar.js +1 -1
- package/dist/collection/components/radio/radio.js +9 -7
- package/dist/collection/components/radio-group/radio-group.js +5 -3
- package/dist/collection/components/range/range.js +3 -3
- 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 +4 -4
- package/dist/collection/components/segment/segment.js +115 -14
- package/dist/collection/components/segment-button/segment-button.js +40 -5
- package/dist/collection/components/segment-content/segment-content.css +6 -0
- package/dist/collection/components/segment-content/segment-content.js +21 -0
- package/dist/collection/components/segment-view/segment-view-interface.js +1 -0
- package/dist/collection/components/segment-view/segment-view.ios.css +83 -0
- package/dist/collection/components/segment-view/segment-view.js +227 -0
- package/dist/collection/components/segment-view/segment-view.md.css +83 -0
- package/dist/collection/components/select/select.js +61 -16
- package/dist/collection/components/select-modal/select-modal-interface.js +1 -0
- package/dist/collection/components/select-modal/select-modal.ios.css +3 -0
- package/dist/collection/components/select-modal/select-modal.js +159 -0
- package/dist/collection/components/select-modal/select-modal.md.css +110 -0
- package/dist/collection/components/select-modal/test/fixtures.js +48 -0
- 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/textarea/textarea.js +19 -4
- 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 +3 -3
- package/dist/collection/components/toolbar/toolbar.js +2 -2
- package/dist/collection/utils/menu-controller/index.js +2 -2
- package/dist/collection/utils/overlays.js +62 -7
- package/dist/docs.json +426 -29
- package/dist/esm/{index-fe1782b1.js → index-24b48b06.js} +2 -2
- package/dist/esm/index.js +2 -2
- package/dist/esm/ion-action-sheet.entry.js +3 -3
- package/dist/esm/ion-alert.entry.js +8 -6
- package/dist/esm/ion-app_8.entry.js +15 -15
- package/dist/esm/ion-avatar_3.entry.js +4 -4
- package/dist/esm/ion-back-button.entry.js +2 -2
- package/dist/esm/ion-backdrop.entry.js +1 -1
- package/dist/esm/ion-breadcrumb_2.entry.js +6 -6
- package/dist/esm/ion-button_2.entry.js +2 -2
- package/dist/esm/ion-card_5.entry.js +8 -8
- package/dist/esm/ion-checkbox.entry.js +5 -4
- package/dist/esm/ion-chip.entry.js +2 -2
- package/dist/esm/ion-col_3.entry.js +5 -5
- package/dist/esm/ion-datetime-button.entry.js +2 -2
- package/dist/esm/ion-datetime_3.entry.js +7 -7
- package/dist/esm/ion-fab_3.entry.js +6 -6
- package/dist/esm/ion-img.entry.js +1 -1
- package/dist/esm/ion-infinite-scroll_2.entry.js +3 -3
- package/dist/esm/ion-input-password-toggle.entry.js +3 -3
- package/dist/esm/ion-input.entry.js +20 -5
- package/dist/esm/ion-item-option_3.entry.js +4 -4
- package/dist/esm/ion-item_8.entry.js +12 -12
- package/dist/esm/ion-loading.entry.js +3 -3
- package/dist/esm/ion-menu_3.entry.js +24 -24
- package/dist/esm/ion-modal.entry.js +5 -5
- package/dist/esm/ion-nav_2.entry.js +2 -2
- package/dist/esm/ion-picker-column-option.entry.js +2 -2
- package/dist/esm/ion-picker-column.entry.js +3 -3
- package/dist/esm/ion-picker.entry.js +2 -2
- package/dist/esm/ion-popover.entry.js +3 -3
- package/dist/esm/ion-progress-bar.entry.js +1 -1
- package/dist/esm/ion-radio_2.entry.js +12 -8
- package/dist/esm/ion-range.entry.js +3 -3
- package/dist/esm/ion-refresher_2.entry.js +2 -2
- package/dist/esm/ion-reorder_2.entry.js +2 -2
- package/dist/esm/ion-ripple-effect.entry.js +1 -1
- package/dist/esm/ion-route_4.entry.js +2 -2
- package/dist/esm/ion-searchbar.entry.js +4 -4
- package/dist/esm/ion-segment-content.entry.js +19 -0
- package/dist/esm/ion-segment-view.entry.js +118 -0
- package/dist/esm/ion-segment_2.entry.js +132 -19
- package/dist/esm/ion-select-modal.entry.js +107 -0
- package/dist/esm/ion-select_3.entry.js +40 -15
- package/dist/esm/ion-spinner.entry.js +1 -1
- package/dist/esm/ion-split-pane.entry.js +2 -2
- package/dist/esm/ion-tab-bar_2.entry.js +4 -4
- package/dist/esm/ion-tab_2.entry.js +3 -3
- package/dist/esm/ion-text.entry.js +2 -2
- package/dist/esm/ion-textarea.entry.js +19 -4
- package/dist/esm/ion-toast.entry.js +3 -3
- package/dist/esm/ion-toggle.entry.js +3 -3
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{overlays-9c75ec54.js → overlays-ae10d43d.js} +62 -7
- package/dist/esm-es5/{index-fe1782b1.js → index-24b48b06.js} +1 -1
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
- package/dist/esm-es5/ion-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 +2 -2
- 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-password-toggle.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-option.entry.js +1 -1
- package/dist/esm-es5/ion-picker-column.entry.js +1 -1
- package/dist/esm-es5/ion-picker.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-content.entry.js +4 -0
- package/dist/esm-es5/ion-segment-view.entry.js +4 -0
- package/dist/esm-es5/ion-segment_2.entry.js +1 -1
- package/dist/esm-es5/ion-select-modal.entry.js +4 -0
- 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.js +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/overlays-ae10d43d.js +4 -0
- package/dist/html.html-data.json +65 -2
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-313ccc01.system.entry.js → p-01186920.system.entry.js} +1 -1
- package/dist/ionic/{p-ecb57d24.system.entry.js → p-0161caf9.system.entry.js} +1 -1
- package/dist/ionic/p-0437ace4.system.entry.js +4 -0
- package/dist/ionic/p-04fc24ee.system.js +4 -0
- package/dist/ionic/{p-e3e1e3de.entry.js → p-081a4ce4.entry.js} +1 -1
- package/dist/ionic/p-09cf2394.entry.js +4 -0
- package/dist/ionic/p-14be4015.entry.js +4 -0
- package/dist/ionic/p-15e76dd1.entry.js +4 -0
- package/dist/ionic/{p-003eecb9.entry.js → p-16188af7.entry.js} +1 -1
- package/dist/ionic/p-16799667.system.entry.js +4 -0
- package/dist/ionic/p-16bfb979.system.entry.js +4 -0
- package/dist/ionic/{p-b54fc1ae.entry.js → p-19ec4f42.entry.js} +1 -1
- package/dist/ionic/p-1b7605a7.system.entry.js +4 -0
- package/dist/ionic/p-1c1b8e1f.entry.js +4 -0
- package/dist/ionic/{p-8b6232a6.system.entry.js → p-1e010627.system.entry.js} +2 -2
- package/dist/ionic/{p-f50ae0d5.system.entry.js → p-1e41f2aa.system.entry.js} +1 -1
- package/dist/ionic/{p-cdb11938.system.entry.js → p-1e67b266.system.entry.js} +1 -1
- package/dist/ionic/{p-bd25d639.system.entry.js → p-1ebd1e27.system.entry.js} +1 -1
- package/dist/ionic/{p-836d39d4.system.entry.js → p-2172893e.system.entry.js} +1 -1
- package/dist/ionic/{p-4a0a4204.system.entry.js → p-2507278c.system.entry.js} +1 -1
- package/dist/ionic/{p-75c0dc65.system.entry.js → p-2799c6d3.system.entry.js} +1 -1
- package/dist/ionic/{p-a879ecb7.system.entry.js → p-2abae1cc.system.entry.js} +1 -1
- package/dist/ionic/{p-293ed6ac.system.entry.js → p-2b838f86.system.entry.js} +1 -1
- package/dist/ionic/{p-4a82bd1c.system.entry.js → p-2e46590d.system.entry.js} +1 -1
- package/dist/ionic/p-2fc0dafe.entry.js +4 -0
- package/dist/ionic/p-322c5fb4.system.js +2 -2
- package/dist/ionic/p-33a8a71b.entry.js +4 -0
- package/dist/ionic/{p-4b0fedb7.system.entry.js → p-37cb43bd.system.entry.js} +1 -1
- package/dist/ionic/{p-ad9b5007.system.entry.js → p-3b419d79.system.entry.js} +1 -1
- package/dist/ionic/p-424eb140.system.entry.js +4 -0
- package/dist/ionic/{p-b7657e8d.entry.js → p-4439fc2a.entry.js} +1 -1
- package/dist/ionic/{p-ed6962d3.system.entry.js → p-4561cd09.system.entry.js} +1 -1
- package/dist/ionic/{p-c34659b9.entry.js → p-45693d7e.entry.js} +1 -1
- package/dist/ionic/p-49a0e74c.entry.js +4 -0
- package/dist/ionic/{p-9fef1364.entry.js → p-4a274c89.entry.js} +1 -1
- package/dist/ionic/{p-d57661a1.entry.js → p-4b000207.entry.js} +1 -1
- package/dist/ionic/{p-fd0cb4ef.entry.js → p-4ec778aa.entry.js} +1 -1
- package/dist/ionic/{p-f559ac5b.entry.js → p-51796b2d.entry.js} +1 -1
- package/dist/ionic/{p-9ece8dcf.entry.js → p-52d7a191.entry.js} +1 -1
- package/dist/ionic/{p-8ed31163.system.entry.js → p-5393e8bb.system.entry.js} +1 -1
- package/dist/ionic/{p-ce705aac.system.entry.js → p-567de071.system.entry.js} +1 -1
- package/dist/ionic/{p-95823c62.system.entry.js → p-5823babc.system.entry.js} +2 -2
- package/dist/ionic/{p-baffaf8d.system.entry.js → p-58d5df0c.system.entry.js} +1 -1
- package/dist/ionic/{p-521eca2e.entry.js → p-5ab1b709.entry.js} +1 -1
- package/dist/ionic/{p-cff5585e.system.entry.js → p-5b5c1505.system.entry.js} +1 -1
- package/dist/ionic/{p-8d44cf1f.entry.js → p-5b932840.entry.js} +1 -1
- package/dist/ionic/{p-9cc3bcc5.system.entry.js → p-5bd39e5e.system.entry.js} +2 -2
- package/dist/ionic/p-5c831f49.js +4 -0
- package/dist/ionic/{p-5800e441.entry.js → p-5f79d8c5.entry.js} +1 -1
- package/dist/ionic/{p-772dacba.system.entry.js → p-5fce0c0b.system.entry.js} +1 -1
- package/dist/ionic/{p-233e6c93.entry.js → p-62af944c.entry.js} +1 -1
- package/dist/ionic/{p-00b01a55.system.entry.js → p-63b0abde.system.entry.js} +1 -1
- package/dist/ionic/p-6734db42.system.entry.js +4 -0
- package/dist/ionic/p-69666e8a.system.entry.js +4 -0
- package/dist/ionic/{p-5e842258.entry.js → p-6d32975a.entry.js} +1 -1
- package/dist/ionic/p-73dc4950.entry.js +4 -0
- package/dist/ionic/{p-fcd71204.system.entry.js → p-7458862e.system.entry.js} +1 -1
- package/dist/ionic/{p-a3711608.system.entry.js → p-797eeea8.system.entry.js} +1 -1
- package/dist/ionic/{p-f8c8b9ba.entry.js → p-7b9a2b23.entry.js} +1 -1
- package/dist/ionic/{p-6817cf42.system.entry.js → p-7ed1657c.system.entry.js} +1 -1
- package/dist/ionic/{p-22c020db.system.entry.js → p-857ca696.system.entry.js} +1 -1
- package/dist/ionic/{p-a4d51b8d.system.js → p-8f05ba3b.system.js} +1 -1
- package/dist/ionic/p-908d6080.entry.js +4 -0
- package/dist/ionic/{p-af999a31.entry.js → p-937a7e21.entry.js} +1 -1
- package/dist/ionic/{p-4c8fceb0.entry.js → p-95775830.entry.js} +1 -1
- package/dist/ionic/{p-973f0b15.system.entry.js → p-98231c01.system.entry.js} +1 -1
- package/dist/ionic/{p-25928b83.system.entry.js → p-985a7e17.system.entry.js} +1 -1
- package/dist/ionic/{p-e3a5da9d.entry.js → p-98ff6b32.entry.js} +1 -1
- package/dist/ionic/p-9910f786.entry.js +4 -0
- package/dist/ionic/{p-6e85e450.entry.js → p-9df2c6fb.entry.js} +1 -1
- package/dist/ionic/{p-7251fed5.entry.js → p-9ee1e8a6.entry.js} +1 -1
- package/dist/ionic/{p-da263d8e.entry.js → p-9fa07aec.entry.js} +1 -1
- package/dist/ionic/{p-a41699db.entry.js → p-a1051806.entry.js} +1 -1
- package/dist/ionic/p-a1b9a163.entry.js +4 -0
- package/dist/ionic/p-a34b4d94.entry.js +4 -0
- package/dist/ionic/{p-8836d0eb.system.entry.js → p-a49378bb.system.entry.js} +1 -1
- package/dist/ionic/{p-6b8893dd.entry.js → p-a61cba41.entry.js} +1 -1
- package/dist/ionic/p-adbc4bdf.entry.js +4 -0
- package/dist/ionic/{p-49bc6544.entry.js → p-afecb188.entry.js} +1 -1
- package/dist/ionic/{p-755b27f0.system.entry.js → p-b335ffed.system.entry.js} +1 -1
- package/dist/ionic/{p-e3f13b08.js → p-b82d4cab.js} +1 -1
- package/dist/ionic/{p-68c4df55.entry.js → p-b9d7015f.entry.js} +1 -1
- package/dist/ionic/{p-7243df6f.entry.js → p-bb0db172.entry.js} +1 -1
- package/dist/ionic/{p-df83e308.system.entry.js → p-bc36ad98.system.entry.js} +1 -1
- package/dist/ionic/{p-773d118d.entry.js → p-bdad26e3.entry.js} +1 -1
- package/dist/ionic/p-c29f8157.system.entry.js +4 -0
- package/dist/ionic/p-c2b74d92.system.entry.js +4 -0
- package/dist/ionic/{p-176b372f.entry.js → p-c41ac815.entry.js} +1 -1
- package/dist/ionic/{p-5417b9bb.entry.js → p-c9f3a539.entry.js} +1 -1
- package/dist/ionic/{p-2ea1ca4f.system.entry.js → p-ca065903.system.entry.js} +1 -1
- package/dist/ionic/{p-2ca6eac2.system.entry.js → p-cac0e0b3.system.entry.js} +1 -1
- package/dist/ionic/{p-3c968c7f.system.entry.js → p-d18ab582.system.entry.js} +2 -2
- package/dist/ionic/{p-92d7a3d1.entry.js → p-d7aa6b00.entry.js} +1 -1
- package/dist/ionic/{p-21cfd4de.entry.js → p-da074ff7.entry.js} +1 -1
- package/dist/ionic/{p-5e66bcf2.entry.js → p-db0c8e7d.entry.js} +1 -1
- package/dist/ionic/{p-89a0a446.entry.js → p-de930745.entry.js} +1 -1
- package/dist/ionic/p-e2252ad6.entry.js +4 -0
- package/dist/ionic/{p-960803fc.system.entry.js → p-e4ee80be.system.entry.js} +1 -1
- package/dist/ionic/p-e563a35c.entry.js +4 -0
- package/dist/ionic/{p-7740e32c.system.js → p-e7ed4a7f.system.js} +1 -1
- package/dist/ionic/{p-0373d924.system.entry.js → p-ebf042e0.system.entry.js} +1 -1
- package/dist/ionic/{p-9b6c6302.system.entry.js → p-ed75fcfb.system.entry.js} +1 -1
- package/dist/ionic/p-f10b70a1.entry.js +4 -0
- package/dist/ionic/{p-01503bbd.system.entry.js → p-f3102647.system.entry.js} +1 -1
- package/dist/ionic/{p-6562e0a9.system.entry.js → p-fca6ef5f.system.entry.js} +1 -1
- package/dist/ionic/{p-b0180ce1.system.entry.js → p-ffd131f9.system.entry.js} +1 -1
- package/dist/types/components/checkbox/checkbox.d.ts +2 -1
- package/dist/types/components/input/input.d.ts +3 -0
- package/dist/types/components/menu/menu-interface.d.ts +5 -2
- package/dist/types/components/menu/menu.d.ts +6 -6
- package/dist/types/components/radio/radio.d.ts +1 -1
- package/dist/types/components/segment/segment.d.ts +21 -1
- package/dist/types/components/segment-button/segment-button.d.ts +4 -0
- package/dist/types/components/segment-content/segment-content.d.ts +4 -0
- package/dist/types/components/segment-view/segment-view-interface.d.ts +4 -0
- package/dist/types/components/segment-view/segment-view.d.ts +55 -0
- package/dist/types/components/select/select-interface.d.ts +1 -1
- package/dist/types/components/select/select.d.ts +5 -4
- package/dist/types/components/select-modal/select-modal-interface.d.ts +10 -0
- package/dist/types/components/select-modal/select-modal.d.ts +16 -0
- package/dist/types/components/select-modal/test/fixtures.d.ts +16 -0
- package/dist/types/components/textarea/textarea.d.ts +3 -0
- package/dist/types/components.d.ts +103 -13
- package/dist/types/utils/overlays-interface.d.ts +1 -1
- package/hydrate/index.js +708 -225
- package/hydrate/index.mjs +708 -225
- package/package.json +1 -1
- package/dist/esm-es5/overlays-9c75ec54.js +0 -4
- package/dist/ionic/p-0fa0c92b.entry.js +0 -4
- package/dist/ionic/p-100b83fd.system.entry.js +0 -4
- package/dist/ionic/p-2200e26b.entry.js +0 -4
- package/dist/ionic/p-2b7c93b4.entry.js +0 -4
- package/dist/ionic/p-2c4bdd9d.entry.js +0 -4
- package/dist/ionic/p-44d1539c.system.entry.js +0 -4
- package/dist/ionic/p-53854390.entry.js +0 -4
- package/dist/ionic/p-72ffd137.system.entry.js +0 -4
- package/dist/ionic/p-82ab7ccb.entry.js +0 -4
- package/dist/ionic/p-9172535c.entry.js +0 -4
- package/dist/ionic/p-93f37ceb.system.entry.js +0 -4
- package/dist/ionic/p-98871496.system.js +0 -4
- package/dist/ionic/p-9c23044d.entry.js +0 -4
- package/dist/ionic/p-a0c88dc2.system.entry.js +0 -4
- package/dist/ionic/p-a440397c.js +0 -4
- package/dist/ionic/p-a72fb8a1.system.entry.js +0 -4
- package/dist/ionic/p-ab8a2ff1.entry.js +0 -4
- package/dist/ionic/p-b4c950f8.entry.js +0 -4
- package/dist/ionic/p-bfa2e81c.entry.js +0 -4
- package/dist/ionic/p-d77e12ca.entry.js +0 -4
- package/dist/ionic/p-f88ebc36.entry.js +0 -4
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
:host {
|
|
2
|
+
display: flex;
|
|
3
|
+
height: 100%;
|
|
4
|
+
overflow-x: scroll;
|
|
5
|
+
scroll-snap-type: x mandatory;
|
|
6
|
+
/* Hide scrollbar in Firefox */
|
|
7
|
+
scrollbar-width: none;
|
|
8
|
+
/* Hide scrollbar in IE and Edge */
|
|
9
|
+
-ms-overflow-style: none;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/* Hide scrollbar in webkit */
|
|
13
|
+
:host::-webkit-scrollbar {
|
|
14
|
+
display: none;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
:host(.segment-view-disabled) {
|
|
18
|
+
touch-action: none;
|
|
19
|
+
overflow-x: hidden;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
:host(.segment-view-scroll-disabled) {
|
|
23
|
+
pointer-events: none;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Convert a font size to a dynamic font size.
|
|
28
|
+
* Fonts that participate in Dynamic Type should use
|
|
29
|
+
* dynamic font sizes.
|
|
30
|
+
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
31
|
+
* @param unit (optional) - The unit to convert to. Use this if you want to
|
|
32
|
+
* convert to a unit other than $baselineUnit.
|
|
33
|
+
*/
|
|
34
|
+
/**
|
|
35
|
+
* Convert a font size to a dynamic font size but impose
|
|
36
|
+
* a maximum font size.
|
|
37
|
+
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
38
|
+
* @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
|
|
39
|
+
* @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
|
|
40
|
+
* convert to a unit other than $baselineUnit.
|
|
41
|
+
*/
|
|
42
|
+
/**
|
|
43
|
+
* Convert a font size to a dynamic font size but impose
|
|
44
|
+
* a minimum font size.
|
|
45
|
+
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
46
|
+
* @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
|
|
47
|
+
* @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
|
|
48
|
+
* convert to a unit other than $baselineUnit.
|
|
49
|
+
*/
|
|
50
|
+
/**
|
|
51
|
+
* Convert a font size to a dynamic font size but impose
|
|
52
|
+
* maximum and minimum font sizes.
|
|
53
|
+
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
54
|
+
* @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
|
|
55
|
+
* @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
|
|
56
|
+
* @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
|
|
57
|
+
* convert to a unit other than $baselineUnit.
|
|
58
|
+
*/
|
|
59
|
+
/**
|
|
60
|
+
* A heuristic that applies CSS to tablet
|
|
61
|
+
* viewports.
|
|
62
|
+
*
|
|
63
|
+
* Usage:
|
|
64
|
+
* @include tablet-viewport() {
|
|
65
|
+
* :host {
|
|
66
|
+
* background-color: green;
|
|
67
|
+
* }
|
|
68
|
+
* }
|
|
69
|
+
*/
|
|
70
|
+
/**
|
|
71
|
+
* A heuristic that applies CSS to mobile
|
|
72
|
+
* viewports (i.e. phones, not tablets).
|
|
73
|
+
*
|
|
74
|
+
* Usage:
|
|
75
|
+
* @include mobile-viewport() {
|
|
76
|
+
* :host {
|
|
77
|
+
* background-color: blue;
|
|
78
|
+
* }
|
|
79
|
+
* }
|
|
80
|
+
*/
|
|
81
|
+
:host(.segment-view-disabled) {
|
|
82
|
+
opacity: 0.3;
|
|
83
|
+
}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
+
*/
|
|
4
|
+
import { Host, h } from "@stencil/core";
|
|
5
|
+
export class SegmentView {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.scrollEndTimeout = null;
|
|
8
|
+
this.isTouching = false;
|
|
9
|
+
this.disabled = false;
|
|
10
|
+
this.isManualScroll = undefined;
|
|
11
|
+
}
|
|
12
|
+
handleScroll(ev) {
|
|
13
|
+
var _a;
|
|
14
|
+
const { scrollLeft, scrollWidth, clientWidth } = ev.target;
|
|
15
|
+
const scrollRatio = scrollLeft / (scrollWidth - clientWidth);
|
|
16
|
+
this.ionSegmentViewScroll.emit({
|
|
17
|
+
scrollRatio,
|
|
18
|
+
isManualScroll: (_a = this.isManualScroll) !== null && _a !== void 0 ? _a : true,
|
|
19
|
+
});
|
|
20
|
+
// Reset the timeout to check for scroll end
|
|
21
|
+
this.resetScrollEndTimeout();
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Handle touch start event to know when the user is actively dragging the segment view.
|
|
25
|
+
*/
|
|
26
|
+
handleScrollStart() {
|
|
27
|
+
if (this.scrollEndTimeout) {
|
|
28
|
+
clearTimeout(this.scrollEndTimeout);
|
|
29
|
+
this.scrollEndTimeout = null;
|
|
30
|
+
}
|
|
31
|
+
this.isTouching = true;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Handle touch end event to know when the user is no longer dragging the segment view.
|
|
35
|
+
*/
|
|
36
|
+
handleTouchEnd() {
|
|
37
|
+
this.isTouching = false;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Reset the scroll end detection timer. This is called on every scroll event.
|
|
41
|
+
*/
|
|
42
|
+
resetScrollEndTimeout() {
|
|
43
|
+
if (this.scrollEndTimeout) {
|
|
44
|
+
clearTimeout(this.scrollEndTimeout);
|
|
45
|
+
this.scrollEndTimeout = null;
|
|
46
|
+
}
|
|
47
|
+
this.scrollEndTimeout = setTimeout(() => {
|
|
48
|
+
this.checkForScrollEnd();
|
|
49
|
+
},
|
|
50
|
+
// Setting this to a lower value may result in inconsistencies in behavior
|
|
51
|
+
// across browsers (particularly Firefox).
|
|
52
|
+
// Ideally, all of this logic is removed once the scroll end event is
|
|
53
|
+
// supported on all browsers (https://caniuse.com/?search=scrollend)
|
|
54
|
+
100);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Check if the scroll has ended and the user is not actively touching.
|
|
58
|
+
* If the conditions are met (active content is enabled and no active touch),
|
|
59
|
+
* reset the scroll position and emit the scroll end event.
|
|
60
|
+
*/
|
|
61
|
+
checkForScrollEnd() {
|
|
62
|
+
// Only emit scroll end event if the active content is not disabled and
|
|
63
|
+
// the user is not touching the segment view
|
|
64
|
+
if (!this.isTouching) {
|
|
65
|
+
this.isManualScroll = undefined;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* @internal
|
|
70
|
+
*
|
|
71
|
+
* This method is used to programmatically set the displayed segment content
|
|
72
|
+
* in the segment view. Calling this method will update the `value` of the
|
|
73
|
+
* corresponding segment button.
|
|
74
|
+
*
|
|
75
|
+
* @param id: The id of the segment content to display.
|
|
76
|
+
* @param smoothScroll: Whether to animate the scroll transition.
|
|
77
|
+
*/
|
|
78
|
+
async setContent(id, smoothScroll = true) {
|
|
79
|
+
const contents = this.getSegmentContents();
|
|
80
|
+
const index = contents.findIndex((content) => content.id === id);
|
|
81
|
+
if (index === -1)
|
|
82
|
+
return;
|
|
83
|
+
this.isManualScroll = false;
|
|
84
|
+
this.resetScrollEndTimeout();
|
|
85
|
+
const contentWidth = this.el.offsetWidth;
|
|
86
|
+
this.el.scrollTo({
|
|
87
|
+
top: 0,
|
|
88
|
+
left: index * contentWidth,
|
|
89
|
+
behavior: smoothScroll ? 'smooth' : 'instant',
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
getSegmentContents() {
|
|
93
|
+
return Array.from(this.el.querySelectorAll('ion-segment-content'));
|
|
94
|
+
}
|
|
95
|
+
render() {
|
|
96
|
+
const { disabled, isManualScroll } = this;
|
|
97
|
+
return (h(Host, { key: '9f4f11d31c4db776f077e59ae895b35dd4454717', class: {
|
|
98
|
+
'segment-view-disabled': disabled,
|
|
99
|
+
'segment-view-scroll-disabled': isManualScroll === false,
|
|
100
|
+
} }, h("slot", { key: 'ea58b21f031cee2ab2b70580f336deaefa364538' })));
|
|
101
|
+
}
|
|
102
|
+
static get is() { return "ion-segment-view"; }
|
|
103
|
+
static get encapsulation() { return "shadow"; }
|
|
104
|
+
static get originalStyleUrls() {
|
|
105
|
+
return {
|
|
106
|
+
"ios": ["segment-view.ios.scss"],
|
|
107
|
+
"md": ["segment-view.md.scss"]
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
static get styleUrls() {
|
|
111
|
+
return {
|
|
112
|
+
"ios": ["segment-view.ios.css"],
|
|
113
|
+
"md": ["segment-view.md.css"]
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
static get properties() {
|
|
117
|
+
return {
|
|
118
|
+
"disabled": {
|
|
119
|
+
"type": "boolean",
|
|
120
|
+
"mutable": false,
|
|
121
|
+
"complexType": {
|
|
122
|
+
"original": "boolean",
|
|
123
|
+
"resolved": "boolean",
|
|
124
|
+
"references": {}
|
|
125
|
+
},
|
|
126
|
+
"required": false,
|
|
127
|
+
"optional": false,
|
|
128
|
+
"docs": {
|
|
129
|
+
"tags": [],
|
|
130
|
+
"text": "If `true`, the segment view cannot be interacted with."
|
|
131
|
+
},
|
|
132
|
+
"attribute": "disabled",
|
|
133
|
+
"reflect": false,
|
|
134
|
+
"defaultValue": "false"
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
static get states() {
|
|
139
|
+
return {
|
|
140
|
+
"isManualScroll": {}
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
static get events() {
|
|
144
|
+
return [{
|
|
145
|
+
"method": "ionSegmentViewScroll",
|
|
146
|
+
"name": "ionSegmentViewScroll",
|
|
147
|
+
"bubbles": true,
|
|
148
|
+
"cancelable": true,
|
|
149
|
+
"composed": true,
|
|
150
|
+
"docs": {
|
|
151
|
+
"tags": [],
|
|
152
|
+
"text": "Emitted when the segment view is scrolled."
|
|
153
|
+
},
|
|
154
|
+
"complexType": {
|
|
155
|
+
"original": "SegmentViewScrollEvent",
|
|
156
|
+
"resolved": "SegmentViewScrollEvent",
|
|
157
|
+
"references": {
|
|
158
|
+
"SegmentViewScrollEvent": {
|
|
159
|
+
"location": "import",
|
|
160
|
+
"path": "./segment-view-interface",
|
|
161
|
+
"id": "src/components/segment-view/segment-view-interface.ts::SegmentViewScrollEvent"
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}];
|
|
166
|
+
}
|
|
167
|
+
static get methods() {
|
|
168
|
+
return {
|
|
169
|
+
"setContent": {
|
|
170
|
+
"complexType": {
|
|
171
|
+
"signature": "(id: string, smoothScroll?: boolean) => Promise<void>",
|
|
172
|
+
"parameters": [{
|
|
173
|
+
"name": "id",
|
|
174
|
+
"type": "string",
|
|
175
|
+
"docs": ": The id of the segment content to display."
|
|
176
|
+
}, {
|
|
177
|
+
"name": "smoothScroll",
|
|
178
|
+
"type": "boolean",
|
|
179
|
+
"docs": ": Whether to animate the scroll transition."
|
|
180
|
+
}],
|
|
181
|
+
"references": {
|
|
182
|
+
"Promise": {
|
|
183
|
+
"location": "global",
|
|
184
|
+
"id": "global::Promise"
|
|
185
|
+
}
|
|
186
|
+
},
|
|
187
|
+
"return": "Promise<void>"
|
|
188
|
+
},
|
|
189
|
+
"docs": {
|
|
190
|
+
"text": "",
|
|
191
|
+
"tags": [{
|
|
192
|
+
"name": "internal",
|
|
193
|
+
"text": "This method is used to programmatically set the displayed segment content\nin the segment view. Calling this method will update the `value` of the\ncorresponding segment button."
|
|
194
|
+
}, {
|
|
195
|
+
"name": "param",
|
|
196
|
+
"text": "id : The id of the segment content to display."
|
|
197
|
+
}, {
|
|
198
|
+
"name": "param",
|
|
199
|
+
"text": "smoothScroll : Whether to animate the scroll transition."
|
|
200
|
+
}]
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
static get elementRef() { return "el"; }
|
|
206
|
+
static get listeners() {
|
|
207
|
+
return [{
|
|
208
|
+
"name": "scroll",
|
|
209
|
+
"method": "handleScroll",
|
|
210
|
+
"target": undefined,
|
|
211
|
+
"capture": false,
|
|
212
|
+
"passive": true
|
|
213
|
+
}, {
|
|
214
|
+
"name": "touchstart",
|
|
215
|
+
"method": "handleScrollStart",
|
|
216
|
+
"target": undefined,
|
|
217
|
+
"capture": false,
|
|
218
|
+
"passive": true
|
|
219
|
+
}, {
|
|
220
|
+
"name": "touchend",
|
|
221
|
+
"method": "handleTouchEnd",
|
|
222
|
+
"target": undefined,
|
|
223
|
+
"capture": false,
|
|
224
|
+
"passive": true
|
|
225
|
+
}];
|
|
226
|
+
}
|
|
227
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
:host {
|
|
2
|
+
display: flex;
|
|
3
|
+
height: 100%;
|
|
4
|
+
overflow-x: scroll;
|
|
5
|
+
scroll-snap-type: x mandatory;
|
|
6
|
+
/* Hide scrollbar in Firefox */
|
|
7
|
+
scrollbar-width: none;
|
|
8
|
+
/* Hide scrollbar in IE and Edge */
|
|
9
|
+
-ms-overflow-style: none;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/* Hide scrollbar in webkit */
|
|
13
|
+
:host::-webkit-scrollbar {
|
|
14
|
+
display: none;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
:host(.segment-view-disabled) {
|
|
18
|
+
touch-action: none;
|
|
19
|
+
overflow-x: hidden;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
:host(.segment-view-scroll-disabled) {
|
|
23
|
+
pointer-events: none;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Convert a font size to a dynamic font size.
|
|
28
|
+
* Fonts that participate in Dynamic Type should use
|
|
29
|
+
* dynamic font sizes.
|
|
30
|
+
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
31
|
+
* @param unit (optional) - The unit to convert to. Use this if you want to
|
|
32
|
+
* convert to a unit other than $baselineUnit.
|
|
33
|
+
*/
|
|
34
|
+
/**
|
|
35
|
+
* Convert a font size to a dynamic font size but impose
|
|
36
|
+
* a maximum font size.
|
|
37
|
+
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
38
|
+
* @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
|
|
39
|
+
* @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
|
|
40
|
+
* convert to a unit other than $baselineUnit.
|
|
41
|
+
*/
|
|
42
|
+
/**
|
|
43
|
+
* Convert a font size to a dynamic font size but impose
|
|
44
|
+
* a minimum font size.
|
|
45
|
+
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
46
|
+
* @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
|
|
47
|
+
* @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
|
|
48
|
+
* convert to a unit other than $baselineUnit.
|
|
49
|
+
*/
|
|
50
|
+
/**
|
|
51
|
+
* Convert a font size to a dynamic font size but impose
|
|
52
|
+
* maximum and minimum font sizes.
|
|
53
|
+
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
54
|
+
* @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
|
|
55
|
+
* @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
|
|
56
|
+
* @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
|
|
57
|
+
* convert to a unit other than $baselineUnit.
|
|
58
|
+
*/
|
|
59
|
+
/**
|
|
60
|
+
* A heuristic that applies CSS to tablet
|
|
61
|
+
* viewports.
|
|
62
|
+
*
|
|
63
|
+
* Usage:
|
|
64
|
+
* @include tablet-viewport() {
|
|
65
|
+
* :host {
|
|
66
|
+
* background-color: green;
|
|
67
|
+
* }
|
|
68
|
+
* }
|
|
69
|
+
*/
|
|
70
|
+
/**
|
|
71
|
+
* A heuristic that applies CSS to mobile
|
|
72
|
+
* viewports (i.e. phones, not tablets).
|
|
73
|
+
*
|
|
74
|
+
* Usage:
|
|
75
|
+
* @include mobile-viewport() {
|
|
76
|
+
* :host {
|
|
77
|
+
* background-color: blue;
|
|
78
|
+
* }
|
|
79
|
+
* }
|
|
80
|
+
*/
|
|
81
|
+
:host(.segment-view-disabled) {
|
|
82
|
+
opacity: 0.3;
|
|
83
|
+
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import { Host, h, forceUpdate } from "@stencil/core";
|
|
5
5
|
import { compareOptions, createNotchController, isOptionSelected } from "../../utils/forms/index";
|
|
6
6
|
import { focusVisibleElement, renderHiddenInput, inheritAttributes } from "../../utils/helpers";
|
|
7
|
-
import { actionSheetController, alertController, popoverController } from "../../utils/overlays";
|
|
7
|
+
import { actionSheetController, alertController, popoverController, modalController } from "../../utils/overlays";
|
|
8
8
|
import { isRTL } from "../../utils/rtl/index";
|
|
9
9
|
import { createColorClasses, hostContext } from "../../utils/theme";
|
|
10
10
|
import { watchForOptions } from "../../utils/watch-options";
|
|
@@ -160,13 +160,12 @@ export class Select {
|
|
|
160
160
|
this.setFocus();
|
|
161
161
|
});
|
|
162
162
|
await overlay.present();
|
|
163
|
-
// focus selected option for popovers
|
|
164
|
-
if (this.interface === 'popover') {
|
|
165
|
-
const indexOfSelected = this.childOpts.
|
|
163
|
+
// focus selected option for popovers and modals
|
|
164
|
+
if (this.interface === 'popover' || this.interface === 'modal') {
|
|
165
|
+
const indexOfSelected = this.childOpts.findIndex((o) => o.value === this.value);
|
|
166
166
|
if (indexOfSelected > -1) {
|
|
167
167
|
const selectedItem = overlay.querySelector(`.select-interface-option:nth-child(${indexOfSelected + 1})`);
|
|
168
168
|
if (selectedItem) {
|
|
169
|
-
focusVisibleElement(selectedItem);
|
|
170
169
|
/**
|
|
171
170
|
* Browsers such as Firefox do not
|
|
172
171
|
* correctly delegate focus when manually
|
|
@@ -180,8 +179,11 @@ export class Select {
|
|
|
180
179
|
*/
|
|
181
180
|
const interactiveEl = selectedItem.querySelector('ion-radio, ion-checkbox');
|
|
182
181
|
if (interactiveEl) {
|
|
183
|
-
|
|
182
|
+
// Needs to be called before `focusVisibleElement` to prevent issue with focus event bubbling
|
|
183
|
+
// and removing `ion-focused` style
|
|
184
|
+
interactiveEl.setFocus();
|
|
184
185
|
}
|
|
186
|
+
focusVisibleElement(selectedItem);
|
|
185
187
|
}
|
|
186
188
|
}
|
|
187
189
|
else {
|
|
@@ -190,11 +192,14 @@ export class Select {
|
|
|
190
192
|
*/
|
|
191
193
|
const firstEnabledOption = overlay.querySelector('ion-radio:not(.radio-disabled), ion-checkbox:not(.checkbox-disabled)');
|
|
192
194
|
if (firstEnabledOption) {
|
|
193
|
-
focusVisibleElement(firstEnabledOption.closest('ion-item'));
|
|
194
195
|
/**
|
|
195
196
|
* Focus the option for the same reason as we do above.
|
|
197
|
+
*
|
|
198
|
+
* Needs to be called before `focusVisibleElement` to prevent issue with focus event bubbling
|
|
199
|
+
* and removing `ion-focused` style
|
|
196
200
|
*/
|
|
197
|
-
firstEnabledOption.
|
|
201
|
+
firstEnabledOption.setFocus();
|
|
202
|
+
focusVisibleElement(firstEnabledOption.closest('ion-item'));
|
|
198
203
|
}
|
|
199
204
|
}
|
|
200
205
|
}
|
|
@@ -216,6 +221,9 @@ export class Select {
|
|
|
216
221
|
if (selectInterface === 'popover') {
|
|
217
222
|
return this.openPopover(ev);
|
|
218
223
|
}
|
|
224
|
+
if (selectInterface === 'modal') {
|
|
225
|
+
return this.openModal();
|
|
226
|
+
}
|
|
219
227
|
return this.openAlert();
|
|
220
228
|
}
|
|
221
229
|
updateOverlayOptions() {
|
|
@@ -232,7 +240,13 @@ export class Select {
|
|
|
232
240
|
case 'popover':
|
|
233
241
|
const popover = overlay.querySelector('ion-select-popover');
|
|
234
242
|
if (popover) {
|
|
235
|
-
popover.options = this.
|
|
243
|
+
popover.options = this.createOverlaySelectOptions(childOpts, value);
|
|
244
|
+
}
|
|
245
|
+
break;
|
|
246
|
+
case 'modal':
|
|
247
|
+
const modal = overlay.querySelector('ion-select-modal');
|
|
248
|
+
if (modal) {
|
|
249
|
+
modal.options = this.createOverlaySelectOptions(childOpts, value);
|
|
236
250
|
}
|
|
237
251
|
break;
|
|
238
252
|
case 'alert':
|
|
@@ -287,7 +301,7 @@ export class Select {
|
|
|
287
301
|
});
|
|
288
302
|
return alertInputs;
|
|
289
303
|
}
|
|
290
|
-
|
|
304
|
+
createOverlaySelectOptions(data, selectValue) {
|
|
291
305
|
const popoverOptions = data.map((option) => {
|
|
292
306
|
const value = getOptionValue(option);
|
|
293
307
|
// Remove hydrated before copying over classes
|
|
@@ -347,7 +361,7 @@ export class Select {
|
|
|
347
361
|
message: interfaceOptions.message,
|
|
348
362
|
multiple,
|
|
349
363
|
value,
|
|
350
|
-
options: this.
|
|
364
|
+
options: this.createOverlaySelectOptions(this.childOpts, value),
|
|
351
365
|
} });
|
|
352
366
|
/**
|
|
353
367
|
* Workaround for Stencil to autodefine
|
|
@@ -416,6 +430,29 @@ export class Select {
|
|
|
416
430
|
}
|
|
417
431
|
return alertController.create(alertOpts);
|
|
418
432
|
}
|
|
433
|
+
openModal() {
|
|
434
|
+
const { multiple, value, interfaceOptions } = this;
|
|
435
|
+
const mode = getIonMode(this);
|
|
436
|
+
const modalOpts = Object.assign(Object.assign({}, interfaceOptions), { mode, cssClass: ['select-modal', interfaceOptions.cssClass], component: 'ion-select-modal', componentProps: {
|
|
437
|
+
header: interfaceOptions.header,
|
|
438
|
+
multiple,
|
|
439
|
+
value,
|
|
440
|
+
options: this.createOverlaySelectOptions(this.childOpts, value),
|
|
441
|
+
} });
|
|
442
|
+
/**
|
|
443
|
+
* Workaround for Stencil to autodefine
|
|
444
|
+
* ion-select-modal and ion-modal when
|
|
445
|
+
* using Custom Elements build.
|
|
446
|
+
*/
|
|
447
|
+
// eslint-disable-next-line
|
|
448
|
+
if (false) {
|
|
449
|
+
// eslint-disable-next-line
|
|
450
|
+
// @ts-ignore
|
|
451
|
+
document.createElement('ion-select-modal');
|
|
452
|
+
document.createElement('ion-modal');
|
|
453
|
+
}
|
|
454
|
+
return modalController.create(modalOpts);
|
|
455
|
+
}
|
|
419
456
|
/**
|
|
420
457
|
* Close the select interface.
|
|
421
458
|
*/
|
|
@@ -623,7 +660,7 @@ export class Select {
|
|
|
623
660
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
624
661
|
*/
|
|
625
662
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
|
|
626
|
-
return (h(Host, { key: '
|
|
663
|
+
return (h(Host, { key: '144dfa5c49549a74fe516c65b9b8104a477ac789', onClick: this.onClick, class: createColorClasses(this.color, {
|
|
627
664
|
[mode]: true,
|
|
628
665
|
'in-item': inItem,
|
|
629
666
|
'in-item-color': hostContext('ion-item.ion-color', el),
|
|
@@ -639,7 +676,7 @@ export class Select {
|
|
|
639
676
|
[`select-justify-${justify}`]: justifyEnabled,
|
|
640
677
|
[`select-shape-${shape}`]: shape !== undefined,
|
|
641
678
|
[`select-label-placement-${labelPlacement}`]: true,
|
|
642
|
-
}) }, h("label", { key: '
|
|
679
|
+
}) }, h("label", { key: '0edcfcbac575a9dccc77991531b6980d1caebf42', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), h("div", { key: '348151d90cb093f5d21c7d4a834264ac4a312c40', class: "select-wrapper-inner" }, h("slot", { key: '8b7708c7f81217435c58276da0c08bba766d9500', name: "start" }), h("div", { key: '10c520a335da0a0d1cf40f9365597beb244d3b48', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '0f15c40a5495e98e29d2a21ba21e0bc6f1c0125a', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: 'c87faad2e5ebf7f9453397d7ede43abd64d21294', class: "select-highlight" }))));
|
|
643
680
|
}
|
|
644
681
|
static get is() { return "ion-select"; }
|
|
645
682
|
static get encapsulation() { return "shadow"; }
|
|
@@ -761,7 +798,7 @@ export class Select {
|
|
|
761
798
|
"mutable": false,
|
|
762
799
|
"complexType": {
|
|
763
800
|
"original": "SelectInterface",
|
|
764
|
-
"resolved": "\"action-sheet\" | \"alert\" | \"popover\"",
|
|
801
|
+
"resolved": "\"action-sheet\" | \"alert\" | \"modal\" | \"popover\"",
|
|
765
802
|
"references": {
|
|
766
803
|
"SelectInterface": {
|
|
767
804
|
"location": "import",
|
|
@@ -774,7 +811,7 @@ export class Select {
|
|
|
774
811
|
"optional": false,
|
|
775
812
|
"docs": {
|
|
776
813
|
"tags": [],
|
|
777
|
-
"text": "The interface the select should use: `action-sheet`, `popover` or `
|
|
814
|
+
"text": "The interface the select should use: `action-sheet`, `popover`, `alert`, or `modal`."
|
|
778
815
|
},
|
|
779
816
|
"attribute": "interface",
|
|
780
817
|
"reflect": false,
|
|
@@ -792,7 +829,7 @@ export class Select {
|
|
|
792
829
|
"optional": false,
|
|
793
830
|
"docs": {
|
|
794
831
|
"tags": [],
|
|
795
|
-
"text": "Any additional options that the `alert`, `action-sheet` or `popover` interface\ncan take. See the [ion-alert docs](./alert), the\n[ion-action-sheet docs](./action-sheet)
|
|
832
|
+
"text": "Any additional options that the `alert`, `action-sheet` or `popover` interface\ncan take. See the [ion-alert docs](./alert), the\n[ion-action-sheet docs](./action-sheet), the\n[ion-popover docs](./popover), and the [ion-modal docs](./modal) for the\ncreate options for each interface.\n\nNote: `interfaceOptions` will not override `inputs` or `buttons` with the `alert` interface."
|
|
796
833
|
},
|
|
797
834
|
"attribute": "interface-options",
|
|
798
835
|
"reflect": false,
|
|
@@ -1143,6 +1180,14 @@ export class Select {
|
|
|
1143
1180
|
"HTMLElement": {
|
|
1144
1181
|
"location": "global",
|
|
1145
1182
|
"id": "global::HTMLElement"
|
|
1183
|
+
},
|
|
1184
|
+
"HTMLIonRadioElement": {
|
|
1185
|
+
"location": "global",
|
|
1186
|
+
"id": "global::HTMLIonRadioElement"
|
|
1187
|
+
},
|
|
1188
|
+
"HTMLIonCheckboxElement": {
|
|
1189
|
+
"location": "global",
|
|
1190
|
+
"id": "global::HTMLIonCheckboxElement"
|
|
1146
1191
|
}
|
|
1147
1192
|
},
|
|
1148
1193
|
"return": "Promise<any>"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|