@pod-os/elements 0.7.1-92705ee.0 → 0.7.1-a71f01c.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/dist/cjs/{animation-5840e4df.js → animation-9bea118f.js} +115 -84
- package/dist/cjs/{app-globals-1aedd05c.js → app-globals-6352043e.js} +1 -1
- package/dist/cjs/{cubic-bezier-dcb7bfef.js → cubic-bezier-0b702a31.js} +13 -12
- package/dist/cjs/data-0c9489d7.js +1510 -0
- package/dist/cjs/dir-011f46ea.js +20 -0
- package/dist/cjs/elements.cjs.js +5 -5
- package/dist/cjs/focus-visible-2624ec15.js +76 -0
- package/dist/cjs/framework-delegate-437c0645.js +119 -0
- package/dist/cjs/{gesture-controller-fbbe9a65.js → gesture-controller-00a6b02f.js} +6 -2
- package/dist/cjs/{haptic-09e73337.js → haptic-7358cb0b.js} +37 -8
- package/dist/cjs/{hardware-back-button-01027575.js → hardware-back-button-25372ec7.js} +11 -8
- package/dist/cjs/{helpers-398ced09.js → helpers-cb08f5ae.js} +115 -15
- package/dist/cjs/{index-2067b305.js → index-1b07c737.js} +35 -24
- package/dist/cjs/{index-68ae43d2.js → index-2dc3637c.js} +34 -28
- package/dist/cjs/index-57b9fa9e.js +30 -0
- package/dist/cjs/{index-d01d9183.js → index-643851c6.js} +34 -19
- package/dist/cjs/index-731691ca.js +48 -0
- package/dist/cjs/{index-6bbae9b1.js → index-7d56774d.js} +12 -8
- package/dist/cjs/index-9fca5d6f.js +140 -0
- package/dist/cjs/index-b2a479e4.js +38 -0
- package/dist/cjs/{index-b4a9ece2.js → index-eaa0d16e.js} +7 -0
- package/dist/cjs/{tap-click-f24cb477.js → index-ed2ce04f.js} +37 -19
- package/dist/cjs/{input-shims-e959d9e2.js → input-shims-427999f7.js} +89 -38
- package/dist/cjs/ion-accordion-group.cjs.entry.js +205 -0
- package/dist/cjs/ion-accordion.cjs.entry.js +336 -0
- package/dist/cjs/ion-action-sheet_3.cjs.entry.js +865 -0
- package/dist/cjs/{ion-app_45.cjs.entry.js → ion-app_46.cjs.entry.js} +1906 -1492
- package/dist/cjs/ion-avatar.cjs.entry.js +2 -2
- package/dist/cjs/ion-back-button.cjs.entry.js +12 -11
- package/dist/cjs/ion-backdrop.cjs.entry.js +4 -4
- package/dist/cjs/ion-breadcrumb.cjs.entry.js +101 -0
- package/dist/cjs/ion-breadcrumbs.cjs.entry.js +137 -0
- package/dist/cjs/ion-buttons_3.cjs.entry.js +799 -0
- package/dist/cjs/ion-card-subtitle.cjs.entry.js +4 -4
- package/dist/cjs/{ion-list-header_3.cjs.entry.js → ion-checkbox_4.cjs.entry.js} +124 -23
- package/dist/cjs/ion-chip.cjs.entry.js +5 -10
- package/dist/cjs/ion-datetime-button.cjs.entry.js +346 -0
- package/dist/cjs/ion-datetime.cjs.entry.js +1548 -856
- package/dist/cjs/ion-fab-button.cjs.entry.js +26 -9
- package/dist/cjs/ion-fab-list.cjs.entry.js +4 -4
- package/dist/cjs/ion-fab.cjs.entry.js +15 -13
- package/dist/cjs/ion-img.cjs.entry.js +28 -4
- package/dist/cjs/ion-infinite-scroll-content.cjs.entry.js +5 -5
- package/dist/cjs/ion-infinite-scroll.cjs.entry.js +13 -13
- package/dist/cjs/ion-input.cjs.entry.js +57 -23
- package/dist/cjs/ion-item-option.cjs.entry.js +8 -8
- package/dist/cjs/ion-item-options.cjs.entry.js +5 -5
- package/dist/cjs/ion-item-sliding.cjs.entry.js +59 -63
- package/dist/cjs/ion-loading.cjs.entry.js +38 -37
- package/dist/cjs/ion-menu-button.cjs.entry.js +14 -12
- package/dist/cjs/ion-menu-toggle.cjs.entry.js +8 -7
- package/dist/cjs/ion-menu.cjs.entry.js +71 -57
- package/dist/cjs/ion-modal.cjs.entry.js +1386 -156
- package/dist/cjs/ion-nav-link.cjs.entry.js +5 -2
- package/dist/cjs/ion-nav.cjs.entry.js +177 -171
- package/dist/cjs/ion-picker-column.cjs.entry.js +25 -27
- package/dist/cjs/ion-picker.cjs.entry.js +22 -17
- package/dist/cjs/ion-popover.cjs.entry.js +1208 -182
- package/dist/cjs/ion-range.cjs.entry.js +137 -57
- package/dist/cjs/ion-refresher-content.cjs.entry.js +7 -12
- package/dist/cjs/ion-refresher.cjs.entry.js +150 -148
- package/dist/cjs/ion-reorder-group.cjs.entry.js +42 -35
- package/dist/cjs/ion-reorder.cjs.entry.js +5 -4
- package/dist/cjs/ion-route-redirect.cjs.entry.js +1 -1
- package/dist/cjs/ion-route.cjs.entry.js +1 -1
- package/dist/cjs/ion-router-link.cjs.entry.js +5 -5
- package/dist/cjs/ion-router-outlet.cjs.entry.js +24 -20
- package/dist/cjs/ion-router.cjs.entry.js +291 -194
- package/dist/cjs/ion-segment-button.cjs.entry.js +10 -17
- package/dist/cjs/ion-segment.cjs.entry.js +127 -26
- package/dist/cjs/ion-select-option.cjs.entry.js +3 -3
- package/dist/cjs/ion-select.cjs.entry.js +113 -78
- package/dist/cjs/ion-slide.cjs.entry.js +3 -3
- package/dist/cjs/ion-slides.cjs.entry.js +26 -27
- package/dist/cjs/ion-spinner.cjs.entry.js +10 -9
- package/dist/cjs/ion-split-pane.cjs.entry.js +16 -12
- package/dist/cjs/ion-tab-bar.cjs.entry.js +16 -23
- package/dist/cjs/ion-tab-button.cjs.entry.js +6 -6
- package/dist/cjs/ion-tab.cjs.entry.js +4 -4
- package/dist/cjs/ion-tabs.cjs.entry.js +4 -5
- package/dist/cjs/ion-text.cjs.entry.js +3 -3
- package/dist/cjs/ion-textarea.cjs.entry.js +31 -29
- package/dist/cjs/ion-thumbnail.cjs.entry.js +2 -2
- package/dist/cjs/ion-toast.cjs.entry.js +50 -60
- package/dist/cjs/ion-toggle.cjs.entry.js +41 -22
- package/dist/cjs/ion-virtual-scroll.cjs.entry.js +39 -31
- package/dist/cjs/{ionic-global-56e10eb5.js → ionic-global-f2d95fd3.js} +112 -93
- package/dist/cjs/{ios.transition-32e4623d.js → ios.transition-0f31ec9a.js} +78 -53
- package/dist/cjs/{keyboard-9e8103e4.js → keyboard-79afcba2.js} +6 -3
- package/dist/cjs/keyboard-controller-a934d106.js +42 -0
- package/dist/cjs/loader.cjs.js +5 -5
- package/dist/cjs/{md.transition-169c54f0.js → md.transition-d2a33a23.js} +15 -17
- package/dist/cjs/{menu-toggle-util-087678e0.js → menu-toggle-util-0a43ff7c.js} +5 -2
- package/dist/cjs/{overlays-49fe9ba7.js → overlays-f7d24abf.js} +190 -72
- package/dist/cjs/spinner-configs-cd0abbeb.js +147 -0
- package/dist/cjs/{status-tap-ada894ff.js → status-tap-beaa3a71.js} +10 -5
- package/dist/cjs/{swipe-back-c4a778df.js → swipe-back-666ea8e6.js} +34 -15
- package/dist/cjs/{theme-2259d0f5.js → theme-fc63803b.js} +9 -5
- package/dist/collection/collection-manifest.json +10 -4
- package/dist/collection/components/pos-rich-link/pos-rich-link.js +1 -1
- package/dist/components/ResourceAware.js +5 -0
- package/dist/components/action-sheet.js +309 -0
- package/dist/{esm/ion-alert.entry.js → components/alert.js} +150 -105
- package/dist/{esm/animation-fe6ed422.js → components/animation.js} +115 -84
- package/dist/components/app.js +112 -0
- package/dist/components/backdrop.js +82 -0
- package/dist/components/badge.js +42 -0
- package/dist/{esm/button-active-fd9d6d91.js → components/button-active.js} +9 -6
- package/dist/components/button.js +207 -0
- package/dist/{esm/ion-buttons.entry.js → components/buttons.js} +28 -12
- package/dist/components/card-content.js +40 -0
- package/dist/components/card-header.js +51 -0
- package/dist/components/card-title.js +43 -0
- package/dist/components/card.js +102 -0
- package/dist/{esm/ion-checkbox.entry.js → components/checkbox.js} +42 -24
- package/dist/components/col.js +161 -0
- package/dist/components/content.js +356 -0
- package/dist/{esm/cubic-bezier-108b8579.js → components/cubic-bezier.js} +13 -12
- package/dist/components/data.js +1463 -0
- package/dist/components/dir.js +18 -0
- package/dist/components/focus-visible.js +74 -0
- package/dist/components/footer.js +149 -0
- package/dist/components/framework-delegate.js +115 -0
- package/dist/{esm/gesture-controller-8f35af24.js → components/gesture-controller.js} +6 -2
- package/dist/components/grid.js +41 -0
- package/dist/{esm/haptic-c424e670.js → components/haptic.js} +38 -9
- package/dist/{esm/hardware-back-button-bb4c578a.js → components/hardware-back-button.js} +11 -8
- package/dist/components/header.js +360 -0
- package/dist/{esm/helpers-44e3bd9f.js → components/helpers.js} +113 -16
- package/dist/components/icon.js +367 -0
- package/dist/components/index.d.ts +41 -0
- package/dist/components/index.js +123 -0
- package/dist/components/index10.js +28 -0
- package/dist/{esm/tap-click-a7e55ef5.js → components/index11.js} +37 -19
- package/dist/components/index2.js +25 -0
- package/dist/{esm/index-8d682224.js → components/index3.js} +12 -8
- package/dist/components/index4.js +34 -0
- package/dist/components/index5.js +128 -0
- package/dist/{esm/index-97199683.js → components/index6.js} +34 -28
- package/dist/{esm/index-8a463a85.js → components/index7.js} +35 -24
- package/dist/{custom-elements/index.js → components/index8.js} +1049 -20945
- package/dist/{esm/index-3a1bd803.js → components/index9.js} +35 -20
- package/dist/{custom-elements → components}/input-shims.js +88 -38
- package/dist/components/ion-accordion-group.js +228 -0
- package/dist/components/ion-accordion.js +365 -0
- package/dist/components/ion-action-sheet.js +6 -0
- package/dist/components/ion-alert.js +6 -0
- package/dist/components/ion-app.js +6 -0
- package/dist/components/ion-avatar.js +39 -0
- package/dist/components/ion-back-button.js +128 -0
- package/dist/components/ion-backdrop.js +6 -0
- package/dist/components/ion-badge.js +6 -0
- package/dist/components/ion-breadcrumb.js +135 -0
- package/dist/components/ion-breadcrumbs.js +158 -0
- package/dist/components/ion-button.js +6 -0
- package/dist/components/ion-buttons.js +6 -0
- package/dist/components/ion-card-content.js +6 -0
- package/dist/components/ion-card-header.js +6 -0
- package/dist/components/ion-card-subtitle.js +46 -0
- package/dist/components/ion-card-title.js +6 -0
- package/dist/components/ion-card.js +6 -0
- package/dist/components/ion-checkbox.js +6 -0
- package/dist/components/ion-chip.js +59 -0
- package/dist/components/ion-col.js +6 -0
- package/dist/components/ion-content.js +6 -0
- package/dist/components/ion-datetime-button.js +375 -0
- package/dist/components/ion-datetime.js +1802 -0
- package/dist/components/ion-fab-button.js +149 -0
- package/dist/components/ion-fab-list.js +62 -0
- package/dist/components/ion-fab.js +97 -0
- package/dist/components/ion-footer.js +6 -0
- package/dist/components/ion-grid.js +6 -0
- package/dist/components/ion-header.js +6 -0
- package/dist/components/ion-icon.js +6 -0
- package/dist/components/ion-img.js +120 -0
- package/dist/components/ion-infinite-scroll-content.js +59 -0
- package/dist/components/ion-infinite-scroll.js +223 -0
- package/dist/components/ion-input.js +352 -0
- package/dist/components/ion-item-divider.js +6 -0
- package/dist/components/ion-item-group.js +6 -0
- package/dist/components/ion-item-option.js +89 -0
- package/dist/components/ion-item-options.js +63 -0
- package/dist/components/ion-item-sliding.js +419 -0
- package/dist/components/ion-item.js +6 -0
- package/dist/components/ion-label.js +6 -0
- package/dist/components/ion-list-header.js +6 -0
- package/dist/components/ion-list.js +6 -0
- package/dist/components/ion-loading.js +256 -0
- package/dist/components/ion-menu-button.js +107 -0
- package/dist/components/ion-menu-toggle.js +62 -0
- package/dist/components/ion-menu.js +611 -0
- package/dist/components/ion-modal.js +1765 -0
- package/dist/components/ion-nav-link.js +65 -0
- package/dist/components/ion-nav.js +905 -0
- package/dist/components/ion-note.js +6 -0
- package/dist/components/ion-picker-column-internal.js +6 -0
- package/dist/components/ion-picker-column.js +6 -0
- package/dist/components/ion-picker-internal.js +6 -0
- package/dist/components/ion-picker.js +263 -0
- package/dist/components/ion-popover.js +6 -0
- package/dist/components/ion-progress-bar.js +6 -0
- package/dist/components/ion-radio-group.js +6 -0
- package/dist/components/ion-radio.js +6 -0
- package/dist/components/ion-range.js +550 -0
- package/dist/components/ion-refresher-content.js +64 -0
- package/dist/components/ion-refresher.js +826 -0
- package/dist/components/ion-reorder-group.js +303 -0
- package/dist/components/ion-reorder.js +58 -0
- package/dist/components/ion-ripple-effect.js +6 -0
- package/dist/components/ion-route-redirect.js +40 -0
- package/dist/components/ion-route.js +68 -0
- package/dist/components/ion-router-link.js +59 -0
- package/dist/components/ion-router-outlet.js +223 -0
- package/dist/components/ion-router.js +852 -0
- package/dist/components/ion-row.js +6 -0
- package/dist/components/ion-searchbar.js +6 -0
- package/dist/components/ion-segment-button.js +128 -0
- package/dist/components/ion-segment.js +463 -0
- package/dist/components/ion-select-option.js +44 -0
- package/dist/components/ion-select-popover.js +6 -0
- package/dist/components/ion-select.js +596 -0
- package/dist/components/ion-skeleton-text.js +6 -0
- package/dist/components/ion-slide.js +38 -0
- package/dist/components/ion-slides.js +423 -0
- package/dist/components/ion-spinner.js +6 -0
- package/dist/components/ion-split-pane.js +179 -0
- package/dist/components/ion-tab-bar.js +86 -0
- package/dist/components/ion-tab-button.js +132 -0
- package/dist/components/ion-tab.js +86 -0
- package/dist/components/ion-tabs.js +176 -0
- package/dist/components/ion-text.js +40 -0
- package/dist/components/ion-textarea.js +287 -0
- package/dist/components/ion-thumbnail.js +34 -0
- package/dist/components/ion-title.js +6 -0
- package/dist/components/ion-toast.js +317 -0
- package/dist/components/ion-toggle.js +207 -0
- package/dist/components/ion-toolbar.js +6 -0
- package/dist/components/ion-virtual-scroll.js +588 -0
- package/dist/components/ionic-global.js +226 -0
- package/dist/{custom-elements → components}/ios.transition.js +75 -50
- package/dist/components/item-divider.js +54 -0
- package/dist/components/item-group.js +41 -0
- package/dist/components/item.js +323 -0
- package/dist/components/keyboard-controller.js +40 -0
- package/dist/{custom-elements → components}/keyboard.js +6 -3
- package/dist/components/label.js +95 -0
- package/dist/components/list-header.js +45 -0
- package/dist/components/list.js +66 -0
- package/dist/{custom-elements → components}/md.transition.js +12 -14
- package/dist/{esm/menu-toggle-util-562dfc9c.js → components/menu-toggle-util.js} +5 -2
- package/dist/components/note.js +42 -0
- package/dist/{esm/overlays-fc9a0625.js → components/overlays.js} +188 -72
- package/dist/components/picker-column-internal.js +315 -0
- package/dist/components/picker-column.js +343 -0
- package/dist/components/picker-internal.js +486 -0
- package/dist/components/popover.js +1440 -0
- package/dist/components/pos-app-browser.d.ts +11 -0
- package/dist/components/pos-app-browser.js +299 -0
- package/dist/components/pos-app-generic.d.ts +11 -0
- package/dist/components/pos-app-generic.js +6 -0
- package/dist/components/pos-app-generic2.js +194 -0
- package/dist/components/pos-app-image-viewer.d.ts +11 -0
- package/dist/components/pos-app-image-viewer.js +6 -0
- package/dist/components/pos-app-image-viewer2.js +162 -0
- package/dist/components/pos-app-rdf-document.d.ts +11 -0
- package/dist/components/pos-app-rdf-document.js +6 -0
- package/dist/components/pos-app-rdf-document2.js +170 -0
- package/dist/components/pos-app.d.ts +11 -0
- package/dist/components/pos-app.js +6 -0
- package/dist/components/pos-app2.js +53 -0
- package/dist/components/pos-description.d.ts +11 -0
- package/dist/components/pos-description.js +6 -0
- package/dist/components/pos-description2.js +38 -0
- package/dist/components/pos-image.d.ts +11 -0
- package/dist/components/pos-image.js +6 -0
- package/dist/components/pos-image2.js +117 -0
- package/dist/components/pos-label.d.ts +11 -0
- package/dist/components/pos-label.js +6 -0
- package/dist/components/pos-label2.js +38 -0
- package/dist/components/pos-literals.d.ts +11 -0
- package/dist/components/pos-literals.js +6 -0
- package/dist/components/pos-literals2.js +87 -0
- package/dist/components/pos-login.d.ts +11 -0
- package/dist/components/pos-login.js +6 -0
- package/dist/components/pos-login2.js +120 -0
- package/dist/components/pos-navigation-bar.d.ts +11 -0
- package/dist/components/pos-navigation-bar.js +6 -0
- package/dist/components/pos-navigation-bar2.js +52 -0
- package/dist/components/pos-picture.d.ts +11 -0
- package/dist/components/pos-picture.js +6 -0
- package/dist/components/pos-picture2.js +62 -0
- package/dist/components/pos-relations.d.ts +11 -0
- package/dist/components/pos-relations.js +6 -0
- package/dist/components/pos-relations2.js +135 -0
- package/dist/components/pos-resource.d.ts +11 -0
- package/dist/components/pos-resource.js +6 -0
- package/dist/components/pos-resource2.js +126 -0
- package/dist/components/pos-reverse-relations.d.ts +11 -0
- package/dist/components/pos-reverse-relations.js +6 -0
- package/dist/components/pos-reverse-relations2.js +135 -0
- package/dist/components/pos-rich-link.d.ts +11 -0
- package/dist/components/pos-rich-link.js +6 -0
- package/dist/components/pos-rich-link2.js +106 -0
- package/dist/components/pos-router.d.ts +11 -0
- package/dist/components/pos-router.js +6 -0
- package/dist/components/pos-router2.js +813 -0
- package/dist/components/pos-subjects.d.ts +11 -0
- package/dist/components/pos-subjects.js +6 -0
- package/dist/components/pos-subjects2.js +125 -0
- package/dist/components/pos-type-badges.d.ts +11 -0
- package/dist/components/pos-type-badges.js +6 -0
- package/dist/components/pos-type-badges2.js +69 -0
- package/dist/components/pos-type-router.d.ts +11 -0
- package/dist/components/pos-type-router.js +6 -0
- package/dist/components/pos-type-router2.js +241 -0
- package/dist/components/progress-bar.js +91 -0
- package/dist/components/radio-group.js +139 -0
- package/dist/components/radio.js +135 -0
- package/dist/components/ripple-effect.js +107 -0
- package/dist/components/row.js +31 -0
- package/dist/components/searchbar.js +412 -0
- package/dist/components/select-popover.js +174 -0
- package/dist/components/session.js +202 -0
- package/dist/components/skeleton-text.js +46 -0
- package/dist/components/spinner.js +224 -0
- package/dist/{custom-elements → components}/status-tap.js +8 -4
- package/dist/{custom-elements → components}/swipe-back.js +33 -13
- package/dist/{custom-elements → components}/swiper.bundle.js +0 -0
- package/dist/{esm/theme-d21826a7.js → components/theme.js} +9 -5
- package/dist/components/title.js +66 -0
- package/dist/components/toolbar.js +87 -0
- package/dist/elements/elements.css +1 -1
- package/dist/elements/elements.esm.js +1 -1
- package/dist/elements/p-00f19b1d.js +4 -0
- package/dist/elements/p-0587332d.entry.js +1 -0
- package/dist/elements/p-07f54139.entry.js +7 -0
- package/dist/elements/{p-cfc0e54d.js → p-0991c811.js} +3 -0
- package/dist/elements/p-0a69a563.entry.js +1 -0
- package/dist/elements/p-0d284fe0.entry.js +1 -0
- package/dist/elements/p-116437b0.entry.js +13 -0
- package/dist/elements/p-12880671.entry.js +1 -0
- package/dist/elements/p-14ccd586.entry.js +1 -0
- package/dist/elements/{p-83d45051.entry.js → p-14df6ac0.entry.js} +1 -1
- package/dist/elements/{p-e860be6a.entry.js → p-17079f06.entry.js} +1 -1
- package/dist/elements/p-19e4a688.js +4 -0
- package/dist/elements/p-1afc4eb4.js +4 -0
- package/dist/elements/p-1beaf6bf.js +4 -0
- package/dist/elements/p-1d1c6a6f.entry.js +1 -0
- package/dist/elements/{p-31d30e42.entry.js → p-1d98f84b.entry.js} +1 -1
- package/dist/elements/p-1e617706.entry.js +7 -0
- package/dist/elements/p-278ca4c9.js +4 -0
- package/dist/elements/p-27f5629c.entry.js +1 -0
- package/dist/elements/p-29c0f03f.js +4 -0
- package/dist/elements/p-2a629468.entry.js +4 -0
- package/dist/elements/p-2da59aca.js +4 -0
- package/dist/elements/p-3152143f.js +4 -0
- package/dist/elements/p-343ff720.entry.js +7 -0
- package/dist/elements/p-36d4c9a8.js +4 -0
- package/dist/elements/p-3a30dfb2.entry.js +1 -0
- package/dist/elements/p-3c013bf1.entry.js +1 -0
- package/dist/elements/{p-74ba1e42.entry.js → p-3c318da5.entry.js} +1 -1
- package/dist/elements/p-3cee3222.entry.js +1 -0
- package/dist/elements/p-3d0f59af.entry.js +7 -0
- package/dist/elements/p-41cb5688.entry.js +1 -0
- package/dist/elements/p-480b3c4f.entry.js +1 -0
- package/dist/elements/p-4e9d8f18.entry.js +1 -0
- package/dist/elements/p-53e23176.js +2 -0
- package/dist/elements/p-548524f3.js +4 -0
- package/dist/elements/p-5739fa41.entry.js +1 -0
- package/dist/elements/p-5808c505.js +1 -0
- package/dist/elements/p-58a8cc2a.js +4 -0
- package/dist/elements/p-6035415e.entry.js +1 -0
- package/dist/elements/p-60eeae90.js +4 -0
- package/dist/elements/p-667550a9.entry.js +14 -0
- package/dist/elements/p-67777478.entry.js +1 -0
- package/dist/elements/p-6ab826e1.entry.js +1 -0
- package/dist/elements/p-6f5a2827.entry.js +1 -0
- package/dist/elements/p-7916ecc5.entry.js +1 -0
- package/dist/elements/p-79f06b80.entry.js +1 -0
- package/dist/elements/p-7d0def79.js +5 -0
- package/dist/elements/p-8112afea.js +4 -0
- package/dist/elements/p-83678d7d.entry.js +4 -0
- package/dist/elements/p-87e45c94.entry.js +1 -0
- package/dist/elements/p-8f80768f.entry.js +4 -0
- package/dist/elements/p-8fe0433b.js +4 -0
- package/dist/elements/{p-4cb27b48.entry.js → p-9147d82b.entry.js} +1 -1
- package/dist/elements/p-96aeb07a.entry.js +1 -0
- package/dist/elements/p-97abb434.entry.js +1 -0
- package/dist/elements/p-98497a4b.entry.js +1 -0
- package/dist/elements/p-9c719139.js +4 -0
- package/dist/elements/p-9ca37332.js +4 -0
- package/dist/elements/{p-37de7110.js → p-9d48def2.js} +3 -0
- package/dist/elements/p-a805f2f9.entry.js +1 -0
- package/dist/elements/p-a86a5bfa.entry.js +1 -0
- package/dist/elements/{p-9c1dbe52.entry.js → p-ac34eab7.entry.js} +1 -1
- package/dist/elements/p-ad366eab.entry.js +4 -0
- package/dist/elements/p-aef3a931.js +7 -0
- package/dist/elements/p-b0537eb3.entry.js +1 -0
- package/dist/elements/p-b41e66f0.entry.js +1 -0
- package/dist/elements/p-b47e7091.entry.js +1 -0
- package/dist/elements/p-b840320e.js +4 -0
- package/dist/elements/p-b934ac5d.entry.js +1 -0
- package/dist/elements/p-bc63f4b6.entry.js +1 -0
- package/dist/elements/p-bd12806f.entry.js +1 -0
- package/dist/elements/p-bf90022d.entry.js +4 -0
- package/dist/elements/p-c16d38d5.js +4 -0
- package/dist/elements/p-c84205a3.js +4 -0
- package/dist/elements/{p-06675ac7.entry.js → p-cbe318f8.entry.js} +1 -1
- package/dist/elements/p-cfed7395.js +4 -0
- package/dist/elements/p-d3e75c94.entry.js +1 -0
- package/dist/elements/p-d8e7ebf4.entry.js +7 -0
- package/dist/elements/p-d9880221.entry.js +4 -0
- package/dist/elements/p-da5db8fb.entry.js +1 -0
- package/dist/elements/{p-91fe653f.js → p-dcc6b03c.js} +3 -0
- package/dist/elements/{p-305e246c.entry.js → p-dd846020.entry.js} +1 -1
- package/dist/elements/p-dffd8689.js +4 -0
- package/dist/elements/p-e3bcb6e8.entry.js +1 -0
- package/dist/elements/p-e495a095.js +4 -0
- package/dist/elements/p-e59d9789.entry.js +1 -0
- package/dist/elements/p-e5fc7d42.entry.js +1 -0
- package/dist/elements/{p-aaa8393e.entry.js → p-eb137e9d.entry.js} +1 -1
- package/dist/elements/p-f4e54a17.js +7 -0
- package/dist/elements/p-f67d0717.entry.js +1 -0
- package/dist/elements/p-f7f4c640.js +1 -0
- package/dist/elements/p-f851b91a.js +4 -0
- package/dist/elements/p-fb27ee76.entry.js +1 -0
- package/dist/elements/p-fbddca35.entry.js +1 -0
- package/dist/elements/p-fdac5f3a.js +4 -0
- package/dist/elements/p-feb0cea8.entry.js +4 -0
- package/dist/esm/animation-801a007a.js +986 -0
- package/dist/esm/{app-globals-27d92837.js → app-globals-05a3abfb.js} +1 -1
- package/dist/esm/cubic-bezier-538b6253.js +90 -0
- package/dist/esm/data-62c81c24.js +1463 -0
- package/dist/esm/dir-defb16c6.js +18 -0
- package/dist/esm/elements.js +5 -5
- package/dist/esm/focus-visible-78d55799.js +74 -0
- package/dist/esm/framework-delegate-7e2b767b.js +115 -0
- package/dist/esm/gesture-controller-c466ff14.js +195 -0
- package/dist/esm/haptic-e7d5ef4d.js +135 -0
- package/dist/esm/hardware-back-button-242191a7.js +71 -0
- package/dist/esm/helpers-aeff219b.js +410 -0
- package/dist/esm/index-0dbaca1a.js +28 -0
- package/dist/esm/index-1f3d8582.js +34 -0
- package/dist/esm/index-2be9a18b.js +312 -0
- package/dist/esm/index-51e4a829.js +137 -0
- package/dist/esm/index-6048aed6.js +224 -0
- package/dist/esm/index-65ecd543.js +25 -0
- package/dist/{custom-elements/tap-click.js → esm/index-b212db1c.js} +37 -19
- package/dist/esm/{index-e4deec27.js → index-cb938ffb.js} +7 -1
- package/dist/esm/index-d39eb62b.js +463 -0
- package/dist/esm/index-ebf7f059.js +128 -0
- package/dist/esm/{input-shims-3b48722f.js → input-shims-8a389148.js} +89 -38
- package/dist/esm/ion-accordion-group.entry.js +201 -0
- package/dist/esm/ion-accordion.entry.js +332 -0
- package/dist/esm/ion-action-sheet_3.entry.js +859 -0
- package/dist/esm/{ion-app_45.entry.js → ion-app_46.entry.js} +1906 -1493
- package/dist/esm/ion-avatar.entry.js +2 -2
- package/dist/esm/ion-back-button.entry.js +12 -11
- package/dist/esm/ion-backdrop.entry.js +4 -4
- package/dist/esm/ion-breadcrumb.entry.js +97 -0
- package/dist/esm/ion-breadcrumbs.entry.js +133 -0
- package/dist/esm/ion-buttons_3.entry.js +793 -0
- package/dist/esm/ion-card-subtitle.entry.js +4 -4
- package/dist/esm/{ion-list-header_3.entry.js → ion-checkbox_4.entry.js} +124 -24
- package/dist/esm/ion-chip.entry.js +5 -10
- package/dist/esm/ion-datetime-button.entry.js +342 -0
- package/dist/esm/ion-datetime.entry.js +1548 -856
- package/dist/esm/ion-fab-button.entry.js +26 -9
- package/dist/esm/ion-fab-list.entry.js +4 -4
- package/dist/esm/ion-fab.entry.js +15 -13
- package/dist/esm/ion-img.entry.js +28 -4
- package/dist/esm/ion-infinite-scroll-content.entry.js +5 -5
- package/dist/esm/ion-infinite-scroll.entry.js +13 -13
- package/dist/esm/ion-input.entry.js +57 -23
- package/dist/esm/ion-item-option.entry.js +8 -8
- package/dist/esm/ion-item-options.entry.js +5 -5
- package/dist/esm/ion-item-sliding.entry.js +59 -63
- package/dist/esm/ion-loading.entry.js +38 -37
- package/dist/esm/ion-menu-button.entry.js +14 -12
- package/dist/esm/ion-menu-toggle.entry.js +8 -7
- package/dist/esm/ion-menu.entry.js +71 -57
- package/dist/esm/ion-modal.entry.js +1377 -147
- package/dist/esm/ion-nav-link.entry.js +5 -2
- package/dist/esm/ion-nav.entry.js +177 -171
- package/dist/esm/ion-picker-column.entry.js +25 -27
- package/dist/esm/ion-picker.entry.js +22 -17
- package/dist/esm/ion-popover.entry.js +1208 -182
- package/dist/esm/ion-range.entry.js +137 -57
- package/dist/esm/ion-refresher-content.entry.js +7 -12
- package/dist/esm/ion-refresher.entry.js +149 -147
- package/dist/esm/ion-reorder-group.entry.js +42 -35
- package/dist/esm/ion-reorder.entry.js +5 -4
- package/dist/esm/ion-route-redirect.entry.js +1 -1
- package/dist/esm/ion-route.entry.js +1 -1
- package/dist/esm/ion-router-link.entry.js +5 -5
- package/dist/esm/ion-router-outlet.entry.js +24 -20
- package/dist/esm/ion-router.entry.js +291 -194
- package/dist/esm/ion-segment-button.entry.js +10 -17
- package/dist/esm/ion-segment.entry.js +127 -26
- package/dist/esm/ion-select-option.entry.js +3 -3
- package/dist/esm/ion-select.entry.js +113 -78
- package/dist/esm/ion-slide.entry.js +3 -3
- package/dist/esm/ion-slides.entry.js +26 -27
- package/dist/esm/ion-spinner.entry.js +10 -9
- package/dist/esm/ion-split-pane.entry.js +16 -12
- package/dist/esm/ion-tab-bar.entry.js +16 -23
- package/dist/esm/ion-tab-button.entry.js +6 -6
- package/dist/esm/ion-tab.entry.js +4 -4
- package/dist/esm/ion-tabs.entry.js +4 -5
- package/dist/esm/ion-text.entry.js +3 -3
- package/dist/esm/ion-textarea.entry.js +31 -29
- package/dist/esm/ion-thumbnail.entry.js +2 -2
- package/dist/esm/ion-toast.entry.js +50 -60
- package/dist/esm/ion-toggle.entry.js +41 -22
- package/dist/esm/ion-virtual-scroll.entry.js +39 -31
- package/dist/esm/{ionic-global-2e28f7c7.js → ionic-global-6cd57191.js} +112 -93
- package/dist/esm/{ios.transition-a783e3cd.js → ios.transition-bbd952f2.js} +78 -53
- package/dist/esm/{keyboard-e6abcb80.js → keyboard-413afe04.js} +6 -3
- package/dist/esm/keyboard-controller-33693bc2.js +40 -0
- package/dist/esm/loader.js +5 -5
- package/dist/esm/{md.transition-5a4a8c82.js → md.transition-5170a6d3.js} +15 -17
- package/dist/esm/menu-toggle-util-82bf888a.js +12 -0
- package/dist/esm/overlays-bd4abb68.js +502 -0
- package/dist/esm/spinner-configs-cbcd1f62.js +145 -0
- package/dist/esm/{status-tap-69e62ad6.js → status-tap-ad757b8a.js} +10 -5
- package/dist/esm/swipe-back-7ef22876.js +69 -0
- package/dist/esm/theme-7cf2cab0.js +43 -0
- package/dist/types/components.d.ts +0 -13
- package/package.json +7 -8
- package/dist/cjs/button-active-c14dab31.js +0 -66
- package/dist/cjs/focus-visible-16c98640.js +0 -45
- package/dist/cjs/framework-delegate-c45292a3.js +0 -37
- package/dist/cjs/ion-action-sheet.cjs.entry.js +0 -265
- package/dist/cjs/ion-alert.cjs.entry.js +0 -456
- package/dist/cjs/ion-buttons.cjs.entry.js +0 -42
- package/dist/cjs/ion-checkbox.cjs.entry.js +0 -117
- package/dist/cjs/ion-note.cjs.entry.js +0 -29
- package/dist/cjs/ion-select-popover.cjs.entry.js +0 -35
- package/dist/cjs/spinner-configs-fb16b986.js +0 -112
- package/dist/cjs/test-component.cjs.entry.js +0 -13
- package/dist/collection/test/TestComponent.js +0 -3
- package/dist/collection/test/mockPodOS.js +0 -35
- package/dist/collection/test/renderFunctionalComponent.js +0 -8
- package/dist/custom-elements/focus-visible.js +0 -43
- package/dist/custom-elements/index.d.ts +0 -165
- package/dist/elements/p-03bda390.js +0 -1
- package/dist/elements/p-0be044f1.entry.js +0 -1
- package/dist/elements/p-119c7c6c.entry.js +0 -1
- package/dist/elements/p-14c7c3ea.entry.js +0 -1
- package/dist/elements/p-1d4a2c61.js +0 -1
- package/dist/elements/p-1d894ac4.entry.js +0 -1
- package/dist/elements/p-1dafa1ce.entry.js +0 -1
- package/dist/elements/p-23b89ccb.entry.js +0 -1
- package/dist/elements/p-2c03b9ab.entry.js +0 -1
- package/dist/elements/p-346985f2.js +0 -1
- package/dist/elements/p-360f1c62.entry.js +0 -1
- package/dist/elements/p-373e1f25.entry.js +0 -1
- package/dist/elements/p-40547acb.entry.js +0 -1
- package/dist/elements/p-40b68014.entry.js +0 -1
- package/dist/elements/p-42e4f702.entry.js +0 -1
- package/dist/elements/p-489807e5.js +0 -1
- package/dist/elements/p-4ad72d54.entry.js +0 -1
- package/dist/elements/p-4cca7b5e.entry.js +0 -1
- package/dist/elements/p-4f24d306.js +0 -1
- package/dist/elements/p-519d6a53.entry.js +0 -1
- package/dist/elements/p-536e8e52.entry.js +0 -1
- package/dist/elements/p-599bb53f.entry.js +0 -1
- package/dist/elements/p-5eb7a546.js +0 -1
- package/dist/elements/p-60df2bed.entry.js +0 -1
- package/dist/elements/p-65133e33.js +0 -1
- package/dist/elements/p-6693fce8.js +0 -1
- package/dist/elements/p-689bdcc1.entry.js +0 -1
- package/dist/elements/p-70713b3d.entry.js +0 -1
- package/dist/elements/p-707d5d76.js +0 -1
- package/dist/elements/p-7212b7f2.js +0 -1
- package/dist/elements/p-73992898.entry.js +0 -1
- package/dist/elements/p-792c1e0f.entry.js +0 -1
- package/dist/elements/p-7e5300af.js +0 -2
- package/dist/elements/p-8068987c.entry.js +0 -1
- package/dist/elements/p-83accf46.entry.js +0 -1
- package/dist/elements/p-86635d06.entry.js +0 -1
- package/dist/elements/p-874c2b44.js +0 -1
- package/dist/elements/p-89c12ce8.entry.js +0 -1
- package/dist/elements/p-8bcba3f7.entry.js +0 -1
- package/dist/elements/p-8c759f51.entry.js +0 -1
- package/dist/elements/p-8f945e6b.entry.js +0 -1
- package/dist/elements/p-9300ab6a.js +0 -1
- package/dist/elements/p-93cacd51.entry.js +0 -1
- package/dist/elements/p-9408d0b4.entry.js +0 -1
- package/dist/elements/p-98c79eda.js +0 -1
- package/dist/elements/p-99f8abed.js +0 -1
- package/dist/elements/p-9ca7e079.js +0 -1
- package/dist/elements/p-a4648b74.entry.js +0 -1
- package/dist/elements/p-aab0f63c.js +0 -1
- package/dist/elements/p-ad4e2295.entry.js +0 -1
- package/dist/elements/p-afb8f7d5.entry.js +0 -1
- package/dist/elements/p-b055ec44.js +0 -1
- package/dist/elements/p-b078d63b.entry.js +0 -1
- package/dist/elements/p-b3460325.entry.js +0 -1
- package/dist/elements/p-b5406b58.entry.js +0 -1
- package/dist/elements/p-b5ef0c91.entry.js +0 -1
- package/dist/elements/p-b6ba623e.entry.js +0 -1
- package/dist/elements/p-b9926d8b.entry.js +0 -1
- package/dist/elements/p-bfd4cfcd.entry.js +0 -1
- package/dist/elements/p-c08dd7d0.entry.js +0 -1
- package/dist/elements/p-c0db9c51.entry.js +0 -1
- package/dist/elements/p-c1e7fbfb.js +0 -1
- package/dist/elements/p-ca69d6c9.js +0 -1
- package/dist/elements/p-cc4cb1ac.entry.js +0 -1
- package/dist/elements/p-cf8a7031.entry.js +0 -1
- package/dist/elements/p-cff82b6f.js +0 -1
- package/dist/elements/p-d01009b8.entry.js +0 -67
- package/dist/elements/p-d6d1e65f.entry.js +0 -1
- package/dist/elements/p-d9462b66.entry.js +0 -1
- package/dist/elements/p-e2e0fee9.entry.js +0 -1
- package/dist/elements/p-e642b266.entry.js +0 -1
- package/dist/elements/p-e953934f.entry.js +0 -1
- package/dist/elements/p-f0474f46.js +0 -1
- package/dist/elements/p-f10a94f6.entry.js +0 -1
- package/dist/elements/p-f2426182.entry.js +0 -1
- package/dist/elements/p-f327fd21.js +0 -1
- package/dist/elements/p-f84987ee.js +0 -1
- package/dist/elements/p-f8a3367d.entry.js +0 -1
- package/dist/esm/focus-visible-edb28f19.js +0 -43
- package/dist/esm/framework-delegate-9cd8048f.js +0 -34
- package/dist/esm/ion-action-sheet.entry.js +0 -261
- package/dist/esm/ion-note.entry.js +0 -25
- package/dist/esm/ion-select-popover.entry.js +0 -31
- package/dist/esm/spinner-configs-aaf2a1a9.js +0 -110
- package/dist/esm/swipe-back-d84cfc8a.js +0 -50
- package/dist/esm/test-component.entry.js +0 -9
- package/dist/types/test/TestComponent.d.ts +0 -2
- package/dist/types/test/mockPodOS.d.ts +0 -11
- package/dist/types/test/renderFunctionalComponent.d.ts +0 -1
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { c as componentOnReady } from './helpers-aeff219b.js';
|
|
2
|
+
import { b as printRequiredElementError } from './index-1f3d8582.js';
|
|
3
|
+
|
|
4
|
+
/*!
|
|
5
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
6
|
+
*/
|
|
7
|
+
const ION_CONTENT_TAG_NAME = 'ION-CONTENT';
|
|
8
|
+
const ION_CONTENT_ELEMENT_SELECTOR = 'ion-content';
|
|
9
|
+
const ION_CONTENT_CLASS_SELECTOR = '.ion-content-scroll-host';
|
|
10
|
+
/**
|
|
11
|
+
* Selector used for implementations reliant on `<ion-content>` for scroll event changes.
|
|
12
|
+
*
|
|
13
|
+
* Developers should use the `.ion-content-scroll-host` selector to target the element emitting
|
|
14
|
+
* scroll events. With virtual scroll implementations this will be the host element for
|
|
15
|
+
* the scroll viewport.
|
|
16
|
+
*/
|
|
17
|
+
const ION_CONTENT_SELECTOR = `${ION_CONTENT_ELEMENT_SELECTOR}, ${ION_CONTENT_CLASS_SELECTOR}`;
|
|
18
|
+
const isIonContent = (el) => el.tagName === ION_CONTENT_TAG_NAME;
|
|
19
|
+
/**
|
|
20
|
+
* Waits for the element host fully initialize before
|
|
21
|
+
* returning the inner scroll element.
|
|
22
|
+
*
|
|
23
|
+
* For `ion-content` the scroll target will be the result
|
|
24
|
+
* of the `getScrollElement` function.
|
|
25
|
+
*
|
|
26
|
+
* For custom implementations it will be the element host
|
|
27
|
+
* or a selector within the host, if supplied through `scrollTarget`.
|
|
28
|
+
*/
|
|
29
|
+
const getScrollElement = async (el) => {
|
|
30
|
+
if (isIonContent(el)) {
|
|
31
|
+
await new Promise((resolve) => componentOnReady(el, resolve));
|
|
32
|
+
return el.getScrollElement();
|
|
33
|
+
}
|
|
34
|
+
return el;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Queries the element matching the selector for IonContent.
|
|
38
|
+
* See ION_CONTENT_SELECTOR for the selector used.
|
|
39
|
+
*/
|
|
40
|
+
const findIonContent = (el) => {
|
|
41
|
+
/**
|
|
42
|
+
* First we try to query the custom scroll host selector in cases where
|
|
43
|
+
* the implementation is using an outer `ion-content` with an inner custom
|
|
44
|
+
* scroll container.
|
|
45
|
+
*/
|
|
46
|
+
const customContentHost = el.querySelector(ION_CONTENT_CLASS_SELECTOR);
|
|
47
|
+
if (customContentHost) {
|
|
48
|
+
return customContentHost;
|
|
49
|
+
}
|
|
50
|
+
return el.querySelector(ION_CONTENT_SELECTOR);
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Queries the closest element matching the selector for IonContent.
|
|
54
|
+
*/
|
|
55
|
+
const findClosestIonContent = (el) => {
|
|
56
|
+
return el.closest(ION_CONTENT_SELECTOR);
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Scrolls to the top of the element. If an `ion-content` is found, it will scroll
|
|
60
|
+
* using the public API `scrollToTop` with a duration.
|
|
61
|
+
*/
|
|
62
|
+
const scrollToTop = (el, durationMs) => {
|
|
63
|
+
if (isIonContent(el)) {
|
|
64
|
+
const content = el;
|
|
65
|
+
return content.scrollToTop(durationMs);
|
|
66
|
+
}
|
|
67
|
+
return Promise.resolve(el.scrollTo({
|
|
68
|
+
top: 0,
|
|
69
|
+
left: 0,
|
|
70
|
+
behavior: durationMs > 0 ? 'smooth' : 'auto',
|
|
71
|
+
}));
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* Scrolls by a specified X/Y distance in the component. If an `ion-content` is found, it will scroll
|
|
75
|
+
* using the public API `scrollByPoint` with a duration.
|
|
76
|
+
*/
|
|
77
|
+
const scrollByPoint = (el, x, y, durationMs) => {
|
|
78
|
+
if (isIonContent(el)) {
|
|
79
|
+
const content = el;
|
|
80
|
+
return content.scrollByPoint(x, y, durationMs);
|
|
81
|
+
}
|
|
82
|
+
return Promise.resolve(el.scrollBy({
|
|
83
|
+
top: y,
|
|
84
|
+
left: x,
|
|
85
|
+
behavior: durationMs > 0 ? 'smooth' : 'auto',
|
|
86
|
+
}));
|
|
87
|
+
};
|
|
88
|
+
/**
|
|
89
|
+
* Prints an error informing developers that an implementation requires an element to be used
|
|
90
|
+
* within either the `ion-content` selector or the `.ion-content-scroll-host` class.
|
|
91
|
+
*/
|
|
92
|
+
const printIonContentErrorMsg = (el) => {
|
|
93
|
+
return printRequiredElementError(el, ION_CONTENT_ELEMENT_SELECTOR);
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* Several components in Ionic need to prevent scrolling
|
|
97
|
+
* during a gesture (card modal, range, item sliding, etc).
|
|
98
|
+
* Use this utility to account for ion-content and custom content hosts.
|
|
99
|
+
*/
|
|
100
|
+
const disableContentScrollY = (contentEl) => {
|
|
101
|
+
if (isIonContent(contentEl)) {
|
|
102
|
+
const ionContent = contentEl;
|
|
103
|
+
const initialScrollY = ionContent.scrollY;
|
|
104
|
+
ionContent.scrollY = false;
|
|
105
|
+
/**
|
|
106
|
+
* This should be passed into resetContentScrollY
|
|
107
|
+
* so that we can revert ion-content's scrollY to the
|
|
108
|
+
* correct state. For example, if scrollY = false
|
|
109
|
+
* initially, we do not want to enable scrolling
|
|
110
|
+
* when we call resetContentScrollY.
|
|
111
|
+
*/
|
|
112
|
+
return initialScrollY;
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
contentEl.style.setProperty('overflow', 'hidden');
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
const resetContentScrollY = (contentEl, initialScrollY) => {
|
|
120
|
+
if (isIonContent(contentEl)) {
|
|
121
|
+
contentEl.scrollY = initialScrollY;
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
contentEl.style.removeProperty('overflow');
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
export { ION_CONTENT_ELEMENT_SELECTOR as I, findClosestIonContent as a, ION_CONTENT_CLASS_SELECTOR as b, scrollByPoint as c, disableContentScrollY as d, findIonContent as f, getScrollElement as g, isIonContent as i, printIonContentErrorMsg as p, resetContentScrollY as r, scrollToTop as s };
|
|
@@ -1,12 +1,17 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { g as getScrollElement, c as scrollByPoint, a as findClosestIonContent } from './index-ebf7f059.js';
|
|
2
|
+
import { e as addEventListener, f as removeEventListener, r as raf, q as pointerCoord, c as componentOnReady } from './helpers-aeff219b.js';
|
|
3
|
+
import './index-1f3d8582.js';
|
|
2
4
|
|
|
5
|
+
/*!
|
|
6
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
7
|
+
*/
|
|
3
8
|
const cloneMap = new WeakMap();
|
|
4
|
-
const relocateInput = (componentEl, inputEl, shouldRelocate, inputRelativeY = 0) => {
|
|
9
|
+
const relocateInput = (componentEl, inputEl, shouldRelocate, inputRelativeY = 0, disabledClonedInput = false) => {
|
|
5
10
|
if (cloneMap.has(componentEl) === shouldRelocate) {
|
|
6
11
|
return;
|
|
7
12
|
}
|
|
8
13
|
if (shouldRelocate) {
|
|
9
|
-
addClone(componentEl, inputEl, inputRelativeY);
|
|
14
|
+
addClone(componentEl, inputEl, inputRelativeY, disabledClonedInput);
|
|
10
15
|
}
|
|
11
16
|
else {
|
|
12
17
|
removeClone(componentEl, inputEl);
|
|
@@ -15,7 +20,7 @@ const relocateInput = (componentEl, inputEl, shouldRelocate, inputRelativeY = 0)
|
|
|
15
20
|
const isFocused = (input) => {
|
|
16
21
|
return input === input.getRootNode().activeElement;
|
|
17
22
|
};
|
|
18
|
-
const addClone = (componentEl, inputEl, inputRelativeY) => {
|
|
23
|
+
const addClone = (componentEl, inputEl, inputRelativeY, disabledClonedInput = false) => {
|
|
19
24
|
// this allows for the actual input to receive the focus from
|
|
20
25
|
// the user's touch event, but before it receives focus, it
|
|
21
26
|
// moves the actual input to a location that will not screw
|
|
@@ -30,6 +35,21 @@ const addClone = (componentEl, inputEl, inputRelativeY) => {
|
|
|
30
35
|
const clonedEl = inputEl.cloneNode(false);
|
|
31
36
|
clonedEl.classList.add('cloned-input');
|
|
32
37
|
clonedEl.tabIndex = -1;
|
|
38
|
+
/**
|
|
39
|
+
* Making the cloned input disabled prevents
|
|
40
|
+
* Chrome for Android from still scrolling
|
|
41
|
+
* the entire page since this cloned input
|
|
42
|
+
* will briefly be hidden by the keyboard
|
|
43
|
+
* even though it is not focused.
|
|
44
|
+
*
|
|
45
|
+
* This is not needed on iOS. While this
|
|
46
|
+
* does not cause functional issues on iOS,
|
|
47
|
+
* the input still appears slightly dimmed even
|
|
48
|
+
* if we set opacity: 1.
|
|
49
|
+
*/
|
|
50
|
+
if (disabledClonedInput) {
|
|
51
|
+
clonedEl.disabled = true;
|
|
52
|
+
}
|
|
33
53
|
parentEl.appendChild(clonedEl);
|
|
34
54
|
cloneMap.set(componentEl, clonedEl);
|
|
35
55
|
const doc = componentEl.ownerDocument;
|
|
@@ -47,9 +67,14 @@ const removeClone = (componentEl, inputEl) => {
|
|
|
47
67
|
inputEl.style.transform = '';
|
|
48
68
|
};
|
|
49
69
|
|
|
70
|
+
/*!
|
|
71
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
72
|
+
*/
|
|
50
73
|
const enableHideCaretOnScroll = (componentEl, inputEl, scrollEl) => {
|
|
51
74
|
if (!scrollEl || !inputEl) {
|
|
52
|
-
return () => {
|
|
75
|
+
return () => {
|
|
76
|
+
return;
|
|
77
|
+
};
|
|
53
78
|
}
|
|
54
79
|
const scrollHideCaret = (shouldHideCaret) => {
|
|
55
80
|
if (isFocused(inputEl)) {
|
|
@@ -69,6 +94,9 @@ const enableHideCaretOnScroll = (componentEl, inputEl, scrollEl) => {
|
|
|
69
94
|
};
|
|
70
95
|
};
|
|
71
96
|
|
|
97
|
+
/*!
|
|
98
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
99
|
+
*/
|
|
72
100
|
const SKIP_SELECTOR = 'input, textarea, [no-blur], [contenteditable]';
|
|
73
101
|
const enableInputBlurring = () => {
|
|
74
102
|
let focused = true;
|
|
@@ -103,7 +131,7 @@ const enableInputBlurring = () => {
|
|
|
103
131
|
return;
|
|
104
132
|
}
|
|
105
133
|
focused = false;
|
|
106
|
-
// TODO: find a better way, why 50ms?
|
|
134
|
+
// TODO FW-2796: find a better way, why 50ms?
|
|
107
135
|
setTimeout(() => {
|
|
108
136
|
if (!focused) {
|
|
109
137
|
active.blur();
|
|
@@ -120,9 +148,13 @@ const enableInputBlurring = () => {
|
|
|
120
148
|
};
|
|
121
149
|
};
|
|
122
150
|
|
|
151
|
+
/*!
|
|
152
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
153
|
+
*/
|
|
123
154
|
const SCROLL_ASSIST_SPEED = 0.3;
|
|
124
155
|
const getScrollData = (componentEl, contentEl, keyboardHeight) => {
|
|
125
|
-
|
|
156
|
+
var _a;
|
|
157
|
+
const itemEl = (_a = componentEl.closest('ion-item,[ion-item]')) !== null && _a !== void 0 ? _a : componentEl;
|
|
126
158
|
return calcScrollData(itemEl.getBoundingClientRect(), contentEl.getBoundingClientRect(), keyboardHeight, componentEl.ownerDocument.defaultView.innerHeight);
|
|
127
159
|
};
|
|
128
160
|
const calcScrollData = (inputRect, contentRect, keyboardHeight, platformHeight) => {
|
|
@@ -139,11 +171,7 @@ const calcScrollData = (inputRect, contentRect, keyboardHeight, platformHeight)
|
|
|
139
171
|
const distanceToBottom = safeAreaBottom - inputBottom;
|
|
140
172
|
const distanceToTop = safeAreaTop - inputTop;
|
|
141
173
|
// desiredScrollAmount is the negated distance to the safe area according to our calculations.
|
|
142
|
-
const desiredScrollAmount = Math.round(
|
|
143
|
-
? -distanceToBottom
|
|
144
|
-
: (distanceToTop > 0)
|
|
145
|
-
? -distanceToTop
|
|
146
|
-
: 0);
|
|
174
|
+
const desiredScrollAmount = Math.round(distanceToBottom < 0 ? -distanceToBottom : distanceToTop > 0 ? -distanceToTop : 0);
|
|
147
175
|
// our calculations make some assumptions that aren't always true, like the keyboard being closed when an input
|
|
148
176
|
// gets focus, so make sure we don't scroll the input above the visible area
|
|
149
177
|
const scrollAmount = Math.min(desiredScrollAmount, inputTop - visibleAreaTop);
|
|
@@ -154,11 +182,14 @@ const calcScrollData = (inputRect, contentRect, keyboardHeight, platformHeight)
|
|
|
154
182
|
scrollAmount,
|
|
155
183
|
scrollDuration,
|
|
156
184
|
scrollPadding: keyboardHeight,
|
|
157
|
-
inputSafeY: -(inputTop - safeAreaTop) + 4
|
|
185
|
+
inputSafeY: -(inputTop - safeAreaTop) + 4,
|
|
158
186
|
};
|
|
159
187
|
};
|
|
160
188
|
|
|
161
|
-
|
|
189
|
+
/*!
|
|
190
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
191
|
+
*/
|
|
192
|
+
const enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, keyboardHeight, disableClonedInput = false) => {
|
|
162
193
|
let coord;
|
|
163
194
|
const touchStart = (ev) => {
|
|
164
195
|
coord = pointerCoord(ev);
|
|
@@ -173,19 +204,18 @@ const enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, keyboardH
|
|
|
173
204
|
// focus this input if the pointer hasn't moved XX pixels
|
|
174
205
|
// and the input doesn't already have focus
|
|
175
206
|
if (!hasPointerMoved(6, coord, endCoord) && !isFocused(inputEl)) {
|
|
176
|
-
ev.stopPropagation();
|
|
177
207
|
// begin the input focus process
|
|
178
|
-
jsSetFocus(componentEl, inputEl, contentEl, footerEl, keyboardHeight);
|
|
208
|
+
jsSetFocus(componentEl, inputEl, contentEl, footerEl, keyboardHeight, disableClonedInput);
|
|
179
209
|
}
|
|
180
210
|
};
|
|
181
|
-
componentEl.addEventListener('touchstart', touchStart, true);
|
|
211
|
+
componentEl.addEventListener('touchstart', touchStart, { capture: true, passive: true });
|
|
182
212
|
componentEl.addEventListener('touchend', touchEnd, true);
|
|
183
213
|
return () => {
|
|
184
214
|
componentEl.removeEventListener('touchstart', touchStart, true);
|
|
185
215
|
componentEl.removeEventListener('touchend', touchEnd, true);
|
|
186
216
|
};
|
|
187
217
|
};
|
|
188
|
-
const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHeight) => {
|
|
218
|
+
const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHeight, disableClonedInput = false) => {
|
|
189
219
|
if (!contentEl && !footerEl) {
|
|
190
220
|
return;
|
|
191
221
|
}
|
|
@@ -199,7 +229,7 @@ const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHei
|
|
|
199
229
|
// temporarily move the focus to the focus holder so the browser
|
|
200
230
|
// doesn't freak out while it's trying to get the input in place
|
|
201
231
|
// at this point the native text input still does not have focus
|
|
202
|
-
relocateInput(componentEl, inputEl, true, scrollData.inputSafeY);
|
|
232
|
+
relocateInput(componentEl, inputEl, true, scrollData.inputSafeY, disableClonedInput);
|
|
203
233
|
inputEl.focus();
|
|
204
234
|
/**
|
|
205
235
|
* Relocating/Focusing input causes the
|
|
@@ -207,7 +237,6 @@ const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHei
|
|
|
207
237
|
* manually fire one here.
|
|
208
238
|
*/
|
|
209
239
|
raf(() => componentEl.click());
|
|
210
|
-
/* tslint:disable-next-line */
|
|
211
240
|
if (typeof window !== 'undefined') {
|
|
212
241
|
let scrollContentTimeout;
|
|
213
242
|
const scrollContent = async () => {
|
|
@@ -219,7 +248,7 @@ const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHei
|
|
|
219
248
|
window.removeEventListener('ionKeyboardDidShow', scrollContent);
|
|
220
249
|
// scroll the input into place
|
|
221
250
|
if (contentEl) {
|
|
222
|
-
await
|
|
251
|
+
await scrollByPoint(contentEl, 0, scrollData.scrollAmount, scrollData.scrollDuration);
|
|
223
252
|
}
|
|
224
253
|
// the scroll view is in the correct position now
|
|
225
254
|
// give the native text input focus
|
|
@@ -232,7 +261,7 @@ const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHei
|
|
|
232
261
|
window.addEventListener('ionKeyboardDidShow', scrollContent);
|
|
233
262
|
};
|
|
234
263
|
if (contentEl) {
|
|
235
|
-
const scrollEl = await
|
|
264
|
+
const scrollEl = await getScrollElement(contentEl);
|
|
236
265
|
/**
|
|
237
266
|
* scrollData will only consider the amount we need
|
|
238
267
|
* to scroll in order to properly bring the input
|
|
@@ -246,7 +275,7 @@ const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHei
|
|
|
246
275
|
* bandwidth to become available.
|
|
247
276
|
*/
|
|
248
277
|
const totalScrollAmount = scrollEl.scrollHeight - scrollEl.clientHeight;
|
|
249
|
-
if (scrollData.scrollAmount >
|
|
278
|
+
if (scrollData.scrollAmount > totalScrollAmount - scrollEl.scrollTop) {
|
|
250
279
|
/**
|
|
251
280
|
* On iOS devices, the system will show a "Passwords" bar above the keyboard
|
|
252
281
|
* after the initial keyboard is shown. This prevents the webview from resizing
|
|
@@ -275,14 +304,17 @@ const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHei
|
|
|
275
304
|
};
|
|
276
305
|
const hasPointerMoved = (threshold, startCoord, endCoord) => {
|
|
277
306
|
if (startCoord && endCoord) {
|
|
278
|
-
const deltaX =
|
|
279
|
-
const deltaY =
|
|
307
|
+
const deltaX = startCoord.x - endCoord.x;
|
|
308
|
+
const deltaY = startCoord.y - endCoord.y;
|
|
280
309
|
const distance = deltaX * deltaX + deltaY * deltaY;
|
|
281
|
-
return distance >
|
|
310
|
+
return distance > threshold * threshold;
|
|
282
311
|
}
|
|
283
312
|
return false;
|
|
284
313
|
};
|
|
285
314
|
|
|
315
|
+
/*!
|
|
316
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
317
|
+
*/
|
|
286
318
|
const PADDING_TIMER_KEY = '$ionPaddingTimer';
|
|
287
319
|
const enableScrollPadding = (keyboardHeight) => {
|
|
288
320
|
const doc = document;
|
|
@@ -300,18 +332,17 @@ const enableScrollPadding = (keyboardHeight) => {
|
|
|
300
332
|
};
|
|
301
333
|
};
|
|
302
334
|
const setScrollPadding = (input, keyboardHeight) => {
|
|
335
|
+
var _a, _b;
|
|
303
336
|
if (input.tagName !== 'INPUT') {
|
|
304
337
|
return;
|
|
305
338
|
}
|
|
306
339
|
if (input.parentElement && input.parentElement.tagName === 'ION-INPUT') {
|
|
307
340
|
return;
|
|
308
341
|
}
|
|
309
|
-
if (input.parentElement
|
|
310
|
-
input.parentElement.parentElement &&
|
|
311
|
-
input.parentElement.parentElement.tagName === 'ION-SEARCHBAR') {
|
|
342
|
+
if (((_b = (_a = input.parentElement) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.tagName) === 'ION-SEARCHBAR') {
|
|
312
343
|
return;
|
|
313
344
|
}
|
|
314
|
-
const el = input
|
|
345
|
+
const el = findClosestIonContent(input);
|
|
315
346
|
if (el === null) {
|
|
316
347
|
return;
|
|
317
348
|
}
|
|
@@ -329,24 +360,34 @@ const setScrollPadding = (input, keyboardHeight) => {
|
|
|
329
360
|
}
|
|
330
361
|
};
|
|
331
362
|
|
|
363
|
+
/*!
|
|
364
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
365
|
+
*/
|
|
332
366
|
const INPUT_BLURRING = true;
|
|
333
367
|
const SCROLL_PADDING = true;
|
|
334
|
-
const startInputShims = (config) => {
|
|
368
|
+
const startInputShims = (config, platform) => {
|
|
335
369
|
const doc = document;
|
|
370
|
+
const isIOS = platform === 'ios';
|
|
371
|
+
const isAndroid = platform === 'android';
|
|
372
|
+
/**
|
|
373
|
+
* Hide Caret and Input Blurring are needed on iOS.
|
|
374
|
+
* Scroll Assist and Scroll Padding are needed on iOS and Android
|
|
375
|
+
* with Chrome web browser (not Chrome webview).
|
|
376
|
+
*/
|
|
336
377
|
const keyboardHeight = config.getNumber('keyboardHeight', 290);
|
|
337
378
|
const scrollAssist = config.getBoolean('scrollAssist', true);
|
|
338
|
-
const hideCaret = config.getBoolean('hideCaretOnScroll',
|
|
339
|
-
const inputBlurring = config.getBoolean('inputBlurring',
|
|
379
|
+
const hideCaret = config.getBoolean('hideCaretOnScroll', isIOS);
|
|
380
|
+
const inputBlurring = config.getBoolean('inputBlurring', isIOS);
|
|
340
381
|
const scrollPadding = config.getBoolean('scrollPadding', true);
|
|
341
382
|
const inputs = Array.from(doc.querySelectorAll('ion-input, ion-textarea'));
|
|
342
383
|
const hideCaretMap = new WeakMap();
|
|
343
384
|
const scrollAssistMap = new WeakMap();
|
|
344
385
|
const registerInput = async (componentEl) => {
|
|
345
|
-
await new Promise(resolve => componentOnReady(componentEl, resolve));
|
|
386
|
+
await new Promise((resolve) => componentOnReady(componentEl, resolve));
|
|
346
387
|
const inputRoot = componentEl.shadowRoot || componentEl;
|
|
347
388
|
const inputEl = inputRoot.querySelector('input') || inputRoot.querySelector('textarea');
|
|
348
|
-
const scrollEl = componentEl
|
|
349
|
-
const footerEl =
|
|
389
|
+
const scrollEl = findClosestIonContent(componentEl);
|
|
390
|
+
const footerEl = !scrollEl ? componentEl.closest('ion-footer') : null;
|
|
350
391
|
if (!inputEl) {
|
|
351
392
|
return;
|
|
352
393
|
}
|
|
@@ -354,8 +395,18 @@ const startInputShims = (config) => {
|
|
|
354
395
|
const rmFn = enableHideCaretOnScroll(componentEl, inputEl, scrollEl);
|
|
355
396
|
hideCaretMap.set(componentEl, rmFn);
|
|
356
397
|
}
|
|
357
|
-
|
|
358
|
-
|
|
398
|
+
/**
|
|
399
|
+
* date/datetime-locale inputs on mobile devices show date picker
|
|
400
|
+
* overlays instead of keyboards. As a result, scroll assist is
|
|
401
|
+
* not needed. This also works around a bug in iOS <16 where
|
|
402
|
+
* scroll assist causes the browser to lock up. See FW-1997.
|
|
403
|
+
*/
|
|
404
|
+
const isDateInput = inputEl.type === 'date' || inputEl.type === 'datetime-local';
|
|
405
|
+
if (!isDateInput &&
|
|
406
|
+
(!!scrollEl || !!footerEl) &&
|
|
407
|
+
scrollAssist &&
|
|
408
|
+
!scrollAssistMap.has(componentEl)) {
|
|
409
|
+
const rmFn = enableScrollAssist(componentEl, inputEl, scrollEl, footerEl, keyboardHeight, isAndroid);
|
|
359
410
|
scrollAssistMap.set(componentEl, rmFn);
|
|
360
411
|
}
|
|
361
412
|
};
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import { r as registerInstance, d as createEvent, h, H as Host, c as getElement } from './index-cb938ffb.js';
|
|
2
|
+
import { g as getIonMode } from './ionic-global-6cd57191.js';
|
|
3
|
+
|
|
4
|
+
const accordionGroupIosCss = ":host{display:block}:host(.accordion-group-expand-inset){margin-left:16px;margin-right:16px;margin-top:16px;margin-bottom:16px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host(.accordion-group-expand-inset){margin-left:unset;margin-right:unset;-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:16px;margin-inline-end:16px}}:host(.accordion-group-expand-inset) ::slotted(ion-accordion.accordion-expanding),:host(.accordion-group-expand-inset) ::slotted(ion-accordion.accordion-expanded){border-bottom:none}";
|
|
5
|
+
|
|
6
|
+
const accordionGroupMdCss = ":host{display:block}:host(.accordion-group-expand-inset){margin-left:16px;margin-right:16px;margin-top:16px;margin-bottom:16px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host(.accordion-group-expand-inset){margin-left:unset;margin-right:unset;-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:16px;margin-inline-end:16px}}:host(.accordion-group-expand-inset) ::slotted(ion-accordion){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}:host(.accordion-group-expand-inset) ::slotted(ion-accordion.accordion-expanding),:host(.accordion-group-expand-inset) ::slotted(ion-accordion.accordion-expanded){margin-left:0;margin-right:0;margin-top:16px;margin-bottom:16px;border-radius:6px}:host(.accordion-group-expand-inset) ::slotted(ion-accordion.accordion-previous){border-bottom-right-radius:6px;border-bottom-left-radius:6px}:host-context([dir=rtl]):host(.accordion-group-expand-inset) ::slotted(ion-accordion.accordion-previous),:host-context([dir=rtl]).accordion-group-expand-inset ::slotted(ion-accordion.accordion-previous){border-bottom-right-radius:6px;border-bottom-left-radius:6px}:host(.accordion-group-expand-inset) ::slotted(ion-accordion.accordion-next){border-top-left-radius:6px;border-top-right-radius:6px}:host-context([dir=rtl]):host(.accordion-group-expand-inset) ::slotted(ion-accordion.accordion-next),:host-context([dir=rtl]).accordion-group-expand-inset ::slotted(ion-accordion.accordion-next){border-top-left-radius:6px;border-top-right-radius:6px}:host(.accordion-group-expand-inset) ::slotted(ion-accordion):first-of-type{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}";
|
|
7
|
+
|
|
8
|
+
const AccordionGroup = class {
|
|
9
|
+
constructor(hostRef) {
|
|
10
|
+
registerInstance(this, hostRef);
|
|
11
|
+
this.ionChange = createEvent(this, "ionChange", 7);
|
|
12
|
+
/**
|
|
13
|
+
* If `true`, all accordions inside of the
|
|
14
|
+
* accordion group will animate when expanding
|
|
15
|
+
* or collapsing.
|
|
16
|
+
*/
|
|
17
|
+
this.animated = true;
|
|
18
|
+
/**
|
|
19
|
+
* If `true`, the accordion group cannot be interacted with.
|
|
20
|
+
*/
|
|
21
|
+
this.disabled = false;
|
|
22
|
+
/**
|
|
23
|
+
* If `true`, the accordion group cannot be interacted with,
|
|
24
|
+
* but does not alter the opacity.
|
|
25
|
+
*/
|
|
26
|
+
this.readonly = false;
|
|
27
|
+
/**
|
|
28
|
+
* Describes the expansion behavior for each accordion.
|
|
29
|
+
* Possible values are `"compact"` and `"inset"`.
|
|
30
|
+
* Defaults to `"compact"`.
|
|
31
|
+
*/
|
|
32
|
+
this.expand = 'compact';
|
|
33
|
+
}
|
|
34
|
+
valueChanged() {
|
|
35
|
+
const { value, multiple } = this;
|
|
36
|
+
/**
|
|
37
|
+
* If accordion group does not
|
|
38
|
+
* let multiple accordions be open
|
|
39
|
+
* at once, but user passes an array
|
|
40
|
+
* just grab the first value.
|
|
41
|
+
*/
|
|
42
|
+
if (!multiple && Array.isArray(value)) {
|
|
43
|
+
this.value = value[0];
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
this.ionChange.emit({ value: this.value });
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
async disabledChanged() {
|
|
50
|
+
const { disabled } = this;
|
|
51
|
+
const accordions = await this.getAccordions();
|
|
52
|
+
for (const accordion of accordions) {
|
|
53
|
+
accordion.disabled = disabled;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
async readonlyChanged() {
|
|
57
|
+
const { readonly } = this;
|
|
58
|
+
const accordions = await this.getAccordions();
|
|
59
|
+
for (const accordion of accordions) {
|
|
60
|
+
accordion.readonly = readonly;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
async onKeydown(ev) {
|
|
64
|
+
const activeElement = document.activeElement;
|
|
65
|
+
if (!activeElement) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Make sure focus is in the header, not the body, of the accordion. This ensures
|
|
70
|
+
* that if there are any interactable elements in the body, their keyboard
|
|
71
|
+
* interaction doesn't get stolen by the accordion. Example: using up/down keys
|
|
72
|
+
* in ion-textarea.
|
|
73
|
+
*/
|
|
74
|
+
const activeAccordionHeader = activeElement.closest('ion-accordion [slot="header"]');
|
|
75
|
+
if (!activeAccordionHeader) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
const accordionEl = activeElement.tagName === 'ION-ACCORDION' ? activeElement : activeElement.closest('ion-accordion');
|
|
79
|
+
if (!accordionEl) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
const closestGroup = accordionEl.closest('ion-accordion-group');
|
|
83
|
+
if (closestGroup !== this.el) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
// If the active accordion is not in the current array of accordions, do not do anything
|
|
87
|
+
const accordions = await this.getAccordions();
|
|
88
|
+
const startingIndex = accordions.findIndex((a) => a === accordionEl);
|
|
89
|
+
if (startingIndex === -1) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
let accordion;
|
|
93
|
+
if (ev.key === 'ArrowDown') {
|
|
94
|
+
accordion = this.findNextAccordion(accordions, startingIndex);
|
|
95
|
+
}
|
|
96
|
+
else if (ev.key === 'ArrowUp') {
|
|
97
|
+
accordion = this.findPreviousAccordion(accordions, startingIndex);
|
|
98
|
+
}
|
|
99
|
+
else if (ev.key === 'Home') {
|
|
100
|
+
accordion = accordions[0];
|
|
101
|
+
}
|
|
102
|
+
else if (ev.key === 'End') {
|
|
103
|
+
accordion = accordions[accordions.length - 1];
|
|
104
|
+
}
|
|
105
|
+
if (accordion !== undefined && accordion !== activeElement) {
|
|
106
|
+
accordion.focus();
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
async componentDidLoad() {
|
|
110
|
+
if (this.disabled) {
|
|
111
|
+
this.disabledChanged();
|
|
112
|
+
}
|
|
113
|
+
if (this.readonly) {
|
|
114
|
+
this.readonlyChanged();
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* @internal
|
|
119
|
+
*/
|
|
120
|
+
async requestAccordionToggle(accordionValue, accordionExpand) {
|
|
121
|
+
const { multiple, value, readonly, disabled } = this;
|
|
122
|
+
if (readonly || disabled) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
if (accordionExpand) {
|
|
126
|
+
/**
|
|
127
|
+
* If group accepts multiple values
|
|
128
|
+
* check to see if value is already in
|
|
129
|
+
* in values array. If not, add it
|
|
130
|
+
* to the array.
|
|
131
|
+
*/
|
|
132
|
+
if (multiple) {
|
|
133
|
+
const groupValue = value !== null && value !== void 0 ? value : [];
|
|
134
|
+
const processedValue = Array.isArray(groupValue) ? groupValue : [groupValue];
|
|
135
|
+
const valueExists = processedValue.find((v) => v === accordionValue);
|
|
136
|
+
if (valueExists === undefined && accordionValue !== undefined) {
|
|
137
|
+
this.value = [...processedValue, accordionValue];
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
this.value = accordionValue;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
/**
|
|
146
|
+
* If collapsing accordion, either filter the value
|
|
147
|
+
* out of the values array or unset the value.
|
|
148
|
+
*/
|
|
149
|
+
if (multiple) {
|
|
150
|
+
const groupValue = value !== null && value !== void 0 ? value : [];
|
|
151
|
+
const processedValue = Array.isArray(groupValue) ? groupValue : [groupValue];
|
|
152
|
+
this.value = processedValue.filter((v) => v !== accordionValue);
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
this.value = undefined;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
findNextAccordion(accordions, startingIndex) {
|
|
160
|
+
const nextAccordion = accordions[startingIndex + 1];
|
|
161
|
+
if (nextAccordion === undefined) {
|
|
162
|
+
return accordions[0];
|
|
163
|
+
}
|
|
164
|
+
return nextAccordion;
|
|
165
|
+
}
|
|
166
|
+
findPreviousAccordion(accordions, startingIndex) {
|
|
167
|
+
const prevAccordion = accordions[startingIndex - 1];
|
|
168
|
+
if (prevAccordion === undefined) {
|
|
169
|
+
return accordions[accordions.length - 1];
|
|
170
|
+
}
|
|
171
|
+
return prevAccordion;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* @internal
|
|
175
|
+
*/
|
|
176
|
+
async getAccordions() {
|
|
177
|
+
return Array.from(this.el.querySelectorAll(':scope > ion-accordion'));
|
|
178
|
+
}
|
|
179
|
+
render() {
|
|
180
|
+
const { disabled, readonly, expand } = this;
|
|
181
|
+
const mode = getIonMode(this);
|
|
182
|
+
return (h(Host, { class: {
|
|
183
|
+
[mode]: true,
|
|
184
|
+
'accordion-group-disabled': disabled,
|
|
185
|
+
'accordion-group-readonly': readonly,
|
|
186
|
+
[`accordion-group-expand-${expand}`]: true,
|
|
187
|
+
}, role: "presentation" }, h("slot", null)));
|
|
188
|
+
}
|
|
189
|
+
get el() { return getElement(this); }
|
|
190
|
+
static get watchers() { return {
|
|
191
|
+
"value": ["valueChanged"],
|
|
192
|
+
"disabled": ["disabledChanged"],
|
|
193
|
+
"readonly": ["readonlyChanged"]
|
|
194
|
+
}; }
|
|
195
|
+
};
|
|
196
|
+
AccordionGroup.style = {
|
|
197
|
+
ios: accordionGroupIosCss,
|
|
198
|
+
md: accordionGroupMdCss
|
|
199
|
+
};
|
|
200
|
+
|
|
201
|
+
export { AccordionGroup as ion_accordion_group };
|