@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
|
@@ -1,13 +1,18 @@
|
|
|
1
|
-
import { G as GESTURE_CONTROLLER } from './gesture-controller
|
|
2
|
-
export { G as GESTURE_CONTROLLER } from './gesture-controller
|
|
1
|
+
import { G as GESTURE_CONTROLLER } from './gesture-controller.js';
|
|
2
|
+
export { G as GESTURE_CONTROLLER } from './gesture-controller.js';
|
|
3
3
|
|
|
4
|
+
/*!
|
|
5
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
6
|
+
*/
|
|
4
7
|
const addEventListener = (el, eventName, callback, opts) => {
|
|
5
8
|
// use event listener options when supported
|
|
6
9
|
// otherwise it's just a boolean for the "capture" arg
|
|
7
|
-
const listenerOpts = supportsPassive(el)
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
const listenerOpts = supportsPassive(el)
|
|
11
|
+
? {
|
|
12
|
+
capture: !!opts.capture,
|
|
13
|
+
passive: !!opts.passive,
|
|
14
|
+
}
|
|
15
|
+
: !!opts.capture;
|
|
11
16
|
let add;
|
|
12
17
|
let remove;
|
|
13
18
|
if (el['__zone_symbol__addEventListener']) {
|
|
@@ -29,9 +34,11 @@ const supportsPassive = (node) => {
|
|
|
29
34
|
const opts = Object.defineProperty({}, 'passive', {
|
|
30
35
|
get: () => {
|
|
31
36
|
_sPassive = true;
|
|
32
|
-
}
|
|
37
|
+
},
|
|
33
38
|
});
|
|
34
|
-
node.addEventListener('optsTest', () => {
|
|
39
|
+
node.addEventListener('optsTest', () => {
|
|
40
|
+
return;
|
|
41
|
+
}, opts);
|
|
35
42
|
}
|
|
36
43
|
catch (e) {
|
|
37
44
|
_sPassive = false;
|
|
@@ -41,6 +48,9 @@ const supportsPassive = (node) => {
|
|
|
41
48
|
};
|
|
42
49
|
let _sPassive;
|
|
43
50
|
|
|
51
|
+
/*!
|
|
52
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
53
|
+
*/
|
|
44
54
|
const MOUSE_WAIT = 2000;
|
|
45
55
|
const createPointerEvents = (el, pointerDown, pointerMove, pointerUp, options) => {
|
|
46
56
|
let rmTouchStart;
|
|
@@ -153,13 +163,16 @@ const createPointerEvents = (el, pointerDown, pointerMove, pointerUp, options) =
|
|
|
153
163
|
return {
|
|
154
164
|
enable,
|
|
155
165
|
stop,
|
|
156
|
-
destroy
|
|
166
|
+
destroy,
|
|
157
167
|
};
|
|
158
168
|
};
|
|
159
169
|
const getDocument = (node) => {
|
|
160
170
|
return node instanceof Document ? node : node.ownerDocument;
|
|
161
171
|
};
|
|
162
172
|
|
|
173
|
+
/*!
|
|
174
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
175
|
+
*/
|
|
163
176
|
const createPanRecognizer = (direction, thresh, maxAngle) => {
|
|
164
177
|
const radians = maxAngle * (Math.PI / 180);
|
|
165
178
|
const isDirX = direction === 'x';
|
|
@@ -180,8 +193,8 @@ const createPanRecognizer = (direction, thresh, maxAngle) => {
|
|
|
180
193
|
if (!dirty) {
|
|
181
194
|
return false;
|
|
182
195
|
}
|
|
183
|
-
const deltaX =
|
|
184
|
-
const deltaY =
|
|
196
|
+
const deltaX = x - startX;
|
|
197
|
+
const deltaY = y - startY;
|
|
185
198
|
const distance = deltaX * deltaX + deltaY * deltaY;
|
|
186
199
|
if (distance < threshold) {
|
|
187
200
|
return false;
|
|
@@ -205,10 +218,13 @@ const createPanRecognizer = (direction, thresh, maxAngle) => {
|
|
|
205
218
|
},
|
|
206
219
|
getDirection() {
|
|
207
220
|
return isPan;
|
|
208
|
-
}
|
|
221
|
+
},
|
|
209
222
|
};
|
|
210
223
|
};
|
|
211
224
|
|
|
225
|
+
/*!
|
|
226
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
227
|
+
*/
|
|
212
228
|
const createGesture = (config) => {
|
|
213
229
|
let hasCapturedPan = false;
|
|
214
230
|
let hasStartedPan = false;
|
|
@@ -237,13 +253,13 @@ const createGesture = (config) => {
|
|
|
237
253
|
deltaY: 0,
|
|
238
254
|
currentTime: 0,
|
|
239
255
|
event: undefined,
|
|
240
|
-
data: undefined
|
|
256
|
+
data: undefined,
|
|
241
257
|
};
|
|
242
258
|
const pan = createPanRecognizer(finalConfig.direction, finalConfig.threshold, finalConfig.maxAngle);
|
|
243
259
|
const gesture = GESTURE_CONTROLLER.createGesture({
|
|
244
260
|
name: config.gestureName,
|
|
245
261
|
priority: config.gesturePriority,
|
|
246
|
-
disableScroll: config.disableScroll
|
|
262
|
+
disableScroll: config.disableScroll,
|
|
247
263
|
});
|
|
248
264
|
const pointerDown = (ev) => {
|
|
249
265
|
const timeStamp = now(ev);
|
|
@@ -304,7 +320,7 @@ const createGesture = (config) => {
|
|
|
304
320
|
}
|
|
305
321
|
};
|
|
306
322
|
const tryToCapturePan = () => {
|
|
307
|
-
if (
|
|
323
|
+
if (!gesture.capture()) {
|
|
308
324
|
return false;
|
|
309
325
|
}
|
|
310
326
|
hasCapturedPan = true;
|
|
@@ -327,10 +343,9 @@ const createGesture = (config) => {
|
|
|
327
343
|
return true;
|
|
328
344
|
};
|
|
329
345
|
const blurActiveElement = () => {
|
|
330
|
-
/* tslint:disable-next-line */
|
|
331
346
|
if (typeof document !== 'undefined') {
|
|
332
347
|
const activeElement = document.activeElement;
|
|
333
|
-
if (activeElement
|
|
348
|
+
if (activeElement === null || activeElement === void 0 ? void 0 : activeElement.blur) {
|
|
334
349
|
activeElement.blur();
|
|
335
350
|
}
|
|
336
351
|
}
|
|
@@ -374,7 +389,7 @@ const createGesture = (config) => {
|
|
|
374
389
|
};
|
|
375
390
|
const pointerEvents = createPointerEvents(finalConfig.el, pointerDown, pointerMove, pointerUp, {
|
|
376
391
|
capture: false,
|
|
377
|
-
passive
|
|
392
|
+
passive,
|
|
378
393
|
});
|
|
379
394
|
const abortGesture = () => {
|
|
380
395
|
reset();
|
|
@@ -396,7 +411,7 @@ const createGesture = (config) => {
|
|
|
396
411
|
destroy() {
|
|
397
412
|
gesture.destroy();
|
|
398
413
|
pointerEvents.destroy();
|
|
399
|
-
}
|
|
414
|
+
},
|
|
400
415
|
};
|
|
401
416
|
};
|
|
402
417
|
const calcGestureData = (detail, ev) => {
|
|
@@ -409,7 +424,7 @@ const calcGestureData = (detail, ev) => {
|
|
|
409
424
|
updateDetail(ev, detail);
|
|
410
425
|
const currentX = detail.currentX;
|
|
411
426
|
const currentY = detail.currentY;
|
|
412
|
-
const timestamp = detail.currentTime = now(ev);
|
|
427
|
+
const timestamp = (detail.currentTime = now(ev));
|
|
413
428
|
const timeDelta = timestamp - prevT;
|
|
414
429
|
if (timeDelta > 0 && timeDelta < 100) {
|
|
415
430
|
const velocityX = (currentX - prevX) / timeDelta;
|
|
@@ -1,12 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { g as getScrollElement, c as scrollByPoint, f as findClosestIonContent } from './index5.js';
|
|
2
|
+
import { a as addEventListener, b as removeEventListener, r as raf, p as pointerCoord, d as componentOnReady } from './helpers.js';
|
|
2
3
|
|
|
4
|
+
/*!
|
|
5
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
6
|
+
*/
|
|
3
7
|
const cloneMap = new WeakMap();
|
|
4
|
-
const relocateInput = (componentEl, inputEl, shouldRelocate, inputRelativeY = 0) => {
|
|
8
|
+
const relocateInput = (componentEl, inputEl, shouldRelocate, inputRelativeY = 0, disabledClonedInput = false) => {
|
|
5
9
|
if (cloneMap.has(componentEl) === shouldRelocate) {
|
|
6
10
|
return;
|
|
7
11
|
}
|
|
8
12
|
if (shouldRelocate) {
|
|
9
|
-
addClone(componentEl, inputEl, inputRelativeY);
|
|
13
|
+
addClone(componentEl, inputEl, inputRelativeY, disabledClonedInput);
|
|
10
14
|
}
|
|
11
15
|
else {
|
|
12
16
|
removeClone(componentEl, inputEl);
|
|
@@ -15,7 +19,7 @@ const relocateInput = (componentEl, inputEl, shouldRelocate, inputRelativeY = 0)
|
|
|
15
19
|
const isFocused = (input) => {
|
|
16
20
|
return input === input.getRootNode().activeElement;
|
|
17
21
|
};
|
|
18
|
-
const addClone = (componentEl, inputEl, inputRelativeY) => {
|
|
22
|
+
const addClone = (componentEl, inputEl, inputRelativeY, disabledClonedInput = false) => {
|
|
19
23
|
// this allows for the actual input to receive the focus from
|
|
20
24
|
// the user's touch event, but before it receives focus, it
|
|
21
25
|
// moves the actual input to a location that will not screw
|
|
@@ -30,6 +34,21 @@ const addClone = (componentEl, inputEl, inputRelativeY) => {
|
|
|
30
34
|
const clonedEl = inputEl.cloneNode(false);
|
|
31
35
|
clonedEl.classList.add('cloned-input');
|
|
32
36
|
clonedEl.tabIndex = -1;
|
|
37
|
+
/**
|
|
38
|
+
* Making the cloned input disabled prevents
|
|
39
|
+
* Chrome for Android from still scrolling
|
|
40
|
+
* the entire page since this cloned input
|
|
41
|
+
* will briefly be hidden by the keyboard
|
|
42
|
+
* even though it is not focused.
|
|
43
|
+
*
|
|
44
|
+
* This is not needed on iOS. While this
|
|
45
|
+
* does not cause functional issues on iOS,
|
|
46
|
+
* the input still appears slightly dimmed even
|
|
47
|
+
* if we set opacity: 1.
|
|
48
|
+
*/
|
|
49
|
+
if (disabledClonedInput) {
|
|
50
|
+
clonedEl.disabled = true;
|
|
51
|
+
}
|
|
33
52
|
parentEl.appendChild(clonedEl);
|
|
34
53
|
cloneMap.set(componentEl, clonedEl);
|
|
35
54
|
const doc = componentEl.ownerDocument;
|
|
@@ -47,9 +66,14 @@ const removeClone = (componentEl, inputEl) => {
|
|
|
47
66
|
inputEl.style.transform = '';
|
|
48
67
|
};
|
|
49
68
|
|
|
69
|
+
/*!
|
|
70
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
71
|
+
*/
|
|
50
72
|
const enableHideCaretOnScroll = (componentEl, inputEl, scrollEl) => {
|
|
51
73
|
if (!scrollEl || !inputEl) {
|
|
52
|
-
return () => {
|
|
74
|
+
return () => {
|
|
75
|
+
return;
|
|
76
|
+
};
|
|
53
77
|
}
|
|
54
78
|
const scrollHideCaret = (shouldHideCaret) => {
|
|
55
79
|
if (isFocused(inputEl)) {
|
|
@@ -69,6 +93,9 @@ const enableHideCaretOnScroll = (componentEl, inputEl, scrollEl) => {
|
|
|
69
93
|
};
|
|
70
94
|
};
|
|
71
95
|
|
|
96
|
+
/*!
|
|
97
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
98
|
+
*/
|
|
72
99
|
const SKIP_SELECTOR = 'input, textarea, [no-blur], [contenteditable]';
|
|
73
100
|
const enableInputBlurring = () => {
|
|
74
101
|
let focused = true;
|
|
@@ -103,7 +130,7 @@ const enableInputBlurring = () => {
|
|
|
103
130
|
return;
|
|
104
131
|
}
|
|
105
132
|
focused = false;
|
|
106
|
-
// TODO: find a better way, why 50ms?
|
|
133
|
+
// TODO FW-2796: find a better way, why 50ms?
|
|
107
134
|
setTimeout(() => {
|
|
108
135
|
if (!focused) {
|
|
109
136
|
active.blur();
|
|
@@ -120,9 +147,13 @@ const enableInputBlurring = () => {
|
|
|
120
147
|
};
|
|
121
148
|
};
|
|
122
149
|
|
|
150
|
+
/*!
|
|
151
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
152
|
+
*/
|
|
123
153
|
const SCROLL_ASSIST_SPEED = 0.3;
|
|
124
154
|
const getScrollData = (componentEl, contentEl, keyboardHeight) => {
|
|
125
|
-
|
|
155
|
+
var _a;
|
|
156
|
+
const itemEl = (_a = componentEl.closest('ion-item,[ion-item]')) !== null && _a !== void 0 ? _a : componentEl;
|
|
126
157
|
return calcScrollData(itemEl.getBoundingClientRect(), contentEl.getBoundingClientRect(), keyboardHeight, componentEl.ownerDocument.defaultView.innerHeight);
|
|
127
158
|
};
|
|
128
159
|
const calcScrollData = (inputRect, contentRect, keyboardHeight, platformHeight) => {
|
|
@@ -139,11 +170,7 @@ const calcScrollData = (inputRect, contentRect, keyboardHeight, platformHeight)
|
|
|
139
170
|
const distanceToBottom = safeAreaBottom - inputBottom;
|
|
140
171
|
const distanceToTop = safeAreaTop - inputTop;
|
|
141
172
|
// 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);
|
|
173
|
+
const desiredScrollAmount = Math.round(distanceToBottom < 0 ? -distanceToBottom : distanceToTop > 0 ? -distanceToTop : 0);
|
|
147
174
|
// our calculations make some assumptions that aren't always true, like the keyboard being closed when an input
|
|
148
175
|
// gets focus, so make sure we don't scroll the input above the visible area
|
|
149
176
|
const scrollAmount = Math.min(desiredScrollAmount, inputTop - visibleAreaTop);
|
|
@@ -154,11 +181,14 @@ const calcScrollData = (inputRect, contentRect, keyboardHeight, platformHeight)
|
|
|
154
181
|
scrollAmount,
|
|
155
182
|
scrollDuration,
|
|
156
183
|
scrollPadding: keyboardHeight,
|
|
157
|
-
inputSafeY: -(inputTop - safeAreaTop) + 4
|
|
184
|
+
inputSafeY: -(inputTop - safeAreaTop) + 4,
|
|
158
185
|
};
|
|
159
186
|
};
|
|
160
187
|
|
|
161
|
-
|
|
188
|
+
/*!
|
|
189
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
190
|
+
*/
|
|
191
|
+
const enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, keyboardHeight, disableClonedInput = false) => {
|
|
162
192
|
let coord;
|
|
163
193
|
const touchStart = (ev) => {
|
|
164
194
|
coord = pointerCoord(ev);
|
|
@@ -173,19 +203,18 @@ const enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, keyboardH
|
|
|
173
203
|
// focus this input if the pointer hasn't moved XX pixels
|
|
174
204
|
// and the input doesn't already have focus
|
|
175
205
|
if (!hasPointerMoved(6, coord, endCoord) && !isFocused(inputEl)) {
|
|
176
|
-
ev.stopPropagation();
|
|
177
206
|
// begin the input focus process
|
|
178
|
-
jsSetFocus(componentEl, inputEl, contentEl, footerEl, keyboardHeight);
|
|
207
|
+
jsSetFocus(componentEl, inputEl, contentEl, footerEl, keyboardHeight, disableClonedInput);
|
|
179
208
|
}
|
|
180
209
|
};
|
|
181
|
-
componentEl.addEventListener('touchstart', touchStart, true);
|
|
210
|
+
componentEl.addEventListener('touchstart', touchStart, { capture: true, passive: true });
|
|
182
211
|
componentEl.addEventListener('touchend', touchEnd, true);
|
|
183
212
|
return () => {
|
|
184
213
|
componentEl.removeEventListener('touchstart', touchStart, true);
|
|
185
214
|
componentEl.removeEventListener('touchend', touchEnd, true);
|
|
186
215
|
};
|
|
187
216
|
};
|
|
188
|
-
const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHeight) => {
|
|
217
|
+
const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHeight, disableClonedInput = false) => {
|
|
189
218
|
if (!contentEl && !footerEl) {
|
|
190
219
|
return;
|
|
191
220
|
}
|
|
@@ -199,7 +228,7 @@ const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHei
|
|
|
199
228
|
// temporarily move the focus to the focus holder so the browser
|
|
200
229
|
// doesn't freak out while it's trying to get the input in place
|
|
201
230
|
// at this point the native text input still does not have focus
|
|
202
|
-
relocateInput(componentEl, inputEl, true, scrollData.inputSafeY);
|
|
231
|
+
relocateInput(componentEl, inputEl, true, scrollData.inputSafeY, disableClonedInput);
|
|
203
232
|
inputEl.focus();
|
|
204
233
|
/**
|
|
205
234
|
* Relocating/Focusing input causes the
|
|
@@ -207,7 +236,6 @@ const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHei
|
|
|
207
236
|
* manually fire one here.
|
|
208
237
|
*/
|
|
209
238
|
raf(() => componentEl.click());
|
|
210
|
-
/* tslint:disable-next-line */
|
|
211
239
|
if (typeof window !== 'undefined') {
|
|
212
240
|
let scrollContentTimeout;
|
|
213
241
|
const scrollContent = async () => {
|
|
@@ -219,7 +247,7 @@ const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHei
|
|
|
219
247
|
window.removeEventListener('ionKeyboardDidShow', scrollContent);
|
|
220
248
|
// scroll the input into place
|
|
221
249
|
if (contentEl) {
|
|
222
|
-
await
|
|
250
|
+
await scrollByPoint(contentEl, 0, scrollData.scrollAmount, scrollData.scrollDuration);
|
|
223
251
|
}
|
|
224
252
|
// the scroll view is in the correct position now
|
|
225
253
|
// give the native text input focus
|
|
@@ -232,7 +260,7 @@ const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHei
|
|
|
232
260
|
window.addEventListener('ionKeyboardDidShow', scrollContent);
|
|
233
261
|
};
|
|
234
262
|
if (contentEl) {
|
|
235
|
-
const scrollEl = await
|
|
263
|
+
const scrollEl = await getScrollElement(contentEl);
|
|
236
264
|
/**
|
|
237
265
|
* scrollData will only consider the amount we need
|
|
238
266
|
* to scroll in order to properly bring the input
|
|
@@ -246,7 +274,7 @@ const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHei
|
|
|
246
274
|
* bandwidth to become available.
|
|
247
275
|
*/
|
|
248
276
|
const totalScrollAmount = scrollEl.scrollHeight - scrollEl.clientHeight;
|
|
249
|
-
if (scrollData.scrollAmount >
|
|
277
|
+
if (scrollData.scrollAmount > totalScrollAmount - scrollEl.scrollTop) {
|
|
250
278
|
/**
|
|
251
279
|
* On iOS devices, the system will show a "Passwords" bar above the keyboard
|
|
252
280
|
* after the initial keyboard is shown. This prevents the webview from resizing
|
|
@@ -275,14 +303,17 @@ const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHei
|
|
|
275
303
|
};
|
|
276
304
|
const hasPointerMoved = (threshold, startCoord, endCoord) => {
|
|
277
305
|
if (startCoord && endCoord) {
|
|
278
|
-
const deltaX =
|
|
279
|
-
const deltaY =
|
|
306
|
+
const deltaX = startCoord.x - endCoord.x;
|
|
307
|
+
const deltaY = startCoord.y - endCoord.y;
|
|
280
308
|
const distance = deltaX * deltaX + deltaY * deltaY;
|
|
281
|
-
return distance >
|
|
309
|
+
return distance > threshold * threshold;
|
|
282
310
|
}
|
|
283
311
|
return false;
|
|
284
312
|
};
|
|
285
313
|
|
|
314
|
+
/*!
|
|
315
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
316
|
+
*/
|
|
286
317
|
const PADDING_TIMER_KEY = '$ionPaddingTimer';
|
|
287
318
|
const enableScrollPadding = (keyboardHeight) => {
|
|
288
319
|
const doc = document;
|
|
@@ -300,18 +331,17 @@ const enableScrollPadding = (keyboardHeight) => {
|
|
|
300
331
|
};
|
|
301
332
|
};
|
|
302
333
|
const setScrollPadding = (input, keyboardHeight) => {
|
|
334
|
+
var _a, _b;
|
|
303
335
|
if (input.tagName !== 'INPUT') {
|
|
304
336
|
return;
|
|
305
337
|
}
|
|
306
338
|
if (input.parentElement && input.parentElement.tagName === 'ION-INPUT') {
|
|
307
339
|
return;
|
|
308
340
|
}
|
|
309
|
-
if (input.parentElement
|
|
310
|
-
input.parentElement.parentElement &&
|
|
311
|
-
input.parentElement.parentElement.tagName === 'ION-SEARCHBAR') {
|
|
341
|
+
if (((_b = (_a = input.parentElement) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.tagName) === 'ION-SEARCHBAR') {
|
|
312
342
|
return;
|
|
313
343
|
}
|
|
314
|
-
const el = input
|
|
344
|
+
const el = findClosestIonContent(input);
|
|
315
345
|
if (el === null) {
|
|
316
346
|
return;
|
|
317
347
|
}
|
|
@@ -329,24 +359,34 @@ const setScrollPadding = (input, keyboardHeight) => {
|
|
|
329
359
|
}
|
|
330
360
|
};
|
|
331
361
|
|
|
362
|
+
/*!
|
|
363
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
364
|
+
*/
|
|
332
365
|
const INPUT_BLURRING = true;
|
|
333
366
|
const SCROLL_PADDING = true;
|
|
334
|
-
const startInputShims = (config) => {
|
|
367
|
+
const startInputShims = (config, platform) => {
|
|
335
368
|
const doc = document;
|
|
369
|
+
const isIOS = platform === 'ios';
|
|
370
|
+
const isAndroid = platform === 'android';
|
|
371
|
+
/**
|
|
372
|
+
* Hide Caret and Input Blurring are needed on iOS.
|
|
373
|
+
* Scroll Assist and Scroll Padding are needed on iOS and Android
|
|
374
|
+
* with Chrome web browser (not Chrome webview).
|
|
375
|
+
*/
|
|
336
376
|
const keyboardHeight = config.getNumber('keyboardHeight', 290);
|
|
337
377
|
const scrollAssist = config.getBoolean('scrollAssist', true);
|
|
338
|
-
const hideCaret = config.getBoolean('hideCaretOnScroll',
|
|
339
|
-
const inputBlurring = config.getBoolean('inputBlurring',
|
|
378
|
+
const hideCaret = config.getBoolean('hideCaretOnScroll', isIOS);
|
|
379
|
+
const inputBlurring = config.getBoolean('inputBlurring', isIOS);
|
|
340
380
|
const scrollPadding = config.getBoolean('scrollPadding', true);
|
|
341
381
|
const inputs = Array.from(doc.querySelectorAll('ion-input, ion-textarea'));
|
|
342
382
|
const hideCaretMap = new WeakMap();
|
|
343
383
|
const scrollAssistMap = new WeakMap();
|
|
344
384
|
const registerInput = async (componentEl) => {
|
|
345
|
-
await new Promise(resolve => componentOnReady(componentEl, resolve));
|
|
385
|
+
await new Promise((resolve) => componentOnReady(componentEl, resolve));
|
|
346
386
|
const inputRoot = componentEl.shadowRoot || componentEl;
|
|
347
387
|
const inputEl = inputRoot.querySelector('input') || inputRoot.querySelector('textarea');
|
|
348
|
-
const scrollEl = componentEl
|
|
349
|
-
const footerEl =
|
|
388
|
+
const scrollEl = findClosestIonContent(componentEl);
|
|
389
|
+
const footerEl = !scrollEl ? componentEl.closest('ion-footer') : null;
|
|
350
390
|
if (!inputEl) {
|
|
351
391
|
return;
|
|
352
392
|
}
|
|
@@ -354,8 +394,18 @@ const startInputShims = (config) => {
|
|
|
354
394
|
const rmFn = enableHideCaretOnScroll(componentEl, inputEl, scrollEl);
|
|
355
395
|
hideCaretMap.set(componentEl, rmFn);
|
|
356
396
|
}
|
|
357
|
-
|
|
358
|
-
|
|
397
|
+
/**
|
|
398
|
+
* date/datetime-locale inputs on mobile devices show date picker
|
|
399
|
+
* overlays instead of keyboards. As a result, scroll assist is
|
|
400
|
+
* not needed. This also works around a bug in iOS <16 where
|
|
401
|
+
* scroll assist causes the browser to lock up. See FW-1997.
|
|
402
|
+
*/
|
|
403
|
+
const isDateInput = inputEl.type === 'date' || inputEl.type === 'datetime-local';
|
|
404
|
+
if (!isDateInput &&
|
|
405
|
+
(!!scrollEl || !!footerEl) &&
|
|
406
|
+
scrollAssist &&
|
|
407
|
+
!scrollAssistMap.has(componentEl)) {
|
|
408
|
+
const rmFn = enableScrollAssist(componentEl, inputEl, scrollEl, footerEl, keyboardHeight, isAndroid);
|
|
359
409
|
scrollAssistMap.set(componentEl, rmFn);
|
|
360
410
|
}
|
|
361
411
|
};
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
|
|
2
|
+
import { g as getIonMode } from './ionic-global.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 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
9
|
+
constructor() {
|
|
10
|
+
super();
|
|
11
|
+
this.__registerHost();
|
|
12
|
+
this.__attachShadow();
|
|
13
|
+
this.ionChange = createEvent(this, "ionChange", 7);
|
|
14
|
+
/**
|
|
15
|
+
* If `true`, all accordions inside of the
|
|
16
|
+
* accordion group will animate when expanding
|
|
17
|
+
* or collapsing.
|
|
18
|
+
*/
|
|
19
|
+
this.animated = true;
|
|
20
|
+
/**
|
|
21
|
+
* If `true`, the accordion group cannot be interacted with.
|
|
22
|
+
*/
|
|
23
|
+
this.disabled = false;
|
|
24
|
+
/**
|
|
25
|
+
* If `true`, the accordion group cannot be interacted with,
|
|
26
|
+
* but does not alter the opacity.
|
|
27
|
+
*/
|
|
28
|
+
this.readonly = false;
|
|
29
|
+
/**
|
|
30
|
+
* Describes the expansion behavior for each accordion.
|
|
31
|
+
* Possible values are `"compact"` and `"inset"`.
|
|
32
|
+
* Defaults to `"compact"`.
|
|
33
|
+
*/
|
|
34
|
+
this.expand = 'compact';
|
|
35
|
+
}
|
|
36
|
+
valueChanged() {
|
|
37
|
+
const { value, multiple } = this;
|
|
38
|
+
/**
|
|
39
|
+
* If accordion group does not
|
|
40
|
+
* let multiple accordions be open
|
|
41
|
+
* at once, but user passes an array
|
|
42
|
+
* just grab the first value.
|
|
43
|
+
*/
|
|
44
|
+
if (!multiple && Array.isArray(value)) {
|
|
45
|
+
this.value = value[0];
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
this.ionChange.emit({ value: this.value });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
async disabledChanged() {
|
|
52
|
+
const { disabled } = this;
|
|
53
|
+
const accordions = await this.getAccordions();
|
|
54
|
+
for (const accordion of accordions) {
|
|
55
|
+
accordion.disabled = disabled;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async readonlyChanged() {
|
|
59
|
+
const { readonly } = this;
|
|
60
|
+
const accordions = await this.getAccordions();
|
|
61
|
+
for (const accordion of accordions) {
|
|
62
|
+
accordion.readonly = readonly;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
async onKeydown(ev) {
|
|
66
|
+
const activeElement = document.activeElement;
|
|
67
|
+
if (!activeElement) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Make sure focus is in the header, not the body, of the accordion. This ensures
|
|
72
|
+
* that if there are any interactable elements in the body, their keyboard
|
|
73
|
+
* interaction doesn't get stolen by the accordion. Example: using up/down keys
|
|
74
|
+
* in ion-textarea.
|
|
75
|
+
*/
|
|
76
|
+
const activeAccordionHeader = activeElement.closest('ion-accordion [slot="header"]');
|
|
77
|
+
if (!activeAccordionHeader) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
const accordionEl = activeElement.tagName === 'ION-ACCORDION' ? activeElement : activeElement.closest('ion-accordion');
|
|
81
|
+
if (!accordionEl) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
const closestGroup = accordionEl.closest('ion-accordion-group');
|
|
85
|
+
if (closestGroup !== this.el) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
// If the active accordion is not in the current array of accordions, do not do anything
|
|
89
|
+
const accordions = await this.getAccordions();
|
|
90
|
+
const startingIndex = accordions.findIndex((a) => a === accordionEl);
|
|
91
|
+
if (startingIndex === -1) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
let accordion;
|
|
95
|
+
if (ev.key === 'ArrowDown') {
|
|
96
|
+
accordion = this.findNextAccordion(accordions, startingIndex);
|
|
97
|
+
}
|
|
98
|
+
else if (ev.key === 'ArrowUp') {
|
|
99
|
+
accordion = this.findPreviousAccordion(accordions, startingIndex);
|
|
100
|
+
}
|
|
101
|
+
else if (ev.key === 'Home') {
|
|
102
|
+
accordion = accordions[0];
|
|
103
|
+
}
|
|
104
|
+
else if (ev.key === 'End') {
|
|
105
|
+
accordion = accordions[accordions.length - 1];
|
|
106
|
+
}
|
|
107
|
+
if (accordion !== undefined && accordion !== activeElement) {
|
|
108
|
+
accordion.focus();
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
async componentDidLoad() {
|
|
112
|
+
if (this.disabled) {
|
|
113
|
+
this.disabledChanged();
|
|
114
|
+
}
|
|
115
|
+
if (this.readonly) {
|
|
116
|
+
this.readonlyChanged();
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* @internal
|
|
121
|
+
*/
|
|
122
|
+
async requestAccordionToggle(accordionValue, accordionExpand) {
|
|
123
|
+
const { multiple, value, readonly, disabled } = this;
|
|
124
|
+
if (readonly || disabled) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
if (accordionExpand) {
|
|
128
|
+
/**
|
|
129
|
+
* If group accepts multiple values
|
|
130
|
+
* check to see if value is already in
|
|
131
|
+
* in values array. If not, add it
|
|
132
|
+
* to the array.
|
|
133
|
+
*/
|
|
134
|
+
if (multiple) {
|
|
135
|
+
const groupValue = value !== null && value !== void 0 ? value : [];
|
|
136
|
+
const processedValue = Array.isArray(groupValue) ? groupValue : [groupValue];
|
|
137
|
+
const valueExists = processedValue.find((v) => v === accordionValue);
|
|
138
|
+
if (valueExists === undefined && accordionValue !== undefined) {
|
|
139
|
+
this.value = [...processedValue, accordionValue];
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
this.value = accordionValue;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
/**
|
|
148
|
+
* If collapsing accordion, either filter the value
|
|
149
|
+
* out of the values array or unset the value.
|
|
150
|
+
*/
|
|
151
|
+
if (multiple) {
|
|
152
|
+
const groupValue = value !== null && value !== void 0 ? value : [];
|
|
153
|
+
const processedValue = Array.isArray(groupValue) ? groupValue : [groupValue];
|
|
154
|
+
this.value = processedValue.filter((v) => v !== accordionValue);
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
this.value = undefined;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
findNextAccordion(accordions, startingIndex) {
|
|
162
|
+
const nextAccordion = accordions[startingIndex + 1];
|
|
163
|
+
if (nextAccordion === undefined) {
|
|
164
|
+
return accordions[0];
|
|
165
|
+
}
|
|
166
|
+
return nextAccordion;
|
|
167
|
+
}
|
|
168
|
+
findPreviousAccordion(accordions, startingIndex) {
|
|
169
|
+
const prevAccordion = accordions[startingIndex - 1];
|
|
170
|
+
if (prevAccordion === undefined) {
|
|
171
|
+
return accordions[accordions.length - 1];
|
|
172
|
+
}
|
|
173
|
+
return prevAccordion;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* @internal
|
|
177
|
+
*/
|
|
178
|
+
async getAccordions() {
|
|
179
|
+
return Array.from(this.el.querySelectorAll(':scope > ion-accordion'));
|
|
180
|
+
}
|
|
181
|
+
render() {
|
|
182
|
+
const { disabled, readonly, expand } = this;
|
|
183
|
+
const mode = getIonMode(this);
|
|
184
|
+
return (h(Host, { class: {
|
|
185
|
+
[mode]: true,
|
|
186
|
+
'accordion-group-disabled': disabled,
|
|
187
|
+
'accordion-group-readonly': readonly,
|
|
188
|
+
[`accordion-group-expand-${expand}`]: true,
|
|
189
|
+
}, role: "presentation" }, h("slot", null)));
|
|
190
|
+
}
|
|
191
|
+
get el() { return this; }
|
|
192
|
+
static get watchers() { return {
|
|
193
|
+
"value": ["valueChanged"],
|
|
194
|
+
"disabled": ["disabledChanged"],
|
|
195
|
+
"readonly": ["readonlyChanged"]
|
|
196
|
+
}; }
|
|
197
|
+
static get style() { return {
|
|
198
|
+
ios: accordionGroupIosCss,
|
|
199
|
+
md: accordionGroupMdCss
|
|
200
|
+
}; }
|
|
201
|
+
}, [33, "ion-accordion-group", {
|
|
202
|
+
"animated": [4],
|
|
203
|
+
"multiple": [4],
|
|
204
|
+
"value": [1025],
|
|
205
|
+
"disabled": [4],
|
|
206
|
+
"readonly": [4],
|
|
207
|
+
"expand": [1],
|
|
208
|
+
"requestAccordionToggle": [64],
|
|
209
|
+
"getAccordions": [64]
|
|
210
|
+
}, [[0, "keydown", "onKeydown"]]]);
|
|
211
|
+
function defineCustomElement$1() {
|
|
212
|
+
if (typeof customElements === "undefined") {
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
const components = ["ion-accordion-group"];
|
|
216
|
+
components.forEach(tagName => { switch (tagName) {
|
|
217
|
+
case "ion-accordion-group":
|
|
218
|
+
if (!customElements.get(tagName)) {
|
|
219
|
+
customElements.define(tagName, AccordionGroup);
|
|
220
|
+
}
|
|
221
|
+
break;
|
|
222
|
+
} });
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
const IonAccordionGroup = AccordionGroup;
|
|
226
|
+
const defineCustomElement = defineCustomElement$1;
|
|
227
|
+
|
|
228
|
+
export { IonAccordionGroup, defineCustomElement };
|