@clickview/lite 0.50.0 → 0.50.1-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (338) hide show
  1. package/dist/bundles.json +2 -2
  2. package/dist/css/{6846-lite-db93efd058.chunk.css → 1850-lite-dca6b9e86d.chunk.css} +1 -0
  3. package/dist/css/{2137-lite-6d16d5d7c2.chunk.css → 2137-lite-7045732fc8.chunk.css} +2 -2
  4. package/dist/css/{2795-lite-1e800fdd04.chunk.css → 2795-lite-1641e6fbf9.chunk.css} +2 -2
  5. package/dist/css/{458-lite-ecaf4729d3.chunk.css → 3515-lite-c8a3139b8b.chunk.css} +2 -2
  6. package/dist/css/{8960-lite-a80ad92ea7.chunk.css → 4489-lite-7d5d204d0c.chunk.css} +8 -7
  7. package/dist/css/{3515-lite-ecaf4729d3.chunk.css → 458-lite-c8a3139b8b.chunk.css} +2 -2
  8. package/dist/css/{5242-lite-512783e2fb.chunk.css → 5242-lite-58cdcd1ec4.chunk.css} +2 -2
  9. package/dist/css/{5446-lite-b68e159c6c.chunk.css → 5446-lite-ae2395342f.chunk.css} +2 -2
  10. package/dist/css/6102-lite-6e94a699ed.chunk.css +39 -0
  11. package/dist/css/{1437-lite-b847c9e2b6.chunk.css → 6415-lite-707657102b.chunk.css} +1 -1
  12. package/dist/css/{9839-lite-53b02845a4.chunk.css → 6850-lite-769c93cb9e.chunk.css} +16 -16
  13. package/dist/css/{7987-lite-7006eb4ded.chunk.css → 7987-lite-94679244a2.chunk.css} +2 -2
  14. package/dist/css/{355-lite-e474c8ddce.chunk.css → 8192-lite-8721e2ed68.chunk.css} +8 -7
  15. package/dist/css/{8316-lite-f60e236048.chunk.css → 8316-lite-9083a6565c.chunk.css} +2 -2
  16. package/dist/css/{9417-lite-f60e236048.chunk.css → 9417-lite-9083a6565c.chunk.css} +2 -2
  17. package/dist/css/{9620-lite-b202aa1d5c.chunk.css → 9620-lite-d77e9ad59b.chunk.css} +1 -1
  18. package/dist/css/{7187-lite-db93efd058.chunk.css → 9818-lite-dca6b9e86d.chunk.css} +1 -0
  19. package/dist/css/{8139-lite-5511af77bf.chunk.css → 986-lite-3bf6e93049.chunk.css} +1 -0
  20. package/dist/css/{lite-app-cf9b57ee91.css → lite-app-28b7b96628.css} +8 -6
  21. package/dist/languages/en.json +1 -1
  22. package/dist/scripts/{1080-d6dfc36c03-lite.chunk.js → 1080-362271a654-lite.chunk.js} +2 -2
  23. package/dist/scripts/{1080-d6dfc36c03-lite.chunk.js.map → 1080-362271a654-lite.chunk.js.map} +1 -1
  24. package/dist/scripts/1169-3df974a8eb-lite.chunk.js +2 -0
  25. package/dist/scripts/1169-3df974a8eb-lite.chunk.js.map +1 -0
  26. package/dist/scripts/{1285-1ba9b0640e-lite.chunk.js → 1285-818f4ed377-lite.chunk.js} +1 -1
  27. package/dist/scripts/{1285-1ba9b0640e-lite.chunk.js.map → 1285-818f4ed377-lite.chunk.js.map} +1 -1
  28. package/dist/scripts/1313-455608bc46-lite.chunk.js +2 -0
  29. package/dist/scripts/1313-455608bc46-lite.chunk.js.map +1 -0
  30. package/dist/scripts/{1379-2ee86e6e68-lite.chunk.js → 1379-3a1ba4b4d9-lite.chunk.js} +3 -3
  31. package/dist/scripts/{1379-2ee86e6e68-lite.chunk.js.map → 1379-3a1ba4b4d9-lite.chunk.js.map} +1 -1
  32. package/dist/scripts/{1518-be314d1248-lite.chunk.js → 1518-b808d8043f-lite.chunk.js} +2 -2
  33. package/dist/scripts/1518-b808d8043f-lite.chunk.js.map +1 -0
  34. package/dist/scripts/{1617-3cf9199cb1-lite.chunk.js → 1617-e1735deb2a-lite.chunk.js} +1 -1
  35. package/dist/scripts/{1617-3cf9199cb1-lite.chunk.js.map → 1617-e1735deb2a-lite.chunk.js.map} +1 -1
  36. package/dist/scripts/1672-672f298d82-lite.chunk.js +3 -0
  37. package/dist/scripts/1672-672f298d82-lite.chunk.js.map +1 -0
  38. package/dist/scripts/1750-a525866169-lite.chunk.js +2 -0
  39. package/dist/scripts/1750-a525866169-lite.chunk.js.map +1 -0
  40. package/dist/scripts/1818-74a3d26afd-lite.chunk.js +2 -0
  41. package/dist/scripts/1818-74a3d26afd-lite.chunk.js.map +1 -0
  42. package/dist/scripts/1820-68114ca994-lite.chunk.js +2 -0
  43. package/dist/scripts/1820-68114ca994-lite.chunk.js.map +1 -0
  44. package/dist/scripts/{1863-a6e7446cd8-lite.chunk.js → 1863-618c9bd7af-lite.chunk.js} +1 -1
  45. package/dist/scripts/{1863-a6e7446cd8-lite.chunk.js.map → 1863-618c9bd7af-lite.chunk.js.map} +1 -1
  46. package/dist/scripts/1905-af9a8f8824-lite.chunk.js +2 -0
  47. package/dist/scripts/1905-af9a8f8824-lite.chunk.js.map +1 -0
  48. package/dist/scripts/2004-4e2d98041c-lite.chunk.js +3 -0
  49. package/dist/scripts/2004-4e2d98041c-lite.chunk.js.map +1 -0
  50. package/dist/scripts/{209-148abe2aa1-lite.chunk.js → 209-4a54845452-lite.chunk.js} +2 -2
  51. package/dist/scripts/209-4a54845452-lite.chunk.js.map +1 -0
  52. package/dist/scripts/2137-093f479ff9-lite.chunk.js +2 -0
  53. package/dist/scripts/2137-093f479ff9-lite.chunk.js.map +1 -0
  54. package/dist/scripts/2199-cfc0ff4e1e-lite.chunk.js +2 -0
  55. package/dist/scripts/2199-cfc0ff4e1e-lite.chunk.js.map +1 -0
  56. package/dist/scripts/2703-64f709f0d0-lite.chunk.js +2 -0
  57. package/dist/scripts/2703-64f709f0d0-lite.chunk.js.map +1 -0
  58. package/dist/scripts/{2795-b3f0673e3e-lite.chunk.js → 2795-0616748349-lite.chunk.js} +1 -1
  59. package/dist/scripts/{2795-b3f0673e3e-lite.chunk.js.map → 2795-0616748349-lite.chunk.js.map} +1 -1
  60. package/dist/scripts/2877-40bb796d59-lite.chunk.js +2 -0
  61. package/dist/scripts/2877-40bb796d59-lite.chunk.js.map +1 -0
  62. package/dist/scripts/3020-2b9042238c-lite.chunk.js +2 -0
  63. package/dist/scripts/3020-2b9042238c-lite.chunk.js.map +1 -0
  64. package/dist/scripts/{3070-47e46e0d89-lite.chunk.js → 3070-fb8eb47716-lite.chunk.js} +1 -1
  65. package/dist/scripts/{3070-47e46e0d89-lite.chunk.js.map → 3070-fb8eb47716-lite.chunk.js.map} +1 -1
  66. package/dist/scripts/3231-65bbddef35-lite.chunk.js +2 -0
  67. package/dist/scripts/3231-65bbddef35-lite.chunk.js.map +1 -0
  68. package/dist/scripts/3403-12c460d3f6-lite.chunk.js +2 -0
  69. package/dist/scripts/3403-12c460d3f6-lite.chunk.js.map +1 -0
  70. package/dist/scripts/3515-4de2fd7070-lite.chunk.js +2 -0
  71. package/dist/scripts/3515-4de2fd7070-lite.chunk.js.map +1 -0
  72. package/dist/scripts/3645-72ca9f63df-lite.chunk.js +3 -0
  73. package/dist/scripts/3645-72ca9f63df-lite.chunk.js.map +1 -0
  74. package/dist/scripts/3895-a54621a8c4-lite.chunk.js +2 -0
  75. package/dist/scripts/3895-a54621a8c4-lite.chunk.js.map +1 -0
  76. package/dist/scripts/458-35c635a2ce-lite.chunk.js +2 -0
  77. package/dist/scripts/458-35c635a2ce-lite.chunk.js.map +1 -0
  78. package/dist/scripts/4690-d77e912b9b-lite.chunk.js +2 -0
  79. package/dist/scripts/4690-d77e912b9b-lite.chunk.js.map +1 -0
  80. package/dist/scripts/{4718-6df54d3039-lite.chunk.js → 4718-2b58aa560d-lite.chunk.js} +1 -1
  81. package/dist/scripts/{4718-6df54d3039-lite.chunk.js.map → 4718-2b58aa560d-lite.chunk.js.map} +1 -1
  82. package/dist/scripts/5143-b6896dad98-lite.chunk.js +2 -0
  83. package/dist/scripts/5143-b6896dad98-lite.chunk.js.map +1 -0
  84. package/dist/scripts/5229-036b4d7a22-lite.chunk.js +2 -0
  85. package/dist/scripts/5229-036b4d7a22-lite.chunk.js.map +1 -0
  86. package/dist/scripts/{5242-e8f004818c-lite.chunk.js → 5242-2d752ff85e-lite.chunk.js} +1 -1
  87. package/dist/scripts/{5242-e8f004818c-lite.chunk.js.map → 5242-2d752ff85e-lite.chunk.js.map} +1 -1
  88. package/dist/scripts/5385-57d7021be7-lite.chunk.js +2 -0
  89. package/dist/scripts/5385-57d7021be7-lite.chunk.js.map +1 -0
  90. package/dist/scripts/{5446-de55c3df38-lite.chunk.js → 5446-1ef1639ef6-lite.chunk.js} +1 -1
  91. package/dist/scripts/{5446-de55c3df38-lite.chunk.js.map → 5446-1ef1639ef6-lite.chunk.js.map} +1 -1
  92. package/dist/scripts/5595-f33ed220ce-lite.chunk.js +2 -0
  93. package/dist/scripts/5595-f33ed220ce-lite.chunk.js.map +1 -0
  94. package/dist/scripts/{5936-4cac311002-lite.chunk.js → 5936-1d99b03e7b-lite.chunk.js} +2 -2
  95. package/dist/scripts/5936-1d99b03e7b-lite.chunk.js.map +1 -0
  96. package/dist/scripts/5940-511beff2ee-lite.chunk.js +2 -0
  97. package/dist/scripts/5940-511beff2ee-lite.chunk.js.map +1 -0
  98. package/dist/scripts/{610-27e5444f01-lite.chunk.js → 610-6dbeb5cd21-lite.chunk.js} +2 -2
  99. package/dist/scripts/610-6dbeb5cd21-lite.chunk.js.map +1 -0
  100. package/dist/scripts/6102-f1851eca08-lite.chunk.js +3 -0
  101. package/dist/scripts/6102-f1851eca08-lite.chunk.js.map +1 -0
  102. package/dist/scripts/6189-ce9f0eeb31-lite.chunk.js +2 -0
  103. package/dist/scripts/6189-ce9f0eeb31-lite.chunk.js.map +1 -0
  104. package/dist/scripts/{624-010454cb12-lite.chunk.js → 624-7df7efd486-lite.chunk.js} +3 -3
  105. package/dist/scripts/{624-010454cb12-lite.chunk.js.map → 624-7df7efd486-lite.chunk.js.map} +1 -1
  106. package/dist/scripts/6263-d74b5b3529-lite.chunk.js +2 -0
  107. package/dist/scripts/6263-d74b5b3529-lite.chunk.js.map +1 -0
  108. package/dist/scripts/{6274-46a7af05d7-lite.chunk.js → 6274-15e61b83dc-lite.chunk.js} +1 -1
  109. package/dist/scripts/{6274-46a7af05d7-lite.chunk.js.map → 6274-15e61b83dc-lite.chunk.js.map} +1 -1
  110. package/dist/scripts/6415-9d8b88c713-lite.chunk.js +2 -0
  111. package/dist/scripts/6415-9d8b88c713-lite.chunk.js.map +1 -0
  112. package/dist/scripts/{6433-fe9efef305-lite.chunk.js → 6433-8dd152d999-lite.chunk.js} +2 -2
  113. package/dist/scripts/{6433-fe9efef305-lite.chunk.js.map → 6433-8dd152d999-lite.chunk.js.map} +1 -1
  114. package/dist/scripts/6470-6216086d63-lite.chunk.js +2 -0
  115. package/dist/scripts/6470-6216086d63-lite.chunk.js.map +1 -0
  116. package/dist/scripts/6531-597262a181-lite.chunk.js +2 -0
  117. package/dist/scripts/6531-597262a181-lite.chunk.js.map +1 -0
  118. package/dist/scripts/6572-4dda098022-lite.chunk.js +2 -0
  119. package/dist/scripts/6572-4dda098022-lite.chunk.js.map +1 -0
  120. package/dist/scripts/6587-08d5d85b71-lite.chunk.js +2 -0
  121. package/dist/scripts/6587-08d5d85b71-lite.chunk.js.map +1 -0
  122. package/dist/scripts/671-36d34edbf3-lite.chunk.js +2 -0
  123. package/dist/scripts/671-36d34edbf3-lite.chunk.js.map +1 -0
  124. package/dist/scripts/{6725-23b09d47ae-lite.chunk.js → 6725-20b1e8b1d2-lite.chunk.js} +2 -2
  125. package/dist/scripts/6725-20b1e8b1d2-lite.chunk.js.map +1 -0
  126. package/dist/scripts/6741-ff3e4a33a5-lite.chunk.js +3 -0
  127. package/dist/scripts/6741-ff3e4a33a5-lite.chunk.js.map +1 -0
  128. package/dist/scripts/6752-1a9837a40f-lite.chunk.js +2 -0
  129. package/dist/scripts/6752-1a9837a40f-lite.chunk.js.map +1 -0
  130. package/dist/scripts/6850-8770bfeefb-lite.chunk.js +3 -0
  131. package/dist/scripts/6850-8770bfeefb-lite.chunk.js.map +1 -0
  132. package/dist/scripts/{6863-f04753549c-lite.chunk.js → 6863-b606b8b1e7-lite.chunk.js} +2 -2
  133. package/dist/scripts/{6863-f04753549c-lite.chunk.js.map → 6863-b606b8b1e7-lite.chunk.js.map} +1 -1
  134. package/dist/scripts/{6930-0a5d94f8b5-lite.chunk.js → 6930-1a681d42fd-lite.chunk.js} +1 -1
  135. package/dist/scripts/{6930-0a5d94f8b5-lite.chunk.js.map → 6930-1a681d42fd-lite.chunk.js.map} +1 -1
  136. package/dist/scripts/6948-84a5f8d76f-lite.chunk.js +2 -0
  137. package/dist/scripts/6948-84a5f8d76f-lite.chunk.js.map +1 -0
  138. package/dist/scripts/7097-b9a9a0a4ce-lite.chunk.js +2 -0
  139. package/dist/scripts/7097-b9a9a0a4ce-lite.chunk.js.map +1 -0
  140. package/dist/scripts/714-9ab1608522-lite.chunk.js +2 -0
  141. package/dist/scripts/714-9ab1608522-lite.chunk.js.map +1 -0
  142. package/dist/scripts/7533-e079b2af18-lite.chunk.js +2 -0
  143. package/dist/scripts/7533-e079b2af18-lite.chunk.js.map +1 -0
  144. package/dist/scripts/7715-2146591c84-lite.chunk.js +2 -0
  145. package/dist/scripts/7715-2146591c84-lite.chunk.js.map +1 -0
  146. package/dist/scripts/7855-92e790c403-lite.chunk.js +2 -0
  147. package/dist/scripts/7855-92e790c403-lite.chunk.js.map +1 -0
  148. package/dist/scripts/{7987-1f9189c4c1-lite.chunk.js → 7987-db0037709c-lite.chunk.js} +1 -1
  149. package/dist/scripts/{7987-1f9189c4c1-lite.chunk.js.map → 7987-db0037709c-lite.chunk.js.map} +1 -1
  150. package/dist/scripts/{8046-1943b1d32b-lite.chunk.js → 8046-836d3b8e04-lite.chunk.js} +1 -1
  151. package/dist/scripts/{8046-1943b1d32b-lite.chunk.js.map → 8046-836d3b8e04-lite.chunk.js.map} +1 -1
  152. package/dist/scripts/{2877-db49c758e9-lite.chunk.js → 8157-521ad0f974-lite.chunk.js} +2 -2
  153. package/dist/scripts/{2877-db49c758e9-lite.chunk.js.map → 8157-521ad0f974-lite.chunk.js.map} +1 -1
  154. package/dist/scripts/8192-ec320614d9-lite.chunk.js +2 -0
  155. package/dist/scripts/8192-ec320614d9-lite.chunk.js.map +1 -0
  156. package/dist/scripts/8218-f3b81c7287-lite.chunk.js +2 -0
  157. package/dist/scripts/8218-f3b81c7287-lite.chunk.js.map +1 -0
  158. package/dist/scripts/8316-dad1824a5f-lite.chunk.js +2 -0
  159. package/dist/scripts/8316-dad1824a5f-lite.chunk.js.map +1 -0
  160. package/dist/scripts/8354-e30261b594-lite.chunk.js +2 -0
  161. package/dist/scripts/8354-e30261b594-lite.chunk.js.map +1 -0
  162. package/dist/scripts/8772-42c022effc-lite.chunk.js +2 -0
  163. package/dist/scripts/8772-42c022effc-lite.chunk.js.map +1 -0
  164. package/dist/scripts/8800-c88fefeace-lite.chunk.js +2 -0
  165. package/dist/scripts/8800-c88fefeace-lite.chunk.js.map +1 -0
  166. package/dist/scripts/8830-452a71751f-lite.chunk.js +2 -0
  167. package/dist/scripts/8830-452a71751f-lite.chunk.js.map +1 -0
  168. package/dist/scripts/8987-32190552fa-lite.chunk.js +2 -0
  169. package/dist/scripts/8987-32190552fa-lite.chunk.js.map +1 -0
  170. package/dist/scripts/9016-c359251f82-lite.chunk.js +3 -0
  171. package/dist/scripts/9016-c359251f82-lite.chunk.js.map +1 -0
  172. package/dist/scripts/{9226-4cff4347a9-lite.chunk.js → 9226-c236c0eeb1-lite.chunk.js} +2 -2
  173. package/dist/scripts/9226-c236c0eeb1-lite.chunk.js.map +1 -0
  174. package/dist/scripts/9230-d731020b59-lite.chunk.js +3 -0
  175. package/dist/scripts/9230-d731020b59-lite.chunk.js.map +1 -0
  176. package/dist/scripts/{9395-8ad1f28459-lite.chunk.js → 9395-9175b9efcc-lite.chunk.js} +3 -3
  177. package/dist/scripts/{9395-8ad1f28459-lite.chunk.js.map → 9395-9175b9efcc-lite.chunk.js.map} +1 -1
  178. package/dist/scripts/9417-70c6489c67-lite.chunk.js +2 -0
  179. package/dist/scripts/9417-70c6489c67-lite.chunk.js.map +1 -0
  180. package/dist/scripts/{9478-5a0abba4f7-lite.chunk.js → 9478-9b168ddc36-lite.chunk.js} +3 -3
  181. package/dist/scripts/{9478-5a0abba4f7-lite.chunk.js.map → 9478-9b168ddc36-lite.chunk.js.map} +1 -1
  182. package/dist/scripts/{953-b56e03bb19-lite.chunk.js → 953-85fc5f8dbf-lite.chunk.js} +3 -3
  183. package/dist/scripts/{953-b56e03bb19-lite.chunk.js.map → 953-85fc5f8dbf-lite.chunk.js.map} +1 -1
  184. package/dist/scripts/9620-630f9e6344-lite.chunk.js +3 -0
  185. package/dist/scripts/9620-630f9e6344-lite.chunk.js.map +1 -0
  186. package/dist/scripts/9818-f63bdbbac4-lite.chunk.js +2 -0
  187. package/dist/scripts/9818-f63bdbbac4-lite.chunk.js.map +1 -0
  188. package/dist/scripts/9829-097052a2c6-lite.chunk.js +2 -0
  189. package/dist/scripts/9829-097052a2c6-lite.chunk.js.map +1 -0
  190. package/dist/scripts/{9843-a3fe640adb-lite.chunk.js → 9843-ec032b6388-lite.chunk.js} +2 -2
  191. package/dist/scripts/9843-ec032b6388-lite.chunk.js.map +1 -0
  192. package/dist/scripts/986-ea6d103647-lite.chunk.js +3 -0
  193. package/dist/scripts/986-ea6d103647-lite.chunk.js.map +1 -0
  194. package/dist/scripts/bundle-d20cb66d1a.min.js +3 -0
  195. package/dist/scripts/bundle-d20cb66d1a.min.js.map +1 -0
  196. package/package.json +1 -1
  197. package/dist/css/6102-lite-4c795e86b6.chunk.css +0 -39
  198. package/dist/scripts/1169-5dc443f0f1-lite.chunk.js +0 -2
  199. package/dist/scripts/1169-5dc443f0f1-lite.chunk.js.map +0 -1
  200. package/dist/scripts/1313-4fb9d38bc0-lite.chunk.js +0 -2
  201. package/dist/scripts/1313-4fb9d38bc0-lite.chunk.js.map +0 -1
  202. package/dist/scripts/1437-5b1889cf0d-lite.chunk.js +0 -2
  203. package/dist/scripts/1437-5b1889cf0d-lite.chunk.js.map +0 -1
  204. package/dist/scripts/1518-be314d1248-lite.chunk.js.map +0 -1
  205. package/dist/scripts/1672-e792631d8e-lite.chunk.js +0 -3
  206. package/dist/scripts/1672-e792631d8e-lite.chunk.js.map +0 -1
  207. package/dist/scripts/1750-b8e1fca13a-lite.chunk.js +0 -2
  208. package/dist/scripts/1750-b8e1fca13a-lite.chunk.js.map +0 -1
  209. package/dist/scripts/1818-ca1e552c00-lite.chunk.js +0 -2
  210. package/dist/scripts/1818-ca1e552c00-lite.chunk.js.map +0 -1
  211. package/dist/scripts/1820-2fa6cf6cb2-lite.chunk.js +0 -2
  212. package/dist/scripts/1820-2fa6cf6cb2-lite.chunk.js.map +0 -1
  213. package/dist/scripts/1905-a01549439f-lite.chunk.js +0 -2
  214. package/dist/scripts/1905-a01549439f-lite.chunk.js.map +0 -1
  215. package/dist/scripts/209-148abe2aa1-lite.chunk.js.map +0 -1
  216. package/dist/scripts/2137-a993d13a9a-lite.chunk.js +0 -2
  217. package/dist/scripts/2137-a993d13a9a-lite.chunk.js.map +0 -1
  218. package/dist/scripts/2199-22d8809e5e-lite.chunk.js +0 -2
  219. package/dist/scripts/2199-22d8809e5e-lite.chunk.js.map +0 -1
  220. package/dist/scripts/2703-aebc378d71-lite.chunk.js +0 -2
  221. package/dist/scripts/2703-aebc378d71-lite.chunk.js.map +0 -1
  222. package/dist/scripts/3020-9f647705a0-lite.chunk.js +0 -2
  223. package/dist/scripts/3020-9f647705a0-lite.chunk.js.map +0 -1
  224. package/dist/scripts/3231-7e9965499c-lite.chunk.js +0 -2
  225. package/dist/scripts/3231-7e9965499c-lite.chunk.js.map +0 -1
  226. package/dist/scripts/3355-e65e88adaa-lite.chunk.js +0 -2
  227. package/dist/scripts/3355-e65e88adaa-lite.chunk.js.map +0 -1
  228. package/dist/scripts/3403-a2111c4df8-lite.chunk.js +0 -2
  229. package/dist/scripts/3403-a2111c4df8-lite.chunk.js.map +0 -1
  230. package/dist/scripts/3515-925a7caeac-lite.chunk.js +0 -2
  231. package/dist/scripts/3515-925a7caeac-lite.chunk.js.map +0 -1
  232. package/dist/scripts/355-3bb5ae2ea4-lite.chunk.js +0 -2
  233. package/dist/scripts/355-3bb5ae2ea4-lite.chunk.js.map +0 -1
  234. package/dist/scripts/3645-720267b321-lite.chunk.js +0 -3
  235. package/dist/scripts/3645-720267b321-lite.chunk.js.map +0 -1
  236. package/dist/scripts/3895-f7f4926229-lite.chunk.js +0 -2
  237. package/dist/scripts/3895-f7f4926229-lite.chunk.js.map +0 -1
  238. package/dist/scripts/458-b99f17e0a1-lite.chunk.js +0 -2
  239. package/dist/scripts/458-b99f17e0a1-lite.chunk.js.map +0 -1
  240. package/dist/scripts/4690-774e3c0e2a-lite.chunk.js +0 -2
  241. package/dist/scripts/4690-774e3c0e2a-lite.chunk.js.map +0 -1
  242. package/dist/scripts/5143-b77fb12d6a-lite.chunk.js +0 -2
  243. package/dist/scripts/5143-b77fb12d6a-lite.chunk.js.map +0 -1
  244. package/dist/scripts/5229-f683f705ab-lite.chunk.js +0 -2
  245. package/dist/scripts/5229-f683f705ab-lite.chunk.js.map +0 -1
  246. package/dist/scripts/5385-50d4828b70-lite.chunk.js +0 -2
  247. package/dist/scripts/5385-50d4828b70-lite.chunk.js.map +0 -1
  248. package/dist/scripts/5595-c622318cd2-lite.chunk.js +0 -2
  249. package/dist/scripts/5595-c622318cd2-lite.chunk.js.map +0 -1
  250. package/dist/scripts/5936-4cac311002-lite.chunk.js.map +0 -1
  251. package/dist/scripts/5940-d841fd31d8-lite.chunk.js +0 -2
  252. package/dist/scripts/5940-d841fd31d8-lite.chunk.js.map +0 -1
  253. package/dist/scripts/610-27e5444f01-lite.chunk.js.map +0 -1
  254. package/dist/scripts/6102-30960404a9-lite.chunk.js +0 -3
  255. package/dist/scripts/6102-30960404a9-lite.chunk.js.map +0 -1
  256. package/dist/scripts/6189-13009e2ba9-lite.chunk.js +0 -2
  257. package/dist/scripts/6189-13009e2ba9-lite.chunk.js.map +0 -1
  258. package/dist/scripts/6263-82ae071643-lite.chunk.js +0 -2
  259. package/dist/scripts/6263-82ae071643-lite.chunk.js.map +0 -1
  260. package/dist/scripts/6470-2cefcc8abd-lite.chunk.js +0 -2
  261. package/dist/scripts/6470-2cefcc8abd-lite.chunk.js.map +0 -1
  262. package/dist/scripts/6531-835c743f1b-lite.chunk.js +0 -2
  263. package/dist/scripts/6531-835c743f1b-lite.chunk.js.map +0 -1
  264. package/dist/scripts/6572-0aa0696621-lite.chunk.js +0 -2
  265. package/dist/scripts/6572-0aa0696621-lite.chunk.js.map +0 -1
  266. package/dist/scripts/671-300e93ac50-lite.chunk.js +0 -2
  267. package/dist/scripts/671-300e93ac50-lite.chunk.js.map +0 -1
  268. package/dist/scripts/6725-23b09d47ae-lite.chunk.js.map +0 -1
  269. package/dist/scripts/6741-937ae1865f-lite.chunk.js +0 -3
  270. package/dist/scripts/6741-937ae1865f-lite.chunk.js.map +0 -1
  271. package/dist/scripts/6846-08b00decd8-lite.chunk.js +0 -2
  272. package/dist/scripts/6846-08b00decd8-lite.chunk.js.map +0 -1
  273. package/dist/scripts/6948-4ab91f77dc-lite.chunk.js +0 -2
  274. package/dist/scripts/6948-4ab91f77dc-lite.chunk.js.map +0 -1
  275. package/dist/scripts/7052-4c36846f80-lite.chunk.js +0 -3
  276. package/dist/scripts/7052-4c36846f80-lite.chunk.js.map +0 -1
  277. package/dist/scripts/7097-af8c032133-lite.chunk.js +0 -2
  278. package/dist/scripts/7097-af8c032133-lite.chunk.js.map +0 -1
  279. package/dist/scripts/714-2e52398bb7-lite.chunk.js +0 -2
  280. package/dist/scripts/714-2e52398bb7-lite.chunk.js.map +0 -1
  281. package/dist/scripts/7187-414ac79d42-lite.chunk.js +0 -2
  282. package/dist/scripts/7187-414ac79d42-lite.chunk.js.map +0 -1
  283. package/dist/scripts/7533-f2e71bd0dd-lite.chunk.js +0 -2
  284. package/dist/scripts/7533-f2e71bd0dd-lite.chunk.js.map +0 -1
  285. package/dist/scripts/7630-72099a7a26-lite.chunk.js +0 -2
  286. package/dist/scripts/7630-72099a7a26-lite.chunk.js.map +0 -1
  287. package/dist/scripts/7715-255bbe16ef-lite.chunk.js +0 -2
  288. package/dist/scripts/7715-255bbe16ef-lite.chunk.js.map +0 -1
  289. package/dist/scripts/7855-04bc8e52e3-lite.chunk.js +0 -2
  290. package/dist/scripts/7855-04bc8e52e3-lite.chunk.js.map +0 -1
  291. package/dist/scripts/8085-cde67e66df-lite.chunk.js +0 -2
  292. package/dist/scripts/8085-cde67e66df-lite.chunk.js.map +0 -1
  293. package/dist/scripts/8139-01ccbc0539-lite.chunk.js +0 -3
  294. package/dist/scripts/8139-01ccbc0539-lite.chunk.js.map +0 -1
  295. package/dist/scripts/8218-70b601169b-lite.chunk.js +0 -2
  296. package/dist/scripts/8218-70b601169b-lite.chunk.js.map +0 -1
  297. package/dist/scripts/8316-7ab8f108de-lite.chunk.js +0 -2
  298. package/dist/scripts/8316-7ab8f108de-lite.chunk.js.map +0 -1
  299. package/dist/scripts/8354-a03785518e-lite.chunk.js +0 -2
  300. package/dist/scripts/8354-a03785518e-lite.chunk.js.map +0 -1
  301. package/dist/scripts/8772-05879c5e99-lite.chunk.js +0 -2
  302. package/dist/scripts/8772-05879c5e99-lite.chunk.js.map +0 -1
  303. package/dist/scripts/8830-0d2766a50f-lite.chunk.js +0 -2
  304. package/dist/scripts/8830-0d2766a50f-lite.chunk.js.map +0 -1
  305. package/dist/scripts/8987-12841dd69c-lite.chunk.js +0 -2
  306. package/dist/scripts/8987-12841dd69c-lite.chunk.js.map +0 -1
  307. package/dist/scripts/9016-df37abbca9-lite.chunk.js +0 -3
  308. package/dist/scripts/9016-df37abbca9-lite.chunk.js.map +0 -1
  309. package/dist/scripts/9226-4cff4347a9-lite.chunk.js.map +0 -1
  310. package/dist/scripts/9230-c79353d3ee-lite.chunk.js +0 -3
  311. package/dist/scripts/9230-c79353d3ee-lite.chunk.js.map +0 -1
  312. package/dist/scripts/9417-7313907916-lite.chunk.js +0 -2
  313. package/dist/scripts/9417-7313907916-lite.chunk.js.map +0 -1
  314. package/dist/scripts/9620-8814c74837-lite.chunk.js +0 -3
  315. package/dist/scripts/9620-8814c74837-lite.chunk.js.map +0 -1
  316. package/dist/scripts/9839-5befd54d51-lite.chunk.js +0 -3
  317. package/dist/scripts/9839-5befd54d51-lite.chunk.js.map +0 -1
  318. package/dist/scripts/9843-a3fe640adb-lite.chunk.js.map +0 -1
  319. package/dist/scripts/bundle-48ad415564.min.js +0 -3
  320. package/dist/scripts/bundle-48ad415564.min.js.map +0 -1
  321. package/dist/css/{7422-lite-22ea72f8e3.chunk.css → 7422-lite-c999db664b.chunk.css} +1 -1
  322. /package/dist/scripts/{1379-2ee86e6e68-lite.chunk.js.LICENSE.txt → 1379-3a1ba4b4d9-lite.chunk.js.LICENSE.txt} +0 -0
  323. /package/dist/scripts/{1672-e792631d8e-lite.chunk.js.LICENSE.txt → 1672-672f298d82-lite.chunk.js.LICENSE.txt} +0 -0
  324. /package/dist/scripts/{3645-720267b321-lite.chunk.js.LICENSE.txt → 2004-4e2d98041c-lite.chunk.js.LICENSE.txt} +0 -0
  325. /package/dist/scripts/{6102-30960404a9-lite.chunk.js.LICENSE.txt → 3645-72ca9f63df-lite.chunk.js.LICENSE.txt} +0 -0
  326. /package/dist/scripts/{624-010454cb12-lite.chunk.js.LICENSE.txt → 6102-f1851eca08-lite.chunk.js.LICENSE.txt} +0 -0
  327. /package/dist/scripts/{6433-fe9efef305-lite.chunk.js.LICENSE.txt → 624-7df7efd486-lite.chunk.js.LICENSE.txt} +0 -0
  328. /package/dist/scripts/{6741-937ae1865f-lite.chunk.js.LICENSE.txt → 6433-8dd152d999-lite.chunk.js.LICENSE.txt} +0 -0
  329. /package/dist/scripts/{7052-4c36846f80-lite.chunk.js.LICENSE.txt → 6741-ff3e4a33a5-lite.chunk.js.LICENSE.txt} +0 -0
  330. /package/dist/scripts/{8139-01ccbc0539-lite.chunk.js.LICENSE.txt → 6850-8770bfeefb-lite.chunk.js.LICENSE.txt} +0 -0
  331. /package/dist/scripts/{9016-df37abbca9-lite.chunk.js.LICENSE.txt → 9016-c359251f82-lite.chunk.js.LICENSE.txt} +0 -0
  332. /package/dist/scripts/{9230-c79353d3ee-lite.chunk.js.LICENSE.txt → 9230-d731020b59-lite.chunk.js.LICENSE.txt} +0 -0
  333. /package/dist/scripts/{9395-8ad1f28459-lite.chunk.js.LICENSE.txt → 9395-9175b9efcc-lite.chunk.js.LICENSE.txt} +0 -0
  334. /package/dist/scripts/{9478-5a0abba4f7-lite.chunk.js.LICENSE.txt → 9478-9b168ddc36-lite.chunk.js.LICENSE.txt} +0 -0
  335. /package/dist/scripts/{953-b56e03bb19-lite.chunk.js.LICENSE.txt → 953-85fc5f8dbf-lite.chunk.js.LICENSE.txt} +0 -0
  336. /package/dist/scripts/{9620-8814c74837-lite.chunk.js.LICENSE.txt → 9620-630f9e6344-lite.chunk.js.LICENSE.txt} +0 -0
  337. /package/dist/scripts/{9839-5befd54d51-lite.chunk.js.LICENSE.txt → 986-ea6d103647-lite.chunk.js.LICENSE.txt} +0 -0
  338. /package/dist/scripts/{bundle-48ad415564.min.js.LICENSE.txt → bundle-d20cb66d1a.min.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/3231-65bbddef35-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/common/src/backbone/utils/ScrollHelper.ts","file:///app/packages/libs/shared/src/components/actions/Actions.tsx","file:///app/packages/libs/shared/src/components/actions/actions.scss","file:///app/packages/libs/shared/src/components/actions/ActionsDropdown.tsx","file:///app/packages/libs/shared/src/components/drag-drop-move/DragDropMoveWrapper.tsx","file:///app/packages/libs/shared/src/components/pagination/Pagination.tsx","file:///app/packages/libs/shared/src/components/sortable/SortableContainerWrapper.tsx","file:///app/packages/libs/shared/src/components/sortable/SortableItemWrapper.tsx","file:///app/packages/libs/shared/src/components/video-list/video-list.scss","file:///app/packages/libs/shared/src/components/video-list/VideoList.tsx","file:///app/packages/libs/shared/src/components/video-list/VideoListHelper.tsx","file:///app/packages/libs/shared/src/components/video-list/clip-item/ClipItem.tsx","file:///app/packages/libs/shared/src/components/video-list/clip-item/clip-item.scss","file:///app/packages/libs/shared/src/components/video-list/components/video-item-actions/VideoItemActions.tsx","file:///app/packages/libs/shared/src/components/video-list/components/video-item-left-content/video-item-left-content.scss","file:///app/packages/libs/shared/src/components/video-list/components/video-item-left-content/VideoItemLeftContent.tsx","file:///app/packages/libs/shared/src/components/sign-in-to-watch/SignInToWatch.tsx","file:///app/packages/libs/shared/src/components/video-list/components/video-item-top-right/VideoItemTopRight.tsx","file:///app/packages/libs/shared/src/components/video-list/interactive-item/InteractiveItem.tsx","file:///app/packages/libs/shared/src/components/video-list/video-item/VideoItem.tsx","file:///app/packages/libs/shared/src/components/video-list/video-item/video-item.scss","file:///app/packages/libs/shared/src/context/VideoActionsContext.tsx","file:///app/node_modules/react-bootstrap/esm/Row.js"],"sourcesContent":["import { Radio } from 'backbone';\n\nimport { CommonChannels } from '../constants/CommonChannels';\n\nexport const ScrollHelper = {\n // Will prevent scrolling to the top of the page when applinks are triggered\n preventScrollTop(): void {\n Radio.channel(CommonChannels.SHELL).trigger('prevent:scroll:top');\n }\n};","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { BaseObject } from 'libs/shared/interfaces';\n\nimport { ActionButton } from './ActionButton';\nimport { ActionsDropdown } from './ActionsDropdown';\n\nexport interface ActionOptions {\n order?: number;\n label?: string | (() => JSX.Element);\n appLink?: Core.AppLink;\n href?: string;\n onClick?: () => void;\n svgName?: string;\n className?: string;\n button?: boolean; // If true, a button will be rendered. Otherwise the action will be rendered in the dropdown.\n tooltip?: string;\n showSpinner?: boolean;\n showBorder?: boolean; // only works for button without text label\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n disabled?: boolean;\n openInNewTab?: boolean; // Only used if appLink or href is provided\n group?: string;\n lazyPlaceholder?: boolean;\n}\n\nexport type ActionGenerator = (obj: BaseObject) => ActionOptions[];\n\ninterface ActionsProps {\n actions: ActionOptions[];\n className?: string;\n actionsDropdownClassName?: string;\n dropdownToggleSvgSize?: SvgContainerSize;\n sortComponent?: JSX.Element;\n fetchMore?: () => void;\n}\n\nexport function Actions(props: ActionsProps): JSX.Element {\n const orderedActions = React.useMemo(() => props.actions.sort((a, b) => a.order - b.order), [props.actions]);\n\n const buttonActions: ActionOptions[] = [];\n const moreActions: ActionOptions[] = [];\n\n orderedActions.forEach(a => {\n if (a.button)\n buttonActions.push(a);\n else\n moreActions.push(a);\n });\n\n let className = 'd-flex';\n\n if (props.className)\n className += ` ${props.className}`;\n\n if (!buttonActions.length && !moreActions.length)\n return <></>;\n\n return (\n <div className={className}>\n <>\n <span className='d-flex align-items-center'>\n {buttonActions.length ? buttonActions.map((a, idx) => (\n <React.Fragment key={idx}>\n {(() => {\n if (a.label) {\n const label = FunctionHelper.isFunction(a.label)\n ? a.label\n : () => <>{a.label}</>;\n\n return (\n <ActionButton\n appLink={a.appLink}\n href={a.href}\n onClick={a.onClick}\n svgName={a.svgName}\n className={a.className}\n tooltip={a.tooltip}\n showSpinner={a.showSpinner}\n analyticsData={a.analyticsData}\n analyticsOptions={a.analyticsOptions}\n openInNewTab={a.openInNewTab}\n disabled={a.disabled}\n >\n {label()}\n </ActionButton>\n );\n }\n\n const iconButton = (\n <IconButton\n appLink={a.appLink}\n href={a.href}\n onClick={a.onClick}\n svgName={a.svgName}\n className={a.className}\n analyticsData={a.analyticsData}\n analyticsOptions={a.analyticsOptions}\n openInNewTab={a.openInNewTab}\n disabled={a.disabled}\n showBorder={a.showBorder}\n />\n );\n\n return a.tooltip\n ? <Tooltip title={a.tooltip} spanHack>{iconButton}</Tooltip>\n : iconButton;\n })()}\n </React.Fragment>\n )) : <></>}\n {props.sortComponent && props.sortComponent}\n {moreActions.length ? (\n <ActionsDropdown\n actions={moreActions}\n dropdownToggleClassName={props.actionsDropdownClassName}\n dropdownToggleSvgSize={props.dropdownToggleSvgSize}\n fetchMore={props.fetchMore}\n />\n ) : <></>}\n </span>\n </>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"dropdownToggle\":\"UCAnJ\"};","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { RandomHelper } from 'libs/common/react/utils/RandomHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ActionOptions } from './Actions';\n\nimport styles from './actions.scss';\n\nfunction LazyDropdownItems(): JSX.Element {\n return (\n <>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '8rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '12rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '11rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '9rem' }}></div>\n </div>\n </>\n );\n}\n\nfunction getDropdownItemClassName(actionClassName?: string): string {\n let className = 'dropdown-item';\n\n if (actionClassName)\n className += ` ${actionClassName}`;\n\n return className;\n}\n\nexport type DropdownActionOptions = Omit<ActionOptions, 'button'>;\n\ninterface ActionsDropdownItemProps {\n action: DropdownActionOptions;\n}\n\nfunction ActionsDropdownItem(props: ActionsDropdownItemProps): React.ReactElement {\n const label = FunctionHelper.isFunction(props.action.label)\n ? props.action.label\n : () => <>{props.action.label}</>;\n\n if (props.action.appLink)\n return (\n <AppLink\n appLink={props.action.appLink}\n onClick={props.action.onClick}\n className={getDropdownItemClassName(props.action.className)}\n analyticsData={props.action.analyticsData}\n analyticsOptions={props.action.analyticsOptions}\n openInNewTab={props.action.openInNewTab}\n disabled={props.action.disabled}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2 align-middle' />}\n <span className='align-middle'>{label()}</span>\n </AppLink>\n );\n\n function onClick(e: React.MouseEvent | React.KeyboardEvent): void {\n e.preventDefault();\n\n if (props.action.analyticsData && props.action.analyticsOptions)\n AnalyticsHelper.logUserAction(props.action.analyticsData, props.action.analyticsOptions);\n\n if (FunctionHelper.isFunction(props.action.onClick))\n props.action.onClick();\n\n if (props.action.href)\n Core.LocationUtils.PageLoad(props.action.href, props.action.openInNewTab);\n }\n\n if (props.action.href) {\n return (\n <a\n className={getDropdownItemClassName(props.action.className)}\n onClick={onClick}\n href={props.action.href}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2 align-middle' />}\n <span className='align-middle'>{label()}</span>\n </a>\n );\n }\n\n return (\n <span\n className={`cursor-pointer ${getDropdownItemClassName(props.action.className)}`}\n onClick={onClick}\n role='button'\n tabIndex={0}\n onKeyDown={(e: React.KeyboardEvent) => e.key === 'Enter' && onClick(e)}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2' />}\n {label()}\n </span>\n );\n}\n\ninterface ActionsDropdownProps {\n actions: DropdownActionOptions[];\n className?: string;\n dropdownToggleClassName?: string;\n dropdownToggleSvgSize?: SvgContainerSize;\n fetchMore?: () => void;\n}\n\nActionsDropdown.defaultProps = {\n dropdownToggleClassName: 'btn btn-light',\n dropdownToggleSvgSize: SvgContainerSize.Small\n};\n\nexport function ActionsDropdown(props: ActionsDropdownProps): React.ReactElement {\n if (!props.actions || !props.actions.length)\n return <></>;\n\n const isLazy = props.actions.some(a => a.lazyPlaceholder);\n\n let className = 'dropdown';\n\n if (props.className)\n className += ` ${props.className}`;\n\n // Generate unique id to avoid collisions.\n const dropdownToggleId = `actions-dropdown-${RandomHelper.getRandomInt()}`;\n\n let dropdownToggleClassName = `dropdown-toggle px-0 ${styles.dropdownToggle}`;\n\n if (props.dropdownToggleClassName)\n dropdownToggleClassName += ` ${props.dropdownToggleClassName}`;\n\n let currentGroup: string;\n\n return (\n <div className={className}>\n <button\n className={dropdownToggleClassName}\n type='button'\n id={dropdownToggleId}\n data-bs-toggle='dropdown'\n data-toggle='dropdown'\n aria-haspopup='true'\n aria-expanded='false'\n onClick={isLazy ? props.fetchMore : null}\n >\n <SvgContainer svgName={cvSvgLibrary.More} size={props.dropdownToggleSvgSize} />\n </button>\n <div className='dropdown-menu dropdown-menu-end dropdown-menu-right' aria-labelledby={dropdownToggleId}>\n {isLazy ?\n <LazyDropdownItems /> :\n props.actions.map((a, idx) => {\n const showDivider = currentGroup !== undefined && currentGroup !== a.group;\n currentGroup = a.group;\n \n if (a.tooltip) {\n return (\n <React.Fragment key={idx}>\n {showDivider && <hr className='dropdown-divider' role='separator'></hr>}\n <Tooltip title={a.tooltip} spanHack>\n <ActionsDropdownItem action={a} />\n </Tooltip>\n \n </React.Fragment>\n );\n }\n \n return (\n <React.Fragment key={idx}>\n {showDivider && <hr className='dropdown-divider' role='separator'></hr>}\n <ActionsDropdownItem action={a} />\n </React.Fragment>\n );\n })\n }\n </div>\n </div>\n );\n}","import React from 'react';\nimport { useDraggable, UseDraggableArguments, useDroppable, UseDroppableArguments } from '@dnd-kit/core';\n\ninterface DragDropMoveWrapperProps extends React.PropsWithChildren {\n droppable?: UseDroppableArguments,\n draggable?: UseDraggableArguments\n dragStyle?: string;\n dropStye?: string;\n setIsDragging?: React.Dispatch<React.SetStateAction<boolean>>\n isDragging?: boolean;\n}\n\nexport function DragDropMoveWrapper(props: DragDropMoveWrapperProps) {\n const {\n active: dragActive,\n isDragging,\n attributes,\n listeners,\n setNodeRef: draggableRef\n } = useDraggable({ ...props.draggable, disabled: !props.draggable });\n const {\n isOver,\n over,\n active: dropActive,\n setNodeRef: droppableRef\n } = useDroppable({ ...props.droppable, disabled: !props.droppable });\n\n React.useEffect(() => {\n const data = props.draggable?.data;\n if (Array.isArray(data) && data?.includes(dragActive?.id.toString())) {\n props.setIsDragging?.(isDragging);\n } else {\n props.setIsDragging?.(false);\n }\n }, [isDragging]);\n\n function isSelected() {\n const data = props.draggable?.data;\n return Array.isArray(data) && data.includes(props.draggable.id.toString());\n }\n\n return (\n <div\n ref={draggableRef}\n {...listeners}\n {...attributes}\n className={`${props.draggable ? 'cursor-grab' : 'cursor-default'} ${(isDragging && dragActive) || (props.isDragging && isSelected()) ? props.dragStyle : null}`}\n >\n <div\n ref={droppableRef}\n className={(dropActive && isOver && dragActive?.id !== over?.id) ? props.dropStye : null}\n >\n {props.children}\n </div>\n </div>\n );\n}","import * as React from 'react';\nimport { Button, ButtonProps } from 'react-bootstrap';\n\nimport { Cursors } from 'libs/common/backbone/interfaces';\nimport { ScrollHelper } from 'libs/common/backbone/utils/ScrollHelper';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\n\nfunction buildCursor(appLink: Core.AppLink, cursorParam: string, prevHack?: boolean): Core.AppLink {\n if (!cursorParam)\n return null;\n\n const currentParams = appLink.params as HashObject ?? {};\n /* \n Currently the pagination for My Videos shows the previous cursor in the first page cursor,\n so instead of using the previous cursor from the response, the current cursor is being passed\n as the previous cursor in the app link\n */\n\n if (prevHack) {\n if (!currentParams?.previous) {\n return {\n application: appLink.application,\n action: appLink.action,\n args: appLink.args,\n params: {\n ...currentParams,\n cursor: null,\n previous: null\n }\n };\n }\n return {\n application: appLink.application,\n action: appLink.action,\n args: appLink.args,\n params: {\n ...currentParams,\n cursor: currentParams?.previous,\n previous: null\n }\n };\n }\n\n return {\n application: appLink.application,\n action: appLink.action,\n args: appLink.args,\n params: {\n ...currentParams,\n cursor: cursorParam,\n previous: currentParams.cursor\n }\n };\n}\n\ninterface CursorPaginationProps {\n cursors: Cursors;\n appLink?: Core.AppLink;\n className?: string;\n buttonVariant?: ButtonProps['variant'];\n prevHack?: boolean;\n scrollTop?: boolean;\n onClick?: (cursor: string) => void;\n}\n\nPagination.defaultProps = {\n className: 'py-2',\n buttonVariant: 'secondary'\n};\n\nexport function Pagination(\n { appLink, cursors, className, buttonVariant, prevHack, scrollTop, onClick }: CursorPaginationProps\n): JSX.Element {\n function onClickButton(page: 'next' | 'previous'): void {\n if (appLink && !scrollTop)\n ScrollHelper.preventScrollTop();\n\n AnalyticsHelper.logUserAction({ page }, {\n location: LocationContext.Pagination,\n entity: EntityType.Pagination,\n actionType: UserAction.Navigate\n });\n\n if (onClick)\n onClick(cursors[page]);\n }\n\n if (appLink) {\n return (\n <LanguageNamespaceContext.Provider value='shared.pagination'>\n <div className={className}>\n <AppLink\n appLink={buildCursor(appLink, cursors.previous, prevHack)}\n className={`btn btn-${buttonVariant} me-1 ${!cursors.previous ? 'disabled' : ''}`}\n onClick={() => onClickButton('previous')}\n // make sure disabled button and clickable button looks the same\n style={{ display: 'inline-block' }}\n >\n <Text phrase='previous' />\n </AppLink>\n \n <AppLink\n appLink={buildCursor(appLink, cursors.next)}\n className={`btn btn-${buttonVariant} ${!cursors.next ? 'disabled' : ''}`}\n onClick={() => onClickButton('next')}\n // make sure disabled button and clickable button looks the same\n style={{ display: 'inline-block' }}\n >\n <Text phrase='next' />\n </AppLink>\n </div>\n </LanguageNamespaceContext.Provider>\n );\n }\n \n return (\n <LanguageNamespaceContext.Provider value='shared.pagination'>\n <div className={className}>\n <Button\n variant={buttonVariant}\n className={`me-1 ${!cursors.previous ? 'disabled' : ''}`}\n onClick={() => onClickButton('previous')}\n >\n <Text phrase='previous' />\n </Button>\n <Button\n variant={buttonVariant}\n className={`btn ${!cursors.next ? 'disabled' : ''}`}\n onClick={() => onClickButton('next')}\n >\n <Text phrase='next' />\n </Button>\n </div>\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\nimport {\n closestCenter,\n DndContext,\n DragEndEvent,\n DragOverlay,\n DragStartEvent,\n DropAnimation,\n KeyboardSensor,\n Modifiers,\n PointerSensor,\n useSensor,\n useSensors } from '@dnd-kit/core';\nimport {\n restrictToVerticalAxis\n} from '@dnd-kit/modifiers';\nimport {\n rectSortingStrategy,\n SortableContext,\n sortableKeyboardCoordinates,\n SortingStrategy,\n verticalListSortingStrategy } from '@dnd-kit/sortable';\n\ninterface SortableContainerWrapperProps {\n ids: string[];\n getDragOverlay: (id: string) => JSX.Element;\n onSortEnd: (event: DragEndEvent) => void;\n onSortStart?: (event: DragStartEvent) => void;\n dropAnimation?: DropAnimation;\n disabled?: boolean;\n vertical?: boolean;\n}\n\nSortableContainerWrapper.defaultProps = {\n dropAnimation: { duration: 250, easing: 'ease' },\n vertical: true\n};\n\nexport function SortableContainerWrapper(\n props: React.PropsWithChildren<SortableContainerWrapperProps>\n): JSX.Element {\n const [ activeId, setActiveId ] = React.useState(null);\n\n function onSortStart(event: DragStartEvent): void {\n setActiveId(event.active.id);\n props.onSortStart?.(event);\n }\n\n function onSortEnd(event: DragEndEvent): void {\n setActiveId(null);\n props.onSortEnd(event);\n }\n\n function getModifiers(): Modifiers {\n if (!props.vertical)\n return [];\n\n return [restrictToVerticalAxis];\n }\n\n function getSortingStrategy(): SortingStrategy {\n if (props.vertical)\n return verticalListSortingStrategy;\n\n return rectSortingStrategy;\n }\n\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n distance: 10\n }\n }),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates\n })\n );\n \n if (props.disabled)\n return <>{props.children}</>;\n\n return (\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragStart={onSortStart}\n onDragEnd={onSortEnd}\n modifiers={getModifiers()}\n >\n <SortableContext\n items={props.ids}\n strategy={getSortingStrategy()}\n >\n {props.children}\n </SortableContext>\n\n <DragOverlay dropAnimation={props.dropAnimation}>\n {activeId ? props.getDragOverlay(activeId) : null}\n </DragOverlay>\n </DndContext>\n );\n}","import React from 'react';\nimport { DraggableAttributes } from '@dnd-kit/core';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\n\nimport { HashObject } from 'libs/common/react/interfaces';\n\ntype DragDirection = 'up' | 'down';\n\nexport type PropsWithSortableItemProps<T> = T & {\n dragAttributes?: DraggableAttributes;\n dragListeners?: HashObject;\n dragDirection?: DragDirection;\n};\n\ninterface SortableItemWrapperProps<TProps> {\n id: string;\n childProps: TProps;\n childComponent: (props: PropsWithSortableItemProps<TProps>) => JSX.Element;\n}\n\nfunction getDragDirection(index: number, activeIndex: number, overIndex: number): DragDirection {\n if (activeIndex !== index)\n return null;\n\n if (overIndex > activeIndex)\n return 'down';\n\n if (overIndex < activeIndex)\n return 'up';\n\n return null;\n}\n\nexport function SortableItemWrapper<TProps>(props: SortableItemWrapperProps<TProps>): JSX.Element {\n const {\n setNodeRef,\n transform,\n transition,\n isSorting,\n listeners,\n attributes,\n activeIndex,\n overIndex,\n index\n } = useSortable({ id: props.id });\n\n const style: HashObject = {\n transform: CSS.Transform.toString(transform),\n transition,\n touchAction: 'none',\n position: 'relative'\n };\n\n if (isSorting && index === activeIndex) {\n style.visibility = 'hidden';\n }\n\n const Children = props.childComponent;\n const dragDirection = getDragDirection(index, activeIndex, overIndex);\n\n return (\n <Children\n {...props.childProps}\n ref={setNodeRef}\n style={style}\n dragListeners={listeners}\n dragAttributes={attributes}\n dragDirection={dragDirection}\n />\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"sortableVideo\":\"xaH09\",\"videoList\":\"kO5Q0\",\"badgeContainer\":\"FP8l5\",\"dragStyle\":\"HF8j1\"};","import * as React from 'react';\nimport { DragEndEvent, DragStartEvent } from '@dnd-kit/core';\n\nimport { Cursors } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { SearchIndices } from 'libs/shared/apps/search/interfaces';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { DragDropMoveWrapper } from 'libs/shared/components/drag-drop-move/DragDropMoveWrapper';\nimport { Checkbox } from 'libs/shared/components/forms/form-checkbox/Checkbox';\nimport { Pagination } from 'libs/shared/components/pagination/Pagination';\nimport { SortableContainerWrapper } from 'libs/shared/components/sortable/SortableContainerWrapper';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { VideoSubTextType } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { BulkCheckboxManager } from 'libs/shared/hooks/useBulkCheckboxManager';\nimport { HasPermissionsFunc } from 'libs/shared/hooks/usePermissions';\nimport { CanFavouriteFunc, FavouriteFunc, InteractiveMetadata, PresentationAudience, Video, VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { GetVideoAppLinkOptions } from 'libs/shared/interfaces/VideoAppLinkOptions';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { ClipItem, ClipItemProps, SortableClipItem } from './clip-item/ClipItem';\nimport { InteractiveItem, InteractiveItemProps, SortableInteractiveItem } from './interactive-item/InteractiveItem';\nimport { SortableVideoItem, VideoItem, VideoItemProps } from './video-item/VideoItem';\n\nimport styles from './video-list.scss';\n\ntype ItemComponent = (props: ClipItemProps | InteractiveItemProps | VideoItemProps) => JSX.Element;\n\nfunction getItemComponent(video: VideoTypes, isSortable: boolean): ItemComponent {\n if (VideoHelper.isClip(video))\n return isSortable ? SortableClipItem : ClipItem;\n\n if (VideoHelper.isInteractive(video))\n return isSortable ? SortableInteractiveItem : InteractiveItem;\n\n return isSortable ? SortableVideoItem : VideoItem;\n}\n\ninterface SortableVideoListContextProps {\n isSortable: boolean;\n currentSortingIndex?: number;\n}\n\nexport const SortableVideoListContext = React.createContext<SortableVideoListContextProps>({\n isSortable: false\n});\n\nexport interface VideoListProps {\n videos: VideoTypes[];\n yearGroups?: YearGroup[];\n getVideoAppLink: (video: VideoTypes, options: GetVideoAppLinkOptions) => Core.AppLink;\n getSignInAppLink?: (appLink: Core.AppLink) => Core.AppLink;\n getPreviewQuestionsAppLink?: (interactive: InteractiveMetadata) => Core.AppLink;\n getSubTextAppLink?: (video: Video) => Core.AppLink;\n getInteractiveGuidanceAppLink?: (id: string, type: MasterType) => Core.AppLink;\n getResourceGuidanceAppLink?: (id: string, type: MasterType) => Core.AppLink;\n getClassroomGuideAppLink?: (id: string, type: MasterType) => Core.AppLink;\n hideVideoGuidance?: boolean;\n setFavourite?: FavouriteFunc;\n canFavourite?: CanFavouriteFunc;\n cursors?: Cursors;\n dragHandleIcon?: string;\n dragHandleIconSize?: SvgContainerSize;\n showSignIn?: boolean;\n showIndexes?: boolean;\n startingPositionIndex?: number;\n canRemovePrivateVideos?: boolean;\n presentationAudiences?: PresentationAudience[];\n allowBulkAction?: boolean;\n getVideosBulkAction?: (items: string[]) => ActionOptions[];\n drag?: boolean;\n typeFilter?: SearchIndices | SearchIndices[];\n checkboxHelper?: BulkCheckboxManager;\n companyLogoFallbackUrl?: string;\n subTextType?: VideoSubTextType;\n hasPermissions: HasPermissionsFunc;\n imageCdnUrl?: string;\n isPlugin: boolean;\n}\n\nexport function VideoList(props: VideoListProps): JSX.Element {\n const { isSortable } = React.useContext(SortableVideoListContext);\n const [ isDragging, setIsDragging ] = React.useState<boolean>(false);\n const { checkboxHelper: CheckboxHelper } = props;\n \n const currentAppLink = Core.AppLinkHelper.getCurrentAppLink();\n\n return (\n <>\n <div className={`position-relative ${styles.videoList}`}>\n \n {props.videos.map((v, idx) => {\n const Component = getItemComponent(v, isSortable);\n \n /**\n * Where we're provided with a starting position index by the parent, \n * we'll use that as the starting position instead of the local index.\n */\n const pagePositionStartingIndex = Number.isInteger(props.startingPositionIndex)\n ? props.startingPositionIndex\n : 0;\n\n const dragData = CheckboxHelper && CheckboxHelper.getSelectedCount() > 1 && CheckboxHelper.isChecked(v.id)\n ? CheckboxHelper.getSelected()\n : v;\n\n return (\n <DragDropMoveWrapper\n draggable={(props.drag && !isSortable) && ({ id: v.id, data: dragData })}\n dragStyle={styles.dragStyle}\n isDragging={isDragging}\n setIsDragging={setIsDragging}\n key={`${v.id}:${idx}`}\n >\n <div className='d-flex flex-row align-items-center'>\n {props.allowBulkAction && (\n <div>\n <Checkbox\n className='mx-0 mx-md-2'\n id={v.id}\n onChange={() => CheckboxHelper.onToggleItem(v.id)}\n checked={CheckboxHelper.isChecked(v.id)}\n />\n \n </div>\n )}\n <Component\n video={v}\n yearGroups={props.yearGroups}\n index={idx}\n getVideoAppLink={props.getVideoAppLink}\n getSubTextAppLink={props.getSubTextAppLink}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n dragHandleIcon={props.dragHandleIcon}\n dragHandleIconSize={props.dragHandleIconSize}\n showSignIn={props.showSignIn}\n getSignInAppLink={props.getSignInAppLink}\n analyticsData={{\n pagePositionIndex: pagePositionStartingIndex + idx\n }}\n hasPermissions={props.hasPermissions}\n canRemovePrivateVideos={props.canRemovePrivateVideos}\n presentationAudiences={props.presentationAudiences}\n showIndexes={props.showIndexes}\n companyLogoFallbackUrl={props.companyLogoFallbackUrl}\n subTextType={props.subTextType}\n getPreviewQuestionsAppLink={props.getPreviewQuestionsAppLink}\n imageCdnUrl={props.imageCdnUrl}\n isPlugin={props.isPlugin}\n getClassroomGuideAppLink={props.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={props.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={props.getResourceGuidanceAppLink}\n hideVideoGuidance={props.hideVideoGuidance}\n />\n </div>\n </DragDropMoveWrapper>\n );\n })}\n </div>\n\n {props.cursors &&\n <Pagination appLink={currentAppLink} cursors={props.cursors} />\n }\n </>\n );\n}\n\ninterface SortableVideoListProps extends VideoListProps {\n currentSortingIndex?: number;\n onSortEnd: (event: DragEndEvent) => void;\n onSortStart: (event: DragStartEvent) => void;\n\n}\n\nexport const SortableVideoList = (props: SortableVideoListProps) => {\n const ids = props.videos.map(v => v.id);\n\n const getDragOverlay = (id: string) => {\n const video = props.videos.find(v => v.id === id);\n const Component = getItemComponent(video, true);\n\n return (\n <div className={`bg-white ${styles.sortableVideo}`}>\n <SortableVideoListContext.Provider value={{ isSortable: true }}>\n <Component\n video={video}\n yearGroups={props.yearGroups}\n getVideoAppLink={props.getVideoAppLink}\n getSubTextAppLink={props.getSubTextAppLink}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n dragHandleIcon={props.dragHandleIcon}\n dragHandleIconSize={props.dragHandleIconSize}\n showSignIn={props.showSignIn}\n getSignInAppLink={props.getSignInAppLink}\n companyLogoFallbackUrl={props.companyLogoFallbackUrl}\n subTextType={props.subTextType}\n hasPermissions={props.hasPermissions}\n imageCdnUrl={props.imageCdnUrl}\n isPlugin={props.isPlugin}\n getClassroomGuideAppLink={props.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={props.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={props.getResourceGuidanceAppLink}\n hideVideoGuidance={props.hideVideoGuidance}\n />\n </SortableVideoListContext.Provider>\n </div>\n );\n };\n\n return (\n <SortableContainerWrapper\n ids={ids}\n getDragOverlay={getDragOverlay}\n onSortEnd={props.onSortEnd}\n onSortStart={props.onSortStart}\n >\n <SortableVideoListContext.Provider value={{ isSortable: true, currentSortingIndex: props.currentSortingIndex }}>\n <VideoList {...props} />\n </SortableVideoListContext.Provider>\n </SortableContainerWrapper>\n );\n};","import { ColProps } from 'react-bootstrap';\n\nimport { VideoItemSize } from 'libs/shared/components/video-list/BaseVideoItemProps';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\n\nexport const VideoListHelper = {\n getThumbnailColumns(): ColProps {\n return {\n xs: 12,\n sm: 5,\n lg: 3\n };\n },\n\n getDetailsColumns(): ColProps {\n return {\n xs: 12,\n sm: 7,\n lg: 9\n };\n },\n\n getSize(breakpoints: Breakpoints, size: VideoItemSize): VideoItemSize {\n if (breakpoints.sm)\n return 'sm';\n \n return size || 'md';\n },\n\n getThumbnailColSize(hasDragHandle: boolean): number {\n return hasDragHandle ? 10 : 12;\n }\n};","import * as React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { EntityType, LocationContext } from 'libs/analytics/interfaces';\n\nimport { SortableItemWrapper } from 'libs/shared/components/sortable/SortableItemWrapper';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { BaseVideoItemProps } from 'libs/shared/components/video-list/BaseVideoItemProps';\nimport { VideoItemGuidance } from 'libs/shared/components/video-list/components/video-guidance/VideoItemGuidance';\nimport { VideoItemDescription } from 'libs/shared/components/video-list/components/video-item-description/VideoItemDescription';\nimport { VideoItemLeftContent } from 'libs/shared/components/video-list/components/video-item-left-content/VideoItemLeftContent';\nimport { VideoItemRestrictionBadge } from 'libs/shared/components/video-list/components/video-item-restriction-badge/VideoItemRestrictionBadge';\nimport { VideoItemTitle } from 'libs/shared/components/video-list/components/video-item-title/VideoItemTitle';\nimport { VideoItemTopRight } from 'libs/shared/components/video-list/components/video-item-top-right/VideoItemTopRight';\nimport { SortableVideoListContext } from 'libs/shared/components/video-list/VideoList';\nimport { VideoListHelper } from 'libs/shared/components/video-list/VideoListHelper';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { useHover } from 'libs/shared/hooks/UseHover';\nimport { useMergeAudiences } from 'libs/shared/hooks/UseMergeAudiences';\nimport { Clip } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport styles from './clip-item.scss';\n\nexport type ClipItemProps = BaseVideoItemProps<Clip>;\n\nexport const ClipItem = React.forwardRef((props: ClipItemProps, ref: React.LegacyRef<HTMLDivElement>) => {\n const breakpoints = useBreakpoints();\n const [ hoverRef, hovered ] = useHover<HTMLDivElement>();\n \n const size = VideoListHelper.getSize(breakpoints, props.size);\n const isSmall = size === 'sm';\n\n const { isSortable } = React.useContext(SortableVideoListContext);\n\n const mergedAudience = useMergeAudiences(props.video.subjectPresentationAudiences?.data, props.presentationAudiences);\n\n const showDragHandle = isSortable && !breakpoints.xs && (hovered || typeof props.index === 'undefined' || !props.showIndexes);\n const showIndexes = (props.showIndexes && !showDragHandle) && !breakpoints.xs;\n const hasIconOrIndex = (showDragHandle || props.showIndexes) && !breakpoints.xs;\n\n const appLink = props.getVideoAppLink(props.video, {});\n const analyticsProps = {\n analyticsData: props.analyticsData,\n analyticsOptions: {\n entity: EntityType.Clip,\n location: LocationContext.ClipListItem\n }\n };\n\n return (\n <div ref={hoverRef} className='w-100'>\n <div className={`row g-0 ${isSmall ? '' : 'py-2'}`} ref={ref} style={props.style}>\n <Col {...VideoListHelper.getThumbnailColumns()} className={`flex-column align-items-flex-start ${isSmall ? `pb-2 pe-2` : 'mb-1 px-2'}`}>\n <Row>\n <VideoItemLeftContent\n index={props.index}\n showDragHandle={showDragHandle}\n showIndexes={showIndexes}\n dragHandleIcon={props.dragHandleIcon}\n dragHandleIconSize={props.dragHandleIconSize}\n dragAttributes={props.dragAttributes}\n dragListeners={props.dragListeners}\n />\n \n <Col xs={VideoListHelper.getThumbnailColSize(hasIconOrIndex)}>\n <VideoThumbnail\n {...analyticsProps}\n video={props.video}\n appLink={appLink}\n audience={mergedAudience}\n imageOptions={{ size: ImageSize.Medium }}\n textPosition={ThumbnailTextPosition.Independent}\n type='static'\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n canRemovePrivateVideos={props.canRemovePrivateVideos}\n showSignIn={props.showSignIn}\n subTextType='none'\n imageCdnUrl={props.imageCdnUrl}\n isPlugin={props.isPlugin}\n />\n </Col>\n </Row>\n </Col>\n\n <Col\n {...VideoListHelper.getDetailsColumns()}\n className={`${isSmall ? 'pb-2' : 'px-2'} d-flex flex-column justify-content-between`}\n >\n <div>\n <VideoItemTopRight\n {...analyticsProps}\n video={props.video}\n showSignIn={props.showSignIn}\n signInAppLink={props.getSignInAppLink?.(appLink)}\n />\n\n <VideoItemTitle\n video={props.video}\n appLink={appLink}\n size={size}\n yearGroups={props.yearGroups}\n {...analyticsProps}\n />\n\n {!isSmall && (\n <VideoItemDescription video={props.video} showSignIn={props.showSignIn} />\n )}\n\n <VideoItemRestrictionBadge video={props.video} yearGroups={props.yearGroups}/>\n </div>\n\n {VideoHelper.showVideoGuidance(props.hasPermissions) && (\n <VideoItemGuidance\n video={props.video}\n getVideoAppLink={props.getVideoAppLink}\n getClassroomGuideAppLink={props.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={props.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={props.getResourceGuidanceAppLink}\n containerClassName={`d-flex justify-content-start align-items-center pt-sm-1 gap-1`}\n responsiveClassName={styles.responsiveGuidance}\n {...analyticsProps}\n />\n )}\n </Col>\n </div>\n </div>\n );\n});\n\ntype SortableClipItemProps = ClipItemProps & {\n index: number;\n};\n\nexport const SortableClipItem = (props: SortableClipItemProps) => {\n return (\n <SortableItemWrapper id={props.video.id} childComponent={ClipItem} childProps={props} />\n );\n};","// extracted by mini-css-extract-plugin\nexport default {\"responsiveGuidance\":\"_4ms1w\"};","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces/AnalyticsTypes';\n\nimport { Actions } from 'libs/shared/components/actions/Actions';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { Video } from 'libs/shared/interfaces';\n\ninterface VideoItemActionsProps {\n video: Video;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n}\n\nexport function VideoItemActions(props: VideoItemActionsProps): JSX.Element {\n const videoActions = React.useContext(VideoActionsContext);\n\n if (!FunctionHelper.isFunction(videoActions?.getVideoActions))\n return <></>;\n\n const actions = videoActions.getVideoActions(props.video, {\n analyticsData: props.analyticsData,\n analyticsOptions: props.analyticsOptions\n });\n\n return (\n <Actions\n actions={actions}\n className='float-end mt-n1'\n actionsDropdownClassName='btn btn-link ms-1'\n fetchMore={videoActions.fetchMoreActions ? () => videoActions.fetchMoreActions(props.video) : null}\n />\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"dragHandleContainer\":\"mcAFC\"};","import React from 'react';\nimport { Col } from 'react-bootstrap';\n\nimport { PropsWithSortableItemProps } from 'libs/shared/components/sortable/SortableItemWrapper';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './video-item-left-content.scss';\n\ninterface VideoItemLeftContentProps {\n index: number;\n showDragHandle: boolean;\n showIndexes: boolean;\n dragHandleIcon: string;\n dragHandleIconSize: SvgContainerSize;\n}\n\nfunction getClassName(showDragHandle: boolean): string {\n const baseClassName = 'd-flex justify-content-center align-items-center';\n if (!showDragHandle) return baseClassName;\n\n return `${baseClassName} cursor-pointer ${styles.dragHandleContainer}`;\n}\n\nexport function VideoItemLeftContent(props: PropsWithSortableItemProps<VideoItemLeftContentProps>): JSX.Element {\n const dragProps = props.showDragHandle ? { ...props.dragAttributes, ...props.dragListeners } : {};\n const className = getClassName(props.showDragHandle);\n\n if (!props.showDragHandle && !props.showIndexes) return <></>;\n\n return (\n <Col\n xs={2}\n className={className}\n {...dragProps}\n >\n {!!props.showDragHandle &&\n <SvgContainer svgName={props.dragHandleIcon} size={props.dragHandleIconSize} />\n }\n {!!props.showIndexes &&\n <span className='fw-semibold'>{props.index + 1}</span>\n }\n </Col>\n );\n}\n\nVideoItemLeftContent.defaultProps = {\n dragHandleIcon: cvSvgLibrary.Handle,\n dragHandleIconSize: SvgContainerSize.Small\n};","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'shared.signInToWatch';\n\ninterface SignInToWatchProps {\n appLink: Core.AppLink\n className: string;\n}\n\nexport function SignInToWatch(props: SignInToWatchProps): React.ReactElement {\n return (\n <AppLink appLink={props.appLink} className={props.className}>\n <Text namespace={namespace} phrase='signInToWatch'></Text>\n </AppLink>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces/AnalyticsTypes';\n\nimport { SignInToWatch } from 'libs/shared/components/sign-in-to-watch/SignInToWatch';\nimport { VideoItemActions } from 'libs/shared/components/video-list/components/video-item-actions/VideoItemActions';\nimport { Video } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\ninterface VideoItemTopRightProps {\n video: Video;\n showSignIn: boolean;\n signInAppLink?: Core.AppLink;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n}\n\nexport function VideoItemTopRight(props: VideoItemTopRightProps): JSX.Element {\n const { canNavigate } = VideoHelper.getCanBeConsumed(props.video);\n\n if (props.showSignIn && !canNavigate)\n return <SignInToWatch appLink={props.signInAppLink} className='btn btn-outline-dark float-end' />;\n\n return (\n <VideoItemActions\n video={props.video}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n />\n );\n}","import * as React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { EntityType, LocationContext } from 'libs/analytics/interfaces';\n\nimport { SortableItemWrapper } from 'libs/shared/components/sortable/SortableItemWrapper';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { BaseVideoItemProps } from 'libs/shared/components/video-list/BaseVideoItemProps';\nimport { VideoItemDescription } from 'libs/shared/components/video-list/components/video-item-description/VideoItemDescription';\nimport { VideoItemLeftContent } from 'libs/shared/components/video-list/components/video-item-left-content/VideoItemLeftContent';\nimport { VideoItemRestrictionBadge } from 'libs/shared/components/video-list/components/video-item-restriction-badge/VideoItemRestrictionBadge';\nimport { VideoItemTitle } from 'libs/shared/components/video-list/components/video-item-title/VideoItemTitle';\nimport { VideoItemTopRight } from 'libs/shared/components/video-list/components/video-item-top-right/VideoItemTopRight';\nimport { InteractiveItemQuestions } from 'libs/shared/components/video-list/interactive-item/InteractiveItemQuestions';\nimport { SortableVideoListContext } from 'libs/shared/components/video-list/VideoList';\nimport { VideoListHelper } from 'libs/shared/components/video-list/VideoListHelper';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { useHover } from 'libs/shared/hooks/UseHover';\nimport { useMergeAudiences } from 'libs/shared/hooks/UseMergeAudiences';\nimport { InteractiveMetadata } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nexport type InteractiveItemProps = BaseVideoItemProps<InteractiveMetadata> & {\n getPreviewQuestionsAppLink: (interactive: InteractiveMetadata) => Core.AppLink;\n imageCdnUrl?: string;\n};\n\nexport const InteractiveItem = React.forwardRef((props: InteractiveItemProps, ref: React.LegacyRef<HTMLDivElement>) => {\n const breakpoints = useBreakpoints();\n const [ hoverRef, hovered ] = useHover<HTMLDivElement>();\n\n const size = VideoListHelper.getSize(breakpoints, props.size);\n const isSmall = size === 'sm';\n\n const { isSortable } = React.useContext(SortableVideoListContext);\n\n const mergedAudience = useMergeAudiences(props.video.subjectPresentationAudiences?.data, props.presentationAudiences);\n\n const showDragHandle = isSortable && !breakpoints.xs && (hovered || typeof props.index === 'undefined' || !props.showIndexes);\n const showIndexes = (props.showIndexes && !showDragHandle) && !breakpoints.xs;\n const hasIconOrIndex = (showDragHandle || props.showIndexes) && !breakpoints.xs;\n\n const appLink = props.getVideoAppLink(props.video, {});\n const analyticsProps = {\n analyticsData: props.analyticsData,\n analyticsOptions: {\n entity: EntityType.Interactive,\n location: LocationContext.InteractiveListItem\n }\n };\n\n const { canNavigate } = VideoHelper.getCanBeConsumed(props.video);\n\n return (\n <div ref={hoverRef} className='w-100'>\n <div className='row g-0 py-2' ref={ref} style={props.style}>\n <Col {...VideoListHelper.getThumbnailColumns()} className={`flex-column align-items-flex-start ${isSmall ? `pb-2 pe-2` : 'mb-1 px-2'}`}>\n <Row>\n <VideoItemLeftContent\n index={props.index}\n showDragHandle={showDragHandle}\n showIndexes={showIndexes}\n dragHandleIcon={props.dragHandleIcon}\n dragHandleIconSize={props.dragHandleIconSize}\n dragAttributes={props.dragAttributes}\n dragListeners={props.dragListeners}\n />\n \n <Col xs={VideoListHelper.getThumbnailColSize(hasIconOrIndex)}>\n <VideoThumbnail\n {...analyticsProps}\n video={props.video}\n appLink={appLink}\n audience={mergedAudience}\n imageOptions={{ size: ImageSize.Medium }}\n textPosition={ThumbnailTextPosition.Independent}\n type='static'\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n canRemovePrivateVideos={props.canRemovePrivateVideos}\n showSignIn={props.showSignIn}\n subTextType='none'\n hideDuration={isSmall}\n imageCdnUrl={props.imageCdnUrl}\n isPlugin={props.isPlugin}\n />\n </Col>\n </Row>\n </Col>\n\n <Col {...VideoListHelper.getDetailsColumns()} className={isSmall ? 'pb-2' : 'px-2'}>\n <VideoItemTopRight\n {...analyticsProps}\n video={props.video}\n showSignIn={props.showSignIn}\n signInAppLink={props.getSignInAppLink?.(appLink)}\n />\n\n <VideoItemTitle\n video={props.video}\n appLink={appLink}\n size={size}\n yearGroups={props.yearGroups}\n {...analyticsProps}\n />\n\n {canNavigate ? (\n <div className='pt-sm-1 pt-md-0'>\n <InteractiveItemQuestions\n timepoints={props.video._timepoints?.value}\n appLink={appLink}\n previewAppLink={props.getPreviewQuestionsAppLink(props.video)}\n />\n </div>\n ) : (\n <VideoItemDescription video={props.video} showSignIn={props.showSignIn} />\n )}\n\n <VideoItemRestrictionBadge video={props.video} yearGroups={props.yearGroups}/>\n </Col>\n </div>\n </div>\n );\n});\n\ntype SortableInteractiveItemProps = InteractiveItemProps & {\n index: number;\n}\n\nexport const SortableInteractiveItem = (props: SortableInteractiveItemProps) => {\n return (\n <SortableItemWrapper id={props.video.id} childComponent={InteractiveItem} childProps={props} />\n );\n};","import * as React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { Core } from 'libs/common/core';\n\nimport { EntityType, LocationContext } from 'libs/analytics/interfaces';\n\nimport { SortableItemWrapper } from 'libs/shared/components/sortable/SortableItemWrapper';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { BaseVideoItemProps } from 'libs/shared/components/video-list/BaseVideoItemProps';\nimport { VideoItemGuidance } from 'libs/shared/components/video-list/components/video-guidance/VideoItemGuidance';\nimport { VideoItemDescription } from 'libs/shared/components/video-list/components/video-item-description/VideoItemDescription';\nimport { VideoItemLeftContent } from 'libs/shared/components/video-list/components/video-item-left-content/VideoItemLeftContent';\nimport { VideoItemRestrictionBadge } from 'libs/shared/components/video-list/components/video-item-restriction-badge/VideoItemRestrictionBadge';\nimport { VideoItemTitle } from 'libs/shared/components/video-list/components/video-item-title/VideoItemTitle';\nimport { VideoItemTopRight } from 'libs/shared/components/video-list/components/video-item-top-right/VideoItemTopRight';\nimport { SortableVideoListContext } from 'libs/shared/components/video-list/VideoList';\nimport { VideoListHelper } from 'libs/shared/components/video-list/VideoListHelper';\nimport { VideoSubText, VideoSubTextType } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { useHover } from 'libs/shared/hooks/UseHover';\nimport { useMergeAudiences } from 'libs/shared/hooks/UseMergeAudiences';\nimport { Video } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './video-item.scss';\n\nexport type VideoItemProps = BaseVideoItemProps<Video> & {\n getSubTextAppLink: (video: Video) => Core.AppLink;\n subTextType?: VideoSubTextType;\n isPlugin: boolean;\n};\n\nexport const VideoItem = React.forwardRef((props: VideoItemProps, ref: React.LegacyRef<HTMLDivElement>) => {\n const breakpoints = useBreakpoints();\n const [ hoverRef, hovered ] = useHover<HTMLDivElement>();\n\n const size = VideoListHelper.getSize(breakpoints, props.size);\n\n const isSmall = size === 'sm';\n\n const { isSortable } = React.useContext(SortableVideoListContext);\n\n const videoAudiences = props.video?.subjectPresentationAudiences?.data;\n const mergedAudience = useMergeAudiences(videoAudiences, props.presentationAudiences);\n\n const showDragHandle = isSortable && !breakpoints.xs && (hovered || typeof props.index === 'undefined' || !props.showIndexes);\n const showIndexes = (props.showIndexes && !showDragHandle) && !breakpoints.xs;\n const hasIconOrIndex = (showDragHandle || props.showIndexes) && !breakpoints.xs;\n\n const appLink = props.getVideoAppLink?.(props.video, {});\n\n function getSubTextAppLink(): Core.AppLink {\n return props.getSubTextAppLink?.(props.video);\n }\n\n const subTextAppLink = getSubTextAppLink();\n const analyticsProps = {\n analyticsData: props.analyticsData,\n analyticsOptions: props.analyticsOptions ?? {\n entity: EntityType.Video,\n location: LocationContext.VideoListItem\n }\n };\n\n return (\n <div ref={hoverRef} className='w-100'>\n <div className={`row g-0 ${isSmall ? '' : 'py-2'}`} style={props.style} ref={ref}>\n <Col\n {...VideoListHelper.getThumbnailColumns()}\n className={`flex-column align-items-flex-start mb-1 mb-sm-0 pb-sm-2 pe-sm-2 px-md-2 pb-md-0`}\n >\n <Row>\n <VideoItemLeftContent\n index={props.index}\n showDragHandle={showDragHandle}\n showIndexes={showIndexes}\n dragHandleIcon={props.dragHandleIcon}\n dragHandleIconSize={props.dragHandleIconSize}\n dragAttributes={props.dragAttributes}\n dragListeners={props.dragListeners}\n />\n \n <Col xs={VideoListHelper.getThumbnailColSize(hasIconOrIndex)}>\n <VideoThumbnail\n {...analyticsProps}\n video={props.video}\n appLink={appLink}\n audience={mergedAudience}\n imageOptions={{ size: hasIconOrIndex ? ImageSize.Small : ImageSize.Medium }}\n textPosition={ThumbnailTextPosition.Independent}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n type='static'\n canRemovePrivateVideos={props.canRemovePrivateVideos}\n showSignIn={props.showSignIn}\n hideRating={false}\n companyLogoFallbackUrl={props.companyLogoFallbackUrl}\n subTextType='none'\n isPlugin={props.isPlugin}\n />\n </Col>\n </Row>\n </Col>\n <Col\n {...VideoListHelper.getDetailsColumns()}\n className={`d-flex flex-column px-0 px-md-2 pb-0 pb-sm-2 pb-md-0 justify-content-md-between`}\n >\n <div>\n <VideoItemTopRight\n {...analyticsProps}\n video={props.video}\n showSignIn={props.showSignIn}\n signInAppLink={props.getSignInAppLink?.(appLink)}\n />\n\n <VideoSubText\n {...analyticsProps}\n video={props.video}\n appLink={subTextAppLink}\n type={props.subTextType}\n />\n\n <VideoItemTitle\n video={props.video}\n appLink={appLink}\n size={size}\n yearGroups={props.yearGroups}\n {...analyticsProps}\n />\n\n {!isSmall && (\n <VideoItemDescription video={props.video} showSignIn={props.showSignIn} />\n )}\n\n <VideoItemRestrictionBadge video={props.video} yearGroups={props.yearGroups}/>\n </div>\n\n {!props.hideVideoGuidance && (\n <VideoItemGuidance\n video={props.video}\n getVideoAppLink={props.getVideoAppLink}\n getClassroomGuideAppLink={props.getClassroomGuideAppLink}\n getResourceGuidanceAppLink={props.getResourceGuidanceAppLink}\n getInteractiveGuidanceAppLink={props.getInteractiveGuidanceAppLink}\n containerClassName={`d-flex justify-content-start align-items-center pt-sm-1 gap-1`}\n responsiveClassName={styles.responsiveGuidance}\n {...analyticsProps}\n />\n )}\n </Col>\n </div>\n </div>\n );\n});\n\nVideoItem.defaultProps = {\n dragHandleIcon: cvSvgLibrary.Handle,\n dragHandleIconSize: SvgContainerSize.Small,\n size: 'md'\n};\n\ntype SortableVideoItemProps = VideoItemProps & {\n index: number;\n};\n\nexport const SortableVideoItem = (props: SortableVideoItemProps) => {\n return (\n <SortableItemWrapper id={props.video.id} childComponent={VideoItem} childProps={props} />\n );\n};","// extracted by mini-css-extract-plugin\nexport default {\"responsiveGuidance\":\"ggZzR\"};","import * as React from 'react';\n\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces/AnalyticsTypes';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface VideoActionsOptions {\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n}\n\ntype GetVideoActions = (video: VideoTypes, options: VideoActionsOptions) => ActionOptions[];\ntype FetchMoreActions = (video: VideoTypes) => void;\n\ninterface VideoActionsContextData {\n getVideoActions: GetVideoActions;\n fetchMoreActions?: FetchMoreActions;\n}\n\nexport const VideoActionsContext = React.createContext<VideoActionsContextData>(null);","\"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":["ScrollHelper","preventScrollTop","Radio","trigger","Actions","props","orderedActions","actions","sort","a","b","order","buttonActions","moreActions","forEach","button","push","className","length","map","idx","key","label","appLink","href","onClick","svgName","tooltip","showSpinner","analyticsData","analyticsOptions","openInNewTab","disabled","iconButton","showBorder","title","spanHack","sortComponent","dropdownToggleClassName","actionsDropdownClassName","dropdownToggleSvgSize","fetchMore","LazyDropdownItems","style","padding","height","width","getDropdownItemClassName","actionClassName","ActionsDropdownItem","FunctionHelper","action","AppLink","SvgContainer","e","preventDefault","AnalyticsHelper","role","tabIndex","onKeyDown","ActionsDropdown","isLazy","some","lazyPlaceholder","currentGroup","dropdownToggleId","RandomHelper","type","id","size","showDivider","undefined","group","Tooltip","defaultProps","S","DragDropMoveWrapper","data","draggable","dragActive","active","isDragging","attributes","listeners","draggableRef","setNodeRef","droppable","isOver","over","dropActive","droppableRef","Array","isArray","includes","toString","setIsDragging","ref","dragStyle","dropStye","children","buildCursor","cursorParam","prevHack","currentParams","params","previous","application","args","cursor","Pagination","cursors","buttonVariant","scrollTop","onClickButton","page","location","entity","actionType","value","display","phrase","next","variant","SortableContainerWrapper","activeId","setActiveId","sensors","activationConstraint","distance","coordinateGetter","collisionDetection","onDragStart","event","onSortStart","onDragEnd","onSortEnd","modifiers","vertical","items","ids","strategy","dropAnimation","getDragOverlay","duration","easing","SortableItemWrapper","transform","transition","isSorting","activeIndex","overIndex","index","touchAction","position","visibility","Children","childComponent","dragDirection","getDragDirection","childProps","dragListeners","dragAttributes","getItemComponent","video","isSortable","VideoHelper","ClipItem","InteractiveItem","VideoItem","SortableVideoListContext","VideoList","CheckboxHelper","checkboxHelper","currentAppLink","videos","v","Component","pagePositionStartingIndex","Number","isInteger","startingPositionIndex","dragData","getSelectedCount","isChecked","getSelected","drag","allowBulkAction","Checkbox","onChange","onToggleItem","checked","yearGroups","getVideoAppLink","getSubTextAppLink","setFavourite","canFavourite","dragHandleIcon","dragHandleIconSize","showSignIn","getSignInAppLink","pagePositionIndex","hasPermissions","canRemovePrivateVideos","presentationAudiences","showIndexes","companyLogoFallbackUrl","subTextType","getPreviewQuestionsAppLink","imageCdnUrl","isPlugin","getClassroomGuideAppLink","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","hideVideoGuidance","SortableVideoList","find","Provider","currentSortingIndex","VideoListHelper","getThumbnailColumns","xs","sm","lg","getDetailsColumns","getSize","breakpoints","getThumbnailColSize","hasDragHandle","useBreakpoints","hoverRef","hovered","isSmall","mergedAudience","subjectPresentationAudiences","showDragHandle","hasIconOrIndex","analyticsProps","Col","Row","VideoItemLeftContent","VideoThumbnail","audience","imageOptions","textPosition","ThumbnailTextPosition","VideoItemTopRight","signInAppLink","VideoItemTitle","VideoItemDescription","VideoItemRestrictionBadge","VideoItemGuidance","containerClassName","responsiveClassName","SortableClipItem","VideoItemActions","videoActions","getVideoActions","fetchMoreActions","baseClassName","dragProps","namespace","SignInToWatch","Text","canNavigate","hideDuration","timepoints","_timepoints","previewAppLink","SortableInteractiveItem","videoAudiences","subTextAppLink","hideRating","VideoSubText","SortableVideoItem","VideoActionsContext","bsPrefix","as","decoratedBsPrefix","minBreakpoint","sizePrefix","classes","brkPoint","propValue","cols","infix","displayName"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[3403],{29024:(e,t,n)=>{n.d(t,{k:()=>y});var a=n(32735),r=n(65858),i=n(64249),c=n(75163),l=n(5465),o=n(89118),s=n(7733),u=n(54610),m=n(4594),d=n(68626),p=n(9085),f=n(67453),v=n(31908);const h={thumbnailFallbackSvg:"D4JFs",posterFallbackSvg:"bjUWl",coverFallbackSvg:"kdLpt"};var g="rounded overflow-hidden";function y(e){var t=a.useCallback((function(t){var n;t&&e.fixedHeight&&(t.style.width="".concat(t.offsetHeight*(n=e.object,v.M.isVideoType(n)?16/9:n.typeId===m.E.Playlist?1:n.typeId===m.E.Series?9/16:void 0),"px"))}),[]),n={size:u.h2.Small},y=function(e){var t=f.j.getDisplayImageFromObject(e);if(v.M.isVideoType(e))return{image:t,imageType:u.__.Thumbnails,imageClassName:g,imageFallbackComponent:a.createElement(l.oy,{type:l.mS.Video})};switch(e.typeId){case m.E.Series:return{image:t,imageType:u.__.TallPosters,imageClassName:g,imageFallbackComponent:a.createElement(l.oy,{type:l.mS.Series,svgContainerClassName:h.posterFallbackSvg})};case m.E.Playlist:return{image:t,imageType:u.__.Covers,imageClassName:(null==t?void 0:t.url)?g:"".concat(g," ").concat((0,p.x)(e.name,s.o)),imageFallbackComponent:a.createElement(l.oy,{type:l.mS.Playlist,svgContainerClassName:(null==t?void 0:t.url)?h.coverFallbackSvg:"d-none",extraClasses:!(null==t?void 0:t.url)&&"bg-transparent"})}}}(e.object),E=y.image,b=y.imageType,C=y.imageClassName,S=y.imageFallbackComponent,k=v.M.isVideoType(e.object)&&!!e.showVideoMetadata;return a.createElement("div",{className:"d-flex align-items-center justify-content-center w-100 h-100"},a.createElement("div",{ref:t,className:e.fixedHeight?"h-100":"w-100"},k&&a.createElement(o.u,{video:e.object,imageOptions:n,textPosition:d.z.Independent,type:"cosmetic",appLink:e.appLink,analyticsOptions:{location:e.locationContext},hideDuration:!0,hideMask:!0,size:"sm"}),!k&&a.createElement(c.Z,{data:null==E?void 0:E.url,imageType:b,imageOptions:n,appLink:e.appLink,className:C,analyticsData:{id:e.object.id,name:e.object.name},analyticsOptions:{entity:i.I.getAnalyticsEntity(e.object.type),actionType:r.Vw.Click,location:e.locationContext}},S)))}},95834:(e,t,n)=>{n.d(t,{J:()=>a});var a={table:"striped-list no-full-width pb-3",header:"fw-semibold pb-1",headerCell:"py-2 ps-2 text-nowrap",row:"striped-row rounded",cell:"d-flex align-items-center p-2"}},31754:(e,t,n)=>{n.d(t,{x:()=>l});var a=n(82602),r=n(75896),i=n(89682),c=n(11576),l={groupByDateShared:function(e){var t=r.m.groupBy(e,"dateShared");return Object.keys(t).sort().reverse().reduce((function(e,n){var r=(0,a.WU)(n);return e[r]||(e[r]=[]),e[r]=e[r].concat(t[n]),e}),{})},mapActivityStatusToCheckMarkStatus:function(e){switch(e){case c.T.Complete:return i.h.Complete;case c.T.Incomplete:return i.h.Incomplete;case c.T.None:return i.h.None}},mapCheckMarkStatusToActivityStatus:function(e){switch(e){case i.h.Complete:return c.T.Complete;case i.h.Incomplete:return c.T.Incomplete;case i.h.None:return c.T.None}}}},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"}},39902:(e,t,n)=>{n.d(t,{f:()=>o});var a=n(32735),r=n(70680),i=n(20354);function c(e,t){if(e){if("string"==typeof e)return l(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)?l(e,t):void 0}}function l(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}function o(e,t){var n,o,s=(n=a.useState([]),o=2,function(e){if(Array.isArray(e))return e}(n)||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}}(n,o)||c(n,o)||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.")}()),u=s[0],m=s[1];a.useEffect((function(){if(null==e?void 0:e.length){var t=function(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||c(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.")}()}(u);t.push([]),e.forEach((function(e){t.find((function(t){return t.find((function(t){return t===e}))}))||t[t.length-1].push(e)})),m(t.filter((function(e){return e.length})))}}),[e?e.join(","):null]);var d=(0,r.I0)(),p=(0,r.v9)((function(e){return e}));if(a.useEffect((function(){u.forEach((function(e){var n=t(e);i.a.getResponse(p,n.key).shouldFetch&&i.a.fetch(d,n)}))}),[null==u?void 0:u.length]),!(null==u?void 0:u.length))return{items:null,isFetching:!1};var f={},v={};return u.forEach((function(e,n){var a=t(e),r=i.a.getResponse(p,a.key);v[n]=r,r.data&&r.data.forEach((function(e){return f[e.id]=e}))})),{items:Object.keys(v).some((function(e){return!!v[e].data}))?f:null,isFetching:!!Object.keys(v).some((function(e){return v[e].isFetching}))}}},70227:(e,t,n)=>{n.d(t,{c:()=>i});var a=n(97395),r=n(4594),i={getObjectUrl:function(e,t){var n=e.analyticsWebUrl;if(n){var i="";switch(t.typeId){case r.E.Video:i="/videos/".concat(t.id,"/overview");break;case r.E.Clip:i="/clips/".concat(t.id,"/overview");break;case r.E.Interactive:i="/interactives/".concat(t.id,"/overview")}if(i)return a._.safeUrlConcat(n,i)}}}},36511:(e,t,n)=>{n.d(t,{I:()=>r});var a=n(40424);function r(e){switch(e){case a.R.Pink:return"pink";case a.R.Orange:return"orange";case a.R.Green:return"green";case a.R.Blue:return"blue";case a.R.Purple:return"purple";case a.R.Indigo:return"indigo";default:return"pink"}}},2523:(e,t,n)=>{n.d(t,{w:()=>p});var a=n(32735),r=n(23481),i=n(81886),c=n(38502),l=n(75795),o=n(14070),s=n(97291),u=r.T.encloseNamespace("share.sharesHeader"),m={application:s.O.MY_SHARES,action:o.e.MyShares.SHARED_BY_ME},d={application:s.O.MY_SHARES,action:o.e.MyShares.SHARED_WITH_ME};function p(){return a.createElement("div",{className:"pb-3"},a.createElement("h1",{className:"h2 mb-3"},u("shares")),a.createElement(c.r,{tabs:(t=null===(e=l.O.getCurrentRoute())||void 0===e?void 0:e.appLink,[{name:u("sharedByMe"),onSelect:function(){return i.Q.C$.trigger(m)},active:(null==t?void 0:t.action)===m.action},{name:u("sharedWithMe"),onSelect:function(){return i.Q.C$.trigger(d)},active:(null==t?void 0:t.action)===d.action}])}));var e,t}},25458:(e,t,n)=>{n.r(t),n.d(t,{SharedByMeView:()=>we});var a=n(32735),r=n(70680),i=n(23481),c=n(20354),l=n(75896),o=n(23232),s=i.T.encloseNamespace("share.sharedByMeEmptyState");function u(e){return a.createElement(o.u,null,a.createElement(o.u.Image,{src:e.imageUrl,size:"small"}),a.createElement(o.u.Heading,null,s(e.useInteractiveCopy?"interactivesHeading":"genericHeading")),a.createElement(o.u.Info,null,s(e.useInteractiveCopy?"interactivesInfo":"genericInfo")),!!e.appLink&&a.createElement(o.u.Cta,{appLink:e.appLink,text:s("cta")}))}var m=n(95834),d=n(69674),p=n(82602),f=n(110),v=n(65858),h=n(83914),g=n(76177),y=n(49080),E=n(85063),b=n(35223);const C={indicatorContainer:"T6YAv",indicator:"_MRHG"};var S=i.T.encloseNamespace("share.shareStatusIndicator");function k(e){if(e.type===E.y.DirectShare)return S("active");switch(e.status){case y.F.Active:return S("active");case y.F.Expired:return S("expired")}}function N(e){if(e.type===E.y.DirectShare)return"bg-success";switch(e.status){case y.F.Active:return"bg-success";case y.F.Expired:return"bg-secondary"}}function w(e){var t;return e.share.type!==E.y.DirectShare||(null===(t=e.share.recipients)||void 0===t?void 0:t.length)?e.share.type===E.y.ShareLink&&e.share.isPasswordProtected?a.createElement(g.u,{title:S("passwordProtected"),spanHack:!0},a.createElement(h.x,{svgName:b.vn.Lock,size:h.S.Small})):a.createElement(g.u,{title:k(e.share),spanHack:!0,spanHackClassName:C.indicatorContainer},a.createElement("div",{className:"".concat(C.indicator," ").concat(N(e.share))})):a.createElement(a.Fragment,null)}var I=n(29024),x=n(20789),T=n(18995),j=n(60376),A=n(4594),M=n(36511),O=n(64818);const H={avatarContainer:"ByxQa"};var L=i.T.encloseNamespace("reportsShare.sharedToAvatarList");function F(e){var t=l.m.countBy(e,"typeId"),n=t[A.E.User],a=t[A.E.Classroom],r=t[A.E.ClassroomGroup];return n&&a&&r?L("classroomsGroupsAndUsers",{userCount:n,classroomCount:a,groupCount:r}):n&&a?L("classroomsAndUsers",{userCount:n,classroomCount:a}):n&&r?L("groupsAndUsers",{userCount:n,groupCount:r}):a&&r?L("classroomsAndGroups",{classroomCount:a,groupCount:r}):n?L("users",{userCount:n}):a?L("classrooms",{classroomCount:a}):r?L("groups",{groupCount:r}):void 0}function D(e){var t,n,r,i,c,l=(null===(t=e.item)||void 0===t?void 0:t.typeId)===A.E.User&&e.item,o=(null===(n=e.item)||void 0===n?void 0:n.typeId)===A.E.Classroom&&e.item,s=(null===(r=e.item)||void 0===r?void 0:r.typeId)===A.E.ClassroomGroup&&e.item,u="d-flex justify-content-center align-items-center text-white rounded-circle h-100 w-100";return a.createElement("div",{className:"".concat(H.avatarContainer," position-relative d-inline-block")},a.createElement("div",{className:"".concat(H.avatarWrapper," position-absolute w-100 h-100 bg-white rounded-circle"),style:{left:"".concat(-15*e.index,"%"),zIndex:e.maxAvatars-e.index}},!!l&&a.createElement(g.u,{title:"".concat(l.name," ").concat(l.surname),spanHack:!0,spanHackClassName:"h-100 w-100"},a.createElement(x.q,{imageUrl:null===(i=l.avatar)||void 0===i?void 0:i.url,imageCdnUrl:e.imageCdnUrl,initials:O.l.getInitials(l.name,l.surname)})),!!o&&a.createElement(g.u,{title:o.name,spanHack:!0,spanHackClassName:"h-100 w-100"},a.createElement("div",{className:u},a.createElement(j.f,{svgName:b.vn.Classrooms,svgSize:h.S.Large,variant:"teal"}))),!!s&&a.createElement(g.u,{title:s.name,spanHack:!0,spanHackClassName:"h-100 w-100"},a.createElement("div",{className:u},a.createElement(j.f,{svgName:b.vn.Group,variant:(0,M.I)(null===(c=s.metadata)||void 0===c?void 0:c.colour)})))))}function U(){return a.createElement("div",{className:H.avatarContainer},a.createElement(g.u,{title:L("anonymous"),spanHack:!0,spanHackClassName:"bg-light text-dark d-flex justify-content-center align-items-center rounded-circle h-100 w-100"},a.createElement(h.x,{svgName:b.vn.Anonymous})))}function _(){return a.createElement("div",{className:H.avatarContainer},a.createElement(g.u,{title:L("sharedLink"),spanHack:!0,spanHackClassName:"bg-light text-dark d-flex justify-content-center align-items-center rounded-circle h-100 w-100"},a.createElement(h.x,{svgName:b.vn.Link})))}function R(e){return a.createElement("div",null,a.createElement(T.e,Object.assign({},e,{items:e.recipients,avatarItem:D,avatarContainerClassname:H.avatarContainer,getHiddenTooltip:F})))}R.defaultProps={maxAvatars:5};var B=n(31754),P=n(64249),V=n(83657),W=n(36848),Z=n(83345),z=n(31908);function Y(e){return Y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Y(e)}var $="share.sharedByMeTable",G=i.T.encloseNamespace($);function J(e){var t;if(e.type===E.y.ShareLink||!(null===(t=null==e?void 0:e.recipients)||void 0===t?void 0:t.length))return e.dateCreated;var n=e.recipients.map((function(e){return e.dateShared}));return n.sort((function(e,t){return f.O.isSame(e,t)?0:f.O.isAfter(e,t)?1:-2})),n.length?l.m.last(n):""}function X(e,t,n,r,i,c,l,o){var s=o&&(o.xs||o.sm),u=[{Header:c?"":t,accessor:"sharedObject",id:"image",Cell:function(e){var t=e.value;return a.createElement("div",{className:"w-100"},a.createElement(I.k,{object:t,appLink:n(t),showVideoMetadata:!0,locationContext:v.LZ.SharedByMe}))},minWidth:140,maxWidth:30},{accessor:"sharedObject",id:"name",Cell:function(e){var t,r=e.value;return r.name?z.M.isVideoType(r)&&!(null===(t=z.M.getCanBeConsumed(r))||void 0===t?void 0:t.canNavigate)?a.createElement("span",{className:"clamp-2"},r.name):a.createElement(W.F,{appLink:n(r),className:"clamp-2",analyticsData:{id:r.id,name:r.name},analyticsOptions:{entity:P.I.getAnalyticsEntity(r.type),actionType:v.Vw.Click,location:v.LZ.SharedByMe}},r.name):a.createElement("span",null,a.createElement(Z.x,{namespace:$,phrase:"videoUnavailable"}))},width:60},{Header:0===e?G("sharedTo"):"",accessor:"shareRecipients",Cell:function(e){var t=e.value;return t?t.length?a.createElement(R,{recipients:t,imageCdnUrl:i,maxAvatars:s?1:2}):a.createElement(U,null):a.createElement(_,null)},width:40},!s&&{Header:0===e?G("shared"):"",id:"dateShared",accessor:function(e){return(0,p.WU)(e.dateShared)},width:40},{accessor:"sharedObject",id:"actions",Cell:function(e){var t=e.value;return a.createElement(V.e,{actions:r(t),className:"w-100 justify-content-end pe-2"})},width:20}],m={Header:t,accessor:"share",id:"status",Cell:function(e){var t=e.value;return a.createElement(w,{share:t})},width:5},d={Header:G("views"),accessor:"viewCount",width:30};return c&&u.splice(0,0,m),l&&u.splice(u.length-1,0,d),u.filter(Boolean)}var q=a.memo((function(e){var t,n,r,i,c,l=(t=e.sentShares,n=e.sharedObjects,r=e.shareRecipients,i=!!e.groupByDateShared,c=!!e.refreshTable,a.useMemo((function(){var e,a,c,l=[];return t.forEach((function(e){var t,a,i=n.find((function(t){return t.id===e.objectId})),c=null;e.type===E.y.DirectShare&&(c=[],null===(t=e.recipients)||void 0===t||t.forEach((function(e){var t=r.find((function(t){return t.id===e.id}));t&&c.push(t)}))),i&&l.push({share:e,sharedObject:i,shareRecipients:c,dateShared:J(e),viewCount:null!==(a=e.viewCount)&&void 0!==a?a:0})})),i?B.x.groupByDateShared(l):(e={},a=G("title"),c=l,(a=function(e){var t=function(e,t){if("object"!=Y(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var a=n.call(e,"string");if("object"!=Y(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Y(t)?t:t+""}(a))in e?Object.defineProperty(e,a,{value:c,enumerable:!0,configurable:!0,writable:!0}):e[a]=c,e)}),[c]));return a.createElement(a.Fragment,null,Object.keys(l).map((function(t,n){return a.createElement(d.i,{key:n,columns:X(n,t,e.getObjectAppLink,e.getObjectActions,e.imageCdnUrl,e.showStatus,e.showViewCount,e.breakpoints),data:l[t],theme:m.J})})))})),Q=n(30439),K=n(71020),ee=n(39151),te=n(31949),ne=n(39902),ae=n(79967),re=n(60115),ie=n(79612),ce=n(99742),le=n(14070),oe=n(97291),se=n(2523);const ue={imageColumn:"uIOaA",nameColumn:"Nta2B",sharedToColumn:"XTJBC",dateSharedColumn:"HdARK",actionsColumn:"DXyZw",heading:"XZ6o7",image:"MolfU",name:"MM43m",avatar:"EboYM",date:"by_XM",actions:"_S2M_"};function me(){return a.createElement("div",{className:"d-flex striped-row rounded"},a.createElement("div",{className:"d-flex align-items-center justify-content-center p-2 ".concat(ue.imageColumn)},a.createElement("div",{className:"partial-loading-background rounded w-100 ".concat(ue.image)})),a.createElement("div",{className:"d-flex align-items-center p-2 ".concat(ue.nameColumn)},a.createElement("div",{className:"partial-loading-background w-75 ".concat(ue.name)})),a.createElement("div",{className:"d-flex align-items-center p-2 ".concat(ue.sharedToColumn)},a.createElement("div",{className:"partial-loading-background ".concat(ue.avatar)})),a.createElement("div",{className:"d-none d-md-flex align-items-center p-2 ".concat(ue.dateSharedColumn)},a.createElement("div",{className:"partial-loading-background ".concat(ue.date)})),a.createElement("div",{className:"d-flex align-items-center justify-content-end p-2 ".concat(ue.actionsColumn)},a.createElement("div",{className:"partial-loading-background rounded me-2 ".concat(ue.actions)})))}function de(e){return a.createElement("div",{className:"d-flex mb-1"},a.createElement("div",{className:"".concat(ue.imageColumn," p-2")},a.createElement("div",{className:"partial-loading-background ".concat(ue.heading)})),a.createElement("div",{className:"".concat(ue.nameColumn," p-2")}," "),a.createElement("div",{className:"".concat(ue.sharedToColumn," p-2")},e.fullHeader?a.createElement("div",{className:"partial-loading-background ".concat(ue.heading)}):a.createElement(a.Fragment,null," ")),a.createElement("div",{className:"".concat(ue.dateSharedColumn," p-2 d-none d-md-flex")},e.fullHeader?a.createElement("div",{className:"partial-loading-background ".concat(ue.heading)}):a.createElement(a.Fragment,null," ")),a.createElement("div",{className:"".concat(ue.actionsColumn," p-2")}," "))}function pe(){return a.createElement(a.Fragment,null,a.createElement("div",{className:"mb-3"},a.createElement(de,{fullHeader:!0}),a.createElement("div",{className:"striped-list no-full-width"},a.createElement(me,null),a.createElement(me,null),a.createElement(me,null))),a.createElement("div",{className:"mb-3"},a.createElement(de,null),a.createElement("div",{className:"striped-list no-full-width"},a.createElement(me,null),a.createElement(me,null),a.createElement(me,null),a.createElement(me,null))),a.createElement("div",{className:"mb-3"},a.createElement(de,null),a.createElement("div",{className:"striped-list no-full-width"},a.createElement(me,null),a.createElement(me,null),a.createElement(me,null),a.createElement(me,null),a.createElement(me,null),a.createElement(me,null),a.createElement(me,null),a.createElement(me,null),a.createElement(me,null),a.createElement(me,null))))}var fe=n(28400),ve=n(70227),he=n(82431);function ge(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,c,l=[],o=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;o=!1}else for(;!(o=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);o=!0);}catch(e){s=!0,r=e}finally{try{if(!o&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ye(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)?ye(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ye(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 Ee=i.T.encloseNamespace("liteShare.sharedByMe");function be(e){return e.items?Object.values(e.items):[]}function Ce(e){return z.M.isInteractive(e)?{application:oe.O.INTERACTIVES,action:le.e.Interactives.VIEW_INTERACTIVE,args:[e.id,fe.m.slugify(e.name)]}:z.M.isClip(e)?{application:oe.O.CLIPS,action:le.e.Clips.PLAY_CLIP,args:[e.id,fe.m.slugify(e.name)]}:z.M.isVideo(e)?{application:oe.O.VIDEOS,action:le.e.Videos.PLAY_VIDEO,args:[e.id,fe.m.slugify(e.name)]}:e.typeId===A.E.Playlist?{application:oe.O.PLAYLISTS,action:le.e.Playlists.PLAYLIST,args:[e.id,fe.m.slugify(e.name)]}:e.typeId===A.E.Series?he.j.getSeriesAppLink(e):void 0}function Se(e,t){return{label:Ee("editShareSettings"),appLink:{application:oe.O.DEFAULT,action:le.e.Default.SHARE,args:[e.id],params:{entityType:t}}}}function ke(e){return a.createElement(g.u,{title:e.label,spanHack:!0},a.createElement("a",{href:e.url,target:"_blank"},a.createElement(h.x,{svgName:b.vn.Chart})))}var Ne=i.T.encloseNamespace("liteShare.sharedByMe");function we(){var e,t=(0,r.I0)(),n=(0,ae.k)(),i=c.a.useBasicFetch(te.N.currentUser()),o=function(e){return Q.o.sentShare({cursor:e})},s=function(e){return c.a.getFetch(t)(o(e))},m=(0,re.K)(o,s),d=m.items,p=m.hasMore,f=m.isFetching,v=m.nextCursor,h=l.m.uniq(null!==(e=null==d?void 0:d.map((function(e){return e.objectId})))&&void 0!==e?e:[]),g=(0,ne.f)(h,(function(e){return Q.o.sharedObjectsById(e)})),y=function(e){return l.m.uniq(l.m.flatten(function(e){var t;return null!==(t=null==e?void 0:e.filter((function(e){return e.type===E.y.DirectShare})))&&void 0!==t?t:[]}(e).map((function(e){var t;return null!==(t=e.recipients)&&void 0!==t?t:[]}))),"id").map((function(e){return e.id}))}(d),b=(0,ne.f)(y,(function(e){return Q.o.getRecipientsById(e,i.data.customerId)})),C=c.a.useBasicFetch(ee.L.config());(0,ie.M)({title:Ne("sharedByMe")});var S=function(e){var t=c.a.useBasicFetch(ee.L.config()),n=e.xs||e.sm;return a.useCallback((function(e){return function(e,t,n){var r,i="viewUsage";if(z.M.isVideo(e)&&(r="video"),z.M.isInteractive(e)&&(r="interactive",i="viewResults"),z.M.isClip(e)&&(r="clip"),e.typeId===A.E.Series&&(r="series"),e.typeId===A.E.Playlist&&(r="playlist"),z.M.isVideoType(e)&&!z.M.getCanBeConsumed(e).canConsume)return[];var c=[Se(e,r)],l=ve.c.getObjectUrl(t,e);return l&&c.push({label:n?Ee(i):function(){return a.createElement(ke,{label:Ee(i),url:l})},className:"btn btn-link",button:!n,href:l,openInNewTab:!0}),c}(e,t.data,n)}),[n])}(n),k=function(e,t,n,r,i){var c=ge(a.useState(t),2),l=c[0],o=c[1],s=ge(a.useState(r),2),u=s[0],m=s[1];return a.useEffect((function(){t&&o(!0)}),[t]),a.useEffect((function(){r&&m(!0)}),[r]),!(e&&!e.length)&&(!e||!l||n.length&&!u||!i.data)}(d,!!g.items,y,!!b.items,C),N=f||g.isFetching||b.isFetching,w=a.useMemo((function(){return d}),[!!d,N]),I=a.useMemo((function(){return be(g)}),[!!g.items,N]),x=a.useMemo((function(){return be(b)}),[!!b.items,N]);return a.createElement("div",{className:"px-3"},a.createElement(se.w,null),k?a.createElement(pe,null):d.length?a.createElement(a.Fragment,null,a.createElement(q,{sentShares:w,sharedObjects:I,shareRecipients:x,getObjectAppLink:Ce,getObjectActions:S,imageCdnUrl:C.data.imageCdnUrl,groupByDateShared:!0,refreshTable:N,breakpoints:n}),(p||N)&&a.createElement(K._,{isFetching:N,fetchNext:s,nextCursor:v})):a.createElement(u,{appLink:{application:oe.O.DASHBOARD,action:le.e.Dashboard.HOME},imageUrl:ce.W.EmptyStates.Share.SHARED_WITH_ME}))}},87432:(e,t,n)=>{n.d(t,{Z:()=>a});const a={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}},82602:(e,t,n)=>{n.d(t,{WU:()=>s});var a=["second","minute","hour","day","week","month","year"],r=["秒","分钟","小时","天","周","个月","年"],i={},c=function(e,t){i[e]=t},l=[60,60,24,7,365/7/12,12];function o(e){return e instanceof Date?e:!isNaN(e)||/^\d+$/.test(e)?new Date(parseInt(e)):(e=(e||"").trim().replace(/\.\d+/,"").replace(/-/,"/").replace(/-/,"/").replace(/(\d)T(\d)/,"$1 $2").replace(/Z/," UTC").replace(/([+-]\d\d):?(\d\d)/," $1$2"),new Date(e))}var s=function(e,t,n){var a=function(e,t){return(+(t?o(t):new Date)-+o(e))/1e3}(e,n&&n.relativeDate);return function(e,t){for(var n=e<0?1:0,a=e=Math.abs(e),r=0;e>=l[r]&&r<l.length;r++)e/=l[r];return(e=Math.floor(e))>(0==(r*=2)?9:1)&&(r+=1),t(e,r,a)[n].replace("%s",e.toString())}(a,function(e){return i[e]||i.en_US}(t))};c("en_US",(function(e,t){if(0===t)return["just now","right now"];var n=a[Math.floor(t/2)];return e>1&&(n+="s"),[e+" "+n+" ago","in "+e+" "+n]})),c("zh_CN",(function(e,t){if(0===t)return["刚刚","片刻后"];var n=r[~~(t/2)];return[e+" "+n+"前",e+" "+n+"后"]}))}}]);
2
+ //# sourceMappingURL=3403-12c460d3f6-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/3403-12c460d3f6-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/share/components/shared-object-image/shared-object-image.scss","file:///app/packages/libs/shared/src/apps/share/components/shared-object-image/SharedObjectImage.tsx","file:///app/packages/libs/shared/src/apps/share/constants/TableTheme.ts","file:///app/packages/libs/shared/src/apps/share/utils/ShareHelper.ts","file:///app/packages/libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx","file:///app/packages/libs/shared/src/hooks/UseBatchFetch.ts","file:///app/packages/libs/shared/src/utils/AnalyticsRouteHelper.ts","file:///app/packages/libs/shared/src/utils/GroupHelper.ts","file:///app/packages/projects/lite/src/apps/share/components/shares-header/SharesHeader.tsx","file:///app/packages/libs/shared/src/apps/share/components/shared-by-me/empty-state/SharedByMeEmptyState.tsx","file:///app/packages/libs/shared/src/apps/share/components/shared-by-me/share-status-indicator/share-status-indicator.scss","file:///app/packages/libs/shared/src/apps/share/components/shared-by-me/share-status-indicator/ShareStatusIndicator.tsx","file:///app/packages/libs/shared/src/apps/share/components/shared-to-avatar-list/shared-to-avatar-list.scss","file:///app/packages/libs/shared/src/apps/share/components/shared-to-avatar-list/SharedToAvatarList.tsx","file:///app/packages/libs/shared/src/apps/share/components/shared-by-me/table/SharedByMeTableUtils.tsx","file:///app/packages/libs/shared/src/apps/share/components/shared-by-me/table/SharedByMeTable.tsx","file:///app/packages/projects/lite/src/apps/share/views/shared-by-me/partial-loading/partial-shared-by-me-table.scss","file:///app/packages/projects/lite/src/apps/share/views/shared-by-me/partial-loading/PartialSharedByMeTable.tsx","file:///app/packages/projects/lite/src/apps/share/views/shared-by-me/SharedByMeViewUtils.tsx","file:///app/packages/projects/lite/src/apps/share/views/shared-by-me/SharedByMeView.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/pill-tab-selector.scss","file:///app/node_modules/timeago.js/esm/lang/en_US.js","file:///app/node_modules/timeago.js/esm/lang/zh_CN.js","file:///app/node_modules/timeago.js/esm/register.js","file:///app/node_modules/timeago.js/esm/utils/date.js","file:///app/node_modules/timeago.js/esm/format.js","file:///app/node_modules/timeago.js/esm/index.js"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"thumbnailFallbackSvg\":\"D4JFs\",\"posterFallbackSvg\":\"bjUWl\",\"coverFallbackSvg\":\"kdLpt\"};","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { ShareViewHelper } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { ImageSize, ImageType } from 'libs/shared/enums/Images';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { BaseObject, Image } from 'libs/shared/interfaces';\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\nimport { ImageHelper, ImageOptions } from 'libs/shared/utils/ImageHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport styles from './shared-object-image.scss';\n\nconst BASE_IMAGE_CLASS_NAME = 'rounded overflow-hidden';\n\ninterface ImageProps {\n image: Image;\n imageType: ImageType;\n imageClassName?: string;\n imageFallbackComponent: JSX.Element;\n}\n\nfunction getImageProps(object: BaseObject): ImageProps {\n const image = ImageHelper.getDisplayImageFromObject(object);\n\n if (VideoHelper.isVideoType(object))\n return {\n image,\n imageType: ImageType.Thumbnails,\n imageClassName: BASE_IMAGE_CLASS_NAME,\n imageFallbackComponent: <ImageFallback type={ImageFallbackType.Video} />\n };\n\n switch (object.typeId) {\n case MasterType.Series:\n return {\n image,\n imageType: ImageType.TallPosters,\n imageClassName: BASE_IMAGE_CLASS_NAME,\n imageFallbackComponent:\n <ImageFallback type={ImageFallbackType.Series} svgContainerClassName={styles.posterFallbackSvg} />\n };\n\n case MasterType.Playlist:\n return {\n image,\n imageType: ImageType.Covers,\n imageClassName: !image?.url\n ? `${BASE_IMAGE_CLASS_NAME} ${getBgColorClass(object.name, BG_COLOUR_CLASS_NAMES)}`\n : BASE_IMAGE_CLASS_NAME,\n imageFallbackComponent: (\n <ImageFallback\n type={ImageFallbackType.Playlist}\n svgContainerClassName={image?.url ? styles.coverFallbackSvg : 'd-none'}\n extraClasses={!image?.url && 'bg-transparent'}\n />\n )\n };\n }\n}\n\nfunction getImageRatio(object: BaseObject): ImageFallbackType {\n if (VideoHelper.isVideoType(object))\n return 16 / 9;\n\n if (object.typeId === MasterType.Playlist)\n return 1;\n\n if (object.typeId === MasterType.Series)\n return 9 / 16;\n}\n\ninterface SharedObjectImageProps {\n object: BaseObject;\n locationContext: LocationContext;\n appLink?: Core.AppLink;\n showVideoMetadata?: boolean;\n fixedHeight?: boolean;\n}\n\nexport function SharedObjectImage(props: SharedObjectImageProps): JSX.Element {\n const ref = React.useCallback((el: HTMLDivElement) => {\n if (!el || !props.fixedHeight)\n return;\n\n el.style.width = `${el.offsetHeight * getImageRatio(props.object)}px`;\n }, []);\n\n const imageOptions: ImageOptions = { size: ImageSize.Small };\n\n const {\n image,\n imageType,\n imageClassName,\n imageFallbackComponent\n } = getImageProps(props.object);\n\n const useVideoThumbnail = VideoHelper.isVideoType(props.object) && !!props.showVideoMetadata;\n\n return (\n <div className='d-flex align-items-center justify-content-center w-100 h-100'>\n <div ref={ref} className={props.fixedHeight ? 'h-100' : 'w-100'}>\n {useVideoThumbnail &&\n <VideoThumbnail\n video={props.object}\n imageOptions={imageOptions}\n textPosition={ThumbnailTextPosition.Independent}\n type='cosmetic'\n appLink={props.appLink}\n analyticsOptions={{ location: props.locationContext }}\n hideDuration\n hideMask\n size='sm'\n />\n }\n {!useVideoThumbnail &&\n <BaseImage\n data={image?.url}\n imageType={imageType}\n imageOptions={imageOptions}\n appLink={props.appLink}\n className={imageClassName}\n analyticsData={{\n id: props.object.id,\n name: props.object.name\n }}\n analyticsOptions={{\n entity: ShareViewHelper.getAnalyticsEntity(props.object.type),\n actionType: UserAction.Click,\n location: props.locationContext\n }}\n >\n {imageFallbackComponent}\n </BaseImage>\n }\n </div>\n </div>\n );\n}","import { TableTheme } from 'libs/shared/components/table/Table';\n\nexport const SHARES_TABLE_THEME: TableTheme = {\n table: 'striped-list no-full-width pb-3',\n header: 'fw-semibold pb-1',\n headerCell: `py-2 ps-2 text-nowrap`,\n row: 'striped-row rounded',\n cell: 'd-flex align-items-center p-2'\n};","import { format } from 'timeago.js';\n\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { CheckMarkStatus } from 'libs/shared/components/check-mark-button/CheckMarkButton';\nimport { ShareActivityStatus } from 'libs/shared/enums/ShareActivityStatus';\n\ninterface ObjectWithDateShared {\n dateShared: string;\n}\n\ntype GroupedByDate<T extends ObjectWithDateShared> = { [date: string]: T[] };\n\nexport const ShareHelper = {\n groupByDateShared<T extends ObjectWithDateShared>(data: T[]): GroupedByDate<T> {\n const dateToObjectMapping: GroupedByDate<T> = ArrayHelper.groupBy(data, 'dateShared');\n\n const sortedDates = Object.keys(dateToObjectMapping).sort().reverse();\n\n // Create a sorted mapping between dates and the \"ObjectWithDateShared\" objects\n return sortedDates.reduce((acc: GroupedByDate<T>, date) => {\n const heading = format(date);\n\n if (!acc[heading])\n acc[heading] = [];\n\n acc[heading] = acc[heading].concat(dateToObjectMapping[date]);\n return acc;\n }, {});\n },\n\n mapActivityStatusToCheckMarkStatus(activityStatus: ShareActivityStatus): CheckMarkStatus {\n switch (activityStatus) {\n case ShareActivityStatus.Complete:\n return CheckMarkStatus.Complete;\n case ShareActivityStatus.Incomplete:\n return CheckMarkStatus.Incomplete;\n case ShareActivityStatus.None:\n return CheckMarkStatus.None;\n }\n },\n\n mapCheckMarkStatusToActivityStatus(checkMarkStatus: CheckMarkStatus): ShareActivityStatus {\n switch (checkMarkStatus) {\n case CheckMarkStatus.Complete:\n return ShareActivityStatus.Complete;\n case CheckMarkStatus.Incomplete:\n return ShareActivityStatus.Incomplete;\n case CheckMarkStatus.None:\n return ShareActivityStatus.None;\n }\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","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { Flight } from 'libs/common/flight';\nimport { ApplicationState, HashObject } from 'libs/common/react/interfaces';\n\nimport { BaseObject } from 'libs/shared/interfaces';\n\nexport interface UseBatchFetchResult<T extends BaseObject> {\n items: { [key: string]: T} | null;\n isFetching: boolean;\n}\n\n/**\n * Used to fetch multiple items by id with Flight. Will fetch 25 items at a time firing off multiple\n * requests if there are more than 25 items.\n * This will return items as null until we have all our items. Items will be returned as an object with\n * their ids as they key for easy mapping\n * \n * @param itemIds \n * @param getRequest \n */\nexport function useBatchFetch<T extends BaseObject>(\n itemIds: string[],\n getRequest: (ids: string[]) => Flight.Request\n): UseBatchFetchResult<T> {\n const [ idBatches, setIdBatches ] = React.useState<string[][]>([]);\n\n React.useEffect(() => {\n if (!itemIds?.length)\n return;\n\n const newBatches = [...idBatches];\n newBatches.push([]);\n\n itemIds.forEach(id => {\n if (newBatches.find(batch => batch.find(_id => _id === id)))\n return;\n\n newBatches[newBatches.length - 1].push(id);\n });\n\n setIdBatches(newBatches.filter(batch => batch.length));\n }, [itemIds ? itemIds.join(',') : null]);\n\n const dispatch = useDispatch();\n\n const state = useSelector((state: ApplicationState) => state);\n\n React.useEffect(() => {\n idBatches.forEach(idBatch => {\n const request = getRequest(idBatch);\n const response = Flight.getResponse<T[]>(state, request.key);\n\n if (response.shouldFetch)\n Flight.fetch(dispatch, request);\n });\n }, [idBatches?.length]);\n\n if (!idBatches?.length)\n return { items: null, isFetching: false };\n \n const items: { [key: string]: T} = {};\n\n /* Used locally to only return our items if we've fetched all of them */\n const responses: HashObject<Flight.Response<T[]>> = {};\n \n idBatches.forEach((idBatch, i) => {\n const request = getRequest(idBatch);\n const response = Flight.getResponse<T[]>(state, request.key);\n responses[i] = response;\n\n if (response.data)\n response.data.forEach(v => items[v.id] = v);\n });\n\n return {\n items: Object.keys(responses).some(k => !!responses[k].data) ? items : null,\n isFetching: !!Object.keys(responses).some(k => responses[k].isFetching)\n };\n}","import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\n\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { BaseObject, Config } from 'libs/shared/interfaces';\n\nexport const AnalyticsRouteHelper = {\n getObjectUrl(config: Config, object: BaseObject): string {\n const baseUrl = config.analyticsWebUrl;\n\n if (!baseUrl)\n return;\n\n let relativeUrl = '';\n\n switch (object.typeId) {\n case MasterType.Video:\n relativeUrl = `/videos/${object.id}/overview`;\n break;\n\n case MasterType.Clip:\n relativeUrl = `/clips/${object.id}/overview`;\n break;\n\n case MasterType.Interactive:\n relativeUrl = `/interactives/${object.id}/overview`;\n break;\n }\n\n if (!relativeUrl)\n return;\n\n return UrlHelper.safeUrlConcat(baseUrl, relativeUrl);\n }\n};","import { ButtonProps } from 'react-bootstrap';\n\nimport { ClassroomGroupColour } from 'libs/shared/interfaces';\n\nexport function mapColourToBsVariant(groupColour: ClassroomGroupColour): ButtonProps['variant'] {\n switch (groupColour) {\n case ClassroomGroupColour.Pink:\n return 'pink';\n case ClassroomGroupColour.Orange:\n return 'orange';\n case ClassroomGroupColour.Green:\n return 'green';\n case ClassroomGroupColour.Blue:\n return 'blue';\n case ClassroomGroupColour.Purple:\n return 'purple';\n case ClassroomGroupColour.Indigo:\n return 'indigo';\n default:\n return 'pink';\n }\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { PillTab, PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\nimport { ContextService } from 'libs/shared/services/ContextService';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'share.sharesHeader';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst SHARED_BY_ME_APP_LINK = { application: AppChannels.MY_SHARES, action: Actions.MyShares.SHARED_BY_ME };\nconst SHARED_WITH_ME_APP_LINK = { application: AppChannels.MY_SHARES, action: Actions.MyShares.SHARED_WITH_ME };\n\nfunction getPillTabs(): PillTab[] {\n const currentAppLink = ContextService.getCurrentRoute()?.appLink;\n\n return [\n {\n name: getPhrase('sharedByMe'),\n onSelect: () => Core.AppLinkHelper.trigger(SHARED_BY_ME_APP_LINK),\n active: currentAppLink?.action === SHARED_BY_ME_APP_LINK.action\n },\n {\n name: getPhrase('sharedWithMe'),\n onSelect: () => Core.AppLinkHelper.trigger(SHARED_WITH_ME_APP_LINK),\n active: currentAppLink?.action === SHARED_WITH_ME_APP_LINK.action\n }\n ];\n}\n\nexport function SharesHeader(): JSX.Element {\n return (\n <div className='pb-3'>\n <h1 className='h2 mb-3'>{getPhrase('shares')}</h1>\n <PillTabSelector tabs={getPillTabs()} />\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\n\nconst namespace = 'share.sharedByMeEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface SharedByMeEmptyStateProps {\n imageUrl: string;\n appLink?: Core.AppLink;\n useInteractiveCopy?: boolean;\n}\n\nexport function SharedByMeEmptyState(props: SharedByMeEmptyStateProps): JSX.Element {\n return (\n <EmptyState>\n <EmptyState.Image src={props.imageUrl} size='small'/>\n <EmptyState.Heading>\n {getPhrase(props.useInteractiveCopy ? 'interactivesHeading' : 'genericHeading')}\n </EmptyState.Heading>\n <EmptyState.Info>{getPhrase(props.useInteractiveCopy ? 'interactivesInfo' : 'genericInfo')}</EmptyState.Info>\n {!!props.appLink &&\n <EmptyState.Cta appLink={props.appLink} text={getPhrase('cta')} />\n }\n </EmptyState>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"indicatorContainer\":\"T6YAv\",\"indicator\":\"_MRHG\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { ShareLinkStatus } from 'libs/shared/enums/ShareLinkStatus';\nimport { ShareType } from 'libs/shared/enums/ShareType';\nimport { UnionShareObject } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './share-status-indicator.scss';\n\nconst namespace = 'share.shareStatusIndicator';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getStatusPhrase(share: UnionShareObject): string {\n if (share.type === ShareType.DirectShare)\n return getPhrase('active');\n\n switch (share.status) {\n case ShareLinkStatus.Active:\n return getPhrase('active');\n\n case ShareLinkStatus.Expired:\n return getPhrase('expired');\n }\n}\n\nfunction getBgColourClassName(share: UnionShareObject): string {\n if (share.type === ShareType.DirectShare)\n return 'bg-success';\n \n switch (share.status) {\n case ShareLinkStatus.Active:\n return 'bg-success';\n\n case ShareLinkStatus.Expired:\n return 'bg-secondary';\n }\n}\n\ninterface ShareStatusIndicatorProps {\n share: UnionShareObject;\n}\n\n/**\n * TODO: add support for deleted share links (currently the api doesn't return these.)\n */\nexport function ShareStatusIndicator(props: ShareStatusIndicatorProps): JSX.Element {\n if (props.share.type === ShareType.DirectShare && !props.share.recipients?.length)\n return <></>;\n\n if (props.share.type === ShareType.ShareLink && props.share.isPasswordProtected) {\n return (\n <Tooltip title={getPhrase('passwordProtected')} spanHack>\n <SvgContainer svgName={cvSvgLibrary.Lock} size={SvgContainerSize.Small} />\n </Tooltip>\n );\n }\n\n return (\n <Tooltip\n title={getStatusPhrase(props.share)}\n spanHack\n spanHackClassName={styles.indicatorContainer}\n >\n <div className={`${styles.indicator} ${getBgColourClassName(props.share)}`} />\n </Tooltip>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"avatarContainer\":\"ByxQa\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { AvatarItemProps, AvatarList } from 'libs/shared/components/avatar-list/AvatarList';\nimport { IconCircle } from 'libs/shared/components/icon-circle/IconCircle';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { BaseObject, Classroom, ClassroomGroup, User } from 'libs/shared/interfaces';\nimport { mapColourToBsVariant } from 'libs/shared/utils/GroupHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport styles from './shared-to-avatar-list.scss';\n\nconst namespace = 'reportsShare.sharedToAvatarList';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getHiddenRecipientText(hiddenRecipients: BaseObject[]): string {\n const counts = ArrayHelper.countBy(hiddenRecipients, 'typeId');\n const userCount = counts[MasterType.User];\n const classroomCount = counts[MasterType.Classroom];\n const groupCount = counts[MasterType.ClassroomGroup];\n\n if (userCount && classroomCount && groupCount)\n return getPhrase('classroomsGroupsAndUsers', { userCount, classroomCount, groupCount });\n\n if (userCount && classroomCount)\n return getPhrase('classroomsAndUsers', { userCount, classroomCount });\n\n if (userCount && groupCount)\n return getPhrase('groupsAndUsers', { userCount, groupCount });\n\n if (classroomCount && groupCount)\n return getPhrase('classroomsAndGroups', { classroomCount, groupCount });\n\n if (userCount)\n return getPhrase('users', { userCount });\n\n if (classroomCount)\n return getPhrase('classrooms', { classroomCount });\n\n if (groupCount)\n return getPhrase('groups', { groupCount });\n}\n\nfunction SharedToAvatar(props: AvatarItemProps): JSX.Element {\n const user: User = props.item?.typeId === MasterType.User && props.item as User;\n const classroom: Classroom = props.item?.typeId === MasterType.Classroom && props.item as Classroom;\n const classroomGroup: ClassroomGroup = props.item?.typeId === MasterType.ClassroomGroup\n && props.item as ClassroomGroup;\n\n const svgContainerClassName = 'd-flex justify-content-center align-items-center text-white rounded-circle h-100 w-100';\n\n return (\n <div className={`${styles.avatarContainer} position-relative d-inline-block`}>\n <div\n className={`${styles.avatarWrapper} position-absolute w-100 h-100 bg-white rounded-circle`}\n style={{ left: `${props.index * -15}%`, zIndex: props.maxAvatars - props.index }}\n >\n {!!user &&\n <Tooltip title={`${user.name} ${user.surname}`} spanHack spanHackClassName='h-100 w-100'>\n <Avatar\n imageUrl={user.avatar?.url}\n imageCdnUrl={props.imageCdnUrl}\n initials={UserHelper.getInitials(user.name, user.surname)}\n />\n </Tooltip>\n }\n {!!classroom &&\n <Tooltip title={classroom.name} spanHack spanHackClassName='h-100 w-100'>\n <div className={svgContainerClassName}>\n <IconCircle\n svgName={cvSvgLibrary.Classrooms}\n svgSize={SvgContainerSize.Large}\n variant='teal'\n />\n </div>\n </Tooltip>\n }\n {!!classroomGroup &&\n <Tooltip title={classroomGroup.name} spanHack spanHackClassName='h-100 w-100'>\n <div className={svgContainerClassName}>\n <IconCircle\n svgName={cvSvgLibrary.Group}\n variant={mapColourToBsVariant(classroomGroup.metadata?.colour)}\n />\n </div>\n </Tooltip>\n }\n </div>\n </div>\n );\n}\n\nexport function AnonymousSharedToAvatar(): JSX.Element {\n return (\n <div className={styles.avatarContainer}>\n <Tooltip\n title={getPhrase('anonymous')}\n spanHack\n spanHackClassName='bg-light text-dark d-flex justify-content-center align-items-center rounded-circle h-100 w-100'\n >\n <SvgContainer svgName={cvSvgLibrary.Anonymous} />\n </Tooltip>\n </div>\n );\n}\n\nexport function SharedLinkAvatar(): JSX.Element {\n return (\n <div className={styles.avatarContainer}>\n <Tooltip\n title={getPhrase('sharedLink')}\n spanHack\n spanHackClassName='bg-light text-dark d-flex justify-content-center align-items-center rounded-circle h-100 w-100'\n >\n <SvgContainer svgName={cvSvgLibrary.Link} />\n </Tooltip>\n </div>\n );\n}\n\ninterface SharedToAvatarListProps {\n recipients: BaseObject[];\n imageCdnUrl: string;\n maxAvatars?: number;\n}\n\nSharedToAvatarList.defaultProps = {\n maxAvatars: 5\n};\n\nexport function SharedToAvatarList(props: SharedToAvatarListProps): JSX.Element {\n return (\n <div>\n <AvatarList\n {...props}\n items={props.recipients}\n avatarItem={SharedToAvatar}\n avatarContainerClassname={styles.avatarContainer}\n getHiddenTooltip={getHiddenRecipientText}\n />\n </div>\n );\n}","import React from 'react';\nimport { Column } from 'react-table';\nimport { format as formatDate } from 'timeago.js';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport {\n ShareStatusIndicator\n} from 'libs/shared/apps/share/components/shared-by-me/share-status-indicator/ShareStatusIndicator';\nimport { SharedObjectImage } from 'libs/shared/apps/share/components/shared-object-image/SharedObjectImage';\nimport {\n AnonymousSharedToAvatar,\n SharedLinkAvatar,\n SharedToAvatarList\n} from 'libs/shared/apps/share/components/shared-to-avatar-list/SharedToAvatarList';\nimport { ShareHelper } from 'libs/shared/apps/share/utils/ShareHelper';\nimport { SharableEntity, ShareViewHelper } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ShareType } from 'libs/shared/enums/ShareType';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { BaseObject, UnionShareObject } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nconst namespace = 'share.sharedByMeTable';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getDateShared(share: UnionShareObject): string {\n if (share.type === ShareType.ShareLink || !share?.recipients?.length)\n return share.dateCreated;\n\n const datesShared = share.recipients.map(r => r.dateShared);\n\n datesShared.sort((date1, date2) => {\n if (DateHelper.isSame(date1, date2))\n return 0;\n\n return DateHelper.isAfter(date1, date2) ? 1 : -2;\n });\n\n\n if (!datesShared.length)\n return '';\n\n return ArrayHelper.last(datesShared);\n}\n\ninterface SharedByMeTableData {\n share: UnionShareObject;\n sharedObject: SharableEntity;\n dateShared: string;\n shareRecipients?: BaseObject[];\n viewCount: number;\n}\n\ntype TableDataGroupings = { [date: string]: SharedByMeTableData[] };\n\nexport function getColumns(\n index: number,\n dateHeading: string,\n getObjectAppLink: (object: BaseObject) => Core.AppLink,\n getObjectActions: (object: BaseObject) => ActionOptions[],\n imageCdnUrl: string,\n showStatus?: boolean,\n showViewCount?: boolean,\n breakpoints?: Breakpoints\n): Column<SharedByMeTableData>[] {\n const isMobile = breakpoints && (breakpoints.xs || breakpoints.sm);\n\n const columns: Column<SharedByMeTableData>[] = [\n {\n Header: showStatus ? '' : dateHeading,\n accessor: 'sharedObject',\n id: 'image',\n Cell: ({ value }) => (\n <div className='w-100'>\n <SharedObjectImage\n object={value}\n appLink={getObjectAppLink(value)}\n showVideoMetadata\n locationContext={LocationContext.SharedByMe}\n />\n </div>\n ),\n minWidth: 140,\n maxWidth: 30\n },\n {\n accessor: 'sharedObject',\n id: 'name',\n Cell: ({ value }) => {\n if (value.name) {\n if (VideoHelper.isVideoType(value) && !VideoHelper.getCanBeConsumed(value)?.canNavigate) {\n return (\n <span className='clamp-2'>\n {value.name}\n </span>\n );\n }\n\n return (\n <AppLink\n appLink={getObjectAppLink(value)}\n className='clamp-2'\n analyticsData={{ id: value.id, name: value.name }}\n analyticsOptions={{\n entity: ShareViewHelper.getAnalyticsEntity(value.type),\n actionType: UserAction.Click,\n location: LocationContext.SharedByMe\n }}\n >\n {value.name}\n </AppLink>\n );\n }\n\n return <span><Text namespace={namespace} phrase='videoUnavailable' /></span>;\n },\n width: 60\n },\n {\n Header: index === 0 ? getPhrase('sharedTo') : '',\n accessor: 'shareRecipients',\n Cell: ({ value }) => {\n if (!value)\n return <SharedLinkAvatar />;\n\n if (!value.length)\n return <AnonymousSharedToAvatar />;\n\n return <SharedToAvatarList recipients={value} imageCdnUrl={imageCdnUrl} maxAvatars={isMobile ? 1 : 2} />;\n },\n width: 40\n },\n !isMobile && {\n Header: index === 0 ? getPhrase('shared') : '',\n id: 'dateShared',\n accessor: s => formatDate(s.dateShared),\n width: 40\n },\n {\n accessor: 'sharedObject',\n id: 'actions',\n Cell: ({ value }) => (\n <Actions\n actions={getObjectActions(value)}\n className='w-100 justify-content-end pe-2'\n />\n ),\n width: 20\n }\n ];\n\n const statusColumn: Column<SharedByMeTableData> = {\n Header: dateHeading,\n accessor: 'share',\n id: 'status',\n Cell: ({ value }) => (\n <ShareStatusIndicator share={value} />\n ),\n width: 5\n };\n\n const viewCountColumn: Column<SharedByMeTableData> = {\n Header: getPhrase('views'),\n accessor: 'viewCount',\n width: 30\n };\n\n if (showStatus)\n columns.splice(0, 0, statusColumn);\n\n if (showViewCount)\n columns.splice(columns.length - 1, 0, viewCountColumn);\n \n return columns.filter((Boolean));\n}\n\nexport function useGetData(\n sentShares: UnionShareObject[],\n sharedObjects: BaseObject[],\n shareRecipients: BaseObject[],\n groupByDate: boolean,\n refreshTable: boolean\n): TableDataGroupings {\n return React.useMemo(() => {\n const tableData: SharedByMeTableData[] = [];\n\n sentShares.forEach(s => {\n const sharedObject = sharedObjects.find(o => o.id === s.objectId);\n\n let recipients: BaseObject[] | null = null;\n\n if (s.type === ShareType.DirectShare) {\n recipients = [];\n\n s.recipients?.forEach(r => {\n const recipient = shareRecipients.find(s => s.id === r.id);\n\n if (recipient)\n recipients.push(recipient);\n });\n }\n\n // Skip if we don't have access to the shared object (e.g. if it's been deleted)\n if (sharedObject)\n tableData.push({\n share: s,\n sharedObject,\n shareRecipients: recipients,\n dateShared: getDateShared(s),\n viewCount: s.viewCount ?? 0\n });\n });\n\n if (!groupByDate)\n return { [getPhrase('title')]: tableData };\n\n return ShareHelper.groupByDateShared(tableData);\n }, [refreshTable]);\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { SHARES_TABLE_THEME } from 'libs/shared/apps/share/constants/TableTheme';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { Table } from 'libs/shared/components/table/Table';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { BaseObject, UnionShareObject } from 'libs/shared/interfaces';\n\nimport { getColumns, useGetData } from './SharedByMeTableUtils';\n\ninterface SharedByMeTableProps {\n sentShares: UnionShareObject[];\n sharedObjects: BaseObject[];\n shareRecipients: BaseObject[];\n getObjectAppLink: (object: BaseObject) => Core.AppLink;\n getObjectActions: (object: BaseObject) => ActionOptions[];\n imageCdnUrl: string;\n groupByDateShared?: boolean;\n showStatus?: boolean;\n showViewCount?: boolean;\n refreshTable?: boolean;\n breakpoints?: Breakpoints;\n}\n\nfunction SharedByMeTableMemo(props: SharedByMeTableProps): JSX.Element {\n const data = useGetData(\n props.sentShares,\n props.sharedObjects,\n props.shareRecipients,\n !!props.groupByDateShared,\n !!props.refreshTable\n );\n\n return (\n <>\n {Object.keys(data).map((heading, index) => (\n <Table\n key={index}\n columns={getColumns(\n index,\n heading,\n props.getObjectAppLink,\n props.getObjectActions,\n props.imageCdnUrl,\n props.showStatus,\n props.showViewCount,\n props.breakpoints\n )}\n data={data[heading]}\n theme={SHARES_TABLE_THEME}\n />\n ))}\n </>\n );\n}\n\nexport const SharedByMeTable = React.memo(SharedByMeTableMemo);","// extracted by mini-css-extract-plugin\nexport default {\"imageColumn\":\"uIOaA\",\"nameColumn\":\"Nta2B\",\"sharedToColumn\":\"XTJBC\",\"dateSharedColumn\":\"HdARK\",\"actionsColumn\":\"DXyZw\",\"heading\":\"XZ6o7\",\"image\":\"MolfU\",\"name\":\"MM43m\",\"avatar\":\"EboYM\",\"date\":\"by_XM\",\"actions\":\"_S2M_\"};","import React from 'react';\n\nimport styles from './partial-shared-by-me-table.scss';\n\nfunction PartialRow(): JSX.Element {\n return (\n <div className={`d-flex striped-row rounded`}>\n <div className={`d-flex align-items-center justify-content-center p-2 ${styles.imageColumn}`}>\n <div className={`partial-loading-background rounded w-100 ${styles.image}`} />\n </div>\n <div className={`d-flex align-items-center p-2 ${styles.nameColumn}`}>\n <div className={`partial-loading-background w-75 ${styles.name}`} />\n </div>\n <div className={`d-flex align-items-center p-2 ${styles.sharedToColumn}`}>\n <div className={`partial-loading-background ${styles.avatar}`} />\n </div>\n <div className={`d-none d-md-flex align-items-center p-2 ${styles.dateSharedColumn}`}>\n <div className={`partial-loading-background ${styles.date}`} />\n </div>\n <div className={`d-flex align-items-center justify-content-end p-2 ${styles.actionsColumn}`}>\n <div className={`partial-loading-background rounded me-2 ${styles.actions}`} />\n </div>\n </div>\n );\n}\n\ninterface PartialHeaderProps {\n fullHeader?: boolean;\n}\n\nfunction PartialHeader(props: PartialHeaderProps): JSX.Element {\n return (\n <div className='d-flex mb-1'>\n <div className={`${styles.imageColumn} p-2`}>\n <div className={`partial-loading-background ${styles.heading}`} />\n </div>\n <div className={`${styles.nameColumn} p-2`}>\n &nbsp;\n </div>\n <div className={`${styles.sharedToColumn} p-2`}>\n {props.fullHeader\n ? <div className={`partial-loading-background ${styles.heading}`} />\n : <>&nbsp;</>\n }\n </div>\n <div className={`${styles.dateSharedColumn} p-2 d-none d-md-flex`}>\n {props.fullHeader\n ? <div className={`partial-loading-background ${styles.heading}`} />\n : <>&nbsp;</>\n }\n </div>\n <div className={`${styles.actionsColumn} p-2`}>\n &nbsp;\n </div>\n </div>\n );\n}\n\nexport function PartialSharedByMeTable(): JSX.Element {\n return (\n <>\n <div className='mb-3'>\n <PartialHeader fullHeader />\n\n <div className='striped-list no-full-width'>\n <PartialRow />\n <PartialRow />\n <PartialRow />\n </div>\n </div>\n\n <div className='mb-3'>\n <PartialHeader />\n\n <div className='striped-list no-full-width'>\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n </div>\n </div>\n\n <div className='mb-3'>\n <PartialHeader />\n\n <div className='striped-list no-full-width'>\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n </div>\n </div>\n </>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { SharableEntityType } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ShareType } from 'libs/shared/enums/ShareType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UseBatchFetchResult } from 'libs/shared/hooks/UseBatchFetch';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { BaseObject, Config, DirectShare, Series, UnionShareObject } from 'libs/shared/interfaces';\nimport { AnalyticsRouteHelper } from 'libs/shared/utils/AnalyticsRouteHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nconst namespace = 'liteShare.sharedByMe';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getDirectShares(sentShares: UnionShareObject[]): DirectShare[] {\n return sentShares?.filter(s => s.type === ShareType.DirectShare) as DirectShare[] ?? [];\n}\n\nexport function getRecipientIds(sentShares: UnionShareObject[]): string[] {\n return ArrayHelper.uniq(ArrayHelper.flatten(getDirectShares(sentShares).map(d => d.recipients ?? [])), 'id').map(r => r.id);\n}\n\nexport function getBatchFetchResultAsArray(result: UseBatchFetchResult<BaseObject>): BaseObject[] {\n return result.items ? Object.values(result.items) : [];\n}\n\nexport function getObjectAppLink(object: BaseObject): Core.AppLink {\n if (VideoHelper.isInteractive(object)) {\n return {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.VIEW_INTERACTIVE,\n args: [ object.id, TextHelper.slugify(object.name) ]\n };\n }\n\n if (VideoHelper.isClip(object)) {\n return {\n application: AppChannels.CLIPS,\n action: Actions.Clips.PLAY_CLIP,\n args: [ object.id, TextHelper.slugify(object.name) ]\n };\n }\n\n if (VideoHelper.isVideo(object)) {\n return {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PLAY_VIDEO,\n args: [ object.id, TextHelper.slugify(object.name) ]\n };\n }\n\n if (object.typeId === MasterType.Playlist) {\n return {\n application: AppChannels.PLAYLISTS,\n action: Actions.Playlists.PLAYLIST,\n args: [ object.id, TextHelper.slugify(object.name) ]\n };\n }\n\n if (object.typeId === MasterType.Series) {\n return SeriesAppLinkHelper.getSeriesAppLink(object as Series);\n }\n}\n\nfunction getShareActionOptions(sharedObject: BaseObject, entityType: SharableEntityType): ActionOptions {\n return {\n label: getPhrase('editShareSettings'),\n appLink: {\n application: AppChannels.DEFAULT,\n action: Actions.Default.SHARE,\n args: [sharedObject.id],\n params: { entityType }\n }\n };\n}\n\ninterface SeeUsageActionProps {\n label: string;\n url?: string;\n}\n\nfunction SeeUsageAction(props: SeeUsageActionProps): JSX.Element {\n return (\n <Tooltip title={props.label} spanHack>\n <a\n href={props.url}\n target='_blank'\n >\n <SvgContainer svgName={cvSvgLibrary.Chart} />\n </a>\n </Tooltip>\n );\n}\n\nfunction getSharedObjectActions(sharedObject: BaseObject, config: Config, isMobile: boolean): ActionOptions[] {\n let entityType: SharableEntityType;\n let seeUsagePhrase = 'viewUsage';\n\n if (VideoHelper.isVideo(sharedObject))\n entityType = 'video';\n\n if (VideoHelper.isInteractive(sharedObject)) {\n entityType = 'interactive';\n seeUsagePhrase = 'viewResults';\n }\n\n if (VideoHelper.isClip(sharedObject))\n entityType = 'clip';\n\n if (sharedObject.typeId === MasterType.Series)\n entityType = 'series';\n\n if (sharedObject.typeId === MasterType.Playlist)\n entityType = 'playlist';\n\n if (VideoHelper.isVideoType(sharedObject)) {\n const { canConsume } = VideoHelper.getCanBeConsumed(sharedObject);\n\n if (!canConsume)\n return [];\n }\n \n const sharedObjectActions = [getShareActionOptions(sharedObject, entityType)];\n\n const objectUrl = AnalyticsRouteHelper.getObjectUrl(config, sharedObject);\n if (objectUrl)\n sharedObjectActions.push({\n label: !isMobile\n ? () => <SeeUsageAction label={getPhrase(seeUsagePhrase)} url={objectUrl} />\n : getPhrase(seeUsagePhrase),\n className: 'btn btn-link',\n button: !isMobile,\n href: objectUrl,\n openInNewTab: true\n });\n\n return sharedObjectActions;\n}\n\nexport function useGetSharedObjectActions(breakpoints: Breakpoints): ((object: BaseObject) => ActionOptions[]) | null {\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const isMobile = breakpoints.xs || breakpoints.sm;\n\n return React.useCallback((object: BaseObject) => getSharedObjectActions(object, config.data, isMobile), [isMobile]);\n}\n\n/**\n * As we are displaying data in an infinite list, we only want to show partial loading\n * on the initial fetch.\n * Whenever a new page is fetched, `sharedObjects.data` and `recipients.data` will be `undefined`,\n * as their key will change. So instead of using those values to determine whether or not to\n * show partial loading, we save the first time that they load in state and then use that.\n */\nexport function usePartialLoading(\n sentShare: UnionShareObject[],\n hasFetchedSharedObjects: boolean,\n recipientIds: string[],\n hasFetchedRecipients: boolean,\n config: Flight.Response<Config>\n): boolean {\n const [ initialSharedObjectsLoaded, setInitialSharedObjectsLoaded ] = React.useState(hasFetchedSharedObjects);\n const [ initialRecipientsLoaded, setInitialRecipientsLoaded ] = React.useState(hasFetchedRecipients);\n\n React.useEffect(() => {\n if (hasFetchedSharedObjects)\n setInitialSharedObjectsLoaded(true);\n }, [hasFetchedSharedObjects]);\n\n React.useEffect(() => {\n if (hasFetchedRecipients)\n setInitialRecipientsLoaded(true);\n }, [hasFetchedRecipients]);\n\n if (sentShare && !sentShare.length)\n return false;\n\n return !sentShare\n || !initialSharedObjectsLoaded\n || (recipientIds.length && !initialRecipientsLoaded)\n || !config.data;\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';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { SharedByMeEmptyState } from 'libs/shared/apps/share/components/shared-by-me/empty-state/SharedByMeEmptyState';\nimport { SharedByMeTable } from 'libs/shared/apps/share/components/shared-by-me/table/SharedByMeTable';\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useBatchFetch } from 'libs/shared/hooks/UseBatchFetch';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Config, CurrentUser, UnionShareObject } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { SharesHeader } from 'apps/share/components/shares-header/SharesHeader';\n\nimport { PartialSharedByMeTable } from './partial-loading/PartialSharedByMeTable';\nimport {\n getBatchFetchResultAsArray,\n getObjectAppLink,\n getRecipientIds,\n useGetSharedObjectActions,\n usePartialLoading\n} from './SharedByMeViewUtils';\n\nconst namespace = 'liteShare.sharedByMe';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function SharedByMeView(): JSX.Element {\n const dispatch = useDispatch();\n const breakpoints = useBreakpoints();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const getRequest = (cursor?: string) => ShareRequests.sentShare({ cursor });\n const fetchNext = (cursor?: string) => Flight.getFetch(dispatch)(getRequest(cursor));\n\n const {\n items: sentShares,\n hasMore,\n isFetching: isFetchingSentShares,\n nextCursor\n } = useInfiniteList<UnionShareObject>(getRequest, fetchNext);\n\n const sharedObjectIds = ArrayHelper.uniq(sentShares?.map(s => s.objectId) ?? []);\n\n const sharedObjectsFetchResult = useBatchFetch(sharedObjectIds, (ids: string[]) => {\n return ShareRequests.sharedObjectsById(ids);\n });\n\n const recipientIds = getRecipientIds(sentShares);\n\n const shareRecipientsFetchResult = useBatchFetch(recipientIds, (ids: string[]) => {\n return ShareRequests.getRecipientsById(ids, currentUser.data.customerId);\n });\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n \n useSetPageMetadata({ title: getPhrase('sharedByMe') });\n\n const getSharedObjectActions = useGetSharedObjectActions(breakpoints);\n\n const showPartialLoading = usePartialLoading(\n sentShares,\n !!sharedObjectsFetchResult.items,\n recipientIds,\n !!shareRecipientsFetchResult.items,\n config\n );\n\n // Wait until all data is fetched before telling the table to re-render\n const isFetching = isFetchingSentShares\n || sharedObjectsFetchResult.isFetching\n || shareRecipientsFetchResult.isFetching;\n\n const sentSharesMemo = React.useMemo(() => sentShares, [ !!sentShares, isFetching ]);\n const sharedObjects = React.useMemo(() =>\n getBatchFetchResultAsArray(sharedObjectsFetchResult), [ !!sharedObjectsFetchResult.items, isFetching ]);\n const shareRecipients = React.useMemo(() =>\n getBatchFetchResultAsArray(shareRecipientsFetchResult), [ !!shareRecipientsFetchResult.items, isFetching ]);\n\n return (\n <div className='px-3'>\n <SharesHeader />\n\n {(() => {\n if (showPartialLoading)\n return <PartialSharedByMeTable />;\n\n if (!sentShares.length)\n return (\n <SharedByMeEmptyState\n appLink={{ application: AppChannels.DASHBOARD, action: Actions.Dashboard.HOME }}\n imageUrl={ImageUrls.EmptyStates.Share.SHARED_WITH_ME}\n />\n );\n\n return (\n <>\n <SharedByMeTable\n sentShares={sentSharesMemo}\n sharedObjects={sharedObjects}\n shareRecipients={shareRecipients}\n getObjectAppLink={getObjectAppLink}\n getObjectActions={getSharedObjectActions}\n imageCdnUrl={config.data.imageCdnUrl}\n groupByDateShared\n refreshTable={isFetching}\n breakpoints={breakpoints}\n />\n {(hasMore || isFetching) &&\n <InfiniteScrollFooter isFetching={isFetching} fetchNext={fetchNext} nextCursor={nextCursor} />\n }\n </>\n );\n })()}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"pillTabSelector\":\"Hdi6o\",\"tab\":\"RvNxr\",\"minWidth\":\"GHSz9\",\"radiusSmall\":\"VhJJa\",\"tabLink\":\"WFyvo\"};","var EN_US = ['second', 'minute', 'hour', 'day', 'week', 'month', 'year'];\nexport default function (diff, idx) {\n if (idx === 0)\n return ['just now', 'right now'];\n var unit = EN_US[Math.floor(idx / 2)];\n if (diff > 1)\n unit += 's';\n return [diff + \" \" + unit + \" ago\", \"in \" + diff + \" \" + unit];\n}\n//# sourceMappingURL=en_US.js.map","var ZH_CN = ['秒', '分钟', '小时', '天', '周', '个月', '年'];\nexport default function (diff, idx) {\n if (idx === 0)\n return ['刚刚', '片刻后'];\n var unit = ZH_CN[~~(idx / 2)];\n return [diff + \" \" + unit + \"\\u524D\", diff + \" \" + unit + \"\\u540E\"];\n}\n//# sourceMappingURL=zh_CN.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\n/**\n * All supported locales\n */\nvar Locales = {};\n/**\n * register a locale\n * @param locale\n * @param func\n */\nexport var register = function (locale, func) {\n Locales[locale] = func;\n};\n/**\n * get a locale, default is en_US\n * @param locale\n * @returns {*}\n */\nexport var getLocale = function (locale) {\n return Locales[locale] || Locales['en_US'];\n};\n//# sourceMappingURL=register.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\nvar SEC_ARRAY = [\n 60,\n 60,\n 24,\n 7,\n 365 / 7 / 12,\n 12,\n];\n/**\n * format Date / string / timestamp to timestamp\n * @param input\n * @returns {*}\n */\nexport function toDate(input) {\n if (input instanceof Date)\n return input;\n // @ts-ignore\n if (!isNaN(input) || /^\\d+$/.test(input))\n return new Date(parseInt(input));\n input = (input || '')\n // @ts-ignore\n .trim()\n .replace(/\\.\\d+/, '') // remove milliseconds\n .replace(/-/, '/')\n .replace(/-/, '/')\n .replace(/(\\d)T(\\d)/, '$1 $2')\n .replace(/Z/, ' UTC') // 2017-2-5T3:57:52Z -> 2017-2-5 3:57:52UTC\n .replace(/([+-]\\d\\d):?(\\d\\d)/, ' $1$2'); // -04:00 -> -0400\n return new Date(input);\n}\n/**\n * format the diff second to *** time ago, with setting locale\n * @param diff\n * @param localeFunc\n * @returns\n */\nexport function formatDiff(diff, localeFunc) {\n /**\n * if locale is not exist, use defaultLocale.\n * if defaultLocale is not exist, use build-in `en`.\n * be sure of no error when locale is not exist.\n *\n * If `time in`, then 1\n * If `time ago`, then 0\n */\n var agoIn = diff < 0 ? 1 : 0;\n /**\n * Get absolute value of number (|diff| is non-negative) value of x\n * |diff| = diff if diff is positive\n * |diff| = -diff if diff is negative\n * |0| = 0\n */\n diff = Math.abs(diff);\n /**\n * Time in seconds\n */\n var totalSec = diff;\n /**\n * Unit of time\n */\n var idx = 0;\n for (; diff >= SEC_ARRAY[idx] && idx < SEC_ARRAY.length; idx++) {\n diff /= SEC_ARRAY[idx];\n }\n /**\n * Math.floor() is alternative of ~~\n *\n * The differences and bugs:\n * Math.floor(3.7) -> 4 but ~~3.7 -> 3\n * Math.floor(1559125440000.6) -> 1559125440000 but ~~1559125440000.6 -> 52311552\n *\n * More information about the performance of algebraic:\n * https://www.youtube.com/watch?v=65-RbBwZQdU\n */\n diff = Math.floor(diff);\n idx *= 2;\n if (diff > (idx === 0 ? 9 : 1))\n idx += 1;\n return localeFunc(diff, idx, totalSec)[agoIn].replace('%s', diff.toString());\n}\n/**\n * calculate the diff second between date to be formatted an now date.\n * @param date\n * @param relativeDate\n * @returns {number}\n */\nexport function diffSec(date, relativeDate) {\n var relDate = relativeDate ? toDate(relativeDate) : new Date();\n return (+relDate - +toDate(date)) / 1000;\n}\n/**\n * nextInterval: calculate the next interval time.\n * - diff: the diff sec between now and date to be formatted.\n *\n * What's the meaning?\n * diff = 61 then return 59\n * diff = 3601 (an hour + 1 second), then return 3599\n * make the interval with high performance.\n **/\nexport function nextInterval(diff) {\n var rst = 1, i = 0, d = Math.abs(diff);\n for (; diff >= SEC_ARRAY[i] && i < SEC_ARRAY.length; i++) {\n diff /= SEC_ARRAY[i];\n rst *= SEC_ARRAY[i];\n }\n d = d % rst;\n d = d ? rst - d : rst;\n return Math.ceil(d);\n}\n//# sourceMappingURL=date.js.map","import { formatDiff, diffSec } from './utils/date';\nimport { getLocale } from './register';\n/**\n * format a TDate into string\n * @param date\n * @param locale\n * @param opts\n */\nexport var format = function (date, locale, opts) {\n // diff seconds\n var sec = diffSec(date, opts && opts.relativeDate);\n // format it with locale\n return formatDiff(sec, getLocale(locale));\n};\n//# sourceMappingURL=format.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\nimport en_US from './lang/en_US';\nimport zh_CN from './lang/zh_CN';\nimport { register } from './register';\nregister('en_US', en_US);\nregister('zh_CN', zh_CN);\nexport { format } from './format';\nexport { render, cancel } from './realtime';\nexport { register };\n//# sourceMappingURL=index.js.map"],"names":["BASE_IMAGE_CLASS_NAME","SharedObjectImage","props","ref","el","object","fixedHeight","style","width","offsetHeight","VideoHelper","typeId","MasterType","imageOptions","size","image","ImageHelper","imageType","imageClassName","imageFallbackComponent","ImageFallback","type","svgContainerClassName","url","getBgColorClass","name","extraClasses","getImageProps","useVideoThumbnail","showVideoMetadata","className","VideoThumbnail","video","textPosition","ThumbnailTextPosition","appLink","analyticsOptions","location","locationContext","hideDuration","hideMask","BaseImage","data","analyticsData","id","entity","ShareViewHelper","actionType","SHARES_TABLE_THEME","table","header","headerCell","row","cell","ShareHelper","groupByDateShared","dateToObjectMapping","Object","keys","sort","reverse","reduce","acc","date","heading","concat","mapActivityStatusToCheckMarkStatus","activityStatus","mapCheckMarkStatusToActivityStatus","checkMarkStatus","TabContents","tab","svgName","count","PillTabSelector","containerRef","borderRadius","listClassName","tabs","map","index","active","key","onClick","onSelect","onSelectTab","defaultProps","useBatchFetch","itemIds","getRequest","idBatches","setIdBatches","length","newBatches","push","forEach","find","batch","_id","filter","join","dispatch","state","idBatch","request","shouldFetch","items","isFetching","responses","i","response","v","some","k","AnalyticsRouteHelper","getObjectUrl","config","baseUrl","analyticsWebUrl","relativeUrl","mapColourToBsVariant","groupColour","getPhrase","SHARED_BY_ME_APP_LINK","application","action","SHARED_WITH_ME_APP_LINK","SharesHeader","currentAppLink","LanguageService","SharedByMeEmptyState","EmptyState","src","imageUrl","useInteractiveCopy","text","getStatusPhrase","share","ShareType","status","ShareLinkStatus","getBgColourClassName","ShareStatusIndicator","recipients","isPasswordProtected","Tooltip","title","spanHack","SvgContainer","S","spanHackClassName","getHiddenRecipientText","hiddenRecipients","counts","ArrayHelper","userCount","classroomCount","groupCount","SharedToAvatar","user","item","classroom","classroomGroup","left","zIndex","maxAvatars","surname","Avatar","avatar","imageCdnUrl","initials","UserHelper","IconCircle","svgSize","variant","metadata","colour","AnonymousSharedToAvatar","SharedLinkAvatar","SharedToAvatarList","AvatarList","avatarItem","avatarContainerClassname","getHiddenTooltip","getDateShared","dateCreated","datesShared","r","dateShared","date1","date2","DateHelper","getColumns","dateHeading","getObjectAppLink","getObjectActions","showStatus","showViewCount","breakpoints","isMobile","xs","sm","columns","Header","accessor","Cell","value","minWidth","maxWidth","canNavigate","AppLink","Text","namespace","phrase","s","Actions","actions","statusColumn","viewCountColumn","splice","Boolean","SharedByMeTable","sentShares","sharedObjects","shareRecipients","groupByDate","refreshTable","tableData","sharedObject","o","objectId","recipient","viewCount","Table","theme","PartialRow","PartialHeader","fullHeader","PartialSharedByMeTable","getBatchFetchResultAsArray","result","values","args","TextHelper","SeriesAppLinkHelper","getShareActionOptions","entityType","label","params","SeeUsageAction","href","target","SharedByMeView","useBreakpoints","currentUser","UserRequests","cursor","ShareRequests","fetchNext","hasMore","isFetchingSentShares","nextCursor","sharedObjectIds","sharedObjectsFetchResult","ids","recipientIds","getDirectShares","d","getRecipientIds","shareRecipientsFetchResult","customerId","ConfigRequests","useSetPageMetadata","getSharedObjectActions","seeUsagePhrase","canConsume","sharedObjectActions","objectUrl","button","openInNewTab","useGetSharedObjectActions","showPartialLoading","sentShare","hasFetchedSharedObjects","hasFetchedRecipients","initialSharedObjectsLoaded","setInitialSharedObjectsLoaded","initialRecipientsLoaded","setInitialRecipientsLoaded","usePartialLoading","sentSharesMemo","InfiniteScrollFooter","ImageUrls","EN_US","ZH_CN","Locales","register","locale","func","SEC_ARRAY","toDate","input","Date","isNaN","test","parseInt","trim","replace","format","opts","sec","relativeDate","diff","localeFunc","agoIn","totalSec","Math","abs","idx","floor","toString","unit"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[3515],{94644:(e,a,t)=>{t.d(a,{r:()=>u});var i=t(50242),n=t(81886),r=t(67058),d=t(14553),s=t(49267),o=t(49075),c={notFound:r.d,forbidden:{rating:d.q,yearLevel:d.q,region:s.a,privacy:d.q},badRequest:o._};function u(e){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var r;r="number"==typeof e?e:e.status;var d=Object.assign(Object.assign({},c),a);r&&n.Q.Ry.isStatusCodeError(r)&&(r!==i.o.NotFound?r!==i.o.Forbidden?t.badRequest||n.Q.Ry.throw(new d.badRequest):t.forbidden||n.Q.Ry.throw(new d.forbidden.privacy):t.notFound||n.Q.Ry.throw(new d.notFound))}}},91286:(e,a,t)=>{t.d(a,{v:()=>d});var i=t(32735),n=t(94644);function r(e){return e.map((function(e){return e.statusCode})).join(":")}function d(e,a,t){var d=Array.isArray(e)?e:[e];(0,i.useEffect)((function(){d.forEach((function(e){(0,n.r)(e.statusCode,a,t)}))}),[r(d),a,t])}},75085:(e,a,t)=>{t.r(a),t.d(a,{PlayViewV2:()=>D});var i=t(32735),n=t(50242),r=t(81886),d=t(23481),s=t(20354),o=t(28400),c=t(65858),u=t(78417),l=t(16714),v=t(67058),f=t(61990),h=t(33803),p=t(89454),g=t(43012),m=t(39151),y=t(1666),b=t(20768),F=t(98064),C=t(31949),P=t(1575),w=t(26304),I=t(91286),R=t(22902),B=t(79612),q=t(76753),A=t(14070),V=t(97291),k=t(51855),x=t(82817),L=t(7179),O=t(49948),E=t(36873),M=t(27638),S=t(86698),_=t(35014),G=t(97816),N=t(33192),Q=t(81812),T=t(61169),U=d.T.encloseNamespace("shared.play"),j={notFound:f.l,forbidden:{privacy:h.G}};function D(e){var a,t,d,f=e.queryParams,h=f.context,D=f.contextId,H=f.playNext,Y=f.mtv,Z=(0,M.u)(c.LZ.PlayPage),z=Z.setFavourite,J=Z.canFavourite,K=(0,R.T)().hasPermissions,W=(0,k.G)().isPlugin,X=(0,S.y)().activePresentation,$=(0,_.I)(),ee=s.a.useBasicFetch(F.D.streamableLearning()),ae=s.a.useBasicFetch(C.N.currentUser()),te=s.a.useBasicFetch(P.R.video(e.id)),ie=s.a.useBasicFetch(g.e.videoClips(e.id)),ne=s.a.useBasicFetch(b.b.videoInteractives(e.id)),re=s.a.useBasicFetch(m.L.config()),de=s.a.useBasicFetch((null===(a=ae.data)||void 0===a?void 0:a.isAuthenticated)&&y.h.yearGroups(ae.data.customerId)),se=s.a.useBasicFetch(X&&p.O.audiencesByPresentationId(X.id)),oe=(0,Q.a)(),ce=s.a.useBasicFetch(te.statusCode===n.o.Forbidden&&P.R.video(e.id,u.r.StripMetadata)),ue=(0,x.M)(e.id,!0),le=(0,E.k)({video:te.data,context:h,contextId:D,moviesAndTv:Y,currentUser:ae.data}),ve=(0,O.l)(e.id,!0),fe=s.a.useBasicFetch(P.R.regionAlternatives(e.id));return(0,B.M)(q.CG.getVideoMetadata({content:te.data,regionAlternatives:fe.data,phraseContext:{phraseHandler:U,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"},canonicalLink:N.f.getCanonicalLink({stripPresentationSlug:!0}),allowIndexing:N.f.allowIndexing(),hrefLang:N.f.getContentHrefLang(fe.data,(function(e,a){return{application:V.O.VIDEOS,action:A.e.Videos.PLAY_VIDEO,args:[e,o.m.slugify(a)]}}))})),(0,I.v)(te,j,{forbidden:!0}),(0,G.V)(null!==(t=le.videos)&&void 0!==t?t:[]),(0,L.P)({id:e.id,app:"videos"}),(0,w.b)(ce),i.useEffect((function(){var e;te.data&&ee.data&&(null===(e=te.data.libraries)||void 0===e?void 0:e.data.find((function(e){return e.id===ee.data.objectId})))&&r.Q.Ry.throw(new v.d)}),[te.hasCompleted,ee.hasCompleted]),te.data&&ae.hasCompleted&&re.hasCompleted&&ve.hasCompleted?i.createElement(T.R,{video:te.data,clips:ie.data,interactives:ne.data,yearGroups:de.data,curriculums:ue,relatedVideos:le,setFavourite:z,canFavourite:J,imageCdnUrl:re.data.imageCdnUrl,currentUser:ae.data,pointsOfInterest:ve.items,playNext:H,featureAccess:$,audiences:se.data,params:e.queryParams,canManageVideoAccess:K(l.C.ManageVideoAccess),shouldShowSideTableOfContents:oe,tableOfContentsId:null===(d=e.queryParams)||void 0===d?void 0:d.tocId,isPlugin:W}):i.createElement(i.Fragment,null)}D.defaultProps={queryParams:{}}}}]);
2
+ //# sourceMappingURL=3515-4de2fd7070-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/3515-4de2fd7070-lite.chunk.js","mappings":"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","sources":["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/shared/views/play/v2/PlayViewV2.tsx"],"sourcesContent":["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}","import * as React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { PermissionFilterOption } from 'libs/shared/enums/PermissionFilterOption';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { VideoNotFoundError } from 'libs/shared/errors/videos/video-not-found/VideoNotFoundError';\nimport { VideoPrivateError } from 'libs/shared/errors/videos/video-private/VideoPrivateError';\nimport { AudienceRequests } from 'libs/shared/flight-requests/AudienceRequests';\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 { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useCannotConsumeError } from 'libs/shared/hooks/useCannotConsumeError';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Clip, Config, CurrentUser, InteractiveMetadata, PresentationAudience, RegionAlternative, Video, YearGroup } from 'libs/shared/interfaces';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useCurriculums } from 'shared/hooks/useCurriculums';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { useFetchPointsOfInterest } from 'shared/hooks/useFetchPointsOfInterest';\nimport { useGetRelatedVideos } from 'shared/hooks/useGetRelatedVideos';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { usePresentation } from 'shared/hooks/usePresentation';\nimport { useVideoFeatureAccess } from 'shared/hooks/useVideoFeatureAccess';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\nimport { SeoHelper } from 'shared/utils/SeoHelper';\nimport { useShouldShowSideTableOfContents } from 'shared/views/play/v2/hooks/useShouldShowTableOfContents';\n\nimport { PlayViewProps } from '../PlayViewContainer';\n\nimport { PlayPageV2 } from './components/play-page/PlayPageV2';\n\nconst namespace = 'shared.play';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst videoErrors = {\n notFound: VideoNotFoundError,\n forbidden: {\n privacy: VideoPrivateError\n }\n};\n\nPlayViewV2.defaultProps = {\n queryParams: {}\n};\n\nexport function PlayViewV2(props: PlayViewProps): React.ReactElement {\n const { context, contextId, playNext, mtv } = props.queryParams;\n\n const { setFavourite, canFavourite } = useLiteFavourites(LocationContext.PlayPage);\n\n const { hasPermissions } = usePermissions();\n\n const { isPlugin } = usePluginHelper();\n\n const { activePresentation } = usePresentation();\n\n const featureAccess = useVideoFeatureAccess();\n\n const streamableLibrary = Flight.useBasicFetch<HashObject>(LibraryRequests.streamableLearning());\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const video = Flight.useBasicFetch<Video>(VideoRequests.video(props.id));\n const clips = Flight.useBasicFetch<Clip[]>(ClipRequests.videoClips(props.id));\n const interactives = Flight.useBasicFetch<InteractiveMetadata[]>(InteractiveRequests.videoInteractives(props.id));\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n \n const audiences = Flight.useBasicFetch<PresentationAudience[]>(\n activePresentation &&\n AudienceRequests.audiencesByPresentationId(activePresentation.id)\n );\n \n const shouldShowSideTableOfContents = useShouldShowSideTableOfContents();\n\n const strippedVideo = Flight.useBasicFetch<Video>(video.statusCode === HttpStatus.Forbidden &&\n VideoRequests.video(props.id, PermissionFilterOption.StripMetadata));\n\n const curriculums = useCurriculums(props.id, true);\n\n const relatedVideos = useGetRelatedVideos({\n video: video.data,\n context,\n contextId,\n moviesAndTv: mtv,\n currentUser: currentUser.data\n });\n const pointsOfInterest = useFetchPointsOfInterest(props.id, true);\n\n const regionAlternatives = Flight.useBasicFetch<RegionAlternative[]>(\n VideoRequests.regionAlternatives(props.id)\n );\n\n useSetPageMetadata(PageMetadataHelper.getVideoMetadata({\n content: video.data,\n regionAlternatives: regionAlternatives.data,\n phraseContext: {\n phraseHandler: getPhrase,\n titlePhrase: 'pageTitle',\n descriptionPhrase: 'pageDescription'\n },\n canonicalLink: SeoHelper.getCanonicalLink({ stripPresentationSlug: true }),\n allowIndexing: SeoHelper.allowIndexing(),\n hrefLang: SeoHelper.getContentHrefLang(regionAlternatives.data, (id: string, name: string) => ({\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PLAY_VIDEO,\n args: [ id, TextHelper.slugify(name) ]\n }))\n }));\n\n useHandleObjectError(video, videoErrors, { forbidden: true });\n useVideoMixin(relatedVideos.videos ?? []);\n useDeepLinks({ id: props.id, app: 'videos' });\n useCannotConsumeError(strippedVideo);\n\n React.useEffect(() => {\n if (!video.data || !streamableLibrary.data)\n return;\n\n if (video.data.libraries?.data.find(library => library.id === streamableLibrary.data.objectId))\n Core.ErrorHelper.throw(new NotFoundError());\n }, [ video.hasCompleted, streamableLibrary.hasCompleted ]);\n\n const dataLoaded = (\n video.data &&\n currentUser.hasCompleted &&\n config.hasCompleted &&\n pointsOfInterest.hasCompleted\n );\n\n if (!dataLoaded)\n return <></>;\n\n return (\n <PlayPageV2\n video={video.data}\n clips={clips.data}\n interactives={interactives.data}\n yearGroups={yearGroups.data}\n curriculums={curriculums}\n relatedVideos={relatedVideos}\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n imageCdnUrl={config.data.imageCdnUrl}\n currentUser={currentUser.data}\n pointsOfInterest={pointsOfInterest.items}\n playNext={playNext}\n featureAccess={featureAccess}\n audiences={audiences.data}\n params={props.queryParams}\n canManageVideoAccess={hasPermissions(PermissionName.ManageVideoAccess)}\n shouldShowSideTableOfContents={shouldShowSideTableOfContents}\n tableOfContentsId={props.queryParams?.tocId}\n isPlugin={isPlugin}\n />\n );\n}"],"names":["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","getPhrase","videoErrors","PlayViewV2","props","queryParams","context","contextId","playNext","mtv","u","setFavourite","canFavourite","hasPermissions","isPlugin","activePresentation","featureAccess","streamableLibrary","currentUser","video","id","clips","interactives","config","yearGroups","data","isAuthenticated","customerId","audiences","shouldShowSideTableOfContents","strippedVideo","curriculums","relatedVideos","moviesAndTv","pointsOfInterest","regionAlternatives","content","phraseContext","phraseHandler","titlePhrase","descriptionPhrase","canonicalLink","stripPresentationSlug","allowIndexing","hrefLang","name","application","action","args","videos","app","libraries","find","library","objectId","hasCompleted","imageCdnUrl","items","params","canManageVideoAccess","tableOfContentsId","tocId","defaultProps"],"sourceRoot":""}