@clickview/lite 0.0.18-rc.2 → 0.0.18

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 (321) hide show
  1. package/dist/css/11.chunk.css +14 -8
  2. package/dist/css/12.chunk.css +15 -5
  3. package/dist/css/13.chunk.css +5 -13
  4. package/dist/css/14.chunk.css +6 -6
  5. package/dist/css/15.chunk.css +15 -3
  6. package/dist/css/16.chunk.css +9 -3
  7. package/dist/css/17.chunk.css +4 -2
  8. package/dist/css/19.chunk.css +2 -6
  9. package/dist/css/2.chunk.css +0 -14
  10. package/dist/css/20.chunk.css +2 -2
  11. package/dist/css/21.chunk.css +7 -1
  12. package/dist/css/22.chunk.css +2 -2
  13. package/dist/css/23.chunk.css +2 -2
  14. package/dist/css/24.chunk.css +1 -1
  15. package/dist/css/25.chunk.css +2 -2
  16. package/dist/css/26.chunk.css +2 -2
  17. package/dist/css/27.chunk.css +1 -67
  18. package/dist/css/28.chunk.css +2 -48
  19. package/dist/css/29.chunk.css +2 -45
  20. package/dist/css/3.chunk.css +7 -13
  21. package/dist/css/31.chunk.css +1 -6
  22. package/dist/css/34.chunk.css +1 -5
  23. package/dist/css/38.chunk.css +2 -36
  24. package/dist/css/4.chunk.css +13 -5
  25. package/dist/css/44.chunk.css +1 -1
  26. package/dist/css/46.chunk.css +2 -0
  27. package/dist/css/5.chunk.css +8 -2
  28. package/dist/css/6.chunk.css +2 -0
  29. package/dist/libs/common/src/react/utils/ArrayHelper.d.ts +1 -1
  30. package/dist/libs/shared/src/utils/ImageHelper.d.ts +1 -1
  31. package/dist/scripts/0-d95e8444c4.chunk.js +1 -0
  32. package/dist/scripts/{1-f6fa17226d.chunk.js → 1-2b6afccaa5.chunk.js} +3 -3
  33. package/dist/scripts/11-d419aa0984.chunk.js +1 -0
  34. package/dist/scripts/12-b38a27f951.chunk.js +1 -0
  35. package/dist/scripts/13-1ad100c6fa.chunk.js +1 -0
  36. package/dist/scripts/14-9f08e07fae.chunk.js +1 -0
  37. package/dist/scripts/15-ee9fb81b9f.chunk.js +1 -0
  38. package/dist/scripts/{14-11868e2868.chunk.js → 16-8fe78e04c2.chunk.js} +1 -1
  39. package/dist/scripts/17-ea7fe3ea28.chunk.js +1 -0
  40. package/dist/scripts/18-1bb07c0b9b.chunk.js +1 -0
  41. package/dist/scripts/19-c869d34687.chunk.js +1 -0
  42. package/dist/scripts/2-a816feb2a1.chunk.js +1 -0
  43. package/dist/scripts/20-43ec005977.chunk.js +1 -0
  44. package/dist/scripts/21-8513db8251.chunk.js +1 -0
  45. package/dist/scripts/22-d4adb2384c.chunk.js +1 -0
  46. package/dist/scripts/23-d8b5b9ad2c.chunk.js +1 -0
  47. package/dist/scripts/{21-891207049a.chunk.js → 24-f2913e26e2.chunk.js} +1 -1
  48. package/dist/scripts/25-68705527ea.chunk.js +1 -0
  49. package/dist/scripts/26-7d25448f1c.chunk.js +1 -0
  50. package/dist/scripts/27-bab6c9f5c7.chunk.js +1 -0
  51. package/dist/scripts/28-080baa3fbc.chunk.js +1 -0
  52. package/dist/scripts/29-5e9889b68a.chunk.js +1 -0
  53. package/dist/scripts/3-6e2ac46662.chunk.js +7 -0
  54. package/dist/scripts/{27-f26afdae78.chunk.js → 30-cdbeea4fc5.chunk.js} +1 -1
  55. package/dist/scripts/31-6fa4413cdb.chunk.js +1 -0
  56. package/dist/scripts/32-d4725d3b7d.chunk.js +1 -0
  57. package/dist/scripts/33-bec24aab85.chunk.js +1 -0
  58. package/dist/scripts/34-c42c6cf42a.chunk.js +1 -0
  59. package/dist/scripts/{33-4579af9cf9.chunk.js → 35-4512b236f2.chunk.js} +1 -1
  60. package/dist/scripts/{34-d8b96d9f9f.chunk.js → 36-eede7769b2.chunk.js} +1 -1
  61. package/dist/scripts/37-80ed339c4f.chunk.js +1 -0
  62. package/dist/scripts/{37-afd3d321e3.chunk.js → 38-c11d4c88e3.chunk.js} +1 -1
  63. package/dist/scripts/{38-6ad53aa15b.chunk.js → 39-d0e74fb062.chunk.js} +1 -1
  64. package/dist/scripts/4-ea79bf1533.chunk.js +1 -0
  65. package/dist/scripts/{39-46c747b1d9.chunk.js → 40-d764e6157b.chunk.js} +1 -1
  66. package/dist/scripts/{40-c1b8806b1c.chunk.js → 41-0aa7093354.chunk.js} +1 -1
  67. package/dist/scripts/42-3d8c5fa14c.chunk.js +1 -0
  68. package/dist/scripts/43-969806e81e.chunk.js +1 -0
  69. package/dist/scripts/44-e8e3fef4c3.chunk.js +1 -0
  70. package/dist/scripts/45-d8f70269d6.chunk.js +1 -0
  71. package/dist/scripts/{44-7f92272274.chunk.js → 46-946ae22c1f.chunk.js} +1 -1
  72. package/dist/scripts/47-1579412cd0.chunk.js +1 -0
  73. package/dist/scripts/48-fdf97c1c73.chunk.js +1 -0
  74. package/dist/scripts/49-970fc479c8.chunk.js +1 -0
  75. package/dist/scripts/5-d1bb14adf6.chunk.js +1 -0
  76. package/dist/scripts/50-1257ab0b95.chunk.js +1 -0
  77. package/dist/scripts/{50-8cb0d9cd7d.chunk.js → 51-ac615445f0.chunk.js} +1 -1
  78. package/dist/scripts/52-874629b81c.chunk.js +1 -0
  79. package/dist/scripts/{52-bfb2683b5d.chunk.js → 53-22e3d0793b.chunk.js} +1 -1
  80. package/dist/scripts/{53-3cf5cd5f69.chunk.js → 54-da1a07610c.chunk.js} +1 -1
  81. package/dist/scripts/{54-26807e3e49.chunk.js → 55-02647df65c.chunk.js} +1 -1
  82. package/dist/scripts/56-1b6e6349fa.chunk.js +1 -0
  83. package/dist/scripts/57-8fc09ba02c.chunk.js +1 -0
  84. package/dist/scripts/{56-d4abc25ec3.chunk.js → 58-8e5cc56c3f.chunk.js} +1 -1
  85. package/dist/scripts/6-0e53df2ece.chunk.js +1 -0
  86. package/dist/scripts/7-26822045b2.chunk.js +1 -0
  87. package/dist/scripts/8-7450eff674.chunk.js +1 -0
  88. package/dist/scripts/9-f24f1577dd.chunk.js +1 -0
  89. package/dist/scripts/bundle-5ecb0c9441.min.js +1 -0
  90. package/dist/scripts/bundle-c6241bd7ac.min.js +1 -0
  91. package/dist/scripts/bundles.json +1 -1
  92. package/package.json +3 -3
  93. package/dist/css/0.chunk.css.map +0 -1
  94. package/dist/css/1.chunk.css +0 -146
  95. package/dist/css/1.chunk.css.map +0 -1
  96. package/dist/css/10.chunk.css +0 -20
  97. package/dist/css/10.chunk.css.map +0 -1
  98. package/dist/css/11.chunk.css.map +0 -1
  99. package/dist/css/12.chunk.css.map +0 -1
  100. package/dist/css/13.chunk.css.map +0 -1
  101. package/dist/css/14.chunk.css.map +0 -1
  102. package/dist/css/16.chunk.css.map +0 -1
  103. package/dist/css/18.chunk.css.map +0 -1
  104. package/dist/css/19.chunk.css.map +0 -1
  105. package/dist/css/21.chunk.css.map +0 -1
  106. package/dist/css/22.chunk.css.map +0 -1
  107. package/dist/css/23.chunk.css.map +0 -1
  108. package/dist/css/24.chunk.css.map +0 -1
  109. package/dist/css/25.chunk.css.map +0 -1
  110. package/dist/css/26.chunk.css.map +0 -1
  111. package/dist/css/27.chunk.css.map +0 -1
  112. package/dist/css/28.chunk.css.map +0 -1
  113. package/dist/css/29.chunk.css.map +0 -1
  114. package/dist/css/3.chunk.css.map +0 -1
  115. package/dist/css/30.chunk.css.map +0 -1
  116. package/dist/css/31.chunk.css.map +0 -1
  117. package/dist/css/32.chunk.css +0 -5
  118. package/dist/css/32.chunk.css.map +0 -1
  119. package/dist/css/34.chunk.css.map +0 -1
  120. package/dist/css/35.chunk.css +0 -7
  121. package/dist/css/35.chunk.css.map +0 -1
  122. package/dist/css/36.chunk.css +0 -4
  123. package/dist/css/36.chunk.css.map +0 -1
  124. package/dist/css/37.chunk.css +0 -4
  125. package/dist/css/37.chunk.css.map +0 -1
  126. package/dist/css/38.chunk.css.map +0 -1
  127. package/dist/css/4.chunk.css.map +0 -1
  128. package/dist/css/45.chunk.css +0 -9
  129. package/dist/css/45.chunk.css.map +0 -1
  130. package/dist/css/5.chunk.css.map +0 -1
  131. package/dist/css/9.chunk.css +0 -24
  132. package/dist/css/lite-app.css.map +0 -1
  133. package/dist/scripts/0-525bd75473.chunk.js +0 -1
  134. package/dist/scripts/0.chunk.js +0 -478
  135. package/dist/scripts/0.chunk.js.map +0 -1
  136. package/dist/scripts/1.chunk.js +0 -621
  137. package/dist/scripts/1.chunk.js.map +0 -1
  138. package/dist/scripts/10-f3b34b2d35.chunk.js +0 -1
  139. package/dist/scripts/10.chunk.js +0 -400
  140. package/dist/scripts/10.chunk.js.map +0 -1
  141. package/dist/scripts/11-a698af3f1c.chunk.js +0 -1
  142. package/dist/scripts/11.chunk.js +0 -1289
  143. package/dist/scripts/11.chunk.js.map +0 -1
  144. package/dist/scripts/12-9ace90fcbc.chunk.js +0 -1
  145. package/dist/scripts/12.chunk.js +0 -1059
  146. package/dist/scripts/12.chunk.js.map +0 -1
  147. package/dist/scripts/13-3a4f103546.chunk.js +0 -1
  148. package/dist/scripts/13.chunk.js +0 -751
  149. package/dist/scripts/13.chunk.js.map +0 -1
  150. package/dist/scripts/14.chunk.js +0 -425
  151. package/dist/scripts/14.chunk.js.map +0 -1
  152. package/dist/scripts/15-78ff5e8be2.chunk.js +0 -1
  153. package/dist/scripts/15.chunk.js +0 -609
  154. package/dist/scripts/15.chunk.js.map +0 -1
  155. package/dist/scripts/16-22f6224811.chunk.js +0 -1
  156. package/dist/scripts/16.chunk.js +0 -648
  157. package/dist/scripts/16.chunk.js.map +0 -1
  158. package/dist/scripts/17-afe6281dd5.chunk.js +0 -1
  159. package/dist/scripts/17.chunk.js +0 -541
  160. package/dist/scripts/17.chunk.js.map +0 -1
  161. package/dist/scripts/18-47be31c0b6.chunk.js +0 -1
  162. package/dist/scripts/18.chunk.js +0 -766
  163. package/dist/scripts/18.chunk.js.map +0 -1
  164. package/dist/scripts/19-89c0b2c20e.chunk.js +0 -1
  165. package/dist/scripts/19.chunk.js +0 -647
  166. package/dist/scripts/19.chunk.js.map +0 -1
  167. package/dist/scripts/2-3b37480a80.chunk.js +0 -7
  168. package/dist/scripts/2.chunk.js +0 -8259
  169. package/dist/scripts/2.chunk.js.map +0 -1
  170. package/dist/scripts/20-32ac3fe0b9.chunk.js +0 -1
  171. package/dist/scripts/20.chunk.js +0 -122
  172. package/dist/scripts/20.chunk.js.map +0 -1
  173. package/dist/scripts/21.chunk.js +0 -1571
  174. package/dist/scripts/21.chunk.js.map +0 -1
  175. package/dist/scripts/22-24236e6723.chunk.js +0 -1
  176. package/dist/scripts/22.chunk.js +0 -1387
  177. package/dist/scripts/22.chunk.js.map +0 -1
  178. package/dist/scripts/23-7b425169bc.chunk.js +0 -1
  179. package/dist/scripts/23.chunk.js +0 -1121
  180. package/dist/scripts/23.chunk.js.map +0 -1
  181. package/dist/scripts/24-40edd30087.chunk.js +0 -1
  182. package/dist/scripts/24.chunk.js +0 -1348
  183. package/dist/scripts/24.chunk.js.map +0 -1
  184. package/dist/scripts/25-887b9ef587.chunk.js +0 -1
  185. package/dist/scripts/25.chunk.js +0 -1137
  186. package/dist/scripts/25.chunk.js.map +0 -1
  187. package/dist/scripts/26-cbe0ff0f77.chunk.js +0 -1
  188. package/dist/scripts/26.chunk.js +0 -906
  189. package/dist/scripts/26.chunk.js.map +0 -1
  190. package/dist/scripts/27.chunk.js +0 -1143
  191. package/dist/scripts/27.chunk.js.map +0 -1
  192. package/dist/scripts/28-70414fd373.chunk.js +0 -1
  193. package/dist/scripts/28.chunk.js +0 -656
  194. package/dist/scripts/28.chunk.js.map +0 -1
  195. package/dist/scripts/29-944b5c01a7.chunk.js +0 -1
  196. package/dist/scripts/29.chunk.js +0 -616
  197. package/dist/scripts/29.chunk.js.map +0 -1
  198. package/dist/scripts/3-233f573a92.chunk.js +0 -1
  199. package/dist/scripts/3.chunk.js +0 -585
  200. package/dist/scripts/3.chunk.js.map +0 -1
  201. package/dist/scripts/30-3a229887e9.chunk.js +0 -1
  202. package/dist/scripts/30.chunk.js +0 -557
  203. package/dist/scripts/30.chunk.js.map +0 -1
  204. package/dist/scripts/31-ab038bfc0c.chunk.js +0 -1
  205. package/dist/scripts/31.chunk.js +0 -731
  206. package/dist/scripts/31.chunk.js.map +0 -1
  207. package/dist/scripts/32-8bd6703eef.chunk.js +0 -1
  208. package/dist/scripts/32.chunk.js +0 -957
  209. package/dist/scripts/32.chunk.js.map +0 -1
  210. package/dist/scripts/33.chunk.js +0 -938
  211. package/dist/scripts/33.chunk.js.map +0 -1
  212. package/dist/scripts/34.chunk.js +0 -523
  213. package/dist/scripts/34.chunk.js.map +0 -1
  214. package/dist/scripts/35-666d815525.chunk.js +0 -1
  215. package/dist/scripts/35.chunk.js +0 -414
  216. package/dist/scripts/35.chunk.js.map +0 -1
  217. package/dist/scripts/36-02ce5f3538.chunk.js +0 -1
  218. package/dist/scripts/36.chunk.js +0 -404
  219. package/dist/scripts/36.chunk.js.map +0 -1
  220. package/dist/scripts/37.chunk.js +0 -245
  221. package/dist/scripts/37.chunk.js.map +0 -1
  222. package/dist/scripts/38.chunk.js +0 -343
  223. package/dist/scripts/38.chunk.js.map +0 -1
  224. package/dist/scripts/39.chunk.js +0 -318
  225. package/dist/scripts/39.chunk.js.map +0 -1
  226. package/dist/scripts/4-6942fee782.chunk.js +0 -1
  227. package/dist/scripts/4.chunk.js +0 -1030
  228. package/dist/scripts/4.chunk.js.map +0 -1
  229. package/dist/scripts/40.chunk.js +0 -236
  230. package/dist/scripts/40.chunk.js.map +0 -1
  231. package/dist/scripts/41-f4c23477e3.chunk.js +0 -1
  232. package/dist/scripts/41.chunk.js +0 -231
  233. package/dist/scripts/41.chunk.js.map +0 -1
  234. package/dist/scripts/42-7a5b92d70b.chunk.js +0 -1
  235. package/dist/scripts/42.chunk.js +0 -350
  236. package/dist/scripts/42.chunk.js.map +0 -1
  237. package/dist/scripts/43-97193a87df.chunk.js +0 -1
  238. package/dist/scripts/43.chunk.js +0 -225
  239. package/dist/scripts/43.chunk.js.map +0 -1
  240. package/dist/scripts/44.chunk.js +0 -318
  241. package/dist/scripts/44.chunk.js.map +0 -1
  242. package/dist/scripts/45-265f1a7a42.chunk.js +0 -1
  243. package/dist/scripts/45.chunk.js +0 -64
  244. package/dist/scripts/45.chunk.js.map +0 -1
  245. package/dist/scripts/46-a594ad7eba.chunk.js +0 -1
  246. package/dist/scripts/46.chunk.js +0 -108
  247. package/dist/scripts/46.chunk.js.map +0 -1
  248. package/dist/scripts/47-99777c20cf.chunk.js +0 -1
  249. package/dist/scripts/47.chunk.js +0 -110
  250. package/dist/scripts/47.chunk.js.map +0 -1
  251. package/dist/scripts/48-9880523c82.chunk.js +0 -1
  252. package/dist/scripts/48.chunk.js +0 -148
  253. package/dist/scripts/48.chunk.js.map +0 -1
  254. package/dist/scripts/49-5e718594e5.chunk.js +0 -1
  255. package/dist/scripts/49.chunk.js +0 -142
  256. package/dist/scripts/49.chunk.js.map +0 -1
  257. package/dist/scripts/5-2f631dcd74.chunk.js +0 -1
  258. package/dist/scripts/5.chunk.js +0 -3262
  259. package/dist/scripts/5.chunk.js.map +0 -1
  260. package/dist/scripts/50.chunk.js +0 -145
  261. package/dist/scripts/50.chunk.js.map +0 -1
  262. package/dist/scripts/51-211b643ca5.chunk.js +0 -1
  263. package/dist/scripts/51.chunk.js +0 -176
  264. package/dist/scripts/51.chunk.js.map +0 -1
  265. package/dist/scripts/52.chunk.js +0 -160
  266. package/dist/scripts/52.chunk.js.map +0 -1
  267. package/dist/scripts/53.chunk.js +0 -98
  268. package/dist/scripts/53.chunk.js.map +0 -1
  269. package/dist/scripts/54.chunk.js +0 -48
  270. package/dist/scripts/54.chunk.js.map +0 -1
  271. package/dist/scripts/55-d38be4860b.chunk.js +0 -1
  272. package/dist/scripts/55.chunk.js +0 -99
  273. package/dist/scripts/55.chunk.js.map +0 -1
  274. package/dist/scripts/56.chunk.js +0 -64
  275. package/dist/scripts/56.chunk.js.map +0 -1
  276. package/dist/scripts/57.chunk.js +0 -72
  277. package/dist/scripts/57.chunk.js.map +0 -1
  278. package/dist/scripts/58.chunk.js +0 -73
  279. package/dist/scripts/58.chunk.js.map +0 -1
  280. package/dist/scripts/59.chunk.js +0 -70
  281. package/dist/scripts/59.chunk.js.map +0 -1
  282. package/dist/scripts/6-4d72a3c3fc.chunk.js +0 -1
  283. package/dist/scripts/6.chunk.js +0 -24
  284. package/dist/scripts/6.chunk.js.map +0 -1
  285. package/dist/scripts/60.chunk.js +0 -32
  286. package/dist/scripts/60.chunk.js.map +0 -1
  287. package/dist/scripts/61.chunk.js +0 -29
  288. package/dist/scripts/61.chunk.js.map +0 -1
  289. package/dist/scripts/62.chunk.js +0 -27
  290. package/dist/scripts/62.chunk.js.map +0 -1
  291. package/dist/scripts/63.chunk.js +0 -67
  292. package/dist/scripts/63.chunk.js.map +0 -1
  293. package/dist/scripts/64.chunk.js +0 -80
  294. package/dist/scripts/64.chunk.js.map +0 -1
  295. package/dist/scripts/65.chunk.js +0 -65
  296. package/dist/scripts/65.chunk.js.map +0 -1
  297. package/dist/scripts/66.chunk.js +0 -67
  298. package/dist/scripts/66.chunk.js.map +0 -1
  299. package/dist/scripts/67.chunk.js +0 -104
  300. package/dist/scripts/67.chunk.js.map +0 -1
  301. package/dist/scripts/68.chunk.js +0 -69
  302. package/dist/scripts/68.chunk.js.map +0 -1
  303. package/dist/scripts/69.chunk.js +0 -89
  304. package/dist/scripts/69.chunk.js.map +0 -1
  305. package/dist/scripts/7-90ad392b55.chunk.js +0 -1
  306. package/dist/scripts/7.chunk.js +0 -327
  307. package/dist/scripts/7.chunk.js.map +0 -1
  308. package/dist/scripts/70.chunk.js +0 -36
  309. package/dist/scripts/70.chunk.js.map +0 -1
  310. package/dist/scripts/8.chunk.js +0 -470
  311. package/dist/scripts/8.chunk.js.map +0 -1
  312. package/dist/scripts/9-52877087ef.chunk.js +0 -1
  313. package/dist/scripts/9.chunk.js +0 -471
  314. package/dist/scripts/9.chunk.js.map +0 -1
  315. package/dist/scripts/bundle-87d75d901a.min.js +0 -1
  316. package/dist/scripts/bundle-99976c17a2.min.js +0 -1
  317. package/dist/scripts/bundle-9f5ad50596.min.js +0 -1
  318. package/dist/scripts/bundle-a4952df647.min.js +0 -1
  319. package/dist/scripts/bundle.js +0 -34769
  320. package/dist/scripts/bundle.js.map +0 -1
  321. /package/dist/css/{30.chunk.css → 8.chunk.css} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/user-manager/components/delete-uploaded-student-popup/DeleteUploadedStudentPopup.tsx","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/user-manager/components/edit-uploaded-user-popup/EditUploadedUserPopup.tsx","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/user-manager/components/student-review-table/StudentReviewRow.tsx","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/user-manager/components/student-review-table/StudentReviewTable.tsx","webpack://@clickview/lite/./src/apps/user-manager/components/student-review-table/student-review-table.scss?be0f","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/user-manager/flight-requests/YearLevelRequests.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/user-manager/reducers/UserUploadReducer.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/user-manager/validation/index.ts","file://C:/ClickView Projects/@clickview/packages/projects/lite/src/apps/user-manager/views/student-upload-review/StudentUploadReviewView.tsx"],"names":[],"mappings":"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","file":"scripts/32.chunk.js","sourcesContent":["import React from 'react';\r\n\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { Text, LanguageNamespaceContext } from 'libs/shared/components/text/Text';\r\nimport { PopupViewProps, PropsWithAnalyticsOptions, PropsWithPopupViewProps } from 'libs/shared/interfaces';\r\nimport { Popup } from 'libs/shared/components/popup/Popup';\r\nimport { PopupButtons, PopupButton } from 'libs/shared/components/popup/PopupButtons';\r\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\r\n\r\nimport { MockStudent } from 'apps/user-manager/interfaces';\r\nimport { UserUploadContext } from 'apps/user-manager/reducers/UserUploadReducer';\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\nimport { WorkflowPhase, UserAction, OperationDescriptor } from 'libs/analytics/interfaces';\r\n\r\nconst namespace = 'userManager.deleteUploadedStudentPopup';\r\nconst getPhrase = LanguageService.encloseNamespace(namespace);\r\n\r\ntype DeleteUploadedStudentPopupProps = PropsWithAnalyticsOptions<PropsWithPopupViewProps<{\r\n student: MockStudent;\r\n}>>;\r\n\r\nexport function DeleteUploadedStudentPopup(props: DeleteUploadedStudentPopupProps): JSX.Element {\r\n const { dispatch } = React.useContext(UserUploadContext);\r\n\r\n const alerts = useAlerts();\r\n\r\n function onClickDelete(): void {\r\n dispatch({\r\n type: 'delete',\r\n payload: props.student\r\n });\r\n\r\n AnalyticsHelper.logUserAction({}, AnalyticsHelper.mergeOptions(props.analyticsOptions, {\r\n workflowPhase: WorkflowPhase.Discard,\r\n descriptor: OperationDescriptor.Single\r\n }));\r\n\r\n alerts.success(getPhrase('success'));\r\n\r\n props.closePopup();\r\n }\r\n\r\n const buttons: PopupButton[] = [\r\n {\r\n variant: 'link',\r\n onClick: props.closePopup,\r\n buttonText: getPhrase('cancel')\r\n },\r\n {\r\n variant: 'danger',\r\n onClick: onClickDelete,\r\n buttonText: getPhrase('delete')\r\n }\r\n ];\r\n\r\n return (\r\n <LanguageNamespaceContext.Provider value={namespace}>\r\n <Popup title={getPhrase('title')} closePopup={props.closePopup}>\r\n <p className='m-0 pb-1'><Text phrase='confirmation' /></p>\r\n <ul>\r\n <li><Text phrase='firstName' options={{ firstName: props.student.name }} /></li>\r\n <li><Text phrase='lastName' options={{ lastName: props.student.surname }} /></li>\r\n <li><Text phrase='yearLevel' options={{ yearLevel: props.student.yearLevel?.name }} /></li>\r\n <li><Text phrase='email' options={{ email: props.student.email }} /></li>\r\n </ul>\r\n <PopupButtons buttons={buttons} />\r\n </Popup>\r\n </LanguageNamespaceContext.Provider>\r\n );\r\n}","import React from 'react';\r\n\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { Flight } from 'libs/common/flight';\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\nimport { WorkflowPhase } from 'libs/analytics/interfaces';\r\nimport { PropsWithPopupViewProps, PropsWithAnalyticsOptions } from 'libs/shared/interfaces';\r\nimport { Popup } from 'libs/shared/components/popup/Popup';\r\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\r\n\r\nimport { MockYearLevel, MockStudent, MockTeacher, MockUserRole } from 'apps/user-manager/interfaces';\r\nimport { EditStudentDetails } from 'apps/user-manager/components';\r\nimport { YearLevelRequests } from 'apps/user-manager/flight-requests/YearLevelRequests';\r\nimport { UserUploadContext } from 'apps/user-manager/reducers/UserUploadReducer';\r\nimport { MockUserType } from 'apps/user-manager/enums';\r\nimport { EditTeacherDetails } from 'apps/user-manager/components/edit-teacher-details/EditTeacherDetails';\r\nimport { SchoolUserRequests } from 'apps/user-manager/flight-requests/SchoolUserRequests';\r\n\r\nconst namespace = 'userManager.editUploadedUserPopup';\r\n\r\ntype EditUploadedUserPopupProps = PropsWithPopupViewProps<PropsWithAnalyticsOptions<{\r\n user: MockStudent | MockTeacher;\r\n userType: MockUserType;\r\n title: string;\r\n}>>;\r\n\r\nexport function EditUploadedUserPopup(props: EditUploadedUserPopupProps): JSX.Element {\r\n const { state, dispatch } = React.useContext(UserUploadContext);\r\n\r\n const [ isInvalid, setIsInvalid ] = React.useState(!!state.invalidUsers[props.user.lookupId]);\r\n const [ currentUserId, setCurrentUserId ] = React.useState<string>(props.user.lookupId);\r\n\r\n const yearLevels = Flight.useBasicFetch<MockYearLevel[]>(YearLevelRequests.getAll());\r\n const userRoles = Flight.useBasicFetch<MockUserRole[]>(SchoolUserRequests.getUserRoles());\r\n\r\n const alerts = useAlerts();\r\n\r\n React.useEffect(() => {\r\n setIsInvalid(!!state.invalidUsers[props.user.lookupId]);\r\n\r\n AnalyticsHelper.logUserAction({\r\n isInvalid: !!state.invalidUsers[props.user.lookupId],\r\n data: props.user\r\n }, AnalyticsHelper.mergeOptions(props.analyticsOptions, {\r\n workflowPhase: WorkflowPhase.Start\r\n }));\r\n }, [props.user]);\r\n\r\n const invalidUserContext = state.invalidUsers[currentUserId];\r\n\r\n function onClickNext(updatedUser: MockStudent): void {\r\n if (isInvalid) {\r\n const invalidUserIds = Object.keys(state.invalidUsers);\r\n\r\n const currentIndex = invalidUserIds.indexOf(currentUserId);\r\n const nextId = invalidUserIds[currentIndex + 1] || invalidUserIds[0];\r\n\r\n setCurrentUserId(nextId);\r\n }\r\n\r\n const lookupId = isInvalid\r\n ? invalidUserContext.user.lookupId\r\n : props.user.lookupId;\r\n\r\n dispatch({\r\n type: 'save',\r\n payload: {\r\n ...updatedUser,\r\n lookupId\r\n }\r\n });\r\n\r\n AnalyticsHelper.logUserAction({\r\n isInvalid: false,\r\n data: updatedUser\r\n }, AnalyticsHelper.mergeOptions(props.analyticsOptions, {\r\n workflowPhase: WorkflowPhase.Complete\r\n }));\r\n\r\n alerts.success(LanguageService.getPhrase(namespace, 'success'));\r\n\r\n if (!isInvalid || !Object.keys(state.invalidUsers).length)\r\n props.closePopup();\r\n }\r\n\r\n if (isInvalid && !invalidUserContext)\r\n return <></>;\r\n\r\n const formProps: any = {\r\n user: isInvalid ? invalidUserContext.user : props.user,\r\n initialErrors: isInvalid ? invalidUserContext.errors : {},\r\n saveUser: onClickNext,\r\n onClickCancel: props.closePopup,\r\n hasNext: isInvalid && Object.keys(state.invalidUsers).length > 1\r\n };\r\n\r\n if (props.userType === MockUserType.Student)\r\n formProps.yearLevels = yearLevels.data;\r\n else\r\n formProps.userRoles = userRoles.data;\r\n\r\n return (\r\n <Popup closePopup={props.closePopup} title={props.title}>\r\n {props.userType === MockUserType.Student\r\n ? <EditStudentDetails {...formProps} />\r\n : <EditTeacherDetails {...formProps} />\r\n }\r\n </Popup>\r\n );\r\n}","import React from 'react';\r\n\r\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\r\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\n\r\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\r\n\r\nimport { MockStudent } from 'apps/user-manager/interfaces';\r\n\r\nimport styles from './student-review-table.scss';\r\n\r\ninterface DataCellProps {\r\n data: string;\r\n error?: string;\r\n yearLevel?: boolean;\r\n}\r\n\r\nfunction DataCell(props: DataCellProps): JSX.Element {\r\n const className = props.error ? 'p-2 text-danger font-weight-bold' : 'p-2';\r\n let innerClassName = '';\r\n\r\n const text = props.error || props.data;\r\n\r\n if (props.yearLevel && !props.error)\r\n innerClassName += `${styles.yearLevel} rounded-pill px-2`;\r\n\r\n return (\r\n <td className={className}>\r\n <span className={innerClassName}>{text}</span>\r\n </td>\r\n );\r\n}\r\n\r\ninterface StudentReviewRowProps {\r\n student: MockStudent;\r\n errors: HashObject;\r\n onClickEdit: (student: MockStudent) => void;\r\n onClickDelete: (student: MockStudent) => void;\r\n}\r\n\r\nexport function StudentReviewRow(props: StudentReviewRowProps): JSX.Element {\r\n const { student, errors, onClickEdit, onClickDelete } = props;\r\n\r\n return (\r\n <tr>\r\n <DataCell data={student.name} error={errors.name} />\r\n <DataCell data={student.surname} error={errors.surname} />\r\n <DataCell data={student.yearLevel?.name} error={errors.yearLevel} yearLevel />\r\n <DataCell data={student.email} error={errors.email} />\r\n\r\n <td className='p-2 d-flex justify-content-end'>\r\n <DivButton className='mr-2 cursor-pointer' onClick={() => onClickEdit(student)}>\r\n <SvgContainer svgName={cvSvgLibrary.Edit} />\r\n </DivButton>\r\n <DivButton className='cursor-pointer' onClick={() => onClickDelete(student)}>\r\n <SvgContainer svgName={cvSvgLibrary.Delete} />\r\n </DivButton>\r\n </td>\r\n </tr>\r\n );\r\n}","import React from 'react';\r\n\r\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\r\n\r\nimport { MockStudent } from 'apps/user-manager/interfaces';\r\nimport { UserUploadContext } from 'apps/user-manager/reducers/UserUploadReducer';\r\n\r\nimport { StudentReviewRow } from './StudentReviewRow';\r\n\r\ninterface StudentReviewTableProps {\r\n students: MockStudent[];\r\n\r\n onClickEdit: (student: MockStudent) => void;\r\n onClickDelete: (student: MockStudent) => void;\r\n}\r\n\r\nexport function StudentReviewTable(props: StudentReviewTableProps): JSX.Element {\r\n const { state } = React.useContext(UserUploadContext);\r\n\r\n return (\r\n <LanguageNamespaceContext.Provider value='userManager.studentReviewTable'>\r\n <table className='w-100'>\r\n <thead>\r\n <tr>\r\n <th className='p-2'><Text phrase='firstName' /></th>\r\n <th className='p-2'><Text phrase='lastName' /></th>\r\n <th className='p-2'><Text phrase='yearLevel' /></th>\r\n <th className='p-2'><Text phrase='email' /></th>\r\n <th className='p-2'>&nbsp;</th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody className='striped-list'>\r\n {props.students.map((s, i) => {\r\n return (\r\n <StudentReviewRow\r\n key={s.lookupId}\r\n student={s}\r\n errors={state.invalidUsers[s.lookupId]?.errors || {}}\r\n onClickEdit={props.onClickEdit}\r\n onClickDelete={props.onClickDelete}\r\n />\r\n );\r\n })}\r\n </tbody>\r\n </table>\r\n </LanguageNamespaceContext.Provider>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"yearLevel\":\"cv--yearLevel--32fjr\"};","import { Flight } from 'libs/common/flight';\r\n\r\nimport yearLevels from './mocks/year-levels.json';\r\n\r\nconst MOCK_YEAR_LEVELS = 'year:levels';\r\n\r\nexport const YearLevelRequests = {\r\n getAll(): Flight.SimulatedRequest {\r\n return {\r\n url: '/api/domain/v1/yearlevels',\r\n key: 'yearlevels',\r\n successResponse: () => {\r\n return Flight.Simulator.getAll(MOCK_YEAR_LEVELS, yearLevels);\r\n }\r\n };\r\n }\r\n};\r\n","import { createContext } from 'react';\r\nimport { ReducerActions } from 'libs/common/react/interfaces';\r\nimport { MockTeacher, MockStudent } from 'apps/user-manager/interfaces';\r\n\r\ntype ActionTypes = 'init' | 'save' | 'delete';\r\n\r\ntype MockUser = MockStudent & MockTeacher;\r\n\r\ninterface InvalidUserHash {\r\n [lookupId: string]: {\r\n user: MockUser;\r\n errors: {\r\n name?: string;\r\n surname?: string;\r\n email?: string;\r\n yearLevel?: {\r\n name: string;\r\n },\r\n userRole?: {\r\n name: string;\r\n }\r\n };\r\n };\r\n}\r\n\r\nexport interface UserUploadReducerState {\r\n users: MockUser[];\r\n invalidUsers: InvalidUserHash;\r\n}\r\n\r\n/**\r\n * Context\r\n */\r\ninterface UserUploadContextType {\r\n state: UserUploadReducerState;\r\n dispatch: React.Dispatch<ReducerActions<ActionTypes, any>>;\r\n}\r\n\r\nexport const UserUploadContext = createContext<UserUploadContextType>(null);\r\n\r\n/**\r\n * Reducer\r\n */\r\nexport function UserUploadReducer(\r\n state: UserUploadReducerState,\r\n action: ReducerActions<ActionTypes, any>\r\n): any {\r\n switch (action.type) {\r\n case 'init': {\r\n return action.payload;\r\n }\r\n\r\n case 'save': {\r\n const savedUser: MockUser = action.payload;\r\n\r\n const updatedUsers = state.users.map(user => {\r\n if (user.lookupId !== savedUser.lookupId)\r\n return user;\r\n\r\n return savedUser;\r\n });\r\n\r\n const invalidUserLookupIds = Object.keys(state.invalidUsers);\r\n const updatedInvalidUsers = invalidUserLookupIds.reduce((updatedObj: InvalidUserHash, lookupId) => {\r\n if (lookupId !== savedUser.lookupId)\r\n updatedObj[lookupId] = state.invalidUsers[lookupId];\r\n\r\n return updatedObj;\r\n }, {});\r\n\r\n return {\r\n users: updatedUsers,\r\n invalidUsers: updatedInvalidUsers\r\n };\r\n }\r\n\r\n case 'delete': {\r\n const deletedUser: MockTeacher | MockStudent = action.payload;\r\n\r\n const updatedUsers = state.users.filter(user => user.lookupId !== deletedUser.lookupId);\r\n\r\n const invalidUserLookupIds = Object.keys(state.invalidUsers);\r\n const updatedInvalidUsers = invalidUserLookupIds.reduce((updatedObj: InvalidUserHash, lookupId) => {\r\n if (lookupId !== deletedUser.lookupId)\r\n updatedObj[lookupId] = state.invalidUsers[lookupId];\r\n\r\n return updatedObj;\r\n }, {});\r\n\r\n return {\r\n users: updatedUsers,\r\n invalidUsers: updatedInvalidUsers\r\n };\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n}","export * from './user-validation/UserValidationSchema';","import React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\r\nimport { Core } from 'libs/common/core';\r\nimport { Flight } from 'libs/common/flight';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { useViewModel } from 'libs/common/react/hooks/useViewModel';\r\n\r\nimport { Text, LanguageNamespaceContext } from 'libs/shared/components/text/Text';\r\nimport { PopupViewProps, PropsWithPopupViewProps, PropsWithAnalyticsOptions } from 'libs/shared/interfaces';\r\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\r\nimport { LocalPagination } from 'libs/shared/components/pagination/Pagination';\r\n\r\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\r\nimport { Actions } from 'shared/constants/LiteActions';\r\nimport { ToggleSwitch } from 'shared/components/toggle-switch/ToggleSwitch';\r\nimport { useNavLock } from 'shared/hooks/useNavLock';\r\nimport { DialogHelper } from 'shared/utils/DialogHelper';\r\n\r\nimport { MockStudent, MockYearLevel } from 'apps/user-manager/interfaces';\r\nimport { getStudentValidationSchema } from 'apps/user-manager/validation';\r\nimport { YearLevelRequests } from 'apps/user-manager/flight-requests/YearLevelRequests';\r\nimport { SchoolUserRequests } from 'apps/user-manager/flight-requests/SchoolUserRequests';\r\nimport { StudentReviewTable } from 'apps/user-manager/components/student-review-table/StudentReviewTable';\r\nimport { EditUploadedUserPopup } from 'apps/user-manager/components/edit-uploaded-user-popup/EditUploadedUserPopup';\r\nimport { DeleteUploadedStudentPopup } from 'apps/user-manager/components/delete-uploaded-student-popup/DeleteUploadedStudentPopup';\r\nimport { UserUploadReducer, UserUploadContext, UserUploadReducerState } from 'apps/user-manager/reducers/UserUploadReducer';\r\nimport { MockUserType } from 'apps/user-manager/enums';\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\nimport { UserAction, WorkflowPhase, OperationDescriptor, ClickDescriptor } from 'libs/analytics/interfaces';\r\n\r\n// Max number of students displayable in the table at one time\r\nconst MAX_PAGE_SIZE = 25;\r\nconst NAV_LOCK_ID = 'student-upload-review';\r\n\r\nconst namespace = 'userManager.studentUploadReview';\r\nconst getPhrase = LanguageService.encloseNamespace(namespace);\r\n\r\nfunction getTotalInvalidListings(state: UserUploadReducerState): number {\r\n return Object.keys(state.invalidUsers).length;\r\n}\r\n\r\ntype StudentUploadReviewViewProps = PropsWithAnalyticsOptions<PropsWithPopupViewProps<{}>>;\r\n\r\nexport function StudentUploadReviewView(props: StudentUploadReviewViewProps): JSX.Element {\r\n const [ students, setStudents ] = useViewModel('bulk:student:upload');\r\n\r\n const [ hideValidListings, setHideValidListings ] = React.useState(true);\r\n\r\n const [ editingStudent, setEditingStudent ] = React.useState<MockStudent>();\r\n const [ deletingStudent, setDeletingStudent ] = React.useState<MockStudent>();\r\n\r\n const [ pageNumber, setPageNumber ] = React.useState<number>(1);\r\n const [ currentPage, setCurrentPage ] = React.useState<MockStudent[]>([]);\r\n\r\n const [ state, dispatch ] = React.useReducer(UserUploadReducer, null);\r\n\r\n const flightDispatch = useDispatch();\r\n const alerts = useAlerts();\r\n const navLock = useNavLock();\r\n\r\n const yearLevels = Flight.useBasicFetch<MockYearLevel[]>(YearLevelRequests.getAll());\r\n\r\n // Runs on first load. Finds all invalid students and initializes the reducer.\r\n React.useEffect(() => {\r\n if (!yearLevels.data || state)\r\n return;\r\n\r\n if (!students) {\r\n // Redirect if the user has reloaded the page\r\n Core.AppLinkHelper.trigger({\r\n application: AppChannels.USER_MANAGER,\r\n action: Actions.UserManager.STUDENTS\r\n }, { replace: true });\r\n return;\r\n }\r\n\r\n const StudentValidationSchema = getStudentValidationSchema(yearLevels.data);\r\n\r\n async function initReducer(): Promise<void> {\r\n const invalidUsers: HashObject = {};\r\n\r\n // Find every uploaded student with errors, and add them to the invalid students view model\r\n for (const student of students) {\r\n try {\r\n await StudentValidationSchema.validate(student, { abortEarly: false });\r\n } catch (errors) {\r\n invalidUsers[student.lookupId] = {\r\n user: student,\r\n errors: errors.inner.reduce((errorsObj: HashObject, err: HashObject) => {\r\n const key = err.path.split('.')[0];\r\n errorsObj[key] = err.message;\r\n return errorsObj;\r\n }, {})\r\n };\r\n }\r\n }\r\n\r\n AnalyticsHelper.logUserAction({\r\n totalUploaded: students.length,\r\n totalInvalid: invalidUsers.length\r\n }, AnalyticsHelper.mergeOptions(props.analyticsOptions, {\r\n workflowPhase: WorkflowPhase.Start,\r\n descriptor: OperationDescriptor.Bulk\r\n }));\r\n\r\n dispatch({\r\n type: 'init',\r\n payload: {\r\n users: students,\r\n invalidUsers\r\n }\r\n });\r\n\r\n setStudents(null);\r\n }\r\n\r\n initReducer();\r\n\r\n navLock.lock({\r\n id: NAV_LOCK_ID,\r\n title: getPhrase('navLockTitle'),\r\n text: getPhrase('navLockBody'),\r\n onConfirmUnlock: () => {\r\n AnalyticsHelper.logUserAction({}, AnalyticsHelper.mergeOptions(props.analyticsOptions, {\r\n workflowPhase: WorkflowPhase.Discard,\r\n descriptor: OperationDescriptor.Bulk\r\n }));\r\n }\r\n });\r\n }, [ students, yearLevels.data ]);\r\n\r\n // Handles pagination. Runs every time the state changes\r\n React.useEffect(() => {\r\n if (!state || !state.users?.length)\r\n return;\r\n\r\n const collection = hideValidListings\r\n ? Object.keys(state.invalidUsers).map(lookupId => state.invalidUsers[lookupId].user)\r\n : state.users;\r\n\r\n const studentsPage = collection.slice(MAX_PAGE_SIZE * (pageNumber - 1), MAX_PAGE_SIZE * pageNumber);\r\n\r\n setCurrentPage(studentsPage);\r\n\r\n const pageCount = getPageCount();\r\n if (pageCount && pageNumber > pageCount)\r\n setPageNumber(pageCount);\r\n }, [ hideValidListings, pageNumber, state ]);\r\n\r\n // Listening for when all students have been validated. Switches the view to show all students.\r\n React.useEffect(() => {\r\n if (!state || getTotalInvalidListings(state))\r\n return;\r\n\r\n setHideValidListings(false);\r\n }, [state]);\r\n\r\n // Listening for when all student entries have been deleted. Redirects to student manager\r\n React.useEffect(() => {\r\n if (state && !state.users?.length) {\r\n navLock.unlock(NAV_LOCK_ID);\r\n\r\n Core.AppLinkHelper.trigger({\r\n application: AppChannels.USER_MANAGER,\r\n action: Actions.UserManager.STUDENTS\r\n });\r\n }\r\n }, [state]);\r\n\r\n /**\r\n * Event Handlers\r\n */\r\n function onToggleValidListings(): void {\r\n setHideValidListings(!hideValidListings);\r\n setPageNumber(1);\r\n\r\n AnalyticsHelper.logUserAction({\r\n hideValidListings: !hideValidListings\r\n }, AnalyticsHelper.mergeOptions(props.analyticsOptions, {\r\n actionType: UserAction.Click,\r\n workflowPhase: WorkflowPhase.Complete,\r\n descriptor: ClickDescriptor.ToggleHideValidListings\r\n }));\r\n }\r\n\r\n function onClickEdit(student: MockStudent): void {\r\n setEditingStudent(student);\r\n }\r\n\r\n function onCloseEditPopup(): void {\r\n setEditingStudent(null);\r\n props.closePopup();\r\n }\r\n\r\n function onClickDelete(student: MockStudent): void {\r\n setDeletingStudent(student);\r\n }\r\n\r\n function onCloseDeletePopup(): void {\r\n props.closePopup();\r\n setDeletingStudent(null);\r\n }\r\n\r\n function onClickSave(): void {\r\n if (getTotalInvalidListings(state))\r\n return;\r\n\r\n DialogHelper.render((\r\n <p>\r\n <Text\r\n namespace={namespace}\r\n phrase='saveConfirmationBody'\r\n options={{ smartCount: state.users.length }}\r\n />\r\n </p>\r\n ), {\r\n title: getPhrase('saveConfirmationHeading'),\r\n buttons: [\r\n DialogHelper.getCancelDefault(),\r\n {\r\n variant: 'dark' as const,\r\n success: true,\r\n onClick: () => saveUsers(),\r\n buttonText: getPhrase('save')\r\n }\r\n ]\r\n });\r\n }\r\n\r\n function saveUsers(): void {\r\n if (getTotalInvalidListings(state))\r\n return;\r\n\r\n Flight.fetch(flightDispatch, SchoolUserRequests.bulkCreateStudents(state.users, () => {\r\n alerts.success(getPhrase('success'));\r\n\r\n AnalyticsHelper.logUserAction({\r\n count: state.users.length\r\n }, AnalyticsHelper.mergeOptions(props.analyticsOptions, {\r\n workflowPhase: WorkflowPhase.Complete,\r\n descriptor: OperationDescriptor.Bulk\r\n }));\r\n }, () => {\r\n alerts.error(getPhrase('error'));\r\n }, () => {\r\n navLock.unlock(NAV_LOCK_ID);\r\n\r\n Core.AppLinkHelper.trigger({\r\n application: AppChannels.USER_MANAGER,\r\n action: Actions.UserManager.STUDENTS\r\n });\r\n }));\r\n }\r\n\r\n function getPageCount(): number {\r\n return hideValidListings\r\n ? Math.ceil(getTotalInvalidListings(state) / MAX_PAGE_SIZE)\r\n : Math.ceil(state.users.length / MAX_PAGE_SIZE);\r\n }\r\n\r\n if (!state)\r\n return <></>;\r\n\r\n return (\r\n <LanguageNamespaceContext.Provider value={namespace}>\r\n <UserUploadContext.Provider value={{ state, dispatch }}>\r\n <div className='d-flex justify-content-between align-items-center'>\r\n <h1><Text phrase='heading' /></h1>\r\n <button\r\n className={`btn btn-dark ${getTotalInvalidListings(state) ? 'disabled' : ''}`}\r\n onClick={onClickSave}\r\n >\r\n <Text phrase='save' />\r\n </button>\r\n </div>\r\n\r\n {!!getTotalInvalidListings(state) &&\r\n <p className='mb-1'>\r\n <Text phrase='reviewCount' options={{ smartCount: getTotalInvalidListings(state) }} />\r\n </p>\r\n }\r\n\r\n <div className='d-flex align-items-center flex-wrap'>\r\n <p className='pr-3 mb-0'><Text phrase='switchLabel' /></p>\r\n <ToggleSwitch\r\n onClick={onToggleValidListings}\r\n on={hideValidListings}\r\n disabled={!getTotalInvalidListings(state)}\r\n />\r\n </div>\r\n\r\n <main className='pt-2 pb-3'>\r\n <StudentReviewTable\r\n students={currentPage}\r\n onClickEdit={onClickEdit}\r\n onClickDelete={onClickDelete}\r\n />\r\n\r\n <LocalPagination\r\n className='py-2 float-right'\r\n onClickNext={() => setPageNumber(pageNumber + 1)}\r\n onClickBack={() => setPageNumber(pageNumber - 1)}\r\n currentPage={pageNumber}\r\n totalPages={getPageCount()}\r\n />\r\n </main>\r\n\r\n {!!editingStudent && (\r\n <EditUploadedUserPopup\r\n user={editingStudent}\r\n closePopup={onCloseEditPopup}\r\n title={getPhrase('editStudent')}\r\n userType={MockUserType.Student}\r\n analyticsOptions={AnalyticsHelper.mergeOptions(props.analyticsOptions, {\r\n actionType: UserAction.Edit\r\n })}\r\n />\r\n )}\r\n\r\n {!!deletingStudent && (\r\n <DeleteUploadedStudentPopup\r\n student={deletingStudent}\r\n closePopup={onCloseDeletePopup}\r\n analyticsOptions={props.analyticsOptions}\r\n />\r\n )}\r\n </UserUploadContext.Provider>\r\n </LanguageNamespaceContext.Provider>\r\n );\r\n}"],"sourceRoot":""}