@sparkle-learning/core 0.0.16 → 0.0.20

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 (554) hide show
  1. package/dist/cjs/{PrivateRoute-946ab42c.js → PrivateRoute-cee9b061.js} +44 -45
  2. package/dist/cjs/{active-router-dca7573e.js → active-router-3bd7b540.js} +1 -1
  3. package/dist/cjs/{app-globals-bea78913.js → app-globals-98121d6d.js} +1 -1
  4. package/dist/cjs/{assets.service-5098e79c.js → assets.service-0c759d51.js} +2 -27
  5. package/dist/cjs/{httpService-6377985c.js → auth.store-aba3d22f.js} +31 -5
  6. package/dist/cjs/{button-active-1edcd24e.js → button-active-9456fb4d.js} +1 -1
  7. package/dist/cjs/compass-svg.cjs.entry.js +132 -0
  8. package/dist/cjs/context-consumer.cjs.entry.js +1 -1
  9. package/dist/cjs/course-select.cjs.entry.js +1 -1
  10. package/dist/cjs/environment-config.service-0e02b049.js +29 -0
  11. package/dist/cjs/facilitator.service-e1e2f719.js +94 -0
  12. package/dist/cjs/feed.service-518d18fd.js +5802 -0
  13. package/dist/cjs/header-mobile-collapse_60.cjs.entry.js +86 -0
  14. package/dist/cjs/{icons-fc80a947.js → icons-a0fef92b.js} +2 -8
  15. package/dist/cjs/{index-123ceda0.js → index-58b3ee93.js} +3 -3
  16. package/dist/cjs/{index-786a6369.js → index-7bcd36a0.js} +1 -1
  17. package/dist/cjs/{index-56cc404a.js → index-fbf4d3bf.js} +2 -0
  18. package/dist/cjs/index.cjs.js +9 -8
  19. package/dist/cjs/index.es-6a9d5ef8.js +13834 -0
  20. package/dist/cjs/ion-action-sheet.cjs.entry.js +4 -4
  21. package/dist/cjs/ion-alert.cjs.entry.js +4 -4
  22. package/dist/cjs/ion-app.cjs.entry.js +3 -3
  23. package/dist/cjs/ion-back-button.cjs.entry.js +89 -0
  24. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  25. package/dist/cjs/ion-badge.cjs.entry.js +2 -2
  26. package/dist/cjs/{ion-back-button_4.cjs.entry.js → ion-buttons_3.cjs.entry.js} +2 -83
  27. package/dist/cjs/ion-card-header.cjs.entry.js +2 -2
  28. package/dist/cjs/ion-card-subtitle.cjs.entry.js +2 -2
  29. package/dist/cjs/ion-card-title.cjs.entry.js +2 -2
  30. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  31. package/dist/cjs/{ion-content.cjs.entry.js → ion-content_2.cjs.entry.js} +259 -2
  32. package/dist/cjs/ion-datetime.cjs.entry.js +3 -3
  33. package/dist/cjs/ion-fab-button.cjs.entry.js +2 -2
  34. package/dist/cjs/ion-fab-list.cjs.entry.js +2 -2
  35. package/dist/cjs/ion-fab.cjs.entry.js +2 -2
  36. package/dist/cjs/ion-footer.cjs.entry.js +2 -2
  37. package/dist/cjs/ion-img.cjs.entry.js +2 -2
  38. package/dist/cjs/ion-infinite-scroll-content.cjs.entry.js +2 -2
  39. package/dist/cjs/ion-infinite-scroll.cjs.entry.js +2 -2
  40. package/dist/cjs/ion-item-divider.cjs.entry.js +2 -2
  41. package/dist/cjs/ion-item-group.cjs.entry.js +2 -2
  42. package/dist/cjs/ion-item-option.cjs.entry.js +2 -2
  43. package/dist/cjs/ion-item-options.cjs.entry.js +2 -2
  44. package/dist/cjs/ion-item-sliding.cjs.entry.js +2 -2
  45. package/dist/cjs/ion-loading.cjs.entry.js +3 -3
  46. package/dist/cjs/ion-menu-button.cjs.entry.js +4 -4
  47. package/dist/cjs/ion-menu-toggle.cjs.entry.js +4 -4
  48. package/dist/cjs/ion-menu.cjs.entry.js +3 -3
  49. package/dist/cjs/ion-modal.cjs.entry.js +4 -4
  50. package/dist/cjs/ion-nav-link.cjs.entry.js +1 -1
  51. package/dist/cjs/ion-nav.cjs.entry.js +3 -3
  52. package/dist/cjs/ion-note.cjs.entry.js +2 -2
  53. package/dist/cjs/ion-picker-column.cjs.entry.js +2 -2
  54. package/dist/cjs/ion-picker.cjs.entry.js +3 -3
  55. package/dist/cjs/ion-popover.cjs.entry.js +4 -4
  56. package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
  57. package/dist/cjs/ion-refresher-content.cjs.entry.js +2 -2
  58. package/dist/cjs/ion-refresher.cjs.entry.js +2 -2
  59. package/dist/cjs/ion-reorder-group.cjs.entry.js +2 -2
  60. package/dist/cjs/ion-reorder.cjs.entry.js +2 -2
  61. package/dist/cjs/ion-route-redirect.cjs.entry.js +1 -1
  62. package/dist/cjs/ion-route.cjs.entry.js +1 -1
  63. package/dist/cjs/ion-router-link.cjs.entry.js +2 -2
  64. package/dist/cjs/ion-router-outlet.cjs.entry.js +3 -3
  65. package/dist/cjs/ion-router.cjs.entry.js +1 -1
  66. package/dist/cjs/ion-searchbar.cjs.entry.js +2 -2
  67. package/dist/cjs/ion-segment-button.cjs.entry.js +2 -2
  68. package/dist/cjs/ion-segment.cjs.entry.js +2 -2
  69. package/dist/cjs/ion-select-popover.cjs.entry.js +3 -3
  70. package/dist/cjs/ion-select_2.cjs.entry.js +3 -3
  71. package/dist/cjs/ion-skeleton-text.cjs.entry.js +2 -2
  72. package/dist/cjs/ion-slide.cjs.entry.js +2 -2
  73. package/dist/cjs/ion-slides.cjs.entry.js +2 -2
  74. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  75. package/dist/cjs/ion-tab-bar.cjs.entry.js +2 -2
  76. package/dist/cjs/ion-tab-button.cjs.entry.js +2 -2
  77. package/dist/cjs/ion-tab.cjs.entry.js +1 -1
  78. package/dist/cjs/ion-tabs.cjs.entry.js +1 -1
  79. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  80. package/dist/cjs/ion-thumbnail.cjs.entry.js +2 -2
  81. package/dist/cjs/ion-toast.cjs.entry.js +3 -3
  82. package/dist/cjs/ion-toggle.cjs.entry.js +2 -2
  83. package/dist/cjs/ion-virtual-scroll.cjs.entry.js +1 -1
  84. package/dist/cjs/{ionic-global-57e21b7b.js → ionic-global-4930d319.js} +1 -1
  85. package/dist/cjs/{ios.transition-b6898b4e.js → ios.transition-6e1fd3d6.js} +2 -2
  86. package/dist/cjs/loader.cjs.js +4 -4
  87. package/dist/cjs/{md.transition-dcccb17e.js → md.transition-3652ad78.js} +2 -2
  88. package/dist/cjs/{menu-toggle-util-36785376.js → menu-toggle-util-a8fb4c56.js} +1 -1
  89. package/dist/cjs/{overlays-09ece60d.js → overlays-08a817ea.js} +1 -1
  90. package/dist/cjs/purify-9804ff8d.js +1355 -0
  91. package/dist/cjs/sparkle-animation-player.cjs.entry.js +1 -1
  92. package/dist/cjs/sparkle-code.cjs.entry.js +2 -2
  93. package/dist/cjs/sparkle-compass-post.cjs.entry.js +1 -1
  94. package/dist/cjs/sparkle-compass.cjs.entry.js +1 -1
  95. package/dist/cjs/sparkle-core.cjs.js +4 -4
  96. package/dist/cjs/sparkle-emoji.cjs.entry.js +1 -1
  97. package/dist/cjs/sparkle-facilitator-notes-form.cjs.entry.js +118 -0
  98. package/dist/cjs/sparkle-feed-post.cjs.entry.js +1 -1
  99. package/dist/cjs/sparkle-feedback.cjs.entry.js +19 -6
  100. package/dist/cjs/sparkle-goal-form.cjs.entry.js +75 -34
  101. package/dist/cjs/sparkle-gww-comment-list.cjs.entry.js +2 -2
  102. package/dist/cjs/sparkle-gww-graph.cjs.entry.js +1 -1
  103. package/dist/cjs/sparkle-lower-content-nav.cjs.entry.js +1 -1
  104. package/dist/cjs/sparkle-menu-collapsible.cjs.entry.js +2 -2
  105. package/dist/cjs/sparkle-modal-image.cjs.entry.js +1 -1
  106. package/dist/cjs/sparkle-notfound-page.cjs.entry.js +1 -1
  107. package/dist/cjs/sparkle-overlay.cjs.entry.js +92 -0
  108. package/dist/cjs/sparkle-poll.cjs.entry.js +1 -1
  109. package/dist/cjs/sparkle-quiz-container.cjs.entry.js +1 -1
  110. package/dist/cjs/sparkle-quiz-feedback_5.cjs.entry.js +1 -1
  111. package/dist/cjs/sparkle-quiz.cjs.entry.js +4 -3
  112. package/dist/cjs/sparkle-select.cjs.entry.js +1 -1
  113. package/dist/cjs/sparkle-sidebar.cjs.entry.js +43 -0
  114. package/dist/cjs/sparkle-tab.cjs.entry.js +1 -1
  115. package/dist/cjs/sparkle-table-of-contents.cjs.entry.js +1 -1
  116. package/dist/cjs/sparkle-tabs.cjs.entry.js +1 -1
  117. package/dist/cjs/sparkle-youtube.cjs.entry.js +1 -1
  118. package/dist/cjs/{status-tap-18630b4c.js → status-tap-466a7c6a.js} +1 -1
  119. package/dist/cjs/stencil-async-content.cjs.entry.js +1 -1
  120. package/dist/cjs/stencil-route-title.cjs.entry.js +2 -2
  121. package/dist/cjs/stencil-router-prompt.cjs.entry.js +2 -2
  122. package/dist/cjs/{student.service-93a3c3e1.js → student.service-41c7c78d.js} +17 -14
  123. package/dist/collection/PrivateRoute.js +1 -1
  124. package/dist/collection/{lib → assets/lib}/SignalRAspNetCoreHelper.js +2 -2
  125. package/dist/collection/{lib → assets/lib}/sparkleUtility.js +1 -1
  126. package/dist/collection/assets/svg/profile.svg +2 -0
  127. package/dist/collection/collection-manifest.json +8 -0
  128. package/dist/collection/components/compass-svg/compass-svg.css +15 -0
  129. package/dist/collection/components/compass-svg/compass-svg.js +156 -0
  130. package/dist/collection/components/layout/facilitator/export-lessons/export-lessons.css +7 -0
  131. package/dist/collection/components/layout/facilitator/export-lessons/export-lessons.js +110 -0
  132. package/dist/collection/components/layout/facilitator/facilitator-dashboard/facilitator-dashboard.css +3 -0
  133. package/dist/collection/components/layout/facilitator/facilitator-dashboard/facilitator-dashboard.js +214 -0
  134. package/dist/collection/components/layout/facilitator/facilitator-header/facilitator-header.js +22 -11
  135. package/dist/collection/components/layout/facilitator/facilitator-notes/facilitator-notes-form/facilitator-notes-form.css +3 -0
  136. package/dist/collection/components/layout/facilitator/facilitator-notes/facilitator-notes-form/facilitator-notes-form.js +144 -0
  137. package/dist/collection/components/layout/facilitator/facilitator-notes/facilitator-notes.css +14 -0
  138. package/dist/collection/components/layout/facilitator/facilitator-notes/facilitator-notes.js +64 -0
  139. package/dist/collection/components/layout/facilitator/facilitator-page.css +13 -3
  140. package/dist/collection/components/layout/facilitator/facilitator-page.js +147 -24
  141. package/dist/collection/components/layout/facilitator/online-students/online-students.js +59 -2
  142. package/dist/collection/components/layout/page/page.js +93 -4
  143. package/dist/collection/components/layout/page/templates/index.js +2 -0
  144. package/dist/collection/components/layout/page/templates/pdf.js +8 -0
  145. package/dist/collection/components/mini-apps/sparkle-goals/sparkle-goal-form/sparkle-goal-form.css +3 -3
  146. package/dist/collection/components/mini-apps/sparkle-goals/sparkle-goal-form/sparkle-goal-form.js +98 -64
  147. package/dist/collection/components/mini-apps/sparkle-goals/sparkle-goal-item/sparkle-goal-item.css +12 -29
  148. package/dist/collection/components/mini-apps/sparkle-goals/sparkle-goal-item/sparkle-goal-item.js +23 -6
  149. package/dist/collection/components/mini-apps/sparkle-goals/sparkle-goal-progress/sparkle-goal-progress.css +33 -0
  150. package/dist/collection/components/mini-apps/sparkle-goals/sparkle-goal-progress/sparkle-goal-progress.js +37 -0
  151. package/dist/collection/components/mini-apps/sparkle-goals/sparkle-goals.css +8 -8
  152. package/dist/collection/components/mini-apps/sparkle-goals/sparkle-goals.js +15 -60
  153. package/dist/collection/components/mini-apps/sparkle-gww/sparkle-gww-comment-list/sparkle-gww-comment-list.css +7 -7
  154. package/dist/collection/components/mini-apps/sparkle-gww/sparkle-gww-comment-list/sparkle-gww-comment-list.js +5 -3
  155. package/dist/collection/components/mini-apps/sparkle-gww/sparkle-gww-graph/sparkle-gww-graph.css +3 -3
  156. package/dist/collection/components/mini-apps/sparkle-gww/sparkle-gww-item/sparkle-gww-item.css +30 -29
  157. package/dist/collection/components/mini-apps/sparkle-gww/sparkle-gww-item/sparkle-gww-item.js +113 -13
  158. package/dist/collection/components/mini-apps/sparkle-gww/sparkle-gww.css +3 -3
  159. package/dist/collection/components/mini-apps/sparkle-gww/sparkle-gww.js +30 -64
  160. package/dist/collection/components/mini-apps/sparkle-health/sparkle-health.css +10 -3
  161. package/dist/collection/components/mini-apps/sparkle-health/sparkle-health.js +51 -11
  162. package/dist/collection/components/mini-apps/sparkle-mood/sparkle-mood.css +11 -11
  163. package/dist/collection/components/mini-apps/sparkle-mood/sparkle-mood.js +38 -8
  164. package/dist/collection/components/sparkle-course-root/sparkle-course-root.css +3 -3
  165. package/dist/collection/components/sparkle-course-root/sparkle-course-root.js +30 -27
  166. package/dist/collection/components/sparkle-emoji/sparkle-emoji.css +16 -16
  167. package/dist/collection/components/sparkle-feed-post/sparkle-feed-post.css +3 -3
  168. package/dist/collection/components/sparkle-feedback/sparkle-feedback.css +3 -3
  169. package/dist/collection/components/sparkle-feedback/sparkle-feedback.js +14 -1
  170. package/dist/collection/components/sparkle-forgot-password/sparkle-forgot-password.js +40 -6
  171. package/dist/collection/components/sparkle-login/sparkle-login.js +5 -3
  172. package/dist/collection/components/sparkle-poll/sparkle-poll.css +3 -3
  173. package/dist/collection/components/sparkle-quiz/sparkle-quiz-feedback/sparkle-quiz-feedback.css +3 -3
  174. package/dist/collection/components/sparkle-quiz/sparkle-quiz-input/sparkle-quiz-input.css +3 -3
  175. package/dist/collection/components/sparkle-quiz/sparkle-quiz-poll/sparkle-quiz-poll.css +3 -3
  176. package/dist/collection/components/sparkle-quiz/sparkle-quiz-select/sparkle-quiz-select.css +3 -3
  177. package/dist/collection/components/sparkle-quiz-container/sparkle-quiz-container.css +3 -3
  178. package/dist/collection/components/sparkle-reset-password/sparkle-reset-password.css +3 -0
  179. package/dist/collection/components/sparkle-reset-password/sparkle-reset-password.js +126 -0
  180. package/dist/collection/components/sparkle-root/sparkle-root.css +16 -0
  181. package/dist/collection/components/sparkle-root/sparkle-root.js +24 -1
  182. package/dist/collection/components/sparkle-signup/sparkle-signup.js +18 -14
  183. package/dist/collection/components/sparkle-unauthorized/sparkle-unauthorized.css +13 -13
  184. package/dist/collection/components/sparkle-user-enrollment/sparkle-user-enrollment.css +3 -3
  185. package/dist/collection/components/sparkle-user-profile/sparkle-user-profile.css +54 -3
  186. package/dist/collection/components/sparkle-user-profile/sparkle-user-profile.js +35 -8
  187. package/dist/collection/components/sparkle-validation-error/sparkle-validation-error.css +11 -0
  188. package/dist/collection/components/sparkle-validation-error/sparkle-validation-error.js +44 -0
  189. package/dist/collection/icons.js +1 -0
  190. package/dist/collection/models/class.model.js +5 -1
  191. package/dist/collection/models/facilitator-dashboard.model.js +5 -0
  192. package/dist/collection/services/account.service.js +42 -4
  193. package/dist/collection/services/appdata.service.js +60 -0
  194. package/dist/collection/services/auth/auth.service.js +34 -25
  195. package/dist/collection/services/environment/environment-config.js +6 -2
  196. package/dist/collection/services/facilitator.service.js +76 -0
  197. package/dist/collection/services/feed.service.js +43 -0
  198. package/dist/collection/services/httpService.js +16 -3
  199. package/dist/collection/services/media.service.js +29 -0
  200. package/dist/collection/services/signalR.service.js +85 -0
  201. package/dist/collection/services/student.service.js +8 -7
  202. package/dist/collection/stores/auth.store.js +2 -1
  203. package/dist/collection/stores/facilitator.store.js +11 -2
  204. package/dist/collection/stores/feed.store.js +3 -1
  205. package/dist/collection/stores/goal.store.js +2 -0
  206. package/dist/collection/stores/media.store.js +5 -0
  207. package/dist/collection/stores/signalR.store.js +6 -0
  208. package/dist/collection/stores/user.store.js +3 -1
  209. package/dist/collection/util.js +23 -1
  210. package/dist/collection/utils.js +0 -1
  211. package/dist/esm/{PrivateRoute-b34b53e0.js → PrivateRoute-9f0973bb.js} +42 -42
  212. package/dist/esm/{active-router-866d742c.js → active-router-b3ae32c7.js} +1 -1
  213. package/dist/esm/{app-globals-a5620b62.js → app-globals-6451faf3.js} +1 -1
  214. package/dist/esm/{assets.service-da511a45.js → assets.service-66e848b8.js} +2 -26
  215. package/dist/esm/{httpService-ed44926c.js → auth.store-dd944bc2.js} +31 -6
  216. package/dist/esm/{button-active-fe7ddd19.js → button-active-97535443.js} +1 -1
  217. package/dist/esm/compass-svg.entry.js +128 -0
  218. package/dist/esm/context-consumer.entry.js +1 -1
  219. package/dist/esm/course-select.entry.js +1 -1
  220. package/dist/esm/environment-config.service-2b5d692b.js +27 -0
  221. package/dist/esm/facilitator.service-cddb2feb.js +91 -0
  222. package/dist/esm/feed.service-0fda1e36.js +5787 -0
  223. package/dist/esm/header-mobile-collapse_60.entry.js +19 -0
  224. package/dist/esm/{icons-375b5504.js → icons-33e5804c.js} +3 -7
  225. package/dist/esm/{index-181d9e06.js → index-55fc9f5e.js} +2 -1
  226. package/dist/esm/{index-db21c1c7.js → index-a94619f9.js} +3 -3
  227. package/dist/esm/{index-c6bfe5ca.js → index-dc09784f.js} +1 -1
  228. package/dist/esm/index.es-8ad3b6a1.js +13748 -0
  229. package/dist/esm/index.js +7 -6
  230. package/dist/esm/ion-action-sheet.entry.js +4 -4
  231. package/dist/esm/ion-alert.entry.js +4 -4
  232. package/dist/esm/ion-app.entry.js +3 -3
  233. package/dist/esm/ion-back-button.entry.js +85 -0
  234. package/dist/esm/ion-backdrop.entry.js +2 -2
  235. package/dist/esm/ion-badge.entry.js +2 -2
  236. package/dist/esm/{ion-back-button_4.entry.js → ion-buttons_3.entry.js} +4 -84
  237. package/dist/esm/ion-card-header.entry.js +2 -2
  238. package/dist/esm/ion-card-subtitle.entry.js +2 -2
  239. package/dist/esm/ion-card-title.entry.js +2 -2
  240. package/dist/esm/ion-chip.entry.js +2 -2
  241. package/dist/esm/{ion-content.entry.js → ion-content_2.entry.js} +259 -3
  242. package/dist/esm/ion-datetime.entry.js +3 -3
  243. package/dist/esm/ion-fab-button.entry.js +2 -2
  244. package/dist/esm/ion-fab-list.entry.js +2 -2
  245. package/dist/esm/ion-fab.entry.js +2 -2
  246. package/dist/esm/ion-footer.entry.js +2 -2
  247. package/dist/esm/ion-img.entry.js +2 -2
  248. package/dist/esm/ion-infinite-scroll-content.entry.js +2 -2
  249. package/dist/esm/ion-infinite-scroll.entry.js +2 -2
  250. package/dist/esm/ion-item-divider.entry.js +2 -2
  251. package/dist/esm/ion-item-group.entry.js +2 -2
  252. package/dist/esm/ion-item-option.entry.js +2 -2
  253. package/dist/esm/ion-item-options.entry.js +2 -2
  254. package/dist/esm/ion-item-sliding.entry.js +2 -2
  255. package/dist/esm/ion-loading.entry.js +3 -3
  256. package/dist/esm/ion-menu-button.entry.js +4 -4
  257. package/dist/esm/ion-menu-toggle.entry.js +4 -4
  258. package/dist/esm/ion-menu.entry.js +3 -3
  259. package/dist/esm/ion-modal.entry.js +4 -4
  260. package/dist/esm/ion-nav-link.entry.js +1 -1
  261. package/dist/esm/ion-nav.entry.js +3 -3
  262. package/dist/esm/ion-note.entry.js +2 -2
  263. package/dist/esm/ion-picker-column.entry.js +2 -2
  264. package/dist/esm/ion-picker.entry.js +3 -3
  265. package/dist/esm/ion-popover.entry.js +4 -4
  266. package/dist/esm/ion-progress-bar.entry.js +2 -2
  267. package/dist/esm/ion-refresher-content.entry.js +2 -2
  268. package/dist/esm/ion-refresher.entry.js +2 -2
  269. package/dist/esm/ion-reorder-group.entry.js +2 -2
  270. package/dist/esm/ion-reorder.entry.js +2 -2
  271. package/dist/esm/ion-route-redirect.entry.js +1 -1
  272. package/dist/esm/ion-route.entry.js +1 -1
  273. package/dist/esm/ion-router-link.entry.js +2 -2
  274. package/dist/esm/ion-router-outlet.entry.js +3 -3
  275. package/dist/esm/ion-router.entry.js +1 -1
  276. package/dist/esm/ion-searchbar.entry.js +2 -2
  277. package/dist/esm/ion-segment-button.entry.js +2 -2
  278. package/dist/esm/ion-segment.entry.js +2 -2
  279. package/dist/esm/ion-select-popover.entry.js +3 -3
  280. package/dist/esm/ion-select_2.entry.js +3 -3
  281. package/dist/esm/ion-skeleton-text.entry.js +2 -2
  282. package/dist/esm/ion-slide.entry.js +2 -2
  283. package/dist/esm/ion-slides.entry.js +2 -2
  284. package/dist/esm/ion-split-pane.entry.js +2 -2
  285. package/dist/esm/ion-tab-bar.entry.js +2 -2
  286. package/dist/esm/ion-tab-button.entry.js +2 -2
  287. package/dist/esm/ion-tab.entry.js +1 -1
  288. package/dist/esm/ion-tabs.entry.js +1 -1
  289. package/dist/esm/ion-textarea.entry.js +2 -2
  290. package/dist/esm/ion-thumbnail.entry.js +2 -2
  291. package/dist/esm/ion-toast.entry.js +3 -3
  292. package/dist/esm/ion-toggle.entry.js +2 -2
  293. package/dist/esm/ion-virtual-scroll.entry.js +1 -1
  294. package/dist/esm/{ionic-global-2d79c2f2.js → ionic-global-1f9287cc.js} +1 -1
  295. package/dist/esm/{ios.transition-e24a66ff.js → ios.transition-d01abefd.js} +2 -2
  296. package/dist/esm/loader.js +4 -4
  297. package/dist/esm/{md.transition-a4f96d01.js → md.transition-245ffa55.js} +2 -2
  298. package/dist/esm/{menu-toggle-util-f9838cfb.js → menu-toggle-util-fe83fcf5.js} +1 -1
  299. package/dist/esm/{overlays-0222dd55.js → overlays-8363621c.js} +2 -2
  300. package/dist/esm/purify-76634fc8.js +1353 -0
  301. package/dist/esm/sparkle-animation-player.entry.js +1 -1
  302. package/dist/esm/sparkle-code.entry.js +2 -2
  303. package/dist/esm/sparkle-compass-post.entry.js +1 -1
  304. package/dist/esm/sparkle-compass.entry.js +1 -1
  305. package/dist/esm/sparkle-core.js +4 -4
  306. package/dist/esm/sparkle-emoji.entry.js +1 -1
  307. package/dist/esm/sparkle-facilitator-notes-form.entry.js +114 -0
  308. package/dist/esm/sparkle-feed-post.entry.js +1 -1
  309. package/dist/esm/sparkle-feedback.entry.js +19 -6
  310. package/dist/esm/sparkle-goal-form.entry.js +73 -32
  311. package/dist/esm/sparkle-gww-comment-list.entry.js +2 -2
  312. package/dist/esm/sparkle-gww-graph.entry.js +1 -1
  313. package/dist/esm/sparkle-lower-content-nav.entry.js +1 -1
  314. package/dist/esm/sparkle-menu-collapsible.entry.js +2 -2
  315. package/dist/esm/sparkle-modal-image.entry.js +1 -1
  316. package/dist/esm/sparkle-notfound-page.entry.js +1 -1
  317. package/dist/esm/sparkle-overlay.entry.js +88 -0
  318. package/dist/esm/sparkle-poll.entry.js +1 -1
  319. package/dist/esm/sparkle-quiz-container.entry.js +1 -1
  320. package/dist/esm/sparkle-quiz-feedback_5.entry.js +1 -1
  321. package/dist/esm/sparkle-quiz.entry.js +3 -2
  322. package/dist/esm/sparkle-select.entry.js +1 -1
  323. package/dist/esm/sparkle-sidebar.entry.js +39 -0
  324. package/dist/esm/sparkle-tab.entry.js +1 -1
  325. package/dist/esm/sparkle-table-of-contents.entry.js +1 -1
  326. package/dist/esm/sparkle-tabs.entry.js +1 -1
  327. package/dist/esm/sparkle-youtube.entry.js +1 -1
  328. package/dist/esm/{status-tap-dac23492.js → status-tap-9221cd79.js} +1 -1
  329. package/dist/esm/stencil-async-content.entry.js +1 -1
  330. package/dist/esm/stencil-route-title.entry.js +2 -2
  331. package/dist/esm/stencil-router-prompt.entry.js +2 -2
  332. package/dist/esm/{student.service-7c806a49.js → student.service-c36c5a75.js} +12 -9
  333. package/dist/sparkle-core/index.esm.js +1 -1
  334. package/dist/sparkle-core/{p-f4e2b82a.entry.js → p-016bf847.entry.js} +1 -1
  335. package/dist/sparkle-core/p-019d9d02.entry.js +1 -0
  336. package/dist/sparkle-core/p-03eb2164.js +1 -0
  337. package/dist/sparkle-core/{p-5cee001e.entry.js → p-03fd27d0.entry.js} +1 -1
  338. package/dist/sparkle-core/p-07018d29.js +1 -0
  339. package/dist/sparkle-core/p-083d57a6.entry.js +1 -0
  340. package/dist/sparkle-core/p-090f2624.js +1 -0
  341. package/dist/sparkle-core/{p-bc4e8c2a.entry.js → p-09d43bee.entry.js} +1 -1
  342. package/dist/sparkle-core/{p-b785a9ac.entry.js → p-0bd3e81f.entry.js} +1 -1
  343. package/dist/sparkle-core/{p-91889ff0.js → p-0e1c7c8c.js} +1 -1
  344. package/dist/sparkle-core/{p-1224fabd.entry.js → p-0efbc0b3.entry.js} +1 -1
  345. package/dist/sparkle-core/{p-7a898bda.entry.js → p-13b0cdfc.entry.js} +1 -1
  346. package/dist/sparkle-core/{p-586cb4d7.entry.js → p-13c9bf3a.entry.js} +1 -1
  347. package/dist/sparkle-core/{p-863b83d6.entry.js → p-151afa9e.entry.js} +1 -1
  348. package/dist/sparkle-core/{p-00adbab7.entry.js → p-15d68269.entry.js} +1 -1
  349. package/dist/sparkle-core/p-17507402.entry.js +1 -0
  350. package/dist/sparkle-core/{p-8bb44df7.entry.js → p-1bf8bed6.entry.js} +1 -1
  351. package/dist/sparkle-core/p-1ca4bf1d.entry.js +1 -0
  352. package/dist/sparkle-core/{p-5ca31915.entry.js → p-1e866c41.entry.js} +1 -1
  353. package/dist/sparkle-core/p-22926eed.entry.js +1 -0
  354. package/dist/sparkle-core/{p-517bb889.entry.js → p-2474bf60.entry.js} +1 -1
  355. package/dist/sparkle-core/{p-ffe93176.entry.js → p-25bbf9b4.entry.js} +1 -1
  356. package/dist/sparkle-core/p-2a45b732.js +1 -0
  357. package/dist/sparkle-core/{p-4572c448.entry.js → p-2abf4d37.entry.js} +1 -1
  358. package/dist/sparkle-core/{p-0c162ac4.entry.js → p-2c5edb9f.entry.js} +1 -1
  359. package/dist/sparkle-core/p-30b641a4.entry.js +1 -0
  360. package/dist/sparkle-core/{p-c05eb884.entry.js → p-359422b6.entry.js} +1 -1
  361. package/dist/sparkle-core/{p-62141bd4.entry.js → p-37bfb548.entry.js} +1 -1
  362. package/dist/sparkle-core/{p-80e128b9.entry.js → p-3a29a75b.entry.js} +1 -1
  363. package/dist/sparkle-core/{p-e5e40803.entry.js → p-3bb55510.entry.js} +1 -1
  364. package/dist/sparkle-core/p-3be0a218.js +1 -0
  365. package/dist/sparkle-core/{p-e5845154.entry.js → p-3cd28c60.entry.js} +1 -1
  366. package/dist/sparkle-core/{p-6f571ea1.entry.js → p-3f5d7a08.entry.js} +1 -1
  367. package/dist/sparkle-core/p-40db85ac.entry.js +1 -0
  368. package/dist/sparkle-core/{p-114fcfc1.entry.js → p-447163be.entry.js} +1 -1
  369. package/dist/sparkle-core/{p-bbb3b417.entry.js → p-49265a8e.entry.js} +1 -1
  370. package/dist/sparkle-core/{p-76c4e33b.entry.js → p-4950f841.entry.js} +1 -1
  371. package/dist/sparkle-core/{p-1cd371a7.entry.js → p-4d8cb365.entry.js} +1 -1
  372. package/dist/sparkle-core/p-4e28ca37.entry.js +1 -0
  373. package/dist/sparkle-core/{p-f985d69e.entry.js → p-5073899e.entry.js} +1 -1
  374. package/dist/sparkle-core/p-52355989.entry.js +1 -0
  375. package/dist/sparkle-core/{p-1898fe4c.entry.js → p-581ca370.entry.js} +1 -1
  376. package/dist/sparkle-core/{p-48d24341.entry.js → p-5b366c20.entry.js} +1 -1
  377. package/dist/sparkle-core/{p-ff092368.entry.js → p-5dce20b9.entry.js} +1 -1
  378. package/dist/sparkle-core/{p-c1a4ba92.entry.js → p-6006beec.entry.js} +1 -1
  379. package/dist/sparkle-core/{p-d4339e9c.entry.js → p-600d04fc.entry.js} +1 -1
  380. package/dist/sparkle-core/{p-257fd781.entry.js → p-60828739.entry.js} +1 -1
  381. package/dist/sparkle-core/{p-e48343fe.entry.js → p-6112b180.entry.js} +1 -1
  382. package/dist/sparkle-core/p-660fccf6.js +1 -0
  383. package/dist/sparkle-core/{p-0b04e1c4.entry.js → p-66e3bd1c.entry.js} +1 -1
  384. package/dist/sparkle-core/{p-9523cc6c.entry.js → p-66eb6b7a.entry.js} +1 -1
  385. package/dist/sparkle-core/p-67ddec3f.entry.js +1 -0
  386. package/dist/sparkle-core/p-68cb7d41.entry.js +1 -0
  387. package/dist/sparkle-core/{p-e7d32b53.entry.js → p-68f3c93d.entry.js} +1 -1
  388. package/dist/sparkle-core/p-69cd49de.js +1 -0
  389. package/dist/sparkle-core/{p-fb3ea85e.js → p-6d506f4e.js} +1 -1
  390. package/dist/sparkle-core/{p-7c39c5c0.entry.js → p-6edbdde5.entry.js} +1 -1
  391. package/dist/sparkle-core/p-6f0ecbe3.js +1 -0
  392. package/dist/sparkle-core/{p-7b7ebe04.entry.js → p-73a646fb.entry.js} +1 -1
  393. package/dist/sparkle-core/{p-0e1cdb86.js → p-765b8593.js} +1 -1
  394. package/dist/sparkle-core/{p-22836c22.js → p-770128c8.js} +1 -1
  395. package/dist/sparkle-core/{p-05bcee18.entry.js → p-7b37d523.entry.js} +1 -1
  396. package/dist/sparkle-core/{p-1d62b3ff.entry.js → p-7d83d006.entry.js} +1 -1
  397. package/dist/sparkle-core/p-7f3d5344.js +1 -0
  398. package/dist/sparkle-core/{p-99d08952.entry.js → p-81651f26.entry.js} +1 -1
  399. package/dist/sparkle-core/{p-d046110e.entry.js → p-85d31769.entry.js} +1 -1
  400. package/dist/sparkle-core/{p-42443d61.entry.js → p-86148067.entry.js} +1 -1
  401. package/dist/sparkle-core/{p-88ea26d4.entry.js → p-8b5bc1d6.entry.js} +1 -1
  402. package/dist/sparkle-core/{p-e0603c01.entry.js → p-8c3ee44c.entry.js} +1 -1
  403. package/dist/sparkle-core/{p-fce285b3.entry.js → p-9007a06b.entry.js} +1 -1
  404. package/dist/sparkle-core/{p-89aca87d.entry.js → p-90482861.entry.js} +1 -1
  405. package/dist/sparkle-core/{p-8dddaae1.entry.js → p-92d42c10.entry.js} +1 -1
  406. package/dist/sparkle-core/p-9a443f51.js +1 -0
  407. package/dist/sparkle-core/{p-aae8e3b8.entry.js → p-9ca56f5d.entry.js} +1 -1
  408. package/dist/sparkle-core/{p-c5cc6d79.entry.js → p-a061537e.entry.js} +1 -1
  409. package/dist/sparkle-core/{p-b0bb946d.entry.js → p-a250e2ae.entry.js} +1 -1
  410. package/dist/sparkle-core/{p-dc903858.entry.js → p-abe2676a.entry.js} +1 -1
  411. package/dist/sparkle-core/{p-64592d28.entry.js → p-ac5e5308.entry.js} +1 -1
  412. package/dist/sparkle-core/{p-6df23697.entry.js → p-afbaad64.entry.js} +1 -1
  413. package/dist/sparkle-core/p-b080c1e3.entry.js +1 -0
  414. package/dist/sparkle-core/p-b226f54d.js +1 -0
  415. package/dist/sparkle-core/p-b2d4840f.js +3 -0
  416. package/dist/sparkle-core/{p-9835f777.entry.js → p-bac45a26.entry.js} +1 -1
  417. package/dist/sparkle-core/p-bbe5977b.entry.js +1 -0
  418. package/dist/sparkle-core/p-bc568dcb.js +1 -0
  419. package/dist/sparkle-core/{p-60d25a7f.entry.js → p-bccd9036.entry.js} +1 -1
  420. package/dist/sparkle-core/{p-58a6d8ab.entry.js → p-c163c16d.entry.js} +1 -1
  421. package/dist/sparkle-core/{p-8626ebe6.entry.js → p-c3166584.entry.js} +1 -1
  422. package/dist/sparkle-core/{p-589d4664.entry.js → p-c34269ae.entry.js} +1 -1
  423. package/dist/sparkle-core/{p-3c3194fd.js → p-c466ee32.js} +1 -1
  424. package/dist/sparkle-core/p-c6710592.entry.js +1 -0
  425. package/dist/sparkle-core/{p-71f184d9.entry.js → p-c7022391.entry.js} +1 -1
  426. package/dist/sparkle-core/{p-1cd3c5d0.entry.js → p-c70b9765.entry.js} +1 -1
  427. package/dist/sparkle-core/{p-2e286dc5.entry.js → p-c82b05e0.entry.js} +1 -1
  428. package/dist/sparkle-core/{p-ebe7e674.entry.js → p-cf2332bb.entry.js} +1 -1
  429. package/dist/sparkle-core/{p-07d16606.entry.js → p-d069b834.entry.js} +1 -1
  430. package/dist/sparkle-core/{p-92fa1d62.js → p-d4ad796c.js} +1 -1
  431. package/dist/sparkle-core/{p-d9669c41.entry.js → p-d4d9aa4a.entry.js} +1 -1
  432. package/dist/sparkle-core/{p-f87fecb0.entry.js → p-d5023db0.entry.js} +1 -1
  433. package/dist/sparkle-core/p-d6152660.entry.js +1 -0
  434. package/dist/sparkle-core/{p-7e8645c2.js → p-d63406d8.js} +1 -1
  435. package/dist/sparkle-core/{p-3a75bd70.entry.js → p-dba672d5.entry.js} +1 -1
  436. package/dist/sparkle-core/{p-2fa5a8dd.entry.js → p-dd73d01a.entry.js} +1 -1
  437. package/dist/sparkle-core/p-de33872d.entry.js +1 -0
  438. package/dist/sparkle-core/p-dee2128a.entry.js +1 -0
  439. package/dist/sparkle-core/{p-7f4ae7be.entry.js → p-df07e132.entry.js} +1 -1
  440. package/dist/sparkle-core/p-e5d5aaa5.js +1 -0
  441. package/dist/sparkle-core/{p-0f83c1c3.entry.js → p-e72c6d87.entry.js} +1 -1
  442. package/dist/sparkle-core/{p-1a6ca540.entry.js → p-e818b11d.entry.js} +1 -1
  443. package/dist/sparkle-core/{p-e7d9176a.entry.js → p-e8df6ea6.entry.js} +1 -1
  444. package/dist/sparkle-core/{p-b9f544da.entry.js → p-e975924a.entry.js} +1 -1
  445. package/dist/sparkle-core/p-eb56aa20.entry.js +1 -0
  446. package/dist/sparkle-core/p-ec2e029e.js +483 -0
  447. package/dist/sparkle-core/{p-9a192334.js → p-ef2a2172.js} +1 -1
  448. package/dist/sparkle-core/p-f1a4ab33.entry.js +1 -0
  449. package/dist/sparkle-core/{p-cac9f43c.entry.js → p-f43ac631.entry.js} +1 -1
  450. package/dist/sparkle-core/{p-826aea5e.entry.js → p-f72a6e6d.entry.js} +1 -1
  451. package/dist/sparkle-core/{p-c557858e.entry.js → p-f9143c5d.entry.js} +1 -1
  452. package/dist/sparkle-core/{p-540238c1.entry.js → p-fd62283e.entry.js} +1 -1
  453. package/dist/sparkle-core/{p-6620c98e.entry.js → p-fef71e0e.entry.js} +1 -1
  454. package/dist/sparkle-core/sparkle-core.css +1 -1
  455. package/dist/sparkle-core/sparkle-core.esm.js +1 -1
  456. package/dist/types/{lib → assets/lib}/SignalRAspNetCoreHelper.d.ts +0 -0
  457. package/dist/types/{lib → assets/lib}/sparkleUtility.d.ts +0 -0
  458. package/dist/types/components/compass-svg/compass-svg.d.ts +34 -0
  459. package/dist/types/components/layout/facilitator/export-lessons/export-lessons.d.ts +16 -0
  460. package/dist/types/components/layout/facilitator/facilitator-dashboard/facilitator-dashboard.d.ts +22 -0
  461. package/dist/types/components/layout/facilitator/facilitator-header/facilitator-header.d.ts +1 -0
  462. package/dist/types/components/layout/facilitator/facilitator-notes/facilitator-notes-form/facilitator-notes-form.d.ts +24 -0
  463. package/dist/types/components/layout/facilitator/facilitator-notes/facilitator-notes.d.ts +9 -0
  464. package/dist/types/components/layout/facilitator/facilitator-page.d.ts +19 -2
  465. package/dist/types/components/layout/facilitator/online-students/online-students.d.ts +6 -0
  466. package/dist/types/components/layout/page/page.d.ts +8 -0
  467. package/dist/types/components/layout/page/templates/index.d.ts +1 -0
  468. package/dist/types/components/layout/page/templates/pdf.d.ts +2 -0
  469. package/dist/types/components/mini-apps/sparkle-goals/sparkle-goal-form/sparkle-goal-form.d.ts +6 -5
  470. package/dist/types/components/mini-apps/sparkle-goals/sparkle-goal-item/sparkle-goal-item.d.ts +1 -0
  471. package/dist/types/components/mini-apps/sparkle-goals/sparkle-goal-progress/sparkle-goal-progress.d.ts +4 -0
  472. package/dist/types/components/mini-apps/sparkle-goals/sparkle-goals.d.ts +3 -3
  473. package/dist/types/components/mini-apps/sparkle-gww/sparkle-gww-item/sparkle-gww-item.d.ts +9 -2
  474. package/dist/types/components/mini-apps/sparkle-gww/sparkle-gww.d.ts +4 -2
  475. package/dist/types/components/mini-apps/sparkle-health/sparkle-health.d.ts +4 -1
  476. package/dist/types/components/mini-apps/sparkle-mood/sparkle-mood.d.ts +3 -0
  477. package/dist/types/components/sparkle-course-root/sparkle-course-root.d.ts +6 -4
  478. package/dist/types/components/sparkle-forgot-password/sparkle-forgot-password.d.ts +3 -0
  479. package/dist/types/components/sparkle-reset-password/sparkle-reset-password.d.ts +22 -0
  480. package/dist/types/components/sparkle-root/sparkle-root.d.ts +4 -0
  481. package/dist/types/components/sparkle-signup/sparkle-signup.d.ts +1 -1
  482. package/dist/types/components/sparkle-user-profile/sparkle-user-profile.d.ts +4 -0
  483. package/dist/types/components/sparkle-validation-error/sparkle-validation-error.d.ts +7 -0
  484. package/dist/types/components.d.ts +143 -6
  485. package/dist/types/models/api.model.d.ts +8 -0
  486. package/dist/types/models/class.model.d.ts +59 -6
  487. package/dist/types/models/facilitator-dashboard.model.d.ts +61 -0
  488. package/dist/types/models/goal.model.d.ts +3 -2
  489. package/dist/types/services/account.service.d.ts +11 -2
  490. package/dist/types/services/appdata.service.d.ts +13 -0
  491. package/dist/types/services/facilitator.service.d.ts +22 -0
  492. package/dist/types/services/feed.service.d.ts +10 -0
  493. package/dist/types/services/httpService.d.ts +1 -0
  494. package/dist/types/services/media.service.d.ts +8 -0
  495. package/dist/types/services/signalR.service.d.ts +10 -0
  496. package/dist/types/services/student.service.d.ts +1 -1
  497. package/dist/types/stores/auth.store.d.ts +1 -0
  498. package/dist/types/stores/facilitator.store.d.ts +11 -2
  499. package/dist/types/stores/feed.store.d.ts +3 -1
  500. package/dist/types/stores/goal.store.d.ts +4 -1
  501. package/dist/types/stores/media.store.d.ts +8 -0
  502. package/dist/types/stores/signalR.store.d.ts +10 -0
  503. package/dist/types/stores/user.store.d.ts +3 -1
  504. package/dist/types/util.d.ts +11 -0
  505. package/package.json +7 -3
  506. package/dist/cjs/header-mobile-collapse_51.cjs.entry.js +0 -5285
  507. package/dist/cjs/ion-card-content.cjs.entry.js +0 -30
  508. package/dist/cjs/ion-card.cjs.entry.js +0 -70
  509. package/dist/cjs/ion-header.cjs.entry.js +0 -264
  510. package/dist/cjs/ion-spinner.cjs.entry.js +0 -64
  511. package/dist/cjs/sparkle-page-footer.cjs.entry.js +0 -27
  512. package/dist/cjs/sparkle-pagination.cjs.entry.js +0 -31
  513. package/dist/cjs/util-dd1e6ff1.js +0 -23
  514. package/dist/collection/lib/sparkle.js +0 -524
  515. package/dist/collection/lib/sparkle.signalr-client.js +0 -135
  516. package/dist/collection/pages/course/welcome-to-mind-body/introduction/animation/m4l1p1.js +0 -2884
  517. package/dist/esm/header-mobile-collapse_51.entry.js +0 -5231
  518. package/dist/esm/ion-card-content.entry.js +0 -26
  519. package/dist/esm/ion-card.entry.js +0 -66
  520. package/dist/esm/ion-header.entry.js +0 -260
  521. package/dist/esm/ion-spinner.entry.js +0 -60
  522. package/dist/esm/sparkle-page-footer.entry.js +0 -23
  523. package/dist/esm/sparkle-pagination.entry.js +0 -27
  524. package/dist/esm/util-0e88110d.js +0 -17
  525. package/dist/sparkle-core/p-0f511fed.entry.js +0 -1
  526. package/dist/sparkle-core/p-1227bbd6.entry.js +0 -1
  527. package/dist/sparkle-core/p-2d6fbde3.js +0 -1
  528. package/dist/sparkle-core/p-33b46e43.entry.js +0 -1
  529. package/dist/sparkle-core/p-3f769f4e.entry.js +0 -1
  530. package/dist/sparkle-core/p-51ffa746.entry.js +0 -1
  531. package/dist/sparkle-core/p-5336d922.js +0 -1
  532. package/dist/sparkle-core/p-58ede27f.js +0 -1
  533. package/dist/sparkle-core/p-5c51baac.js +0 -1
  534. package/dist/sparkle-core/p-5e8dc338.entry.js +0 -1
  535. package/dist/sparkle-core/p-6bf9263e.js +0 -1
  536. package/dist/sparkle-core/p-7d1b4002.entry.js +0 -1
  537. package/dist/sparkle-core/p-7d7a0a87.entry.js +0 -1
  538. package/dist/sparkle-core/p-7e8a6354.js +0 -1
  539. package/dist/sparkle-core/p-87e97bdd.entry.js +0 -1
  540. package/dist/sparkle-core/p-880c438c.entry.js +0 -1
  541. package/dist/sparkle-core/p-8fdccc4a.entry.js +0 -1
  542. package/dist/sparkle-core/p-9563bf6c.js +0 -1
  543. package/dist/sparkle-core/p-971b29c9.entry.js +0 -1
  544. package/dist/sparkle-core/p-972d5bd1.entry.js +0 -1
  545. package/dist/sparkle-core/p-a7754cd1.entry.js +0 -1
  546. package/dist/sparkle-core/p-b3dfac3e.js +0 -1
  547. package/dist/sparkle-core/p-c20861ac.entry.js +0 -1
  548. package/dist/sparkle-core/p-c396afb2.entry.js +0 -1
  549. package/dist/sparkle-core/p-c5de0b12.js +0 -1
  550. package/dist/sparkle-core/p-d3ea02b3.js +0 -1
  551. package/dist/sparkle-core/p-df5c60a1.entry.js +0 -1
  552. package/dist/sparkle-core/p-eeb7a650.entry.js +0 -1
  553. package/dist/sparkle-core/p-f0604500.entry.js +0 -1
  554. package/dist/sparkle-core/p-f2de03c5.entry.js +0 -1
@@ -0,0 +1,144 @@
1
+ import { Component, Host, Element, State, h, Prop } from '@stencil/core';
2
+ import { toastController } from "@ionic/core";
3
+ import { FacilitatorService } from '../../../../../services/facilitator.service';
4
+ import { LoadingSpinner } from '../../../../../icons';
5
+ import facilitatorStore from '../../../../../stores/facilitator.store';
6
+ export class FacilitatorNotesForm {
7
+ constructor() {
8
+ this.formControls = {
9
+ noteText: {
10
+ isValid: true,
11
+ value: "",
12
+ errorMessage: "",
13
+ validate: value => {
14
+ console.log(value);
15
+ if (value && value.length > 0) {
16
+ return { valid: true, errorMessage: "" };
17
+ }
18
+ else {
19
+ return { valid: false, errorMessage: "Notes is required" };
20
+ }
21
+ },
22
+ }
23
+ };
24
+ this.submitted = false;
25
+ }
26
+ componentDidLoad() {
27
+ if (this.initialValues) {
28
+ this.changeFormValue("noteText", this.initialValues.NoteText);
29
+ }
30
+ }
31
+ async onSubmit(e) {
32
+ e.preventDefault();
33
+ this.submitted = true;
34
+ let isFormValid = true;
35
+ //Run all validation functions
36
+ for (let controlName in this.formControls) {
37
+ let control = this.formControls[controlName];
38
+ control.isValid = control.validate(control.value).valid;
39
+ control.errorMessage = control.validate(control.value).errorMessage;
40
+ if (!control.isValid) {
41
+ isFormValid = false;
42
+ }
43
+ }
44
+ if (isFormValid) {
45
+ if (this.initialValues && this.initialValues.Id > 0) {
46
+ let result = await FacilitatorService.getInstance().updateFacilitatorNote({
47
+ NoteText: this.formControls.noteText.value,
48
+ Id: this.initialValues.Id
49
+ });
50
+ if (result.Succeeded) {
51
+ const toast = await toastController.create({
52
+ message: "Notes updated successfully",
53
+ duration: 3000
54
+ });
55
+ toast.present();
56
+ this.dismiss();
57
+ }
58
+ else {
59
+ const toast = await toastController.create({
60
+ message: result.Message,
61
+ duration: 3000
62
+ });
63
+ toast.present();
64
+ }
65
+ }
66
+ else {
67
+ let result = await FacilitatorService.getInstance().addFacilitatorNote({
68
+ NoteText: this.formControls.noteText.value
69
+ });
70
+ if (result.Succeeded) {
71
+ const toast = await toastController.create({
72
+ message: "Notes added successfully",
73
+ duration: 3000
74
+ });
75
+ toast.present();
76
+ this.dismiss();
77
+ }
78
+ else {
79
+ const toast = await toastController.create({
80
+ message: result.Message,
81
+ duration: 3000
82
+ });
83
+ toast.present();
84
+ }
85
+ }
86
+ }
87
+ }
88
+ dismiss(data) {
89
+ // dismiss the closest modal and optionally pass back data
90
+ this.el.closest('ion-modal').dismiss({
91
+ 'dismissed': true
92
+ });
93
+ }
94
+ changeFormValue(controlName, value) {
95
+ this.formControls = Object.assign(Object.assign({}, this.formControls), { [controlName]: Object.assign(Object.assign({}, this.formControls[controlName]), { value: value, isValid: this.formControls[controlName].validate(value).valid, errorMessage: this.formControls[controlName].validate(value).errorMessage }) });
96
+ }
97
+ render() {
98
+ const noteTextValidation = !this.formControls.noteText.isValid ? "is-invalid" : "is-valid";
99
+ return (h(Host, null,
100
+ h("ion-header", { translucent: true },
101
+ h("ion-toolbar", null,
102
+ h("ion-title", null, "Facilitator Note"),
103
+ h("ion-buttons", { slot: "end" },
104
+ h("ion-button", { onClick: () => this.dismiss() }, "Close")))),
105
+ h("ion-content", { class: "ion-padding" },
106
+ h("form", { onSubmit: (e) => this.onSubmit(e), novalidate: true },
107
+ h("div", { class: "mb-3" },
108
+ h("label", { htmlFor: "validationTextarea", class: "form-label" }, "Notes"),
109
+ h("textarea", { class: `form-control ${this.submitted && noteTextValidation}`, placeholder: "Notes", value: this.formControls.noteText.value, onChange: (e) => this.changeFormValue("noteText", e.target.value) }),
110
+ this.formControls.noteText.errorMessage && h("div", { class: "invalid-feedback" }, this.formControls.noteText.errorMessage)),
111
+ h("div", { class: "mb-3" },
112
+ facilitatorStore.state.notesLoading && h(LoadingSpinner, null),
113
+ h("button", { class: "btn btn-primary", type: "submit", disabled: facilitatorStore.state.notesLoading }, "Submit"))))));
114
+ }
115
+ static get is() { return "sparkle-facilitator-notes-form"; }
116
+ static get originalStyleUrls() { return {
117
+ "$": ["facilitator-notes-form.css"]
118
+ }; }
119
+ static get styleUrls() { return {
120
+ "$": ["facilitator-notes-form.css"]
121
+ }; }
122
+ static get properties() { return {
123
+ "initialValues": {
124
+ "type": "unknown",
125
+ "mutable": false,
126
+ "complexType": {
127
+ "original": "{\r\n Id: number,\r\n NoteText: string\r\n }",
128
+ "resolved": "{ Id: number; NoteText: string; }",
129
+ "references": {}
130
+ },
131
+ "required": false,
132
+ "optional": false,
133
+ "docs": {
134
+ "tags": [],
135
+ "text": ""
136
+ }
137
+ }
138
+ }; }
139
+ static get states() { return {
140
+ "formControls": {},
141
+ "submitted": {}
142
+ }; }
143
+ static get elementRef() { return "el"; }
144
+ }
@@ -0,0 +1,14 @@
1
+ :host {
2
+ display: block;
3
+ }
4
+ table {
5
+ table-layout: auto;
6
+ }
7
+
8
+ .c1 {
9
+ width: 80%;
10
+ }
11
+
12
+ .c2 {
13
+ width: 20%;
14
+ }
@@ -0,0 +1,64 @@
1
+ import { Component, Host, h } from '@stencil/core';
2
+ import { FacilitatorService } from '../../../../services/facilitator.service';
3
+ import facilitatorStore from '../../../../stores/facilitator.store';
4
+ import { modalController } from '@ionic/core';
5
+ export class FacilitatorNotes {
6
+ async componentDidLoad() {
7
+ await this.fetchData();
8
+ }
9
+ async fetchData() {
10
+ await FacilitatorService.getInstance().fetchNotes({ showAllNotes: false });
11
+ }
12
+ async deleteNote(id) {
13
+ await FacilitatorService.getInstance().deleteFacilitatorNote(id);
14
+ }
15
+ async deleteNoteConfirmation(id) {
16
+ if (window.confirm("Do you really want to delete this note?")) {
17
+ await this.deleteNote(id);
18
+ }
19
+ }
20
+ async presentFacilitatorNotesModal(values) {
21
+ const modal = await modalController.create({
22
+ component: 'sparkle-facilitator-notes-form',
23
+ cssClass: 'sparkle-modal sparkle-facilitator-notes-form',
24
+ componentProps: {
25
+ initialValues: values
26
+ }
27
+ });
28
+ await modal.present();
29
+ }
30
+ renderNotes() {
31
+ var _a, _b, _c;
32
+ return (h("table", { class: "table" },
33
+ h("thead", null,
34
+ h("tr", null,
35
+ h("th", { scope: "col" }, "Notes"),
36
+ h("th", { scope: "col" }, "Action"))),
37
+ h("tbody", null, (_a = facilitatorStore.state.pageNotes) === null || _a === void 0 ? void 0 :
38
+ _a.map(item => h("tr", null,
39
+ h("td", { class: "c1" }, item.NoteText),
40
+ h("td", { class: "c2" },
41
+ h("div", { class: "d-flex" },
42
+ h("div", { class: "p-2" },
43
+ h("button", { class: "btn btn-primary", type: "button", onClick: () => this.presentFacilitatorNotesModal(item) }, "Edit")),
44
+ h("div", { class: "p-2" },
45
+ h("button", { class: "btn btn-dark", type: "button", onClick: () => this.deleteNoteConfirmation(item.Id) }, "Delete")))))),
46
+ !facilitatorStore.state.pageNotes || ((_b = facilitatorStore.state.pageNotes) === null || _b === void 0 ? void 0 : _b.length) == 0 &&
47
+ h("tr", null,
48
+ h("td", { colSpan: 2 }, facilitatorStore.state.notesLoading ? "Loading..." : (((_c = facilitatorStore.state.pageNotes) === null || _c === void 0 ? void 0 : _c.length) == 0 ? "No Data" : ""))))));
49
+ }
50
+ render() {
51
+ console.log("render");
52
+ return (h(Host, null,
53
+ h("div", { class: "p-2 pb-4 d-md-flex justify-content-md-end" },
54
+ h("button", { class: "btn btn-primary pull-right", type: "button", onClick: () => this.presentFacilitatorNotesModal(null) }, "+ Add Note")),
55
+ this.renderNotes()));
56
+ }
57
+ static get is() { return "sparkle-facilitator-notes"; }
58
+ static get originalStyleUrls() { return {
59
+ "$": ["facilitator-notes.css"]
60
+ }; }
61
+ static get styleUrls() { return {
62
+ "$": ["facilitator-notes.css"]
63
+ }; }
64
+ }
@@ -34,7 +34,7 @@
34
34
  sparkle-facilitator-page {
35
35
  display: grid;
36
36
  font-size: 16px;
37
- grid-template-columns: 1fr 1fr;
37
+ grid-template-columns: 1fr;
38
38
  line-height: 2;
39
39
  /* margin-left: var(--page-margin-left); */
40
40
  margin-top: var(--header-height);
@@ -42,19 +42,20 @@ sparkle-facilitator-page {
42
42
  transform: var(--page-transform, none);
43
43
  transition: transform 200ms cubic-bezier(0.2, 1, 0.2, 1);
44
44
  --page-padding: 2rem;
45
+ padding: 20px;
45
46
  }
46
47
 
47
48
  @media (min-width: 1234px) {
48
49
  sparkle-facilitator-page {
49
50
  /* grid-template-columns: 1fr minmax(0, var(--page-width, 720px)) 3fr; */
50
- grid-template-columns: 1fr 1fr;
51
+ grid-template-columns: 1fr;
51
52
  }
52
53
  }
53
54
 
54
55
  @media (min-width: 1800px) {
55
56
  sparkle-facilitator-page {
56
57
  /* grid-template-columns: 1fr minmax(0, var(--page-width, 720px)) 1fr 240px; */
57
- grid-template-columns: 1fr 1fr;
58
+ grid-template-columns: 1fr;
58
59
  }
59
60
  }
60
61
 
@@ -76,6 +77,8 @@ sparkle-facilitator-page > main.column-2 {
76
77
 
77
78
  sparkle-facilitator-page sparkle-pagination {
78
79
  grid-column: 1 / -1;
80
+ border: none;
81
+ --page-padding: 0rem 1rem;
79
82
  }
80
83
 
81
84
  sparkle-facilitator-page .full-screen {
@@ -86,6 +89,10 @@ sparkle-facilitator-page .full-screen {
86
89
  padding: 0;
87
90
  }
88
91
 
92
+ sparkle-facilitator-page sparkle-page-footer {
93
+ margin-top: 0rem;
94
+ }
95
+
89
96
  sparkle-facilitator-page .page-heading-encapsulation {
90
97
  text-transform: uppercase;
91
98
 
@@ -184,3 +191,6 @@ sparkle-facilitator-page aside {
184
191
  sparkle-facilitator-page main.has-demo .page-meta internal-ad {
185
192
  display: none;
186
193
  }
194
+ sparkle-facilitator-page .tab-content {
195
+ padding: 20px;
196
+ }
@@ -1,40 +1,98 @@
1
- import { Component, Prop, State, Event, Watch, h } from '@stencil/core';
1
+ import { Component, Prop, State, Event, Watch, h, Fragment } from '@stencil/core';
2
+ import { SignalRService } from '../../../services/signalR.service';
2
3
  import templates from '../page/templates';
4
+ import { StoreService } from "../../../services/store.service";
5
+ import { TocStore } from '../../../stores/toc.store';
6
+ import { FacilitatorService } from '../../../services/facilitator.service';
7
+ import facilitatorStore from '../../../stores/facilitator.store';
3
8
  export class FacilitatorPage {
4
9
  constructor() {
10
+ this.isLesson = false;
11
+ this.notesPage = { title: null, path: null, body: null, pageInfo: null };
12
+ this.lessonNotesPage = { title: null, path: null, body: null, pageInfo: null };
5
13
  this.page = { title: null, path: null, body: null, pageInfo: null };
14
+ this.onlineStudents = [];
15
+ this.activetab = "FACILITATOR_NOTES";
6
16
  this.validateFetch = (response) => {
7
17
  if (!response.ok) {
8
18
  throw response;
9
19
  }
10
20
  return response.json();
11
21
  };
12
- this.handleNewPage = (page) => {
22
+ this.handleNotesPage = (page) => {
13
23
  this.badFetch = null;
24
+ this.notesPage = page;
25
+ this.pageDidLoad.emit({ pageInfo: this.notesPage.pageInfo });
26
+ };
27
+ this.handleLessonNotesPage = (page) => {
28
+ this.badFetchLessonNotes = null;
29
+ this.lessonNotesPage = page;
30
+ };
31
+ this.handleNewPage = (page) => {
14
32
  this.page = page;
15
- this.pageDidLoad.emit({ pageInfo: this.page.pageInfo });
33
+ this.page = Object.assign(Object.assign({}, this.page), { nextUrl: "/presentation/teacher" + this.page.nextUrl, previousUrl: "/presentation/teacher" + this.page.previousUrl });
34
+ StoreService.getInstance().UpdateTocPageInfo(this.page.pageInfo);
16
35
  };
17
36
  this.handleBadFetch = (error) => {
18
37
  this.badFetch = error;
19
- this.page = {
38
+ this.notesPage = {
20
39
  title: error.statusText,
21
40
  body: null,
22
41
  path: null,
23
42
  pageInfo: null
24
43
  };
25
44
  };
45
+ this.handleLessonNotesBadFetch = (error) => {
46
+ this.badFetchLessonNotes = error;
47
+ this.lessonNotesPage = {
48
+ title: error.statusText,
49
+ body: null,
50
+ path: null,
51
+ pageInfo: null
52
+ };
53
+ };
54
+ }
55
+ async componentWillLoad() {
56
+ await this.fetchClasses();
57
+ return this.fetchNotesPage(this.notesPath) && this.fetchPage(this.path);
26
58
  }
27
- componentWillLoad() {
28
- return this.fetchPage(this.path);
59
+ componentDidLoad() {
60
+ this.isLesson = TocStore.state.pageInfo.pageId > 0;
61
+ if (!this.isLesson) {
62
+ this.activetab = "ONLINE_STUDENTS";
63
+ }
64
+ }
65
+ async fetchClasses() {
66
+ await FacilitatorService.getInstance().fetchClasses();
67
+ }
68
+ fetchNotesPage(path, oldPath) {
69
+ if (path === null || path === oldPath) {
70
+ return;
71
+ }
72
+ path = /^\/docs\/pages\/[a-z]{2}\.json$/.test(path) ? path.replace('.json', '/index.json') : path;
73
+ let lessonPath = this.getLessonPath(path);
74
+ console.log(lessonPath);
75
+ return fetch(path).then(this.validateFetch).then(this.handleNotesPage).catch(this.handleBadFetch) &&
76
+ fetch(lessonPath).then(this.validateFetch).then(this.handleLessonNotesPage).catch(this.handleLessonNotesBadFetch);
77
+ }
78
+ getLessonPath(path) {
79
+ let splittedPath = path.split("/");
80
+ splittedPath.pop();
81
+ return splittedPath.join("/") + "/lesson-notes.json";
29
82
  }
30
83
  fetchPage(path, oldPath) {
31
- console.log("path", path);
32
84
  if (path === null || path === oldPath) {
33
85
  return;
34
86
  }
87
+ if (SignalRService.getInstance().connection.connectionState == "Connected") {
88
+ SignalRService.getInstance().callSignalR("NavigateFacilitatorPresentationCourseTo", { url: this.path.replace(".json", "") });
89
+ }
35
90
  path = /^\/docs\/pages\/[a-z]{2}\.json$/.test(path) ? path.replace('.json', '/index.json') : path;
36
91
  return fetch(path).then(this.validateFetch).then(this.handleNewPage).catch(this.handleBadFetch);
37
92
  }
93
+ disconnectedCallback() {
94
+ StoreService.getInstance().UpdateTocPageInfo(null);
95
+ }
38
96
  setDocumentMeta(page) {
39
97
  const { title, meta = {} } = page;
40
98
  const metaEls = {
@@ -54,7 +112,7 @@ export class FacilitatorPage {
54
112
  };
55
113
  // Title
56
114
  const getTitle = () => {
57
- const suffix = /^\/docs\/pages.*$/.test(this.path) ? 'Sparkle' : 'Sparkle';
115
+ const suffix = /^\/docs\/pages.*$/.test(this.notesPath) ? 'Sparkle' : 'Sparkle';
58
116
  // Favor meta title, else go with auto-title. fallback to generic title
59
117
  return meta.title || title ? `${title} - ${suffix}` : suffix;
60
118
  };
@@ -74,29 +132,68 @@ export class FacilitatorPage {
74
132
  hostData() {
75
133
  return {
76
134
  class: {
77
- [this.page.pageClass]: typeof this.page.pageClass === 'string',
135
+ [this.notesPage.pageClass]: typeof this.notesPage.pageClass === 'string',
78
136
  },
79
137
  };
80
138
  }
81
- renderColumn2() {
82
- return (h("div", { class: "column-2" },
83
- h("div", null)));
139
+ renderNavigation() {
140
+ return (h("div", { class: "p-2 d-md-flex justify-content-md-center" },
141
+ h("div", { class: "btn-group btn-group-sm", role: "group", "aria-label": "Basic outlined example" },
142
+ h("button", { type: "button", class: "btn btn-outline-primary" }, "Prev"),
143
+ h("input", { type: "text", class: "form-control", placeholder: "Input group example", "aria-label": "Input group example", "aria-describedby": "btnGroupAddon", value: this.path.replace("index", ""), readOnly: true }),
144
+ h("button", { type: "button", class: "btn btn-outline-primary" }, "Next"))));
84
145
  }
85
- renderColumn1(page) {
86
- const Template = templates[page.template] || templates.default;
87
- return (h("main", { class: 'no-demo column-1' },
88
- h(Template, { page: page })));
146
+ renderTabs() {
147
+ return (h("main", { class: 'no-demo' },
148
+ h("ul", { class: "nav nav-tabs" },
149
+ this.isLesson &&
150
+ h(Fragment, null,
151
+ h("li", { class: "nav-item" },
152
+ h("a", { class: `nav-link ${this.activetab == "FACILITATOR_NOTES" ? 'active' : ''}`, href: "javascript:void(0)", onClick: () => this.activetab = "FACILITATOR_NOTES" }, "Facilitator Notes")),
153
+ h("li", { class: "nav-item" },
154
+ h("a", { class: `nav-link ${this.activetab == "NOTES" ? 'active' : ''}`, href: "javascript:void(0)", onClick: () => this.activetab = "NOTES" }, "Notes")),
155
+ h("li", { class: "nav-item" },
156
+ h("a", { class: `nav-link ${this.activetab == "LESSON_NOTES" ? 'active' : ''}`, href: "javascript:void(0)", onClick: () => this.activetab = "LESSON_NOTES" }, "Lesson Notes"))),
157
+ h("li", { class: "nav-item" },
158
+ h("a", { class: `nav-link ${this.activetab == "ONLINE_STUDENTS" ? 'active' : ''}`, href: "javascript:void(0)", onClick: () => this.activetab = "ONLINE_STUDENTS" }, "Online Students")),
159
+ h("li", { class: "nav-item" },
160
+ h("a", { class: `nav-link ${this.activetab == "DASHBOARD" ? 'active' : ''}`, href: "javascript:void(0)", onClick: () => this.activetab = "DASHBOARD" }, "Dashboard")),
161
+ h("li", { class: "nav-item" },
162
+ h("a", { class: `nav-link ${this.activetab == "EXPORT" ? 'active' : ''}`, href: "javascript:void(0)", onClick: () => this.activetab = "EXPORT" }, "Export"))),
163
+ h("div", { class: "tab-content" },
164
+ this.activetab == "FACILITATOR_NOTES" && this.renderFacilitatorNotes(),
165
+ this.activetab == "NOTES" && h("sparkle-facilitator-notes", null),
166
+ this.activetab == "LESSON_NOTES" && this.renderLessonNotes(),
167
+ this.activetab == "ONLINE_STUDENTS" && h("sparkle-online-students", { path: this.path }),
168
+ this.activetab == "DASHBOARD" && h("sparkle-facilitator-dashboard", null),
169
+ this.activetab == "EXPORT" && h("sparkle-export-lessons", null))));
89
170
  }
90
- render() {
91
- const { page } = this;
171
+ renderLessonNotes() {
172
+ const { lessonNotesPage } = this;
173
+ const Template = templates[lessonNotesPage.template] || templates.default;
174
+ if (this.badFetchLessonNotes) {
175
+ return templates.error(this.badFetch);
176
+ }
177
+ return h(Template, { page: lessonNotesPage });
178
+ }
179
+ renderFacilitatorNotes() {
180
+ const { notesPage } = this;
181
+ const Template = templates[notesPage.template] || templates.default;
92
182
  if (this.badFetch) {
93
183
  return templates.error(this.badFetch);
94
184
  }
95
- const content = [
96
- this.renderColumn1(page),
97
- this.renderColumn2()
98
- ];
99
- return content;
185
+ return h(Template, { page: notesPage });
186
+ }
187
+ render() {
188
+ console.log(facilitatorStore.state.classes);
189
+ const { page } = this;
190
+ const content = this.renderTabs();
191
+ return h("div", { class: "container" },
192
+ h("div", { class: "d-flex justify-content-between align-items-center" },
193
+ h("sparkle-page-footer", { page: page }),
194
+ h("div", null,
195
+ h("select", { class: "form-select", "aria-label": "Default select example" }, facilitatorStore.state.classes.map(item => h("option", null, item.ClassName))))),
196
+ content);
100
197
  }
101
198
  static get is() { return "sparkle-facilitator-page"; }
102
199
  static get originalStyleUrls() { return {
@@ -122,11 +219,34 @@ export class FacilitatorPage {
122
219
  },
123
220
  "attribute": "path",
124
221
  "reflect": false
222
+ },
223
+ "notesPath": {
224
+ "type": "string",
225
+ "mutable": false,
226
+ "complexType": {
227
+ "original": "string",
228
+ "resolved": "string",
229
+ "references": {}
230
+ },
231
+ "required": true,
232
+ "optional": false,
233
+ "docs": {
234
+ "tags": [],
235
+ "text": ""
236
+ },
237
+ "attribute": "notes-path",
238
+ "reflect": false
125
239
  }
126
240
  }; }
127
241
  static get states() { return {
128
242
  "badFetch": {},
129
- "page": {}
243
+ "badFetchLessonNotes": {},
244
+ "isLesson": {},
245
+ "notesPage": {},
246
+ "lessonNotesPage": {},
247
+ "page": {},
248
+ "onlineStudents": {},
249
+ "activetab": {}
130
250
  }; }
131
251
  static get events() { return [{
132
252
  "method": "pageDidLoad",
@@ -150,6 +270,9 @@ export class FacilitatorPage {
150
270
  }
151
271
  }]; }
152
272
  static get watchers() { return [{
273
+ "propName": "notesPath",
274
+ "methodName": "fetchNotesPage"
275
+ }, {
153
276
  "propName": "path",
154
277
  "methodName": "fetchPage"
155
278
  }, {
@@ -1,7 +1,42 @@
1
- import { Component, h } from '@stencil/core';
1
+ import { Component, h, Prop, State } from '@stencil/core';
2
+ import facilitatorStore from '../../../../stores/facilitator.store';
3
+ import { SignalRService } from '../../../../services/signalR.service';
2
4
  export class SparkleOnlineStudents {
5
+ constructor() {
6
+ this.onlineStudents = [];
7
+ this.handleStudentChange = (user, change) => {
8
+ console.log("handle student change");
9
+ if (change == "list") {
10
+ facilitatorStore.state.onlineStudents = [...user];
11
+ }
12
+ };
13
+ }
14
+ componentDidLoad() {
15
+ console.log("componentDidLoad");
16
+ SignalRService.getInstance().connection.on("StudentAction", this.handleStudentChange);
17
+ this.refreshList();
18
+ }
19
+ navigateStudentTo(student) {
20
+ SignalRService.getInstance().callSignalR("NavigateStudentTo", { userId: student.userId, url: this.path.replace(".json", "") });
21
+ }
22
+ refreshList() {
23
+ SignalRService.getInstance().callSignalR("GetOnlineStudents", { CourseClassId: 1 });
24
+ }
3
25
  render() {
4
- return (h("div", null, "Students lists"));
26
+ console.log("faciliatator state", facilitatorStore.state.onlineStudents);
27
+ return (h("div", null,
28
+ h("div", { class: "p-2 pb-4 d-md-flex justify-content-md-end" },
29
+ h("button", { class: "btn btn-primary pull-right", type: "button", onClick: () => this.refreshList() }, "Refresh")),
30
+ h("div", null,
31
+ facilitatorStore.state.onlineStudents.length > 0 &&
32
+ h("ol", { class: "list-group list-group-numbered" }, facilitatorStore.state.onlineStudents.map((item) => h("li", { class: "list-group-item d-flex justify-content-between align-items-start", key: item.userId },
33
+ h("div", { class: "ms-2 me-auto" },
34
+ h("div", { class: "fw-bold" }, item.name),
35
+ item.currentUrl),
36
+ h("button", { type: "button", class: "btn btn-primary btn-sm", onClick: () => this.navigateStudentTo(item) }, "Navigate")))),
37
+ facilitatorStore.state.onlineStudents.length == 0 &&
38
+ h("div", { class: "text-center" },
39
+ h("h3", null, "No Students")))));
5
40
  }
6
41
  static get is() { return "sparkle-online-students"; }
7
42
  static get originalStyleUrls() { return {
@@ -10,4 +45,26 @@ export class SparkleOnlineStudents {
10
45
  static get styleUrls() { return {
11
46
  "$": ["online-students.css"]
12
47
  }; }
48
+ static get properties() { return {
49
+ "path": {
50
+ "type": "string",
51
+ "mutable": false,
52
+ "complexType": {
53
+ "original": "string",
54
+ "resolved": "string",
55
+ "references": {}
56
+ },
57
+ "required": false,
58
+ "optional": false,
59
+ "docs": {
60
+ "tags": [],
61
+ "text": ""
62
+ },
63
+ "attribute": "path",
64
+ "reflect": false
65
+ }
66
+ }; }
67
+ static get states() { return {
68
+ "onlineStudents": {}
69
+ }; }
13
70
  }