@clickview/reports 0.69.1-dev.1 → 0.70.0-rc.1

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 (417) hide show
  1. package/dist/bundles.json +3 -2
  2. package/dist/css/1103-reports-d3d5cc00db.chunk.css +31 -0
  3. package/dist/css/1456-reports-4a5871a275.chunk.css +9 -0
  4. package/dist/css/1648-reports-012456ba48.chunk.css +2 -0
  5. package/dist/css/209-reports-c33663a53e.chunk.css +11 -0
  6. package/dist/css/2150-reports-84ec0e9770.chunk.css +4 -0
  7. package/dist/css/2217-reports-74dec0a3fe.chunk.css +32 -0
  8. package/dist/css/2997-reports-e08318f14b.chunk.css +9 -0
  9. package/dist/css/2999-reports-f190450b10.chunk.css +60 -0
  10. package/dist/css/4582-reports-d3d5cc00db.chunk.css +31 -0
  11. package/dist/css/5304-reports-22c2d8d635.chunk.css +9 -0
  12. package/dist/css/6007-reports-5ba77c55a3.chunk.css +8 -0
  13. package/dist/css/6031-reports-d558076846.chunk.css +6 -0
  14. package/dist/css/6356-reports-8c5b220bf6.chunk.css +1 -0
  15. package/dist/css/6811-reports-baf2e97e71.chunk.css +35 -0
  16. package/dist/css/7723-reports-8c6d3c414b.chunk.css +4 -0
  17. package/dist/css/7747-reports-2d9e191b5a.chunk.css +12 -0
  18. package/dist/css/8087-reports-cfe23ba648.chunk.css +10 -0
  19. package/dist/css/8294-reports-c797263ac2.chunk.css +1 -0
  20. package/dist/css/8418-reports-0ada3f3ce2.chunk.css +29 -0
  21. package/dist/css/8450-reports-06493dfde5.chunk.css +9 -0
  22. package/dist/css/8622-reports-9e8970cc7f.chunk.css +8 -0
  23. package/dist/css/8839-reports-8e46644943.chunk.css +1 -0
  24. package/dist/css/8989-reports-92b4f1dde8.chunk.css +8 -0
  25. package/dist/css/9059-reports-a2ac630ebc.chunk.css +35 -0
  26. package/dist/css/9285-reports-5b9af8380f.chunk.css +13 -0
  27. package/dist/css/9661-reports-7435e94a85.chunk.css +4 -0
  28. package/dist/css/9822-reports-a1db1900c7.chunk.css +8 -0
  29. package/dist/css/9949-reports-f22fa2b407.chunk.css +15 -0
  30. package/dist/css/reports-app-b4c4ec5632.css +32 -0
  31. package/dist/languages/en.json +1 -0
  32. package/dist/scripts/1103-d77d388f5b-reports.chunk.js +1 -0
  33. package/dist/scripts/1177-7cf7817e74-reports.chunk.js +1 -0
  34. package/dist/scripts/1456-019d93e620-reports.chunk.js +1 -0
  35. package/dist/scripts/1648-e892604f5a-reports.chunk.js +1 -0
  36. package/dist/scripts/1934-ca8497c768-reports.chunk.js +2 -0
  37. package/dist/scripts/1934-ca8497c768-reports.chunk.js.LICENSE.txt +9 -0
  38. package/dist/scripts/2087-e0ef668e1f-reports.chunk.js +1 -0
  39. package/dist/scripts/209-79eb8be706-reports.chunk.js +1 -0
  40. package/dist/scripts/2150-4e9e1fb433-reports.chunk.js +1 -0
  41. package/dist/scripts/2217-15fa35197a-reports.chunk.js +1 -0
  42. package/dist/scripts/2476-a700f69dc4-reports.chunk.js +1 -0
  43. package/dist/scripts/2539-04dfb4f4f1-reports.chunk.js +1 -0
  44. package/dist/scripts/2997-62d81c3442-reports.chunk.js +1 -0
  45. package/dist/scripts/2999-c1890ca868-reports.chunk.js +2 -0
  46. package/dist/scripts/2999-c1890ca868-reports.chunk.js.LICENSE.txt +1 -0
  47. package/dist/scripts/312-8b006e92ff-reports.chunk.js +1 -0
  48. package/dist/scripts/4234-e3c04f41eb-reports.chunk.js +1 -0
  49. package/dist/scripts/4372-26474a3318-reports.chunk.js +1 -0
  50. package/dist/scripts/438-b444dfb8c6-reports.chunk.js +1 -0
  51. package/dist/scripts/4582-230f130f41-reports.chunk.js +1 -0
  52. package/dist/scripts/4752-db4247883d-reports.chunk.js +2 -0
  53. package/dist/scripts/4752-db4247883d-reports.chunk.js.LICENSE.txt +118 -0
  54. package/dist/scripts/4979-7e14b09f33-reports.chunk.js +1 -0
  55. package/dist/scripts/5051-72c53737e2-reports.chunk.js +1 -0
  56. package/dist/scripts/5091-ddd6f61b55-reports.chunk.js +1 -0
  57. package/dist/scripts/5173-cce3b37672-reports.chunk.js +1 -0
  58. package/dist/scripts/5177-a7372e7b8d-reports.chunk.js +1 -0
  59. package/dist/scripts/5304-d5674b32b4-reports.chunk.js +1 -0
  60. package/dist/scripts/5802-2125536755-reports.chunk.js +1 -0
  61. package/dist/scripts/6007-673706aa31-reports.chunk.js +1 -0
  62. package/dist/scripts/6031-b1c60cc409-reports.chunk.js +1 -0
  63. package/dist/scripts/6081-2bbda6cac3-reports.chunk.js +1 -0
  64. package/dist/scripts/6180-bdb237ffbe-reports.chunk.js +2 -0
  65. package/dist/scripts/6180-bdb237ffbe-reports.chunk.js.LICENSE.txt +1 -0
  66. package/dist/scripts/6198-189ddde870-reports.chunk.js +1 -0
  67. package/dist/scripts/6356-a1b313c73e-reports.chunk.js +1 -0
  68. package/dist/scripts/645-e8b19128e5-reports.chunk.js +1 -0
  69. package/dist/scripts/6545-f07bcd318a-reports.chunk.js +1 -0
  70. package/dist/scripts/6811-40ded4c089-reports.chunk.js +1 -0
  71. package/dist/scripts/7238-de5ef0ebfb-reports.chunk.js +1 -0
  72. package/dist/scripts/7562-748e60c3fc-reports.chunk.js +1 -0
  73. package/dist/scripts/7709-82750ee317-reports.chunk.js +1 -0
  74. package/dist/scripts/7723-1799f5aa26-reports.chunk.js +1 -0
  75. package/dist/scripts/7747-d34db3ff10-reports.chunk.js +2 -0
  76. package/dist/scripts/7747-d34db3ff10-reports.chunk.js.LICENSE.txt +1 -0
  77. package/dist/scripts/7925-c6c532c9c4-reports.chunk.js +1 -0
  78. package/dist/scripts/8087-1d9e9701e5-reports.chunk.js +1 -0
  79. package/dist/scripts/8393-c37cc22b4c-reports.chunk.js +1 -0
  80. package/dist/scripts/8418-9f96caf039-reports.chunk.js +1 -0
  81. package/dist/scripts/8450-f2d5d99614-reports.chunk.js +1 -0
  82. package/dist/scripts/8591-4811082ab0-reports.chunk.js +1 -0
  83. package/dist/scripts/8622-ee045574e2-reports.chunk.js +1 -0
  84. package/dist/scripts/8839-711793a97f-reports.chunk.js +1 -0
  85. package/dist/scripts/8989-ca5cab7f45-reports.chunk.js +1 -0
  86. package/dist/scripts/9059-b2dcf3cdb2-reports.chunk.js +1 -0
  87. package/dist/scripts/9162-7ffc692736-reports.chunk.js +1 -0
  88. package/dist/scripts/9285-ecddd01efb-reports.chunk.js +1 -0
  89. package/dist/scripts/9590-41bb23ae71-reports.chunk.js +1 -0
  90. package/dist/scripts/9647-f0c111d3f0-reports.chunk.js +1 -0
  91. package/dist/scripts/9661-2dee4c3417-reports.chunk.js +1 -0
  92. package/dist/scripts/9822-621fac26e6-reports.chunk.js +1 -0
  93. package/dist/scripts/9895-3b3feb12b9-reports.chunk.js +1 -0
  94. package/dist/scripts/9949-6b1d1f4d32-reports.chunk.js +1 -0
  95. package/dist/scripts/bundle-44f8e893eb.min.js +2 -0
  96. package/dist/scripts/bundle-44f8e893eb.min.js.LICENSE.txt +108 -0
  97. package/dist/scripts/polyfills-3db3f009d4.min.js +1 -0
  98. package/package.json +3 -5
  99. package/typings/utils/imports.d.ts +1 -1
  100. package/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  101. package/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  102. package/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  103. package/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  104. package/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  105. package/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  106. package/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  107. package/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  108. package/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  109. package/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  110. package/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  111. package/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  112. package/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  113. package/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  114. package/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  115. package/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  116. package/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  117. package/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  118. package/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  119. package/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  120. package/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  121. package/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  122. package/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  123. package/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  124. package/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  125. package/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  126. package/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  127. package/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  128. package/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  129. package/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  130. package/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  131. package/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  132. package/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  133. package/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  134. package/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  135. package/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  136. package/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  137. package/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  138. package/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  139. package/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  140. package/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  141. package/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  142. package/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  143. package/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  144. package/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  145. package/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  146. package/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  147. package/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  148. package/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  149. package/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  150. package/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  151. package/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  152. package/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  153. package/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  154. package/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  155. package/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  156. package/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  157. package/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  158. package/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  159. package/dist/css/1VpVng8x.chunk.css +0 -1
  160. package/dist/css/BBwBgFf_.chunk.css +0 -1
  161. package/dist/css/BDijM1kt.chunk.css +0 -1
  162. package/dist/css/BMPwvOki.chunk.css +0 -1
  163. package/dist/css/BNt45Kgy.chunk.css +0 -1
  164. package/dist/css/BSGhUWzl.chunk.css +0 -1
  165. package/dist/css/BZ3_uhDP.chunk.css +0 -1
  166. package/dist/css/BaadNO4A.chunk.css +0 -1
  167. package/dist/css/BdUNjJqp.chunk.css +0 -1
  168. package/dist/css/BdeI0FAV.chunk.css +0 -1
  169. package/dist/css/BxcMGr8Y.chunk.css +0 -1
  170. package/dist/css/ByuL_xKJ.chunk.css +0 -1
  171. package/dist/css/C-A0Pj_7.chunk.css +0 -1
  172. package/dist/css/C4jMfPWU.chunk.css +0 -1
  173. package/dist/css/C7XoyEPr.chunk.css +0 -1
  174. package/dist/css/C8sxda3R.chunk.css +0 -1
  175. package/dist/css/CD1qrI1T.chunk.css +0 -1
  176. package/dist/css/CFO--d_R.chunk.css +0 -1
  177. package/dist/css/CX9nw8t8.chunk.css +0 -1
  178. package/dist/css/C_qGRdC2.chunk.css +0 -1
  179. package/dist/css/CdC6ugQR.chunk.css +0 -1
  180. package/dist/css/ClRRGXPb.chunk.css +0 -1
  181. package/dist/css/Cr1bwtZG.chunk.css +0 -1
  182. package/dist/css/DBlPz5Fw.chunk.css +0 -1
  183. package/dist/css/DDnpOnVB.chunk.css +0 -1
  184. package/dist/css/DFZQCLLg.chunk.css +0 -1
  185. package/dist/css/DJwAbl6l.chunk.css +0 -1
  186. package/dist/css/DWjg_0sz.chunk.css +0 -1
  187. package/dist/css/DYV9jjVn.chunk.css +0 -1
  188. package/dist/css/Dgeh4AqU.chunk.css +0 -9
  189. package/dist/css/DlOtoSz0.chunk.css +0 -1
  190. package/dist/css/DlxOgKUu.chunk.css +0 -1
  191. package/dist/css/DwgaDUzz.chunk.css +0 -1
  192. package/dist/css/FPQ_LmXH.chunk.css +0 -1
  193. package/dist/css/H09rC9gw.chunk.css +0 -1
  194. package/dist/css/LAFr2dPT.chunk.css +0 -1
  195. package/dist/css/Pg1TlYG6.chunk.css +0 -1
  196. package/dist/css/PsQn3-kb.chunk.css +0 -1
  197. package/dist/css/alkEuPrr.chunk.css +0 -1
  198. package/dist/css/k4DgCj_g.chunk.css +0 -1
  199. package/dist/en.json +0 -1
  200. package/dist/scripts/5JDMPiCK.chunk.js +0 -2
  201. package/dist/scripts/5JDMPiCK.chunk.js.map +0 -1
  202. package/dist/scripts/5O9SdVRZ.chunk.js +0 -2
  203. package/dist/scripts/5O9SdVRZ.chunk.js.map +0 -1
  204. package/dist/scripts/B8i2s45X.chunk.js +0 -2
  205. package/dist/scripts/B8i2s45X.chunk.js.map +0 -1
  206. package/dist/scripts/BBOfq9my.chunk.js +0 -2
  207. package/dist/scripts/BBOfq9my.chunk.js.map +0 -1
  208. package/dist/scripts/BE7zUNFh.chunk.js +0 -3
  209. package/dist/scripts/BE7zUNFh.chunk.js.map +0 -1
  210. package/dist/scripts/BIbP_ulq.chunk.js +0 -380
  211. package/dist/scripts/BIbP_ulq.chunk.js.map +0 -1
  212. package/dist/scripts/BJe4D9vd.chunk.js +0 -2
  213. package/dist/scripts/BJe4D9vd.chunk.js.map +0 -1
  214. package/dist/scripts/BKx5S6xk.chunk.js +0 -2
  215. package/dist/scripts/BKx5S6xk.chunk.js.map +0 -1
  216. package/dist/scripts/BMba67Uf.chunk.js +0 -2
  217. package/dist/scripts/BMba67Uf.chunk.js.map +0 -1
  218. package/dist/scripts/BUM8Ub4p.chunk.js +0 -2
  219. package/dist/scripts/BUM8Ub4p.chunk.js.map +0 -1
  220. package/dist/scripts/BW-tzVdx.chunk.js +0 -2
  221. package/dist/scripts/BW-tzVdx.chunk.js.map +0 -1
  222. package/dist/scripts/B_1LOG5E.chunk.js +0 -2
  223. package/dist/scripts/B_1LOG5E.chunk.js.map +0 -1
  224. package/dist/scripts/BaHk6QZB.chunk.js +0 -2
  225. package/dist/scripts/BaHk6QZB.chunk.js.map +0 -1
  226. package/dist/scripts/Bbpuxobz.chunk.js +0 -2
  227. package/dist/scripts/Bbpuxobz.chunk.js.map +0 -1
  228. package/dist/scripts/BfG3wCTD.chunk.js +0 -2
  229. package/dist/scripts/BfG3wCTD.chunk.js.map +0 -1
  230. package/dist/scripts/BfkzHBdb.chunk.js +0 -2
  231. package/dist/scripts/BfkzHBdb.chunk.js.map +0 -1
  232. package/dist/scripts/BiDX0yuI.chunk.js +0 -2
  233. package/dist/scripts/BiDX0yuI.chunk.js.map +0 -1
  234. package/dist/scripts/BkcNwg7K.chunk.js +0 -2
  235. package/dist/scripts/BkcNwg7K.chunk.js.map +0 -1
  236. package/dist/scripts/BlAGsOOw.chunk.js +0 -2
  237. package/dist/scripts/BlAGsOOw.chunk.js.map +0 -1
  238. package/dist/scripts/BmScDBcl.chunk.js +0 -2
  239. package/dist/scripts/BmScDBcl.chunk.js.map +0 -1
  240. package/dist/scripts/BnqNywwJ.chunk.js +0 -2
  241. package/dist/scripts/BnqNywwJ.chunk.js.map +0 -1
  242. package/dist/scripts/BrLXFCMV.chunk.js +0 -2
  243. package/dist/scripts/BrLXFCMV.chunk.js.map +0 -1
  244. package/dist/scripts/BsFynggy.chunk.js +0 -2
  245. package/dist/scripts/BsFynggy.chunk.js.map +0 -1
  246. package/dist/scripts/Bt3gUzzG.chunk.js +0 -2
  247. package/dist/scripts/Bt3gUzzG.chunk.js.map +0 -1
  248. package/dist/scripts/BuHHZnEg.chunk.js +0 -2
  249. package/dist/scripts/BuHHZnEg.chunk.js.map +0 -1
  250. package/dist/scripts/ByllnMKt.chunk.js +0 -2
  251. package/dist/scripts/ByllnMKt.chunk.js.map +0 -1
  252. package/dist/scripts/BzBFC5UE.chunk.js +0 -2
  253. package/dist/scripts/BzBFC5UE.chunk.js.map +0 -1
  254. package/dist/scripts/C4382UCA.chunk.js +0 -2
  255. package/dist/scripts/C4382UCA.chunk.js.map +0 -1
  256. package/dist/scripts/C6H2bU7H.chunk.js +0 -2
  257. package/dist/scripts/C6H2bU7H.chunk.js.map +0 -1
  258. package/dist/scripts/C6eAAaNL.chunk.js +0 -2
  259. package/dist/scripts/C6eAAaNL.chunk.js.map +0 -1
  260. package/dist/scripts/CAh5UtFh.chunk.js +0 -2
  261. package/dist/scripts/CAh5UtFh.chunk.js.map +0 -1
  262. package/dist/scripts/CFIWZ5KT.chunk.js +0 -2
  263. package/dist/scripts/CFIWZ5KT.chunk.js.map +0 -1
  264. package/dist/scripts/CKLfLzhr.chunk.js +0 -34
  265. package/dist/scripts/CKLfLzhr.chunk.js.map +0 -1
  266. package/dist/scripts/COgPEQMR.chunk.js +0 -2
  267. package/dist/scripts/COgPEQMR.chunk.js.map +0 -1
  268. package/dist/scripts/CRWOsqvB.chunk.js +0 -2
  269. package/dist/scripts/CRWOsqvB.chunk.js.map +0 -1
  270. package/dist/scripts/CU-I5G45.chunk.js +0 -2
  271. package/dist/scripts/CU-I5G45.chunk.js.map +0 -1
  272. package/dist/scripts/CV5ioe9U.chunk.js +0 -2
  273. package/dist/scripts/CV5ioe9U.chunk.js.map +0 -1
  274. package/dist/scripts/CW7x8M-z.chunk.js +0 -2
  275. package/dist/scripts/CW7x8M-z.chunk.js.map +0 -1
  276. package/dist/scripts/CX5q-0jT.chunk.js +0 -2
  277. package/dist/scripts/CX5q-0jT.chunk.js.map +0 -1
  278. package/dist/scripts/CXK1uNgx.chunk.js +0 -2
  279. package/dist/scripts/CXK1uNgx.chunk.js.map +0 -1
  280. package/dist/scripts/CXhesQTd.chunk.js +0 -2
  281. package/dist/scripts/CXhesQTd.chunk.js.map +0 -1
  282. package/dist/scripts/CaiGBx50.chunk.js +0 -2
  283. package/dist/scripts/CaiGBx50.chunk.js.map +0 -1
  284. package/dist/scripts/CbmUUNB4.chunk.js +0 -2
  285. package/dist/scripts/CbmUUNB4.chunk.js.map +0 -1
  286. package/dist/scripts/CdoC9Mtd.chunk.js +0 -2
  287. package/dist/scripts/CdoC9Mtd.chunk.js.map +0 -1
  288. package/dist/scripts/CdzMtbgC.chunk.js +0 -2
  289. package/dist/scripts/CdzMtbgC.chunk.js.map +0 -1
  290. package/dist/scripts/Cl51qIgL.chunk.js +0 -2
  291. package/dist/scripts/Cl51qIgL.chunk.js.map +0 -1
  292. package/dist/scripts/ClLzLF-_.chunk.js +0 -2
  293. package/dist/scripts/ClLzLF-_.chunk.js.map +0 -1
  294. package/dist/scripts/ClcYw2ra.chunk.js +0 -42
  295. package/dist/scripts/ClcYw2ra.chunk.js.map +0 -1
  296. package/dist/scripts/Cmu1J2M7.chunk.js +0 -262
  297. package/dist/scripts/Cmu1J2M7.chunk.js.map +0 -1
  298. package/dist/scripts/CpwEUwsc.chunk.js +0 -2
  299. package/dist/scripts/CpwEUwsc.chunk.js.map +0 -1
  300. package/dist/scripts/CqSaPgvV.chunk.js +0 -2
  301. package/dist/scripts/CqSaPgvV.chunk.js.map +0 -1
  302. package/dist/scripts/CqyCLTzN.chunk.js +0 -2
  303. package/dist/scripts/CqyCLTzN.chunk.js.map +0 -1
  304. package/dist/scripts/CrlegiVC.chunk.js +0 -2
  305. package/dist/scripts/CrlegiVC.chunk.js.map +0 -1
  306. package/dist/scripts/CsD4Xb6n.chunk.js +0 -2
  307. package/dist/scripts/CsD4Xb6n.chunk.js.map +0 -1
  308. package/dist/scripts/Ct187YvN.chunk.js +0 -2
  309. package/dist/scripts/Ct187YvN.chunk.js.map +0 -1
  310. package/dist/scripts/CwyVC768.chunk.js +0 -2
  311. package/dist/scripts/CwyVC768.chunk.js.map +0 -1
  312. package/dist/scripts/Cy4L5XsI.chunk.js +0 -2
  313. package/dist/scripts/Cy4L5XsI.chunk.js.map +0 -1
  314. package/dist/scripts/CzF-hI_x.chunk.js +0 -2
  315. package/dist/scripts/CzF-hI_x.chunk.js.map +0 -1
  316. package/dist/scripts/D1U_fPVs.chunk.js +0 -2
  317. package/dist/scripts/D1U_fPVs.chunk.js.map +0 -1
  318. package/dist/scripts/D9POXla0.chunk.js +0 -2
  319. package/dist/scripts/D9POXla0.chunk.js.map +0 -1
  320. package/dist/scripts/DAocQXXC.chunk.js +0 -2
  321. package/dist/scripts/DAocQXXC.chunk.js.map +0 -1
  322. package/dist/scripts/DD-2boW1.chunk.js +0 -2
  323. package/dist/scripts/DD-2boW1.chunk.js.map +0 -1
  324. package/dist/scripts/DFhb3ZfO.chunk.js +0 -2
  325. package/dist/scripts/DFhb3ZfO.chunk.js.map +0 -1
  326. package/dist/scripts/DFp9UBZB.chunk.js +0 -4
  327. package/dist/scripts/DFp9UBZB.chunk.js.map +0 -1
  328. package/dist/scripts/DHqmPVfK.chunk.js +0 -2
  329. package/dist/scripts/DHqmPVfK.chunk.js.map +0 -1
  330. package/dist/scripts/DJLuyZJi.chunk.js +0 -2
  331. package/dist/scripts/DJLuyZJi.chunk.js.map +0 -1
  332. package/dist/scripts/DK7va7iQ.chunk.js +0 -2
  333. package/dist/scripts/DK7va7iQ.chunk.js.map +0 -1
  334. package/dist/scripts/DMoPMSgN.chunk.js +0 -2
  335. package/dist/scripts/DMoPMSgN.chunk.js.map +0 -1
  336. package/dist/scripts/DNTR3iW5.chunk.js +0 -2
  337. package/dist/scripts/DNTR3iW5.chunk.js.map +0 -1
  338. package/dist/scripts/DNt9Tv5W.chunk.js +0 -2
  339. package/dist/scripts/DNt9Tv5W.chunk.js.map +0 -1
  340. package/dist/scripts/DQtbfeRV.chunk.js +0 -2
  341. package/dist/scripts/DQtbfeRV.chunk.js.map +0 -1
  342. package/dist/scripts/DRQ39FRr.chunk.js +0 -2
  343. package/dist/scripts/DRQ39FRr.chunk.js.map +0 -1
  344. package/dist/scripts/DTFFRoLz.chunk.js +0 -2
  345. package/dist/scripts/DTFFRoLz.chunk.js.map +0 -1
  346. package/dist/scripts/DU5sOcpt.chunk.js +0 -3
  347. package/dist/scripts/DU5sOcpt.chunk.js.map +0 -1
  348. package/dist/scripts/DWv8V3Lc.chunk.js +0 -2
  349. package/dist/scripts/DWv8V3Lc.chunk.js.map +0 -1
  350. package/dist/scripts/DYFT7QHy.chunk.js +0 -2
  351. package/dist/scripts/DYFT7QHy.chunk.js.map +0 -1
  352. package/dist/scripts/DZAYXeaL.chunk.js +0 -2
  353. package/dist/scripts/DZAYXeaL.chunk.js.map +0 -1
  354. package/dist/scripts/D_Erj5Yn.chunk.js +0 -10
  355. package/dist/scripts/D_Erj5Yn.chunk.js.map +0 -1
  356. package/dist/scripts/DeY3SuCM.chunk.js +0 -2
  357. package/dist/scripts/DeY3SuCM.chunk.js.map +0 -1
  358. package/dist/scripts/DecstRlc.chunk.js +0 -8
  359. package/dist/scripts/DecstRlc.chunk.js.map +0 -1
  360. package/dist/scripts/Df8zbYVK.chunk.js +0 -10
  361. package/dist/scripts/Df8zbYVK.chunk.js.map +0 -1
  362. package/dist/scripts/DgHfAOys.chunk.js +0 -2
  363. package/dist/scripts/DgHfAOys.chunk.js.map +0 -1
  364. package/dist/scripts/DgWHvURU.chunk.js +0 -2
  365. package/dist/scripts/DgWHvURU.chunk.js.map +0 -1
  366. package/dist/scripts/DmGrKXgL.chunk.js +0 -2
  367. package/dist/scripts/DmGrKXgL.chunk.js.map +0 -1
  368. package/dist/scripts/Dp_vnjo0.chunk.js +0 -3
  369. package/dist/scripts/Dp_vnjo0.chunk.js.map +0 -1
  370. package/dist/scripts/DuNeLCIS.chunk.js +0 -15
  371. package/dist/scripts/DuNeLCIS.chunk.js.map +0 -1
  372. package/dist/scripts/DxJzyDBL.chunk.js +0 -2
  373. package/dist/scripts/DxJzyDBL.chunk.js.map +0 -1
  374. package/dist/scripts/DxUueJN7.chunk.js +0 -2
  375. package/dist/scripts/DxUueJN7.chunk.js.map +0 -1
  376. package/dist/scripts/DykFRaNZ.chunk.js +0 -4
  377. package/dist/scripts/DykFRaNZ.chunk.js.map +0 -1
  378. package/dist/scripts/Fd0gT6QK.chunk.js +0 -2
  379. package/dist/scripts/Fd0gT6QK.chunk.js.map +0 -1
  380. package/dist/scripts/MaYDtnoS.chunk.js +0 -2
  381. package/dist/scripts/MaYDtnoS.chunk.js.map +0 -1
  382. package/dist/scripts/T4Chmiqz.chunk.js +0 -2
  383. package/dist/scripts/T4Chmiqz.chunk.js.map +0 -1
  384. package/dist/scripts/UWjf2h5X.chunk.js +0 -2
  385. package/dist/scripts/UWjf2h5X.chunk.js.map +0 -1
  386. package/dist/scripts/VSmYRJOj.chunk.js +0 -2
  387. package/dist/scripts/VSmYRJOj.chunk.js.map +0 -1
  388. package/dist/scripts/W5zJjbqu.chunk.js +0 -2
  389. package/dist/scripts/W5zJjbqu.chunk.js.map +0 -1
  390. package/dist/scripts/YDhSgJI6.chunk.js +0 -2
  391. package/dist/scripts/YDhSgJI6.chunk.js.map +0 -1
  392. package/dist/scripts/Yi67NERS.chunk.js +0 -2
  393. package/dist/scripts/Yi67NERS.chunk.js.map +0 -1
  394. package/dist/scripts/app-BqRx5tK8.js +0 -228
  395. package/dist/scripts/app-BqRx5tK8.js.map +0 -1
  396. package/dist/scripts/cRQEJA0-.chunk.js +0 -2
  397. package/dist/scripts/cRQEJA0-.chunk.js.map +0 -1
  398. package/dist/scripts/g3bqr4mt.chunk.js +0 -6
  399. package/dist/scripts/g3bqr4mt.chunk.js.map +0 -1
  400. package/dist/scripts/h4z9gHMh.chunk.js +0 -2
  401. package/dist/scripts/h4z9gHMh.chunk.js.map +0 -1
  402. package/dist/scripts/kGI4LAzn.chunk.js +0 -6
  403. package/dist/scripts/kGI4LAzn.chunk.js.map +0 -1
  404. package/dist/scripts/kt1K5Xlc.chunk.js +0 -2
  405. package/dist/scripts/kt1K5Xlc.chunk.js.map +0 -1
  406. package/dist/scripts/mdJqhxeb.chunk.js +0 -2
  407. package/dist/scripts/mdJqhxeb.chunk.js.map +0 -1
  408. package/dist/scripts/sFV5nxD4.chunk.js +0 -2
  409. package/dist/scripts/sFV5nxD4.chunk.js.map +0 -1
  410. package/dist/scripts/tCFcWStO.chunk.js +0 -2
  411. package/dist/scripts/tCFcWStO.chunk.js.map +0 -1
  412. package/dist/scripts/wND_WD0i.chunk.js +0 -2
  413. package/dist/scripts/wND_WD0i.chunk.js.map +0 -1
  414. package/dist/scripts/xkqdG021.chunk.js +0 -2
  415. package/dist/scripts/xkqdG021.chunk.js.map +0 -1
  416. package/dist/scripts/zaMwD-xl.chunk.js +0 -3
  417. package/dist/scripts/zaMwD-xl.chunk.js.map +0 -1
@@ -1,2 +0,0 @@
1
- import{Q as lt,j as t,T as j,D as ae,W as dt,s as ve,L as C,p as b,X as We,Y as G,Z as le,_ as qe,$ as Ze,a0 as Ye,a1 as Y,a2 as J,h as V,a3 as xe,a4 as Je,a5 as Ke,r as pe,a6 as be,a7 as ut,c as mt,a8 as ht,a9 as gt,i as ft,aa as Qe,ab as yt,l as _e,ac as $e,b as ke,ad as et,P as E,o as vt,ae as xt,af as pt,ag as Le,ah as bt,v as jt,ai as we,aj as tt,ak as Ne,al as Ct,u as O,am as St,w as At,U as Ee,C as kt,an as wt,ao as Ie,ap as Pt,aq as Lt}from"./app-BqRx5tK8.js";import{S as Z}from"./BBOfq9my.chunk.js";import{S as w,a as Te,R as Nt}from"./BuHHZnEg.chunk.js";import{F as nt,l as F,u as Et,a as It,T as Tt,R as Ot,b as Rt,V as Dt}from"./g3bqr4mt.chunk.js";import{C as Ut}from"./BfG3wCTD.chunk.js";import{L as Bt,V as zt}from"./BW-tzVdx.chunk.js";import{B as Vt}from"./CwyVC768.chunk.js";import{B as Mt,a as Ft}from"./DeY3SuCM.chunk.js";import{u as Ht}from"./DHqmPVfK.chunk.js";import"./ByllnMKt.chunk.js";import"./DU5sOcpt.chunk.js";import"./CW7x8M-z.chunk.js";import"./BrLXFCMV.chunk.js";import"./DJLuyZJi.chunk.js";var Q={},ue,Oe;function Gt(){return Oe||(Oe=1,ue=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var n=document.activeElement,a=[],s=0;s<e.rangeCount;s++)a.push(e.getRangeAt(s));switch(n.tagName.toUpperCase()){case"INPUT":case"TEXTAREA":n.blur();break;default:n=null;break}return e.removeAllRanges(),function(){e.type==="Caret"&&e.removeAllRanges(),e.rangeCount||a.forEach(function(c){e.addRange(c)}),n&&n.focus()}}),ue}var me,Re;function Xt(){if(Re)return me;Re=1;var e=Gt(),n={"text/plain":"Text","text/html":"Url",default:"Text"},a="Copy to clipboard: #{key}, Enter";function s(r){var l=(/mac os x/i.test(navigator.userAgent)?"⌘":"Ctrl")+"+C";return r.replace(/#{\s*key\s*}/g,l)}function c(r,l){var g,y,v,x,S,u,A=!1;l||(l={}),g=l.debug||!1;try{v=e(),x=document.createRange(),S=document.getSelection(),u=document.createElement("span"),u.textContent=r,u.ariaHidden="true",u.style.all="unset",u.style.position="fixed",u.style.top=0,u.style.clip="rect(0, 0, 0, 0)",u.style.whiteSpace="pre",u.style.webkitUserSelect="text",u.style.MozUserSelect="text",u.style.msUserSelect="text",u.style.userSelect="text",u.addEventListener("copy",function(m){if(m.stopPropagation(),l.format)if(m.preventDefault(),typeof m.clipboardData>"u"){g&&console.warn("unable to use e.clipboardData"),g&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var p=n[l.format]||n.default;window.clipboardData.setData(p,r)}else m.clipboardData.clearData(),m.clipboardData.setData(l.format,r);l.onCopy&&(m.preventDefault(),l.onCopy(m.clipboardData))}),document.body.appendChild(u),x.selectNodeContents(u),S.addRange(x);var D=document.execCommand("copy");if(!D)throw new Error("copy command was unsuccessful");A=!0}catch(m){g&&console.error("unable to copy using execCommand: ",m),g&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(l.format||"text",r),l.onCopy&&l.onCopy(window.clipboardData),A=!0}catch(p){g&&console.error("unable to copy using clipboardData: ",p),g&&console.error("falling back to prompt"),y=s("message"in l?l.message:a),window.prompt(y,r)}}finally{S&&(typeof S.removeRange=="function"?S.removeRange(x):S.removeAllRanges()),u&&document.body.removeChild(u),v()}return A}return me=c,me}var De;function Wt(){if(De)return Q;De=1;function e(i){"@babel/helpers - typeof";return e=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(o){return typeof o}:function(o){return o&&typeof Symbol=="function"&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},e(i)}Object.defineProperty(Q,"__esModule",{value:!0}),Q.CopyToClipboard=void 0;var n=c(lt()),a=c(Xt()),s=["text","onCopy","options","children"];function c(i){return i&&i.__esModule?i:{default:i}}function r(i,o){var h=Object.keys(i);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(i);o&&(d=d.filter(function(f){return Object.getOwnPropertyDescriptor(i,f).enumerable})),h.push.apply(h,d)}return h}function l(i){for(var o=1;o<arguments.length;o++){var h=arguments[o]!=null?arguments[o]:{};o%2?r(Object(h),!0).forEach(function(d){T(i,d,h[d])}):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(h)):r(Object(h)).forEach(function(d){Object.defineProperty(i,d,Object.getOwnPropertyDescriptor(h,d))})}return i}function g(i,o){if(i==null)return{};var h=y(i,o),d,f;if(Object.getOwnPropertySymbols){var k=Object.getOwnPropertySymbols(i);for(f=0;f<k.length;f++)d=k[f],!(o.indexOf(d)>=0)&&Object.prototype.propertyIsEnumerable.call(i,d)&&(h[d]=i[d])}return h}function y(i,o){if(i==null)return{};var h={},d=Object.keys(i),f,k;for(k=0;k<d.length;k++)f=d[k],!(o.indexOf(f)>=0)&&(h[f]=i[f]);return h}function v(i,o){if(!(i instanceof o))throw new TypeError("Cannot call a class as a function")}function x(i,o){for(var h=0;h<o.length;h++){var d=o[h];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(i,d.key,d)}}function S(i,o,h){return o&&x(i.prototype,o),Object.defineProperty(i,"prototype",{writable:!1}),i}function u(i,o){if(typeof o!="function"&&o!==null)throw new TypeError("Super expression must either be null or a function");i.prototype=Object.create(o&&o.prototype,{constructor:{value:i,writable:!0,configurable:!0}}),Object.defineProperty(i,"prototype",{writable:!1}),o&&A(i,o)}function A(i,o){return A=Object.setPrototypeOf||function(d,f){return d.__proto__=f,d},A(i,o)}function D(i){var o=U();return function(){var d=N(i),f;if(o){var k=N(this).constructor;f=Reflect.construct(d,arguments,k)}else f=d.apply(this,arguments);return m(this,f)}}function m(i,o){if(o&&(e(o)==="object"||typeof o=="function"))return o;if(o!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return p(i)}function p(i){if(i===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return i}function U(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function N(i){return N=Object.setPrototypeOf?Object.getPrototypeOf:function(h){return h.__proto__||Object.getPrototypeOf(h)},N(i)}function T(i,o,h){return o in i?Object.defineProperty(i,o,{value:h,enumerable:!0,configurable:!0,writable:!0}):i[o]=h,i}var B=(function(i){u(h,i);var o=D(h);function h(){var d;v(this,h);for(var f=arguments.length,k=new Array(f),z=0;z<f;z++)k[z]=arguments[z];return d=o.call.apply(o,[this].concat(k)),T(p(d),"onClick",function(X){var W=d.props,$=W.text,ee=W.onCopy,de=W.children,K=W.options,M=n.default.Children.only(de),te=(0,a.default)($,K);ee&&ee($,te),M&&M.props&&typeof M.props.onClick=="function"&&M.props.onClick(X)}),d}return S(h,[{key:"render",value:function(){var f=this.props;f.text,f.onCopy,f.options;var k=f.children,z=g(f,s),X=n.default.Children.only(k);return n.default.cloneElement(X,l(l({},z),{},{onClick:this.onClick}))}}]),h})(n.default.PureComponent);return Q.CopyToClipboard=B,T(B,"defaultProps",{onCopy:void 0,options:void 0}),Q}var he,Ue;function qt(){if(Ue)return he;Ue=1;var e=Wt(),n=e.CopyToClipboard;return n.CopyToClipboard=n,he=n,he}var je=qt();const Be="share.embedSize";function Zt(e){const{autoplay:n,setAutoplay:a,videoSize:s,setVideoSize:c,videoSizes:r}=e;return t.jsxs("div",{className:"d-flex align-items-center",children:[!!r.length&&t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"me-1",children:t.jsx(j,{namespace:Be,phrase:"videoSize"})}),t.jsx("div",{className:"pe-3",children:t.jsxs(ae,{children:[t.jsx(ae.Toggle,{id:"embed-resolution",variant:"outline-dark",children:s.label}),t.jsx(ae.Menu,{children:r.map(l=>t.jsx(ae.Item,{onClick:()=>c(l),children:l.label},`${l.width}x${l.height}`))})]})})]}),t.jsx("div",{className:"me-2",children:t.jsx(j,{namespace:Be,phrase:"autoplay"})}),t.jsx(dt,{id:"autoplay-checkbox",checked:n,onChange:()=>a(!n)})]})}const se="shared.shared-utils",ge={getEmbedResolutions(e=!0){const n=[{label:C.getPhrase(se,"small"),width:"640",height:"360"},{label:C.getPhrase(se,"medium"),width:"1014",height:"576"},{label:C.getPhrase(se,"large"),width:"1280",height:"720"}];return e&&n.unshift({label:C.getPhrase(se,"responsive"),width:"100%",height:"100%"}),n},getEmbedString(e){const{url:n,size:a}=e,s=a.width==="100%",c=s?'style="position:absolute; top:0; left:0; width:100%; height:100%;"':`width="${a.width}" height="${a.height}"`,r='frameborder="0" allowfullscreen webkitallowfullscreen mozallowfullscreen allow="autoplay"',l=`src="${n}"`,g=`<iframe ${c} ${r} ${l}></iframe>`;return s?`<div style="padding:56.25% 0 0 0; position:relative;">${g}</div>`:g},buildEmbedUrl(e){const{embedUrl:n,host:a,shareId:s,autoplay:c,consumerKey:r}=e;let l=n;l||(l=ve.safeUrlConcat(a,`share/embed/${s}`));const g={};return c&&(g.a=!0),r&&(g.consumerKey=r),ve.urlBuilder(l,g)}},Yt="_embedHtmlInput_1rbgz_1",Jt="_copyBtnContainer_1rbgz_4",ze={embedHtmlInput:Yt,copyBtnContainer:Jt},Ce="share.copyEmbedHtml",Kt=C.encloseNamespace(Ce);function Qt(e){const n=ge.getEmbedResolutions(),[a,s]=b.useState("copy"),[c,r]=b.useState(!1),[l,g]=b.useState(n.find(A=>A.width==="100%")),[y,v]=b.useState(!1);function x(){if(s("copied"),setTimeout(()=>s("copy"),2e3),!y){if(v(!0),typeof e.onCopy=="function"){e.onCopy({size:l,autoplay:c});return}le.logUserAction({...e.entity,embedDetails:{size:l,autoplay:c}},le.mergeOptions(w.getAnalyticsOptions(e.entityType),[{actionType:Ye.Share,descriptor:Ze.CopyEmbedHtml,eventVersion:qe.V3},e.analyticsOptions]))}}const S=ge.buildEmbedUrl({embedUrl:e.embedUrl,host:e.liteUrl,shareId:e.shareId,autoplay:c}),u=ge.getEmbedString({url:S,size:l});return t.jsxs(We.Provider,{value:Ce,children:[!e.hideLabel&&t.jsx("label",{children:t.jsx(j,{namespace:Ce,phrase:"label"})}),t.jsxs("div",{className:"position-relative mb-3",children:[t.jsx("textarea",{className:G("form-control rounded w-100 h-100",!e.hasInputBg&&ze.embedHtmlInput),spellCheck:!1,value:u,rows:7,readOnly:!0}),t.jsx(je.CopyToClipboard,{onCopy:x,text:u,children:t.jsx("button",{className:`btn btn-outline-dark border border-secondary position-absolute bottom-0 end-0 ${ze.copyBtnContainer}`,type:"button",children:Kt(a)})})]}),t.jsx(Zt,{autoplay:c,setAutoplay:r,videoSize:l,setVideoSize:g,videoSizes:n})]})}const _t="shared.share";function $t(e){return t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"mb-3",children:t.jsx(Qt,{embedUrl:e.shareLink.embedUrl,entity:e.entity,entityType:e.entityType,liteUrl:e.liteUrl,entityId:e.entityId,shareId:e.shareLink.id,analyticsOptions:e.analyticsOptions})}),t.jsx(Y,{children:t.jsx(J,{onClick:e.onClickCancel,className:"btn btn-outline-dark",children:t.jsx(j,{namespace:_t,phrase:"back"})})})]})}function en(e){return t.jsx("svg",{...e,children:t.jsx("path",{fill:"currentColor",fillRule:"evenodd",d:"M9.758 8.424a.6.6 0 1 0-.849-.848l-4 4a.6.6 0 0 0 0 .848l4 4a.6.6 0 0 0 .849-.848L6.182 12zm5.333-.848a.6.6 0 1 0-.849.848L17.818 12l-3.576 3.576a.6.6 0 0 0 .849.848l4-4a.6.6 0 0 0 0-.848z",clipRule:"evenodd"})})}const tn="share.getEmbedCode";function nn(e){return t.jsx(J,{onClick:e.onClickGetEmbedCode,className:"d-inline-block p-1 pe-2 rounded-1 hover-bg-light-blue",children:t.jsxs("div",{className:"d-flex align-items-center",children:[t.jsx("div",{className:G("me-2",!e.minimal&&"bg-dark text-white rounded-1"),children:t.jsx(V,{svg:en,size:e.minimal?xe.Standard:xe.Large})}),t.jsx(j,{namespace:tn,phrase:"getEmbedCode"})]})})}const an="share.shareLinkInfo",R=C.encloseNamespace(an);function ie(e){const{active:n,title:a,description:s,onClick:c}=e;return t.jsxs("button",{className:`${n?"bg-light-blue":""} dropdown-item d-flex align-items-center justify-content-between`,onClick:n?null:c,type:"button",children:[t.jsxs("div",{className:"me-4",children:[t.jsx("p",{className:"fw-semibold mb-1",children:a}),t.jsx("p",{className:"font-size-sm mb-0",children:s})]}),n&&t.jsx(V,{svg:Je})]})}function sn(e){const[n,a]=b.useState(!1),[s,c]=b.useState(null),{icon:r,text:l}=Te.getIconAndText(e);b.useEffect(()=>{a(e.privacy.canManageAccess),c(e.privacy.privacy)},[e.privacy]);const g=n?"just_my_customer":"protected",y=!e.isPasswordProtected&&!e.linkExpireDate&&e.shareOverrideRestrictions&&!e.hasStudentExp;return t.jsx("div",{className:"d-flex align-items-center",children:y?t.jsxs("div",{className:"btn-group",children:[t.jsxs("button",{className:"btn border-0 info-link dropdown-toggle p-1 bg-light-blue-hover","data-bs-toggle":"dropdown","aria-label":R("ariaPrivacy"),children:[t.jsx(V,{svg:r,className:"svg-container me-1"}),t.jsx("span",{className:"me-1",children:l})]}),t.jsxs("ul",{className:"dropdown-menu cursor-pointer",children:[n&&t.jsx("li",{children:t.jsx(ie,{active:s==="public",title:R("public"),description:R("publicDescription"),onClick:()=>e.onClickSavePrivacy("public",!1)})}),t.jsx("li",{children:t.jsx(ie,{active:s===g&&e.privacy.overrideRestrictions,title:R("justMySchool"),description:R(n?"justMySchoolDescription":"clickViewOnly"),onClick:()=>e.onClickSavePrivacy(g,!0)})}),t.jsx("li",{children:t.jsx(ie,{active:s===g&&!e.privacy.overrideRestrictions,title:R("respectRatings"),description:Te.getRespectRatingText(e.entity,e.yearGroups,e.hasStudentExp),onClick:()=>e.onClickSavePrivacy(g,!1)})}),t.jsx("li",{children:t.jsx(ie,{active:s==="private",title:R("private"),description:R("privateDescription"),onClick:()=>e.onClickSavePrivacy("private",!1)})})]})]}):t.jsxs(t.Fragment,{children:[t.jsx(V,{svg:r,className:"svg-container me-1"}),t.jsx("span",{children:l})]})})}function rn(){return t.jsxs("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",children:[t.jsx("circle",{cx:"12",cy:"12",r:"12",fill:"url(#pattern0)"}),t.jsxs("defs",{children:[t.jsx("pattern",{id:"pattern0",patternContentUnits:"objectBoundingBox",width:"1",height:"1",children:t.jsx("use",{xlinkHref:"#image0_3558_14996",transform:"scale(0.00520833)"})}),t.jsx("image",{id:"image0_3558_14996",width:"192",height:"192",xlinkHref:"data:image/png;base64,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"})]})]})}function on(){return t.jsxs("svg",{viewBox:"0 0 40 40",fill:"none",children:[t.jsx("path",{d:"M29.692 15.31c.58 0 1.146-.173 1.628-.5a2.96 2.96 0 001.078-1.331 3.004 3.004 0 00-.634-3.235 2.918 2.918 0 00-1.5-.812 2.894 2.894 0 00-1.693.169 2.938 2.938 0 00-1.314 1.093 2.997 2.997 0 00.364 3.748 2.91 2.91 0 002.071.869zM20.043 26.267V13.849a.9.9 0 00-.259-.633.877.877 0 00-.624-.262H6.883a.877.877 0 00-.624.262.9.9 0 00-.259.633v12.418c0 .24.092.469.257.64.165.172.39.27.626.276H19.16a.899.899 0 00.626-.276.923.923 0 00.257-.64zm-3.51-10.389v1.92h-2.37v6.68H11.88V17.93H9.51v-2.182h7.022v.13z",fill:"#fff"}),t.jsx("path",{d:"M21.874 14.132v.917a4.03 4.03 0 002.05-1.47c.512-.699.79-1.545.793-2.415 0-1.1-.431-2.154-1.199-2.932a4.065 4.065 0 00-2.893-1.214 4.065 4.065 0 00-2.894 1.214 4.175 4.175 0 00-1.199 2.932h2.391a2.996 2.996 0 012.061.887c.55.552.868 1.297.89 2.081zM26.332 17.1h-4.458v8.883c0 .8-.309 1.566-.86 2.138-.552.57-1.302.9-2.091.917h-4.588a7.047 7.047 0 003.265 3.317c1.427.7 3.046.887 4.593.532a6.99 6.99 0 003.918-2.486 7.152 7.152 0 001.535-4.418v-7.551a1.348 1.348 0 00-.385-.942 1.313 1.313 0 00-.929-.39zM32.772 17.1h-3.597c.206.414.316.87.323 1.332v7.551a9.1 9.1 0 01-.516 2.859c.236.021.474.021.71 0a4.28 4.28 0 003.046-1.278A4.394 4.394 0 0034 24.477v-6.045c0-.339-.126-.665-.354-.912a1.307 1.307 0 00-.874-.42z",fill:"#fff"})]})}const cn="_hoverable_4a88w_1",ln="_msTeamsContainer_4a88w_7",dn="_avatar_4a88w_10",un="_small_4a88w_17",_={hoverable:cn,msTeamsContainer:ln,avatar:dn,small:un},mn="share.shareIntegrations";function hn(e){const n=G(_.avatar,(e==null?void 0:e.size)==="sm"&&_.small,(e==null?void 0:e.size)!=="sm"&&"border","rounded-circle overflow-hidden");return t.jsx(Ke,{title:C.getPhrase(mn,"shareThroughIntegrations"),spanHack:!0,disable:e.noTooltip,children:t.jsxs("ul",{className:"list-unstyled d-flex mb-0",children:[t.jsx("li",{className:n,style:{zIndex:1},children:t.jsx(rn,{})}),t.jsx("li",{className:`${n} ${_.msTeamsContainer}`,style:{zIndex:0},children:t.jsx(on,{})})]})})}const gn="_copyBtn_o53kt_4",fn={copyBtn:gn},yn="shared.copyInput",re=C.encloseNamespace(yn);at.defaultProps={styling:"normal"};function at(e){const[n,a]=pe.useState(e.showCopiedText||!1);function s(){setTimeout(()=>a(!1),2e3)}function c(){e.onCopy&&e.onCopy(),!n&&(a(!0),s())}pe.useEffect(()=>{e.showCopiedText&&s()},[e.showCopiedText]);function r(){return e.styling==="normal-v2"?t.jsx(je.CopyToClipboard,{text:e.value,onCopy:c,children:t.jsx(ut,{role:n?"status":"",svg:n?Je:Ut,className:G(fn.copyBtn,"btn py-0 text-nowrap",n?"btn-success text-white":"btn-outline-dark border-secondary"),children:n?e.copiedText||re("copiedLink"):e.copyText||re("copy")})}):t.jsx(je.CopyToClipboard,{text:e.value,onCopy:c,children:t.jsx("button",{role:n?"status":"",className:"btn btn-outline-dark border border-secondary py-0 text-nowrap",children:n?e.copiedText||re("copied"):e.copyText||re("copy")})})}const l=t.jsxs("div",{className:e.styling==="normal-v2"?"d-flex flex-row gap-2 position-relative w-100":"input-group",children:[t.jsx("input",{type:"text",autoComplete:"off",className:G("form-control",e.styling==="normal"&&e.styling),spellCheck:!1,value:e.value,readOnly:!0}),t.jsx(r,{})]});return e.label?t.jsxs(be.Group,{className:"form-group",children:[t.jsx(be.Label,{children:e.label}),l]}):l}const vn="share.shareAsLink";function xn(e){const[n,a]=b.useState(!1);function s(){n||(a(!0),le.logUserAction({id:e.entity.id,name:e.entity.name},le.mergeOptions(w.getAnalyticsOptions(e.entityType),{actionType:Ye.Share,descriptor:Ze.CopyLink,eventVersion:qe.V3})))}return t.jsx(t.Fragment,{children:t.jsxs("div",{className:"d-flex justify-content-between align-items-center",children:[t.jsx("div",{className:`${e.shareLink?"w-100":"w-75 d-flex align-items-center"}`,children:e.shareLink?t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"d-flex justify-content-between align-items-center mb-1",children:t.jsx(sn,{linkExpireDate:e.shareLink.linkExpireDate,isPasswordProtected:e.shareLink.isPasswordProtected,privacy:e.privacy,entityTypeId:e.shareLink.objectTypeId,status:e.shareLink.status,onClickSavePrivacy:e.onClickSavePrivacy,hasStudentExp:e.hasStudentExp,entity:e.entity,yearGroups:e.yearGroups,shareOverrideRestrictions:e.shareOverrideRestrictions})}),t.jsx(at,{value:e.shareLink.url,onCopy:s})]}):t.jsxs("div",{className:"d-flex align-items-center",children:[t.jsx("div",{className:"me-2",children:e.enableIntegrations?t.jsx(hn,{}):t.jsx(V,{svg:Bt,className:"svg-container"})}),t.jsx("span",{className:"fw-semibold",children:t.jsx(j,{namespace:vn,phrase:"createLink"})})]})}),!e.shareLink&&t.jsx(J,{className:"info-link",onClick:e.onClickCreateLink,children:t.jsx(j,{phrase:"createLink"})})]})})}const fe={};function st(e,n){const[a,s]=b.useState(!1);return b.useEffect(()=>{if(!e||!n||fe[e])return;const c=document.createElement("script");return c.src=e,c.async=!0,c.onload=()=>{fe[e]=!0,window.setTimeout(()=>s(!0),0)},document.body.appendChild(c),()=>{c.onload=null,document.body.removeChild(c)}},[e,n]),fe[e]||a}const Ve="g-share-to-classroom";function pn(e){e&&(window.___gcfg={parsetags:"explicit"});const n=st("https://apis.google.com/js/platform.js",e);return b.useEffect(()=>{var a,s;!e||!n||(s=(a=window.gapi)==null?void 0:a.sharetoclassroom)==null||s.go(Ve)},[e,n]),Ve}function bn(e){const n=st("https://teams.microsoft.com/share/launcher.js",e);b.useEffect(()=>{var a;!e||!n||(a=window.shareToMicrosoftTeams)==null||a.renderButtons()},[e,n])}const it="shared.lookingForIntegration",jn=C.encloseNamespace(it);function Cn(e){const[n,a]=mt(gt.LOOKING_FOR_INTEGRATION,{show:!0},{storage:ht.LocalStorage});return n.show?t.jsxs("div",{className:G("d-flex justify-content-between",!e.hideBackground&&"rounded p-2 bg-light-blue"),children:[t.jsx(ft,{appLink:e.appLink,onClick:()=>{var s;return(s=e.closePopup)==null?void 0:s.call(e)},className:"d-inline-flex align-items-center mb-0",children:t.jsx("span",{className:G("ms-1 text-info",!e.normalText&&"fw-semibold"),children:t.jsx(j,{namespace:it,phrase:"lookingForIntegration"})})}),!e.hideDismiss&&t.jsx("button",{onClick:()=>a({show:!1}),"aria-label":`${jn("ariaClose")}`,children:t.jsx(V,{svg:Qe,size:xe.Small,className:"text-info d-inline-block svg-container"})})]}):t.jsx(t.Fragment,{})}var H=(e=>(e.GoogleClassroom="google-classroom",e.MicrosoftTeams="microsoft-teams",e.Vivi="vivi",e.AppleTv="apply-tv",e))(H||{});const Sn="32";function An(e){var r,l;const n=pn((r=e.integrations)==null?void 0:r.includes(H.GoogleClassroom));if(bn((l=e.integrations)==null?void 0:l.includes(H.MicrosoftTeams)),!e.integrations.length&&!e.hideLookingForIntegrations)return t.jsx(Cn,{appLink:e.appLink,closePopup:e.closePopup});function a(){switch(e.iconSize){case"sm":return"24";case"md":default:return Sn}}const s=a(),c={height:`${s}px`,width:`${s}px`};return t.jsxs("div",{className:"d-flex gap-1 align-items-start",children:[e.integrations.includes(H.GoogleClassroom)&&t.jsx("div",{id:n,className:"rounded partial-loading-background",style:c,children:t.jsx("div",{className:"g-sharetoclassroom","data-size":s,"data-url":e.url})}),e.integrations.includes(H.MicrosoftTeams)&&t.jsx("div",{className:`rounded overflow-hidden ${_.hoverable}`,children:t.jsx("div",{className:`teams-share-button ${_.msTeamsContainer}`,style:c,"data-href":e.url,"data-button-type":"smallTransWhite","data-preview":"false","data-icon-px-size":s})})]})}function kn(e){return t.jsx(Mt,{type:Ft.Restriction,data:{restrictions:e.restrictions,yearGroups:e.yearGroups},inline:!0})}function wn(e){const n=yt.hasRestrictions(e.video),{canConsume:a}=_e.getCanBeConsumed(e.video);return!n||!e.yearGroups||!a?t.jsx(t.Fragment,{}):t.jsx(Vt,{className:e.className||"pt-1",children:t.jsx(kn,{restrictions:e.video._restrictions,yearGroups:e.yearGroups})})}const oe=C.encloseNamespace("share.shareMessage"),Pn=F.object().shape({message:F.string().max(280,()=>oe("maxMessageLen"))});function Ln(e){const n=Et();return t.jsxs($e,{children:[t.jsx(It,{component:"textarea",name:"message",id:"message",placeholder:oe("placeholder"),value:n.values.message,label:oe("label"),showOptionalLabel:!0}),!e.shareOverrideRestrictions&&_e.isVideoType(e.entity)&&t.jsx("div",{className:"mb-3",children:t.jsx(wn,{video:e.entity,yearGroups:e.yearGroups})}),t.jsx(Y,{children:t.jsx(Y.Submit,{variant:"dark",text:oe("share")})})]})}function Nn(e){function n(a,s){let c=null;a.message&&(c=a.message),e.onClickShare(c,s)}return t.jsx(nt,{initialValues:{message:""},validationSchema:Pn,onSubmit:n,allowInitialSubmit:!0,children:t.jsx(Ln,{entity:e.entity,yearGroups:e.yearGroups,shareOverrideRestrictions:e.shareOverrideRestrictions})})}const Se="shared.share",Me=C.encloseNamespace(Se);function Fe(e,n,a,s){if(!e)return[];const c=[...n,...a].map(r=>r.id);return e.filter(r=>!(c.includes(r.id)||r.id===s))}function En(e){var D;const[n,a]=b.useState([]),[s,c]=b.useState(!1),{hasPermissions:r}=ke(),{hasClassrooms:l}=et(null),g=r(E.ManageIntegrations);function y(m,p){e.onClickShare(n,m,()=>{a([]),p()})}function v(m){if(!e.fetchRecipientUsers)return;const p=U=>{const N=[];n.forEach(T=>{var i;if(T.id!==m)return N.push(T);const B=bt.deepClone(T);(i=U==null?void 0:U.data)!=null&&i.length?B.users=U:B.users={count:0,data:[],pagination:null},N.push(B)}),a(jt.uniq(N,"id"))};e.fetchRecipientUsers(m,p)}function x(m){const p=[];return r(E.ShareToUsers)&&p.push({index:"user",filters:{userType:[Le.Staff,Le.Learner],userProfile:{status:[`${pt.Active.toLowerCase()}`],customerId:e.currentUser.customerId}}}),r(E.ShareToClassrooms)&&p.push({index:"classroom"}),r(E.ShareToClassroomGroups)&&p.push({index:"classroom_group"}),{query:m,indices:p,searchType:"user",limit:Rt}}const S=l&&(r(E.ShareToUsers)||r(E.ShareToClassrooms)||r(E.ShareToClassroomGroups)),u=Fe(e.recentlySharedTo,n,e.directShareRecipients,e.currentUser.id);function A(){c(!0),e.onClickCreateLink()}return b.useEffect(()=>{c(!!e.shareLinkIsLoading)},[e.shareLinkIsLoading]),t.jsxs(t.Fragment,{children:[S&&t.jsxs("div",{className:"bg-white rounded-bottom-3 pt-3 px-3 mb-2",children:[t.jsx("div",{className:"d-flex justify-content-between align-items-center pb-3",children:t.jsx(Tt,{getRemoteUrl:()=>ve.safeUrlConcat(e.gatewayApiUrl,"v4/search"),getRemotePostBody:x,requestHeaders:e.searchRequestHeaders,formatRemoteSuggestions:m=>Fe(m==null?void 0:m.results,n,e.directShareRecipients,e.currentUser.id),recentSearches:u,selections:n,onSuggestionSelected:m=>a([...n,m]),removeSelection:m=>a(n.filter(p=>p.id!==m.id)),placeholder:Me(l?"searchPlaceholder":"searchPlaceholderNoClassrooms"),imageCdnUrl:e.imageCdnUrl,activationLength:2,fetchSelectionMembers:e.fetchRecipientUsers&&v,debounceTime:300,emptyStateImageUrl:e.emptyStateImageUrl,errorStateImageUrl:e.errorStateImageUrl,hasStudentExperience:r(E.StudentExperience)},(u==null?void 0:u.map(m=>m.id).join(":"))??"share:search")}),!n.length&&e.directShareRecipients.length?t.jsxs("div",{children:[t.jsx("h3",{className:"font-size-normal",children:t.jsx(j,{phrase:"sharedTo"})}),t.jsx(vt.Scrollbars,{autoHeight:!0,children:t.jsx("ul",{className:"list-unstyled",children:e.directShareRecipients.map(m=>t.jsx("li",{className:"mb-2 pe-1",children:t.jsx(Ot,{entity:m,imageCdnUrl:e.imageCdnUrl,removeRecipient:e.onClickRemoveRecipient,showDisplayName:r(E.StudentExperience)})},m.id))})})]}):t.jsx(t.Fragment,{}),!!n.length&&t.jsx("div",{className:"pb-3",children:t.jsx(Nn,{onClickShare:y,entity:e.entity,yearGroups:e.yearGroups,shareOverrideRestrictions:e.shareOverrideRestrictions})})]}),!n.length&&!s&&t.jsx("div",{className:`bg-white p-3 ${S?"rounded-3":"rounded-bottom-3"}`,children:t.jsxs("div",{children:[e.shareLink&&t.jsx("div",{className:"fw-semibold mb-2",children:t.jsx(j,{namespace:Se,phrase:"shareLink"})}),t.jsx(xn,{entity:e.entity,entityType:e.entityType,shareLink:e.shareLink,onClickShowSettings:e.onClickShowSettings,onClickCreateLink:A,shareLinkIsLoading:e.shareLinkIsLoading,canAddPolicies:e.canAddPolicies,privacy:e.privacy,entityTypeId:e.entity.typeId,onClickSavePrivacy:e.onClickSavePrivacy,enableIntegrations:e.enableIntegrationBanner,hasStudentExp:r(E.StudentExperience),yearGroups:e.yearGroups,shareOverrideRestrictions:e.shareOverrideRestrictions}),e.shareLink&&e.enableIntegrationBanner&&t.jsx("div",{className:`${(D=e.integrations)!=null&&D.length&&e.canEmbed?"float-end":""} mt-1 pt-1`,children:t.jsx(An,{integrations:e.integrations,url:e.shareLink.url,closePopup:e.closePopup,appLink:g?e.integrationSettingAppLink:e.messagePopupAppLink})}),e.shareLink&&e.canEmbed&&t.jsx("div",{className:"mt-1",children:t.jsx(nn,{onClickGetEmbedCode:e.onClickGetEmbedCode})}),e.shareLink&&e.canAddPolicies&&t.jsx("button",{className:"btn btn-link text-info mt-2 p-0",onClick:e.onClickShowSettings,children:t.jsx(j,{namespace:Se,phrase:"advancedSettings"})})]})}),s&&t.jsx("div",{className:"bg-white rounded-3 p-3 text-center",children:t.jsx(xt,{as:"div",animation:"border",role:"status"})})]})}const In=30;function rt(e){if(!e)return null;const n=new Date;return n.setDate(n.getDate()+In),n.toISOString()}const Ae="shared.linkExpiry",Tn=C.encloseNamespace(Ae);function On(e){const n=we();function a(){e.passwordProtectLink||n.setFieldValue("linkExpireDate",rt(!n.values.linkExpireDate))}return t.jsxs("div",{className:"d-flex justify-content-between align-items-center pb-3",children:[t.jsxs("div",{children:[t.jsx("label",{className:"m-0",htmlFor:"",children:t.jsx(j,{namespace:Ae,phrase:"linkExpirationHeading"})}),t.jsx("p",{className:"m-0",children:t.jsx(j,{namespace:Ae,phrase:"linkExpirationInfo"})})]}),t.jsx(Ke,{title:Tn("passwordProtected"),disable:!e.passwordProtectLink,spanHack:!0,trigger:"hover",children:t.jsx(tt,{onClick:a,on:!!n.values.linkExpireDate,disabled:e.passwordProtectLink,showStateWhenDisabled:!0})})]})}const Rn="_passwordButton_oj2vx_1",He={passwordButton:Rn},Dn="share.setPasswordInput",ye=C.encloseNamespace(Dn);function Un(e){var r;const[n,a]=pe.useState(!1),c=(r=we().errors)==null?void 0:r.password;return t.jsxs(t.Fragment,{children:[t.jsx("input",{className:`form-control ${c?"is-invalid":""}`,value:e.value,onChange:l=>{e.canEdit&&e.onChange(l.target.value)},type:n?"text":"password",placeholder:e.placeholder||ye("passwordPlaceholder"),readOnly:!e.canEdit}),!!c&&t.jsx(be.Control.Feedback,{type:"invalid",children:c}),!!e.canEdit&&t.jsx(J,{className:He.passwordButton,onClick:()=>a(!n),children:t.jsx(V,{svg:n?zt:Dt,title:ye(n?"hidePassword":"revealPassword"),tooltipPlacement:"top"})}),!e.canEdit&&!!e.canReset&&!!e.onReset&&t.jsx(J,{className:He.passwordButton,onClick:e.onReset,children:t.jsx(V,{svg:Qe,title:ye("resetPassword"),tooltipPlacement:"top"})})]})}const Ge="shared.linkPassword",Bn="********";function zn(e){var v;const{passwordProtectLink:n,setPasswordProtectLink:a}=e,s=we(),[c,r]=b.useState(!!((v=e.shareLink)!=null&&v.isPasswordProtected));function l(){var x;(x=e.shareLink)!=null&&x.isPasswordProtected&&s.setFieldValue("removePassword",n),s.setFieldValue("password",""),a(!n),s.setFieldValue("linkExpireDate",rt(!n))}function g(x){s.setFieldValue("password",x)}function y(){s.setFieldValue("password",""),s.setFieldValue("removePassword",!0),r(!1)}return t.jsxs("div",{className:"pb-3",children:[t.jsxs("div",{className:"d-flex justify-content-between align-items-center",children:[t.jsxs("div",{children:[t.jsx("label",{className:"m-0",htmlFor:"",children:t.jsx(j,{namespace:Ge,phrase:"passwordProtectHeading"})}),t.jsx("p",{className:"m-0",children:t.jsx(j,{namespace:Ge,phrase:"passwordProtectInfo"})})]}),t.jsx(tt,{onClick:l,on:n})]}),n&&t.jsx("div",{className:"position-relative mt-2",children:t.jsx(Un,{value:c?Bn:s.values.password,onChange:g,onReset:y,canEdit:!c,canReset:!0})})]})}const Vn="share.validation",Mn=F.object().shape({removePassword:F.boolean(),resourceId:F.string(),linkExpireDate:F.string().nullable(),password:F.string().test({name:"password-length",exclusive:!1,params:{},message:C.getPhrase(Vn,"minPassword"),test:e=>e!=null&&e.length?!(e.length<3):!0}).default("")}),ce="shared.share",Fn=C.encloseNamespace(ce);function Hn(e){const{hasPermissions:n}=ke(),[a,s]=b.useState(!!e.shareLink.isPasswordProtected);return t.jsxs($e,{children:[e.onClickDeleteLink&&t.jsxs("div",{className:"d-flex justify-content-between align-items-center pb-3",children:[t.jsxs("div",{children:[t.jsx("label",{className:"mb-0",children:t.jsx(j,{namespace:ce,phrase:"deleteLinkLabel"})}),t.jsx("p",{className:"mb-0",children:t.jsx(j,{namespace:ce,phrase:"deleteLinkDescription"})})]}),t.jsx(J,{onClick:e.onClickDeleteLink,className:"info-link justify-self-start",children:t.jsx(j,{namespace:ce,phrase:"deleteLink"})})]}),n(E.ManageShareLinkSettings)&&t.jsxs(t.Fragment,{children:[t.jsx(On,{passwordProtectLink:a}),e.shareOverrideRestrictions&&t.jsx(zn,{shareLink:e.shareLink,passwordProtectLink:a,setPasswordProtectLink:s})]}),t.jsxs(Y,{children:[t.jsx(Y.Cancel,{onClick:e.onClickCancel,text:Fn("back"),variant:"link"}),t.jsx(Y.Submit,{variant:"dark"})]})]})}function Gn(e){const n={password:"",removePassword:!1,linkExpireDate:e.shareLink.linkExpireDate,overrideRestrictions:e.shareLink.overrideRestrictions};return t.jsx(t.Fragment,{children:t.jsx(nt,{initialValues:n,onSubmit:e.onClickSaveLink,castInitialValues:!1,validationSchema:Mn,children:t.jsx(Hn,{entity:e.entity,entityType:e.entityType,config:e.config,shareLink:e.shareLink,entityId:e.entityId,onClickCancel:e.onClickCancel,analyticsOptions:e.analyticsOptions,privacy:e.privacy,onClickDeleteLink:e.onClickDeleteLink,hasStudentExp:e.hasStudentExp,shareOverrideRestrictions:e.shareOverrideRestrictions})})})}const Xn="shared.shared-utils",Xe=C.encloseNamespace(Xn),Wn={getShareIntegrations(e,n){return[{id:H.GoogleClassroom,name:Xe("googleClassroom"),enabled:e,settingName:Ne.ShareToGoogleClassroom},{id:H.MicrosoftTeams,name:Xe("msftTeams"),enabled:n,settingName:Ne.ShareToMicrosoftTeams}]}},ot="shared.share",I=C.encloseNamespace(ot);function qn(e){switch(e){case"video":return I("titleVideo");case"clip":return I("titleClip");case"interactive":return I("titleInteractive");case"series":return I("titleSeries");case"playlist":return I("titlePlaylist");case"subject":return I("titleTopic")}}function Zn(e,n){return Wn.getShareIntegrations(e,n).filter(s=>s.enabled).map(s=>s.id)}const Yn=e=>e==="video"||e==="interactive"||e==="clip",Jn=e=>e==="video"||e==="interactive"||e==="clip";function da(e){var M,te,Pe;const n=Ct(),a=Ht(),s=!e.gatewayApiUrl,[c,r]=b.useState("main"),{hasPermissions:l,hasLocalPermissions:g}=ke(),y=O(Ee.currentUser()),v=w.getFetchFunctionByType(e.entityType)(e.entityId,(M=y.data)==null?void 0:M.id),x=O(kt.config()),S=O(s&&Ee.token()),u=O(Z.getShareLinkByObjectId(e.entityId)),A=O(Z.getSentDirectShareByObjectId(e.entityId)),D=O(((te=y.data)==null?void 0:te.customerId)&&w.getDirectShareRecipientsRequest(y.data.customerId,A.data)),m=y.data&&Nt.getRecentlySharedTo(y.data.id),p=!!(m!=null&&m.length),U=O(p&&Z.getRecipientsById(m,y.data.customerId)),N=O(Z.getPrivacy(e.entityId)),T=O(((Pe=y.data)==null?void 0:Pe.isAuthenticated)&&St.yearGroups(y.data.customerId)),{shareToGoogleClassroom:B,shareToMicrosoftTeams:i,shareOverrideRestrictions:o,isLoadingSettings:h}=et(null);function d(P,L){var q;(q=L.recipients)!=null&&q.length&&Ie(n)(w.getDirectShareRecipientsRequest(P,L))}function f(P,L){Ie(n)(Z.getRecipientUsers(P,L))}function k(){u.data||w.createLink({dispatch:n,entity:v.data,entityType:e.entityType,alerts:a})}function z(P,L){w.updateLink(n,v.data,e.entityType,u.data,P,a,()=>r("main"),L)}function X(){w.deleteLink(n,v.data,e.entityType,u.data,a,()=>r("main"))}function W(P,L,q){const ct=P.map(ne=>({id:ne.id,typeId:ne.typeId}));w.createOrUpdateDirectShare({dispatch:n,entity:v.data,entityType:e.entityType,currentUser:y.data,recipients:ct,message:L,sentDirectShare:A.data,onSuccess:ne=>{d(y.data.customerId,ne),a.success({heading:Lt.Success,message:I("directShareSuccess",{object:v.data.name,recipients:w.getShareRecipientsPhrase(P)}),type:Pt.Success})},onError:()=>a.error(I("directShareError",{name:v.data.name})),onDone:q})}function $(P,L){w.removeDirectShareRecipient(n,P,e.entityType,A.data,q=>d(y.data.customerId,q),()=>{a.error(I("removeDirectShareError")),L&&L()})}function ee(P,L){if(P==="private"){X();return}wt(n,Z.updatePrivacy(u.data.id,P,L,()=>a.success(I("privaciesSuccess",{name:v.data.name})),()=>a.error(I("privaciesError",{name:v.data.name}))))}function de(){return s?{authorization:`Bearer ${S.data.value}`}:null}const K=!!y.data&&!!x.data&&(!s||!!S.data)&&!!A.hasCompleted&&!!N.data&&!!v.data&&!h&&!!T.hasCompleted;return t.jsx(We.Provider,{value:ot,children:t.jsx(At,{title:qn(e.entityType),closePopup:e.closePopup,showLoadingSpinner:!K,contentClassName:K&&c?"bg-transparent border-0":"",bodyClassName:"p-0",children:(()=>{if(!K)return t.jsx(t.Fragment,{});switch(c){case"main":return t.jsx(En,{shareLink:u.data,shareLinkIsLoading:u.isFetching,entity:v.data,entityType:e.entityType,directShareRecipients:D.data||[],recentlySharedTo:U.data||[],onClickCreateLink:k,onClickShowSettings:()=>r("link-settings"),onClickShare:W,onClickRemoveRecipient:$,onClickGetEmbedCode:()=>r("copy-embed"),analyticsOptions:w.getAnalyticsOptions(e.entityType),gatewayApiUrl:e.gatewayApiUrl||x.data.gatewayApiUrl,imageCdnUrl:x.data.imageCdnUrl,searchRequestHeaders:de(),currentUser:y.data,fetchRecipientUsers:f,privacy:N.data,onClickSavePrivacy:ee,canAddPolicies:Jn(e.entityType),emptyStateImageUrl:e.emptyStateImageUrl,errorStateImageUrl:e.errorStateImageUrl,integrations:Zn(B,i),integrationSettingAppLink:e.integrationSettingAppLink,messagePopupAppLink:e.messagePopupAppLink,closePopup:e.closePopup,enableIntegrationBanner:e.enableIntegrationBanner,canEmbed:Yn(e.entityType),yearGroups:T.data,shareOverrideRestrictions:o,hasLocalPermissions:g});case"link-settings":return t.jsx("div",{className:"bg-white p-3 rounded-bottom-3",children:t.jsx(Gn,{entity:v.data,entityType:e.entityType,config:x.data,shareLink:u.data,entityId:e.entityId,analyticsOptions:w.getAnalyticsOptions(e.entityType),onClickSaveLink:z,onClickDeleteLink:X,onClickCancel:()=>r("main"),privacy:N.data,hasStudentExp:l(E.StudentExperience),shareOverrideRestrictions:o})});case"copy-embed":return t.jsx("div",{className:"bg-white p-3 rounded-bottom-3",children:t.jsx($t,{entity:v.data,entityType:e.entityType,liteUrl:x.data.liteUrl,shareLink:u.data,entityId:e.entityId,analyticsOptions:w.getAnalyticsOptions(e.entityType),onClickCancel:()=>r("main")})})}})()})})}export{da as ShareView};
2
- //# sourceMappingURL=h4z9gHMh.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"h4z9gHMh.chunk.js","sources":["../../../../../node_modules/toggle-selection/index.js","../../../../../node_modules/copy-to-clipboard/index.js","../../../../../node_modules/react-copy-to-clipboard/lib/Component.js","../../../../../node_modules/react-copy-to-clipboard/lib/index.js","../../../../libs/shared/src/apps/share/components/embed-size/EmbedSize.tsx","../../../../libs/shared/src/utils/EmbedHelper.ts","../../../../libs/shared/src/apps/share/components/copy-embed-html/CopyEmbedHtml.tsx","../../../../libs/shared/src/apps/share/views/share/components/copy-embed/CopyEmbed.tsx","../../../../libs/shared/src/images/svg/objects/CodeSvg.tsx","../../../../libs/shared/src/apps/share/components/get-embed-code/GetEmbedCode.tsx","../../../../libs/shared/src/apps/share/components/share-link-info/ShareLinkInfo.tsx","../../../../libs/shared/src/apps/share/views/share/components/share-integrations/avatars/GoogleClassroomAvatar.tsx","../../../../libs/shared/src/apps/share/views/share/components/share-integrations/avatars/MicrosoftTeamsAvatar.tsx","../../../../libs/shared/src/apps/share/views/share/components/share-integrations/ShareIntegrationsStack.tsx","../../../../libs/shared/src/components/copy-input/CopyInput.tsx","../../../../libs/shared/src/apps/share/views/share/components/share-as-link/ShareAsLink.tsx","../../../../libs/shared/src/hooks/useScript.ts","../../../../libs/shared/src/apps/share/views/share/components/share-integrations/useGoogleClassrooms.ts","../../../../libs/shared/src/apps/share/views/share/components/share-integrations/useMicrosoftTeamsShare.ts","../../../../libs/shared/src/components/looking-for-integration/LookingForIntegration.tsx","../../../../libs/shared/src/enums/IntegrationId.ts","../../../../libs/shared/src/apps/share/views/share/components/share-integrations/ShareIntegrations.tsx","../../../../libs/shared/src/components/video-list/components/video-item-restriction-badge/RestrictionBadge.tsx","../../../../libs/shared/src/components/video-list/components/video-item-restriction-badge/VideoItemRestrictionBadge.tsx","../../../../libs/shared/src/apps/share/views/share/components/share-message/ShareMessage.tsx","../../../../libs/shared/src/apps/share/views/share/components/main-share/MainShare.tsx","../../../../libs/shared/src/apps/share/utils/LinkExpiryHelper.ts","../../../../libs/shared/src/apps/share/components/link-expiry/LinkExpiry.tsx","../../../../libs/shared/src/apps/share/components/set-password-input/SetPasswordInput.tsx","../../../../libs/shared/src/apps/share/components/link-password/LinkPassword.tsx","../../../../libs/shared/src/apps/share/validation/ShareLinkSettingsValidationSchema.ts","../../../../libs/shared/src/apps/share/views/share/components/share-settings/ShareSettings.tsx","../../../../libs/shared/src/utils/IntegrationHelper.ts","../../../../libs/shared/src/apps/share/views/share/ShareView.tsx"],"sourcesContent":["\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // avoid screen readers from reading out loud the text\n mark.ariaHidden = \"true\"\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CopyToClipboard = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _copyToClipboard = _interopRequireDefault(require(\"copy-to-clipboard\"));\n\nvar _excluded = [\"text\", \"onCopy\", \"options\", \"children\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar CopyToClipboard = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(CopyToClipboard, _React$PureComponent);\n\n var _super = _createSuper(CopyToClipboard);\n\n function CopyToClipboard() {\n var _this;\n\n _classCallCheck(this, CopyToClipboard);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n var _this$props = _this.props,\n text = _this$props.text,\n onCopy = _this$props.onCopy,\n children = _this$props.children,\n options = _this$props.options;\n\n var elem = _react[\"default\"].Children.only(children);\n\n var result = (0, _copyToClipboard[\"default\"])(text, options);\n\n if (onCopy) {\n onCopy(text, result);\n } // Bypass onClick if it was present\n\n\n if (elem && elem.props && typeof elem.props.onClick === 'function') {\n elem.props.onClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(CopyToClipboard, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n _text = _this$props2.text,\n _onCopy = _this$props2.onCopy,\n _options = _this$props2.options,\n children = _this$props2.children,\n props = _objectWithoutProperties(_this$props2, _excluded);\n\n var elem = _react[\"default\"].Children.only(children);\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(elem, _objectSpread(_objectSpread({}, props), {}, {\n onClick: this.onClick\n }));\n }\n }]);\n\n return CopyToClipboard;\n}(_react[\"default\"].PureComponent);\n\nexports.CopyToClipboard = CopyToClipboard;\n\n_defineProperty(CopyToClipboard, \"defaultProps\", {\n onCopy: undefined,\n options: undefined\n});","\"use strict\";\n\nvar _require = require('./Component'),\n CopyToClipboard = _require.CopyToClipboard;\n\nCopyToClipboard.CopyToClipboard = CopyToClipboard;\nmodule.exports = CopyToClipboard;","import React from 'react';\nimport { Dropdown } from 'react-bootstrap';\n\nimport { Checkbox } from 'libs/shared/components/forms/form-checkbox/Checkbox';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { EmbedResolution } from 'libs/shared/utils/EmbedHelper';\n\nconst namespace = 'share.embedSize';\n\ninterface EmbedSizeProps {\n autoplay: boolean;\n setAutoplay: (autoplay: boolean) => void;\n videoSize: EmbedResolution;\n setVideoSize: (videoSize: EmbedResolution) => void;\n videoSizes: EmbedResolution[];\n}\n\nexport function EmbedSize(props: EmbedSizeProps): React.ReactElement {\n const {\n autoplay,\n setAutoplay,\n videoSize,\n setVideoSize,\n videoSizes\n } = props;\n\n return (\n <div className='d-flex align-items-center'>\n {!!videoSizes.length &&\n <>\n <div className='me-1'>\n <Text namespace={namespace} phrase='videoSize' />\n </div>\n <div className='pe-3'>\n <Dropdown>\n <Dropdown.Toggle id='embed-resolution' variant='outline-dark'>\n {videoSize.label}\n </Dropdown.Toggle>\n\n <Dropdown.Menu>\n {videoSizes.map(size => (\n <Dropdown.Item\n key={`${size.width}x${size.height}`}\n onClick={() => setVideoSize(size)}\n >\n {size.label}\n </Dropdown.Item>\n ))}\n </Dropdown.Menu>\n </Dropdown>\n </div>\n </>\n }\n <div className='me-2'>\n <Text namespace={namespace} phrase='autoplay' />\n </div>\n <Checkbox id='autoplay-checkbox' checked={autoplay} onChange={() => setAutoplay(!autoplay)} />\n </div>\n );\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nconst namespace = 'shared.shared-utils';\n\nexport interface EmbedResolution {\n width: '100%' | '640' | '1014' | '1280';\n height: '100%' | '360' | '576' | '720';\n label: string;\n}\n\nexport const EmbedHelper = {\n getEmbedResolutions(includeResponsive: boolean = true): EmbedResolution[] {\n const resolutions: EmbedResolution[] = [\n {\n label: LanguageService.getPhrase(namespace, 'small'),\n width: '640',\n height: '360'\n },\n {\n label: LanguageService.getPhrase(namespace, 'medium'),\n width: '1014',\n height: '576'\n },\n {\n label: LanguageService.getPhrase(namespace, 'large'),\n width: '1280',\n height: '720'\n }\n ];\n\n if (includeResponsive) {\n resolutions.unshift({\n label: LanguageService.getPhrase(namespace, 'responsive'),\n width: '100%',\n height: '100%'\n });\n }\n return resolutions;\n },\n getEmbedString(options: {\n size: EmbedResolution;\n url: string;\n }): string {\n const { url, size } = options;\n\n const isResponsive = size.width === '100%';\n\n const dynamicAttributes = isResponsive\n ? 'style=\"position:absolute; top:0; left:0; width:100%; height:100%;\"'\n : `width=\"${size.width}\" height=\"${size.height}\"`;\n\n const fixedAttributes = 'frameborder=\"0\" allowfullscreen webkitallowfullscreen mozallowfullscreen allow=\"autoplay\"';\n\n const src = `src=\"${url}\"`;\n\n const iframe = `<iframe ${dynamicAttributes} ${fixedAttributes} ${src}></iframe>`;\n\n if (isResponsive)\n return `<div style=\"padding:56.25% 0 0 0; position:relative;\">${iframe}</div>`;\n\n return iframe;\n },\n buildEmbedUrl(options: {\n embedUrl: string;\n host: string;\n shareId: string;\n autoplay: boolean;\n consumerKey?: string;\n }): string {\n const { embedUrl, host, shareId, autoplay, consumerKey } = options;\n\n /**\n * embedUrl didn't always exist in Share API. So we use it if it's there, but fall back to building\n * the share link if it's not. - Sha\n */\n let baseUrl = embedUrl;\n\n if (!baseUrl)\n baseUrl = UrlHelper.safeUrlConcat(host, `share/embed/${shareId}`);\n\n const params: HashObject = {};\n\n if (autoplay)\n params.a = true;\n\n if (consumerKey)\n params.consumerKey = consumerKey;\n\n return UrlHelper.urlBuilder(baseUrl, params);\n }\n};","import React from 'react';\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EventVersion, ShareDescriptors, UserAction } from 'libs/analytics/interfaces';\n\nimport { EmbedSize } from 'libs/shared/apps/share/components/embed-size/EmbedSize';\nimport { SharableEntityType, ShareViewHelper } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { BaseObject, PropsWithAnalyticsOptions } from 'libs/shared/interfaces';\nimport { EmbedHelper, EmbedResolution } from 'libs/shared/utils/EmbedHelper';\n\nimport styles from './copy-embed-html.module.scss';\n\nconst namespace = 'share.copyEmbedHtml';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface EmbedDetails {\n size: EmbedResolution;\n autoplay: boolean;\n}\n\ntype CopyEmbedHtmlProps = PropsWithAnalyticsOptions<{\n entity: BaseObject;\n entityType: SharableEntityType;\n liteUrl: string;\n entityId: string;\n shareId: string;\n embedUrl: string;\n hideLabel?: boolean;\n hasInputBg?: boolean;\n onCopy?: (details: EmbedDetails) => void;\n}>;\n\nexport function CopyEmbedHtml(props: CopyEmbedHtmlProps): JSX.Element {\n const videoSizes = EmbedHelper.getEmbedResolutions();\n\n const [ copyBtnPhrase, setCopyBtnPhrase ] = React.useState<'copy' | 'copied'>('copy');\n const [ autoplay, setAutoplay ] = React.useState(false);\n const [ videoSize, setVideoSize ] = React.useState<EmbedResolution>(videoSizes.find(s => s.width === '100%'));\n\n const [ logged, setLogged ] = React.useState(false);\n function onCopy(): void {\n setCopyBtnPhrase('copied');\n setTimeout(() => setCopyBtnPhrase('copy'), 2000);\n\n // Because our users are double clickers\n if (logged)\n return;\n\n setLogged(true);\n\n if (typeof props.onCopy === 'function') {\n props.onCopy({\n size: videoSize,\n autoplay\n });\n return;\n }\n\n AnalyticsHelper.logUserAction({\n ...props.entity,\n embedDetails: {\n size: videoSize,\n autoplay\n }\n }, AnalyticsHelper.mergeOptions(ShareViewHelper.getAnalyticsOptions(props.entityType), [\n {\n actionType: UserAction.Share,\n descriptor: ShareDescriptors.CopyEmbedHtml,\n eventVersion: EventVersion.V3\n },\n props.analyticsOptions\n ]));\n }\n\n const url = EmbedHelper.buildEmbedUrl({\n embedUrl: props.embedUrl,\n host: props.liteUrl,\n shareId: props.shareId,\n autoplay\n });\n \n const embedString = EmbedHelper.getEmbedString({\n url,\n size: videoSize\n });\n\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n {!props.hideLabel &&\n <label><Text namespace={namespace} phrase='label' /></label>\n }\n <div className='position-relative mb-3'>\n <textarea\n className={classNames('form-control rounded w-100 h-100', !props.hasInputBg && styles.embedHtmlInput)}\n spellCheck={false}\n value={embedString}\n rows={7}\n readOnly\n />\n <CopyToClipboard onCopy={onCopy} text={embedString}>\n <button className={`btn btn-outline-dark border border-secondary position-absolute bottom-0 end-0 ${styles.copyBtnContainer}`} type='button'>\n {getPhrase(copyBtnPhrase)}\n </button>\n </CopyToClipboard>\n </div>\n <EmbedSize\n autoplay={autoplay}\n setAutoplay={setAutoplay}\n videoSize={videoSize}\n setVideoSize={setVideoSize}\n videoSizes={videoSizes}\n />\n </LanguageNamespaceContext.Provider>\n );\n}\n","import React from 'react';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { CopyEmbedHtml } from 'libs/shared/apps/share/components/copy-embed-html/CopyEmbedHtml';\nimport { SharableEntity, SharableEntityType } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ShareLink } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.share';\n\ninterface CopyEmbedProps {\n entity: SharableEntity;\n entityType: SharableEntityType;\n shareLink: ShareLink;\n liteUrl: string;\n entityId: string;\n analyticsOptions: AnalyticsOptions;\n onClickCancel: () => void;\n}\n\nexport function CopyEmbed(props: CopyEmbedProps) {\n return (\n <>\n <div className='mb-3'>\n <CopyEmbedHtml\n embedUrl={props.shareLink.embedUrl}\n entity={props.entity}\n entityType={props.entityType}\n liteUrl={props.liteUrl}\n entityId={props.entityId}\n shareId={props.shareLink.id}\n analyticsOptions={props.analyticsOptions}\n />\n </div>\n\n <PopupButtons>\n <DivButton onClick={props.onClickCancel} className='btn btn-outline-dark'>\n <Text namespace={namespace} phrase='back' />\n </DivButton>\n </PopupButtons>\n </>\n );\n}","import React from 'react';\n\nexport function CodeSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M9.758 8.424a.6.6 0 1 0-.849-.848l-4 4a.6.6 0 0 0 0 .848l4 4a.6.6 0 0 0 .849-.848L6.182 12zm5.333-.848a.6.6 0 1 0-.849.848L17.818 12l-3.576 3.576a.6.6 0 0 0 .849.848l4-4a.6.6 0 0 0 0-.848z'\n clipRule='evenodd'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { CodeSvg } from 'libs/shared/images/svg/objects/CodeSvg';\n\nconst namespace = 'share.getEmbedCode';\n\ninterface GetEmbedCodeProps {\n onClickGetEmbedCode: () => void\n minimal?: boolean;\n}\n\nexport function GetEmbedCode(props: GetEmbedCodeProps) {\n return (\n <DivButton\n onClick={props.onClickGetEmbedCode}\n className={`d-inline-block p-1 pe-2 rounded-1 hover-bg-light-blue`}\n >\n <div className='d-flex align-items-center'>\n <div className={classNames('me-2', !props.minimal && 'bg-dark text-white rounded-1')}>\n <SvgContainer\n svg={CodeSvg}\n size={props.minimal ? SvgContainerSize.Standard : SvgContainerSize.Large}\n />\n </div>\n <Text namespace={namespace} phrase='getEmbedCode' />\n </div>\n </DivButton>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SharePrivacy } from 'libs/shared/apps/share/interfaces/SharePrivacy';\nimport { ShareLinkHelper } from 'libs/shared/apps/share/utils/ShareLinkHelper';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ShareLinkStatus } from 'libs/shared/enums/ShareLinkStatus';\nimport { CheckSvg } from 'libs/shared/images/svg/status/CheckSvg';\nimport { BaseObject, YearGroup } from 'libs/shared/interfaces';\n\nimport { SharePrivacyResponse } from '../../interfaces/responses/SharePrivacyResponse';\n\nconst namespace = 'share.shareLinkInfo';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ShareLinkInfoProps {\n linkExpireDate: string;\n isPasswordProtected: boolean;\n privacy: SharePrivacyResponse;\n status: ShareLinkStatus;\n entityTypeId: MasterType;\n hasStudentExp: boolean;\n onClickSavePrivacy?: (privacy: SharePrivacy, onClickSavePrivacy: boolean) => void;\n entity: BaseObject;\n yearGroups: YearGroup[];\n shareOverrideRestrictions: boolean;\n}\n\ninterface ShareLinkItemProps {\n active: boolean;\n title: string;\n description: string;\n onClick: () => void\n}\n\nfunction ShareLinkItem(props: ShareLinkItemProps) {\n const { active, title, description, onClick } = props;\n\n return (\n <button\n className={`${active ? 'bg-light-blue' : ''} dropdown-item d-flex align-items-center justify-content-between`}\n onClick={!active ? onClick : null}\n type='button'\n >\n <div className='me-4'>\n <p className='fw-semibold mb-1'>{title}</p>\n <p className='font-size-sm mb-0'>{description}</p>\n </div>\n {active && <SvgContainer svg={CheckSvg} />}\n </button>\n );\n}\n\nexport function ShareLinkInfo(props: ShareLinkInfoProps): JSX.Element {\n const [ canManageAccess, setCanManageAccess ] = React.useState(false);\n const [ privacy, setPrivacy ] = React.useState<SharePrivacy>(null);\n\n const { icon, text } = ShareLinkHelper.getIconAndText(props);\n\n React.useEffect(() => {\n setCanManageAccess(props.privacy.canManageAccess);\n setPrivacy(props.privacy.privacy);\n }, [props.privacy]);\n\n const canManageAccessPrivacy = canManageAccess ? 'just_my_customer' : 'protected';\n\n const canUpdatePrivacy = (\n !props.isPasswordProtected &&\n !props.linkExpireDate &&\n (props.shareOverrideRestrictions && !props.hasStudentExp)\n );\n\n return (\n <div className='d-flex align-items-center'>\n {(canUpdatePrivacy)\n ? (\n <div className='btn-group'>\n <button\n className={`btn border-0 info-link dropdown-toggle p-1 bg-light-blue-hover`}\n data-bs-toggle='dropdown'\n aria-label={getPhrase('ariaPrivacy')}\n >\n <SvgContainer svg={icon} className='svg-container me-1' />\n <span className='me-1'>{text}</span>\n </button>\n <ul className='dropdown-menu cursor-pointer'>\n {canManageAccess &&\n <li>\n <ShareLinkItem\n active={privacy === 'public'}\n title={getPhrase('public')}\n description={getPhrase('publicDescription')}\n onClick={() => props.onClickSavePrivacy('public', false)}\n />\n </li>\n }\n <li>\n <ShareLinkItem\n active={privacy === canManageAccessPrivacy && props.privacy.overrideRestrictions}\n title={getPhrase('justMySchool')}\n description={canManageAccess ? getPhrase('justMySchoolDescription') : getPhrase('clickViewOnly')}\n onClick={() => props.onClickSavePrivacy(canManageAccessPrivacy, true)}\n />\n </li>\n <li>\n <ShareLinkItem\n active={privacy === canManageAccessPrivacy && !props.privacy.overrideRestrictions}\n title={getPhrase('respectRatings')}\n description={ShareLinkHelper.getRespectRatingText(\n props.entity,\n props.yearGroups,\n props.hasStudentExp\n )}\n onClick={() => props.onClickSavePrivacy(canManageAccessPrivacy, false)}\n />\n </li>\n <li>\n <ShareLinkItem\n active={privacy === 'private'}\n title={getPhrase('private')}\n description={getPhrase('privateDescription')}\n onClick={() => props.onClickSavePrivacy('private', false)}\n />\n </li>\n </ul>\n </div>\n )\n : (\n <>\n <SvgContainer svg={icon} className='svg-container me-1' />\n <span>{text}</span>\n </>\n )\n }\n </div>\n );\n}","import React from 'react';\n\nexport function GoogleClassroomAvatar(): JSX.Element {\n return (\n <svg width='24' height='24' viewBox='0 0 24 24' fill='none'>\n <circle cx='12' cy='12' r='12' fill='url(#pattern0)'/>\n <defs>\n <pattern id='pattern0' patternContentUnits='objectBoundingBox' width='1' height='1'>\n <use xlinkHref='#image0_3558_14996' transform='scale(0.00520833)'/>\n </pattern>\n <image id='image0_3558_14996' width='192' height='192' xlinkHref='data:image/png;base64,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'/>\n </defs>\n </svg>\n );\n}","import React from 'react';\n\nexport function MicrosoftTeamsAvatar(): JSX.Element {\n return (\n <svg viewBox='0 0 40 40' fill='none'>\n <path d='M29.692 15.31c.58 0 1.146-.173 1.628-.5a2.96 2.96 0 001.078-1.331 3.004 3.004 0 00-.634-3.235 2.918 2.918 0 00-1.5-.812 2.894 2.894 0 00-1.693.169 2.938 2.938 0 00-1.314 1.093 2.997 2.997 0 00.364 3.748 2.91 2.91 0 002.071.869zM20.043 26.267V13.849a.9.9 0 00-.259-.633.877.877 0 00-.624-.262H6.883a.877.877 0 00-.624.262.9.9 0 00-.259.633v12.418c0 .24.092.469.257.64.165.172.39.27.626.276H19.16a.899.899 0 00.626-.276.923.923 0 00.257-.64zm-3.51-10.389v1.92h-2.37v6.68H11.88V17.93H9.51v-2.182h7.022v.13z' fill='#fff'/>\n <path d='M21.874 14.132v.917a4.03 4.03 0 002.05-1.47c.512-.699.79-1.545.793-2.415 0-1.1-.431-2.154-1.199-2.932a4.065 4.065 0 00-2.893-1.214 4.065 4.065 0 00-2.894 1.214 4.175 4.175 0 00-1.199 2.932h2.391a2.996 2.996 0 012.061.887c.55.552.868 1.297.89 2.081zM26.332 17.1h-4.458v8.883c0 .8-.309 1.566-.86 2.138-.552.57-1.302.9-2.091.917h-4.588a7.047 7.047 0 003.265 3.317c1.427.7 3.046.887 4.593.532a6.99 6.99 0 003.918-2.486 7.152 7.152 0 001.535-4.418v-7.551a1.348 1.348 0 00-.385-.942 1.313 1.313 0 00-.929-.39zM32.772 17.1h-3.597c.206.414.316.87.323 1.332v7.551a9.1 9.1 0 01-.516 2.859c.236.021.474.021.71 0a4.28 4.28 0 003.046-1.278A4.394 4.394 0 0034 24.477v-6.045c0-.339-.126-.665-.354-.912a1.307 1.307 0 00-.874-.42z' fill='#fff'/>\n </svg>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\n\nimport { GoogleClassroomAvatar } from './avatars/GoogleClassroomAvatar';\nimport { MicrosoftTeamsAvatar } from './avatars/MicrosoftTeamsAvatar';\n\nimport styles from './share-integrations.module.scss';\n\nconst namespace = 'share.shareIntegrations';\n\ninterface ShareIntegrationsStackProps {\n size?: 'sm' | 'md';\n noTooltip?: boolean;\n}\n\nexport function ShareIntegrationsStack(props?: ShareIntegrationsStackProps): JSX.Element {\n const className = classNames(\n styles.avatar,\n props?.size === 'sm' && styles.small,\n props?.size !== 'sm' && 'border',\n 'rounded-circle overflow-hidden'\n );\n\n return (\n <Tooltip title={LanguageService.getPhrase(namespace, 'shareThroughIntegrations')} spanHack disable={props.noTooltip}>\n <ul className='list-unstyled d-flex mb-0'>\n <li className={className} style={{ zIndex: 1 }}>\n <GoogleClassroomAvatar />\n </li>\n\n <li className={`${className} ${styles.msTeamsContainer}`} style={{ zIndex: 0 }}>\n <MicrosoftTeamsAvatar />\n </li>\n </ul>\n </Tooltip>\n );\n}","import * as React from 'react';\nimport { Form } from 'react-bootstrap';\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { CopySvg } from 'libs/shared/images/svg/actions/CopySvg';\nimport { CheckSvg } from 'libs/shared/images/svg/status/CheckSvg';\n\nimport { IconButton } from '../icon-button/IconButton';\n\nimport styles from './copy-input.module.scss';\n\nconst namespace = 'shared.copyInput';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface CopyInputProps {\n value: string;\n label?: string;\n // Greyed means the input will be greyed out. Normal means it will appear like a normal input\n styling?: 'greyed' | 'normal' | 'normal-v2';\n onCopy?: () => void;\n copyText?: string;\n copiedText?: string;\n showCopiedText?: boolean;\n}\n\nCopyInput.defaultProps = {\n styling: 'normal'\n};\n\nexport function CopyInput(props: CopyInputProps): JSX.Element {\n const [ localShowCopiedText, setLocalShowCopiedText ] = React.useState(props.showCopiedText || false);\n\n function revertLocalShowCopiedText() {\n setTimeout(() => setLocalShowCopiedText(false), 2000);\n }\n\n function onCopy(): void {\n if (props.onCopy)\n props.onCopy();\n\n if (localShowCopiedText)\n return;\n\n setLocalShowCopiedText(true);\n revertLocalShowCopiedText();\n }\n\n React.useEffect(() => {\n if (!props.showCopiedText)\n return;\n \n revertLocalShowCopiedText();\n }, [props.showCopiedText]);\n\n function Button() {\n if (props.styling === 'normal-v2') {\n return (\n <CopyToClipboard text={props.value} onCopy={onCopy}>\n <IconButton\n role={localShowCopiedText ? 'status' : ''}\n svg={localShowCopiedText ? CheckSvg : CopySvg}\n className={classNames(\n styles.copyBtn,\n 'btn py-0 text-nowrap',\n localShowCopiedText ? 'btn-success text-white' : 'btn-outline-dark border-secondary'\n )}\n >\n {localShowCopiedText ?\n props.copiedText || getPhrase('copiedLink') :\n props.copyText || getPhrase('copy')\n }\n </IconButton>\n </CopyToClipboard>\n );\n }\n\n return (\n <CopyToClipboard text={props.value} onCopy={onCopy}>\n <button\n role={localShowCopiedText ? 'status' : ''}\n className={`btn btn-outline-dark border border-secondary py-0 text-nowrap`}\n >\n {localShowCopiedText ?\n props.copiedText || getPhrase('copied') :\n props.copyText || getPhrase('copy')\n }\n </button>\n </CopyToClipboard>\n );\n }\n\n const input = (\n <div className={props.styling === 'normal-v2' ? 'd-flex flex-row gap-2 position-relative w-100' : 'input-group'}>\n <input\n type='text'\n autoComplete='off'\n className={classNames('form-control', props.styling === 'normal' && props.styling)}\n spellCheck={false}\n value={props.value}\n readOnly\n />\n <Button />\n </div>\n );\n\n if (props.label) {\n return (\n <Form.Group className='form-group'>\n <Form.Label>{props.label}</Form.Label>\n {input}\n </Form.Group>\n );\n }\n\n return input;\n}\n","import React from 'react';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EventVersion, ShareDescriptors, UserAction } from 'libs/analytics/interfaces';\n\nimport { ShareLinkInfo } from 'libs/shared/apps/share/components/share-link-info/ShareLinkInfo';\nimport { SharePrivacyResponse } from 'libs/shared/apps/share/interfaces/responses/SharePrivacyResponse';\nimport { SharePrivacy } from 'libs/shared/apps/share/interfaces/SharePrivacy';\nimport { ShareIntegrationsStack } from 'libs/shared/apps/share/views/share/components/share-integrations/ShareIntegrationsStack';\nimport { SharableEntityType, ShareViewHelper } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { CopyInput } from 'libs/shared/components/copy-input/CopyInput';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { LinkSvg } from 'libs/shared/images/svg/objects/LinkSvg';\nimport { BaseObject, ShareLink, YearGroup } from 'libs/shared/interfaces';\n\n\nconst namespace = 'share.shareAsLink';\n\ninterface ShareAsLinkProps {\n entity: BaseObject;\n entityType: SharableEntityType;\n shareLink: ShareLink;\n onClickShowSettings: () => void;\n onClickCreateLink: () => void;\n shareLinkIsLoading?: boolean;\n canAddPolicies: boolean;\n privacy: SharePrivacyResponse;\n entityTypeId: MasterType;\n onClickSavePrivacy: (privacy: SharePrivacy, overrideRestrictions: boolean) => void;\n enableIntegrations: boolean;\n hasStudentExp: boolean;\n yearGroups: YearGroup[];\n shareOverrideRestrictions: boolean;\n}\n\nexport function ShareAsLink(props: ShareAsLinkProps): React.ReactElement {\n const [ logged, setLogged ] = React.useState(false);\n\n function onCopy(): void {\n // Because our users are double clickers\n if (logged)\n return;\n\n setLogged(true);\n\n AnalyticsHelper.logUserAction({\n id: props.entity.id,\n name: props.entity.name\n }, AnalyticsHelper.mergeOptions(ShareViewHelper.getAnalyticsOptions(props.entityType), {\n actionType: UserAction.Share,\n descriptor: ShareDescriptors.CopyLink,\n eventVersion: EventVersion.V3\n }));\n }\n\n return (\n <>\n <div className='d-flex justify-content-between align-items-center'>\n <div className={`${props.shareLink ? 'w-100' : 'w-75 d-flex align-items-center'}`}>\n {props.shareLink\n ? (\n <>\n <div className='d-flex justify-content-between align-items-center mb-1'>\n <ShareLinkInfo\n linkExpireDate={props.shareLink.linkExpireDate}\n isPasswordProtected={props.shareLink.isPasswordProtected}\n privacy={props.privacy}\n entityTypeId={props.shareLink.objectTypeId}\n status={props.shareLink.status}\n onClickSavePrivacy={props.onClickSavePrivacy}\n hasStudentExp={props.hasStudentExp}\n entity={props.entity}\n yearGroups={props.yearGroups}\n shareOverrideRestrictions={props.shareOverrideRestrictions}\n />\n </div>\n <CopyInput value={props.shareLink.url} onCopy={onCopy} />\n </>\n ) : (\n <div className='d-flex align-items-center'>\n <div className='me-2'>\n {props.enableIntegrations ? (\n <ShareIntegrationsStack />\n ) : (\n <SvgContainer svg={LinkSvg} className='svg-container' />\n )}\n </div>\n \n <span className='fw-semibold'><Text namespace={namespace} phrase='createLink' /></span>\n </div>\n )\n }\n </div>\n {!props.shareLink &&\n <DivButton className='info-link' onClick={props.onClickCreateLink}>\n <Text phrase='createLink' />\n </DivButton>\n }\n </div>\n </>\n );\n}","import React from 'react';\n\nimport { HashObject } from 'libs/analytics/interfaces';\n\n/**\n * We only need to load any script once.\n */\nconst loadedScripts: HashObject<boolean> = {};\n\nexport function useScript(src: string, shouldLoad: boolean): boolean {\n const [ loaded, setLoaded ] = React.useState(false);\n\n React.useEffect(() => {\n if (!src || !shouldLoad || loadedScripts[src])\n return;\n\n const script = document.createElement('script');\n\n script.src = src;\n script.async = true;\n script.onload = () => {\n loadedScripts[src] = true;\n /**\n * Onload event is fired before script content is parsed.\n * By calling set timeout, we ensure setLoaded is called after\n * the script is parsed in the event loop.\n */\n window.setTimeout(() => setLoaded(true), 0);\n };\n\n document.body.appendChild(script);\n\n return () => {\n script.onload = null;\n document.body.removeChild(script);\n };\n }, [ src, shouldLoad ]);\n\n return loadedScripts[src] || loaded;\n}","import React from 'react';\n\nimport { useScript } from 'libs/shared/hooks/useScript';\n\nconst GOOGLE_CLASSROOM_CONTAINER_ID = 'g-share-to-classroom';\n\nexport function useGoogleClassrooms(shouldLoad: boolean): string {\n /**\n * Google sdk reads the config off the window.\n */\n if (shouldLoad)\n (window as any).___gcfg = { parsetags: 'explicit' };\n\n const loaded = useScript('https://apis.google.com/js/platform.js', shouldLoad);\n\n React.useEffect(() => {\n if (!shouldLoad || !loaded)\n return;\n\n window.gapi?.sharetoclassroom?.go(GOOGLE_CLASSROOM_CONTAINER_ID);\n }, [ shouldLoad, loaded ]);\n\n return GOOGLE_CLASSROOM_CONTAINER_ID;\n}","import React from 'react';\n\nimport { useScript } from 'libs/shared/hooks/useScript';\n\nexport function useMicrosoftTeamsShare(shouldLoad: boolean): void {\n const loaded = useScript('https://teams.microsoft.com/share/launcher.js', shouldLoad);\n\n React.useEffect(() => {\n if (!shouldLoad || !loaded)\n return;\n\n window.shareToMicrosoftTeams?.renderButtons();\n }, [ shouldLoad, loaded ]);\n}","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { StorageType } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { Core } from 'libs/common/core';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { CloseSvg } from 'libs/shared/images/svg/actions/CloseSvg';\n\n\nconst namespace = 'shared.lookingForIntegration';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\ninterface LookingForIntegrationProps {\n appLink: Core.AppLink;\n closePopup?: () => void;\n hideDismiss?: boolean;\n hideBackground?: boolean;\n normalText?: boolean;\n}\n\ninterface LookingForIntegrationViewModel {\n show: boolean;\n}\n\nexport function LookingForIntegration(props: LookingForIntegrationProps): JSX.Element {\n const [ visibility, setVisibility ] = useViewModel<LookingForIntegrationViewModel>(\n SharedViewModelKeys.LOOKING_FOR_INTEGRATION,\n { show: true },\n { storage: StorageType.LocalStorage }\n );\n\n if (!visibility.show)\n return <></>;\n\n return (\n <div className={classNames(`d-flex justify-content-between`, !props.hideBackground && 'rounded p-2 bg-light-blue')}>\n <AppLink\n appLink={props.appLink}\n onClick={() => props.closePopup?.()}\n className='d-inline-flex align-items-center mb-0'\n >\n <span className={classNames('ms-1 text-info', !props.normalText && 'fw-semibold')}>\n <Text namespace={namespace} phrase='lookingForIntegration' />\n </span>\n </AppLink>\n {!props.hideDismiss &&\n <button onClick={() => setVisibility({ show: false })} aria-label={`${getPhrase('ariaClose')}`}>\n <SvgContainer\n svg={CloseSvg}\n size={SvgContainerSize.Small}\n className='text-info d-inline-block svg-container'\n />\n </button>\n }\n </div>\n );\n}","export enum IntegrationId {\n GoogleClassroom = 'google-classroom',\n MicrosoftTeams = 'microsoft-teams',\n Vivi = 'vivi',\n AppleTv = 'apply-tv'\n}","import React from 'react';\n\nimport { AppLink } from 'libs/common/backbone/core';\n\nimport { useGoogleClassrooms } from 'libs/shared/apps/share/views/share/components/share-integrations/useGoogleClassrooms';\nimport { useMicrosoftTeamsShare } from 'libs/shared/apps/share/views/share/components/share-integrations/useMicrosoftTeamsShare';\nimport { LookingForIntegration } from 'libs/shared/components/looking-for-integration/LookingForIntegration';\nimport { IntegrationId } from 'libs/shared/enums/IntegrationId';\n\nimport styles from './share-integrations.module.scss';\n\nconst DEFAULT_ICON_SIZE = '32';\n\ninterface ShareIntegrationsProps {\n integrations: IntegrationId[];\n url: string;\n appLink?: AppLink;\n iconSize?: 'sm' | 'md';\n closePopup?: () => void;\n hideLookingForIntegrations?: boolean;\n}\n\nexport function ShareIntegrations(props: ShareIntegrationsProps): JSX.Element {\n const googleContainerId = useGoogleClassrooms(props.integrations?.includes(IntegrationId.GoogleClassroom));\n useMicrosoftTeamsShare(props.integrations?.includes(IntegrationId.MicrosoftTeams));\n\n if (!props.integrations.length && !props.hideLookingForIntegrations)\n return (\n <LookingForIntegration\n appLink={props.appLink}\n closePopup={props.closePopup}\n />\n );\n\n function getIconSize() {\n switch (props.iconSize) {\n case 'sm': return '24';\n case 'md':\n default: return DEFAULT_ICON_SIZE;\n }\n }\n\n const iconSize = getIconSize();\n const integrationsContainerStyle = { height: `${iconSize}px`, width: `${iconSize}px` };\n\n return (\n <div className='d-flex gap-1 align-items-start'>\n {props.integrations.includes(IntegrationId.GoogleClassroom) &&\n <div\n id={googleContainerId}\n className={`rounded partial-loading-background`}\n style={integrationsContainerStyle}\n >\n <div\n className='g-sharetoclassroom'\n data-size={iconSize}\n data-url={props.url}\n />\n </div>\n }\n {props.integrations.includes(IntegrationId.MicrosoftTeams) &&\n <div className={`rounded overflow-hidden ${styles.hoverable}`}>\n <div\n className={`teams-share-button ${styles.msTeamsContainer}`}\n style={integrationsContainerStyle}\n data-href={props.url}\n data-button-type='smallTransWhite'\n data-preview='false'\n data-icon-px-size={iconSize}\n />\n </div>\n }\n </div>\n );\n}\n","import React from 'react';\n\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { Restrictions, YearGroup } from 'libs/shared/interfaces';\n\ninterface RestrictionBadgeProps {\n restrictions: Restrictions;\n yearGroups: YearGroup[];\n}\n\nexport function RestrictionBadge(props: RestrictionBadgeProps): JSX.Element {\n return (\n <Badge\n type={BadgeType.Restriction}\n data={{ restrictions: props.restrictions, yearGroups: props.yearGroups }}\n inline\n />\n );\n}","import React from 'react';\n\nimport { BadgeListContainer } from 'libs/shared/components/badges/BadgeListContainer';\nimport { RestrictionBadge } from 'libs/shared/components/video-list/components/video-item-restriction-badge/RestrictionBadge';\nimport { VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\ninterface VideoItemRestrictionBadgeProps {\n video: VideoTypes;\n yearGroups: YearGroup[];\n className?: string;\n}\n\nexport function VideoItemRestrictionBadge(props: VideoItemRestrictionBadgeProps): JSX.Element {\n const hasRestrictions = RestrictionHelper.hasRestrictions(props.video);\n const { canConsume } = VideoHelper.getCanBeConsumed(props.video);\n\n if (!hasRestrictions || !props.yearGroups || !canConsume)\n return <></>;\n \n return (\n <BadgeListContainer className={props.className || 'pt-1'}>\n <RestrictionBadge restrictions={props.video._restrictions} yearGroups={props.yearGroups} />\n </BadgeListContainer>\n );\n}","import React from 'react';\nimport { Form as FormikForm } from 'formik';\nimport * as Yup from 'yup';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SharableEntity } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { FormWrapper, useFormikContextWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { VideoItemRestrictionBadge } from 'libs/shared/components/video-list/components/video-item-restriction-badge/VideoItemRestrictionBadge';\nimport { YearGroup } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nconst getPhrase = LanguageService.encloseNamespace('share.shareMessage');\n\nconst MessageValidationSchema = Yup.object().shape({\n message: Yup.string()\n .max(280, () => getPhrase('maxMessageLen'))\n});\n\ninterface ShareMessageRequest {\n message?: string;\n}\n\ninterface ShareMessageFormProps {\n entity: SharableEntity;\n yearGroups: YearGroup[];\n shareOverrideRestrictions: boolean;\n}\n\nfunction ShareMessageForm(props: ShareMessageFormProps): React.ReactElement {\n const formikProps = useFormikContextWrapper<ShareMessageRequest>();\n\n return (\n <FormikForm>\n <FormField\n component='textarea'\n name='message'\n id='message'\n placeholder={getPhrase('placeholder')}\n value={formikProps.values.message}\n label={getPhrase('label')}\n showOptionalLabel\n />\n {!props.shareOverrideRestrictions && VideoHelper.isVideoType(props.entity) &&\n <div className='mb-3'><VideoItemRestrictionBadge video={props.entity} yearGroups={props.yearGroups} /></div>}\n <PopupButtons>\n <PopupButtons.Submit variant='dark' text={getPhrase('share')} />\n </PopupButtons>\n </FormikForm>\n );\n}\n\ninterface ShareMessageProps {\n onClickShare: (message: string, onDone: () => void) => void;\n entity: SharableEntity;\n yearGroups: YearGroup[];\n shareOverrideRestrictions: boolean;\n}\n\nexport function ShareMessage(props: ShareMessageProps): React.ReactElement {\n function onSubmit(data: ShareMessageRequest, onDone: () => void): void {\n let message: string = null;\n\n if (data.message)\n message = data.message;\n\n props.onClickShare(message, onDone);\n }\n\n return (\n <FormWrapper<ShareMessageRequest>\n initialValues={{ message: '' }}\n validationSchema={MessageValidationSchema}\n onSubmit={onSubmit}\n allowInitialSubmit={true}\n >\n <ShareMessageForm\n entity={props.entity}\n yearGroups={props.yearGroups}\n shareOverrideRestrictions={props.shareOverrideRestrictions}\n />\n </FormWrapper>\n );\n}","import React from 'react';\nimport { Spinner } from 'react-bootstrap';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { TypeFilter } from 'libs/shared/apps/search/interfaces/TypedFilter';\nimport { GetEmbedCode } from 'libs/shared/apps/share/components/get-embed-code/GetEmbedCode';\nimport { RecipientItem } from 'libs/shared/apps/share/components/recipient-item/RecipientItem';\nimport { TOKENIZED_TYPEAHEAD_SUGGESTIONS_LIMIT, TokenizedTypeahead } from 'libs/shared/apps/share/components/tokenized-typeahead/TokenizedTypeahead';\nimport { SharePrivacyResponse } from 'libs/shared/apps/share/interfaces/responses/SharePrivacyResponse';\nimport { SharePrivacy } from 'libs/shared/apps/share/interfaces/SharePrivacy';\nimport { ShareAsLink } from 'libs/shared/apps/share/views/share/components/share-as-link/ShareAsLink';\nimport { ShareIntegrations } from 'libs/shared/apps/share/views/share/components/share-integrations/ShareIntegrations';\nimport { ShareMessage } from 'libs/shared/apps/share/views/share/components/share-message/ShareMessage';\nimport { SharableEntity, SharableEntityType, SharableRecipient } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { IntegrationId } from 'libs/shared/enums/IntegrationId';\nimport { ObjectStatus } from 'libs/shared/enums/ObjectStatus';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { HasLocalPermissionsFunc, usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Classroom, ClassroomGroup, CurrentUser, PropsWithAnalyticsOptions, ShareLink, ShareSearchResponse, UserCollection, YearGroup } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.share';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction filterSearchResults(\n recipientsToFilter: SharableRecipient[],\n currentSelections: SharableRecipient[],\n existingShareRecipients: SharableRecipient[],\n currentUserId: string\n): SharableRecipient[] {\n if (!recipientsToFilter)\n return [];\n\n const selectedIds = [ ...currentSelections, ...existingShareRecipients ].map(s => s.id);\n\n return recipientsToFilter.filter(s => {\n // Prevent users from sharing to other users who have already been shared this resource\n if (selectedIds.includes(s.id))\n return false;\n\n // Prevent users from sharing to themselves\n if (s.id === currentUserId)\n return false;\n\n return true;\n });\n}\n\ntype MainShareProps = PropsWithAnalyticsOptions<{\n entity: SharableEntity;\n entityType: SharableEntityType,\n directShareRecipients: SharableRecipient[];\n recentlySharedTo: SharableRecipient[];\n onClickCreateLink: () => void;\n onClickShowSettings: () => void;\n onClickShare: (recipients: SharableRecipient[], message: string, onDone?: () => void) => void;\n onClickRemoveRecipient: (recipientId: string, onError?: () => void) => void;\n onClickSavePrivacy: (privacy: SharePrivacy, overrideRestrictions: boolean) => void;\n onClickGetEmbedCode: () => void;\n gatewayApiUrl: string;\n imageCdnUrl: string;\n currentUser: CurrentUser;\n searchRequestHeaders?: HashObject;\n emptyStateImageUrl: string;\n errorStateImageUrl: string;\n integrations: IntegrationId[];\n shareLink?: ShareLink;\n shareLinkIsLoading?: boolean;\n fetchRecipientUsers?: (id: string, callback: (users: UserCollection) => void) => void;\n canAddPolicies: boolean;\n privacy: SharePrivacyResponse;\n integrationSettingAppLink?: Core.AppLink;\n messagePopupAppLink?: Core.AppLink;\n closePopup: () => void;\n enableIntegrationBanner?: boolean;\n canEmbed?: boolean;\n yearGroups: YearGroup[];\n shareOverrideRestrictions: boolean;\n hasLocalPermissions: HasLocalPermissionsFunc;\n}>;\n\nexport function MainShare(props: MainShareProps): JSX.Element {\n const [ selections, setSelections ] = React.useState<SharableRecipient[]>([]);\n const [ showShareLinkSpinner, setShowShareLinkSpinner ] = React.useState(false);\n\n const { hasPermissions } = usePermissions();\n const { hasClassrooms } = useSettings(null);\n const hasManageIntegrationsPermission = hasPermissions(PermissionName.ManageIntegrations);\n\n function onClickShare(message: string, onDone: () => void): void {\n props.onClickShare(\n selections,\n message,\n () => {\n setSelections([]);\n onDone();\n }\n );\n }\n\n function fetchSelectionMembers(id: string): void {\n if (!props.fetchRecipientUsers)\n return;\n\n const callback = (users: UserCollection) => {\n const newSelections: SharableRecipient[] = [];\n\n selections.forEach(selection => {\n if (selection.id !== id)\n return newSelections.push(selection);\n\n const updatedSelection = ObjectHelper.deepClone<Classroom | ClassroomGroup>(selection);\n\n if (!users?.data?.length) {\n updatedSelection.users = { count: 0, data: [], pagination: null };\n } else {\n updatedSelection.users = users;\n }\n\n newSelections.push(updatedSelection);\n });\n\n setSelections(ArrayHelper.uniq(newSelections, 'id'));\n };\n\n props.fetchRecipientUsers(id, callback);\n }\n\n function getRemotePostBody(query: string): HashObject {\n const indices: TypeFilter[] = [];\n\n if (hasPermissions(PermissionName.ShareToUsers)) {\n indices.push({\n index: 'user',\n filters: {\n userType: [ UserGroup.Staff, UserGroup.Learner ],\n userProfile: {\n status: [`${ObjectStatus.Active.toLowerCase()}`],\n customerId: props.currentUser.customerId\n }\n }\n });\n }\n\n if (hasPermissions(PermissionName.ShareToClassrooms))\n indices.push({ index: 'classroom' });\n\n if (hasPermissions(PermissionName.ShareToClassroomGroups))\n indices.push({ index: 'classroom_group' });\n\n return {\n query,\n indices,\n searchType: 'user',\n limit: TOKENIZED_TYPEAHEAD_SUGGESTIONS_LIMIT\n };\n }\n\n const canDirectShare = hasClassrooms && (\n hasPermissions(PermissionName.ShareToUsers) ||\n hasPermissions(PermissionName.ShareToClassrooms) ||\n hasPermissions(PermissionName.ShareToClassroomGroups)\n );\n\n const recentSearches = filterSearchResults(\n props.recentlySharedTo,\n selections,\n props.directShareRecipients,\n props.currentUser.id\n );\n\n function onClickCreateShareLink(): void {\n setShowShareLinkSpinner(true);\n props.onClickCreateLink();\n }\n\n React.useEffect(() => {\n setShowShareLinkSpinner(!!props.shareLinkIsLoading);\n }, [props.shareLinkIsLoading]);\n\n return (\n <>\n {canDirectShare && (\n <div className='bg-white rounded-bottom-3 pt-3 px-3 mb-2'>\n <div className={`d-flex justify-content-between align-items-center pb-3`}>\n <TokenizedTypeahead\n // This key is used to re-initialize TokenizedTypeahead whenever recentSearches changes\n key={recentSearches?.map(s => s.id).join(':') ?? 'share:search'}\n getRemoteUrl={() => UrlHelper.safeUrlConcat(props.gatewayApiUrl, 'v4/search')}\n getRemotePostBody={getRemotePostBody}\n requestHeaders={props.searchRequestHeaders}\n formatRemoteSuggestions={(suggestions: ShareSearchResponse) =>\n filterSearchResults(\n suggestions?.results,\n selections,\n props.directShareRecipients,\n props.currentUser.id\n )\n }\n recentSearches={recentSearches}\n selections={selections}\n onSuggestionSelected={selection => setSelections([ ...selections, selection ])}\n removeSelection={selection => setSelections(selections.filter(s => s.id !== selection.id))}\n placeholder={hasClassrooms\n ? getPhrase('searchPlaceholder')\n : getPhrase('searchPlaceholderNoClassrooms')}\n imageCdnUrl={props.imageCdnUrl}\n activationLength={2}\n fetchSelectionMembers={props.fetchRecipientUsers && fetchSelectionMembers}\n debounceTime={300}\n emptyStateImageUrl={props.emptyStateImageUrl}\n errorStateImageUrl={props.errorStateImageUrl}\n hasStudentExperience={hasPermissions(PermissionName.StudentExperience)}\n />\n </div>\n\n {(!selections.length && props.directShareRecipients.length)\n ? (\n <div>\n <h3 className='font-size-normal'><Text phrase='sharedTo' /></h3>\n <Scrollbars autoHeight>\n <ul className='list-unstyled'>\n {props.directShareRecipients.map(d => (\n <li key={d.id} className='mb-2 pe-1'>\n <RecipientItem\n entity={d}\n imageCdnUrl={props.imageCdnUrl}\n removeRecipient={props.onClickRemoveRecipient}\n showDisplayName={hasPermissions(PermissionName.StudentExperience)}\n />\n </li>\n ))}\n </ul>\n </Scrollbars>\n </div>\n ) : <></>\n }\n {!!selections.length && (\n // The form submit inside of ShareMessage is used as the Share button\n <div className='pb-3'>\n <ShareMessage\n onClickShare={onClickShare}\n entity={props.entity}\n yearGroups={props.yearGroups}\n shareOverrideRestrictions={props.shareOverrideRestrictions}\n />\n </div>\n )}\n </div>\n )}\n\n {!selections.length && !showShareLinkSpinner && (\n <div className={`bg-white p-3 ${canDirectShare ? 'rounded-3' : 'rounded-bottom-3'}`}>\n <div>\n {props.shareLink && (\n <div className='fw-semibold mb-2'><Text namespace={namespace} phrase='shareLink' /></div>\n )}\n <ShareAsLink\n entity={props.entity}\n entityType={props.entityType}\n shareLink={props.shareLink}\n onClickShowSettings={props.onClickShowSettings}\n onClickCreateLink={onClickCreateShareLink}\n shareLinkIsLoading={props.shareLinkIsLoading}\n canAddPolicies={props.canAddPolicies}\n privacy={props.privacy}\n entityTypeId={props.entity.typeId}\n onClickSavePrivacy={props.onClickSavePrivacy}\n enableIntegrations={props.enableIntegrationBanner}\n hasStudentExp={hasPermissions(PermissionName.StudentExperience)}\n yearGroups={props.yearGroups}\n shareOverrideRestrictions={props.shareOverrideRestrictions}\n />\n {props.shareLink && props.enableIntegrationBanner && (\n <div className={`${props.integrations?.length && props.canEmbed ? 'float-end' : ''} mt-1 pt-1`}>\n <ShareIntegrations\n integrations={props.integrations}\n url={props.shareLink.url}\n closePopup={props.closePopup}\n appLink={hasManageIntegrationsPermission\n ? props.integrationSettingAppLink\n : props.messagePopupAppLink\n }\n />\n </div>\n )}\n {props.shareLink && props.canEmbed && (\n <div className='mt-1'>\n <GetEmbedCode onClickGetEmbedCode={props.onClickGetEmbedCode} />\n </div>\n )}\n {props.shareLink && props.canAddPolicies &&\n <button className='btn btn-link text-info mt-2 p-0' onClick={props.onClickShowSettings}>\n <Text namespace={namespace} phrase='advancedSettings' />\n </button>\n }\n </div>\n </div>\n )}\n\n {showShareLinkSpinner && (\n <div className='bg-white rounded-3 p-3 text-center'>\n <Spinner as='div' animation='border' role='status' />\n </div>\n )}\n </>\n );\n}\n","const LINK_EXPIRY_TIME = 30; // days\nexport function getLinkExpiryDate(shouldExpire: boolean): string | null {\n if (!shouldExpire)\n return null;\n\n const date = new Date();\n date.setDate(date.getDate() + LINK_EXPIRY_TIME);\n\n return date.toISOString();\n}","import React from 'react';\nimport { useFormikContext } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EditShareLinkRequest } from 'libs/shared/apps/share/interfaces/requests/EditShareLinkRequest';\nimport { getLinkExpiryDate } from 'libs/shared/apps/share/utils/LinkExpiryHelper';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ToggleSwitch } from 'libs/shared/components/toggle-switch/ToggleSwitch';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\n\nconst namespace = 'shared.linkExpiry';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface LinkExpiryProps {\n passwordProtectLink: boolean;\n}\n\nexport function LinkExpiry(props: LinkExpiryProps): React.ReactElement {\n const formikProps = useFormikContext<EditShareLinkRequest>();\n\n function setLinkExpireDate(): void {\n if (props.passwordProtectLink)\n return;\n\n formikProps.setFieldValue('linkExpireDate', getLinkExpiryDate(!formikProps.values.linkExpireDate));\n }\n\n return (\n <div className='d-flex justify-content-between align-items-center pb-3'>\n <div>\n <label className='m-0' htmlFor=''><Text namespace={namespace} phrase='linkExpirationHeading' /></label>\n <p className='m-0'><Text namespace={namespace} phrase='linkExpirationInfo' /></p>\n </div>\n <Tooltip\n title={getPhrase('passwordProtected')}\n disable={!props.passwordProtectLink}\n spanHack\n trigger='hover'\n >\n <ToggleSwitch\n onClick={setLinkExpireDate}\n on={!!formikProps.values.linkExpireDate}\n disabled={props.passwordProtectLink}\n showStateWhenDisabled\n />\n </Tooltip>\n </div>\n );\n}","import * as React from 'react';\nimport { Form } from 'react-bootstrap';\nimport { useFormikContext } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EditShareLinkRequest } from 'libs/shared/apps/share/interfaces/requests/EditShareLinkRequest';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { CloseSvg } from 'libs/shared/images/svg/actions/CloseSvg';\nimport { VisibleOffSvg } from 'libs/shared/images/svg/actions/VisibleOffSvg';\nimport { VisibleOnSvg } from 'libs/shared/images/svg/actions/VisibleOnSvg';\n\nimport styles from './set-password-input.module.scss';\n\nconst namespace = 'share.setPasswordInput';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface SetPasswordInputProps {\n value: string;\n onChange: (value: string) => void;\n onReset?: () => void;\n /**\n * Allow user to view and edit current value.\n */\n canEdit?: boolean;\n /**\n * Don't allow user to view/edit current value\n * but allow them to clear it and enter a new value.\n */\n canReset?: boolean;\n placeholder?: string;\n}\n\nexport function SetPasswordInput(props: SetPasswordInputProps): JSX.Element {\n const [ revealPassword, setRevealPassword ] = React.useState(false);\n\n const formikProps = useFormikContext<EditShareLinkRequest>();\n\n const errorMsg = formikProps.errors?.password;\n\n return (\n <>\n <input\n className={`form-control ${errorMsg ? 'is-invalid' : ''}`}\n value={props.value}\n onChange={e => {\n !!props.canEdit && props.onChange(e.target.value);\n }}\n type={revealPassword ? 'text' : 'password'}\n placeholder={props.placeholder || getPhrase('passwordPlaceholder')}\n readOnly={!props.canEdit}\n />\n {!!errorMsg && (\n <Form.Control.Feedback type='invalid'>{errorMsg}</Form.Control.Feedback>\n )}\n {!!props.canEdit &&\n <DivButton className={styles.passwordButton} onClick={() => setRevealPassword(!revealPassword)}>\n <SvgContainer\n svg={revealPassword ? VisibleOnSvg : VisibleOffSvg}\n title={getPhrase(revealPassword ? 'hidePassword' : 'revealPassword')}\n tooltipPlacement='top'\n />\n </DivButton>\n }\n {!props.canEdit && !!props.canReset && !!props.onReset &&\n <DivButton className={styles.passwordButton} onClick={props.onReset}>\n <SvgContainer\n svg={CloseSvg} title={getPhrase('resetPassword')}\n tooltipPlacement='top'\n />\n </DivButton>\n }\n </>\n );\n}","import React from 'react';\nimport { useFormikContext } from 'formik';\n\nimport { SetPasswordInput } from 'libs/shared/apps/share/components/set-password-input/SetPasswordInput';\nimport { EditShareLinkRequest } from 'libs/shared/apps/share/interfaces/requests/EditShareLinkRequest';\nimport { getLinkExpiryDate } from 'libs/shared/apps/share/utils/LinkExpiryHelper';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ToggleSwitch } from 'libs/shared/components/toggle-switch/ToggleSwitch';\nimport { ShareLink } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.linkPassword';\n\nconst PASSWORD_PLACEHOLDER = '********';\n\ninterface LinkPasswordProps {\n shareLink: ShareLink;\n passwordProtectLink: boolean;\n setPasswordProtectLink: (protect: boolean) => void;\n}\n\nexport function LinkPassword(props: LinkPasswordProps): React.ReactElement {\n const { passwordProtectLink, setPasswordProtectLink } = props;\n\n const formikProps = useFormikContext<EditShareLinkRequest>();\n \n const [ readonlyPassword, setReadonlyPassword ] = React.useState(!!props.shareLink?.isPasswordProtected);\n\n function onTogglePasswordProtect(): void {\n if (props.shareLink?.isPasswordProtected)\n formikProps.setFieldValue('removePassword', passwordProtectLink);\n\n formikProps.setFieldValue('password', '');\n\n setPasswordProtectLink(!passwordProtectLink);\n formikProps.setFieldValue('linkExpireDate', getLinkExpiryDate(!passwordProtectLink));\n }\n\n function setPassword(password: string): void {\n formikProps.setFieldValue('password', password);\n }\n\n function resetPassword(): void {\n formikProps.setFieldValue('password', '');\n formikProps.setFieldValue('removePassword', true);\n setReadonlyPassword(false);\n }\n\n return (\n <div className='pb-3'>\n <div className='d-flex justify-content-between align-items-center'>\n <div>\n <label className='m-0' htmlFor=''><Text namespace={namespace} phrase='passwordProtectHeading' /></label>\n <p className='m-0'><Text namespace={namespace} phrase='passwordProtectInfo' /></p>\n </div>\n <ToggleSwitch onClick={onTogglePasswordProtect} on={passwordProtectLink} />\n </div>\n\n {passwordProtectLink &&\n <div className='position-relative mt-2'>\n <SetPasswordInput\n value={readonlyPassword ? PASSWORD_PLACEHOLDER : formikProps.values.password}\n onChange={setPassword}\n onReset={resetPassword}\n canEdit={!readonlyPassword}\n canReset\n />\n </div>\n }\n </div>\n );\n}","import { boolean, object, string } from 'yup';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nconst namespace = 'share.validation';\n\nexport const ShareLinkSettingsValidationSchema = object().shape({\n removePassword: boolean(),\n resourceId: string(),\n linkExpireDate: string().nullable(),\n password: string()\n .test({\n name: 'password-length',\n exclusive: false,\n params: {},\n message: LanguageService.getPhrase(namespace, 'minPassword'),\n test: val => {\n const removePassword = ((this as any)?.parent as any)?.removePassword;\n\n if (removePassword)\n return true;\n\n if (!val?.length)\n return true;\n\n if (val.length < 3)\n return false;\n\n return true;\n }\n })\n .default('')\n});","import React from 'react';\nimport { Form } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { LinkExpiry } from 'libs/shared/apps/share/components/link-expiry/LinkExpiry';\nimport { LinkPassword } from 'libs/shared/apps/share/components/link-password/LinkPassword';\nimport { EditShareLinkRequest } from 'libs/shared/apps/share/interfaces/requests/EditShareLinkRequest';\nimport { SharePrivacyResponse } from 'libs/shared/apps/share/interfaces/responses/SharePrivacyResponse';\nimport { ShareLinkSettingsValidationSchema } from 'libs/shared/apps/share/validation/ShareLinkSettingsValidationSchema';\nimport { SharableEntity, SharableEntityType } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { Config } from 'libs/shared/interfaces';\nimport { PropsWithAnalyticsOptions, ShareLink } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.share';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype ShareSettingsFormProps = PropsWithAnalyticsOptions<{\n entity: SharableEntity;\n entityType: SharableEntityType;\n config: Config;\n shareLink: ShareLink;\n entityId: string;\n onClickCancel: () => void;\n onClickDeleteLink: () => void;\n canEmbed?: boolean;\n privacy: SharePrivacyResponse;\n hasStudentExp: boolean;\n shareOverrideRestrictions: boolean;\n}>;\n\nfunction ShareSettingsForm(props: ShareSettingsFormProps): JSX.Element {\n const { hasPermissions } = usePermissions();\n\n const [ passwordProtectLink, setPasswordProtectLink ] = React.useState(!!props.shareLink.isPasswordProtected);\n\n return (\n <Form>\n {props.onClickDeleteLink &&\n <div className='d-flex justify-content-between align-items-center pb-3'>\n <div>\n <label className='mb-0'><Text namespace={namespace} phrase='deleteLinkLabel' /></label>\n <p className='mb-0'><Text namespace={namespace} phrase='deleteLinkDescription' /></p>\n </div>\n <DivButton onClick={props.onClickDeleteLink} className='info-link justify-self-start'>\n <Text namespace={namespace} phrase='deleteLink' />\n </DivButton>\n </div>\n }\n {hasPermissions(PermissionName.ManageShareLinkSettings) && (\n <>\n <LinkExpiry passwordProtectLink={passwordProtectLink} />\n {props.shareOverrideRestrictions &&\n <LinkPassword\n shareLink={props.shareLink}\n passwordProtectLink={passwordProtectLink}\n setPasswordProtectLink={setPasswordProtectLink}\n />\n }\n </>\n )}\n\n <PopupButtons>\n <PopupButtons.Cancel onClick={props.onClickCancel} text={getPhrase('back')} variant='link' />\n <PopupButtons.Submit variant='dark' />\n </PopupButtons>\n </Form>\n );\n}\n\ninterface ShareSettingsProps {\n entity: SharableEntity;\n entityType: SharableEntityType;\n config: Config;\n shareLink: ShareLink;\n entityId: string;\n privacy: SharePrivacyResponse;\n onClickSaveLink: (data: EditShareLinkRequest, onError: () => void) => void;\n onClickCancel: () => void;\n onClickDeleteLink?: () => void;\n hasStudentExp: boolean;\n shareOverrideRestrictions: boolean;\n}\n\nexport function ShareSettings(props: PropsWithAnalyticsOptions<ShareSettingsProps>): JSX.Element {\n const initialValues: EditShareLinkRequest = {\n password: '',\n removePassword: false,\n linkExpireDate: props.shareLink.linkExpireDate,\n overrideRestrictions: props.shareLink.overrideRestrictions\n };\n\n return (\n <>\n <FormWrapper<EditShareLinkRequest>\n initialValues={initialValues}\n onSubmit={props.onClickSaveLink}\n castInitialValues={false}\n validationSchema={ShareLinkSettingsValidationSchema}\n >\n <ShareSettingsForm\n entity={props.entity}\n entityType={props.entityType}\n config={props.config}\n shareLink={props.shareLink}\n entityId={props.entityId}\n onClickCancel={props.onClickCancel}\n analyticsOptions={props.analyticsOptions}\n privacy={props.privacy}\n onClickDeleteLink={props.onClickDeleteLink}\n hasStudentExp={props.hasStudentExp}\n shareOverrideRestrictions={props.shareOverrideRestrictions}\n />\n </FormWrapper>\n </>\n );\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { IntegrationId } from 'libs/shared/enums/IntegrationId';\nimport { SettingName } from 'libs/shared/enums/SettingName';\nimport { Integration } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.shared-utils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport const IntegrationHelper = {\n getShareIntegrations(googleClassroomSetting: boolean, msftTeamsSetting: boolean): Integration[] {\n return [\n {\n id: IntegrationId.GoogleClassroom,\n name: getPhrase('googleClassroom'),\n enabled: googleClassroomSetting,\n settingName: SettingName.ShareToGoogleClassroom\n },\n {\n id: IntegrationId.MicrosoftTeams,\n name: getPhrase('msftTeams'),\n enabled: msftTeamsSetting,\n settingName: SettingName.ShareToMicrosoftTeams\n }\n ];\n }\n};\n","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { AppLink } from 'libs/common/backbone/core';\nimport { AlertType, DefaultAlertHeading } from 'libs/common/backbone/services/BaseAlertService';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\n\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { EditShareLinkRequest } from 'libs/shared/apps/share/interfaces/requests/EditShareLinkRequest';\nimport { SharePrivacyResponse } from 'libs/shared/apps/share/interfaces/responses/SharePrivacyResponse';\nimport { SharePrivacy } from 'libs/shared/apps/share/interfaces/SharePrivacy';\nimport { RecentShareHelper } from 'libs/shared/apps/share/utils/RecentShareHelper';\nimport { CopyEmbed } from 'libs/shared/apps/share/views/share/components/copy-embed/CopyEmbed';\nimport { MainShare } from 'libs/shared/apps/share/views/share/components/main-share/MainShare';\nimport { ShareSettings } from 'libs/shared/apps/share/views/share/components/share-settings/ShareSettings';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { LanguageNamespaceContext } from 'libs/shared/components/text/Text';\nimport { IntegrationId } from 'libs/shared/enums/IntegrationId';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport {\n Config, CurrentUser,\n DirectShare, PopupViewProps, ShareLink, ShareRecipient, UserCollection, YearGroup\n} from 'libs/shared/interfaces';\nimport { IntegrationHelper } from 'libs/shared/utils/IntegrationHelper';\n\nimport { SharableEntityType, SharableRecipient, ShareViewHelper } from './ShareViewHelper';\n\nconst namespace = 'shared.share';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getTitle(type: SharableEntityType): string {\n switch (type) {\n case 'video': return getPhrase('titleVideo');\n case 'clip': return getPhrase('titleClip');\n case 'interactive': return getPhrase('titleInteractive');\n case 'series': return getPhrase('titleSeries');\n case 'playlist': return getPhrase('titlePlaylist');\n case 'subject': return getPhrase('titleTopic');\n }\n}\n\nfunction getEnabledIntegrations(googleClassroomSetting: boolean, msftTeamsSetting: boolean): IntegrationId[] {\n const integrations = IntegrationHelper.getShareIntegrations(googleClassroomSetting, msftTeamsSetting);\n return integrations.filter(i => i.enabled).map(i => i.id);\n}\n\n/**\n * I realise these are all the same right now, but they're technically different things - Sha\n */\nconst canEmbed = (type: SharableEntityType) => type === 'video' || type === 'interactive' || type === 'clip';\nconst canAddPolicies = (type: SharableEntityType) => type === 'video' || type === 'interactive' || type === 'clip';\n\ntype ShareScreen = 'main' | 'link-settings' | 'copy-embed';\n\ninterface ShareViewProps extends PopupViewProps {\n entityId: string;\n entityType: SharableEntityType;\n emptyStateImageUrl: string;\n errorStateImageUrl: string;\n gatewayApiUrl?: string;\n integrationSettingAppLink?: AppLink;\n messagePopupAppLink?: AppLink;\n enableIntegrationBanner?: boolean\n}\n\nexport function ShareView(props: ShareViewProps): JSX.Element {\n const dispatch = useDispatch();\n\n const alerts = useAlerts();\n\n // If the gateway api url is passed down in props and not pulled from the config, we don't need to fetch the user token\n const shouldFetchUserToken = !props.gatewayApiUrl;\n\n /**\n * Our screen is initially set to null, and it is set to it's initial state\n * by ShareViewHelper.useRestrictionWarning.\n */\n const [ screen, setScreen ] = React.useState<ShareScreen>('main');\n\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const entity = ShareViewHelper.getFetchFunctionByType(props.entityType)(props.entityId, currentUser.data?.id);\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const userToken = Flight.useBasicFetch<HashObject>(shouldFetchUserToken && UserRequests.token());\n const shareLink = Flight.useBasicFetch<ShareLink>(ShareRequests.getShareLinkByObjectId(props.entityId));\n const sentDirectShare = Flight.useBasicFetch<DirectShare>(\n ShareRequests.getSentDirectShareByObjectId(props.entityId)\n );\n const recipients = Flight.useBasicFetch<SharableRecipient[]>(currentUser.data?.customerId &&\n ShareViewHelper.getDirectShareRecipientsRequest(currentUser.data.customerId, sentDirectShare.data));\n\n const recentlySharedToIds = currentUser.data && RecentShareHelper.getRecentlySharedTo(currentUser.data.id);\n\n const hasRecentlySharedRecipients = !!recentlySharedToIds?.length;\n const recentlySharedTo = Flight.useBasicFetch<SharableRecipient[]>(hasRecentlySharedRecipients &&\n ShareRequests.getRecipientsById(recentlySharedToIds, currentUser.data.customerId));\n\n const privacy = Flight.useBasicFetch<SharePrivacyResponse>(ShareRequests.getPrivacy(props.entityId));\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n const {\n shareToGoogleClassroom,\n shareToMicrosoftTeams,\n shareOverrideRestrictions,\n isLoadingSettings\n } = useSettings(null);\n\n /**\n * We need to manually re-fetch the recipients they're updated on the directShare object.\n * See ShareRequests.getDirectShareRecipientsById for an explanation\n * of why we are doing this.\n */\n function fetchRecipients(customerId: string, directShare: DirectShare): void {\n if (directShare.recipients?.length)\n Flight.getFetch(dispatch)(ShareViewHelper.getDirectShareRecipientsRequest(customerId, directShare));\n }\n\n function fetchRecipientUsers(id: string, callback: (users: UserCollection) => void): void {\n Flight.getFetch(dispatch)(ShareRequests.getRecipientUsers(id, callback));\n }\n\n function onClickCreateLink(): void {\n if (shareLink.data)\n return;\n\n ShareViewHelper.createLink({\n dispatch,\n entity: entity.data,\n entityType: props.entityType,\n alerts\n });\n }\n\n function onClickSaveLink(data: EditShareLinkRequest, onError: () => void): void {\n ShareViewHelper.updateLink(\n dispatch,\n entity.data,\n props.entityType,\n shareLink.data,\n data,\n alerts,\n () => setScreen('main'),\n onError\n );\n }\n\n function onClickDeleteLink(): void {\n ShareViewHelper.deleteLink(\n dispatch,\n entity.data,\n props.entityType,\n shareLink.data,\n alerts,\n () => setScreen('main')\n );\n }\n\n function onClickShare(recipients: SharableRecipient[], message: string, onDone?: () => void): void {\n const shareRecipients = recipients.map(s => ({ id: s.id, typeId: s.typeId })) as ShareRecipient[];\n\n ShareViewHelper.createOrUpdateDirectShare({\n dispatch,\n entity: entity.data,\n entityType: props.entityType,\n currentUser: currentUser.data,\n recipients: shareRecipients,\n message,\n sentDirectShare: sentDirectShare.data,\n onSuccess: directShare => {\n fetchRecipients(currentUser.data.customerId, directShare);\n alerts.success({\n heading: DefaultAlertHeading.Success,\n message: getPhrase('directShareSuccess', { object: entity.data.name, recipients: ShareViewHelper.getShareRecipientsPhrase(recipients) }),\n type: AlertType.Success\n });\n },\n onError: () => alerts.error(getPhrase('directShareError', { name: entity.data.name })),\n onDone\n });\n }\n\n function onClickRemoveRecipient(recipientId: string, onError?: () => void): void {\n ShareViewHelper.removeDirectShareRecipient(\n dispatch,\n recipientId,\n props.entityType,\n sentDirectShare.data,\n directShare => fetchRecipients(currentUser.data.customerId, directShare),\n () => {\n alerts.error(getPhrase('removeDirectShareError'));\n onError && onError();\n }\n );\n }\n\n function onClickSavePrivacy(privacy: SharePrivacy, overrideRestrictions: boolean): void {\n if (privacy === 'private') {\n onClickDeleteLink();\n return;\n }\n\n Flight.fetch(\n dispatch,\n ShareRequests.updatePrivacy(\n shareLink.data.id,\n privacy,\n overrideRestrictions,\n () => alerts.success(getPhrase('privaciesSuccess', { name: entity.data.name })),\n () => alerts.error(getPhrase('privaciesError', { name: entity.data.name }))\n )\n );\n }\n\n function getSearchRequestHeaders(): HashObject {\n if (!shouldFetchUserToken)\n return null;\n\n return {\n authorization: `Bearer ${userToken.data.value}`\n };\n }\n\n /**\n * We are intentionally not checking to see if recipients.data or recentlySharedTo.data\n * have loaded because:\n * 1. Adding the first recipient will trigger fetching recipients for the first time\n * which would trigger the loading spinner.\n * 2. Adding and recipient will update the list of recently shared to which causes\n * recentlySharedTo to be re-fetched.\n */\n const dataLoaded = !!currentUser.data\n && !!config.data\n && (!shouldFetchUserToken || !!userToken.data)\n && !!sentDirectShare.hasCompleted\n && !!privacy.data\n && !!entity.data\n && !isLoadingSettings\n && !!yearGroups.hasCompleted;\n\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <Popup\n title={getTitle(props.entityType)}\n closePopup={props.closePopup}\n showLoadingSpinner={!dataLoaded}\n contentClassName={(dataLoaded && screen) ? 'bg-transparent border-0' : ''}\n bodyClassName='p-0'\n >\n {(() => {\n if (!dataLoaded)\n return <></>;\n\n switch (screen) {\n case 'main':\n return (\n <MainShare\n shareLink={shareLink.data}\n shareLinkIsLoading={shareLink.isFetching}\n entity={entity.data}\n entityType={props.entityType}\n directShareRecipients={recipients.data || []}\n recentlySharedTo={recentlySharedTo.data || []}\n onClickCreateLink={onClickCreateLink}\n onClickShowSettings={() => setScreen('link-settings')}\n onClickShare={onClickShare}\n onClickRemoveRecipient={onClickRemoveRecipient}\n onClickGetEmbedCode={() => setScreen('copy-embed')}\n analyticsOptions={ShareViewHelper.getAnalyticsOptions(props.entityType)}\n gatewayApiUrl={props.gatewayApiUrl || config.data.gatewayApiUrl}\n imageCdnUrl={config.data.imageCdnUrl}\n searchRequestHeaders={getSearchRequestHeaders()}\n currentUser={currentUser.data}\n fetchRecipientUsers={fetchRecipientUsers}\n privacy={privacy.data}\n onClickSavePrivacy={onClickSavePrivacy}\n canAddPolicies={canAddPolicies(props.entityType)}\n emptyStateImageUrl={props.emptyStateImageUrl}\n errorStateImageUrl={props.errorStateImageUrl}\n integrations={getEnabledIntegrations(shareToGoogleClassroom, shareToMicrosoftTeams)}\n integrationSettingAppLink={props.integrationSettingAppLink}\n messagePopupAppLink={props.messagePopupAppLink}\n closePopup={props.closePopup}\n enableIntegrationBanner={props.enableIntegrationBanner}\n canEmbed={canEmbed(props.entityType)}\n yearGroups={yearGroups.data}\n shareOverrideRestrictions={shareOverrideRestrictions}\n hasLocalPermissions={hasLocalPermissions}\n />\n );\n case 'link-settings':\n return (\n <div className='bg-white p-3 rounded-bottom-3'>\n <ShareSettings\n entity={entity.data}\n entityType={props.entityType}\n config={config.data}\n shareLink={shareLink.data}\n entityId={props.entityId}\n analyticsOptions={ShareViewHelper.getAnalyticsOptions(props.entityType)}\n onClickSaveLink={onClickSaveLink}\n onClickDeleteLink={onClickDeleteLink}\n onClickCancel={() => setScreen('main')}\n privacy={privacy.data}\n hasStudentExp={hasPermissions(PermissionName.StudentExperience)}\n shareOverrideRestrictions={shareOverrideRestrictions}\n />\n </div>\n );\n case 'copy-embed':\n return (\n <div className='bg-white p-3 rounded-bottom-3'>\n <CopyEmbed\n entity={entity.data}\n entityType={props.entityType}\n liteUrl={config.data.liteUrl}\n shareLink={shareLink.data}\n entityId={props.entityId}\n analyticsOptions={ShareViewHelper.getAnalyticsOptions(props.entityType)}\n onClickCancel={() => setScreen('main')}\n />\n </div>\n );\n }\n })()}\n </Popup>\n </LanguageNamespaceContext.Provider>\n );\n}\n"],"names":["toggleSelection","selection","active","ranges","i","range","deselectCurrent","require$$0","clipboardToIE11Formatting","defaultMessage","format","message","copyKey","copy","text","options","debug","reselectPrevious","mark","success","e","successful","err","copyToClipboard","_typeof","obj","Component","_react","_interopRequireDefault","_copyToClipboard","require$$1","_excluded","ownKeys","object","enumerableOnly","keys","symbols","sym","_objectSpread","target","source","key","_defineProperty","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","sourceKeys","_classCallCheck","instance","Constructor","_defineProperties","props","descriptor","_createClass","protoProps","staticProps","_inherits","subClass","superClass","_setPrototypeOf","o","p","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","_getPrototypeOf","result","NewTarget","_possibleConstructorReturn","self","call","_assertThisInitialized","value","CopyToClipboard","_React$PureComponent","_super","_this","_len","args","_key","event","_this$props","onCopy","children","elem","_this$props2","_require","lib","namespace","EmbedSize","autoplay","setAutoplay","videoSize","setVideoSize","videoSizes","jsxs","Fragment","jsx","Text","Dropdown","size","Checkbox","EmbedHelper","includeResponsive","resolutions","LanguageService","url","isResponsive","dynamicAttributes","fixedAttributes","src","iframe","embedUrl","host","shareId","consumerKey","baseUrl","UrlHelper","params","getPhrase","CopyEmbedHtml","copyBtnPhrase","setCopyBtnPhrase","React","s","logged","setLogged","AnalyticsHelper","ShareViewHelper","UserAction","ShareDescriptors","EventVersion","embedString","LanguageNamespaceContext","classNames","styles","CopyEmbed","PopupButtons","DivButton","CodeSvg","GetEmbedCode","SvgContainer","SvgContainerSize","ShareLinkItem","title","description","onClick","CheckSvg","ShareLinkInfo","canManageAccess","setCanManageAccess","privacy","setPrivacy","icon","ShareLinkHelper","canManageAccessPrivacy","canUpdatePrivacy","GoogleClassroomAvatar","MicrosoftTeamsAvatar","ShareIntegrationsStack","className","Tooltip","CopyInput","localShowCopiedText","setLocalShowCopiedText","React.useState","revertLocalShowCopiedText","React.useEffect","Button","IconButton","CopySvg","input","Form","ShareAsLink","LinkSvg","loadedScripts","useScript","shouldLoad","loaded","setLoaded","script","GOOGLE_CLASSROOM_CONTAINER_ID","useGoogleClassrooms","_b","_a","useMicrosoftTeamsShare","LookingForIntegration","visibility","setVisibility","useViewModel","SharedViewModelKeys","StorageType","AppLink","CloseSvg","IntegrationId","DEFAULT_ICON_SIZE","ShareIntegrations","googleContainerId","getIconSize","iconSize","integrationsContainerStyle","RestrictionBadge","Badge","BadgeType","VideoItemRestrictionBadge","hasRestrictions","RestrictionHelper","canConsume","VideoHelper","BadgeListContainer","MessageValidationSchema","Yup.object","Yup.string","ShareMessageForm","formikProps","useFormikContextWrapper","FormikForm","FormField","ShareMessage","onSubmit","data","onDone","FormWrapper","filterSearchResults","recipientsToFilter","currentSelections","existingShareRecipients","currentUserId","selectedIds","MainShare","selections","setSelections","showShareLinkSpinner","setShowShareLinkSpinner","hasPermissions","usePermissions","hasClassrooms","useSettings","hasManageIntegrationsPermission","PermissionName","onClickShare","fetchSelectionMembers","id","callback","users","newSelections","updatedSelection","ObjectHelper","ArrayHelper","getRemotePostBody","query","indices","UserGroup","ObjectStatus","TOKENIZED_TYPEAHEAD_SUGGESTIONS_LIMIT","canDirectShare","recentSearches","onClickCreateShareLink","TokenizedTypeahead","suggestions","Scrollbars","d","RecipientItem","Spinner","LINK_EXPIRY_TIME","getLinkExpiryDate","shouldExpire","date","LinkExpiry","useFormikContext","setLinkExpireDate","ToggleSwitch","SetPasswordInput","revealPassword","setRevealPassword","errorMsg","VisibleOnSvg","VisibleOffSvg","PASSWORD_PLACEHOLDER","LinkPassword","passwordProtectLink","setPasswordProtectLink","readonlyPassword","setReadonlyPassword","onTogglePasswordProtect","setPassword","password","resetPassword","ShareLinkSettingsValidationSchema","boolean","string","val","ShareSettingsForm","ShareSettings","initialValues","IntegrationHelper","googleClassroomSetting","msftTeamsSetting","SettingName","getTitle","type","getEnabledIntegrations","canEmbed","canAddPolicies","ShareView","dispatch","useDispatch","alerts","useAlerts","shouldFetchUserToken","screen","setScreen","hasLocalPermissions","currentUser","Flight.useBasicFetch","UserRequests","entity","config","ConfigRequests","userToken","shareLink","ShareRequests","sentDirectShare","recipients","recentlySharedToIds","RecentShareHelper","hasRecentlySharedRecipients","recentlySharedTo","yearGroups","_c","CustomerRequests","shareToGoogleClassroom","shareToMicrosoftTeams","shareOverrideRestrictions","isLoadingSettings","fetchRecipients","customerId","directShare","Flight.getFetch","fetchRecipientUsers","onClickCreateLink","onClickSaveLink","onError","onClickDeleteLink","shareRecipients","DefaultAlertHeading","AlertType","onClickRemoveRecipient","recipientId","onClickSavePrivacy","overrideRestrictions","Flight.fetch","getSearchRequestHeaders","dataLoaded","Popup"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}