@sparkle-learning/core 0.0.27 → 0.0.30
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/{PrivateRoute-cee9b061.js → PrivateRoute-043bb7d3.js} +6 -40
- package/dist/cjs/{active-router-3bd7b540.js → active-router-eedb3bfe.js} +1 -1
- package/dist/cjs/{animation-05337433.js → animation-6132e37f.js} +28 -4
- package/dist/cjs/app-globals-9869bf67.js +9 -0
- package/dist/cjs/{auth.store-aba3d22f.js → auth.store-ff3fda09.js} +1869 -357
- package/dist/cjs/compass-svg.cjs.entry.js +1 -1
- package/dist/cjs/context-consumer.cjs.entry.js +1 -1
- package/dist/cjs/course-select.cjs.entry.js +1 -1
- package/dist/cjs/{cubic-bezier-24e309bf.js → cubic-bezier-293f4663.js} +3 -0
- package/dist/cjs/dir-5af5259a.js +20 -0
- package/dist/cjs/{facilitator.service-e1e2f719.js → facilitator.service-faac5c0c.js} +1 -1
- package/dist/cjs/feed.service-66405969.js +124 -0
- package/dist/cjs/focus-visible-ad3828a7.js +63 -0
- package/dist/cjs/framework-delegate-2470a246.js +113 -0
- package/dist/cjs/{gesture-controller-e824cfb3.js → gesture-controller-07c31f70.js} +3 -0
- package/dist/cjs/{haptic-415dac5b.js → haptic-91e86eb7.js} +3 -0
- package/dist/cjs/{hardware-back-button-ca468aae.js → hardware-back-button-f7b5d99e.js} +3 -0
- package/dist/cjs/header-mobile-collapse_61.cjs.entry.js +18001 -0
- package/dist/cjs/{helpers-26770c32.js → helpers-7e28976c.js} +122 -3
- package/dist/cjs/{icons-a0fef92b.js → icons-b8a2231a.js} +1 -1
- package/dist/cjs/{index-427d03fb.js → index-185f9c5a.js} +3 -0
- package/dist/cjs/{index-6eff209d.js → index-43642662.js} +24 -3
- package/dist/cjs/{index-7bcd36a0.js → index-459a5fa9.js} +20 -4
- package/dist/cjs/index-8540d72e.js +42 -0
- package/dist/cjs/{index-58b3ee93.js → index-b12edb26.js} +34 -5
- package/dist/cjs/{index-fbf4d3bf.js → index-bae2a754.js} +303 -207
- package/dist/cjs/index.cjs.js +8 -7
- package/dist/cjs/index.es-ef3efdfb.js +10671 -0
- package/dist/cjs/{input-shims-213e83f8.js → input-shims-6c442c9f.js} +34 -10
- package/dist/cjs/ion-accordion-group.cjs.entry.js +197 -0
- package/dist/cjs/ion-accordion.cjs.entry.js +340 -0
- package/dist/cjs/ion-action-sheet_4.cjs.entry.js +2203 -0
- package/dist/cjs/ion-app.cjs.entry.js +23 -8
- package/dist/cjs/ion-back-button.cjs.entry.js +14 -9
- package/dist/cjs/ion-backdrop.cjs.entry.js +3 -3
- package/dist/cjs/ion-badge.cjs.entry.js +3 -3
- package/dist/cjs/ion-breadcrumb.cjs.entry.js +103 -0
- package/dist/cjs/ion-breadcrumbs.cjs.entry.js +135 -0
- package/dist/cjs/ion-buttons_3.cjs.entry.js +7 -6
- package/dist/cjs/ion-card-header.cjs.entry.js +3 -3
- package/dist/cjs/ion-card-subtitle.cjs.entry.js +3 -3
- package/dist/cjs/ion-card-title.cjs.entry.js +3 -3
- package/dist/cjs/ion-chip.cjs.entry.js +3 -3
- package/dist/cjs/ion-content_2.cjs.entry.js +144 -56
- package/dist/cjs/ion-datetime.cjs.entry.js +1902 -779
- package/dist/cjs/ion-fab-button.cjs.entry.js +5 -4
- package/dist/cjs/ion-fab-list.cjs.entry.js +2 -2
- package/dist/cjs/ion-fab.cjs.entry.js +2 -2
- package/dist/cjs/ion-footer.cjs.entry.js +79 -4
- package/dist/cjs/ion-img.cjs.entry.js +33 -7
- package/dist/cjs/ion-infinite-scroll-content.cjs.entry.js +3 -3
- package/dist/cjs/ion-infinite-scroll.cjs.entry.js +4 -2
- package/dist/cjs/ion-item-divider.cjs.entry.js +3 -3
- package/dist/cjs/ion-item-group.cjs.entry.js +2 -2
- package/dist/cjs/ion-item-option.cjs.entry.js +4 -4
- package/dist/cjs/ion-item-options.cjs.entry.js +3 -3
- package/dist/cjs/ion-item-sliding.cjs.entry.js +52 -8
- package/dist/cjs/ion-loading.cjs.entry.js +23 -11
- package/dist/cjs/ion-menu-button.cjs.entry.js +17 -11
- package/dist/cjs/ion-menu-toggle.cjs.entry.js +7 -7
- package/dist/cjs/ion-menu.cjs.entry.js +141 -29
- package/dist/cjs/ion-modal.cjs.entry.js +649 -75
- package/dist/cjs/ion-nav-link.cjs.entry.js +4 -1
- package/dist/cjs/ion-nav.cjs.entry.js +140 -137
- package/dist/cjs/ion-picker-column-internal_2.cjs.entry.js +700 -0
- package/dist/cjs/ion-picker-column.cjs.entry.js +5 -5
- package/dist/cjs/ion-picker.cjs.entry.js +18 -11
- package/dist/cjs/ion-progress-bar.cjs.entry.js +17 -13
- package/dist/cjs/ion-refresher-content.cjs.entry.js +7 -6
- package/dist/cjs/ion-refresher.cjs.entry.js +83 -84
- package/dist/cjs/ion-reorder-group.cjs.entry.js +9 -8
- 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 +3 -3
- package/dist/cjs/ion-router-outlet.cjs.entry.js +50 -12
- package/dist/cjs/ion-router.cjs.entry.js +378 -234
- package/dist/cjs/ion-searchbar.cjs.entry.js +50 -17
- package/dist/cjs/ion-segment-button.cjs.entry.js +12 -9
- package/dist/cjs/ion-segment.cjs.entry.js +89 -10
- package/dist/cjs/ion-select_2.cjs.entry.js +64 -30
- package/dist/cjs/ion-skeleton-text.cjs.entry.js +4 -4
- package/dist/cjs/ion-slide.cjs.entry.js +2 -2
- package/dist/cjs/ion-slides.cjs.entry.js +19 -32
- package/dist/cjs/ion-split-pane.cjs.entry.js +8 -3
- package/dist/cjs/ion-tab-bar.cjs.entry.js +25 -12
- package/dist/cjs/ion-tab-button.cjs.entry.js +2 -2
- package/dist/cjs/ion-tab.cjs.entry.js +3 -2
- package/dist/cjs/ion-tabs.cjs.entry.js +1 -1
- package/dist/cjs/ion-textarea.cjs.entry.js +9 -8
- package/dist/cjs/ion-thumbnail.cjs.entry.js +2 -2
- package/dist/cjs/ion-toast.cjs.entry.js +37 -27
- package/dist/cjs/ion-toggle.cjs.entry.js +15 -15
- package/dist/cjs/ion-virtual-scroll.cjs.entry.js +13 -3
- package/dist/cjs/{ionic-global-4930d319.js → ionic-global-878073d1.js} +103 -77
- package/dist/cjs/{ios.transition-6e1fd3d6.js → ios.transition-c3bfb096.js} +8 -5
- package/dist/cjs/{keyboard-1dcbde6c.js → keyboard-dfd76ac3.js} +3 -0
- package/dist/cjs/loader.cjs.js +5 -5
- package/dist/cjs/localstorage.service-6346a41d.js +40 -0
- package/dist/cjs/{md.transition-3652ad78.js → md.transition-7eb9a1a7.js} +7 -4
- package/dist/cjs/{menu-toggle-util-a8fb4c56.js → menu-toggle-util-cb549c2c.js} +4 -1
- package/dist/cjs/{overlays-08a817ea.js → overlays-0a748609.js} +188 -47
- package/dist/cjs/{purify-596fc2d6.js → purify-d0ad2883.js} +187 -74
- package/dist/cjs/sparkle-animation-player.cjs.entry.js +56 -50
- package/dist/cjs/sparkle-character-intro.cjs.entry.js +26 -0
- package/dist/cjs/sparkle-code.cjs.entry.js +2 -2
- package/dist/cjs/sparkle-compass-post.cjs.entry.js +1 -1
- package/dist/cjs/sparkle-compass.cjs.entry.js +1 -1
- package/dist/cjs/sparkle-core.cjs.js +7 -7
- package/dist/cjs/sparkle-emoji.cjs.entry.js +1 -1
- package/dist/cjs/sparkle-facilitator-notes-form.cjs.entry.js +7 -7
- package/dist/cjs/sparkle-feed-post.cjs.entry.js +1 -1
- package/dist/cjs/sparkle-feedback.cjs.entry.js +7 -7
- package/dist/cjs/sparkle-goal-form.cjs.entry.js +15 -14
- package/dist/cjs/sparkle-gww-comment-list.cjs.entry.js +1 -1
- package/dist/cjs/sparkle-gww-graph.cjs.entry.js +1 -1
- package/dist/cjs/sparkle-lower-content-nav.cjs.entry.js +1 -1
- package/dist/cjs/sparkle-menu-collapsible.cjs.entry.js +2 -2
- package/dist/cjs/sparkle-modal-image.cjs.entry.js +1 -1
- package/dist/cjs/sparkle-notfound-page.cjs.entry.js +1 -1
- package/dist/cjs/sparkle-overlay.cjs.entry.js +1 -1
- package/dist/cjs/sparkle-poll.cjs.entry.js +1 -1
- package/dist/cjs/sparkle-quiz-container.cjs.entry.js +1 -1
- package/dist/cjs/sparkle-quiz-feedback_5.cjs.entry.js +1 -1
- package/dist/cjs/sparkle-quiz.cjs.entry.js +2 -2
- package/dist/cjs/sparkle-select.cjs.entry.js +1 -1
- package/dist/cjs/sparkle-sidebar.cjs.entry.js +1 -1
- package/dist/cjs/sparkle-tab.cjs.entry.js +1 -1
- package/dist/cjs/sparkle-table-of-contents.cjs.entry.js +1 -1
- package/dist/cjs/sparkle-tabs.cjs.entry.js +1 -1
- package/dist/cjs/sparkle-youtube.cjs.entry.js +2 -2
- package/dist/cjs/{spinner-configs-559523fd.js → spinner-configs-6f6b7ef0.js} +36 -1
- package/dist/cjs/status-tap-8697433c.js +40 -0
- package/dist/cjs/stencil-async-content.cjs.entry.js +1 -1
- package/dist/cjs/stencil-route-title.cjs.entry.js +2 -2
- package/dist/cjs/stencil-router-prompt.cjs.entry.js +2 -2
- package/dist/cjs/{student.service-41c7c78d.js → student.service-744c3155.js} +1 -1
- package/dist/cjs/{swipe-back-c1951cbd.js → swipe-back-7e08b5e0.js} +32 -8
- package/dist/cjs/{swiper.bundle-cbea42d8.js → swiper.bundle-8c897c07.js} +4 -4
- package/dist/cjs/{tap-click-cd858b48.js → tap-click-1caf1780.js} +8 -1
- package/dist/cjs/{theme-98ccfc24.js → theme-4252ac15.js} +3 -0
- package/dist/cjs/util-d383acb8.js +2462 -0
- package/dist/collection/collection-manifest.json +9 -2
- package/dist/collection/components/layout/page/page.js +1 -0
- package/dist/collection/components/sparkle-animation-player/sparkle-animation-player.js +78 -66
- package/dist/collection/components/sparkle-character-intro/assets/characters/character-img.jpg +0 -0
- package/dist/collection/components/sparkle-character-intro/assets/characters/jen.png +0 -0
- package/dist/collection/components/sparkle-character-intro/assets/characters/kimberly.png +0 -0
- package/dist/collection/components/sparkle-character-intro/assets/characters/valeria.png +0 -0
- package/dist/collection/components/sparkle-character-intro/assets/characters/yuna.png +0 -0
- package/dist/collection/components/sparkle-character-intro/assets/characters/zynab.png +0 -0
- package/dist/collection/components/sparkle-character-intro/sparkle-character-intro.css +67 -0
- package/dist/collection/components/sparkle-character-intro/sparkle-character-intro.js +64 -0
- package/dist/collection/components/sparkle-course-root/sparkle-course-root.js +48 -43
- package/dist/collection/components/sparkle-youtube/sparkle-youtube.js +6 -2
- package/dist/collection/util.js +1 -0
- package/dist/esm/{PrivateRoute-9f0973bb.js → PrivateRoute-b9937c45.js} +3 -37
- package/dist/esm/{active-router-b3ae32c7.js → active-router-909088d6.js} +1 -1
- package/dist/esm/{animation-72fdacfb.js → animation-b306f6c2.js} +28 -4
- package/dist/esm/app-globals-5c736ae5.js +7 -0
- package/dist/esm/auth.store-3ed2389e.js +4061 -0
- package/dist/esm/compass-svg.entry.js +1 -1
- package/dist/esm/context-consumer.entry.js +1 -1
- package/dist/esm/course-select.entry.js +1 -1
- package/dist/esm/{cubic-bezier-ed243a9b.js → cubic-bezier-a7ad9c8e.js} +3 -0
- package/dist/esm/dir-03012648.js +18 -0
- package/dist/esm/{facilitator.service-cddb2feb.js → facilitator.service-ec0a9739.js} +1 -1
- package/dist/esm/feed.service-33b83cb7.js +119 -0
- package/dist/esm/focus-visible-40cda868.js +61 -0
- package/dist/esm/framework-delegate-3bc58c27.js +109 -0
- package/dist/esm/{gesture-controller-604336b7.js → gesture-controller-686622ba.js} +3 -0
- package/dist/esm/{haptic-67928174.js → haptic-99c9e346.js} +4 -1
- package/dist/esm/{hardware-back-button-508e48cf.js → hardware-back-button-b6ccf74a.js} +3 -0
- package/dist/esm/header-mobile-collapse_61.entry.js +17937 -0
- package/dist/esm/{helpers-e7f66b2b.js → helpers-39367fe1.js} +119 -4
- package/dist/esm/{icons-33e5804c.js → icons-5debfbaf.js} +1 -1
- package/dist/esm/{index-cc97b114.js → index-435af8e6.js} +3 -0
- package/dist/esm/{index-55fc9f5e.js → index-5568e3fa.js} +303 -208
- package/dist/esm/{index-dc09784f.js → index-9594837e.js} +20 -4
- package/dist/esm/{index-b2ad0f1a.js → index-a12c14bd.js} +25 -4
- package/dist/esm/{index-a94619f9.js → index-c26d8655.js} +34 -5
- package/dist/esm/index-dc61f152.js +22 -0
- package/dist/esm/index.es-97dd8174.js +10585 -0
- package/dist/esm/index.js +8 -7
- package/dist/esm/{input-shims-3a97fa86.js → input-shims-cc98ea92.js} +34 -10
- package/dist/esm/ion-accordion-group.entry.js +193 -0
- package/dist/esm/ion-accordion.entry.js +336 -0
- package/dist/esm/ion-action-sheet_4.entry.js +2196 -0
- package/dist/esm/ion-app.entry.js +23 -8
- package/dist/esm/ion-back-button.entry.js +14 -9
- package/dist/esm/ion-backdrop.entry.js +3 -3
- package/dist/esm/ion-badge.entry.js +3 -3
- package/dist/esm/ion-breadcrumb.entry.js +99 -0
- package/dist/esm/ion-breadcrumbs.entry.js +131 -0
- package/dist/esm/ion-buttons_3.entry.js +7 -6
- package/dist/esm/ion-card-header.entry.js +3 -3
- package/dist/esm/ion-card-subtitle.entry.js +3 -3
- package/dist/esm/ion-card-title.entry.js +3 -3
- package/dist/esm/ion-chip.entry.js +3 -3
- package/dist/esm/ion-content_2.entry.js +144 -56
- package/dist/esm/ion-datetime.entry.js +1902 -779
- package/dist/esm/ion-fab-button.entry.js +5 -4
- package/dist/esm/ion-fab-list.entry.js +2 -2
- package/dist/esm/ion-fab.entry.js +2 -2
- package/dist/esm/ion-footer.entry.js +79 -4
- package/dist/esm/ion-img.entry.js +33 -7
- package/dist/esm/ion-infinite-scroll-content.entry.js +3 -3
- package/dist/esm/ion-infinite-scroll.entry.js +4 -2
- package/dist/esm/ion-item-divider.entry.js +3 -3
- package/dist/esm/ion-item-group.entry.js +2 -2
- package/dist/esm/ion-item-option.entry.js +4 -4
- package/dist/esm/ion-item-options.entry.js +3 -3
- package/dist/esm/ion-item-sliding.entry.js +52 -8
- package/dist/esm/ion-loading.entry.js +23 -11
- package/dist/esm/ion-menu-button.entry.js +17 -11
- package/dist/esm/ion-menu-toggle.entry.js +7 -7
- package/dist/esm/ion-menu.entry.js +141 -29
- package/dist/esm/ion-modal.entry.js +649 -75
- package/dist/esm/ion-nav-link.entry.js +4 -1
- package/dist/esm/ion-nav.entry.js +140 -137
- package/dist/esm/ion-picker-column-internal_2.entry.js +695 -0
- package/dist/esm/ion-picker-column.entry.js +5 -5
- package/dist/esm/ion-picker.entry.js +18 -11
- package/dist/esm/ion-progress-bar.entry.js +17 -13
- package/dist/esm/ion-refresher-content.entry.js +7 -6
- package/dist/esm/ion-refresher.entry.js +82 -83
- package/dist/esm/ion-reorder-group.entry.js +9 -8
- 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 +3 -3
- package/dist/esm/ion-router-outlet.entry.js +50 -12
- package/dist/esm/ion-router.entry.js +378 -234
- package/dist/esm/ion-searchbar.entry.js +50 -17
- package/dist/esm/ion-segment-button.entry.js +12 -9
- package/dist/esm/ion-segment.entry.js +89 -10
- package/dist/esm/ion-select_2.entry.js +64 -30
- package/dist/esm/ion-skeleton-text.entry.js +4 -4
- package/dist/esm/ion-slide.entry.js +2 -2
- package/dist/esm/ion-slides.entry.js +19 -32
- package/dist/esm/ion-split-pane.entry.js +8 -3
- package/dist/esm/ion-tab-bar.entry.js +25 -12
- package/dist/esm/ion-tab-button.entry.js +2 -2
- package/dist/esm/ion-tab.entry.js +3 -2
- package/dist/esm/ion-tabs.entry.js +1 -1
- package/dist/esm/ion-textarea.entry.js +9 -8
- package/dist/esm/ion-thumbnail.entry.js +2 -2
- package/dist/esm/ion-toast.entry.js +37 -27
- package/dist/esm/ion-toggle.entry.js +15 -15
- package/dist/esm/ion-virtual-scroll.entry.js +13 -3
- package/dist/esm/{ionic-global-1f9287cc.js → ionic-global-0939c477.js} +103 -77
- package/dist/esm/{ios.transition-d01abefd.js → ios.transition-b4ca8a33.js} +8 -5
- package/dist/esm/{keyboard-06906eac.js → keyboard-2503e874.js} +3 -0
- package/dist/esm/loader.js +5 -5
- package/dist/esm/localstorage.service-4bf408c8.js +36 -0
- package/dist/esm/{md.transition-245ffa55.js → md.transition-ca5e0322.js} +7 -4
- package/dist/esm/{menu-toggle-util-fe83fcf5.js → menu-toggle-util-7fa22c2f.js} +4 -1
- package/dist/esm/{overlays-8363621c.js → overlays-34cfa9e0.js} +187 -47
- package/dist/esm/polyfills/css-shim.js +1 -1
- package/dist/esm/polyfills/index.js +2 -2
- package/dist/esm/{purify-4247e2d0.js → purify-ffce2b4c.js} +185 -72
- package/dist/esm/sparkle-animation-player.entry.js +56 -50
- package/dist/esm/sparkle-character-intro.entry.js +22 -0
- package/dist/esm/sparkle-code.entry.js +2 -2
- package/dist/esm/sparkle-compass-post.entry.js +1 -1
- package/dist/esm/sparkle-compass.entry.js +1 -1
- package/dist/esm/sparkle-core.js +7 -7
- package/dist/esm/sparkle-emoji.entry.js +1 -1
- package/dist/esm/sparkle-facilitator-notes-form.entry.js +7 -7
- package/dist/esm/sparkle-feed-post.entry.js +1 -1
- package/dist/esm/sparkle-feedback.entry.js +7 -7
- package/dist/esm/sparkle-goal-form.entry.js +8 -7
- package/dist/esm/sparkle-gww-comment-list.entry.js +1 -1
- package/dist/esm/sparkle-gww-graph.entry.js +1 -1
- package/dist/esm/sparkle-lower-content-nav.entry.js +1 -1
- package/dist/esm/sparkle-menu-collapsible.entry.js +2 -2
- package/dist/esm/sparkle-modal-image.entry.js +1 -1
- package/dist/esm/sparkle-notfound-page.entry.js +1 -1
- package/dist/esm/sparkle-overlay.entry.js +1 -1
- package/dist/esm/sparkle-poll.entry.js +1 -1
- package/dist/esm/sparkle-quiz-container.entry.js +1 -1
- package/dist/esm/sparkle-quiz-feedback_5.entry.js +1 -1
- package/dist/esm/sparkle-quiz.entry.js +2 -2
- package/dist/esm/sparkle-select.entry.js +1 -1
- package/dist/esm/sparkle-sidebar.entry.js +1 -1
- package/dist/esm/sparkle-tab.entry.js +1 -1
- package/dist/esm/sparkle-table-of-contents.entry.js +1 -1
- package/dist/esm/sparkle-tabs.entry.js +1 -1
- package/dist/esm/sparkle-youtube.entry.js +2 -2
- package/dist/esm/{spinner-configs-9536fae2.js → spinner-configs-f609a655.js} +36 -1
- package/dist/esm/status-tap-6351a0cb.js +38 -0
- package/dist/esm/stencil-async-content.entry.js +1 -1
- package/dist/esm/stencil-route-title.entry.js +2 -2
- package/dist/esm/stencil-router-prompt.entry.js +2 -2
- package/dist/esm/{student.service-c36c5a75.js → student.service-29b688ba.js} +1 -1
- package/dist/esm/{swipe-back-21f58ecf.js → swipe-back-34251834.js} +32 -8
- package/dist/esm/{swiper.bundle-d4422d52.js → swiper.bundle-b6a959de.js} +4 -4
- package/dist/esm/{tap-click-8c728329.js → tap-click-13f1fb0d.js} +8 -1
- package/dist/esm/{theme-12606872.js → theme-c336c9d9.js} +3 -0
- package/dist/esm/util-6ef753e9.js +2451 -0
- package/dist/loader/index.d.ts +0 -1
- package/dist/node_modules/@ionic/core/dist/collection/components/accordion/accordion.ios.css +75 -0
- package/dist/node_modules/@ionic/core/dist/collection/components/accordion/accordion.md.css +72 -0
- package/dist/node_modules/@ionic/core/dist/collection/components/accordion-group/accordion-group.ios.css +25 -0
- package/dist/node_modules/@ionic/core/dist/collection/components/accordion-group/accordion-group.md.css +59 -0
- package/dist/node_modules/@ionic/core/dist/collection/components/action-sheet/action-sheet.ios.css +10 -19
- package/dist/node_modules/@ionic/core/dist/collection/components/action-sheet/action-sheet.md.css +19 -16
- package/dist/node_modules/@ionic/core/dist/collection/components/alert/alert.md.css +2 -2
- package/dist/node_modules/@ionic/core/dist/collection/components/back-button/back-button.ios.css +4 -0
- package/dist/node_modules/@ionic/core/dist/collection/components/back-button/back-button.md.css +4 -0
- package/dist/node_modules/@ionic/core/dist/collection/components/breadcrumb/breadcrumb.ios.css +234 -0
- package/dist/node_modules/@ionic/core/dist/collection/components/breadcrumb/breadcrumb.md.css +237 -0
- package/dist/node_modules/@ionic/core/dist/collection/components/breadcrumbs/breadcrumbs.ios.css +38 -0
- package/dist/node_modules/@ionic/core/dist/collection/components/breadcrumbs/breadcrumbs.md.css +37 -0
- package/dist/node_modules/@ionic/core/dist/collection/components/button/button.ios.css +0 -1
- package/dist/node_modules/@ionic/core/dist/collection/components/button/button.md.css +5 -5
- package/dist/node_modules/@ionic/core/dist/collection/components/content/content.css +60 -14
- package/dist/node_modules/@ionic/core/dist/collection/components/datetime/datetime.ios.css +586 -68
- package/dist/node_modules/@ionic/core/dist/collection/components/datetime/datetime.md.css +575 -68
- package/dist/node_modules/@ionic/core/dist/collection/components/footer/footer.ios.css +4 -0
- package/dist/node_modules/@ionic/core/dist/collection/components/header/header.ios.css +16 -0
- package/dist/node_modules/@ionic/core/dist/collection/components/input/input.ios.css +9 -0
- package/dist/node_modules/@ionic/core/dist/collection/components/input/input.md.css +9 -0
- package/dist/node_modules/@ionic/core/dist/collection/components/item/item.ios.css +105 -17
- package/dist/node_modules/@ionic/core/dist/collection/components/item/item.md.css +295 -22
- package/dist/node_modules/@ionic/core/dist/collection/components/item-options/item-options.ios.css +6 -6
- package/dist/node_modules/@ionic/core/dist/collection/components/item-options/item-options.md.css +6 -6
- package/dist/node_modules/@ionic/core/dist/collection/components/item-sliding/item-sliding.css +2 -2
- package/dist/node_modules/@ionic/core/dist/collection/components/label/label.ios.css +7 -3
- package/dist/node_modules/@ionic/core/dist/collection/components/label/label.md.css +100 -18
- package/dist/node_modules/@ionic/core/dist/collection/components/list/list.ios.css +1 -1
- package/dist/node_modules/@ionic/core/dist/collection/components/menu/menu.ios.css +2 -2
- package/dist/node_modules/@ionic/core/dist/collection/components/menu/menu.md.css +2 -2
- package/dist/node_modules/@ionic/core/dist/collection/components/modal/modal.ios.css +74 -11
- package/dist/node_modules/@ionic/core/dist/collection/components/modal/modal.md.css +48 -4
- package/dist/node_modules/@ionic/core/dist/collection/components/picker-column-internal/picker-column-internal.ios.css +59 -0
- package/dist/node_modules/@ionic/core/dist/collection/components/picker-column-internal/picker-column-internal.md.css +62 -0
- package/dist/node_modules/@ionic/core/dist/collection/components/picker-internal/picker-internal.ios.css +122 -0
- package/dist/node_modules/@ionic/core/dist/collection/components/picker-internal/picker-internal.md.css +118 -0
- package/dist/node_modules/@ionic/core/dist/collection/components/popover/popover.ios.css +83 -0
- package/dist/node_modules/@ionic/core/dist/collection/components/popover/popover.md.css +49 -0
- package/dist/node_modules/@ionic/core/dist/collection/components/progress-bar/progress-bar.ios.css +53 -38
- package/dist/node_modules/@ionic/core/dist/collection/components/progress-bar/progress-bar.md.css +53 -38
- package/dist/node_modules/@ionic/core/dist/collection/components/range/range.ios.css +3 -3
- package/dist/node_modules/@ionic/core/dist/collection/components/range/range.md.css +5 -5
- package/dist/node_modules/@ionic/core/dist/collection/components/refresher/refresher.ios.css +12 -0
- package/dist/node_modules/@ionic/core/dist/collection/components/refresher/refresher.md.css +2 -2
- package/dist/node_modules/@ionic/core/dist/collection/components/searchbar/searchbar.ios.css +1 -1
- package/dist/node_modules/@ionic/core/dist/collection/components/searchbar/searchbar.md.css +1 -1
- package/dist/node_modules/@ionic/core/dist/collection/components/segment-button/segment-button.ios.css +4 -0
- package/dist/node_modules/@ionic/core/dist/collection/components/segment-button/segment-button.md.css +4 -0
- package/dist/node_modules/@ionic/core/dist/collection/components/select/select.ios.css +1 -1
- package/dist/node_modules/@ionic/core/dist/collection/components/select/select.md.css +30 -2
- package/dist/node_modules/@ionic/core/dist/collection/components/select-popover/{select-popover.css → select-popover.ios.css} +4 -4
- package/dist/node_modules/@ionic/core/dist/collection/components/select-popover/select-popover.md.css +37 -0
- package/dist/node_modules/@ionic/core/dist/collection/components/skeleton-text/skeleton-text.css +4 -4
- package/dist/node_modules/@ionic/core/dist/collection/components/spinner/spinner.css +15 -2
- package/dist/node_modules/@ionic/core/dist/collection/components/tab-bar/tab-bar.ios.css +2 -1
- package/dist/node_modules/@ionic/core/dist/collection/components/tab-bar/tab-bar.md.css +1 -0
- package/dist/node_modules/@ionic/core/dist/collection/components/textarea/textarea.ios.css +9 -0
- package/dist/node_modules/@ionic/core/dist/collection/components/textarea/textarea.md.css +9 -0
- package/dist/node_modules/@ionic/core/dist/collection/components/title/title.ios.css +4 -3
- package/dist/node_modules/@ionic/core/dist/collection/components/toast/toast.ios.css +14 -2
- package/dist/node_modules/@ionic/core/dist/collection/components/toast/toast.md.css +14 -2
- package/dist/node_modules/@ionic/core/dist/collection/components/toggle/toggle.ios.css +1 -0
- package/dist/node_modules/@ionic/core/dist/collection/components/toggle/toggle.md.css +1 -0
- package/dist/node_modules/@ionic/core/dist/collection/components/toolbar/toolbar.ios.css +3 -2
- package/dist/node_modules/@ionic/core/dist/collection/components/toolbar/toolbar.md.css +2 -1
- package/dist/node_modules/@ionic/core/dist/collection/components/virtual-scroll/virtual-scroll.css +1 -1
- package/dist/node_modules/@sparkle-learning/components/dist/collection/components/button/button.css +49 -0
- package/dist/node_modules/@sparkle-learning/components/dist/collection/components/cards/card/card.css +208 -0
- package/dist/node_modules/@sparkle-learning/components/dist/collection/components/cards/cards.css +31 -0
- package/dist/node_modules/@sparkle-learning/components/dist/collection/components/code/code.css +245 -0
- package/dist/node_modules/@sparkle-learning/components/dist/collection/components/dropdown/dropdown.css +115 -0
- package/dist/node_modules/@sparkle-learning/components/dist/collection/components/header/header-mobile-collapse/header-mobile-collapse.css +255 -0
- package/dist/node_modules/@sparkle-learning/components/dist/collection/components/header/header.css +232 -0
- package/dist/node_modules/@sparkle-learning/components/dist/collection/components/menu/collapsible/collapsible.css +3 -0
- package/dist/node_modules/@sparkle-learning/components/dist/collection/components/menu/menu-toggle/menu-toggle.css +25 -0
- package/dist/node_modules/@sparkle-learning/components/dist/collection/components/menu/menu.css +71 -0
- package/dist/node_modules/@sparkle-learning/components/dist/collection/components/nav/nav.css +194 -0
- package/dist/node_modules/@sparkle-learning/components/dist/collection/components/notfound-page/notfound-page.css +4 -0
- package/dist/node_modules/@sparkle-learning/components/dist/collection/components/overlay/overlay.css +67 -0
- package/dist/node_modules/@sparkle-learning/components/dist/collection/components/page-footer/page-footer.css +18 -0
- package/dist/node_modules/@sparkle-learning/components/dist/collection/components/pagination/pagination.css +89 -0
- package/dist/node_modules/@sparkle-learning/components/dist/collection/components/select/select.css +52 -0
- package/dist/node_modules/@sparkle-learning/components/dist/collection/components/sidebar/sidebar.css +98 -0
- package/dist/node_modules/@sparkle-learning/components/dist/collection/components/sparkle-lower-content-nav/sparkle-lower-content-nav.css +8 -0
- package/dist/node_modules/@sparkle-learning/components/dist/collection/components/table-of-contents/table-of-contents.css +37 -0
- package/dist/node_modules/@sparkle-learning/components/dist/collection/components/tabs/tabs.css +64 -0
- package/dist/sparkle-core/assets/characters/character-img.jpg +0 -0
- package/dist/sparkle-core/assets/characters/jen.png +0 -0
- package/dist/sparkle-core/assets/characters/kimberly.png +0 -0
- package/dist/sparkle-core/assets/characters/valeria.png +0 -0
- package/dist/sparkle-core/assets/characters/yuna.png +0 -0
- package/dist/sparkle-core/assets/characters/zynab.png +0 -0
- package/dist/sparkle-core/index.esm.js +1 -1
- package/dist/sparkle-core/p-0146afa0.entry.js +1 -0
- package/dist/sparkle-core/{p-52355989.entry.js → p-016a7aaf.entry.js} +1 -1
- package/dist/sparkle-core/p-0187adef.entry.js +1 -0
- package/dist/sparkle-core/p-03189863.js +1 -0
- package/dist/sparkle-core/{p-d4d9aa4a.entry.js → p-03ec54a8.entry.js} +1 -1
- package/dist/sparkle-core/p-04583c51.entry.js +1 -0
- package/dist/sparkle-core/{p-6d506f4e.js → p-052caa63.js} +1 -1
- package/dist/sparkle-core/{p-016bf847.entry.js → p-057f6a23.entry.js} +1 -1
- package/dist/sparkle-core/p-0580419b.entry.js +1 -0
- package/dist/sparkle-core/{p-c563b4de.js → p-063cd168.js} +4 -1
- package/dist/sparkle-core/p-081968cc.entry.js +1 -0
- package/dist/sparkle-core/p-0934f5dd.entry.js +1 -0
- package/dist/sparkle-core/{p-3f5d7a08.entry.js → p-11cf398a.entry.js} +1 -1
- package/dist/sparkle-core/p-1339830f.entry.js +1 -0
- package/dist/sparkle-core/p-145e40f5.entry.js +1 -0
- package/dist/sparkle-core/{p-68f3c93d.entry.js → p-1726da2f.entry.js} +1 -1
- package/dist/sparkle-core/p-173d5461.entry.js +7 -0
- package/dist/sparkle-core/p-18e62133.entry.js +1 -0
- package/dist/sparkle-core/p-1af044f7.js +3 -0
- package/dist/sparkle-core/p-1b78dea1.entry.js +1 -0
- package/dist/sparkle-core/p-1cef8572.js +4 -0
- package/dist/sparkle-core/p-1df05176.js +4 -0
- package/dist/sparkle-core/p-21bf4ca0.entry.js +1 -0
- package/dist/sparkle-core/p-21db4e8e.entry.js +1 -0
- package/dist/sparkle-core/p-23a9f7d1.entry.js +1 -0
- package/dist/sparkle-core/p-289a35ed.entry.js +1 -0
- package/dist/sparkle-core/p-2ee6a5f9.entry.js +1 -0
- package/dist/sparkle-core/p-350adbaa.entry.js +1 -0
- package/dist/sparkle-core/{p-bccd9036.entry.js → p-35a7bd6c.entry.js} +1 -1
- package/dist/sparkle-core/{p-66e3bd1c.entry.js → p-37c00e39.entry.js} +1 -1
- package/dist/sparkle-core/p-389500fd.js +4 -0
- package/dist/sparkle-core/p-39e5a90f.entry.js +1 -0
- package/dist/sparkle-core/{p-ac5e5308.entry.js → p-3a202a38.entry.js} +1 -1
- package/dist/sparkle-core/p-3defe550.entry.js +1 -0
- package/dist/sparkle-core/p-45e6db62.entry.js +1 -0
- package/dist/sparkle-core/{p-581ca370.entry.js → p-48f9b960.entry.js} +1 -1
- package/dist/sparkle-core/{p-0efbc0b3.entry.js → p-4dc3ef96.entry.js} +1 -1
- package/dist/sparkle-core/p-506221fe.js +4 -0
- package/dist/sparkle-core/p-50aac721.entry.js +7 -0
- package/dist/sparkle-core/p-513794b0.js +16 -0
- package/dist/sparkle-core/{p-2e4e8117.js → p-5264da79.js} +3 -0
- package/dist/sparkle-core/{p-40db85ac.entry.js → p-547b70c6.entry.js} +1 -1
- package/dist/sparkle-core/p-5598650a.entry.js +1 -0
- package/dist/sparkle-core/p-55ae49e1.js +4 -0
- package/dist/sparkle-core/p-58e98f89.entry.js +1 -0
- package/dist/sparkle-core/p-59f7bf6e.entry.js +1 -0
- package/dist/sparkle-core/p-5a3d0e6b.js +4 -0
- package/dist/sparkle-core/{p-85d31769.entry.js → p-5b40aae5.entry.js} +1 -1
- package/dist/sparkle-core/p-5c9aa1f9.entry.js +4 -0
- package/dist/sparkle-core/p-5d2e54ee.entry.js +1 -0
- package/dist/sparkle-core/p-5d409601.js +1 -0
- package/dist/sparkle-core/{p-afbaad64.entry.js → p-5f45d206.entry.js} +1 -1
- package/dist/sparkle-core/p-5ff6416d.entry.js +7 -0
- package/dist/sparkle-core/{p-cf2332bb.entry.js → p-62a6c96f.entry.js} +1 -1
- package/dist/sparkle-core/p-64e72f8f.js +4 -0
- package/dist/sparkle-core/p-660e0742.js +1 -0
- package/dist/sparkle-core/{p-d5023db0.entry.js → p-667accac.entry.js} +1 -1
- package/dist/sparkle-core/{p-9ca56f5d.entry.js → p-680663a2.entry.js} +1 -1
- package/dist/sparkle-core/{p-e975924a.entry.js → p-6823e6c1.entry.js} +1 -1
- package/dist/sparkle-core/p-69e7783d.js +4 -0
- package/dist/sparkle-core/p-6bbabb80.entry.js +1 -0
- package/dist/sparkle-core/p-6bf07a28.js +1 -0
- package/dist/sparkle-core/p-6c6145cd.js +4 -0
- package/dist/sparkle-core/p-6c90bde6.entry.js +5 -0
- package/dist/sparkle-core/p-6e88764b.entry.js +4 -0
- package/dist/sparkle-core/p-6ee40949.js +1 -0
- package/dist/sparkle-core/p-6fbe3ca3.entry.js +1 -0
- package/dist/sparkle-core/{p-f2660943.js → p-6fd4985d.js} +3 -0
- package/dist/sparkle-core/{p-8fc9298a.js → p-703ca87c.js} +3 -0
- package/dist/sparkle-core/{p-1bf8bed6.entry.js → p-7052c43a.entry.js} +1 -1
- package/dist/sparkle-core/{p-111520a0.js → p-70b2452c.js} +3 -0
- package/dist/sparkle-core/p-713590fc.js +5 -0
- package/dist/sparkle-core/p-7493ee15.entry.js +1 -0
- package/dist/sparkle-core/p-75572037.js +1 -0
- package/dist/sparkle-core/{p-eb56aa20.entry.js → p-768bcc9e.entry.js} +1 -1
- package/dist/sparkle-core/p-797c23ed.entry.js +1 -0
- package/dist/sparkle-core/{p-03eb2164.js → p-7c38a70b.js} +1 -1
- package/dist/sparkle-core/{p-09d43bee.entry.js → p-7d61177b.entry.js} +1 -1
- package/dist/sparkle-core/p-7dbfc316.js +1 -0
- package/dist/sparkle-core/p-7e61973d.entry.js +7 -0
- package/dist/sparkle-core/{p-3cd28c60.entry.js → p-82e98d07.entry.js} +1 -1
- package/dist/sparkle-core/p-838fa86d.entry.js +18 -0
- package/dist/sparkle-core/p-855ca600.js +1 -0
- package/dist/sparkle-core/p-857f3696.entry.js +1 -0
- package/dist/sparkle-core/{p-8f72be08.js → p-8c6b6038.js} +3 -0
- package/dist/sparkle-core/p-8fe2e51f.entry.js +4 -0
- package/dist/sparkle-core/{p-f72a6e6d.entry.js → p-90389886.entry.js} +1 -1
- package/dist/sparkle-core/p-932bfb69.entry.js +1 -0
- package/dist/sparkle-core/p-935e7cfc.js +1 -0
- package/dist/sparkle-core/{p-c70b9765.entry.js → p-941eaa3a.entry.js} +1 -1
- package/dist/sparkle-core/p-95004267.entry.js +1 -0
- package/dist/sparkle-core/p-950effe7.entry.js +1 -0
- package/dist/sparkle-core/{p-1ca4bf1d.entry.js → p-996361f9.entry.js} +1 -1
- package/dist/sparkle-core/p-9a17f2ad.js +4 -0
- package/dist/sparkle-core/p-9a443f51.js +1 -1
- package/dist/sparkle-core/p-9babd345.js +1 -0
- package/dist/sparkle-core/p-9cfdeb18.entry.js +1 -0
- package/dist/sparkle-core/p-a080e768.entry.js +1 -0
- package/dist/sparkle-core/p-a1cab0f3.js +4 -0
- package/dist/sparkle-core/p-a7cc0052.entry.js +4 -0
- package/dist/sparkle-core/p-a9ccb0df.js +4 -0
- package/dist/sparkle-core/p-a9ee3f6d.entry.js +1 -0
- package/dist/sparkle-core/{p-abe2676a.entry.js → p-aa87c7f0.entry.js} +1 -1
- package/dist/sparkle-core/{p-e818b11d.entry.js → p-aa9ebc39.entry.js} +1 -1
- package/dist/sparkle-core/p-ae1f145d.entry.js +1 -0
- package/dist/sparkle-core/{p-73a646fb.entry.js → p-b07a2cf2.entry.js} +1 -1
- package/dist/sparkle-core/{p-c82b05e0.entry.js → p-b3909012.entry.js} +1 -1
- package/dist/sparkle-core/p-b3e6427d.js +7 -0
- package/dist/sparkle-core/p-b49ca0ea.entry.js +1 -0
- package/dist/sparkle-core/p-b81e20fe.entry.js +4 -0
- package/dist/sparkle-core/p-bca0e465.entry.js +1 -0
- package/dist/sparkle-core/p-c1279cc9.entry.js +1 -0
- package/dist/sparkle-core/{p-82d95fcd.entry.js → p-c1376096.entry.js} +1 -1
- package/dist/sparkle-core/p-c3986a52.entry.js +1 -0
- package/dist/sparkle-core/p-c3d3d5c4.entry.js +1 -0
- package/dist/sparkle-core/p-c48bbc7c.entry.js +4 -0
- package/dist/sparkle-core/p-c5b9bdd6.entry.js +1 -0
- package/dist/sparkle-core/{p-15d68269.entry.js → p-c69b0a7a.entry.js} +1 -1
- package/dist/sparkle-core/p-cbbeed67.entry.js +1 -0
- package/dist/sparkle-core/p-d4a435f8.entry.js +1 -0
- package/dist/sparkle-core/p-d4c07aca.js +4 -0
- package/dist/sparkle-core/p-d5b05ece.entry.js +5 -0
- package/dist/sparkle-core/p-d7baf31e.entry.js +1 -0
- package/dist/sparkle-core/p-d8d3524a.js +1 -0
- package/dist/sparkle-core/p-df0070c5.entry.js +352 -0
- package/dist/sparkle-core/{p-22926eed.entry.js → p-e0fced48.entry.js} +1 -1
- package/dist/sparkle-core/p-e1cba44b.entry.js +4 -0
- package/dist/sparkle-core/p-e225581a.js +7 -0
- package/dist/sparkle-core/{p-4e28ca37.entry.js → p-e3fdd0a8.entry.js} +1 -1
- package/dist/sparkle-core/p-e72d4450.js +4 -0
- package/dist/sparkle-core/p-eb70a23c.entry.js +1 -0
- package/dist/sparkle-core/{p-f9143c5d.entry.js → p-ecd39170.entry.js} +1 -1
- package/dist/sparkle-core/{p-151afa9e.entry.js → p-ed0e9d29.entry.js} +1 -1
- package/dist/sparkle-core/{p-92d42c10.entry.js → p-ee0d7f19.entry.js} +1 -1
- package/dist/sparkle-core/p-f4001fdf.js +4 -0
- package/dist/sparkle-core/p-f9b73032.entry.js +1 -0
- package/dist/sparkle-core/p-faa912d7.entry.js +1 -0
- package/dist/sparkle-core/{p-a250e2ae.entry.js → p-fbd7eeca.entry.js} +1 -1
- package/dist/sparkle-core/p-fc933591.entry.js +1 -0
- package/dist/sparkle-core/p-fef04ab5.js +4 -0
- package/dist/sparkle-core/sparkle-core.css +1 -1
- package/dist/sparkle-core/sparkle-core.esm.js +1 -1
- package/dist/sparkle-core/svg/balloon-outline.svg +1 -0
- package/dist/sparkle-core/svg/balloon-sharp.svg +1 -0
- package/dist/sparkle-core/svg/balloon.svg +1 -0
- package/dist/sparkle-core/svg/bowling-ball-outline.svg +1 -0
- package/dist/sparkle-core/svg/bowling-ball-sharp.svg +1 -0
- package/dist/sparkle-core/svg/bowling-ball.svg +1 -0
- package/dist/sparkle-core/svg/calendar-number-outline.svg +1 -0
- package/dist/sparkle-core/svg/calendar-number-sharp.svg +1 -0
- package/dist/sparkle-core/svg/calendar-number.svg +1 -0
- package/dist/sparkle-core/svg/diamond-outline.svg +1 -0
- package/dist/sparkle-core/svg/diamond-sharp.svg +1 -0
- package/dist/sparkle-core/svg/diamond.svg +1 -0
- package/dist/sparkle-core/svg/footsteps-outline.svg +1 -0
- package/dist/sparkle-core/svg/footsteps-sharp.svg +1 -0
- package/dist/sparkle-core/svg/footsteps.svg +1 -0
- package/dist/sparkle-core/svg/id-card-outline.svg +1 -0
- package/dist/sparkle-core/svg/id-card-sharp.svg +1 -0
- package/dist/sparkle-core/svg/id-card.svg +1 -0
- package/dist/sparkle-core/svg/logo-apple-ar.svg +1 -0
- package/dist/sparkle-core/svg/prism-outline.svg +1 -0
- package/dist/sparkle-core/svg/prism-sharp.svg +1 -0
- package/dist/sparkle-core/svg/prism.svg +1 -0
- package/dist/sparkle-core/svg/scale-outline.svg +1 -0
- package/dist/sparkle-core/svg/scale-sharp.svg +1 -0
- package/dist/sparkle-core/svg/scale.svg +1 -0
- package/dist/sparkle-core/svg/shield-half-outline.svg +1 -0
- package/dist/sparkle-core/svg/shield-half-sharp.svg +1 -0
- package/dist/sparkle-core/svg/shield-half.svg +1 -0
- package/dist/sparkle-core/svg/sparkles-outline.svg +1 -0
- package/dist/sparkle-core/svg/sparkles-sharp.svg +1 -0
- package/dist/sparkle-core/svg/sparkles.svg +1 -0
- package/dist/sparkle-core/swiper/swiper.bundle.js +2 -2
- package/dist/types/components/sparkle-animation-player/sparkle-animation-player.d.ts +1 -0
- package/dist/types/components/sparkle-character-intro/sparkle-character-intro.d.ts +7 -0
- package/dist/types/components/sparkle-course-root/sparkle-course-root.d.ts +2 -2
- package/dist/types/components/sparkle-youtube/sparkle-youtube.d.ts +1 -1
- package/dist/types/components.d.ts +17 -0
- package/dist/types/models/definitions.d.ts +8 -0
- package/dist/types/stencil-public-runtime.d.ts +200 -190
- package/dist/types/util.d.ts +1 -0
- package/package.json +26 -26
- package/dist/cjs/app-globals-98121d6d.js +0 -9
- package/dist/cjs/button-active-9456fb4d.js +0 -66
- package/dist/cjs/feed.service-518d18fd.js +0 -5802
- package/dist/cjs/focus-visible-1583bc8e.js +0 -45
- package/dist/cjs/framework-delegate-72815681.js +0 -37
- package/dist/cjs/header-mobile-collapse_60.cjs.entry.js +0 -86
- package/dist/cjs/index.es-baef3314.js +0 -13834
- package/dist/cjs/ion-action-sheet.cjs.entry.js +0 -261
- package/dist/cjs/ion-alert.cjs.entry.js +0 -455
- package/dist/cjs/ion-note.cjs.entry.js +0 -29
- package/dist/cjs/ion-popover.cjs.entry.js +0 -365
- package/dist/cjs/ion-select-popover.cjs.entry.js +0 -35
- package/dist/cjs/status-tap-466a7c6a.js +0 -25
- package/dist/esm/app-globals-6451faf3.js +0 -7
- package/dist/esm/auth.store-dd944bc2.js +0 -2552
- package/dist/esm/button-active-97535443.js +0 -64
- package/dist/esm/feed.service-0fda1e36.js +0 -5787
- package/dist/esm/focus-visible-abf04ce3.js +0 -43
- package/dist/esm/framework-delegate-2c397da3.js +0 -34
- package/dist/esm/header-mobile-collapse_60.entry.js +0 -19
- package/dist/esm/index.es-a5bf9a49.js +0 -13748
- package/dist/esm/ion-action-sheet.entry.js +0 -257
- package/dist/esm/ion-alert.entry.js +0 -451
- package/dist/esm/ion-note.entry.js +0 -25
- package/dist/esm/ion-popover.entry.js +0 -361
- package/dist/esm/ion-select-popover.entry.js +0 -31
- package/dist/esm/status-tap-9221cd79.js +0 -23
- package/dist/sparkle-core/p-019d9d02.entry.js +0 -1
- package/dist/sparkle-core/p-02d6d899.js +0 -1
- package/dist/sparkle-core/p-03fd27d0.entry.js +0 -1
- package/dist/sparkle-core/p-07018d29.js +0 -1
- package/dist/sparkle-core/p-083d57a6.entry.js +0 -1
- package/dist/sparkle-core/p-090f2624.js +0 -1
- package/dist/sparkle-core/p-0e1c7c8c.js +0 -1
- package/dist/sparkle-core/p-101feae9.js +0 -1
- package/dist/sparkle-core/p-13b0cdfc.entry.js +0 -1
- package/dist/sparkle-core/p-13c9bf3a.entry.js +0 -1
- package/dist/sparkle-core/p-169920f1.js +0 -1
- package/dist/sparkle-core/p-1e1f5e98.entry.js +0 -1
- package/dist/sparkle-core/p-1e866c41.entry.js +0 -1
- package/dist/sparkle-core/p-2474bf60.entry.js +0 -1
- package/dist/sparkle-core/p-25bbf9b4.entry.js +0 -1
- package/dist/sparkle-core/p-2a45b732.js +0 -1
- package/dist/sparkle-core/p-2abf4d37.entry.js +0 -1
- package/dist/sparkle-core/p-2c5edb9f.entry.js +0 -1
- package/dist/sparkle-core/p-2d966d35.js +0 -1
- package/dist/sparkle-core/p-30b641a4.entry.js +0 -1
- package/dist/sparkle-core/p-34ea6639.entry.js +0 -1
- package/dist/sparkle-core/p-359422b6.entry.js +0 -1
- package/dist/sparkle-core/p-37bfb548.entry.js +0 -1
- package/dist/sparkle-core/p-38307b31.js +0 -1
- package/dist/sparkle-core/p-3a29a75b.entry.js +0 -1
- package/dist/sparkle-core/p-3bb55510.entry.js +0 -1
- package/dist/sparkle-core/p-3be0a218.js +0 -1
- package/dist/sparkle-core/p-417a8dd6.js +0 -1
- package/dist/sparkle-core/p-447163be.entry.js +0 -1
- package/dist/sparkle-core/p-49265a8e.entry.js +0 -1
- package/dist/sparkle-core/p-4950f841.entry.js +0 -1
- package/dist/sparkle-core/p-4b7db0e6.js +0 -1
- package/dist/sparkle-core/p-4d8cb365.entry.js +0 -1
- package/dist/sparkle-core/p-5073899e.entry.js +0 -1
- package/dist/sparkle-core/p-5b366c20.entry.js +0 -1
- package/dist/sparkle-core/p-5dce20b9.entry.js +0 -1
- package/dist/sparkle-core/p-6006beec.entry.js +0 -1
- package/dist/sparkle-core/p-600d04fc.entry.js +0 -1
- package/dist/sparkle-core/p-60828739.entry.js +0 -1
- package/dist/sparkle-core/p-6112b180.entry.js +0 -1
- package/dist/sparkle-core/p-66eb6b7a.entry.js +0 -1
- package/dist/sparkle-core/p-67ddec3f.entry.js +0 -1
- package/dist/sparkle-core/p-68cb7d41.entry.js +0 -1
- package/dist/sparkle-core/p-69cd49de.js +0 -1
- package/dist/sparkle-core/p-6edbdde5.entry.js +0 -1
- package/dist/sparkle-core/p-6f0ecbe3.js +0 -1
- package/dist/sparkle-core/p-765b8593.js +0 -1
- package/dist/sparkle-core/p-770128c8.js +0 -1
- package/dist/sparkle-core/p-7840618d.js +0 -1
- package/dist/sparkle-core/p-7b37d523.entry.js +0 -1
- package/dist/sparkle-core/p-7d83d006.entry.js +0 -1
- package/dist/sparkle-core/p-7f3d5344.js +0 -1
- package/dist/sparkle-core/p-81651f26.entry.js +0 -1
- package/dist/sparkle-core/p-86148067.entry.js +0 -1
- package/dist/sparkle-core/p-8b5bc1d6.entry.js +0 -1
- package/dist/sparkle-core/p-8c3ee44c.entry.js +0 -1
- package/dist/sparkle-core/p-9007a06b.entry.js +0 -1
- package/dist/sparkle-core/p-90482861.entry.js +0 -1
- package/dist/sparkle-core/p-a061537e.entry.js +0 -1
- package/dist/sparkle-core/p-a38ea475.js +0 -1
- package/dist/sparkle-core/p-ad1ddf1f.js +0 -483
- package/dist/sparkle-core/p-aef0bba0.js +0 -1
- package/dist/sparkle-core/p-b080c1e3.entry.js +0 -1
- package/dist/sparkle-core/p-b11fe0c7.js +0 -1
- package/dist/sparkle-core/p-bac45a26.entry.js +0 -1
- package/dist/sparkle-core/p-bbe5977b.entry.js +0 -1
- package/dist/sparkle-core/p-bc568dcb.js +0 -1
- package/dist/sparkle-core/p-bfb55f1d.js +0 -3
- package/dist/sparkle-core/p-c163c16d.entry.js +0 -1
- package/dist/sparkle-core/p-c3166584.entry.js +0 -1
- package/dist/sparkle-core/p-c34269ae.entry.js +0 -1
- package/dist/sparkle-core/p-c466ee32.js +0 -1
- package/dist/sparkle-core/p-c6710592.entry.js +0 -1
- package/dist/sparkle-core/p-c7022391.entry.js +0 -1
- package/dist/sparkle-core/p-d4ad796c.js +0 -1
- package/dist/sparkle-core/p-d6152660.entry.js +0 -1
- package/dist/sparkle-core/p-d63406d8.js +0 -1
- package/dist/sparkle-core/p-dba672d5.entry.js +0 -1
- package/dist/sparkle-core/p-dd73d01a.entry.js +0 -1
- package/dist/sparkle-core/p-de33872d.entry.js +0 -1
- package/dist/sparkle-core/p-dee2128a.entry.js +0 -1
- package/dist/sparkle-core/p-df07e132.entry.js +0 -1
- package/dist/sparkle-core/p-e5d5aaa5.js +0 -1
- package/dist/sparkle-core/p-e72c6d87.entry.js +0 -1
- package/dist/sparkle-core/p-e8df6ea6.entry.js +0 -1
- package/dist/sparkle-core/p-ef2a2172.js +0 -1
- package/dist/sparkle-core/p-f1a4ab33.entry.js +0 -1
- package/dist/sparkle-core/p-f43ac631.entry.js +0 -1
- package/dist/sparkle-core/p-f8063d7b.js +0 -1
- package/dist/sparkle-core/p-fd62283e.entry.js +0 -1
- package/dist/sparkle-core/p-fef71e0e.entry.js +0 -1
@@ -2,19 +2,23 @@
|
|
2
2
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
4
4
|
|
5
|
-
const index$1 = require('./index-
|
6
|
-
const ionicGlobal = require('./ionic-global-
|
7
|
-
const
|
8
|
-
const
|
9
|
-
const
|
10
|
-
const
|
11
|
-
require('./
|
12
|
-
const index = require('./index-
|
13
|
-
require('./
|
14
|
-
const
|
15
|
-
const
|
16
|
-
|
5
|
+
const index$1 = require('./index-bae2a754.js');
|
6
|
+
const ionicGlobal = require('./ionic-global-878073d1.js');
|
7
|
+
const frameworkDelegate = require('./framework-delegate-2470a246.js');
|
8
|
+
const helpers = require('./helpers-7e28976c.js');
|
9
|
+
const keyboard = require('./keyboard-dfd76ac3.js');
|
10
|
+
const overlays = require('./overlays-0a748609.js');
|
11
|
+
const theme = require('./theme-4252ac15.js');
|
12
|
+
const index$2 = require('./index-b12edb26.js');
|
13
|
+
const animation = require('./animation-6132e37f.js');
|
14
|
+
const cubicBezier = require('./cubic-bezier-293f4663.js');
|
15
|
+
const index = require('./index-43642662.js');
|
16
|
+
require('./hardware-back-button-f7b5d99e.js');
|
17
|
+
require('./gesture-controller-07c31f70.js');
|
17
18
|
|
19
|
+
/*!
|
20
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
21
|
+
*/
|
18
22
|
// Defaults for the card swipe animation
|
19
23
|
const SwipeToCloseDefaults = {
|
20
24
|
MIN_PRESENTING_SCALE: 0.93,
|
@@ -28,11 +32,11 @@ const createSwipeToCloseGesture = (el, animation, onDismiss) => {
|
|
28
32
|
!target.closest) {
|
29
33
|
return true;
|
30
34
|
}
|
31
|
-
const
|
32
|
-
if (
|
35
|
+
const contentOrFooter = target.closest('ion-content, ion-footer');
|
36
|
+
if (contentOrFooter === null) {
|
33
37
|
return true;
|
34
38
|
}
|
35
|
-
// Target is in the content so
|
39
|
+
// Target is in the content or the footer so do not start the gesture.
|
36
40
|
// We could be more nuanced here and allow it for content that
|
37
41
|
// does not need to scroll.
|
38
42
|
return false;
|
@@ -89,22 +93,140 @@ const computeDuration = (remaining, velocity) => {
|
|
89
93
|
return helpers.clamp(400, remaining / Math.abs(velocity * 1.1), 500);
|
90
94
|
};
|
91
95
|
|
96
|
+
/*!
|
97
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
98
|
+
*/
|
92
99
|
/**
|
93
|
-
*
|
100
|
+
* Use y = mx + b to
|
101
|
+
* figure out the backdrop value
|
102
|
+
* at a particular x coordinate. This
|
103
|
+
* is useful when the backdrop does
|
104
|
+
* not begin to fade in until after
|
105
|
+
* the 0 breakpoint.
|
106
|
+
*/
|
107
|
+
const getBackdropValueForSheet = (x, backdropBreakpoint) => {
|
108
|
+
/**
|
109
|
+
* We will use these points:
|
110
|
+
* (backdropBreakpoint, 0)
|
111
|
+
* (maxBreakpoint, 1)
|
112
|
+
* We know that at the beginning breakpoint,
|
113
|
+
* the backdrop will be hidden. We also
|
114
|
+
* know that at the maxBreakpoint, the backdrop
|
115
|
+
* must be fully visible. maxBreakpoint should
|
116
|
+
* always be 1 even if the maximum value
|
117
|
+
* of the breakpoints array is not 1 since
|
118
|
+
* the animation runs from a progress of 0
|
119
|
+
* to a progress of 1.
|
120
|
+
* m = (y2 - y1) / (x2 - x1)
|
121
|
+
*
|
122
|
+
* This is simplified from:
|
123
|
+
* m = (1 - 0) / (maxBreakpoint - backdropBreakpoint)
|
124
|
+
*/
|
125
|
+
const slope = 1 / (1 - backdropBreakpoint);
|
126
|
+
/**
|
127
|
+
* From here, compute b which is
|
128
|
+
* the backdrop opacity if the offset
|
129
|
+
* is 0. If the backdrop does not
|
130
|
+
* begin to fade in until after the
|
131
|
+
* 0 breakpoint, this b value will be
|
132
|
+
* negative. This is fine as we never pass
|
133
|
+
* b directly into the animation keyframes.
|
134
|
+
* b = y - mx
|
135
|
+
* Use a known point: (backdropBreakpoint, 0)
|
136
|
+
* This is simplified from:
|
137
|
+
* b = 0 - (backdropBreakpoint * slope)
|
138
|
+
*/
|
139
|
+
const b = -(backdropBreakpoint * slope);
|
140
|
+
/**
|
141
|
+
* Finally, we can now determine the
|
142
|
+
* backdrop offset given an arbitrary
|
143
|
+
* gesture offset.
|
144
|
+
*/
|
145
|
+
return (x * slope) + b;
|
146
|
+
};
|
147
|
+
|
148
|
+
/*!
|
149
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
150
|
+
*/
|
151
|
+
const createSheetEnterAnimation = (opts) => {
|
152
|
+
const { currentBreakpoint, backdropBreakpoint } = opts;
|
153
|
+
/**
|
154
|
+
* If the backdropBreakpoint is undefined, then the backdrop
|
155
|
+
* should always fade in. If the backdropBreakpoint came before the
|
156
|
+
* current breakpoint, then the backdrop should be fading in.
|
157
|
+
*/
|
158
|
+
const shouldShowBackdrop = backdropBreakpoint === undefined || backdropBreakpoint < currentBreakpoint;
|
159
|
+
const initialBackdrop = shouldShowBackdrop ? `calc(var(--backdrop-opacity) * ${currentBreakpoint})` : '0';
|
160
|
+
const backdropAnimation = animation.createAnimation('backdropAnimation')
|
161
|
+
.fromTo('opacity', 0, initialBackdrop);
|
162
|
+
if (shouldShowBackdrop) {
|
163
|
+
backdropAnimation
|
164
|
+
.beforeStyles({
|
165
|
+
'pointer-events': 'none'
|
166
|
+
})
|
167
|
+
.afterClearStyles(['pointer-events']);
|
168
|
+
}
|
169
|
+
const wrapperAnimation = animation.createAnimation('wrapperAnimation')
|
170
|
+
.keyframes([
|
171
|
+
{ offset: 0, opacity: 1, transform: 'translateY(100%)' },
|
172
|
+
{ offset: 1, opacity: 1, transform: `translateY(${100 - (currentBreakpoint * 100)}%)` }
|
173
|
+
]);
|
174
|
+
return { wrapperAnimation, backdropAnimation };
|
175
|
+
};
|
176
|
+
const createSheetLeaveAnimation = (opts) => {
|
177
|
+
const { currentBreakpoint, backdropBreakpoint } = opts;
|
178
|
+
/**
|
179
|
+
* Backdrop does not always fade in from 0 to 1 if backdropBreakpoint
|
180
|
+
* is defined, so we need to account for that offset by figuring out
|
181
|
+
* what the current backdrop value should be.
|
182
|
+
*/
|
183
|
+
const backdropValue = `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(currentBreakpoint, backdropBreakpoint)})`;
|
184
|
+
const defaultBackdrop = [
|
185
|
+
{ offset: 0, opacity: backdropValue },
|
186
|
+
{ offset: 1, opacity: 0 }
|
187
|
+
];
|
188
|
+
const customBackdrop = [
|
189
|
+
{ offset: 0, opacity: backdropValue },
|
190
|
+
{ offset: backdropBreakpoint, opacity: 0 },
|
191
|
+
{ offset: 1, opacity: 0 }
|
192
|
+
];
|
193
|
+
const backdropAnimation = animation.createAnimation('backdropAnimation')
|
194
|
+
.keyframes(backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop);
|
195
|
+
const wrapperAnimation = animation.createAnimation('wrapperAnimation')
|
196
|
+
.keyframes([
|
197
|
+
{ offset: 0, opacity: 1, transform: `translateY(${100 - (currentBreakpoint * 100)}%)` },
|
198
|
+
{ offset: 1, opacity: 1, transform: `translateY(100%)` }
|
199
|
+
]);
|
200
|
+
return { wrapperAnimation, backdropAnimation };
|
201
|
+
};
|
202
|
+
|
203
|
+
/*!
|
204
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
94
205
|
*/
|
95
|
-
const
|
206
|
+
const createEnterAnimation$1 = () => {
|
96
207
|
const backdropAnimation = animation.createAnimation()
|
97
|
-
.addElement(baseEl.querySelector('ion-backdrop'))
|
98
208
|
.fromTo('opacity', 0.01, 'var(--backdrop-opacity)')
|
99
209
|
.beforeStyles({
|
100
210
|
'pointer-events': 'none'
|
101
211
|
})
|
102
212
|
.afterClearStyles(['pointer-events']);
|
103
213
|
const wrapperAnimation = animation.createAnimation()
|
104
|
-
.addElement(baseEl.querySelectorAll('.modal-wrapper, .modal-shadow'))
|
105
|
-
.beforeStyles({ 'opacity': 1 })
|
106
214
|
.fromTo('transform', 'translateY(100vh)', 'translateY(0vh)');
|
107
|
-
|
215
|
+
return { backdropAnimation, wrapperAnimation };
|
216
|
+
};
|
217
|
+
/**
|
218
|
+
* iOS Modal Enter Animation for the Card presentation style
|
219
|
+
*/
|
220
|
+
const iosEnterAnimation = (baseEl, opts) => {
|
221
|
+
const { presentingEl, currentBreakpoint } = opts;
|
222
|
+
const root = helpers.getElementRoot(baseEl);
|
223
|
+
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
|
224
|
+
backdropAnimation
|
225
|
+
.addElement(root.querySelector('ion-backdrop'));
|
226
|
+
wrapperAnimation
|
227
|
+
.addElement(root.querySelectorAll('.modal-wrapper, .modal-shadow'))
|
228
|
+
.beforeStyles({ 'opacity': 1 });
|
229
|
+
const baseAnimation = animation.createAnimation('entering-base')
|
108
230
|
.addElement(baseEl)
|
109
231
|
.easing('cubic-bezier(0.32,0.72,0,1)')
|
110
232
|
.duration(500)
|
@@ -112,6 +234,7 @@ const iosEnterAnimation = (baseEl, presentingEl) => {
|
|
112
234
|
if (presentingEl) {
|
113
235
|
const isMobile = window.innerWidth < 768;
|
114
236
|
const hasCardModal = (presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined);
|
237
|
+
const presentingElRoot = helpers.getElementRoot(presentingEl);
|
115
238
|
const presentingAnimation = animation.createAnimation()
|
116
239
|
.beforeStyles({
|
117
240
|
'transform': 'translateY(0)',
|
@@ -123,7 +246,7 @@ const iosEnterAnimation = (baseEl, presentingEl) => {
|
|
123
246
|
/**
|
124
247
|
* Fallback for browsers that does not support `max()` (ex: Firefox)
|
125
248
|
* No need to worry about statusbar padding since engines like Gecko
|
126
|
-
* are not used as the engine for
|
249
|
+
* are not used as the engine for standalone Cordova/Capacitor apps
|
127
250
|
*/
|
128
251
|
const transformOffset = (!CSS.supports('width', 'max(0px, 1px)')) ? '30px' : 'max(30px, var(--ion-safe-area-top))';
|
129
252
|
const modalTransform = hasCardModal ? '-10px' : transformOffset;
|
@@ -153,7 +276,7 @@ const iosEnterAnimation = (baseEl, presentingEl) => {
|
|
153
276
|
.afterStyles({
|
154
277
|
'transform': finalTransform
|
155
278
|
})
|
156
|
-
.addElement(
|
279
|
+
.addElement(presentingElRoot.querySelector('.modal-wrapper'))
|
157
280
|
.keyframes([
|
158
281
|
{ offset: 0, filter: 'contrast(1)', transform: 'translateY(0) scale(1)' },
|
159
282
|
{ offset: 1, filter: 'contrast(0.85)', transform: finalTransform }
|
@@ -162,7 +285,7 @@ const iosEnterAnimation = (baseEl, presentingEl) => {
|
|
162
285
|
.afterStyles({
|
163
286
|
'transform': finalTransform
|
164
287
|
})
|
165
|
-
.addElement(
|
288
|
+
.addElement(presentingElRoot.querySelector('.modal-shadow'))
|
166
289
|
.keyframes([
|
167
290
|
{ offset: 0, opacity: '1', transform: 'translateY(0) scale(1)' },
|
168
291
|
{ offset: 1, opacity: '0', transform: finalTransform }
|
@@ -177,18 +300,28 @@ const iosEnterAnimation = (baseEl, presentingEl) => {
|
|
177
300
|
return baseAnimation;
|
178
301
|
};
|
179
302
|
|
180
|
-
|
181
|
-
*
|
303
|
+
/*!
|
304
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
182
305
|
*/
|
183
|
-
const
|
306
|
+
const createLeaveAnimation$1 = () => {
|
184
307
|
const backdropAnimation = animation.createAnimation()
|
185
|
-
.
|
186
|
-
.fromTo('opacity', 'var(--backdrop-opacity)', 0.0);
|
308
|
+
.fromTo('opacity', 'var(--backdrop-opacity)', 0);
|
187
309
|
const wrapperAnimation = animation.createAnimation()
|
188
|
-
.addElement(baseEl.querySelectorAll('.modal-wrapper, .modal-shadow'))
|
189
|
-
.beforeStyles({ 'opacity': 1 })
|
190
310
|
.fromTo('transform', 'translateY(0vh)', 'translateY(100vh)');
|
191
|
-
|
311
|
+
return { backdropAnimation, wrapperAnimation };
|
312
|
+
};
|
313
|
+
/**
|
314
|
+
* iOS Modal Leave Animation
|
315
|
+
*/
|
316
|
+
const iosLeaveAnimation = (baseEl, opts, duration = 500) => {
|
317
|
+
const { presentingEl, currentBreakpoint } = opts;
|
318
|
+
const root = helpers.getElementRoot(baseEl);
|
319
|
+
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
|
320
|
+
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
321
|
+
wrapperAnimation
|
322
|
+
.addElement(root.querySelectorAll('.modal-wrapper, .modal-shadow'))
|
323
|
+
.beforeStyles({ 'opacity': 1 });
|
324
|
+
const baseAnimation = animation.createAnimation('leaving-base')
|
192
325
|
.addElement(baseEl)
|
193
326
|
.easing('cubic-bezier(0.32,0.72,0,1)')
|
194
327
|
.duration(duration)
|
@@ -196,6 +329,7 @@ const iosLeaveAnimation = (baseEl, presentingEl, duration = 500) => {
|
|
196
329
|
if (presentingEl) {
|
197
330
|
const isMobile = window.innerWidth < 768;
|
198
331
|
const hasCardModal = (presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined);
|
332
|
+
const presentingElRoot = helpers.getElementRoot(presentingEl);
|
199
333
|
const presentingAnimation = animation.createAnimation()
|
200
334
|
.beforeClearStyles(['transform'])
|
201
335
|
.afterClearStyles(['transform'])
|
@@ -233,7 +367,7 @@ const iosLeaveAnimation = (baseEl, presentingEl, duration = 500) => {
|
|
233
367
|
const toPresentingScale = (hasCardModal) ? SwipeToCloseDefaults.MIN_PRESENTING_SCALE : 1;
|
234
368
|
const finalTransform = `translateY(-10px) scale(${toPresentingScale})`;
|
235
369
|
presentingAnimation
|
236
|
-
.addElement(
|
370
|
+
.addElement(presentingElRoot.querySelector('.modal-wrapper'))
|
237
371
|
.afterStyles({
|
238
372
|
'transform': 'translate3d(0, 0, 0)'
|
239
373
|
})
|
@@ -242,7 +376,7 @@ const iosLeaveAnimation = (baseEl, presentingEl, duration = 500) => {
|
|
242
376
|
{ offset: 1, filter: 'contrast(1)', transform: 'translateY(0) scale(1)' }
|
243
377
|
]);
|
244
378
|
const shadowAnimation = animation.createAnimation()
|
245
|
-
.addElement(
|
379
|
+
.addElement(presentingElRoot.querySelector('.modal-shadow'))
|
246
380
|
.afterStyles({
|
247
381
|
'transform': 'translateY(0) scale(1)'
|
248
382
|
})
|
@@ -260,60 +394,293 @@ const iosLeaveAnimation = (baseEl, presentingEl, duration = 500) => {
|
|
260
394
|
return baseAnimation;
|
261
395
|
};
|
262
396
|
|
263
|
-
|
264
|
-
*
|
397
|
+
/*!
|
398
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
265
399
|
*/
|
266
|
-
const
|
267
|
-
const
|
268
|
-
const backdropAnimation = animation.createAnimation();
|
269
|
-
const wrapperAnimation = animation.createAnimation();
|
270
|
-
backdropAnimation
|
271
|
-
.addElement(baseEl.querySelector('ion-backdrop'))
|
400
|
+
const createEnterAnimation = () => {
|
401
|
+
const backdropAnimation = animation.createAnimation()
|
272
402
|
.fromTo('opacity', 0.01, 'var(--backdrop-opacity)')
|
273
403
|
.beforeStyles({
|
274
404
|
'pointer-events': 'none'
|
275
405
|
})
|
276
406
|
.afterClearStyles(['pointer-events']);
|
277
|
-
wrapperAnimation
|
278
|
-
.addElement(baseEl.querySelector('.modal-wrapper'))
|
407
|
+
const wrapperAnimation = animation.createAnimation()
|
279
408
|
.keyframes([
|
280
409
|
{ offset: 0, opacity: 0.01, transform: 'translateY(40px)' },
|
281
|
-
{ offset: 1, opacity: 1, transform:
|
410
|
+
{ offset: 1, opacity: 1, transform: `translateY(0px)` }
|
282
411
|
]);
|
283
|
-
return
|
412
|
+
return { backdropAnimation, wrapperAnimation };
|
413
|
+
};
|
414
|
+
/**
|
415
|
+
* Md Modal Enter Animation
|
416
|
+
*/
|
417
|
+
const mdEnterAnimation = (baseEl, opts) => {
|
418
|
+
const { currentBreakpoint } = opts;
|
419
|
+
const root = helpers.getElementRoot(baseEl);
|
420
|
+
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
|
421
|
+
backdropAnimation
|
422
|
+
.addElement(root.querySelector('ion-backdrop'));
|
423
|
+
wrapperAnimation
|
424
|
+
.addElement(root.querySelector('.modal-wrapper'));
|
425
|
+
return animation.createAnimation()
|
284
426
|
.addElement(baseEl)
|
285
427
|
.easing('cubic-bezier(0.36,0.66,0.04,1)')
|
286
428
|
.duration(280)
|
287
429
|
.addAnimation([backdropAnimation, wrapperAnimation]);
|
288
430
|
};
|
289
431
|
|
290
|
-
|
291
|
-
*
|
432
|
+
/*!
|
433
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
292
434
|
*/
|
293
|
-
const
|
294
|
-
const
|
295
|
-
|
296
|
-
const wrapperAnimation = animation.createAnimation()
|
297
|
-
const wrapperEl = baseEl.querySelector('.modal-wrapper');
|
298
|
-
backdropAnimation
|
299
|
-
.addElement(baseEl.querySelector('ion-backdrop'))
|
300
|
-
.fromTo('opacity', 'var(--backdrop-opacity)', 0.0);
|
301
|
-
wrapperAnimation
|
302
|
-
.addElement(wrapperEl)
|
435
|
+
const createLeaveAnimation = () => {
|
436
|
+
const backdropAnimation = animation.createAnimation()
|
437
|
+
.fromTo('opacity', 'var(--backdrop-opacity)', 0);
|
438
|
+
const wrapperAnimation = animation.createAnimation()
|
303
439
|
.keyframes([
|
304
|
-
{ offset: 0, opacity: 0.99, transform:
|
440
|
+
{ offset: 0, opacity: 0.99, transform: `translateY(0px)` },
|
305
441
|
{ offset: 1, opacity: 0, transform: 'translateY(40px)' }
|
306
442
|
]);
|
307
|
-
return
|
308
|
-
|
443
|
+
return { backdropAnimation, wrapperAnimation };
|
444
|
+
};
|
445
|
+
/**
|
446
|
+
* Md Modal Leave Animation
|
447
|
+
*/
|
448
|
+
const mdLeaveAnimation = (baseEl, opts) => {
|
449
|
+
const { currentBreakpoint } = opts;
|
450
|
+
const root = helpers.getElementRoot(baseEl);
|
451
|
+
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation();
|
452
|
+
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
453
|
+
wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
|
454
|
+
return animation.createAnimation()
|
309
455
|
.easing('cubic-bezier(0.47,0,0.745,0.715)')
|
310
456
|
.duration(200)
|
311
457
|
.addAnimation([backdropAnimation, wrapperAnimation]);
|
312
458
|
};
|
313
459
|
|
314
|
-
|
460
|
+
/*!
|
461
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
462
|
+
*/
|
463
|
+
const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], onDismiss, onBreakpointChange) => {
|
464
|
+
// Defaults for the sheet swipe animation
|
465
|
+
const defaultBackdrop = [
|
466
|
+
{ offset: 0, opacity: 'var(--backdrop-opacity)' },
|
467
|
+
{ offset: 1, opacity: 0.01 }
|
468
|
+
];
|
469
|
+
const customBackdrop = [
|
470
|
+
{ offset: 0, opacity: 'var(--backdrop-opacity)' },
|
471
|
+
{ offset: 1 - backdropBreakpoint, opacity: 0 },
|
472
|
+
{ offset: 1, opacity: 0 }
|
473
|
+
];
|
474
|
+
const SheetDefaults = {
|
475
|
+
WRAPPER_KEYFRAMES: [
|
476
|
+
{ offset: 0, transform: 'translateY(0%)' },
|
477
|
+
{ offset: 1, transform: 'translateY(100%)' }
|
478
|
+
],
|
479
|
+
BACKDROP_KEYFRAMES: (backdropBreakpoint !== 0) ? customBackdrop : defaultBackdrop
|
480
|
+
};
|
481
|
+
const contentEl = baseEl.querySelector('ion-content');
|
482
|
+
const height = wrapperEl.clientHeight;
|
483
|
+
let currentBreakpoint = initialBreakpoint;
|
484
|
+
let offset = 0;
|
485
|
+
const wrapperAnimation = animation.childAnimations.find(ani => ani.id === 'wrapperAnimation');
|
486
|
+
const backdropAnimation = animation.childAnimations.find(ani => ani.id === 'backdropAnimation');
|
487
|
+
const maxBreakpoint = breakpoints[breakpoints.length - 1];
|
488
|
+
const enableBackdrop = () => {
|
489
|
+
baseEl.style.setProperty('pointer-events', 'auto');
|
490
|
+
backdropEl.style.setProperty('pointer-events', 'auto');
|
491
|
+
/**
|
492
|
+
* When the backdrop is enabled, elements such
|
493
|
+
* as inputs should not be focusable outside
|
494
|
+
* the sheet.
|
495
|
+
*/
|
496
|
+
baseEl.classList.remove('ion-disable-focus-trap');
|
497
|
+
};
|
498
|
+
const disableBackdrop = () => {
|
499
|
+
baseEl.style.setProperty('pointer-events', 'none');
|
500
|
+
backdropEl.style.setProperty('pointer-events', 'none');
|
501
|
+
/**
|
502
|
+
* When the backdrop is enabled, elements such
|
503
|
+
* as inputs should not be focusable outside
|
504
|
+
* the sheet.
|
505
|
+
* Adding this class disables focus trapping
|
506
|
+
* for the sheet temporarily.
|
507
|
+
*/
|
508
|
+
baseEl.classList.add('ion-disable-focus-trap');
|
509
|
+
};
|
510
|
+
/**
|
511
|
+
* After the entering animation completes,
|
512
|
+
* we need to set the animation to go from
|
513
|
+
* offset 0 to offset 1 so that users can
|
514
|
+
* swipe in any direction. We then set the
|
515
|
+
* animation offset to the current breakpoint
|
516
|
+
* so there is no flickering.
|
517
|
+
*/
|
518
|
+
if (wrapperAnimation && backdropAnimation) {
|
519
|
+
wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
|
520
|
+
backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
|
521
|
+
animation.progressStart(true, 1 - currentBreakpoint);
|
522
|
+
/**
|
523
|
+
* If backdrop is not enabled, then content
|
524
|
+
* behind modal should be clickable. To do this, we need
|
525
|
+
* to remove pointer-events from ion-modal as a whole.
|
526
|
+
* ion-backdrop and .modal-wrapper always have pointer-events: auto
|
527
|
+
* applied, so the modal content can still be interacted with.
|
528
|
+
*/
|
529
|
+
const shouldEnableBackdrop = currentBreakpoint > backdropBreakpoint;
|
530
|
+
if (shouldEnableBackdrop) {
|
531
|
+
enableBackdrop();
|
532
|
+
}
|
533
|
+
else {
|
534
|
+
disableBackdrop();
|
535
|
+
}
|
536
|
+
}
|
537
|
+
if (contentEl && currentBreakpoint !== maxBreakpoint) {
|
538
|
+
contentEl.scrollY = false;
|
539
|
+
}
|
540
|
+
const canStart = (detail) => {
|
541
|
+
/**
|
542
|
+
* If the sheet is fully expanded and
|
543
|
+
* the user is swiping on the content,
|
544
|
+
* the gesture should not start to
|
545
|
+
* allow for scrolling on the content.
|
546
|
+
*/
|
547
|
+
const content = detail.event.target.closest('ion-content');
|
548
|
+
if (currentBreakpoint === 1 && content) {
|
549
|
+
return false;
|
550
|
+
}
|
551
|
+
return true;
|
552
|
+
};
|
553
|
+
const onStart = () => {
|
554
|
+
/**
|
555
|
+
* If swiping on the content
|
556
|
+
* we should disable scrolling otherwise
|
557
|
+
* the sheet will expand and the content will scroll.
|
558
|
+
*/
|
559
|
+
if (contentEl) {
|
560
|
+
contentEl.scrollY = false;
|
561
|
+
}
|
562
|
+
helpers.raf(() => {
|
563
|
+
/**
|
564
|
+
* Dismisses the open keyboard when the sheet drag gesture is started.
|
565
|
+
* Sets the focus onto the modal element.
|
566
|
+
*/
|
567
|
+
baseEl.focus();
|
568
|
+
});
|
569
|
+
animation.progressStart(true, 1 - currentBreakpoint);
|
570
|
+
};
|
571
|
+
const onMove = (detail) => {
|
572
|
+
/**
|
573
|
+
* Given the change in gesture position on the Y axis,
|
574
|
+
* compute where the offset of the animation should be
|
575
|
+
* relative to where the user dragged.
|
576
|
+
*/
|
577
|
+
const initialStep = 1 - currentBreakpoint;
|
578
|
+
offset = helpers.clamp(0.0001, initialStep + (detail.deltaY / height), 0.9999);
|
579
|
+
animation.progressStep(offset);
|
580
|
+
};
|
581
|
+
const onEnd = (detail) => {
|
582
|
+
/**
|
583
|
+
* When the gesture releases, we need to determine
|
584
|
+
* the closest breakpoint to snap to.
|
585
|
+
*/
|
586
|
+
const velocity = detail.velocityY;
|
587
|
+
const threshold = (detail.deltaY + velocity * 100) / height;
|
588
|
+
const diff = currentBreakpoint - threshold;
|
589
|
+
const closest = breakpoints.reduce((a, b) => {
|
590
|
+
return Math.abs(b - diff) < Math.abs(a - diff) ? b : a;
|
591
|
+
});
|
592
|
+
const shouldRemainOpen = closest !== 0;
|
593
|
+
currentBreakpoint = 0;
|
594
|
+
/**
|
595
|
+
* Update the animation so that it plays from
|
596
|
+
* the last offset to the closest snap point.
|
597
|
+
*/
|
598
|
+
if (wrapperAnimation && backdropAnimation) {
|
599
|
+
wrapperAnimation.keyframes([
|
600
|
+
{ offset: 0, transform: `translateY(${offset * 100}%)` },
|
601
|
+
{ offset: 1, transform: `translateY(${(1 - closest) * 100}%)` }
|
602
|
+
]);
|
603
|
+
backdropAnimation.keyframes([
|
604
|
+
{ offset: 0, opacity: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(1 - offset, backdropBreakpoint)})` },
|
605
|
+
{ offset: 1, opacity: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(closest, backdropBreakpoint)})` }
|
606
|
+
]);
|
607
|
+
animation.progressStep(0);
|
608
|
+
}
|
609
|
+
/**
|
610
|
+
* Gesture should remain disabled until the
|
611
|
+
* snapping animation completes.
|
612
|
+
*/
|
613
|
+
gesture.enable(false);
|
614
|
+
animation
|
615
|
+
.onFinish(() => {
|
616
|
+
if (shouldRemainOpen) {
|
617
|
+
/**
|
618
|
+
* Once the snapping animation completes,
|
619
|
+
* we need to reset the animation to go
|
620
|
+
* from 0 to 1 so users can swipe in any direction.
|
621
|
+
* We then set the animation offset to the current
|
622
|
+
* breakpoint so that it starts at the snapped position.
|
623
|
+
*/
|
624
|
+
if (wrapperAnimation && backdropAnimation) {
|
625
|
+
helpers.raf(() => {
|
626
|
+
wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
|
627
|
+
backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
|
628
|
+
animation.progressStart(true, 1 - closest);
|
629
|
+
currentBreakpoint = closest;
|
630
|
+
onBreakpointChange(currentBreakpoint);
|
631
|
+
/**
|
632
|
+
* If the sheet is fully expanded, we can safely
|
633
|
+
* enable scrolling again.
|
634
|
+
*/
|
635
|
+
if (contentEl && currentBreakpoint === breakpoints[breakpoints.length - 1]) {
|
636
|
+
contentEl.scrollY = true;
|
637
|
+
}
|
638
|
+
/**
|
639
|
+
* Backdrop should become enabled
|
640
|
+
* after the backdropBreakpoint value
|
641
|
+
*/
|
642
|
+
const shouldEnableBackdrop = currentBreakpoint > backdropBreakpoint;
|
643
|
+
if (shouldEnableBackdrop) {
|
644
|
+
enableBackdrop();
|
645
|
+
}
|
646
|
+
else {
|
647
|
+
disableBackdrop();
|
648
|
+
}
|
649
|
+
gesture.enable(true);
|
650
|
+
});
|
651
|
+
}
|
652
|
+
else {
|
653
|
+
gesture.enable(true);
|
654
|
+
}
|
655
|
+
}
|
656
|
+
/**
|
657
|
+
* This must be a one time callback
|
658
|
+
* otherwise a new callback will
|
659
|
+
* be added every time onEnd runs.
|
660
|
+
*/
|
661
|
+
}, { oneTimeCallback: true })
|
662
|
+
.progressEnd(1, 0, 500);
|
663
|
+
if (!shouldRemainOpen) {
|
664
|
+
onDismiss();
|
665
|
+
}
|
666
|
+
};
|
667
|
+
const gesture = index.createGesture({
|
668
|
+
el: wrapperEl,
|
669
|
+
gestureName: 'modalSheet',
|
670
|
+
gesturePriority: 40,
|
671
|
+
direction: 'y',
|
672
|
+
threshold: 10,
|
673
|
+
canStart,
|
674
|
+
onStart,
|
675
|
+
onMove,
|
676
|
+
onEnd
|
677
|
+
});
|
678
|
+
return gesture;
|
679
|
+
};
|
680
|
+
|
681
|
+
const modalIosCss = ":host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:flex;position:absolute;align-items:center;justify-content:center;outline:none;contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;margin-left:auto;margin-right:auto;position:absolute;width:36px;height:5px;transform:translateZ(0);background:var(--ion-color-step-350, #c0c0be);z-index:11}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){.modal-handle{margin-left:unset;margin-right:unset;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto}}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.4)}:host(.modal-card),:host(.modal-sheet){--border-radius:10px}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:10px}}.modal-wrapper{transform:translate3d(0, 100%, 0)}@media screen and (max-width: 767px){@supports (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - max(30px, var(--ion-safe-area-top)) - 10px)}}@supports not (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - 40px)}}:host(.modal-card) .modal-wrapper{border-top-left-radius:var(--border-radius);border-top-right-radius:var(--border-radius);border-bottom-right-radius:0;border-bottom-left-radius:0}:host-context([dir=rtl]):host(.modal-card) .modal-wrapper,:host-context([dir=rtl]).modal-card .modal-wrapper{border-top-left-radius:var(--border-radius);border-top-right-radius:var(--border-radius);border-bottom-right-radius:0;border-bottom-left-radius:0}:host(.modal-card){--backdrop-opacity:0;--width:100%;align-items:flex-end}:host(.modal-card) .modal-shadow{display:none}:host(.modal-card) ion-backdrop{pointer-events:none}}@media screen and (min-width: 768px){:host(.modal-card){--width:calc(100% - 120px);--height:calc(100% - (120px + var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));--max-width:720px;--max-height:1000px;--backdrop-opacity:0;--box-shadow:0px 0px 30px 10px rgba(0, 0, 0, 0.1);transition:all 0.5s ease-in-out}:host(.modal-card) .modal-wrapper{box-shadow:none}:host(.modal-card) .modal-shadow{box-shadow:var(--box-shadow)}}:host(.modal-sheet) .modal-wrapper{border-top-left-radius:var(--border-radius);border-top-right-radius:var(--border-radius);border-bottom-right-radius:0;border-bottom-left-radius:0}:host-context([dir=rtl]):host(.modal-sheet) .modal-wrapper,:host-context([dir=rtl]).modal-sheet .modal-wrapper{border-top-left-radius:var(--border-radius);border-top-right-radius:var(--border-radius);border-bottom-right-radius:0;border-bottom-left-radius:0}";
|
315
682
|
|
316
|
-
const modalMdCss = "
|
683
|
+
const modalMdCss = ":host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:flex;position:absolute;align-items:center;justify-content:center;outline:none;contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;margin-left:auto;margin-right:auto;position:absolute;width:36px;height:5px;transform:translateZ(0);background:var(--ion-color-step-350, #c0c0be);z-index:11}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){.modal-handle{margin-left:unset;margin-right:unset;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto}}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:2px;--box-shadow:0 28px 48px rgba(0, 0, 0, 0.4)}}.modal-wrapper{transform:translate3d(0, 40px, 0);opacity:0.01}";
|
317
684
|
|
318
685
|
const Modal = class {
|
319
686
|
constructor(hostRef) {
|
@@ -322,13 +689,33 @@ const Modal = class {
|
|
322
689
|
this.willPresent = index$1.createEvent(this, "ionModalWillPresent", 7);
|
323
690
|
this.willDismiss = index$1.createEvent(this, "ionModalWillDismiss", 7);
|
324
691
|
this.didDismiss = index$1.createEvent(this, "ionModalDidDismiss", 7);
|
692
|
+
this.didPresentShorthand = index$1.createEvent(this, "didPresent", 7);
|
693
|
+
this.willPresentShorthand = index$1.createEvent(this, "willPresent", 7);
|
694
|
+
this.willDismissShorthand = index$1.createEvent(this, "willDismiss", 7);
|
695
|
+
this.didDismissShorthand = index$1.createEvent(this, "didDismiss", 7);
|
696
|
+
this.modalIndex = modalIds++;
|
697
|
+
this.coreDelegate = frameworkDelegate.CoreDelegate();
|
698
|
+
this.isSheetModal = false;
|
699
|
+
this.inline = false;
|
325
700
|
// Whether or not modal is being dismissed via gesture
|
326
701
|
this.gestureAnimationDismissing = false;
|
327
702
|
this.presented = false;
|
703
|
+
/** @internal */
|
704
|
+
this.hasController = false;
|
328
705
|
/**
|
329
706
|
* If `true`, the keyboard will be automatically dismissed when the overlay is presented.
|
330
707
|
*/
|
331
708
|
this.keyboardClose = true;
|
709
|
+
/**
|
710
|
+
* A decimal value between 0 and 1 that indicates the
|
711
|
+
* point after which the backdrop will begin to fade in
|
712
|
+
* when using a sheet modal. Prior to this point, the
|
713
|
+
* backdrop will be hidden and the content underneath
|
714
|
+
* the sheet can be interacted with. This value is exclusive
|
715
|
+
* meaning the backdrop will become active after the value
|
716
|
+
* specified.
|
717
|
+
*/
|
718
|
+
this.backdropBreakpoint = 0;
|
332
719
|
/**
|
333
720
|
* If `true`, the modal will be dismissed when the backdrop is clicked.
|
334
721
|
*/
|
@@ -345,6 +732,34 @@ const Modal = class {
|
|
345
732
|
* If `true`, the modal can be swiped to dismiss. Only applies in iOS mode.
|
346
733
|
*/
|
347
734
|
this.swipeToClose = false;
|
735
|
+
/**
|
736
|
+
* If `true`, the modal will open. If `false`, the modal will close.
|
737
|
+
* Use this if you need finer grained control over presentation, otherwise
|
738
|
+
* just use the modalController or the `trigger` property.
|
739
|
+
* Note: `isOpen` will not automatically be set back to `false` when
|
740
|
+
* the modal dismisses. You will need to do that in your code.
|
741
|
+
*/
|
742
|
+
this.isOpen = false;
|
743
|
+
this.configureTriggerInteraction = () => {
|
744
|
+
const { trigger, el, destroyTriggerInteraction } = this;
|
745
|
+
if (destroyTriggerInteraction) {
|
746
|
+
destroyTriggerInteraction();
|
747
|
+
}
|
748
|
+
const triggerEl = (trigger !== undefined) ? document.getElementById(trigger) : null;
|
749
|
+
if (!triggerEl) {
|
750
|
+
return;
|
751
|
+
}
|
752
|
+
const configureTriggerInteraction = (trigEl, modalEl) => {
|
753
|
+
const openModal = () => {
|
754
|
+
modalEl.present();
|
755
|
+
};
|
756
|
+
trigEl.addEventListener('click', openModal);
|
757
|
+
return () => {
|
758
|
+
trigEl.removeEventListener('click', openModal);
|
759
|
+
};
|
760
|
+
};
|
761
|
+
this.destroyTriggerInteraction = configureTriggerInteraction(triggerEl, el);
|
762
|
+
};
|
348
763
|
this.onBackdropTap = () => {
|
349
764
|
this.dismiss(undefined, overlays.BACKDROP);
|
350
765
|
};
|
@@ -366,6 +781,17 @@ const Modal = class {
|
|
366
781
|
}
|
367
782
|
};
|
368
783
|
}
|
784
|
+
onIsOpenChange(newValue, oldValue) {
|
785
|
+
if (newValue === true && oldValue === false) {
|
786
|
+
this.present();
|
787
|
+
}
|
788
|
+
else if (newValue === false && oldValue === true) {
|
789
|
+
this.dismiss();
|
790
|
+
}
|
791
|
+
}
|
792
|
+
onTriggerChange() {
|
793
|
+
this.configureTriggerInteraction();
|
794
|
+
}
|
369
795
|
swipeToCloseChanged(enable) {
|
370
796
|
if (this.gesture) {
|
371
797
|
this.gesture.enable(enable);
|
@@ -377,6 +803,58 @@ const Modal = class {
|
|
377
803
|
connectedCallback() {
|
378
804
|
overlays.prepareOverlay(this.el);
|
379
805
|
}
|
806
|
+
componentWillLoad() {
|
807
|
+
const { breakpoints, initialBreakpoint } = this;
|
808
|
+
/**
|
809
|
+
* If user has custom ID set then we should
|
810
|
+
* not assign the default incrementing ID.
|
811
|
+
*/
|
812
|
+
this.modalId = (this.el.hasAttribute('id')) ? this.el.getAttribute('id') : `ion-modal-${this.modalIndex}`;
|
813
|
+
this.isSheetModal = breakpoints !== undefined && initialBreakpoint !== undefined;
|
814
|
+
if (breakpoints !== undefined && initialBreakpoint !== undefined && !breakpoints.includes(initialBreakpoint)) {
|
815
|
+
console.warn('[Ionic Warning]: Your breakpoints array must include the initialBreakpoint value.');
|
816
|
+
}
|
817
|
+
}
|
818
|
+
componentDidLoad() {
|
819
|
+
/**
|
820
|
+
* If modal was rendered with isOpen="true"
|
821
|
+
* then we should open modal immediately.
|
822
|
+
*/
|
823
|
+
if (this.isOpen === true) {
|
824
|
+
helpers.raf(() => this.present());
|
825
|
+
}
|
826
|
+
this.configureTriggerInteraction();
|
827
|
+
}
|
828
|
+
/**
|
829
|
+
* Determines whether or not an overlay
|
830
|
+
* is being used inline or via a controller/JS
|
831
|
+
* and returns the correct delegate.
|
832
|
+
* By default, subsequent calls to getDelegate
|
833
|
+
* will use a cached version of the delegate.
|
834
|
+
* This is useful for calling dismiss after
|
835
|
+
* present so that the correct delegate is given.
|
836
|
+
*/
|
837
|
+
getDelegate(force = false) {
|
838
|
+
if (this.workingDelegate && !force) {
|
839
|
+
return {
|
840
|
+
delegate: this.workingDelegate,
|
841
|
+
inline: this.inline
|
842
|
+
};
|
843
|
+
}
|
844
|
+
/**
|
845
|
+
* If using overlay inline
|
846
|
+
* we potentially need to use the coreDelegate
|
847
|
+
* so that this works in vanilla JS apps.
|
848
|
+
* If a developer has presented this component
|
849
|
+
* via a controller, then we can assume
|
850
|
+
* the component is already in the
|
851
|
+
* correct place.
|
852
|
+
*/
|
853
|
+
const parentEl = this.el.parentNode;
|
854
|
+
const inline = this.inline = parentEl !== null && !this.hasController;
|
855
|
+
const delegate = this.workingDelegate = (inline) ? this.delegate || this.coreDelegate : this.delegate;
|
856
|
+
return { inline, delegate };
|
857
|
+
}
|
380
858
|
/**
|
381
859
|
* Present the modal overlay after it has been created.
|
382
860
|
*/
|
@@ -384,18 +862,54 @@ const Modal = class {
|
|
384
862
|
if (this.presented) {
|
385
863
|
return;
|
386
864
|
}
|
387
|
-
|
388
|
-
|
389
|
-
|
865
|
+
/**
|
866
|
+
* When using an inline modal
|
867
|
+
* and dismissing a modal it is possible to
|
868
|
+
* quickly present the modal while it is
|
869
|
+
* dismissing. We need to await any current
|
870
|
+
* transition to allow the dismiss to finish
|
871
|
+
* before presenting again.
|
872
|
+
*/
|
873
|
+
if (this.currentTransition !== undefined) {
|
874
|
+
await this.currentTransition;
|
390
875
|
}
|
391
|
-
const
|
392
|
-
|
876
|
+
const data = Object.assign(Object.assign({}, this.componentProps), { modal: this.el });
|
877
|
+
const { inline, delegate } = this.getDelegate(true);
|
878
|
+
this.usersElement = await frameworkDelegate.attachComponent(delegate, this.el, this.component, ['ion-page'], data, inline);
|
393
879
|
await index$2.deepReady(this.usersElement);
|
394
880
|
index$1.writeTask(() => this.el.classList.add('show-modal'));
|
395
|
-
|
396
|
-
|
881
|
+
this.currentTransition = overlays.present(this, 'modalEnter', iosEnterAnimation, mdEnterAnimation, { presentingEl: this.presentingElement, currentBreakpoint: this.initialBreakpoint, backdropBreakpoint: this.backdropBreakpoint });
|
882
|
+
await this.currentTransition;
|
883
|
+
if (this.isSheetModal) {
|
884
|
+
this.initSheetGesture();
|
885
|
+
}
|
886
|
+
else if (this.swipeToClose) {
|
397
887
|
this.initSwipeToClose();
|
398
888
|
}
|
889
|
+
/* tslint:disable-next-line */
|
890
|
+
if (typeof window !== 'undefined') {
|
891
|
+
this.keyboardOpenCallback = () => {
|
892
|
+
if (this.gesture) {
|
893
|
+
/**
|
894
|
+
* When the native keyboard is opened and the webview
|
895
|
+
* is resized, the gesture implementation will become unresponsive
|
896
|
+
* and enter a free-scroll mode.
|
897
|
+
*
|
898
|
+
* When the keyboard is opened, we disable the gesture for
|
899
|
+
* a single frame and re-enable once the contents have repositioned
|
900
|
+
* from the keyboard placement.
|
901
|
+
*/
|
902
|
+
this.gesture.enable(false);
|
903
|
+
helpers.raf(() => {
|
904
|
+
if (this.gesture) {
|
905
|
+
this.gesture.enable(true);
|
906
|
+
}
|
907
|
+
});
|
908
|
+
}
|
909
|
+
};
|
910
|
+
window.addEventListener(keyboard.KEYBOARD_DID_OPEN, this.keyboardOpenCallback);
|
911
|
+
}
|
912
|
+
this.currentTransition = undefined;
|
399
913
|
}
|
400
914
|
initSwipeToClose() {
|
401
915
|
if (ionicGlobal.getIonMode(this) !== 'ios') {
|
@@ -405,7 +919,7 @@ const Modal = class {
|
|
405
919
|
// should be in the DOM and referenced by now, except
|
406
920
|
// for the presenting el
|
407
921
|
const animationBuilder = this.leaveAnimation || ionicGlobal.config.get('modalLeave', iosLeaveAnimation);
|
408
|
-
const ani = this.animation = animationBuilder(this.el, this.presentingElement);
|
922
|
+
const ani = this.animation = animationBuilder(this.el, { presentingEl: this.presentingElement });
|
409
923
|
this.gesture = createSwipeToCloseGesture(this.el, ani, () => {
|
410
924
|
/**
|
411
925
|
* While the gesture animation is finishing
|
@@ -425,6 +939,37 @@ const Modal = class {
|
|
425
939
|
});
|
426
940
|
this.gesture.enable(true);
|
427
941
|
}
|
942
|
+
initSheetGesture() {
|
943
|
+
var _a;
|
944
|
+
const { wrapperEl, initialBreakpoint, backdropBreakpoint } = this;
|
945
|
+
if (!wrapperEl || initialBreakpoint === undefined) {
|
946
|
+
return;
|
947
|
+
}
|
948
|
+
const animationBuilder = this.enterAnimation || ionicGlobal.config.get('modalEnter', iosEnterAnimation);
|
949
|
+
const ani = this.animation = animationBuilder(this.el, { presentingEl: this.presentingElement, currentBreakpoint: initialBreakpoint, backdropBreakpoint });
|
950
|
+
ani.progressStart(true, 1);
|
951
|
+
const sortedBreakpoints = ((_a = this.breakpoints) === null || _a === void 0 ? void 0 : _a.sort((a, b) => a - b)) || [];
|
952
|
+
this.gesture = createSheetGesture(this.el, this.backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, ani, sortedBreakpoints, () => {
|
953
|
+
/**
|
954
|
+
* While the gesture animation is finishing
|
955
|
+
* it is possible for a user to tap the backdrop.
|
956
|
+
* This would result in the dismiss animation
|
957
|
+
* being played again. Typically this is avoided
|
958
|
+
* by setting `presented = false` on the overlay
|
959
|
+
* component; however, we cannot do that here as
|
960
|
+
* that would prevent the element from being
|
961
|
+
* removed from the DOM.
|
962
|
+
*/
|
963
|
+
this.gestureAnimationDismissing = true;
|
964
|
+
this.animation.onFinish(async () => {
|
965
|
+
await this.dismiss(undefined, 'gesture');
|
966
|
+
this.gestureAnimationDismissing = false;
|
967
|
+
});
|
968
|
+
}, (breakpoint) => {
|
969
|
+
this.currentBreakpoint = breakpoint;
|
970
|
+
});
|
971
|
+
this.gesture.enable(true);
|
972
|
+
}
|
428
973
|
/**
|
429
974
|
* Dismiss the modal overlay after it has been presented.
|
430
975
|
*
|
@@ -435,15 +980,37 @@ const Modal = class {
|
|
435
980
|
if (this.gestureAnimationDismissing && role !== 'gesture') {
|
436
981
|
return false;
|
437
982
|
}
|
983
|
+
/* tslint:disable-next-line */
|
984
|
+
if (typeof window !== 'undefined' && this.keyboardOpenCallback) {
|
985
|
+
window.removeEventListener(keyboard.KEYBOARD_DID_OPEN, this.keyboardOpenCallback);
|
986
|
+
}
|
987
|
+
/**
|
988
|
+
* When using an inline modal
|
989
|
+
* and presenting a modal it is possible to
|
990
|
+
* quickly dismiss the modal while it is
|
991
|
+
* presenting. We need to await any current
|
992
|
+
* transition to allow the present to finish
|
993
|
+
* before dismissing again.
|
994
|
+
*/
|
995
|
+
if (this.currentTransition !== undefined) {
|
996
|
+
await this.currentTransition;
|
997
|
+
}
|
438
998
|
const enteringAnimation = overlays.activeAnimations.get(this) || [];
|
439
|
-
|
999
|
+
this.currentTransition = overlays.dismiss(this, data, role, 'modalLeave', iosLeaveAnimation, mdLeaveAnimation, { presentingEl: this.presentingElement, currentBreakpoint: this.currentBreakpoint || this.initialBreakpoint, backdropBreakpoint: this.backdropBreakpoint });
|
1000
|
+
const dismissed = await this.currentTransition;
|
440
1001
|
if (dismissed) {
|
441
|
-
|
1002
|
+
const { delegate } = this.getDelegate();
|
1003
|
+
await frameworkDelegate.detachComponent(delegate, this.usersElement);
|
1004
|
+
index$1.writeTask(() => this.el.classList.remove('show-modal'));
|
442
1005
|
if (this.animation) {
|
443
1006
|
this.animation.destroy();
|
444
1007
|
}
|
1008
|
+
if (this.gesture) {
|
1009
|
+
this.gesture.destroy();
|
1010
|
+
}
|
445
1011
|
enteringAnimation.forEach(ani => ani.destroy());
|
446
1012
|
}
|
1013
|
+
this.currentTransition = undefined;
|
447
1014
|
this.animation = undefined;
|
448
1015
|
return dismissed;
|
449
1016
|
}
|
@@ -460,13 +1027,19 @@ const Modal = class {
|
|
460
1027
|
return overlays.eventMethod(this.el, 'ionModalWillDismiss');
|
461
1028
|
}
|
462
1029
|
render() {
|
1030
|
+
const { handle, isSheetModal, presentingElement, htmlAttributes } = this;
|
1031
|
+
const showHandle = handle !== false && isSheetModal;
|
463
1032
|
const mode = ionicGlobal.getIonMode(this);
|
464
|
-
|
1033
|
+
const { modalId } = this;
|
1034
|
+
const isCardModal = presentingElement !== undefined && mode === 'ios';
|
1035
|
+
return (index$1.h(index$1.Host, Object.assign({ "no-router": true, "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
|
465
1036
|
zIndex: `${20000 + this.overlayIndex}`,
|
466
|
-
}, onIonBackdropTap: this.onBackdropTap, onIonDismiss: this.onDismiss, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }, index$1.h("ion-backdrop", { visible: this.showBackdrop, tappable: this.backdropDismiss }), mode === 'ios' && index$1.h("div", { class: "modal-shadow" }), index$1.h("div", {
|
1037
|
+
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true }, theme.getClassMap(this.cssClass)), id: modalId, onIonBackdropTap: this.onBackdropTap, onIonDismiss: this.onDismiss, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), index$1.h("ion-backdrop", { ref: el => this.backdropEl = el, visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && index$1.h("div", { class: "modal-shadow" }), index$1.h("div", { role: "dialog", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: el => this.wrapperEl = el }, showHandle && index$1.h("div", { class: "modal-handle", part: "handle" }), index$1.h("slot", null))));
|
467
1038
|
}
|
468
1039
|
get el() { return index$1.getElement(this); }
|
469
1040
|
static get watchers() { return {
|
1041
|
+
"isOpen": ["onIsOpenChange"],
|
1042
|
+
"trigger": ["onTriggerChange"],
|
470
1043
|
"swipeToClose": ["swipeToCloseChanged"]
|
471
1044
|
}; }
|
472
1045
|
};
|
@@ -476,6 +1049,7 @@ const LIFECYCLE_MAP = {
|
|
476
1049
|
'ionModalWillDismiss': 'ionViewWillLeave',
|
477
1050
|
'ionModalDidDismiss': 'ionViewDidLeave',
|
478
1051
|
};
|
1052
|
+
let modalIds = 0;
|
479
1053
|
Modal.style = {
|
480
1054
|
ios: modalIosCss,
|
481
1055
|
md: modalMdCss
|