@clickview/lite 0.0.26-dev.1 → 0.0.26-rc.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 (519) hide show
  1. package/dist/css/0.chunk.css +2 -2
  2. package/dist/css/28.chunk.css +1 -1
  3. package/dist/css/36.chunk.css +1 -1
  4. package/dist/en.json +1 -1
  5. package/dist/libs/analytics/src/interfaces/AnalyticsTypes.d.ts +1 -0
  6. package/dist/libs/common/src/backbone/utils/LocalStorageHelper.d.ts +1 -1
  7. package/dist/libs/common/src/react/hooks/UseViewModel.d.ts +8 -0
  8. package/dist/libs/shared/src/apps/playlists/utils/PlaylistSortHelper.d.ts +1 -0
  9. package/dist/libs/shared/src/apps/subjects/components/audience-filter/AudienceFilter.d.ts +3 -3
  10. package/dist/libs/shared/src/apps/subjects/hooks/useAudienceFilter.d.ts +10 -0
  11. package/dist/libs/shared/src/components/thumbnails/video/VideoThumbnail.d.ts +1 -1
  12. package/dist/libs/shared/src/constants/SharedViewModelKeys.d.ts +1 -0
  13. package/dist/libs/shared/src/flight-requests/FavouriteVideoRequests.d.ts +1 -1
  14. package/dist/libs/shared/src/interfaces/models/ClassroomGroup.d.ts +1 -1
  15. package/dist/projects/lite/src/app.d.ts +1 -0
  16. package/dist/projects/lite/src/apps/dashboard/flight-requests/DashboardRequests.d.ts +1 -0
  17. package/dist/projects/lite/src/apps/playlists/views/playlists/PlaylistsView.d.ts +1 -1
  18. package/dist/projects/lite/src/shared/constants/LiteViewModels.d.ts +1 -0
  19. package/dist/scripts/0-2d31d283ae.chunk.js +1 -0
  20. package/dist/scripts/{1-8027d5d7a2.chunk.js → 1-416147a365.chunk.js} +3 -3
  21. package/dist/scripts/{10-8b52a5b2a9.chunk.js → 10-6f924160d4.chunk.js} +1 -1
  22. package/dist/scripts/11-bb4335845c.chunk.js +1 -0
  23. package/dist/scripts/{12-5a9f0cff7a.chunk.js → 12-c98f636456.chunk.js} +1 -1
  24. package/dist/scripts/13-f440a979f2.chunk.js +1 -0
  25. package/dist/scripts/14-96e2ac4c4e.chunk.js +1 -0
  26. package/dist/scripts/17-ae3c652b7f.chunk.js +1 -0
  27. package/dist/scripts/18-70bed357d5.chunk.js +1 -0
  28. package/dist/scripts/19-fd97756828.chunk.js +1 -0
  29. package/dist/scripts/2-9458935561.chunk.js +1 -0
  30. package/dist/scripts/20-f660938e48.chunk.js +1 -0
  31. package/dist/scripts/21-6b5bac2388.chunk.js +1 -0
  32. package/dist/scripts/22-d2e93288e2.chunk.js +1 -0
  33. package/dist/scripts/{23-8fa9630961.chunk.js → 23-cef41d75a0.chunk.js} +1 -1
  34. package/dist/scripts/{24-1b298386e9.chunk.js → 24-bce9e631d6.chunk.js} +1 -1
  35. package/dist/scripts/25-db36457320.chunk.js +1 -0
  36. package/dist/scripts/26-5aed5ee0dd.chunk.js +1 -0
  37. package/dist/scripts/27-7f8deea7e3.chunk.js +1 -0
  38. package/dist/scripts/{28-992fa1d7d3.chunk.js → 28-5f765079fd.chunk.js} +1 -1
  39. package/dist/scripts/29-0b8214340f.chunk.js +1 -0
  40. package/dist/scripts/{3-0490c565bc.chunk.js → 3-96cf66c7ed.chunk.js} +1 -1
  41. package/dist/scripts/30-2f39246be7.chunk.js +1 -0
  42. package/dist/scripts/{31-35db520dd1.chunk.js → 31-29dea56635.chunk.js} +1 -1
  43. package/dist/scripts/32-bbaee512ce.chunk.js +1 -0
  44. package/dist/scripts/33-46803f3fef.chunk.js +1 -0
  45. package/dist/scripts/34-c017ae74c8.chunk.js +53 -0
  46. package/dist/scripts/{35-c03686c46a.chunk.js → 35-7da451a1c9.chunk.js} +1 -1
  47. package/dist/scripts/{36-83d6842746.chunk.js → 36-57ab543f4f.chunk.js} +1 -1
  48. package/dist/scripts/{37-c3430bac04.chunk.js → 37-80c7b6220d.chunk.js} +1 -1
  49. package/dist/scripts/38-50ed73316a.chunk.js +1 -0
  50. package/dist/scripts/39-3adf4ecd44.chunk.js +1 -0
  51. package/dist/scripts/4-6611628e1a.chunk.js +1 -0
  52. package/dist/scripts/40-3872135793.chunk.js +1 -0
  53. package/dist/scripts/{41-900e1bf0e1.chunk.js → 41-9a1c72850a.chunk.js} +1 -1
  54. package/dist/scripts/42-4932b5ac21.chunk.js +1 -0
  55. package/dist/scripts/{43-24d8ad0345.chunk.js → 43-22cf86a966.chunk.js} +1 -1
  56. package/dist/scripts/44-b62663ca9d.chunk.js +1 -0
  57. package/dist/scripts/45-0d8523abe9.chunk.js +1 -0
  58. package/dist/scripts/{46-b0dd9697cf.chunk.js → 46-fe9870ac23.chunk.js} +1 -1
  59. package/dist/scripts/{47-2b4a82f4ad.chunk.js → 47-6dffaed1d7.chunk.js} +1 -1
  60. package/dist/scripts/{48-982a605bb0.chunk.js → 48-7220efc4d6.chunk.js} +1 -1
  61. package/dist/scripts/{49-8226f8d1ba.chunk.js → 49-ae885df086.chunk.js} +1 -1
  62. package/dist/scripts/5-4177d478cc.chunk.js +1 -0
  63. package/dist/scripts/{50-dcc75825be.chunk.js → 50-f9157fe86a.chunk.js} +2 -2
  64. package/dist/scripts/{51-1f52bbeb15.chunk.js → 51-9c714f222a.chunk.js} +1 -1
  65. package/dist/scripts/{52-a15b2e7c02.chunk.js → 52-40b5bed763.chunk.js} +1 -1
  66. package/dist/scripts/{53-4cd55bd586.chunk.js → 53-b1a06f2260.chunk.js} +1 -1
  67. package/dist/scripts/{54-aa1a08cdbf.chunk.js → 54-adc0aca3b2.chunk.js} +1 -1
  68. package/dist/scripts/{55-c969a4fc28.chunk.js → 55-89cef329b2.chunk.js} +1 -1
  69. package/dist/scripts/{56-68fdf84a0d.chunk.js → 56-0dddea6e48.chunk.js} +1 -1
  70. package/dist/scripts/{57-db5bdeea30.chunk.js → 57-8fb86637a6.chunk.js} +1 -1
  71. package/dist/scripts/{58-df23c1a02e.chunk.js → 58-72d868bb97.chunk.js} +1 -1
  72. package/dist/scripts/{59-2d38ae02a6.chunk.js → 59-f186c23ddf.chunk.js} +1 -1
  73. package/dist/scripts/{6-1b789e45e3.chunk.js → 6-615cc3317e.chunk.js} +1 -1
  74. package/dist/scripts/{60-b5000feaed.chunk.js → 60-60ea3e256b.chunk.js} +1 -1
  75. package/dist/scripts/{61-280ba38bbf.chunk.js → 61-fba9617716.chunk.js} +1 -1
  76. package/dist/scripts/{62-9a61055529.chunk.js → 62-39c21de14e.chunk.js} +1 -1
  77. package/dist/scripts/{63-ecc242395a.chunk.js → 63-d1c111fcd5.chunk.js} +1 -1
  78. package/dist/scripts/{64-077f9961a9.chunk.js → 64-33b287c3c2.chunk.js} +1 -1
  79. package/dist/scripts/{65-0463ba68c3.chunk.js → 65-889dba985e.chunk.js} +1 -1
  80. package/dist/scripts/{66-851f0b0243.chunk.js → 66-00f7b4a21f.chunk.js} +1 -1
  81. package/dist/scripts/{67-103e97e558.chunk.js → 67-d923fb11ed.chunk.js} +1 -1
  82. package/dist/scripts/{68-7a80380425.chunk.js → 68-85a8867bd2.chunk.js} +1 -1
  83. package/dist/scripts/{69-7d9f3514e6.chunk.js → 69-0fc67deac3.chunk.js} +1 -1
  84. package/dist/scripts/7-79961729d4.chunk.js +1 -0
  85. package/dist/scripts/{70-fd6b603857.chunk.js → 70-8b68b786a9.chunk.js} +1 -1
  86. package/dist/scripts/{71-b002267371.chunk.js → 71-81cbd9cbe0.chunk.js} +1 -1
  87. package/dist/scripts/{72-7b99de33d0.chunk.js → 72-ea543ecb4d.chunk.js} +1 -1
  88. package/dist/scripts/73-32bacce3b9.chunk.js +1 -0
  89. package/dist/scripts/{74-72227ec214.chunk.js → 74-5b7c16baa1.chunk.js} +1 -1
  90. package/dist/scripts/{75-d463b7002b.chunk.js → 75-81b94320b7.chunk.js} +1 -1
  91. package/dist/scripts/{76-5780bbb319.chunk.js → 76-9e8154e3d1.chunk.js} +1 -1
  92. package/dist/scripts/{77-7ea0e086de.chunk.js → 77-d57229038b.chunk.js} +1 -1
  93. package/dist/scripts/{78-11cad53884.chunk.js → 78-cd93b07a63.chunk.js} +1 -1
  94. package/dist/scripts/{79-90eb976e11.chunk.js → 79-999b00ee35.chunk.js} +1 -1
  95. package/dist/scripts/{8-fe4d1fcbb5.chunk.js → 8-f1d54ac54a.chunk.js} +1 -1
  96. package/dist/scripts/80-7a85bbaf88.chunk.js +1 -0
  97. package/dist/scripts/81-a589326f2f.chunk.js +1 -0
  98. package/dist/scripts/{82-3326a696b2.chunk.js → 82-660d825e60.chunk.js} +1 -1
  99. package/dist/scripts/{9-753761ada2.chunk.js → 9-d2c18751ff.chunk.js} +1 -1
  100. package/dist/scripts/bundle-99c49275bf.min.js +31 -0
  101. package/dist/scripts/bundles.json +2 -2
  102. package/dist/scripts/polyfills-b23c61c24c.min.js +1 -0
  103. package/package.json +3 -3
  104. package/dist/css/0.chunk.css.map +0 -1
  105. package/dist/css/1.chunk.css +0 -226
  106. package/dist/css/1.chunk.css.map +0 -1
  107. package/dist/css/10.chunk.css +0 -101
  108. package/dist/css/10.chunk.css.map +0 -1
  109. package/dist/css/11.chunk.css.map +0 -1
  110. package/dist/css/12.chunk.css.map +0 -1
  111. package/dist/css/13.chunk.css +0 -42
  112. package/dist/css/13.chunk.css.map +0 -1
  113. package/dist/css/14.chunk.css +0 -42
  114. package/dist/css/14.chunk.css.map +0 -1
  115. package/dist/css/15.chunk.css +0 -86
  116. package/dist/css/15.chunk.css.map +0 -1
  117. package/dist/css/16.chunk.css +0 -25
  118. package/dist/css/16.chunk.css.map +0 -1
  119. package/dist/css/17.chunk.css.map +0 -1
  120. package/dist/css/18.chunk.css.map +0 -1
  121. package/dist/css/19.chunk.css.map +0 -1
  122. package/dist/css/2.chunk.css.map +0 -1
  123. package/dist/css/20.chunk.css.map +0 -1
  124. package/dist/css/21.chunk.css.map +0 -1
  125. package/dist/css/22.chunk.css.map +0 -1
  126. package/dist/css/23.chunk.css.map +0 -1
  127. package/dist/css/24.chunk.css.map +0 -1
  128. package/dist/css/25.chunk.css.map +0 -1
  129. package/dist/css/26.chunk.css.map +0 -1
  130. package/dist/css/27.chunk.css.map +0 -1
  131. package/dist/css/28.chunk.css.map +0 -1
  132. package/dist/css/29.chunk.css.map +0 -1
  133. package/dist/css/3.chunk.css +0 -26
  134. package/dist/css/3.chunk.css.map +0 -1
  135. package/dist/css/30.chunk.css.map +0 -1
  136. package/dist/css/31.chunk.css.map +0 -1
  137. package/dist/css/32.chunk.css.map +0 -1
  138. package/dist/css/33.chunk.css.map +0 -1
  139. package/dist/css/34.chunk.css +0 -26
  140. package/dist/css/34.chunk.css.map +0 -1
  141. package/dist/css/35.chunk.css.map +0 -1
  142. package/dist/css/36.chunk.css.map +0 -1
  143. package/dist/css/37.chunk.css.map +0 -1
  144. package/dist/css/38.chunk.css.map +0 -1
  145. package/dist/css/39.chunk.css.map +0 -1
  146. package/dist/css/40.chunk.css.map +0 -1
  147. package/dist/css/41.chunk.css.map +0 -1
  148. package/dist/css/42.chunk.css.map +0 -1
  149. package/dist/css/43.chunk.css.map +0 -1
  150. package/dist/css/44.chunk.css.map +0 -1
  151. package/dist/css/45.chunk.css +0 -17
  152. package/dist/css/45.chunk.css.map +0 -1
  153. package/dist/css/46.chunk.css +0 -50
  154. package/dist/css/46.chunk.css.map +0 -1
  155. package/dist/css/47.chunk.css +0 -10
  156. package/dist/css/47.chunk.css.map +0 -1
  157. package/dist/css/48.chunk.css +0 -40
  158. package/dist/css/48.chunk.css.map +0 -1
  159. package/dist/css/49.chunk.css +0 -26
  160. package/dist/css/49.chunk.css.map +0 -1
  161. package/dist/css/5.chunk.css.map +0 -1
  162. package/dist/css/50.chunk.css +0 -14
  163. package/dist/css/50.chunk.css.map +0 -1
  164. package/dist/css/51.chunk.css +0 -17
  165. package/dist/css/51.chunk.css.map +0 -1
  166. package/dist/css/52.chunk.css +0 -14
  167. package/dist/css/52.chunk.css.map +0 -1
  168. package/dist/css/53.chunk.css +0 -6
  169. package/dist/css/53.chunk.css.map +0 -1
  170. package/dist/css/54.chunk.css.map +0 -1
  171. package/dist/css/56.chunk.css +0 -32
  172. package/dist/css/56.chunk.css.map +0 -1
  173. package/dist/css/57.chunk.css.map +0 -1
  174. package/dist/css/58.chunk.css +0 -52
  175. package/dist/css/58.chunk.css.map +0 -1
  176. package/dist/css/59.chunk.css.map +0 -1
  177. package/dist/css/6.chunk.css.map +0 -1
  178. package/dist/css/60.chunk.css.map +0 -1
  179. package/dist/css/61.chunk.css.map +0 -1
  180. package/dist/css/62.chunk.css +0 -52
  181. package/dist/css/62.chunk.css.map +0 -1
  182. package/dist/css/63.chunk.css +0 -14
  183. package/dist/css/63.chunk.css.map +0 -1
  184. package/dist/css/64.chunk.css.map +0 -1
  185. package/dist/css/65.chunk.css.map +0 -1
  186. package/dist/css/66.chunk.css +0 -52
  187. package/dist/css/66.chunk.css.map +0 -1
  188. package/dist/css/67.chunk.css +0 -52
  189. package/dist/css/67.chunk.css.map +0 -1
  190. package/dist/css/68.chunk.css +0 -14
  191. package/dist/css/68.chunk.css.map +0 -1
  192. package/dist/css/69.chunk.css +0 -14
  193. package/dist/css/69.chunk.css.map +0 -1
  194. package/dist/css/7.chunk.css.map +0 -1
  195. package/dist/css/70.chunk.css +0 -43
  196. package/dist/css/70.chunk.css.map +0 -1
  197. package/dist/css/71.chunk.css +0 -43
  198. package/dist/css/71.chunk.css.map +0 -1
  199. package/dist/css/72.chunk.css +0 -43
  200. package/dist/css/72.chunk.css.map +0 -1
  201. package/dist/css/73.chunk.css +0 -43
  202. package/dist/css/73.chunk.css.map +0 -1
  203. package/dist/css/78.chunk.css +0 -83
  204. package/dist/css/78.chunk.css.map +0 -1
  205. package/dist/css/8.chunk.css.map +0 -1
  206. package/dist/css/83.chunk.css +0 -9
  207. package/dist/css/83.chunk.css.map +0 -1
  208. package/dist/css/84.chunk.css +0 -38
  209. package/dist/css/84.chunk.css.map +0 -1
  210. package/dist/css/85.chunk.css +0 -68
  211. package/dist/css/85.chunk.css.map +0 -1
  212. package/dist/css/86.chunk.css +0 -5
  213. package/dist/css/86.chunk.css.map +0 -1
  214. package/dist/css/87.chunk.css +0 -5
  215. package/dist/css/87.chunk.css.map +0 -1
  216. package/dist/css/89.chunk.css +0 -40
  217. package/dist/css/89.chunk.css.map +0 -1
  218. package/dist/css/9.chunk.css.map +0 -1
  219. package/dist/css/90.chunk.css +0 -8
  220. package/dist/css/90.chunk.css.map +0 -1
  221. package/dist/css/91.chunk.css +0 -8
  222. package/dist/css/91.chunk.css.map +0 -1
  223. package/dist/css/92.chunk.css +0 -32
  224. package/dist/css/92.chunk.css.map +0 -1
  225. package/dist/css/93.chunk.css +0 -32
  226. package/dist/css/93.chunk.css.map +0 -1
  227. package/dist/css/94.chunk.css +0 -5
  228. package/dist/css/94.chunk.css.map +0 -1
  229. package/dist/css/lite-app.css.map +0 -1
  230. package/dist/libs/common/src/react/hooks/useViewModel.d.ts +0 -4
  231. package/dist/libs/shared/src/apps/subjects/hooks/useAudienceParams.d.ts +0 -5
  232. package/dist/libs/shared/src/apps/subjects/reducers/AudienceReducer.d.ts +0 -11
  233. package/dist/libs/shared/src/enums/PlayerMediaType.d.ts +0 -5
  234. package/dist/libs/shared/src/interfaces/models/interactive.d.ts +0 -9
  235. package/dist/libs/shared/src/interfaces/models/interactives/ActionableItem.d.ts +0 -6
  236. package/dist/libs/shared/src/interfaces/models/interactives/Interaction.d.ts +0 -16
  237. package/dist/libs/shared/src/interfaces/models/interactives/InteractionType.d.ts +0 -7
  238. package/dist/libs/shared/src/interfaces/models/interactives/InteractionTypeId.d.ts +0 -8
  239. package/dist/libs/shared/src/interfaces/models/interactives/Interactive.d.ts +0 -13
  240. package/dist/libs/shared/src/interfaces/models/interactives/Timepoint.d.ts +0 -9
  241. package/dist/libs/shared/src/interfaces/models/interactives/index.d.ts +0 -6
  242. package/dist/libs/shared/src/utils/DashboardHelper.d.ts +0 -9
  243. package/dist/projects/lite/src/apps/classrooms/components/classroom-group/ClassroomGroup.d.ts +0 -7
  244. package/dist/projects/lite/src/apps/classrooms/components/classroom-students-list/empty-state/ClassroomStudentsListEmptyState.d.ts +0 -2
  245. package/dist/projects/lite/src/apps/classrooms/components/tile-actions/TileActions.d.ts +0 -12
  246. package/dist/projects/lite/src/apps/classrooms/enums/GroupColour.d.ts +0 -10
  247. package/dist/projects/lite/src/apps/search/components/filter-types/radio-filter/year-level/YearLevelRadioFilter.d.ts +0 -8
  248. package/dist/projects/lite/src/apps/search/flight-requests/index.d.ts +0 -1
  249. package/dist/projects/lite/src/apps/share/components/sharee-item/ShareeItem.d.ts +0 -8
  250. package/dist/projects/lite/src/apps/share/views/main-view/MainShareView.d.ts +0 -11
  251. package/dist/projects/lite/src/apps/share/views/settings-view/ShareSettingsView.d.ts +0 -9
  252. package/dist/projects/lite/src/apps/user-manager/interfaces/mocks/MockClassroom.d.ts +0 -8
  253. package/dist/projects/lite/src/apps/user-manager/views/bulk-upload-users/BulkUploadUsersView.d.ts +0 -8
  254. package/dist/projects/lite/src/apps/user-manager/views/user-upload-duplicates/UserUploadDuplicatesView.d.ts +0 -8
  255. package/dist/projects/lite/src/apps/user-manager/views/user-upload-review/UserUploadReviewView.d.ts +0 -8
  256. package/dist/projects/lite/src/shared/components/share/copy-embed-html/CopyEmbedHtml.d.ts +0 -8
  257. package/dist/projects/lite/src/shared/components/share/result-templates/user/InstantUserTemplate.d.ts +0 -8
  258. package/dist/projects/lite/src/shared/components/share/sharee-item/ShareeItem.d.ts +0 -7
  259. package/dist/projects/lite/src/shared/components/share/tokenized-typeahead/InputSelection.d.ts +0 -8
  260. package/dist/projects/lite/src/shared/components/share/tokenized-typeahead/TokenizedTypeahead.d.ts +0 -21
  261. package/dist/projects/lite/src/shared/flight-requests/ShareRequests.d.ts +0 -5
  262. package/dist/projects/lite/src/shared/hooks/useGetEdgeToEdge.d.ts +0 -6
  263. package/dist/projects/lite/src/shared/interfaces/mocks/MockClassroomGroup.d.ts +0 -6
  264. package/dist/projects/lite/src/shared/interfaces/mocks/index.d.ts +0 -1
  265. package/dist/projects/lite/src/shared/services/SettingsDataService.d.ts +0 -10
  266. package/dist/projects/lite/src/shared/views/create-clip/CreateClipView.d.ts +0 -6
  267. package/dist/projects/lite/src/shared/views/left-nav/partial-loading/PartialLeftNavItem.d.ts +0 -2
  268. package/dist/projects/lite/src/shared/views/play-shared/PlaySharedView.d.ts +0 -6
  269. package/dist/projects/lite/src/shared/views/share/ShareView.d.ts +0 -9
  270. package/dist/projects/lite/src/shared/views/share/main-view/MainShareView.d.ts +0 -11
  271. package/dist/projects/lite/src/shared/views/share/settings-view/ShareSettingsView.d.ts +0 -9
  272. package/dist/projects/player/src/react/EmbeddedPlayer.d.ts +0 -7
  273. package/dist/scripts/0-e994a1b4d7.chunk.js +0 -1
  274. package/dist/scripts/0.chunk.js +0 -332
  275. package/dist/scripts/0.chunk.js.map +0 -1
  276. package/dist/scripts/1.chunk.js +0 -1130
  277. package/dist/scripts/1.chunk.js.map +0 -1
  278. package/dist/scripts/10.chunk.js +0 -2334
  279. package/dist/scripts/10.chunk.js.map +0 -1
  280. package/dist/scripts/100.chunk.js +0 -453
  281. package/dist/scripts/100.chunk.js.map +0 -1
  282. package/dist/scripts/101.chunk.js +0 -161
  283. package/dist/scripts/101.chunk.js.map +0 -1
  284. package/dist/scripts/102.chunk.js +0 -91
  285. package/dist/scripts/102.chunk.js.map +0 -1
  286. package/dist/scripts/103.chunk.js +0 -84
  287. package/dist/scripts/103.chunk.js.map +0 -1
  288. package/dist/scripts/11-7a8c344ea6.chunk.js +0 -1
  289. package/dist/scripts/11.chunk.js +0 -1682
  290. package/dist/scripts/11.chunk.js.map +0 -1
  291. package/dist/scripts/12.chunk.js +0 -484
  292. package/dist/scripts/12.chunk.js.map +0 -1
  293. package/dist/scripts/13-b5d5d7bdfa.chunk.js +0 -1
  294. package/dist/scripts/13.chunk.js +0 -260
  295. package/dist/scripts/13.chunk.js.map +0 -1
  296. package/dist/scripts/14-28375f71fa.chunk.js +0 -1
  297. package/dist/scripts/14.chunk.js +0 -1183
  298. package/dist/scripts/14.chunk.js.map +0 -1
  299. package/dist/scripts/15.chunk.js +0 -788
  300. package/dist/scripts/15.chunk.js.map +0 -1
  301. package/dist/scripts/16.chunk.js +0 -442
  302. package/dist/scripts/16.chunk.js.map +0 -1
  303. package/dist/scripts/17-b4479339d2.chunk.js +0 -1
  304. package/dist/scripts/17.chunk.js +0 -879
  305. package/dist/scripts/17.chunk.js.map +0 -1
  306. package/dist/scripts/18-60f3cd6ee4.chunk.js +0 -1
  307. package/dist/scripts/18.chunk.js +0 -1140
  308. package/dist/scripts/18.chunk.js.map +0 -1
  309. package/dist/scripts/19-df1dc3ef2f.chunk.js +0 -1
  310. package/dist/scripts/19.chunk.js +0 -541
  311. package/dist/scripts/19.chunk.js.map +0 -1
  312. package/dist/scripts/2-dbb770fac8.chunk.js +0 -1
  313. package/dist/scripts/2.chunk.js +0 -18795
  314. package/dist/scripts/2.chunk.js.map +0 -1
  315. package/dist/scripts/20-9615a8e5b8.chunk.js +0 -1
  316. package/dist/scripts/20.chunk.js +0 -369
  317. package/dist/scripts/20.chunk.js.map +0 -1
  318. package/dist/scripts/21-30ec979fe0.chunk.js +0 -1
  319. package/dist/scripts/21.chunk.js +0 -272
  320. package/dist/scripts/21.chunk.js.map +0 -1
  321. package/dist/scripts/22-b278cab988.chunk.js +0 -1
  322. package/dist/scripts/22.chunk.js +0 -2164
  323. package/dist/scripts/22.chunk.js.map +0 -1
  324. package/dist/scripts/23.chunk.js +0 -20753
  325. package/dist/scripts/23.chunk.js.map +0 -1
  326. package/dist/scripts/24.chunk.js +0 -2288
  327. package/dist/scripts/24.chunk.js.map +0 -1
  328. package/dist/scripts/25-888b6248ff.chunk.js +0 -1
  329. package/dist/scripts/25.chunk.js +0 -2110
  330. package/dist/scripts/25.chunk.js.map +0 -1
  331. package/dist/scripts/26-aaabbf241e.chunk.js +0 -1
  332. package/dist/scripts/26.chunk.js +0 -1603
  333. package/dist/scripts/26.chunk.js.map +0 -1
  334. package/dist/scripts/27-3dc1f5803f.chunk.js +0 -1
  335. package/dist/scripts/27.chunk.js +0 -770
  336. package/dist/scripts/27.chunk.js.map +0 -1
  337. package/dist/scripts/28.chunk.js +0 -1460
  338. package/dist/scripts/28.chunk.js.map +0 -1
  339. package/dist/scripts/29-ae81a5e250.chunk.js +0 -1
  340. package/dist/scripts/29.chunk.js +0 -899
  341. package/dist/scripts/29.chunk.js.map +0 -1
  342. package/dist/scripts/3.chunk.js +0 -741
  343. package/dist/scripts/3.chunk.js.map +0 -1
  344. package/dist/scripts/30-75d0f41d0f.chunk.js +0 -1
  345. package/dist/scripts/30.chunk.js +0 -792
  346. package/dist/scripts/30.chunk.js.map +0 -1
  347. package/dist/scripts/31.chunk.js +0 -825
  348. package/dist/scripts/31.chunk.js.map +0 -1
  349. package/dist/scripts/32-d62f3a69c0.chunk.js +0 -1
  350. package/dist/scripts/32.chunk.js +0 -848
  351. package/dist/scripts/32.chunk.js.map +0 -1
  352. package/dist/scripts/33-8ec9d596c5.chunk.js +0 -1
  353. package/dist/scripts/33.chunk.js +0 -793
  354. package/dist/scripts/33.chunk.js.map +0 -1
  355. package/dist/scripts/34-7f80fea1f9.chunk.js +0 -53
  356. package/dist/scripts/34.chunk.js +0 -817
  357. package/dist/scripts/34.chunk.js.map +0 -1
  358. package/dist/scripts/35.chunk.js +0 -520
  359. package/dist/scripts/35.chunk.js.map +0 -1
  360. package/dist/scripts/36.chunk.js +0 -717
  361. package/dist/scripts/36.chunk.js.map +0 -1
  362. package/dist/scripts/37.chunk.js +0 -538
  363. package/dist/scripts/37.chunk.js.map +0 -1
  364. package/dist/scripts/38-3e08037fa3.chunk.js +0 -1
  365. package/dist/scripts/38.chunk.js +0 -438
  366. package/dist/scripts/38.chunk.js.map +0 -1
  367. package/dist/scripts/39-bfb5d54572.chunk.js +0 -1
  368. package/dist/scripts/39.chunk.js +0 -408
  369. package/dist/scripts/39.chunk.js.map +0 -1
  370. package/dist/scripts/4-eef3251d84.chunk.js +0 -1
  371. package/dist/scripts/4.chunk.js +0 -403
  372. package/dist/scripts/4.chunk.js.map +0 -1
  373. package/dist/scripts/40-e0eafc5aec.chunk.js +0 -1
  374. package/dist/scripts/40.chunk.js +0 -533
  375. package/dist/scripts/40.chunk.js.map +0 -1
  376. package/dist/scripts/41.chunk.js +0 -814
  377. package/dist/scripts/41.chunk.js.map +0 -1
  378. package/dist/scripts/42-6b91ae0603.chunk.js +0 -1
  379. package/dist/scripts/42.chunk.js +0 -529
  380. package/dist/scripts/42.chunk.js.map +0 -1
  381. package/dist/scripts/43.chunk.js +0 -609
  382. package/dist/scripts/43.chunk.js.map +0 -1
  383. package/dist/scripts/44-f0664cf45b.chunk.js +0 -1
  384. package/dist/scripts/44.chunk.js +0 -563
  385. package/dist/scripts/44.chunk.js.map +0 -1
  386. package/dist/scripts/45-3173437bfb.chunk.js +0 -1
  387. package/dist/scripts/45.chunk.js +0 -674
  388. package/dist/scripts/45.chunk.js.map +0 -1
  389. package/dist/scripts/46.chunk.js +0 -409
  390. package/dist/scripts/46.chunk.js.map +0 -1
  391. package/dist/scripts/47.chunk.js +0 -401
  392. package/dist/scripts/47.chunk.js.map +0 -1
  393. package/dist/scripts/48.chunk.js +0 -217
  394. package/dist/scripts/48.chunk.js.map +0 -1
  395. package/dist/scripts/49.chunk.js +0 -282
  396. package/dist/scripts/49.chunk.js.map +0 -1
  397. package/dist/scripts/5-9cb873330d.chunk.js +0 -1
  398. package/dist/scripts/5.chunk.js +0 -309
  399. package/dist/scripts/5.chunk.js.map +0 -1
  400. package/dist/scripts/50.chunk.js +0 -450
  401. package/dist/scripts/50.chunk.js.map +0 -1
  402. package/dist/scripts/51.chunk.js +0 -338
  403. package/dist/scripts/51.chunk.js.map +0 -1
  404. package/dist/scripts/52.chunk.js +0 -447
  405. package/dist/scripts/52.chunk.js.map +0 -1
  406. package/dist/scripts/53.chunk.js +0 -440
  407. package/dist/scripts/53.chunk.js.map +0 -1
  408. package/dist/scripts/54.chunk.js +0 -1533
  409. package/dist/scripts/54.chunk.js.map +0 -1
  410. package/dist/scripts/55.chunk.js +0 -574
  411. package/dist/scripts/55.chunk.js.map +0 -1
  412. package/dist/scripts/56.chunk.js +0 -245
  413. package/dist/scripts/56.chunk.js.map +0 -1
  414. package/dist/scripts/57.chunk.js +0 -230
  415. package/dist/scripts/57.chunk.js.map +0 -1
  416. package/dist/scripts/58.chunk.js +0 -480
  417. package/dist/scripts/58.chunk.js.map +0 -1
  418. package/dist/scripts/59.chunk.js +0 -408
  419. package/dist/scripts/59.chunk.js.map +0 -1
  420. package/dist/scripts/6.chunk.js +0 -1172
  421. package/dist/scripts/6.chunk.js.map +0 -1
  422. package/dist/scripts/60.chunk.js +0 -241
  423. package/dist/scripts/60.chunk.js.map +0 -1
  424. package/dist/scripts/61.chunk.js +0 -249
  425. package/dist/scripts/61.chunk.js.map +0 -1
  426. package/dist/scripts/62.chunk.js +0 -132
  427. package/dist/scripts/62.chunk.js.map +0 -1
  428. package/dist/scripts/63.chunk.js +0 -318
  429. package/dist/scripts/63.chunk.js.map +0 -1
  430. package/dist/scripts/64.chunk.js +0 -212
  431. package/dist/scripts/64.chunk.js.map +0 -1
  432. package/dist/scripts/65.chunk.js +0 -195
  433. package/dist/scripts/65.chunk.js.map +0 -1
  434. package/dist/scripts/66.chunk.js +0 -230
  435. package/dist/scripts/66.chunk.js.map +0 -1
  436. package/dist/scripts/67.chunk.js +0 -108
  437. package/dist/scripts/67.chunk.js.map +0 -1
  438. package/dist/scripts/68.chunk.js +0 -209
  439. package/dist/scripts/68.chunk.js.map +0 -1
  440. package/dist/scripts/69.chunk.js +0 -211
  441. package/dist/scripts/69.chunk.js.map +0 -1
  442. package/dist/scripts/7-3adb578de5.chunk.js +0 -1
  443. package/dist/scripts/7.chunk.js +0 -613
  444. package/dist/scripts/7.chunk.js.map +0 -1
  445. package/dist/scripts/70.chunk.js +0 -115
  446. package/dist/scripts/70.chunk.js.map +0 -1
  447. package/dist/scripts/71.chunk.js +0 -449
  448. package/dist/scripts/71.chunk.js.map +0 -1
  449. package/dist/scripts/72.chunk.js +0 -161
  450. package/dist/scripts/72.chunk.js.map +0 -1
  451. package/dist/scripts/73-3d149ecedc.chunk.js +0 -1
  452. package/dist/scripts/73.chunk.js +0 -87
  453. package/dist/scripts/73.chunk.js.map +0 -1
  454. package/dist/scripts/74.chunk.js +0 -142
  455. package/dist/scripts/74.chunk.js.map +0 -1
  456. package/dist/scripts/75.chunk.js +0 -149
  457. package/dist/scripts/75.chunk.js.map +0 -1
  458. package/dist/scripts/76.chunk.js +0 -142
  459. package/dist/scripts/76.chunk.js.map +0 -1
  460. package/dist/scripts/77.chunk.js +0 -180
  461. package/dist/scripts/77.chunk.js.map +0 -1
  462. package/dist/scripts/78.chunk.js +0 -170
  463. package/dist/scripts/78.chunk.js.map +0 -1
  464. package/dist/scripts/79.chunk.js +0 -172
  465. package/dist/scripts/79.chunk.js.map +0 -1
  466. package/dist/scripts/8.chunk.js +0 -436
  467. package/dist/scripts/8.chunk.js.map +0 -1
  468. package/dist/scripts/80-f4b5d951b3.chunk.js +0 -1
  469. package/dist/scripts/80.chunk.js +0 -173
  470. package/dist/scripts/80.chunk.js.map +0 -1
  471. package/dist/scripts/81-8c42a24988.chunk.js +0 -1
  472. package/dist/scripts/81.chunk.js +0 -172
  473. package/dist/scripts/81.chunk.js.map +0 -1
  474. package/dist/scripts/82.chunk.js +0 -311
  475. package/dist/scripts/82.chunk.js.map +0 -1
  476. package/dist/scripts/83.chunk.js +0 -318
  477. package/dist/scripts/83.chunk.js.map +0 -1
  478. package/dist/scripts/84.chunk.js +0 -64
  479. package/dist/scripts/84.chunk.js.map +0 -1
  480. package/dist/scripts/85.chunk.js +0 -65
  481. package/dist/scripts/85.chunk.js.map +0 -1
  482. package/dist/scripts/86.chunk.js +0 -37
  483. package/dist/scripts/86.chunk.js.map +0 -1
  484. package/dist/scripts/87.chunk.js +0 -82
  485. package/dist/scripts/87.chunk.js.map +0 -1
  486. package/dist/scripts/88.chunk.js +0 -1001
  487. package/dist/scripts/88.chunk.js.map +0 -1
  488. package/dist/scripts/89.chunk.js +0 -24
  489. package/dist/scripts/89.chunk.js.map +0 -1
  490. package/dist/scripts/9.chunk.js +0 -445
  491. package/dist/scripts/9.chunk.js.map +0 -1
  492. package/dist/scripts/90.chunk.js +0 -36
  493. package/dist/scripts/90.chunk.js.map +0 -1
  494. package/dist/scripts/91.chunk.js +0 -36
  495. package/dist/scripts/91.chunk.js.map +0 -1
  496. package/dist/scripts/92.chunk.js +0 -69
  497. package/dist/scripts/92.chunk.js.map +0 -1
  498. package/dist/scripts/93.chunk.js +0 -441
  499. package/dist/scripts/93.chunk.js.map +0 -1
  500. package/dist/scripts/94.chunk.js +0 -740
  501. package/dist/scripts/94.chunk.js.map +0 -1
  502. package/dist/scripts/95.chunk.js +0 -221
  503. package/dist/scripts/95.chunk.js.map +0 -1
  504. package/dist/scripts/96.chunk.js +0 -230
  505. package/dist/scripts/96.chunk.js.map +0 -1
  506. package/dist/scripts/97.chunk.js +0 -241
  507. package/dist/scripts/97.chunk.js.map +0 -1
  508. package/dist/scripts/98.chunk.js +0 -249
  509. package/dist/scripts/98.chunk.js.map +0 -1
  510. package/dist/scripts/99.chunk.js +0 -212
  511. package/dist/scripts/99.chunk.js.map +0 -1
  512. package/dist/scripts/bundle-f4a1d3ab76.min.js +0 -31
  513. package/dist/scripts/bundle.js +0 -119288
  514. package/dist/scripts/bundle.js.map +0 -1
  515. package/dist/scripts/pdf.worker.entry.worker.js +0 -46239
  516. package/dist/scripts/pdf.worker.entry.worker.js.map +0 -1
  517. package/dist/scripts/polyfills-7ae776aac5.min.js +0 -1
  518. package/dist/scripts/polyfills.js +0 -15254
  519. package/dist/scripts/polyfills.js.map +0 -1
@@ -1,480 +0,0 @@
1
- (window["webpackJsonp_clickview_lite"] = window["webpackJsonp_clickview_lite"] || []).push([[58],{
2
-
3
- /***/ "./src/apps/user-manager/components/bulk-upload-file-select/BulkUploadFileSelect.tsx":
4
- /*!*******************************************************************************************!*\
5
- !*** ./src/apps/user-manager/components/bulk-upload-file-select/BulkUploadFileSelect.tsx ***!
6
- \*******************************************************************************************/
7
- /*! exports provided: BulkUploadFileSelect */
8
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
9
-
10
- "use strict";
11
- __webpack_require__.r(__webpack_exports__);
12
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BulkUploadFileSelect", function() { return BulkUploadFileSelect; });
13
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
14
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
15
- /* harmony import */ var papaparse__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! papaparse */ "../../../node_modules/papaparse/papaparse.min.js");
16
- /* harmony import */ var papaparse__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(papaparse__WEBPACK_IMPORTED_MODULE_1__);
17
- /* harmony import */ var _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../libs/common/src/backbone */ "../../libs/common/src/backbone/index.ts");
18
- /* harmony import */ var _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../libs/common/src/backbone/services/LanguageService */ "../../libs/common/src/backbone/services/LanguageService.tsx");
19
- /* harmony import */ var _libs_common_src_backbone_utils_LocalStorageHelper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../../../../libs/common/src/backbone/utils/LocalStorageHelper */ "../../libs/common/src/backbone/utils/LocalStorageHelper.ts");
20
- /* harmony import */ var _libs_common_src_react_hooks_UseViewModel__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../../../../libs/common/src/react/hooks/UseViewModel */ "../../libs/common/src/react/hooks/UseViewModel.ts");
21
- /* harmony import */ var _libs_shared_src_utils_SvgHelper__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/utils/SvgHelper */ "../../libs/shared/src/utils/SvgHelper.ts");
22
- /* harmony import */ var _libs_shared_src_components_icon_button_IconButton__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/icon-button/IconButton */ "../../libs/shared/src/components/icon-button/IconButton.tsx");
23
- /* harmony import */ var _libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/components/text/Text */ "../../libs/shared/src/components/text/Text.tsx");
24
- /* harmony import */ var _libs_shared_src_enums_UserRole__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/enums/UserRole */ "../../libs/shared/src/enums/UserRole.ts");
25
- /* harmony import */ var _libs_shared_src_enums_UserGroup__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/enums/UserGroup */ "../../libs/shared/src/enums/UserGroup.ts");
26
- /* harmony import */ var shared_constants_LiteRadioChannels__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! shared/constants/LiteRadioChannels */ "./src/shared/constants/LiteRadioChannels.ts");
27
- /* harmony import */ var shared_constants_LiteViewModels__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! shared/constants/LiteViewModels */ "./src/shared/constants/LiteViewModels.ts");
28
- /* harmony import */ var shared_constants_LiteActions__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! shared/constants/LiteActions */ "./src/shared/constants/LiteActions.ts");
29
- /* harmony import */ var apps_user_manager_errors_invalid_spreadsheet_InvalidSpreadsheetError__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! apps/user-manager/errors/invalid-spreadsheet/InvalidSpreadsheetError */ "./src/apps/user-manager/errors/invalid-spreadsheet/InvalidSpreadsheetError.ts");
30
- /* harmony import */ var apps_user_manager_errors_empty_spreadsheet_EmptySpreadsheetError__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! apps/user-manager/errors/empty-spreadsheet/EmptySpreadsheetError */ "./src/apps/user-manager/errors/empty-spreadsheet/EmptySpreadsheetError.ts");
31
- /* harmony import */ var apps_user_manager_constants_Templates__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! apps/user-manager/constants/Templates */ "./src/apps/user-manager/constants/Templates.ts");
32
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
33
-
34
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
35
-
36
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
37
-
38
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
39
-
40
- function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
41
-
42
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
43
-
44
-
45
-
46
-
47
-
48
-
49
-
50
-
51
-
52
-
53
-
54
-
55
-
56
-
57
-
58
-
59
-
60
-
61
- var namespace = 'userManager.bulkUploadFileSelect';
62
- var STUDENT_HEADINGS = ['First Name', 'Last Name', 'Year Group', 'Email', 'Username'];
63
- var STAFF_HEADINGS = ['First Name', 'Last Name', 'Email', 'Username'];
64
- var OPTIONAL_HEADINGS = ['Password'];
65
-
66
- function getErrorMessage(headings, userType) {
67
- var templateLink = userType === _libs_shared_src_enums_UserGroup__WEBPACK_IMPORTED_MODULE_10__["UserGroup"].Learner ? apps_user_manager_constants_Templates__WEBPACK_IMPORTED_MODULE_16__["UserManagerTemplates"].STUDENTS : apps_user_manager_constants_Templates__WEBPACK_IMPORTED_MODULE_16__["UserManagerTemplates"].STAFF;
68
- var expectedHeadings = userType === _libs_shared_src_enums_UserGroup__WEBPACK_IMPORTED_MODULE_10__["UserGroup"].Learner ? STUDENT_HEADINGS : STAFF_HEADINGS;
69
- var unrecognisedHeadings = {};
70
- var expectedHeadingsFound = {};
71
- headings.forEach(function (heading) {
72
- var toLower = heading.toLowerCase();
73
-
74
- if (expectedHeadings.find(function (h) {
75
- return h.toLowerCase() === toLower;
76
- })) {
77
- expectedHeadingsFound[toLower] = true;
78
- } else {
79
- if (OPTIONAL_HEADINGS.find(function (h) {
80
- return h.toLowerCase() === toLower;
81
- })) return;
82
- unrecognisedHeadings[heading] = true;
83
- }
84
- }); // If this runs, then the spreadsheet was missing a heading that must be provided.
85
-
86
- if (Object.keys(expectedHeadingsFound).length !== expectedHeadings.length) {
87
- var missingHeadings = expectedHeadings.filter(function (h) {
88
- return !expectedHeadingsFound[h.toLowerCase()];
89
- });
90
- return _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_3__["LanguageService"].getPhrase(namespace, 'missingHeadings', {
91
- template: templateLink,
92
- headings: getCommaSeparatedHeadingsList(missingHeadings)
93
- });
94
- } // If this runs, then the spreadsheet contained an invalid heading.
95
-
96
-
97
- if (Object.keys(unrecognisedHeadings).length) {
98
- return _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_3__["LanguageService"].getPhrase(namespace, 'unrecognisedHeadings', {
99
- template: templateLink,
100
- headings: getCommaSeparatedHeadingsList(Object.keys(unrecognisedHeadings))
101
- });
102
- }
103
-
104
- return;
105
- }
106
-
107
- function getCommaSeparatedHeadingsList(headings) {
108
- if (headings.length === 1) return headings[0];
109
- if (headings.length === 2) return "".concat(headings[0], " and ").concat(headings[1]);
110
- var lastHeading = headings[headings.length - 1];
111
- return headings.slice(0, headings.length - 2).join(', ') + ", and ".concat(lastHeading);
112
- }
113
-
114
- function BulkUploadFileSelect(props) {
115
- var ref = react__WEBPACK_IMPORTED_MODULE_0___default.a.useRef(null);
116
- var useRef = react__WEBPACK_IMPORTED_MODULE_0___default.a.useCallback(function (node) {
117
- if (!node) return;
118
- ref.current = node;
119
- }, []);
120
- var viewModelKey = shared_constants_LiteViewModels__WEBPACK_IMPORTED_MODULE_12__["ViewModelKeys"].BULK_USER_UPLOAD;
121
-
122
- var _useViewModel = Object(_libs_common_src_react_hooks_UseViewModel__WEBPACK_IMPORTED_MODULE_5__["useViewModel"])(viewModelKey),
123
- _useViewModel2 = _slicedToArray(_useViewModel, 2),
124
- setUsers = _useViewModel2[1];
125
-
126
- var buildStudent = function buildStudent(r, index) {
127
- var _a, _b;
128
-
129
- var _r = _slicedToArray(r, 6),
130
- firstName = _r[0],
131
- surname = _r[1],
132
- yearGroup = _r[2],
133
- email = _r[3],
134
- username = _r[4],
135
- password = _r[5]; // Handle empty lines
136
-
137
-
138
- if (!firstName && !surname && !email && !username && !password && !yearGroup) return null;
139
- var masterYearGroup = props.yearGroups.find(function (y) {
140
- return y.name.toLowerCase() === yearGroup.toLowerCase();
141
- }) || null;
142
- var onlineYearGroup = props.userType === _libs_shared_src_enums_UserGroup__WEBPACK_IMPORTED_MODULE_10__["UserGroup"].Staff ? 'Staff' : (_b = (_a = masterYearGroup) === null || _a === void 0 ? void 0 : _a.name, _b !== null && _b !== void 0 ? _b : null);
143
- return {
144
- lookupId: index.toString(),
145
- firstName: firstName,
146
- surname: surname,
147
- yearGroup: onlineYearGroup,
148
- email: email,
149
- username: username,
150
- password: password,
151
- userType: _libs_shared_src_enums_UserGroup__WEBPACK_IMPORTED_MODULE_10__["UserGroup"].Learner,
152
- masterYearGroup: masterYearGroup,
153
- customerId: props.currentUser.customerId,
154
- isPrimaryContact: false,
155
- roleId: _libs_shared_src_enums_UserRole__WEBPACK_IMPORTED_MODULE_9__["OnlineUserRole"].Student,
156
- masterRole: _libs_shared_src_enums_UserRole__WEBPACK_IMPORTED_MODULE_9__["UserRole"].User,
157
- requirePasswordChange: true
158
- };
159
- };
160
-
161
- var buildStaff = function buildStaff(r, index) {
162
- var _r2 = _slicedToArray(r, 5),
163
- firstName = _r2[0],
164
- surname = _r2[1],
165
- email = _r2[2],
166
- username = _r2[3],
167
- password = _r2[4]; // Handle empty lines
168
-
169
-
170
- if (!firstName && !surname && !email && !username && !password) return null;
171
- return {
172
- lookupId: index.toString(),
173
- firstName: firstName,
174
- surname: surname,
175
- yearGroup: 'Staff',
176
- email: email,
177
- username: username,
178
- password: password,
179
- userType: _libs_shared_src_enums_UserGroup__WEBPACK_IMPORTED_MODULE_10__["UserGroup"].Staff,
180
- customerId: props.currentUser.customerId,
181
- isPrimaryContact: false,
182
- roleId: _libs_shared_src_enums_UserRole__WEBPACK_IMPORTED_MODULE_9__["OnlineUserRole"].Staff,
183
- masterRole: _libs_shared_src_enums_UserRole__WEBPACK_IMPORTED_MODULE_9__["UserRole"].User,
184
- requirePasswordChange: true
185
- };
186
- };
187
-
188
- var onClick = function onClick() {
189
- ref.current.value = null;
190
- ref.current.click(null);
191
- };
192
-
193
- var _onChange = function onChange(file) {
194
- Object(papaparse__WEBPACK_IMPORTED_MODULE_1__["parse"])(file, {
195
- complete: function complete(result) {
196
- var data = result.data;
197
-
198
- if (!data.length || data.length === 1) {
199
- _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_2__["Core"].ErrorHelper["throw"](new apps_user_manager_errors_empty_spreadsheet_EmptySpreadsheetError__WEBPACK_IMPORTED_MODULE_15__["EmptySpreadsheetError"](_libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_3__["LanguageService"].getPhrase(namespace, 'emptySpreadsheet')));
200
- return;
201
- }
202
-
203
- var headings = data.shift();
204
- var error = getErrorMessage(headings, props.userType);
205
-
206
- if (error) {
207
- _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_2__["Core"].ErrorHelper["throw"](new apps_user_manager_errors_invalid_spreadsheet_InvalidSpreadsheetError__WEBPACK_IMPORTED_MODULE_14__["InvalidSpreadsheetError"](error));
208
- return;
209
- }
210
-
211
- setUsers(data.map(props.userType === _libs_shared_src_enums_UserGroup__WEBPACK_IMPORTED_MODULE_10__["UserGroup"].Learner ? buildStudent : buildStaff).filter(Boolean));
212
- _libs_common_src_backbone_utils_LocalStorageHelper__WEBPACK_IMPORTED_MODULE_4__["LocalStorageHelper"].set(shared_constants_LiteViewModels__WEBPACK_IMPORTED_MODULE_12__["ViewModelKeys"].BULK_USER_UPLOAD, props.userType);
213
- props.onTrigger && props.onTrigger();
214
- _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_2__["Core"].AppLinkHelper.trigger({
215
- application: shared_constants_LiteRadioChannels__WEBPACK_IMPORTED_MODULE_11__["AppChannels"].USER_MANAGER,
216
- action: shared_constants_LiteActions__WEBPACK_IMPORTED_MODULE_13__["Actions"].UserManager.BULK_USER_UPLOAD_EDIT
217
- });
218
- }
219
- });
220
- };
221
-
222
- return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_libs_shared_src_components_icon_button_IconButton__WEBPACK_IMPORTED_MODULE_7__["IconButton"], {
223
- svgName: _libs_shared_src_utils_SvgHelper__WEBPACK_IMPORTED_MODULE_6__["cvSvgLibrary"].Upload,
224
- className: 'btn btn-secondary text-center',
225
- onClick: onClick
226
- }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_8__["Text"], {
227
- namespace: namespace,
228
- phrase: props.userType === _libs_shared_src_enums_UserGroup__WEBPACK_IMPORTED_MODULE_10__["UserGroup"].Learner ? 'buttonStudent' : 'buttonStaff'
229
- })), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("input", {
230
- type: 'file',
231
- autoComplete: 'off',
232
- className: 'file-select d-none',
233
- accept: 'text/csv',
234
- ref: useRef,
235
- onChange: function onChange(e) {
236
- return _onChange(e.target.files[0]);
237
- }
238
- }));
239
- }
240
-
241
- /***/ }),
242
-
243
- /***/ "./src/apps/user-manager/constants/Templates.ts":
244
- /*!******************************************************!*\
245
- !*** ./src/apps/user-manager/constants/Templates.ts ***!
246
- \******************************************************/
247
- /*! exports provided: UserManagerTemplates */
248
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
249
-
250
- "use strict";
251
- __webpack_require__.r(__webpack_exports__);
252
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UserManagerTemplates", function() { return UserManagerTemplates; });
253
- var UserManagerTemplates = {
254
- STUDENTS: '/templates/Template_Students.csv',
255
- STAFF: '/templates/Template_Staff.csv'
256
- };
257
-
258
- /***/ }),
259
-
260
- /***/ "./src/apps/user-manager/errors/empty-spreadsheet/EmptySpreadsheetError.ts":
261
- /*!*********************************************************************************!*\
262
- !*** ./src/apps/user-manager/errors/empty-spreadsheet/EmptySpreadsheetError.ts ***!
263
- \*********************************************************************************/
264
- /*! exports provided: EmptySpreadsheetError */
265
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
266
-
267
- "use strict";
268
- __webpack_require__.r(__webpack_exports__);
269
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EmptySpreadsheetError", function() { return EmptySpreadsheetError; });
270
- /* harmony import */ var _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../../../libs/common/src/backbone/services/LanguageService */ "../../libs/common/src/backbone/services/LanguageService.tsx");
271
- /* harmony import */ var _libs_shared_src_errors_primitives_DialogError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/errors/primitives/DialogError */ "../../libs/shared/src/errors/primitives/DialogError.ts");
272
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
273
-
274
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
275
-
276
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
277
-
278
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
279
-
280
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
281
-
282
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
283
-
284
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
285
-
286
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
287
-
288
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
289
-
290
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
291
-
292
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
293
-
294
-
295
-
296
- var lang = 'userManager.emptySpreadsheetError';
297
- var EmptySpreadsheetError = /*#__PURE__*/function (_DialogError) {
298
- _inherits(EmptySpreadsheetError, _DialogError);
299
-
300
- var _super = _createSuper(EmptySpreadsheetError);
301
-
302
- function EmptySpreadsheetError(message) {
303
- var _this;
304
-
305
- _classCallCheck(this, EmptySpreadsheetError);
306
-
307
- _this = _super.call(this, _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_0__["LanguageService"].getPhrase(lang, 'title'));
308
- _this.message = message;
309
- return _this;
310
- }
311
-
312
- _createClass(EmptySpreadsheetError, [{
313
- key: "name",
314
- get: function get() {
315
- return 'EmptySpreadsheetError';
316
- }
317
- }, {
318
- key: "dialogOptions",
319
- get: function get() {
320
- return {
321
- title: _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_0__["LanguageService"].getPhrase(lang, 'heading'),
322
- text: this.message,
323
- buttons: [{
324
- text: _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_0__["LanguageService"].getPhrase(lang, 'okay'),
325
- className: 'btn btn-dark',
326
- success: true
327
- }]
328
- };
329
- }
330
- }]);
331
-
332
- return EmptySpreadsheetError;
333
- }(_libs_shared_src_errors_primitives_DialogError__WEBPACK_IMPORTED_MODULE_1__["DialogError"]);
334
-
335
- /***/ }),
336
-
337
- /***/ "./src/apps/user-manager/errors/invalid-spreadsheet/InvalidSpreadsheetError.ts":
338
- /*!*************************************************************************************!*\
339
- !*** ./src/apps/user-manager/errors/invalid-spreadsheet/InvalidSpreadsheetError.ts ***!
340
- \*************************************************************************************/
341
- /*! exports provided: InvalidSpreadsheetError */
342
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
343
-
344
- "use strict";
345
- __webpack_require__.r(__webpack_exports__);
346
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InvalidSpreadsheetError", function() { return InvalidSpreadsheetError; });
347
- /* harmony import */ var _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../../../libs/common/src/backbone/services/LanguageService */ "../../libs/common/src/backbone/services/LanguageService.tsx");
348
- /* harmony import */ var _libs_shared_src_errors_primitives_DialogError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../../libs/shared/src/errors/primitives/DialogError */ "../../libs/shared/src/errors/primitives/DialogError.ts");
349
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
350
-
351
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
352
-
353
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
354
-
355
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
356
-
357
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
358
-
359
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
360
-
361
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
362
-
363
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
364
-
365
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
366
-
367
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
368
-
369
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
370
-
371
-
372
-
373
- var lang = 'userManager.invalidSpreadsheetError';
374
- var InvalidSpreadsheetError = /*#__PURE__*/function (_DialogError) {
375
- _inherits(InvalidSpreadsheetError, _DialogError);
376
-
377
- var _super = _createSuper(InvalidSpreadsheetError);
378
-
379
- function InvalidSpreadsheetError(message) {
380
- var _this;
381
-
382
- _classCallCheck(this, InvalidSpreadsheetError);
383
-
384
- _this = _super.call(this, _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_0__["LanguageService"].getPhrase(lang, 'title'));
385
- _this.message = message;
386
- return _this;
387
- }
388
-
389
- _createClass(InvalidSpreadsheetError, [{
390
- key: "name",
391
- get: function get() {
392
- return 'InvalidSpreadsheetError';
393
- }
394
- }, {
395
- key: "dialogOptions",
396
- get: function get() {
397
- return {
398
- title: _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_0__["LanguageService"].getPhrase(lang, 'heading'),
399
- text: this.message,
400
- buttons: [{
401
- text: _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_0__["LanguageService"].getPhrase(lang, 'okay'),
402
- className: 'btn btn-dark',
403
- success: true
404
- }]
405
- };
406
- }
407
- }]);
408
-
409
- return InvalidSpreadsheetError;
410
- }(_libs_shared_src_errors_primitives_DialogError__WEBPACK_IMPORTED_MODULE_1__["DialogError"]);
411
-
412
- /***/ }),
413
-
414
- /***/ "./src/apps/user-manager/views/bulk-user-upload/popup/BulkUserUploadPopupView.tsx":
415
- /*!****************************************************************************************!*\
416
- !*** ./src/apps/user-manager/views/bulk-user-upload/popup/BulkUserUploadPopupView.tsx ***!
417
- \****************************************************************************************/
418
- /*! exports provided: BulkUserUploadPopupView */
419
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
420
-
421
- "use strict";
422
- __webpack_require__.r(__webpack_exports__);
423
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BulkUserUploadPopupView", function() { return BulkUserUploadPopupView; });
424
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
425
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
426
- /* harmony import */ var _libs_common_src_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../../../libs/common/src/react */ "../../libs/common/src/react/index.ts");
427
- /* harmony import */ var _libs_shared_src_components_popup_Popup__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../../libs/shared/src/components/popup/Popup */ "../../libs/shared/src/components/popup/Popup.tsx");
428
- /* harmony import */ var _libs_shared_src_enums_UserGroup__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../../libs/shared/src/enums/UserGroup */ "../../libs/shared/src/enums/UserGroup.ts");
429
- /* harmony import */ var _libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../../../../../libs/shared/src/components/text/Text */ "../../libs/shared/src/components/text/Text.tsx");
430
- /* harmony import */ var _libs_shared_src_flight_requests_UserRequests__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../../../../../libs/shared/src/flight-requests/UserRequests */ "../../libs/shared/src/flight-requests/UserRequests.ts");
431
- /* harmony import */ var apps_user_manager_components_bulk_upload_file_select_BulkUploadFileSelect__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! apps/user-manager/components/bulk-upload-file-select/BulkUploadFileSelect */ "./src/apps/user-manager/components/bulk-upload-file-select/BulkUploadFileSelect.tsx");
432
- /* harmony import */ var apps_user_manager_constants_Templates__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! apps/user-manager/constants/Templates */ "./src/apps/user-manager/constants/Templates.ts");
433
- /* harmony import */ var _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../../../../../libs/common/src/backbone/services/LanguageService */ "../../libs/common/src/backbone/services/LanguageService.tsx");
434
- /* harmony import */ var apps_user_manager_flight_requests_SchoolUserRequests__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! apps/user-manager/flight-requests/SchoolUserRequests */ "./src/apps/user-manager/flight-requests/SchoolUserRequests.ts");
435
-
436
-
437
-
438
-
439
-
440
-
441
-
442
-
443
-
444
-
445
- function BulkUserUploadPopupView(props) {
446
- var currentUser = _libs_common_src_react__WEBPACK_IMPORTED_MODULE_1__["Flight"].useBasicFetch(_libs_shared_src_flight_requests_UserRequests__WEBPACK_IMPORTED_MODULE_5__["UserRequests"].currentUser());
447
- var yearGroups = _libs_common_src_react__WEBPACK_IMPORTED_MODULE_1__["Flight"].useBasicFetch(currentUser.data && apps_user_manager_flight_requests_SchoolUserRequests__WEBPACK_IMPORTED_MODULE_9__["SchoolUserRequests"].yearGroups(currentUser.data.customerId));
448
- var namespace = props.userType === _libs_shared_src_enums_UserGroup__WEBPACK_IMPORTED_MODULE_3__["UserGroup"].Learner ? 'userManager.bulkStudentUploadPopup' : 'userManager.bulkStaffUploadPopup';
449
- var templateLink = props.userType === _libs_shared_src_enums_UserGroup__WEBPACK_IMPORTED_MODULE_3__["UserGroup"].Learner ? apps_user_manager_constants_Templates__WEBPACK_IMPORTED_MODULE_7__["UserManagerTemplates"].STUDENTS : apps_user_manager_constants_Templates__WEBPACK_IMPORTED_MODULE_7__["UserManagerTemplates"].STAFF;
450
- return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_4__["LanguageNamespaceContext"].Provider, {
451
- value: namespace
452
- }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_libs_shared_src_components_popup_Popup__WEBPACK_IMPORTED_MODULE_2__["Popup"], {
453
- closePopup: props.closePopup,
454
- showLoadingSpinner: !currentUser.data || !yearGroups.data,
455
- title: _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_8__["LanguageService"].getPhrase(namespace, 'heading')
456
- }, !!currentUser.data && !!yearGroups.data && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("p", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_4__["Text"], {
457
- phrase: 'chooseOption'
458
- })), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
459
- className: 'w-50 mx-auto pb-3 d-flex flex-column align-items-center'
460
- }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(apps_user_manager_components_bulk_upload_file_select_BulkUploadFileSelect__WEBPACK_IMPORTED_MODULE_6__["BulkUploadFileSelect"], {
461
- userType: props.userType,
462
- currentUser: currentUser.data,
463
- yearGroups: yearGroups.data,
464
- onTrigger: props.closePopup
465
- })), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("p", {
466
- className: 'mb-0'
467
- }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_4__["Text"], {
468
- phrase: 'useOurTemplate'
469
- })), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("a", {
470
- className: 'info-link mb-3',
471
- href: templateLink
472
- }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_libs_shared_src_components_text_Text__WEBPACK_IMPORTED_MODULE_4__["Text"], {
473
- phrase: 'download'
474
- })))));
475
- }
476
-
477
- /***/ })
478
-
479
- }]);
480
- //# sourceMappingURL=58.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["file://C:/ClickView/front-end/clickview/packages/projects/lite/src/apps/user-manager/components/bulk-upload-file-select/BulkUploadFileSelect.tsx","file://C:/ClickView/front-end/clickview/packages/projects/lite/src/apps/user-manager/constants/Templates.ts","file://C:/ClickView/front-end/clickview/packages/projects/lite/src/apps/user-manager/errors/empty-spreadsheet/EmptySpreadsheetError.ts","file://C:/ClickView/front-end/clickview/packages/projects/lite/src/apps/user-manager/errors/invalid-spreadsheet/InvalidSpreadsheetError.ts","file://C:/ClickView/front-end/clickview/packages/projects/lite/src/apps/user-manager/views/bulk-user-upload/popup/BulkUserUploadPopupView.tsx"],"names":[],"mappings":"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","file":"scripts/58.chunk.js","sourcesContent":["import React from 'react';\r\nimport { parse, ParseResult } from 'papaparse';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\r\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\r\nimport { HashObject } from 'libs/common/react/interfaces';\r\n\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\r\nimport { Text } from 'libs/shared/components/text/Text';\r\nimport { UserRole, OnlineUserRole } from 'libs/shared/enums/UserRole';\r\nimport { CurrentUser, YearGroup, OnlineYearGroup } from 'libs/shared/interfaces';\r\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\r\n\r\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\r\nimport { ViewModelKeys } from 'shared/constants/LiteViewModels';\r\nimport { Actions } from 'shared/constants/LiteActions';\r\n\r\nimport { InvalidSpreadsheetError } from 'apps/user-manager/errors/invalid-spreadsheet/InvalidSpreadsheetError';\r\nimport { EmptySpreadsheetError } from 'apps/user-manager/errors/empty-spreadsheet/EmptySpreadsheetError';\r\nimport { UserManagerTemplates } from 'apps/user-manager/constants/Templates';\r\nimport { EditUserRequest } from 'apps/user-manager/interfaces';\r\n\r\nconst namespace = 'userManager.bulkUploadFileSelect';\r\n\r\nconst STUDENT_HEADINGS = [ 'First Name', 'Last Name', 'Year Group', 'Email', 'Username' ];\r\nconst STAFF_HEADINGS = [ 'First Name', 'Last Name', 'Email', 'Username' ];\r\nconst OPTIONAL_HEADINGS = ['Password'];\r\n\r\nfunction getErrorMessage(headings: string[], userType: UserGroup): string {\r\n const templateLink = userType === UserGroup.Learner ? UserManagerTemplates.STUDENTS : UserManagerTemplates.STAFF;\r\n\r\n const expectedHeadings = userType === UserGroup.Learner ? STUDENT_HEADINGS : STAFF_HEADINGS;\r\n \r\n const unrecognisedHeadings: HashObject = {};\r\n const expectedHeadingsFound: HashObject = {};\r\n\r\n headings.forEach(heading => {\r\n const toLower = heading.toLowerCase();\r\n\r\n if (expectedHeadings.find(h => h.toLowerCase() === toLower)) {\r\n expectedHeadingsFound[toLower] = true;\r\n } else {\r\n if (OPTIONAL_HEADINGS.find(h => h.toLowerCase() === toLower))\r\n return;\r\n\r\n unrecognisedHeadings[heading] = true;\r\n }\r\n });\r\n\r\n // If this runs, then the spreadsheet was missing a heading that must be provided.\r\n if (Object.keys(expectedHeadingsFound).length !== expectedHeadings.length) {\r\n const missingHeadings = expectedHeadings.filter(h => !expectedHeadingsFound[h.toLowerCase()]);\r\n\r\n return LanguageService.getPhrase(namespace, 'missingHeadings', {\r\n template: templateLink,\r\n headings: getCommaSeparatedHeadingsList(missingHeadings)\r\n });\r\n }\r\n\r\n // If this runs, then the spreadsheet contained an invalid heading.\r\n if (Object.keys(unrecognisedHeadings).length) {\r\n return LanguageService.getPhrase(namespace, 'unrecognisedHeadings', {\r\n template: templateLink,\r\n headings: getCommaSeparatedHeadingsList(Object.keys(unrecognisedHeadings))\r\n });\r\n }\r\n\r\n return;\r\n}\r\n\r\nfunction getCommaSeparatedHeadingsList(headings: string[]): string {\r\n if (headings.length === 1)\r\n return headings[0];\r\n\r\n if (headings.length === 2)\r\n return `${headings[0]} and ${headings[1]}`;\r\n\r\n const lastHeading = headings[headings.length - 1];\r\n\r\n return headings.slice(0, headings.length - 2).join(', ') + `, and ${lastHeading}`;\r\n}\r\n\r\ninterface BulkUploadFileSelectProps {\r\n userType: UserGroup;\r\n currentUser: CurrentUser;\r\n yearGroups: YearGroup[];\r\n onTrigger?: () => void;\r\n}\r\n\r\nexport function BulkUploadFileSelect(props: BulkUploadFileSelectProps): React.ReactElement {\r\n const ref = React.useRef(null);\r\n const useRef = React.useCallback(node => {\r\n if (!node)\r\n return;\r\n\r\n ref.current = node;\r\n }, []);\r\n\r\n const viewModelKey = ViewModelKeys.BULK_USER_UPLOAD;\r\n\r\n const [ , setUsers ] = useViewModel(viewModelKey);\r\n\r\n const buildStudent = (r: any[], index: number): EditUserRequest => {\r\n const [ firstName, surname, yearGroup, email, username, password ] = r;\r\n\r\n // Handle empty lines\r\n if (!firstName && !surname && !email && !username && !password && !yearGroup)\r\n return null;\r\n\r\n const masterYearGroup = props.yearGroups.find(y => {\r\n return y.name.toLowerCase() === yearGroup.toLowerCase();\r\n }) || null;\r\n\r\n const onlineYearGroup = props.userType === UserGroup.Staff ? 'Staff' : masterYearGroup?.name ?? null;\r\n\r\n return {\r\n lookupId: index.toString(),\r\n firstName,\r\n surname,\r\n yearGroup: onlineYearGroup as OnlineYearGroup,\r\n email,\r\n username,\r\n password,\r\n userType: UserGroup.Learner,\r\n masterYearGroup,\r\n customerId: props.currentUser.customerId,\r\n isPrimaryContact: false,\r\n roleId: OnlineUserRole.Student,\r\n masterRole: UserRole.User,\r\n requirePasswordChange: true\r\n };\r\n };\r\n\r\n const buildStaff = (r: any[], index: number): EditUserRequest => {\r\n const [ firstName, surname, email, username, password ] = r;\r\n\r\n // Handle empty lines\r\n if (!firstName && !surname && !email && !username && !password)\r\n return null;\r\n\r\n return {\r\n lookupId: index.toString(),\r\n firstName,\r\n surname,\r\n yearGroup: 'Staff',\r\n email,\r\n username,\r\n password,\r\n userType: UserGroup.Staff,\r\n customerId: props.currentUser.customerId,\r\n isPrimaryContact: false,\r\n roleId: OnlineUserRole.Staff,\r\n masterRole: UserRole.User,\r\n requirePasswordChange: true\r\n };\r\n };\r\n\r\n const onClick = () => {\r\n ref.current.value = null;\r\n ref.current.click(null);\r\n };\r\n\r\n const onChange = (file: File) => {\r\n parse(file, {\r\n complete: (result: ParseResult) => {\r\n const data = result.data;\r\n\r\n if (!data.length || data.length === 1) {\r\n Core.ErrorHelper.throw(new EmptySpreadsheetError(LanguageService.getPhrase(namespace, 'emptySpreadsheet')));\r\n return;\r\n }\r\n\r\n const headings = data.shift();\r\n\r\n const error = getErrorMessage(headings, props.userType);\r\n\r\n if (error) {\r\n Core.ErrorHelper.throw(new InvalidSpreadsheetError(error));\r\n return;\r\n }\r\n\r\n setUsers(data.map(props.userType === UserGroup.Learner ? buildStudent : buildStaff).filter(Boolean));\r\n\r\n LocalStorageHelper.set(ViewModelKeys.BULK_USER_UPLOAD, props.userType);\r\n\r\n props.onTrigger && props.onTrigger();\r\n\r\n Core.AppLinkHelper.trigger({\r\n application: AppChannels.USER_MANAGER,\r\n action: Actions.UserManager.BULK_USER_UPLOAD_EDIT\r\n });\r\n }\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n <IconButton\r\n svgName={cvSvgLibrary.Upload}\r\n className='btn btn-secondary text-center'\r\n onClick={onClick}\r\n >\r\n <Text namespace={namespace} phrase={props.userType === UserGroup.Learner ? 'buttonStudent' : 'buttonStaff'} />\r\n </IconButton>\r\n\r\n <input\r\n type='file'\r\n autoComplete='off'\r\n className='file-select d-none'\r\n accept='text/csv'\r\n ref={useRef}\r\n onChange={e => onChange(e.target.files[0])}\r\n />\r\n </>\r\n );\r\n}","export const UserManagerTemplates = {\r\n STUDENTS: '/templates/Template_Students.csv',\r\n STAFF: '/templates/Template_Staff.csv'\r\n};","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { DialogError } from 'libs/shared/errors/primitives/DialogError';\r\nimport { DialogOptions } from 'libs/shared/interfaces';\r\n\r\nconst lang = 'userManager.emptySpreadsheetError';\r\n\r\nexport class EmptySpreadsheetError extends DialogError {\r\n public message: string;\r\n\r\n constructor(message: string) {\r\n super(LanguageService.getPhrase(lang, 'title'));\r\n\r\n this.message = message;\r\n }\r\n\r\n public get name(): string {\r\n return 'EmptySpreadsheetError';\r\n }\r\n\r\n public get dialogOptions(): DialogOptions {\r\n return {\r\n title: LanguageService.getPhrase(lang, 'heading'),\r\n text: this.message,\r\n buttons: [{\r\n text: LanguageService.getPhrase(lang, 'okay'),\r\n className: 'btn btn-dark',\r\n success: true\r\n }]\r\n };\r\n }\r\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { DialogError } from 'libs/shared/errors/primitives/DialogError';\r\nimport { DialogOptions } from 'libs/shared/interfaces';\r\n\r\nconst lang = 'userManager.invalidSpreadsheetError';\r\n\r\nexport class InvalidSpreadsheetError extends DialogError {\r\n public message: string;\r\n\r\n constructor(message: string) {\r\n super(LanguageService.getPhrase(lang, 'title'));\r\n\r\n this.message = message;\r\n }\r\n\r\n public get name(): string {\r\n return 'InvalidSpreadsheetError';\r\n }\r\n\r\n public get dialogOptions(): DialogOptions {\r\n return {\r\n title: LanguageService.getPhrase(lang, 'heading'),\r\n text: this.message,\r\n buttons: [{\r\n text: LanguageService.getPhrase(lang, 'okay'),\r\n className: 'btn btn-dark',\r\n success: true\r\n }]\r\n };\r\n }\r\n}","import React from 'react';\r\n\r\nimport { Flight } from 'libs/common/flight';\r\n\r\nimport { Popup } from 'libs/shared/components/popup/Popup';\r\nimport { PropsWithPopupViewProps, CurrentUser, YearGroup } from 'libs/shared/interfaces';\r\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\r\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\r\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\r\n\r\nimport { BulkUploadFileSelect } from 'apps/user-manager/components/bulk-upload-file-select/BulkUploadFileSelect';\r\nimport { UserManagerTemplates } from 'apps/user-manager/constants/Templates';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { SchoolUserRequests } from 'apps/user-manager/flight-requests/SchoolUserRequests';\r\n\r\ntype BulkUserUploadPopupViewProps = PropsWithPopupViewProps<{\r\n userType: UserGroup;\r\n}>;\r\n\r\nexport function BulkUserUploadPopupView(props: BulkUserUploadPopupViewProps): JSX.Element {\r\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\r\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\r\n currentUser.data && SchoolUserRequests.yearGroups(currentUser.data.customerId));\r\n\r\n const namespace = props.userType === UserGroup.Learner\r\n ? 'userManager.bulkStudentUploadPopup'\r\n : 'userManager.bulkStaffUploadPopup';\r\n\r\n const templateLink = props.userType === UserGroup.Learner\r\n ? UserManagerTemplates.STUDENTS\r\n : UserManagerTemplates.STAFF;\r\n\r\n return (\r\n <LanguageNamespaceContext.Provider value={namespace}>\r\n <Popup\r\n closePopup={props.closePopup}\r\n showLoadingSpinner={!currentUser.data || !yearGroups.data}\r\n title={LanguageService.getPhrase(namespace, 'heading')}\r\n >\r\n {(!!currentUser.data && !!yearGroups.data) && (\r\n <>\r\n <p><Text phrase='chooseOption' /></p>\r\n\r\n <div className='w-50 mx-auto pb-3 d-flex flex-column align-items-center'>\r\n {/* TODO: Add Excel and Google Sheets options */}\r\n\r\n <BulkUploadFileSelect\r\n userType={props.userType}\r\n currentUser={currentUser.data}\r\n yearGroups={yearGroups.data}\r\n onTrigger={props.closePopup}\r\n />\r\n </div>\r\n\r\n <p className='mb-0'><Text phrase='useOurTemplate' /></p>\r\n <a className='info-link mb-3' href={templateLink}><Text phrase='download' /></a>\r\n </>\r\n )}\r\n </Popup>\r\n </LanguageNamespaceContext.Provider>\r\n );\r\n}"],"sourceRoot":""}