@clickview/lite 0.52.3-dev.1 → 0.52.3-dev.2

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 (282) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/languages/en.json +1 -1
  3. package/dist/scripts/1063-5a732288dc-lite.chunk.js +2 -0
  4. package/dist/scripts/1063-5a732288dc-lite.chunk.js.map +1 -0
  5. package/dist/scripts/{9173-2392d447a6-lite.chunk.js → 1104-f057c6dea1-lite.chunk.js} +3 -3
  6. package/dist/scripts/{9173-2392d447a6-lite.chunk.js.map → 1104-f057c6dea1-lite.chunk.js.map} +1 -1
  7. package/dist/scripts/{1125-aac132b88f-lite.chunk.js → 1125-c5138ef662-lite.chunk.js} +2 -2
  8. package/dist/scripts/1125-c5138ef662-lite.chunk.js.map +1 -0
  9. package/dist/scripts/1169-9b7d850bab-lite.chunk.js +2 -0
  10. package/dist/scripts/1169-9b7d850bab-lite.chunk.js.map +1 -0
  11. package/dist/scripts/{1379-6f35e2e9bb-lite.chunk.js → 1379-ca519ec56b-lite.chunk.js} +3 -3
  12. package/dist/scripts/{1379-6f35e2e9bb-lite.chunk.js.map → 1379-ca519ec56b-lite.chunk.js.map} +1 -1
  13. package/dist/scripts/1672-0d1fc90529-lite.chunk.js +3 -0
  14. package/dist/scripts/1672-0d1fc90529-lite.chunk.js.map +1 -0
  15. package/dist/scripts/1725-99450ed637-lite.chunk.js +2 -0
  16. package/dist/scripts/1725-99450ed637-lite.chunk.js.map +1 -0
  17. package/dist/scripts/1891-5914c54eca-lite.chunk.js +2 -0
  18. package/dist/scripts/1891-5914c54eca-lite.chunk.js.map +1 -0
  19. package/dist/scripts/1896-399a91d18c-lite.chunk.js +2 -0
  20. package/dist/scripts/1896-399a91d18c-lite.chunk.js.map +1 -0
  21. package/dist/scripts/193-797b89797a-lite.chunk.js +2 -0
  22. package/dist/scripts/193-797b89797a-lite.chunk.js.map +1 -0
  23. package/dist/scripts/209-fe96739cb5-lite.chunk.js +2 -0
  24. package/dist/scripts/209-fe96739cb5-lite.chunk.js.map +1 -0
  25. package/dist/scripts/2134-b8d5c46887-lite.chunk.js +2 -0
  26. package/dist/scripts/2134-b8d5c46887-lite.chunk.js.map +1 -0
  27. package/dist/scripts/2142-f71cf5c71f-lite.chunk.js +2 -0
  28. package/dist/scripts/2142-f71cf5c71f-lite.chunk.js.map +1 -0
  29. package/dist/scripts/2402-ff1b4adf1a-lite.chunk.js +2 -0
  30. package/dist/scripts/2402-ff1b4adf1a-lite.chunk.js.map +1 -0
  31. package/dist/scripts/2548-c5dd2899df-lite.chunk.js +2 -0
  32. package/dist/scripts/2548-c5dd2899df-lite.chunk.js.map +1 -0
  33. package/dist/scripts/2952-c3a826b714-lite.chunk.js +2 -0
  34. package/dist/scripts/2952-c3a826b714-lite.chunk.js.map +1 -0
  35. package/dist/scripts/3404-23125f10ea-lite.chunk.js +2 -0
  36. package/dist/scripts/3404-23125f10ea-lite.chunk.js.map +1 -0
  37. package/dist/scripts/3633-f3609526a5-lite.chunk.js +2 -0
  38. package/dist/scripts/3633-f3609526a5-lite.chunk.js.map +1 -0
  39. package/dist/scripts/3728-eed9e78985-lite.chunk.js +2 -0
  40. package/dist/scripts/3728-eed9e78985-lite.chunk.js.map +1 -0
  41. package/dist/scripts/4063-5fa157657f-lite.chunk.js +2 -0
  42. package/dist/scripts/4063-5fa157657f-lite.chunk.js.map +1 -0
  43. package/dist/scripts/4182-ba03f3ce3c-lite.chunk.js +2 -0
  44. package/dist/scripts/4182-ba03f3ce3c-lite.chunk.js.map +1 -0
  45. package/dist/scripts/4273-e42f763f00-lite.chunk.js +3 -0
  46. package/dist/scripts/4273-e42f763f00-lite.chunk.js.map +1 -0
  47. package/dist/scripts/4395-d0815835c8-lite.chunk.js +2 -0
  48. package/dist/scripts/4395-d0815835c8-lite.chunk.js.map +1 -0
  49. package/dist/scripts/4502-af4903784e-lite.chunk.js +2 -0
  50. package/dist/scripts/4502-af4903784e-lite.chunk.js.map +1 -0
  51. package/dist/scripts/4850-bb9541d3ed-lite.chunk.js +2 -0
  52. package/dist/scripts/4850-bb9541d3ed-lite.chunk.js.map +1 -0
  53. package/dist/scripts/5573-4352a3537e-lite.chunk.js +2 -0
  54. package/dist/scripts/5573-4352a3537e-lite.chunk.js.map +1 -0
  55. package/dist/scripts/5595-3acc9593bf-lite.chunk.js +2 -0
  56. package/dist/scripts/5595-3acc9593bf-lite.chunk.js.map +1 -0
  57. package/dist/scripts/5606-69c0ca2b97-lite.chunk.js +2 -0
  58. package/dist/scripts/5606-69c0ca2b97-lite.chunk.js.map +1 -0
  59. package/dist/scripts/5877-628732da21-lite.chunk.js +2 -0
  60. package/dist/scripts/5877-628732da21-lite.chunk.js.map +1 -0
  61. package/dist/scripts/5936-cd98109a7b-lite.chunk.js +2 -0
  62. package/dist/scripts/5936-cd98109a7b-lite.chunk.js.map +1 -0
  63. package/dist/scripts/{5940-f335f8c290-lite.chunk.js → 5940-2767b40c40-lite.chunk.js} +2 -2
  64. package/dist/scripts/5940-2767b40c40-lite.chunk.js.map +1 -0
  65. package/dist/scripts/6054-1e9b86d631-lite.chunk.js +2 -0
  66. package/dist/scripts/6054-1e9b86d631-lite.chunk.js.map +1 -0
  67. package/dist/scripts/6138-2ef7ee071a-lite.chunk.js +2 -0
  68. package/dist/scripts/6138-2ef7ee071a-lite.chunk.js.map +1 -0
  69. package/dist/scripts/{624-575b07d922-lite.chunk.js → 624-09b51a9d32-lite.chunk.js} +3 -3
  70. package/dist/scripts/{624-575b07d922-lite.chunk.js.map → 624-09b51a9d32-lite.chunk.js.map} +1 -1
  71. package/dist/scripts/6263-8a7931bf51-lite.chunk.js +2 -0
  72. package/dist/scripts/6263-8a7931bf51-lite.chunk.js.map +1 -0
  73. package/dist/scripts/6290-28ae0e8a60-lite.chunk.js +2 -0
  74. package/dist/scripts/6290-28ae0e8a60-lite.chunk.js.map +1 -0
  75. package/dist/scripts/6470-9a700cabce-lite.chunk.js +2 -0
  76. package/dist/scripts/6470-9a700cabce-lite.chunk.js.map +1 -0
  77. package/dist/scripts/6481-035d218a77-lite.chunk.js +2 -0
  78. package/dist/scripts/6481-035d218a77-lite.chunk.js.map +1 -0
  79. package/dist/scripts/6532-59e9abf69d-lite.chunk.js +2 -0
  80. package/dist/scripts/6532-59e9abf69d-lite.chunk.js.map +1 -0
  81. package/dist/scripts/6596-f75129c039-lite.chunk.js +2 -0
  82. package/dist/scripts/6596-f75129c039-lite.chunk.js.map +1 -0
  83. package/dist/scripts/6604-9adec889c7-lite.chunk.js +2 -0
  84. package/dist/scripts/6604-9adec889c7-lite.chunk.js.map +1 -0
  85. package/dist/scripts/6746-3f501b95cf-lite.chunk.js +2 -0
  86. package/dist/scripts/6746-3f501b95cf-lite.chunk.js.map +1 -0
  87. package/dist/scripts/714-c00ad56229-lite.chunk.js +2 -0
  88. package/dist/scripts/714-c00ad56229-lite.chunk.js.map +1 -0
  89. package/dist/scripts/7163-84c2b15394-lite.chunk.js +2 -0
  90. package/dist/scripts/7163-84c2b15394-lite.chunk.js.map +1 -0
  91. package/dist/scripts/7178-ed74c33056-lite.chunk.js +2 -0
  92. package/dist/scripts/7178-ed74c33056-lite.chunk.js.map +1 -0
  93. package/dist/scripts/7223-0bfab7e57a-lite.chunk.js +2 -0
  94. package/dist/scripts/7223-0bfab7e57a-lite.chunk.js.map +1 -0
  95. package/dist/scripts/7234-84c087600e-lite.chunk.js +2 -0
  96. package/dist/scripts/7234-84c087600e-lite.chunk.js.map +1 -0
  97. package/dist/scripts/7267-fd5085f5c9-lite.chunk.js +2 -0
  98. package/dist/scripts/7267-fd5085f5c9-lite.chunk.js.map +1 -0
  99. package/dist/scripts/7633-6c1ffdd082-lite.chunk.js +2 -0
  100. package/dist/scripts/7633-6c1ffdd082-lite.chunk.js.map +1 -0
  101. package/dist/scripts/7679-8f2d6a3487-lite.chunk.js +2 -0
  102. package/dist/scripts/7679-8f2d6a3487-lite.chunk.js.map +1 -0
  103. package/dist/scripts/7757-7e293be936-lite.chunk.js +2 -0
  104. package/dist/scripts/7757-7e293be936-lite.chunk.js.map +1 -0
  105. package/dist/scripts/7795-c6d38bc3e5-lite.chunk.js +2 -0
  106. package/dist/scripts/7795-c6d38bc3e5-lite.chunk.js.map +1 -0
  107. package/dist/scripts/7818-230982fc27-lite.chunk.js +2 -0
  108. package/dist/scripts/7818-230982fc27-lite.chunk.js.map +1 -0
  109. package/dist/scripts/8323-360541a2a8-lite.chunk.js +3 -0
  110. package/dist/scripts/8323-360541a2a8-lite.chunk.js.map +1 -0
  111. package/dist/scripts/8709-c4f1068232-lite.chunk.js +2 -0
  112. package/dist/scripts/8709-c4f1068232-lite.chunk.js.map +1 -0
  113. package/dist/scripts/8982-a3dc4a6b3c-lite.chunk.js +2 -0
  114. package/dist/scripts/8982-a3dc4a6b3c-lite.chunk.js.map +1 -0
  115. package/dist/scripts/9010-024dcc8f9a-lite.chunk.js +2 -0
  116. package/dist/scripts/9010-024dcc8f9a-lite.chunk.js.map +1 -0
  117. package/dist/scripts/9016-82d7e0afb9-lite.chunk.js +3 -0
  118. package/dist/scripts/9016-82d7e0afb9-lite.chunk.js.map +1 -0
  119. package/dist/scripts/9173-f9708ec0de-lite.chunk.js +2 -0
  120. package/dist/scripts/9173-f9708ec0de-lite.chunk.js.map +1 -0
  121. package/dist/scripts/9230-ae200d2bd3-lite.chunk.js +3 -0
  122. package/dist/scripts/9230-ae200d2bd3-lite.chunk.js.map +1 -0
  123. package/dist/scripts/9359-1fb4413e0d-lite.chunk.js +2 -0
  124. package/dist/scripts/9359-1fb4413e0d-lite.chunk.js.map +1 -0
  125. package/dist/scripts/{9395-4cf6f3948e-lite.chunk.js → 9395-e1a02b01ce-lite.chunk.js} +3 -3
  126. package/dist/scripts/{9395-4cf6f3948e-lite.chunk.js.map → 9395-e1a02b01ce-lite.chunk.js.map} +1 -1
  127. package/dist/scripts/9399-d7a92ce84a-lite.chunk.js +2 -0
  128. package/dist/scripts/9399-d7a92ce84a-lite.chunk.js.map +1 -0
  129. package/dist/scripts/{9478-99486906b9-lite.chunk.js → 9478-abfa7ed3cc-lite.chunk.js} +3 -3
  130. package/dist/scripts/{9478-99486906b9-lite.chunk.js.map → 9478-abfa7ed3cc-lite.chunk.js.map} +1 -1
  131. package/dist/scripts/{953-fd31f9f016-lite.chunk.js → 953-225db845ab-lite.chunk.js} +3 -3
  132. package/dist/scripts/{953-fd31f9f016-lite.chunk.js.map → 953-225db845ab-lite.chunk.js.map} +1 -1
  133. package/dist/scripts/9719-9736913451-lite.chunk.js +3 -0
  134. package/dist/scripts/9719-9736913451-lite.chunk.js.map +1 -0
  135. package/dist/scripts/999-bdc7956050-lite.chunk.js +2 -0
  136. package/dist/scripts/999-bdc7956050-lite.chunk.js.map +1 -0
  137. package/dist/scripts/bundle-9f8729bedb.min.js +3 -0
  138. package/dist/scripts/bundle-9f8729bedb.min.js.map +1 -0
  139. package/package.json +1 -1
  140. package/dist/scripts/1076-10e5ee6c22-lite.chunk.js +0 -2
  141. package/dist/scripts/1076-10e5ee6c22-lite.chunk.js.map +0 -1
  142. package/dist/scripts/1125-aac132b88f-lite.chunk.js.map +0 -1
  143. package/dist/scripts/1169-9b1c04fd85-lite.chunk.js +0 -2
  144. package/dist/scripts/1169-9b1c04fd85-lite.chunk.js.map +0 -1
  145. package/dist/scripts/1672-672f298d82-lite.chunk.js +0 -3
  146. package/dist/scripts/1672-672f298d82-lite.chunk.js.map +0 -1
  147. package/dist/scripts/1725-075015497e-lite.chunk.js +0 -2
  148. package/dist/scripts/1725-075015497e-lite.chunk.js.map +0 -1
  149. package/dist/scripts/1818-64a145c5fe-lite.chunk.js +0 -2
  150. package/dist/scripts/1818-64a145c5fe-lite.chunk.js.map +0 -1
  151. package/dist/scripts/1820-993521951d-lite.chunk.js +0 -2
  152. package/dist/scripts/1820-993521951d-lite.chunk.js.map +0 -1
  153. package/dist/scripts/1891-e80f9f17ee-lite.chunk.js +0 -2
  154. package/dist/scripts/1891-e80f9f17ee-lite.chunk.js.map +0 -1
  155. package/dist/scripts/1896-32a6eeda5c-lite.chunk.js +0 -2
  156. package/dist/scripts/1896-32a6eeda5c-lite.chunk.js.map +0 -1
  157. package/dist/scripts/193-f08b054631-lite.chunk.js +0 -2
  158. package/dist/scripts/193-f08b054631-lite.chunk.js.map +0 -1
  159. package/dist/scripts/209-de1729d1b1-lite.chunk.js +0 -2
  160. package/dist/scripts/209-de1729d1b1-lite.chunk.js.map +0 -1
  161. package/dist/scripts/2134-bca2f4697e-lite.chunk.js +0 -2
  162. package/dist/scripts/2134-bca2f4697e-lite.chunk.js.map +0 -1
  163. package/dist/scripts/2548-b81ae38f1f-lite.chunk.js +0 -2
  164. package/dist/scripts/2548-b81ae38f1f-lite.chunk.js.map +0 -1
  165. package/dist/scripts/2703-591ccf069c-lite.chunk.js +0 -2
  166. package/dist/scripts/2703-591ccf069c-lite.chunk.js.map +0 -1
  167. package/dist/scripts/3404-171fdee802-lite.chunk.js +0 -2
  168. package/dist/scripts/3404-171fdee802-lite.chunk.js.map +0 -1
  169. package/dist/scripts/3633-66d28be6f8-lite.chunk.js +0 -2
  170. package/dist/scripts/3633-66d28be6f8-lite.chunk.js.map +0 -1
  171. package/dist/scripts/3728-d7ecfc6667-lite.chunk.js +0 -2
  172. package/dist/scripts/3728-d7ecfc6667-lite.chunk.js.map +0 -1
  173. package/dist/scripts/3922-d40b0ce5aa-lite.chunk.js +0 -2
  174. package/dist/scripts/3922-d40b0ce5aa-lite.chunk.js.map +0 -1
  175. package/dist/scripts/4182-7aecc28a6f-lite.chunk.js +0 -2
  176. package/dist/scripts/4182-7aecc28a6f-lite.chunk.js.map +0 -1
  177. package/dist/scripts/4395-64da004753-lite.chunk.js +0 -2
  178. package/dist/scripts/4395-64da004753-lite.chunk.js.map +0 -1
  179. package/dist/scripts/4502-2e30d86385-lite.chunk.js +0 -2
  180. package/dist/scripts/4502-2e30d86385-lite.chunk.js.map +0 -1
  181. package/dist/scripts/5143-b6896dad98-lite.chunk.js +0 -2
  182. package/dist/scripts/5143-b6896dad98-lite.chunk.js.map +0 -1
  183. package/dist/scripts/5573-6cd98b69f2-lite.chunk.js +0 -2
  184. package/dist/scripts/5573-6cd98b69f2-lite.chunk.js.map +0 -1
  185. package/dist/scripts/5595-c4397e12a8-lite.chunk.js +0 -2
  186. package/dist/scripts/5595-c4397e12a8-lite.chunk.js.map +0 -1
  187. package/dist/scripts/5606-6c25caedc4-lite.chunk.js +0 -2
  188. package/dist/scripts/5606-6c25caedc4-lite.chunk.js.map +0 -1
  189. package/dist/scripts/5877-ddfaf6a7f5-lite.chunk.js +0 -2
  190. package/dist/scripts/5877-ddfaf6a7f5-lite.chunk.js.map +0 -1
  191. package/dist/scripts/5936-6fe810d3cb-lite.chunk.js +0 -2
  192. package/dist/scripts/5936-6fe810d3cb-lite.chunk.js.map +0 -1
  193. package/dist/scripts/5940-f335f8c290-lite.chunk.js.map +0 -1
  194. package/dist/scripts/6054-14d4ceeae3-lite.chunk.js +0 -2
  195. package/dist/scripts/6054-14d4ceeae3-lite.chunk.js.map +0 -1
  196. package/dist/scripts/6138-21ae042a7b-lite.chunk.js +0 -2
  197. package/dist/scripts/6138-21ae042a7b-lite.chunk.js.map +0 -1
  198. package/dist/scripts/6263-3455286798-lite.chunk.js +0 -2
  199. package/dist/scripts/6263-3455286798-lite.chunk.js.map +0 -1
  200. package/dist/scripts/6290-56412c6663-lite.chunk.js +0 -2
  201. package/dist/scripts/6290-56412c6663-lite.chunk.js.map +0 -1
  202. package/dist/scripts/6415-b29029aa1b-lite.chunk.js +0 -2
  203. package/dist/scripts/6415-b29029aa1b-lite.chunk.js.map +0 -1
  204. package/dist/scripts/6470-6216086d63-lite.chunk.js +0 -2
  205. package/dist/scripts/6470-6216086d63-lite.chunk.js.map +0 -1
  206. package/dist/scripts/6481-899eba8b3d-lite.chunk.js +0 -2
  207. package/dist/scripts/6481-899eba8b3d-lite.chunk.js.map +0 -1
  208. package/dist/scripts/6532-a6b65c91a7-lite.chunk.js +0 -2
  209. package/dist/scripts/6532-a6b65c91a7-lite.chunk.js.map +0 -1
  210. package/dist/scripts/6604-92193d6d68-lite.chunk.js +0 -2
  211. package/dist/scripts/6604-92193d6d68-lite.chunk.js.map +0 -1
  212. package/dist/scripts/6746-b5b2739944-lite.chunk.js +0 -2
  213. package/dist/scripts/6746-b5b2739944-lite.chunk.js.map +0 -1
  214. package/dist/scripts/679-e18e7956d0-lite.chunk.js +0 -2
  215. package/dist/scripts/679-e18e7956d0-lite.chunk.js.map +0 -1
  216. package/dist/scripts/714-432082f4fa-lite.chunk.js +0 -2
  217. package/dist/scripts/714-432082f4fa-lite.chunk.js.map +0 -1
  218. package/dist/scripts/7178-e603ea6b58-lite.chunk.js +0 -2
  219. package/dist/scripts/7178-e603ea6b58-lite.chunk.js.map +0 -1
  220. package/dist/scripts/7223-135cc7d675-lite.chunk.js +0 -2
  221. package/dist/scripts/7223-135cc7d675-lite.chunk.js.map +0 -1
  222. package/dist/scripts/729-c704d587d3-lite.chunk.js +0 -2
  223. package/dist/scripts/729-c704d587d3-lite.chunk.js.map +0 -1
  224. package/dist/scripts/7679-b01da2c09d-lite.chunk.js +0 -2
  225. package/dist/scripts/7679-b01da2c09d-lite.chunk.js.map +0 -1
  226. package/dist/scripts/7757-320e868e90-lite.chunk.js +0 -2
  227. package/dist/scripts/7757-320e868e90-lite.chunk.js.map +0 -1
  228. package/dist/scripts/7795-3ca0855d3a-lite.chunk.js +0 -2
  229. package/dist/scripts/7795-3ca0855d3a-lite.chunk.js.map +0 -1
  230. package/dist/scripts/7818-2eafc5f812-lite.chunk.js +0 -2
  231. package/dist/scripts/7818-2eafc5f812-lite.chunk.js.map +0 -1
  232. package/dist/scripts/8323-99cb03891e-lite.chunk.js +0 -3
  233. package/dist/scripts/8323-99cb03891e-lite.chunk.js.map +0 -1
  234. package/dist/scripts/8478-0292f02489-lite.chunk.js +0 -2
  235. package/dist/scripts/8478-0292f02489-lite.chunk.js.map +0 -1
  236. package/dist/scripts/8766-bcc7f11eac-lite.chunk.js +0 -2
  237. package/dist/scripts/8766-bcc7f11eac-lite.chunk.js.map +0 -1
  238. package/dist/scripts/8800-335154fe11-lite.chunk.js +0 -2
  239. package/dist/scripts/8800-335154fe11-lite.chunk.js.map +0 -1
  240. package/dist/scripts/8982-63c31685bf-lite.chunk.js +0 -2
  241. package/dist/scripts/8982-63c31685bf-lite.chunk.js.map +0 -1
  242. package/dist/scripts/9016-0c078a39cb-lite.chunk.js +0 -3
  243. package/dist/scripts/9016-0c078a39cb-lite.chunk.js.map +0 -1
  244. package/dist/scripts/9226-c236c0eeb1-lite.chunk.js +0 -2
  245. package/dist/scripts/9226-c236c0eeb1-lite.chunk.js.map +0 -1
  246. package/dist/scripts/9230-6dee40b1fb-lite.chunk.js +0 -3
  247. package/dist/scripts/9230-6dee40b1fb-lite.chunk.js.map +0 -1
  248. package/dist/scripts/9308-362f86711f-lite.chunk.js +0 -3
  249. package/dist/scripts/9308-362f86711f-lite.chunk.js.map +0 -1
  250. package/dist/scripts/9359-cc085d48a4-lite.chunk.js +0 -2
  251. package/dist/scripts/9359-cc085d48a4-lite.chunk.js.map +0 -1
  252. package/dist/scripts/9399-2a314327ac-lite.chunk.js +0 -2
  253. package/dist/scripts/9399-2a314327ac-lite.chunk.js.map +0 -1
  254. package/dist/scripts/9719-cf7d4172b6-lite.chunk.js +0 -3
  255. package/dist/scripts/9719-cf7d4172b6-lite.chunk.js.map +0 -1
  256. package/dist/scripts/bundle-fcc536bb54.min.js +0 -3
  257. package/dist/scripts/bundle-fcc536bb54.min.js.map +0 -1
  258. /package/dist/css/{5143-lite-676baa8218.chunk.css → 1063-lite-676baa8218.chunk.css} +0 -0
  259. /package/dist/css/{9173-lite-b361d438f6.chunk.css → 1104-lite-b361d438f6.chunk.css} +0 -0
  260. /package/dist/css/{679-lite-00eb7dadb2.chunk.css → 2952-lite-00eb7dadb2.chunk.css} +0 -0
  261. /package/dist/css/{4860-lite-93d7fad455.chunk.css → 4063-lite-93d7fad455.chunk.css} +0 -0
  262. /package/dist/css/{9308-lite-a3c7435ba4.chunk.css → 4273-lite-a3c7435ba4.chunk.css} +0 -0
  263. /package/dist/css/{729-lite-93d7fad455.chunk.css → 4850-lite-93d7fad455.chunk.css} +0 -0
  264. /package/dist/css/{3922-lite-e22262b911.chunk.css → 6596-lite-e22262b911.chunk.css} +0 -0
  265. /package/dist/css/{8766-lite-8c5d7658ec.chunk.css → 7163-lite-8c5d7658ec.chunk.css} +0 -0
  266. /package/dist/css/{1818-lite-5ef1706d69.chunk.css → 7234-lite-5ef1706d69.chunk.css} +0 -0
  267. /package/dist/css/{8478-lite-e22262b911.chunk.css → 9010-lite-e22262b911.chunk.css} +0 -0
  268. /package/dist/css/{6415-lite-707657102b.chunk.css → 9173-lite-707657102b.chunk.css} +0 -0
  269. /package/dist/css/{1820-lite-c88eb54bee.chunk.css → 999-lite-c88eb54bee.chunk.css} +0 -0
  270. /package/dist/scripts/{1379-6f35e2e9bb-lite.chunk.js.LICENSE.txt → 1104-f057c6dea1-lite.chunk.js.LICENSE.txt} +0 -0
  271. /package/dist/scripts/{1672-672f298d82-lite.chunk.js.LICENSE.txt → 1379-ca519ec56b-lite.chunk.js.LICENSE.txt} +0 -0
  272. /package/dist/scripts/{624-575b07d922-lite.chunk.js.LICENSE.txt → 1672-0d1fc90529-lite.chunk.js.LICENSE.txt} +0 -0
  273. /package/dist/scripts/{8323-99cb03891e-lite.chunk.js.LICENSE.txt → 4273-e42f763f00-lite.chunk.js.LICENSE.txt} +0 -0
  274. /package/dist/scripts/{9173-2392d447a6-lite.chunk.js.LICENSE.txt → 624-09b51a9d32-lite.chunk.js.LICENSE.txt} +0 -0
  275. /package/dist/scripts/{9230-6dee40b1fb-lite.chunk.js.LICENSE.txt → 8323-360541a2a8-lite.chunk.js.LICENSE.txt} +0 -0
  276. /package/dist/scripts/{9016-0c078a39cb-lite.chunk.js.LICENSE.txt → 9016-82d7e0afb9-lite.chunk.js.LICENSE.txt} +0 -0
  277. /package/dist/scripts/{9308-362f86711f-lite.chunk.js.LICENSE.txt → 9230-ae200d2bd3-lite.chunk.js.LICENSE.txt} +0 -0
  278. /package/dist/scripts/{9395-4cf6f3948e-lite.chunk.js.LICENSE.txt → 9395-e1a02b01ce-lite.chunk.js.LICENSE.txt} +0 -0
  279. /package/dist/scripts/{9478-99486906b9-lite.chunk.js.LICENSE.txt → 9478-abfa7ed3cc-lite.chunk.js.LICENSE.txt} +0 -0
  280. /package/dist/scripts/{953-fd31f9f016-lite.chunk.js.LICENSE.txt → 953-225db845ab-lite.chunk.js.LICENSE.txt} +0 -0
  281. /package/dist/scripts/{9719-cf7d4172b6-lite.chunk.js.LICENSE.txt → 9719-9736913451-lite.chunk.js.LICENSE.txt} +0 -0
  282. /package/dist/scripts/{bundle-fcc536bb54.min.js.LICENSE.txt → bundle-9f8729bedb.min.js.LICENSE.txt} +0 -0
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[7223],{49935:(e,t,n)=>{n.d(t,{Oo:()=>v,b2:()=>f});var a=n(32735),r=n(23481),i=n(36848),c=n(86764),l=n(3747),o=n(5859),s=n(35223),u=n(83914);function m(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 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 d(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)?d(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 d(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 p=r.T.encloseNamespace("shared.breadcrumbComponent"),b=a.forwardRef((function(e,t){var n=e.breadcrumb,r=n.name,c=n.appLink,l=n.active,o=e.withBackIcon;return a.createElement("li",{className:"breadcrumb-item".concat(l?" active":"")},l?a.createElement("strong",null,r):a.createElement(i.F,{appLink:c,ref:t},o&&a.createElement(u.x,{svgName:s.vn.ChevronLeft,size:u.S.Small}),a.createElement("span",{className:o?"ms-2":""},r)))})),v=function(e){var t=e.breadcrumbs,n=(0,l.a)(c.r.XS),r=(null==t?void 0:t.length)||0,i=m(a.useState(!1),2),o=i[0],s=i[1],u=m(a.useState(!1),2),d=u[0],v=u[1],f=a.useRef();if(a.useEffect((function(){var e,n=null!==(e=null==t?void 0:t.reduce((function(e,t){return e+t.name.length}),0))&&void 0!==e?e:0;r>3&&n>56&&s(!0)}),[null==t?void 0:t.length]),a.useLayoutEffect((function(){var e;d&&(null===(e=f.current)||void 0===e||e.focus())}),[f.current,d]),!r||n&&r<2)return a.createElement(a.Fragment,null);if(n)return a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},a.createElement(b,{breadcrumb:t[r-2],withBackIcon:!0})));var g=a.createElement(b,{breadcrumb:t[0]}),E=r>2?a.createElement(b,{breadcrumb:t[r-2]}):a.createElement(a.Fragment,null),y=a.createElement(b,{breadcrumb:t[r-1]}),S=t.slice(1,r-2);return a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},g,o?a.createElement("li",{className:"breadcrumb-item"},a.createElement("button",{className:"btn-link",onClick:function(){s(!1),v(!0)},"aria-label":p("expand")},"...")):S.map((function(e,t){return a.createElement(b,{key:t,breadcrumb:e,ref:0===t?f:null})})),E,y))},f=a.memo((function(e){var t=e.numItems,n=void 0===t?3:t;return(0,l.a)(c.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"},o.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"}},74696:(e,t,n)=>{n.d(t,{S:()=>s});var a=n(32735),r=n(68050),i=n(69111),c=n(9977),l=n(79967);const o={partialOptions:"Gufgq",partialName:"SicQQ",partialDescription:"dPGMq",partialThumbnail:"vZrnb",partialDragHandle:"iq73R"};function s(e){return a.createElement("div",{className:"mx-2"},Array(e.numVideos).fill(null).map((function(t,n){return a.createElement("div",{className:"d-flex",key:n},e.allowBulkActions&&a.createElement("div",{className:"form-check pe-3 pe-sm-2 mx-0 mx-md-2"}),a.createElement(u,Object.assign({},e)))})))}function u(e){var t=(0,l.k)(),n="sm"===c.O.getSize(t,"md"),s=e.withReordering&&!t.xs;return a.createElement(r.Z,{className:"".concat(n?"":"py-2"," flex-grow-1")},a.createElement(i.Z,Object.assign({},c.O.getThumbnailColumns(),{className:"flex-column align-items-flex-start ".concat(n?"pb-2 pe-1":"mb-1 pe-3 pe-md-2")}),a.createElement(r.Z,null,!!s&&a.createElement("div",{className:"d-flex align-items-center justify-content-center col-2"},a.createElement("div",{className:"partial-loading-background ".concat(o.partialDragHandle)})),a.createElement(i.Z,{xs:c.O.getThumbnailColSize(s)},a.createElement("div",{className:"partial-loading-background ".concat(n?"rounded":"rounded-3"," ").concat(o.partialThumbnail)})))),a.createElement(i.Z,Object.assign({},c.O.getDetailsColumns(),{className:n?"pb-2":"px-2"}),a.createElement("div",{className:"partial-loading-background mb-1 ".concat(o.partialName)}),a.createElement("div",{className:"partial-loading-background ".concat(o.partialDescription)})))}s.defaultProps={numVideos:15}},99705:(e,t,n)=>{var a,r;n.d(t,{b:()=>r}),function(e){e.AddToPlaylist="115005679748",e.EditSsoAccounts="8202508040345",e.LibraryEditor="360001974533",e.VideoAccess="360000153947",e.AddFromOnline="360011718234",e.UploadToLibraryEditor="360012069334",e.PBTErrorCodes="360012421153",e.ManuelReview="360020004534",e.LibraryReview="360000163788"}(a||(a={})),function(e){e.Integrations="4407268725529",e.Classrooms="4405362551833",e.MakeInteractive="4405370510873",e.EditSsoAccounts="8202605666073",e.UploadToLibraryEditor="10672936659865",e.AddFromLite="10671345281561",e.ManageSsoYearGroups="14691130889241",e.ContentReview="18525199576601",e.ContentPermissions="14692125209497",e.AccessSettings="22110291468057",e.ContentGuidelines="24133696186009",e.FoxtelFaq="24133519542169",e.ViviIntegration="23826297956377",e.AppleTvIntegration="25832373739929",e.RssFeed="32567445635097"}(r||(r={}))},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")}}))}}},23224:(e,t,n)=>{n.d(t,{j:()=>p});var a=n(32735),r=n(39202),i=n(23481),c=n(65858),l=n(38502),o=n(14070),s=n(97291),u="settings.restrictedVideosTabs",m=i.T.encloseNamespace(u),d={restrictedVideos:{application:s.O.SETTINGS,action:o.e.Settings.VIDEO_RESTRICTIONS},contentReview:{application:s.O.SETTINGS,action:o.e.Settings.CONTENT_REVIEW},contentReviewSettings:{application:s.O.SETTINGS,action:o.e.Settings.CONTENT_REVIEW_SETTINGS}};function p(e){return a.createElement("div",{className:"mb-3"},a.createElement(l.r,{tabs:[{name:m("restrictedVideos"),appLink:d.restrictedVideos,active:"restricted-videos"===e.active,analyticsData:{name:m("restrictedVideos"),url:r.C$.getHref(d.restrictedVideos)},analyticsOptions:{actionType:c.Vw.Click,entity:c.py.Url,location:c.LZ.MagicTabs}},{name:m("contentReview"),appLink:d.contentReview,active:"content-review"===e.active,analyticsData:{name:i.T.getPhrase(u,"contentReview"),url:r.C$.getHref(d.contentReview)},analyticsOptions:{actionType:c.Vw.Click,entity:c.py.Url,location:c.LZ.MagicTabs}},{name:m("contentReviewSettings"),appLink:d.contentReviewSettings,active:"content-review-settings"===e.active,analyticsData:{name:i.T.getPhrase(u,"contentReviewSettings"),url:r.C$.getHref(d.contentReviewSettings)},analyticsOptions:{actionType:c.Vw.Click,entity:c.py.Url,location:c.LZ.MagicTabs}}]}))}},81803:(e,t,n)=>{n.d(t,{d:()=>b});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 d="settings.settingsLayout",p=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 b(e){var t,n=p(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(d,"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)}},97383:(e,t,n)=>{n.r(t),n.d(t,{VideoRestrictionsView:()=>M});var a=n(32735),r=n(23481),i=n(20354),c=n(65858),l=n(36848),o=n(37395),s=n(83345),u=n(74696),m=n(13231),d=n(51365),p=n(16714),b=n(5345),v=n(1666),f=n(31949),g=n(22902),E=n(26361),y=n(14070),S=n(97291),h=n(21491),N=n(51855),k=n(27638),T=n(10741),I=n(22490),w=n(82431),O=n(23224),L=n(81803),A=n(23232),C=n(99705),R=n(12778),x=n(99742),j="settings.videoRestrictions",V=r.T.encloseNamespace(j);function P(){var e=R.o.getLiteArticle(C.b.ContentReview);return a.createElement(A.u,null,a.createElement(A.u.Image,{src:x.W.EmptyStates.ContentReview.RESTRICTED_VIDEOS}),a.createElement(A.u.Heading,null,a.createElement(s.x,{namespace:j,phrase:"emptyHeading"})),a.createElement(A.u.Cta,{href:e,text:V("emptyCta"),className:"btn btn-link info-link"}))}var G="settings.videoRestrictions",D=r.T.encloseNamespace(G),F={application:S.O.SETTINGS,action:y.e.Settings.CONTENT_PERMISSIONS};function M(e){var t,n,r,A,C,R=(0,k.u)(c.LZ.VideoThumbnail),x=R.setFavourite,j=R.canFavourite,V=(0,g.T)().hasPermissions,M=(0,N.G)().isPlugin,_=i.a.useBasicFetch(h.I.getRestrictedObjects([b.c.User],e.cursor)),Z=i.a.useBasicFetch(f.N.currentUser()),W=i.a.useBasicFetch(Z.data&&v.h.yearGroups(Z.data.customerId));return a.createElement(L.d,{heading:D("heading"),breadcrumbs:[D("breadcrumb")],requiredPermissions:p.C.ManageVideoAccess},a.createElement(O.j,{active:"restricted-videos"}),a.createElement("div",{className:"d-flex justify-content-between align-items-center"},a.createElement("p",{className:"mb-0"},a.createElement(s.x,{namespace:G,phrase:"description"})," ",a.createElement(l.F,{appLink:F,className:"info-link"},a.createElement(s.x,{namespace:G,phrase:"contentPermissions"})))),a.createElement("hr",null),!_.hasCompleted&&a.createElement(u.S,null),_.hasCompleted&&!(null===(n=null===(t=_.data)||void 0===t?void 0:t.data)||void 0===n?void 0:n.length)&&a.createElement(P,null),!!(null===(A=null===(r=_.data)||void 0===r?void 0:r.data)||void 0===A?void 0:A.length)&&a.createElement(a.Fragment,null,a.createElement(d.M.Provider,{value:{getVideoActions:function(e,t){return[{order:1,label:D("manageVideoAccess"),button:!0,className:"btn btn-outline-dark text-nowrap",appLink:{application:S.O.DEFAULT,action:y.e.Default.MANAGE_ACCCESS,params:{objectId:e.id,objectTypeId:e.typeId}},analyticsOptions:Object.assign(Object.assign({},t.analyticsOptions),{actionType:c.Vw.SetAccess,workflowPhase:c.eu.Start}),analyticsData:t.analyticsData}]}}},a.createElement(m.E4,{videos:_.data.data.filter((function(e){return!!E.l.getRestrictionByType(e,b.c.User)})),yearGroups:W.data,getVideoAppLink:I.W.getAppLink,getSubTextAppLink:function(e){return w.j.getSeriesAppLink(e.series)},setFavourite:x,canFavourite:j,hasPermissions:V,presentationAudiences:[],getPreviewQuestionsAppLink:function(e){return T.j.getPreviewQuestionsAppLink(e)},isPlugin:M,getClassroomGuideAppLink:I.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:I.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:I.W.getResourceGuidanceAppLink})),(null===(C=_.data.pagination)||void 0===C?void 0:C.cursors)&&a.createElement("div",{className:"clearfix"},a.createElement(o.t,{cursors:_.data.pagination.cursors,appLink:{application:S.O.SETTINGS,action:y.e.Settings.VIDEO_RESTRICTIONS},buttonVariant:"outline-dark",className:"py-2 float-end"}))))}},21491:(e,t,n)=>{n.d(t,{I:()=>c});var a=n(99940),r=n(97395),i=n(62803),c={getRestrictions:function(e){return{key:"restrictions:".concat(e),url:r._.urlBuilder("{gateway}/v1/objects/restrictions",{id:e})}},addRestriction:function(e){return{type:a.k.POST,key:"restrictions:".concat(e.objectTypeId,":").concat(e.objectId,":add"),url:"{gateway}/v1/restrictions",data:[e],invalidationKeys:["restrictions"]}},deleteRestrictions:function(e){return{url:r._.urlBuilder("{gateway}/v1/restrictions",{objectId:e}),key:"restrictions:delete",type:a.k.DELETE,invalidationKeys:["restrictions"]}},getRestrictedObjects:function(e,t){var n={type:e,"query.video":i.v.VIDEO_COLLECTION,"query.interactive":i.v.INTERACTIVE_COLLECTION,"query.clip":i.v.CLIP_COLLECTION};return t&&(n.cursor=t),{url:r._.urlBuilder("{gateway}/v1/restrictions/objects",n),key:"restrictions:objects:".concat(e.sort().join(","),":").concat(t)}},approveAll:function(){return{url:"{gateway}/v1/library-reviews/restrictions",key:"restrictions:approve:all",type:a.k.DELETE}}}},87432:(e,t,n)=>{n.d(t,{Z:()=>a});const a={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}},68050:(e,t,n)=>{n.d(t,{Z:()=>s});var a=n(95685),r=n.n(a),i=n(32735),c=n(46304),l=n(74512);const o=i.forwardRef((({bsPrefix:e,className:t,as:n="div",...a},i)=>{const o=(0,c.vE)(e,"row"),s=(0,c.pi)(),u=(0,c.zG)(),m=`${o}-cols`,d=[];return s.forEach((e=>{const t=a[e];let n;delete a[e],null!=t&&"object"==typeof t?({cols:n}=t):n=t;const r=e!==u?`-${e}`:"";null!=n&&d.push(`${m}${r}-${n}`)})),(0,l.jsx)(n,{ref:i,...a,className:r()(t,o,...d)})}));o.displayName="Row";const s=o}}]);
2
+ //# sourceMappingURL=7223-0bfab7e57a-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/7223-0bfab7e57a-lite.chunk.js","mappings":"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","sources":["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/components/video-list/partial-loading/partial-video-list.scss","file:///app/packages/libs/shared/src/components/video-list/partial-loading/PartialVideoList.tsx","file:///app/packages/libs/shared/src/enums/SupportArticle.ts","file:///app/packages/libs/shared/src/utils/PartialLoadingHelper.ts","file:///app/packages/projects/lite/src/apps/settings/components/restricted-videos-tabs/RestrictedVideosTabs.tsx","file:///app/packages/projects/lite/src/apps/settings/components/settings-layout/SettingsLayout.tsx","file:///app/packages/projects/lite/src/apps/settings/views/video-restrictions/VideoRestrictionsEmptyState.tsx","file:///app/packages/projects/lite/src/apps/settings/views/video-restrictions/VideoRestrictionsView.tsx","file:///app/packages/projects/lite/src/shared/flight-requests/RestrictionRequests.ts","file:///app/packages/libs/shared/src/components/pill-tab-selector/pill-tab-selector.scss","file:///app/node_modules/react-bootstrap/esm/Row.js"],"sourcesContent":["import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\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 namespace = 'shared.breadcrumbComponent';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\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 = React.forwardRef((\n props: BreadcrumbItemProps,\n ref: React.ForwardedRef<HTMLElement>\n) => {\n const { breadcrumb: { name, appLink, active }, withBackIcon } = props;\n return (\n <li className={`breadcrumb-item${active ? ' active' : ''}`}>\n {active\n ? <strong>{name}</strong>\n : <AppLink appLink={appLink} ref={ref}>\n {withBackIcon && <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{name}</span>\n </AppLink>\n }\n </li>\n );\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 const [ shouldFocus, setShouldFocus ] = React.useState(false);\n const expandRef = React.useRef<HTMLElement>();\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 /**\n * Focus our first expanded item the first time it appears.\n */\n React.useLayoutEffect(() => {\n if (shouldFocus)\n expandRef.current?.focus();\n }, [ expandRef.current, shouldFocus ]);\n\n function onClickExpand() {\n setCollapse(false);\n setShouldFocus(true);\n }\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\n className='btn-link'\n onClick={onClickExpand}\n aria-label={getPhrase('expand')}\n >\n ...\n </button>\n </li> :\n rest.map((breadcrumb, idx) => (\n <BreadcrumbItem\n key={idx}\n breadcrumb={breadcrumb}\n ref={idx === 0 ? expandRef : null}\n />\n ))\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","// extracted by mini-css-extract-plugin\nexport default {\"partialOptions\":\"Gufgq\",\"partialName\":\"SicQQ\",\"partialDescription\":\"dPGMq\",\"partialThumbnail\":\"vZrnb\",\"partialDragHandle\":\"iq73R\"};","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { VideoListHelper } from 'libs/shared/components/video-list/VideoListHelper';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\n\nimport styles from './partial-video-list.scss';\n\ninterface PartialVideoListProps {\n withReordering?: boolean;\n numVideos?: number;\n allowBulkActions?: boolean;\n}\n\nPartialVideoList.defaultProps = {\n numVideos: 15\n};\n\nexport function PartialVideoList(props: PartialVideoListProps): JSX.Element {\n return (\n <div className='mx-2'>\n {Array(props.numVideos).fill(null).map((_, i) => (\n <div className='d-flex' key={i}>\n {props.allowBulkActions && <div className='form-check pe-3 pe-sm-2 mx-0 mx-md-2' />}\n <PartialVideoItem {...props} />\n </div>\n ))}\n </div>\n );\n}\n\nexport function PartialVideoItem(props: PartialVideoListProps): JSX.Element {\n const breakpoints = useBreakpoints();\n\n const size = VideoListHelper.getSize(breakpoints, 'md');\n const isSmall = size === 'sm';\n\n const withDragHandle = props.withReordering && !breakpoints.xs;\n\n return (\n <Row className={`${isSmall ? '' : 'py-2'} flex-grow-1`}>\n <Col {...VideoListHelper.getThumbnailColumns()} className={`flex-column align-items-flex-start ${isSmall ? `pb-2 pe-1` : 'mb-1 pe-3 pe-md-2'}`}>\n <Row>\n {!!withDragHandle && (\n <div className='d-flex align-items-center justify-content-center col-2'>\n <div className={`partial-loading-background ${styles.partialDragHandle}`} />\n </div>\n )}\n <Col xs={VideoListHelper.getThumbnailColSize(withDragHandle)}>\n <div className={`partial-loading-background ${isSmall ? 'rounded' : 'rounded-3'} ${styles.partialThumbnail}`} />\n </Col>\n </Row>\n </Col>\n <Col {...VideoListHelper.getDetailsColumns()} className={isSmall ? 'pb-2' : 'px-2'}>\n <div className={`partial-loading-background mb-1 ${styles.partialName}`} />\n <div className={`partial-loading-background ${styles.partialDescription}`} />\n </Col>\n </Row>\n );\n}\n\n","// Article name mapped to article ID on support site. Used by `ArticleHelper`\n\nexport enum OnlineSupportArticle {\n AddToPlaylist = '115005679748',\n EditSsoAccounts = '8202508040345',\n\n // LE\n LibraryEditor = '360001974533',\n VideoAccess = '360000153947',\n AddFromOnline = '360011718234',\n UploadToLibraryEditor = '360012069334',\n PBTErrorCodes = '360012421153',\n ManuelReview = '360020004534',\n LibraryReview = '360000163788',\n}\n\nexport enum LiteSupportArticle {\n Integrations = '4407268725529',\n Classrooms = '4405362551833',\n MakeInteractive = '4405370510873',\n EditSsoAccounts = '8202605666073',\n UploadToLibraryEditor = '10672936659865',\n AddFromLite = '10671345281561',\n ManageSsoYearGroups = '14691130889241',\n ContentReview = '18525199576601',\n ContentPermissions = '14692125209497',\n AccessSettings = '22110291468057',\n ContentGuidelines = '24133696186009',\n FoxtelFaq = '24133519542169',\n ViviIntegration = '23826297956377',\n AppleTvIntegration = '25832373739929',\n RssFeed = '32567445635097'\n}\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 { AppLinkHelper } from 'libs/common/backbone/core';\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';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'settings.restrictedVideosTabs';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst APPLINKS = {\n restrictedVideos: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.VIDEO_RESTRICTIONS\n },\n contentReview: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.CONTENT_REVIEW\n },\n contentReviewSettings: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.CONTENT_REVIEW_SETTINGS\n }\n};\n\ninterface RestrictionTabsProps {\n active: 'restricted-videos' | 'content-review' | 'content-review-settings'\n}\n\nexport function RestrictionTabs(props: RestrictionTabsProps): JSX.Element {\n return (\n <div className='mb-3'>\n <PillTabSelector\n tabs={[{\n name: getPhrase('restrictedVideos'),\n appLink: APPLINKS.restrictedVideos,\n active: props.active === 'restricted-videos',\n analyticsData: {\n name: getPhrase('restrictedVideos'),\n url: AppLinkHelper.getHref(APPLINKS.restrictedVideos)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }, {\n name: getPhrase('contentReview'),\n appLink: APPLINKS.contentReview,\n active: props.active === 'content-review',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'contentReview'),\n url: AppLinkHelper.getHref(APPLINKS.contentReview)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }, {\n name: getPhrase('contentReviewSettings'),\n appLink: APPLINKS.contentReviewSettings,\n active: props.active === 'content-review-settings',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'contentReviewSettings'),\n url: AppLinkHelper.getHref(APPLINKS.contentReviewSettings)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }]}\n />\n </div>\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 React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nconst namespace = 'settings.videoRestrictions';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function VideoRestrictionsEmptyState(): JSX.Element {\n const href = ArticleHelper.getLiteArticle(LiteSupportArticle.ContentReview);\n\n return (\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.ContentReview.RESTRICTED_VIDEOS} />\n <EmptyState.Heading><Text namespace={namespace} phrase='emptyHeading' /></EmptyState.Heading>\n <EmptyState.Cta\n href={href}\n text={getPhrase('emptyCta')}\n className='btn btn-link info-link'\n />\n </EmptyState>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Pagination } from 'libs/shared/components/pagination/Pagination';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoActionsContext, VideoActionsOptions } from 'libs/shared/context/VideoActionsContext';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { RestrictionType } from 'libs/shared/enums/RestrictionType';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { CurrentUser, VideoTypes, VideoTypesCollection, YearGroup } from 'libs/shared/interfaces';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { RestrictionRequests } from 'shared/flight-requests/RestrictionRequests';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\nimport { RestrictionTabs } from 'apps/settings/components/restricted-videos-tabs/RestrictedVideosTabs';\nimport { SettingsLayout } from 'apps/settings/components/settings-layout/SettingsLayout';\nimport { VideoRestrictionsEmptyState } from 'apps/settings/views/video-restrictions/VideoRestrictionsEmptyState';\n\nconst namespace = 'settings.videoRestrictions';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst ContentPermissionAppLink = {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.CONTENT_PERMISSIONS\n};\n\ninterface VideoRestrictionsViewProps {\n cursor?: string;\n}\n\nexport function VideoRestrictionsView(props: VideoRestrictionsViewProps): JSX.Element {\n const { setFavourite, canFavourite } = useLiteFavourites(LocationContext.VideoThumbnail);\n const { hasPermissions } = usePermissions();\n const { isPlugin } = usePluginHelper();\n\n const videos = Flight.useBasicFetch<VideoTypesCollection>(\n RestrictionRequests.getRestrictedObjects([RestrictionType.User], props.cursor)\n );\n \n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n function getVideoActions(video: VideoTypes, options: VideoActionsOptions): ActionOptions[] {\n return [{\n order: 1,\n label: getPhrase('manageVideoAccess'),\n button: true,\n className: 'btn btn-outline-dark text-nowrap',\n appLink: {\n application: AppChannels.DEFAULT,\n action: Actions.Default.MANAGE_ACCCESS,\n params: {\n objectId: video.id,\n objectTypeId: video.typeId\n }\n },\n analyticsOptions: {\n ...options.analyticsOptions,\n actionType: UserAction.SetAccess,\n workflowPhase: WorkflowPhase.Start\n },\n analyticsData: options.analyticsData\n }];\n }\n\n return (\n <SettingsLayout\n heading={getPhrase('heading')}\n breadcrumbs={[getPhrase('breadcrumb')]}\n requiredPermissions={PermissionName.ManageVideoAccess}\n >\n <RestrictionTabs active='restricted-videos' />\n <div className='d-flex justify-content-between align-items-center'>\n <p className='mb-0'>\n <Text namespace={namespace} phrase='description'/>\n &nbsp;\n <AppLink appLink={ContentPermissionAppLink} className='info-link'>\n <Text namespace={namespace} phrase='contentPermissions'/>\n </AppLink>\n </p>\n </div>\n <hr />\n {!videos.hasCompleted &&\n <PartialVideoList />\n }\n\n {videos.hasCompleted && !videos.data?.data?.length &&\n <VideoRestrictionsEmptyState />\n }\n\n {!!videos.data?.data?.length &&\n <>\n <VideoActionsContext.Provider value={{ getVideoActions }}>\n <VideoList\n videos={videos.data.data.filter(v =>\n !!RestrictionHelper.getRestrictionByType(v, RestrictionType.User))}\n yearGroups={yearGroups.data}\n getVideoAppLink={VideoAppLinkHelper.getAppLink}\n getSubTextAppLink={video => SeriesAppLinkHelper.getSeriesAppLink(video.series)}\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n hasPermissions={hasPermissions}\n // we want to show rating badge not year group badge all the time\n presentationAudiences={[]}\n getPreviewQuestionsAppLink={interactive => InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n isPlugin={isPlugin}\n getClassroomGuideAppLink={VideoAppLinkHelper.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={VideoAppLinkHelper.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={VideoAppLinkHelper.getResourceGuidanceAppLink}\n />\n </VideoActionsContext.Provider>\n {videos.data.pagination?.cursors &&\n <div className='clearfix'>\n <Pagination\n cursors={videos.data.pagination.cursors}\n appLink={{\n application: AppChannels.SETTINGS,\n action: Actions.Settings.VIDEO_RESTRICTIONS\n }}\n buttonVariant='outline-dark'\n className='py-2 float-end'\n />\n </div>\n }\n </>\n }\n </SettingsLayout>\n );\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { SharedWithStatements } from 'libs/shared/constants/WithStatements';\nimport { RestrictionType } from 'libs/shared/enums/RestrictionType';\n\nimport { AddRestrictionRequest } from 'shared/interfaces/requests/AddRestrictionRequest';\n\nexport const RestrictionRequests = {\n getRestrictions(id: string): Flight.Request {\n return {\n key: `restrictions:${id}`,\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/restrictions`, { id })\n };\n },\n\n addRestriction(data: AddRestrictionRequest): Flight.Request {\n return {\n type: HttpVerbs.POST,\n key: `restrictions:${data.objectTypeId}:${data.objectId}:add`,\n url: `{gateway}/v1/restrictions`,\n data: [data],\n invalidationKeys: ['restrictions']\n };\n },\n\n\n deleteRestrictions(objectId: string): Flight.Request {\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/restrictions', { objectId }),\n key: 'restrictions:delete',\n type: HttpVerbs.DELETE,\n invalidationKeys: ['restrictions']\n };\n },\n\n\n getRestrictedObjects(\n type: RestrictionType[],\n cursor?: string\n ): Flight.Request {\n const params: any = {\n 'type': type,\n 'query.video': SharedWithStatements.VIDEO_COLLECTION,\n 'query.interactive': SharedWithStatements.INTERACTIVE_COLLECTION,\n 'query.clip': SharedWithStatements.CLIP_COLLECTION\n };\n\n if (cursor)\n params.cursor = cursor;\n\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/restrictions/objects', params),\n key: `restrictions:objects:${type.sort().join(',')}:${cursor}`\n };\n },\n\n approveAll(): Flight.Request {\n return {\n url: '{gateway}/v1/library-reviews/restrictions',\n key: 'restrictions:approve:all',\n type: HttpVerbs.DELETE\n };\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"pillTabSelector\":\"Hdi6o\",\"tab\":\"RvNxr\",\"minWidth\":\"GHSz9\",\"radiusSmall\":\"VhJJa\",\"tabLink\":\"WFyvo\"};","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Row = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n const sizePrefix = `${decoratedBsPrefix}-cols`;\n const classes = [];\n breakpoints.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let cols;\n if (propValue != null && typeof propValue === 'object') {\n ({\n cols\n } = propValue);\n } else {\n cols = propValue;\n }\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n if (cols != null) classes.push(`${sizePrefix}${infix}-${cols}`);\n });\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, decoratedBsPrefix, ...classes)\n });\n});\nRow.displayName = 'Row';\nexport default Row;"],"names":["getPhrase","BreadcrumbItem","props","ref","breadcrumb","name","appLink","active","withBackIcon","className","svgName","size","S","Breadcrumbs","breadcrumbs","isMobile","length","collapse","setCollapse","shouldFocus","setShouldFocus","expandRef","characterLength","reduce","prev","next","current","focus","first","secondLast","last","rest","slice","onClick","map","idx","key","PartialBreadcrumbs","numItems","style","height","width","dangerouslySetInnerHTML","__html","TabContents","tab","count","type","data","PillTabSelector","containerRef","borderRadius","listClassName","tabs","index","analyticsData","analyticsOptions","onSelect","onSelectTab","defaultProps","PartialVideoList","Array","numVideos","fill","_","i","allowBulkActions","PartialVideoItem","breakpoints","useBreakpoints","isSmall","VideoListHelper","withDragHandle","withReordering","xs","Row","Col","OnlineSupportArticle","LiteSupportArticle","DEFAULT_PARTIAL_LOADING_OPTIONS","minWidth","maxWidth","PartialLoadingHelper","getPartialLoadingItems","options","opts","Math","max","floor","random","namespace","APPLINKS","restrictedVideos","application","action","contentReview","contentReviewSettings","RestrictionTabs","url","actionType","entity","location","useCanAccessSettings","requiredPermissions","hasPermissions","settingsGroups","currentRoute","some","group","modules","settingsModule","SettingsLayout","canAccess","replace","heading","headingButton","description","children","LanguageService","VideoRestrictionsEmptyState","href","ArticleHelper","EmptyState","src","ImageUrls","Text","phrase","text","ContentPermissionAppLink","VideoRestrictionsView","useLiteFavourites","u","setFavourite","canFavourite","usePermissions","isPlugin","usePluginHelper","videos","RestrictionRequests","RestrictionType","cursor","currentUser","UserRequests","yearGroups","CustomerRequests","customerId","PermissionName","AppLink","hasCompleted","VideoActionsContext","value","getVideoActions","video","order","label","button","params","objectId","id","objectTypeId","typeId","workflowPhase","VideoList","filter","v","RestrictionHelper","getVideoAppLink","VideoAppLinkHelper","getSubTextAppLink","SeriesAppLinkHelper","series","presentationAudiences","getPreviewQuestionsAppLink","interactive","InteractiveHelper","getClassroomGuideAppLink","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","pagination","cursors","Pagination","buttonVariant","getRestrictions","addRestriction","invalidationKeys","deleteRestrictions","getRestrictedObjects","sort","join","approveAll","bsPrefix","as","Component","decoratedBsPrefix","minBreakpoint","sizePrefix","classes","forEach","brkPoint","propValue","cols","infix","push","displayName"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[7234],{56520:(e,a,t)=>{t.d(a,{R0:()=>m,_N:()=>u,eR:()=>p});var n=t(23481),i=t(97395),r=t(20354),s=t(42617),o=t(4594),l=t(39151),c=t(31949),d=n.T.encloseNamespace("shared.hooks");function u(e,a,t,n){var r=i._.safeUrlConcat(e,"manage"),s=i._.safeUrlConcat(e,"exchange"),l=function(e,a,t){return i._.safeUrlConcat(e,"".concat(a,"/").concat(t))};switch(a){case o.E.Subject:return i._.safeUrlConcat(r,"subjects/presentations/".concat(n,"/classifications/").concat(t,"/edit"));case o.E.Video:return l(r,"videos",t);case o.E.Playlist:return l(r,"playlists",t);case o.E.Series:return l(r,"series",t);case o.E.Company:return l(r,"companies",t);case o.E.Interactive:return l(r,"interactives",t);case o.E.Clip:return l(r,"clips",t);case o.E.Category:return l(s,"categories",t)}}function p(){return d("openInCurationStudio")}function m(){var e,a,t=r.a.useBasicFetch(c.N.currentUser()),n=r.a.useBasicFetch((null===(e=t.data)||void 0===e?void 0:e.id)&&c.N.groups(null===(a=t.data)||void 0===a?void 0:a.id)).data,i=r.a.useBasicFetch(l.L.config()),o=[s.j.Curator,s.j.Content,s.j.Developer];return{openInCurationStudioLabel:p(),isUserCurator:o.some((function(e){return null==n?void 0:n.data.find((function(a){return a.name===e}))})),getOpenInCurationStudioLink:function(e,a,t){var n;return u(null===(n=i.data)||void 0===n?void 0:n.curatorUrl,e,a,t)}}}},60008:(e,a,t)=>{t.r(a),t.d(a,{CompanyDashboardView:()=>Z});var n=t(32735),i=t(23481),r=t(81886),s=t(20354),o=t(28400),l=t(65858),c=t(75896),d=t(23232),u=t(83345),p=t(76177),m=t(40424),g=t(35223),v="moviesAndTv.companyDashboardEmptyState",h=i.T.encloseNamespace(v);function b(e){var a,t,r=(null===(a=e.dashboard)||void 0===a?void 0:a.status)===m.GL.Archived;return n.createElement(d.u,null,n.createElement(d.u.Image,{src:e.imageUrl,altText:h("info")}),n.createElement(d.u.Heading,null,n.createElement(u.x,{namespace:v,phrase:"heading"})),n.createElement(d.u.Info,null,n.createElement(u.x,{namespace:v,phrase:"info"})),n.createElement(p.u,{title:r?i.T.getPhrase(v,"archivedCtaTooltip"):"",spanHack:!0},n.createElement(d.u.Cta,{text:i.T.getPhrase(v,"add"),appLink:null===(t=e.addWidgetApplink)||void 0===t?void 0:t.call(e),className:"btn btn-dark",icon:g.vn.Plus,disabled:r})))}var y=t(44522),C=t(49935),f=t(32624),k=t(7733),E=t(77843),L=t(9085);function T(e){var a,t,i,r=c.m.sortBy(null===(a=e.dashboard)||void 0===a?void 0:a.widgets,"index");function s(a,t,n){var i=E.S.getWidgetParams(t,n,E.S.getDashboardTargetType(e.dashboard));return e.getWidgetContentRequest(a,i,n)}var o=e.isReadonly&&!(null==r?void 0:r.length);return n.createElement(n.Fragment,null,!!r.length&&n.createElement(n.Fragment,null,e.company?n.createElement(y.p,{heading:e.company.name,banner:e.company.banner,imageCdnUrl:e.imageCdnUrl,blockColourClass:(0,L.x)(e.company.name,k.o),actions:null===(t=e.getBannerActions)||void 0===t?void 0:t.call(e),actionsDropdownClassName:"btn btn-outline-dark"}):n.createElement(y.v,null),n.createElement("div",{className:"py-3 mb-3 border-bottom"},n.createElement(C.Oo,{breadcrumbs:null===(i=e.getBreadcrumbs)||void 0===i?void 0:i.call(e)})),n.createElement("div",{className:"mt-3"},r.map((function(a){return n.createElement(f.L,{key:a.id,id:a.id,imageCdnUrl:e.imageCdnUrl,getContentRequest:s,audiences:e.audiences,name:a.name,description:a.description,templateId:a.templateId,metadata:a.metadata,presentation:e.presentation,setFavourite:e.setFavourite,canFavourite:e.canFavourite,appLinks:e.widgetAppLinks,isScrollToTargetWidget:(null==e?void 0:e.scrollToWidgetId)===a.id,widgetTypeId:a.widgetId,yearGroups:e.yearGroups,hasPermissions:e.hasPermissions,hasLocalPermissions:e.hasLocalPermissions,isPreviewing:e.isReadonly,companyLogoFallbackUrl:e.companyLogoFallbackUrl,subTextType:e.subTextType,resourceThumbnailFallbackImageUrl:e.resourceThumbnailFallbackImageUrl,preferences:a.preferences,isPlugin:e.isPlugin})})))),o&&n.createElement(b,{dashboard:e.dashboard,isReadonly:e.isReadonly,imageUrl:e.emptyImageUrl,addWidgetApplink:e.widgetAppLinks.widgetWizard}))}var I=t(14875),P=t(183),U=t(67058),A=t(39151),S=t(80889),w=t(63719),F=t(56520),x=t(22902),R=t(79612),W=t(37802),N=t(76753),B=t(99742),D=t(14070),G=t(97291),_=t(68317),O=t(51855),j=t(7179),H=t(27638),q=t(23737),M=t(33192),Q=t(22490),V=t(82431),Y=i.T.encloseNamespace("moviesAndTv.companyDashboard"),z={videoType:function(e,a){return Q.W.getAppLink(e,Object.assign(Object.assign({},a),{moviesAndTv:!0,context:P.Q.Widget}))},series:V.j.getSeriesAppLink,subText:function(e){return V.j.getSeriesAppLink(e.series)},playlist:function(e){return{application:G.O.PLAYLISTS,action:D.e.Playlists.PLAYLIST,args:[e.id,o.m.slugify(e.name)]}},classroomGuide:Q.W.getClassroomGuideAppLink,interactiveGuidance:Q.W.getInteractiveGuidanceAppLink,resourceGuidance:Q.W.getResourceGuidanceAppLink};function Z(e){var a,t,i,o=s.a.useBasicFetch(A.L.config()),c=s.a.useBasicFetch(_.h.company(e.companyId)),d=(0,F.R0)(),u=d.openInCurationStudioLabel,p=d.isUserCurator,g=d.getOpenInCurationStudioLink,v=(0,W.r)(null),h=v.hasNewMoviesAndTv,b=v.isLoadingSettings,y=(0,H.u)(l.LZ.ExpandableVideoThumbnail),C=y.setFavourite,f=y.canFavourite,k=(0,x.T)(),E=k.hasPermissions,L=k.hasLocalPermissions,P=(0,O.G)().isPlugin,Q=(0,q.y)({targetType:m.ku.Company,queryParams:e.queryParams,presentationSlug:e.presentationSlug,companyId:e.companyId}),V=Q.dashboard,Z=Q.presentation,$=Q.isPreviewing;(0,R.M)(N.CG.getDefaultMetadata({title:null===(a=c.data)||void 0===a?void 0:a.name,phraseContext:{phraseHandler:Y,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"},canonicalLink:M.f.getCanonicalLink({stripPresentationSlug:!0}),allowIndexing:!1})),(0,j.P)({id:e.companyId,app:"studios"}),n.useEffect((function(){!b&&V.hasCompleted&&(h&&V.data||r.Q.C$.trigger({application:G.O.DASHBOARD,action:D.e.Dashboard.HOME},{replace:!0}))}),[h,b,V.data,V.hasCompleted]);var J=(0,w.h)({name:null===(t=c.data)||void 0===t?void 0:t.name});return n.useEffect((function(){V.hasCompleted&&!V.data&&r.Q.Ry.throw(new U.d)}),[V.data,V.hasCompleted]),n.createElement("div",{className:"position-relative px-4"},!(!$||!V.data)&&n.createElement(I.a,{status:V.data.status,type:"company"}),n.createElement(T,{company:c.data,dashboard:V.data,getWidgetContentRequest:S._.dashboardWidgetContent,getBannerActions:function(){var e,a;return p?[{label:u,href:g(null===(e=c.data)||void 0===e?void 0:e.typeId,null===(a=c.data)||void 0===a?void 0:a.id),openInNewTab:!0}]:[]},imageCdnUrl:null===(i=o.data)||void 0===i?void 0:i.imageCdnUrl,resourceThumbnailFallbackImageUrl:B.W.Fallbacks.RESOURCE_THUMBNAIL,presentation:Z,widgetAppLinks:z,setFavourite:C,canFavourite:f,getBreadcrumbs:function(){return c.hasCompleted?J:[]},hasPermissions:E,hasLocalPermissions:L,isPlugin:P}))}}}]);
2
+ //# sourceMappingURL=7234-84c087600e-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/7234-84c087600e-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/hooks/useCurationStudio.ts","file:///app/packages/libs/shared/src/apps/movies-and-tv/components/company-dashboard/empty-state/CompanyDashboardEmptyState.tsx","file:///app/packages/libs/shared/src/apps/movies-and-tv/components/company-dashboard/CompanyDashboard.tsx","file:///app/packages/projects/lite/src/apps/movies-and-tv/views/company-dashboard/CompanyDashboardView.tsx"],"sourcesContent":["import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/react/index';\n\nimport { CuratorGroup } from 'libs/shared/enums/CuratorGroup';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { Config, CuratorUserGroupCollection, CurrentUser } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.hooks';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function getOpenInCurationStudioLink(\n baseUrl: string,\n objectType: MasterType | string,\n id: string,\n presentationId?: string\n) {\n const baseManageUrl = UrlHelper.safeUrlConcat(baseUrl, 'manage');\n const baseExchangeUrl = UrlHelper.safeUrlConcat(baseUrl, 'exchange');\n const href = (baseUrl: string, objectType: string, id: string) => UrlHelper.safeUrlConcat(baseUrl, `${objectType}/${id}`);\n\n switch (objectType) {\n case MasterType.Subject:\n return UrlHelper.safeUrlConcat(baseManageUrl, `subjects/presentations/${presentationId}/classifications/${id}/edit`);\n case MasterType.Video:\n return href(baseManageUrl, 'videos', id);\n case MasterType.Playlist:\n return href(baseManageUrl, 'playlists', id);\n case MasterType.Series:\n return href(baseManageUrl, 'series', id);\n case MasterType.Company:\n return href(baseManageUrl, 'companies', id);\n case MasterType.Interactive:\n return href(baseManageUrl, 'interactives', id);\n case MasterType.Clip:\n return href(baseManageUrl, 'clips', id);\n case MasterType.Category:\n return href(baseExchangeUrl, 'categories', id);\n }\n}\n\nexport function getOpenInCurationStudioLabel(): string {\n return getPhrase('openInCurationStudio');\n}\n\nexport function useCurationStudio() {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const { data: userGroups } = Flight.useBasicFetch<CuratorUserGroupCollection>(\n (currentUser.data?.id) && UserRequests.groups(currentUser.data?.id)\n );\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n \n const curatorGroups = [ CuratorGroup.Curator, CuratorGroup.Content, CuratorGroup.Developer ];\n\n function isUserCurator(): boolean {\n return curatorGroups.some(group => userGroups?.data.find(userGroup => userGroup.name === group));\n }\n\n return {\n openInCurationStudioLabel: getOpenInCurationStudioLabel(),\n isUserCurator: isUserCurator(),\n getOpenInCurationStudioLink: (objectType: MasterType | string, id: string, presentationId?: string) =>\n getOpenInCurationStudioLink(config.data?.curatorUrl, objectType, id, presentationId)\n };\n}\n","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { CuratedDashboard, DashboardStatus } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'moviesAndTv.companyDashboardEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface CompanyDashboardEmptyStateProps {\n dashboard: CuratedDashboard;\n imageUrl: string;\n isReadonly: boolean;\n addWidgetApplink?: () => Core.AppLink;\n}\n\nexport function CompanyDashboardEmptyState(props: CompanyDashboardEmptyStateProps): JSX.Element {\n const isArchived = props.dashboard?.status === DashboardStatus.Archived;\n\n return (\n <EmptyState>\n <EmptyState.Image src={props.imageUrl} altText={getPhrase('info')} />\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 <Tooltip title={isArchived ? LanguageService.getPhrase(namespace, 'archivedCtaTooltip') : ''} spanHack>\n <EmptyState.Cta\n text={LanguageService.getPhrase(namespace, 'add')}\n appLink={props.addWidgetApplink?.()}\n className='btn btn-dark'\n icon={cvSvgLibrary.Plus}\n disabled={isArchived}\n />\n </Tooltip>\n </EmptyState>\n );\n}","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { CompanyDashboardEmptyState } from 'libs/shared/apps/movies-and-tv/components/company-dashboard/empty-state/CompanyDashboardEmptyState';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { BannerHeader, PartialBannerHeader } from 'libs/shared/components/banner-header/BannerHeader';\nimport { Breadcrumb, Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { VideoSubTextType } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { WidgetContainerView } from 'libs/shared/components/widgets/curated-widgets/WidgetContainerView';\nimport { WidgetAppLinks } from 'libs/shared/components/widgets/curated-widgets/WidgetProps';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { WidgetTemplate } from 'libs/shared/enums/WidgetTemplate';\nimport { WidgetTypeId } from 'libs/shared/enums/WidgetTypeId';\nimport { HasLocalPermissionsFunc, HasPermissionsFunc } from 'libs/shared/hooks/usePermissions';\nimport { CanFavouriteFunc, Company, CuratedDashboard, CuratedWidgetQueryParams, FavouriteFunc, Presentation, PresentationAudience, YearGroup } from 'libs/shared/interfaces';\nimport { CuratedDashboardHelper } from 'libs/shared/utils/DashboardHelper';\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\n\ninterface CompanyDashboardProps {\n dashboard: CuratedDashboard;\n company: Company;\n getWidgetContentRequest: (\n id: string,\n params: CuratedWidgetQueryParams,\n widgetTemplate: WidgetTemplate\n ) => Flight.Request;\n imageCdnUrl: string;\n hasPermissions: HasPermissionsFunc;\n hasLocalPermissions: HasLocalPermissionsFunc;\n resourceThumbnailFallbackImageUrl: string;\n audiences?: PresentationAudience[];\n emptyImageUrl?: string;\n presentation: Presentation;\n setFavourite?: FavouriteFunc;\n canFavourite?: CanFavouriteFunc;\n widgetAppLinks?: WidgetAppLinks;\n scrollToWidgetId?: string;\n isReadonly?: boolean;\n yearGroups?: YearGroup[];\n getBreadcrumbs?: () => Breadcrumb[];\n getBannerActions?: () => ActionOptions[];\n companyLogoFallbackUrl?: string;\n subTextType?: VideoSubTextType;\n isPlugin: boolean;\n}\n\nexport function CompanyDashboard(props: CompanyDashboardProps): JSX.Element {\n const widgets = ArrayHelper.sortBy(props.dashboard?.widgets, 'index');\n\n function getWidgetContentRequest(id: string, widgetTypeId: WidgetTypeId, template: WidgetTemplate): Flight.Request {\n const params = CuratedDashboardHelper.getWidgetParams(\n widgetTypeId,\n template,\n CuratedDashboardHelper.getDashboardTargetType(props.dashboard)\n );\n\n return props.getWidgetContentRequest(id, params, template);\n }\n\n const showEmptyState = props.isReadonly && !widgets?.length;\n\n return (\n <>\n {!!widgets.length &&\n <>\n {props.company\n ? (\n <BannerHeader\n heading={props.company.name}\n banner={props.company.banner}\n imageCdnUrl={props.imageCdnUrl}\n blockColourClass={getBgColorClass(props.company.name, BG_COLOUR_CLASS_NAMES)}\n actions={props.getBannerActions?.()}\n actionsDropdownClassName='btn btn-outline-dark'\n />\n ) : <PartialBannerHeader />\n }\n\n <div className='py-3 mb-3 border-bottom'>\n <Breadcrumbs breadcrumbs={props.getBreadcrumbs?.()} />\n </div>\n\n <div className='mt-3'>\n {widgets.map(widget => {\n return (\n <WidgetContainerView\n key={widget.id}\n id={widget.id}\n imageCdnUrl={props.imageCdnUrl}\n getContentRequest={getWidgetContentRequest}\n audiences={props.audiences}\n name={widget.name}\n description={widget.description}\n templateId={widget.templateId}\n metadata={widget.metadata}\n presentation={props.presentation}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n appLinks={props.widgetAppLinks}\n isScrollToTargetWidget={props?.scrollToWidgetId === widget.id}\n widgetTypeId={widget.widgetId}\n yearGroups={props.yearGroups}\n hasPermissions={props.hasPermissions}\n hasLocalPermissions={props.hasLocalPermissions}\n isPreviewing={props.isReadonly}\n companyLogoFallbackUrl={props.companyLogoFallbackUrl}\n subTextType={props.subTextType}\n resourceThumbnailFallbackImageUrl={props.resourceThumbnailFallbackImageUrl}\n preferences={widget.preferences}\n isPlugin={props.isPlugin}\n />\n );\n })}\n </div>\n </>\n }\n\n {showEmptyState && (\n <CompanyDashboardEmptyState\n dashboard={props.dashboard}\n isReadonly={props.isReadonly}\n imageUrl={props.emptyImageUrl}\n addWidgetApplink={props.widgetAppLinks.widgetWizard}\n />\n )}\n </>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { CompanyDashboard } from 'libs/shared/apps/movies-and-tv/components/company-dashboard/CompanyDashboard';\nimport { PreviewBanner } from 'libs/shared/apps/subjects/components/preview-banner/PreviewBanner';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { WidgetAppLinks } from 'libs/shared/components/widgets/curated-widgets/WidgetProps';\nimport { RelatedVideosContext } from 'libs/shared/enums/RelatedVideosContext';\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { DashboardRequests } from 'libs/shared/flight-requests/DashboardRequests';\nimport { useBreadcrumbs } from 'libs/shared/hooks/useBreadcrumbs';\nimport { useCurationStudio } from 'libs/shared/hooks/useCurationStudio';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Company, Config, DashboardTargetType, Playlist, Video, VideoTypes } from 'libs/shared/interfaces';\nimport { GetVideoAppLinkOptions } from 'libs/shared/interfaces/VideoAppLinkOptions';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { CompanyRequests } from 'shared/flight-requests/CompanyRequests';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { DashboardViewQueryParams } from 'shared/interfaces/query-params/DashboardViewQueryParams';\nimport { useFetchCuratedDashboard } from 'shared/utils/DashboardHelper';\nimport { SeoHelper } from 'shared/utils/SeoHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nconst namespace = 'moviesAndTv.companyDashboard';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst companyAppLinks: WidgetAppLinks = {\n videoType: (video: VideoTypes, opts: GetVideoAppLinkOptions) => (\n VideoAppLinkHelper.getAppLink(video, {\n ...opts,\n moviesAndTv: true,\n context: RelatedVideosContext.Widget\n })\n ),\n\n series: SeriesAppLinkHelper.getSeriesAppLink,\n\n subText: (video: Video) => SeriesAppLinkHelper.getSeriesAppLink(video.series),\n\n playlist: (playlist: Playlist) => ({\n application: AppChannels.PLAYLISTS,\n action: Actions.Playlists.PLAYLIST,\n args: [ playlist.id, TextHelper.slugify(playlist.name) ]\n }),\n\n classroomGuide: VideoAppLinkHelper.getClassroomGuideAppLink,\n interactiveGuidance: VideoAppLinkHelper.getInteractiveGuidanceAppLink,\n resourceGuidance: VideoAppLinkHelper.getResourceGuidanceAppLink\n};\n\ninterface CompanyDashboardViewProps {\n presentationSlug: string;\n companyId: string;\n queryParams?: DashboardViewQueryParams;\n}\n\nexport function CompanyDashboardView(props: CompanyDashboardViewProps): JSX.Element {\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const company = Flight.useBasicFetch<Company>(CompanyRequests.company(props.companyId));\n const { openInCurationStudioLabel, isUserCurator, getOpenInCurationStudioLink } = useCurationStudio();\n const { hasNewMoviesAndTv, isLoadingSettings } = useSettings(null);\n\n const { setFavourite, canFavourite } = useLiteFavourites(LocationContext.ExpandableVideoThumbnail);\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { isPlugin } = usePluginHelper();\n\n const {\n dashboard,\n presentation,\n isPreviewing\n } = useFetchCuratedDashboard({\n targetType: DashboardTargetType.Company,\n queryParams: props.queryParams,\n presentationSlug: props.presentationSlug,\n companyId: props.companyId\n });\n\n useSetPageMetadata(PageMetadataHelper.getDefaultMetadata({\n title: company.data?.name,\n phraseContext: {\n phraseHandler: getPhrase,\n titlePhrase: 'pageTitle',\n descriptionPhrase: 'pageDescription'\n },\n canonicalLink: SeoHelper.getCanonicalLink({ stripPresentationSlug: true }),\n allowIndexing: false\n }));\n\n useDeepLinks({ id: props.companyId, app: 'studios' });\n\n React.useEffect(() => {\n if (isLoadingSettings || !dashboard.hasCompleted)\n return;\n\n if (hasNewMoviesAndTv && dashboard.data)\n return;\n\n Core.AppLinkHelper.trigger(\n { application: AppChannels.DASHBOARD, action: Actions.Dashboard.HOME },\n { replace: true }\n );\n }, [ hasNewMoviesAndTv, isLoadingSettings, dashboard.data, dashboard.hasCompleted ]);\n\n const breadcrumbs = useBreadcrumbs({ name: company.data?.name });\n function getBreadcrumbs(): Breadcrumb[] {\n if (!company.hasCompleted)\n return [];\n\n return breadcrumbs;\n }\n\n function getBannerActions(): ActionOptions[] {\n if (!isUserCurator)\n return [];\n\n return [{\n label: openInCurationStudioLabel,\n href: getOpenInCurationStudioLink(company.data?.typeId, company.data?.id),\n openInNewTab: true\n }];\n }\n\n React.useEffect(() => {\n if (!dashboard.hasCompleted || dashboard.data)\n return;\n\n Core.ErrorHelper.throw(new NotFoundError());\n }, [ dashboard.data, dashboard.hasCompleted ]);\n\n return (\n <div className='position-relative px-4'>\n {!!(isPreviewing && dashboard.data) && <PreviewBanner status={dashboard.data.status} type='company' />}\n <CompanyDashboard\n company={company.data}\n dashboard={dashboard.data}\n getWidgetContentRequest={DashboardRequests.dashboardWidgetContent}\n getBannerActions={getBannerActions}\n imageCdnUrl={config.data?.imageCdnUrl}\n resourceThumbnailFallbackImageUrl={ImageUrls.Fallbacks.RESOURCE_THUMBNAIL}\n presentation={presentation}\n widgetAppLinks={companyAppLinks}\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n getBreadcrumbs={getBreadcrumbs}\n hasPermissions={hasPermissions}\n hasLocalPermissions={hasLocalPermissions}\n isPlugin={isPlugin}\n />\n </div>\n );\n}"],"names":["getPhrase","baseUrl","objectType","id","presentationId","baseManageUrl","baseExchangeUrl","href","getOpenInCurationStudioLabel","useCurationStudio","currentUser","userGroups","data","config","curatorGroups","Curator","openInCurationStudioLabel","isUserCurator","some","group","find","userGroup","name","getOpenInCurationStudioLink","curatorUrl","namespace","LanguageService","CompanyDashboardEmptyState","props","isArchived","dashboard","status","EmptyState","src","imageUrl","altText","Text","phrase","Tooltip","title","spanHack","text","appLink","addWidgetApplink","className","icon","disabled","CompanyDashboard","widgets","ArrayHelper","getWidgetContentRequest","widgetTypeId","template","params","showEmptyState","isReadonly","length","company","BannerHeader","heading","banner","imageCdnUrl","blockColourClass","getBgColorClass","actions","getBannerActions","actionsDropdownClassName","Breadcrumbs","breadcrumbs","getBreadcrumbs","map","widget","WidgetContainerView","key","getContentRequest","audiences","description","templateId","metadata","presentation","setFavourite","canFavourite","appLinks","widgetAppLinks","isScrollToTargetWidget","scrollToWidgetId","widgetId","yearGroups","hasPermissions","hasLocalPermissions","isPreviewing","companyLogoFallbackUrl","subTextType","resourceThumbnailFallbackImageUrl","preferences","isPlugin","emptyImageUrl","widgetWizard","companyAppLinks","videoType","video","opts","VideoAppLinkHelper","moviesAndTv","context","RelatedVideosContext","series","SeriesAppLinkHelper","subText","playlist","application","action","args","TextHelper","classroomGuide","interactiveGuidance","resourceGuidance","CompanyDashboardView","ConfigRequests","CompanyRequests","companyId","useSettings","hasNewMoviesAndTv","isLoadingSettings","useLiteFavourites","u","usePermissions","usePluginHelper","targetType","queryParams","presentationSlug","useSetPageMetadata","PageMetadataHelper","phraseContext","phraseHandler","titlePhrase","descriptionPhrase","canonicalLink","SeoHelper","stripPresentationSlug","allowIndexing","useDeepLinks","app","hasCompleted","replace","useBreadcrumbs","NotFoundError","PreviewBanner","type","DashboardRequests","label","typeId","openInNewTab","ImageUrls"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[7267],{50690:(e,t,a)=>{a.d(t,{b:()=>r});var n=a(12788),r={renderInPortalIfExists:function(e,t){return t?(0,n.createPortal)(e,t):e}}},14875:(e,t,a)=>{a.d(t,{a:()=>h});var n=a(32735),r=a(23481),o=a(75902),l=a(35223);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 i(e,t,a){return(t=function(e){var t=function(e,t){if("object"!=c(e)||!e)return e;var a=e[Symbol.toPrimitive];if(void 0!==a){var n=a.call(e,"string");if("object"!=c(n))return n;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:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var s=i(i(i({},o.GL.Archived,{svgName:l.vn.Archive,svgColorClassName:"text-secondary",actionName:"Archive",statusName:"Archived"}),o.GL.Draft,{svgName:l.vn.Edit,svgColorClassName:"",actionName:"Draft",statusName:"Draft"}),o.GL.Published,{svgName:l.vn.VisibleOn,svgColorClassName:"text-success",actionName:"Publish",statusName:"Published"}),m=a(83914),u=a(40424);const d={badge:"ciO47",draftLight:"A6Yi7",draftDark:"fkXBX",published:"Ovzwy",archived:"r_dco"};function b(e){var t="rounded-pill d-flex align-items-center ps-2 py-1 fw-semibold ms-2 ".concat(d.badge);switch(e.status){case u.GL.Published:t+=" ".concat(d.published);break;case u.GL.Archived:t+=" ".concat(d.archived);break;case u.GL.Draft:t+=" ".concat(e.darkMode?d.draftDark:d.draftLight)}return e.wrapperClassName&&(t+=" ".concat(e.wrapperClassName)),t}function f(e){var t=s[e.status],a=t.statusName,r=t.svgName;return n.createElement("div",{className:b(e)},n.createElement(m.x,{svgName:r}),n.createElement("div",null,a))}var v=a(98364);const p={stickyWrapper:"zhw6K",badgeWrapper:"NOvn1",badge:"pxQSR"};var g=r.T.encloseNamespace("shared.classificationPreviewBanner");function h(e){return n.createElement("div",{className:"".concat(p.stickyWrapper," py-2 d-flex justify-content-space-between bg-dark text-white mx-2 rounded")},n.createElement("div",{className:"position-absolute d-flex ".concat(p.badgeWrapper)},n.createElement(f,{status:e.status,wrapperClassName:"".concat(p.badge),darkMode:!0})),n.createElement("div",{className:"flex-grow-1"},n.createElement("h1",{className:"text-center my-3 h5"},n.createElement(v.V,{emoji:"👀"}),g("topic"===e.type?"topicTitle":"companyTitle"))))}},44522:(e,t,a)=>{a.d(t,{p:()=>x,v:()=>S});var n=a(32735),r=a(110),o=a(50690),l=a(84963),c=a(73679),i=a(83657),s=a(23481),m=a(36848),u=a(83914),d=a(35223),b="shared.backButton";function f(e){var t=Object.assign({textShadow:!0},e),a=t.backToName,r=t.appLink,o=t.color,l=t.extraClasses,c=t.textShadow,i=a?s.T.getPhrase(b,"backTo",{backToName:a}):s.T.getPhrase(b,"back"),f="black"===o?"":"text-white",v=c?"text-shadow":"";return n.createElement(m.F,{appLink:r,className:"d-inline-flex align-items-center h5 mb-0 ".concat(l," ").concat(f," ").concat(v)},n.createElement(u.x,{svgName:d.vn.ChevronLeft,size:u.S.Medium}),n.createElement("span",{className:"ms-1"},i))}f.defaultProps={color:"black",extraClasses:""};var v=a(36518),p=a(83345),g=a(10587),h=a(94232),y=a(54610),E=a(79967),N=a(67453);const k={bannerContent:"sSCTB",actionsContainer:"Z5WI2",bannerContentWithLogo:"rgs7Q",container:"M51HJ",logoContainer:"vkeJk",logoContainerLeft:"M3U9B",logoHeading:"EtRwC",specialEventContainer:"rOxDc",headingLarge:"_8pnV",heading:"JXVBH"};var w="".concat(g.y[y.__.Banners].width,":").concat(g.y[y.__.Banners].height);function C(e){return e.length<160?"h1":k.headingLarge}var x=n.memo((function(e){var t,a,s,m,u=e.heading,d=e.banner,b=e.imageCdnUrl,g=e.actions,x=e.sortComponent,S=e.blockColourClass,L=e.specialEvent,D=n.useContext(h.n),A=(0,E.k)().xxl?1920:1200,O=n.useMemo((function(){if(!L||e.showComingSoon)return!1;var t=r.O.format(new Date,"YYYY-MM-DD");return L.endDate?L.startDate<=t&&L.endDate>=t:L.startDate===t}),[L]),j=e.imageOptions||{width:A,ratio:w,resizeType:y.Nq.Cover},I=!!d&&!!b&&N.j.createBannerUrl(d,{fallbackBaseUrl:b,fallbackCategoryName:u,type:y.__.Banners},j),T={className:"banner banner-header ".concat(e.bannerClassName),style:I?{backgroundImage:"url('".concat(I,"')")}:{}};!d&&S&&(delete T.style,T.className+=" ".concat(S));var B=e.detailsComponent;return o.b.renderInPortalIfExists(n.createElement("header",Object.assign({},T),n.createElement("div",{className:"container ".concat(k.container," position-relative inner-banner")},e.backButtonAppLink&&n.createElement("div",{className:"pt-3"},n.createElement(f,{appLink:e.backButtonAppLink,backToName:e.backButtonText,extraClasses:e.backButtonClasses,color:"white"})),n.createElement("div",{className:"".concat(e.alignLogoLeft?"position-absolute top-50 start-0 translate-middle-y w-100 ps-4":"".concat(k.bannerContent," px-2 ").concat((null===(t=e.logo)||void 0===t?void 0:t.url)?k.bannerContentWithLogo:""))},!!L&&n.createElement("div",{className:"position-relative ".concat(k.specialEventContainer)},n.createElement(c.s,{body:{type:L.endDate?"range":"day",text:L.endDate?"".concat(r.O.format(L.startDate,"DD"),"-").concat(r.O.format(L.endDate,"DD")):r.O.format(L.startDate,"DD")},month:r.O.format(L.startDate,"MMMM"),theme:e.calendarTheme})),n.createElement("div",null,O&&n.createElement("div",{className:"rounded-pill py-1 px-2 my-1 me-1 fw-semibold bg-light-blue lh-1 d-inline-block"},n.createElement(p.x,{namespace:"shared.bannerHeader",phrase:"onToday"})),e.showComingSoon&&n.createElement(l.r,{className:"pe-2 fw-semibold mb-1 rounded-pill justify-content-start text-nowrap"}),n.createElement("div",{className:"d-flex align-items-center"},e.alignLogoLeft&&n.createElement("div",{className:"".concat(k.logoContainerLeft," d-none d-md-block partial-loading-background rounded-circle overflow-hidden me-3")},(null===(a=e.logo)||void 0===a?void 0:a.url)&&n.createElement(v.w,{src:N.j.createUrl(null===(s=e.logo)||void 0===s?void 0:s.url,{size:y.h2.Medium})})),n.createElement("h1",{className:"text-white text-shadow pe-3 position-static ".concat(k.heading," ").concat(C(u)," ").concat(e.alignLogoLeft?"w-50":"")},u,B&&n.createElement(B,null)))),!!g&&n.createElement("div",{className:k.actionsContainer},n.createElement(i.e,{actions:g,sortComponent:x,actionsDropdownClassName:e.actionsDropdownClassName}))),!e.alignLogoLeft&&!!(null===(m=e.logo)||void 0===m?void 0:m.url)&&n.createElement("div",{className:k.logoContainer},n.createElement("img",{src:N.j.createUrl(e.logo.url,{size:y.h2.Small}),className:"rounded-circle"})))),null==D?void 0:D.container)}),(function(e,t){var a,n;return e.actions===t.actions&&e.heading===t.heading&&(null===(a=e.logo)||void 0===a?void 0:a.url)===(null===(n=t.logo)||void 0===n?void 0:n.url)}));function S(){var e=n.useContext(h.n);return o.b.renderInPortalIfExists(n.createElement("div",{className:"partial-banner partial-loading-background ".concat(k.banner)}),null==e?void 0:e.container)}},49935:(e,t,a)=>{a.d(t,{Oo:()=>v,b2:()=>p});var n=a(32735),r=a(23481),o=a(36848),l=a(86764),c=a(3747),i=a(5859),s=a(35223),m=a(83914);function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,o,l,c=[],i=!0,s=!1;try{if(o=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;i=!1}else for(;!(i=(n=o.call(a)).done)&&(c.push(n.value),c.length!==t);i=!0);}catch(e){s=!0,r=e}finally{try{if(!i&&null!=a.return&&(l=a.return(),Object(l)!==l))return}finally{if(s)throw r}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?d(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 d(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var b=r.T.encloseNamespace("shared.breadcrumbComponent"),f=n.forwardRef((function(e,t){var a=e.breadcrumb,r=a.name,l=a.appLink,c=a.active,i=e.withBackIcon;return n.createElement("li",{className:"breadcrumb-item".concat(c?" active":"")},c?n.createElement("strong",null,r):n.createElement(o.F,{appLink:l,ref:t},i&&n.createElement(m.x,{svgName:s.vn.ChevronLeft,size:m.S.Small}),n.createElement("span",{className:i?"ms-2":""},r)))})),v=function(e){var t=e.breadcrumbs,a=(0,c.a)(l.r.XS),r=(null==t?void 0:t.length)||0,o=u(n.useState(!1),2),i=o[0],s=o[1],m=u(n.useState(!1),2),d=m[0],v=m[1],p=n.useRef();if(n.useEffect((function(){var e,a=null!==(e=null==t?void 0:t.reduce((function(e,t){return e+t.name.length}),0))&&void 0!==e?e:0;r>3&&a>56&&s(!0)}),[null==t?void 0:t.length]),n.useLayoutEffect((function(){var e;d&&(null===(e=p.current)||void 0===e||e.focus())}),[p.current,d]),!r||a&&r<2)return n.createElement(n.Fragment,null);if(a)return n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},n.createElement(f,{breadcrumb:t[r-2],withBackIcon:!0})));var g=n.createElement(f,{breadcrumb:t[0]}),h=r>2?n.createElement(f,{breadcrumb:t[r-2]}):n.createElement(n.Fragment,null),y=n.createElement(f,{breadcrumb:t[r-1]}),E=t.slice(1,r-2);return n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},g,i?n.createElement("li",{className:"breadcrumb-item"},n.createElement("button",{className:"btn-link",onClick:function(){s(!1),v(!0)},"aria-label":b("expand")},"...")):E.map((function(e,t){return n.createElement(f,{key:t,breadcrumb:e,ref:0===t?p:null})})),h,y))},p=n.memo((function(e){var t=e.numItems,a=void 0===t?3:t;return(0,c.a)(l.r.XS)?n.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},i.u.getPartialLoadingItems({numItems:a}).map((function(e,t){var a=e.width;return n.createElement("li",{key:t,className:"breadcrumb-item"},n.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:a},dangerouslySetInnerHTML:{__html:"&nbsp"}}))}))))}))},63719:(e,t,a)=>{a.d(t,{h:()=>c});var n=a(32735),r=a(77316);function o(e,t){if(e){if("string"==typeof e)return l(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?l(e,t):void 0}}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}function c(e){var t,a,c=(t=n.useMemo((function(){return r.p.getBuilder()}),[]),a=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,o,l,c=[],i=!0,s=!1;try{if(o=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;i=!1}else for(;!(i=(n=o.call(a)).done)&&(c.push(n.value),c.length!==t);i=!0);}catch(e){s=!0,r=e}finally{try{if(!i&&null!=a.return&&(l=a.return(),Object(l)!==l))return}finally{if(s)throw r}}return c}}(t,a)||o(t,a)||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.")}()),i=c[0],s=(0,c[1])(i);return s&&e?[].concat(function(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||o(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.")}()}(s),[Object.assign(Object.assign({},e),{active:!0})]):s}}}]);
2
+ //# sourceMappingURL=7267-fd5085f5c9-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/7267-fd5085f5c9-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/common/src/react/utils/PortalHelper.ts","file:///app/packages/libs/shared/src/apps/subjects/constants/DashboardStatusConfig.ts","file:///app/packages/libs/shared/src/apps/subjects/components/classification-dashboard/dashboard-status-badge/dashboard-status-badge.scss","file:///app/packages/libs/shared/src/apps/subjects/components/classification-dashboard/dashboard-status-badge/DashboardStatusBadge.tsx","file:///app/packages/libs/shared/src/apps/subjects/components/preview-banner/preview-banner.scss","file:///app/packages/libs/shared/src/apps/subjects/components/preview-banner/PreviewBanner.tsx","file:///app/packages/libs/shared/src/components/back-button/BackButton.tsx","file:///app/packages/libs/shared/src/components/banner-header/banner-header.scss","file:///app/packages/libs/shared/src/components/banner-header/BannerHeader.tsx","file:///app/packages/libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx","file:///app/packages/libs/shared/src/hooks/useBreadcrumbs.ts"],"sourcesContent":["import React from 'react';\nimport { createPortal } from 'react-dom';\n\nexport const PortalHelper = {\n renderInPortalIfExists(component: React.ReactElement, portalContainer: Element | null): React.ReactElement {\n if (portalContainer)\n return createPortal(component, portalContainer);\n\n return component;\n }\n};","import { localSvgs } from 'libs/shared/images/svg';\nimport { DashboardStatus } from 'libs/shared/interfaces/models/Dashboard';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\ninterface DashboardStatusConfigType {\n statusName: string;\n actionName: string;\n svgName: localSvgs;\n svgColorClassName: string;\n}\n\nexport const DashboardStatusConfig: Record<DashboardStatus, DashboardStatusConfigType> = {\n [DashboardStatus.Archived]: {\n svgName: cvSvgLibrary.Archive,\n svgColorClassName: 'text-secondary',\n actionName: 'Archive',\n statusName: 'Archived'\n },\n [DashboardStatus.Draft]: {\n svgName: cvSvgLibrary.Edit,\n svgColorClassName: '',\n actionName: 'Draft',\n statusName: 'Draft'\n },\n [DashboardStatus.Published]: {\n svgName: cvSvgLibrary.VisibleOn,\n svgColorClassName: 'text-success',\n actionName: 'Publish',\n statusName: 'Published'\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"badge\":\"ciO47\",\"draftLight\":\"A6Yi7\",\"draftDark\":\"fkXBX\",\"published\":\"Ovzwy\",\"archived\":\"r_dco\"};","import React from 'react';\n\nimport { DashboardStatusConfig } from 'libs/shared/apps/subjects/constants/DashboardStatusConfig';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { DashboardStatus } from 'libs/shared/interfaces';\n\nimport styles from './dashboard-status-badge.scss';\n\nfunction getClassName(props: DashboardStatusBadgeProps): string {\n let className = `rounded-pill d-flex align-items-center ps-2 py-1 fw-semibold ms-2 ${styles.badge}`;\n\n switch (props.status) {\n case DashboardStatus.Published:\n className += ` ${styles.published}`;\n break;\n case DashboardStatus.Archived:\n className += ` ${styles.archived}`;\n break;\n case DashboardStatus.Draft:\n className += ` ${props.darkMode ? styles.draftDark : styles.draftLight}`;\n break;\n }\n\n if (props.wrapperClassName)\n className += ` ${props.wrapperClassName}`;\n\n return className;\n}\n\ninterface DashboardStatusBadgeProps {\n status: DashboardStatus;\n darkMode?: boolean;\n wrapperClassName?: string;\n}\n\nexport function DashboardStatusBadge(props: DashboardStatusBadgeProps): JSX.Element {\n const { statusName, svgName } = DashboardStatusConfig[props.status];\n\n return (\n <div className={getClassName(props)}>\n <SvgContainer svgName={svgName} />\n <div>{statusName}</div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"stickyWrapper\":\"zhw6K\",\"badgeWrapper\":\"NOvn1\",\"badge\":\"pxQSR\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { DashboardStatusBadge } from 'libs/shared/apps/subjects/components/classification-dashboard/dashboard-status-badge/DashboardStatusBadge';\nimport { EmojiText } from 'libs/shared/components/emoji-text/EmojiText';\nimport { DashboardStatus } from 'libs/shared/interfaces';\n\nimport styles from './preview-banner.scss';\n\nconst namespace = 'shared.classificationPreviewBanner';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface PreviewBannerProps {\n status: DashboardStatus;\n type: 'company' | 'topic';\n}\n\nexport function PreviewBanner(props: PreviewBannerProps): JSX.Element {\n return (\n <div className={`${styles.stickyWrapper} py-2 d-flex justify-content-space-between bg-dark text-white mx-2 rounded`}>\n <div className={`position-absolute d-flex ${styles.badgeWrapper}`}>\n <DashboardStatusBadge status={props.status} wrapperClassName={`${styles.badge}`} darkMode />\n </div>\n <div className='flex-grow-1'>\n <h1 className='text-center my-3 h5'>\n <EmojiText emoji='👀' />\n {getPhrase(props.type === 'topic' ? 'topicTitle' : 'companyTitle')}\n </h1>\n </div>\n </div>\n );\n}\n","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'shared.backButton';\n\ninterface BackButtonProps {\n appLink: Core.AppLink;\n backToName?: string;\n color?: 'black' | 'white';\n extraClasses?: string;\n /**\n * Whether or not the button text has a text shadow. Defaults to true\n */\n textShadow?: boolean;\n}\n\nBackButton.defaultProps = {\n color: 'black',\n extraClasses: ''\n};\n\nexport function BackButton(props: BackButtonProps): React.ReactElement {\n const { backToName, appLink, color, extraClasses, textShadow } = {\n textShadow: true,\n ...props\n };\n\n const backPhrase = backToName\n ? LanguageService.getPhrase(namespace, 'backTo', { backToName })\n : LanguageService.getPhrase(namespace, 'back');\n\n const colorClass = color === 'black' ? '' : 'text-white';\n const textShadowClass = textShadow ? 'text-shadow' : '';\n\n return (\n <AppLink\n appLink={appLink}\n className={`d-inline-flex align-items-center h5 mb-0 ${extraClasses} ${colorClass} ${textShadowClass}`}\n >\n <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Medium} />\n <span className='ms-1'>{backPhrase}</span>\n </AppLink>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"bannerContent\":\"sSCTB\",\"actionsContainer\":\"Z5WI2\",\"bannerContentWithLogo\":\"rgs7Q\",\"container\":\"M51HJ\",\"logoContainer\":\"vkeJk\",\"logoContainerLeft\":\"M3U9B\",\"logoHeading\":\"EtRwC\",\"specialEventContainer\":\"rOxDc\",\"headingLarge\":\"_8pnV\",\"heading\":\"JXVBH\"};","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\nimport { PortalHelper } from 'libs/common/react/utils/PortalHelper';\n\nimport { ComingSoonTag } from 'libs/shared/apps/calendar/components/coming-soon-tag/ComingSoonTag';\nimport { GenericCalendarDate } from 'libs/shared/apps/calendar/components/generic-calendar-date/GenericCalendarDate';\nimport { CalendarTheme } from 'libs/shared/apps/calendar/interfaces/CalendarTheme';\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { BackButton } from 'libs/shared/components/back-button/BackButton';\nimport { LazyImage } from 'libs/shared/components/lazy-image/LazyImage';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ImageMinDimensions } from 'libs/shared/constants/ImageSizes';\nimport { BannerPortalContext } from 'libs/shared/context/BannerPortalContext';\nimport { ImageSize, ImageType, ResizeType } from 'libs/shared/enums/Images';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Banner, CalendarEvent, Logo } from 'libs/shared/interfaces';\nimport { ImageHelper, ImageOptions } from 'libs/shared/utils/ImageHelper';\n\nimport styles from './banner-header.scss';\n\nconst RATIO = `${ImageMinDimensions[ImageType.Banners].width}:${ImageMinDimensions[ImageType.Banners].height}`;\nconst DEFAULT_WIDTH = 1200; // This is ImageSize.Large for a Banner.\nconst LARGE_SCREEN_WIDTH = 1920;\n\nfunction useGetImageWidth(): number {\n const breakpoints = useBreakpoints();\n\n if (breakpoints.xxl)\n return LARGE_SCREEN_WIDTH;\n\n return DEFAULT_WIDTH;\n}\n\nfunction getSizeClass(heading: string): string {\n if (heading.length < 160)\n return 'h1';\n\n return styles.headingLarge;\n}\n\ninterface BannerHeaderProps {\n heading: string;\n banner?: Banner;\n bannerClassName?: string;\n imageCdnUrl?: string;\n logo?: Logo;\n actions?: ActionOptions[];\n specialEvent?: CalendarEvent;\n backButtonAppLink?: Core.AppLink;\n backButtonText?: string;\n backButtonClasses?: string;\n sortComponent?: JSX.Element;\n blockColourClass?: string;\n actionsDropdownClassName?: string;\n detailsComponent?: () => React.ReactElement;\n imageOptions?: ImageOptions;\n showComingSoon?: boolean;\n alignLogoLeft?: boolean;\n calendarTheme?: CalendarTheme;\n}\n\nconst namespace = 'shared.bannerHeader';\n\nexport const BannerHeader = React.memo(function(props: React.PropsWithChildren<BannerHeaderProps>): React.ReactElement {\n const { heading, banner, imageCdnUrl, actions, sortComponent, blockColourClass, specialEvent } = props;\n\n const portalContainerContext = React.useContext(BannerPortalContext);\n\n const imageWidth = useGetImageWidth();\n\n const specialEventIsToday = React.useMemo(() => {\n if (!specialEvent || props.showComingSoon)\n return false;\n\n const today = DateHelper.format(new Date(), 'YYYY-MM-DD');\n\n if (!specialEvent.endDate)\n return specialEvent.startDate === today;\n\n return specialEvent.startDate <= today && specialEvent.endDate >= today;\n }, [specialEvent]);\n\n const imageOptions = props.imageOptions || {\n width: imageWidth,\n ratio: RATIO,\n resizeType: ResizeType.Cover\n };\n\n const url = !!banner && !!imageCdnUrl && ImageHelper.createBannerUrl(banner, {\n fallbackBaseUrl: imageCdnUrl,\n fallbackCategoryName: heading,\n type: ImageType.Banners\n }, imageOptions);\n\n const containerProps: React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement> = {\n className: `banner banner-header ${props.bannerClassName}`,\n style: url ? { backgroundImage: `url('${url}')` } : {}\n };\n\n if (!banner && blockColourClass) {\n delete containerProps.style;\n containerProps.className += ` ${blockColourClass}`;\n }\n\n const DetailsComponent = props.detailsComponent;\n\n return PortalHelper.renderInPortalIfExists(\n // \"banner\" is used in playlists in Online. banner-header is used by all other projects\n <header {...containerProps}>\n <div className={`container ${styles.container} position-relative inner-banner`}>\n {props.backButtonAppLink && (\n <div className='pt-3'>\n <BackButton\n appLink={props.backButtonAppLink}\n backToName={props.backButtonText}\n extraClasses={props.backButtonClasses}\n color='white'\n />\n </div>\n )}\n \n <div className={`${props.alignLogoLeft ? 'position-absolute top-50 start-0 translate-middle-y w-100 ps-4' : `${styles.bannerContent} px-2 ${props.logo?.url ? styles.bannerContentWithLogo : ''}`}`}>\n {!!specialEvent && (\n <div className={`position-relative ${styles.specialEventContainer}`}>\n <GenericCalendarDate\n body={{\n type: specialEvent.endDate ? 'range' : 'day',\n text: specialEvent.endDate\n ? `${DateHelper.format(specialEvent.startDate, 'DD')}-${DateHelper.format(specialEvent.endDate, 'DD')}`\n : DateHelper.format(specialEvent.startDate, 'DD')\n }}\n month={DateHelper.format(specialEvent.startDate, 'MMMM')}\n theme={props.calendarTheme}\n />\n </div>\n )}\n <div>\n {specialEventIsToday && (\n <div className='rounded-pill py-1 px-2 my-1 me-1 fw-semibold bg-light-blue lh-1 d-inline-block'>\n <Text namespace={namespace} phrase='onToday' />\n </div>\n )}\n {props.showComingSoon && (\n <ComingSoonTag className='pe-2 fw-semibold mb-1 rounded-pill justify-content-start text-nowrap' />\n )}\n <div className='d-flex align-items-center'>\n {props.alignLogoLeft &&\n <div className={`${styles.logoContainerLeft} d-none d-md-block partial-loading-background rounded-circle overflow-hidden me-3`}>\n {props.logo?.url &&\n <LazyImage src={ImageHelper.createUrl(props.logo?.url, { size: ImageSize.Medium })} />}\n </div>\n }\n <h1 className={`text-white text-shadow pe-3 position-static ${styles.heading} ${getSizeClass(heading)} ${props.alignLogoLeft ? 'w-50' : ''}`}>\n {heading}\n {DetailsComponent && <DetailsComponent />}\n </h1>\n </div>\n </div>\n {!!actions && (\n <div className={styles.actionsContainer}>\n <Actions\n actions={actions}\n sortComponent={sortComponent}\n actionsDropdownClassName={props.actionsDropdownClassName}\n />\n </div>\n )}\n </div>\n {!props.alignLogoLeft && !!props.logo?.url &&\n <div className={styles.logoContainer}>\n <img\n src={ImageHelper.createUrl(props.logo.url, { size: ImageSize.Small })}\n className='rounded-circle'\n />\n </div>\n }\n </div>\n </header>,\n portalContainerContext?.container\n );\n}, (prevProps, nextProps): boolean => (\n prevProps.actions === nextProps.actions\n && prevProps.heading === nextProps.heading\n && prevProps.logo?.url === nextProps.logo?.url\n));\n\nexport function PartialBannerHeader(): JSX.Element {\n const portalContainerContext = React.useContext(BannerPortalContext);\n\n return PortalHelper.renderInPortalIfExists(\n <div className={`partial-banner partial-loading-background ${styles.banner}`} />,\n portalContainerContext?.container\n );\n}","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\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 namespace = 'shared.breadcrumbComponent';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\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 = React.forwardRef((\n props: BreadcrumbItemProps,\n ref: React.ForwardedRef<HTMLElement>\n) => {\n const { breadcrumb: { name, appLink, active }, withBackIcon } = props;\n return (\n <li className={`breadcrumb-item${active ? ' active' : ''}`}>\n {active\n ? <strong>{name}</strong>\n : <AppLink appLink={appLink} ref={ref}>\n {withBackIcon && <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{name}</span>\n </AppLink>\n }\n </li>\n );\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 const [ shouldFocus, setShouldFocus ] = React.useState(false);\n const expandRef = React.useRef<HTMLElement>();\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 /**\n * Focus our first expanded item the first time it appears.\n */\n React.useLayoutEffect(() => {\n if (shouldFocus)\n expandRef.current?.focus();\n }, [ expandRef.current, shouldFocus ]);\n\n function onClickExpand() {\n setCollapse(false);\n setShouldFocus(true);\n }\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\n className='btn-link'\n onClick={onClickExpand}\n aria-label={getPhrase('expand')}\n >\n ...\n </button>\n </li> :\n rest.map((breadcrumb, idx) => (\n <BreadcrumbItem\n key={idx}\n breadcrumb={breadcrumb}\n ref={idx === 0 ? expandRef : null}\n />\n ))\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 { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { BreadcrumbService } from 'libs/shared/services/BreadcrumbService';\n\nexport function useBreadcrumbs(current: Breadcrumb): Breadcrumb[] {\n const [ match, useBuilder ] = React.useMemo(() => BreadcrumbService.getBuilder(), []);\n\n const breadcrumbs = useBuilder(match);\n\n if (!breadcrumbs || !current)\n return breadcrumbs;\n\n return [ ...breadcrumbs, { ...current, active: true }];\n}\n\n"],"names":["PortalHelper","renderInPortalIfExists","component","portalContainer","createPortal","DashboardStatusConfig","Dashboard","svgName","svgColorClassName","actionName","statusName","getClassName","props","className","status","darkMode","wrapperClassName","DashboardStatusBadge","SvgContainer","getPhrase","LanguageService","PreviewBanner","EmojiText","emoji","type","namespace","BackButton","textShadow","backToName","appLink","color","extraClasses","backPhrase","colorClass","textShadowClass","AppLink","size","S","defaultProps","RATIO","width","height","getSizeClass","heading","length","BannerHeader","banner","imageCdnUrl","actions","sortComponent","blockColourClass","specialEvent","portalContainerContext","BannerPortalContext","imageWidth","useBreakpoints","xxl","specialEventIsToday","showComingSoon","today","DateHelper","Date","endDate","startDate","imageOptions","ratio","resizeType","url","ImageHelper","fallbackBaseUrl","fallbackCategoryName","containerProps","bannerClassName","style","backgroundImage","DetailsComponent","detailsComponent","backButtonAppLink","backButtonText","backButtonClasses","alignLogoLeft","logo","GenericCalendarDate","body","text","month","theme","calendarTheme","Text","phrase","ComingSoonTag","LazyImage","src","Actions","actionsDropdownClassName","container","prevProps","nextProps","PartialBannerHeader","BreadcrumbItem","ref","breadcrumb","name","active","withBackIcon","Breadcrumbs","breadcrumbs","isMobile","collapse","setCollapse","shouldFocus","setShouldFocus","expandRef","characterLength","reduce","prev","next","current","focus","first","secondLast","last","rest","slice","onClick","map","idx","key","PartialBreadcrumbs","numItems","dangerouslySetInnerHTML","__html","useBreadcrumbs","match","useBuilder"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[7633],{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:()=>d,b2:()=>v});var a=n(32735),r=n(23481),i=n(36848),c=n(86764),l=n(3747),o=n(5859),s=n(35223),u=n(83914);function m(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 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 f(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)?f(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 f(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 p=r.T.encloseNamespace("shared.breadcrumbComponent"),b=a.forwardRef((function(e,t){var n=e.breadcrumb,r=n.name,c=n.appLink,l=n.active,o=e.withBackIcon;return a.createElement("li",{className:"breadcrumb-item".concat(l?" active":"")},l?a.createElement("strong",null,r):a.createElement(i.F,{appLink:c,ref:t},o&&a.createElement(u.x,{svgName:s.vn.ChevronLeft,size:u.S.Small}),a.createElement("span",{className:o?"ms-2":""},r)))})),d=function(e){var t=e.breadcrumbs,n=(0,l.a)(c.r.XS),r=(null==t?void 0:t.length)||0,i=m(a.useState(!1),2),o=i[0],s=i[1],u=m(a.useState(!1),2),f=u[0],d=u[1],v=a.useRef();if(a.useEffect((function(){var e,n=null!==(e=null==t?void 0:t.reduce((function(e,t){return e+t.name.length}),0))&&void 0!==e?e:0;r>3&&n>56&&s(!0)}),[null==t?void 0:t.length]),a.useLayoutEffect((function(){var e;f&&(null===(e=v.current)||void 0===e||e.focus())}),[v.current,f]),!r||n&&r<2)return a.createElement(a.Fragment,null);if(n)return a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},a.createElement(b,{breadcrumb:t[r-2],withBackIcon:!0})));var y=a.createElement(b,{breadcrumb:t[0]}),g=r>2?a.createElement(b,{breadcrumb:t[r-2]}):a.createElement(a.Fragment,null),E=a.createElement(b,{breadcrumb:t[r-1]}),S=t.slice(1,r-2);return a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},y,o?a.createElement("li",{className:"breadcrumb-item"},a.createElement("button",{className:"btn-link",onClick:function(){s(!1),d(!0)},"aria-label":p("expand")},"...")):S.map((function(e,t){return a.createElement(b,{key:t,breadcrumb:e,ref:0===t?v:null})})),g,E))},v=a.memo((function(e){var t=e.numItems,n=void 0===t?3:t;return(0,l.a)(c.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"},o.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:()=>b});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",p=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 b(e){var t,n=p(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])}},87432:(e,t,n)=>{n.d(t,{Z:()=>a});const a={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}}}]);
2
+ //# sourceMappingURL=7633-6c1ffdd082-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/7633-6c1ffdd082-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/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 { LanguageService } from 'libs/common/backbone/services/LanguageService';\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 namespace = 'shared.breadcrumbComponent';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\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 = React.forwardRef((\n props: BreadcrumbItemProps,\n ref: React.ForwardedRef<HTMLElement>\n) => {\n const { breadcrumb: { name, appLink, active }, withBackIcon } = props;\n return (\n <li className={`breadcrumb-item${active ? ' active' : ''}`}>\n {active\n ? <strong>{name}</strong>\n : <AppLink appLink={appLink} ref={ref}>\n {withBackIcon && <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{name}</span>\n </AppLink>\n }\n </li>\n );\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 const [ shouldFocus, setShouldFocus ] = React.useState(false);\n const expandRef = React.useRef<HTMLElement>();\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 /**\n * Focus our first expanded item the first time it appears.\n */\n React.useLayoutEffect(() => {\n if (shouldFocus)\n expandRef.current?.focus();\n }, [ expandRef.current, shouldFocus ]);\n\n function onClickExpand() {\n setCollapse(false);\n setShouldFocus(true);\n }\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\n className='btn-link'\n onClick={onClickExpand}\n aria-label={getPhrase('expand')}\n >\n ...\n </button>\n </li> :\n rest.map((breadcrumb, idx) => (\n <BreadcrumbItem\n key={idx}\n breadcrumb={breadcrumb}\n ref={idx === 0 ? expandRef : null}\n />\n ))\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","// 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","ref","breadcrumb","withBackIcon","svgName","size","S","Breadcrumbs","breadcrumbs","isMobile","length","collapse","setCollapse","shouldFocus","setShouldFocus","expandRef","characterLength","reduce","prev","next","current","focus","first","secondLast","last","rest","slice","onClick","map","idx","key","PartialBreadcrumbs","numItems","style","height","width","dangerouslySetInnerHTML","__html","TabContents","tab","count","type","data","PillTabSelector","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"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[7679],{86685:(e,t,r)=>{r.d(t,{W:()=>c});var n=r(32735),a=r(83914),l=r(35223);const i={icon:"eCi4v"};function c(e){return n.createElement("div",{className:"alert alert-warning d-flex align-items-center px-2 mb-3"},n.createElement(a.x,{svgName:l.vn.WarningOutline,className:"svg-container me-2 ".concat(i.icon)}),n.createElement("div",null,e.children))}},49935:(e,t,r)=>{r.d(t,{Oo:()=>p,b2:()=>g});var n=r(32735),a=r(23481),l=r(36848),i=r(86764),c=r(3747),o=r(5859),u=r(35223),m=r(83914);function s(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,l,i,c=[],o=!0,u=!1;try{if(l=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;o=!1}else for(;!(o=(n=l.call(r)).done)&&(c.push(n.value),c.length!==t);o=!0);}catch(e){u=!0,a=e}finally{try{if(!o&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(u)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?d(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 d(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var f=a.T.encloseNamespace("shared.breadcrumbComponent"),b=n.forwardRef((function(e,t){var r=e.breadcrumb,a=r.name,i=r.appLink,c=r.active,o=e.withBackIcon;return n.createElement("li",{className:"breadcrumb-item".concat(c?" active":"")},c?n.createElement("strong",null,a):n.createElement(l.F,{appLink:i,ref:t},o&&n.createElement(m.x,{svgName:u.vn.ChevronLeft,size:m.S.Small}),n.createElement("span",{className:o?"ms-2":""},a)))})),p=function(e){var t=e.breadcrumbs,r=(0,c.a)(i.r.XS),a=(null==t?void 0:t.length)||0,l=s(n.useState(!1),2),o=l[0],u=l[1],m=s(n.useState(!1),2),d=m[0],p=m[1],g=n.useRef();if(n.useEffect((function(){var e,r=null!==(e=null==t?void 0:t.reduce((function(e,t){return e+t.name.length}),0))&&void 0!==e?e:0;a>3&&r>56&&u(!0)}),[null==t?void 0:t.length]),n.useLayoutEffect((function(){var e;d&&(null===(e=g.current)||void 0===e||e.focus())}),[g.current,d]),!a||r&&a<2)return n.createElement(n.Fragment,null);if(r)return n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},n.createElement(b,{breadcrumb:t[a-2],withBackIcon:!0})));var h=n.createElement(b,{breadcrumb:t[0]}),v=a>2?n.createElement(b,{breadcrumb:t[a-2]}):n.createElement(n.Fragment,null),E=n.createElement(b,{breadcrumb:t[a-1]}),y=t.slice(1,a-2);return n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},h,o?n.createElement("li",{className:"breadcrumb-item"},n.createElement("button",{className:"btn-link",onClick:function(){u(!1),p(!0)},"aria-label":f("expand")},"...")):y.map((function(e,t){return n.createElement(b,{key:t,breadcrumb:e,ref:0===t?g:null})})),v,E))},g=n.memo((function(e){var t=e.numItems,r=void 0===t?3:t;return(0,c.a)(i.r.XS)?n.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},o.u.getPartialLoadingItems({numItems:r}).map((function(e,t){var r=e.width;return n.createElement("li",{key:t,className:"breadcrumb-item"},n.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:r},dangerouslySetInnerHTML:{__html:"&nbsp"}}))}))))}))},5859:(e,t,r)=>{function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}r.d(t,{u:()=>l});var a={numItems:5,minWidth:50,maxWidth:100},l={getPartialLoadingItems:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=Object.assign(Object.assign({},a),t);return(e=Array(r.numItems),function(e){if(Array.isArray(e))return n(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 n(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(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()*r.maxWidth),r.minWidth),"px")}}))}}},81803:(e,t,r)=>{r.d(t,{d:()=>b});var n=r(32735),a=r(81886),l=r(23481),i=r(49935),c=r(22902),o=r(14070),u=r(97291),m=r(96368);function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var d="settings.settingsLayout",f=function(e){var t=(0,c.T)().hasPermissions,r=(0,m.e)();if(e)return t(e);var n=a.Q.C$.getCurrentAppLink();return n.application!==u.O.SETTINGS||r.some((function(e){return e.modules.some((function(e){return"appLink"in e&&e.appLink.action===n.action}))}))};function b(e){var t,r=f(e.requiredPermissions);if(n.useEffect((function(){r||a.Q.C$.trigger({application:u.O.SETTINGS,action:o.e.Settings.HOME},{replace:!0})}),[r]),!r)return n.createElement(n.Fragment,null);var c,m=e.breadcrumbs.map((function(t,r){return{name:t,appLink:{application:u.O.SETTINGS,action:o.e.Settings.HOME},active:r===e.breadcrumbs.length-1}}));return n.createElement("div",{className:"px-3"},n.createElement("div",{className:"d-flex align-items-center justify-content-between"},n.createElement("h1",{className:"h2"},e.heading),null===(t=e.headingButton)||void 0===t?void 0:t.call(e)),n.createElement("div",{className:"pb-3"},n.createElement(i.Oo,{breadcrumbs:[{name:l.T.getPhrase(d,"settingsBreadcrumb"),appLink:{application:u.O.SETTINGS,action:o.e.Settings.HOME}}].concat((c=m,function(e){if(Array.isArray(e))return s(e)}(c)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(c)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?s(e,t):void 0}}(c)||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&&n.createElement(n.Fragment,null,n.createElement("p",null,e.description),n.createElement("hr",null)),e.children)}},28875:(e,t,r)=>{r.r(t),r.d(t,{ArchivedClassroomsView:()=>T});var n=r(32735),a=r(70680),l=r(23481),i=r(20354),c=r(86685),o=r(71020),u=r(83345),m=r(94644),s=r(39151),d=r(31949),f=r(69883),b=r(60115),p=r(79612),g=r(14070),h=r(97291),v=r(46542),E=r(91899),y=r(88630),S=r(81803),O=r(23232),C=r(99742),A="settings.archivedClassroomsEmptyState";function I(){return n.createElement(u.D.Provider,{value:A},n.createElement(O.u,null,n.createElement(O.u.Image,{src:C.W.EmptyStates.Classrooms.CLASSROOMS}),n.createElement(O.u.Heading,null,n.createElement(u.x,{phrase:"heading"})),n.createElement(O.u.Info,null,n.createElement(u.x,{phrase:"info"})),n.createElement(O.u.Cta,{appLink:{application:h.O.CLASSROOMS,action:g.e.Classrooms.HOME},className:"btn btn-dark",text:l.T.getPhrase(A,"cta")})))}var N="settings.archivedClassrooms",k=l.T.encloseNamespace(N),L={delete:{application:h.O.CLASSROOMS,action:g.e.Classrooms.DELETE_CLASSROOM},retrieve:{application:h.O.CLASSROOMS,action:g.e.Classrooms.RETRIEVE_CLASSROOM}};function T(){(0,p.M)({title:k("pageTitle")});var e=(0,f.Z)(),t=(0,a.I0)(),r=function(e){return y.F.getArchived(e)},g=function(e){return i.a.getFetch(t)(r(e))},h=i.a.useBasicFetch(s.L.config()),O=i.a.useBasicFetch(d.N.currentUser()),C=(0,b.K)(r,g,(function(t,r){if(1===t)return(0,m.r)(r);e.error(l.T.getPhrase(N,"error"))})),A=C.items,T=C.hasMore,w=C.isFetching,x=C.nextCursor;return n.createElement(S.d,{heading:k("heading"),breadcrumbs:[k("breadcrumb")]},!!(null==A?void 0:A.length)&&n.createElement(c.W,null,n.createElement(u.x,{namespace:N,phrase:"note"})),A&&h.hasCompleted?A.length?n.createElement(n.Fragment,null,n.createElement(v.D,{allClassrooms:A,imageCdnUrl:h.data.imageCdnUrl,appLinks:L,refreshTable:w,currentUser:O.data}),(T||w)&&n.createElement(o._,{isFetching:w,fetchNext:g,nextCursor:x})):n.createElement(I,null):n.createElement(E.I,null))}}}]);
2
+ //# sourceMappingURL=7679-8f2d6a3487-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/7679-8f2d6a3487-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/user-manager/components/warning-alert/warning-alert.scss","file:///app/packages/libs/shared/src/apps/user-manager/components/warning-alert/WarningAlert.tsx","file:///app/packages/libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx","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/views/archived-classrooms/empty-state/ArchivedClassroomsEmptyState.tsx","file:///app/packages/projects/lite/src/apps/settings/views/archived-classrooms/ArchivedClassroomsView.tsx"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"icon\":\"eCi4v\"};","import React from 'react';\n\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './warning-alert.scss';\n\ntype WarningAlertProps = React.PropsWithChildren<HashObject>;\n\nexport function WarningAlert(props: WarningAlertProps): JSX.Element {\n return (\n <div className='alert alert-warning d-flex align-items-center px-2 mb-3'>\n <SvgContainer\n svgName={cvSvgLibrary.WarningOutline}\n className={`svg-container me-2 ${styles.icon}`}\n />\n <div>\n {props.children}\n </div>\n </div>\n );\n}","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\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 namespace = 'shared.breadcrumbComponent';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\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 = React.forwardRef((\n props: BreadcrumbItemProps,\n ref: React.ForwardedRef<HTMLElement>\n) => {\n const { breadcrumb: { name, appLink, active }, withBackIcon } = props;\n return (\n <li className={`breadcrumb-item${active ? ' active' : ''}`}>\n {active\n ? <strong>{name}</strong>\n : <AppLink appLink={appLink} ref={ref}>\n {withBackIcon && <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{name}</span>\n </AppLink>\n }\n </li>\n );\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 const [ shouldFocus, setShouldFocus ] = React.useState(false);\n const expandRef = React.useRef<HTMLElement>();\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 /**\n * Focus our first expanded item the first time it appears.\n */\n React.useLayoutEffect(() => {\n if (shouldFocus)\n expandRef.current?.focus();\n }, [ expandRef.current, shouldFocus ]);\n\n function onClickExpand() {\n setCollapse(false);\n setShouldFocus(true);\n }\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\n className='btn-link'\n onClick={onClickExpand}\n aria-label={getPhrase('expand')}\n >\n ...\n </button>\n </li> :\n rest.map((breadcrumb, idx) => (\n <BreadcrumbItem\n key={idx}\n breadcrumb={breadcrumb}\n ref={idx === 0 ? expandRef : null}\n />\n ))\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});","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 React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'settings.archivedClassroomsEmptyState';\n\nexport function ArchivedClassroomsEmptyState(): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.Classrooms.CLASSROOMS} />\n\n <EmptyState.Heading><Text phrase='heading' /></EmptyState.Heading>\n\n <EmptyState.Info><Text phrase='info' /></EmptyState.Info>\n\n <EmptyState.Cta\n appLink={{\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.HOME\n }}\n className='btn btn-dark'\n text={LanguageService.getPhrase(namespace, 'cta')}\n />\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { WarningAlert } from 'libs/shared/apps/user-manager/components/warning-alert/WarningAlert';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { handleHttpError } from 'libs/shared/errors/handlers/HttpErrorHandlers';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Classroom, Config, CurrentUser } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { ClassroomsTable } from 'apps/classrooms/components/classrooms-table/ClassroomsTable';\nimport { PartialClassroomsTable } from 'apps/classrooms/components/classrooms-table/partial-classrooms-table/PartialClassroomsTable';\nimport { ClassroomRequests } from 'apps/classrooms/flight-requests/ClassroomRequests';\nimport { ArchivedClassroomsTableApplinks } from 'apps/classrooms/interfaces/ClassroomsTableApplinks';\nimport { SettingsLayout } from 'apps/settings/components/settings-layout/SettingsLayout';\n\nimport { ArchivedClassroomsEmptyState } from './empty-state/ArchivedClassroomsEmptyState';\n\nconst namespace = 'settings.archivedClassrooms';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst applinks: ArchivedClassroomsTableApplinks = {\n delete: {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.DELETE_CLASSROOM\n },\n retrieve: {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.RETRIEVE_CLASSROOM\n }\n};\n\nexport function ArchivedClassroomsView(): JSX.Element {\n useSetPageMetadata({ title: getPhrase('pageTitle') });\n\n const alerts = useAlerts();\n const dispatch = useDispatch();\n\n const getClassroomsRequest = (cursor?: string) => ClassroomRequests.getArchived(cursor);\n const fetchNext = (cursor?: string) => Flight.getFetch(dispatch)(getClassroomsRequest(cursor));\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const {\n items,\n hasMore,\n isFetching,\n nextCursor\n } = useInfiniteList<Classroom>(getClassroomsRequest, fetchNext, onError);\n\n function onError(pageNumber: number, httpStatus: HttpStatus): void {\n if (pageNumber === 1)\n return handleHttpError(httpStatus);\n\n alerts.error(LanguageService.getPhrase(namespace, 'error'));\n }\n\n return (\n <SettingsLayout\n heading={getPhrase('heading')}\n breadcrumbs={[getPhrase('breadcrumb')]}\n >\n {!!items?.length && (\n <WarningAlert><Text namespace={namespace} phrase='note'/></WarningAlert>\n )}\n\n {(() => {\n if (!items || !config.hasCompleted)\n return <PartialClassroomsTable />;\n \n if (!items.length)\n return <ArchivedClassroomsEmptyState />;\n\n return (\n <>\n <ClassroomsTable\n allClassrooms={items}\n imageCdnUrl={config.data.imageCdnUrl}\n appLinks={applinks}\n refreshTable={isFetching}\n currentUser={currentUser.data}\n />\n\n {(hasMore || isFetching) && (\n <InfiniteScrollFooter isFetching={isFetching} fetchNext={fetchNext} nextCursor={nextCursor} />\n )}\n </>\n );\n })()}\n </SettingsLayout>\n );\n}"],"names":["WarningAlert","props","className","SvgContainer","svgName","children","getPhrase","BreadcrumbItem","ref","breadcrumb","name","appLink","active","withBackIcon","size","S","Breadcrumbs","breadcrumbs","isMobile","length","collapse","setCollapse","shouldFocus","setShouldFocus","expandRef","characterLength","reduce","prev","next","current","focus","first","secondLast","last","rest","slice","onClick","map","idx","key","PartialBreadcrumbs","numItems","style","height","width","dangerouslySetInnerHTML","__html","DEFAULT_PARTIAL_LOADING_OPTIONS","minWidth","maxWidth","PartialLoadingHelper","getPartialLoadingItems","options","opts","Array","Math","max","floor","random","namespace","useCanAccessSettings","requiredPermissions","hasPermissions","settingsGroups","currentRoute","application","some","group","modules","settingsModule","action","SettingsLayout","canAccess","replace","i","heading","headingButton","description","ArchivedClassroomsEmptyState","value","EmptyState","src","ImageUrls","Text","phrase","text","LanguageService","applinks","delete","retrieve","ArchivedClassroomsView","useSetPageMetadata","title","alerts","dispatch","getClassroomsRequest","cursor","ClassroomRequests","fetchNext","config","ConfigRequests","currentUser","UserRequests","pageNumber","httpStatus","error","items","hasMore","isFetching","nextCursor","W","hasCompleted","ClassroomsTable","allClassrooms","imageCdnUrl","data","appLinks","refreshTable","InfiniteScrollFooter","PartialClassroomsTable"],"sourceRoot":""}