@cuemath/leap 3.1.0-gg1 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (395) hide show
  1. package/dist/assets/gif/gif.js +22 -22
  2. package/dist/assets/gif/gif.js.map +1 -1
  3. package/dist/assets/illustrations/illustrations.js +128 -127
  4. package/dist/assets/illustrations/illustrations.js.map +1 -1
  5. package/dist/assets/images/images.js +32 -32
  6. package/dist/assets/images/images.js.map +1 -1
  7. package/dist/assets/line-icons/icons/check.js +3 -3
  8. package/dist/assets/line-icons/icons/check.js.map +1 -1
  9. package/dist/assets/line-icons/icons/puzzle-icon.js +51 -0
  10. package/dist/assets/line-icons/icons/puzzle-icon.js.map +1 -0
  11. package/dist/assets/line-icons/icons/share.js +48 -0
  12. package/dist/assets/line-icons/icons/share.js.map +1 -0
  13. package/dist/assets/line-icons/icons/tile.js +54 -0
  14. package/dist/assets/line-icons/icons/tile.js.map +1 -0
  15. package/dist/assets/lottie/lottie.js +86 -86
  16. package/dist/assets/lottie/lottie.js.map +1 -1
  17. package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js +34 -32
  18. package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js.map +1 -1
  19. package/dist/features/chapters-v2/chapter-details/chapter-details.js +47 -45
  20. package/dist/features/chapters-v2/chapter-details/chapter-details.js.map +1 -1
  21. package/dist/features/chapters-v2/comps/node-card/node-card-tags.js +11 -11
  22. package/dist/features/chapters-v2/comps/node-card/node-card-tags.js.map +1 -1
  23. package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js +47 -46
  24. package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js.map +1 -1
  25. package/dist/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.js +165 -124
  26. package/dist/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.js.map +1 -1
  27. package/dist/features/chapters-v2/utils/node-card-utils.js +41 -41
  28. package/dist/features/chapters-v2/utils/node-card-utils.js.map +1 -1
  29. package/dist/features/cue-canvas/bottombar/homework-controls.js +73 -0
  30. package/dist/features/cue-canvas/bottombar/homework-controls.js.map +1 -0
  31. package/dist/features/cue-canvas/cue-canvas-context.js +8 -5
  32. package/dist/features/cue-canvas/cue-canvas-context.js.map +1 -1
  33. package/dist/features/cue-canvas/cue-canvas-core.js +80 -75
  34. package/dist/features/cue-canvas/cue-canvas-core.js.map +1 -1
  35. package/dist/features/cue-canvas/cue-canvas-helpers.js +31 -25
  36. package/dist/features/cue-canvas/cue-canvas-helpers.js.map +1 -1
  37. package/dist/features/cue-canvas/cue-canvas-provider.js +14 -12
  38. package/dist/features/cue-canvas/cue-canvas-provider.js.map +1 -1
  39. package/dist/features/cue-canvas/cue-canvas.js +79 -65
  40. package/dist/features/cue-canvas/cue-canvas.js.map +1 -1
  41. package/dist/features/cue-canvas/cue-cavas-styled.js +45 -42
  42. package/dist/features/cue-canvas/cue-cavas-styled.js.map +1 -1
  43. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js +61 -54
  44. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js.map +1 -1
  45. package/dist/features/cue-canvas/hooks/use-cue-canvas-actions.js +18 -14
  46. package/dist/features/cue-canvas/hooks/use-cue-canvas-actions.js.map +1 -1
  47. package/dist/features/cue-canvas/hooks/use-upload-helper.js +23 -0
  48. package/dist/features/cue-canvas/hooks/use-upload-helper.js.map +1 -0
  49. package/dist/features/cue-canvas/sidebar/homework/helper.js +20 -0
  50. package/dist/features/cue-canvas/sidebar/homework/helper.js.map +1 -0
  51. package/dist/features/cue-canvas/sidebar/homework/homework-menu.js +33 -0
  52. package/dist/features/cue-canvas/sidebar/homework/homework-menu.js.map +1 -0
  53. package/dist/features/cue-canvas/sidebar/homework/homework-request.js +68 -0
  54. package/dist/features/cue-canvas/sidebar/homework/homework-request.js.map +1 -0
  55. package/dist/features/cue-canvas/sidebar/homework/homework-styled.js +25 -0
  56. package/dist/features/cue-canvas/sidebar/homework/homework-styled.js.map +1 -0
  57. package/dist/features/cue-canvas/sidebar/homework/homework.js +39 -0
  58. package/dist/features/cue-canvas/sidebar/homework/homework.js.map +1 -0
  59. package/dist/features/cue-canvas/sidebar/puzzles/api/get-puzzles.js +13 -0
  60. package/dist/features/cue-canvas/sidebar/puzzles/api/get-puzzles.js.map +1 -0
  61. package/dist/features/cue-canvas/sidebar/puzzles/filter-selection-menu.js +60 -0
  62. package/dist/features/cue-canvas/sidebar/puzzles/filter-selection-menu.js.map +1 -0
  63. package/dist/features/cue-canvas/sidebar/puzzles/filters-section.js +44 -0
  64. package/dist/features/cue-canvas/sidebar/puzzles/filters-section.js.map +1 -0
  65. package/dist/features/cue-canvas/sidebar/puzzles/filters.js +107 -0
  66. package/dist/features/cue-canvas/sidebar/puzzles/filters.js.map +1 -0
  67. package/dist/features/cue-canvas/sidebar/puzzles/hooks/use-fetch-cue-canvas-activity.js +42 -0
  68. package/dist/features/cue-canvas/sidebar/puzzles/hooks/use-fetch-cue-canvas-activity.js.map +1 -0
  69. package/dist/features/cue-canvas/sidebar/puzzles/launch-puzzle.js +84 -0
  70. package/dist/features/cue-canvas/sidebar/puzzles/launch-puzzle.js.map +1 -0
  71. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu-header.js +36 -0
  72. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu-header.js.map +1 -0
  73. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu.js +133 -0
  74. package/dist/features/cue-canvas/sidebar/puzzles/puzzle-menu.js.map +1 -0
  75. package/dist/features/cue-canvas/sidebar/puzzles/puzzles-styled.js +96 -0
  76. package/dist/features/cue-canvas/sidebar/puzzles/puzzles-styled.js.map +1 -0
  77. package/dist/features/cue-canvas/sidebar/puzzles/puzzles.js +29 -0
  78. package/dist/features/cue-canvas/sidebar/puzzles/puzzles.js.map +1 -0
  79. package/dist/features/cue-canvas/sidebar/puzzles/utils.js +120 -0
  80. package/dist/features/cue-canvas/sidebar/puzzles/utils.js.map +1 -0
  81. package/dist/features/cue-canvas/sidebar/sidebar-styled.js +32 -0
  82. package/dist/features/cue-canvas/sidebar/sidebar-styled.js.map +1 -0
  83. package/dist/features/cue-canvas/sidebar/sidebar.js +29 -0
  84. package/dist/features/cue-canvas/sidebar/sidebar.js.map +1 -0
  85. package/dist/features/cue-canvas/sidebar/tiles/tile.js +16 -0
  86. package/dist/features/cue-canvas/sidebar/tiles/tile.js.map +1 -0
  87. package/dist/features/cue-canvas/toolbar/grid-menu.js +13 -13
  88. package/dist/features/cue-canvas/toolbar/grid-menu.js.map +1 -1
  89. package/dist/features/cue-canvas/toolbar/tool.js +22 -20
  90. package/dist/features/cue-canvas/toolbar/tool.js.map +1 -1
  91. package/dist/features/homework/homework-card-view.js +56 -54
  92. package/dist/features/homework/homework-card-view.js.map +1 -1
  93. package/dist/features/homework/homework-card.js +53 -52
  94. package/dist/features/homework/homework-card.js.map +1 -1
  95. package/dist/features/homework/styles.js +5 -4
  96. package/dist/features/homework/styles.js.map +1 -1
  97. package/dist/features/hooks/use-debounce.js +16 -0
  98. package/dist/features/hooks/use-debounce.js.map +1 -0
  99. package/dist/features/milestone/create/comps/add-custom-chapter/course-catalog.js +38 -36
  100. package/dist/features/milestone/create/comps/add-custom-chapter/course-catalog.js.map +1 -1
  101. package/dist/features/milestone/create/comps/add-custom-chapter/hooks/use-catalog-helpers.js +24 -22
  102. package/dist/features/milestone/create/comps/add-custom-chapter/hooks/use-catalog-helpers.js.map +1 -1
  103. package/dist/features/milestone/create/comps/chapters-selection-step/chapter-selection-step-v2/chapter-category/chapter-category-container.js +23 -22
  104. package/dist/features/milestone/create/comps/chapters-selection-step/chapter-selection-step-v2/chapter-category/chapter-category-container.js.map +1 -1
  105. package/dist/features/milestone/create/comps/chapters-selection-step/utils.js +49 -47
  106. package/dist/features/milestone/create/comps/chapters-selection-step/utils.js.map +1 -1
  107. package/dist/features/milestone/create/comps/class-details-step/class-details-step.js +94 -87
  108. package/dist/features/milestone/create/comps/class-details-step/class-details-step.js.map +1 -1
  109. package/dist/features/milestone/create/comps/class-details-step/class-details-utils.js +13 -12
  110. package/dist/features/milestone/create/comps/class-details-step/class-details-utils.js.map +1 -1
  111. package/dist/features/milestone/create/comps/test-type-step/test-type-step.js +23 -21
  112. package/dist/features/milestone/create/comps/test-type-step/test-type-step.js.map +1 -1
  113. package/dist/features/milestone/create/milestone-create-helpers.js +165 -162
  114. package/dist/features/milestone/create/milestone-create-helpers.js.map +1 -1
  115. package/dist/features/trial-session/comps/pricing/india-pricing/index.js +96 -0
  116. package/dist/features/trial-session/comps/pricing/india-pricing/index.js.map +1 -0
  117. package/dist/features/trial-session/comps/pricing/india-pricing/india-pricing-styled.js +59 -0
  118. package/dist/features/trial-session/comps/pricing/india-pricing/india-pricing-styled.js.map +1 -0
  119. package/dist/features/trial-session/comps/pricing/pricing.js +36 -35
  120. package/dist/features/trial-session/comps/pricing/pricing.js.map +1 -1
  121. package/dist/features/ui/stepper/stepper.js +7 -7
  122. package/dist/features/worksheet/worksheet/hooks/use-s3-helper.js +22 -19
  123. package/dist/features/worksheet/worksheet/hooks/use-s3-helper.js.map +1 -1
  124. package/dist/index.d.ts +298 -247
  125. package/dist/index.js +184 -180
  126. package/dist/index.js.map +1 -1
  127. package/dist/static/accuracy-meter.99585cba.json +4218 -0
  128. package/dist/static/accuracy-needle.cd6e63ac.json +618 -0
  129. package/dist/static/achievement_bg.0d0555ac.png +0 -0
  130. package/dist/static/advance-mode-segment-lottie.51ff6707.json +1 -0
  131. package/dist/static/alarm-clock-orange.31fb90d9.svg +1 -0
  132. package/dist/static/alarm-clock-purple.06d4911c.svg +1 -0
  133. package/dist/static/alien-1.fc7ba696.svg +1 -0
  134. package/dist/static/alien-2.15fdda07.svg +1 -0
  135. package/dist/static/alien-3.2664a37f.svg +1 -0
  136. package/dist/static/alien-4.06ac66da.svg +1 -0
  137. package/dist/static/ashta.0d3926b2.png +0 -0
  138. package/dist/static/avatar-selected.860ee923.json +1 -0
  139. package/dist/static/awesome.8e1cf046.png +0 -0
  140. package/dist/static/badge_success.2f6c8e65.png +0 -0
  141. package/dist/static/beginner1x.489908a7.json +3508 -0
  142. package/dist/static/bg_empty_resources.63b187fd.png +0 -0
  143. package/dist/static/blue-clip.87cc4543.svg +1 -0
  144. package/dist/static/bobwave.5603c70b.gif +0 -0
  145. package/dist/static/book-green.20f6eed3.svg +1 -0
  146. package/dist/static/book-open-blue.d4f8d08c.svg +5 -0
  147. package/dist/static/book-orange.04bdc75e.svg +1 -0
  148. package/dist/static/book-yellow.c210ac06.svg +1 -0
  149. package/dist/static/bronze-1.da4e4b5f.json +4176 -0
  150. package/dist/static/bronze-2.97f9c639.json +4433 -0
  151. package/dist/static/bronze-3.6a433ebd.json +4786 -0
  152. package/dist/static/bullet-yellow.2f892d88.svg +1 -0
  153. package/dist/static/calendar-blue.e0d52d09.svg +1 -0
  154. package/dist/static/calendar-gray.1c72682a.svg +1 -0
  155. package/dist/static/calendar-green.a2b6a393.svg +1 -0
  156. package/dist/static/caution.5766a967.svg +1 -0
  157. package/dist/static/chapter-1.8a1683a0.svg +1 -0
  158. package/dist/static/chapter-10.c97de4a5.svg +1 -0
  159. package/dist/static/chapter-2.71ac6dfc.svg +1 -0
  160. package/dist/static/chapter-3.003fc901.svg +1 -0
  161. package/dist/static/chapter-4.8abbacd8.svg +1 -0
  162. package/dist/static/chapter-5.c774b439.svg +1 -0
  163. package/dist/static/chapter-6.cb5cf1cb.svg +1 -0
  164. package/dist/static/chapter-7.57b0beb4.svg +1 -0
  165. package/dist/static/chapter-8.68d36477.svg +1 -0
  166. package/dist/static/chapter-9.0c00e26f.svg +1 -0
  167. package/dist/static/chapter-completed.1241399b.json +497 -0
  168. package/dist/static/chapter-header-bg-2.c8d96894.svg +1 -0
  169. package/dist/static/chapter-header-bg.4ed173c2.svg +1 -0
  170. package/dist/static/chatva.d0c57a95.png +0 -0
  171. package/dist/static/circle-cuemath-logo-white.e9fafb91.svg +1 -0
  172. package/dist/static/circle-cuemath-logo.8bcb1ad4.svg +1 -0
  173. package/dist/static/circle-outercircle-bg.65f21460.svg +1 -0
  174. package/dist/static/circular-loader.a5a1a0a6.json +238 -0
  175. package/dist/static/clock-30min.eae818b8.json +1197 -0
  176. package/dist/static/clock-45min.df8adf51.json +1197 -0
  177. package/dist/static/clock-60min.2b48d875.json +1197 -0
  178. package/dist/static/clock-90min.3e557ed7.json +1407 -0
  179. package/dist/static/clock-orange.c144059b.svg +6 -0
  180. package/dist/static/color-1.45101b9a.json +4545 -0
  181. package/dist/static/color-2.ccdc7d0a.json +4828 -0
  182. package/dist/static/color-3.5e8e1422.json +5273 -0
  183. package/dist/static/community-bulb.3b42af21.svg +1 -0
  184. package/dist/static/competitive-arena.b9c40801.json +1 -0
  185. package/dist/static/congrats.75718de8.png +0 -0
  186. package/dist/static/cool.1893941c.png +0 -0
  187. package/dist/static/cosa.46c0c49b.png +0 -0
  188. package/dist/static/crosshair-circle.522a26ea.svg +1 -0
  189. package/dist/static/crown-overlay.11fb073c.svg +1 -0
  190. package/dist/static/crown.c18fa217.svg +1 -0
  191. package/dist/static/cuecoin-gold.bcb8085e.svg +1 -0
  192. package/dist/static/cuemath-app-qr-code.4beefe48.svg +1 -0
  193. package/dist/static/cuemath-app-qr-code.ba6cc09b.svg +1 -0
  194. package/dist/static/cuemath-app-qr-code.d0912fc7.png +0 -0
  195. package/dist/static/default-chapter.8ede1160.png +0 -0
  196. package/dist/static/desktop-with-purple-fill.dfec66cc.svg +1 -0
  197. package/dist/static/difficult.6846c064.json +2755 -0
  198. package/dist/static/dob.9ce3c15b.json +1 -0
  199. package/dist/static/doda.3103971c.png +0 -0
  200. package/dist/static/duration-30min-gray.f6442df4.svg +1 -0
  201. package/dist/static/duration-45min-gray.ad90fb23.svg +1 -0
  202. package/dist/static/duration-60min-gray.874e52a2.svg +1 -0
  203. package/dist/static/duration-90min-gray.32a04cef.svg +1 -0
  204. package/dist/static/dvi.fc7b32a5.png +0 -0
  205. package/dist/static/earth-green.e1329b7a.svg +1 -0
  206. package/dist/static/easy-rescheduling.3a6d1a00.gif +0 -0
  207. package/dist/static/easy.68242ddd.json +2658 -0
  208. package/dist/static/eka.b10a06fa.png +0 -0
  209. package/dist/static/elite-circle.3df58972.json +6876 -0
  210. package/dist/static/ellipse-clip.dfb25608.svg +1 -0
  211. package/dist/static/empty_mix_tests.1d251f07.png +0 -0
  212. package/dist/static/enrichment-mini.fc3c0f83.gif +0 -0
  213. package/dist/static/enrichment.571feac0.gif +0 -0
  214. package/dist/static/error-lottie.b3507a4b.json +5255 -0
  215. package/dist/static/error.cbe1ddde.json +1 -0
  216. package/dist/static/familiar1x.7c9c7f15.json +3046 -0
  217. package/dist/static/female-avatar.b8cd1012.svg +1 -0
  218. package/dist/static/fifteen-min-clock.0af4e303.json +715 -0
  219. package/dist/static/five-min-clock.6be5cc41.json +721 -0
  220. package/dist/static/game-play.4982b0cb.svg +1 -0
  221. package/dist/static/games.47abcb18.gif +0 -0
  222. package/dist/static/globe-with-blue-fill.beae6ca4.svg +1 -0
  223. package/dist/static/gold-1.ab2489fe.json +4176 -0
  224. package/dist/static/gold-2.34045826.json +4441 -0
  225. package/dist/static/gold-3.d704698b.json +4810 -0
  226. package/dist/static/grade-grid-background.b17b4ccb.svg +1 -0
  227. package/dist/static/grade.b3730524.json +1 -0
  228. package/dist/static/graduate-hat.4b49eb44.svg +1 -0
  229. package/dist/static/graduate-icon-pink.01fbfb1b.svg +1 -0
  230. package/dist/static/graduate-pink-filled-bg.c91e9c53.svg +1 -0
  231. package/dist/static/great.2a5dcc34.png +0 -0
  232. package/dist/static/green-balloon.67ac8587.svg +1 -0
  233. package/dist/static/green-face.1b4dd82f.svg +1 -0
  234. package/dist/static/hexo.eab4b9f5.png +0 -0
  235. package/dist/static/infinite-button-bg.5909225e.json +1 -0
  236. package/dist/static/infinite-button-symbol.aa31350c.json +1 -0
  237. package/dist/static/jigii-wave.150a6d18.gif +0 -0
  238. package/dist/static/key.d6846476.json +1 -0
  239. package/dist/static/kudos.b7e2aeb6.png +0 -0
  240. package/dist/static/learn.71b13323.json +1 -0
  241. package/dist/static/learned-shield-gray.1495b0d5.svg +1 -0
  242. package/dist/static/learned-shield-green.7c26b423.svg +1 -0
  243. package/dist/static/learning-plan.72d64a61.png +0 -0
  244. package/dist/static/learning-session.71cc8f22.gif +0 -0
  245. package/dist/static/learnt.870c5e38.svg +1 -0
  246. package/dist/static/lesson-overview-banner.f5404af6.png +0 -0
  247. package/dist/static/levelup-rings.b1055283.json +549 -0
  248. package/dist/static/like.cb492460.svg +1 -0
  249. package/dist/static/live-session.a0d25c78.svg +1 -0
  250. package/dist/static/loader-1.6524355e.svg +1 -0
  251. package/dist/static/loader.52f8c35c.svg +1 -0
  252. package/dist/static/locked.0c3b7577.svg +1 -0
  253. package/dist/static/mail.c30e8708.json +1 -0
  254. package/dist/static/maintenance.a26aca65.svg +1 -0
  255. package/dist/static/male-avatar.2febc9eb.svg +1 -0
  256. package/dist/static/mastered-badge.81f156fb.svg +1 -0
  257. package/dist/static/mastered-shield-gray.a58cbe19.svg +1 -0
  258. package/dist/static/mastered-shield-green.070fa4eb.svg +1 -0
  259. package/dist/static/max-wave.44e002c9.gif +0 -0
  260. package/dist/static/medium.94c3829b.json +2289 -0
  261. package/dist/static/mental-math.3c95f169.svg +1 -0
  262. package/dist/static/milestone-intro-1.281a354c.svg +1 -0
  263. package/dist/static/milestone-intro-2.19faee69.svg +1 -0
  264. package/dist/static/milestone-intro-3.6f6055d6.svg +1 -0
  265. package/dist/static/mistake.476d1aa7.svg +1 -0
  266. package/dist/static/no-info.f4bfe437.png +0 -0
  267. package/dist/static/node-custom-test-bg.d3b757be.svg +1 -0
  268. package/dist/static/node-learn-bg.b61f815c.svg +1 -0
  269. package/dist/static/node-practice-bg.16cbaf2a.svg +1 -0
  270. package/dist/static/node-project-bg.e6a33e28.svg +1 -0
  271. package/dist/static/node-puzzle-bg.3422135c.svg +1 -0
  272. package/dist/static/node-recap-bg.546154e4.svg +1 -0
  273. package/dist/static/node-test-prep-bg.42c0b9c4.svg +1 -0
  274. package/dist/static/node-video-bg.3df3f73a.svg +1 -0
  275. package/dist/static/nudge-tap.5cb30093.json +1057 -0
  276. package/dist/static/number-1-orange.cbf526ed.svg +1 -0
  277. package/dist/static/number-2-orange.6f29eb72.svg +1 -0
  278. package/dist/static/number-3-orange.58baf717.svg +1 -0
  279. package/dist/static/number-4-orange.5ed1ec5e.svg +1 -0
  280. package/dist/static/octo.3020bd93.png +0 -0
  281. package/dist/static/one-star-filled.b6084257.svg +1 -0
  282. package/dist/static/orange-face.5824c2e9.svg +1 -0
  283. package/dist/static/otp.2d08f874.json +1 -0
  284. package/dist/static/otp.a3029760.json +1 -0
  285. package/dist/static/parent-avatar.772d53e0.json +1 -0
  286. package/dist/static/people-with-orange-fill.3835b8f1.svg +1 -0
  287. package/dist/static/phone-number.0be312ea.json +1 -0
  288. package/dist/static/phone-number.84f55562.json +1 -0
  289. package/dist/static/play-icon.13baaa7d.svg +1 -0
  290. package/dist/static/play.68d16dec.svg +1 -0
  291. package/dist/static/point1.b53831de.json +2942 -0
  292. package/dist/static/point10.7b5e536d.json +3179 -0
  293. package/dist/static/point100.1df16f82.json +3196 -0
  294. package/dist/static/point15.fea00c32.json +3179 -0
  295. package/dist/static/point2.7cec6e24.json +1 -0
  296. package/dist/static/point20.c88d776d.json +3178 -0
  297. package/dist/static/point25.a18c346a.json +3178 -0
  298. package/dist/static/point3.f96fe7aa.json +1 -0
  299. package/dist/static/point30.c5224b0b.json +3202 -0
  300. package/dist/static/point35.fad343dd.json +3058 -0
  301. package/dist/static/point4.fe04fb83.json +1 -0
  302. package/dist/static/point40.10a16f72.json +3082 -0
  303. package/dist/static/point45.2ad7561f.json +3082 -0
  304. package/dist/static/point5.da40ed1f.json +2948 -0
  305. package/dist/static/point50.5718cb3d.json +3046 -0
  306. package/dist/static/point60.17380d9f.json +3076 -0
  307. package/dist/static/points-sum.360e63de.svg +1 -0
  308. package/dist/static/practice.158dd488.json +1 -0
  309. package/dist/static/practiced-shield-green.90278855.svg +1 -0
  310. package/dist/static/practiced-shield-grey.16cf4fe0.svg +1 -0
  311. package/dist/static/proficient-badge.1a6dbb72.svg +1 -0
  312. package/dist/static/proficient1x.fa6e7b80.json +3430 -0
  313. package/dist/static/profile-board.4f4a17e6.svg +1 -0
  314. package/dist/static/project.eb665827.json +1 -0
  315. package/dist/static/puzzle-student.de530364.svg +1 -0
  316. package/dist/static/puzzle.5aad5cf8.svg +1 -0
  317. package/dist/static/puzzle.b298c7e4.json +1 -0
  318. package/dist/static/puzzle_card_easy.7d9439b5.png +0 -0
  319. package/dist/static/puzzle_card_hard.185a19c4.png +0 -0
  320. package/dist/static/puzzle_card_medium.17daef9c.png +0 -0
  321. package/dist/static/puzzles.1e269965.gif +0 -0
  322. package/dist/static/random-mode-segment-lottie.79cf1c07.json +1 -0
  323. package/dist/static/recap.0dd2c1e2.json +1 -0
  324. package/dist/static/refund-policy-with-headphone.589398e0.svg +1 -0
  325. package/dist/static/refund-policy.912dbb4c.svg +1 -0
  326. package/dist/static/report-404.dd67785c.svg +1 -0
  327. package/dist/static/rocket-broken.1f86fa43.svg +1 -0
  328. package/dist/static/rocket-yellow.62d27e15.svg +1 -0
  329. package/dist/static/school-success-mini.f74a852f.gif +0 -0
  330. package/dist/static/school-success.f9669771.gif +0 -0
  331. package/dist/static/score.41971107.svg +1 -0
  332. package/dist/static/sequence-mode-segment-lottie.11ac49e9.json +1 -0
  333. package/dist/static/shared.3af01b49.png +0 -0
  334. package/dist/static/sheet-reference.9da7a09f.png +0 -0
  335. package/dist/static/silver-1.0396328a.json +4168 -0
  336. package/dist/static/silver-2.bf50615f.json +4433 -0
  337. package/dist/static/silver-3.13d66b84.json +4810 -0
  338. package/dist/static/skills.90ce4cbb.gif +0 -0
  339. package/dist/static/sleepy-boi.031a1165.json +1008 -0
  340. package/dist/static/smiley.49bb7d7c.svg +1 -0
  341. package/dist/static/speckie-wave.510639ce.gif +0 -0
  342. package/dist/static/spinner-white.639e0d87.json +122 -0
  343. package/dist/static/spiral_pattern.9fd3e6e9.png +0 -0
  344. package/dist/static/splash-screen.bbf567ce.json +2411 -0
  345. package/dist/static/star-orange-filled.a7ff9c8f.svg +1 -0
  346. package/dist/static/star-orange.a91a341f.svg +1 -0
  347. package/dist/static/star-with-green-fill.86877d41.svg +1 -0
  348. package/dist/static/stay-connected.371d3d9d.gif +0 -0
  349. package/dist/static/streak-green.b59bf4dd.svg +1 -0
  350. package/dist/static/streak-white.2cbdc9b8.svg +1 -0
  351. package/dist/static/student-avatar.524226bd.json +1 -0
  352. package/dist/static/table-mode-reveal.b44a82c3.json +1 -0
  353. package/dist/static/table-mode-star.b8a1d762.json +1 -0
  354. package/dist/static/table-segment-star.78e851d6.json +1 -0
  355. package/dist/static/target-achieved-text.053bd142.json +2830 -0
  356. package/dist/static/target-achieved-text.10db8475.json +1 -0
  357. package/dist/static/teacher-validation.7577ecdc.json +245 -0
  358. package/dist/static/tera-wave.2954a6a4.gif +0 -0
  359. package/dist/static/test-difficulty-easy.56df71dd.svg +1 -0
  360. package/dist/static/test-difficulty-hard.7250f1f4.svg +1 -0
  361. package/dist/static/test-difficulty-medium.2fd9686e.svg +1 -0
  362. package/dist/static/test-prep-mini.718e5734.gif +0 -0
  363. package/dist/static/test-prep.ea433f71.gif +0 -0
  364. package/dist/static/test.803d6036.json +1 -0
  365. package/dist/static/tetra.354ff2b9.png +0 -0
  366. package/dist/static/three-stars-filled.72b51f03.svg +1 -0
  367. package/dist/static/tick-green.a1654049.svg +1 -0
  368. package/dist/static/total-streak.d5ce7669.json +842 -0
  369. package/dist/static/total-time-spent.434005d3.json +200 -0
  370. package/dist/static/total-time.d979cbb9.json +24383 -0
  371. package/dist/static/tournament-ripple.e5c239a5.json +1047 -0
  372. package/dist/static/track-progress.c75b1031.gif +0 -0
  373. package/dist/static/trophy-blue-filled.7e2b40ab.svg +1 -0
  374. package/dist/static/trophy-blue.e684ba4c.svg +1 -0
  375. package/dist/static/trophy-circle.b7b23e36.svg +1 -0
  376. package/dist/static/trophy-green.6c0741c8.svg +10 -0
  377. package/dist/static/two-stars-filled.a51a14b4.svg +1 -0
  378. package/dist/static/up-arrow.a6946bd3.svg +1 -0
  379. package/dist/static/user-crown-grid-background.c2875a73.svg +1 -0
  380. package/dist/static/user-down.a06f2f94.svg +1 -0
  381. package/dist/static/user-pin.5f334465.svg +1 -0
  382. package/dist/static/user-profile-background.199977a9.svg +1 -0
  383. package/dist/static/user-type-selector-grid-bg.3c9c8ad6.svg +1 -0
  384. package/dist/static/user-type-selector-grid-bg.3ce8142d.svg +1 -0
  385. package/dist/static/user-type-selector-grid-bg.aad0b059.svg +1 -0
  386. package/dist/static/user-up.2aecbbae.svg +1 -0
  387. package/dist/static/username.9e034d51.json +1 -0
  388. package/dist/static/video.b41451e2.json +1 -0
  389. package/dist/static/vinnie-wave.10734dd5.gif +0 -0
  390. package/dist/static/way-forward.1428093e.gif +0 -0
  391. package/dist/static/wow.864fbb02.png +0 -0
  392. package/dist/static/yellow-face.b7525a33.svg +1 -0
  393. package/dist/static/your-goals.63ffbee5.gif +0 -0
  394. package/dist/static/zodasa.336c3bb0.png +0 -0
  395. package/package.json +3 -2
@@ -1,25 +1,25 @@
1
- import { jsx as e, jsxs as m } from "react/jsx-runtime";
2
- import p from "../../../assets/line-icons/icons/check2.js";
3
- import T from "../../../assets/line-icons/icons/exclamation.js";
4
- import f from "../../../assets/line-icons/icons/lock2.js";
5
- import u from "../../../assets/line-icons/icons/status.js";
6
- import { LOTTIE as o } from "../../../assets/lottie/lottie.js";
7
- import R from "../../ui/layout/flex-view.js";
8
- import a from "../../ui/arrow-tooltip/arrow-tooltip.js";
9
- import d from "../../ui/text/text.js";
1
+ import { jsx as e, jsxs as p } from "react/jsx-runtime";
2
+ import T from "../../../assets/line-icons/icons/check2.js";
3
+ import f from "../../../assets/line-icons/icons/exclamation.js";
4
+ import u from "../../../assets/line-icons/icons/lock2.js";
5
+ import R from "../../../assets/line-icons/icons/status.js";
6
+ import { LOTTIE as n } from "../../../assets/lottie/lottie.js";
7
+ import A from "../../ui/layout/flex-view.js";
8
+ import d from "../../ui/arrow-tooltip/arrow-tooltip.js";
9
+ import E from "../../ui/text/text.js";
10
10
  import { InProgressIconWrapper as l } from "../comps/node-card/node-card-styled.js";
11
- import I from "../comps/tag/tag.js";
12
- const A = 60 * 60 * 24, h = ["NOT_STARTED", "IN_PROGRESS"], $ = (t) => {
13
- if (!t)
11
+ import m from "../comps/tag/tag.js";
12
+ const h = 60 * 60 * 24, $ = ["NOT_STARTED", "IN_PROGRESS"], D = (t, i) => {
13
+ if (!t || i)
14
14
  return { isOverdue: !1, daysText: "", differenceInDays: 0 };
15
- const i = Math.floor(Date.now() / 1e3), c = t - i, n = Math.ceil(c / A), s = n < 0, r = n > 0 ? `${Math.abs(n)}D` : "";
16
- return { isOverdue: s, daysText: r, differenceInDays: n };
17
- }, y = (t, i, c, n) => {
18
- const { isOverdue: s, daysText: r, differenceInDays: E } = $(n);
19
- if (s && h.includes(t))
15
+ const c = Math.floor(Date.now() / 1e3), s = t - c, r = Math.ceil(s / h), a = r < 0, o = r > 0 ? `${Math.abs(r)}D` : "";
16
+ return { isOverdue: a, daysText: o, differenceInDays: r };
17
+ }, w = (t, i, c, s, r) => {
18
+ const { isOverdue: a, daysText: o, differenceInDays: I } = D(s, r);
19
+ if (!r && a && $.includes(t))
20
20
  return {
21
21
  icon: /* @__PURE__ */ e(
22
- a,
22
+ d,
23
23
  {
24
24
  renderAs: "primary",
25
25
  position: "bottom",
@@ -27,7 +27,7 @@ const A = 60 * 60 * 24, h = ["NOT_STARTED", "IN_PROGRESS"], $ = (t) => {
27
27
  zIndex: 10,
28
28
  hidden: !i,
29
29
  parentWidth: "fit-content",
30
- children: /* @__PURE__ */ e(R, { $background: "RED", $borderRadius: 16, $gapX: 0.24, $gutterX: 0.5, children: /* @__PURE__ */ e(d, { $renderAs: "ac4-black", $color: "WHITE", children: "OVERDUE" }) })
30
+ children: /* @__PURE__ */ e(A, { $background: "RED", $borderRadius: 16, $gapX: 0.24, $gutterX: 0.5, children: /* @__PURE__ */ e(E, { $renderAs: "ac4-black", $color: "WHITE", children: "OVERDUE" }) })
31
31
  }
32
32
  ),
33
33
  top: -10,
@@ -37,11 +37,11 @@ const A = 60 * 60 * 24, h = ["NOT_STARTED", "IN_PROGRESS"], $ = (t) => {
37
37
  case "NOT_STARTED":
38
38
  return {
39
39
  icon: /* @__PURE__ */ e(
40
- a,
40
+ d,
41
41
  {
42
42
  renderAs: "primary",
43
43
  position: "bottom",
44
- tooltipItem: E > 1 ? `${E} days left` : "Complete it today",
44
+ tooltipItem: I > 1 ? `${I} days left` : "Complete it today",
45
45
  zIndex: 10,
46
46
  hidden: !i,
47
47
  children: /* @__PURE__ */ e(
@@ -53,7 +53,7 @@ const A = 60 * 60 * 24, h = ["NOT_STARTED", "IN_PROGRESS"], $ = (t) => {
53
53
  $borderRadius: 16,
54
54
  $paddingRight: 6,
55
55
  $paddingLeft: 6,
56
- children: r && /* @__PURE__ */ e(d, { $renderAs: "ub3-bold", $color: "WHITE", children: r })
56
+ children: o && /* @__PURE__ */ e(E, { $renderAs: "ub3-bold", $color: "WHITE", children: o })
57
57
  }
58
58
  )
59
59
  }
@@ -63,13 +63,13 @@ const A = 60 * 60 * 24, h = ["NOT_STARTED", "IN_PROGRESS"], $ = (t) => {
63
63
  };
64
64
  case "LOCKED":
65
65
  return {
66
- icon: /* @__PURE__ */ e(f, { width: 32, height: 32 }),
66
+ icon: /* @__PURE__ */ e(u, { width: 32, height: 32 }),
67
67
  top: -12,
68
68
  right: -12
69
69
  };
70
70
  case "IN_PROGRESS":
71
71
  return {
72
- icon: /* @__PURE__ */ m(
72
+ icon: /* @__PURE__ */ p(
73
73
  l,
74
74
  {
75
75
  $flexDirection: "row",
@@ -77,10 +77,10 @@ const A = 60 * 60 * 24, h = ["NOT_STARTED", "IN_PROGRESS"], $ = (t) => {
77
77
  $justifyContent: "center",
78
78
  $borderRadius: 16,
79
79
  $paddingRight: 0,
80
- $paddingLeft: r ? 6 : 0,
80
+ $paddingLeft: o ? 6 : 0,
81
81
  children: [
82
- r && /* @__PURE__ */ e(d, { $renderAs: "ub3-bold", $color: "WHITE", children: r }),
83
- /* @__PURE__ */ e(u, {})
82
+ o && /* @__PURE__ */ e(E, { $renderAs: "ub3-bold", $color: "WHITE", children: o }),
83
+ /* @__PURE__ */ e(R, {})
84
84
  ]
85
85
  }
86
86
  )
@@ -88,9 +88,9 @@ const A = 60 * 60 * 24, h = ["NOT_STARTED", "IN_PROGRESS"], $ = (t) => {
88
88
  case "COMPLETED":
89
89
  return {
90
90
  icon: /* @__PURE__ */ e(
91
- I,
91
+ m,
92
92
  {
93
- Icon: p,
93
+ Icon: T,
94
94
  label: typeof c == "number" ? `${c}%` : void 0
95
95
  }
96
96
  ),
@@ -100,13 +100,13 @@ const A = 60 * 60 * 24, h = ["NOT_STARTED", "IN_PROGRESS"], $ = (t) => {
100
100
  case "WAIT_FOR_REVIEW":
101
101
  return {
102
102
  icon: /* @__PURE__ */ e(
103
- a,
103
+ d,
104
104
  {
105
105
  renderAs: "primary",
106
106
  position: "bottom",
107
107
  tooltipItem: i ? "Waiting for teacher to review" : "Needs your review",
108
108
  zIndex: 10,
109
- children: /* @__PURE__ */ e(I, { Icon: T })
109
+ children: /* @__PURE__ */ e(m, { Icon: f })
110
110
  }
111
111
  ),
112
112
  top: -10,
@@ -117,53 +117,53 @@ const A = 60 * 60 * 24, h = ["NOT_STARTED", "IN_PROGRESS"], $ = (t) => {
117
117
  icon: void 0
118
118
  };
119
119
  }
120
- }, w = (t) => {
120
+ }, M = (t) => {
121
121
  switch (t) {
122
122
  case "LEARNING":
123
123
  case "LEVEL2":
124
124
  case "LEVEL3":
125
125
  return {
126
- lottie: o.LEARN
126
+ lottie: n.LEARN
127
127
  };
128
128
  case "RECAP":
129
129
  case "REMEDIAL":
130
130
  case "REVISION":
131
131
  return {
132
- lottie: o.RECAP
132
+ lottie: n.RECAP
133
133
  };
134
134
  case "DYNAMIC":
135
135
  case "ASSESSMENT":
136
136
  case "CHAPTER_ASSESSMENT":
137
137
  case "DIAGNOSTIC":
138
138
  return {
139
- lottie: o.TEST
139
+ lottie: n.TEST
140
140
  };
141
141
  case "PRACTICE":
142
142
  case "EXTRA_PRACTICE":
143
143
  case "TARGET_PRACTICE":
144
144
  case "MASTERY":
145
145
  return {
146
- lottie: o.PRACTICE
146
+ lottie: n.PRACTICE
147
147
  };
148
148
  case "PUZZLE":
149
149
  case "PUZZLE_EASY":
150
150
  case "PUZZLE_MEDIUM":
151
151
  case "PUZZLE_HARD":
152
152
  return {
153
- lottie: o.PUZZLE
153
+ lottie: n.PUZZLE
154
154
  };
155
155
  case "VIDEO":
156
156
  return {
157
- lottie: o.VIDEO
157
+ lottie: n.VIDEO
158
158
  };
159
159
  default:
160
160
  return {
161
- lottie: o.PROJECT
161
+ lottie: n.PROJECT
162
162
  };
163
163
  }
164
164
  };
165
165
  export {
166
- w as getNodeCardBasedIcon,
167
- y as getNodeStateBasedTagInfo
166
+ M as getNodeCardBasedIcon,
167
+ w as getNodeStateBasedTagInfo
168
168
  };
169
169
  //# sourceMappingURL=node-card-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-card-utils.js","sources":["../../../../src/features/chapters-v2/utils/node-card-utils.tsx"],"sourcesContent":["import type { INodeDataProps } from '../comps/node-card/node-card-types';\n\nimport Check2Icon from '../../../assets/line-icons/icons/check2';\nimport ExclamationIcon from '../../../assets/line-icons/icons/exclamation';\nimport Lock2Icon from '../../../assets/line-icons/icons/lock2';\nimport StatusIcon from '../../../assets/line-icons/icons/status';\nimport { LOTTIE } from '../../../assets/lottie/lottie';\nimport FlexView from '../..//ui/layout/flex-view';\nimport ArrowTooltip from '../../ui/arrow-tooltip/arrow-tooltip';\nimport Text from '../../ui/text/text';\nimport { InProgressIconWrapper } from '../comps/node-card/node-card-styled';\nimport Tag from '../comps/tag/tag';\n\ninterface DueDateInfo {\n isOverdue: boolean;\n daysText: string;\n differenceInDays: number;\n}\n\nconst SECONDS_PER_DAY = 60 * 60 * 24;\nconst OVERDUE_TAG_STATES: INodeDataProps['state'][] = ['NOT_STARTED', 'IN_PROGRESS'];\n\nconst calculateDueDateInfo = (dueDateTs?: number | null): DueDateInfo => {\n if (!dueDateTs) {\n return { isOverdue: false, daysText: '', differenceInDays: 0 };\n }\n\n const currentTimestamp = Math.floor(Date.now() / 1000);\n const differenceInSeconds = dueDateTs - currentTimestamp;\n const differenceInDays = Math.ceil(differenceInSeconds / SECONDS_PER_DAY);\n\n const isOverdue = differenceInDays < 0;\n\n const daysText = differenceInDays > 0 ? `${Math.abs(differenceInDays)}D` : '';\n\n return { isOverdue, daysText, differenceInDays };\n};\n\nconst getNodeStateBasedTagInfo = (\n nodeState: INodeDataProps['state'],\n isStudent: boolean,\n accuracy?: number | null,\n dueDateTs?: number | null,\n) => {\n const { isOverdue, daysText, differenceInDays } = calculateDueDateInfo(dueDateTs);\n\n if (isOverdue && OVERDUE_TAG_STATES.includes(nodeState)) {\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem=\"Complete now\"\n zIndex={10}\n hidden={!isStudent}\n parentWidth=\"fit-content\"\n >\n <FlexView $background=\"RED\" $borderRadius={16} $gapX={0.24} $gutterX={0.5}>\n <Text $renderAs=\"ac4-black\" $color=\"WHITE\">\n OVERDUE\n </Text>\n </FlexView>\n </ArrowTooltip>\n ),\n top: -10,\n right: -10,\n };\n }\n\n switch (nodeState) {\n case 'NOT_STARTED':\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={\n differenceInDays > 1 ? `${differenceInDays} days left` : 'Complete it today'\n }\n zIndex={10}\n hidden={!isStudent}\n >\n <InProgressIconWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderRadius={16}\n $paddingRight={6}\n $paddingLeft={6}\n >\n {daysText && (\n <Text $renderAs=\"ub3-bold\" $color=\"WHITE\">\n {daysText}\n </Text>\n )}\n </InProgressIconWrapper>\n </ArrowTooltip>\n ),\n top: 0,\n right: 0,\n };\n case 'LOCKED':\n return {\n icon: <Lock2Icon width={32} height={32} />,\n top: -12,\n right: -12,\n };\n case 'IN_PROGRESS':\n return {\n icon: (\n <InProgressIconWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderRadius={16}\n $paddingRight={0}\n $paddingLeft={daysText ? 6 : 0}\n >\n {daysText && (\n <Text $renderAs=\"ub3-bold\" $color=\"WHITE\">\n {daysText}\n </Text>\n )}\n <StatusIcon />\n </InProgressIconWrapper>\n ),\n };\n case 'COMPLETED':\n return {\n icon: (\n <Tag\n Icon={Check2Icon}\n label={typeof accuracy === 'number' ? `${accuracy}%` : undefined}\n />\n ),\n top: -10,\n right: -10,\n };\n case 'WAIT_FOR_REVIEW':\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={isStudent ? 'Waiting for teacher to review' : 'Needs your review'}\n zIndex={10}\n >\n <Tag Icon={ExclamationIcon} />\n </ArrowTooltip>\n ),\n top: -10,\n right: -10,\n };\n\n default:\n return {\n icon: undefined,\n };\n }\n};\n\nconst getNodeCardBasedIcon = (nodeType: INodeDataProps['node_type']) => {\n switch (nodeType) {\n case 'LEARNING':\n case 'LEVEL2':\n case 'LEVEL3':\n return {\n lottie: LOTTIE.LEARN,\n };\n case 'RECAP':\n case 'REMEDIAL':\n case 'REVISION':\n return {\n lottie: LOTTIE.RECAP,\n };\n case 'DYNAMIC':\n case 'ASSESSMENT':\n case 'CHAPTER_ASSESSMENT':\n case 'DIAGNOSTIC':\n return {\n lottie: LOTTIE.TEST,\n };\n case 'PRACTICE':\n case 'EXTRA_PRACTICE':\n case 'TARGET_PRACTICE':\n case 'MASTERY':\n return {\n lottie: LOTTIE.PRACTICE,\n };\n case 'PUZZLE':\n case 'PUZZLE_EASY':\n case 'PUZZLE_MEDIUM':\n case 'PUZZLE_HARD':\n return {\n lottie: LOTTIE.PUZZLE,\n };\n case 'VIDEO':\n return {\n lottie: LOTTIE.VIDEO,\n };\n default:\n return {\n lottie: LOTTIE.PROJECT,\n };\n }\n};\n\nexport { getNodeStateBasedTagInfo, getNodeCardBasedIcon };\n"],"names":["SECONDS_PER_DAY","OVERDUE_TAG_STATES","calculateDueDateInfo","dueDateTs","currentTimestamp","differenceInSeconds","differenceInDays","isOverdue","daysText","getNodeStateBasedTagInfo","nodeState","isStudent","accuracy","jsx","ArrowTooltip","FlexView","Text","InProgressIconWrapper","Lock2Icon","jsxs","StatusIcon","Tag","Check2Icon","ExclamationIcon","getNodeCardBasedIcon","nodeType","LOTTIE"],"mappings":"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"}
1
+ {"version":3,"file":"node-card-utils.js","sources":["../../../../src/features/chapters-v2/utils/node-card-utils.tsx"],"sourcesContent":["import type { INodeDataProps } from '../comps/node-card/node-card-types';\n\nimport Check2Icon from '../../../assets/line-icons/icons/check2';\nimport ExclamationIcon from '../../../assets/line-icons/icons/exclamation';\nimport Lock2Icon from '../../../assets/line-icons/icons/lock2';\nimport StatusIcon from '../../../assets/line-icons/icons/status';\nimport { LOTTIE } from '../../../assets/lottie/lottie';\nimport FlexView from '../..//ui/layout/flex-view';\nimport ArrowTooltip from '../../ui/arrow-tooltip/arrow-tooltip';\nimport Text from '../../ui/text/text';\nimport { InProgressIconWrapper } from '../comps/node-card/node-card-styled';\nimport Tag from '../comps/tag/tag';\n\ninterface DueDateInfo {\n isOverdue: boolean;\n daysText: string;\n differenceInDays: number;\n}\n\nconst SECONDS_PER_DAY = 60 * 60 * 24;\nconst OVERDUE_TAG_STATES: INodeDataProps['state'][] = ['NOT_STARTED', 'IN_PROGRESS'];\n\nconst calculateDueDateInfo = (dueDateTs?: number | null, isMilestone?: boolean): DueDateInfo => {\n if (!dueDateTs || isMilestone) {\n return { isOverdue: false, daysText: '', differenceInDays: 0 };\n }\n\n const currentTimestamp = Math.floor(Date.now() / 1000);\n const differenceInSeconds = dueDateTs - currentTimestamp;\n const differenceInDays = Math.ceil(differenceInSeconds / SECONDS_PER_DAY);\n\n const isOverdue = differenceInDays < 0;\n\n const daysText = differenceInDays > 0 ? `${Math.abs(differenceInDays)}D` : '';\n\n return { isOverdue, daysText, differenceInDays };\n};\n\nconst getNodeStateBasedTagInfo = (\n nodeState: INodeDataProps['state'],\n isStudent: boolean,\n accuracy?: number | null,\n dueDateTs?: number | null,\n isMilestone?: boolean,\n) => {\n const { isOverdue, daysText, differenceInDays } = calculateDueDateInfo(dueDateTs, isMilestone);\n\n if (!isMilestone && isOverdue && OVERDUE_TAG_STATES.includes(nodeState)) {\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem=\"Complete now\"\n zIndex={10}\n hidden={!isStudent}\n parentWidth=\"fit-content\"\n >\n <FlexView $background=\"RED\" $borderRadius={16} $gapX={0.24} $gutterX={0.5}>\n <Text $renderAs=\"ac4-black\" $color=\"WHITE\">\n OVERDUE\n </Text>\n </FlexView>\n </ArrowTooltip>\n ),\n top: -10,\n right: -10,\n };\n }\n\n switch (nodeState) {\n case 'NOT_STARTED':\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={\n differenceInDays > 1 ? `${differenceInDays} days left` : 'Complete it today'\n }\n zIndex={10}\n hidden={!isStudent}\n >\n <InProgressIconWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderRadius={16}\n $paddingRight={6}\n $paddingLeft={6}\n >\n {daysText && (\n <Text $renderAs=\"ub3-bold\" $color=\"WHITE\">\n {daysText}\n </Text>\n )}\n </InProgressIconWrapper>\n </ArrowTooltip>\n ),\n top: 0,\n right: 0,\n };\n case 'LOCKED':\n return {\n icon: <Lock2Icon width={32} height={32} />,\n top: -12,\n right: -12,\n };\n case 'IN_PROGRESS':\n return {\n icon: (\n <InProgressIconWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderRadius={16}\n $paddingRight={0}\n $paddingLeft={daysText ? 6 : 0}\n >\n {daysText && (\n <Text $renderAs=\"ub3-bold\" $color=\"WHITE\">\n {daysText}\n </Text>\n )}\n <StatusIcon />\n </InProgressIconWrapper>\n ),\n };\n case 'COMPLETED':\n return {\n icon: (\n <Tag\n Icon={Check2Icon}\n label={typeof accuracy === 'number' ? `${accuracy}%` : undefined}\n />\n ),\n top: -10,\n right: -10,\n };\n case 'WAIT_FOR_REVIEW':\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={isStudent ? 'Waiting for teacher to review' : 'Needs your review'}\n zIndex={10}\n >\n <Tag Icon={ExclamationIcon} />\n </ArrowTooltip>\n ),\n top: -10,\n right: -10,\n };\n\n default:\n return {\n icon: undefined,\n };\n }\n};\n\nconst getNodeCardBasedIcon = (nodeType: INodeDataProps['node_type']) => {\n switch (nodeType) {\n case 'LEARNING':\n case 'LEVEL2':\n case 'LEVEL3':\n return {\n lottie: LOTTIE.LEARN,\n };\n case 'RECAP':\n case 'REMEDIAL':\n case 'REVISION':\n return {\n lottie: LOTTIE.RECAP,\n };\n case 'DYNAMIC':\n case 'ASSESSMENT':\n case 'CHAPTER_ASSESSMENT':\n case 'DIAGNOSTIC':\n return {\n lottie: LOTTIE.TEST,\n };\n case 'PRACTICE':\n case 'EXTRA_PRACTICE':\n case 'TARGET_PRACTICE':\n case 'MASTERY':\n return {\n lottie: LOTTIE.PRACTICE,\n };\n case 'PUZZLE':\n case 'PUZZLE_EASY':\n case 'PUZZLE_MEDIUM':\n case 'PUZZLE_HARD':\n return {\n lottie: LOTTIE.PUZZLE,\n };\n case 'VIDEO':\n return {\n lottie: LOTTIE.VIDEO,\n };\n default:\n return {\n lottie: LOTTIE.PROJECT,\n };\n }\n};\n\nexport { getNodeStateBasedTagInfo, getNodeCardBasedIcon };\n"],"names":["SECONDS_PER_DAY","OVERDUE_TAG_STATES","calculateDueDateInfo","dueDateTs","isMilestone","currentTimestamp","differenceInSeconds","differenceInDays","isOverdue","daysText","getNodeStateBasedTagInfo","nodeState","isStudent","accuracy","jsx","ArrowTooltip","FlexView","Text","InProgressIconWrapper","Lock2Icon","jsxs","StatusIcon","Tag","Check2Icon","ExclamationIcon","getNodeCardBasedIcon","nodeType","LOTTIE"],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ import { jsx as n, jsxs as g } from "react/jsx-runtime";
2
+ import { memo as b, useState as w, useCallback as i } from "react";
3
+ import k from "../../../assets/line-icons/icons/check.js";
4
+ import y from "../../../assets/line-icons/icons/share.js";
5
+ import f from "../../ui/buttons/button/button.js";
6
+ import p from "../../ui/layout/flex-view.js";
7
+ import I from "../../ui/separator/separator.js";
8
+ import B from "../../ui/text/text.js";
9
+ import { dataURIToBlob as x } from "../cue-canvas-helpers.js";
10
+ import { useCueCanvasActions as A } from "../hooks/use-cue-canvas-actions.js";
11
+ const S = (h) => {
12
+ const { width: c, onSendImageToChat: t, onMarkAsResolved: s } = h, { homeworkId: o, activeInstance: r, setHomeworkId: l } = A(), [m, u] = w(!1), a = i(() => {
13
+ r == null || r.clearCanvas(), l(void 0), u(!1);
14
+ }, [r, l]), d = i(async () => {
15
+ if (!r) return;
16
+ const e = await (r == null ? void 0 : r.getCanvasAsImage());
17
+ return e ? [x(e)] : void 0;
18
+ }, [r]), $ = i(async () => {
19
+ const e = await d();
20
+ !o || !t || !e || t == null || t(o, e, a);
21
+ }, [d, o, t, a]), C = i(() => {
22
+ o && (u(!0), s == null || s(o, a));
23
+ }, [o, s, a]);
24
+ return o ? m ? /* @__PURE__ */ n(
25
+ p,
26
+ {
27
+ $gapX: 1,
28
+ $gutterX: 0.5,
29
+ $alignItems: "center",
30
+ $justifyContent: "center",
31
+ $width: c,
32
+ $background: "YELLOW_1",
33
+ children: /* @__PURE__ */ n(B, { $renderAs: "body3", $color: "BLACK", children: "Resolving...." })
34
+ }
35
+ ) : /* @__PURE__ */ g(
36
+ p,
37
+ {
38
+ $flexDirection: "row",
39
+ $gapX: 1,
40
+ $gutterX: 0.5,
41
+ $alignItems: "center",
42
+ $justifyContent: "center",
43
+ $width: c,
44
+ $background: "YELLOW_1",
45
+ children: [
46
+ /* @__PURE__ */ n(
47
+ f,
48
+ {
49
+ label: "Mark as reolved",
50
+ onClick: C,
51
+ renderAs: "primary",
52
+ Icon: k,
53
+ busy: m
54
+ }
55
+ ),
56
+ /* @__PURE__ */ n(I, { width: 16 }),
57
+ /* @__PURE__ */ n(
58
+ f,
59
+ {
60
+ label: "Send CueBoard image to chat",
61
+ onClick: $,
62
+ renderAs: "primary",
63
+ Icon: y
64
+ }
65
+ )
66
+ ]
67
+ }
68
+ ) : null;
69
+ }, _ = b(S);
70
+ export {
71
+ _ as default
72
+ };
73
+ //# sourceMappingURL=homework-controls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"homework-controls.js","sources":["../../../../src/features/cue-canvas/bottombar/homework-controls.tsx"],"sourcesContent":["import type { IHomeWorkControllerProps } from './bottombar-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useState } from 'react';\n\nimport CheckIcon from '../../../assets/line-icons/icons/check';\nimport ShareIcon from '../../../assets/line-icons/icons/share';\nimport Button from '../../ui/buttons/button/button';\nimport FlexView from '../../ui/layout/flex-view';\nimport Separator from '../../ui/separator/separator';\nimport Text from '../../ui/text/text';\nimport { dataURIToBlob } from '../cue-canvas-helpers';\nimport { useCueCanvasActions } from '../hooks/use-cue-canvas-actions';\n\nconst HomeworkController: FC<IHomeWorkControllerProps> = props => {\n const { width, onSendImageToChat, onMarkAsResolved } = props;\n const { homeworkId, activeInstance, setHomeworkId } = useCueCanvasActions();\n const [isBusy, setIsBusy] = useState(false);\n\n const onSuccess = useCallback(() => {\n activeInstance?.clearCanvas();\n setHomeworkId(undefined);\n setIsBusy(false);\n }, [activeInstance, setHomeworkId]);\n\n const getBoardSnapshot = useCallback(async () => {\n if (!activeInstance) return;\n\n const snapshot = await activeInstance?.getCanvasAsImage();\n\n if (!snapshot) {\n return;\n }\n\n const blobdata = dataURIToBlob(snapshot);\n\n return [blobdata];\n }, [activeInstance]);\n\n const handleSendImageToChat = useCallback(async () => {\n const snapshot = await getBoardSnapshot();\n\n if (!homeworkId || !onSendImageToChat || !snapshot) return;\n\n onSendImageToChat?.(homeworkId, snapshot, onSuccess);\n }, [getBoardSnapshot, homeworkId, onSendImageToChat, onSuccess]);\n\n const handleMarkAsResolved = useCallback(() => {\n if (!homeworkId) return;\n setIsBusy(true);\n onMarkAsResolved?.(homeworkId, onSuccess);\n }, [homeworkId, onMarkAsResolved, onSuccess]);\n\n if (!homeworkId) return null;\n\n if (isBusy) {\n return (\n <FlexView\n $gapX={1}\n $gutterX={0.5}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $width={width}\n $background=\"YELLOW_1\"\n >\n <Text $renderAs=\"body3\" $color=\"BLACK\">\n Resolving....\n </Text>\n </FlexView>\n );\n }\n\n return (\n <FlexView\n $flexDirection=\"row\"\n $gapX={1}\n $gutterX={0.5}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $width={width}\n $background=\"YELLOW_1\"\n >\n <Button\n label=\"Mark as reolved\"\n onClick={handleMarkAsResolved}\n renderAs={'primary'}\n Icon={CheckIcon}\n busy={isBusy}\n />\n <Separator width={16} />\n <Button\n label=\"Send CueBoard image to chat\"\n onClick={handleSendImageToChat}\n renderAs={'primary'}\n Icon={ShareIcon}\n />\n </FlexView>\n );\n};\n\nexport default memo(HomeworkController);\n"],"names":["HomeworkController","props","width","onSendImageToChat","onMarkAsResolved","homeworkId","activeInstance","setHomeworkId","useCueCanvasActions","isBusy","setIsBusy","useState","onSuccess","useCallback","getBoardSnapshot","snapshot","dataURIToBlob","handleSendImageToChat","handleMarkAsResolved","jsx","FlexView","Text","jsxs","Button","CheckIcon","Separator","ShareIcon","homeworkControls","memo"],"mappings":";;;;;;;;;;AAcA,MAAMA,IAAmD,CAASC,MAAA;AAChE,QAAM,EAAE,OAAAC,GAAO,mBAAAC,GAAmB,kBAAAC,EAAA,IAAqBH,GACjD,EAAE,YAAAI,GAAY,gBAAAC,GAAgB,eAAAC,MAAkBC,EAAoB,GACpE,CAACC,GAAQC,CAAS,IAAIC,EAAS,EAAK,GAEpCC,IAAYC,EAAY,MAAM;AAClC,IAAAP,KAAA,QAAAA,EAAgB,eAChBC,EAAc,MAAS,GACvBG,EAAU,EAAK;AAAA,EAAA,GACd,CAACJ,GAAgBC,CAAa,CAAC,GAE5BO,IAAmBD,EAAY,YAAY;AAC/C,QAAI,CAACP,EAAgB;AAEf,UAAAS,IAAW,OAAMT,KAAA,gBAAAA,EAAgB;AAEvC,WAAKS,IAME,CAFUC,EAAcD,CAAQ,CAEvB,IALd;AAAA,EAKc,GACf,CAACT,CAAc,CAAC,GAEbW,IAAwBJ,EAAY,YAAY;AAC9C,UAAAE,IAAW,MAAMD;AAEvB,IAAI,CAACT,KAAc,CAACF,KAAqB,CAACY,KAEtBZ,KAAA,QAAAA,EAAAE,GAAYU,GAAUH;AAAA,KACzC,CAACE,GAAkBT,GAAYF,GAAmBS,CAAS,CAAC,GAEzDM,IAAuBL,EAAY,MAAM;AAC7C,IAAKR,MACLK,EAAU,EAAI,GACdN,KAAA,QAAAA,EAAmBC,GAAYO;AAAA,EAC9B,GAAA,CAACP,GAAYD,GAAkBQ,CAAS,CAAC;AAExC,SAACP,IAEDI,IAEA,gBAAAU;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAO;AAAA,MACP,UAAU;AAAA,MACV,aAAY;AAAA,MACZ,iBAAgB;AAAA,MAChB,QAAQlB;AAAA,MACR,aAAY;AAAA,MAEZ,4BAACmB,GAAK,EAAA,WAAU,SAAQ,QAAO,SAAQ,UAEvC,iBAAA;AAAA,IAAA;AAAA,EAAA,IAMJ,gBAAAC;AAAA,IAACF;AAAA,IAAA;AAAA,MACC,gBAAe;AAAA,MACf,OAAO;AAAA,MACP,UAAU;AAAA,MACV,aAAY;AAAA,MACZ,iBAAgB;AAAA,MAChB,QAAQlB;AAAA,MACR,aAAY;AAAA,MAEZ,UAAA;AAAA,QAAA,gBAAAiB;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN,SAASL;AAAA,YACT,UAAU;AAAA,YACV,MAAMM;AAAA,YACN,MAAMf;AAAA,UAAA;AAAA,QACR;AAAA,QACA,gBAAAU,EAACM,GAAU,EAAA,OAAO,GAAI,CAAA;AAAA,QACtB,gBAAAN;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,OAAM;AAAA,YACN,SAASN;AAAA,YACT,UAAU;AAAA,YACV,MAAMS;AAAA,UAAA;AAAA,QACR;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,IA1CoB;AA6C1B,GAEeC,IAAAC,EAAK5B,CAAkB;"}
@@ -1,17 +1,20 @@
1
- import { createContext as t } from "react";
2
- import { CANVAS_COLORS as o } from "./constants/constants.js";
3
- const c = t({
1
+ import { createContext as o } from "react";
2
+ import { CANVAS_COLORS as e } from "./constants/constants.js";
3
+ const v = o({
4
4
  activeInstance: void 0,
5
5
  setActiveInstance: () => {
6
6
  },
7
7
  activeTool: "pen",
8
8
  setActiveTool: () => {
9
9
  },
10
- activeColor: Object.keys(o)[0],
10
+ activeColor: Object.keys(e)[0],
11
11
  setActiveColor: () => {
12
+ },
13
+ homeworkId: void 0,
14
+ setHomeworkId: () => {
12
15
  }
13
16
  });
14
17
  export {
15
- c as default
18
+ v as default
16
19
  };
17
20
  //# sourceMappingURL=cue-canvas-context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cue-canvas-context.js","sources":["../../../src/features/cue-canvas/cue-canvas-context.tsx"],"sourcesContent":["import type { TPolyContextValue } from './types/context';\nimport type { TCueCanvasColors } from './types/cue-canvas';\n\nimport { createContext } from 'react';\n\nimport { CANVAS_COLORS } from './constants/constants';\n\nconst PolyContext = createContext<TPolyContextValue>({\n activeInstance: undefined,\n setActiveInstance: () => undefined,\n activeTool: 'pen',\n setActiveTool: () => undefined,\n activeColor: Object.keys(CANVAS_COLORS)[0] as TCueCanvasColors,\n setActiveColor: () => undefined,\n});\n\nexport default PolyContext;\n"],"names":["PolyContext","createContext","CANVAS_COLORS"],"mappings":";;AAOA,MAAMA,IAAcC,EAAiC;AAAA,EACnD,gBAAgB;AAAA,EAChB,mBAAmB,MAAM;AAAA;AAAA,EACzB,YAAY;AAAA,EACZ,eAAe,MAAM;AAAA;AAAA,EACrB,aAAa,OAAO,KAAKC,CAAa,EAAE,CAAC;AAAA,EACzC,gBAAgB,MAAM;AAAA;AACxB,CAAC;"}
1
+ {"version":3,"file":"cue-canvas-context.js","sources":["../../../src/features/cue-canvas/cue-canvas-context.tsx"],"sourcesContent":["import type { TPolyContextValue } from './types/context';\nimport type { TCueCanvasColors } from './types/cue-canvas';\n\nimport { createContext } from 'react';\n\nimport { CANVAS_COLORS } from './constants/constants';\n\nconst PolyContext = createContext<TPolyContextValue>({\n activeInstance: undefined,\n setActiveInstance: () => undefined,\n activeTool: 'pen',\n setActiveTool: () => undefined,\n activeColor: Object.keys(CANVAS_COLORS)[0] as TCueCanvasColors,\n setActiveColor: () => undefined,\n homeworkId: undefined,\n setHomeworkId: () => undefined,\n});\n\nexport default PolyContext;\n"],"names":["PolyContext","createContext","CANVAS_COLORS"],"mappings":";;AAOA,MAAMA,IAAcC,EAAiC;AAAA,EACnD,gBAAgB;AAAA,EAChB,mBAAmB,MAAM;AAAA;AAAA,EACzB,YAAY;AAAA,EACZ,eAAe,MAAM;AAAA;AAAA,EACrB,aAAa,OAAO,KAAKC,CAAa,EAAE,CAAC;AAAA,EACzC,gBAAgB,MAAM;AAAA;AAAA,EACtB,YAAY;AAAA,EACZ,eAAe,MAAM;AAAA;AACvB,CAAC;"}
@@ -1,20 +1,21 @@
1
- var d = Object.defineProperty;
2
- var u = (r, t, e) => t in r ? d(r, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[t] = e;
3
- var s = (r, t, e) => u(r, typeof t != "symbol" ? t + "" : t, e);
1
+ var u = Object.defineProperty;
2
+ var g = (l, t, e) => t in l ? u(l, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : l[t] = e;
3
+ var s = (l, t, e) => g(l, typeof t != "symbol" ? t + "" : t, e);
4
4
  import v from "../../node_modules/lodash.debounce/index.js";
5
- import { removeTileButton as f, removeMask as g, checkTextOrEquationTool as y, getReverseMap as C, getToolAndSubtool as m } from "./cue-canvas-helpers.js";
6
- class b {
5
+ import { removeTileButton as f, removeMask as y, checkTextOrEquationTool as C, getReverseMap as m, getToolAndSubtool as T } from "./cue-canvas-helpers.js";
6
+ class k {
7
7
  constructor({
8
8
  onPublish: t,
9
9
  onSubscribe: e,
10
10
  onUpdateActiveTool: a,
11
- onUpdateHeight: n,
12
- uploadImageToS3: o,
13
- height: i,
14
- userId: l,
15
- canvasId: h,
11
+ onUpdateHeight: o,
12
+ uploadImageToS3: i,
13
+ height: n,
14
+ userId: h,
15
+ canvasId: r,
16
16
  userType: c,
17
- renderAs: p
17
+ renderAs: p,
18
+ updateCanvasConfig: d
18
19
  }) {
19
20
  s(this, "polycanvas");
20
21
  s(this, "publish");
@@ -28,22 +29,22 @@ class b {
28
29
  s(this, "fileInput", null);
29
30
  s(this, "debouncedViewportChange");
30
31
  s(this, "uploadImageToS3");
31
- s(this, "publishToChannel", (t, e, a) => {
32
+ s(this, "updateCanvasConfigChange");
33
+ s(this, "gridName");
34
+ s(this, "publishToChannel", (t) => {
32
35
  this.publish && this.publish({
33
36
  eventName: "cue_canvas_changed",
34
37
  eventPayload: {
35
38
  data: t,
36
39
  height: this.height,
37
40
  userId: this.userId,
38
- responseId: this.canvasId,
39
- gridName: e,
40
- dimension: a
41
+ responseId: this.canvasId
41
42
  }
42
43
  });
43
44
  });
44
45
  s(this, "onChange", (t) => {
45
46
  const a = Object.fromEntries(t.entries());
46
- y(a) && this.onUpdateActiveTool("move"), this.publishToChannel(a);
47
+ C(a) && this.onUpdateActiveTool("move"), this.publishToChannel(a);
47
48
  });
48
49
  s(this, "undo", () => {
49
50
  if (!this.polycanvas)
@@ -51,7 +52,7 @@ class b {
51
52
  const t = this.polycanvas.undo();
52
53
  if (!t)
53
54
  return;
54
- const e = C(t);
55
+ const e = m(t);
55
56
  this.onChange(e);
56
57
  });
57
58
  s(this, "redo", () => {
@@ -73,6 +74,7 @@ class b {
73
74
  const t = this.polycanvas.getViewport();
74
75
  this.polycanvas.setViewport(t.x, t.y, t.zoom * 0.9);
75
76
  });
77
+ s(this, "getCanvasAsImage", async () => this.polycanvas ? await this.polycanvas.image(3e3, 3e3, "png") : void 0);
76
78
  s(this, "downloadCanvasAsImage", async () => {
77
79
  if (!this.polycanvas) return;
78
80
  const t = await this.polycanvas.image(3e3, 3e3, "png");
@@ -80,96 +82,99 @@ class b {
80
82
  const e = document.createElement("a");
81
83
  e.href = t, e.download = `canvas-drawing-${Date.now()}.png`, e.click();
82
84
  });
83
- s(this, "uploadFileToCanvas", async (t) => new Promise((e, a) => {
84
- this.uploadImageToS3 ? e(this.uploadImageToS3(t)) : a(new Error("Upload function not provided"));
85
- }));
86
85
  s(this, "onViewPortChange", (t) => {
87
- if (!this.publish) return;
88
- const e = t;
89
- this.publishToChannel({}, void 0, e);
86
+ this.updateCanvasConfigChange && this.updateCanvasConfigChange({ dimesion: t });
90
87
  });
91
88
  s(this, "openFileUpload", () => {
92
- this.fileInput || (this.fileInput = document.createElement("input"), this.fileInput.type = "file", this.fileInput.accept = "image/*", this.fileInput.style.display = "none", this.fileInput.onchange = this.addImageToCanvas, document.body.appendChild(this.fileInput)), this.fileInput.click();
89
+ this.fileInput || (this.fileInput = document.createElement("input"), this.fileInput.type = "file", this.fileInput.accept = "image/*", this.fileInput.style.display = "none", this.fileInput.onchange = this.onSelectImage, document.body.appendChild(this.fileInput)), this.fileInput.click();
93
90
  });
94
- s(this, "addImageToCanvas", async (t) => {
95
- var h;
96
- const e = t.target, a = (h = e.files) == null ? void 0 : h[0];
97
- if (!a || !this.polycanvas || !this.uploadImageToS3) return;
98
- const n = await this.uploadImageToS3(a), o = this.polycanvas.getViewport(), i = {
91
+ s(this, "addImageToCanvas", (t) => {
92
+ if (!this.polycanvas) return;
93
+ const e = this.polycanvas.getViewport(), a = {
99
94
  name: "image",
100
- href: n,
101
- x: o.x + 88,
102
- y: o.y + 88
103
- }, l = this.polycanvas.add({
104
- ...i
95
+ href: t,
96
+ x: e.x + 24,
97
+ y: e.y + 24,
98
+ width: 500
99
+ }, o = this.polycanvas.add({
100
+ ...a
105
101
  });
106
102
  this.publishToChannel({
107
- [l]: [void 0, { ...i, status: "locked" }]
108
- }), e.value = "";
103
+ [o]: [void 0, { ...a, status: "locked" }]
104
+ });
109
105
  });
110
- s(this, "updateCanvasConfig", (t, e, a) => {
111
- this.polycanvas && (t > this.height && this.updateHeight(t), e && this.polycanvas.setViewport(e.x, e.y, e.zoom), a && this.polycanvas.setOptions({
112
- grid: a
113
- }));
106
+ s(this, "onSelectImage", async (t) => {
107
+ var i;
108
+ const e = t.target, a = (i = e.files) == null ? void 0 : i[0];
109
+ if (!a || !this.polycanvas || !this.uploadImageToS3) return;
110
+ const o = await this.uploadImageToS3(a);
111
+ o !== "error" && (this.addImageToCanvas(o), e.value = "");
114
112
  });
115
113
  s(this, "updateCanvas", ({ data: t, userId: e }) => {
116
114
  const a = this.userType === "TEACHER" || e === this.userId;
117
- Object.entries(t).forEach(([n, o]) => {
118
- var i, l, h;
119
- !o[0] && o[1] ? (i = this.polycanvas) == null || i.add({ ...o[1], cannotEdit: !a }, n) : o[0] && !o[1] ? (l = this.polycanvas) == null || l.delete(n) : o[0] && o[1] && ((h = this.polycanvas) == null || h.update(n, { ...o[1] }));
115
+ Object.entries(t).forEach(([o, i]) => {
116
+ var n, h, r;
117
+ !i[0] && i[1] ? ("name" in i[1] && i[1].name === "image" && (i[1].status = this.userType === "STUDENT" ? "locked" : void 0), (n = this.polycanvas) == null || n.add({ ...i[1], cannotEdit: !a }, o)) : i[0] && !i[1] ? (h = this.polycanvas) == null || h.delete(o) : i[0] && i[1] && ((r = this.polycanvas) == null || r.update(o, { ...i[1] }));
120
118
  });
121
119
  });
122
120
  s(this, "toggleTiles", (t) => {
123
121
  var e;
124
122
  (e = this.polycanvas) == null || e.toggleSidebar(t);
125
123
  });
124
+ s(this, "setViewPort", ({ x: t, y: e, zoom: a }) => {
125
+ var o;
126
+ if (this.polycanvas) {
127
+ const i = (o = this.polycanvas) == null ? void 0 : o.getViewport();
128
+ if (i.x === t && i.y === e && i.zoom === a)
129
+ return;
130
+ this.polycanvas.setViewport(t, e, a);
131
+ }
132
+ });
126
133
  s(this, "resetViewPort", () => {
127
134
  this.polycanvas && this.polycanvas.resetViewport();
128
135
  });
129
136
  s(this, "changeGrid", (t) => {
130
- this.polycanvas && (this.polycanvas.setOptions({
137
+ !this.polycanvas || this.gridName === t || (this.polycanvas.setOptions({
131
138
  grid: t
132
- }), this.publishToChannel({}, t));
139
+ }), this.gridName = t, this.updateCanvasConfigChange && this.updateCanvasConfigChange({ gridName: t }));
133
140
  });
134
141
  s(this, "lockSelectedTiles", () => {
135
- var a, n;
136
- const { tiles: t } = ((a = this.polycanvas) == null ? void 0 : a.serialize()) || {}, e = ((n = this.polycanvas) == null ? void 0 : n.getSelection()) || [];
142
+ var a, o;
143
+ const { tiles: t } = ((a = this.polycanvas) == null ? void 0 : a.serialize()) || {}, e = ((o = this.polycanvas) == null ? void 0 : o.getSelection()) || [];
137
144
  if (e.length > 0 && t) {
138
- const o = {};
139
- e.forEach((i) => {
140
- var h, c, p;
141
- if (!((h = t[i]) != null && h.name)) return;
142
- const l = { ...t[i], status: "locked" };
143
- (c = this.polycanvas) == null || c.update(i, l), (p = t[i]) != null && p.name && (o[i] = [t[i], l]);
144
- }), this.publishToChannel(o);
145
+ const i = {};
146
+ e.forEach((n) => {
147
+ var r, c, p;
148
+ if (!((r = t[n]) != null && r.name)) return;
149
+ const h = { ...t[n], status: "locked" };
150
+ (c = this.polycanvas) == null || c.update(n, h), (p = t[n]) != null && p.name && (i[n] = [t[n], h]);
151
+ }), this.publishToChannel(i);
145
152
  }
146
153
  });
147
154
  s(this, "unlockAllTiles", () => {
148
155
  if (!this.polycanvas) return;
149
156
  const { tiles: t } = this.polycanvas.serialize(), e = {};
150
- t && Object.entries(t).length > 0 && (Object.entries(t).forEach(([a, n]) => {
151
- var i;
152
- if (n.status !== "locked") return;
153
- const o = { ...n, status: void 0 };
154
- (i = this.polycanvas) == null || i.update(a, o), e[a] = [n, o];
157
+ t && Object.entries(t).length > 0 && (Object.entries(t).forEach(([a, o]) => {
158
+ var n;
159
+ if (o.status !== "locked") return;
160
+ const i = { ...o, status: void 0 };
161
+ (n = this.polycanvas) == null || n.update(a, i), e[a] = [o, i];
155
162
  }), this.publishToChannel(e));
156
163
  });
157
164
  s(this, "replaceCanvas", (t) => {
158
165
  if (!this.polycanvas) return;
159
166
  const { data: e, gridName: a } = t;
160
- this.polycanvas.clear(), a && this.polycanvas.setOptions({
161
- grid: a
162
- }), Object.entries(e).forEach(([n, o]) => {
163
- var i;
164
- if (!o[0] && o[1]) {
165
- (i = this.polycanvas) == null || i.add({ ...o[1] }, n);
167
+ this.polycanvas.clear(), a && this.changeGrid(a), Object.entries(e).forEach(([o, i]) => {
168
+ var n;
169
+ if (!i[0] && i[1]) {
170
+ (n = this.polycanvas) == null || n.add({ ...i[1] }, o);
166
171
  return;
167
172
  }
168
- }), this.publishToChannel(e, a);
173
+ }), this.publishToChannel(e);
169
174
  });
170
175
  s(this, "setTool", (t) => {
171
176
  if (this.polycanvas) {
172
- const [e, a] = m(t);
177
+ const [e, a] = T(t);
173
178
  switch (e) {
174
179
  case "clearAll":
175
180
  this.clearCanvas();
@@ -222,10 +227,10 @@ class b {
222
227
  */
223
228
  s(this, "update", (t) => {
224
229
  if (Array.isArray(t)) {
225
- const e = t.map((i) => i.height).filter(Boolean), a = Math.max(...e), n = t.map((i) => i.dimension).filter(Boolean)[t.length - 1], o = t.map((i) => i.gridName).filter(Boolean)[t.length - 1];
226
- this.updateCanvasConfig(a, n, o), t.forEach((i) => this.updateCanvas(i));
230
+ const e = t.map((o) => o.height).filter(Boolean), a = Math.max(...e);
231
+ a > this.height && this.updateHeight(a), t.forEach((o) => this.updateCanvas(o));
227
232
  } else
228
- this.updateCanvasConfig(t.height, t.dimension, t == null ? void 0 : t.gridName), this.updateCanvas(t);
233
+ t.height > this.height && this.updateHeight(t.height), this.updateCanvas(t);
229
234
  });
230
235
  s(this, "setColor", (t) => {
231
236
  this.polycanvas && this.polycanvas.setColor(t);
@@ -237,9 +242,9 @@ class b {
237
242
  s(this, "destroy", () => {
238
243
  this.polycanvas && (this.polycanvas.off("change", this.onChange), this.polycanvas.destroy(), this.debouncedViewportChange.cancel(), this.renderAs === "whiteboard" && this.userType === "TEACHER" && this.polycanvas.off("viewport", this.debouncedViewportChange), this.polycanvas = void 0, this.fileInput && this.fileInput.parentNode && (this.fileInput.parentNode.removeChild(this.fileInput), this.fileInput = null));
239
244
  });
240
- this.onUpdateHeight = n, this.onUpdateActiveTool = a, this.height = i, this.uploadImageToS3 = o, this.userId = l, this.canvasId = h, this.publish = t, this.userType = c, this.renderAs = p, this.debouncedViewportChange = v(this.onViewPortChange, 300), e == null || e(this.canvasId, this.update);
245
+ this.onUpdateHeight = o, this.onUpdateActiveTool = a, this.height = n, this.uploadImageToS3 = i, this.userId = h, this.canvasId = r, this.publish = t, this.userType = c, this.renderAs = p, this.debouncedViewportChange = v(this.onViewPortChange, 300), this.updateCanvasConfigChange = d, e == null || e(this.canvasId, this.update);
241
246
  }
242
- async create({ canvasElementRef: t, canvasConfig: e, canvasSetting: a, initialData: n }) {
247
+ async create({ canvasElementRef: t, canvasConfig: e, canvasSetting: a, initialData: o }) {
243
248
  if (!t.current)
244
249
  throw new Error("PolyCanvas: Div Element Not found for canvas");
245
250
  this.polycanvas = await window.Polypad.create(t.current, {
@@ -247,11 +252,11 @@ class b {
247
252
  options: e
248
253
  },
249
254
  ...a,
250
- imageUpload: this.renderAs === "whiteboard" && this.userType === "TEACHER" ? this.uploadFileToCanvas : void 0
251
- }), this.renderAs === "whiteboard" && this.userType === "TEACHER" && (this.polycanvas.toggleSidebar(!1), f(t), this.polycanvas.on("viewport", this.debouncedViewportChange)), g(t), this.polycanvas.on("change", this.onChange), n && this.update(n);
255
+ imageUpload: this.renderAs === "whiteboard" && this.userType === "TEACHER" && this.uploadImageToS3 ? this.uploadImageToS3 : void 0
256
+ }), this.renderAs === "whiteboard" && this.userType === "TEACHER" && (this.polycanvas.toggleSidebar(!1), this.polycanvas.bindKeyboardEvents({}), f(t), this.polycanvas.on("viewport", this.debouncedViewportChange)), y(t), this.polycanvas.on("change", this.onChange), o && this.update(o);
252
257
  }
253
258
  }
254
259
  export {
255
- b as CueCanvasCore
260
+ k as CueCanvasCore
256
261
  };
257
262
  //# sourceMappingURL=cue-canvas-core.js.map