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
package/components/alert.js
CHANGED
|
@@ -485,13 +485,15 @@ const Alert = /*@__PURE__*/ proxyCustomElement(class Alert extends HTMLElement {
|
|
|
485
485
|
const msgId = `alert-${overlayIndex}-msg`;
|
|
486
486
|
const role = this.inputs.length > 0 || this.buttons.length > 0 ? 'alertdialog' : 'alert';
|
|
487
487
|
/**
|
|
488
|
-
*
|
|
489
|
-
* If
|
|
488
|
+
* Use both the header and subHeader ids if they are defined.
|
|
489
|
+
* If only the header is defined, use the header id.
|
|
490
|
+
* If only the subHeader is defined, use the subHeader id.
|
|
491
|
+
* If neither are defined, do not set aria-labelledby.
|
|
490
492
|
*/
|
|
491
|
-
const ariaLabelledBy = header ? hdrId : subHeader ? subHdrId : null;
|
|
492
|
-
return (h(Host, Object.assign({ key: '
|
|
493
|
+
const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
|
|
494
|
+
return (h(Host, Object.assign({ key: 'ad7e14b4f92a09387aa80abfb718a755e4e889d6', role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "-1" }, htmlAttributes, { style: {
|
|
493
495
|
zIndex: `${20000 + overlayIndex}`,
|
|
494
|
-
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), h("ion-backdrop", { key: '
|
|
496
|
+
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), h("ion-backdrop", { key: '4b4693dca3c910aa9a61c4d90295d785ec6cbe3d', tappable: this.backdropDismiss }), h("div", { key: '64fd19b8f1d8246dcc869053f858bc33506def4b', tabindex: "0", "aria-hidden": "true" }), h("div", { key: 'e61ba6f339c3a02cecd37d8b641ee5043018eb29', class: "alert-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, h("div", { key: '044e00667ffcb74aa2c5e0d0b42669c4004dbb4f', class: "alert-head" }, header && (h("h2", { key: '1aaae8d58722c4cf5debb1f00415ab7ed0a52bbd', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (h("h2", { key: '9c9854dc3b0ad40f1861a49b76d5636afcae9c74', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (h("h3", { key: '19aaca9912f77cde4ae8079be210eda697ed8de1', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), h("div", { key: 'a85d27c516f7cdbc85b19f40d2f0bd865490b6a7', tabindex: "0", "aria-hidden": "true" })));
|
|
495
497
|
}
|
|
496
498
|
get el() { return this; }
|
|
497
499
|
static get watchers() { return {
|
package/components/backdrop.js
CHANGED
|
@@ -34,7 +34,7 @@ const Backdrop = /*@__PURE__*/ proxyCustomElement(class Backdrop extends HTMLEle
|
|
|
34
34
|
}
|
|
35
35
|
render() {
|
|
36
36
|
const mode = getIonMode(this);
|
|
37
|
-
return (h(Host, { key: '
|
|
37
|
+
return (h(Host, { key: '7abaf2c310aa399607451b14063265e8a5846938', "aria-hidden": "true", class: {
|
|
38
38
|
[mode]: true,
|
|
39
39
|
'backdrop-hide': !this.visible,
|
|
40
40
|
'backdrop-no-tappable': !this.tappable,
|
package/components/button.js
CHANGED
|
@@ -214,7 +214,7 @@ const Button = /*@__PURE__*/ proxyCustomElement(class Button extends HTMLElement
|
|
|
214
214
|
{
|
|
215
215
|
type !== 'button' && this.renderHiddenButton();
|
|
216
216
|
}
|
|
217
|
-
return (h(Host, { key: '
|
|
217
|
+
return (h(Host, { key: '340a809d85698741bb36e796355cae89a970655f', onClick: this.handleClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses(color, {
|
|
218
218
|
[mode]: true,
|
|
219
219
|
[buttonType]: true,
|
|
220
220
|
[`${buttonType}-${expand}`]: expand !== undefined,
|
|
@@ -229,7 +229,7 @@ const Button = /*@__PURE__*/ proxyCustomElement(class Button extends HTMLElement
|
|
|
229
229
|
'button-disabled': disabled,
|
|
230
230
|
'ion-activatable': true,
|
|
231
231
|
'ion-focusable': true,
|
|
232
|
-
}) }, h(TagType, Object.assign({ key: '
|
|
232
|
+
}) }, h(TagType, Object.assign({ key: '03ae1b94a0d606aa65aa6f82c2fc76abcf3f1300' }, attrs, { class: "button-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur }, inheritedAttributes), h("span", { key: '90bf53d4ffcab88ee596ece7113d5b6409e61143', class: "button-inner" }, h("slot", { key: 'a7876695f0d8702e8bcb471ae4c0984f27d77458', name: "icon-only", onSlotchange: this.slotChanged }), h("slot", { key: '2c8551586f8726884d7797a6d3fee2d4b3aab35f', name: "start" }), h("slot", { key: '9ab07accdb22b08d0a463a7c821c9793507d1f7d' }), h("slot", { key: '8984afe177e6ba021435875a3798e2a64f3bdf2c', name: "end" })), mode === 'md' && h("ion-ripple-effect", { key: '3e9f01e7a1198b6b7109502293a971da7072a4f3', type: this.rippleType }))));
|
|
233
233
|
}
|
|
234
234
|
get el() { return this; }
|
|
235
235
|
static get watchers() { return {
|
package/components/buttons.js
CHANGED
|
@@ -18,10 +18,10 @@ const Buttons = /*@__PURE__*/ proxyCustomElement(class Buttons extends HTMLEleme
|
|
|
18
18
|
}
|
|
19
19
|
render() {
|
|
20
20
|
const mode = getIonMode(this);
|
|
21
|
-
return (h(Host, { key: '
|
|
21
|
+
return (h(Host, { key: '58c1fc5eb867d0731c63549b1ccb3ec3bbbe6e1b', class: {
|
|
22
22
|
[mode]: true,
|
|
23
23
|
['buttons-collapse']: this.collapse,
|
|
24
|
-
} }, h("slot", { key: '
|
|
24
|
+
} }, h("slot", { key: '0c8f95b9840c8fa0c4e50be84c5159620a3eb5c8' })));
|
|
25
25
|
}
|
|
26
26
|
static get style() { return {
|
|
27
27
|
ios: IonButtonsIosStyle0,
|
package/components/checkbox.js
CHANGED
|
@@ -66,7 +66,8 @@ const Checkbox = /*@__PURE__*/ proxyCustomElement(class Checkbox extends HTMLEle
|
|
|
66
66
|
componentWillLoad() {
|
|
67
67
|
this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
|
|
68
68
|
}
|
|
69
|
-
|
|
69
|
+
/** @internal */
|
|
70
|
+
async setFocus() {
|
|
70
71
|
if (this.focusEl) {
|
|
71
72
|
this.focusEl.focus();
|
|
72
73
|
}
|
|
@@ -76,7 +77,7 @@ const Checkbox = /*@__PURE__*/ proxyCustomElement(class Checkbox extends HTMLEle
|
|
|
76
77
|
const mode = getIonMode(this);
|
|
77
78
|
const path = getSVGPath(mode, indeterminate);
|
|
78
79
|
renderHiddenInput(true, el, name, checked ? value : '', disabled);
|
|
79
|
-
return (h(Host, { key: '
|
|
80
|
+
return (h(Host, { key: '6dc787e1100521d08c4900104e1a3e2f594e919f', "aria-checked": indeterminate ? 'mixed' : `${checked}`, class: createColorClasses(color, {
|
|
80
81
|
[mode]: true,
|
|
81
82
|
'in-item': hostContext('ion-item', el),
|
|
82
83
|
'checkbox-checked': checked,
|
|
@@ -86,10 +87,10 @@ const Checkbox = /*@__PURE__*/ proxyCustomElement(class Checkbox extends HTMLEle
|
|
|
86
87
|
[`checkbox-justify-${justify}`]: justify !== undefined,
|
|
87
88
|
[`checkbox-alignment-${alignment}`]: alignment !== undefined,
|
|
88
89
|
[`checkbox-label-placement-${labelPlacement}`]: true,
|
|
89
|
-
}), onClick: this.onClick }, h("label", { key: '
|
|
90
|
+
}), onClick: this.onClick }, h("label", { key: '68222fb736a5ec3f2e488649b0e2ce0417dcb224', class: "checkbox-wrapper" }, h("input", Object.assign({ key: 'f12962d7e9b19c744cfdbdeccc67ae7f5d080281', type: "checkbox", checked: checked ? true : undefined, disabled: disabled, id: inputId, onChange: this.toggleChecked, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl) }, inheritedAttributes)), h("div", { key: 'c72df2699414b1e5a41a1bc267bc634f0c93dcff', class: {
|
|
90
91
|
'label-text-wrapper': true,
|
|
91
92
|
'label-text-wrapper-hidden': el.textContent === '',
|
|
92
|
-
}, part: "label" }, h("slot", { key: '
|
|
93
|
+
}, part: "label" }, h("slot", { key: 'a2a80285178a7e0e3b536fc9ca26b8b444aa4307' })), h("div", { key: 'c2b05e0d1fe8df5dcd72858220b5ff51ecaee4cc', class: "native-wrapper" }, h("svg", { key: 'ee24913fded72258ebd9713654a6dba92a18fcf7', class: "checkbox-icon", viewBox: "0 0 24 24", part: "container" }, path)))));
|
|
93
94
|
}
|
|
94
95
|
getSVGPath(mode, indeterminate) {
|
|
95
96
|
let path = indeterminate ? (h("path", { d: "M6 12L18 12", part: "mark" })) : (h("path", { d: "M5.9,12.5l3.8,3.8l8.8-8.8", part: "mark" }));
|
|
@@ -112,7 +113,8 @@ const Checkbox = /*@__PURE__*/ proxyCustomElement(class Checkbox extends HTMLEle
|
|
|
112
113
|
"value": [8],
|
|
113
114
|
"labelPlacement": [1, "label-placement"],
|
|
114
115
|
"justify": [1],
|
|
115
|
-
"alignment": [1]
|
|
116
|
+
"alignment": [1],
|
|
117
|
+
"setFocus": [64]
|
|
116
118
|
}]);
|
|
117
119
|
let checkboxIds = 0;
|
|
118
120
|
function defineCustomElement() {
|
|
@@ -0,0 +1,446 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
+
*/
|
|
4
|
+
import { proxyCustomElement, HTMLElement, createEvent, Build, readTask, forceUpdate, h, Host } from '@stencil/core/internal/client';
|
|
5
|
+
import { i as inheritAriaAttributes, j as hasLazyBuild, c as componentOnReady } from './helpers.js';
|
|
6
|
+
import { b as getIonMode, a as isPlatform } from './ionic-global.js';
|
|
7
|
+
import { i as isRTL } from './dir.js';
|
|
8
|
+
import { c as createColorClasses, h as hostContext } from './theme.js';
|
|
9
|
+
|
|
10
|
+
const contentCss = ":host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;-ms-flex:1;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}:host(.ion-color) .inner-scroll{background:var(--ion-color-base);color:var(--ion-color-contrast)}#background-content{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom));position:absolute;color:var(--color);-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;-ms-touch-action:pan-x pan-y pinch-zoom;touch-action:pan-x pan-y pinch-zoom}.scroll-y,.scroll-x{-webkit-overflow-scrolling:touch;z-index:0;will-change:scroll-position}.scroll-y{overflow-y:var(--overflow);overscroll-behavior-y:contain}.scroll-x{overflow-x:var(--overflow);overscroll-behavior-x:contain}.overscroll::before,.overscroll::after{position:absolute;width:1px;height:1px;content:\"\"}.overscroll::before{bottom:-1px}.overscroll::after{top:-1px}:host(.content-sizing){display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-height:0;contain:none}:host(.content-sizing) .inner-scroll{position:relative;top:0;bottom:0;margin-top:calc(var(--offset-top) * -1);margin-bottom:calc(var(--offset-bottom) * -1)}.transition-effect{display:none;position:absolute;width:100%;height:100vh;opacity:0;pointer-events:none}:host(.content-ltr) .transition-effect{left:-100%;}:host(.content-rtl) .transition-effect{right:-100%;}.transition-cover{position:absolute;right:0;width:100%;height:100%;background:black;opacity:0.1}.transition-shadow{display:block;position:absolute;width:100%;height:100%;-webkit-box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03);box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03)}:host(.content-ltr) .transition-shadow{right:0;}:host(.content-rtl) .transition-shadow{left:0;-webkit-transform:scaleX(-1);transform:scaleX(-1)}::slotted([slot=fixed]){position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0)}";
|
|
11
|
+
const IonContentStyle0 = contentCss;
|
|
12
|
+
|
|
13
|
+
const Content = /*@__PURE__*/ proxyCustomElement(class Content extends HTMLElement {
|
|
14
|
+
constructor() {
|
|
15
|
+
super();
|
|
16
|
+
this.__registerHost();
|
|
17
|
+
this.__attachShadow();
|
|
18
|
+
this.ionScrollStart = createEvent(this, "ionScrollStart", 7);
|
|
19
|
+
this.ionScroll = createEvent(this, "ionScroll", 7);
|
|
20
|
+
this.ionScrollEnd = createEvent(this, "ionScrollEnd", 7);
|
|
21
|
+
this.watchDog = null;
|
|
22
|
+
this.isScrolling = false;
|
|
23
|
+
this.lastScroll = 0;
|
|
24
|
+
this.queued = false;
|
|
25
|
+
this.cTop = -1;
|
|
26
|
+
this.cBottom = -1;
|
|
27
|
+
this.isMainContent = true;
|
|
28
|
+
this.resizeTimeout = null;
|
|
29
|
+
this.inheritedAttributes = {};
|
|
30
|
+
this.tabsElement = null;
|
|
31
|
+
// Detail is used in a hot loop in the scroll event, by allocating it here
|
|
32
|
+
// V8 will be able to inline any read/write to it since it's a monomorphic class.
|
|
33
|
+
// https://mrale.ph/blog/2015/01/11/whats-up-with-monomorphism.html
|
|
34
|
+
this.detail = {
|
|
35
|
+
scrollTop: 0,
|
|
36
|
+
scrollLeft: 0,
|
|
37
|
+
type: 'scroll',
|
|
38
|
+
event: undefined,
|
|
39
|
+
startX: 0,
|
|
40
|
+
startY: 0,
|
|
41
|
+
startTime: 0,
|
|
42
|
+
currentX: 0,
|
|
43
|
+
currentY: 0,
|
|
44
|
+
velocityX: 0,
|
|
45
|
+
velocityY: 0,
|
|
46
|
+
deltaX: 0,
|
|
47
|
+
deltaY: 0,
|
|
48
|
+
currentTime: 0,
|
|
49
|
+
data: undefined,
|
|
50
|
+
isScrolling: true,
|
|
51
|
+
};
|
|
52
|
+
this.color = undefined;
|
|
53
|
+
this.fullscreen = false;
|
|
54
|
+
this.fixedSlotPlacement = 'after';
|
|
55
|
+
this.forceOverscroll = undefined;
|
|
56
|
+
this.scrollX = false;
|
|
57
|
+
this.scrollY = true;
|
|
58
|
+
this.scrollEvents = false;
|
|
59
|
+
}
|
|
60
|
+
componentWillLoad() {
|
|
61
|
+
this.inheritedAttributes = inheritAriaAttributes(this.el);
|
|
62
|
+
}
|
|
63
|
+
connectedCallback() {
|
|
64
|
+
this.isMainContent = this.el.closest('ion-menu, ion-popover, ion-modal') === null;
|
|
65
|
+
/**
|
|
66
|
+
* The fullscreen content offsets need to be
|
|
67
|
+
* computed after the tab bar has loaded. Since
|
|
68
|
+
* lazy evaluation means components are not hydrated
|
|
69
|
+
* at the same time, we need to wait for the ionTabBarLoaded
|
|
70
|
+
* event to fire. This does not impact dist-custom-elements
|
|
71
|
+
* because there is no hydration there.
|
|
72
|
+
*/
|
|
73
|
+
if (hasLazyBuild(this.el)) {
|
|
74
|
+
/**
|
|
75
|
+
* We need to cache the reference to the tabs.
|
|
76
|
+
* If just the content is unmounted then we won't
|
|
77
|
+
* be able to query for the closest tabs on disconnectedCallback
|
|
78
|
+
* since the content has been removed from the DOM tree.
|
|
79
|
+
*/
|
|
80
|
+
const closestTabs = (this.tabsElement = this.el.closest('ion-tabs'));
|
|
81
|
+
if (closestTabs !== null) {
|
|
82
|
+
/**
|
|
83
|
+
* When adding and removing the event listener
|
|
84
|
+
* we need to make sure we pass the same function reference
|
|
85
|
+
* otherwise the event listener will not be removed properly.
|
|
86
|
+
* We can't only pass `this.resize` because "this" in the function
|
|
87
|
+
* context becomes a reference to IonTabs instead of IonContent.
|
|
88
|
+
*
|
|
89
|
+
* Additionally, we listen for ionTabBarLoaded on the IonTabs
|
|
90
|
+
* instance rather than the IonTabBar instance. It's possible for
|
|
91
|
+
* a tab bar to be conditionally rendered/mounted. Since ionTabBarLoaded
|
|
92
|
+
* bubbles, we can catch any instances of child tab bars loading by listening
|
|
93
|
+
* on IonTabs.
|
|
94
|
+
*/
|
|
95
|
+
this.tabsLoadCallback = () => this.resize();
|
|
96
|
+
closestTabs.addEventListener('ionTabBarLoaded', this.tabsLoadCallback);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
disconnectedCallback() {
|
|
101
|
+
this.onScrollEnd();
|
|
102
|
+
if (hasLazyBuild(this.el)) {
|
|
103
|
+
/**
|
|
104
|
+
* The event listener and tabs caches need to
|
|
105
|
+
* be cleared otherwise this will create a memory
|
|
106
|
+
* leak where the IonTabs instance can never be
|
|
107
|
+
* garbage collected.
|
|
108
|
+
*/
|
|
109
|
+
const { tabsElement, tabsLoadCallback } = this;
|
|
110
|
+
if (tabsElement !== null && tabsLoadCallback !== undefined) {
|
|
111
|
+
tabsElement.removeEventListener('ionTabBarLoaded', tabsLoadCallback);
|
|
112
|
+
}
|
|
113
|
+
this.tabsElement = null;
|
|
114
|
+
this.tabsLoadCallback = undefined;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Rotating certain devices can update
|
|
119
|
+
* the safe area insets. As a result,
|
|
120
|
+
* the fullscreen feature on ion-content
|
|
121
|
+
* needs to be recalculated.
|
|
122
|
+
*
|
|
123
|
+
* We listen for "resize" because we
|
|
124
|
+
* do not care what the orientation of
|
|
125
|
+
* the device is. Other APIs
|
|
126
|
+
* such as ScreenOrientation or
|
|
127
|
+
* the deviceorientation event must have
|
|
128
|
+
* permission from the user first whereas
|
|
129
|
+
* the "resize" event does not.
|
|
130
|
+
*
|
|
131
|
+
* We also throttle the callback to minimize
|
|
132
|
+
* thrashing when quickly resizing a window.
|
|
133
|
+
*/
|
|
134
|
+
onResize() {
|
|
135
|
+
if (this.resizeTimeout) {
|
|
136
|
+
clearTimeout(this.resizeTimeout);
|
|
137
|
+
this.resizeTimeout = null;
|
|
138
|
+
}
|
|
139
|
+
this.resizeTimeout = setTimeout(() => {
|
|
140
|
+
/**
|
|
141
|
+
* Resize should only happen
|
|
142
|
+
* if the content is visible.
|
|
143
|
+
* When the content is hidden
|
|
144
|
+
* then offsetParent will be null.
|
|
145
|
+
*/
|
|
146
|
+
if (this.el.offsetParent === null) {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
this.resize();
|
|
150
|
+
}, 100);
|
|
151
|
+
}
|
|
152
|
+
shouldForceOverscroll() {
|
|
153
|
+
const { forceOverscroll } = this;
|
|
154
|
+
const mode = getIonMode(this);
|
|
155
|
+
return forceOverscroll === undefined ? mode === 'ios' && isPlatform('ios') : forceOverscroll;
|
|
156
|
+
}
|
|
157
|
+
resize() {
|
|
158
|
+
/**
|
|
159
|
+
* Only force update if the component is rendered in a browser context.
|
|
160
|
+
* Using `forceUpdate` in a server context with pre-rendering can lead to an infinite loop.
|
|
161
|
+
* The `hydrateDocument` function in `@stencil/core` will render the `ion-content`, but
|
|
162
|
+
* `forceUpdate` will trigger another render, locking up the server.
|
|
163
|
+
*
|
|
164
|
+
* TODO: Remove if STENCIL-834 determines Stencil will account for this.
|
|
165
|
+
*/
|
|
166
|
+
if (Build.isBrowser) {
|
|
167
|
+
if (this.fullscreen) {
|
|
168
|
+
readTask(() => this.readDimensions());
|
|
169
|
+
}
|
|
170
|
+
else if (this.cTop !== 0 || this.cBottom !== 0) {
|
|
171
|
+
this.cTop = this.cBottom = 0;
|
|
172
|
+
forceUpdate(this);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
readDimensions() {
|
|
177
|
+
const page = getPageElement(this.el);
|
|
178
|
+
const top = Math.max(this.el.offsetTop, 0);
|
|
179
|
+
const bottom = Math.max(page.offsetHeight - top - this.el.offsetHeight, 0);
|
|
180
|
+
const dirty = top !== this.cTop || bottom !== this.cBottom;
|
|
181
|
+
if (dirty) {
|
|
182
|
+
this.cTop = top;
|
|
183
|
+
this.cBottom = bottom;
|
|
184
|
+
forceUpdate(this);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
onScroll(ev) {
|
|
188
|
+
const timeStamp = Date.now();
|
|
189
|
+
const shouldStart = !this.isScrolling;
|
|
190
|
+
this.lastScroll = timeStamp;
|
|
191
|
+
if (shouldStart) {
|
|
192
|
+
this.onScrollStart();
|
|
193
|
+
}
|
|
194
|
+
if (!this.queued && this.scrollEvents) {
|
|
195
|
+
this.queued = true;
|
|
196
|
+
readTask((ts) => {
|
|
197
|
+
this.queued = false;
|
|
198
|
+
this.detail.event = ev;
|
|
199
|
+
updateScrollDetail(this.detail, this.scrollEl, ts, shouldStart);
|
|
200
|
+
this.ionScroll.emit(this.detail);
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Get the element where the actual scrolling takes place.
|
|
206
|
+
* This element can be used to subscribe to `scroll` events or manually modify
|
|
207
|
+
* `scrollTop`. However, it's recommended to use the API provided by `ion-content`:
|
|
208
|
+
*
|
|
209
|
+
* i.e. Using `ionScroll`, `ionScrollStart`, `ionScrollEnd` for scrolling events
|
|
210
|
+
* and `scrollToPoint()` to scroll the content into a certain point.
|
|
211
|
+
*/
|
|
212
|
+
async getScrollElement() {
|
|
213
|
+
/**
|
|
214
|
+
* If this gets called in certain early lifecycle hooks (ex: Vue onMounted),
|
|
215
|
+
* scrollEl won't be defined yet with the custom elements build, so wait for it to load in.
|
|
216
|
+
*/
|
|
217
|
+
if (!this.scrollEl) {
|
|
218
|
+
await new Promise((resolve) => componentOnReady(this.el, resolve));
|
|
219
|
+
}
|
|
220
|
+
return Promise.resolve(this.scrollEl);
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Returns the background content element.
|
|
224
|
+
* @internal
|
|
225
|
+
*/
|
|
226
|
+
async getBackgroundElement() {
|
|
227
|
+
if (!this.backgroundContentEl) {
|
|
228
|
+
await new Promise((resolve) => componentOnReady(this.el, resolve));
|
|
229
|
+
}
|
|
230
|
+
return Promise.resolve(this.backgroundContentEl);
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Scroll to the top of the component.
|
|
234
|
+
*
|
|
235
|
+
* @param duration The amount of time to take scrolling to the top. Defaults to `0`.
|
|
236
|
+
*/
|
|
237
|
+
scrollToTop(duration = 0) {
|
|
238
|
+
return this.scrollToPoint(undefined, 0, duration);
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Scroll to the bottom of the component.
|
|
242
|
+
*
|
|
243
|
+
* @param duration The amount of time to take scrolling to the bottom. Defaults to `0`.
|
|
244
|
+
*/
|
|
245
|
+
async scrollToBottom(duration = 0) {
|
|
246
|
+
const scrollEl = await this.getScrollElement();
|
|
247
|
+
const y = scrollEl.scrollHeight - scrollEl.clientHeight;
|
|
248
|
+
return this.scrollToPoint(undefined, y, duration);
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Scroll by a specified X/Y distance in the component.
|
|
252
|
+
*
|
|
253
|
+
* @param x The amount to scroll by on the horizontal axis.
|
|
254
|
+
* @param y The amount to scroll by on the vertical axis.
|
|
255
|
+
* @param duration The amount of time to take scrolling by that amount.
|
|
256
|
+
*/
|
|
257
|
+
async scrollByPoint(x, y, duration) {
|
|
258
|
+
const scrollEl = await this.getScrollElement();
|
|
259
|
+
return this.scrollToPoint(x + scrollEl.scrollLeft, y + scrollEl.scrollTop, duration);
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Scroll to a specified X/Y location in the component.
|
|
263
|
+
*
|
|
264
|
+
* @param x The point to scroll to on the horizontal axis.
|
|
265
|
+
* @param y The point to scroll to on the vertical axis.
|
|
266
|
+
* @param duration The amount of time to take scrolling to that point. Defaults to `0`.
|
|
267
|
+
*/
|
|
268
|
+
async scrollToPoint(x, y, duration = 0) {
|
|
269
|
+
const el = await this.getScrollElement();
|
|
270
|
+
if (duration < 32) {
|
|
271
|
+
if (y != null) {
|
|
272
|
+
el.scrollTop = y;
|
|
273
|
+
}
|
|
274
|
+
if (x != null) {
|
|
275
|
+
el.scrollLeft = x;
|
|
276
|
+
}
|
|
277
|
+
return;
|
|
278
|
+
}
|
|
279
|
+
let resolve;
|
|
280
|
+
let startTime = 0;
|
|
281
|
+
const promise = new Promise((r) => (resolve = r));
|
|
282
|
+
const fromY = el.scrollTop;
|
|
283
|
+
const fromX = el.scrollLeft;
|
|
284
|
+
const deltaY = y != null ? y - fromY : 0;
|
|
285
|
+
const deltaX = x != null ? x - fromX : 0;
|
|
286
|
+
// scroll loop
|
|
287
|
+
const step = (timeStamp) => {
|
|
288
|
+
const linearTime = Math.min(1, (timeStamp - startTime) / duration) - 1;
|
|
289
|
+
const easedT = Math.pow(linearTime, 3) + 1;
|
|
290
|
+
if (deltaY !== 0) {
|
|
291
|
+
el.scrollTop = Math.floor(easedT * deltaY + fromY);
|
|
292
|
+
}
|
|
293
|
+
if (deltaX !== 0) {
|
|
294
|
+
el.scrollLeft = Math.floor(easedT * deltaX + fromX);
|
|
295
|
+
}
|
|
296
|
+
if (easedT < 1) {
|
|
297
|
+
// do not use DomController here
|
|
298
|
+
// must use nativeRaf in order to fire in the next frame
|
|
299
|
+
requestAnimationFrame(step);
|
|
300
|
+
}
|
|
301
|
+
else {
|
|
302
|
+
resolve();
|
|
303
|
+
}
|
|
304
|
+
};
|
|
305
|
+
// chill out for a frame first
|
|
306
|
+
requestAnimationFrame((ts) => {
|
|
307
|
+
startTime = ts;
|
|
308
|
+
step(ts);
|
|
309
|
+
});
|
|
310
|
+
return promise;
|
|
311
|
+
}
|
|
312
|
+
onScrollStart() {
|
|
313
|
+
this.isScrolling = true;
|
|
314
|
+
this.ionScrollStart.emit({
|
|
315
|
+
isScrolling: true,
|
|
316
|
+
});
|
|
317
|
+
if (this.watchDog) {
|
|
318
|
+
clearInterval(this.watchDog);
|
|
319
|
+
}
|
|
320
|
+
// watchdog
|
|
321
|
+
this.watchDog = setInterval(() => {
|
|
322
|
+
if (this.lastScroll < Date.now() - 120) {
|
|
323
|
+
this.onScrollEnd();
|
|
324
|
+
}
|
|
325
|
+
}, 100);
|
|
326
|
+
}
|
|
327
|
+
onScrollEnd() {
|
|
328
|
+
if (this.watchDog)
|
|
329
|
+
clearInterval(this.watchDog);
|
|
330
|
+
this.watchDog = null;
|
|
331
|
+
if (this.isScrolling) {
|
|
332
|
+
this.isScrolling = false;
|
|
333
|
+
this.ionScrollEnd.emit({
|
|
334
|
+
isScrolling: false,
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
render() {
|
|
339
|
+
const { fixedSlotPlacement, inheritedAttributes, isMainContent, scrollX, scrollY, el } = this;
|
|
340
|
+
const rtl = isRTL(el) ? 'rtl' : 'ltr';
|
|
341
|
+
const mode = getIonMode(this);
|
|
342
|
+
const forceOverscroll = this.shouldForceOverscroll();
|
|
343
|
+
const transitionShadow = mode === 'ios';
|
|
344
|
+
this.resize();
|
|
345
|
+
return (h(Host, Object.assign({ key: 'f2a24aa66dbf5c76f9d4b06f708eb73cadc239df', role: isMainContent ? 'main' : undefined, class: createColorClasses(this.color, {
|
|
346
|
+
[mode]: true,
|
|
347
|
+
'content-sizing': hostContext('ion-popover', this.el),
|
|
348
|
+
overscroll: forceOverscroll,
|
|
349
|
+
[`content-${rtl}`]: true,
|
|
350
|
+
}), style: {
|
|
351
|
+
'--offset-top': `${this.cTop}px`,
|
|
352
|
+
'--offset-bottom': `${this.cBottom}px`,
|
|
353
|
+
} }, inheritedAttributes), h("div", { key: '6480ca7648b278abb36477b3838bccbcd4995e2a', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), fixedSlotPlacement === 'before' ? h("slot", { name: "fixed" }) : null, h("div", { key: '29a23b663f5f0215bb000820c01e1814c0d55985', class: {
|
|
354
|
+
'inner-scroll': true,
|
|
355
|
+
'scroll-x': scrollX,
|
|
356
|
+
'scroll-y': scrollY,
|
|
357
|
+
overscroll: (scrollX || scrollY) && forceOverscroll,
|
|
358
|
+
}, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, h("slot", { key: '0fe1bd05609a4b88ae2ce9addf5d5dc5dc1806f0' })), transitionShadow ? (h("div", { class: "transition-effect" }, h("div", { class: "transition-cover" }), h("div", { class: "transition-shadow" }))) : null, fixedSlotPlacement === 'after' ? h("slot", { name: "fixed" }) : null));
|
|
359
|
+
}
|
|
360
|
+
get el() { return this; }
|
|
361
|
+
static get style() { return IonContentStyle0; }
|
|
362
|
+
}, [1, "ion-content", {
|
|
363
|
+
"color": [513],
|
|
364
|
+
"fullscreen": [4],
|
|
365
|
+
"fixedSlotPlacement": [1, "fixed-slot-placement"],
|
|
366
|
+
"forceOverscroll": [1028, "force-overscroll"],
|
|
367
|
+
"scrollX": [4, "scroll-x"],
|
|
368
|
+
"scrollY": [4, "scroll-y"],
|
|
369
|
+
"scrollEvents": [4, "scroll-events"],
|
|
370
|
+
"getScrollElement": [64],
|
|
371
|
+
"getBackgroundElement": [64],
|
|
372
|
+
"scrollToTop": [64],
|
|
373
|
+
"scrollToBottom": [64],
|
|
374
|
+
"scrollByPoint": [64],
|
|
375
|
+
"scrollToPoint": [64]
|
|
376
|
+
}, [[9, "resize", "onResize"]]]);
|
|
377
|
+
const getParentElement = (el) => {
|
|
378
|
+
var _a;
|
|
379
|
+
if (el.parentElement) {
|
|
380
|
+
// normal element with a parent element
|
|
381
|
+
return el.parentElement;
|
|
382
|
+
}
|
|
383
|
+
if ((_a = el.parentNode) === null || _a === void 0 ? void 0 : _a.host) {
|
|
384
|
+
// shadow dom's document fragment
|
|
385
|
+
return el.parentNode.host;
|
|
386
|
+
}
|
|
387
|
+
return null;
|
|
388
|
+
};
|
|
389
|
+
const getPageElement = (el) => {
|
|
390
|
+
const tabs = el.closest('ion-tabs');
|
|
391
|
+
if (tabs) {
|
|
392
|
+
return tabs;
|
|
393
|
+
}
|
|
394
|
+
/**
|
|
395
|
+
* If we're in a popover, we need to use its wrapper so we can account for space
|
|
396
|
+
* between the popover and the edges of the screen. But if the popover contains
|
|
397
|
+
* its own page element, we should use that instead.
|
|
398
|
+
*/
|
|
399
|
+
const page = el.closest('ion-app, ion-page, .ion-page, page-inner, .popover-content');
|
|
400
|
+
if (page) {
|
|
401
|
+
return page;
|
|
402
|
+
}
|
|
403
|
+
return getParentElement(el);
|
|
404
|
+
};
|
|
405
|
+
// ******** DOM READ ****************
|
|
406
|
+
const updateScrollDetail = (detail, el, timestamp, shouldStart) => {
|
|
407
|
+
const prevX = detail.currentX;
|
|
408
|
+
const prevY = detail.currentY;
|
|
409
|
+
const prevT = detail.currentTime;
|
|
410
|
+
const currentX = el.scrollLeft;
|
|
411
|
+
const currentY = el.scrollTop;
|
|
412
|
+
const timeDelta = timestamp - prevT;
|
|
413
|
+
if (shouldStart) {
|
|
414
|
+
// remember the start positions
|
|
415
|
+
detail.startTime = timestamp;
|
|
416
|
+
detail.startX = currentX;
|
|
417
|
+
detail.startY = currentY;
|
|
418
|
+
detail.velocityX = detail.velocityY = 0;
|
|
419
|
+
}
|
|
420
|
+
detail.currentTime = timestamp;
|
|
421
|
+
detail.currentX = detail.scrollLeft = currentX;
|
|
422
|
+
detail.currentY = detail.scrollTop = currentY;
|
|
423
|
+
detail.deltaX = currentX - detail.startX;
|
|
424
|
+
detail.deltaY = currentY - detail.startY;
|
|
425
|
+
if (timeDelta > 0 && timeDelta < 100) {
|
|
426
|
+
const velocityX = (currentX - prevX) / timeDelta;
|
|
427
|
+
const velocityY = (currentY - prevY) / timeDelta;
|
|
428
|
+
detail.velocityX = velocityX * 0.7 + detail.velocityX * 0.3;
|
|
429
|
+
detail.velocityY = velocityY * 0.7 + detail.velocityY * 0.3;
|
|
430
|
+
}
|
|
431
|
+
};
|
|
432
|
+
function defineCustomElement() {
|
|
433
|
+
if (typeof customElements === "undefined") {
|
|
434
|
+
return;
|
|
435
|
+
}
|
|
436
|
+
const components = ["ion-content"];
|
|
437
|
+
components.forEach(tagName => { switch (tagName) {
|
|
438
|
+
case "ion-content":
|
|
439
|
+
if (!customElements.get(tagName)) {
|
|
440
|
+
customElements.define(tagName, Content);
|
|
441
|
+
}
|
|
442
|
+
break;
|
|
443
|
+
} });
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
export { Content as C, defineCustomElement as d };
|