@clickview/lite 0.52.0 → 0.52.2-dev.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 (354) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/css/{1329-lite-ec64553644.chunk.css → 1329-lite-55772b1036.chunk.css} +2 -2
  3. package/dist/css/{986-lite-6bdd43b250.chunk.css → 3532-lite-a3c7435ba4.chunk.css} +1 -1
  4. package/dist/css/{3969-lite-cb4c4824f6.chunk.css → 3969-lite-94ca677007.chunk.css} +1 -1
  5. package/dist/css/{4489-lite-e971ca8ab6.chunk.css → 4489-lite-49c28410f9.chunk.css} +1 -1
  6. package/dist/css/4690-lite-e1f88a6b47.chunk.css +4 -0
  7. package/dist/css/{537-lite-53bb989a96.chunk.css → 537-lite-390b70028c.chunk.css} +1 -1
  8. package/dist/css/{6489-lite-5ffcd32447.chunk.css → 6489-lite-a917e953c8.chunk.css} +1 -1
  9. package/dist/css/{8192-lite-cf3253f7b8.chunk.css → 8192-lite-282a716c03.chunk.css} +1 -1
  10. package/dist/css/{841-lite-93cc5f2469.chunk.css → 841-lite-4a007cd7be.chunk.css} +1 -1
  11. package/dist/css/{1820-lite-eaf5a9db1c.chunk.css → 999-lite-02c517e917.chunk.css} +1 -1
  12. package/dist/languages/en.json +1 -1
  13. package/dist/scripts/{1080-5b00242a31-lite.chunk.js → 1080-d24c9657ec-lite.chunk.js} +2 -2
  14. package/dist/scripts/{1080-5b00242a31-lite.chunk.js.map → 1080-d24c9657ec-lite.chunk.js.map} +1 -1
  15. package/dist/scripts/{9173-2392d447a6-lite.chunk.js → 1104-f057c6dea1-lite.chunk.js} +3 -3
  16. package/dist/scripts/{9173-2392d447a6-lite.chunk.js.map → 1104-f057c6dea1-lite.chunk.js.map} +1 -1
  17. package/dist/scripts/{1125-aac132b88f-lite.chunk.js → 1125-55dc0a4586-lite.chunk.js} +2 -2
  18. package/dist/scripts/1125-55dc0a4586-lite.chunk.js.map +1 -0
  19. package/dist/scripts/1169-3de585be6a-lite.chunk.js +2 -0
  20. package/dist/scripts/1169-3de585be6a-lite.chunk.js.map +1 -0
  21. package/dist/scripts/1329-850346e6e6-lite.chunk.js +3 -0
  22. package/dist/scripts/1329-850346e6e6-lite.chunk.js.map +1 -0
  23. package/dist/scripts/{1379-082bbab71a-lite.chunk.js → 1379-976d20185f-lite.chunk.js} +3 -3
  24. package/dist/scripts/{1379-082bbab71a-lite.chunk.js.map → 1379-976d20185f-lite.chunk.js.map} +1 -1
  25. package/dist/scripts/1672-60a3ab42f5-lite.chunk.js +3 -0
  26. package/dist/scripts/1672-60a3ab42f5-lite.chunk.js.map +1 -0
  27. package/dist/scripts/1725-1e864ba78a-lite.chunk.js +2 -0
  28. package/dist/scripts/1725-1e864ba78a-lite.chunk.js.map +1 -0
  29. package/dist/scripts/1891-109e674486-lite.chunk.js +2 -0
  30. package/dist/scripts/1891-109e674486-lite.chunk.js.map +1 -0
  31. package/dist/scripts/193-797b89797a-lite.chunk.js +2 -0
  32. package/dist/scripts/193-797b89797a-lite.chunk.js.map +1 -0
  33. package/dist/scripts/2004-7d1bf8b246-lite.chunk.js +3 -0
  34. package/dist/scripts/2004-7d1bf8b246-lite.chunk.js.map +1 -0
  35. package/dist/scripts/209-d2e6b93965-lite.chunk.js +2 -0
  36. package/dist/scripts/209-d2e6b93965-lite.chunk.js.map +1 -0
  37. package/dist/scripts/2134-b9145f8ce8-lite.chunk.js +2 -0
  38. package/dist/scripts/2134-b9145f8ce8-lite.chunk.js.map +1 -0
  39. package/dist/scripts/2952-6a32a90314-lite.chunk.js +2 -0
  40. package/dist/scripts/2952-6a32a90314-lite.chunk.js.map +1 -0
  41. package/dist/scripts/3003-7685240aed-lite.chunk.js +2 -0
  42. package/dist/scripts/3003-7685240aed-lite.chunk.js.map +1 -0
  43. package/dist/scripts/3020-6c9c7d2176-lite.chunk.js +2 -0
  44. package/dist/scripts/3020-6c9c7d2176-lite.chunk.js.map +1 -0
  45. package/dist/scripts/338-e21a3cd6fe-lite.chunk.js +3 -0
  46. package/dist/scripts/338-e21a3cd6fe-lite.chunk.js.map +1 -0
  47. package/dist/scripts/3532-2fed0eb7a4-lite.chunk.js +3 -0
  48. package/dist/scripts/3532-2fed0eb7a4-lite.chunk.js.map +1 -0
  49. package/dist/scripts/3633-025f418c19-lite.chunk.js +2 -0
  50. package/dist/scripts/3633-025f418c19-lite.chunk.js.map +1 -0
  51. package/dist/scripts/3640-694d1d6d2a-lite.chunk.js +2 -0
  52. package/dist/scripts/3640-694d1d6d2a-lite.chunk.js.map +1 -0
  53. package/dist/scripts/3728-2c71d3021e-lite.chunk.js +2 -0
  54. package/dist/scripts/3728-2c71d3021e-lite.chunk.js.map +1 -0
  55. package/dist/scripts/3966-0e3c4f329e-lite.chunk.js +2 -0
  56. package/dist/scripts/3966-0e3c4f329e-lite.chunk.js.map +1 -0
  57. package/dist/scripts/{3969-6d5f2f272f-lite.chunk.js → 3969-e36f1922eb-lite.chunk.js} +1 -1
  58. package/dist/scripts/{3969-6d5f2f272f-lite.chunk.js.map → 3969-e36f1922eb-lite.chunk.js.map} +1 -1
  59. package/dist/scripts/4063-5fa157657f-lite.chunk.js +2 -0
  60. package/dist/scripts/4063-5fa157657f-lite.chunk.js.map +1 -0
  61. package/dist/scripts/4182-7ae9edf4a5-lite.chunk.js +2 -0
  62. package/dist/scripts/4182-7ae9edf4a5-lite.chunk.js.map +1 -0
  63. package/dist/scripts/4395-37537617e2-lite.chunk.js +2 -0
  64. package/dist/scripts/4395-37537617e2-lite.chunk.js.map +1 -0
  65. package/dist/scripts/4502-83e4017e54-lite.chunk.js +2 -0
  66. package/dist/scripts/4502-83e4017e54-lite.chunk.js.map +1 -0
  67. package/dist/scripts/4690-d64efe8020-lite.chunk.js +2 -0
  68. package/dist/scripts/4690-d64efe8020-lite.chunk.js.map +1 -0
  69. package/dist/scripts/4850-bb9541d3ed-lite.chunk.js +2 -0
  70. package/dist/scripts/4850-bb9541d3ed-lite.chunk.js.map +1 -0
  71. package/dist/scripts/5143-d46f032e9e-lite.chunk.js +2 -0
  72. package/dist/scripts/5143-d46f032e9e-lite.chunk.js.map +1 -0
  73. package/dist/scripts/5157-855821ccce-lite.chunk.js +2 -0
  74. package/dist/scripts/5157-855821ccce-lite.chunk.js.map +1 -0
  75. package/dist/scripts/537-f63ad5863e-lite.chunk.js +3 -0
  76. package/dist/scripts/537-f63ad5863e-lite.chunk.js.map +1 -0
  77. package/dist/scripts/5549-bb01b24470-lite.chunk.js +2 -0
  78. package/dist/scripts/5549-bb01b24470-lite.chunk.js.map +1 -0
  79. package/dist/scripts/5573-304fea77a6-lite.chunk.js +2 -0
  80. package/dist/scripts/5573-304fea77a6-lite.chunk.js.map +1 -0
  81. package/dist/scripts/5595-842c05064c-lite.chunk.js +2 -0
  82. package/dist/scripts/5595-842c05064c-lite.chunk.js.map +1 -0
  83. package/dist/scripts/5606-680582b817-lite.chunk.js +2 -0
  84. package/dist/scripts/5606-680582b817-lite.chunk.js.map +1 -0
  85. package/dist/scripts/5877-e75dcce0ef-lite.chunk.js +2 -0
  86. package/dist/scripts/5877-e75dcce0ef-lite.chunk.js.map +1 -0
  87. package/dist/scripts/5936-b509535ec7-lite.chunk.js +2 -0
  88. package/dist/scripts/5936-b509535ec7-lite.chunk.js.map +1 -0
  89. package/dist/scripts/6054-1e9b86d631-lite.chunk.js +2 -0
  90. package/dist/scripts/6054-1e9b86d631-lite.chunk.js.map +1 -0
  91. package/dist/scripts/6094-6c1e95073a-lite.chunk.js +2 -0
  92. package/dist/scripts/6094-6c1e95073a-lite.chunk.js.map +1 -0
  93. package/dist/scripts/{6102-ce44fd00aa-lite.chunk.js → 6102-3ddcebe8a1-lite.chunk.js} +3 -3
  94. package/dist/scripts/{6102-ce44fd00aa-lite.chunk.js.map → 6102-3ddcebe8a1-lite.chunk.js.map} +1 -1
  95. package/dist/scripts/6138-5791b93cc1-lite.chunk.js +2 -0
  96. package/dist/scripts/6138-5791b93cc1-lite.chunk.js.map +1 -0
  97. package/dist/scripts/{624-7ab5fb3f3b-lite.chunk.js → 624-bf0ff6257f-lite.chunk.js} +3 -3
  98. package/dist/scripts/{624-7ab5fb3f3b-lite.chunk.js.map → 624-bf0ff6257f-lite.chunk.js.map} +1 -1
  99. package/dist/scripts/6263-cfd4ebfe8b-lite.chunk.js +2 -0
  100. package/dist/scripts/6263-cfd4ebfe8b-lite.chunk.js.map +1 -0
  101. package/dist/scripts/6290-eb223883fe-lite.chunk.js +2 -0
  102. package/dist/scripts/6290-eb223883fe-lite.chunk.js.map +1 -0
  103. package/dist/scripts/6470-1012a7889c-lite.chunk.js +2 -0
  104. package/dist/scripts/6470-1012a7889c-lite.chunk.js.map +1 -0
  105. package/dist/scripts/6481-39b72a58ef-lite.chunk.js +2 -0
  106. package/dist/scripts/6481-39b72a58ef-lite.chunk.js.map +1 -0
  107. package/dist/scripts/6489-9287613d14-lite.chunk.js +3 -0
  108. package/dist/scripts/6489-9287613d14-lite.chunk.js.map +1 -0
  109. package/dist/scripts/6532-9edab80cc6-lite.chunk.js +2 -0
  110. package/dist/scripts/6532-9edab80cc6-lite.chunk.js.map +1 -0
  111. package/dist/scripts/6604-2353daa8c0-lite.chunk.js +2 -0
  112. package/dist/scripts/6604-2353daa8c0-lite.chunk.js.map +1 -0
  113. package/dist/scripts/6741-572db2d1e9-lite.chunk.js +3 -0
  114. package/dist/scripts/6741-572db2d1e9-lite.chunk.js.map +1 -0
  115. package/dist/scripts/6746-72d35335ba-lite.chunk.js +2 -0
  116. package/dist/scripts/6746-72d35335ba-lite.chunk.js.map +1 -0
  117. package/dist/scripts/6852-f49f6f19d3-lite.chunk.js +2 -0
  118. package/dist/scripts/6852-f49f6f19d3-lite.chunk.js.map +1 -0
  119. package/dist/scripts/714-67adeb44da-lite.chunk.js +2 -0
  120. package/dist/scripts/714-67adeb44da-lite.chunk.js.map +1 -0
  121. package/dist/scripts/7163-8b5ab059b6-lite.chunk.js +2 -0
  122. package/dist/scripts/7163-8b5ab059b6-lite.chunk.js.map +1 -0
  123. package/dist/scripts/7178-4b9c33a63e-lite.chunk.js +2 -0
  124. package/dist/scripts/7178-4b9c33a63e-lite.chunk.js.map +1 -0
  125. package/dist/scripts/7223-e2f8a43b89-lite.chunk.js +2 -0
  126. package/dist/scripts/7223-e2f8a43b89-lite.chunk.js.map +1 -0
  127. package/dist/scripts/7234-595d44446f-lite.chunk.js +2 -0
  128. package/dist/scripts/7234-595d44446f-lite.chunk.js.map +1 -0
  129. package/dist/scripts/7267-dac72aeb98-lite.chunk.js +2 -0
  130. package/dist/scripts/7267-dac72aeb98-lite.chunk.js.map +1 -0
  131. package/dist/scripts/{7293-687e60dba2-lite.chunk.js → 7293-1ad518e385-lite.chunk.js} +2 -2
  132. package/dist/scripts/7293-1ad518e385-lite.chunk.js.map +1 -0
  133. package/dist/scripts/7679-f43777e02e-lite.chunk.js +2 -0
  134. package/dist/scripts/7679-f43777e02e-lite.chunk.js.map +1 -0
  135. package/dist/scripts/7757-2785d666ad-lite.chunk.js +2 -0
  136. package/dist/scripts/7757-2785d666ad-lite.chunk.js.map +1 -0
  137. package/dist/scripts/7795-b641104969-lite.chunk.js +2 -0
  138. package/dist/scripts/7795-b641104969-lite.chunk.js.map +1 -0
  139. package/dist/scripts/7818-cff0f2276c-lite.chunk.js +2 -0
  140. package/dist/scripts/7818-cff0f2276c-lite.chunk.js.map +1 -0
  141. package/dist/scripts/{8192-f26370c5a6-lite.chunk.js → 8192-ea5cee15d7-lite.chunk.js} +1 -1
  142. package/dist/scripts/{8192-f26370c5a6-lite.chunk.js.map → 8192-ea5cee15d7-lite.chunk.js.map} +1 -1
  143. package/dist/scripts/8200-1e4518c5d8-lite.chunk.js +3 -0
  144. package/dist/scripts/8200-1e4518c5d8-lite.chunk.js.map +1 -0
  145. package/dist/scripts/8323-fb330a8f47-lite.chunk.js +3 -0
  146. package/dist/scripts/8323-fb330a8f47-lite.chunk.js.map +1 -0
  147. package/dist/scripts/841-d69c7f4b4d-lite.chunk.js +3 -0
  148. package/dist/scripts/841-d69c7f4b4d-lite.chunk.js.map +1 -0
  149. package/dist/scripts/8709-f360baa021-lite.chunk.js +2 -0
  150. package/dist/scripts/8709-f360baa021-lite.chunk.js.map +1 -0
  151. package/dist/scripts/8722-00d7443d09-lite.chunk.js +2 -0
  152. package/dist/scripts/8722-00d7443d09-lite.chunk.js.map +1 -0
  153. package/dist/scripts/8982-6848480133-lite.chunk.js +2 -0
  154. package/dist/scripts/8982-6848480133-lite.chunk.js.map +1 -0
  155. package/dist/scripts/9016-e17da8b633-lite.chunk.js +3 -0
  156. package/dist/scripts/9016-e17da8b633-lite.chunk.js.map +1 -0
  157. package/dist/scripts/9173-a0c6c7be25-lite.chunk.js +2 -0
  158. package/dist/scripts/9173-a0c6c7be25-lite.chunk.js.map +1 -0
  159. package/dist/scripts/9226-a7c61f9129-lite.chunk.js +2 -0
  160. package/dist/scripts/9226-a7c61f9129-lite.chunk.js.map +1 -0
  161. package/dist/scripts/9230-537f1fcc38-lite.chunk.js +3 -0
  162. package/dist/scripts/9230-537f1fcc38-lite.chunk.js.map +1 -0
  163. package/dist/scripts/9359-deb452cb10-lite.chunk.js +2 -0
  164. package/dist/scripts/9359-deb452cb10-lite.chunk.js.map +1 -0
  165. package/dist/scripts/{9395-90b87097fa-lite.chunk.js → 9395-e9b5cdbdce-lite.chunk.js} +3 -3
  166. package/dist/scripts/{9395-90b87097fa-lite.chunk.js.map → 9395-e9b5cdbdce-lite.chunk.js.map} +1 -1
  167. package/dist/scripts/9399-721a368168-lite.chunk.js +2 -0
  168. package/dist/scripts/9399-721a368168-lite.chunk.js.map +1 -0
  169. package/dist/scripts/{9478-99486906b9-lite.chunk.js → 9478-abfa7ed3cc-lite.chunk.js} +3 -3
  170. package/dist/scripts/{9478-99486906b9-lite.chunk.js.map → 9478-abfa7ed3cc-lite.chunk.js.map} +1 -1
  171. package/dist/scripts/{953-cbc7f0571e-lite.chunk.js → 953-bf3d621a33-lite.chunk.js} +3 -3
  172. package/dist/scripts/{953-cbc7f0571e-lite.chunk.js.map → 953-bf3d621a33-lite.chunk.js.map} +1 -1
  173. package/dist/scripts/9719-ed1956607c-lite.chunk.js +3 -0
  174. package/dist/scripts/9719-ed1956607c-lite.chunk.js.map +1 -0
  175. package/dist/scripts/999-d7e93dac12-lite.chunk.js +2 -0
  176. package/dist/scripts/999-d7e93dac12-lite.chunk.js.map +1 -0
  177. package/dist/scripts/bundle-9a72d04e7d.min.js +3 -0
  178. package/dist/scripts/bundle-9a72d04e7d.min.js.map +1 -0
  179. package/package.json +1 -2
  180. package/dist/css/4690-lite-a4fdd7e61e.chunk.css +0 -4
  181. package/dist/scripts/1125-aac132b88f-lite.chunk.js.map +0 -1
  182. package/dist/scripts/1169-5a0d974a94-lite.chunk.js +0 -2
  183. package/dist/scripts/1169-5a0d974a94-lite.chunk.js.map +0 -1
  184. package/dist/scripts/1329-7064e95200-lite.chunk.js +0 -3
  185. package/dist/scripts/1329-7064e95200-lite.chunk.js.map +0 -1
  186. package/dist/scripts/1466-735d7dad48-lite.chunk.js +0 -3
  187. package/dist/scripts/1466-735d7dad48-lite.chunk.js.map +0 -1
  188. package/dist/scripts/1672-672f298d82-lite.chunk.js +0 -3
  189. package/dist/scripts/1672-672f298d82-lite.chunk.js.map +0 -1
  190. package/dist/scripts/1725-075015497e-lite.chunk.js +0 -2
  191. package/dist/scripts/1725-075015497e-lite.chunk.js.map +0 -1
  192. package/dist/scripts/1818-4949c9b748-lite.chunk.js +0 -2
  193. package/dist/scripts/1818-4949c9b748-lite.chunk.js.map +0 -1
  194. package/dist/scripts/1820-345bf53a3c-lite.chunk.js +0 -2
  195. package/dist/scripts/1820-345bf53a3c-lite.chunk.js.map +0 -1
  196. package/dist/scripts/1867-6f801de383-lite.chunk.js +0 -2
  197. package/dist/scripts/1867-6f801de383-lite.chunk.js.map +0 -1
  198. package/dist/scripts/1891-e80f9f17ee-lite.chunk.js +0 -2
  199. package/dist/scripts/1891-e80f9f17ee-lite.chunk.js.map +0 -1
  200. package/dist/scripts/193-f08b054631-lite.chunk.js +0 -2
  201. package/dist/scripts/193-f08b054631-lite.chunk.js.map +0 -1
  202. package/dist/scripts/2004-d891104ed4-lite.chunk.js +0 -3
  203. package/dist/scripts/2004-d891104ed4-lite.chunk.js.map +0 -1
  204. package/dist/scripts/209-57b05f6c83-lite.chunk.js +0 -2
  205. package/dist/scripts/209-57b05f6c83-lite.chunk.js.map +0 -1
  206. package/dist/scripts/2134-bca2f4697e-lite.chunk.js +0 -2
  207. package/dist/scripts/2134-bca2f4697e-lite.chunk.js.map +0 -1
  208. package/dist/scripts/2703-591ccf069c-lite.chunk.js +0 -2
  209. package/dist/scripts/2703-591ccf069c-lite.chunk.js.map +0 -1
  210. package/dist/scripts/3020-dbc723b098-lite.chunk.js +0 -2
  211. package/dist/scripts/3020-dbc723b098-lite.chunk.js.map +0 -1
  212. package/dist/scripts/3633-66d28be6f8-lite.chunk.js +0 -2
  213. package/dist/scripts/3633-66d28be6f8-lite.chunk.js.map +0 -1
  214. package/dist/scripts/3728-d7ecfc6667-lite.chunk.js +0 -2
  215. package/dist/scripts/3728-d7ecfc6667-lite.chunk.js.map +0 -1
  216. package/dist/scripts/3966-a3bb0e0161-lite.chunk.js +0 -2
  217. package/dist/scripts/3966-a3bb0e0161-lite.chunk.js.map +0 -1
  218. package/dist/scripts/4182-7aecc28a6f-lite.chunk.js +0 -2
  219. package/dist/scripts/4182-7aecc28a6f-lite.chunk.js.map +0 -1
  220. package/dist/scripts/4395-64da004753-lite.chunk.js +0 -2
  221. package/dist/scripts/4395-64da004753-lite.chunk.js.map +0 -1
  222. package/dist/scripts/4502-2e30d86385-lite.chunk.js +0 -2
  223. package/dist/scripts/4502-2e30d86385-lite.chunk.js.map +0 -1
  224. package/dist/scripts/4690-03372d68ac-lite.chunk.js +0 -2
  225. package/dist/scripts/4690-03372d68ac-lite.chunk.js.map +0 -1
  226. package/dist/scripts/5143-b6896dad98-lite.chunk.js +0 -2
  227. package/dist/scripts/5143-b6896dad98-lite.chunk.js.map +0 -1
  228. package/dist/scripts/5157-54aeb51bdf-lite.chunk.js +0 -2
  229. package/dist/scripts/5157-54aeb51bdf-lite.chunk.js.map +0 -1
  230. package/dist/scripts/537-536e52ef91-lite.chunk.js +0 -3
  231. package/dist/scripts/537-536e52ef91-lite.chunk.js.map +0 -1
  232. package/dist/scripts/5562-e011962a62-lite.chunk.js +0 -3
  233. package/dist/scripts/5562-e011962a62-lite.chunk.js.map +0 -1
  234. package/dist/scripts/5573-6cd98b69f2-lite.chunk.js +0 -2
  235. package/dist/scripts/5573-6cd98b69f2-lite.chunk.js.map +0 -1
  236. package/dist/scripts/5595-96a0649af0-lite.chunk.js +0 -2
  237. package/dist/scripts/5595-96a0649af0-lite.chunk.js.map +0 -1
  238. package/dist/scripts/5606-6c25caedc4-lite.chunk.js +0 -2
  239. package/dist/scripts/5606-6c25caedc4-lite.chunk.js.map +0 -1
  240. package/dist/scripts/5877-ddfaf6a7f5-lite.chunk.js +0 -2
  241. package/dist/scripts/5877-ddfaf6a7f5-lite.chunk.js.map +0 -1
  242. package/dist/scripts/5936-f0177219db-lite.chunk.js +0 -2
  243. package/dist/scripts/5936-f0177219db-lite.chunk.js.map +0 -1
  244. package/dist/scripts/6054-14d4ceeae3-lite.chunk.js +0 -2
  245. package/dist/scripts/6054-14d4ceeae3-lite.chunk.js.map +0 -1
  246. package/dist/scripts/6094-7ec9341357-lite.chunk.js +0 -2
  247. package/dist/scripts/6094-7ec9341357-lite.chunk.js.map +0 -1
  248. package/dist/scripts/6138-d419f62f77-lite.chunk.js +0 -2
  249. package/dist/scripts/6138-d419f62f77-lite.chunk.js.map +0 -1
  250. package/dist/scripts/6263-af99de5a35-lite.chunk.js +0 -2
  251. package/dist/scripts/6263-af99de5a35-lite.chunk.js.map +0 -1
  252. package/dist/scripts/6290-56412c6663-lite.chunk.js +0 -2
  253. package/dist/scripts/6290-56412c6663-lite.chunk.js.map +0 -1
  254. package/dist/scripts/6415-8b354a10c7-lite.chunk.js +0 -2
  255. package/dist/scripts/6415-8b354a10c7-lite.chunk.js.map +0 -1
  256. package/dist/scripts/6470-6216086d63-lite.chunk.js +0 -2
  257. package/dist/scripts/6470-6216086d63-lite.chunk.js.map +0 -1
  258. package/dist/scripts/6481-03a4f1082e-lite.chunk.js +0 -2
  259. package/dist/scripts/6481-03a4f1082e-lite.chunk.js.map +0 -1
  260. package/dist/scripts/6489-953bb87f64-lite.chunk.js +0 -3
  261. package/dist/scripts/6489-953bb87f64-lite.chunk.js.map +0 -1
  262. package/dist/scripts/6532-a6b65c91a7-lite.chunk.js +0 -2
  263. package/dist/scripts/6532-a6b65c91a7-lite.chunk.js.map +0 -1
  264. package/dist/scripts/6546-bc3a8099ba-lite.chunk.js +0 -2
  265. package/dist/scripts/6546-bc3a8099ba-lite.chunk.js.map +0 -1
  266. package/dist/scripts/6587-23e7b1d196-lite.chunk.js +0 -2
  267. package/dist/scripts/6587-23e7b1d196-lite.chunk.js.map +0 -1
  268. package/dist/scripts/6604-92193d6d68-lite.chunk.js +0 -2
  269. package/dist/scripts/6604-92193d6d68-lite.chunk.js.map +0 -1
  270. package/dist/scripts/6741-ff3e4a33a5-lite.chunk.js +0 -3
  271. package/dist/scripts/6741-ff3e4a33a5-lite.chunk.js.map +0 -1
  272. package/dist/scripts/6746-b5b2739944-lite.chunk.js +0 -2
  273. package/dist/scripts/6746-b5b2739944-lite.chunk.js.map +0 -1
  274. package/dist/scripts/679-92bb80f478-lite.chunk.js +0 -2
  275. package/dist/scripts/679-92bb80f478-lite.chunk.js.map +0 -1
  276. package/dist/scripts/714-432082f4fa-lite.chunk.js +0 -2
  277. package/dist/scripts/714-432082f4fa-lite.chunk.js.map +0 -1
  278. package/dist/scripts/7178-e603ea6b58-lite.chunk.js +0 -2
  279. package/dist/scripts/7178-e603ea6b58-lite.chunk.js.map +0 -1
  280. package/dist/scripts/7223-135cc7d675-lite.chunk.js +0 -2
  281. package/dist/scripts/7223-135cc7d675-lite.chunk.js.map +0 -1
  282. package/dist/scripts/729-c704d587d3-lite.chunk.js +0 -2
  283. package/dist/scripts/729-c704d587d3-lite.chunk.js.map +0 -1
  284. package/dist/scripts/7293-687e60dba2-lite.chunk.js.map +0 -1
  285. package/dist/scripts/7679-81c2a40df4-lite.chunk.js +0 -2
  286. package/dist/scripts/7679-81c2a40df4-lite.chunk.js.map +0 -1
  287. package/dist/scripts/7757-b149c4c215-lite.chunk.js +0 -2
  288. package/dist/scripts/7757-b149c4c215-lite.chunk.js.map +0 -1
  289. package/dist/scripts/7795-3ca0855d3a-lite.chunk.js +0 -2
  290. package/dist/scripts/7795-3ca0855d3a-lite.chunk.js.map +0 -1
  291. package/dist/scripts/7818-2eafc5f812-lite.chunk.js +0 -2
  292. package/dist/scripts/7818-2eafc5f812-lite.chunk.js.map +0 -1
  293. package/dist/scripts/8200-8a55f1631f-lite.chunk.js +0 -3
  294. package/dist/scripts/8200-8a55f1631f-lite.chunk.js.map +0 -1
  295. package/dist/scripts/8323-99cb03891e-lite.chunk.js +0 -3
  296. package/dist/scripts/8323-99cb03891e-lite.chunk.js.map +0 -1
  297. package/dist/scripts/841-0c50273ad2-lite.chunk.js +0 -3
  298. package/dist/scripts/841-0c50273ad2-lite.chunk.js.map +0 -1
  299. package/dist/scripts/8722-c5f95553f2-lite.chunk.js +0 -2
  300. package/dist/scripts/8722-c5f95553f2-lite.chunk.js.map +0 -1
  301. package/dist/scripts/8766-9605550480-lite.chunk.js +0 -2
  302. package/dist/scripts/8766-9605550480-lite.chunk.js.map +0 -1
  303. package/dist/scripts/8800-c88fefeace-lite.chunk.js +0 -2
  304. package/dist/scripts/8800-c88fefeace-lite.chunk.js.map +0 -1
  305. package/dist/scripts/8982-63c31685bf-lite.chunk.js +0 -2
  306. package/dist/scripts/8982-63c31685bf-lite.chunk.js.map +0 -1
  307. package/dist/scripts/9016-0c078a39cb-lite.chunk.js +0 -3
  308. package/dist/scripts/9016-0c078a39cb-lite.chunk.js.map +0 -1
  309. package/dist/scripts/9226-c236c0eeb1-lite.chunk.js +0 -2
  310. package/dist/scripts/9226-c236c0eeb1-lite.chunk.js.map +0 -1
  311. package/dist/scripts/9230-6dee40b1fb-lite.chunk.js +0 -3
  312. package/dist/scripts/9230-6dee40b1fb-lite.chunk.js.map +0 -1
  313. package/dist/scripts/9359-fa72fcdedc-lite.chunk.js +0 -2
  314. package/dist/scripts/9359-fa72fcdedc-lite.chunk.js.map +0 -1
  315. package/dist/scripts/9399-b724e4fb06-lite.chunk.js +0 -2
  316. package/dist/scripts/9399-b724e4fb06-lite.chunk.js.map +0 -1
  317. package/dist/scripts/9719-cf7d4172b6-lite.chunk.js +0 -3
  318. package/dist/scripts/9719-cf7d4172b6-lite.chunk.js.map +0 -1
  319. package/dist/scripts/986-e9379d557d-lite.chunk.js +0 -3
  320. package/dist/scripts/986-e9379d557d-lite.chunk.js.LICENSE.txt +0 -1
  321. package/dist/scripts/986-e9379d557d-lite.chunk.js.map +0 -1
  322. package/dist/scripts/bundle-1e1730f25e.min.js +0 -3
  323. package/dist/scripts/bundle-1e1730f25e.min.js.map +0 -1
  324. /package/dist/css/{9173-lite-b361d438f6.chunk.css → 1104-lite-b361d438f6.chunk.css} +0 -0
  325. /package/dist/css/{679-lite-00eb7dadb2.chunk.css → 2952-lite-00eb7dadb2.chunk.css} +0 -0
  326. /package/dist/css/{1867-lite-ae7bb51ed6.chunk.css → 3640-lite-ae7bb51ed6.chunk.css} +0 -0
  327. /package/dist/css/{4860-lite-93d7fad455.chunk.css → 4063-lite-93d7fad455.chunk.css} +0 -0
  328. /package/dist/css/{729-lite-93d7fad455.chunk.css → 4850-lite-93d7fad455.chunk.css} +0 -0
  329. /package/dist/css/{6546-lite-ae7bb51ed6.chunk.css → 5549-lite-ae7bb51ed6.chunk.css} +0 -0
  330. /package/dist/css/{8766-lite-8c5d7658ec.chunk.css → 7163-lite-8c5d7658ec.chunk.css} +0 -0
  331. /package/dist/css/{1818-lite-5ef1706d69.chunk.css → 7234-lite-5ef1706d69.chunk.css} +0 -0
  332. /package/dist/css/{6415-lite-707657102b.chunk.css → 9173-lite-707657102b.chunk.css} +0 -0
  333. /package/dist/scripts/{1329-7064e95200-lite.chunk.js.LICENSE.txt → 1104-f057c6dea1-lite.chunk.js.LICENSE.txt} +0 -0
  334. /package/dist/scripts/{1379-082bbab71a-lite.chunk.js.LICENSE.txt → 1329-850346e6e6-lite.chunk.js.LICENSE.txt} +0 -0
  335. /package/dist/scripts/{1466-735d7dad48-lite.chunk.js.LICENSE.txt → 1379-976d20185f-lite.chunk.js.LICENSE.txt} +0 -0
  336. /package/dist/scripts/{1672-672f298d82-lite.chunk.js.LICENSE.txt → 1672-60a3ab42f5-lite.chunk.js.LICENSE.txt} +0 -0
  337. /package/dist/scripts/{2004-d891104ed4-lite.chunk.js.LICENSE.txt → 2004-7d1bf8b246-lite.chunk.js.LICENSE.txt} +0 -0
  338. /package/dist/scripts/{537-536e52ef91-lite.chunk.js.LICENSE.txt → 338-e21a3cd6fe-lite.chunk.js.LICENSE.txt} +0 -0
  339. /package/dist/scripts/{5562-e011962a62-lite.chunk.js.LICENSE.txt → 3532-2fed0eb7a4-lite.chunk.js.LICENSE.txt} +0 -0
  340. /package/dist/scripts/{6102-ce44fd00aa-lite.chunk.js.LICENSE.txt → 537-f63ad5863e-lite.chunk.js.LICENSE.txt} +0 -0
  341. /package/dist/scripts/{624-7ab5fb3f3b-lite.chunk.js.LICENSE.txt → 6102-3ddcebe8a1-lite.chunk.js.LICENSE.txt} +0 -0
  342. /package/dist/scripts/{6489-953bb87f64-lite.chunk.js.LICENSE.txt → 624-bf0ff6257f-lite.chunk.js.LICENSE.txt} +0 -0
  343. /package/dist/scripts/{6741-ff3e4a33a5-lite.chunk.js.LICENSE.txt → 6489-9287613d14-lite.chunk.js.LICENSE.txt} +0 -0
  344. /package/dist/scripts/{8200-8a55f1631f-lite.chunk.js.LICENSE.txt → 6741-572db2d1e9-lite.chunk.js.LICENSE.txt} +0 -0
  345. /package/dist/scripts/{8323-99cb03891e-lite.chunk.js.LICENSE.txt → 8200-1e4518c5d8-lite.chunk.js.LICENSE.txt} +0 -0
  346. /package/dist/scripts/{841-0c50273ad2-lite.chunk.js.LICENSE.txt → 8323-fb330a8f47-lite.chunk.js.LICENSE.txt} +0 -0
  347. /package/dist/scripts/{9173-2392d447a6-lite.chunk.js.LICENSE.txt → 841-d69c7f4b4d-lite.chunk.js.LICENSE.txt} +0 -0
  348. /package/dist/scripts/{9016-0c078a39cb-lite.chunk.js.LICENSE.txt → 9016-e17da8b633-lite.chunk.js.LICENSE.txt} +0 -0
  349. /package/dist/scripts/{9230-6dee40b1fb-lite.chunk.js.LICENSE.txt → 9230-537f1fcc38-lite.chunk.js.LICENSE.txt} +0 -0
  350. /package/dist/scripts/{9395-90b87097fa-lite.chunk.js.LICENSE.txt → 9395-e9b5cdbdce-lite.chunk.js.LICENSE.txt} +0 -0
  351. /package/dist/scripts/{9478-99486906b9-lite.chunk.js.LICENSE.txt → 9478-abfa7ed3cc-lite.chunk.js.LICENSE.txt} +0 -0
  352. /package/dist/scripts/{953-cbc7f0571e-lite.chunk.js.LICENSE.txt → 953-bf3d621a33-lite.chunk.js.LICENSE.txt} +0 -0
  353. /package/dist/scripts/{9719-cf7d4172b6-lite.chunk.js.LICENSE.txt → 9719-ed1956607c-lite.chunk.js.LICENSE.txt} +0 -0
  354. /package/dist/scripts/{bundle-1e1730f25e.min.js.LICENSE.txt → bundle-9a72d04e7d.min.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/4502-83e4017e54-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/common/src/backbone/utils/ScrollHelper.ts","file:///app/packages/libs/shared/src/apps/search/components/search-filters/PartialSearchFilters.tsx","file:///app/packages/libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx","file:///app/packages/libs/shared/src/components/pagination/Pagination.tsx","file:///app/packages/libs/shared/src/hooks/UseGetMediaQueryString.ts","file:///app/packages/libs/shared/src/hooks/UseHandleObjectError.ts","file:///app/packages/libs/shared/src/hooks/useBulkCheckboxManager.ts","file:///app/packages/libs/shared/src/hooks/usePrevious.ts","file:///app/packages/libs/shared/src/apps/user-manager/components/audit-log/partial-loading/partial-user-audit-log.scss","file:///app/packages/libs/shared/src/apps/user-manager/components/audit-log/partial-loading/PartialAuditLogTable.tsx","file:///app/packages/libs/shared/src/apps/user-manager/components/audit-log/partial-loading/PartialUserAuditLog.tsx","file:///app/packages/libs/shared/src/apps/user-manager/components/audit-log/components/audit-log-filters/UserAuditLogFilters.tsx","file:///app/packages/libs/shared/src/apps/user-manager/components/audit-log/components/audit-log-table/user-audit-log-table.scss","file:///app/packages/libs/shared/src/apps/user-manager/components/audit-log/components/audit-log-table/UserAuditLogTableUtils.tsx","file:///app/packages/libs/shared/src/apps/user-manager/components/audit-log/components/audit-log-table/UserAuditLogTable.tsx","file:///app/packages/libs/shared/src/apps/user-manager/components/audit-log/empty-state/UserAuditLogEmptyState.tsx","file:///app/packages/libs/shared/src/apps/user-manager/components/audit-log/user-audit-log.scss","file:///app/packages/libs/shared/src/apps/user-manager/components/audit-log/UserAuditLog.tsx","file:///app/packages/projects/lite/src/apps/user-manager/views/audit-log/UserAuditLogView.tsx","file:///app/packages/projects/lite/src/shared/flight-requests/JobRequests.ts"],"sourcesContent":["import { Radio } from 'backbone';\n\nimport { CommonChannels } from '../constants/CommonChannels';\n\nexport const ScrollHelper = {\n // Will prevent scrolling to the top of the page when applinks are triggered\n preventScrollTop(): void {\n Radio.channel(CommonChannels.SHELL).trigger('prevent:scroll:top');\n }\n};","import * as React from 'react';\n\nimport styles from './search-filters.scss';\n\ninterface PartialSearchFiltersProps {\n count?: number;\n}\n\nexport function PartialSearchFilters({ count = 6 }: PartialSearchFiltersProps): JSX.Element {\n return (\n <div className='d-flex'>\n <div className='d-flex ps-1'>\n {Array(count).fill(null).map((item, index) => (\n <div key={index} className={`${styles.partialButton} partial-loading-background mx-1`} />\n ))}\n </div>\n </div>\n );\n}","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nconst COLLAPSE_CHARACTER_COUNT = 56;\n\nexport interface Breadcrumb {\n name: string;\n appLink?: Core.AppLink;\n active?: boolean;\n}\n\ninterface BreadcrumbItemProps {\n breadcrumb: Breadcrumb;\n withBackIcon?: boolean;\n}\n\nexport const BreadcrumbItem = ({ breadcrumb: { name, appLink, active }, withBackIcon }: BreadcrumbItemProps) => (\n <li className={`breadcrumb-item${active ? ' active' : ''}`}>\n {active\n ? <strong>{name}</strong>\n : <AppLink appLink={appLink}>\n {withBackIcon && <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{name}</span>\n </AppLink>\n }\n </li>\n);\n\ninterface BreadcrumbsProps {\n breadcrumbs: Breadcrumb[];\n}\n\nexport const Breadcrumbs = ({ breadcrumbs }: BreadcrumbsProps) => {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n const length = breadcrumbs?.length || 0;\n \n const [ collapse, setCollapse ] = React.useState(false);\n\n React.useEffect(() => {\n const characterLength = breadcrumbs?.reduce((prev, next) => prev + next.name.length, 0) ?? 0;\n\n if (length > 3 && characterLength > COLLAPSE_CHARACTER_COUNT)\n setCollapse(true);\n }, [breadcrumbs?.length]);\n\n if (!length || (isMobile && length < 2))\n return <></>;\n\n if (isMobile)\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} withBackIcon />\n </ol>\n </nav>\n );\n\n const first = <BreadcrumbItem breadcrumb={breadcrumbs[0]} />;\n const secondLast = length > 2 ? <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} /> : <></>;\n const last = <BreadcrumbItem breadcrumb={breadcrumbs[length - 1]} />;\n const rest = breadcrumbs.slice(1, length - 2);\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {first}\n {collapse ?\n <li className='breadcrumb-item'>\n <button className='btn-link' onClick={() => setCollapse(false)}>\n ...\n </button>\n </li> :\n rest.map((breadcrumb, idx) => <BreadcrumbItem key={idx} breadcrumb={breadcrumb} />)\n }\n {secondLast}\n {last}\n </ol>\n </nav>\n );\n};\n\nexport const PartialBreadcrumbs = React.memo(function({ numItems = 3 }: { numItems?: number; }) {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n if (isMobile) {\n return (\n <div className='partial-loading-background' style={{ height: '1.3125rem', width: '6rem' }} />\n );\n }\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {PartialLoadingHelper.getPartialLoadingItems({ numItems }).map(({ width }, idx) => (\n <li key={idx} className='breadcrumb-item'>\n <span className='d-inline-block partial-loading-background' style={{ width }} dangerouslySetInnerHTML={{ __html: '&nbsp' }} />\n </li>\n ))}\n </ol>\n </nav>\n );\n});","import * as React from 'react';\nimport { Button, ButtonProps } from 'react-bootstrap';\n\nimport { Cursors } from 'libs/common/backbone/interfaces';\nimport { ScrollHelper } from 'libs/common/backbone/utils/ScrollHelper';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\n\nfunction buildCursor(appLink: Core.AppLink, cursorParam: string, prevHack?: boolean): Core.AppLink {\n if (!cursorParam)\n return null;\n\n const currentParams = appLink.params as HashObject ?? {};\n /* \n Currently the pagination for My Videos shows the previous cursor in the first page cursor,\n so instead of using the previous cursor from the response, the current cursor is being passed\n as the previous cursor in the app link\n */\n\n if (prevHack) {\n if (!currentParams?.previous) {\n return {\n application: appLink.application,\n action: appLink.action,\n args: appLink.args,\n params: {\n ...currentParams,\n cursor: null,\n previous: null\n }\n };\n }\n return {\n application: appLink.application,\n action: appLink.action,\n args: appLink.args,\n params: {\n ...currentParams,\n cursor: currentParams?.previous,\n previous: null\n }\n };\n }\n\n return {\n application: appLink.application,\n action: appLink.action,\n args: appLink.args,\n params: {\n ...currentParams,\n cursor: cursorParam,\n previous: currentParams.cursor\n }\n };\n}\n\ninterface CursorPaginationProps {\n cursors: Cursors;\n appLink?: Core.AppLink;\n className?: string;\n buttonVariant?: ButtonProps['variant'];\n prevHack?: boolean;\n scrollTop?: boolean;\n onClick?: (cursor: string) => void;\n}\n\nPagination.defaultProps = {\n className: 'py-2',\n buttonVariant: 'secondary'\n};\n\nexport function Pagination(\n { appLink, cursors, className, buttonVariant, prevHack, scrollTop, onClick }: CursorPaginationProps\n): JSX.Element {\n function onClickButton(page: 'next' | 'previous'): void {\n if (appLink && !scrollTop)\n ScrollHelper.preventScrollTop();\n\n AnalyticsHelper.logUserAction({ page }, {\n location: LocationContext.Pagination,\n entity: EntityType.Pagination,\n actionType: UserAction.Navigate\n });\n\n if (onClick)\n onClick(cursors[page]);\n }\n\n if (appLink) {\n return (\n <LanguageNamespaceContext.Provider value='shared.pagination'>\n <div className={className}>\n <AppLink\n appLink={buildCursor(appLink, cursors.previous, prevHack)}\n className={`btn btn-${buttonVariant} me-1 ${!cursors.previous ? 'disabled' : ''}`}\n onClick={() => onClickButton('previous')}\n // make sure disabled button and clickable button looks the same\n style={{ display: 'inline-block' }}\n >\n <Text phrase='previous' />\n </AppLink>\n \n <AppLink\n appLink={buildCursor(appLink, cursors.next)}\n className={`btn btn-${buttonVariant} ${!cursors.next ? 'disabled' : ''}`}\n onClick={() => onClickButton('next')}\n // make sure disabled button and clickable button looks the same\n style={{ display: 'inline-block' }}\n >\n <Text phrase='next' />\n </AppLink>\n </div>\n </LanguageNamespaceContext.Provider>\n );\n }\n \n return (\n <LanguageNamespaceContext.Provider value='shared.pagination'>\n <div className={className}>\n <Button\n variant={buttonVariant}\n className={`me-1 ${!cursors.previous ? 'disabled' : ''}`}\n onClick={() => onClickButton('previous')}\n >\n <Text phrase='previous' />\n </Button>\n <Button\n variant={buttonVariant}\n className={`btn ${!cursors.next ? 'disabled' : ''}`}\n onClick={() => onClickButton('next')}\n >\n <Text phrase='next' />\n </Button>\n </div>\n </LanguageNamespaceContext.Provider>\n );\n}","import { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\n\nimport { useMediaQuery } from './UseMediaQuery';\n\n/**\n * @deprecated Please use useBreakpoints() instead\n */\nexport function useGetMediaQueryString(): MediaQueryStrings {\n const isXS = useMediaQuery(MediaQueryStrings.XS);\n const isSM = useMediaQuery(MediaQueryStrings.SM);\n const isMD = useMediaQuery(MediaQueryStrings.MD);\n const isLG = useMediaQuery(MediaQueryStrings.LG);\n const isXL = useMediaQuery(MediaQueryStrings.XL);\n const isXXL = useMediaQuery(MediaQueryStrings.XXL);\n\n let currentString = MediaQueryStrings.LG; // default\n if (isXS) currentString = MediaQueryStrings.XS;\n if (isSM) currentString = MediaQueryStrings.SM;\n if (isMD) currentString = MediaQueryStrings.MD;\n if (isLG) currentString = MediaQueryStrings.LG;\n if (isXL) currentString = MediaQueryStrings.XL;\n if (isXXL) currentString = MediaQueryStrings.XXL;\n\n return currentString;\n}","import { useEffect } from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { handleHttpError, HttpErrorMap, IgnoreHttpErrorMap } from 'libs/shared/errors/handlers/HttpErrorHandlers';\n\nfunction generateCacheKey(flightObjs: Array<Flight.Response<any>>): string {\n return flightObjs.map(obj => obj.statusCode).join(':');\n}\n\n// TODO: Change this to just `useHandleHttpError` and only accept a status code.\nexport function useHandleObjectError(\n _flightObjs: Flight.Response<any> | Array<Flight.Response<any>>,\n customErrors?: HttpErrorMap,\n ignoreErrors?: IgnoreHttpErrorMap\n): void {\n const flightObjs = Array.isArray(_flightObjs) ? _flightObjs : [_flightObjs];\n\n useEffect(() => {\n flightObjs.forEach(obj => {\n handleHttpError(obj.statusCode, customErrors, ignoreErrors);\n });\n }, [ generateCacheKey(flightObjs), customErrors, ignoreErrors ]);\n}","import React from 'react';\n\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\n\nimport { useForceUpdate } from 'libs/shared/hooks/useForceUpdate';\nimport { usePrevious } from 'libs/shared/hooks/usePrevious';\n\ntype CheckboxItemsState = Map<string, boolean>;\n\nexport interface BulkCheckboxManager {\n onToggleBulk: () => void;\n onToggleItem: (id: string) => void;\n getSelected: () => string[];\n isChecked: (item: string | number | HashObject<string>) => boolean;\n bulkChecked: boolean;\n deselectAll: () => void;\n hasSomeSelections: () => boolean;\n setSelected: (ids: string[]) => void;\n getSelectedCount: () => number;\n reset: () => void;\n getMap: () => Map<string, boolean>;\n}\n\nexport interface BulkCheckboxManagerOptions {\n idField?: string; // For objects like `PresentationAudiences` that don't use `id` as their identifier field\n persistNamespace?: string;\n preselectedIds?: string[];\n initialState?: CheckboxItemsState;\n}\n\n/**\n * @param collection - The collection you are keeping track of with checkboxes\n * @param options - See interface above\n */\nexport const useBulkCheckboxManager = (collection: HashObject[], options: BulkCheckboxManagerOptions = {}) => {\n const { idField = 'id', persistNamespace } = options;\n\n const initial = options.initialState ? options.initialState : new Map<string, boolean>();\n\n const items = React.useRef<CheckboxItemsState>(initial);\n \n const forceUpdate = useForceUpdate();\n\n const prevCollection = usePrevious(collection);\n const prevNamespace = usePrevious(persistNamespace);\n\n /**\n * This hook will clear the state of this hook when a user navigates between pages\n * if a persistNamespace was not provided\n */\n React.useEffect(() => {\n /**\n * If we're being passed initial state, we don't want to clear the state\n */\n if (options.initialState)\n return;\n\n /**\n * If we've been given a persist namespace, we don't want to clear our\n * selections while the namespace stays the same\n */\n if (persistNamespace && prevNamespace === persistNamespace)\n return;\n\n /**\n * Don't reinitialize if the ids of the new and old collection\n * are identical\n */\n const prevIds = prevCollection?.map(i => i[idField]).join();\n const ids = collection?.map(i => i[idField]).join();\n\n if (prevIds === ids)\n return;\n\n reset();\n }, [ prevCollection, prevNamespace, collection, options.initialState ]);\n\n React.useEffect(() => {\n if (!options.preselectedIds?.length)\n return;\n\n setSelected(options.preselectedIds);\n }, []);\n\n function reset(): void {\n items.current.clear();\n forceUpdate();\n }\n\n // When toggled on, all checkbox items will be enabled. Vice versa if toggled off\n function onToggleBulk(): void {\n const setValue = !isBulkChecked();\n\n collection.forEach(item => {\n if (setValue)\n items.current.set(item[idField].toString(), true);\n else\n items.current.delete(item[idField].toString());\n });\n\n forceUpdate();\n }\n\n // Toggles a single item\n function onToggleItem(id: string): void {\n const nextItemState = !items.current.get(id.toString());\n\n if (nextItemState)\n items.current.set(id.toString(), nextItemState);\n else\n items.current.delete(id.toString());\n \n forceUpdate();\n }\n\n // Returns the state of the item passed in\n function isChecked(item: string | number | HashObject<string>): boolean {\n if (typeof item === 'number')\n item = item.toString();\n else if (typeof item !== 'string')\n item = item[idField].toString();\n\n return items.current.get(item);\n }\n\n function getSelected(): string[] {\n return Array.from(items.current.keys());\n }\n\n function deselectAll(): void {\n if (!collection?.length) return;\n\n collection.forEach(item => {\n items.current.delete(item[idField].toString());\n });\n forceUpdate();\n }\n\n // Returns true if at least 1 item is checked\n function hasSomeSelections(): boolean {\n if (!collection?.length)\n return false;\n\n return !!collection.find(item => isChecked(item));\n }\n\n function isBulkChecked(): boolean {\n if (!collection?.length)\n return false;\n\n return collection.every(isChecked);\n }\n\n function setSelected(ids: string[]): void {\n ids.forEach(id => {\n items.current.set(id, true);\n });\n forceUpdate();\n }\n\n function getSelectedCount(): number {\n return items.current.size;\n }\n\n function getMap(): Map<string, boolean> {\n return items.current;\n }\n\n return {\n onToggleBulk,\n onToggleItem,\n getSelected,\n isChecked,\n bulkChecked: isBulkChecked(),\n deselectAll,\n hasSomeSelections,\n setSelected,\n getSelectedCount,\n reset,\n getMap\n };\n};","import React from 'react';\n\n// https://reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state\nexport function usePrevious<T>(value: T): T {\n const ref = React.useRef<T>();\n React.useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}","// extracted by mini-css-extract-plugin\nexport default {\"partialHeading\":\"rfiJl\",\"partialJobCount\":\"h8k_u\",\"partialCheckbox\":\"HkuOS\",\"partialExportButton\":\"Iul7S\",\"row\":\"mwigG\",\"checkboxColumn\":\"Z5jLG\",\"actionColumn\":\"rLxYh\",\"usersColumn\":\"QZzab\",\"dateColumn\":\"Wf_Jp\",\"performedByColumn\":\"Ubtmj\",\"seeMoreColumn\":\"XdP6u\",\"heading\":\"kRMMH\",\"action\":\"DvDvW\",\"users\":\"goKpg\",\"date\":\"ejYGb\",\"performedBy\":\"NhjyL\"};","import React from 'react';\n\nimport styles from './partial-user-audit-log.scss';\n\nfunction PartialRow(): JSX.Element {\n return (\n <div className={`d-flex striped-row rounded py-3 ${styles.row}`}>\n <div className={`${styles.checkboxColumn} d-flex justify-content-center`}>\n <div className={`partial-loading-background ${styles.partialCheckbox} ms-0`} />\n </div>\n <div className={`${styles.actionColumn}`}>\n <div className={`partial-loading-background ${styles.action}`} />\n </div>\n <div className={`${styles.usersColumn}`}>\n <div className={`partial-loading-background ${styles.users}`} />\n </div>\n <div className={`${styles.dateColumn}`}>\n <div className={`partial-loading-background ${styles.date}`} />\n </div>\n <div className={`${styles.performedByColumn}`}>\n <div className={`partial-loading-background ${styles.performedBy}`} />\n </div>\n <div className={`${styles.seeMoreColumn}`}>\n &nbsp;\n </div>\n </div>\n );\n}\n\nfunction PartialHeader(): JSX.Element {\n return (\n <div className='d-flex py-2 mb-1'>\n <div className={`${styles.checkboxColumn}`}>\n &nbsp;\n </div>\n <div className={`${styles.actionColumn}`}>\n <div className={`partial-loading-background ${styles.heading}`} />\n </div>\n <div className={`${styles.usersColumn}`}>\n <div className={`partial-loading-background ${styles.heading}`} />\n </div>\n <div className={`${styles.dateColumn}`}>\n <div className={`partial-loading-background ${styles.heading}`} />\n </div>\n <div className={`${styles.performedByColumn}`}>\n <div className={`partial-loading-background ${styles.heading}`} />\n </div>\n <div className={`${styles.seeMoreColumn}`}>\n &nbsp;\n </div>\n </div>\n );\n}\n\nexport function PartialAuditLogTable(): JSX.Element {\n return (\n <>\n <div className='mb-3 mt-n1'>\n <PartialHeader />\n\n <div className='striped-list no-full-width'>\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n </div>\n </div>\n </>\n );\n}","import React from 'react';\n\nimport { PartialSearchFilters } from 'libs/shared/apps/search/components/search-filters/PartialSearchFilters';\nimport { PartialBreadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\n\nimport { PartialAuditLogTable } from './PartialAuditLogTable';\n\nimport styles from './partial-user-audit-log.scss';\n\nexport function PartialUserAuditLog(): JSX.Element {\n return (\n <>\n <div className={`partial-loading-background mb-2 ${styles.partialHeading}`} />\n\n <div className='pb-3'>\n <div className='d-flex justify-content-between'>\n <PartialBreadcrumbs />\n\n <div className={`partial-loading-background ${styles.partialJobCount}`} />\n </div>\n </div>\n\n <div className='d-flex align-items-center pb-2'>\n <div className={`partial-loading-background ${styles.partialCheckbox}`} />\n\n <div className='ms-4 ps-3'>\n <PartialSearchFilters count={3} />\n </div>\n\n <div className={`ms-auto partial-loading-background ${styles.partialExportButton}`} />\n </div>\n\n <PartialAuditLogTable />\n </>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext } from 'libs/analytics/interfaces';\n\nimport { SearchFilters } from 'libs/shared/apps/search/components/search-filters/SearchFilters';\nimport { FilterOption, SearchFilter } from 'libs/shared/apps/search/interfaces';\nimport { Filters } from 'libs/shared/apps/search/utils/FilterHelper';\nimport { UserManagerAppLinks } from 'libs/shared/apps/user-manager/interfaces';\nimport { BatchJobType } from 'libs/shared/enums/BatchJobType';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\n\nconst namespace = 'userManager.userAuditLogFilters';\n\nfunction getSortOptions(): FilterOption[] {\n return [{\n id: 'newest',\n name: LanguageService.getPhrase(namespace, 'newest'),\n default: true\n },\n {\n id: 'oldest',\n name: LanguageService.getPhrase(namespace, 'oldest')\n }];\n}\n\nexport interface UserAuditLogQueryParams {\n cursor: string;\n userType: UserGroup | UserGroup[];\n bulkActionType: BatchJobType | BatchJobType[];\n sort: 'newest' | 'oldest';\n}\n\ninterface UserAuditLogFiltersProps {\n queryParams: UserAuditLogQueryParams;\n appLinks: UserManagerAppLinks;\n}\n\nexport function UserAuditLogFilters(props: UserAuditLogFiltersProps): JSX.Element {\n const filters: SearchFilter<any>[] = [\n Filters.SortBy(getSortOptions()),\n Filters.BulkActionType(),\n Filters.UserType()\n ];\n\n return (\n <SearchFilters\n queryParams={props.queryParams}\n mainFilters={filters}\n appLink={props.appLinks.auditLog}\n analyticsOptions={{\n entity: EntityType.BatchJob,\n location: LocationContext.UserAuditLog\n }}\n hideHeading\n hideDivider\n constantIndices={[]}\n />\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"seeMore\":\"uymuO\"};","import React from 'react';\nimport { CellProps, Column } from 'react-table';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { BulkUserActionsHelper } from 'libs/shared/apps/user-manager/utils/BulkUserActionsHelper';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { ClickViewAvatar } from 'libs/shared/components/clickview-avatar/ClickViewAvatar';\nimport { Checkbox } from 'libs/shared/components/forms/form-checkbox/Checkbox';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { SvgContainer2 } from 'libs/shared/components/svg-container/SvgContainer2';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { BatchJob } from 'libs/shared/interfaces';\n\nimport styles from './user-audit-log-table.scss';\n\nconst namespace = 'userManager.userAuditLogTable';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface UserAuditLogTableData {\n id: string;\n checked: boolean;\n actionType: string;\n userType: string;\n date: string;\n performedBy: {\n name: string;\n submittedByClickView: boolean;\n };\n}\n\nexport function getColumns(\n summaryAppLink: Core.AppLink,\n onToggleCheckbox: (id: string) => void\n): Column<UserAuditLogTableData>[] {\n const columns: Column<UserAuditLogTableData>[] = [\n {\n Header: '',\n id: 'checkboxes',\n accessor: (data: UserAuditLogTableData) => ({ id: data.id, checked: data.checked }),\n Cell: (cell: CellProps<UserAuditLogTableData, { id: string; checked: boolean; }>) => (\n <div className='text-center mx-auto'>\n <Checkbox\n id={cell.value.id}\n checked={cell.value.checked}\n onChange={() => onToggleCheckbox(cell.value.id)}\n />\n </div>\n ),\n width: 10\n },\n {\n Header: getPhrase('action'),\n accessor: 'actionType',\n id: 'actionType',\n Cell: ({ value }) => (\n <div className='w-100'>\n {value}\n </div>\n ),\n width: 20\n },\n {\n Header: getPhrase('users'),\n accessor: 'userType',\n id: 'userType',\n Cell: ({ value }) => {\n const getValue = () => {\n switch (value) {\n case UserGroup.Learner:\n return getPhrase('students');\n case UserGroup.Staff:\n return getPhrase('staff');\n case UserGroup.Unknown:\n default:\n return getPhrase('unknown');\n }\n };\n\n return (\n <div className='w-100'>\n {getValue()}\n </div>\n );\n },\n width: 10\n },\n {\n Header: getPhrase('date'),\n accessor: 'date',\n id: 'date',\n Cell: ({ value }) => (\n <div className='w-100'>\n {value}\n </div>\n ),\n width: 20\n },\n {\n Header: getPhrase('performedBy'),\n accessor: 'performedBy',\n id: 'performedBy',\n Cell: (cell: CellProps<any, { name: string; submittedByClickView: boolean; }>) => (\n <div className='w-100 d-flex align-items-center'>\n {cell.value.submittedByClickView && (\n <SvgContainer2 className='me-1' size={SvgContainerSize.Small}>\n <ClickViewAvatar />\n </SvgContainer2>\n )}\n {cell.value.name}\n </div>\n ),\n width: 20\n },\n {\n Header: '',\n accessor: 'id',\n id: 'seeMore',\n Cell: ({ value }) => (\n <div className='w-100 d-flex justify-content-end'>\n <AppLink\n className={`info-link text-end me-3 ms-auto ${styles.seeMore}`}\n appLink={{\n ...summaryAppLink,\n args: summaryAppLink.args?.length ? [ ...summaryAppLink.args, value ] : [value]\n }}\n >\n <Text namespace={namespace} phrase='seeMore' />\n </AppLink>\n </div>\n ),\n width: 30\n }\n ];\n\n return columns;\n}\n\nexport function useGetData(jobs: BatchJob[], isChecked: (id: string) => boolean): UserAuditLogTableData[] {\n return jobs.map(job => {\n const formattedDate = DateHelper.format(job.dateCreated, 'DD/MM/YYYY, hh:mmA');\n\n return {\n id: job.id,\n checked: isChecked(job.id),\n actionType: BulkUserActionsHelper.mapJobTypeToName(job.type),\n userType: BulkUserActionsHelper.mapDataTypeToUserType(job.dataType),\n date: formattedDate,\n performedBy: {\n name: job.submitterName,\n submittedByClickView: job.submittedByClickView\n }\n };\n });\n}","import React from 'react';\n\nimport { UserManagerAppLinks } from 'libs/shared/apps/user-manager/interfaces';\nimport { Table, TableTheme } from 'libs/shared/components/table/Table';\nimport { BatchJobCollection } from 'libs/shared/interfaces';\n\nimport { getColumns, useGetData } from './UserAuditLogTableUtils';\n\nconst TABLE_THEME: TableTheme = {\n table: 'striped-list no-full-width pb-3',\n header: 'fw-semibold pb-1',\n headerCell: 'px-2 py-1',\n row: 'striped-row rounded audit-log-row',\n cell: 'd-flex align-items-center py-3 px-2'\n};\n\ninterface UserAuditLogTableProps {\n jobs: BatchJobCollection;\n appLinks: UserManagerAppLinks;\n onToggleCheckbox: (id: string) => void;\n isChecked: (id: string) => boolean;\n}\n\nexport function UserAuditLogTable(props: UserAuditLogTableProps): JSX.Element {\n const data = useGetData(props.jobs.data, props.isChecked);\n\n return (\n <Table\n columns={getColumns(props.appLinks.bulkActionSummary, props.onToggleCheckbox)}\n data={data}\n theme={TABLE_THEME}\n />\n );\n}","import React from 'react';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'userManager.auditLogEmptyState';\n\ninterface UserAuditLogEmptyStateProps {\n imageUrl: string;\n}\n\nexport function UserAuditLogEmptyState(props: UserAuditLogEmptyStateProps): JSX.Element {\n return (\n <EmptyState>\n <EmptyState.Image src={props.imageUrl} />\n <EmptyState.Heading>\n <Text namespace={namespace} phrase='heading' />\n </EmptyState.Heading>\n <EmptyState.Info>\n <Text namespace={namespace} phrase='info' />\n </EmptyState.Info>\n </EmptyState>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"bulkCheckbox\":\"NMw5T\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\n\nimport { UserManagerConstants } from 'libs/shared/apps/user-manager/constants/UserManagerConstants';\nimport { UserManagerAppLinks } from 'libs/shared/apps/user-manager/interfaces';\nimport { Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { Checkbox } from 'libs/shared/components/forms/form-checkbox/Checkbox';\nimport { Pagination } from 'libs/shared/components/pagination/Pagination';\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useBulkCheckboxManager } from 'libs/shared/hooks/useBulkCheckboxManager';\nimport { BatchJobCollection } from 'libs/shared/interfaces';\nimport { ContextService } from 'libs/shared/services/ContextService';\n\nimport { UserAuditLogFilters, UserAuditLogQueryParams } from './components/audit-log-filters/UserAuditLogFilters';\nimport { UserAuditLogTable } from './components/audit-log-table/UserAuditLogTable';\nimport { UserAuditLogEmptyState } from './empty-state/UserAuditLogEmptyState';\n\nimport styles from './user-audit-log.scss';\n\nconst namespace = 'userManager.auditLog';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface UserAuditLogProps {\n jobs: BatchJobCollection;\n appLinks: UserManagerAppLinks;\n queryParams: UserAuditLogQueryParams;\n onClickExport: (ids: string[]) => Promise<void>;\n emptyStateImageUrl: string;\n}\n\nexport function UserAuditLog(props: UserAuditLogProps): JSX.Element {\n const referrer: UserGroup = LocalStorageHelper.get(UserManagerConstants.AUDIT_LOG_REFERRER_KEY);\n\n const [ showExportSpinner, setShowExportSpinner ] = React.useState(false);\n\n const CheckboxHelper = useBulkCheckboxManager(props.jobs.data);\n const alerts = useAlerts();\n\n function onClickExport(): void {\n if (showExportSpinner)\n return;\n\n setShowExportSpinner(true);\n\n const selectedIds = CheckboxHelper.getSelected();\n\n props.onClickExport(selectedIds)\n .then(() => alerts.success(getPhrase('exportSuccess')))\n .catch(() => alerts.error(getPhrase('exportError')))\n .finally(() => setShowExportSpinner(false));\n }\n\n return (\n <>\n <h1 className='h2'><Text namespace={namespace} phrase='heading' /></h1>\n\n <div className='pb-3'>\n <div className='d-flex justify-content-between'>\n <Breadcrumbs\n breadcrumbs={[\n { name: getPhrase('settingsBreadcrumb'), appLink: props.appLinks.settings },\n { name: getPhrase(referrer === UserGroup.Learner ? 'studentManager' : 'staffManager'), appLink: props.appLinks.userManager },\n { name: getPhrase('heading'), active: true }\n ]}\n />\n\n <p className='mb-0 fw-semibold'>\n <Text\n namespace={namespace}\n phrase='totalJobs'\n options={{ showing: props.jobs.data.length, smartCount: props.jobs.count }}\n />\n </p>\n </div>\n </div>\n\n <div className='d-flex align-items-center pb-2'>\n <Checkbox\n className={styles.bulkCheckbox}\n id='bulk-audit-log-checkbox'\n checked={CheckboxHelper.bulkChecked}\n onChange={CheckboxHelper.onToggleBulk}\n indeterminate={CheckboxHelper.hasSomeSelections()}\n />\n\n <div className='ms-4 ps-1'>\n <UserAuditLogFilters queryParams={props.queryParams} appLinks={props.appLinks} />\n </div>\n\n <SpinnerButton\n variant='dark'\n className='ms-auto'\n onClick={onClickExport}\n disabled={!CheckboxHelper.hasSomeSelections() || showExportSpinner}\n showSpinner={showExportSpinner}\n >\n <Text namespace={namespace} phrase='export' />\n </SpinnerButton>\n </div>\n\n {props.jobs.data?.length ? (\n <UserAuditLogTable\n jobs={props.jobs}\n appLinks={props.appLinks}\n onToggleCheckbox={CheckboxHelper.onToggleItem}\n isChecked={CheckboxHelper.isChecked}\n />\n ) : (\n <UserAuditLogEmptyState imageUrl={props.emptyStateImageUrl} />\n )}\n\n {!!props.jobs.pagination?.cursors && (\n <Pagination\n className='p-0 text-end pb-3'\n cursors={props.jobs.pagination.cursors}\n appLink={ContextService.getCurrentRoute().appLink}\n buttonVariant='outline-dark'\n />\n )}\n </>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { UserAuditLogQueryParams } from 'libs/shared/apps/user-manager/components/audit-log/components/audit-log-filters/UserAuditLogFilters';\nimport { PartialUserAuditLog } from 'libs/shared/apps/user-manager/components/audit-log/partial-loading/PartialUserAuditLog';\nimport { UserAuditLog } from 'libs/shared/apps/user-manager/components/audit-log/UserAuditLog';\nimport { UserManagerConstants } from 'libs/shared/apps/user-manager/constants/UserManagerConstants';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { BatchJobCollection } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { JobRequests } from 'shared/flight-requests/JobRequests';\n\nimport { getUserManagerAppLinks } from 'apps/user-manager/utils/LiteUserManagerAppLinks';\n\nconst namespace = 'userManager.userAuditLogView';\n\ninterface UserAuditLogViewProps {\n queryParams: UserAuditLogQueryParams;\n}\n\nexport function UserAuditLogView(props: UserAuditLogViewProps): JSX.Element {\n const referrer: UserGroup = LocalStorageHelper.get(UserManagerConstants.AUDIT_LOG_REFERRER_KEY);\n\n const jobs = Flight.useBasicFetch<BatchJobCollection>(JobRequests.getJobs(props.queryParams));\n \n useHandleObjectError(jobs);\n useSetPageMetadata({ title: LanguageService.getPhrase(namespace, 'pageTitle') });\n\n const fetchAsync = Flight.useGetFetchAsync();\n\n const appLinks = getUserManagerAppLinks(referrer);\n\n function onClickExport(jobIds: string[]): Promise<void> {\n return fetchAsync<void>(JobRequests.sendJobReports(jobIds));\n }\n\n if (!jobs.hasCompleted)\n return <div className='px-3'><PartialUserAuditLog /></div>;\n\n return (\n <div className='px-3'>\n <UserAuditLog\n jobs={jobs.data}\n appLinks={appLinks}\n queryParams={props.queryParams}\n onClickExport={onClickExport}\n emptyStateImageUrl={ImageUrls.EmptyStates.Search.RESULTS}\n />\n </div>\n );\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { UserAuditLogQueryParams } from 'libs/shared/apps/user-manager/components/audit-log/components/audit-log-filters/UserAuditLogFilters';\nimport { SUPPORTED_BATCH_JOB_TYPES } from 'libs/shared/apps/user-manager/utils/BulkUserActionsHelper';\nimport { BatchJobResultStatus } from 'libs/shared/enums/BatchJobResultStatus';\nimport { BatchJobType } from 'libs/shared/enums/BatchJobType';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { BaseObject, BatchJob, BatchJobProgress, BatchJobResultsResponse, CreateBatchJobRequest } from 'libs/shared/interfaces';\n\nexport const JobRequests = {\n createJob(\n data: CreateBatchJobRequest,\n success?: (job: BatchJob) => void,\n error?: () => void\n ): Flight.Request {\n return {\n url: '{gateway}/v1/batch/jobs',\n key: 'create:job',\n type: HttpVerbs.POST,\n data,\n success,\n error\n };\n },\n\n getJobs(queryParams: UserAuditLogQueryParams): Flight.Request {\n const params: HashObject = {};\n\n let bulkActionTypes: BatchJobType[] = [];\n let userTypes: UserGroup[] = [];\n\n if (queryParams.cursor)\n params.cursor = queryParams.cursor;\n\n if (queryParams.sort) {\n if (queryParams.sort === 'oldest')\n params.order = 'ASC';\n else\n params.order = 'DESC';\n }\n\n if (queryParams.bulkActionType) {\n bulkActionTypes = Array.isArray(queryParams.bulkActionType)\n ? queryParams.bulkActionType\n : [queryParams.bulkActionType];\n\n params.type = bulkActionTypes;\n } else {\n // only show supported type in the table by default\n params.type = SUPPORTED_BATCH_JOB_TYPES;\n }\n\n if (queryParams.userType) {\n userTypes = Array.isArray(queryParams.userType)\n ? queryParams.userType\n : [queryParams.userType];\n\n params.dataType = userTypes;\n }\n \n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/batch/jobs', params),\n key: `batch:jobs:${queryParams.cursor}:${queryParams.sort}:${bulkActionTypes.sort().join(':')}:${userTypes.sort().join(':')}`\n };\n },\n\n getJob(id: string): Flight.Request {\n return {\n url: `{gateway}/v1/batch/jobs/${id}`,\n key: `job:${id}`\n };\n },\n\n getJobProgress(\n id: string,\n success?: (progress: BatchJobProgress) => void,\n error?: (xhr?: Xhr) => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/batch/jobs/${id}/progress`,\n key: `job:${id}:progress`,\n invalidationKeys: `job:${id}:progress`,\n success,\n error\n };\n },\n\n getJobResults<TObject extends BaseObject>(\n id: string,\n status: BatchJobResultStatus,\n cursor?: string,\n success?: (results: BatchJobResultsResponse<TObject>) => void,\n error?: (xhr?: Xhr) => void\n ): Flight.Request {\n const params: HashObject = {\n status\n };\n\n if (cursor)\n params.cursor = cursor;\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/batch/jobs/${id}/results`, params),\n key: `job:${id}:results:${status}:${cursor}`,\n success,\n error\n };\n },\n\n getYearGroupRolloverStatus(customerId: string): Flight.Request {\n return {\n url: `{gateway}/v1/batch/validations/customers/${customerId}/year-group-roll-over`,\n key: 'year:group:rollover:status'\n };\n },\n\n sendJobReports(ids: string[]): Flight.Request {\n return {\n url: '{gateway}/v1/batch/results/export',\n key: `send:job:reports:${ids.sort().join(':')}`,\n type: HttpVerbs.POST,\n data: {\n jobIds: ids\n }\n };\n },\n\n getJobSummary(id: string): Flight.Request {\n return {\n url: `{gateway}/v1/batch/jobs/${id}/summary`,\n key: `job:summary:${id}`\n };\n }\n};"],"names":["ScrollHelper","preventScrollTop","Radio","trigger","PartialSearchFilters","count","className","Array","fill","map","item","index","key","BreadcrumbItem","breadcrumb","name","appLink","active","withBackIcon","svgName","size","S","Breadcrumbs","breadcrumbs","isMobile","length","collapse","setCollapse","characterLength","reduce","prev","next","first","secondLast","last","rest","slice","onClick","idx","PartialBreadcrumbs","numItems","style","height","width","dangerouslySetInnerHTML","__html","buildCursor","cursorParam","prevHack","currentParams","params","previous","application","action","args","cursor","Pagination","cursors","buttonVariant","scrollTop","onClickButton","page","location","entity","actionType","value","display","phrase","variant","defaultProps","useGetMediaQueryString","isXS","isSM","isMD","isLG","isXL","isXXL","currentString","generateCacheKey","flightObjs","obj","statusCode","join","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","isArray","useEffect","forEach","useBulkCheckboxManager","collection","options","idField","persistNamespace","initial","initialState","Map","items","forceUpdate","prevCollection","prevNamespace","reset","current","clear","isChecked","toString","get","isBulkChecked","every","setSelected","ids","id","set","i","preselectedIds","onToggleBulk","setValue","onToggleItem","nextItemState","getSelected","from","keys","bulkChecked","deselectAll","hasSomeSelections","find","getSelectedCount","getMap","usePrevious","ref","PartialRow","PartialHeader","PartialAuditLogTable","PartialUserAuditLog","namespace","UserAuditLogFilters","props","filters","LanguageService","default","SearchFilters","queryParams","mainFilters","appLinks","auditLog","analyticsOptions","hideHeading","hideDivider","constantIndices","getPhrase","TABLE_THEME","table","header","headerCell","row","cell","UserAuditLogTable","jobs","summaryAppLink","onToggleCheckbox","data","job","formattedDate","DateHelper","dateCreated","checked","BulkUserActionsHelper","type","userType","dataType","date","performedBy","submitterName","submittedByClickView","Table","columns","bulkActionSummary","Header","accessor","Cell","Checkbox","onChange","UserGroup","getValue","SvgContainer2","SvgContainer","ClickViewAvatar","AppLink","Text","theme","UserAuditLogEmptyState","EmptyState","src","imageUrl","UserAuditLog","referrer","LocalStorageHelper","UserManagerConstants","showExportSpinner","setShowExportSpinner","CheckboxHelper","alerts","settings","userManager","showing","smartCount","indeterminate","SpinnerButton","selectedIds","onClickExport","then","success","error","disabled","showSpinner","emptyStateImageUrl","pagination","ContextService","UserAuditLogView","JobRequests","useSetPageMetadata","title","fetchAsync","hasCompleted","jobIds","ImageUrls","createJob","url","getJobs","bulkActionTypes","userTypes","sort","order","bulkActionType","getJob","getJobProgress","invalidationKeys","getJobResults","status","getYearGroupRolloverStatus","customerId","sendJobReports","getJobSummary"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[4690],{83657:(e,t,n)=>{n.d(t,{e:()=>s});var a=n(32735),r=n(91967),i=n(10874),o=n(76177),c=n(42735),l=n(86509);function s(e){var t=a.useMemo((function(){return e.actions.sort((function(e,t){return e.order-t.order}))}),[e.actions]),n=[],s=[];t.forEach((function(e){e.button?n.push(e):s.push(e)}));var m="d-flex";return e.className&&(m+=" ".concat(e.className)),n.length||s.length?a.createElement("div",{className:m},n.length?n.map((function(t,n){return a.createElement(a.Fragment,{key:n},function(){if(t.label){var n=r.q.isFunction(t.label)?t.label:function(){return a.createElement(a.Fragment,null,t.label)};return a.createElement(c.K,{appLink:t.appLink,href:t.href,onClick:t.onClick,svgName:t.svgName,svgSize:e.dropdownToggleSvgSize,className:t.className,tooltip:t.tooltip,showSpinner:t.showSpinner,analyticsData:t.analyticsData,analyticsOptions:t.analyticsOptions,openInNewTab:t.openInNewTab,disabled:t.disabled},n())}var l=a.createElement(i.h,{appLink:t.appLink,href:t.href,onClick:t.onClick,svgName:t.svgName,className:t.className,analyticsData:t.analyticsData,analyticsOptions:t.analyticsOptions,openInNewTab:t.openInNewTab,disabled:t.disabled,showBorder:t.showBorder,customSize:e.customSize});return t.tooltip?a.createElement(o.u,{title:t.tooltip,spanHack:!0},l):l}())})):a.createElement(a.Fragment,null),e.sortComponent&&e.sortComponent,s.length?a.createElement(l.m,{actions:s,dropdownToggleClassName:e.actionsDropdownClassName,dropdownToggleSvgSize:e.dropdownToggleSvgSize,fetchMore:e.fetchMore}):a.createElement(a.Fragment,null)):a.createElement(a.Fragment,null)}},86509:(e,t,n)=>{n.d(t,{m:()=>f});var a=n(32735),r=n(91967),i=n(81886),o=n(45157),c=n(49985),l=n(36848),s=n(83914),m=n(76177),d=n(35223);const u={dropdownToggle:"UCAnJ"};function p(){return a.createElement(a.Fragment,null,a.createElement("div",{style:{padding:"0.53125rem 1rem"}},a.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"8rem"}})),a.createElement("div",{style:{padding:"0.53125rem 1rem"}},a.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"12rem"}})),a.createElement("div",{style:{padding:"0.53125rem 1rem"}},a.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"11rem"}})),a.createElement("div",{style:{padding:"0.53125rem 1rem"}},a.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"9rem"}})))}function g(e){var t="dropdown-item";return e&&(t+=" ".concat(e)),t}function v(e){var t=r.q.isFunction(e.action.label)?e.action.label:function(){return a.createElement(a.Fragment,null,e.action.label)};if(e.action.appLink)return a.createElement(l.F,{appLink:e.action.appLink,onClick:e.action.onClick,className:g(e.action.className),analyticsData:e.action.analyticsData,analyticsOptions:e.action.analyticsOptions,openInNewTab:e.action.openInNewTab,disabled:e.action.disabled},e.action.svgName&&a.createElement(s.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2 align-middle"}),a.createElement("span",{className:"align-middle"},t()));function n(t){t.preventDefault(),e.action.analyticsData&&e.action.analyticsOptions&&c.k.logUserAction(e.action.analyticsData,e.action.analyticsOptions),r.q.isFunction(e.action.onClick)&&e.action.onClick(),e.action.href&&i.Q.Ab.PageLoad(e.action.href,e.action.openInNewTab)}return e.action.href?a.createElement("a",{className:g(e.action.className),onClick:n,href:e.action.href},e.action.svgName&&a.createElement(s.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2 align-middle"}),a.createElement("span",{className:"align-middle"},t())):a.createElement("span",{className:"cursor-pointer ".concat(g(e.action.className)),onClick:n,role:"button",tabIndex:0,onKeyDown:function(e){return"Enter"===e.key&&n(e)}},e.action.svgName&&a.createElement(s.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2"}),t())}function f(e){if(!e.actions||!e.actions.length)return a.createElement(a.Fragment,null);var t=e.actions.some((function(e){return e.lazyPlaceholder})),n="dropdown";e.className&&(n+=" ".concat(e.className));var r,i="actions-dropdown-".concat(o.Y.getRandomInt()),c="dropdown-toggle px-0 ".concat(u.dropdownToggle);return e.dropdownToggleClassName&&(c+=" ".concat(e.dropdownToggleClassName)),a.createElement("div",{className:n},a.createElement("button",{className:c,type:"button",id:i,"data-bs-toggle":"dropdown","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"More actions dropdown",onClick:t?e.fetchMore:null},a.createElement(s.x,{svgName:d.vn.More,size:e.dropdownToggleSvgSize})),a.createElement("ul",{className:"dropdown-menu dropdown-menu-end dropdown-menu-right font-size-normal","aria-labelledby":i},t?a.createElement(p,null):e.actions.map((function(e,t){var n=void 0!==r&&r!==e.group;return r=e.group,e.tooltip?a.createElement("li",{key:t},n&&a.createElement("hr",{className:"dropdown-divider",role:"separator"}),a.createElement(m.u,{title:e.tooltip,spanHack:!0},a.createElement(v,{action:e}))):a.createElement("li",{key:t},n&&a.createElement("hr",{className:"dropdown-divider",role:"separator"}),a.createElement(v,{action:e}))}))))}f.defaultProps={dropdownToggleClassName:"btn btn-light",dropdownToggleSvgSize:s.S.Small}},80181:(e,t,n)=>{n.d(t,{Z:()=>E});var a=n(32735),r=n(42648),i=n(11607),o=n(83914),c=n(83345),l=n(28972),s=n(93264),m=n(35223),d=n(86572);const u={timeTag:"ShZvf",selected:"tfrDf",hide:"FHzDr",time:"JDp5N",type:"AzIWg",question:"UhEYq",deleteContainer:"wBqoo",delete:"OAQQu",correctness:"W5sR9",row:"sGk59"};var p="shared.interactiveQuestions";function g(e){var t=e.interaction;switch((0,e.getCorrectness)(t)){case l.w.Correct:return a.createElement("span",{className:"text-success"},a.createElement(o.x,{size:o.S.Medium,svgName:m.vn.Check}));case l.w.Incorrect:return a.createElement("span",{className:"text-danger"},a.createElement(o.x,{size:o.S.Medium,svgName:m.vn.Close}));case l.w.AwaitingMarking:return a.createElement("span",{className:"text-secondary italic"},a.createElement("i",null,a.createElement(c.x,{namespace:p,phrase:"pending"})));case l.w.UnAnswered:return a.createElement("button",{className:"btn btn-outline-dark"},a.createElement(c.x,{namespace:p,phrase:"answer"}));case l.w.Answered:return a.createElement("span",{className:"text-secondary italic"},a.createElement("i",null,a.createElement(c.x,{namespace:p,phrase:"answered"})));case l.w.NotApplicable:return a.createElement(a.Fragment,null)}}function v(e){var t=e.interaction,n=e.visibleAt,r=e.selectedInteractionId,c=e.goToTimepoint,l=e.scrollTo,p=e.isFirstInteraction,v=e.hasPlayPageV2,f=t.id.toString()===(null==r?void 0:r.toString()),E=a.useRef();a.useEffect((function(){if(f&&E.current){var e=E.current,t=e.getBoundingClientRect(),n=t.top-e.offsetParent.getBoundingClientRect().top;l(n,t.height)}}),[f]);var y=c?"cursor-pointer":"cursor-default";return a.createElement("div",{ref:E},a.createElement(i.L,{className:"py-2 ".concat(y," ").concat(u.row," ").concat(f?u.selected:""),onClick:f?function(){}:function(){c&&c(t.id)}},v?a.createElement("div",{className:"me-3 d-inline-flex rounded-pill justify-content-center align-items-center info-link fw-semibold ".concat(u.timeTag," ").concat(p?"":u.hide," ").concat(f?u.selected:"")},p?s.T.ToDisplayDuration(n):""):a.createElement("span",{className:"".concat(u.time," me-2 ").concat(f?"fw-bold":"")},p?s.T.ToDisplayDuration(n):""),a.createElement(d.y,{interaction:t,showTypeName:!0,typeNameClassName:u.type,questionClassName:u.question}),e.onClickDelete&&a.createElement(i.L,{onClick:function(n){n.stopPropagation(),e.onClickDelete(t.id)},className:"".concat(u.deleteContainer)},a.createElement("span",{className:"text-end ".concat(u.delete)},a.createElement(o.x,{size:o.S.Medium,svgName:m.vn.Delete}))),e.getCorrectness&&a.createElement("span",{className:"text-end ".concat(u.correctness)},a.createElement(g,{interaction:t,getCorrectness:e.getCorrectness}))))}function f(e){var t=e.timepoint,n=e.scrollTo,r=e.onClickDelete,i=e.selectedInteractionId,o=e.getCorrectness,c=e.hasPlayPageV2;function l(n){e.goToTimepoint(t.id,n)}return t.interactions?a.createElement("div",null,t.interactions.map((function(s,m){return a.createElement(v,{interaction:s,visibleAt:t.visibleAt,goToTimepoint:e.goToTimepoint&&l,onClickDelete:r,scrollTo:n,selectedInteractionId:i,isFirstInteraction:0===m,getCorrectness:o,key:m,hasPlayPageV2:c})}))):a.createElement(a.Fragment,null)}function E(e){var t=e.interactive,n=e.goToTimepoint,i=e.selectedInteractionId,o=e.maxHeight,c=e.onClickDelete,l=e.getCorrectness,s=e.hasPlayPageV2,m=a.useRef();function d(e,t){if(m.current){var n=m.current.getClientHeight(),a=m.current.getScrollTop(),r=e+a;(r<a||r+t>a+n)&&m.current.scrollTop(r-n/2+t/2)}}var u=n?"border rounded":"";return a.createElement(r.$B,{autoHeight:!0,autoHeightMax:o,className:u,hideTracksWhenNotNeeded:!0,ref:m},a.createElement("div",{className:"px-3 py-1"},t.timepoints.map((function(e,t){return a.createElement(f,{key:t,timepoint:e,goToTimepoint:n,selectedInteractionId:i,scrollTo:d,onClickDelete:c,getCorrectness:l,hasPlayPageV2:s})}))))}},40178:(e,t,n)=>{n.d(t,{x:()=>a});var a=368},28972:(e,t,n)=>{var a;n.d(t,{w:()=>a}),function(e){e[e.Correct=0]="Correct",e[e.Incorrect=1]="Incorrect",e[e.AwaitingMarking=2]="AwaitingMarking",e[e.Answered=3]="Answered",e[e.UnAnswered=4]="UnAnswered",e[e.NotApplicable=5]="NotApplicable"}(a||(a={}))},41630:(e,t,n)=>{n.d(t,{X:()=>C});var a=n(32735),r=n(44645),i=n(17327),o=n.n(i),c=n(56050),l=n(23481),s=n(81886),m=n(2786),d=n(93264),u=n(40424);const p={worksheet:"Bv47P",interaction:"efkgi",timepointCell:"ffoDR",interactionCell:"rKBEu",checkbox:"ilhe4",multipleChoiceAnswer:"TqhFx",shortAnswerTextArea:"voJCM",image:"go2dV",cvLogo:"Z4GOw",copyright:"petLf"};function g(e){return g="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},g(e)}function v(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=g(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var a=n.call(e,"string");if("object"!=g(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==g(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var f=/{([^{}]*)}/g;function E(e){return a.createElement("div",{className:"mb-2"},e.interaction.name)}function y(e){return a.createElement(a.Fragment,null,a.createElement(E,{interaction:e.interaction}),a.createElement("table",null,a.createElement("tbody",null,e.interaction.actionableItems.map((function(e){return a.createElement("tr",{key:e.id},a.createElement("td",null,a.createElement("div",{className:"border ".concat(p.checkbox)})),a.createElement("td",{className:"break-word align-top"},a.createElement("div",{className:p.multipleChoiceAnswer},e.name)))})))))}var h=v(v(v(v(v(v({},u.Z9.Annotation,(function(e){return a.createElement("div",{dangerouslySetInnerHTML:{__html:e.interaction.data.annotation}})})),u.Z9.Image,(function(e){return a.createElement(a.Fragment,null,a.createElement(E,{interaction:e.interaction}),a.createElement("img",{className:p.image,src:e.interaction.data.url}))})),u.Z9.MissingWord,(function(e){var t=e.interaction.data.sentence.replace(f,(function(t,n){var a=2*e.interaction.actionableItems.find((function(e){return e.order.toString()===n})).name.length;return Array(a+1).join("_")}));return a.createElement("div",null,t)})),u.Z9.MultipleChoice,y),u.Z9.TrueOrFalse,y),u.Z9.ShortAnswer,(function(e){return a.createElement(a.Fragment,null,a.createElement(E,{interaction:e.interaction}),a.createElement("div",{className:"border w-100 ".concat(p.shortAnswerTextArea)}))})),w=l.T.encloseNamespace("interactives.printableInteractiveWorksheet");function b(e){var t=h[e.interaction.typeId];return t?a.createElement("tr",{className:p.interaction},a.createElement("td",{className:"align-top ".concat(p.timepointCell)},d.T.ToDisplayDuration(e.visibleAt)),a.createElement("td",{className:"break-word ".concat(p.interactionCell)},a.createElement(t,{interaction:e.interaction}))):a.createElement(a.Fragment,null)}function N(e){return a.createElement(a.Fragment,null,e.interactive.timepoints.map((function(e,t){return e.interactions.map((function(n,r){return a.createElement(b,{key:"".concat(t,":").concat(r),interaction:n,visibleAt:e.visibleAt})}))})))}function k(e){var t=(new Date).getFullYear();return a.createElement("div",{id:e.worksheetElementId,className:p.worksheet},a.createElement("div",{className:"row pb-2"},a.createElement("div",{className:"col-6"},w("name")," ______________________________"),a.createElement("div",{className:"col-6"},w("date")," ______________________________")),a.createElement("h1",null,a.createElement("strong",null,w("questionSheet"),":")," ",e.interactive.name),a.createElement("table",null,a.createElement("tbody",null,a.createElement(N,{interactive:e.interactive}))),a.createElement("div",{className:p.cvLogo},a.createElement(m.$S,null)),e.isClickViewContent&&a.createElement("span",{className:p.copyright},w("copyright",{year:t})))}var _=l.T.encloseNamespace("interactives.utils");function C(e,t,n){var i=document.getElementById("print-region");if(i||s.Q.Ry.throw(new c.H("Could not find print region in layout")),e){var l="printable-interactive-".concat(e.id),m=(0,r.s)(i);m.render(a.createElement("div",{className:"d-none"},a.createElement(k,{worksheetElementId:l,interactive:e,isClickViewContent:t}))),window.setTimeout((function(){o()({printable:l,type:"html",documentTitle:_("worksheetTitle",{interactiveName:e.name}),targetStyles:["*"],style:"@page { size: A4; margin: 1.5cm 0; }",onLoadingEnd:function(){n&&n(),m.unmount()},font_size:"14px"})}),200)}}},74690:(e,t,n)=>{n.r(t),n.d(t,{PreviewQuestionsView:()=>b});var a=n(32735),r=n(23481),i=n(20354),o=n(28400),c=n(65858),l=n(83657),s=n(80181),m=n(9111),d=n(13876),u=n(40178),p=n(20768),g=n(35223),v=n(14070),f=n(97291),E=n(41630);const y={printBtn:"VWlur"};function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var w=r.T.encloseNamespace("interactives.previewQuestions");function b(e){var t,n,r,b,N,k=(b=a.useState(!1),N=2,function(e){if(Array.isArray(e))return e}(b)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,c=[],l=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=i.call(n)).done)&&(c.push(a.value),c.length!==t);l=!0);}catch(e){s=!0,r=e}finally{try{if(!l&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw r}}return c}}(b,N)||function(e,t){if(e){if("string"==typeof e)return h(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?h(e,t):void 0}}(b,N)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),_=k[0],C=k[1],T=i.a.useBasicFetch(p.b.interactiveMetadata(e.id)),I=i.a.useBasicFetch(T.data?p.b.interactive(T.data.interactiveId):null),S=null;T.data&&(S={id:T.data.id,interactiveId:T.data.interactiveId,name:T.data.name},(null===(t=T.data._parentVideo)||void 0===t?void 0:t.id)&&(S.video={id:T.data._parentVideo.id}),(null===(n=T.data._parentClip)||void 0===n?void 0:n.id)&&(S.clip={id:T.data._parentClip.id}));var A=[{label:w("watchInteractive"),className:"btn btn-outline-dark me-2",svgName:g.vn.Play,button:!0,appLink:{application:f.O.INTERACTIVES,action:v.e.Interactives.VIEW_INTERACTIVE,args:[e.id,o.m.slugify(null===(r=I.data)||void 0===r?void 0:r.name)]},onClick:e.closePopup,analyticsData:S,analyticsOptions:{entity:c.py.Interactive,actionType:c.Vw.Click,location:c.LZ.PreviewInteractiveQuestions,descriptor:c._S.Button}},{label:w("printAsWorksheet"),className:"btn btn-outline-dark ".concat(y.printBtn),svgName:g.vn.Print,button:!0,onClick:function(){var e;C(!0),(0,E.X)(I.data,null===(e=T.data._isClickViewCurated)||void 0===e?void 0:e.value,(function(){return C(!1)}))},showSpinner:_,analyticsData:S,analyticsOptions:{entity:c.py.Interactive,actionType:c.Vw.Print,location:c.LZ.PreviewInteractiveQuestions,workflowPhase:c.eu.Start,eventVersion:c.eq.V2}}];return a.createElement(m.G,{title:w("mainTitle"),closePopup:e.closePopup,showLoadingSpinner:!I.data,size:"lg"},I.data?a.createElement(a.Fragment,null,a.createElement(s.Z,{interactive:I.data,maxHeight:u.x}),a.createElement(d.u,null,a.createElement(l.e,{actions:A}))):a.createElement(a.Fragment,null))}}}]);
2
+ //# sourceMappingURL=4690-d64efe8020-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/4690-d64efe8020-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/actions/Actions.tsx","file:///app/packages/libs/shared/src/components/actions/actions.scss","file:///app/packages/libs/shared/src/components/actions/ActionsDropdown.tsx","file:///app/packages/libs/shared/src/components/interactive-questions/interactive-questions.scss","file:///app/packages/libs/shared/src/components/interactive-questions/InteractiveQuestions.tsx","file:///app/packages/libs/shared/src/constants/MinimumGlanceHeight.ts","file:///app/packages/libs/shared/src/enums/InteractionCorrectness.ts","file:///app/packages/projects/lite/src/apps/interactives/components/printable-interactive-worksheet/printable-interactive-worksheet.scss","file:///app/packages/projects/lite/src/apps/interactives/components/printable-interactive-worksheet/PrintableInteractionContent.tsx","file:///app/packages/projects/lite/src/apps/interactives/components/printable-interactive-worksheet/PrintableInteractiveWorksheet.tsx","file:///app/packages/projects/lite/src/apps/interactives/utils/PrintInteractive.tsx","file:///app/packages/projects/lite/src/apps/interactives/views/preview-questions/preview-questions.scss","file:///app/packages/projects/lite/src/apps/interactives/views/preview-questions/PreviewQuestionsView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { BaseObject } from 'libs/shared/interfaces';\n\nimport { ActionButton } from './ActionButton';\nimport { ActionsDropdown } from './ActionsDropdown';\n\nexport interface ActionOptions {\n order?: number;\n label?: string | (() => JSX.Element);\n appLink?: Core.AppLink;\n href?: string;\n onClick?: () => void;\n svgName?: string;\n className?: string;\n button?: boolean; // If true, a button will be rendered. Otherwise the action will be rendered in the dropdown.\n tooltip?: string;\n showSpinner?: boolean;\n showBorder?: boolean; // only works for button without text label\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n disabled?: boolean;\n openInNewTab?: boolean; // Only used if appLink or href is provided\n group?: string;\n lazyPlaceholder?: boolean;\n}\n\nexport type ActionGenerator = (obj: BaseObject) => ActionOptions[];\n\ninterface ActionsProps {\n actions: ActionOptions[];\n className?: string;\n actionsDropdownClassName?: string;\n dropdownToggleSvgSize?: SvgContainerSize;\n sortComponent?: JSX.Element;\n customSize?: boolean;\n fetchMore?: () => void;\n}\n\nexport function Actions(props: ActionsProps): JSX.Element {\n const orderedActions = React.useMemo(() => props.actions.sort((a, b) => a.order - b.order), [props.actions]);\n\n const buttonActions: ActionOptions[] = [];\n const moreActions: ActionOptions[] = [];\n\n orderedActions.forEach(a => {\n if (a.button)\n buttonActions.push(a);\n else\n moreActions.push(a);\n });\n\n let className = 'd-flex';\n\n if (props.className)\n className += ` ${props.className}`;\n\n if (!buttonActions.length && !moreActions.length)\n return <></>;\n\n return (\n <div className={className}>\n {buttonActions.length ? buttonActions.map((a, idx) => (\n <React.Fragment key={idx}>\n {(() => {\n if (a.label) {\n const label = FunctionHelper.isFunction(a.label)\n ? a.label\n : () => <>{a.label}</>;\n\n return (\n <ActionButton\n appLink={a.appLink}\n href={a.href}\n onClick={a.onClick}\n svgName={a.svgName}\n svgSize={props.dropdownToggleSvgSize}\n className={a.className}\n tooltip={a.tooltip}\n showSpinner={a.showSpinner}\n analyticsData={a.analyticsData}\n analyticsOptions={a.analyticsOptions}\n openInNewTab={a.openInNewTab}\n disabled={a.disabled}\n >\n {label()}\n </ActionButton>\n );\n }\n\n const iconButton = (\n <IconButton\n appLink={a.appLink}\n href={a.href}\n onClick={a.onClick}\n svgName={a.svgName}\n className={a.className}\n analyticsData={a.analyticsData}\n analyticsOptions={a.analyticsOptions}\n openInNewTab={a.openInNewTab}\n disabled={a.disabled}\n showBorder={a.showBorder}\n customSize={props.customSize}\n />\n );\n\n return a.tooltip\n ? <Tooltip title={a.tooltip} spanHack>{iconButton}</Tooltip>\n : iconButton;\n })()}\n </React.Fragment>\n )) : <></>}\n {props.sortComponent && props.sortComponent}\n {moreActions.length ? (\n <ActionsDropdown\n actions={moreActions}\n dropdownToggleClassName={props.actionsDropdownClassName}\n dropdownToggleSvgSize={props.dropdownToggleSvgSize}\n fetchMore={props.fetchMore}\n />\n ) : <></>}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"dropdownToggle\":\"UCAnJ\"};","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { RandomHelper } from 'libs/common/react/utils/RandomHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ActionOptions } from './Actions';\n\nimport styles from './actions.scss';\n\nfunction LazyDropdownItems(): JSX.Element {\n return (\n <>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '8rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '12rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '11rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '9rem' }}></div>\n </div>\n </>\n );\n}\n\nfunction getDropdownItemClassName(actionClassName?: string): string {\n let className = 'dropdown-item';\n\n if (actionClassName)\n className += ` ${actionClassName}`;\n\n return className;\n}\n\nexport type DropdownActionOptions = Omit<ActionOptions, 'button'>;\n\ninterface ActionsDropdownItemProps {\n action: DropdownActionOptions;\n}\n\nfunction ActionsDropdownItem(props: ActionsDropdownItemProps): React.ReactElement {\n const label = FunctionHelper.isFunction(props.action.label)\n ? props.action.label\n : () => <>{props.action.label}</>;\n\n if (props.action.appLink)\n return (\n <AppLink\n appLink={props.action.appLink}\n onClick={props.action.onClick}\n className={getDropdownItemClassName(props.action.className)}\n analyticsData={props.action.analyticsData}\n analyticsOptions={props.action.analyticsOptions}\n openInNewTab={props.action.openInNewTab}\n disabled={props.action.disabled}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2 align-middle' />}\n <span className='align-middle'>{label()}</span>\n </AppLink>\n );\n\n function onClick(e: React.MouseEvent | React.KeyboardEvent): void {\n e.preventDefault();\n\n if (props.action.analyticsData && props.action.analyticsOptions)\n AnalyticsHelper.logUserAction(props.action.analyticsData, props.action.analyticsOptions);\n\n if (FunctionHelper.isFunction(props.action.onClick))\n props.action.onClick();\n\n if (props.action.href)\n Core.LocationUtils.PageLoad(props.action.href, props.action.openInNewTab);\n }\n\n if (props.action.href) {\n return (\n <a\n className={getDropdownItemClassName(props.action.className)}\n onClick={onClick}\n href={props.action.href}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2 align-middle' />}\n <span className='align-middle'>{label()}</span>\n </a>\n );\n }\n\n return (\n <span\n className={`cursor-pointer ${getDropdownItemClassName(props.action.className)}`}\n onClick={onClick}\n role='button'\n tabIndex={0}\n onKeyDown={(e: React.KeyboardEvent) => e.key === 'Enter' && onClick(e)}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2' />}\n {label()}\n </span>\n );\n}\n\ninterface ActionsDropdownProps {\n actions: DropdownActionOptions[];\n className?: string;\n dropdownToggleClassName?: string;\n dropdownToggleSvgSize?: SvgContainerSize;\n fetchMore?: () => void;\n}\n\nActionsDropdown.defaultProps = {\n dropdownToggleClassName: 'btn btn-light',\n dropdownToggleSvgSize: SvgContainerSize.Small\n};\n\nexport function ActionsDropdown(props: ActionsDropdownProps): React.ReactElement {\n if (!props.actions || !props.actions.length)\n return <></>;\n\n const isLazy = props.actions.some(a => a.lazyPlaceholder);\n\n let className = 'dropdown';\n\n if (props.className)\n className += ` ${props.className}`;\n\n // Generate unique id to avoid collisions.\n const dropdownToggleId = `actions-dropdown-${RandomHelper.getRandomInt()}`;\n\n let dropdownToggleClassName = `dropdown-toggle px-0 ${styles.dropdownToggle}`;\n\n if (props.dropdownToggleClassName)\n dropdownToggleClassName += ` ${props.dropdownToggleClassName}`;\n\n let currentGroup: string;\n\n return (\n <div className={className}>\n <button\n className={dropdownToggleClassName}\n type='button'\n id={dropdownToggleId}\n data-bs-toggle='dropdown'\n data-toggle='dropdown'\n aria-haspopup='true'\n aria-expanded='false'\n aria-label={'More actions dropdown'}\n onClick={isLazy ? props.fetchMore : null}\n >\n <SvgContainer svgName={cvSvgLibrary.More} size={props.dropdownToggleSvgSize} />\n </button>\n <ul className='dropdown-menu dropdown-menu-end dropdown-menu-right font-size-normal' aria-labelledby={dropdownToggleId}>\n {isLazy ?\n <LazyDropdownItems /> :\n props.actions.map((a, idx) => {\n const showDivider = currentGroup !== undefined && currentGroup !== a.group;\n currentGroup = a.group;\n \n if (a.tooltip) {\n return (\n <li key={idx}>\n {showDivider && <hr className='dropdown-divider' role='separator'></hr>}\n <Tooltip title={a.tooltip} spanHack>\n <ActionsDropdownItem action={a} />\n </Tooltip>\n \n </li>\n );\n }\n \n return (\n <li key={idx}>\n {showDivider && <hr className='dropdown-divider' role='separator'></hr>}\n <ActionsDropdownItem action={a} />\n </li>\n );\n })\n }\n </ul>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"timeTag\":\"ShZvf\",\"selected\":\"tfrDf\",\"hide\":\"FHzDr\",\"time\":\"JDp5N\",\"type\":\"AzIWg\",\"question\":\"UhEYq\",\"deleteContainer\":\"wBqoo\",\"delete\":\"OAQQu\",\"correctness\":\"W5sR9\",\"row\":\"sGk59\"};","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { InteractionCorrectness } from 'libs/shared/enums/InteractionCorrectness';\nimport { Interaction, Interactive, Timepoint } from 'libs/shared/interfaces';\nimport { DurationHelper } from 'libs/shared/utils/DurationHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { InteractionLabel } from './InteractionLabel';\n\nimport styles from './interactive-questions.scss';\n\nconst namespace = 'shared.interactiveQuestions';\n\ninterface CorrectnessProps {\n interaction: Interaction;\n getCorrectness?: (interaction: Interaction) => InteractionCorrectness;\n}\n\nfunction Correctness(props: CorrectnessProps): React.ReactElement {\n const { interaction, getCorrectness } = props;\n\n const correctness = getCorrectness(interaction);\n\n switch (correctness) {\n case InteractionCorrectness.Correct:\n return <span className='text-success'><SvgContainer size={SvgContainerSize.Medium} svgName={cvSvgLibrary.Check} /></span>;\n case InteractionCorrectness.Incorrect:\n return <span className='text-danger'><SvgContainer size={SvgContainerSize.Medium} svgName={cvSvgLibrary.Close} /></span>;\n case InteractionCorrectness.AwaitingMarking:\n return <span className='text-secondary italic'><i><Text namespace={namespace} phrase='pending' /></i></span>;\n case InteractionCorrectness.UnAnswered:\n return <button className='btn btn-outline-dark'><Text namespace={namespace} phrase='answer' /></button>;\n case InteractionCorrectness.Answered:\n return <span className='text-secondary italic'><i><Text namespace={namespace} phrase='answered' /></i></span>;\n case InteractionCorrectness.NotApplicable:\n return <></>;\n }\n}\n\ninterface InteractionComponentProps {\n interaction: Interaction;\n visibleAt: number;\n hasPlayPageV2?: boolean;\n goToTimepoint: (interactionId: string) => void;\n onClickDelete?: (interactionId: string) => void;\n scrollTo: (offset: number, height: number) => void;\n selectedInteractionId: string;\n isFirstInteraction: boolean;\n getCorrectness?: (interaction: Interaction) => InteractionCorrectness;\n}\n\nfunction InteractionComponent(props: InteractionComponentProps): React.ReactElement {\n const {\n interaction,\n visibleAt,\n selectedInteractionId,\n goToTimepoint,\n scrollTo,\n isFirstInteraction,\n hasPlayPageV2\n } = props;\n\n const selected = interaction.id.toString() === selectedInteractionId?.toString();\n\n const ref = React.useRef<HTMLDivElement>();\n\n React.useEffect(() => {\n if (!selected)\n return;\n\n if (!ref.current)\n return;\n\n const el = ref.current;\n const rect = el.getBoundingClientRect();\n const offset = rect.top - el.offsetParent.getBoundingClientRect().top;\n\n scrollTo(offset, rect.height);\n }, [selected]);\n\n function onClick(): void {\n goToTimepoint && goToTimepoint(interaction.id);\n }\n\n function onClickDelete(event: React.MouseEvent): void {\n event.stopPropagation();\n\n props.onClickDelete(interaction.id);\n }\n\n /**\n * Don't have a cursor if there is no callback function.\n * i.e. when rendered in a popup\n */\n const cursor = goToTimepoint ? 'cursor-pointer' : 'cursor-default';\n\n return (\n <div ref={ref}>\n <DivButton className={`py-2 ${cursor} ${styles.row} ${selected ? styles.selected : ''}`} onClick={selected ? () => {} : onClick}>\n {hasPlayPageV2 ? (\n <div className={`me-3 d-inline-flex rounded-pill justify-content-center align-items-center info-link fw-semibold ${styles.timeTag} ${isFirstInteraction ? '' : styles.hide} ${selected ? styles.selected : ''}`}>\n {isFirstInteraction ? DurationHelper.ToDisplayDuration(visibleAt) : ''}\n </div>\n ) : (\n <span className={`${styles.time} me-2 ${selected ? 'fw-bold' : ''}`}>{isFirstInteraction ? DurationHelper.ToDisplayDuration(visibleAt) : ''}</span>\n )}\n\n <InteractionLabel\n interaction={interaction}\n showTypeName\n typeNameClassName={styles.type}\n questionClassName={styles.question}\n />\n {props.onClickDelete && (\n <DivButton onClick={onClickDelete} className={`${styles.deleteContainer}`}>\n <span className={`text-end ${styles.delete}`}>\n <SvgContainer\n size={SvgContainerSize.Medium}\n svgName={cvSvgLibrary.Delete}\n />\n </span>\n </DivButton>\n )}\n {props.getCorrectness && (\n <span className={`text-end ${styles.correctness}`}>\n <Correctness interaction={interaction} getCorrectness={props.getCorrectness} />\n </span>\n )}\n </DivButton>\n </div>\n );\n}\n\ninterface TimepointComponentProps {\n timepoint: Timepoint;\n hasPlayPageV2?: boolean;\n goToTimepoint?: (timepointId: string, interactionId: string) => void;\n selectedInteractionId?: string;\n scrollTo?: (offset: number, height: number) => void;\n onClickDelete?: (interactionId: string) => void;\n getCorrectness?: (interaction: Interaction) => InteractionCorrectness;\n}\n\nexport function TimepointComponent(props: TimepointComponentProps): React.ReactElement {\n const {\n timepoint,\n scrollTo,\n onClickDelete,\n selectedInteractionId,\n getCorrectness,\n hasPlayPageV2\n } = props;\n\n function goToTimepoint(interactionId: string): void {\n props.goToTimepoint(timepoint.id, interactionId);\n }\n\n if (!timepoint.interactions)\n return <></>;\n\n return (\n <div>\n {timepoint.interactions.map((interaction, i) => (\n <InteractionComponent\n interaction={interaction}\n visibleAt={timepoint.visibleAt}\n goToTimepoint={props.goToTimepoint && goToTimepoint}\n onClickDelete={onClickDelete}\n scrollTo={scrollTo}\n selectedInteractionId={selectedInteractionId}\n isFirstInteraction={i === 0}\n getCorrectness={getCorrectness}\n key={i}\n hasPlayPageV2={hasPlayPageV2}\n />\n ))\n }\n </div>\n );\n}\n\nexport interface InteractiveQuestionProps {\n interactive: Interactive;\n goToTimepoint?: (timepointId: string, interactionId: string) => void;\n selectedInteractionId?: string;\n maxHeight: number;\n hasPlayPageV2?: boolean;\n onClickDelete?: (interactionId: string) => void;\n getCorrectness?: (interaction: Interaction) => InteractionCorrectness;\n}\n\nexport function InteractiveQuestions(props: InteractiveQuestionProps): React.ReactElement {\n const {\n interactive,\n goToTimepoint,\n selectedInteractionId,\n maxHeight,\n onClickDelete,\n getCorrectness,\n hasPlayPageV2\n } = props;\n\n const ref = React.useRef<Scrollbars>();\n\n function scrollTo(offset: number, elHeight: number): void {\n if (!ref.current)\n return;\n\n const height = ref.current.getClientHeight();\n const scroll = ref.current.getScrollTop();\n const elementFromTop = offset + scroll;\n\n /**\n * Element is above scroll window if it's distance from the top\n * is less than the scroll\n */\n const isAboveScrollWindow = elementFromTop < scroll;\n\n /**\n * Element is beneath scroll window if it's distance from the top\n * plus it's height is greater than the scroll plus the window height\n */\n const isBelowScrollWindow = (elementFromTop + elHeight) > (scroll + height);\n\n /**\n * So we don't scroll if our element is visible\n */\n if (!isAboveScrollWindow && !isBelowScrollWindow)\n return;\n\n /**\n * If our element isn't visible, we want to try scroll so the element is\n * centered in our viewport\n */\n ref.current.scrollTop(elementFromTop - (height / 2) + (elHeight / 2));\n }\n\n const borderClass = goToTimepoint ? 'border rounded' : '';\n\n return (\n <Scrollbars\n autoHeight\n autoHeightMax={maxHeight}\n className={borderClass}\n hideTracksWhenNotNeeded={true}\n ref={ref}\n >\n <div className='px-3 py-1'>\n {interactive.timepoints.map((t, i) => (\n <TimepointComponent\n key={i}\n timepoint={t}\n goToTimepoint={goToTimepoint}\n selectedInteractionId={selectedInteractionId}\n scrollTo={scrollTo}\n onClickDelete={onClickDelete}\n getCorrectness={getCorrectness}\n hasPlayPageV2={hasPlayPageV2}\n />\n ))\n }\n </div>\n </Scrollbars>\n );\n}\n","// 368 is the min height of Video at a glance which is defined as $glanceHeight in synopsis.scss\nexport const MINIMUM_GLANCE_HEIGHT = 368; // px","export enum InteractionCorrectness {\n Correct,\n Incorrect,\n AwaitingMarking,\n \n Answered,\n UnAnswered,\n NotApplicable\n}","// extracted by mini-css-extract-plugin\nexport default {\"worksheet\":\"Bv47P\",\"interaction\":\"efkgi\",\"timepointCell\":\"ffoDR\",\"interactionCell\":\"rKBEu\",\"checkbox\":\"ilhe4\",\"multipleChoiceAnswer\":\"TqhFx\",\"shortAnswerTextArea\":\"voJCM\",\"image\":\"go2dV\",\"cvLogo\":\"Z4GOw\",\"copyright\":\"petLf\"};","import React from 'react';\n\nimport { Interaction, InteractionTypeId } from 'libs/shared/interfaces';\n\nimport styles from './printable-interactive-worksheet.scss';\n\nconst MISSING_WORD_REGEX = /{([^{}]*)}/g;\n\ninterface PrintableInteractionContentProps {\n interaction: Interaction;\n}\n\nfunction InteractionName(props: PrintableInteractionContentProps): JSX.Element {\n return (\n <div className='mb-2'>{props.interaction.name}</div>\n );\n}\n\nfunction AnnotationInteraction(props: PrintableInteractionContentProps): JSX.Element {\n return (\n <div dangerouslySetInnerHTML={{ __html: props.interaction.data.annotation }}></div>\n );\n}\n\nfunction ImageInteraction(props: PrintableInteractionContentProps): JSX.Element {\n return (\n <>\n <InteractionName interaction={props.interaction} />\n <img className={styles.image} src={props.interaction.data.url} />\n </>\n );\n}\n\nfunction MissingWordInteraction(props: PrintableInteractionContentProps): JSX.Element {\n function replaceMissingWord(match: string, val: string): string {\n const actionableItem = props.interaction.actionableItems.find(a => a.order.toString() === val);\n const width = 2 * actionableItem.name.length;\n return Array(width + 1).join('_');\n }\n\n const formatted = (props.interaction.data.sentence as string).replace(MISSING_WORD_REGEX, replaceMissingWord);\n\n return (\n <div>{formatted}</div>\n );\n}\n\nfunction MultipleChoiceInteraction(props: PrintableInteractionContentProps): JSX.Element {\n return (\n <>\n <InteractionName interaction={props.interaction} />\n <table>\n <tbody>\n {props.interaction.actionableItems.map(a => (\n <tr key={a.id}>\n <td>\n <div className={`border ${styles.checkbox}`} />\n </td>\n <td className='break-word align-top'>\n <div className={styles.multipleChoiceAnswer}>\n {a.name}\n </div>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </>\n );\n}\n\nfunction ShortAnswerInteractive(props: PrintableInteractionContentProps): JSX.Element {\n return (\n <>\n <InteractionName interaction={props.interaction} />\n <div className={`border w-100 ${styles.shortAnswerTextArea}`} />\n </>\n );\n}\n\nexport const PrintableInteractionComponentLookup: {\n [typeId: number]: (props: PrintableInteractionContentProps) => JSX.Element\n} = {\n [InteractionTypeId.Annotation]: AnnotationInteraction,\n [InteractionTypeId.Image]: ImageInteraction,\n [InteractionTypeId.MissingWord]: MissingWordInteraction,\n [InteractionTypeId.MultipleChoice]: MultipleChoiceInteraction,\n [InteractionTypeId.TrueOrFalse]: MultipleChoiceInteraction,\n [InteractionTypeId.ShortAnswer]: ShortAnswerInteractive\n};\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ClickViewLogo } from 'libs/shared/components/svgs/clickview-logo/ClickViewLogo';\nimport { Interaction, Interactive } from 'libs/shared/interfaces';\nimport { DurationHelper } from 'libs/shared/utils/DurationHelper';\n\nimport { PrintableInteractionComponentLookup } from './PrintableInteractionContent';\n\nimport styles from './printable-interactive-worksheet.scss';\n\nconst getPhrase = LanguageService.encloseNamespace('interactives.printableInteractiveWorksheet');\n\ninterface PrintableInteractionProps {\n interaction: Interaction;\n visibleAt: number;\n}\n\nfunction PrintableInteraction(props: PrintableInteractionProps): JSX.Element {\n const InteractionComponent = PrintableInteractionComponentLookup[props.interaction.typeId];\n\n if (!InteractionComponent)\n return <></>;\n\n return (\n <tr className={styles.interaction}>\n <td className={`align-top ${styles.timepointCell}`}>\n {DurationHelper.ToDisplayDuration(props.visibleAt)}\n </td>\n <td className={`break-word ${styles.interactionCell}`}>\n <InteractionComponent interaction={props.interaction} />\n </td>\n </tr>\n );\n}\n\ninterface PrintableInteractiveQuestionsProps {\n interactive: Interactive;\n}\n\nfunction PrintableInteractiveQuestions(props: PrintableInteractiveQuestionsProps): JSX.Element {\n return (\n <>\n {props.interactive.timepoints.map((timepoint, i) => (\n timepoint.interactions.map((interaction, j) => (\n <PrintableInteraction key={`${i}:${j}`} interaction={interaction} visibleAt={timepoint.visibleAt} />\n ))\n ))}\n </>\n );\n}\n\ninterface PrintableInteractiveWorksheetProps {\n worksheetElementId: string;\n interactive: Interactive;\n isClickViewContent: boolean;\n}\n\nexport function PrintableInteractiveWorksheet(props: PrintableInteractiveWorksheetProps): JSX.Element {\n const year = (new Date()).getFullYear();\n\n return (\n <div id={props.worksheetElementId} className={styles.worksheet}>\n <div className='row pb-2'>\n <div className='col-6'>{getPhrase('name')} ______________________________</div>\n <div className='col-6'>{getPhrase('date')} ______________________________</div>\n </div>\n <h1>\n <strong>{getPhrase('questionSheet')}:</strong> {props.interactive.name}\n </h1>\n <table>\n <tbody>\n <PrintableInteractiveQuestions interactive={props.interactive} />\n </tbody>\n </table>\n <div className={styles.cvLogo}>\n <ClickViewLogo />\n </div>\n {props.isClickViewContent &&\n <span className={styles.copyright}>{getPhrase('copyright', { year })}</span>\n }\n </div>\n );\n}\n","import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport printJS from 'print-js';\n\nimport { DevError } from 'libs/common/backbone/errors/DevError';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { Interactive } from 'libs/shared/interfaces';\n\nimport { PrintableInteractiveWorksheet } from 'apps/interactives/components/printable-interactive-worksheet/PrintableInteractiveWorksheet';\n\nconst getPhrase = LanguageService.encloseNamespace('interactives.utils');\n\nexport function printInteractive(interactive: Interactive, isCVContent: boolean, onDone?: () => void): void {\n const printRegion = document.getElementById('print-region');\n\n if (!printRegion)\n Core.ErrorHelper.throw(new DevError('Could not find print region in layout'));\n\n if (!interactive)\n return;\n\n const worksheetElementId = `printable-interactive-${interactive.id}`;\n\n const root = createRoot(printRegion);\n\n function print(): void {\n printJS({\n printable: worksheetElementId,\n type: 'html',\n documentTitle: getPhrase('worksheetTitle', { interactiveName: interactive.name }),\n targetStyles: ['*'],\n style: '@page { size: A4; margin: 1.5cm 0; }',\n onLoadingEnd: () => {\n onDone && onDone();\n root.unmount();\n },\n /**\n * font_size is deprecated but a bug in print.js still applies the default (12pt) if it\n * is omitted, overriding any custom/inline styles. \n * This value is the same as the one found in in .worksheet in printable-interactive-worksheet.scss\n */\n font_size: '14px'\n });\n }\n\n root.render(\n <div className='d-none'>\n <PrintableInteractiveWorksheet\n worksheetElementId={worksheetElementId}\n interactive={interactive}\n isClickViewContent={isCVContent}\n />\n </div>\n );\n\n window.setTimeout(() => {\n print();\n }, 200);\n}","// extracted by mini-css-extract-plugin\nexport default {\"printBtn\":\"VWlur\"};","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { ClickDescriptor, EntityType, EventVersion, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { ActionOptions, Actions as ActionButtons } from 'libs/shared/components/actions/Actions';\nimport { InteractiveQuestions } from 'libs/shared/components/interactive-questions/InteractiveQuestions';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { MINIMUM_GLANCE_HEIGHT } from 'libs/shared/constants/MinimumGlanceHeight';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { Interactive, InteractiveMetadata, PopupViewProps } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { printInteractive } from 'apps/interactives/utils/PrintInteractive';\n\nconst getPhrase = LanguageService.encloseNamespace('interactives.previewQuestions');\n\nimport styles from './preview-questions.scss';\n\n\ninterface PreviewQuestionsViewProps extends PopupViewProps {\n id: string;\n}\n\nexport function PreviewQuestionsView(props: PreviewQuestionsViewProps): React.ReactElement {\n const [ showPrintButtonSpinner, setShowPrintButtonSpinner ] = React.useState(false);\n\n const interactiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(\n InteractiveRequests.interactiveMetadata(props.id)\n );\n\n const interactive = Flight.useBasicFetch<Interactive>(interactiveMetadata.data ?\n InteractiveRequests.interactive(interactiveMetadata.data.interactiveId) : null);\n\n let analyticsData: HashObject = null;\n\n if (interactiveMetadata.data) {\n analyticsData = {\n id: interactiveMetadata.data.id,\n interactiveId: interactiveMetadata.data.interactiveId,\n name: interactiveMetadata.data.name\n };\n\n if (interactiveMetadata.data._parentVideo?.id)\n analyticsData.video = { id: interactiveMetadata.data._parentVideo.id };\n\n if (interactiveMetadata.data._parentClip?.id)\n analyticsData.clip = { id: interactiveMetadata.data._parentClip.id };\n }\n\n const actions: ActionOptions[] = [\n {\n label: getPhrase('watchInteractive'),\n className: 'btn btn-outline-dark me-2',\n svgName: cvSvgLibrary.Play,\n button: true,\n appLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.VIEW_INTERACTIVE,\n args: [ props.id, TextHelper.slugify(interactive.data?.name) ]\n },\n onClick: props.closePopup,\n analyticsData,\n analyticsOptions: {\n entity: EntityType.Interactive,\n actionType: UserAction.Click,\n location: LocationContext.PreviewInteractiveQuestions,\n descriptor: ClickDescriptor.Button\n }\n },\n {\n label: getPhrase('printAsWorksheet'),\n className: `btn btn-outline-dark ${styles.printBtn}`,\n svgName: cvSvgLibrary.Print,\n button: true,\n onClick: () => {\n setShowPrintButtonSpinner(true);\n printInteractive(\n interactive.data,\n interactiveMetadata.data._isClickViewCurated?.value,\n () => setShowPrintButtonSpinner(false)\n );\n },\n showSpinner: showPrintButtonSpinner,\n analyticsData,\n analyticsOptions: {\n entity: EntityType.Interactive,\n actionType: UserAction.Print,\n location: LocationContext.PreviewInteractiveQuestions,\n workflowPhase: WorkflowPhase.Start,\n eventVersion: EventVersion.V2\n }\n }\n ];\n\n return (\n <Popup\n title={getPhrase('mainTitle')}\n closePopup={props.closePopup}\n showLoadingSpinner={!interactive.data}\n size='lg'\n >\n {(() => {\n if (!interactive.data)\n return <></>;\n\n return (\n <>\n <InteractiveQuestions interactive={interactive.data} maxHeight={MINIMUM_GLANCE_HEIGHT} />\n <PopupButtons>\n <ActionButtons actions={actions} />\n </PopupButtons>\n </>\n );\n })()}\n </Popup>\n );\n}\n"],"names":["Actions","props","orderedActions","actions","sort","a","b","order","buttonActions","moreActions","forEach","button","push","className","length","map","idx","key","label","appLink","href","onClick","svgName","svgSize","dropdownToggleSvgSize","tooltip","showSpinner","analyticsData","analyticsOptions","openInNewTab","disabled","iconButton","showBorder","customSize","title","spanHack","sortComponent","dropdownToggleClassName","actionsDropdownClassName","fetchMore","LazyDropdownItems","style","padding","height","width","getDropdownItemClassName","actionClassName","ActionsDropdownItem","FunctionHelper","action","AppLink","SvgContainer","e","preventDefault","AnalyticsHelper","role","tabIndex","onKeyDown","ActionsDropdown","isLazy","some","lazyPlaceholder","currentGroup","dropdownToggleId","RandomHelper","type","id","size","showDivider","undefined","group","Tooltip","defaultProps","S","namespace","Correctness","interaction","getCorrectness","InteractionCorrectness","Text","phrase","InteractionComponent","visibleAt","selectedInteractionId","goToTimepoint","scrollTo","isFirstInteraction","hasPlayPageV2","selected","toString","ref","current","el","rect","getBoundingClientRect","offset","top","offsetParent","cursor","DivButton","DurationHelper","InteractionLabel","showTypeName","typeNameClassName","questionClassName","onClickDelete","event","stopPropagation","TimepointComponent","timepoint","interactionId","interactions","i","InteractiveQuestions","interactive","maxHeight","elHeight","getClientHeight","scroll","getScrollTop","elementFromTop","scrollTop","borderClass","autoHeight","autoHeightMax","hideTracksWhenNotNeeded","timepoints","t","MINIMUM_GLANCE_HEIGHT","MISSING_WORD_REGEX","InteractionName","name","MultipleChoiceInteraction","actionableItems","PrintableInteractionComponentLookup","dangerouslySetInnerHTML","__html","data","annotation","src","url","formatted","sentence","replace","match","val","find","Array","join","getPhrase","LanguageService","PrintableInteraction","typeId","PrintableInteractiveQuestions","j","PrintableInteractiveWorksheet","year","Date","getFullYear","worksheetElementId","ClickViewLogo","isClickViewContent","printInteractive","isCVContent","onDone","printRegion","document","getElementById","DevError","root","render","window","setTimeout","printable","documentTitle","interactiveName","targetStyles","onLoadingEnd","unmount","font_size","PreviewQuestionsView","showPrintButtonSpinner","setShowPrintButtonSpinner","interactiveMetadata","InteractiveRequests","interactiveId","_parentVideo","video","_parentClip","clip","application","args","TextHelper","closePopup","entity","actionType","location","descriptor","_isClickViewCurated","value","workflowPhase","eventVersion","Popup","showLoadingSpinner","PopupButtons"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[4850,4063],{96922:(e,t,n)=>{n.r(t),n.d(t,{SharedSeriesView:()=>c});var r=n(32735),i=n(81886),a=n(183),o=n(60696);function c(e){var t=i.Q.C$.getCurrentAppLink();return r.createElement(o.SeriesView,{key:e.objectId,id:e.objectId,shareId:e.shareId,getVideoAppLink:function(n){return Object.assign(Object.assign({},t),{params:{videoId:n.id,contextId:e.objectId,context:a.Q.Series}})}})}},60696:(e,t,n)=>{n.r(t),n.d(t,{SeriesView:()=>le});var r=n(32735),i=n(70680),a=n(23481),o=n(20354),c=n(65858),s=n(44522),u=n(49935),l=n(11607),d=n(83345),p=n(10038);const f={text:"wLJpg",seeMore:"x5t0p"};function v(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a,o,c=[],s=!0,u=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=a.call(n)).done)&&(c.push(r.value),c.length!==t);s=!0);}catch(e){u=!0,i=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(u)throw i}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return m(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var h="shared.expandableText";function b(e){var t,n,i=e.text,a=e.lines,o=void 0===a?2:a,c=v(r.useState(!1),2),s=c[0],u=c[1],m=r.useRef(null),b=r.useRef(0);r.useEffect((function(){m.current.clientHeight&&(b.current=m.current.clientHeight)}),[]);var g=v(r.useState((null===(t=m.current)||void 0===t?void 0:t.scrollHeight)>b.current),2),y=g[0],E=g[1];return(0,p.H)((function(){var e;m.current.clientHeight&&(b.current=m.current.clientHeight,E((null===(e=m.current)||void 0===e?void 0:e.scrollHeight)>b.current))})),r.useEffect((function(){var e,t;(null===(e=m.current)||void 0===e?void 0:e.scrollHeight)&&E((null===(t=m.current)||void 0===t?void 0:t.scrollHeight)>b.current)}),[null===(n=m.current)||void 0===n?void 0:n.scrollHeight,b.current]),r.createElement("div",{className:"d-flex overflow-hidden"},r.createElement("div",{className:"".concat(s?"":"clamp-".concat(o)," ").concat(f.text),ref:m},!s&&y&&r.createElement(l.L,{onClick:function(){return u(!0)},className:"ms-1 info-text hover-text-underline ".concat(f.seeMore)},r.createElement(d.x,{namespace:h,phrase:"seeMore"})),r.createElement("p",{className:"mb-0 d-inline"},i),s&&r.createElement(l.L,{onClick:function(){return u(!1)},className:"ms-1 info-text hover-text-underline d-inline"},r.createElement(d.x,{namespace:h,phrase:"seeLess"}))))}var g=n(71020),y=n(74696),E=n(13231),S=n(79718),k=n(7733),w=n(51365),I=n(16714),A=n(23788),L=n(21750),x=n(39151),j=n(1666),O=n(60011),C=n(31949),P=n(63719),T=n(56520),N=n(91286),F=n(60115),H=n(22902),_=n(79612),V=n(76753),G=n(35223),R=n(68140),B=n(14070),M=n(97291),U=n(64364);function D(e){return D="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},D(e)}function J(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Q(r.key),r)}}function Q(e){var t=function(e,t){if("object"!=D(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=D(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==D(t)?t:t+""}function W(e,t,n){return t=$(t),function(e,t){if(t&&("object"==D(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Z()?Reflect.construct(t,n||[],$(e).constructor):t.apply(e,n))}function Z(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Z=function(){return!!e})()}function $(e){return $=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},$(e)}function K(e,t){return K=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},K(e,t)}var q="shared.seriesNotFoundError",z=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),W(this,t,["Series doesn't exist"])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&K(e,t)}(t,e),n=t,(r=[{key:"name",get:function(){return"SeriesNotFoundError"}},{key:"heading",get:function(){return a.T.getPhrase(q,"heading")}},{key:"description",get:function(){return a.T.getPhrase(q,"description")}}])&&J(n.prototype,r),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r}(U.H),X=n(51855),Y=n(10671),ee=n(7179),te=n(27638),ne=n(44110),re=n(97816),ie=n(10741),ae=n(33192),oe=n(22490),ce=n(82431),se=a.T.encloseNamespace("shared.series"),ue=function(e){return k.o[e.name.charCodeAt(0)%k.o.length]};function le(e){var t,n,a,l,d=(0,i.I0)(),p=(0,te.u)(c.LZ.VideoThumbnail),f=p.setFavourite,v=p.canFavourite,m=(0,H.T)(),h=m.hasPermissions,k=m.hasLocalPermissions,U=(0,X.G)().isPlugin,D=(0,T.R0)(),J=D.openInCurationStudioLabel,Q=D.isUserCurator,W=D.getOpenInCurationStudioLink;(0,ee.P)({id:e.id,app:"series",shareId:e.shareId});var Z=o.a.useBasicFetch(x.L.config()),$=o.a.useBasicFetch(C.N.currentUser()),K=o.a.useBasicFetch((null===(t=$.data)||void 0===t?void 0:t.isAuthenticated)&&j.h.yearGroups($.data.customerId)),q=o.a.useBasicFetch(e.shareId?O.J.sharedSeries(e.id,e.shareId):O.J.series(e.id)),le=(0,ne.i)();(0,_.M)(V.CG.getSeriesMetadata({content:q.data,phraseContext:{phraseHandler:se,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"},canonicalLink:ae.f.getCanonicalLink({stripPresentationSlug:!0}),allowIndexing:ae.f.allowIndexing()}));var de=(0,Y._)({location:Y.i.VideoItem,shareId:e.shareId}),pe=o.a.useBasicFetch(e.classificationId&&L.x.path(e.classificationId));function fe(e){return!ae.f.isBot()||!e}function ve(t){var n;return fe(t)?O.J.seriesVideos(e.id,null===(n=$.data)||void 0===n?void 0:n.id,he,t):null}function me(e){return o.a.getFetch(d)(ve(e))}var he=!!$.data&&R.d.getOrSetSortType($.data.id,e.sort,A.D.Series),be={classificationId:e.classificationId,mtv:e.moviesAndTv},ge=(0,F.K)(!!$.data&&ve,me),ye=ge.items,Ee=ge.isFetching,Se=ge.nextCursor;(0,re.V)(ye),(0,N.v)(q,{notFound:z});var ke=!h(I.C.StudentExperience)&&k(I.E.UseSeriesActions),we=(0,P.h)({name:null===(n=q.data)||void 0===n?void 0:n.name});return r.createElement(w.M.Provider,{value:de},r.createElement("div",{className:"px-3"},Z.data&&q.data?r.createElement(s.p,{heading:q.data.name,banner:q.data.banner,imageCdnUrl:Z.data.imageCdnUrl,actions:function(){var e,t,n;if(U||!ke)return[];var r=[{label:se("share"),appLink:q&&{application:M.O.DEFAULT,action:B.e.Default.SHARE,args:[null===(e=q.data)||void 0===e?void 0:e.id],params:{entityType:"series"}},svgName:G.vn.Share2,className:"btn btn-outline-dark me-2",button:!0}];return Q&&r.push({label:J,href:W(null===(t=q.data)||void 0===t?void 0:t.typeId,null===(n=q.data)||void 0===n?void 0:n.id),openInNewTab:!0}),r}(),actionsDropdownClassName:"btn btn-outline-dark",blockColourClass:ue(q.data)}):r.createElement(s.v,null),r.createElement("div",null,r.createElement("div",{className:(null===(a=q.data)||void 0===a?void 0:a.description)||e.moviesAndTv&&pe.data?"border-bottom py-3 mb-3":"pt-3 mb-2"},!q.data||e.classificationId&&!pe.data?r.createElement(u.b2,null):r.createElement(u.Oo,{breadcrumbs:we}),r.createElement("div",{className:"d-flex align-items-center"},(null===(l=q.data)||void 0===l?void 0:l.description)&&r.createElement("div",{className:"mb-0 ".concat(e.classificationId?"pt-2":"")},r.createElement(b,{text:q.data.description})),q.data&&r.createElement("div",{className:"ms-auto"},r.createElement(S.p,{variant:"outline-dark",type:he,analyticsOptions:{location:c.LZ.VideoListHeader,entity:c.py.Video,actionType:c.Vw.Sort,workflowPhase:c.eu.Complete},getSortAppLink:function(e){return ce.j.getSeriesAppLink(q.data,Object.assign(Object.assign({},be),{sort:e}))}})))),ye?r.createElement(r.Fragment,null,r.createElement(E.E4,{videos:ye,yearGroups:K.data,getVideoAppLink:e.getVideoAppLink,hasPermissions:h,getSubTextAppLink:function(e){return ce.j.getSeriesAppLink(null==e?void 0:e.series,Object.assign(Object.assign({},be),{sort:he}))},setFavourite:f,canFavourite:v,presentationAudiences:e.moviesAndTv?null:le.data,getPreviewQuestionsAppLink:function(e){return ie.j.getPreviewQuestionsAppLink(e)},isPlugin:U,getClassroomGuideAppLink:oe.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:oe.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:oe.W.getResourceGuidanceAppLink}),(Ee||Se)&&fe(Se)&&r.createElement(g._,{isFetching:Ee,fetchNext:me,nextCursor:Se})):r.createElement(y.S,null))))}}}]);
2
+ //# sourceMappingURL=4850-bb9541d3ed-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/4850-bb9541d3ed-lite.chunk.js","mappings":"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","sources":["file:///app/packages/projects/lite/src/apps/share/views/shared-series/SharedSeriesView.tsx","file:///app/packages/libs/shared/src/components/expandable-text/expandable-text.scss","file:///app/packages/libs/shared/src/components/expandable-text/ExpandableText.tsx","file:///app/packages/projects/lite/src/shared/errors/series/series-not-found/SeriesNotFoundError.ts","file:///app/packages/projects/lite/src/shared/views/series/SeriesView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { RelatedVideosContext } from 'libs/shared/enums/RelatedVideosContext';\nimport { Video } from 'libs/shared/interfaces';\n\nimport { SeriesView } from 'shared/views/series/SeriesView';\n\nimport { ShareLinkViewProps } from 'apps/share/interfaces/ShareLinkViewProps';\n\nexport function SharedSeriesView(props: ShareLinkViewProps): JSX.Element {\n const currentAppLink = Core.AppLinkHelper.getCurrentAppLink();\n\n const getVideoAppLink = (video: Video) => ({\n ...currentAppLink,\n params: {\n videoId: video.id,\n contextId: props.objectId,\n context: RelatedVideosContext.Series\n }\n });\n\n return (\n <SeriesView\n key={props.objectId}\n id={props.objectId}\n shareId={props.shareId}\n getVideoAppLink={getVideoAppLink}\n />\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"text\":\"wLJpg\",\"seeMore\":\"x5t0p\"};","import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useResizeListener } from 'libs/shared/hooks/UseResizeListener';\n\nimport styles from './expandable-text.scss';\n\ninterface ExpandableTextProps{\n text: string;\n lines?: number;\n}\n\nconst namespace = 'shared.expandableText';\n\nexport function ExpandableText(props: ExpandableTextProps): JSX.Element {\n const { text, lines = 2 } = props;\n const [ expanded, setExpanded ] = React.useState(false);\n\n const containerRef = React.useRef<HTMLDivElement>(null);\n\n const memoClientHeight = React.useRef<number>(0);\n React.useEffect(() => {\n if (containerRef.current.clientHeight)\n // memo the initial clientHeight, cuz after expand and collapse the clientHeight will change\n memoClientHeight.current = containerRef.current.clientHeight;\n }, []);\n\n const [ showButton, setShowButton ] = React.useState(containerRef.current?.scrollHeight > memoClientHeight.current);\n\n useResizeListener(() => {\n if (containerRef.current.clientHeight) {\n // update memo value on resize\n memoClientHeight.current = containerRef.current.clientHeight;\n setShowButton(containerRef.current?.scrollHeight > memoClientHeight.current);\n }\n });\n\n React.useEffect(() => {\n if (containerRef.current?.scrollHeight) {\n setShowButton(containerRef.current?.scrollHeight > memoClientHeight.current);\n }\n }, [ containerRef.current?.scrollHeight, memoClientHeight.current ]);\n\n return (\n <div className='d-flex overflow-hidden'>\n <div className={`${expanded ? '' : `clamp-${lines}`} ${styles.text}`} ref={containerRef}>\n {(!expanded && showButton) && (\n <DivButton\n onClick={() => setExpanded(true)}\n className={`ms-1 info-text hover-text-underline ${styles.seeMore}`}\n >\n <Text namespace={namespace} phrase='seeMore' />\n </DivButton>\n )}\n <p className='mb-0 d-inline'>{text}</p>\n {expanded && (\n <DivButton\n onClick={() => setExpanded(false)}\n className={`ms-1 info-text hover-text-underline d-inline`}\n >\n <Text namespace={namespace} phrase='seeLess' />\n </DivButton>\n )}\n </div>\n </div>\n );\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nconst namespace = 'shared.seriesNotFoundError';\n\nexport class SeriesNotFoundError extends ErrorPageError {\n constructor() {\n super('Series doesn\\'t exist');\n }\n\n // @ts-ignore\n public get name(): string {\n return 'SeriesNotFoundError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return LanguageService.getPhrase(namespace, 'heading');\n }\n\n // @ts-ignore\n public get description(): string {\n return LanguageService.getPhrase(namespace, 'description');\n }\n}","import * as React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { BannerHeader, PartialBannerHeader } from 'libs/shared/components/banner-header/BannerHeader';\nimport { Breadcrumbs, PartialBreadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { ExpandableText } from 'libs/shared/components/expandable-text/ExpandableText';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoSortSelect } from 'libs/shared/components/video-sort-select/VideoSortSelect';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { ClassificationRequests } from 'libs/shared/flight-requests/ClassificationRequests';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { SeriesRequests } from 'libs/shared/flight-requests/SeriesRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useBreadcrumbs } from 'libs/shared/hooks/useBreadcrumbs';\nimport { useCurationStudio } from 'libs/shared/hooks/useCurationStudio';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Classification, Config, CurrentUser, Series, Video, YearGroup } from 'libs/shared/interfaces';\nimport { GetVideoAppLinkOptions } from 'libs/shared/interfaces/VideoAppLinkOptions';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoSortHelper } from 'libs/shared/utils/VideoSortHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { SeriesNotFoundError } from 'shared/errors/series/series-not-found/SeriesNotFoundError';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { SeoHelper } from 'shared/utils/SeoHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nconst namespace = 'shared.series';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst getFallbackBannerColourClass = (series: Series): string => {\n return BG_COLOUR_CLASS_NAMES[series.name.charCodeAt(0) % BG_COLOUR_CLASS_NAMES.length];\n};\n\ninterface SeriesViewProps {\n id: string;\n getVideoAppLink: (video: Video, opts: GetVideoAppLinkOptions) => Core.AppLink;\n classificationId?: string;\n shareId?: string;\n moviesAndTv?: boolean;\n sort?: VideoSortType;\n}\n\nexport function SeriesView(props: SeriesViewProps): JSX.Element {\n const dispatch = useDispatch();\n const { setFavourite, canFavourite } = useLiteFavourites(LocationContext.VideoThumbnail);\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { isPlugin } = usePluginHelper();\n const { openInCurationStudioLabel, isUserCurator, getOpenInCurationStudioLink } = useCurationStudio();\n\n useDeepLinks({ id: props.id, app: 'series', shareId: props.shareId });\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n const series = Flight.useBasicFetch<Series>(props.shareId\n ? SeriesRequests.sharedSeries(props.id, props.shareId)\n : SeriesRequests.series(props.id));\n\n const audiences = usePresentationAudiences();\n\n useSetPageMetadata(PageMetadataHelper.getSeriesMetadata({\n content: series.data,\n phraseContext: {\n phraseHandler: getPhrase,\n titlePhrase: 'pageTitle',\n descriptionPhrase: 'pageDescription'\n },\n canonicalLink: SeoHelper.getCanonicalLink({ stripPresentationSlug: true }),\n allowIndexing: SeoHelper.allowIndexing()\n }));\n\n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem, shareId: props.shareId });\n\n const topicPath = Flight.useBasicFetch<Classification[]>(\n props.classificationId &&\n ClassificationRequests.path(props.classificationId)\n );\n\n /**\n * Infinite scrolling will be restricted for public browsing as a crawler/bot.\n * The rationale behind this is that we don't want to preload or allow crawlers\n * to enumerate the entirety of our series collections. Some series have > 10k videos\n * and they don't all need to be indexed (i.e. old news/current affair series).\n * \n * Public browsing by regular users will continue to paginate, along with authenticated\n * users. - Mike\n */\n function shouldFetch(cursor?: string) {\n if (SeoHelper.isBot() && cursor)\n return false;\n\n return true;\n }\n\n function getVideosRequest(cursor?: string) {\n if (!shouldFetch(cursor))\n return null;\n\n return SeriesRequests.seriesVideos(props.id, currentUser.data?.id, sort, cursor);\n }\n\n function fetchNext(cursor?: string) {\n return Flight.getFetch(dispatch)(getVideosRequest(cursor));\n }\n\n function getBannerActions(): ActionOptions[] {\n if (isPlugin || !showHeaderActions) {\n return [];\n }\n\n const actions: ActionOptions[] = [{\n label: getPhrase('share'),\n appLink: series && {\n application: AppChannels.DEFAULT,\n action: Actions.Default.SHARE,\n args: [series.data?.id],\n params: { entityType: 'series' }\n },\n svgName: cvSvgLibrary.Share2,\n className: 'btn btn-outline-dark me-2',\n button: true\n }];\n\n if (isUserCurator)\n actions.push({\n label: openInCurationStudioLabel,\n href: getOpenInCurationStudioLink(series.data?.typeId, series.data?.id),\n openInNewTab: true\n });\n\n return actions;\n }\n\n // Must be before the video fetching, as the getVideosRequest has a closure over the sort\n const sort = !!currentUser.data && VideoSortHelper.getOrSetSortType(\n currentUser.data.id,\n props.sort,\n VideoSortType.Series\n );\n\n const seriesParams = {\n classificationId: props.classificationId,\n mtv: props.moviesAndTv\n };\n\n const {\n items: videos,\n isFetching,\n nextCursor\n } = useInfiniteList<Video>(currentUser.data ? getVideosRequest : false, fetchNext);\n\n useVideoMixin(videos);\n\n useHandleObjectError(series, {\n notFound: SeriesNotFoundError\n });\n\n const showHeaderActions = !hasPermissions(PermissionName.StudentExperience) &&\n hasLocalPermissions(LocalPermissionName.UseSeriesActions);\n\n const breadcrumbs = useBreadcrumbs({ name: series.data?.name });\n\n return (\n <VideoActionsContext.Provider value={videoActions}>\n <div className='px-3'>\n {config.data && series.data\n ? (\n <BannerHeader\n heading={series.data.name}\n banner={series.data.banner}\n imageCdnUrl={config.data.imageCdnUrl}\n actions={getBannerActions()}\n actionsDropdownClassName='btn btn-outline-dark'\n blockColourClass={getFallbackBannerColourClass(series.data)}\n />\n ) : <PartialBannerHeader />\n }\n \n <div>\n <div className={series.data?.description || (props.moviesAndTv && topicPath.data) ? 'border-bottom py-3 mb-3' : 'pt-3 mb-2'}>\n {(() => {\n if (!series.data || (props.classificationId && !topicPath.data))\n return <PartialBreadcrumbs />;\n\n return (\n <Breadcrumbs breadcrumbs={breadcrumbs} />\n );\n })()}\n\n <div className='d-flex align-items-center'>\n {series.data?.description && (\n <div className={`mb-0 ${props.classificationId ? 'pt-2' : ''}`}>\n <ExpandableText text={series.data.description}/>\n </div>\n )}\n\n {series.data && (\n <div className='ms-auto'>\n <VideoSortSelect\n variant='outline-dark'\n type={sort}\n analyticsOptions={{\n location: LocationContext.VideoListHeader,\n entity: EntityType.Video,\n actionType: UserAction.Sort,\n workflowPhase: WorkflowPhase.Complete\n }}\n getSortAppLink={sort => {\n return SeriesAppLinkHelper.getSeriesAppLink(series.data, { ...seriesParams, sort });\n }}\n />\n </div>\n )}\n </div>\n </div>\n\n {(() => {\n if (!videos)\n return <PartialVideoList />;\n\n return (\n <>\n <VideoList\n videos={videos}\n yearGroups={yearGroups.data}\n getVideoAppLink={props.getVideoAppLink}\n hasPermissions={hasPermissions}\n getSubTextAppLink={video =>\n SeriesAppLinkHelper.getSeriesAppLink(video?.series, { ...seriesParams, sort })}\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n presentationAudiences={props.moviesAndTv ? null : audiences.data}\n getPreviewQuestionsAppLink={interactive => InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n isPlugin={isPlugin}\n getClassroomGuideAppLink={VideoAppLinkHelper.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={VideoAppLinkHelper.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={VideoAppLinkHelper.getResourceGuidanceAppLink}\n />\n {(isFetching || nextCursor) && shouldFetch(nextCursor) && (\n <InfiniteScrollFooter\n isFetching={isFetching}\n fetchNext={fetchNext}\n nextCursor={nextCursor}\n />\n )}\n </>\n );\n })()}\n </div>\n </div>\n </VideoActionsContext.Provider>\n );\n}\n"],"names":["SharedSeriesView","props","currentAppLink","SeriesView","key","objectId","id","shareId","getVideoAppLink","video","params","videoId","contextId","context","namespace","ExpandableText","text","lines","expanded","setExpanded","containerRef","memoClientHeight","current","clientHeight","scrollHeight","showButton","setShowButton","className","ref","DivButton","onClick","Text","phrase","SeriesNotFoundError","LanguageService","ErrorPageError","getPhrase","getFallbackBannerColourClass","series","name","charCodeAt","dispatch","useLiteFavourites","u","setFavourite","canFavourite","usePermissions","hasPermissions","hasLocalPermissions","isPlugin","usePluginHelper","useCurationStudio","openInCurationStudioLabel","isUserCurator","getOpenInCurationStudioLink","useDeepLinks","app","config","ConfigRequests","currentUser","UserRequests","yearGroups","data","isAuthenticated","CustomerRequests","customerId","SeriesRequests","audiences","usePresentationAudiences","useSetPageMetadata","PageMetadataHelper","content","phraseContext","phraseHandler","titlePhrase","descriptionPhrase","canonicalLink","SeoHelper","stripPresentationSlug","allowIndexing","videoActions","useVideoActions","location","topicPath","classificationId","ClassificationRequests","shouldFetch","cursor","getVideosRequest","sort","fetchNext","VideoSortHelper","VideoSortType","seriesParams","mtv","moviesAndTv","videos","items","isFetching","nextCursor","useVideoMixin","notFound","showHeaderActions","PermissionName","breadcrumbs","useBreadcrumbs","VideoActionsContext","value","BannerHeader","heading","banner","imageCdnUrl","actions","label","appLink","application","action","args","entityType","svgName","button","push","href","typeId","openInNewTab","getBannerActions","actionsDropdownClassName","blockColourClass","description","Breadcrumbs","VideoSortSelect","variant","type","analyticsOptions","entity","actionType","workflowPhase","getSortAppLink","SeriesAppLinkHelper","VideoList","getSubTextAppLink","presentationAudiences","getPreviewQuestionsAppLink","interactive","InteractiveHelper","getClassroomGuideAppLink","VideoAppLinkHelper","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","InfiniteScrollFooter","PartialVideoList"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[5143],{61807:(e,t,n)=>{n.d(t,{L:()=>u});var a=n(32735),r=n(81886),i=n(23481),c=n(65858),l=n(38502),o="settings.domainSettingsTabs",s=i.T.encloseNamespace(o);function u(e){var t=e.active,n=e.appLinks;return a.createElement("div",{className:"mb-3"},a.createElement(l.r,{tabs:[{name:s("requestingAccess"),appLink:n.requestingAccess,active:"requesting-access"===t,analyticsData:{name:s("requestingAccess"),url:r.Q.C$.getHref(n.requestingAccess)},analyticsOptions:{actionType:c.Vw.Click,entity:c.py.Url,location:c.LZ.MagicTabs}},{name:s("teacherInvites"),appLink:n.teacherInvites,active:"teacher-invites"===t,analyticsData:{name:i.T.getPhrase(o,"teacherInvites"),url:r.Q.C$.getHref(n.teacherInvites)},analyticsOptions:{actionType:c.Vw.Click,entity:c.py.Url,location:c.LZ.MagicTabs}},{name:s("automaticAccess"),appLink:n.automaticAccess,active:"automatic-access"===t,analyticsData:{name:i.T.getPhrase(o,"automaticAccess"),url:r.Q.C$.getHref(n.automaticAccess)},analyticsOptions:{actionType:c.Vw.Click,entity:c.py.Url,location:c.LZ.MagicTabs}}]}))}},49935:(e,t,n)=>{n.d(t,{Oo:()=>f,b2:()=>d});var a=n(32735),r=n(36848),i=n(86764),c=n(3747),l=n(5859),o=n(35223),s=n(83914);function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var m=function(e){var t=e.breadcrumb,n=t.name,i=t.appLink,c=t.active,l=e.withBackIcon;return a.createElement("li",{className:"breadcrumb-item".concat(c?" active":"")},c?a.createElement("strong",null,n):a.createElement(r.F,{appLink:i},l&&a.createElement(s.x,{svgName:o.vn.ChevronLeft,size:s.S.Small}),a.createElement("span",{className:l?"ms-2":""},n)))},f=function(e){var t,n,r=e.breadcrumbs,l=(0,c.a)(i.r.XS),o=(null==r?void 0:r.length)||0,s=(t=a.useState(!1),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,c,l=[],o=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;o=!1}else for(;!(o=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);o=!0);}catch(e){s=!0,r=e}finally{try{if(!o&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return u(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),f=s[0],d=s[1];if(a.useEffect((function(){var e,t=null!==(e=null==r?void 0:r.reduce((function(e,t){return e+t.name.length}),0))&&void 0!==e?e:0;o>3&&t>56&&d(!0)}),[null==r?void 0:r.length]),!o||l&&o<2)return a.createElement(a.Fragment,null);if(l)return a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},a.createElement(m,{breadcrumb:r[o-2],withBackIcon:!0})));var p=a.createElement(m,{breadcrumb:r[0]}),b=o>2?a.createElement(m,{breadcrumb:r[o-2]}):a.createElement(a.Fragment,null),v=a.createElement(m,{breadcrumb:r[o-1]}),g=r.slice(1,o-2);return a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},p,f?a.createElement("li",{className:"breadcrumb-item"},a.createElement("button",{className:"btn-link",onClick:function(){return d(!1)}},"...")):g.map((function(e,t){return a.createElement(m,{key:t,breadcrumb:e})})),b,v))},d=a.memo((function(e){var t=e.numItems,n=void 0===t?3:t;return(0,c.a)(i.r.XS)?a.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},l.u.getPartialLoadingItems({numItems:n}).map((function(e,t){var n=e.width;return a.createElement("li",{key:t,className:"breadcrumb-item"},a.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:n},dangerouslySetInnerHTML:{__html:"&nbsp"}}))}))))}))},38502:(e,t,n)=>{n.d(t,{r:()=>m});var a=n(32735),r=n(49985),i=n(36848),c=n(18559),l=n(11607),o=n(83914),s=n(87432);function u(e){return a.createElement(a.Fragment,null,!!e.tab.svgName&&a.createElement("div",{className:e.tab.name?"pe-1":""},a.createElement(o.x,{svgName:e.tab.svgName})),e.tab.name,"number"==typeof e.tab.count&&a.createElement("div",{className:"ps-2"},a.createElement(c.C,{type:c.g.Count,data:e.tab.count})))}function m(e){var t;return a.createElement("nav",{className:null!==(t=e.className)&&void 0!==t?t:"",ref:e.containerRef},a.createElement("ul",{className:"\n list-unstyled d-inline-block m-0 ".concat(s.Z.pillTabSelector,"\n ").concat(e.borderRadius?s.Z.radiusSmall:"","\n ").concat(e.listClassName,"\n ")},e.tabs.map((function(e,t){return a.createElement("li",{className:"\n p-0 ".concat(s.Z.tab," ").concat(e.active?"btn btn-dark":"btn btn-outline-dark","\n ").concat(e.name?s.Z.minWidth:""," ").concat(e.className,"\n "),key:t},e.appLink?a.createElement(i.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(s.Z.tabLink,"\n ")},a.createElement(u,{tab:e})):a.createElement(l.L,{className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset p-2 text-nowrap ".concat(s.Z.tabLink,"\n "),onClick:function(){return function(e){!e.active&&e.onSelect&&(e.onSelect(),e.analyticsData&&e.analyticsOptions&&r.k.logUserAction(e.analyticsData,e.analyticsOptions))}(e)}},a.createElement(u,{tab:e})))}))))}m.defaultProps={borderRadius:"lg"}},24833:(e,t,n)=>{var a;n.d(t,{C:()=>a}),function(e){e.RequestingAccess="requestingAccess",e.TeacherInvites="teacherInvites",e.AutomaticAccess="automaticAccess"}(a||(a={}))},5859:(e,t,n)=>{function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}n.d(t,{u:()=>i});var r={numItems:5,minWidth:50,maxWidth:100},i={getPartialLoadingItems:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=Object.assign(Object.assign({},r),t);return(e=Array(n.numItems),function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return a(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).map((function(){return{width:"".concat(Math.max(Math.floor(Math.random()*n.maxWidth),n.minWidth),"px")}}))}}},81803:(e,t,n)=>{n.d(t,{d:()=>p});var a=n(32735),r=n(81886),i=n(23481),c=n(49935),l=n(22902),o=n(14070),s=n(97291),u=n(96368);function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var f="settings.settingsLayout",d=function(e){var t=(0,l.T)().hasPermissions,n=(0,u.e)();if(e)return t(e);var a=r.Q.C$.getCurrentAppLink();return a.application!==s.O.SETTINGS||n.some((function(e){return e.modules.some((function(e){return"appLink"in e&&e.appLink.action===a.action}))}))};function p(e){var t,n=d(e.requiredPermissions);if(a.useEffect((function(){n||r.Q.C$.trigger({application:s.O.SETTINGS,action:o.e.Settings.HOME},{replace:!0})}),[n]),!n)return a.createElement(a.Fragment,null);var l,u=e.breadcrumbs.map((function(t,n){return{name:t,appLink:{application:s.O.SETTINGS,action:o.e.Settings.HOME},active:n===e.breadcrumbs.length-1}}));return a.createElement("div",{className:"px-3"},a.createElement("div",{className:"d-flex align-items-center justify-content-between"},a.createElement("h1",{className:"h2"},e.heading),null===(t=e.headingButton)||void 0===t?void 0:t.call(e)),a.createElement("div",{className:"pb-3"},a.createElement(c.Oo,{breadcrumbs:[{name:i.T.getPhrase(f,"settingsBreadcrumb"),appLink:{application:s.O.SETTINGS,action:o.e.Settings.HOME}}].concat((l=u,function(e){if(Array.isArray(e))return m(e)}(l)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(l)||function(e,t){if(e){if("string"==typeof e)return m(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m(e,t):void 0}}(l)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()))})),e.description&&a.createElement(a.Fragment,null,a.createElement("p",null,e.description),a.createElement("hr",null)),e.children)}},68598:(e,t,n)=>{n.d(t,{W:()=>o});var a=n(24833),r=n(14070),i=n(97291);function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}function l(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=c(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var a=n.call(e,"string");if("object"!=c(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==c(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var o=l(l(l({},a.C.RequestingAccess,{application:i.O.SETTINGS,action:r.e.Settings.REQUESTING_ACCESS}),a.C.TeacherInvites,{application:i.O.SETTINGS,action:r.e.Settings.TEACHER_INVITES}),a.C.AutomaticAccess,{application:i.O.SETTINGS,action:r.e.Settings.AUTOMATIC_ACCESS})},96268:(e,t,n)=>{n.d(t,{W:()=>s});var a=n(32735),r=n(81886),i=n(65858),c=n(37802),l=n(14070),o=n(97291);function s(){var e=(0,c.r)(i.LZ.Settings),t=e.isLoadingSettings,n=e.domainSettings;a.useEffect((function(){t||n||r.Q.C$.trigger({application:o.O.SETTINGS,action:l.e.Settings.HOME},{replace:!0})}),[n,t])}},45143:(e,t,n)=>{n.r(t),n.d(t,{TeacherInvitesView:()=>N});var a=n(32735),r=n(23481),i=n(20354),c=n(65858),l=n(83345),o=n(83523),s="settings.domainSettingsInvitesToggle";function u(e){var t=e.allowInvites,n=e.onToggleInvites;return a.createElement("div",{className:"col-12 col-md-7 card p-3"},a.createElement("div",{className:"d-flex justify-content-between"},a.createElement("p",{className:"fw-semibold"},a.createElement(l.x,{namespace:s,phrase:"invitesLabel"})),a.createElement(o.Z,{onClick:n,on:t})),a.createElement("p",null,a.createElement(l.x,{namespace:s,phrase:"invitesDescription"})),a.createElement("div",{className:"d-flex"},a.createElement("div",{className:"rounded p-2 bg-light-blue text-info fw-semibold"},a.createElement(l.x,{namespace:s,phrase:t?"invitesInfoMessage":"noInvitesInfoMessage"}))))}var m=n(61807),f=n(16714),d=n(77963),p=n(65728),b=n(31949),v=n(69883),g=n(37802),y=n(81803),E=n(68598),h=n(96268);function S(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var A="settings.teacherInvites",I=r.T.encloseNamespace(A);function N(){(0,h.W)();var e,t,n=i.a.useBasicFetch(b.N.currentUser()).data.customerId,r=(0,g.r)(c.LZ.Settings),o=r.inviteColleague,s=r.updateSetting,N=r.isLoadingSettings,T=(0,v.Z)(),k=(e=a.useState(o),t=2,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,c,l=[],o=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;o=!1}else for(;!(o=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);o=!0);}catch(e){s=!0,r=e}finally{try{if(!o&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return S(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?S(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),C=k[0],w=k[1];return a.useEffect((function(){N||w(o)}),[o,N]),N?a.createElement(a.Fragment,null):a.createElement(y.d,{heading:I("heading"),breadcrumbs:[I("breadcrumb")],requiredPermissions:f.C.ManageUsers},a.createElement(m.L,{active:"teacher-invites",appLinks:E.W}),a.createElement("p",null,a.createElement(l.x,{namespace:A,phrase:"description"})),a.createElement(u,{allowInvites:C,onToggleInvites:function(){var e={name:p.E.InviteColleague,value:!C,kind:d.g.Permanent};s(n,e,(function(){T.success(I("successAlert")),w(!C)}),(function(){return T.error(I("errorAlert"))}))}}))}},87432:(e,t,n)=>{n.d(t,{Z:()=>a});const a={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}}}]);
2
+ //# sourceMappingURL=5143-d46f032e9e-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/5143-d46f032e9e-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/domain-settings/domain-settings-tabs/DomainSettingsTabs.tsx","file:///app/packages/libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx","file:///app/packages/libs/shared/src/enums/AccessSettingsGroup.ts","file:///app/packages/libs/shared/src/utils/PartialLoadingHelper.ts","file:///app/packages/projects/lite/src/apps/settings/components/settings-layout/SettingsLayout.tsx","file:///app/packages/projects/lite/src/apps/settings/constants/AccessSettingsAppLinks.ts","file:///app/packages/projects/lite/src/apps/settings/hooks/useDomainSettingsSwitch.ts","file:///app/packages/libs/shared/src/apps/domain-settings/domain-settings-invites-toggle/DomainSettingsInvitesToggle.tsx","file:///app/packages/projects/lite/src/apps/settings/views/teacher-invites/TeacherInvitesView.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/pill-tab-selector.scss"],"sourcesContent":["import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\nimport { AccessSettingAppLinks } from 'libs/shared/interfaces/domains/AccessSettingAppLinks';\n\nconst namespace = 'settings.domainSettingsTabs';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface DomainSettingsTabsProps {\n active: 'requesting-access' | 'teacher-invites' | 'automatic-access',\n appLinks: AccessSettingAppLinks\n}\n\nexport function DomainSettingsTabs(props: DomainSettingsTabsProps): JSX.Element {\n const { active, appLinks } = props;\n \n return (\n <div className='mb-3'>\n <PillTabSelector\n tabs={[{\n name: getPhrase('requestingAccess'),\n appLink: appLinks.requestingAccess,\n active: active === 'requesting-access',\n analyticsData: {\n name: getPhrase('requestingAccess'),\n url: Core.AppLinkHelper.getHref(appLinks.requestingAccess)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }, {\n name: getPhrase('teacherInvites'),\n appLink: appLinks.teacherInvites,\n active: active === 'teacher-invites',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'teacherInvites'),\n url: Core.AppLinkHelper.getHref(appLinks.teacherInvites)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }, {\n name: getPhrase('automaticAccess'),\n appLink: appLinks.automaticAccess,\n active: active === 'automatic-access',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'automaticAccess'),\n url: Core.AppLinkHelper.getHref(appLinks.automaticAccess)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }]}\n />\n </div>\n );\n}","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nconst COLLAPSE_CHARACTER_COUNT = 56;\n\nexport interface Breadcrumb {\n name: string;\n appLink?: Core.AppLink;\n active?: boolean;\n}\n\ninterface BreadcrumbItemProps {\n breadcrumb: Breadcrumb;\n withBackIcon?: boolean;\n}\n\nexport const BreadcrumbItem = ({ breadcrumb: { name, appLink, active }, withBackIcon }: BreadcrumbItemProps) => (\n <li className={`breadcrumb-item${active ? ' active' : ''}`}>\n {active\n ? <strong>{name}</strong>\n : <AppLink appLink={appLink}>\n {withBackIcon && <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{name}</span>\n </AppLink>\n }\n </li>\n);\n\ninterface BreadcrumbsProps {\n breadcrumbs: Breadcrumb[];\n}\n\nexport const Breadcrumbs = ({ breadcrumbs }: BreadcrumbsProps) => {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n const length = breadcrumbs?.length || 0;\n \n const [ collapse, setCollapse ] = React.useState(false);\n\n React.useEffect(() => {\n const characterLength = breadcrumbs?.reduce((prev, next) => prev + next.name.length, 0) ?? 0;\n\n if (length > 3 && characterLength > COLLAPSE_CHARACTER_COUNT)\n setCollapse(true);\n }, [breadcrumbs?.length]);\n\n if (!length || (isMobile && length < 2))\n return <></>;\n\n if (isMobile)\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} withBackIcon />\n </ol>\n </nav>\n );\n\n const first = <BreadcrumbItem breadcrumb={breadcrumbs[0]} />;\n const secondLast = length > 2 ? <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} /> : <></>;\n const last = <BreadcrumbItem breadcrumb={breadcrumbs[length - 1]} />;\n const rest = breadcrumbs.slice(1, length - 2);\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {first}\n {collapse ?\n <li className='breadcrumb-item'>\n <button className='btn-link' onClick={() => setCollapse(false)}>\n ...\n </button>\n </li> :\n rest.map((breadcrumb, idx) => <BreadcrumbItem key={idx} breadcrumb={breadcrumb} />)\n }\n {secondLast}\n {last}\n </ol>\n </nav>\n );\n};\n\nexport const PartialBreadcrumbs = React.memo(function({ numItems = 3 }: { numItems?: number; }) {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n if (isMobile) {\n return (\n <div className='partial-loading-background' style={{ height: '1.3125rem', width: '6rem' }} />\n );\n }\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {PartialLoadingHelper.getPartialLoadingItems({ numItems }).map(({ width }, idx) => (\n <li key={idx} className='breadcrumb-item'>\n <span className='d-inline-block partial-loading-background' style={{ width }} dangerouslySetInnerHTML={{ __html: '&nbsp' }} />\n </li>\n ))}\n </ol>\n </nav>\n );\n});","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svgName && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svgName={props.tab.svgName} />\n </div>\n )}\n\n {props.tab.name}\n\n {typeof (props.tab.count) === 'number' && (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} />\n </div>\n )}\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svgName?: string;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n containerRef?: (el: HTMLElement) => void;\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg'\n}\n\nPillTabSelector.defaultProps = {\n borderRadius: 'lg'\n};\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n\n return (\n <nav className={props.className ?? ''} ref={props.containerRef}>\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${props.borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset p-2 text-nowrap ${styles.tabLink}\n `}\n onClick={() => onSelectTab(tab)}\n >\n <TabContents tab={tab} />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n}\n","export enum AccessSettingsGroup {\n RequestingAccess = 'requestingAccess',\n TeacherInvites = 'teacherInvites',\n AutomaticAccess = 'automaticAccess'\n}","const DEFAULT_PARTIAL_LOADING_OPTIONS: PartialLoadingOptions = {\n numItems: 5,\n minWidth: 50, // px\n maxWidth: 100 // px\n};\n\nexport interface PartialLoadingOptions {\n numItems?: number;\n minWidth?: number;\n maxWidth?: number;\n}\n\ninterface PartialLoadingItem {\n width: string;\n}\n\nexport const PartialLoadingHelper = {\n getPartialLoadingItems(options: PartialLoadingOptions = {}): PartialLoadingItem[] {\n const opts = {\n ...DEFAULT_PARTIAL_LOADING_OPTIONS,\n ...options\n };\n\n const getRandomFilterWidth = () => Math.max(Math.floor(Math.random() * opts.maxWidth), opts.minWidth);\n\n return [...Array(opts.numItems)].map(() => ({ width: `${getRandomFilterWidth()}px` }));\n }\n};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { useGetSettingsGroups } from 'apps/settings/hooks/useGetSettingsGroups';\n\nconst namespace = 'settings.settingsLayout';\n\n/**\n * Checks if the current user has permission to access the settings module\n */\nexport const useCanAccessSettings = (requiredPermissions: PermissionName | PermissionName[]): boolean => {\n const { hasPermissions } = usePermissions();\n const settingsGroups = useGetSettingsGroups();\n\n /**\n * TODO: Update all settings pages to pasas required permissions, because checking the \n * `useGetSettingsGroups()` values clearly doesnt work for settings pages with multiple\n * applinks inside of them. - Sha\n */\n if (requiredPermissions)\n return hasPermissions(requiredPermissions);\n\n const currentRoute = Core.AppLinkHelper.getCurrentAppLink();\n\n /**\n * Allows us to have popups sitting in other locations be used\n * by our settings pages. For example the manage video access popup\n * in the \"videos with restricted access\" page - Sha\n */\n if (currentRoute.application !== AppChannels.SETTINGS)\n return true;\n\n return settingsGroups.some(group => {\n return group.modules.some(settingsModule => {\n if ('appLink' in settingsModule) {\n return settingsModule.appLink.action === currentRoute.action;\n }\n\n return false;\n });\n });\n};\n\ninterface SettingsLayoutProps {\n heading: string;\n breadcrumbs: string[];\n description?: string;\n requiredPermissions?: PermissionName | PermissionName[];\n headingButton?: () => JSX.Element;\n}\n\nexport function SettingsLayout(props: React.PropsWithChildren<SettingsLayoutProps>): JSX.Element {\n const canAccess = useCanAccessSettings(props.requiredPermissions);\n\n React.useEffect(() => {\n if (!canAccess) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n }, { replace: true });\n }\n }, [canAccess]);\n\n if (!canAccess)\n return <></>;\n\n const breadcrumbs = props.breadcrumbs.map((name, i) => ({\n name,\n appLink: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n },\n active: i === props.breadcrumbs.length - 1\n }));\n\n return (\n <div className='px-3'>\n <div className='d-flex align-items-center justify-content-between'>\n <h1 className='h2'>{props.heading}</h1>\n {props.headingButton?.()}\n </div>\n <div className='pb-3'>\n <Breadcrumbs\n breadcrumbs={[\n {\n name: LanguageService.getPhrase(namespace, 'settingsBreadcrumb'),\n appLink: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n }\n },\n ...breadcrumbs\n ]}\n />\n </div>\n {props.description &&\n <>\n <p>{props.description}</p>\n <hr />\n </>\n }\n\n {props.children}\n </div>\n );\n}","import { Core } from 'libs/common/backbone/index';\n\nimport { AccessSettingsGroup } from 'libs/shared/enums/AccessSettingsGroup';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nexport const AccessSettingsAppLinks: { [key in AccessSettingsGroup]: Core.AppLink } = {\n [AccessSettingsGroup.RequestingAccess]: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.REQUESTING_ACCESS\n },\n [AccessSettingsGroup.TeacherInvites]: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.TEACHER_INVITES\n },\n [AccessSettingsGroup.AutomaticAccess]: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.AUTOMATIC_ACCESS\n }\n};\n","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { useSettings } from 'libs/shared/hooks/useSettings';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nexport function useDomainSettingsSwitch() {\n const { isLoadingSettings, domainSettings } = useSettings(LocationContext.Settings);\n\n React.useEffect(() => {\n if (isLoadingSettings)\n return;\n\n if (!domainSettings) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n }, { replace: true });\n }\n }, [ domainSettings, isLoadingSettings ]);\n}\n","import React from 'react';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ToggleSwitch } from 'libs/shared/components/toggle-switch/ToggleSwitch';\n\nconst namespace = 'settings.domainSettingsInvitesToggle';\n\ninterface DomainSettingsInvitesToggleProps {\n allowInvites: boolean,\n onToggleInvites: () => void\n}\n\nexport function DomainSettingsInvitesToggle(props: DomainSettingsInvitesToggleProps) {\n const { allowInvites, onToggleInvites } = props;\n\n return (\n <div className='col-12 col-md-7 card p-3'>\n <div className='d-flex justify-content-between'>\n <p className='fw-semibold'>\n <Text namespace={namespace} phrase='invitesLabel' />\n </p>\n <ToggleSwitch\n onClick={onToggleInvites}\n on={allowInvites}\n ></ToggleSwitch>\n </div>\n\n <p>\n <Text namespace={namespace} phrase='invitesDescription' />\n </p>\n\n <div className='d-flex'>\n <div className='rounded p-2 bg-light-blue text-info fw-semibold'>\n <Text namespace={namespace} phrase={allowInvites ? 'invitesInfoMessage' : 'noInvitesInfoMessage'} />\n </div>\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { DomainSettingsInvitesToggle } from 'libs/shared/apps/domain-settings/domain-settings-invites-toggle/DomainSettingsInvitesToggle';\nimport { DomainSettingsTabs } from 'libs/shared/apps/domain-settings/domain-settings-tabs/DomainSettingsTabs';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { SettingKind } from 'libs/shared/enums/SettingKind';\nimport { SettingName } from 'libs/shared/enums/SettingName';\nimport { UpdateSettingRequest } from 'libs/shared/flight-requests/SettingRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { CurrentUser } from 'libs/shared/interfaces';\n\nimport { SettingsLayout } from 'apps/settings/components/settings-layout/SettingsLayout';\nimport { AccessSettingsAppLinks } from 'apps/settings/constants/AccessSettingsAppLinks';\nimport { useDomainSettingsSwitch } from 'apps/settings/hooks/useDomainSettingsSwitch';\n\nconst namespace = 'settings.teacherInvites';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function TeacherInvitesView() {\n useDomainSettingsSwitch();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const { customerId } = currentUser.data;\n const { inviteColleague, updateSetting, isLoadingSettings } = useSettings(LocationContext.Settings);\n const alerts = useAlerts();\n const [ allowInvites, setAllowInvites ] = React.useState(inviteColleague);\n\n React.useEffect(() => {\n if (isLoadingSettings)\n return;\n\n setAllowInvites(inviteColleague);\n }, [ inviteColleague, isLoadingSettings ]);\n\n function onToggleInvites() {\n const newSetting: UpdateSettingRequest<boolean> = {\n name: SettingName.InviteColleague,\n value: !allowInvites,\n kind: SettingKind.Permanent\n };\n\n updateSetting(\n customerId,\n newSetting,\n () => {\n alerts.success(getPhrase('successAlert'));\n setAllowInvites(!allowInvites);\n },\n () => alerts.error(getPhrase('errorAlert'))\n );\n }\n\n if (isLoadingSettings) {\n return <></>;\n }\n\n return (\n <SettingsLayout\n heading={getPhrase('heading')}\n breadcrumbs={[getPhrase('breadcrumb')]}\n requiredPermissions={PermissionName.ManageUsers}\n >\n <DomainSettingsTabs active='teacher-invites' appLinks={AccessSettingsAppLinks}/>\n\n <p>\n <Text namespace={namespace} phrase='description' />\n </p>\n\n <DomainSettingsInvitesToggle\n allowInvites={allowInvites}\n onToggleInvites={onToggleInvites}\n />\n </SettingsLayout>\n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"pillTabSelector\":\"Hdi6o\",\"tab\":\"RvNxr\",\"minWidth\":\"GHSz9\",\"radiusSmall\":\"VhJJa\",\"tabLink\":\"WFyvo\"};"],"names":["namespace","getPhrase","DomainSettingsTabs","props","active","appLinks","className","tabs","name","appLink","requestingAccess","analyticsData","url","analyticsOptions","actionType","entity","location","teacherInvites","automaticAccess","BreadcrumbItem","breadcrumb","withBackIcon","svgName","size","S","Breadcrumbs","breadcrumbs","isMobile","length","collapse","setCollapse","characterLength","reduce","prev","next","first","secondLast","last","rest","slice","onClick","map","idx","key","PartialBreadcrumbs","numItems","style","height","width","dangerouslySetInnerHTML","__html","TabContents","tab","count","type","data","PillTabSelector","ref","containerRef","borderRadius","listClassName","index","onSelect","onSelectTab","defaultProps","AccessSettingsGroup","DEFAULT_PARTIAL_LOADING_OPTIONS","minWidth","maxWidth","PartialLoadingHelper","getPartialLoadingItems","options","opts","Array","Math","max","floor","random","useCanAccessSettings","requiredPermissions","hasPermissions","settingsGroups","currentRoute","application","some","group","modules","settingsModule","action","SettingsLayout","canAccess","replace","i","heading","headingButton","description","children","AccessSettingsAppLinks","useDomainSettingsSwitch","isLoadingSettings","domainSettings","DomainSettingsInvitesToggle","allowInvites","onToggleInvites","Text","phrase","ToggleSwitch","on","LanguageService","TeacherInvitesView","customerId","UserRequests","useSettings","inviteColleague","updateSetting","alerts","setAllowInvites","PermissionName","newSetting","SettingName","value","kind","SettingKind","success","error"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[5157],{97535:(e,t,n)=>{n.r(t),n.d(t,{SignUpView:()=>k});var r=n(32735),a=n(81886),l=n(20354),i=n(70624),c=n(65858),o=n(97947),u=n(83529),s=n(84789),m=n(60735),f=n(39151),g=n(31949),d=n(48015),h=n(83421),p=n(14070),b=n(97291);const v={left:"CJBwn",imageContainer:"r6On_",imagePosition:"ebaoC",image:"XQMl0"};function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function E(e){var t,n,a=(t=r.useState(!1),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,l,i,c=[],o=!0,u=!1;try{if(l=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;o=!1}else for(;!(o=(r=l.call(n)).done)&&(c.push(r.value),c.length!==t);o=!0);}catch(e){u=!0,a=e}finally{try{if(!o&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return c}}(t,n)||function(e,t){if(e){if("string"==typeof e)return y(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?y(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),l=a[0],i=a[1];return r.useEffect((function(){if(e.imageUrl){var t=new Image;return t.onload=function(){return i(!0)},t.src=e.imageUrl,function(){return t.onload=null}}}),[]),r.createElement("div",{className:v.left},l&&r.createElement(r.Fragment,null,r.createElement("div",{className:v.imageContainer},r.createElement("div",{className:v.imagePosition},r.createElement("img",{className:v.image,src:e.imageUrl,alt:e.title})))))}var C=n(48456),U=n(63643);function k(e){var t,n=(0,i.G)(m.D.BrazeClient),v=l.a.useBasicFetch(g.N.currentUser()),y=l.a.useBasicFetch(f.L.config()),k=(0,d.M)(),S=(0,U.c)();return r.useEffect((function(){v.hasCompleted&&v.data.isAuthenticated&&a.Q.C$.trigger({action:p.e.Dashboard.HOME,application:b.O.DASHBOARD})}),[v]),v.hasCompleted&&!(null===(t=v.data)||void 0===t?void 0:t.isAuthenticated)&&y.hasCompleted&&k&&S?r.createElement(h.Z,{leftComponent:function(){return r.createElement(E,{title:"Sign Up",imageUrl:"/images/sign-up/fullscreen-dashboard.png"})}},r.createElement(o.h,{brazeClient:n.clientInstance,type:u.c.FullPage,initialValues:{email:e.email},location:c.LZ.SignUpPage,googleMapsApiKey:y.data.googleMapsApiKey,geoLocation:k,imageUrls:C.v,ajaxUrls:S,productName:s.X.Lite,pageAppLinkString:e.pageAppLinkString})):r.createElement(r.Fragment,null)}},83421:(e,t,n)=>{n.d(t,{Z:()=>g});var r=n(32735),a=n(54610),l=n(4594),i=n(67453),c=n(99742);const o={left:"vIypY",leftTextImage:"YViNj",right:"MkD4u",blur:"X6mCh",imageContainer:"bc7kz",imagePosition:"JOhEj",image:"Ef2QR",thumbnail:"Gdurb",tallposter:"fjVNK",cover:"o3j31",linksContainer:"AT9Dk"};function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,l,i,c=[],o=!0,u=!1;try{if(l=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;o=!1}else for(;!(o=(r=l.call(n)).done)&&(c.push(r.value),c.length!==t);o=!0);}catch(e){u=!0,a=e}finally{try{if(!o&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var m=[{bgUrl:c.W.LaunchPad.BG_1},{bgUrl:c.W.LaunchPad.BG_2},{bgUrl:c.W.LaunchPad.BG_3},{bgUrl:c.W.LaunchPad.BG_4},{bgUrl:c.W.LaunchPad.BG_5}];function f(e){switch(e){case l.E.Video:case l.E.Interactive:case l.E.Clip:return o.thumbnail;case l.E.Subject:case l.E.Playlist:return o.cover;case l.E.Series:return o.tallposter;default:return""}}function g(e){var t,n=u(r.useState(!1),2),l=n[0],c=n[1],s=u(r.useState(""),2),g=s[0],d=s[1],h=u(r.useState(""),2),p=h[0],b=h[1],v=i.j.createUrl(e.imageUrl,{size:a.h2.Large}),y=m;return r.useEffect((function(){if(!v&&y&&0!==y.length){var e,t=(e=y)[Math.floor(Math.random()*e.length)];t.bgUrl&&d(t.bgUrl),t.textUrl&&b(t.textUrl)}}),[]),r.useEffect((function(){if(v){var e=new Image;return e.onload=function(){return c(!0)},e.src=v,function(){return e.onload=null}}}),[]),r.createElement("div",{className:"d-flex"},e.leftComponent?e.leftComponent():r.createElement("div",{className:"".concat(o.left," bg-light"),style:{backgroundImage:"url('".concat(g,"')")}},p&&r.createElement("div",{className:o.leftTextImage,style:{backgroundImage:"url('".concat(p,"')")}}),l&&r.createElement(r.Fragment,null,r.createElement("div",{className:o.blur,style:{backgroundImage:"url('".concat(v,"')")}}),r.createElement("div",{className:"".concat(o.imageContainer," ").concat(f(e.objectType))},r.createElement("div",{className:o.imagePosition},r.createElement("img",{className:o.image,src:v,alt:e.title}))))),r.createElement("div",{className:"".concat(o.right," bg-white d-flex flex-column")},r.createElement("div",{className:"position-absolute d-flex align-items-center ".concat(o.linksContainer)},null===(t=e.links)||void 0===t?void 0:t.map((function(e,t){return e.hide?r.createElement(r.Fragment,{key:t}):r.createElement("a",{key:t,href:e.url,className:"info-link fw-semibold",onClick:e.onClick},e.text)}))),e.children))}}}]);
2
+ //# sourceMappingURL=5157-855821ccce-lite.chunk.js.map