@sparkle-learning/core 0.0.30 → 0.0.33

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.
Files changed (278) hide show
  1. package/dist/cjs/PrivateRoute-482697a6.js +35 -0
  2. package/dist/cjs/{PrivateRoute-043bb7d3.js → auth.service-f878f6ab.js} +0 -30
  3. package/dist/cjs/dom-utils-b8befdd5.js +63 -0
  4. package/dist/cjs/header-mobile-collapse_2.cjs.entry.js +112 -0
  5. package/dist/cjs/{icons-b8a2231a.js → icons-80d477f6.js} +0 -0
  6. package/dist/cjs/index-07e8aa51.js +3071 -0
  7. package/dist/cjs/index.cjs.js +6 -5
  8. package/dist/cjs/injectHistory-77d41284.js +9 -0
  9. package/dist/cjs/ion-avatar.cjs.entry.js +25 -0
  10. package/dist/cjs/ion-button_3.cjs.entry.js +383 -0
  11. package/dist/cjs/ion-card_2.cjs.entry.js +93 -0
  12. package/dist/cjs/ion-checkbox_4.cjs.entry.js +370 -0
  13. package/dist/cjs/ion-col_3.cjs.entry.js +155 -0
  14. package/dist/cjs/ion-icon_2.cjs.entry.js +397 -0
  15. package/dist/cjs/ion-input_2.cjs.entry.js +316 -0
  16. package/dist/cjs/ion-label_2.cjs.entry.js +126 -0
  17. package/dist/cjs/ion-range.cjs.entry.js +445 -0
  18. package/dist/cjs/ion-spinner.cjs.entry.js +64 -0
  19. package/dist/cjs/loader.cjs.js +1 -1
  20. package/dist/cjs/match-path-84c9f7ca.js +511 -0
  21. package/dist/cjs/sparkle-card_3.cjs.entry.js +91 -0
  22. package/dist/cjs/sparkle-code.cjs.entry.js +1 -1
  23. package/dist/cjs/sparkle-core.cjs.js +1 -1
  24. package/dist/cjs/sparkle-course-root.cjs.entry.js +145 -0
  25. package/dist/cjs/sparkle-dropdown.cjs.entry.js +61 -0
  26. package/dist/cjs/{header-mobile-collapse_61.cjs.entry.js → sparkle-export-lessons_6.cjs.entry.js} +8863 -17664
  27. package/dist/cjs/sparkle-facilitator-header_19.cjs.entry.js +2129 -0
  28. package/dist/cjs/sparkle-feedback.cjs.entry.js +2 -1
  29. package/dist/cjs/sparkle-goal-progress.cjs.entry.js +19 -0
  30. package/dist/cjs/sparkle-gww-item.cjs.entry.js +74 -0
  31. package/dist/cjs/sparkle-intro.cjs.entry.js +26 -0
  32. package/dist/cjs/sparkle-menu-collapsible.cjs.entry.js +1 -1
  33. package/dist/cjs/sparkle-menu-toggle_3.cjs.entry.js +236 -0
  34. package/dist/cjs/sparkle-validation-error.cjs.entry.js +21 -0
  35. package/dist/cjs/stencil-route-link.cjs.entry.js +77 -0
  36. package/dist/cjs/stencil-router-redirect.cjs.entry.js +32 -0
  37. package/dist/cjs/student.service-7af424fe.js +61 -0
  38. package/dist/cjs/user.store-3d29139d.js +21 -0
  39. package/dist/collection/collection-manifest.json +1 -0
  40. package/dist/collection/components/layout/page/page.js +0 -2
  41. package/dist/collection/components/sparkle-intro/sparkle-intro.css +16 -0
  42. package/dist/collection/components/sparkle-intro/sparkle-intro.js +35 -0
  43. package/dist/collection/models/course.model.js +6 -0
  44. package/dist/esm/PrivateRoute-f59ba6b5.js +33 -0
  45. package/dist/esm/{animation-b306f6c2.js → animation-7b083379.js} +1 -1
  46. package/dist/esm/{PrivateRoute-b9937c45.js → auth.service-7ab0ac58.js} +3 -32
  47. package/dist/esm/{auth.store-3ed2389e.js → auth.store-98fad96d.js} +2 -2
  48. package/dist/esm/dom-utils-8e73e88b.js +55 -0
  49. package/dist/esm/{facilitator.service-ec0a9739.js → facilitator.service-1524bf89.js} +1 -1
  50. package/dist/esm/{feed.service-33b83cb7.js → feed.service-4900fc62.js} +2 -2
  51. package/dist/esm/{framework-delegate-3bc58c27.js → framework-delegate-518bd233.js} +1 -1
  52. package/dist/esm/header-mobile-collapse_2.entry.js +107 -0
  53. package/dist/esm/{helpers-39367fe1.js → helpers-9d0930de.js} +1 -1
  54. package/dist/esm/{icons-5debfbaf.js → icons-05b6ce86.js} +1 -1
  55. package/dist/esm/{index-c26d8655.js → index-8de9446b.js} +3 -3
  56. package/dist/esm/index-c92f99d4.js +3067 -0
  57. package/dist/esm/{index-dc61f152.js → index-ea26196a.js} +1 -1
  58. package/dist/esm/{index-9594837e.js → index-fa5e93c5.js} +2 -2
  59. package/dist/esm/{index.es-97dd8174.js → index.es-89cff481.js} +3 -3
  60. package/dist/esm/index.js +5 -4
  61. package/dist/esm/injectHistory-52d0c7eb.js +7 -0
  62. package/dist/esm/{input-shims-cc98ea92.js → input-shims-7f04e044.js} +1 -1
  63. package/dist/esm/ion-accordion.entry.js +2 -2
  64. package/dist/esm/ion-action-sheet_4.entry.js +5 -5
  65. package/dist/esm/ion-app.entry.js +3 -3
  66. package/dist/esm/ion-avatar.entry.js +21 -0
  67. package/dist/esm/ion-back-button.entry.js +2 -2
  68. package/dist/esm/ion-breadcrumb.entry.js +2 -2
  69. package/dist/esm/ion-button_3.entry.js +377 -0
  70. package/dist/esm/ion-card_2.entry.js +88 -0
  71. package/dist/esm/ion-checkbox_4.entry.js +363 -0
  72. package/dist/esm/ion-col_3.entry.js +149 -0
  73. package/dist/esm/ion-content_2.entry.js +1 -1
  74. package/dist/esm/ion-datetime.entry.js +2 -2
  75. package/dist/esm/ion-fab-button.entry.js +1 -1
  76. package/dist/esm/ion-footer.entry.js +1 -1
  77. package/dist/esm/ion-icon_2.entry.js +392 -0
  78. package/dist/esm/ion-img.entry.js +1 -1
  79. package/dist/esm/ion-infinite-scroll.entry.js +1 -1
  80. package/dist/esm/ion-input_2.entry.js +311 -0
  81. package/dist/esm/ion-item-options.entry.js +1 -1
  82. package/dist/esm/ion-item-sliding.entry.js +1 -1
  83. package/dist/esm/ion-label_2.entry.js +121 -0
  84. package/dist/esm/ion-loading.entry.js +3 -3
  85. package/dist/esm/ion-menu-button.entry.js +5 -5
  86. package/dist/esm/ion-menu-toggle.entry.js +4 -4
  87. package/dist/esm/ion-menu.entry.js +4 -4
  88. package/dist/esm/ion-modal.entry.js +5 -5
  89. package/dist/esm/ion-nav.entry.js +4 -4
  90. package/dist/esm/ion-picker-column-internal_2.entry.js +1 -1
  91. package/dist/esm/ion-picker-column.entry.js +1 -1
  92. package/dist/esm/ion-picker.entry.js +3 -3
  93. package/dist/esm/ion-progress-bar.entry.js +1 -1
  94. package/dist/esm/ion-range.entry.js +441 -0
  95. package/dist/esm/ion-refresher-content.entry.js +1 -1
  96. package/dist/esm/ion-refresher.entry.js +2 -2
  97. package/dist/esm/ion-reorder-group.entry.js +1 -1
  98. package/dist/esm/ion-reorder.entry.js +1 -1
  99. package/dist/esm/ion-router-outlet.entry.js +4 -4
  100. package/dist/esm/ion-router.entry.js +1 -1
  101. package/dist/esm/ion-searchbar.entry.js +2 -2
  102. package/dist/esm/ion-segment-button.entry.js +1 -1
  103. package/dist/esm/ion-segment.entry.js +1 -1
  104. package/dist/esm/ion-select_2.entry.js +2 -2
  105. package/dist/esm/ion-slides.entry.js +1 -1
  106. package/dist/esm/ion-spinner.entry.js +60 -0
  107. package/dist/esm/ion-tab.entry.js +2 -2
  108. package/dist/esm/ion-textarea.entry.js +1 -1
  109. package/dist/esm/ion-toast.entry.js +3 -3
  110. package/dist/esm/ion-toggle.entry.js +1 -1
  111. package/dist/esm/ion-virtual-scroll.entry.js +1 -1
  112. package/dist/esm/{ios.transition-b4ca8a33.js → ios.transition-db4f4ca6.js} +3 -3
  113. package/dist/esm/loader.js +1 -1
  114. package/dist/esm/match-path-36fdf5c7.js +499 -0
  115. package/dist/esm/{md.transition-ca5e0322.js → md.transition-8294b503.js} +3 -3
  116. package/dist/esm/{menu-toggle-util-7fa22c2f.js → menu-toggle-util-06adade3.js} +1 -1
  117. package/dist/esm/{overlays-34cfa9e0.js → overlays-5c777f10.js} +2 -2
  118. package/dist/esm/{purify-ffce2b4c.js → purify-eb68cf1d.js} +1 -1
  119. package/dist/esm/sparkle-animation-player.entry.js +1 -1
  120. package/dist/esm/sparkle-card_3.entry.js +85 -0
  121. package/dist/esm/sparkle-code.entry.js +1 -1
  122. package/dist/esm/sparkle-core.js +1 -1
  123. package/dist/esm/sparkle-course-root.entry.js +141 -0
  124. package/dist/esm/sparkle-dropdown.entry.js +57 -0
  125. package/dist/esm/{header-mobile-collapse_61.entry.js → sparkle-export-lessons_6.entry.js} +8858 -17604
  126. package/dist/esm/sparkle-facilitator-header_19.entry.js +2107 -0
  127. package/dist/esm/sparkle-facilitator-notes-form.entry.js +4 -4
  128. package/dist/esm/sparkle-feedback.entry.js +5 -4
  129. package/dist/esm/sparkle-goal-form.entry.js +5 -5
  130. package/dist/esm/sparkle-goal-progress.entry.js +15 -0
  131. package/dist/esm/sparkle-gww-item.entry.js +70 -0
  132. package/dist/esm/sparkle-intro.entry.js +22 -0
  133. package/dist/esm/sparkle-menu-collapsible.entry.js +1 -1
  134. package/dist/esm/sparkle-menu-toggle_3.entry.js +230 -0
  135. package/dist/esm/sparkle-validation-error.entry.js +17 -0
  136. package/dist/esm/{status-tap-6351a0cb.js → status-tap-e8c0c752.js} +1 -1
  137. package/dist/esm/stencil-route-link.entry.js +73 -0
  138. package/dist/esm/stencil-router-redirect.entry.js +28 -0
  139. package/dist/esm/{student.service-29b688ba.js → student.service-c2f44f3a.js} +3 -18
  140. package/dist/esm/{swipe-back-34251834.js → swipe-back-9a3b2cdd.js} +1 -1
  141. package/dist/esm/{tap-click-13f1fb0d.js → tap-click-cca25060.js} +1 -1
  142. package/dist/esm/user.store-e6ff7558.js +19 -0
  143. package/dist/esm/{util-6ef753e9.js → util-a831d09d.js} +1 -1
  144. package/dist/sparkle-core/index.esm.js +1 -1
  145. package/dist/sparkle-core/p-021fde3c.entry.js +1 -0
  146. package/dist/sparkle-core/p-034306e2.js +1 -0
  147. package/dist/sparkle-core/{p-6c90bde6.entry.js → p-034aa29f.entry.js} +1 -1
  148. package/dist/sparkle-core/p-06c0cce3.entry.js +1 -0
  149. package/dist/sparkle-core/{p-9cfdeb18.entry.js → p-08923b40.entry.js} +1 -1
  150. package/dist/sparkle-core/{p-513794b0.js → p-0ad99881.js} +1 -1
  151. package/dist/sparkle-core/{p-95004267.entry.js → p-11234d0f.entry.js} +1 -1
  152. package/dist/sparkle-core/{p-9a17f2ad.js → p-1133fcbd.js} +2 -2
  153. package/dist/sparkle-core/{p-faa912d7.entry.js → p-1551190a.entry.js} +1 -1
  154. package/dist/sparkle-core/p-1728ead7.js +1 -0
  155. package/dist/sparkle-core/{p-ae1f145d.entry.js → p-1e8c22e0.entry.js} +1 -1
  156. package/dist/sparkle-core/p-232cc3bc.js +1 -0
  157. package/dist/sparkle-core/{p-289a35ed.entry.js → p-28950db0.entry.js} +1 -1
  158. package/dist/sparkle-core/p-2af82cc1.entry.js +1 -0
  159. package/dist/sparkle-core/p-2bd4c60e.js +1 -0
  160. package/dist/sparkle-core/p-2f437793.entry.js +348 -0
  161. package/dist/sparkle-core/p-330ccc7c.entry.js +1 -0
  162. package/dist/sparkle-core/{p-838fa86d.entry.js → p-337f92b0.entry.js} +1 -1
  163. package/dist/sparkle-core/{p-857f3696.entry.js → p-35c5c110.entry.js} +1 -1
  164. package/dist/sparkle-core/p-3ff617d5.js +1 -0
  165. package/dist/sparkle-core/{p-7c38a70b.js → p-401feeb0.js} +1 -1
  166. package/dist/sparkle-core/{p-5a3d0e6b.js → p-4028676b.js} +1 -1
  167. package/dist/sparkle-core/{p-1cef8572.js → p-41124baa.js} +1 -1
  168. package/dist/sparkle-core/{p-0187adef.entry.js → p-41af3793.entry.js} +1 -1
  169. package/dist/sparkle-core/p-43a7391b.entry.js +1 -0
  170. package/dist/sparkle-core/{p-855ca600.js → p-44c23f72.js} +1 -1
  171. package/dist/sparkle-core/{p-c1376096.entry.js → p-4550e10f.entry.js} +1 -1
  172. package/dist/sparkle-core/{p-660e0742.js → p-4a72626a.js} +1 -1
  173. package/dist/sparkle-core/{p-e1cba44b.entry.js → p-4ba57978.entry.js} +1 -1
  174. package/dist/sparkle-core/{p-935e7cfc.js → p-4bd4dab2.js} +1 -1
  175. package/dist/sparkle-core/{p-d5b05ece.entry.js → p-4ef4b8bd.entry.js} +1 -1
  176. package/dist/sparkle-core/{p-55ae49e1.js → p-4f144efa.js} +1 -1
  177. package/dist/sparkle-core/{p-713590fc.js → p-52d4715a.js} +1 -1
  178. package/dist/sparkle-core/{p-bca0e465.entry.js → p-52f1d1ca.entry.js} +1 -1
  179. package/dist/sparkle-core/{p-7e61973d.entry.js → p-5a98d42e.entry.js} +1 -1
  180. package/dist/sparkle-core/{p-82e98d07.entry.js → p-5e4ec238.entry.js} +1 -1
  181. package/dist/sparkle-core/{p-0146afa0.entry.js → p-5ec7fd67.entry.js} +1 -1
  182. package/dist/sparkle-core/p-618f6f82.entry.js +1 -0
  183. package/dist/sparkle-core/p-65ca1fb2.entry.js +1 -0
  184. package/dist/sparkle-core/{p-a080e768.entry.js → p-663fafa9.entry.js} +1 -1
  185. package/dist/sparkle-core/p-67f71099.entry.js +4 -0
  186. package/dist/sparkle-core/{p-6e88764b.entry.js → p-6a16b9ef.entry.js} +2 -2
  187. package/dist/sparkle-core/p-6b6a8f0a.entry.js +1 -0
  188. package/dist/sparkle-core/p-6c5b5ea2.entry.js +1 -0
  189. package/dist/sparkle-core/{p-941eaa3a.entry.js → p-6ebf52fb.entry.js} +1 -1
  190. package/dist/sparkle-core/p-6f45db93.js +1 -0
  191. package/dist/sparkle-core/p-74106ca8.entry.js +1 -0
  192. package/dist/sparkle-core/{p-6fbe3ca3.entry.js → p-7568dcab.entry.js} +1 -1
  193. package/dist/sparkle-core/p-7703bae9.entry.js +1 -0
  194. package/dist/sparkle-core/p-77c23496.entry.js +1 -0
  195. package/dist/sparkle-core/p-79606a41.entry.js +1 -0
  196. package/dist/sparkle-core/p-7976e88c.entry.js +1 -0
  197. package/dist/sparkle-core/p-7c1f59ec.js +1 -0
  198. package/dist/sparkle-core/p-7de0a22b.entry.js +1 -0
  199. package/dist/sparkle-core/p-848fe770.entry.js +1 -0
  200. package/dist/sparkle-core/{p-cbbeed67.entry.js → p-85429b12.entry.js} +1 -1
  201. package/dist/sparkle-core/{p-64e72f8f.js → p-86d099f1.js} +2 -2
  202. package/dist/sparkle-core/{p-389500fd.js → p-87549bb7.js} +2 -2
  203. package/dist/sparkle-core/{p-1b78dea1.entry.js → p-8c470e28.entry.js} +1 -1
  204. package/dist/sparkle-core/{p-50aac721.entry.js → p-90466494.entry.js} +1 -1
  205. package/dist/sparkle-core/p-954c89c2.entry.js +1 -0
  206. package/dist/sparkle-core/{p-f4001fdf.js → p-95d01c4c.js} +1 -1
  207. package/dist/sparkle-core/{p-6ee40949.js → p-987c64eb.js} +1 -1
  208. package/dist/sparkle-core/{p-1af044f7.js → p-a7832a51.js} +1 -1
  209. package/dist/sparkle-core/p-a89dea80.entry.js +1 -0
  210. package/dist/sparkle-core/p-aef8aa31.entry.js +1 -0
  211. package/dist/sparkle-core/{p-6c6145cd.js → p-b17dd6df.js} +2 -2
  212. package/dist/sparkle-core/{p-5ff6416d.entry.js → p-b21d0d9f.entry.js} +1 -1
  213. package/dist/sparkle-core/p-b7dafaae.entry.js +1 -0
  214. package/dist/sparkle-core/{p-c3986a52.entry.js → p-bd062288.entry.js} +1 -1
  215. package/dist/sparkle-core/{p-c1279cc9.entry.js → p-beb401e3.entry.js} +1 -1
  216. package/dist/sparkle-core/p-bef34cfe.entry.js +1 -0
  217. package/dist/sparkle-core/{p-6bf07a28.js → p-c1c59771.js} +1 -1
  218. package/dist/sparkle-core/p-c4104929.entry.js +1 -0
  219. package/dist/sparkle-core/{p-173d5461.entry.js → p-c748f64e.entry.js} +1 -1
  220. package/dist/sparkle-core/{p-d4a435f8.entry.js → p-c753207f.entry.js} +1 -1
  221. package/dist/sparkle-core/{p-18e62133.entry.js → p-c8ae9e47.entry.js} +1 -1
  222. package/dist/sparkle-core/p-c8ed0575.js +1 -0
  223. package/dist/sparkle-core/{p-8fe2e51f.entry.js → p-c96b24bd.entry.js} +2 -2
  224. package/dist/sparkle-core/p-ce13171b.entry.js +1 -0
  225. package/dist/sparkle-core/{p-5c9aa1f9.entry.js → p-d00f550b.entry.js} +1 -1
  226. package/dist/sparkle-core/p-d394eed1.entry.js +1 -0
  227. package/dist/sparkle-core/p-d48e95c1.entry.js +1 -0
  228. package/dist/sparkle-core/p-d4b1a14a.entry.js +1 -0
  229. package/dist/sparkle-core/{p-b81e20fe.entry.js → p-d56efeac.entry.js} +1 -1
  230. package/dist/sparkle-core/{p-932bfb69.entry.js → p-d59a5984.entry.js} +1 -1
  231. package/dist/sparkle-core/p-d8aff730.entry.js +1 -0
  232. package/dist/sparkle-core/{p-5d2e54ee.entry.js → p-da8921d0.entry.js} +1 -1
  233. package/dist/sparkle-core/{p-a1cab0f3.js → p-e08059b6.js} +2 -2
  234. package/dist/sparkle-core/{p-5598650a.entry.js → p-ec4d22e3.entry.js} +1 -1
  235. package/dist/sparkle-core/{p-eb70a23c.entry.js → p-ed3eed72.entry.js} +1 -1
  236. package/dist/sparkle-core/{p-a7cc0052.entry.js → p-ee0717e1.entry.js} +1 -1
  237. package/dist/sparkle-core/p-ef2dace6.js +4 -0
  238. package/dist/sparkle-core/{p-2ee6a5f9.entry.js → p-f1106984.entry.js} +1 -1
  239. package/dist/sparkle-core/p-f61ca75c.entry.js +1 -0
  240. package/dist/sparkle-core/{p-e225581a.js → p-f6bafe1d.js} +1 -1
  241. package/dist/sparkle-core/{p-1df05176.js → p-ff4d6858.js} +1 -1
  242. package/dist/sparkle-core/sparkle-core.esm.js +1 -1
  243. package/dist/types/components/sparkle-intro/sparkle-intro.d.ts +7 -0
  244. package/dist/types/components.d.ts +13 -0
  245. package/dist/types/models/course.model.d.ts +1 -8
  246. package/package.json +2 -2
  247. package/dist/cjs/student.service-744c3155.js +0 -77
  248. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/button/button.css +0 -49
  249. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/cards/card/card.css +0 -208
  250. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/cards/cards.css +0 -31
  251. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/code/code.css +0 -245
  252. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/dropdown/dropdown.css +0 -115
  253. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/header/header-mobile-collapse/header-mobile-collapse.css +0 -255
  254. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/header/header.css +0 -232
  255. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/menu/collapsible/collapsible.css +0 -3
  256. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/menu/menu-toggle/menu-toggle.css +0 -25
  257. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/menu/menu.css +0 -71
  258. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/nav/nav.css +0 -194
  259. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/notfound-page/notfound-page.css +0 -4
  260. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/overlay/overlay.css +0 -67
  261. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/page-footer/page-footer.css +0 -18
  262. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/pagination/pagination.css +0 -89
  263. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/select/select.css +0 -52
  264. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/sidebar/sidebar.css +0 -98
  265. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/sparkle-lower-content-nav/sparkle-lower-content-nav.css +0 -8
  266. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/table-of-contents/table-of-contents.css +0 -37
  267. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/tabs/tabs.css +0 -64
  268. package/dist/sparkle-core/p-03189863.js +0 -1
  269. package/dist/sparkle-core/p-1339830f.entry.js +0 -1
  270. package/dist/sparkle-core/p-145e40f5.entry.js +0 -1
  271. package/dist/sparkle-core/p-547b70c6.entry.js +0 -1
  272. package/dist/sparkle-core/p-6bbabb80.entry.js +0 -1
  273. package/dist/sparkle-core/p-950effe7.entry.js +0 -1
  274. package/dist/sparkle-core/p-d8d3524a.js +0 -1
  275. package/dist/sparkle-core/p-df0070c5.entry.js +0 -352
  276. package/dist/sparkle-core/p-e0fced48.entry.js +0 -1
  277. package/dist/sparkle-core/p-e72d4450.js +0 -4
  278. package/dist/sparkle-core/p-fc933591.entry.js +0 -1
@@ -0,0 +1,397 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-bae2a754.js');
6
+ const ionicGlobal = require('./ionic-global-878073d1.js');
7
+
8
+ let CACHED_MAP;
9
+ const getIconMap = () => {
10
+ if (typeof window === 'undefined') {
11
+ return new Map();
12
+ }
13
+ else {
14
+ if (!CACHED_MAP) {
15
+ const win = window;
16
+ win.Ionicons = win.Ionicons || {};
17
+ CACHED_MAP = win.Ionicons.map = win.Ionicons.map || new Map();
18
+ }
19
+ return CACHED_MAP;
20
+ }
21
+ };
22
+ const getUrl = (i) => {
23
+ let url = getSrc(i.src);
24
+ if (url) {
25
+ return url;
26
+ }
27
+ url = getName(i.name, i.icon, i.mode, i.ios, i.md);
28
+ if (url) {
29
+ return getNamedUrl(url);
30
+ }
31
+ if (i.icon) {
32
+ url = getSrc(i.icon);
33
+ if (url) {
34
+ return url;
35
+ }
36
+ url = getSrc(i.icon[i.mode]);
37
+ if (url) {
38
+ return url;
39
+ }
40
+ }
41
+ return null;
42
+ };
43
+ const getNamedUrl = (iconName) => {
44
+ const url = getIconMap().get(iconName);
45
+ if (url) {
46
+ return url;
47
+ }
48
+ return index.getAssetPath(`svg/${iconName}.svg`);
49
+ };
50
+ const getName = (iconName, icon, mode, ios, md) => {
51
+ // default to "md" if somehow the mode wasn't set
52
+ mode = (mode && toLower(mode)) === 'ios' ? 'ios' : 'md';
53
+ // if an icon was passed in using the ios or md attributes
54
+ // set the iconName to whatever was passed in
55
+ if (ios && mode === 'ios') {
56
+ iconName = toLower(ios);
57
+ }
58
+ else if (md && mode === 'md') {
59
+ iconName = toLower(md);
60
+ }
61
+ else {
62
+ if (!iconName && icon && !isSrc(icon)) {
63
+ iconName = icon;
64
+ }
65
+ if (isStr(iconName)) {
66
+ iconName = toLower(iconName);
67
+ }
68
+ }
69
+ if (!isStr(iconName) || iconName.trim() === '') {
70
+ return null;
71
+ }
72
+ // only allow alpha characters and dash
73
+ const invalidChars = iconName.replace(/[a-z]|-|\d/gi, '');
74
+ if (invalidChars !== '') {
75
+ return null;
76
+ }
77
+ return iconName;
78
+ };
79
+ const getSrc = (src) => {
80
+ if (isStr(src)) {
81
+ src = src.trim();
82
+ if (isSrc(src)) {
83
+ return src;
84
+ }
85
+ }
86
+ return null;
87
+ };
88
+ const isSrc = (str) => str.length > 0 && /(\/|\.)/.test(str);
89
+ const isStr = (val) => typeof val === 'string';
90
+ const toLower = (val) => val.toLowerCase();
91
+ /**
92
+ * Elements inside of web components sometimes need to inherit global attributes
93
+ * set on the host. For example, the inner input in `ion-input` should inherit
94
+ * the `title` attribute that developers set directly on `ion-input`. This
95
+ * helper function should be called in componentWillLoad and assigned to a variable
96
+ * that is later used in the render function.
97
+ *
98
+ * This does not need to be reactive as changing attributes on the host element
99
+ * does not trigger a re-render.
100
+ */
101
+ const inheritAttributes = (el, attributes = []) => {
102
+ const attributeObject = {};
103
+ attributes.forEach(attr => {
104
+ if (el.hasAttribute(attr)) {
105
+ const value = el.getAttribute(attr);
106
+ if (value !== null) {
107
+ attributeObject[attr] = el.getAttribute(attr);
108
+ }
109
+ el.removeAttribute(attr);
110
+ }
111
+ });
112
+ return attributeObject;
113
+ };
114
+
115
+ const validateContent = (svgContent) => {
116
+ const div = document.createElement('div');
117
+ div.innerHTML = svgContent;
118
+ // setup this way to ensure it works on our buddy IE
119
+ for (let i = div.childNodes.length - 1; i >= 0; i--) {
120
+ if (div.childNodes[i].nodeName.toLowerCase() !== 'svg') {
121
+ div.removeChild(div.childNodes[i]);
122
+ }
123
+ }
124
+ // must only have 1 root element
125
+ const svgElm = div.firstElementChild;
126
+ if (svgElm && svgElm.nodeName.toLowerCase() === 'svg') {
127
+ const svgClass = svgElm.getAttribute('class') || '';
128
+ svgElm.setAttribute('class', (svgClass + ' s-ion-icon').trim());
129
+ // root element must be an svg
130
+ // lets double check we've got valid elements
131
+ // do not allow scripts
132
+ if (isValid(svgElm)) {
133
+ return div.innerHTML;
134
+ }
135
+ }
136
+ return '';
137
+ };
138
+ const isValid = (elm) => {
139
+ if (elm.nodeType === 1) {
140
+ if (elm.nodeName.toLowerCase() === 'script') {
141
+ return false;
142
+ }
143
+ for (let i = 0; i < elm.attributes.length; i++) {
144
+ const val = elm.attributes[i].value;
145
+ if (isStr(val) && val.toLowerCase().indexOf('on') === 0) {
146
+ return false;
147
+ }
148
+ }
149
+ for (let i = 0; i < elm.childNodes.length; i++) {
150
+ if (!isValid(elm.childNodes[i])) {
151
+ return false;
152
+ }
153
+ }
154
+ }
155
+ return true;
156
+ };
157
+
158
+ const ioniconContent = new Map();
159
+ const requests = new Map();
160
+ const getSvgContent = (url, sanitize) => {
161
+ // see if we already have a request for this url
162
+ let req = requests.get(url);
163
+ if (!req) {
164
+ if (typeof fetch !== 'undefined' && typeof document !== 'undefined') {
165
+ // we don't already have a request
166
+ req = fetch(url).then((rsp) => {
167
+ if (rsp.ok) {
168
+ return rsp.text().then((svgContent) => {
169
+ if (svgContent && sanitize !== false) {
170
+ svgContent = validateContent(svgContent);
171
+ }
172
+ ioniconContent.set(url, svgContent || '');
173
+ });
174
+ }
175
+ ioniconContent.set(url, '');
176
+ });
177
+ // cache for the same requests
178
+ requests.set(url, req);
179
+ }
180
+ else {
181
+ // set to empty for ssr scenarios and resolve promise
182
+ ioniconContent.set(url, '');
183
+ return Promise.resolve();
184
+ }
185
+ }
186
+ return req;
187
+ };
188
+
189
+ const iconCss = ":host{display:inline-block;width:1em;height:1em;contain:strict;fill:currentColor;box-sizing:content-box !important}:host .ionicon{stroke:currentColor}.ionicon-fill-none{fill:none}.ionicon-stroke-width{stroke-width:32px;stroke-width:var(--ionicon-stroke-width, 32px)}.icon-inner,.ionicon,svg{display:block;height:100%;width:100%}:host(.flip-rtl) .icon-inner{transform:scaleX(-1)}:host(.icon-small){font-size:18px !important}:host(.icon-large){font-size:32px !important}:host(.ion-color){color:var(--ion-color-base) !important}:host(.ion-color-primary){--ion-color-base:var(--ion-color-primary, #3880ff)}:host(.ion-color-secondary){--ion-color-base:var(--ion-color-secondary, #0cd1e8)}:host(.ion-color-tertiary){--ion-color-base:var(--ion-color-tertiary, #f4a942)}:host(.ion-color-success){--ion-color-base:var(--ion-color-success, #10dc60)}:host(.ion-color-warning){--ion-color-base:var(--ion-color-warning, #ffce00)}:host(.ion-color-danger){--ion-color-base:var(--ion-color-danger, #f14141)}:host(.ion-color-light){--ion-color-base:var(--ion-color-light, #f4f5f8)}:host(.ion-color-medium){--ion-color-base:var(--ion-color-medium, #989aa2)}:host(.ion-color-dark){--ion-color-base:var(--ion-color-dark, #222428)}";
190
+
191
+ const Icon = class {
192
+ constructor(hostRef) {
193
+ index.registerInstance(this, hostRef);
194
+ this.iconName = null;
195
+ this.inheritedAttributes = {};
196
+ this.isVisible = false;
197
+ /**
198
+ * The mode determines which platform styles to use.
199
+ */
200
+ this.mode = getIonMode();
201
+ /**
202
+ * If enabled, ion-icon will be loaded lazily when it's visible in the viewport.
203
+ * Default, `false`.
204
+ */
205
+ this.lazy = false;
206
+ /**
207
+ * When set to `false`, SVG content that is HTTP fetched will not be checked
208
+ * if the response SVG content has any `<script>` elements, or any attributes
209
+ * that start with `on`, such as `onclick`.
210
+ * @default true
211
+ */
212
+ this.sanitize = true;
213
+ this.hasAriaHidden = () => {
214
+ const { el } = this;
215
+ return el.hasAttribute('aria-hidden') && el.getAttribute('aria-hidden') === 'true';
216
+ };
217
+ }
218
+ componentWillLoad() {
219
+ this.inheritedAttributes = inheritAttributes(this.el, ['aria-label']);
220
+ }
221
+ connectedCallback() {
222
+ // purposely do not return the promise here because loading
223
+ // the svg file should not hold up loading the app
224
+ // only load the svg if it's visible
225
+ this.waitUntilVisible(this.el, '50px', () => {
226
+ this.isVisible = true;
227
+ this.loadIcon();
228
+ });
229
+ }
230
+ disconnectedCallback() {
231
+ if (this.io) {
232
+ this.io.disconnect();
233
+ this.io = undefined;
234
+ }
235
+ }
236
+ waitUntilVisible(el, rootMargin, cb) {
237
+ if (this.lazy && typeof window !== 'undefined' && window.IntersectionObserver) {
238
+ const io = (this.io = new window.IntersectionObserver((data) => {
239
+ if (data[0].isIntersecting) {
240
+ io.disconnect();
241
+ this.io = undefined;
242
+ cb();
243
+ }
244
+ }, { rootMargin }));
245
+ io.observe(el);
246
+ }
247
+ else {
248
+ // browser doesn't support IntersectionObserver
249
+ // so just fallback to always show it
250
+ cb();
251
+ }
252
+ }
253
+ loadIcon() {
254
+ if (this.isVisible) {
255
+ const url = getUrl(this);
256
+ if (url) {
257
+ if (ioniconContent.has(url)) {
258
+ // sync if it's already loaded
259
+ this.svgContent = ioniconContent.get(url);
260
+ }
261
+ else {
262
+ // async if it hasn't been loaded
263
+ getSvgContent(url, this.sanitize).then(() => (this.svgContent = ioniconContent.get(url)));
264
+ }
265
+ }
266
+ }
267
+ const label = this.iconName = getName(this.name, this.icon, this.mode, this.ios, this.md);
268
+ /**
269
+ * Come up with a default label
270
+ * in case user does not provide their own.
271
+ */
272
+ if (label) {
273
+ this.ariaLabel = label.replace(/\-/g, ' ');
274
+ }
275
+ }
276
+ render() {
277
+ const { iconName, ariaLabel, inheritedAttributes } = this;
278
+ const mode = this.mode || 'md';
279
+ const flipRtl = this.flipRtl ||
280
+ (iconName &&
281
+ (iconName.indexOf('arrow') > -1 || iconName.indexOf('chevron') > -1) &&
282
+ this.flipRtl !== false);
283
+ /**
284
+ * Only set the aria-label if a) we have generated
285
+ * one for the icon and if aria-hidden is not set to "true".
286
+ * If developer wants to set their own aria-label, then
287
+ * inheritedAttributes down below will override whatever
288
+ * default label we have set.
289
+ */
290
+ return (index.h(index.Host, Object.assign({ "aria-label": ariaLabel !== undefined && !this.hasAriaHidden() ? ariaLabel : null, role: "img", class: Object.assign(Object.assign({ [mode]: true }, createColorClasses(this.color)), { [`icon-${this.size}`]: !!this.size, 'flip-rtl': !!flipRtl && this.el.ownerDocument.dir === 'rtl' }) }, inheritedAttributes), this.svgContent ? (index.h("div", { class: "icon-inner", innerHTML: this.svgContent })) : (index.h("div", { class: "icon-inner" }))));
291
+ }
292
+ static get assetsDirs() { return ["svg"]; }
293
+ get el() { return index.getElement(this); }
294
+ static get watchers() { return {
295
+ "name": ["loadIcon"],
296
+ "src": ["loadIcon"],
297
+ "icon": ["loadIcon"]
298
+ }; }
299
+ };
300
+ const getIonMode = () => (typeof document !== 'undefined' && document.documentElement.getAttribute('mode')) || 'md';
301
+ const createColorClasses = (color) => {
302
+ return color
303
+ ? {
304
+ 'ion-color': true,
305
+ [`ion-color-${color}`]: true,
306
+ }
307
+ : null;
308
+ };
309
+ Icon.style = iconCss;
310
+
311
+ const rippleEffectCss = ":host{left:0;right:0;top:0;bottom:0;position:absolute;contain:strict;pointer-events:none}:host(.unbounded){contain:layout size style}.ripple-effect{border-radius:50%;position:absolute;background-color:currentColor;color:inherit;contain:strict;opacity:0;animation:225ms rippleAnimation forwards, 75ms fadeInAnimation forwards;will-change:transform, opacity;pointer-events:none}.fade-out{transform:translate(var(--translate-end)) scale(var(--final-scale, 1));animation:150ms fadeOutAnimation forwards}@keyframes rippleAnimation{from{animation-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transform:scale(1)}to{transform:translate(var(--translate-end)) scale(var(--final-scale, 1))}}@keyframes fadeInAnimation{from{animation-timing-function:linear;opacity:0}to{opacity:0.16}}@keyframes fadeOutAnimation{from{animation-timing-function:linear;opacity:0.16}to{opacity:0}}";
312
+
313
+ const RippleEffect = class {
314
+ constructor(hostRef) {
315
+ index.registerInstance(this, hostRef);
316
+ /**
317
+ * Sets the type of ripple-effect:
318
+ *
319
+ * - `bounded`: the ripple effect expands from the user's click position
320
+ * - `unbounded`: the ripple effect expands from the center of the button and overflows the container.
321
+ *
322
+ * NOTE: Surfaces for bounded ripples should have the overflow property set to hidden,
323
+ * while surfaces for unbounded ripples should have it set to visible.
324
+ */
325
+ this.type = 'bounded';
326
+ }
327
+ /**
328
+ * Adds the ripple effect to the parent element.
329
+ *
330
+ * @param x The horizontal coordinate of where the ripple should start.
331
+ * @param y The vertical coordinate of where the ripple should start.
332
+ */
333
+ async addRipple(x, y) {
334
+ return new Promise(resolve => {
335
+ index.readTask(() => {
336
+ const rect = this.el.getBoundingClientRect();
337
+ const width = rect.width;
338
+ const height = rect.height;
339
+ const hypotenuse = Math.sqrt(width * width + height * height);
340
+ const maxDim = Math.max(height, width);
341
+ const maxRadius = this.unbounded ? maxDim : hypotenuse + PADDING;
342
+ const initialSize = Math.floor(maxDim * INITIAL_ORIGIN_SCALE);
343
+ const finalScale = maxRadius / initialSize;
344
+ let posX = x - rect.left;
345
+ let posY = y - rect.top;
346
+ if (this.unbounded) {
347
+ posX = width * 0.5;
348
+ posY = height * 0.5;
349
+ }
350
+ const styleX = posX - initialSize * 0.5;
351
+ const styleY = posY - initialSize * 0.5;
352
+ const moveX = width * 0.5 - posX;
353
+ const moveY = height * 0.5 - posY;
354
+ index.writeTask(() => {
355
+ const div = document.createElement('div');
356
+ div.classList.add('ripple-effect');
357
+ const style = div.style;
358
+ style.top = styleY + 'px';
359
+ style.left = styleX + 'px';
360
+ style.width = style.height = initialSize + 'px';
361
+ style.setProperty('--final-scale', `${finalScale}`);
362
+ style.setProperty('--translate-end', `${moveX}px, ${moveY}px`);
363
+ const container = this.el.shadowRoot || this.el;
364
+ container.appendChild(div);
365
+ setTimeout(() => {
366
+ resolve(() => {
367
+ removeRipple(div);
368
+ });
369
+ }, 225 + 100);
370
+ });
371
+ });
372
+ });
373
+ }
374
+ get unbounded() {
375
+ return this.type === 'unbounded';
376
+ }
377
+ render() {
378
+ const mode = ionicGlobal.getIonMode(this);
379
+ return (index.h(index.Host, { role: "presentation", class: {
380
+ [mode]: true,
381
+ 'unbounded': this.unbounded
382
+ } }));
383
+ }
384
+ get el() { return index.getElement(this); }
385
+ };
386
+ const removeRipple = (ripple) => {
387
+ ripple.classList.add('fade-out');
388
+ setTimeout(() => {
389
+ ripple.remove();
390
+ }, 200);
391
+ };
392
+ const PADDING = 10;
393
+ const INITIAL_ORIGIN_SCALE = 0.5;
394
+ RippleEffect.style = rippleEffectCss;
395
+
396
+ exports.ion_icon = Icon;
397
+ exports.ion_ripple_effect = RippleEffect;