@clickview/lite 0.52.0 → 0.52.2-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (354) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/css/{1329-lite-ec64553644.chunk.css → 1329-lite-55772b1036.chunk.css} +2 -2
  3. package/dist/css/{986-lite-6bdd43b250.chunk.css → 3532-lite-a3c7435ba4.chunk.css} +1 -1
  4. package/dist/css/{3969-lite-cb4c4824f6.chunk.css → 3969-lite-94ca677007.chunk.css} +1 -1
  5. package/dist/css/{4489-lite-e971ca8ab6.chunk.css → 4489-lite-49c28410f9.chunk.css} +1 -1
  6. package/dist/css/4690-lite-e1f88a6b47.chunk.css +4 -0
  7. package/dist/css/{537-lite-53bb989a96.chunk.css → 537-lite-390b70028c.chunk.css} +1 -1
  8. package/dist/css/{6489-lite-5ffcd32447.chunk.css → 6489-lite-a917e953c8.chunk.css} +1 -1
  9. package/dist/css/{8192-lite-cf3253f7b8.chunk.css → 8192-lite-282a716c03.chunk.css} +1 -1
  10. package/dist/css/{841-lite-93cc5f2469.chunk.css → 841-lite-4a007cd7be.chunk.css} +1 -1
  11. package/dist/css/{1820-lite-eaf5a9db1c.chunk.css → 999-lite-02c517e917.chunk.css} +1 -1
  12. package/dist/languages/en.json +1 -1
  13. package/dist/scripts/{1080-5b00242a31-lite.chunk.js → 1080-d24c9657ec-lite.chunk.js} +2 -2
  14. package/dist/scripts/{1080-5b00242a31-lite.chunk.js.map → 1080-d24c9657ec-lite.chunk.js.map} +1 -1
  15. package/dist/scripts/{9173-2392d447a6-lite.chunk.js → 1104-f057c6dea1-lite.chunk.js} +3 -3
  16. package/dist/scripts/{9173-2392d447a6-lite.chunk.js.map → 1104-f057c6dea1-lite.chunk.js.map} +1 -1
  17. package/dist/scripts/{1125-aac132b88f-lite.chunk.js → 1125-55dc0a4586-lite.chunk.js} +2 -2
  18. package/dist/scripts/1125-55dc0a4586-lite.chunk.js.map +1 -0
  19. package/dist/scripts/1169-3de585be6a-lite.chunk.js +2 -0
  20. package/dist/scripts/1169-3de585be6a-lite.chunk.js.map +1 -0
  21. package/dist/scripts/1329-850346e6e6-lite.chunk.js +3 -0
  22. package/dist/scripts/1329-850346e6e6-lite.chunk.js.map +1 -0
  23. package/dist/scripts/{1379-082bbab71a-lite.chunk.js → 1379-976d20185f-lite.chunk.js} +3 -3
  24. package/dist/scripts/{1379-082bbab71a-lite.chunk.js.map → 1379-976d20185f-lite.chunk.js.map} +1 -1
  25. package/dist/scripts/1672-60a3ab42f5-lite.chunk.js +3 -0
  26. package/dist/scripts/1672-60a3ab42f5-lite.chunk.js.map +1 -0
  27. package/dist/scripts/1725-1e864ba78a-lite.chunk.js +2 -0
  28. package/dist/scripts/1725-1e864ba78a-lite.chunk.js.map +1 -0
  29. package/dist/scripts/1891-109e674486-lite.chunk.js +2 -0
  30. package/dist/scripts/1891-109e674486-lite.chunk.js.map +1 -0
  31. package/dist/scripts/193-797b89797a-lite.chunk.js +2 -0
  32. package/dist/scripts/193-797b89797a-lite.chunk.js.map +1 -0
  33. package/dist/scripts/2004-7d1bf8b246-lite.chunk.js +3 -0
  34. package/dist/scripts/2004-7d1bf8b246-lite.chunk.js.map +1 -0
  35. package/dist/scripts/209-d2e6b93965-lite.chunk.js +2 -0
  36. package/dist/scripts/209-d2e6b93965-lite.chunk.js.map +1 -0
  37. package/dist/scripts/2134-b9145f8ce8-lite.chunk.js +2 -0
  38. package/dist/scripts/2134-b9145f8ce8-lite.chunk.js.map +1 -0
  39. package/dist/scripts/2952-6a32a90314-lite.chunk.js +2 -0
  40. package/dist/scripts/2952-6a32a90314-lite.chunk.js.map +1 -0
  41. package/dist/scripts/3003-7685240aed-lite.chunk.js +2 -0
  42. package/dist/scripts/3003-7685240aed-lite.chunk.js.map +1 -0
  43. package/dist/scripts/3020-6c9c7d2176-lite.chunk.js +2 -0
  44. package/dist/scripts/3020-6c9c7d2176-lite.chunk.js.map +1 -0
  45. package/dist/scripts/338-e21a3cd6fe-lite.chunk.js +3 -0
  46. package/dist/scripts/338-e21a3cd6fe-lite.chunk.js.map +1 -0
  47. package/dist/scripts/3532-2fed0eb7a4-lite.chunk.js +3 -0
  48. package/dist/scripts/3532-2fed0eb7a4-lite.chunk.js.map +1 -0
  49. package/dist/scripts/3633-025f418c19-lite.chunk.js +2 -0
  50. package/dist/scripts/3633-025f418c19-lite.chunk.js.map +1 -0
  51. package/dist/scripts/3640-694d1d6d2a-lite.chunk.js +2 -0
  52. package/dist/scripts/3640-694d1d6d2a-lite.chunk.js.map +1 -0
  53. package/dist/scripts/3728-2c71d3021e-lite.chunk.js +2 -0
  54. package/dist/scripts/3728-2c71d3021e-lite.chunk.js.map +1 -0
  55. package/dist/scripts/3966-0e3c4f329e-lite.chunk.js +2 -0
  56. package/dist/scripts/3966-0e3c4f329e-lite.chunk.js.map +1 -0
  57. package/dist/scripts/{3969-6d5f2f272f-lite.chunk.js → 3969-e36f1922eb-lite.chunk.js} +1 -1
  58. package/dist/scripts/{3969-6d5f2f272f-lite.chunk.js.map → 3969-e36f1922eb-lite.chunk.js.map} +1 -1
  59. package/dist/scripts/4063-5fa157657f-lite.chunk.js +2 -0
  60. package/dist/scripts/4063-5fa157657f-lite.chunk.js.map +1 -0
  61. package/dist/scripts/4182-7ae9edf4a5-lite.chunk.js +2 -0
  62. package/dist/scripts/4182-7ae9edf4a5-lite.chunk.js.map +1 -0
  63. package/dist/scripts/4395-37537617e2-lite.chunk.js +2 -0
  64. package/dist/scripts/4395-37537617e2-lite.chunk.js.map +1 -0
  65. package/dist/scripts/4502-83e4017e54-lite.chunk.js +2 -0
  66. package/dist/scripts/4502-83e4017e54-lite.chunk.js.map +1 -0
  67. package/dist/scripts/4690-d64efe8020-lite.chunk.js +2 -0
  68. package/dist/scripts/4690-d64efe8020-lite.chunk.js.map +1 -0
  69. package/dist/scripts/4850-bb9541d3ed-lite.chunk.js +2 -0
  70. package/dist/scripts/4850-bb9541d3ed-lite.chunk.js.map +1 -0
  71. package/dist/scripts/5143-d46f032e9e-lite.chunk.js +2 -0
  72. package/dist/scripts/5143-d46f032e9e-lite.chunk.js.map +1 -0
  73. package/dist/scripts/5157-855821ccce-lite.chunk.js +2 -0
  74. package/dist/scripts/5157-855821ccce-lite.chunk.js.map +1 -0
  75. package/dist/scripts/537-f63ad5863e-lite.chunk.js +3 -0
  76. package/dist/scripts/537-f63ad5863e-lite.chunk.js.map +1 -0
  77. package/dist/scripts/5549-bb01b24470-lite.chunk.js +2 -0
  78. package/dist/scripts/5549-bb01b24470-lite.chunk.js.map +1 -0
  79. package/dist/scripts/5573-304fea77a6-lite.chunk.js +2 -0
  80. package/dist/scripts/5573-304fea77a6-lite.chunk.js.map +1 -0
  81. package/dist/scripts/5595-842c05064c-lite.chunk.js +2 -0
  82. package/dist/scripts/5595-842c05064c-lite.chunk.js.map +1 -0
  83. package/dist/scripts/5606-680582b817-lite.chunk.js +2 -0
  84. package/dist/scripts/5606-680582b817-lite.chunk.js.map +1 -0
  85. package/dist/scripts/5877-e75dcce0ef-lite.chunk.js +2 -0
  86. package/dist/scripts/5877-e75dcce0ef-lite.chunk.js.map +1 -0
  87. package/dist/scripts/5936-b509535ec7-lite.chunk.js +2 -0
  88. package/dist/scripts/5936-b509535ec7-lite.chunk.js.map +1 -0
  89. package/dist/scripts/6054-1e9b86d631-lite.chunk.js +2 -0
  90. package/dist/scripts/6054-1e9b86d631-lite.chunk.js.map +1 -0
  91. package/dist/scripts/6094-6c1e95073a-lite.chunk.js +2 -0
  92. package/dist/scripts/6094-6c1e95073a-lite.chunk.js.map +1 -0
  93. package/dist/scripts/{6102-ce44fd00aa-lite.chunk.js → 6102-3ddcebe8a1-lite.chunk.js} +3 -3
  94. package/dist/scripts/{6102-ce44fd00aa-lite.chunk.js.map → 6102-3ddcebe8a1-lite.chunk.js.map} +1 -1
  95. package/dist/scripts/6138-5791b93cc1-lite.chunk.js +2 -0
  96. package/dist/scripts/6138-5791b93cc1-lite.chunk.js.map +1 -0
  97. package/dist/scripts/{624-7ab5fb3f3b-lite.chunk.js → 624-bf0ff6257f-lite.chunk.js} +3 -3
  98. package/dist/scripts/{624-7ab5fb3f3b-lite.chunk.js.map → 624-bf0ff6257f-lite.chunk.js.map} +1 -1
  99. package/dist/scripts/6263-cfd4ebfe8b-lite.chunk.js +2 -0
  100. package/dist/scripts/6263-cfd4ebfe8b-lite.chunk.js.map +1 -0
  101. package/dist/scripts/6290-eb223883fe-lite.chunk.js +2 -0
  102. package/dist/scripts/6290-eb223883fe-lite.chunk.js.map +1 -0
  103. package/dist/scripts/6470-1012a7889c-lite.chunk.js +2 -0
  104. package/dist/scripts/6470-1012a7889c-lite.chunk.js.map +1 -0
  105. package/dist/scripts/6481-39b72a58ef-lite.chunk.js +2 -0
  106. package/dist/scripts/6481-39b72a58ef-lite.chunk.js.map +1 -0
  107. package/dist/scripts/6489-9287613d14-lite.chunk.js +3 -0
  108. package/dist/scripts/6489-9287613d14-lite.chunk.js.map +1 -0
  109. package/dist/scripts/6532-9edab80cc6-lite.chunk.js +2 -0
  110. package/dist/scripts/6532-9edab80cc6-lite.chunk.js.map +1 -0
  111. package/dist/scripts/6604-2353daa8c0-lite.chunk.js +2 -0
  112. package/dist/scripts/6604-2353daa8c0-lite.chunk.js.map +1 -0
  113. package/dist/scripts/6741-572db2d1e9-lite.chunk.js +3 -0
  114. package/dist/scripts/6741-572db2d1e9-lite.chunk.js.map +1 -0
  115. package/dist/scripts/6746-72d35335ba-lite.chunk.js +2 -0
  116. package/dist/scripts/6746-72d35335ba-lite.chunk.js.map +1 -0
  117. package/dist/scripts/6852-f49f6f19d3-lite.chunk.js +2 -0
  118. package/dist/scripts/6852-f49f6f19d3-lite.chunk.js.map +1 -0
  119. package/dist/scripts/714-67adeb44da-lite.chunk.js +2 -0
  120. package/dist/scripts/714-67adeb44da-lite.chunk.js.map +1 -0
  121. package/dist/scripts/7163-8b5ab059b6-lite.chunk.js +2 -0
  122. package/dist/scripts/7163-8b5ab059b6-lite.chunk.js.map +1 -0
  123. package/dist/scripts/7178-4b9c33a63e-lite.chunk.js +2 -0
  124. package/dist/scripts/7178-4b9c33a63e-lite.chunk.js.map +1 -0
  125. package/dist/scripts/7223-e2f8a43b89-lite.chunk.js +2 -0
  126. package/dist/scripts/7223-e2f8a43b89-lite.chunk.js.map +1 -0
  127. package/dist/scripts/7234-595d44446f-lite.chunk.js +2 -0
  128. package/dist/scripts/7234-595d44446f-lite.chunk.js.map +1 -0
  129. package/dist/scripts/7267-dac72aeb98-lite.chunk.js +2 -0
  130. package/dist/scripts/7267-dac72aeb98-lite.chunk.js.map +1 -0
  131. package/dist/scripts/{7293-687e60dba2-lite.chunk.js → 7293-1ad518e385-lite.chunk.js} +2 -2
  132. package/dist/scripts/7293-1ad518e385-lite.chunk.js.map +1 -0
  133. package/dist/scripts/7679-f43777e02e-lite.chunk.js +2 -0
  134. package/dist/scripts/7679-f43777e02e-lite.chunk.js.map +1 -0
  135. package/dist/scripts/7757-2785d666ad-lite.chunk.js +2 -0
  136. package/dist/scripts/7757-2785d666ad-lite.chunk.js.map +1 -0
  137. package/dist/scripts/7795-b641104969-lite.chunk.js +2 -0
  138. package/dist/scripts/7795-b641104969-lite.chunk.js.map +1 -0
  139. package/dist/scripts/7818-cff0f2276c-lite.chunk.js +2 -0
  140. package/dist/scripts/7818-cff0f2276c-lite.chunk.js.map +1 -0
  141. package/dist/scripts/{8192-f26370c5a6-lite.chunk.js → 8192-ea5cee15d7-lite.chunk.js} +1 -1
  142. package/dist/scripts/{8192-f26370c5a6-lite.chunk.js.map → 8192-ea5cee15d7-lite.chunk.js.map} +1 -1
  143. package/dist/scripts/8200-1e4518c5d8-lite.chunk.js +3 -0
  144. package/dist/scripts/8200-1e4518c5d8-lite.chunk.js.map +1 -0
  145. package/dist/scripts/8323-fb330a8f47-lite.chunk.js +3 -0
  146. package/dist/scripts/8323-fb330a8f47-lite.chunk.js.map +1 -0
  147. package/dist/scripts/841-d69c7f4b4d-lite.chunk.js +3 -0
  148. package/dist/scripts/841-d69c7f4b4d-lite.chunk.js.map +1 -0
  149. package/dist/scripts/8709-f360baa021-lite.chunk.js +2 -0
  150. package/dist/scripts/8709-f360baa021-lite.chunk.js.map +1 -0
  151. package/dist/scripts/8722-00d7443d09-lite.chunk.js +2 -0
  152. package/dist/scripts/8722-00d7443d09-lite.chunk.js.map +1 -0
  153. package/dist/scripts/8982-6848480133-lite.chunk.js +2 -0
  154. package/dist/scripts/8982-6848480133-lite.chunk.js.map +1 -0
  155. package/dist/scripts/9016-e17da8b633-lite.chunk.js +3 -0
  156. package/dist/scripts/9016-e17da8b633-lite.chunk.js.map +1 -0
  157. package/dist/scripts/9173-a0c6c7be25-lite.chunk.js +2 -0
  158. package/dist/scripts/9173-a0c6c7be25-lite.chunk.js.map +1 -0
  159. package/dist/scripts/9226-a7c61f9129-lite.chunk.js +2 -0
  160. package/dist/scripts/9226-a7c61f9129-lite.chunk.js.map +1 -0
  161. package/dist/scripts/9230-537f1fcc38-lite.chunk.js +3 -0
  162. package/dist/scripts/9230-537f1fcc38-lite.chunk.js.map +1 -0
  163. package/dist/scripts/9359-deb452cb10-lite.chunk.js +2 -0
  164. package/dist/scripts/9359-deb452cb10-lite.chunk.js.map +1 -0
  165. package/dist/scripts/{9395-90b87097fa-lite.chunk.js → 9395-e9b5cdbdce-lite.chunk.js} +3 -3
  166. package/dist/scripts/{9395-90b87097fa-lite.chunk.js.map → 9395-e9b5cdbdce-lite.chunk.js.map} +1 -1
  167. package/dist/scripts/9399-721a368168-lite.chunk.js +2 -0
  168. package/dist/scripts/9399-721a368168-lite.chunk.js.map +1 -0
  169. package/dist/scripts/{9478-99486906b9-lite.chunk.js → 9478-abfa7ed3cc-lite.chunk.js} +3 -3
  170. package/dist/scripts/{9478-99486906b9-lite.chunk.js.map → 9478-abfa7ed3cc-lite.chunk.js.map} +1 -1
  171. package/dist/scripts/{953-cbc7f0571e-lite.chunk.js → 953-bf3d621a33-lite.chunk.js} +3 -3
  172. package/dist/scripts/{953-cbc7f0571e-lite.chunk.js.map → 953-bf3d621a33-lite.chunk.js.map} +1 -1
  173. package/dist/scripts/9719-ed1956607c-lite.chunk.js +3 -0
  174. package/dist/scripts/9719-ed1956607c-lite.chunk.js.map +1 -0
  175. package/dist/scripts/999-d7e93dac12-lite.chunk.js +2 -0
  176. package/dist/scripts/999-d7e93dac12-lite.chunk.js.map +1 -0
  177. package/dist/scripts/bundle-9a72d04e7d.min.js +3 -0
  178. package/dist/scripts/bundle-9a72d04e7d.min.js.map +1 -0
  179. package/package.json +1 -2
  180. package/dist/css/4690-lite-a4fdd7e61e.chunk.css +0 -4
  181. package/dist/scripts/1125-aac132b88f-lite.chunk.js.map +0 -1
  182. package/dist/scripts/1169-5a0d974a94-lite.chunk.js +0 -2
  183. package/dist/scripts/1169-5a0d974a94-lite.chunk.js.map +0 -1
  184. package/dist/scripts/1329-7064e95200-lite.chunk.js +0 -3
  185. package/dist/scripts/1329-7064e95200-lite.chunk.js.map +0 -1
  186. package/dist/scripts/1466-735d7dad48-lite.chunk.js +0 -3
  187. package/dist/scripts/1466-735d7dad48-lite.chunk.js.map +0 -1
  188. package/dist/scripts/1672-672f298d82-lite.chunk.js +0 -3
  189. package/dist/scripts/1672-672f298d82-lite.chunk.js.map +0 -1
  190. package/dist/scripts/1725-075015497e-lite.chunk.js +0 -2
  191. package/dist/scripts/1725-075015497e-lite.chunk.js.map +0 -1
  192. package/dist/scripts/1818-4949c9b748-lite.chunk.js +0 -2
  193. package/dist/scripts/1818-4949c9b748-lite.chunk.js.map +0 -1
  194. package/dist/scripts/1820-345bf53a3c-lite.chunk.js +0 -2
  195. package/dist/scripts/1820-345bf53a3c-lite.chunk.js.map +0 -1
  196. package/dist/scripts/1867-6f801de383-lite.chunk.js +0 -2
  197. package/dist/scripts/1867-6f801de383-lite.chunk.js.map +0 -1
  198. package/dist/scripts/1891-e80f9f17ee-lite.chunk.js +0 -2
  199. package/dist/scripts/1891-e80f9f17ee-lite.chunk.js.map +0 -1
  200. package/dist/scripts/193-f08b054631-lite.chunk.js +0 -2
  201. package/dist/scripts/193-f08b054631-lite.chunk.js.map +0 -1
  202. package/dist/scripts/2004-d891104ed4-lite.chunk.js +0 -3
  203. package/dist/scripts/2004-d891104ed4-lite.chunk.js.map +0 -1
  204. package/dist/scripts/209-57b05f6c83-lite.chunk.js +0 -2
  205. package/dist/scripts/209-57b05f6c83-lite.chunk.js.map +0 -1
  206. package/dist/scripts/2134-bca2f4697e-lite.chunk.js +0 -2
  207. package/dist/scripts/2134-bca2f4697e-lite.chunk.js.map +0 -1
  208. package/dist/scripts/2703-591ccf069c-lite.chunk.js +0 -2
  209. package/dist/scripts/2703-591ccf069c-lite.chunk.js.map +0 -1
  210. package/dist/scripts/3020-dbc723b098-lite.chunk.js +0 -2
  211. package/dist/scripts/3020-dbc723b098-lite.chunk.js.map +0 -1
  212. package/dist/scripts/3633-66d28be6f8-lite.chunk.js +0 -2
  213. package/dist/scripts/3633-66d28be6f8-lite.chunk.js.map +0 -1
  214. package/dist/scripts/3728-d7ecfc6667-lite.chunk.js +0 -2
  215. package/dist/scripts/3728-d7ecfc6667-lite.chunk.js.map +0 -1
  216. package/dist/scripts/3966-a3bb0e0161-lite.chunk.js +0 -2
  217. package/dist/scripts/3966-a3bb0e0161-lite.chunk.js.map +0 -1
  218. package/dist/scripts/4182-7aecc28a6f-lite.chunk.js +0 -2
  219. package/dist/scripts/4182-7aecc28a6f-lite.chunk.js.map +0 -1
  220. package/dist/scripts/4395-64da004753-lite.chunk.js +0 -2
  221. package/dist/scripts/4395-64da004753-lite.chunk.js.map +0 -1
  222. package/dist/scripts/4502-2e30d86385-lite.chunk.js +0 -2
  223. package/dist/scripts/4502-2e30d86385-lite.chunk.js.map +0 -1
  224. package/dist/scripts/4690-03372d68ac-lite.chunk.js +0 -2
  225. package/dist/scripts/4690-03372d68ac-lite.chunk.js.map +0 -1
  226. package/dist/scripts/5143-b6896dad98-lite.chunk.js +0 -2
  227. package/dist/scripts/5143-b6896dad98-lite.chunk.js.map +0 -1
  228. package/dist/scripts/5157-54aeb51bdf-lite.chunk.js +0 -2
  229. package/dist/scripts/5157-54aeb51bdf-lite.chunk.js.map +0 -1
  230. package/dist/scripts/537-536e52ef91-lite.chunk.js +0 -3
  231. package/dist/scripts/537-536e52ef91-lite.chunk.js.map +0 -1
  232. package/dist/scripts/5562-e011962a62-lite.chunk.js +0 -3
  233. package/dist/scripts/5562-e011962a62-lite.chunk.js.map +0 -1
  234. package/dist/scripts/5573-6cd98b69f2-lite.chunk.js +0 -2
  235. package/dist/scripts/5573-6cd98b69f2-lite.chunk.js.map +0 -1
  236. package/dist/scripts/5595-96a0649af0-lite.chunk.js +0 -2
  237. package/dist/scripts/5595-96a0649af0-lite.chunk.js.map +0 -1
  238. package/dist/scripts/5606-6c25caedc4-lite.chunk.js +0 -2
  239. package/dist/scripts/5606-6c25caedc4-lite.chunk.js.map +0 -1
  240. package/dist/scripts/5877-ddfaf6a7f5-lite.chunk.js +0 -2
  241. package/dist/scripts/5877-ddfaf6a7f5-lite.chunk.js.map +0 -1
  242. package/dist/scripts/5936-f0177219db-lite.chunk.js +0 -2
  243. package/dist/scripts/5936-f0177219db-lite.chunk.js.map +0 -1
  244. package/dist/scripts/6054-14d4ceeae3-lite.chunk.js +0 -2
  245. package/dist/scripts/6054-14d4ceeae3-lite.chunk.js.map +0 -1
  246. package/dist/scripts/6094-7ec9341357-lite.chunk.js +0 -2
  247. package/dist/scripts/6094-7ec9341357-lite.chunk.js.map +0 -1
  248. package/dist/scripts/6138-d419f62f77-lite.chunk.js +0 -2
  249. package/dist/scripts/6138-d419f62f77-lite.chunk.js.map +0 -1
  250. package/dist/scripts/6263-af99de5a35-lite.chunk.js +0 -2
  251. package/dist/scripts/6263-af99de5a35-lite.chunk.js.map +0 -1
  252. package/dist/scripts/6290-56412c6663-lite.chunk.js +0 -2
  253. package/dist/scripts/6290-56412c6663-lite.chunk.js.map +0 -1
  254. package/dist/scripts/6415-8b354a10c7-lite.chunk.js +0 -2
  255. package/dist/scripts/6415-8b354a10c7-lite.chunk.js.map +0 -1
  256. package/dist/scripts/6470-6216086d63-lite.chunk.js +0 -2
  257. package/dist/scripts/6470-6216086d63-lite.chunk.js.map +0 -1
  258. package/dist/scripts/6481-03a4f1082e-lite.chunk.js +0 -2
  259. package/dist/scripts/6481-03a4f1082e-lite.chunk.js.map +0 -1
  260. package/dist/scripts/6489-953bb87f64-lite.chunk.js +0 -3
  261. package/dist/scripts/6489-953bb87f64-lite.chunk.js.map +0 -1
  262. package/dist/scripts/6532-a6b65c91a7-lite.chunk.js +0 -2
  263. package/dist/scripts/6532-a6b65c91a7-lite.chunk.js.map +0 -1
  264. package/dist/scripts/6546-bc3a8099ba-lite.chunk.js +0 -2
  265. package/dist/scripts/6546-bc3a8099ba-lite.chunk.js.map +0 -1
  266. package/dist/scripts/6587-23e7b1d196-lite.chunk.js +0 -2
  267. package/dist/scripts/6587-23e7b1d196-lite.chunk.js.map +0 -1
  268. package/dist/scripts/6604-92193d6d68-lite.chunk.js +0 -2
  269. package/dist/scripts/6604-92193d6d68-lite.chunk.js.map +0 -1
  270. package/dist/scripts/6741-ff3e4a33a5-lite.chunk.js +0 -3
  271. package/dist/scripts/6741-ff3e4a33a5-lite.chunk.js.map +0 -1
  272. package/dist/scripts/6746-b5b2739944-lite.chunk.js +0 -2
  273. package/dist/scripts/6746-b5b2739944-lite.chunk.js.map +0 -1
  274. package/dist/scripts/679-92bb80f478-lite.chunk.js +0 -2
  275. package/dist/scripts/679-92bb80f478-lite.chunk.js.map +0 -1
  276. package/dist/scripts/714-432082f4fa-lite.chunk.js +0 -2
  277. package/dist/scripts/714-432082f4fa-lite.chunk.js.map +0 -1
  278. package/dist/scripts/7178-e603ea6b58-lite.chunk.js +0 -2
  279. package/dist/scripts/7178-e603ea6b58-lite.chunk.js.map +0 -1
  280. package/dist/scripts/7223-135cc7d675-lite.chunk.js +0 -2
  281. package/dist/scripts/7223-135cc7d675-lite.chunk.js.map +0 -1
  282. package/dist/scripts/729-c704d587d3-lite.chunk.js +0 -2
  283. package/dist/scripts/729-c704d587d3-lite.chunk.js.map +0 -1
  284. package/dist/scripts/7293-687e60dba2-lite.chunk.js.map +0 -1
  285. package/dist/scripts/7679-81c2a40df4-lite.chunk.js +0 -2
  286. package/dist/scripts/7679-81c2a40df4-lite.chunk.js.map +0 -1
  287. package/dist/scripts/7757-b149c4c215-lite.chunk.js +0 -2
  288. package/dist/scripts/7757-b149c4c215-lite.chunk.js.map +0 -1
  289. package/dist/scripts/7795-3ca0855d3a-lite.chunk.js +0 -2
  290. package/dist/scripts/7795-3ca0855d3a-lite.chunk.js.map +0 -1
  291. package/dist/scripts/7818-2eafc5f812-lite.chunk.js +0 -2
  292. package/dist/scripts/7818-2eafc5f812-lite.chunk.js.map +0 -1
  293. package/dist/scripts/8200-8a55f1631f-lite.chunk.js +0 -3
  294. package/dist/scripts/8200-8a55f1631f-lite.chunk.js.map +0 -1
  295. package/dist/scripts/8323-99cb03891e-lite.chunk.js +0 -3
  296. package/dist/scripts/8323-99cb03891e-lite.chunk.js.map +0 -1
  297. package/dist/scripts/841-0c50273ad2-lite.chunk.js +0 -3
  298. package/dist/scripts/841-0c50273ad2-lite.chunk.js.map +0 -1
  299. package/dist/scripts/8722-c5f95553f2-lite.chunk.js +0 -2
  300. package/dist/scripts/8722-c5f95553f2-lite.chunk.js.map +0 -1
  301. package/dist/scripts/8766-9605550480-lite.chunk.js +0 -2
  302. package/dist/scripts/8766-9605550480-lite.chunk.js.map +0 -1
  303. package/dist/scripts/8800-c88fefeace-lite.chunk.js +0 -2
  304. package/dist/scripts/8800-c88fefeace-lite.chunk.js.map +0 -1
  305. package/dist/scripts/8982-63c31685bf-lite.chunk.js +0 -2
  306. package/dist/scripts/8982-63c31685bf-lite.chunk.js.map +0 -1
  307. package/dist/scripts/9016-0c078a39cb-lite.chunk.js +0 -3
  308. package/dist/scripts/9016-0c078a39cb-lite.chunk.js.map +0 -1
  309. package/dist/scripts/9226-c236c0eeb1-lite.chunk.js +0 -2
  310. package/dist/scripts/9226-c236c0eeb1-lite.chunk.js.map +0 -1
  311. package/dist/scripts/9230-6dee40b1fb-lite.chunk.js +0 -3
  312. package/dist/scripts/9230-6dee40b1fb-lite.chunk.js.map +0 -1
  313. package/dist/scripts/9359-fa72fcdedc-lite.chunk.js +0 -2
  314. package/dist/scripts/9359-fa72fcdedc-lite.chunk.js.map +0 -1
  315. package/dist/scripts/9399-b724e4fb06-lite.chunk.js +0 -2
  316. package/dist/scripts/9399-b724e4fb06-lite.chunk.js.map +0 -1
  317. package/dist/scripts/9719-cf7d4172b6-lite.chunk.js +0 -3
  318. package/dist/scripts/9719-cf7d4172b6-lite.chunk.js.map +0 -1
  319. package/dist/scripts/986-e9379d557d-lite.chunk.js +0 -3
  320. package/dist/scripts/986-e9379d557d-lite.chunk.js.LICENSE.txt +0 -1
  321. package/dist/scripts/986-e9379d557d-lite.chunk.js.map +0 -1
  322. package/dist/scripts/bundle-1e1730f25e.min.js +0 -3
  323. package/dist/scripts/bundle-1e1730f25e.min.js.map +0 -1
  324. /package/dist/css/{9173-lite-b361d438f6.chunk.css → 1104-lite-b361d438f6.chunk.css} +0 -0
  325. /package/dist/css/{679-lite-00eb7dadb2.chunk.css → 2952-lite-00eb7dadb2.chunk.css} +0 -0
  326. /package/dist/css/{1867-lite-ae7bb51ed6.chunk.css → 3640-lite-ae7bb51ed6.chunk.css} +0 -0
  327. /package/dist/css/{4860-lite-93d7fad455.chunk.css → 4063-lite-93d7fad455.chunk.css} +0 -0
  328. /package/dist/css/{729-lite-93d7fad455.chunk.css → 4850-lite-93d7fad455.chunk.css} +0 -0
  329. /package/dist/css/{6546-lite-ae7bb51ed6.chunk.css → 5549-lite-ae7bb51ed6.chunk.css} +0 -0
  330. /package/dist/css/{8766-lite-8c5d7658ec.chunk.css → 7163-lite-8c5d7658ec.chunk.css} +0 -0
  331. /package/dist/css/{1818-lite-5ef1706d69.chunk.css → 7234-lite-5ef1706d69.chunk.css} +0 -0
  332. /package/dist/css/{6415-lite-707657102b.chunk.css → 9173-lite-707657102b.chunk.css} +0 -0
  333. /package/dist/scripts/{1329-7064e95200-lite.chunk.js.LICENSE.txt → 1104-f057c6dea1-lite.chunk.js.LICENSE.txt} +0 -0
  334. /package/dist/scripts/{1379-082bbab71a-lite.chunk.js.LICENSE.txt → 1329-850346e6e6-lite.chunk.js.LICENSE.txt} +0 -0
  335. /package/dist/scripts/{1466-735d7dad48-lite.chunk.js.LICENSE.txt → 1379-976d20185f-lite.chunk.js.LICENSE.txt} +0 -0
  336. /package/dist/scripts/{1672-672f298d82-lite.chunk.js.LICENSE.txt → 1672-60a3ab42f5-lite.chunk.js.LICENSE.txt} +0 -0
  337. /package/dist/scripts/{2004-d891104ed4-lite.chunk.js.LICENSE.txt → 2004-7d1bf8b246-lite.chunk.js.LICENSE.txt} +0 -0
  338. /package/dist/scripts/{537-536e52ef91-lite.chunk.js.LICENSE.txt → 338-e21a3cd6fe-lite.chunk.js.LICENSE.txt} +0 -0
  339. /package/dist/scripts/{5562-e011962a62-lite.chunk.js.LICENSE.txt → 3532-2fed0eb7a4-lite.chunk.js.LICENSE.txt} +0 -0
  340. /package/dist/scripts/{6102-ce44fd00aa-lite.chunk.js.LICENSE.txt → 537-f63ad5863e-lite.chunk.js.LICENSE.txt} +0 -0
  341. /package/dist/scripts/{624-7ab5fb3f3b-lite.chunk.js.LICENSE.txt → 6102-3ddcebe8a1-lite.chunk.js.LICENSE.txt} +0 -0
  342. /package/dist/scripts/{6489-953bb87f64-lite.chunk.js.LICENSE.txt → 624-bf0ff6257f-lite.chunk.js.LICENSE.txt} +0 -0
  343. /package/dist/scripts/{6741-ff3e4a33a5-lite.chunk.js.LICENSE.txt → 6489-9287613d14-lite.chunk.js.LICENSE.txt} +0 -0
  344. /package/dist/scripts/{8200-8a55f1631f-lite.chunk.js.LICENSE.txt → 6741-572db2d1e9-lite.chunk.js.LICENSE.txt} +0 -0
  345. /package/dist/scripts/{8323-99cb03891e-lite.chunk.js.LICENSE.txt → 8200-1e4518c5d8-lite.chunk.js.LICENSE.txt} +0 -0
  346. /package/dist/scripts/{841-0c50273ad2-lite.chunk.js.LICENSE.txt → 8323-fb330a8f47-lite.chunk.js.LICENSE.txt} +0 -0
  347. /package/dist/scripts/{9173-2392d447a6-lite.chunk.js.LICENSE.txt → 841-d69c7f4b4d-lite.chunk.js.LICENSE.txt} +0 -0
  348. /package/dist/scripts/{9016-0c078a39cb-lite.chunk.js.LICENSE.txt → 9016-e17da8b633-lite.chunk.js.LICENSE.txt} +0 -0
  349. /package/dist/scripts/{9230-6dee40b1fb-lite.chunk.js.LICENSE.txt → 9230-537f1fcc38-lite.chunk.js.LICENSE.txt} +0 -0
  350. /package/dist/scripts/{9395-90b87097fa-lite.chunk.js.LICENSE.txt → 9395-e9b5cdbdce-lite.chunk.js.LICENSE.txt} +0 -0
  351. /package/dist/scripts/{9478-99486906b9-lite.chunk.js.LICENSE.txt → 9478-abfa7ed3cc-lite.chunk.js.LICENSE.txt} +0 -0
  352. /package/dist/scripts/{953-cbc7f0571e-lite.chunk.js.LICENSE.txt → 953-bf3d621a33-lite.chunk.js.LICENSE.txt} +0 -0
  353. /package/dist/scripts/{9719-cf7d4172b6-lite.chunk.js.LICENSE.txt → 9719-ed1956607c-lite.chunk.js.LICENSE.txt} +0 -0
  354. /package/dist/scripts/{bundle-1e1730f25e.min.js.LICENSE.txt → bundle-9a72d04e7d.min.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/7757-2785d666ad-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/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/utils/PartialLoadingHelper.ts","file:///app/packages/projects/lite/src/shared/hooks/usePresentationAudiences.ts","file:///app/packages/projects/lite/src/shared/hooks/useVideoFeatureAccess.ts","file:///app/packages/projects/lite/src/shared/views/video-media/VideoClipsView.tsx","file:///app/packages/projects/lite/src/shared/views/video-media/VideoMediaAppLinks.ts","file:///app/packages/projects/lite/src/shared/views/video-media/partial-loading/partial-video-media-view.scss","file:///app/packages/projects/lite/src/shared/views/video-media/partial-loading/PartialVideoMediaView.tsx","file:///app/node_modules/react-bootstrap/esm/Row.js"],"sourcesContent":["import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nconst COLLAPSE_CHARACTER_COUNT = 56;\n\nexport interface Breadcrumb {\n name: string;\n appLink?: Core.AppLink;\n active?: boolean;\n}\n\ninterface BreadcrumbItemProps {\n breadcrumb: Breadcrumb;\n withBackIcon?: boolean;\n}\n\nexport const BreadcrumbItem = ({ breadcrumb: { name, appLink, active }, withBackIcon }: BreadcrumbItemProps) => (\n <li className={`breadcrumb-item${active ? ' active' : ''}`}>\n {active\n ? <strong>{name}</strong>\n : <AppLink appLink={appLink}>\n {withBackIcon && <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{name}</span>\n </AppLink>\n }\n </li>\n);\n\ninterface BreadcrumbsProps {\n breadcrumbs: Breadcrumb[];\n}\n\nexport const Breadcrumbs = ({ breadcrumbs }: BreadcrumbsProps) => {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n const length = breadcrumbs?.length || 0;\n \n const [ collapse, setCollapse ] = React.useState(false);\n\n React.useEffect(() => {\n const characterLength = breadcrumbs?.reduce((prev, next) => prev + next.name.length, 0) ?? 0;\n\n if (length > 3 && characterLength > COLLAPSE_CHARACTER_COUNT)\n setCollapse(true);\n }, [breadcrumbs?.length]);\n\n if (!length || (isMobile && length < 2))\n return <></>;\n\n if (isMobile)\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} withBackIcon />\n </ol>\n </nav>\n );\n\n const first = <BreadcrumbItem breadcrumb={breadcrumbs[0]} />;\n const secondLast = length > 2 ? <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} /> : <></>;\n const last = <BreadcrumbItem breadcrumb={breadcrumbs[length - 1]} />;\n const rest = breadcrumbs.slice(1, length - 2);\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {first}\n {collapse ?\n <li className='breadcrumb-item'>\n <button className='btn-link' onClick={() => setCollapse(false)}>\n ...\n </button>\n </li> :\n rest.map((breadcrumb, idx) => <BreadcrumbItem key={idx} breadcrumb={breadcrumb} />)\n }\n {secondLast}\n {last}\n </ol>\n </nav>\n );\n};\n\nexport const PartialBreadcrumbs = React.memo(function({ numItems = 3 }: { numItems?: number; }) {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n if (isMobile) {\n return (\n <div className='partial-loading-background' style={{ height: '1.3125rem', width: '6rem' }} />\n );\n }\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {PartialLoadingHelper.getPartialLoadingItems({ numItems }).map(({ width }, idx) => (\n <li key={idx} className='breadcrumb-item'>\n <span className='d-inline-block partial-loading-background' style={{ width }} dangerouslySetInnerHTML={{ __html: '&nbsp' }} />\n </li>\n ))}\n </ol>\n </nav>\n );\n});","// 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","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 { Flight } from 'libs/common/react/index';\n\nimport { AudienceRequests } from 'libs/shared/flight-requests/AudienceRequests';\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\nimport { usePresentation } from 'shared/hooks/usePresentation';\n\nexport const usePresentationAudiences = () => {\n const { activePresentation, getFallbackPresentation } = usePresentation({ redirectOnError: true });\n\n const presentation = activePresentation || getFallbackPresentation();\n\n const audiences = Flight.useBasicFetch<PresentationAudience[]>(\n !!presentation &&\n AudienceRequests.presentationAudiences(presentation.id)\n );\n\n return audiences;\n};","import { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\n\nimport { LiteRouteHelper } from 'shared/utils/LiteRouteHelper';\n\nexport interface VideoFeaturesHash {\n canViewGlance: boolean;\n canViewResources: boolean;\n canViewInteractives: boolean;\n canViewClips: boolean;\n canUseActions: boolean;\n canViewPublicLayout: boolean;\n canNavigate: boolean;\n canViewCurriculumLinks: boolean;\n canViewResourceItems: boolean;\n}\n\nexport function useVideoFeatureAccess() {\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { hasProduct } = useProducts();\n\n const hasNP = hasProduct(ProductId.Primary);\n\n function showPublicLayout(): boolean {\n /**\n * Authenticated users should never see the placeholder\n */\n if (hasLocalPermissions(LocalPermissionName.WatchVideos))\n return false;\n\n /**\n * Accessing a play page unathenticated will have different contextual behabviours:\n * - For a share page, the user should see the video and never the placeholder\n * - For a public browsing page (ie. using a route-prefix) they should see the placeholder\n */\n return LiteRouteHelper.hasRegionPrefix();\n }\n\n return {\n canViewGlance: hasPermissions(PermissionName.ViewVideoGlance),\n canViewResources: true,\n canViewInteractives: hasNP && hasPermissions(PermissionName.ViewVideoInteractives),\n canViewClips: hasNP && hasPermissions(PermissionName.ViewVideoClips),\n canViewCurriculumLinks: hasPermissions(PermissionName.ViewCurriculums),\n canUseActions: hasLocalPermissions(LocalPermissionName.UseVideoActions),\n canViewPublicLayout: showPublicLayout(),\n canViewResourceItems: hasLocalPermissions(LocalPermissionName.ViewVideoResourceItems),\n canNavigate: hasNP\n };\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { Breadcrumb, Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { RelatedVideosContext } from 'libs/shared/enums/RelatedVideosContext';\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { Clip, Config, CurrentUser, Video, YearGroup } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useVideoFeatureAccess } from 'shared/hooks/useVideoFeatureAccess';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\nimport { PartialVideoMediaView } from 'shared/views/video-media/partial-loading/PartialVideoMediaView';\nimport { VideoMediaAppLinks } from 'shared/views/video-media/VideoMediaAppLinks';\n\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nconst namespace = 'shared.videoMedia';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface VideoMediaViewProps {\n videoId: string;\n}\n\nexport function VideoClipsView(props: VideoMediaViewProps): JSX.Element {\n const { videoId } = props;\n const { setFavourite, canFavourite } = useLiteFavourites(LocationContext.VideoThumbnail);\n const { isPlugin } = usePluginHelper();\n \n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem });\n const featureAccess = useVideoFeatureAccess();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n const video = Flight.useBasicFetch<Video>(VideoRequests.video(videoId));\n const clips = Flight.useBasicFetch<Clip[]>(featureAccess.canViewClips && ClipRequests.videoClips(videoId));\n const content = clips?.data;\n const count = content?.length || 0;\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const title = `${getPhrase('clipHeading')} (${count || ''})`;\n\n const audiences = usePresentationAudiences();\n const { hasPermissions } = usePermissions();\n\n const breadcrumbs: Breadcrumb[] = [{\n name: video.data?.name,\n appLink: {\n ...VideoMediaAppLinks.playVideo,\n args: [ videoId, TextHelper.slugify(video.data?.name) ]\n }\n }, {\n name: title,\n appLink: {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.VIDEO_CLIPS,\n args: [ videoId, TextHelper.slugify(video.data?.name) ]\n },\n active: true\n }];\n\n function redirectToPlaypage(): void {\n Core.AppLinkHelper.trigger({\n ...VideoMediaAppLinks.playVideo,\n args: [ videoId, TextHelper.slugify(video.data?.name) ]\n }, { replace: true });\n }\n\n React.useEffect(() => {\n if (!featureAccess.canViewClips) {\n redirectToPlaypage();\n }\n }, [featureAccess.canViewClips]);\n\n if (!video.data || !content?.length || !config.hasCompleted)\n return <PartialVideoMediaView />;\n\n return (\n <VideoActionsContext.Provider value={videoActions}>\n <div className='px-3'>\n <h1 className='h2 mb-2'>{title}</h1>\n \n <div className='mb-2'>\n <Breadcrumbs breadcrumbs={breadcrumbs}/>\n </div>\n\n <VideoList\n videos={content}\n yearGroups={yearGroups.data}\n getVideoAppLink={(video, opts) => VideoAppLinkHelper.getAppLink(video, {\n ...opts,\n context: RelatedVideosContext.Widget,\n contextId: props.videoId\n })}\n hasPermissions={hasPermissions}\n getSubTextAppLink={video => SeriesAppLinkHelper.getSeriesAppLink(video.series)}\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n presentationAudiences={audiences.data}\n imageCdnUrl={config.data?.imageCdnUrl}\n isPlugin={isPlugin}\n getClassroomGuideAppLink={VideoAppLinkHelper.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={VideoAppLinkHelper.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={VideoAppLinkHelper.getResourceGuidanceAppLink}\n />\n </div>\n </VideoActionsContext.Provider>\n );\n}","\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nexport const VideoMediaAppLinks = {\n playVideo: {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PLAY_VIDEO\n },\n playClip: {\n application: AppChannels.CLIPS,\n action: Actions.Clips.PLAY_CLIP\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"partialHeading\":\"okxfx\"};","import React from 'react';\n\nimport { PartialBreadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\n\nimport styles from './partial-video-media-view.scss';\n\nexport function PartialVideoMediaView(): JSX.Element {\n return (\n <div className='px-3'>\n <div className={`partial-loading-background mb-2 ${styles.partialHeading}`} />\n <div className='mb-2'>\n <PartialBreadcrumbs/>\n </div>\n <PartialVideoList />\n </div>\n );\n}","\"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":["BreadcrumbItem","breadcrumb","name","appLink","active","withBackIcon","className","svgName","size","S","Breadcrumbs","breadcrumbs","isMobile","length","collapse","setCollapse","characterLength","reduce","prev","next","first","secondLast","last","rest","slice","onClick","map","idx","key","PartialBreadcrumbs","numItems","style","height","width","dangerouslySetInnerHTML","__html","PartialVideoList","props","Array","numVideos","fill","_","i","allowBulkActions","PartialVideoItem","breakpoints","useBreakpoints","isSmall","VideoListHelper","withDragHandle","withReordering","xs","Row","Col","defaultProps","DEFAULT_PARTIAL_LOADING_OPTIONS","minWidth","maxWidth","PartialLoadingHelper","getPartialLoadingItems","options","opts","Math","max","floor","random","usePresentationAudiences","redirectOnError","activePresentation","getFallbackPresentation","presentation","id","useVideoFeatureAccess","hasPermissions","hasLocalPermissions","hasNP","hasProduct","canViewGlance","canViewResources","canViewInteractives","canViewClips","canViewCurriculumLinks","canUseActions","canViewPublicLayout","canViewResourceItems","canNavigate","getPhrase","VideoClipsView","videoId","u","setFavourite","canFavourite","isPlugin","videoActions","location","featureAccess","currentUser","yearGroups","data","isAuthenticated","customerId","video","clips","content","count","config","title","audiences","args","application","action","replace","redirectToPlaypage","hasCompleted","value","videos","getVideoAppLink","context","contextId","getSubTextAppLink","series","presentationAudiences","imageCdnUrl","getClassroomGuideAppLink","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","VideoMediaAppLinks","playVideo","playClip","PartialVideoMediaView","bsPrefix","as","Component","ref","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([[7795],{49935:(e,t,n)=>{n.d(t,{Oo:()=>d,b2:()=>p});var a=n(32735),r=n(36848),i=n(86764),c=n(3747),l=n(5859),o=n(35223),s=n(83914);function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var m=function(e){var t=e.breadcrumb,n=t.name,i=t.appLink,c=t.active,l=e.withBackIcon;return a.createElement("li",{className:"breadcrumb-item".concat(c?" active":"")},c?a.createElement("strong",null,n):a.createElement(r.F,{appLink:i},l&&a.createElement(s.x,{svgName:o.vn.ChevronLeft,size:s.S.Small}),a.createElement("span",{className:l?"ms-2":""},n)))},d=function(e){var t,n,r=e.breadcrumbs,l=(0,c.a)(i.r.XS),o=(null==r?void 0:r.length)||0,s=(t=a.useState(!1),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,c,l=[],o=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;o=!1}else for(;!(o=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);o=!0);}catch(e){s=!0,r=e}finally{try{if(!o&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return u(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),d=s[0],p=s[1];if(a.useEffect((function(){var e,t=null!==(e=null==r?void 0:r.reduce((function(e,t){return e+t.name.length}),0))&&void 0!==e?e:0;o>3&&t>56&&p(!0)}),[null==r?void 0:r.length]),!o||l&&o<2)return a.createElement(a.Fragment,null);if(l)return a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},a.createElement(m,{breadcrumb:r[o-2],withBackIcon:!0})));var v=a.createElement(m,{breadcrumb:r[0]}),g=o>2?a.createElement(m,{breadcrumb:r[o-2]}):a.createElement(a.Fragment,null),b=a.createElement(m,{breadcrumb:r[o-1]}),E=r.slice(1,o-2);return a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},v,d?a.createElement("li",{className:"breadcrumb-item"},a.createElement("button",{className:"btn-link",onClick:function(){return p(!1)}},"...")):E.map((function(e,t){return a.createElement(m,{key:t,breadcrumb:e})})),g,b))},p=a.memo((function(e){var t=e.numItems,n=void 0===t?3:t;return(0,c.a)(i.r.XS)?a.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},l.u.getPartialLoadingItems({numItems:n}).map((function(e,t){var n=e.width;return a.createElement("li",{key:t,className:"breadcrumb-item"},a.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:n},dangerouslySetInnerHTML:{__html:"&nbsp"}}))}))))}))},38502:(e,t,n)=>{n.d(t,{r:()=>m});var a=n(32735),r=n(49985),i=n(36848),c=n(18559),l=n(11607),o=n(83914),s=n(87432);function u(e){return a.createElement(a.Fragment,null,!!e.tab.svgName&&a.createElement("div",{className:e.tab.name?"pe-1":""},a.createElement(o.x,{svgName:e.tab.svgName})),e.tab.name,"number"==typeof e.tab.count&&a.createElement("div",{className:"ps-2"},a.createElement(c.C,{type:c.g.Count,data:e.tab.count})))}function m(e){var t;return a.createElement("nav",{className:null!==(t=e.className)&&void 0!==t?t:"",ref:e.containerRef},a.createElement("ul",{className:"\n list-unstyled d-inline-block m-0 ".concat(s.Z.pillTabSelector,"\n ").concat(e.borderRadius?s.Z.radiusSmall:"","\n ").concat(e.listClassName,"\n ")},e.tabs.map((function(e,t){return a.createElement("li",{className:"\n p-0 ".concat(s.Z.tab," ").concat(e.active?"btn btn-dark":"btn btn-outline-dark","\n ").concat(e.name?s.Z.minWidth:""," ").concat(e.className,"\n "),key:t},e.appLink?a.createElement(i.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(s.Z.tabLink,"\n ")},a.createElement(u,{tab:e})):a.createElement(l.L,{className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset p-2 text-nowrap ".concat(s.Z.tabLink,"\n "),onClick:function(){return function(e){!e.active&&e.onSelect&&(e.onSelect(),e.analyticsData&&e.analyticsOptions&&r.k.logUserAction(e.analyticsData,e.analyticsOptions))}(e)}},a.createElement(u,{tab:e})))}))))}m.defaultProps={borderRadius:"lg"}},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:()=>v});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 v(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)}},17749:(e,t,n)=>{n.d(t,{g:()=>r});var a=n(99940),r={getLibraryReviewPeriod:function(){return{url:"{gateway}/v1/library-reviews",key:"coming:soon:settings",normalize:!1}},setLibraryReviewPeriod:function(e){return{url:"{gateway}/v1/library-reviews",key:"update:coming:soon:settings",invalidationKeys:"coming:soon:settings",type:a.k.POST,data:{reviewPeriod:e},normalize:!1}},deleteLibraryReviewPeriod:function(){return{url:"{gateway}/v1/library-reviews",key:"delete:coming:soon:settings",invalidationKeys:"coming:soon:settings",type:a.k.DELETE,normalize:!1}}}},81367:(e,t,n)=>{n.r(t),n.d(t,{ContentReviewView:()=>W});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),v=n(5345),g=n(1666),b=n(31949),E=n(22902),f=n(26361),y=n(14070),h=n(97291),S=n(21491),N=n(51855),k=n(10671),T=n(27638),w=n(10741),I=n(22490),L=n(82431),O=n(23224),C=n(81803),A=n(17749),R=n(23232),x=n(99742),j="settings.noItemsEmptyState";function P(){return a.createElement(R.u,null,a.createElement(R.u.Image,{src:x.W.EmptyStates.ContentReview.NO_ITEMS,size:"small"}),a.createElement(R.u.Heading,null,a.createElement(s.x,{namespace:j,phrase:"heading"})),a.createElement(R.u.Info,null,a.createElement(s.x,{namespace:j,phrase:"info"})))}var V=n(99705),G=n(12778),F="settings.turnedOffEmptyState",_=r.T.encloseNamespace(F);function M(){var e=G.o.getLiteArticle(V.b.ContentReview);return a.createElement(R.u,null,a.createElement(R.u.Image,{src:x.W.EmptyStates.ContentReview.TURNED_OFF,size:"small"}),a.createElement(R.u.Heading,null,a.createElement(s.x,{namespace:F,phrase:"heading"})),a.createElement(R.u.Info,null,a.createElement(s.x,{namespace:F,phrase:"info"})," ",a.createElement(l.F,{className:"info-link",appLink:{application:h.O.SETTINGS,action:y.e.Settings.CONTENT_REVIEW_SETTINGS}},a.createElement(s.x,{namespace:F,phrase:"contentReviewSettings"}))),a.createElement(R.u.Cta,{href:e,text:_("learnMore"),className:"btn btn-link info-link"}))}var D="settings.contentReview",Z=r.T.encloseNamespace(D);function W(e){var t,n,r,R,x=(0,T.u)(c.LZ.VideoThumbnail),j=x.setFavourite,V=x.canFavourite,G=(0,N.G)().isPlugin,F=i.a.useBasicFetch(S.I.getRestrictedObjects([v.c.Custom],e.cursor)),_=i.a.useBasicFetch(b.N.currentUser()),W=i.a.useBasicFetch(_.data&&g.h.yearGroups(_.data.customerId)),B=i.a.useBasicFetch(A.g.getLibraryReviewPeriod()),H=(0,k._)({location:k.i.VideoItem}),$=(0,E.T)().hasPermissions,U=F.hasCompleted&&B.hasCompleted;return a.createElement(C.d,{heading:Z("heading"),breadcrumbs:[Z("heading")],requiredPermissions:p.C.ManageVideoAccess},a.createElement(O.j,{active:"content-review"}),U?(null===(t=B.data)||void 0===t?void 0:t.reviewPeriod)?(null===(r=null===(n=F.data)||void 0===n?void 0:n.data)||void 0===r?void 0:r.length)?a.createElement(a.Fragment,null,a.createElement("div",{className:"d-flex justify-content-between mb-2"},a.createElement("p",{className:"h4"},a.createElement(s.x,{namespace:D,phrase:"count",options:{smartCount:F.data.count}})),a.createElement(l.F,{appLink:{application:h.O.SETTINGS,action:y.e.Settings.APPROVE_ALL_VIDEOS},className:"btn btn-dark"},a.createElement(s.x,{namespace:D,phrase:"approveAll"}))),a.createElement("hr",null),a.createElement(d.M.Provider,{value:H},a.createElement(m.E4,{videos:F.data.data.filter((function(e){return!!f.l.getRestrictionByType(e,v.c.Custom)})),yearGroups:W.data,getVideoAppLink:I.W.getAppLink,getSubTextAppLink:function(e){return L.j.getSeriesAppLink(e.series)},setFavourite:j,canFavourite:V,hasPermissions:$,presentationAudiences:[],getPreviewQuestionsAppLink:function(e){return w.j.getPreviewQuestionsAppLink(e)},isPlugin:G,getClassroomGuideAppLink:I.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:I.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:I.W.getResourceGuidanceAppLink})),(null===(R=F.data.pagination)||void 0===R?void 0:R.cursors)&&a.createElement("div",{className:"clearfix"},a.createElement(o.t,{cursors:F.data.pagination.cursors,appLink:{application:h.O.SETTINGS,action:y.e.Settings.CONTENT_REVIEW},buttonVariant:"outline-dark",className:"py-2 float-end"}))):a.createElement(P,null):a.createElement(M,null):a.createElement(u.S,null))}},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=7795-b641104969-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/7795-b641104969-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/flight-request/ContentReviewSettingsRequests.ts","file:///app/packages/projects/lite/src/apps/settings/views/content-review/no-items-empty-state/NoItemsEmptyState.tsx","file:///app/packages/projects/lite/src/apps/settings/views/content-review/turned-off-empty-state/TurnedOffEmptyState.tsx","file:///app/packages/projects/lite/src/apps/settings/views/content-review/ContentReviewView.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 { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nconst COLLAPSE_CHARACTER_COUNT = 56;\n\nexport interface Breadcrumb {\n name: string;\n appLink?: Core.AppLink;\n active?: boolean;\n}\n\ninterface BreadcrumbItemProps {\n breadcrumb: Breadcrumb;\n withBackIcon?: boolean;\n}\n\nexport const BreadcrumbItem = ({ breadcrumb: { name, appLink, active }, withBackIcon }: BreadcrumbItemProps) => (\n <li className={`breadcrumb-item${active ? ' active' : ''}`}>\n {active\n ? <strong>{name}</strong>\n : <AppLink appLink={appLink}>\n {withBackIcon && <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{name}</span>\n </AppLink>\n }\n </li>\n);\n\ninterface BreadcrumbsProps {\n breadcrumbs: Breadcrumb[];\n}\n\nexport const Breadcrumbs = ({ breadcrumbs }: BreadcrumbsProps) => {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n const length = breadcrumbs?.length || 0;\n \n const [ collapse, setCollapse ] = React.useState(false);\n\n React.useEffect(() => {\n const characterLength = breadcrumbs?.reduce((prev, next) => prev + next.name.length, 0) ?? 0;\n\n if (length > 3 && characterLength > COLLAPSE_CHARACTER_COUNT)\n setCollapse(true);\n }, [breadcrumbs?.length]);\n\n if (!length || (isMobile && length < 2))\n return <></>;\n\n if (isMobile)\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} withBackIcon />\n </ol>\n </nav>\n );\n\n const first = <BreadcrumbItem breadcrumb={breadcrumbs[0]} />;\n const secondLast = length > 2 ? <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} /> : <></>;\n const last = <BreadcrumbItem breadcrumb={breadcrumbs[length - 1]} />;\n const rest = breadcrumbs.slice(1, length - 2);\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {first}\n {collapse ?\n <li className='breadcrumb-item'>\n <button className='btn-link' onClick={() => setCollapse(false)}>\n ...\n </button>\n </li> :\n rest.map((breadcrumb, idx) => <BreadcrumbItem key={idx} breadcrumb={breadcrumb} />)\n }\n {secondLast}\n {last}\n </ol>\n </nav>\n );\n};\n\nexport const PartialBreadcrumbs = React.memo(function({ numItems = 3 }: { numItems?: number; }) {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n if (isMobile) {\n return (\n <div className='partial-loading-background' style={{ height: '1.3125rem', width: '6rem' }} />\n );\n }\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {PartialLoadingHelper.getPartialLoadingItems({ numItems }).map(({ width }, idx) => (\n <li key={idx} className='breadcrumb-item'>\n <span className='d-inline-block partial-loading-background' style={{ width }} dangerouslySetInnerHTML={{ __html: '&nbsp' }} />\n </li>\n ))}\n </ol>\n </nav>\n );\n});","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svgName && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svgName={props.tab.svgName} />\n </div>\n )}\n\n {props.tab.name}\n\n {typeof (props.tab.count) === 'number' && (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} />\n </div>\n )}\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svgName?: string;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n containerRef?: (el: HTMLElement) => void;\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg'\n}\n\nPillTabSelector.defaultProps = {\n borderRadius: 'lg'\n};\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n\n return (\n <nav className={props.className ?? ''} ref={props.containerRef}>\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${props.borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset p-2 text-nowrap ${styles.tabLink}\n `}\n onClick={() => onSelectTab(tab)}\n >\n <TabContents tab={tab} />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n}\n","// 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 { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Flight } from 'libs/common/flight';\n\nexport const ContentReviewSettingsRequests = {\n getLibraryReviewPeriod(): Flight.Request {\n return {\n url: `{gateway}/v1/library-reviews`,\n key: `coming:soon:settings`,\n normalize: false\n };\n },\n\n setLibraryReviewPeriod(\n period: number\n ): Flight.Request {\n return {\n url: `{gateway}/v1/library-reviews`,\n key: `update:coming:soon:settings`,\n invalidationKeys: 'coming:soon:settings',\n type: HttpVerbs.POST,\n data: {\n reviewPeriod: period\n },\n normalize: false\n };\n },\n\n deleteLibraryReviewPeriod(): Flight.Request {\n return {\n url: `{gateway}/v1/library-reviews`,\n key: `delete:coming:soon:settings`,\n invalidationKeys: 'coming:soon:settings',\n type: HttpVerbs.DELETE,\n normalize: false\n };\n }\n};","import React from 'react';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nconst namespace = 'settings.noItemsEmptyState';\n\nexport function NoItemsEmptyState(): JSX.Element {\n return (\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.ContentReview.NO_ITEMS} size='small'/>\n <EmptyState.Heading><Text namespace={namespace} phrase='heading' /></EmptyState.Heading>\n <EmptyState.Info><Text namespace={namespace} phrase='info' /></EmptyState.Info>\n </EmptyState>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\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';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'settings.turnedOffEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function TurnedOffEmptyState(): JSX.Element {\n const href = ArticleHelper.getLiteArticle(LiteSupportArticle.ContentReview);\n\n return (\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.ContentReview.TURNED_OFF} size='small' />\n <EmptyState.Heading><Text namespace={namespace} phrase='heading' /></EmptyState.Heading>\n <EmptyState.Info>\n <Text namespace={namespace} phrase='info' />&nbsp;\n <AppLink\n className='info-link'\n appLink={{\n application: AppChannels.SETTINGS,\n action: Actions.Settings.CONTENT_REVIEW_SETTINGS\n }}\n >\n <Text namespace={namespace} phrase='contentReviewSettings' />\n </AppLink>\n </EmptyState.Info>\n <EmptyState.Cta\n href={href}\n text={getPhrase('learnMore')}\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 } from 'libs/analytics/interfaces';\n\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 } 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, 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 { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\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 { ContentReviewSettingsRequests } from 'apps/settings/flight-request/ContentReviewSettingsRequests';\nimport { LibraryReviewPeriodResponse } from 'apps/settings/interfaces/coming-soon/responses/LibraryReviewPeriodResponse';\nimport { NoItemsEmptyState } from 'apps/settings/views/content-review/no-items-empty-state/NoItemsEmptyState';\nimport { TurnedOffEmptyState } from 'apps/settings/views/content-review/turned-off-empty-state/TurnedOffEmptyState';\n\nconst namespace = 'settings.contentReview';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ContentReviewViewProps {\n cursor?: string;\n}\n\nexport function ContentReviewView(props: ContentReviewViewProps): JSX.Element {\n const { setFavourite, canFavourite } = useLiteFavourites(LocationContext.VideoThumbnail);\n const { isPlugin } = usePluginHelper();\n\n const videos = Flight.useBasicFetch<VideoTypesCollection>(\n RestrictionRequests.getRestrictedObjects([RestrictionType.Custom], 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 const libraryReview = Flight.useBasicFetch<LibraryReviewPeriodResponse>(\n ContentReviewSettingsRequests.getLibraryReviewPeriod()\n );\n\n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem });\n const { hasPermissions } = usePermissions();\n\n const dataLoaded = (\n videos.hasCompleted &&\n libraryReview.hasCompleted\n );\n\n return (\n <SettingsLayout\n heading={getPhrase('heading')}\n breadcrumbs={[getPhrase('heading')]}\n requiredPermissions={PermissionName.ManageVideoAccess}\n >\n <RestrictionTabs active='content-review' />\n\n {(() => {\n if (!dataLoaded)\n return <PartialVideoList />;\n\n if ((!libraryReview.data?.reviewPeriod))\n return <TurnedOffEmptyState />;\n\n if (!videos.data?.data?.length)\n return <NoItemsEmptyState />;\n\n return (\n <>\n <div className='d-flex justify-content-between mb-2'>\n <p className='h4'>\n <Text namespace={namespace} phrase='count' options={{ smartCount: videos.data.count }} />\n </p>\n <AppLink\n appLink={{\n application: AppChannels.SETTINGS,\n action: Actions.Settings.APPROVE_ALL_VIDEOS\n }}\n className='btn btn-dark'\n >\n <Text namespace={namespace} phrase='approveAll' />\n </AppLink>\n </div>\n <hr />\n <VideoActionsContext.Provider value={videoActions}>\n <VideoList\n videos={videos.data.data.filter(v =>\n !!RestrictionHelper.getRestrictionByType(v, RestrictionType.Custom))}\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.CONTENT_REVIEW\n }}\n buttonVariant='outline-dark'\n className='py-2 float-end'\n />\n </div>\n }\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":["BreadcrumbItem","breadcrumb","name","appLink","active","withBackIcon","className","svgName","size","S","Breadcrumbs","breadcrumbs","isMobile","length","collapse","setCollapse","characterLength","reduce","prev","next","first","secondLast","last","rest","slice","onClick","map","idx","key","PartialBreadcrumbs","numItems","style","height","width","dangerouslySetInnerHTML","__html","TabContents","props","tab","count","type","data","PillTabSelector","ref","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","getPhrase","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","ContentReviewSettingsRequests","getLibraryReviewPeriod","normalize","setLibraryReviewPeriod","period","invalidationKeys","reviewPeriod","deleteLibraryReviewPeriod","NoItemsEmptyState","EmptyState","src","ImageUrls","Text","phrase","LanguageService","TurnedOffEmptyState","href","ArticleHelper","AppLink","text","ContentReviewView","useLiteFavourites","u","setFavourite","canFavourite","isPlugin","usePluginHelper","videos","RestrictionRequests","RestrictionType","cursor","currentUser","UserRequests","yearGroups","CustomerRequests","customerId","libraryReview","videoActions","useVideoActions","usePermissions","dataLoaded","hasCompleted","PermissionName","smartCount","VideoActionsContext","value","VideoList","filter","v","RestrictionHelper","getVideoAppLink","VideoAppLinkHelper","getSubTextAppLink","video","SeriesAppLinkHelper","series","presentationAudiences","getPreviewQuestionsAppLink","interactive","InteractiveHelper","getClassroomGuideAppLink","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","pagination","cursors","Pagination","buttonVariant","getRestrictions","id","addRestriction","objectTypeId","objectId","deleteRestrictions","getRestrictedObjects","params","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([[7818],{49935:(e,t,r)=>{r.d(t,{Oo:()=>d,b2:()=>f});var n=r(32735),a=r(36848),l=r(86764),i=r(3747),c=r(5859),o=r(35223),s=r(83914);function u(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 m=function(e){var t=e.breadcrumb,r=t.name,l=t.appLink,i=t.active,c=e.withBackIcon;return n.createElement("li",{className:"breadcrumb-item".concat(i?" active":"")},i?n.createElement("strong",null,r):n.createElement(a.F,{appLink:l},c&&n.createElement(s.x,{svgName:o.vn.ChevronLeft,size:s.S.Small}),n.createElement("span",{className:c?"ms-2":""},r)))},d=function(e){var t,r,a=e.breadcrumbs,c=(0,i.a)(l.r.XS),o=(null==a?void 0:a.length)||0,s=(t=n.useState(!1),r=2,function(e){if(Array.isArray(e))return e}(t)||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,s=!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){s=!0,a=e}finally{try{if(!o&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(s)throw a}}return c}}(t,r)||function(e,t){if(e){if("string"==typeof e)return u(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)?u(e,t):void 0}}(t,r)||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.")}()),d=s[0],f=s[1];if(n.useEffect((function(){var e,t=null!==(e=null==a?void 0:a.reduce((function(e,t){return e+t.name.length}),0))&&void 0!==e?e:0;o>3&&t>56&&f(!0)}),[null==a?void 0:a.length]),!o||c&&o<2)return n.createElement(n.Fragment,null);if(c)return n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},n.createElement(m,{breadcrumb:a[o-2],withBackIcon:!0})));var p=n.createElement(m,{breadcrumb:a[0]}),b=o>2?n.createElement(m,{breadcrumb:a[o-2]}):n.createElement(n.Fragment,null),h=n.createElement(m,{breadcrumb:a[o-1]}),g=a.slice(1,o-2);return n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},p,d?n.createElement("li",{className:"breadcrumb-item"},n.createElement("button",{className:"btn-link",onClick:function(){return f(!1)}},"...")):g.map((function(e,t){return n.createElement(m,{key:t,breadcrumb:e})})),b,h))},f=n.memo((function(e){var t=e.numItems,r=void 0===t?3:t;return(0,i.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"},c.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:()=>p});var n=r(32735),a=r(81886),l=r(23481),i=r(49935),c=r(22902),o=r(14070),s=r(97291),u=r(96368);function m(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,u.e)();if(e)return t(e);var n=a.Q.C$.getCurrentAppLink();return n.application!==s.O.SETTINGS||r.some((function(e){return e.modules.some((function(e){return"appLink"in e&&e.appLink.action===n.action}))}))};function p(e){var t,r=f(e.requiredPermissions);if(n.useEffect((function(){r||a.Q.C$.trigger({application:s.O.SETTINGS,action:o.e.Settings.HOME},{replace:!0})}),[r]),!r)return n.createElement(n.Fragment,null);var c,u=e.breadcrumbs.map((function(t,r){return{name:t,appLink:{application:s.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:s.O.SETTINGS,action:o.e.Settings.HOME}}].concat((c=u,function(e){if(Array.isArray(e))return m(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 m(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)?m(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)}},26381:(e,t,r)=>{r.r(t),r.d(t,{AccountSettingsView:()=>B});var n=r(32735),a=r(70680),l=r(23481),i=r(20354),c=r(49985),o=r(65858),s=r(39739),u=r(86764),m=r(31949),d=r(69883),f=r(3747),p=r(92802),b=r(23201),h=r(38365),g=r(82644),v=r(83345),E=r(5173),y="settings.emailSettings",w=(0,E.Ry)().shape({email:(0,E.Z_)().required((function(){return l.T.getPhrase(y,"emailRequired")})).email((function(){return l.T.getPhrase(y,"emailInvalid")})).trim().default("")}),S=r(86794);function N(){return n.createElement(S.b,null,n.createElement("svg",{viewBox:"0 0 24 24"},n.createElement("path",{d:"M10.407 12.368l-1.22-1.22a.49.49 0 0 0-.698.004l-.583.583a.494.494 0 0 0-.004.697l2.135 2.135c.107.108.25.154.388.142a.488.488 0 0 0 .352-.143l4.362-4.362a.494.494 0 0 0-.004-.698l-.582-.582a.495.495 0 0 0-.698-.004l-3.448 3.448zm7.922-.37l1.437 1.406c.208.194.277.437.208.728a.716.716 0 0 1-.541.531l-1.957.5.551 1.936a.671.671 0 0 1-.197.729.671.671 0 0 1-.73.198l-1.935-.552-.5 1.957a.716.716 0 0 1-.53.541 1.28 1.28 0 0 1-.199.021.686.686 0 0 1-.53-.229L12 18.328l-1.405 1.436c-.195.208-.437.278-.729.208a.696.696 0 0 1-.53-.541l-.5-1.957-1.937.552a.671.671 0 0 1-.728-.198.671.671 0 0 1-.198-.729l.551-1.936-1.957-.5a.716.716 0 0 1-.54-.53c-.07-.292 0-.535.207-.73l1.437-1.405-1.437-1.405c-.208-.194-.277-.437-.208-.729a.716.716 0 0 1 .541-.53l1.957-.5-.551-1.936a.671.671 0 0 1 .198-.73.671.671 0 0 1 .728-.197l1.936.552.5-1.957a.675.675 0 0 1 .531-.531.671.671 0 0 1 .729.198L12 5.68l1.405-1.447a.697.697 0 0 1 .73-.198c.284.07.46.246.53.53l.5 1.958L17.1 5.97a.671.671 0 0 1 .729.198.671.671 0 0 1 .197.729l-.551 1.936 1.957.5a.715.715 0 0 1 .541.53c.07.292 0 .535-.208.73l-1.437 1.404z"})))}function k(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 P="settings.emailSettings",A=l.T.encloseNamespace(P);function I(e){var t,r,a=(0,f.a)(u.r.MDDown),l=(t=n.useState(!a),r=2,function(e){if(Array.isArray(e))return e}(t)||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,s=!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){s=!0,a=e}finally{try{if(!o&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(s)throw a}}return c}}(t,r)||function(e,t){if(e){if("string"==typeof e)return k(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)?k(e,t):void 0}}(t,r)||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=l[0],c=l[1],o=e.currentUser.emailVerified;return n.useEffect((function(){a||i||c(!0)}),[a,i]),n.createElement(v.D.Provider,{value:P},n.createElement("h2",{className:"h4 d-flex align-items-center"},n.createElement(v.x,{phrase:"heading"}),o&&n.createElement("span",{className:"font-size-normal fw-semibold text-primary d-flex align-items-center mb-0 ms-2"},n.createElement(v.x,{phrase:"verified"}),n.createElement(N,null))),o&&n.createElement("p",null,n.createElement(v.x,{phrase:"info",options:{email:e.currentUser.email}})),i?n.createElement(g.n,{initialValues:{email:e.currentUser.email||""},onSubmit:e.onChangeEmail,validationSchema:w},n.createElement(p.l0,null,n.createElement(h.W,{className:"w-75",name:"email",placeholder:A("emailPlaceholder"),autoComplete:"email"}),n.createElement("div",{className:"d-flex justify-content-end w-75 ".concat(a?"ms-n2":"")},a&&n.createElement("button",{type:"button",className:"btn btn-link me-2",onClick:function(){return c(!1)}},n.createElement(v.x,{phrase:"cancel"})),n.createElement(b.A,{isNew:!1,submitText:A(o?"updateEmail":"verifyEmail"),variant:o?"outline-dark":"dark"})))):n.createElement(n.Fragment,null,n.createElement("div",{className:"d-flex"},n.createElement("button",{className:"btn btn-outline-dark me-2",onClick:function(){return c(!0)}},n.createElement(v.x,{phrase:"change"})))),n.createElement("p",{className:"mb-0 mt-2"},n.createElement(v.x,{phrase:"note"})))}const C={partialLabel:"aKssR",partialInfo:"ZrKZk",partialInput:"Lvn15",partialSubmit:"TActD",partialNote:"pqp7j"};function x(){return n.createElement("div",{className:"w-50"},n.createElement("div",{className:"partial-loading-background mb-2 ".concat(C.partialLabel)}),n.createElement("div",{className:"partial-loading-background ".concat(C.partialInfo)}),n.createElement("div",{className:"form-group"},n.createElement("div",{className:"partial-loading-background ".concat(C.partialInput)})),n.createElement("div",{className:"partial-loading-background ".concat(C.partialSubmit)}),n.createElement("div",{className:"partial-loading-background mt-2 ".concat(C.partialNote)}))}var T=r(68670),L=l.T.encloseNamespace("settings.passwordSettings"),O=function(e){return(0,E.Ry)().shape({currentPassword:(0,E.Z_)().required((function(){return L("currentPasswordRequired")})).trim().default(""),newPassword:(0,E.Z_)().required((function(){return L("newPasswordRequired")})).min(e,(function(){return L("newPasswordMinLength",{minLen:e})})).trim().default(""),confirmPassword:(0,E.Z_)().required((function(){return L("confirmPasswordRequired")})).oneOf([(0,E.iH)("newPassword"),null],(function(){return L("passwordsDontMatch")})).trim().default("")})};function j(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 M="settings.passwordSettings",U={currentPassword:"",newPassword:"",confirmPassword:""};function q(e){var t,r,a=(0,f.a)(u.r.MDDown),i=(t=n.useState(!a),r=2,function(e){if(Array.isArray(e))return e}(t)||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,s=!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){s=!0,a=e}finally{try{if(!o&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(s)throw a}}return c}}(t,r)||function(e,t){if(e){if("string"==typeof e)return j(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)?j(e,t):void 0}}(t,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),c=i[0],o=i[1];return n.useEffect((function(){a||c||o(!0)}),[a,c]),n.createElement(v.D.Provider,{value:M},n.createElement("h2",{className:"h4"},n.createElement(v.x,{phrase:"heading"})),c?n.createElement(n.Fragment,null,n.createElement("p",null,n.createElement(v.x,{phrase:"info"})),n.createElement(g.n,{initialValues:U,onSubmit:function(t,r){e.onChangePassword(t,r,(function(){return r({reset:!0})}))},validationSchema:O(e.minPasswordLength)},n.createElement(T.p,{onClickCancel:function(){return o(!1)},hideCancelButton:!a,submitText:l.T.getPhrase(M,"savePassword"),buttonContainerClass:a?"d-flex justify-content-end ms-n2 w-75":"d-flex justify-content-end w-75",inputWidthClass:"w-75"}))):n.createElement("button",{className:"btn btn-outline-dark ",onClick:function(){return o(!0)}},n.createElement(v.x,{phrase:"change"})))}var F=r(81803),D=r(706),R=r(47288),_=l.T.encloseNamespace("settings.accountSettings");function B(){var e,t=(0,a.I0)(),r=(0,d.Z)(),l=(0,f.a)(u.r.MDDown),p=i.a.useBasicFetch(m.N.currentUser()),b=i.a.useBasicFetch(p.data&&R.N.getUser(p.data.id)),h=i.a.useBasicFetch(p.data&&D.F.getCustomerSecuritySettings(p.data.customerId)),g=s.P.getMinimumPasswordLength(h.data,null===(e=b.data)||void 0===e?void 0:e.userType,p.data.role);return n.createElement(F.d,{heading:_("heading"),breadcrumbs:[_("breadcrumb")]},n.createElement("div",{className:l?"w-100":"w-50"},p.data?n.createElement(I,{currentUser:p.data,onChangeEmail:function(e,n){i.a.fetch(t,R.N.changeEmail(e.email,(function(){c.k.logUserAction({id:p.data.id,oldEmail:p.data.email,newEmail:e.email},{actionType:o.Vw.VerifyEmail,entity:o.py.User,location:o.LZ.Settings,workflowPhase:o.eu.Start}),r.success(_("changeEmailRequestSuccess",{email:e.email,escapeText:!0}))}),(function(){r.error(_("changeEmailRequestError"))}),n))}}):n.createElement(x,null)),n.createElement("hr",null),n.createElement("div",{className:l?"w-100":"w-50"},h.data&&n.createElement(q,{onChangePassword:function(e,n,a){i.a.fetch(t,R.N.changePassword(e,(function(){c.k.logUserAction({id:p.data.id,oldPassword:e.currentPassword,newPassword:e.newPassword},{actionType:o.Vw.ChangePassword,entity:o.py.User,location:o.LZ.Settings,workflowPhase:o.eu.Complete}),r.success(_("changePasswordSuccess")),a()}),(function(e){var t=e.responseJSON;"user.password-too-short"===t.errorCode?r.error(_("changePasswordRequirementsError")):"user.invalid-password"===t.errorCode?r.error(_("changePasswordInvalid")):"user.same-password"===t.errorCode?r.error(_("changePasswordSame")):"user.locked-out"===t.errorCode?r.error(_("changePasswordLockedOut")):r.error(_("changePasswordError"))}),n))},minPasswordLength:g})))}}}]);
2
+ //# sourceMappingURL=7818-cff0f2276c-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/7818-cff0f2276c-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/utils/PartialLoadingHelper.ts","file:///app/packages/projects/lite/src/apps/settings/components/settings-layout/SettingsLayout.tsx","file:///app/packages/projects/lite/src/apps/settings/components/email-settings/EmailSettingsValidationSchema.ts","file:///app/packages/projects/lite/src/apps/settings/components/email-settings/VerifiedEmailIcon.tsx","file:///app/packages/projects/lite/src/apps/settings/components/email-settings/EmailSettings.tsx","file:///app/packages/projects/lite/src/apps/settings/components/email-settings/partial-loading/partial-email-settings.scss","file:///app/packages/projects/lite/src/apps/settings/components/email-settings/partial-loading/PartialEmailSettings.tsx","file:///app/packages/projects/lite/src/apps/settings/components/password-settings/PasswordSettingsValidationSchema.ts","file:///app/packages/projects/lite/src/apps/settings/components/password-settings/PasswordSettings.tsx","file:///app/packages/projects/lite/src/apps/settings/views/account-settings/AccountSettingsView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nconst COLLAPSE_CHARACTER_COUNT = 56;\n\nexport interface Breadcrumb {\n name: string;\n appLink?: Core.AppLink;\n active?: boolean;\n}\n\ninterface BreadcrumbItemProps {\n breadcrumb: Breadcrumb;\n withBackIcon?: boolean;\n}\n\nexport const BreadcrumbItem = ({ breadcrumb: { name, appLink, active }, withBackIcon }: BreadcrumbItemProps) => (\n <li className={`breadcrumb-item${active ? ' active' : ''}`}>\n {active\n ? <strong>{name}</strong>\n : <AppLink appLink={appLink}>\n {withBackIcon && <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{name}</span>\n </AppLink>\n }\n </li>\n);\n\ninterface BreadcrumbsProps {\n breadcrumbs: Breadcrumb[];\n}\n\nexport const Breadcrumbs = ({ breadcrumbs }: BreadcrumbsProps) => {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n const length = breadcrumbs?.length || 0;\n \n const [ collapse, setCollapse ] = React.useState(false);\n\n React.useEffect(() => {\n const characterLength = breadcrumbs?.reduce((prev, next) => prev + next.name.length, 0) ?? 0;\n\n if (length > 3 && characterLength > COLLAPSE_CHARACTER_COUNT)\n setCollapse(true);\n }, [breadcrumbs?.length]);\n\n if (!length || (isMobile && length < 2))\n return <></>;\n\n if (isMobile)\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} withBackIcon />\n </ol>\n </nav>\n );\n\n const first = <BreadcrumbItem breadcrumb={breadcrumbs[0]} />;\n const secondLast = length > 2 ? <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} /> : <></>;\n const last = <BreadcrumbItem breadcrumb={breadcrumbs[length - 1]} />;\n const rest = breadcrumbs.slice(1, length - 2);\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {first}\n {collapse ?\n <li className='breadcrumb-item'>\n <button className='btn-link' onClick={() => setCollapse(false)}>\n ...\n </button>\n </li> :\n rest.map((breadcrumb, idx) => <BreadcrumbItem key={idx} breadcrumb={breadcrumb} />)\n }\n {secondLast}\n {last}\n </ol>\n </nav>\n );\n};\n\nexport const PartialBreadcrumbs = React.memo(function({ numItems = 3 }: { numItems?: number; }) {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n if (isMobile) {\n return (\n <div className='partial-loading-background' style={{ height: '1.3125rem', width: '6rem' }} />\n );\n }\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {PartialLoadingHelper.getPartialLoadingItems({ numItems }).map(({ width }, idx) => (\n <li key={idx} className='breadcrumb-item'>\n <span className='d-inline-block partial-loading-background' style={{ width }} dangerouslySetInnerHTML={{ __html: '&nbsp' }} />\n </li>\n ))}\n </ol>\n </nav>\n );\n});","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 { object, string } from 'yup';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nconst namespace = 'settings.emailSettings';\n\nexport const EmailSettingsValidationSchema = object().shape({\n email: string()\n .required(() => LanguageService.getPhrase(namespace, 'emailRequired'))\n .email(() => LanguageService.getPhrase(namespace, 'emailInvalid'))\n .trim()\n .default('')\n});","import React from 'react';\n\nimport { SvgContainer2 } from 'libs/shared/components/svg-container/SvgContainer2';\n\nexport function VerifiedEmailIcon(): JSX.Element {\n return (\n <SvgContainer2>\n <svg viewBox='0 0 24 24'>\n <path d='M10.407 12.368l-1.22-1.22a.49.49 0 0 0-.698.004l-.583.583a.494.494 0 0 0-.004.697l2.135 2.135c.107.108.25.154.388.142a.488.488 0 0 0 .352-.143l4.362-4.362a.494.494 0 0 0-.004-.698l-.582-.582a.495.495 0 0 0-.698-.004l-3.448 3.448zm7.922-.37l1.437 1.406c.208.194.277.437.208.728a.716.716 0 0 1-.541.531l-1.957.5.551 1.936a.671.671 0 0 1-.197.729.671.671 0 0 1-.73.198l-1.935-.552-.5 1.957a.716.716 0 0 1-.53.541 1.28 1.28 0 0 1-.199.021.686.686 0 0 1-.53-.229L12 18.328l-1.405 1.436c-.195.208-.437.278-.729.208a.696.696 0 0 1-.53-.541l-.5-1.957-1.937.552a.671.671 0 0 1-.728-.198.671.671 0 0 1-.198-.729l.551-1.936-1.957-.5a.716.716 0 0 1-.54-.53c-.07-.292 0-.535.207-.73l1.437-1.405-1.437-1.405c-.208-.194-.277-.437-.208-.729a.716.716 0 0 1 .541-.53l1.957-.5-.551-1.936a.671.671 0 0 1 .198-.73.671.671 0 0 1 .728-.197l1.936.552.5-1.957a.675.675 0 0 1 .531-.531.671.671 0 0 1 .729.198L12 5.68l1.405-1.447a.697.697 0 0 1 .73-.198c.284.07.46.246.53.53l.5 1.958L17.1 5.97a.671.671 0 0 1 .729.198.671.671 0 0 1 .197.729l-.551 1.936 1.957.5a.715.715 0 0 1 .541.53c.07.292 0 .535-.208.73l-1.437 1.404z'/>\n </svg>\n </SvgContainer2>\n );\n}","import React from 'react';\nimport { Form } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { FormButtons } from 'libs/shared/components/forms/form-buttons/FormButtons';\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { CurrentUser } from 'libs/shared/interfaces';\n\nimport { EmailSettingsValidationSchema } from './EmailSettingsValidationSchema';\nimport { VerifiedEmailIcon } from './VerifiedEmailIcon';\n\nconst namespace = 'settings.emailSettings';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface EmailSettingsModel {\n email: string;\n}\n\ninterface EmailSettingsProps {\n currentUser: CurrentUser;\n onChangeEmail: (emailModel: EmailSettingsModel) => void;\n}\n\nexport function EmailSettings(props: EmailSettingsProps): JSX.Element {\n const isSmallScreen = useMediaQuery(MediaQueryStrings.MDDown);\n\n // On small screens, we collapse the forms by default\n const [ showForm, setShowForm ] = React.useState(!isSmallScreen);\n\n const isVerified = props.currentUser.emailVerified;\n\n React.useEffect(() => {\n if (!isSmallScreen && !showForm)\n setShowForm(true);\n }, [ isSmallScreen, showForm ]);\n\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <h2 className='h4 d-flex align-items-center'>\n <Text phrase='heading' />\n {isVerified && (\n <span className='font-size-normal fw-semibold text-primary d-flex align-items-center mb-0 ms-2'>\n <Text phrase='verified' />\n <VerifiedEmailIcon />\n </span>\n )}\n </h2>\n\n {isVerified && (\n <p><Text phrase='info' options={{ email: props.currentUser.email }} /></p>\n )}\n\n {!showForm\n ? (\n <>\n <div className='d-flex'>\n <button className='btn btn-outline-dark me-2' onClick={() => setShowForm(true)}>\n <Text phrase='change' />\n </button>\n </div>\n </>\n ) : (\n <FormWrapper<EmailSettingsModel>\n initialValues={{ email: props.currentUser.email || '' }}\n onSubmit={props.onChangeEmail}\n validationSchema={EmailSettingsValidationSchema}\n >\n <Form>\n <FormField\n className='w-75'\n name='email'\n placeholder={getPhrase('emailPlaceholder')}\n autoComplete='email'\n />\n <div className={`d-flex justify-content-end w-75 ${isSmallScreen ? 'ms-n2' : ''}`}>\n {isSmallScreen && (\n <button type='button' className='btn btn-link me-2' onClick={() => setShowForm(false)}>\n <Text phrase='cancel' />\n </button>\n )}\n <FormButtons\n isNew={false}\n submitText={isVerified ? getPhrase('updateEmail') : getPhrase('verifyEmail')}\n variant={isVerified ? 'outline-dark' : 'dark'}\n />\n </div>\n </Form>\n </FormWrapper>\n )\n }\n <p className='mb-0 mt-2'><Text phrase='note' /></p>\n </LanguageNamespaceContext.Provider>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"partialLabel\":\"aKssR\",\"partialInfo\":\"ZrKZk\",\"partialInput\":\"Lvn15\",\"partialSubmit\":\"TActD\",\"partialNote\":\"pqp7j\"};","import React from 'react';\n\nimport styles from './partial-email-settings.scss';\n\nexport function PartialEmailSettings(): JSX.Element {\n return (\n <div className='w-50'>\n <div className={`partial-loading-background mb-2 ${styles.partialLabel}`} />\n <div className={`partial-loading-background ${styles.partialInfo}`} />\n\n <div className='form-group'>\n <div className={`partial-loading-background ${styles.partialInput}`} />\n </div>\n <div className={`partial-loading-background ${styles.partialSubmit}`} />\n <div className={`partial-loading-background mt-2 ${styles.partialNote}`} />\n </div>\n );\n}","import { object, ref, string } from 'yup';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nconst namespace = 'settings.passwordSettings';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport const getPasswordSettingsValidationSchema = (minPasswordLength: number) => object().shape({\n currentPassword: string()\n .required(() => getPhrase('currentPasswordRequired'))\n .trim()\n .default(''),\n newPassword: string()\n .required(() => getPhrase('newPasswordRequired'))\n .min(minPasswordLength, () => getPhrase('newPasswordMinLength', { minLen: minPasswordLength }))\n .trim()\n .default(''),\n confirmPassword: string()\n .required(() => getPhrase('confirmPasswordRequired'))\n .oneOf([ ref('newPassword'), null ], () => getPhrase('passwordsDontMatch'))\n .trim()\n .default('')\n});","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ChangePasswordForm } from 'libs/shared/apps/user-manager/components/change-password-form/ChangePasswordForm';\nimport { ChangePasswordRequest } from 'libs/shared/apps/user-manager/interfaces';\nimport { FormSubmissionOptions, FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\n\nimport { getPasswordSettingsValidationSchema } from './PasswordSettingsValidationSchema';\n\nconst namespace = 'settings.passwordSettings';\n\nconst initialValues: ChangePasswordRequest = {\n currentPassword: '',\n newPassword: '',\n confirmPassword: ''\n};\n\ninterface PasswordSettingsProps {\n onChangePassword: (\n passwordModel: ChangePasswordRequest,\n onDone?: () => void,\n onSuccess?: () => void\n ) => void;\n minPasswordLength: number;\n}\n\nexport function PasswordSettings(props: PasswordSettingsProps): JSX.Element {\n const isSmallScreen = useMediaQuery(MediaQueryStrings.MDDown);\n\n // On small screens, we collapse the forms by default\n const [ showForm, setShowForm ] = React.useState(!isSmallScreen);\n\n React.useEffect(() => {\n if (!isSmallScreen && !showForm)\n setShowForm(true);\n }, [ isSmallScreen, showForm ]);\n\n function onSubmitPassword(data: ChangePasswordRequest, onDone: (options?: FormSubmissionOptions) => void) {\n props.onChangePassword(data, onDone, () => onDone({ reset: true }));\n }\n\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <h2 className='h4'><Text phrase='heading' /></h2>\n\n {!showForm\n ? (\n <button className='btn btn-outline-dark ' onClick={() => setShowForm(true)}>\n <Text phrase='change' />\n </button>\n ) : (\n <>\n <p><Text phrase='info' /></p>\n\n <FormWrapper<ChangePasswordRequest>\n initialValues={initialValues}\n onSubmit={onSubmitPassword}\n validationSchema={getPasswordSettingsValidationSchema(props.minPasswordLength)}\n >\n <ChangePasswordForm\n onClickCancel={() => setShowForm(false)}\n hideCancelButton={!isSmallScreen}\n submitText={LanguageService.getPhrase(namespace, 'savePassword')}\n buttonContainerClass={isSmallScreen\n ? 'd-flex justify-content-end ms-n2 w-75'\n : 'd-flex justify-content-end w-75'\n }\n inputWidthClass='w-75'\n />\n </FormWrapper>\n </>\n )\n }\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { ChangePasswordRequest } from 'libs/shared/apps/user-manager/interfaces/ChangePasswordRequest';\nimport { SecuritySettingsResponse } from 'libs/shared/apps/user-manager/interfaces/SecuritySettingsResponse';\nimport { UserManagerHelper } from 'libs/shared/apps/user-manager/utils/UserManagerHelper';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { CurrentUser, User } from 'libs/shared/interfaces';\n\nimport { EmailSettings, EmailSettingsModel } from 'apps/settings/components/email-settings/EmailSettings';\nimport { PartialEmailSettings } from 'apps/settings/components/email-settings/partial-loading/PartialEmailSettings';\nimport { PasswordSettings } from 'apps/settings/components/password-settings/PasswordSettings';\nimport { SettingsLayout } from 'apps/settings/components/settings-layout/SettingsLayout';\nimport { SecuritySettingsRequests } from 'apps/settings/flight-request/SecuritySettingsRequests';\nimport { UserManagerRequests } from 'apps/user-manager/flight-requests/UserManagerRequests';\n\nconst namespace = 'settings.accountSettings';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function AccountSettingsView(): JSX.Element {\n const dispatch = useDispatch();\n const alerts = useAlerts();\n const isSmallScreen = useMediaQuery(MediaQueryStrings.MDDown);\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const masterCurrentUser = Flight.useBasicFetch<User>(currentUser.data &&\n UserManagerRequests.getUser(currentUser.data.id));\n const passwordPolicy = Flight.useBasicFetch<SecuritySettingsResponse>(currentUser.data &&\n SecuritySettingsRequests.getCustomerSecuritySettings(currentUser.data.customerId));\n\n function onChangeEmail(emailModel: EmailSettingsModel, onDone?: () => void): void {\n Flight.fetch(dispatch, UserManagerRequests.changeEmail(emailModel.email, () => {\n AnalyticsHelper.logUserAction({\n id: currentUser.data.id,\n oldEmail: currentUser.data.email,\n newEmail: emailModel.email\n }, {\n actionType: UserAction.VerifyEmail,\n entity: EntityType.User,\n location: LocationContext.Settings,\n workflowPhase: WorkflowPhase.Start\n });\n\n alerts.success(getPhrase('changeEmailRequestSuccess', { email: emailModel.email, escapeText: true }));\n }, () => {\n alerts.error(getPhrase('changeEmailRequestError'));\n }, onDone));\n }\n\n function onChangePassword(\n passwordModel: ChangePasswordRequest,\n onDone?: () => void,\n onSuccess?: () => void\n ): void {\n Flight.fetch(dispatch, UserManagerRequests.changePassword(passwordModel, () => {\n AnalyticsHelper.logUserAction({\n id: currentUser.data.id,\n oldPassword: passwordModel.currentPassword,\n newPassword: passwordModel.newPassword\n }, {\n actionType: UserAction.ChangePassword,\n entity: EntityType.User,\n location: LocationContext.Settings,\n workflowPhase: WorkflowPhase.Complete\n });\n\n alerts.success(getPhrase('changePasswordSuccess'));\n onSuccess();\n }, ({ responseJSON }: JQuery.jqXHR) => {\n if (responseJSON.errorCode === 'user.password-too-short')\n alerts.error(getPhrase('changePasswordRequirementsError'));\n else if (responseJSON.errorCode === 'user.invalid-password')\n alerts.error(getPhrase('changePasswordInvalid'));\n else if (responseJSON.errorCode === 'user.same-password')\n alerts.error(getPhrase('changePasswordSame'));\n else if (responseJSON.errorCode === 'user.locked-out')\n alerts.error(getPhrase('changePasswordLockedOut'));\n else\n alerts.error(getPhrase('changePasswordError'));\n }, onDone));\n }\n\n const minPasswordLength = UserManagerHelper.getMinimumPasswordLength(\n passwordPolicy.data,\n masterCurrentUser.data?.userType,\n currentUser.data.role\n );\n\n return (\n <SettingsLayout\n heading={getPhrase('heading')}\n breadcrumbs={[getPhrase('breadcrumb')]}\n >\n <div className={isSmallScreen ? 'w-100' : 'w-50'}>\n {(currentUser.data)\n ? (\n <EmailSettings\n currentUser={currentUser.data}\n onChangeEmail={onChangeEmail}\n />\n ) : <PartialEmailSettings />\n }\n </div>\n\n <hr />\n\n <div className={isSmallScreen ? 'w-100' : 'w-50'}>\n {passwordPolicy.data && (\n <PasswordSettings onChangePassword={onChangePassword} minPasswordLength={minPasswordLength} />\n )}\n </div>\n </SettingsLayout>\n );\n}"],"names":["BreadcrumbItem","breadcrumb","name","appLink","active","withBackIcon","className","svgName","size","S","Breadcrumbs","breadcrumbs","isMobile","length","collapse","setCollapse","characterLength","reduce","prev","next","first","secondLast","last","rest","slice","onClick","map","idx","key","PartialBreadcrumbs","numItems","style","height","width","dangerouslySetInnerHTML","__html","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","props","canAccess","replace","i","heading","headingButton","description","children","EmailSettingsValidationSchema","shape","email","required","LanguageService","trim","VerifiedEmailIcon","SvgContainer2","viewBox","d","getPhrase","EmailSettings","isSmallScreen","showForm","setShowForm","isVerified","currentUser","emailVerified","value","Text","phrase","FormWrapper","initialValues","onSubmit","onChangeEmail","validationSchema","FormField","placeholder","autoComplete","type","FormButtons","isNew","submitText","variant","PartialEmailSettings","getPasswordSettingsValidationSchema","minPasswordLength","currentPassword","newPassword","min","minLen","confirmPassword","oneOf","PasswordSettings","data","onDone","onChangePassword","reset","ChangePasswordForm","onClickCancel","hideCancelButton","buttonContainerClass","inputWidthClass","AccountSettingsView","dispatch","alerts","UserRequests","masterCurrentUser","UserManagerRequests","id","passwordPolicy","SecuritySettingsRequests","customerId","UserManagerHelper","userType","role","emailModel","AnalyticsHelper","oldEmail","newEmail","actionType","entity","location","workflowPhase","success","escapeText","error","passwordModel","onSuccess","oldPassword","responseJSON","errorCode"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
1
  "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[8192,4489],{36199:(t,e,n)=>{var r;n.d(e,{V:()=>r}),function(t){t[t.Original=0]="Original",t[t.Copy=1]="Copy"}(r||(r={}))},94644:(t,e,n)=>{n.d(e,{r:()=>f});var r=n(50242),o=n(81886),i=n(67058),a=n(14553),c=n(49267),u=n(49075),l={notFound:i.d,forbidden:{rating:a.q,yearLevel:a.q,region:c.a,privacy:a.q},badRequest:u._};function f(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(t){var i;i="number"==typeof t?t:t.status;var a=Object.assign(Object.assign({},l),e);i&&o.Q.Ry.isStatusCodeError(i)&&(i!==r.o.NotFound?i!==r.o.Forbidden?n.badRequest||o.Q.Ry.throw(new a.badRequest):n.forbidden||o.Q.Ry.throw(new a.forbidden.privacy):n.notFound||o.Q.Ry.throw(new a.notFound))}}},91286:(t,e,n)=>{n.d(e,{v:()=>a});var r=n(32735),o=n(94644);function i(t){return t.map((function(t){return t.statusCode})).join(":")}function a(t,e,n){var a=Array.isArray(t)?t:[t];(0,r.useEffect)((function(){a.forEach((function(t){(0,o.r)(t.statusCode,e,n)}))}),[i(a),e,n])}},63649:(t,e,n)=>{n.d(e,{X:()=>i});var r=n(32735);const o={video:"ekpg6",notice:"lQs4F",heading:"Gt6uV",interaction:"LEfYX",button:"caHP7",edit:"de4DP",questions:"XelbS"};function i(){return r.createElement("div",{className:"px-3 w-100"},r.createElement("div",{className:"partial-loading-background ".concat(o.notice)}),r.createElement("div",{className:"partial-loading-background mb-3 ".concat(o.video)},r.createElement("div",{className:"partial-loading-background ".concat(o.questions)})),r.createElement("div",{className:"partial-loading-background mb-3 ".concat(o.heading)}),r.createElement("div",null,Array(5).fill(null).map((function(t,e){return r.createElement("div",{key:e,className:"partial-loading-background my-2 ".concat(o.interaction)})}))))}},9064:(t,e,n)=>{function r(t){var e,n,r,o,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!t)return null;var a=Object.assign(Object.assign({},i),{id:t.id,interactiveId:t.interactiveId,name:t.name,status:t.status,originType:t.originType});return(null===(e=null==t?void 0:t._parentClip)||void 0===e?void 0:e.id)&&(a.clip={id:null===(n=null==t?void 0:t._parentClip)||void 0===n?void 0:n.id}),(null===(r=null==t?void 0:t._parentVideo)||void 0===r?void 0:r.id)&&(a.video={id:null===(o=null==t?void 0:t._parentVideo)||void 0===o?void 0:o.id}),a}n.d(e,{T:()=>r})},9897:(t,e,n)=>{n.r(e),n.d(e,{EditInteractiveView:()=>tt});var r=n(32735),o=n(17082),i=n(81886),a=n(20354),c=n(49985),u=n(65858),l=n(5960),f=n(60051),s=n(61990),d=n(33803),y=n(39151),p=n(20768),b=n(47812),v=n(31949),m=n(91286),g=n(72596),h=n(38314),w=n(72004),E=n(14070),O=n(97291),j=n(23481),P=n(64364);function S(t){return S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},S(t)}function k(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,T(r.key),r)}}function T(t){var e=function(t,e){if("object"!=S(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,"string");if("object"!=S(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==S(e)?e:e+""}function I(t,e,n){return e=A(e),function(t,e){if(e&&("object"==S(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,_()?Reflect.construct(e,n||[],A(t).constructor):e.apply(t,n))}function _(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(_=function(){return!!t})()}function A(t){return A=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},A(t)}function C(t,e){return C=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},C(t,e)}var R="shared.cannotEditPublishedInteractive",N=function(t){function e(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),I(this,e,[j.T.getPhrase(R,"title")])}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&C(t,e)}(e,t),n=e,(r=[{key:"name",get:function(){return"CannotEditPublishedInteractiveError"}},{key:"heading",get:function(){return j.T.getPhrase(R,"heading")}},{key:"description",get:function(){return j.T.getPhrase(R,"description")}}])&&k(n.prototype,r),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r}(P.H),F=n(63649),V=n(9064),L=n(70680),Q=n(36199);function U(t){return U="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},U(t)}function q(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,x(r.key),r)}}function x(t){var e=function(t,e){if("object"!=U(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,"string");if("object"!=U(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==U(e)?e:e+""}function B(t,e,n){return e=M(e),function(t,e){if(e&&("object"==U(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,D()?Reflect.construct(e,n||[],M(t).constructor):e.apply(t,n))}function D(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(D=function(){return!!t})()}function M(t){return M=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},M(t)}function X(t,e){return X=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},X(t,e)}var $="shared.cannotEditInteractive",H=function(t){function e(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),B(this,e,[j.T.getPhrase($,"title")])}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&X(t,e)}(e,t),n=e,(r=[{key:"name",get:function(){return"CannnotEditInteractiveError"}},{key:"heading",get:function(){return j.T.getPhrase($,"heading")}},{key:"description",get:function(){return j.T.getPhrase($,"description")}}])&&q(n.prototype,r),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r}(P.H);function K(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,o,i,a,c=[],u=!0,l=!1;try{if(i=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=i.call(n)).done)&&(c.push(r.value),c.length!==e);u=!0);}catch(t){l=!0,o=t}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(l)throw o}}return c}}(t,e)||function(t,e){if(t){if("string"==typeof t)return G(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?G(t,e):void 0}}(t,e)||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 G(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n<e;n++)r[n]=t[n];return r}var Z=function(t){var e=(0,L.I0)(),n=K(r.useState(!1),2),o=n[0],c=n[1],u=K(r.useState(!1),2),l=u[0],f=u[1];return r.useEffect((function(){if(t&&!l&&!o)if(t.originType!==Q.V.Original){var n=function(){i.Q.Ry.throw(new H)};c(!0),a.a.fetch(e,p.b.copyInteractive(t.interactiveId,(function(r){var o={originType:Q.V.Original,interactiveId:r.id};a.a.fetch(e,p.b.updateInteractiveMetadata(t.id,o,(function(){return f(!0)}),n))}),n))}else f(!0)}),[t]),l};function Y(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,o,i,a,c=[],u=!0,l=!1;try{if(i=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=i.call(n)).done)&&(c.push(r.value),c.length!==e);u=!0);}catch(t){l=!0,o=t}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(l)throw o}}return c}}(t,e)||function(t,e){if(t){if("string"==typeof t)return z(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?z(t,e):void 0}}(t,e)||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 z(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n<e;n++)r[n]=t[n];return r}var J={application:O.O.INTERACTIVES,action:E.e.Interactives.EDIT_INTERACTIVE_DETAILS},W={notFound:s.l,forbidden:{privacy:d.G}};function tt(t){var e=Y(r.useState(!1),2),n=e[0],s=e[1],d=Y(r.useState(!1),2),E=d[0],O=d[1],j=r.useRef(),P=a.a.useBasicFetch(y.L.config()),S=a.a.useBasicFetch(v.N.currentUser()),k=a.a.useBasicFetch(!!S.data&&p.b.interactiveMetadata(t.id)),T=Z(k.data),I=a.a.useBasicFetch(T?b.k.createViewKey(k.data.id,f.f.MasterObject):null),_=a.a.useBasicFetch(v.N.token()),A=r.useMemo((function(){return(0,o.oD)()}),[]),C=r.useMemo((function(){return(0,o.oD)()}),[]),R=r.useRef();if((0,m.v)(k,W),!(I.data&&P.data&&k.data&&_.data))return r.createElement(F.X,null);if(!E&&(O(!0),k.data.status!==l.X.Draft))return i.Q.Ry.throw(new N),null;var L=(0,V.T)(k.data),Q={entity:u.py.Interactive,location:u.LZ.EditInteractive,workflowPhase:u.eu.Start};return r.createElement(r.Fragment,null,!n&&r.createElement(F.X,null),r.createElement("div",{className:"px-3 ".concat(n?"":"d-none")},r.createElement("div",{className:"d-flex justify-content-between align-items-center mb-3"},r.createElement("h1",{className:"h3 text-truncate mb-0 pb-1"},k.data.name),r.createElement("div",{className:"flex-shrink-0"},r.createElement(o.t0,{node:A}))),r.createElement(w.ClickViewInteractivePlayer,{viewKey:I.data.viewKey,imageApi:new URL(P.data.imageCdnUrl),playerApi:new URL(P.data.playerApiUrl),hotkeyElQuerySelector:"body",autoplay:!0,onReady:function(t){j.current=t,s(!0),R.current=new g.M({player:t,video:k.data,analyticsLocation:u.LZ.EditInteractive})},currentUser:S.data,mode:h.A.Create,actionsPortalNode:A,questionListPortalNode:C,authToken:_.data.value,onClickEditDetails:function(){c.k.logUserAction(L,Object.assign({actionType:u.Vw.Edit},Q)),i.Q.C$.trigger(Object.assign(Object.assign({},J),{args:[t.id]}))},onClickPublish:function(){c.k.logUserAction(L,Object.assign({actionType:u.Vw.Publish},Q)),i.Q.C$.trigger(Object.assign(Object.assign({},J),{args:[t.id],params:{publish:!0}}))},enableImmersiveReader:!0}),r.createElement(o.t0,{node:C})))}}}]);
2
- //# sourceMappingURL=8192-f26370c5a6-lite.chunk.js.map
2
+ //# sourceMappingURL=8192-ea5cee15d7-lite.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scripts/8192-f26370c5a6-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/enums/InteractiveOriginType.ts","file:///app/packages/libs/shared/src/errors/handlers/HttpErrorHandlers.ts","file:///app/packages/libs/shared/src/hooks/UseHandleObjectError.ts","file:///app/packages/projects/lite/src/apps/interactives/components/interactive-partial-loading/interactive-partial-loading.scss","file:///app/packages/projects/lite/src/apps/interactives/components/interactive-partial-loading/InteractivePartialLoading.tsx","file:///app/packages/projects/lite/src/apps/interactives/utils/getInteractiveAnalyticsData.ts","file:///app/packages/projects/lite/src/shared/errors/interactives/cannot-edit-published-interactive/CannotEditPublishInteractiveError.ts","file:///app/packages/projects/lite/src/shared/errors/interactives/cannot-edit/CannotEditError.ts","file:///app/packages/projects/lite/src/apps/interactives/views/edit-interactive/useEnsureOriginal.ts","file:///app/packages/projects/lite/src/apps/interactives/views/edit-interactive/EditInteractiveView.tsx"],"sourcesContent":["export enum InteractiveOriginType {\n Original = 0,\n Copy = 1\n}\n","import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}","import { useEffect } from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { handleHttpError, HttpErrorMap, IgnoreHttpErrorMap } from 'libs/shared/errors/handlers/HttpErrorHandlers';\n\nfunction generateCacheKey(flightObjs: Array<Flight.Response<any>>): string {\n return flightObjs.map(obj => obj.statusCode).join(':');\n}\n\n// TODO: Change this to just `useHandleHttpError` and only accept a status code.\nexport function useHandleObjectError(\n _flightObjs: Flight.Response<any> | Array<Flight.Response<any>>,\n customErrors?: HttpErrorMap,\n ignoreErrors?: IgnoreHttpErrorMap\n): void {\n const flightObjs = Array.isArray(_flightObjs) ? _flightObjs : [_flightObjs];\n\n useEffect(() => {\n flightObjs.forEach(obj => {\n handleHttpError(obj.statusCode, customErrors, ignoreErrors);\n });\n }, [ generateCacheKey(flightObjs), customErrors, ignoreErrors ]);\n}","// extracted by mini-css-extract-plugin\nexport default {\"video\":\"ekpg6\",\"notice\":\"lQs4F\",\"heading\":\"Gt6uV\",\"interaction\":\"LEfYX\",\"button\":\"caHP7\",\"edit\":\"de4DP\",\"questions\":\"XelbS\"};","import React from 'react';\n\nimport styles from './interactive-partial-loading.scss';\n\nexport function InteractivePartialLoading(): React.ReactElement {\n return (\n <div className='px-3 w-100'>\n <div className={`partial-loading-background ${styles.notice}`} />\n <div className={`partial-loading-background mb-3 ${styles.video}`}>\n <div className={`partial-loading-background ${styles.questions}`}></div>\n </div>\n <div className={`partial-loading-background mb-3 ${styles.heading}`}></div>\n <div>\n {Array(5).fill(null).map((_, i) => (\n <div key={i} className={`partial-loading-background my-2 ${styles.interaction}`}></div>\n ))}\n </div>\n </div>\n );\n}","import { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsDataPayload } from 'libs/analytics/models/AnalyticsEvent';\n\nimport { InteractiveMetadata } from 'libs/shared/interfaces';\n\nexport function getInteractiveAnalyticsData(\n interactiveMetadata: InteractiveMetadata,\n extraAnalyticsData: HashObject = {}\n): AnalyticsDataPayload {\n if (!interactiveMetadata)\n return null;\n\n const data: AnalyticsDataPayload = {\n ...extraAnalyticsData,\n id: interactiveMetadata.id,\n interactiveId: interactiveMetadata.interactiveId,\n name: interactiveMetadata.name,\n status: interactiveMetadata.status,\n originType: interactiveMetadata.originType\n };\n\n if (interactiveMetadata?._parentClip?.id)\n data.clip = { id: interactiveMetadata?._parentClip?.id };\n \n if (interactiveMetadata?._parentVideo?.id)\n data.video = { id: interactiveMetadata?._parentVideo?.id };\n \n return data;\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nconst namespace = 'shared.cannotEditPublishedInteractive';\n\nexport class CannotEditPublishInteractiveError extends ErrorPageError {\n constructor() {\n super(LanguageService.getPhrase(namespace, 'title'));\n }\n\n // @ts-ignore\n public get name(): string {\n return 'CannotEditPublishedInteractiveError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return LanguageService.getPhrase(namespace, 'heading');\n }\n\n // @ts-ignore\n public get description(): string {\n return LanguageService.getPhrase(namespace, 'description');\n }\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nconst namespace = 'shared.cannotEditInteractive';\n\nexport class CannotEditInteractiveError extends ErrorPageError {\n constructor() {\n super(LanguageService.getPhrase(namespace, 'title'));\n }\n\n // @ts-ignore\n public get name(): string {\n return 'CannnotEditInteractiveError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return LanguageService.getPhrase(namespace, 'heading');\n }\n\n // @ts-ignore\n public get description(): string {\n return LanguageService.getPhrase(namespace, 'description');\n }\n}","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { InteractiveOriginType } from 'libs/shared/enums/InteractiveOriginType';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { EditInteractiveMetadataOriginRequest, Interactive, InteractiveMetadata } from 'libs/shared/interfaces';\n\nimport { CannotEditInteractiveError } from 'shared/errors/interactives/cannot-edit/CannotEditError';\n\nexport const useEnsureOriginal = (\n interactiveMetadata: InteractiveMetadata\n) => {\n const dispatch = useDispatch();\n\n /* Used to ensure only one request */\n const [ requested, setRequest ] = React.useState(false);\n const [ ready, setReady ] = React.useState(false);\n\n React.useEffect(() => {\n if (!interactiveMetadata || ready || requested)\n return;\n\n if (interactiveMetadata.originType === InteractiveOriginType.Original) {\n setReady(true);\n return;\n }\n\n const error = () => {\n Core.ErrorHelper.throw(new CannotEditInteractiveError());\n };\n\n const success = (resp: Interactive) => {\n const data: EditInteractiveMetadataOriginRequest = {\n originType: InteractiveOriginType.Original,\n interactiveId: resp.id\n };\n\n Flight.fetch(\n dispatch,\n InteractiveRequests.updateInteractiveMetadata(\n interactiveMetadata.id,\n data,\n () => setReady(true),\n error\n )\n );\n };\n\n setRequest(true);\n Flight.fetch(dispatch, InteractiveRequests.copyInteractive(\n interactiveMetadata.interactiveId,\n success,\n error\n ));\n }, [interactiveMetadata]);\n\n return ready;\n};","import React from 'react';\nimport { createHtmlPortalNode, OutPortal } from 'react-reverse-portal';\n\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { VideoNotFoundError } from 'libs/shared/errors/videos/video-not-found/VideoNotFoundError';\nimport { VideoPrivateError } from 'libs/shared/errors/videos/video-private/VideoPrivateError';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { Config, CurrentUser, InteractiveMetadata, PlayerViewKey } from 'libs/shared/interfaces';\nimport { PlayerAnalyticsTracker } from 'libs/shared/utils/PlayerAnalyticsTracker';\n\nimport { InteractivePlayer } from 'projects/player/players/interactive-player';\nimport { InteractiveMode } from 'projects/player/plugins/interactive-plugin/interfaces';\nimport { ClickViewInteractivePlayer } from 'projects/player/react/InteractivePlayer';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { CannotEditPublishInteractiveError } from 'shared/errors/interactives/cannot-edit-published-interactive/CannotEditPublishInteractiveError';\n\nimport { InteractivePartialLoading } from 'apps/interactives/components/interactive-partial-loading/InteractivePartialLoading';\nimport { getInteractiveAnalyticsData } from 'apps/interactives/utils/getInteractiveAnalyticsData';\n\nimport { useEnsureOriginal } from './useEnsureOriginal';\n\nconst EDIT_APPLINK = {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.EDIT_INTERACTIVE_DETAILS\n};\n\nconst videoErrors = {\n notFound: VideoNotFoundError,\n forbidden: {\n privacy: VideoPrivateError\n }\n};\n\ninterface EditInteractiveProps {\n id: string;\n}\n\nexport function EditInteractiveView(props: EditInteractiveProps): React.ReactElement {\n const [ ready, setReady ] = React.useState(false);\n\n const [ hasCheckedStatus, setHasCheckedStatus ] = React.useState(false);\n const playerRef = React.useRef<InteractivePlayer>();\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const interactiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(!!currentUser.data &&\n InteractiveRequests.interactiveMetadata(props.id));\n\n /**\n * This will check if the interactive is a copy or not\n * and update it to original if it is a copy.\n */\n const isOriginal = useEnsureOriginal(interactiveMetadata.data);\n\n /**\n * We don't fetch our view key until we know our interactive has been upgraded\n * to an original\n */\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(isOriginal ?\n PlayerRequests.createViewKey(interactiveMetadata.data.id, MediaIdType.MasterObject) : null);\n\n const token = Flight.useBasicFetch<HashObject>(UserRequests.token());\n\n const actionsPortalNode = React.useMemo(() => createHtmlPortalNode(), []);\n const questionListPortalNode = React.useMemo(() => createHtmlPortalNode(), []);\n\n const analyticsTracker = React.useRef<PlayerAnalyticsTracker>();\n\n useHandleObjectError(interactiveMetadata, videoErrors);\n\n function onReady(player: InteractivePlayer): void {\n playerRef.current = player;\n\n setReady(true);\n\n analyticsTracker.current = new PlayerAnalyticsTracker({\n player,\n video: interactiveMetadata.data,\n analyticsLocation: LocationContext.EditInteractive\n });\n }\n\n if (!viewKey.data || !config.data || !interactiveMetadata.data || !token.data)\n return <InteractivePartialLoading />;\n\n /**\n * We do this because when the publish popup publishes\n * the flight state updates and this briefly re-renders\n * with data.status being published\n */\n if (!hasCheckedStatus) {\n setHasCheckedStatus(true);\n if (interactiveMetadata.data.status !== CurationStatus.Draft) {\n Core.ErrorHelper.throw(new CannotEditPublishInteractiveError());\n return null;\n }\n }\n\n const analyticsData = getInteractiveAnalyticsData(interactiveMetadata.data);\n\n const baseAnalyticsOptions = {\n entity: EntityType.Interactive,\n location: LocationContext.EditInteractive,\n workflowPhase: WorkflowPhase.Start\n };\n\n function onClickEditDetails(): void {\n AnalyticsHelper.logUserAction(analyticsData, {\n actionType: UserAction.Edit,\n ...baseAnalyticsOptions\n });\n\n Core.AppLinkHelper.trigger({\n ...EDIT_APPLINK,\n args: [props.id]\n });\n }\n\n function onClickPublish(): void {\n AnalyticsHelper.logUserAction(analyticsData, {\n actionType: UserAction.Publish,\n ...baseAnalyticsOptions\n });\n\n Core.AppLinkHelper.trigger({\n ...EDIT_APPLINK,\n args: [props.id],\n params: { publish: true }\n });\n }\n\n return (\n <>\n {!ready && <InteractivePartialLoading />}\n <div className={`px-3 ${ready ? '' : 'd-none'}`}>\n <div className='d-flex justify-content-between align-items-center mb-3'>\n <h1 className='h3 text-truncate mb-0 pb-1'>{interactiveMetadata.data.name}</h1>\n <div className='flex-shrink-0'>\n <OutPortal node={actionsPortalNode} />\n </div>\n </div>\n <ClickViewInteractivePlayer\n viewKey={viewKey.data.viewKey}\n imageApi={new URL(config.data.imageCdnUrl)}\n playerApi={new URL(config.data.playerApiUrl)}\n hotkeyElQuerySelector='body'\n autoplay\n onReady={onReady}\n currentUser={currentUser.data}\n mode={InteractiveMode.Create}\n actionsPortalNode={actionsPortalNode}\n questionListPortalNode={questionListPortalNode}\n authToken={token.data.value}\n onClickEditDetails={onClickEditDetails}\n onClickPublish={onClickPublish}\n enableImmersiveReader\n />\n <OutPortal node={questionListPortalNode} />\n </div>\n </>\n );\n}\n"],"names":["InteractiveOriginType","defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","generateCacheKey","flightObjs","map","obj","join","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","Array","isArray","useEffect","forEach","InteractivePartialLoading","className","fill","_","i","key","getInteractiveAnalyticsData","interactiveMetadata","extraAnalyticsData","data","id","interactiveId","name","originType","_parentClip","clip","_parentVideo","video","namespace","CannotEditPublishInteractiveError","LanguageService","ErrorPageError","CannotEditInteractiveError","useEnsureOriginal","dispatch","requested","setRequest","ready","setReady","error","InteractiveRequests","resp","EDIT_APPLINK","application","action","videoErrors","VideoNotFoundError","VideoPrivateError","EditInteractiveView","props","hasCheckedStatus","setHasCheckedStatus","playerRef","config","ConfigRequests","currentUser","UserRequests","isOriginal","viewKey","PlayerRequests","MediaIdType","token","actionsPortalNode","questionListPortalNode","analyticsTracker","CurationStatus","analyticsData","baseAnalyticsOptions","entity","location","workflowPhase","node","ClickViewInteractivePlayer","imageApi","URL","imageCdnUrl","playerApi","playerApiUrl","hotkeyElQuerySelector","autoplay","onReady","player","current","PlayerAnalyticsTracker","analyticsLocation","mode","authToken","value","onClickEditDetails","AnalyticsHelper","actionType","args","onClickPublish","params","publish","enableImmersiveReader"],"sourceRoot":""}
1
+ {"version":3,"file":"scripts/8192-ea5cee15d7-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/enums/InteractiveOriginType.ts","file:///app/packages/libs/shared/src/errors/handlers/HttpErrorHandlers.ts","file:///app/packages/libs/shared/src/hooks/UseHandleObjectError.ts","file:///app/packages/projects/lite/src/apps/interactives/components/interactive-partial-loading/interactive-partial-loading.scss","file:///app/packages/projects/lite/src/apps/interactives/components/interactive-partial-loading/InteractivePartialLoading.tsx","file:///app/packages/projects/lite/src/apps/interactives/utils/getInteractiveAnalyticsData.ts","file:///app/packages/projects/lite/src/shared/errors/interactives/cannot-edit-published-interactive/CannotEditPublishInteractiveError.ts","file:///app/packages/projects/lite/src/shared/errors/interactives/cannot-edit/CannotEditError.ts","file:///app/packages/projects/lite/src/apps/interactives/views/edit-interactive/useEnsureOriginal.ts","file:///app/packages/projects/lite/src/apps/interactives/views/edit-interactive/EditInteractiveView.tsx"],"sourcesContent":["export enum InteractiveOriginType {\n Original = 0,\n Copy = 1\n}\n","import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}","import { useEffect } from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { handleHttpError, HttpErrorMap, IgnoreHttpErrorMap } from 'libs/shared/errors/handlers/HttpErrorHandlers';\n\nfunction generateCacheKey(flightObjs: Array<Flight.Response<any>>): string {\n return flightObjs.map(obj => obj.statusCode).join(':');\n}\n\n// TODO: Change this to just `useHandleHttpError` and only accept a status code.\nexport function useHandleObjectError(\n _flightObjs: Flight.Response<any> | Array<Flight.Response<any>>,\n customErrors?: HttpErrorMap,\n ignoreErrors?: IgnoreHttpErrorMap\n): void {\n const flightObjs = Array.isArray(_flightObjs) ? _flightObjs : [_flightObjs];\n\n useEffect(() => {\n flightObjs.forEach(obj => {\n handleHttpError(obj.statusCode, customErrors, ignoreErrors);\n });\n }, [ generateCacheKey(flightObjs), customErrors, ignoreErrors ]);\n}","// extracted by mini-css-extract-plugin\nexport default {\"video\":\"ekpg6\",\"notice\":\"lQs4F\",\"heading\":\"Gt6uV\",\"interaction\":\"LEfYX\",\"button\":\"caHP7\",\"edit\":\"de4DP\",\"questions\":\"XelbS\"};","import React from 'react';\n\nimport styles from './interactive-partial-loading.scss';\n\nexport function InteractivePartialLoading(): React.ReactElement {\n return (\n <div className='px-3 w-100'>\n <div className={`partial-loading-background ${styles.notice}`} />\n <div className={`partial-loading-background mb-3 ${styles.video}`}>\n <div className={`partial-loading-background ${styles.questions}`}></div>\n </div>\n <div className={`partial-loading-background mb-3 ${styles.heading}`}></div>\n <div>\n {Array(5).fill(null).map((_, i) => (\n <div key={i} className={`partial-loading-background my-2 ${styles.interaction}`}></div>\n ))}\n </div>\n </div>\n );\n}","import { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsDataPayload } from 'libs/analytics/models/AnalyticsEvent';\n\nimport { InteractiveMetadata } from 'libs/shared/interfaces';\n\nexport function getInteractiveAnalyticsData(\n interactiveMetadata: InteractiveMetadata,\n extraAnalyticsData: HashObject = {}\n): AnalyticsDataPayload {\n if (!interactiveMetadata)\n return null;\n\n const data: AnalyticsDataPayload = {\n ...extraAnalyticsData,\n id: interactiveMetadata.id,\n interactiveId: interactiveMetadata.interactiveId,\n name: interactiveMetadata.name,\n status: interactiveMetadata.status,\n originType: interactiveMetadata.originType\n };\n\n if (interactiveMetadata?._parentClip?.id)\n data.clip = { id: interactiveMetadata?._parentClip?.id };\n \n if (interactiveMetadata?._parentVideo?.id)\n data.video = { id: interactiveMetadata?._parentVideo?.id };\n \n return data;\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nconst namespace = 'shared.cannotEditPublishedInteractive';\n\nexport class CannotEditPublishInteractiveError extends ErrorPageError {\n constructor() {\n super(LanguageService.getPhrase(namespace, 'title'));\n }\n\n // @ts-ignore\n public get name(): string {\n return 'CannotEditPublishedInteractiveError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return LanguageService.getPhrase(namespace, 'heading');\n }\n\n // @ts-ignore\n public get description(): string {\n return LanguageService.getPhrase(namespace, 'description');\n }\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nconst namespace = 'shared.cannotEditInteractive';\n\nexport class CannotEditInteractiveError extends ErrorPageError {\n constructor() {\n super(LanguageService.getPhrase(namespace, 'title'));\n }\n\n // @ts-ignore\n public get name(): string {\n return 'CannnotEditInteractiveError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return LanguageService.getPhrase(namespace, 'heading');\n }\n\n // @ts-ignore\n public get description(): string {\n return LanguageService.getPhrase(namespace, 'description');\n }\n}","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { InteractiveOriginType } from 'libs/shared/enums/InteractiveOriginType';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { EditInteractiveMetadataOriginRequest, Interactive, InteractiveMetadata } from 'libs/shared/interfaces';\n\nimport { CannotEditInteractiveError } from 'shared/errors/interactives/cannot-edit/CannotEditError';\n\nexport const useEnsureOriginal = (\n interactiveMetadata: InteractiveMetadata\n) => {\n const dispatch = useDispatch();\n\n /* Used to ensure only one request */\n const [ requested, setRequest ] = React.useState(false);\n const [ ready, setReady ] = React.useState(false);\n\n React.useEffect(() => {\n if (!interactiveMetadata || ready || requested)\n return;\n\n if (interactiveMetadata.originType === InteractiveOriginType.Original) {\n setReady(true);\n return;\n }\n\n const error = () => {\n Core.ErrorHelper.throw(new CannotEditInteractiveError());\n };\n\n const success = (resp: Interactive) => {\n const data: EditInteractiveMetadataOriginRequest = {\n originType: InteractiveOriginType.Original,\n interactiveId: resp.id\n };\n\n Flight.fetch(\n dispatch,\n InteractiveRequests.updateInteractiveMetadata(\n interactiveMetadata.id,\n data,\n () => setReady(true),\n error\n )\n );\n };\n\n setRequest(true);\n Flight.fetch(dispatch, InteractiveRequests.copyInteractive(\n interactiveMetadata.interactiveId,\n success,\n error\n ));\n }, [interactiveMetadata]);\n\n return ready;\n};","import React from 'react';\nimport { createHtmlPortalNode, OutPortal } from 'react-reverse-portal';\n\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { VideoNotFoundError } from 'libs/shared/errors/videos/video-not-found/VideoNotFoundError';\nimport { VideoPrivateError } from 'libs/shared/errors/videos/video-private/VideoPrivateError';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { Config, CurrentUser, InteractiveMetadata, PlayerViewKey } from 'libs/shared/interfaces';\nimport { PlayerAnalyticsTracker } from 'libs/shared/utils/PlayerAnalyticsTracker';\n\nimport { InteractivePlayer } from 'projects/player/players/interactive-player';\nimport { InteractiveMode } from 'projects/player/plugins/interactive-plugin/interfaces';\nimport { ClickViewInteractivePlayer } from 'projects/player/react/InteractivePlayer';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { CannotEditPublishInteractiveError } from 'shared/errors/interactives/cannot-edit-published-interactive/CannotEditPublishInteractiveError';\n\nimport { InteractivePartialLoading } from 'apps/interactives/components/interactive-partial-loading/InteractivePartialLoading';\nimport { getInteractiveAnalyticsData } from 'apps/interactives/utils/getInteractiveAnalyticsData';\n\nimport { useEnsureOriginal } from './useEnsureOriginal';\n\nconst EDIT_APPLINK = {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.EDIT_INTERACTIVE_DETAILS\n};\n\nconst videoErrors = {\n notFound: VideoNotFoundError,\n forbidden: {\n privacy: VideoPrivateError\n }\n};\n\ninterface EditInteractiveProps {\n id: string;\n}\n\nexport function EditInteractiveView(props: EditInteractiveProps): React.ReactElement {\n const [ ready, setReady ] = React.useState(false);\n\n const [ hasCheckedStatus, setHasCheckedStatus ] = React.useState(false);\n const playerRef = React.useRef<InteractivePlayer>();\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const interactiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(!!currentUser.data &&\n InteractiveRequests.interactiveMetadata(props.id));\n\n /**\n * This will check if the interactive is a copy or not\n * and update it to original if it is a copy.\n */\n const isOriginal = useEnsureOriginal(interactiveMetadata.data);\n\n /**\n * We don't fetch our view key until we know our interactive has been upgraded\n * to an original\n */\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(isOriginal ?\n PlayerRequests.createViewKey(interactiveMetadata.data.id, MediaIdType.MasterObject) : null);\n\n const token = Flight.useBasicFetch<HashObject>(UserRequests.token());\n\n const actionsPortalNode = React.useMemo(() => createHtmlPortalNode(), []);\n const questionListPortalNode = React.useMemo(() => createHtmlPortalNode(), []);\n\n const analyticsTracker = React.useRef<PlayerAnalyticsTracker>();\n\n useHandleObjectError(interactiveMetadata, videoErrors);\n\n function onReady(player: InteractivePlayer): void {\n playerRef.current = player;\n\n setReady(true);\n\n analyticsTracker.current = new PlayerAnalyticsTracker({\n player,\n video: interactiveMetadata.data,\n analyticsLocation: LocationContext.EditInteractive\n });\n }\n\n if (!viewKey.data || !config.data || !interactiveMetadata.data || !token.data)\n return <InteractivePartialLoading />;\n\n /**\n * We do this because when the publish popup publishes\n * the flight state updates and this briefly re-renders\n * with data.status being published\n */\n if (!hasCheckedStatus) {\n setHasCheckedStatus(true);\n if (interactiveMetadata.data.status !== CurationStatus.Draft) {\n Core.ErrorHelper.throw(new CannotEditPublishInteractiveError());\n return null;\n }\n }\n\n const analyticsData = getInteractiveAnalyticsData(interactiveMetadata.data);\n\n const baseAnalyticsOptions = {\n entity: EntityType.Interactive,\n location: LocationContext.EditInteractive,\n workflowPhase: WorkflowPhase.Start\n };\n\n function onClickEditDetails(): void {\n AnalyticsHelper.logUserAction(analyticsData, {\n actionType: UserAction.Edit,\n ...baseAnalyticsOptions\n });\n\n Core.AppLinkHelper.trigger({\n ...EDIT_APPLINK,\n args: [props.id]\n });\n }\n\n function onClickPublish(): void {\n AnalyticsHelper.logUserAction(analyticsData, {\n actionType: UserAction.Publish,\n ...baseAnalyticsOptions\n });\n\n Core.AppLinkHelper.trigger({\n ...EDIT_APPLINK,\n args: [props.id],\n params: { publish: true }\n });\n }\n\n return (\n <>\n {!ready && <InteractivePartialLoading />}\n <div className={`px-3 ${ready ? '' : 'd-none'}`}>\n <div className='d-flex justify-content-between align-items-center mb-3'>\n <h1 className='h3 text-truncate mb-0 pb-1'>{interactiveMetadata.data.name}</h1>\n <div className='flex-shrink-0'>\n <OutPortal node={actionsPortalNode} />\n </div>\n </div>\n <ClickViewInteractivePlayer\n viewKey={viewKey.data.viewKey}\n imageApi={new URL(config.data.imageCdnUrl)}\n playerApi={new URL(config.data.playerApiUrl)}\n hotkeyElQuerySelector='body'\n autoplay\n onReady={onReady}\n currentUser={currentUser.data}\n mode={InteractiveMode.Create}\n actionsPortalNode={actionsPortalNode}\n questionListPortalNode={questionListPortalNode}\n authToken={token.data.value}\n onClickEditDetails={onClickEditDetails}\n onClickPublish={onClickPublish}\n enableImmersiveReader\n />\n <OutPortal node={questionListPortalNode} />\n </div>\n </>\n );\n}\n"],"names":["InteractiveOriginType","defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","generateCacheKey","flightObjs","map","obj","join","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","Array","isArray","useEffect","forEach","InteractivePartialLoading","className","fill","_","i","key","getInteractiveAnalyticsData","interactiveMetadata","extraAnalyticsData","data","id","interactiveId","name","originType","_parentClip","clip","_parentVideo","video","namespace","CannotEditPublishInteractiveError","LanguageService","ErrorPageError","CannotEditInteractiveError","useEnsureOriginal","dispatch","requested","setRequest","ready","setReady","error","InteractiveRequests","resp","EDIT_APPLINK","application","action","videoErrors","VideoNotFoundError","VideoPrivateError","EditInteractiveView","props","hasCheckedStatus","setHasCheckedStatus","playerRef","config","ConfigRequests","currentUser","UserRequests","isOriginal","viewKey","PlayerRequests","MediaIdType","token","actionsPortalNode","questionListPortalNode","analyticsTracker","CurationStatus","analyticsData","baseAnalyticsOptions","entity","location","workflowPhase","node","ClickViewInteractivePlayer","imageApi","URL","imageCdnUrl","playerApi","playerApiUrl","hotkeyElQuerySelector","autoplay","onReady","player","current","PlayerAnalyticsTracker","analyticsLocation","mode","authToken","value","onClickEditDetails","AnalyticsHelper","actionType","args","onClickPublish","params","publish","enableImmersiveReader"],"sourceRoot":""}