voyager-ionic-core 8.3.4 → 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/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 +3 -3
- 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 +2 -2
- 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/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 +1 -1
- package/dist/cjs/ion-alert.cjs.entry.js +7 -5
- 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 +6 -6
- 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 +3 -3
- 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 +2 -2
- package/dist/cjs/ion-menu_3.cjs.entry.js +23 -23
- package/dist/cjs/ion-modal.cjs.entry.js +4 -4
- 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 +2 -2
- 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 +39 -14
- 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 +2 -2
- package/dist/cjs/ion-toast.cjs.entry.js +2 -2
- 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/collection/collection-manifest.json +3 -0
- 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 +3 -3
- 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 +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 +3 -3
- package/dist/collection/components/toolbar/toolbar.js +2 -2
- package/dist/collection/utils/menu-controller/index.js +2 -2
- package/dist/docs.json +426 -29
- package/dist/esm/{index-fe1782b1.js → index-24b48b06.js} +2 -2
- package/dist/esm/index.js +1 -1
- package/dist/esm/ion-alert.entry.js +7 -5
- 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 +6 -6
- 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 +3 -3
- 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 +2 -2
- package/dist/esm/ion-menu_3.entry.js +24 -24
- package/dist/esm/ion-modal.entry.js +4 -4
- 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 +2 -2
- 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 +2 -2
- package/dist/esm/ion-toast.entry.js +2 -2
- 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-es5/{index-fe1782b1.js → index-24b48b06.js} +1 -1
- package/dist/esm-es5/index.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/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-0790b342.system.entry.js → p-0161caf9.system.entry.js} +1 -1
- package/dist/ionic/p-0437ace4.system.entry.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-d754c709.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-148b8abb.entry.js → p-2fc0dafe.entry.js} +1 -1
- package/dist/ionic/p-322c5fb4.system.js +2 -2
- package/dist/ionic/{p-60cc7986.entry.js → p-33a8a71b.entry.js} +1 -1
- package/dist/ionic/{p-18105026.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-be71fe0f.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-6d50faff.entry.js → p-4a274c89.entry.js} +1 -1
- package/dist/ionic/{p-41c89b8d.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-79e7be3a.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-c71f301f.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-f0ab13a8.system.entry.js → p-5bd39e5e.system.entry.js} +2 -2
- package/dist/ionic/{p-5800e441.entry.js → p-5f79d8c5.entry.js} +1 -1
- package/dist/ionic/{p-53add985.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-79b12fda.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-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-d58f21d2.entry.js → p-a1051806.entry.js} +1 -1
- package/dist/ionic/{p-6ceb04b5.entry.js → p-a1b9a163.entry.js} +1 -1
- 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-be715dd3.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-9e208825.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-dda5c73d.entry.js → p-e563a35c.entry.js} +1 -1
- 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/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.d.ts +103 -13
- package/dist/types/utils/overlays-interface.d.ts +1 -1
- package/hydrate/index.js +610 -212
- package/hydrate/index.mjs +610 -212
- package/package.json +1 -1
- package/dist/ionic/p-110e03be.system.entry.js +0 -4
- package/dist/ionic/p-2200e26b.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-63d65dbc.system.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-87a4407b.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-9895e7f3.entry.js +0 -4
- package/dist/ionic/p-a0c88dc2.system.entry.js +0 -4
- package/dist/ionic/p-a89dac49.entry.js +0 -4
- package/dist/ionic/p-f88ebc36.entry.js +0 -4
|
@@ -827,7 +827,7 @@ const Refresher = class {
|
|
|
827
827
|
}
|
|
828
828
|
render() {
|
|
829
829
|
const mode = ionicGlobal.getIonMode(this);
|
|
830
|
-
return (index.h(index.Host, { key: '
|
|
830
|
+
return (index.h(index.Host, { key: '9d4ac22988aec2c6af0b0c90934c52f62f0e4ce3', slot: "fixed", class: {
|
|
831
831
|
[mode]: true,
|
|
832
832
|
// Used internally for styling
|
|
833
833
|
[`refresher-${mode}`]: true,
|
|
@@ -894,7 +894,7 @@ const RefresherContent = class {
|
|
|
894
894
|
const pullingIcon = this.pullingIcon;
|
|
895
895
|
const hasSpinner = pullingIcon != null && spinnerConfigs.SPINNERS[pullingIcon] !== undefined;
|
|
896
896
|
const mode = ionicGlobal.getIonMode(this);
|
|
897
|
-
return (index.h(index.Host, { key: '
|
|
897
|
+
return (index.h(index.Host, { key: '19633bbcf02e3dba885d6bdcdaf2269bf4c8e2f5', class: mode }, index.h("div", { key: '28922e434a55a6cac0476fe2bee56941ce0d1c02', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (index.h("div", { key: 'fe575bf996021884677e9b23a3215d63caf894f5', class: "refresher-pulling-icon" }, index.h("div", { key: '59fe12297fd95bc33b8df8cd35316e2a1c084d91', class: "spinner-arrow-container" }, index.h("ion-spinner", { key: 'af9cc013ae04945c140b2865610ca73edb52ab48', name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (index.h("div", { key: '34df66ad1b0f706a0532957251aa2c20bf4587d8', class: "arrow-container" }, index.h("ion-icon", { key: 'ffdb5c123e606b823491c6c51cc2b497f62581bb', icon: index$2.caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (index.h("div", { key: 'ac3a2032bb969264d20fa057e9123441005d7a9d', class: "refresher-pulling-icon" }, index.h("ion-icon", { key: 'd969d10915548e72aae289b52154366f3dd39b31', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), index.h("div", { key: 'a8f854f81a94812d7bef8ce088331d94f49ff53d', class: "refresher-refreshing" }, this.refreshingSpinner && (index.h("div", { key: 'a1f646945370e40c844d62bc0c647443ae9dfbe7', class: "refresher-refreshing-icon" }, index.h("ion-spinner", { key: 'ab3ff4047769b6436e222b46d193c1e8b23e2fce', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
|
|
898
898
|
}
|
|
899
899
|
get el() { return index.getElement(this); }
|
|
900
900
|
};
|
|
@@ -37,7 +37,7 @@ const Reorder = class {
|
|
|
37
37
|
render() {
|
|
38
38
|
const mode = ionicGlobal.getIonMode(this);
|
|
39
39
|
const reorderIcon = mode === 'ios' ? index$1.reorderThreeOutline : index$1.reorderTwoSharp;
|
|
40
|
-
return (index.h(index.Host, { key: '
|
|
40
|
+
return (index.h(index.Host, { key: '27266e30bcb7e10c57fb6d546399cfb1f1c93b23', class: mode }, index.h("slot", { key: '8745cb9a31458e884c27eed1fb90d104fe9a79eb' }, index.h("ion-icon", { key: '6c4b9631a2f5610f1e21b2db025b6702d0d593bf', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
|
|
41
41
|
}
|
|
42
42
|
get el() { return index.getElement(this); }
|
|
43
43
|
};
|
|
@@ -283,7 +283,7 @@ const ReorderGroup = class {
|
|
|
283
283
|
}
|
|
284
284
|
render() {
|
|
285
285
|
const mode = ionicGlobal.getIonMode(this);
|
|
286
|
-
return (index.h(index.Host, { key: '
|
|
286
|
+
return (index.h(index.Host, { key: 'a38c7fbceb677201330a602273d5b55abb32da19', class: {
|
|
287
287
|
[mode]: true,
|
|
288
288
|
'reorder-enabled': !this.disabled,
|
|
289
289
|
'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
|
|
@@ -68,7 +68,7 @@ const RippleEffect = class {
|
|
|
68
68
|
}
|
|
69
69
|
render() {
|
|
70
70
|
const mode = ionicGlobal.getIonMode(this);
|
|
71
|
-
return (index.h(index.Host, { key: '
|
|
71
|
+
return (index.h(index.Host, { key: '7ae559bda5d2c1856a45bfa150c2cb4f83373f8e', role: "presentation", class: {
|
|
72
72
|
[mode]: true,
|
|
73
73
|
unbounded: this.unbounded,
|
|
74
74
|
} }));
|
|
@@ -882,10 +882,10 @@ const RouterLink = class {
|
|
|
882
882
|
rel: this.rel,
|
|
883
883
|
target: this.target,
|
|
884
884
|
};
|
|
885
|
-
return (index.h(index.Host, { key: '
|
|
885
|
+
return (index.h(index.Host, { key: '529ceed5beaf92d7b4cc315c82f449eac18310e8', onClick: this.onClick, class: theme.createColorClasses(this.color, {
|
|
886
886
|
[mode]: true,
|
|
887
887
|
'ion-activatable': true,
|
|
888
|
-
}) }, index.h("a", Object.assign({ key: '
|
|
888
|
+
}) }, index.h("a", Object.assign({ key: 'd5f1f8b256695d70bdafd20ff3d1b625963fa2da' }, attrs), index.h("slot", { key: '613fcdb36a71e076f989551ea21f1d5c118b1cd2' }))));
|
|
889
889
|
}
|
|
890
890
|
};
|
|
891
891
|
RouterLink.style = IonRouterLinkStyle0;
|
|
@@ -393,8 +393,8 @@ const Searchbar = class {
|
|
|
393
393
|
const clearIcon = this.clearIcon || (mode === 'ios' ? index$1.closeCircle : index$1.closeSharp);
|
|
394
394
|
const searchIcon = this.searchIcon || (mode === 'ios' ? index$1.searchOutline : index$1.searchSharp);
|
|
395
395
|
const shouldShowCancelButton = this.shouldShowCancelButton();
|
|
396
|
-
const cancelButton = this.showCancelButton !== 'never' && (index.h("button", { key: '
|
|
397
|
-
return (index.h(index.Host, { key: '
|
|
396
|
+
const cancelButton = this.showCancelButton !== 'never' && (index.h("button", { key: '0ef595eb1628928d4c7fdb166b8e41768700fa6e', "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" }, index.h("div", { key: 'ea2c9b36d991acf5af7662059cb6b045f683ca94', "aria-hidden": "true" }, mode === 'md' ? (index.h("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
|
|
397
|
+
return (index.h(index.Host, { key: '17d57ece5852d03047e4d53ddad6c9d88a432a00', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: theme.createColorClasses(this.color, {
|
|
398
398
|
[mode]: true,
|
|
399
399
|
'searchbar-animated': animated,
|
|
400
400
|
'searchbar-disabled': this.disabled,
|
|
@@ -404,14 +404,14 @@ const Searchbar = class {
|
|
|
404
404
|
'searchbar-has-focus': this.focused,
|
|
405
405
|
'searchbar-should-show-clear': this.shouldShowClearButton(),
|
|
406
406
|
'searchbar-should-show-cancel': this.shouldShowCancelButton(),
|
|
407
|
-
}) }, index.h("div", { key: '
|
|
407
|
+
}) }, index.h("div", { key: 'f67c2124e70c24eef0a271516e9c4bdaf7e98ceb', class: "searchbar-input-container" }, index.h("input", Object.assign({ key: '8c7f7ccc6809cca30ccc8c4e98e349d3f916321d', "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, index.h("ion-icon", { key: 'f06524d3163b3883bbde937862aa1e0e8f49f6e1', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), index.h("button", { key: '9f7ba2bec93412ecb674b197be13db1de308bb57', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
|
|
408
408
|
/**
|
|
409
409
|
* This prevents mobile browsers from
|
|
410
410
|
* blurring the input when the clear
|
|
411
411
|
* button is activated.
|
|
412
412
|
*/
|
|
413
413
|
ev.preventDefault();
|
|
414
|
-
}, onClick: () => this.onClearInput(true) }, index.h("ion-icon", { key: '
|
|
414
|
+
}, onClick: () => this.onClearInput(true) }, index.h("ion-icon", { key: '19fc3dbc722acc47ff7eb3c94ad4de8aed38dff4', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
|
|
415
415
|
}
|
|
416
416
|
get el() { return index.getElement(this); }
|
|
417
417
|
static get watchers() { return {
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
+
*/
|
|
4
|
+
'use strict';
|
|
5
|
+
|
|
6
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
7
|
+
|
|
8
|
+
const index = require('./index-73f75efb.js');
|
|
9
|
+
|
|
10
|
+
const segmentContentCss = ":host{scroll-snap-align:center;scroll-snap-stop:always;-ms-flex-negative:0;flex-shrink:0;width:100%}";
|
|
11
|
+
const IonSegmentContentStyle0 = segmentContentCss;
|
|
12
|
+
|
|
13
|
+
const SegmentContent = class {
|
|
14
|
+
constructor(hostRef) {
|
|
15
|
+
index.registerInstance(this, hostRef);
|
|
16
|
+
}
|
|
17
|
+
render() {
|
|
18
|
+
return (index.h(index.Host, { key: '03684b2999ac64fe13e376fd7e7f279976e9d4f2' }, index.h("slot", { key: '143031075bf33ca19e7cfd76fc8a67b83ccaf11c' })));
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
SegmentContent.style = IonSegmentContentStyle0;
|
|
22
|
+
|
|
23
|
+
exports.ion_segment_content = SegmentContent;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
+
*/
|
|
4
|
+
'use strict';
|
|
5
|
+
|
|
6
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
7
|
+
|
|
8
|
+
const index = require('./index-73f75efb.js');
|
|
9
|
+
|
|
10
|
+
const segmentViewIosCss = ":host{display:-ms-flexbox;display:flex;height:100%;overflow-x:scroll;-webkit-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none}:host::-webkit-scrollbar{display:none}:host(.segment-view-disabled){-ms-touch-action:none;touch-action:none;overflow-x:hidden}:host(.segment-view-scroll-disabled){pointer-events:none}:host(.segment-view-disabled){opacity:0.3}";
|
|
11
|
+
const IonSegmentViewIosStyle0 = segmentViewIosCss;
|
|
12
|
+
|
|
13
|
+
const segmentViewMdCss = ":host{display:-ms-flexbox;display:flex;height:100%;overflow-x:scroll;-webkit-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none}:host::-webkit-scrollbar{display:none}:host(.segment-view-disabled){-ms-touch-action:none;touch-action:none;overflow-x:hidden}:host(.segment-view-scroll-disabled){pointer-events:none}:host(.segment-view-disabled){opacity:0.3}";
|
|
14
|
+
const IonSegmentViewMdStyle0 = segmentViewMdCss;
|
|
15
|
+
|
|
16
|
+
const SegmentView = class {
|
|
17
|
+
constructor(hostRef) {
|
|
18
|
+
index.registerInstance(this, hostRef);
|
|
19
|
+
this.ionSegmentViewScroll = index.createEvent(this, "ionSegmentViewScroll", 7);
|
|
20
|
+
this.scrollEndTimeout = null;
|
|
21
|
+
this.isTouching = false;
|
|
22
|
+
this.disabled = false;
|
|
23
|
+
this.isManualScroll = undefined;
|
|
24
|
+
}
|
|
25
|
+
handleScroll(ev) {
|
|
26
|
+
var _a;
|
|
27
|
+
const { scrollLeft, scrollWidth, clientWidth } = ev.target;
|
|
28
|
+
const scrollRatio = scrollLeft / (scrollWidth - clientWidth);
|
|
29
|
+
this.ionSegmentViewScroll.emit({
|
|
30
|
+
scrollRatio,
|
|
31
|
+
isManualScroll: (_a = this.isManualScroll) !== null && _a !== void 0 ? _a : true,
|
|
32
|
+
});
|
|
33
|
+
// Reset the timeout to check for scroll end
|
|
34
|
+
this.resetScrollEndTimeout();
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Handle touch start event to know when the user is actively dragging the segment view.
|
|
38
|
+
*/
|
|
39
|
+
handleScrollStart() {
|
|
40
|
+
if (this.scrollEndTimeout) {
|
|
41
|
+
clearTimeout(this.scrollEndTimeout);
|
|
42
|
+
this.scrollEndTimeout = null;
|
|
43
|
+
}
|
|
44
|
+
this.isTouching = true;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Handle touch end event to know when the user is no longer dragging the segment view.
|
|
48
|
+
*/
|
|
49
|
+
handleTouchEnd() {
|
|
50
|
+
this.isTouching = false;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Reset the scroll end detection timer. This is called on every scroll event.
|
|
54
|
+
*/
|
|
55
|
+
resetScrollEndTimeout() {
|
|
56
|
+
if (this.scrollEndTimeout) {
|
|
57
|
+
clearTimeout(this.scrollEndTimeout);
|
|
58
|
+
this.scrollEndTimeout = null;
|
|
59
|
+
}
|
|
60
|
+
this.scrollEndTimeout = setTimeout(() => {
|
|
61
|
+
this.checkForScrollEnd();
|
|
62
|
+
},
|
|
63
|
+
// Setting this to a lower value may result in inconsistencies in behavior
|
|
64
|
+
// across browsers (particularly Firefox).
|
|
65
|
+
// Ideally, all of this logic is removed once the scroll end event is
|
|
66
|
+
// supported on all browsers (https://caniuse.com/?search=scrollend)
|
|
67
|
+
100);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Check if the scroll has ended and the user is not actively touching.
|
|
71
|
+
* If the conditions are met (active content is enabled and no active touch),
|
|
72
|
+
* reset the scroll position and emit the scroll end event.
|
|
73
|
+
*/
|
|
74
|
+
checkForScrollEnd() {
|
|
75
|
+
// Only emit scroll end event if the active content is not disabled and
|
|
76
|
+
// the user is not touching the segment view
|
|
77
|
+
if (!this.isTouching) {
|
|
78
|
+
this.isManualScroll = undefined;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* @internal
|
|
83
|
+
*
|
|
84
|
+
* This method is used to programmatically set the displayed segment content
|
|
85
|
+
* in the segment view. Calling this method will update the `value` of the
|
|
86
|
+
* corresponding segment button.
|
|
87
|
+
*
|
|
88
|
+
* @param id: The id of the segment content to display.
|
|
89
|
+
* @param smoothScroll: Whether to animate the scroll transition.
|
|
90
|
+
*/
|
|
91
|
+
async setContent(id, smoothScroll = true) {
|
|
92
|
+
const contents = this.getSegmentContents();
|
|
93
|
+
const index = contents.findIndex((content) => content.id === id);
|
|
94
|
+
if (index === -1)
|
|
95
|
+
return;
|
|
96
|
+
this.isManualScroll = false;
|
|
97
|
+
this.resetScrollEndTimeout();
|
|
98
|
+
const contentWidth = this.el.offsetWidth;
|
|
99
|
+
this.el.scrollTo({
|
|
100
|
+
top: 0,
|
|
101
|
+
left: index * contentWidth,
|
|
102
|
+
behavior: smoothScroll ? 'smooth' : 'instant',
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
getSegmentContents() {
|
|
106
|
+
return Array.from(this.el.querySelectorAll('ion-segment-content'));
|
|
107
|
+
}
|
|
108
|
+
render() {
|
|
109
|
+
const { disabled, isManualScroll } = this;
|
|
110
|
+
return (index.h(index.Host, { key: '9f4f11d31c4db776f077e59ae895b35dd4454717', class: {
|
|
111
|
+
'segment-view-disabled': disabled,
|
|
112
|
+
'segment-view-scroll-disabled': isManualScroll === false,
|
|
113
|
+
} }, index.h("slot", { key: 'ea58b21f031cee2ab2b70580f336deaefa364538' })));
|
|
114
|
+
}
|
|
115
|
+
get el() { return index.getElement(this); }
|
|
116
|
+
};
|
|
117
|
+
SegmentView.style = {
|
|
118
|
+
ios: IonSegmentViewIosStyle0,
|
|
119
|
+
md: IonSegmentViewMdStyle0
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
exports.ion_segment_view = SegmentView;
|
|
@@ -23,6 +23,7 @@ const Segment = class {
|
|
|
23
23
|
this.ionChange = index.createEvent(this, "ionChange", 7);
|
|
24
24
|
this.ionSelect = index.createEvent(this, "ionSelect", 7);
|
|
25
25
|
this.ionStyle = index.createEvent(this, "ionStyle", 7);
|
|
26
|
+
this.segmentViewEl = null;
|
|
26
27
|
this.onClick = (ev) => {
|
|
27
28
|
const current = ev.target;
|
|
28
29
|
const previous = this.checked;
|
|
@@ -37,7 +38,13 @@ const Segment = class {
|
|
|
37
38
|
if (current !== previous) {
|
|
38
39
|
this.emitValueChange();
|
|
39
40
|
}
|
|
40
|
-
if (this.
|
|
41
|
+
if (this.segmentViewEl) {
|
|
42
|
+
this.updateSegmentView();
|
|
43
|
+
if (this.scrollable && previous) {
|
|
44
|
+
this.checkButton(previous, current);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
else if (this.scrollable || !this.swipeGesture) {
|
|
41
48
|
if (previous) {
|
|
42
49
|
this.checkButton(previous, current);
|
|
43
50
|
}
|
|
@@ -93,19 +100,49 @@ const Segment = class {
|
|
|
93
100
|
swipeGestureChanged() {
|
|
94
101
|
this.gestureChanged();
|
|
95
102
|
}
|
|
96
|
-
valueChanged(value) {
|
|
103
|
+
valueChanged(value, oldValue) {
|
|
104
|
+
// Force a value to exist if we're using a segment view
|
|
105
|
+
if (this.segmentViewEl && value === undefined) {
|
|
106
|
+
this.value = this.getButtons()[0].value;
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
if (oldValue !== undefined && value !== undefined) {
|
|
110
|
+
const buttons = this.getButtons();
|
|
111
|
+
const previous = buttons.find((button) => button.value === oldValue);
|
|
112
|
+
const current = buttons.find((button) => button.value === value);
|
|
113
|
+
if (previous && current) {
|
|
114
|
+
if (!this.segmentViewEl) {
|
|
115
|
+
this.checkButton(previous, current);
|
|
116
|
+
}
|
|
117
|
+
else if (this.triggerScrollOnValueChange !== false) {
|
|
118
|
+
this.updateSegmentView();
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
else if (value !== undefined && oldValue === undefined && this.segmentViewEl) {
|
|
123
|
+
this.updateSegmentView();
|
|
124
|
+
}
|
|
97
125
|
/**
|
|
98
126
|
* `ionSelect` is emitted every time the value changes (internal or external changes).
|
|
99
127
|
* Used by `ion-segment-button` to determine if the button should be checked.
|
|
100
128
|
*/
|
|
101
129
|
this.ionSelect.emit({ value });
|
|
102
|
-
|
|
130
|
+
// The scroll listener should handle scrolling the active button into view as needed
|
|
131
|
+
if (!this.segmentViewEl) {
|
|
132
|
+
this.scrollActiveButtonIntoView();
|
|
133
|
+
}
|
|
134
|
+
this.triggerScrollOnValueChange = undefined;
|
|
103
135
|
}
|
|
104
136
|
disabledChanged() {
|
|
105
137
|
this.gestureChanged();
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
button
|
|
138
|
+
if (!this.segmentViewEl) {
|
|
139
|
+
const buttons = this.getButtons();
|
|
140
|
+
for (const button of buttons) {
|
|
141
|
+
button.disabled = this.disabled;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
this.segmentViewEl.disabled = this.disabled;
|
|
109
146
|
}
|
|
110
147
|
}
|
|
111
148
|
gestureChanged() {
|
|
@@ -115,6 +152,10 @@ const Segment = class {
|
|
|
115
152
|
}
|
|
116
153
|
connectedCallback() {
|
|
117
154
|
this.emitStyle();
|
|
155
|
+
this.segmentViewEl = this.getSegmentView();
|
|
156
|
+
}
|
|
157
|
+
disconnectedCallback() {
|
|
158
|
+
this.segmentViewEl = null;
|
|
118
159
|
}
|
|
119
160
|
componentWillLoad() {
|
|
120
161
|
this.emitStyle();
|
|
@@ -148,6 +189,9 @@ const Segment = class {
|
|
|
148
189
|
if (this.disabled) {
|
|
149
190
|
this.disabledChanged();
|
|
150
191
|
}
|
|
192
|
+
// Update segment view based on the initial value,
|
|
193
|
+
// but do not animate the scroll
|
|
194
|
+
this.updateSegmentView(false);
|
|
151
195
|
}
|
|
152
196
|
onStart(detail) {
|
|
153
197
|
this.valueBeforeGesture = this.value;
|
|
@@ -164,6 +208,7 @@ const Segment = class {
|
|
|
164
208
|
if (value !== undefined) {
|
|
165
209
|
if (this.valueBeforeGesture !== value) {
|
|
166
210
|
this.emitValueChange();
|
|
211
|
+
this.updateSegmentView();
|
|
167
212
|
}
|
|
168
213
|
}
|
|
169
214
|
this.valueBeforeGesture = undefined;
|
|
@@ -191,12 +236,7 @@ const Segment = class {
|
|
|
191
236
|
setActivated(activated) {
|
|
192
237
|
const buttons = this.getButtons();
|
|
193
238
|
buttons.forEach((button) => {
|
|
194
|
-
|
|
195
|
-
button.classList.add('segment-button-activated');
|
|
196
|
-
}
|
|
197
|
-
else {
|
|
198
|
-
button.classList.remove('segment-button-activated');
|
|
199
|
-
}
|
|
239
|
+
button.classList.toggle('segment-button-activated', activated);
|
|
200
240
|
});
|
|
201
241
|
this.activated = activated;
|
|
202
242
|
}
|
|
@@ -247,6 +287,7 @@ const Segment = class {
|
|
|
247
287
|
currentIndicator.classList.add('segment-button-indicator-animated');
|
|
248
288
|
// Remove the transform to slide the indicator back to the button clicked
|
|
249
289
|
currentIndicator.style.setProperty('transform', '');
|
|
290
|
+
this.scrollActiveButtonIntoView(true);
|
|
250
291
|
});
|
|
251
292
|
this.value = current.value;
|
|
252
293
|
this.setCheckedClasses();
|
|
@@ -262,6 +303,60 @@ const Segment = class {
|
|
|
262
303
|
buttons[next].classList.add('segment-button-after-checked');
|
|
263
304
|
}
|
|
264
305
|
}
|
|
306
|
+
getSegmentView() {
|
|
307
|
+
const buttons = this.getButtons();
|
|
308
|
+
// Get the first button with a contentId
|
|
309
|
+
const firstContentId = buttons.find((button) => button.contentId);
|
|
310
|
+
// Get the segment content with an id matching the button's contentId
|
|
311
|
+
const segmentContent = document.querySelector(`ion-segment-content[id="${firstContentId === null || firstContentId === void 0 ? void 0 : firstContentId.contentId}"]`);
|
|
312
|
+
// Return the segment view for that matching segment content
|
|
313
|
+
return segmentContent === null || segmentContent === void 0 ? void 0 : segmentContent.closest('ion-segment-view');
|
|
314
|
+
}
|
|
315
|
+
handleSegmentViewScroll(ev) {
|
|
316
|
+
const { scrollRatio, isManualScroll } = ev.detail;
|
|
317
|
+
if (!isManualScroll) {
|
|
318
|
+
return;
|
|
319
|
+
}
|
|
320
|
+
const dispatchedFrom = ev.target;
|
|
321
|
+
const segmentViewEl = this.segmentViewEl;
|
|
322
|
+
const segmentEl = this.el;
|
|
323
|
+
// Only update the indicator if the event was dispatched from the correct segment view
|
|
324
|
+
if (ev.composedPath().includes(segmentViewEl) || (dispatchedFrom === null || dispatchedFrom === void 0 ? void 0 : dispatchedFrom.contains(segmentEl))) {
|
|
325
|
+
const buttons = this.getButtons();
|
|
326
|
+
// If no buttons are found or there is no value set then do nothing
|
|
327
|
+
if (!buttons.length)
|
|
328
|
+
return;
|
|
329
|
+
const index = buttons.findIndex((button) => button.value === this.value);
|
|
330
|
+
const current = buttons[index];
|
|
331
|
+
const nextIndex = Math.round(scrollRatio * (buttons.length - 1));
|
|
332
|
+
if (this.lastNextIndex === undefined || this.lastNextIndex !== nextIndex) {
|
|
333
|
+
this.lastNextIndex = nextIndex;
|
|
334
|
+
this.triggerScrollOnValueChange = false;
|
|
335
|
+
this.checkButton(current, buttons[nextIndex]);
|
|
336
|
+
this.emitValueChange();
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
/**
|
|
341
|
+
* Finds the related segment view and sets its current content
|
|
342
|
+
* based on the selected segment button. This method
|
|
343
|
+
* should be called on initial load of the segment,
|
|
344
|
+
* after the gesture is completed (if dragging between segments)
|
|
345
|
+
* and when a segment button is clicked directly.
|
|
346
|
+
*/
|
|
347
|
+
updateSegmentView(smoothScroll = true) {
|
|
348
|
+
const buttons = this.getButtons();
|
|
349
|
+
const button = buttons.find((btn) => btn.value === this.value);
|
|
350
|
+
// If the button does not have a contentId then there is
|
|
351
|
+
// no associated segment view to update
|
|
352
|
+
if (!(button === null || button === void 0 ? void 0 : button.contentId)) {
|
|
353
|
+
return;
|
|
354
|
+
}
|
|
355
|
+
const segmentView = this.segmentViewEl;
|
|
356
|
+
if (segmentView) {
|
|
357
|
+
segmentView.setContent(button.contentId, smoothScroll);
|
|
358
|
+
}
|
|
359
|
+
}
|
|
265
360
|
scrollActiveButtonIntoView(smoothScroll = true) {
|
|
266
361
|
const { scrollable, value, el } = this;
|
|
267
362
|
if (scrollable) {
|
|
@@ -444,14 +539,14 @@ const Segment = class {
|
|
|
444
539
|
}
|
|
445
540
|
render() {
|
|
446
541
|
const mode = ionicGlobal.getIonMode(this);
|
|
447
|
-
return (index.h(index.Host, { key: '
|
|
542
|
+
return (index.h(index.Host, { key: '66bd7a565ba73540b3bbe56dd23b95e59bcef9bc', role: "tablist", onClick: this.onClick, class: theme.createColorClasses(this.color, {
|
|
448
543
|
[mode]: true,
|
|
449
544
|
'in-toolbar': theme.hostContext('ion-toolbar', this.el),
|
|
450
545
|
'in-toolbar-color': theme.hostContext('ion-toolbar[color]', this.el),
|
|
451
546
|
'segment-activated': this.activated,
|
|
452
547
|
'segment-disabled': this.disabled,
|
|
453
548
|
'segment-scrollable': this.scrollable,
|
|
454
|
-
}) }, index.h("slot", { key: '
|
|
549
|
+
}) }, index.h("slot", { key: '782c521b1a33729b8eab1c4b879bc3f2ff48ae1b', onSlotchange: this.onSlottedItemsChange })));
|
|
455
550
|
}
|
|
456
551
|
get el() { return index.getElement(this); }
|
|
457
552
|
static get watchers() { return {
|
|
@@ -491,6 +586,7 @@ const SegmentButton = class {
|
|
|
491
586
|
}
|
|
492
587
|
};
|
|
493
588
|
this.checked = false;
|
|
589
|
+
this.contentId = undefined;
|
|
494
590
|
this.disabled = false;
|
|
495
591
|
this.layout = 'icon-top';
|
|
496
592
|
this.type = 'button';
|
|
@@ -506,6 +602,26 @@ const SegmentButton = class {
|
|
|
506
602
|
helpers.addEventListener(segmentEl, 'ionSelect', this.updateState);
|
|
507
603
|
helpers.addEventListener(segmentEl, 'ionStyle', this.updateStyle);
|
|
508
604
|
}
|
|
605
|
+
// Return if there is no contentId defined
|
|
606
|
+
if (!this.contentId)
|
|
607
|
+
return;
|
|
608
|
+
// Attempt to find the Segment Content by its contentId
|
|
609
|
+
const segmentContent = document.getElementById(this.contentId);
|
|
610
|
+
// If no associated Segment Content exists, log an error and return
|
|
611
|
+
if (!segmentContent) {
|
|
612
|
+
console.error(`Segment Button: Unable to find Segment Content with id="${this.contentId}".`);
|
|
613
|
+
return;
|
|
614
|
+
}
|
|
615
|
+
// Ensure the found element is a valid ION-SEGMENT-CONTENT
|
|
616
|
+
if (segmentContent.tagName !== 'ION-SEGMENT-CONTENT') {
|
|
617
|
+
console.error(`Segment Button: Element with id="${this.contentId}" is not an <ion-segment-content> element.`);
|
|
618
|
+
return;
|
|
619
|
+
}
|
|
620
|
+
// Prevent buttons from being disabled when associated with segment content
|
|
621
|
+
if (this.disabled) {
|
|
622
|
+
console.warn(`Segment Button: Segment buttons cannot be disabled when associated with an <ion-segment-content>.`);
|
|
623
|
+
this.disabled = false;
|
|
624
|
+
}
|
|
509
625
|
}
|
|
510
626
|
disconnectedCallback() {
|
|
511
627
|
const segmentEl = this.segmentEl;
|
|
@@ -539,7 +655,7 @@ const SegmentButton = class {
|
|
|
539
655
|
const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
|
|
540
656
|
const mode = ionicGlobal.getIonMode(this);
|
|
541
657
|
const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
|
|
542
|
-
return (index.h(index.Host, { key: '
|
|
658
|
+
return (index.h(index.Host, { key: 'd50a5d5e2f6206e8523598f258d8217d2903f69b', class: {
|
|
543
659
|
[mode]: true,
|
|
544
660
|
'in-toolbar': theme.hostContext('ion-toolbar', this.el),
|
|
545
661
|
'in-toolbar-color': theme.hostContext('ion-toolbar[color]', this.el),
|
|
@@ -555,10 +671,7 @@ const SegmentButton = class {
|
|
|
555
671
|
'ion-activatable': true,
|
|
556
672
|
'ion-activatable-instant': true,
|
|
557
673
|
'ion-focusable': true,
|
|
558
|
-
} }, index.h("button", Object.assign({ key: '
|
|
559
|
-
'segment-button-indicator': true,
|
|
560
|
-
'segment-button-indicator-animated': true,
|
|
561
|
-
} }, index.h("div", { key: '65c72a151080998c1e548c87d4d4ebd5c7dda72f', part: "indicator-background", class: "segment-button-indicator-background" }))));
|
|
674
|
+
} }, index.h("button", Object.assign({ key: 'b4f6f145286ba8ab79669e11035b906daa85ae7e', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), index.h("span", { key: '67965996c9ffe70553875e00d3da0ae5b2b1d814', class: "button-inner" }, index.h("slot", { key: '5087988fe45a8fdf388ec44c395d0b745b207806' })), mode === 'md' && index.h("ion-ripple-effect", { key: 'b24858de0750bbc769b3183fac0077dfe817ba27' })), index.h("div", { key: '97b4359432acd1c9da0816360cd1df9472e183f7', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, index.h("div", { key: '0561738ea15b0986f4ed3d8276d5e6f2d13f7e51', part: "indicator-background", class: "segment-button-indicator-background" }))));
|
|
562
675
|
}
|
|
563
676
|
get el() { return index.getElement(this); }
|
|
564
677
|
static get watchers() { return {
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
+
*/
|
|
4
|
+
'use strict';
|
|
5
|
+
|
|
6
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
7
|
+
|
|
8
|
+
const index = require('./index-73f75efb.js');
|
|
9
|
+
const ionicGlobal = require('./ionic-global-d9a8bb5b.js');
|
|
10
|
+
const overlays = require('./overlays-ba0f6986.js');
|
|
11
|
+
const theme = require('./theme-d1c573d2.js');
|
|
12
|
+
require('./index-c8d52405.js');
|
|
13
|
+
require('./helpers-afaa9001.js');
|
|
14
|
+
require('./hardware-back-button-9e8a2c4f.js');
|
|
15
|
+
require('./framework-delegate-55f5683a.js');
|
|
16
|
+
require('./gesture-controller-9436f482.js');
|
|
17
|
+
require('./index-5915f9b3.js');
|
|
18
|
+
|
|
19
|
+
const ionicSelectModalMdCss = ".sc-ion-select-modal-ionic-h{height:100%}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(container){display:none}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(label){margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-item.sc-ion-select-modal-ionic{--inner-border-width:0}.item-radio-checked.sc-ion-select-modal-ionic{--background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.08);--background-focused:var(--ion-color-primary, #0054e9);--background-focused-opacity:0.2;--background-hover:var(--ion-color-primary, #0054e9);--background-hover-opacity:0.12}.item-checkbox-checked.sc-ion-select-modal-ionic{--background-activated:var(--ion-item-color, var(--ion-text-color, #000));--background-focused:var(--ion-item-color, var(--ion-text-color, #000));--background-hover:var(--ion-item-color, var(--ion-text-color, #000));--color:var(--ion-color-primary, #0054e9)}";
|
|
20
|
+
const IonSelectModalIonicStyle0 = ionicSelectModalMdCss;
|
|
21
|
+
|
|
22
|
+
const selectModalIosCss = ".sc-ion-select-modal-ios-h{height:100%}";
|
|
23
|
+
const IonSelectModalIosStyle0 = selectModalIosCss;
|
|
24
|
+
|
|
25
|
+
const selectModalMdCss = ".sc-ion-select-modal-md-h{height:100%}ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md::part(container){display:none}ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md::part(label){margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-item.sc-ion-select-modal-md{--inner-border-width:0}.item-radio-checked.sc-ion-select-modal-md{--background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.08);--background-focused:var(--ion-color-primary, #0054e9);--background-focused-opacity:0.2;--background-hover:var(--ion-color-primary, #0054e9);--background-hover-opacity:0.12}.item-checkbox-checked.sc-ion-select-modal-md{--background-activated:var(--ion-item-color, var(--ion-text-color, #000));--background-focused:var(--ion-item-color, var(--ion-text-color, #000));--background-hover:var(--ion-item-color, var(--ion-text-color, #000));--color:var(--ion-color-primary, #0054e9)}";
|
|
26
|
+
const IonSelectModalMdStyle0 = selectModalMdCss;
|
|
27
|
+
|
|
28
|
+
const SelectModal = class {
|
|
29
|
+
constructor(hostRef) {
|
|
30
|
+
index.registerInstance(this, hostRef);
|
|
31
|
+
this.header = undefined;
|
|
32
|
+
this.multiple = undefined;
|
|
33
|
+
this.options = [];
|
|
34
|
+
}
|
|
35
|
+
closeModal() {
|
|
36
|
+
const modal = this.el.closest('ion-modal');
|
|
37
|
+
if (modal) {
|
|
38
|
+
modal.dismiss();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
findOptionFromEvent(ev) {
|
|
42
|
+
const { options } = this;
|
|
43
|
+
return options.find((o) => o.value === ev.target.value);
|
|
44
|
+
}
|
|
45
|
+
getValues(ev) {
|
|
46
|
+
const { multiple, options } = this;
|
|
47
|
+
if (multiple) {
|
|
48
|
+
// this is a modal with checkboxes (multiple value select)
|
|
49
|
+
// return an array of all the checked values
|
|
50
|
+
return options.filter((o) => o.checked).map((o) => o.value);
|
|
51
|
+
}
|
|
52
|
+
// this is a modal with radio buttons (single value select)
|
|
53
|
+
// return the value that was clicked, otherwise undefined
|
|
54
|
+
const option = ev ? this.findOptionFromEvent(ev) : null;
|
|
55
|
+
return option ? option.value : undefined;
|
|
56
|
+
}
|
|
57
|
+
callOptionHandler(ev) {
|
|
58
|
+
const option = this.findOptionFromEvent(ev);
|
|
59
|
+
const values = this.getValues(ev);
|
|
60
|
+
if (option === null || option === void 0 ? void 0 : option.handler) {
|
|
61
|
+
overlays.safeCall(option.handler, values);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
setChecked(ev) {
|
|
65
|
+
const { multiple } = this;
|
|
66
|
+
const option = this.findOptionFromEvent(ev);
|
|
67
|
+
// this is a modal with checkboxes (multiple value select)
|
|
68
|
+
// we need to set the checked value for this option
|
|
69
|
+
if (multiple && option) {
|
|
70
|
+
option.checked = ev.detail.checked;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
renderRadioOptions() {
|
|
74
|
+
const checked = this.options.filter((o) => o.checked).map((o) => o.value)[0];
|
|
75
|
+
return (index.h("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, this.options.map((option) => (index.h("ion-item", { class: Object.assign({
|
|
76
|
+
// TODO FW-4784
|
|
77
|
+
'item-radio-checked': option.value === checked
|
|
78
|
+
}, theme.getClassMap(option.cssClass)) }, index.h("ion-radio", { value: option.value, disabled: option.disabled, justify: "start", labelPlacement: "end", onClick: () => this.closeModal(), onKeyUp: (ev) => {
|
|
79
|
+
if (ev.key === ' ') {
|
|
80
|
+
/**
|
|
81
|
+
* Selecting a radio option with keyboard navigation,
|
|
82
|
+
* either through the Enter or Space keys, should
|
|
83
|
+
* dismiss the modal.
|
|
84
|
+
*/
|
|
85
|
+
this.closeModal();
|
|
86
|
+
}
|
|
87
|
+
} }, option.text))))));
|
|
88
|
+
}
|
|
89
|
+
renderCheckboxOptions() {
|
|
90
|
+
return this.options.map((option) => (index.h("ion-item", { class: Object.assign({
|
|
91
|
+
// TODO FW-4784
|
|
92
|
+
'item-checkbox-checked': option.checked
|
|
93
|
+
}, theme.getClassMap(option.cssClass)) }, index.h("ion-checkbox", { value: option.value, disabled: option.disabled, checked: option.checked, justify: "start", labelPlacement: "end", onIonChange: (ev) => {
|
|
94
|
+
this.setChecked(ev);
|
|
95
|
+
this.callOptionHandler(ev);
|
|
96
|
+
// TODO FW-4784
|
|
97
|
+
index.forceUpdate(this);
|
|
98
|
+
} }, option.text))));
|
|
99
|
+
}
|
|
100
|
+
render() {
|
|
101
|
+
return (index.h(index.Host, { key: 'f4b92f4fc3d646f9a327e43a9622abaf69659c28', class: ionicGlobal.getIonMode(this) }, index.h("ion-header", { key: '11232ef496e7abd69e55cef988963a4869a7b01e' }, index.h("ion-toolbar", { key: 'e7c41878691a504d44c658db02807867df542588' }, this.header !== undefined && index.h("ion-title", { key: 'fcf9d33e0f3e0076ff14805de68848f9ef199cca' }, this.header), index.h("ion-buttons", { key: '748a967ae0ce68bc2fd018a6b9ebe0e4b810f6ac', slot: "end" }, index.h("ion-button", { key: 'f5e60791870b5085a31b7af70ed4bb3fb83eb185', onClick: () => this.closeModal() }, "Close")))), index.h("ion-content", { key: '159797957b6f788a9b393d91864c18db34481c68' }, index.h("ion-list", { key: '4124554fe8b2411637cbf02f08e50e0d8f804175' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
|
|
102
|
+
}
|
|
103
|
+
get el() { return index.getElement(this); }
|
|
104
|
+
};
|
|
105
|
+
SelectModal.style = {
|
|
106
|
+
ionic: IonSelectModalIonicStyle0,
|
|
107
|
+
ios: IonSelectModalIosStyle0,
|
|
108
|
+
md: IonSelectModalMdStyle0
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
exports.ion_select_modal = SelectModal;
|