@clickview/curator 1.100.0-rc.1 → 1.100.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (321) hide show
  1. package/dist/.vite/manifest.json +1779 -1779
  2. package/dist/Assets/js/dist/scripts/{CYhNyVj0.chunk.js → -6zuD8lo.chunk.js} +2 -2
  3. package/dist/Assets/js/dist/scripts/{CYhNyVj0.chunk.js.map → -6zuD8lo.chunk.js.map} +1 -1
  4. package/dist/Assets/js/dist/scripts/{D28bEsam.chunk.js → 0A42jU2r.chunk.js} +2 -2
  5. package/dist/Assets/js/dist/scripts/{D28bEsam.chunk.js.map → 0A42jU2r.chunk.js.map} +1 -1
  6. package/dist/Assets/js/dist/scripts/{oYHUjbwb2.chunk.js → 0ogjGD4J2.chunk.js} +2 -2
  7. package/dist/Assets/js/dist/scripts/{oYHUjbwb2.chunk.js.map → 0ogjGD4J2.chunk.js.map} +1 -1
  8. package/dist/Assets/js/dist/scripts/{PeuFojmJ2.chunk.js → 2aCj1HHJ2.chunk.js} +2 -2
  9. package/dist/Assets/js/dist/scripts/{PeuFojmJ2.chunk.js.map → 2aCj1HHJ2.chunk.js.map} +1 -1
  10. package/dist/Assets/js/dist/scripts/{q7pjZoNd.chunk.js → 2zbtFQka.chunk.js} +2 -2
  11. package/dist/Assets/js/dist/scripts/{q7pjZoNd.chunk.js.map → 2zbtFQka.chunk.js.map} +1 -1
  12. package/dist/Assets/js/dist/scripts/{0S5J0xX22.chunk.js → 3IQ_8AZP2.chunk.js} +2 -2
  13. package/dist/Assets/js/dist/scripts/{0S5J0xX22.chunk.js.map → 3IQ_8AZP2.chunk.js.map} +1 -1
  14. package/dist/Assets/js/dist/scripts/{DvP7S5Uq.chunk.js → 3eMwLZ5D.chunk.js} +2 -2
  15. package/dist/Assets/js/dist/scripts/{DvP7S5Uq.chunk.js.map → 3eMwLZ5D.chunk.js.map} +1 -1
  16. package/dist/Assets/js/dist/scripts/{y1L3G7XA2.chunk.js → 4Tx2JSvk2.chunk.js} +2 -2
  17. package/dist/Assets/js/dist/scripts/{y1L3G7XA2.chunk.js.map → 4Tx2JSvk2.chunk.js.map} +1 -1
  18. package/dist/Assets/js/dist/scripts/{BbR7yW4A2.chunk.js → 5uVJfyDx2.chunk.js} +2 -2
  19. package/dist/Assets/js/dist/scripts/{BbR7yW4A2.chunk.js.map → 5uVJfyDx2.chunk.js.map} +1 -1
  20. package/dist/Assets/js/dist/scripts/{B52yjTo5.chunk.js → 6l2s6d3Q.chunk.js} +2 -2
  21. package/dist/Assets/js/dist/scripts/{B52yjTo5.chunk.js.map → 6l2s6d3Q.chunk.js.map} +1 -1
  22. package/dist/Assets/js/dist/scripts/{DezIbRcB2.chunk.js → 8RAh0VA72.chunk.js} +2 -2
  23. package/dist/Assets/js/dist/scripts/{DezIbRcB2.chunk.js.map → 8RAh0VA72.chunk.js.map} +1 -1
  24. package/dist/Assets/js/dist/scripts/{CixcMUHF.chunk.js → 9nk_zFtT.chunk.js} +2 -2
  25. package/dist/Assets/js/dist/scripts/{CixcMUHF.chunk.js.map → 9nk_zFtT.chunk.js.map} +1 -1
  26. package/dist/Assets/js/dist/scripts/{Bk9vy70e2.chunk.js → Ae4rMqFm2.chunk.js} +2 -2
  27. package/dist/Assets/js/dist/scripts/{Bk9vy70e2.chunk.js.map → Ae4rMqFm2.chunk.js.map} +1 -1
  28. package/dist/Assets/js/dist/scripts/{Bzh_AwaG.chunk.js → B0mCquXn.chunk.js} +2 -2
  29. package/dist/Assets/js/dist/scripts/{Bzh_AwaG.chunk.js.map → B0mCquXn.chunk.js.map} +1 -1
  30. package/dist/Assets/js/dist/scripts/B1pBJzjh.chunk.js +1 -0
  31. package/dist/Assets/js/dist/scripts/{BswFY0mR2.chunk.js → B6IinlWw2.chunk.js} +2 -2
  32. package/dist/Assets/js/dist/scripts/{BswFY0mR2.chunk.js.map → B6IinlWw2.chunk.js.map} +1 -1
  33. package/dist/Assets/js/dist/scripts/{ClpIRgLR.chunk.js → B6NMAAhW.chunk.js} +2 -2
  34. package/dist/Assets/js/dist/scripts/{ClpIRgLR.chunk.js.map → B6NMAAhW.chunk.js.map} +1 -1
  35. package/dist/Assets/js/dist/scripts/{BCMXlwdC2.chunk.js → B8RZKQTs2.chunk.js} +2 -2
  36. package/dist/Assets/js/dist/scripts/{BCMXlwdC2.chunk.js.map → B8RZKQTs2.chunk.js.map} +1 -1
  37. package/dist/Assets/js/dist/scripts/{CymdouaN.chunk.js → B9R92bqj.chunk.js} +2 -2
  38. package/dist/Assets/js/dist/scripts/{CymdouaN.chunk.js.map → B9R92bqj.chunk.js.map} +1 -1
  39. package/dist/Assets/js/dist/scripts/{CtVYDK7g.chunk.js → BAFYJZ4c.chunk.js} +2 -2
  40. package/dist/Assets/js/dist/scripts/{CtVYDK7g.chunk.js.map → BAFYJZ4c.chunk.js.map} +1 -1
  41. package/dist/Assets/js/dist/scripts/{_wZpe632.chunk.js → BFPSIGJg.chunk.js} +2 -2
  42. package/dist/Assets/js/dist/scripts/{_wZpe632.chunk.js.map → BFPSIGJg.chunk.js.map} +1 -1
  43. package/dist/Assets/js/dist/scripts/{BNHULwJy2.chunk.js → BGiLDtc92.chunk.js} +2 -2
  44. package/dist/Assets/js/dist/scripts/{BNHULwJy2.chunk.js.map → BGiLDtc92.chunk.js.map} +1 -1
  45. package/dist/Assets/js/dist/scripts/{DA9R8atp2.chunk.js → BH6LIpwu2.chunk.js} +2 -2
  46. package/dist/Assets/js/dist/scripts/{DA9R8atp2.chunk.js.map → BH6LIpwu2.chunk.js.map} +1 -1
  47. package/dist/Assets/js/dist/scripts/{DbrVjVdn.chunk.js → BMj3pXcm.chunk.js} +2 -2
  48. package/dist/Assets/js/dist/scripts/{DbrVjVdn.chunk.js.map → BMj3pXcm.chunk.js.map} +1 -1
  49. package/dist/Assets/js/dist/scripts/{CDvLjxwS.chunk.js → BQTfNBFU.chunk.js} +2 -2
  50. package/dist/Assets/js/dist/scripts/{CDvLjxwS.chunk.js.map → BQTfNBFU.chunk.js.map} +1 -1
  51. package/dist/Assets/js/dist/scripts/{mStmtFRo.chunk.js → BT-jeT7C.chunk.js} +2 -2
  52. package/dist/Assets/js/dist/scripts/{mStmtFRo.chunk.js.map → BT-jeT7C.chunk.js.map} +1 -1
  53. package/dist/Assets/js/dist/scripts/{FlF2O19P2.chunk.js → BUD4osIg2.chunk.js} +2 -2
  54. package/dist/Assets/js/dist/scripts/{FlF2O19P2.chunk.js.map → BUD4osIg2.chunk.js.map} +1 -1
  55. package/dist/Assets/js/dist/scripts/{DWS9yr24.chunk.js → BVoG71Kc.chunk.js} +2 -2
  56. package/dist/Assets/js/dist/scripts/{DWS9yr24.chunk.js.map → BVoG71Kc.chunk.js.map} +1 -1
  57. package/dist/Assets/js/dist/scripts/{B9tf3oT62.chunk.js → BW5iVK1B2.chunk.js} +2 -2
  58. package/dist/Assets/js/dist/scripts/{B9tf3oT62.chunk.js.map → BW5iVK1B2.chunk.js.map} +1 -1
  59. package/dist/Assets/js/dist/scripts/{C2mEE4FT.chunk.js → BW9r-3iO.chunk.js} +2 -2
  60. package/dist/Assets/js/dist/scripts/{C2mEE4FT.chunk.js.map → BW9r-3iO.chunk.js.map} +1 -1
  61. package/dist/Assets/js/dist/scripts/{Dpgqkqbp.chunk.js → BX1tMzoa.chunk.js} +2 -2
  62. package/dist/Assets/js/dist/scripts/{Dpgqkqbp.chunk.js.map → BX1tMzoa.chunk.js.map} +1 -1
  63. package/dist/Assets/js/dist/scripts/{DVRzbAn6.chunk.js → BXaC-l33.chunk.js} +2 -2
  64. package/dist/Assets/js/dist/scripts/{DVRzbAn6.chunk.js.map → BXaC-l33.chunk.js.map} +1 -1
  65. package/dist/Assets/js/dist/scripts/{BaR7D4NT2.chunk.js → BY-c3M2b2.chunk.js} +2 -2
  66. package/dist/Assets/js/dist/scripts/{BaR7D4NT2.chunk.js.map → BY-c3M2b2.chunk.js.map} +1 -1
  67. package/dist/Assets/js/dist/scripts/{CJpVJtZk.chunk.js → BYMuPFbe.chunk.js} +2 -2
  68. package/dist/Assets/js/dist/scripts/{CJpVJtZk.chunk.js.map → BYMuPFbe.chunk.js.map} +1 -1
  69. package/dist/Assets/js/dist/scripts/{C5INFWaM2.chunk.js → BaOAOuSc2.chunk.js} +2 -2
  70. package/dist/Assets/js/dist/scripts/{C5INFWaM2.chunk.js.map → BaOAOuSc2.chunk.js.map} +1 -1
  71. package/dist/Assets/js/dist/scripts/{wAWlO6hc.chunk.js → Bb_f3Lku.chunk.js} +2 -2
  72. package/dist/Assets/js/dist/scripts/{wAWlO6hc.chunk.js.map → Bb_f3Lku.chunk.js.map} +1 -1
  73. package/dist/Assets/js/dist/scripts/{BLJO44vl.chunk.js → BdJYoUIO.chunk.js} +2 -2
  74. package/dist/Assets/js/dist/scripts/{BLJO44vl.chunk.js.map → BdJYoUIO.chunk.js.map} +1 -1
  75. package/dist/Assets/js/dist/scripts/{CW2k5Ut-2.chunk.js → Bf-6iyfX2.chunk.js} +2 -2
  76. package/dist/Assets/js/dist/scripts/{CW2k5Ut-2.chunk.js.map → Bf-6iyfX2.chunk.js.map} +1 -1
  77. package/dist/Assets/js/dist/scripts/{DxL0ZEcN2.chunk.js → BiPUuGEE2.chunk.js} +2 -2
  78. package/dist/Assets/js/dist/scripts/{DxL0ZEcN2.chunk.js.map → BiPUuGEE2.chunk.js.map} +1 -1
  79. package/dist/Assets/js/dist/scripts/{2XS-c0Xo.chunk.js → Bj4-NRWf.chunk.js} +2 -2
  80. package/dist/Assets/js/dist/scripts/{2XS-c0Xo.chunk.js.map → Bj4-NRWf.chunk.js.map} +1 -1
  81. package/dist/Assets/js/dist/scripts/{D13ViJt82.chunk.js → BkVcraos2.chunk.js} +2 -2
  82. package/dist/Assets/js/dist/scripts/{D13ViJt82.chunk.js.map → BkVcraos2.chunk.js.map} +1 -1
  83. package/dist/Assets/js/dist/scripts/{U1L4Dfoc.chunk.js → BkZ7WS_H.chunk.js} +2 -2
  84. package/dist/Assets/js/dist/scripts/{U1L4Dfoc.chunk.js.map → BkZ7WS_H.chunk.js.map} +1 -1
  85. package/dist/Assets/js/dist/scripts/{DoQiTqRX2.chunk.js → BoMt5mMW2.chunk.js} +2 -2
  86. package/dist/Assets/js/dist/scripts/{DoQiTqRX2.chunk.js.map → BoMt5mMW2.chunk.js.map} +1 -1
  87. package/dist/Assets/js/dist/scripts/{Da_9BBKD2.chunk.js → Bo_WsHZq2.chunk.js} +2 -2
  88. package/dist/Assets/js/dist/scripts/{Da_9BBKD2.chunk.js.map → Bo_WsHZq2.chunk.js.map} +1 -1
  89. package/dist/Assets/js/dist/scripts/{CnyrKBG0.chunk.js → BpV5ErII.chunk.js} +2 -2
  90. package/dist/Assets/js/dist/scripts/{CnyrKBG0.chunk.js.map → BpV5ErII.chunk.js.map} +1 -1
  91. package/dist/Assets/js/dist/scripts/{Dfhl7nI62.chunk.js → BrBPGjLi2.chunk.js} +2 -2
  92. package/dist/Assets/js/dist/scripts/{Dfhl7nI62.chunk.js.map → BrBPGjLi2.chunk.js.map} +1 -1
  93. package/dist/Assets/js/dist/scripts/{DcxGcCkR.chunk.js → BrHyZG_m.chunk.js} +2 -2
  94. package/dist/Assets/js/dist/scripts/{DcxGcCkR.chunk.js.map → BrHyZG_m.chunk.js.map} +1 -1
  95. package/dist/Assets/js/dist/scripts/{FXPxauLF.chunk.js → Bu4F3uuX.chunk.js} +2 -2
  96. package/dist/Assets/js/dist/scripts/{FXPxauLF.chunk.js.map → Bu4F3uuX.chunk.js.map} +1 -1
  97. package/dist/Assets/js/dist/scripts/{DZdJx-7j.chunk.js → BvW9SXzy.chunk.js} +2 -2
  98. package/dist/Assets/js/dist/scripts/{DZdJx-7j.chunk.js.map → BvW9SXzy.chunk.js.map} +1 -1
  99. package/dist/Assets/js/dist/scripts/{CAU0Lbgd.chunk.js → BwKHls91.chunk.js} +2 -2
  100. package/dist/Assets/js/dist/scripts/{CAU0Lbgd.chunk.js.map → BwKHls91.chunk.js.map} +1 -1
  101. package/dist/Assets/js/dist/scripts/{BiTzUyxj2.chunk.js → BxZNJjbX2.chunk.js} +2 -2
  102. package/dist/Assets/js/dist/scripts/{BiTzUyxj2.chunk.js.map → BxZNJjbX2.chunk.js.map} +1 -1
  103. package/dist/Assets/js/dist/scripts/{cymXuIcM.chunk.js → BygVW5WL.chunk.js} +2 -2
  104. package/dist/Assets/js/dist/scripts/{cymXuIcM.chunk.js.map → BygVW5WL.chunk.js.map} +1 -1
  105. package/dist/Assets/js/dist/scripts/{Dx07A6Ct.chunk.js → ByzsHBuo.chunk.js} +2 -2
  106. package/dist/Assets/js/dist/scripts/{Dx07A6Ct.chunk.js.map → ByzsHBuo.chunk.js.map} +1 -1
  107. package/dist/Assets/js/dist/scripts/C-M2om56.chunk.js +3 -0
  108. package/dist/Assets/js/dist/scripts/C-M2om56.chunk.js.map +1 -0
  109. package/dist/Assets/js/dist/scripts/{B6dlmRQL.chunk.js → C0UYMHUe.chunk.js} +2 -2
  110. package/dist/Assets/js/dist/scripts/{B6dlmRQL.chunk.js.map → C0UYMHUe.chunk.js.map} +1 -1
  111. package/dist/Assets/js/dist/scripts/{V0N7tCBl.chunk.js → C0_pEFCD.chunk.js} +2 -2
  112. package/dist/Assets/js/dist/scripts/{V0N7tCBl.chunk.js.map → C0_pEFCD.chunk.js.map} +1 -1
  113. package/dist/Assets/js/dist/scripts/{Cpr1J8Rk2.chunk.js → C2jRLu4_2.chunk.js} +2 -2
  114. package/dist/Assets/js/dist/scripts/{Cpr1J8Rk2.chunk.js.map → C2jRLu4_2.chunk.js.map} +1 -1
  115. package/dist/Assets/js/dist/scripts/{CY56FWb9.chunk.js → C2tBl3l9.chunk.js} +2 -2
  116. package/dist/Assets/js/dist/scripts/{CY56FWb9.chunk.js.map → C2tBl3l9.chunk.js.map} +1 -1
  117. package/dist/Assets/js/dist/scripts/{C3Lx9PwR.chunk.js → C4eazpDh.chunk.js} +2 -2
  118. package/dist/Assets/js/dist/scripts/{C3Lx9PwR.chunk.js.map → C4eazpDh.chunk.js.map} +1 -1
  119. package/dist/Assets/js/dist/scripts/{puobgAYi.chunk.js → CBq4vrjT.chunk.js} +2 -2
  120. package/dist/Assets/js/dist/scripts/{puobgAYi.chunk.js.map → CBq4vrjT.chunk.js.map} +1 -1
  121. package/dist/Assets/js/dist/scripts/{Bcx1C8ae.chunk.js → CBzqRw-k.chunk.js} +2 -2
  122. package/dist/Assets/js/dist/scripts/{Bcx1C8ae.chunk.js.map → CBzqRw-k.chunk.js.map} +1 -1
  123. package/dist/Assets/js/dist/scripts/{BD6DIPGL2.chunk.js → CDAdfAL02.chunk.js} +2 -2
  124. package/dist/Assets/js/dist/scripts/{BD6DIPGL2.chunk.js.map → CDAdfAL02.chunk.js.map} +1 -1
  125. package/dist/Assets/js/dist/scripts/{Ddp1uNfH.chunk.js → CE1Dxq8p.chunk.js} +2 -2
  126. package/dist/Assets/js/dist/scripts/{Ddp1uNfH.chunk.js.map → CE1Dxq8p.chunk.js.map} +1 -1
  127. package/dist/Assets/js/dist/scripts/{C99MPG7E.chunk.js → CG2julEA.chunk.js} +2 -2
  128. package/dist/Assets/js/dist/scripts/{C99MPG7E.chunk.js.map → CG2julEA.chunk.js.map} +1 -1
  129. package/dist/Assets/js/dist/scripts/{tyY3GHEC2.chunk.js → CGcN4g0d2.chunk.js} +2 -2
  130. package/dist/Assets/js/dist/scripts/{tyY3GHEC2.chunk.js.map → CGcN4g0d2.chunk.js.map} +1 -1
  131. package/dist/Assets/js/dist/scripts/{wODD7tmB2.chunk.js → CJmV_FfR2.chunk.js} +2 -2
  132. package/dist/Assets/js/dist/scripts/{wODD7tmB2.chunk.js.map → CJmV_FfR2.chunk.js.map} +1 -1
  133. package/dist/Assets/js/dist/scripts/{DavA1dZZ.chunk.js → CKvVGIRL.chunk.js} +2 -2
  134. package/dist/Assets/js/dist/scripts/{DavA1dZZ.chunk.js.map → CKvVGIRL.chunk.js.map} +1 -1
  135. package/dist/Assets/js/dist/scripts/{CrndJnZp.chunk.js → CL1DcbTZ.chunk.js} +2 -2
  136. package/dist/Assets/js/dist/scripts/{CrndJnZp.chunk.js.map → CL1DcbTZ.chunk.js.map} +1 -1
  137. package/dist/Assets/js/dist/scripts/{DLLL2lwS.chunk.js → CNLx6_fS.chunk.js} +2 -2
  138. package/dist/Assets/js/dist/scripts/{DLLL2lwS.chunk.js.map → CNLx6_fS.chunk.js.map} +1 -1
  139. package/dist/Assets/js/dist/scripts/{w2lackHw.chunk.js → CNUVs80P.chunk.js} +2 -2
  140. package/dist/Assets/js/dist/scripts/{w2lackHw.chunk.js.map → CNUVs80P.chunk.js.map} +1 -1
  141. package/dist/Assets/js/dist/scripts/{CCzvD0H4.chunk.js → CPa__SNX.chunk.js} +2 -2
  142. package/dist/Assets/js/dist/scripts/{CCzvD0H4.chunk.js.map → CPa__SNX.chunk.js.map} +1 -1
  143. package/dist/Assets/js/dist/scripts/{DeDh-wVP.chunk.js → CSA2Tnv9.chunk.js} +2 -2
  144. package/dist/Assets/js/dist/scripts/{DeDh-wVP.chunk.js.map → CSA2Tnv9.chunk.js.map} +1 -1
  145. package/dist/Assets/js/dist/scripts/{CjZJx6-O2.chunk.js → CT-xEpNT2.chunk.js} +2 -2
  146. package/dist/Assets/js/dist/scripts/{CjZJx6-O2.chunk.js.map → CT-xEpNT2.chunk.js.map} +1 -1
  147. package/dist/Assets/js/dist/scripts/{BRPP3VZ1.chunk.js → CT0vfLa0.chunk.js} +2 -2
  148. package/dist/Assets/js/dist/scripts/{BRPP3VZ1.chunk.js.map → CT0vfLa0.chunk.js.map} +1 -1
  149. package/dist/Assets/js/dist/scripts/{DGjNB2Bz.chunk.js → CUDnXypB.chunk.js} +2 -2
  150. package/dist/Assets/js/dist/scripts/{DGjNB2Bz.chunk.js.map → CUDnXypB.chunk.js.map} +1 -1
  151. package/dist/Assets/js/dist/scripts/{cXanUGwK.chunk.js → CeMQZB5J.chunk.js} +2 -2
  152. package/dist/Assets/js/dist/scripts/{cXanUGwK.chunk.js.map → CeMQZB5J.chunk.js.map} +1 -1
  153. package/dist/Assets/js/dist/scripts/Cf5cjLzK.chunk.js +2 -0
  154. package/dist/Assets/js/dist/scripts/{D2iK_uRt.chunk.js.map → Cf5cjLzK.chunk.js.map} +1 -1
  155. package/dist/Assets/js/dist/scripts/{CRNBuqmR.chunk.js → CfGaxIgd.chunk.js} +2 -2
  156. package/dist/Assets/js/dist/scripts/{CRNBuqmR.chunk.js.map → CfGaxIgd.chunk.js.map} +1 -1
  157. package/dist/Assets/js/dist/scripts/{BNr7ZL3F2.chunk.js → Cqfub35W2.chunk.js} +2 -2
  158. package/dist/Assets/js/dist/scripts/{BNr7ZL3F2.chunk.js.map → Cqfub35W2.chunk.js.map} +1 -1
  159. package/dist/Assets/js/dist/scripts/{DRmwJ1it2.chunk.js → Cv8UpP5_2.chunk.js} +2 -2
  160. package/dist/Assets/js/dist/scripts/{DRmwJ1it2.chunk.js.map → Cv8UpP5_2.chunk.js.map} +1 -1
  161. package/dist/Assets/js/dist/scripts/{DOfeXfSj.chunk.js → CvV6jx2d.chunk.js} +2 -2
  162. package/dist/Assets/js/dist/scripts/{DOfeXfSj.chunk.js.map → CvV6jx2d.chunk.js.map} +1 -1
  163. package/dist/Assets/js/dist/scripts/{DnGnhqys.chunk.js → CxENQntH.chunk.js} +2 -2
  164. package/dist/Assets/js/dist/scripts/{DnGnhqys.chunk.js.map → CxENQntH.chunk.js.map} +1 -1
  165. package/dist/Assets/js/dist/scripts/{NMDkdR-8.chunk.js → CxIfJCSc.chunk.js} +2 -2
  166. package/dist/Assets/js/dist/scripts/{NMDkdR-8.chunk.js.map → CxIfJCSc.chunk.js.map} +1 -1
  167. package/dist/Assets/js/dist/scripts/{B9H-d-YC.chunk.js → CxggKQxV.chunk.js} +2 -2
  168. package/dist/Assets/js/dist/scripts/{B9H-d-YC.chunk.js.map → CxggKQxV.chunk.js.map} +1 -1
  169. package/dist/Assets/js/dist/scripts/{B3I44IzQ.chunk.js → CyNNZ1So.chunk.js} +2 -2
  170. package/dist/Assets/js/dist/scripts/{B3I44IzQ.chunk.js.map → CyNNZ1So.chunk.js.map} +1 -1
  171. package/dist/Assets/js/dist/scripts/{B2V1N14S.chunk.js → Cz-WSyAE.chunk.js} +2 -2
  172. package/dist/Assets/js/dist/scripts/{B2V1N14S.chunk.js.map → Cz-WSyAE.chunk.js.map} +1 -1
  173. package/dist/Assets/js/dist/scripts/{S9cTzcQc2.chunk.js → D2aQFJWt2.chunk.js} +2 -2
  174. package/dist/Assets/js/dist/scripts/{S9cTzcQc2.chunk.js.map → D2aQFJWt2.chunk.js.map} +1 -1
  175. package/dist/Assets/js/dist/scripts/{CEsXUxxo2.chunk.js → D2h9W4GA2.chunk.js} +2 -2
  176. package/dist/Assets/js/dist/scripts/{CEsXUxxo2.chunk.js.map → D2h9W4GA2.chunk.js.map} +1 -1
  177. package/dist/Assets/js/dist/scripts/{DqCsVhOS.chunk.js → D3NAhMJm.chunk.js} +2 -2
  178. package/dist/Assets/js/dist/scripts/{DqCsVhOS.chunk.js.map → D3NAhMJm.chunk.js.map} +1 -1
  179. package/dist/Assets/js/dist/scripts/{DpM1KgHy.chunk.js → D3aWaqBW.chunk.js} +2 -2
  180. package/dist/Assets/js/dist/scripts/{DpM1KgHy.chunk.js.map → D3aWaqBW.chunk.js.map} +1 -1
  181. package/dist/Assets/js/dist/scripts/{CxtxOtyF2.chunk.js → D4xcR0492.chunk.js} +2 -2
  182. package/dist/Assets/js/dist/scripts/{CxtxOtyF2.chunk.js.map → D4xcR0492.chunk.js.map} +1 -1
  183. package/dist/Assets/js/dist/scripts/{BEeh_Vbr.chunk.js → D5ek2PiI.chunk.js} +2 -2
  184. package/dist/Assets/js/dist/scripts/{BEeh_Vbr.chunk.js.map → D5ek2PiI.chunk.js.map} +1 -1
  185. package/dist/Assets/js/dist/scripts/{DjqQYm43.chunk.js → D61ei_h6.chunk.js} +2 -2
  186. package/dist/Assets/js/dist/scripts/{DjqQYm43.chunk.js.map → D61ei_h6.chunk.js.map} +1 -1
  187. package/dist/Assets/js/dist/scripts/{lgpeNdac.chunk.js → D6wyTufc.chunk.js} +2 -2
  188. package/dist/Assets/js/dist/scripts/{lgpeNdac.chunk.js.map → D6wyTufc.chunk.js.map} +1 -1
  189. package/dist/Assets/js/dist/scripts/{B8li8ced.chunk.js → D7I90XOo.chunk.js} +2 -2
  190. package/dist/Assets/js/dist/scripts/{B8li8ced.chunk.js.map → D7I90XOo.chunk.js.map} +1 -1
  191. package/dist/Assets/js/dist/scripts/{DBAwgllB.chunk.js → DArfNv9S.chunk.js} +2 -2
  192. package/dist/Assets/js/dist/scripts/{DBAwgllB.chunk.js.map → DArfNv9S.chunk.js.map} +1 -1
  193. package/dist/Assets/js/dist/scripts/{B6uYrrzJ2.chunk.js → DB-51xws2.chunk.js} +2 -2
  194. package/dist/Assets/js/dist/scripts/{B6uYrrzJ2.chunk.js.map → DB-51xws2.chunk.js.map} +1 -1
  195. package/dist/Assets/js/dist/scripts/{C-flCrUr.chunk.js → DENdEA1F.chunk.js} +2 -2
  196. package/dist/Assets/js/dist/scripts/{C-flCrUr.chunk.js.map → DENdEA1F.chunk.js.map} +1 -1
  197. package/dist/Assets/js/dist/scripts/{BuF_pg9-2.chunk.js → DFYiLmms2.chunk.js} +2 -2
  198. package/dist/Assets/js/dist/scripts/{BuF_pg9-2.chunk.js.map → DFYiLmms2.chunk.js.map} +1 -1
  199. package/dist/Assets/js/dist/scripts/{BE6LUVEo2.chunk.js → DHa-x1js2.chunk.js} +2 -2
  200. package/dist/Assets/js/dist/scripts/{BE6LUVEo2.chunk.js.map → DHa-x1js2.chunk.js.map} +1 -1
  201. package/dist/Assets/js/dist/scripts/{DDHep0UM.chunk.js → DHeA2NJS.chunk.js} +2 -2
  202. package/dist/Assets/js/dist/scripts/{DDHep0UM.chunk.js.map → DHeA2NJS.chunk.js.map} +1 -1
  203. package/dist/Assets/js/dist/scripts/{D5OaPA-v.chunk.js → DIDxfMO_.chunk.js} +2 -2
  204. package/dist/Assets/js/dist/scripts/{D5OaPA-v.chunk.js.map → DIDxfMO_.chunk.js.map} +1 -1
  205. package/dist/Assets/js/dist/scripts/{CV7UIOmh2.chunk.js → DMq1wDNm2.chunk.js} +2 -2
  206. package/dist/Assets/js/dist/scripts/{CV7UIOmh2.chunk.js.map → DMq1wDNm2.chunk.js.map} +1 -1
  207. package/dist/Assets/js/dist/scripts/{ByMU9ltp2.chunk.js → DNWM9yfh2.chunk.js} +2 -2
  208. package/dist/Assets/js/dist/scripts/{ByMU9ltp2.chunk.js.map → DNWM9yfh2.chunk.js.map} +1 -1
  209. package/dist/Assets/js/dist/scripts/{DFwtjofq2.chunk.js → DSj7VCEo2.chunk.js} +2 -2
  210. package/dist/Assets/js/dist/scripts/{DFwtjofq2.chunk.js.map → DSj7VCEo2.chunk.js.map} +1 -1
  211. package/dist/Assets/js/dist/scripts/{BSYuzR8N2.chunk.js → DSvehN9D2.chunk.js} +2 -2
  212. package/dist/Assets/js/dist/scripts/{BSYuzR8N2.chunk.js.map → DSvehN9D2.chunk.js.map} +1 -1
  213. package/dist/Assets/js/dist/scripts/{FS74_jrx.chunk.js → DTvCgZ4c.chunk.js} +2 -2
  214. package/dist/Assets/js/dist/scripts/{FS74_jrx.chunk.js.map → DTvCgZ4c.chunk.js.map} +1 -1
  215. package/dist/Assets/js/dist/scripts/{C7Gmh7eY.chunk.js → DWHKdmdQ.chunk.js} +2 -2
  216. package/dist/Assets/js/dist/scripts/{C7Gmh7eY.chunk.js.map → DWHKdmdQ.chunk.js.map} +1 -1
  217. package/dist/Assets/js/dist/scripts/{DXcaOjI_.chunk.js → DYFGF9Pe.chunk.js} +2 -2
  218. package/dist/Assets/js/dist/scripts/{DXcaOjI_.chunk.js.map → DYFGF9Pe.chunk.js.map} +1 -1
  219. package/dist/Assets/js/dist/scripts/{CIw53qNO2.chunk.js → DYOxTenc2.chunk.js} +2 -2
  220. package/dist/Assets/js/dist/scripts/{CIw53qNO2.chunk.js.map → DYOxTenc2.chunk.js.map} +1 -1
  221. package/dist/Assets/js/dist/scripts/{CignflP_2.chunk.js → DZthp5T62.chunk.js} +2 -2
  222. package/dist/Assets/js/dist/scripts/{CignflP_2.chunk.js.map → DZthp5T62.chunk.js.map} +1 -1
  223. package/dist/Assets/js/dist/scripts/{BlqDwJRY.chunk.js → Djgwr16q.chunk.js} +2 -2
  224. package/dist/Assets/js/dist/scripts/{BlqDwJRY.chunk.js.map → Djgwr16q.chunk.js.map} +1 -1
  225. package/dist/Assets/js/dist/scripts/{BwToh2X9.chunk.js → DjnvbVQs.chunk.js} +2 -2
  226. package/dist/Assets/js/dist/scripts/{BwToh2X9.chunk.js.map → DjnvbVQs.chunk.js.map} +1 -1
  227. package/dist/Assets/js/dist/scripts/{UelJUmgx2.chunk.js → DmrhyI9D2.chunk.js} +2 -2
  228. package/dist/Assets/js/dist/scripts/{UelJUmgx2.chunk.js.map → DmrhyI9D2.chunk.js.map} +1 -1
  229. package/dist/Assets/js/dist/scripts/{0KUhq7W7.chunk.js → DnZGILQc.chunk.js} +2 -2
  230. package/dist/Assets/js/dist/scripts/{0KUhq7W7.chunk.js.map → DnZGILQc.chunk.js.map} +1 -1
  231. package/dist/Assets/js/dist/scripts/{BSPrErub.chunk.js → DqnZw1cj.chunk.js} +2 -2
  232. package/dist/Assets/js/dist/scripts/{BSPrErub.chunk.js.map → DqnZw1cj.chunk.js.map} +1 -1
  233. package/dist/Assets/js/dist/scripts/{Bkx2vKcX2.chunk.js → DrAKpy8L2.chunk.js} +2 -2
  234. package/dist/Assets/js/dist/scripts/{Bkx2vKcX2.chunk.js.map → DrAKpy8L2.chunk.js.map} +1 -1
  235. package/dist/Assets/js/dist/scripts/{DX9DFxX2.chunk.js → DsM1bfoR.chunk.js} +2 -2
  236. package/dist/Assets/js/dist/scripts/{DX9DFxX2.chunk.js.map → DsM1bfoR.chunk.js.map} +1 -1
  237. package/dist/Assets/js/dist/scripts/{Dh3G-ann.chunk.js → Dt2TCPUI.chunk.js} +2 -2
  238. package/dist/Assets/js/dist/scripts/{Dh3G-ann.chunk.js.map → Dt2TCPUI.chunk.js.map} +1 -1
  239. package/dist/Assets/js/dist/scripts/{DA6Ynhan.chunk.js → DtylOK55.chunk.js} +2 -2
  240. package/dist/Assets/js/dist/scripts/{DA6Ynhan.chunk.js.map → DtylOK55.chunk.js.map} +1 -1
  241. package/dist/Assets/js/dist/scripts/{CJBiVila2.chunk.js → DuTcsFNo2.chunk.js} +2 -2
  242. package/dist/Assets/js/dist/scripts/{CJBiVila2.chunk.js.map → DuTcsFNo2.chunk.js.map} +1 -1
  243. package/dist/Assets/js/dist/scripts/{BBFS0f7w.chunk.js → Dw0mo6Cf.chunk.js} +2 -2
  244. package/dist/Assets/js/dist/scripts/{BBFS0f7w.chunk.js.map → Dw0mo6Cf.chunk.js.map} +1 -1
  245. package/dist/Assets/js/dist/scripts/{Cg5KHpRA.chunk.js → DwISzabN.chunk.js} +2 -2
  246. package/dist/Assets/js/dist/scripts/{Cg5KHpRA.chunk.js.map → DwISzabN.chunk.js.map} +1 -1
  247. package/dist/Assets/js/dist/scripts/{DMxtE2iS.chunk.js → DxW67uUT.chunk.js} +2 -2
  248. package/dist/Assets/js/dist/scripts/{DMxtE2iS.chunk.js.map → DxW67uUT.chunk.js.map} +1 -1
  249. package/dist/Assets/js/dist/scripts/{BOGS-BOS.chunk.js → Eg4zYYCO.chunk.js} +2 -2
  250. package/dist/Assets/js/dist/scripts/{BOGS-BOS.chunk.js.map → Eg4zYYCO.chunk.js.map} +1 -1
  251. package/dist/Assets/js/dist/scripts/{CSuC7le7.chunk.js → GT6nO4Jv.chunk.js} +2 -2
  252. package/dist/Assets/js/dist/scripts/{CSuC7le7.chunk.js.map → GT6nO4Jv.chunk.js.map} +1 -1
  253. package/dist/Assets/js/dist/scripts/{BhKv6dKl2.chunk.js → GpDEun8c2.chunk.js} +2 -2
  254. package/dist/Assets/js/dist/scripts/{BhKv6dKl2.chunk.js.map → GpDEun8c2.chunk.js.map} +1 -1
  255. package/dist/Assets/js/dist/scripts/{DKJC5qg0.chunk.js → OKjYL31I.chunk.js} +2 -2
  256. package/dist/Assets/js/dist/scripts/{DKJC5qg0.chunk.js.map → OKjYL31I.chunk.js.map} +1 -1
  257. package/dist/Assets/js/dist/scripts/{D8rrJ-jY2.chunk.js → OrCUhFjq2.chunk.js} +2 -2
  258. package/dist/Assets/js/dist/scripts/{D8rrJ-jY2.chunk.js.map → OrCUhFjq2.chunk.js.map} +1 -1
  259. package/dist/Assets/js/dist/scripts/{D3exV_Ay2.chunk.js → SVXAAhk02.chunk.js} +2 -2
  260. package/dist/Assets/js/dist/scripts/{D3exV_Ay2.chunk.js.map → SVXAAhk02.chunk.js.map} +1 -1
  261. package/dist/Assets/js/dist/scripts/{CcZKy7SH.chunk.js → SmmnJrec.chunk.js} +2 -2
  262. package/dist/Assets/js/dist/scripts/{CcZKy7SH.chunk.js.map → SmmnJrec.chunk.js.map} +1 -1
  263. package/dist/Assets/js/dist/scripts/{Dy4nscVE2.chunk.js → T3BageSw2.chunk.js} +2 -2
  264. package/dist/Assets/js/dist/scripts/{Dy4nscVE2.chunk.js.map → T3BageSw2.chunk.js.map} +1 -1
  265. package/dist/Assets/js/dist/scripts/{B8PM5Ji3.chunk.js → T6xxjp_W.chunk.js} +2 -2
  266. package/dist/Assets/js/dist/scripts/{B8PM5Ji3.chunk.js.map → T6xxjp_W.chunk.js.map} +1 -1
  267. package/dist/Assets/js/dist/scripts/{Cp6Af16p.chunk.js → Uc2eW092.chunk.js} +2 -2
  268. package/dist/Assets/js/dist/scripts/{Cp6Af16p.chunk.js.map → Uc2eW092.chunk.js.map} +1 -1
  269. package/dist/Assets/js/dist/scripts/{DmKyGgLu.chunk.js → XHoEdG1q.chunk.js} +2 -2
  270. package/dist/Assets/js/dist/scripts/{DmKyGgLu.chunk.js.map → XHoEdG1q.chunk.js.map} +1 -1
  271. package/dist/Assets/js/dist/scripts/{BdVoyBI02.chunk.js → Y14NYZ692.chunk.js} +2 -2
  272. package/dist/Assets/js/dist/scripts/{BdVoyBI02.chunk.js.map → Y14NYZ692.chunk.js.map} +1 -1
  273. package/dist/Assets/js/dist/scripts/{DrszevCi.chunk.js → Y_IcNhI9.chunk.js} +2 -2
  274. package/dist/Assets/js/dist/scripts/{DrszevCi.chunk.js.map → Y_IcNhI9.chunk.js.map} +1 -1
  275. package/dist/Assets/js/dist/scripts/{CMGpVYHd.chunk.js → Yr5eNz05.chunk.js} +2 -2
  276. package/dist/Assets/js/dist/scripts/{CMGpVYHd.chunk.js.map → Yr5eNz05.chunk.js.map} +1 -1
  277. package/dist/Assets/js/dist/scripts/{QnwProbJ2.chunk.js → Yrc9o6bG2.chunk.js} +2 -2
  278. package/dist/Assets/js/dist/scripts/{QnwProbJ2.chunk.js.map → Yrc9o6bG2.chunk.js.map} +1 -1
  279. package/dist/Assets/js/dist/scripts/{app-Dl-tzfIp.js → app-RphP4Ht0.js} +4 -4
  280. package/dist/Assets/js/dist/scripts/{app-Dl-tzfIp.js.map → app-RphP4Ht0.js.map} +1 -1
  281. package/dist/Assets/js/dist/scripts/{B96Bwi2D.chunk.js → cUgHqo-u.chunk.js} +2 -2
  282. package/dist/Assets/js/dist/scripts/{B96Bwi2D.chunk.js.map → cUgHqo-u.chunk.js.map} +1 -1
  283. package/dist/Assets/js/dist/scripts/{oGkpmMft2.chunk.js → dmUfJoJz2.chunk.js} +2 -2
  284. package/dist/Assets/js/dist/scripts/{oGkpmMft2.chunk.js.map → dmUfJoJz2.chunk.js.map} +1 -1
  285. package/dist/Assets/js/dist/scripts/{DjlPflaG.chunk.js → fapHSEex.chunk.js} +2 -2
  286. package/dist/Assets/js/dist/scripts/{DjlPflaG.chunk.js.map → fapHSEex.chunk.js.map} +1 -1
  287. package/dist/Assets/js/dist/scripts/{CaEXONXp2.chunk.js → jf0e_ii92.chunk.js} +2 -2
  288. package/dist/Assets/js/dist/scripts/{CaEXONXp2.chunk.js.map → jf0e_ii92.chunk.js.map} +1 -1
  289. package/dist/Assets/js/dist/scripts/{Co7TevGA.chunk.js → kp4jXqVv.chunk.js} +2 -2
  290. package/dist/Assets/js/dist/scripts/{Co7TevGA.chunk.js.map → kp4jXqVv.chunk.js.map} +1 -1
  291. package/dist/Assets/js/dist/scripts/lAvSm0ti.chunk.js +2 -0
  292. package/dist/Assets/js/dist/scripts/lAvSm0ti.chunk.js.map +1 -0
  293. package/dist/Assets/js/dist/scripts/{Dmf5vYc42.chunk.js → n7lzp_Mc2.chunk.js} +2 -2
  294. package/dist/Assets/js/dist/scripts/{Dmf5vYc42.chunk.js.map → n7lzp_Mc2.chunk.js.map} +1 -1
  295. package/dist/Assets/js/dist/scripts/{CG9yCT4r2.chunk.js → nvtWO4PW2.chunk.js} +2 -2
  296. package/dist/Assets/js/dist/scripts/{CG9yCT4r2.chunk.js.map → nvtWO4PW2.chunk.js.map} +1 -1
  297. package/dist/Assets/js/dist/scripts/{CACu0hGi2.chunk.js → oYKM19q12.chunk.js} +2 -2
  298. package/dist/Assets/js/dist/scripts/{CACu0hGi2.chunk.js.map → oYKM19q12.chunk.js.map} +1 -1
  299. package/dist/Assets/js/dist/scripts/{B5v11U7g.chunk.js → ohTu1tHz.chunk.js} +2 -2
  300. package/dist/Assets/js/dist/scripts/{B5v11U7g.chunk.js.map → ohTu1tHz.chunk.js.map} +1 -1
  301. package/dist/Assets/js/dist/scripts/{BrT-onLe2.chunk.js → uCRnfBEw2.chunk.js} +2 -2
  302. package/dist/Assets/js/dist/scripts/{BrT-onLe2.chunk.js.map → uCRnfBEw2.chunk.js.map} +1 -1
  303. package/dist/Assets/js/dist/scripts/{3XkTogZ22.chunk.js → udVWVmrH2.chunk.js} +2 -2
  304. package/dist/Assets/js/dist/scripts/{3XkTogZ22.chunk.js.map → udVWVmrH2.chunk.js.map} +1 -1
  305. package/dist/Assets/js/dist/scripts/{DW-yUqjB2.chunk.js → v0VARBBE2.chunk.js} +2 -2
  306. package/dist/Assets/js/dist/scripts/{DW-yUqjB2.chunk.js.map → v0VARBBE2.chunk.js.map} +1 -1
  307. package/dist/Assets/js/dist/scripts/{B4lIRWK22.chunk.js → vf9_5VGa2.chunk.js} +2 -2
  308. package/dist/Assets/js/dist/scripts/{B4lIRWK22.chunk.js.map → vf9_5VGa2.chunk.js.map} +1 -1
  309. package/dist/Assets/js/dist/scripts/{pOwOak4Z2.chunk.js → wTEWtWoE2.chunk.js} +2 -2
  310. package/dist/Assets/js/dist/scripts/{pOwOak4Z2.chunk.js.map → wTEWtWoE2.chunk.js.map} +1 -1
  311. package/dist/Assets/js/dist/scripts/{DPYIBfGB.chunk.js → xj8_Pfx7.chunk.js} +2 -2
  312. package/dist/Assets/js/dist/scripts/{DPYIBfGB.chunk.js.map → xj8_Pfx7.chunk.js.map} +1 -1
  313. package/dist/bundles.json +1 -1
  314. package/dist/en.json +1 -1
  315. package/package.json +1 -1
  316. package/dist/Assets/js/dist/scripts/D2iK_uRt.chunk.js +0 -2
  317. package/dist/Assets/js/dist/scripts/DBUreHJA.chunk.js +0 -3
  318. package/dist/Assets/js/dist/scripts/DBUreHJA.chunk.js.map +0 -1
  319. package/dist/Assets/js/dist/scripts/Dh5DbdtP.chunk.js +0 -2
  320. package/dist/Assets/js/dist/scripts/Dh5DbdtP.chunk.js.map +0 -1
  321. package/dist/Assets/js/dist/scripts/DrBVabtm.chunk.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"_wZpe632.chunk.js","names":[],"sources":["../../../../../src/apps/subjects/components/audiences/audience-levels/AudienceLevels.tsx","../../../../../src/apps/subjects/components/audiences/edit-audience-details/EditAudienceDetailsForm.tsx","../../../../../src/apps/subjects/components/audiences/edit-audience-details/EditAudienceDetails.tsx","../../../../../src/apps/subjects/components/audiences/edit-object-audiences/EditObjectAudiences.tsx","../../../../../src/apps/subjects/components/audiences/select-audiences/SelectAudiences.tsx","../../../../../src/apps/subjects/components/audiences/edit-audience-nav/EditAudienceNav.tsx","../../../../../src/apps/subjects/components/audiences/audience-member-list/AudienceMemberItem.tsx","../../../../../src/apps/subjects/components/audiences/audience-member-list/AudienceMemberList.tsx","../../../../../src/apps/subjects/components/levels/edit-level-details/EditLevelDetails.tsx","../../../../../src/apps/subjects/components/levels/select-levels/SelectLevels.tsx","../../../../../src/apps/subjects/components/levels/edit-level-nav/EditLevelNav.tsx","../../../../../src/apps/subjects/components/levels/level-member-list/LevelMemberItem.tsx","../../../../../src/apps/subjects/components/levels/level-member-list/LevelMemberListHeader.tsx","../../../../../src/apps/subjects/components/levels/level-member-list/LevelMemberList.tsx","../../../../../src/apps/subjects/components/presentations/EditTopicPresentationDetailsForm.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Table } from 'react-bootstrap';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\nimport { Actions, AppChannels } from 'shared/constants';\nimport { Level } from 'shared/interfaces/models';\n\nconst getAudienceAppLink = (a: PresentationAudience) => ({\n application: AppChannels.SUBJECTS,\n action: Actions.Subjects.EDIT_AUDIENCE,\n args: [ a.presentationId, a.masterId ]\n});\n\nconst getLevelAppLink = (l: Level) => ({\n application: AppChannels.SUBJECTS,\n action: Actions.Subjects.EDIT_LEVEL,\n args: [l.id]\n});\n\nconst getAudienceLevels = (audience: PresentationAudience, levels: Level[]) => {\n const backboneAudienceIds = audience.backboneAudienceIds;\n\n return levels.filter(l => backboneAudienceIds.includes(l.id));\n};\n\ninterface AudienceLevelsHeaderProps {\n showLevels: boolean;\n}\n\nfunction AudienceLevelsHeader({ showLevels }: AudienceLevelsHeaderProps): JSX.Element {\n return (\n <thead>\n <tr>\n <th>Audiences</th>\n {!!showLevels && <th>Mapped Backbone Audience(s)</th>}\n </tr>\n </thead>\n );\n}\n\ninterface AudienceLevelsRowProps {\n audience: PresentationAudience;\n levels: Level[];\n}\n\nfunction AudienceLevelsRow({ audience, levels }: AudienceLevelsRowProps): JSX.Element {\n return (\n <tr>\n <td>\n <AppLink appLink={getAudienceAppLink(audience)}>{audience.name}</AppLink>\n </td>\n <td>\n {levels.map(l =>\n <AppLink key={l.id} appLink={getLevelAppLink(l)} className='me-2'>{l.name}</AppLink>)}\n </td>\n </tr>\n );\n}\n\ninterface AudienceLevelsProps {\n audiences: PresentationAudience[];\n levels: Level[];\n}\n\nexport function AudienceLevels({ audiences, levels }: AudienceLevelsProps): JSX.Element {\n return (\n <Table responsive bordered>\n <AudienceLevelsHeader showLevels={!!audiences.length} />\n <tbody>\n {audiences.length ?\n audiences.map(a =>\n <AudienceLevelsRow key={a.masterId} audience={a} levels={getAudienceLevels(a, levels)} />) :\n <tr><td>This presentation has no audiences.</td></tr>\n }\n </tbody>\n </Table>\n );\n}\n","import * as React from 'react';\nimport { Form, useFormikContext } from 'formik';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { useCanSubmitForm } from 'libs/shared/hooks/UseCanSubmitForm';\n\nimport { CreateOrUpdateAudienceRequest } from 'shared/interfaces/data-requests';\nimport { Level } from 'shared/interfaces/models';\n\ninterface EditAudienceDetailsFormProps {\n masterId?: string;\n presentationId: string;\n levels: Level[];\n deleteAppLink: Core.AppLink;\n}\n\nexport function EditAudienceDetailsForm(props: EditAudienceDetailsFormProps): React.ReactElement {\n const isNew = props.masterId === null || props.masterId === undefined;\n\n const formikProps = useFormikContext<CreateOrUpdateAudienceRequest>();\n\n const canSubmit = useCanSubmitForm(formikProps);\n\n return (\n <Form>\n <FormField\n label='Name'\n name='name'\n id='name'\n value={formikProps.values.name}\n placeholder='Enter a name for this audience'\n autoFocus\n />\n <FormField\n label='Mapped Level(s)'\n as='select'\n name='backboneAudienceIds'\n id='level-ids'\n multiple\n size={props.levels.length}\n value={formikProps.values.backboneAudienceIds}\n >\n {props.levels.map(l => <option key={l.id} value={l.id}>{l.name}</option>)}\n </FormField>\n <div className='d-flex justify-content-between'>\n <SpinnerButton showSpinner={formikProps.isSubmitting} type='submit' disabled={!canSubmit}>\n {isNew ? 'Create' : 'Save'}\n </SpinnerButton>\n {!isNew &&\n <AppLink\n className='btn btn-danger'\n appLink={props.deleteAppLink}\n >\n Delete\n </AppLink>\n }\n </div>\n </Form>\n );\n}\n","import * as React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\nimport { CreateOrUpdateAudienceRequest } from 'shared/interfaces/data-requests';\nimport { Level } from 'shared/interfaces/models';\n\nimport { AudienceValidationSchema } from 'apps/subjects/utils';\n\nimport { EditAudienceDetailsForm } from './EditAudienceDetailsForm';\n\ninterface EditAudienceDetailsProps {\n presentationId: string;\n levels: Level[];\n saveAudience: (data: CreateOrUpdateAudienceRequest, onDone: () => void) => void;\n deleteAppLink?: Core.AppLink;\n audience?: PresentationAudience;\n}\n\nexport function EditAudienceDetails(props: EditAudienceDetailsProps): React.ReactElement {\n return (\n <FormWrapper<CreateOrUpdateAudienceRequest>\n initialValues={props.audience}\n validationSchema={AudienceValidationSchema}\n onSubmit={props.saveAudience}\n >\n <EditAudienceDetailsForm\n masterId={props.audience && props.audience.masterId}\n presentationId={props.presentationId}\n levels={props.levels}\n deleteAppLink={props.deleteAppLink}\n />\n </FormWrapper>\n );\n}\n","import * as React from 'react';\nimport { Spinner } from 'react-bootstrap';\n\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { Presentation, PresentationAudience } from 'libs/shared/interfaces';\n\nimport { PresentationSelect } from 'shared/components/presentations';\nimport { SubjectMemberType } from 'shared/enums';\nimport { Level } from 'shared/interfaces/models';\nimport { ClassificationMemberHelper } from 'shared/utils';\n\nimport { AudienceLevels, SelectAudiences, SelectLevels } from 'apps/subjects/components';\n\n// Filter out object audiences that aren't in current presentation.\nfunction filterAudiencesByPresentation(\n { objectAudiences, presentationAudiences }: EditObjectAudiencesProps\n): PresentationAudience[] {\n return objectAudiences.filter(a => presentationAudiences.some(p => p.masterId === a.masterId));\n}\n\nfunction getAllowedAudiences(\n { presentationAudiences, objectLevels, objectAudiences }: EditObjectAudiencesProps\n): PresentationAudience[] {\n if (!presentationAudiences || !objectLevels || !objectAudiences)\n return [];\n\n const backboneAudienceIds = objectLevels.map(l => l.id);\n\n /**\n * Show an audience if it is mapped to a level that the object is mapped to\n * OR if the object is already mapped to that audience so that it can be removed from the audience.\n */\n return presentationAudiences.filter(a => ArrayHelper.intersection(\n a.backboneAudienceIds,\n backboneAudienceIds\n ).length || objectAudiences.some(o => o.masterId === a.masterId));\n}\n\ninterface EditObjectAudiencesProps {\n objectLevels?: Level[];\n objectAudiences?: PresentationAudience[];\n presentations?: Presentation[];\n currentPresentation?: Presentation;\n setCurrentPresentation: (p: Presentation) => void;\n levels?: Level[]; // List of all levels.\n presentationAudiences?: PresentationAudience[]; // List of all audiences in presentations.\n memberType: SubjectMemberType;\n saveLevels: (backboneAudienceIds: string[], addToAudiences: boolean, setSubmittingFalse: () => void) => void;\n saveAudiences: (audienceIds: string[], setSubmittingFalse: () => void) => void;\n}\n\nexport function EditObjectAudiences(props: EditObjectAudiencesProps): JSX.Element {\n const backboneAudienceLoaded = props.objectLevels && props.presentations && props.levels && props.currentPresentation;\n const audiencesLoaded = backboneAudienceLoaded && props.presentationAudiences;\n\n const memberType = ClassificationMemberHelper.singularizeMemberType(props.memberType);\n\n const allowedPresentationAudiences = getAllowedAudiences(props);\n\n if (!backboneAudienceLoaded)\n return (\n <div className='text-center pt-5'>\n <Spinner as='div' animation='border' role='status' />\n </div>\n );\n\n return (\n <>\n <div className='border-bottom pb-3 mb-3'>\n <h6>Backbone Audiences</h6>\n <p>{`Select which backbone audiences this ${memberType} is mapped to.`}</p>\n <p>\n {'To see how backbone audiences correspond to audiences, scroll down to the' +\n ' audience-backbone audience mappings table.'}\n </p>\n <SelectLevels\n initialValues={{ backboneAudienceIds: props.objectLevels.map(l => l.id) }}\n saveLevels={props.saveLevels}\n levels={props.levels}\n memberType={props.memberType}\n />\n </div>\n\n <h6>Audiences</h6>\n <p>{`Select a presentation to view its audiences and map them to this ${memberType}.`}</p>\n <div className='w-50 pb-3'>\n <PresentationSelect\n presentations={props.presentations}\n currentPresentationId={props.currentPresentation.id}\n setCurrentPresentation={props.setCurrentPresentation}\n />\n </div>\n {(() => {\n if (!audiencesLoaded)\n return (\n <div className='text-center p-5'>\n <Spinner as='div' animation='border' role='status' />\n </div>\n );\n\n return (\n <>\n <p>Audience to backbone audience mappings for this presentation are displayed below.</p>\n <AudienceLevels levels={props.levels} audiences={props.presentationAudiences} />\n <p>{`Only the audiences which are mapped to a backbone audience that this ${memberType} is mapped to are displayed below.`}</p>\n {!!allowedPresentationAudiences.length && (\n <SelectAudiences\n initialValues={{\n audienceIds: filterAudiencesByPresentation(props).map(a => a.masterId)\n }}\n saveAudiences={props.saveAudiences}\n audiences={allowedPresentationAudiences}\n />\n )}\n </>\n );\n })()}\n </>\n );\n}\n","import * as React from 'react';\nimport { Form, useFormikContext } from 'formik';\n\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { useCanSubmitForm } from 'libs/shared/hooks/UseCanSubmitForm';\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\ninterface SelectAudiencesFormValues {\n audienceIds: string[];\n}\n\ninterface SelectAudiencesFormProps {\n audiences: PresentationAudience[];\n}\n\nfunction SelectAudiencesForm(props: SelectAudiencesFormProps): JSX.Element {\n const formikProps = useFormikContext<SelectAudiencesFormValues>();\n\n const canSubmit = useCanSubmitForm(formikProps);\n\n return (\n <Form>\n <FormField<SelectAudiencesFormValues>\n label='Audience(s)'\n as='select'\n name='audienceIds'\n id='audience-ids'\n multiple\n size={props.audiences.length}\n value={formikProps.values.audienceIds}\n >\n {props.audiences.map(a => <option key={a.masterId} value={a.masterId}>{a.name}</option>)}\n </FormField>\n <div className='d-flex justify-content-end'>\n <SpinnerButton showSpinner={formikProps.isSubmitting} type='submit' disabled={!canSubmit}>\n Save Audiences\n </SpinnerButton>\n </div>\n </Form>\n );\n}\n\ninterface SelectAudiencesProps {\n initialValues: SelectAudiencesFormValues;\n audiences: PresentationAudience[];\n saveAudiences: (audienceIds: string[], onDone: () => void) => void;\n}\n\nexport function SelectAudiences(props: SelectAudiencesProps): JSX.Element {\n const onSubmit = ({ audienceIds }: SelectAudiencesFormValues, onDone: () => void) =>\n props.saveAudiences(audienceIds, onDone);\n\n return (\n <FormWrapper<SelectAudiencesFormValues> initialValues={props.initialValues} onSubmit={onSubmit} enableReinitialize>\n <SelectAudiencesForm audiences={props.audiences} />\n </FormWrapper>\n );\n}\n","import * as React from 'react';\n\nimport { PresentationType } from 'libs/shared/enums/PresentationType';\nimport { Presentation } from 'libs/shared/interfaces';\n\nimport { Tabs } from 'shared/components';\nimport { Actions } from 'shared/constants';\nimport { LevelMemberType } from 'shared/enums';\nimport { NavItem } from 'shared/interfaces';\nimport { PresentationHelper } from 'shared/utils/PresentationHelper';\n\nimport { LevelsNavHelper } from 'apps/subjects/utils';\n\nconst isItemActive = (memberType?: LevelMemberType) => (item: NavItem) => {\n if (!memberType)\n return item.appLink.action === Actions.Subjects.EDIT_AUDIENCE;\n\n switch (memberType) {\n case LevelMemberType.Playlists:\n return item.appLink.action === Actions.Subjects.EDIT_AUDIENCE_PLAYLISTS;\n\n case LevelMemberType.Series:\n return item.appLink.action === Actions.Subjects.EDIT_AUDIENCE_SERIES;\n\n case LevelMemberType.Videos:\n return item.appLink.action === Actions.Subjects.EDIT_AUDIENCE_VIDEOS;\n\n case LevelMemberType.Clips:\n return item.appLink.action === Actions.Subjects.EDIT_AUDIENCE_CLIPS;\n\n case LevelMemberType.Interactives:\n return item.appLink.action === Actions.Subjects.EDIT_AUDIENCE_INTERACTIVES;\n }\n};\n\ninterface EditAudienceNavProps {\n presentation: Presentation;\n audienceId: string;\n presentationType: PresentationType;\n memberType?: LevelMemberType;\n}\n\nexport function EditAudienceNav(props: EditAudienceNavProps): React.ReactElement {\n const { presentation, audienceId, memberType, presentationType } = props;\n\n if (!presentation)\n return <></>;\n\n return (\n <>\n <h6>{`Presentation: ${PresentationHelper.formatPresentationName(presentation)}`}</h6>\n <div className='py-2'>\n <Tabs\n tabs={LevelsNavHelper.getEditAudienceTabs(presentation.id, audienceId, presentationType)}\n isItemActive={isItemActive(memberType)}\n />\n </div>\n </>\n );\n}\n","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { BaseObject } from 'libs/shared/interfaces';\n\ninterface AudienceMemberItemProps<T extends BaseObject> {\n item: T;\n getItemAppLink: (item: T) => Core.AppLink;\n actions?: ActionOptions[];\n}\n\nexport function AudienceMemberItem<T extends BaseObject>(\n props: AudienceMemberItemProps<T>\n): React.ReactElement {\n const { item, getItemAppLink, actions } = props;\n\n return (\n <tr>\n <td>\n <AppLink appLink={getItemAppLink(item)}>{item.name}</AppLink>\n </td>\n {actions &&\n <td>\n <span className='d-flex justify-content-end'>\n <Actions actions={actions} />\n </span>\n </td>\n }\n </tr>\n );\n}\n","import * as React from 'react';\nimport { Table } from 'react-bootstrap';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { BaseObject } from 'libs/shared/interfaces';\n\nimport { LevelMemberType } from 'shared/enums';\n\nimport { LevelMemberHelper } from 'apps/subjects/utils';\n\nimport { AudienceMemberItem } from './AudienceMemberItem';\n\ninterface AudienceMemberListProps<T extends BaseObject> {\n items: T[];\n memberType: LevelMemberType;\n getItemAppLink: (item: T) => Core.AppLink;\n getActions?: (item: T) => ActionOptions[];\n}\n\nexport function AudienceMemberList<T extends BaseObject>(\n props: AudienceMemberListProps<T>\n): React.ReactElement {\n const { items, memberType, getItemAppLink, getActions } = props;\n\n if (!items.length)\n return <div className='py-5'>{`No ${memberType} in this audience.`}</div>;\n\n const memberHeading =\n `${TextHelper.toTitleCase(LevelMemberHelper.singularizeMemberType(memberType))} Name`;\n\n return (\n <Table responsive>\n <thead>\n <tr>\n <th>{memberHeading}</th>\n {FunctionHelper.isFunction(getActions) && <th></th>}\n </tr>\n </thead>\n <tbody>\n {items.map(item => (\n <AudienceMemberItem\n item={item}\n key={item.id}\n getItemAppLink={getItemAppLink}\n actions={FunctionHelper.isFunction(getActions) && getActions(item)}\n />\n ))}\n </tbody>\n </Table>\n );\n}\n","import * as React from 'react';\nimport { Form, useFormikContext } from 'formik';\n\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { useCanSubmitForm } from 'libs/shared/hooks/UseCanSubmitForm';\n\nimport { CreateOrUpdateLevelRequest } from 'shared/interfaces/data-requests';\nimport { Level } from 'shared/interfaces/models';\n\nimport { LevelValidationSchema } from 'apps/subjects/utils';\n\ninterface EditLevelDetailsFormProps {\n id?: string;\n}\n\nexport function EditLevelDetailsForm(props: EditLevelDetailsFormProps): React.ReactElement {\n const isNew = props.id === null || props.id === undefined;\n\n const formikProps = useFormikContext<CreateOrUpdateLevelRequest>();\n\n const canSubmit = useCanSubmitForm(formikProps);\n\n return (\n <Form>\n <FormField<CreateOrUpdateLevelRequest>\n label='Name'\n type='text'\n name='name'\n id='name'\n value={formikProps.values.name}\n placeholder='Enter a name for this level'\n autoFocus\n />\n <SpinnerButton showSpinner={formikProps.isSubmitting} type='submit' disabled={!canSubmit}>\n {isNew ? 'Create' : 'Save'}\n </SpinnerButton>\n </Form>\n );\n}\n\ninterface EditLevelDetailsProps {\n level?: Level;\n saveLevel: (data: CreateOrUpdateLevelRequest, onDone: () => void) => void;\n}\n\nexport function EditLevelDetails(props: EditLevelDetailsProps): React.ReactElement {\n return (\n <FormWrapper<CreateOrUpdateLevelRequest>\n initialValues={props.level}\n validationSchema={LevelValidationSchema}\n onSubmit={props.saveLevel}\n >\n <EditLevelDetailsForm id={props.level && props.level.id} />\n </FormWrapper>\n );\n}\n","import * as React from 'react';\nimport { Form, useFormikContext } from 'formik';\n\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { useCanSubmitForm } from 'libs/shared/hooks/UseCanSubmitForm';\n\nimport { SubjectMemberType } from 'shared/enums';\nimport { Level } from 'shared/interfaces/models';\nimport { ClassificationMemberHelper } from 'shared/utils';\n\ninterface SelectLevelsFormValues {\n backboneAudienceIds: string[];\n}\n\ninterface SelectLevelsFormProps {\n levels: Level[];\n memberType: SubjectMemberType;\n}\n\nfunction SelectLevelsForm(props: SelectLevelsFormProps): JSX.Element {\n const memberType = ClassificationMemberHelper.singularizeMemberType(props.memberType);\n\n const formikProps = useFormikContext<SelectLevelsFormValues>();\n\n const canSubmit = useCanSubmitForm(formikProps);\n\n return (\n <Form>\n <FormField<SelectLevelsFormValues>\n label='Backbone Audience(s)'\n as='select'\n name='backboneAudienceIds'\n id='level-ids'\n multiple\n size={props.levels.length}\n value={formikProps.values.backboneAudienceIds}\n >\n {props.levels.map(l => <option key={l.id} value={l.id}>{l.name}</option>)}\n </FormField>\n <p>\n <strong>Note:</strong>\n {` When removing a ${memberType} from a backbone audience, that backbone audience's mapped audiences `}\n <strong>will not</strong> be automatically removed from.\n </p>\n <div className='d-flex justify-content-end'>\n <SpinnerButton showSpinner={formikProps.isSubmitting} type='submit' disabled={!canSubmit}>\n Save Backbone Audience\n </SpinnerButton>\n </div>\n </Form>\n );\n}\n\ninterface SelectLevelsProps {\n initialValues: SelectLevelsFormValues;\n levels: Level[];\n memberType: SubjectMemberType;\n saveLevels: (backboneAudienceIds: string[], addToAudiences: boolean, setSubmittingFalse: () => void) => void;\n}\n\nexport function SelectLevels(props: SelectLevelsProps): JSX.Element {\n const onSubmit = ({ backboneAudienceIds }: SelectLevelsFormValues, onDone: () => void) =>\n props.saveLevels(backboneAudienceIds, false, onDone);\n\n return (\n <FormWrapper<SelectLevelsFormValues> initialValues={props.initialValues} onSubmit={onSubmit}>\n <SelectLevelsForm levels={props.levels} memberType={props.memberType} />\n </FormWrapper>\n );\n}\n","import * as React from 'react';\nimport { Alert } from 'react-bootstrap';\n\nimport { Tabs } from 'shared/components';\nimport { NavItem } from 'shared/interfaces';\n\nimport { LevelsNavHelper } from 'apps/subjects/utils';\n\nconst isItemActive = (activeAction: string) => (item: NavItem) => item.appLink.action === activeAction;\n\ninterface EditLevelNavProps {\n levelId: string;\n activeAction: string;\n presentationId?: string;\n}\n\nexport function EditLevelNav({ levelId, activeAction, presentationId }: EditLevelNavProps): React.ReactElement {\n return (\n <>\n <Alert variant='danger'>\n Warning: You are editing the backbone audiences.\n </Alert>\n <div className='py-2'>\n <Tabs\n tabs={LevelsNavHelper.getEditLevelTabs(levelId, presentationId)}\n isItemActive={isItemActive(activeAction)}\n />\n </div>\n </>\n );\n}\n","import * as React from 'react';\n\nimport { DevError } from 'libs/common/backbone/errors/DevError';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\n\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\n\nimport { Checkbox } from 'shared/components';\n\nimport { LevelMemberViewModel } from './LevelMemberList';\n\ninterface LevelMemberItemProps {\n member: LevelMemberViewModel;\n getMemberAppLink: (memberId: string) => Core.AppLink;\n onToggleAudience: (audienceId: string, selected: boolean, memberId: string) => void;\n actions?: ActionOptions[];\n}\n\nexport function LevelMemberItem(props: LevelMemberItemProps): React.ReactElement {\n const {\n member: { id, name, audiences = []},\n getMemberAppLink,\n onToggleAudience,\n actions\n } = props;\n\n const appLink = FunctionHelper.isFunction(getMemberAppLink) && getMemberAppLink(id);\n\n if (audiences.length && !FunctionHelper.isFunction(onToggleAudience))\n Core.ErrorHelper.throw(new DevError('onToggleAudience must be passed to LevelMemberItem'));\n\n return (\n <tr>\n <td>\n {appLink ?\n <AppLink appLink={getMemberAppLink(id)}>{name}</AppLink> :\n name\n }\n </td>\n {!!audiences.length && audiences.map(c => (\n <td key={c.id}>\n <Checkbox\n selected={c.selected}\n onToggle={(s: boolean) => onToggleAudience(c.id, s, id)}\n />\n </td>\n ))}\n {actions &&\n <td>\n <span className='d-flex justify-content-end'>\n <Actions actions={actions} />\n </span>\n </td>\n }\n </tr>\n );\n}\n","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\nimport { Checkbox } from 'shared/components';\nimport { LevelMemberType } from 'shared/enums';\n\nimport { LevelMemberHelper } from 'apps/subjects/utils';\n\nconst getAudienceLabel = (a: PresentationAudience, showAudienceSubHeader: boolean) =>\n showAudienceSubHeader ? a.name : `Audience: ${a.name}`;\n\ninterface AudienceHeaderColumnsProps {\n audiences: PresentationAudience[];\n getIsAudienceSelected: (audience: PresentationAudience) => boolean;\n onToggleAudience: (audienceId: string, selected: boolean) => void;\n getAudienceAppLink: (audienceId: string) => Core.AppLink;\n showAudienceSubHeader: boolean;\n}\n\nfunction AudienceHeaderColumns(props: AudienceHeaderColumnsProps): React.ReactElement {\n return (\n <>\n {props.audiences.map(a => (\n <th key={a.masterId}>\n <span className='d-inline-block'>\n <Checkbox\n selected={props.getIsAudienceSelected(a)}\n onToggle={(selected: boolean) => props.onToggleAudience(a.masterId, selected)}\n />\n </span>\n <AppLink appLink={props.getAudienceAppLink(a.masterId)}>\n {getAudienceLabel(a, props.showAudienceSubHeader)}\n </AppLink>\n </th>\n ))}\n </>\n );\n}\n\ninterface LevelMemberListHeaderProps {\n memberType: LevelMemberType;\n hasActions: boolean;\n audiences: PresentationAudience[];\n getIsAudienceSelected: (audience: PresentationAudience) => boolean;\n onToggleAudience: (audienceId: string, selected: boolean) => void;\n getAudienceAppLink: (audienceId: string) => Core.AppLink;\n}\n\nexport function LevelMemberListHeader(props: LevelMemberListHeaderProps): React.ReactElement {\n const { memberType, hasActions, audiences, ...otherProps } = props;\n\n const memberHeading = `${TextHelper.toTitleCase(LevelMemberHelper.singularizeMemberType(memberType))} Name`;\n\n const hasAudiences = !!audiences && !!audiences.length;\n\n const showAudienceSubHeader = hasAudiences && audiences.length > 1;\n\n const rowSpan = hasAudiences ? 2 : 1;\n\n const audienceColumnsProps = { audiences, showAudienceSubHeader, ...otherProps };\n\n return (\n <thead>\n <tr>\n <th rowSpan={rowSpan}>{memberHeading}</th>\n {hasAudiences && (showAudienceSubHeader ?\n <th colSpan={audiences.length} className='text-center'>Audiences</th> :\n <AudienceHeaderColumns {...audienceColumnsProps} />\n )}\n {hasActions && <th rowSpan={rowSpan}></th>}\n </tr>\n {hasAudiences && showAudienceSubHeader &&\n <tr>\n <AudienceHeaderColumns {...audienceColumnsProps} />\n </tr>\n }\n </thead>\n );\n}\n","import * as React from 'react';\nimport { Table } from 'react-bootstrap';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { PresentationAudience } from 'libs/shared/interfaces';\nimport { CollectionHelper } from 'libs/shared/utils/CollectionHelper';\n\nimport { LevelMemberType } from 'shared/enums';\n\nimport { LevelMemberItem } from './LevelMemberItem';\nimport { LevelMemberListHeader } from './LevelMemberListHeader';\n\nfunction allAudienceMembersSelected(\n memberType: LevelMemberType,\n members: LevelMemberViewModel[]\n): (audience: PresentationAudience) => boolean {\n return (audience: PresentationAudience) => {\n const audienceMembers = (audience as any)[memberType];\n\n const numSelectedMembers = CollectionHelper.length(audienceMembers);\n\n return !!numSelectedMembers && numSelectedMembers === members.length;\n };\n}\n\ntype AudienceViewModel = { id: string, selected: boolean };\n\nexport interface LevelMemberViewModel {\n id: string;\n name: string;\n audiences?: AudienceViewModel[];\n}\n\ninterface LevelMemberListProps {\n members: LevelMemberViewModel[];\n memberType: LevelMemberType;\n audiences: PresentationAudience[];\n getMemberAppLink: (memberId: string) => Core.AppLink;\n getAudienceAppLink: (audienceId: string) => Core.AppLink;\n onToggleAudience: (audienceId: string, selected: boolean, memberId?: string) => void;\n getActions?: (itemId: string) => ActionOptions[];\n}\n\nexport function LevelMemberList(props: LevelMemberListProps): React.ReactElement {\n const {\n members,\n memberType,\n getActions,\n audiences,\n getAudienceAppLink,\n onToggleAudience,\n ...itemProps\n } = props;\n\n if (!members.length)\n return <div className='py-5'>{`No ${memberType} in this level.`}</div>;\n\n const hasActions = FunctionHelper.isFunction(getActions);\n\n const headerProps = {\n memberType,\n audiences,\n getAudienceAppLink,\n getIsAudienceSelected: allAudienceMembersSelected(memberType, members),\n onToggleAudience,\n hasActions\n };\n\n return (\n <Table responsive bordered>\n <LevelMemberListHeader {...headerProps} />\n <tbody>\n {members.map((member, idx) => (\n <LevelMemberItem\n key={idx}\n member={member}\n actions={hasActions && getActions(member.id)}\n onToggleAudience={onToggleAudience}\n {...itemProps}\n />\n ))}\n </tbody>\n </Table>\n );\n}\n","import * as React from 'react';\nimport { Form, useFormikContext } from 'formik';\n\nimport { Core } from 'libs/common/core';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { FormButtons } from 'libs/shared/components/forms/form-buttons/FormButtons';\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { SelectContentRegion } from 'libs/shared/components/select-content-region/SelectContentRegion';\nimport { ImageType } from 'libs/shared/enums/Images';\nimport { PresentationLearningLevel } from 'libs/shared/enums/PresentationLearningLevel';\nimport { PresentationStatus } from 'libs/shared/enums/PresentationStatus';\nimport { PresentationType } from 'libs/shared/enums/PresentationType';\nimport { ContentRegionObject, PresentationTheme } from 'libs/shared/interfaces';\n\nimport { ImageSelect } from 'shared/components/forms/image-select/ImageSelect';\nimport { CreateOrUpdatePresentationRequest } from 'shared/interfaces';\n\ninterface EditTopicPresentationDetailsFormProps {\n isNew: boolean;\n allPresentationThemes?: PresentationTheme[];\n imageAppLink: Core.AppLink;\n contentRegions?: ContentRegionObject[];\n isStreamableLearning?: boolean;\n}\n\nexport function EditTopicPresentationDetailsForm(\n props: EditTopicPresentationDetailsFormProps\n): React.ReactElement {\n const formikProps = useFormikContext<CreateOrUpdatePresentationRequest>();\n\n const showThemes = !props.isNew && !props.isStreamableLearning && !!props.allPresentationThemes?.length;\n\n function onChangeTheme(checked: boolean, systemName: string) {\n const current = formikProps.values.themes;\n if (checked) {\n formikProps.setFieldValue('themes', [ ...current, systemName ]);\n } else {\n formikProps.setFieldValue('themes', current.filter(t => t !== systemName));\n if (formikProps.values.defaultThemeSystemName === systemName) {\n formikProps.setFieldValue('defaultThemeSystemName', null);\n }\n }\n }\n\n return (\n <Form>\n <FormField<CreateOrUpdatePresentationRequest>\n label='Name'\n type='text'\n name='name'\n id='name'\n value={formikProps.values.name}\n placeholder='Enter a name for this presentation'\n autoFocus\n />\n <FormField<CreateOrUpdatePresentationRequest>\n label='Description'\n as='textarea'\n name='description'\n id='description'\n value={formikProps.values.description}\n placeholder='Describe this presentation here'\n />\n <FormField<CreateOrUpdatePresentationRequest>\n label='Slug'\n type='text'\n name='slug'\n id='slug'\n value={formikProps.values.slug}\n disabled={!props.isNew}\n infoTooltip='Presentation slugs are used in customer-facing URLs and cannot be modified after being created.'\n placeholder='Enter a slug for this presentation. This must be unique and cannot be updated.'\n />\n <FormField<CreateOrUpdatePresentationRequest>\n as='select'\n label='Status'\n name='status'\n id='status'\n value={formikProps.values.status}\n disabled={props.isNew}\n >\n {ObjectHelper.getEnumKeys(PresentationStatus).map((key: PresentationStatus) =>\n <option key={key} value={PresentationStatus[key]}>{key}</option>)}\n </FormField>\n <FormField<CreateOrUpdatePresentationRequest>\n as='select'\n label='Type'\n name='type'\n id='type'\n value={formikProps.values.type}\n >\n {ObjectHelper.getEnumKeys(PresentationType).map((key: PresentationType) =>\n <option key={key} value={PresentationType[key]}>{key}</option>)}\n </FormField>\n <FormField<CreateOrUpdatePresentationRequest>\n as='select'\n label='Learning Level'\n name='learningLevel'\n id='learningLevel'\n value={formikProps.values.learningLevel}\n >\n {ObjectHelper.getEnumKeys(PresentationLearningLevel).map((key: PresentationLearningLevel) =>\n <option key={key} value={PresentationLearningLevel[key]}>{key}</option>)}\n </FormField>\n {props.contentRegions && (\n <FormField<CreateOrUpdatePresentationRequest>\n label='Content Regions'\n name='contentRegions'\n id='contentRegions'\n >\n {() => (\n <div className='w-50'>\n <SelectContentRegion\n type='radio'\n id='content-regions'\n options={props.contentRegions}\n selected={props.contentRegions.find(\n region => region.systemName === formikProps.values.contentRegions?.[0]\n ) || null}\n onUpdate={contentRegions => formikProps.setFieldValue('contentRegions', [contentRegions.systemName])}\n />\n </div>\n )}\n </FormField>\n )}\n {showThemes && (\n <FormField<CreateOrUpdatePresentationRequest>\n label='Themes'\n name='themes'\n id='themes'\n infoText='Select themes that available for the current presentation and its classifications'\n >\n {() => (\n <div>\n {props.allPresentationThemes.map(theme => (\n <div key={theme.systemName} className='form-check'>\n <input\n className='form-check-input'\n type='checkbox'\n id={`theme-${theme.systemName}`}\n checked={formikProps.values.themes.includes(theme.systemName)}\n onChange={e => onChangeTheme(e.target.checked, theme.systemName)}\n />\n <label className='form-check-label' htmlFor={`theme-${theme.systemName}`}>\n {theme.name}\n </label>\n </div>\n ))}\n </div>\n )}\n </FormField>\n )}\n\n {showThemes && (\n <FormField<CreateOrUpdatePresentationRequest>\n as='select'\n label='Default Theme'\n name='defaultThemeSystemName'\n id='defaultThemeSystemName'\n value={formikProps.values.defaultThemeSystemName ?? ''}\n infoText='Sets the default theme for the current presentation.'\n >\n <option value=''>None</option>\n {formikProps.values.themes.map(theme => {\n const currentTheme = props.allPresentationThemes.find(t => t.systemName === theme);\n if (!currentTheme) {\n return null;\n }\n return <option key={currentTheme.systemName} value={currentTheme.systemName}>{currentTheme.name}</option>;\n })}\n </FormField>\n )}\n <ImageSelect<CreateOrUpdatePresentationRequest>\n imageType={ImageType.Covers}\n fieldName='cover'\n uploadAppLink={props.imageAppLink}\n />\n <div className='btn-container d-flex justify-content-end'>\n <FormButtons isNew={props.isNew} />\n </div>\n </Form>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"BFPSIGJg.chunk.js","names":[],"sources":["../../../../../src/apps/subjects/components/audiences/audience-levels/AudienceLevels.tsx","../../../../../src/apps/subjects/components/audiences/edit-audience-details/EditAudienceDetailsForm.tsx","../../../../../src/apps/subjects/components/audiences/edit-audience-details/EditAudienceDetails.tsx","../../../../../src/apps/subjects/components/audiences/edit-object-audiences/EditObjectAudiences.tsx","../../../../../src/apps/subjects/components/audiences/select-audiences/SelectAudiences.tsx","../../../../../src/apps/subjects/components/audiences/edit-audience-nav/EditAudienceNav.tsx","../../../../../src/apps/subjects/components/audiences/audience-member-list/AudienceMemberItem.tsx","../../../../../src/apps/subjects/components/audiences/audience-member-list/AudienceMemberList.tsx","../../../../../src/apps/subjects/components/levels/edit-level-details/EditLevelDetails.tsx","../../../../../src/apps/subjects/components/levels/select-levels/SelectLevels.tsx","../../../../../src/apps/subjects/components/levels/edit-level-nav/EditLevelNav.tsx","../../../../../src/apps/subjects/components/levels/level-member-list/LevelMemberItem.tsx","../../../../../src/apps/subjects/components/levels/level-member-list/LevelMemberListHeader.tsx","../../../../../src/apps/subjects/components/levels/level-member-list/LevelMemberList.tsx","../../../../../src/apps/subjects/components/presentations/EditTopicPresentationDetailsForm.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Table } from 'react-bootstrap';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\nimport { Actions, AppChannels } from 'shared/constants';\nimport { Level } from 'shared/interfaces/models';\n\nconst getAudienceAppLink = (a: PresentationAudience) => ({\n application: AppChannels.SUBJECTS,\n action: Actions.Subjects.EDIT_AUDIENCE,\n args: [ a.presentationId, a.masterId ]\n});\n\nconst getLevelAppLink = (l: Level) => ({\n application: AppChannels.SUBJECTS,\n action: Actions.Subjects.EDIT_LEVEL,\n args: [l.id]\n});\n\nconst getAudienceLevels = (audience: PresentationAudience, levels: Level[]) => {\n const backboneAudienceIds = audience.backboneAudienceIds;\n\n return levels.filter(l => backboneAudienceIds.includes(l.id));\n};\n\ninterface AudienceLevelsHeaderProps {\n showLevels: boolean;\n}\n\nfunction AudienceLevelsHeader({ showLevels }: AudienceLevelsHeaderProps): JSX.Element {\n return (\n <thead>\n <tr>\n <th>Audiences</th>\n {!!showLevels && <th>Mapped Backbone Audience(s)</th>}\n </tr>\n </thead>\n );\n}\n\ninterface AudienceLevelsRowProps {\n audience: PresentationAudience;\n levels: Level[];\n}\n\nfunction AudienceLevelsRow({ audience, levels }: AudienceLevelsRowProps): JSX.Element {\n return (\n <tr>\n <td>\n <AppLink appLink={getAudienceAppLink(audience)}>{audience.name}</AppLink>\n </td>\n <td>\n {levels.map(l =>\n <AppLink key={l.id} appLink={getLevelAppLink(l)} className='me-2'>{l.name}</AppLink>)}\n </td>\n </tr>\n );\n}\n\ninterface AudienceLevelsProps {\n audiences: PresentationAudience[];\n levels: Level[];\n}\n\nexport function AudienceLevels({ audiences, levels }: AudienceLevelsProps): JSX.Element {\n return (\n <Table responsive bordered>\n <AudienceLevelsHeader showLevels={!!audiences.length} />\n <tbody>\n {audiences.length ?\n audiences.map(a =>\n <AudienceLevelsRow key={a.masterId} audience={a} levels={getAudienceLevels(a, levels)} />) :\n <tr><td>This presentation has no audiences.</td></tr>\n }\n </tbody>\n </Table>\n );\n}\n","import * as React from 'react';\nimport { Form, useFormikContext } from 'formik';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { useCanSubmitForm } from 'libs/shared/hooks/UseCanSubmitForm';\n\nimport { CreateOrUpdateAudienceRequest } from 'shared/interfaces/data-requests';\nimport { Level } from 'shared/interfaces/models';\n\ninterface EditAudienceDetailsFormProps {\n masterId?: string;\n presentationId: string;\n levels: Level[];\n deleteAppLink: Core.AppLink;\n}\n\nexport function EditAudienceDetailsForm(props: EditAudienceDetailsFormProps): React.ReactElement {\n const isNew = props.masterId === null || props.masterId === undefined;\n\n const formikProps = useFormikContext<CreateOrUpdateAudienceRequest>();\n\n const canSubmit = useCanSubmitForm(formikProps);\n\n return (\n <Form>\n <FormField\n label='Name'\n name='name'\n id='name'\n value={formikProps.values.name}\n placeholder='Enter a name for this audience'\n autoFocus\n />\n <FormField\n label='Mapped Level(s)'\n as='select'\n name='backboneAudienceIds'\n id='level-ids'\n multiple\n size={props.levels.length}\n value={formikProps.values.backboneAudienceIds}\n >\n {props.levels.map(l => <option key={l.id} value={l.id}>{l.name}</option>)}\n </FormField>\n <div className='d-flex justify-content-between'>\n <SpinnerButton showSpinner={formikProps.isSubmitting} type='submit' disabled={!canSubmit}>\n {isNew ? 'Create' : 'Save'}\n </SpinnerButton>\n {!isNew &&\n <AppLink\n className='btn btn-danger'\n appLink={props.deleteAppLink}\n >\n Delete\n </AppLink>\n }\n </div>\n </Form>\n );\n}\n","import * as React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\nimport { CreateOrUpdateAudienceRequest } from 'shared/interfaces/data-requests';\nimport { Level } from 'shared/interfaces/models';\n\nimport { AudienceValidationSchema } from 'apps/subjects/utils';\n\nimport { EditAudienceDetailsForm } from './EditAudienceDetailsForm';\n\ninterface EditAudienceDetailsProps {\n presentationId: string;\n levels: Level[];\n saveAudience: (data: CreateOrUpdateAudienceRequest, onDone: () => void) => void;\n deleteAppLink?: Core.AppLink;\n audience?: PresentationAudience;\n}\n\nexport function EditAudienceDetails(props: EditAudienceDetailsProps): React.ReactElement {\n return (\n <FormWrapper<CreateOrUpdateAudienceRequest>\n initialValues={props.audience}\n validationSchema={AudienceValidationSchema}\n onSubmit={props.saveAudience}\n >\n <EditAudienceDetailsForm\n masterId={props.audience && props.audience.masterId}\n presentationId={props.presentationId}\n levels={props.levels}\n deleteAppLink={props.deleteAppLink}\n />\n </FormWrapper>\n );\n}\n","import * as React from 'react';\nimport { Spinner } from 'react-bootstrap';\n\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { Presentation, PresentationAudience } from 'libs/shared/interfaces';\n\nimport { PresentationSelect } from 'shared/components/presentations';\nimport { SubjectMemberType } from 'shared/enums';\nimport { Level } from 'shared/interfaces/models';\nimport { ClassificationMemberHelper } from 'shared/utils';\n\nimport { AudienceLevels, SelectAudiences, SelectLevels } from 'apps/subjects/components';\n\n// Filter out object audiences that aren't in current presentation.\nfunction filterAudiencesByPresentation(\n { objectAudiences, presentationAudiences }: EditObjectAudiencesProps\n): PresentationAudience[] {\n return objectAudiences.filter(a => presentationAudiences.some(p => p.masterId === a.masterId));\n}\n\nfunction getAllowedAudiences(\n { presentationAudiences, objectLevels, objectAudiences }: EditObjectAudiencesProps\n): PresentationAudience[] {\n if (!presentationAudiences || !objectLevels || !objectAudiences)\n return [];\n\n const backboneAudienceIds = objectLevels.map(l => l.id);\n\n /**\n * Show an audience if it is mapped to a level that the object is mapped to\n * OR if the object is already mapped to that audience so that it can be removed from the audience.\n */\n return presentationAudiences.filter(a => ArrayHelper.intersection(\n a.backboneAudienceIds,\n backboneAudienceIds\n ).length || objectAudiences.some(o => o.masterId === a.masterId));\n}\n\ninterface EditObjectAudiencesProps {\n objectLevels?: Level[];\n objectAudiences?: PresentationAudience[];\n presentations?: Presentation[];\n currentPresentation?: Presentation;\n setCurrentPresentation: (p: Presentation) => void;\n levels?: Level[]; // List of all levels.\n presentationAudiences?: PresentationAudience[]; // List of all audiences in presentations.\n memberType: SubjectMemberType;\n saveLevels: (backboneAudienceIds: string[], addToAudiences: boolean, setSubmittingFalse: () => void) => void;\n saveAudiences: (audienceIds: string[], setSubmittingFalse: () => void) => void;\n}\n\nexport function EditObjectAudiences(props: EditObjectAudiencesProps): JSX.Element {\n const backboneAudienceLoaded = props.objectLevels && props.presentations && props.levels && props.currentPresentation;\n const audiencesLoaded = backboneAudienceLoaded && props.presentationAudiences;\n\n const memberType = ClassificationMemberHelper.singularizeMemberType(props.memberType);\n\n const allowedPresentationAudiences = getAllowedAudiences(props);\n\n if (!backboneAudienceLoaded)\n return (\n <div className='text-center pt-5'>\n <Spinner as='div' animation='border' role='status' />\n </div>\n );\n\n return (\n <>\n <div className='border-bottom pb-3 mb-3'>\n <h6>Backbone Audiences</h6>\n <p>{`Select which backbone audiences this ${memberType} is mapped to.`}</p>\n <p>\n {'To see how backbone audiences correspond to audiences, scroll down to the' +\n ' audience-backbone audience mappings table.'}\n </p>\n <SelectLevels\n initialValues={{ backboneAudienceIds: props.objectLevels.map(l => l.id) }}\n saveLevels={props.saveLevels}\n levels={props.levels}\n memberType={props.memberType}\n />\n </div>\n\n <h6>Audiences</h6>\n <p>{`Select a presentation to view its audiences and map them to this ${memberType}.`}</p>\n <div className='w-50 pb-3'>\n <PresentationSelect\n presentations={props.presentations}\n currentPresentationId={props.currentPresentation.id}\n setCurrentPresentation={props.setCurrentPresentation}\n />\n </div>\n {(() => {\n if (!audiencesLoaded)\n return (\n <div className='text-center p-5'>\n <Spinner as='div' animation='border' role='status' />\n </div>\n );\n\n return (\n <>\n <p>Audience to backbone audience mappings for this presentation are displayed below.</p>\n <AudienceLevels levels={props.levels} audiences={props.presentationAudiences} />\n <p>{`Only the audiences which are mapped to a backbone audience that this ${memberType} is mapped to are displayed below.`}</p>\n {!!allowedPresentationAudiences.length && (\n <SelectAudiences\n initialValues={{\n audienceIds: filterAudiencesByPresentation(props).map(a => a.masterId)\n }}\n saveAudiences={props.saveAudiences}\n audiences={allowedPresentationAudiences}\n />\n )}\n </>\n );\n })()}\n </>\n );\n}\n","import * as React from 'react';\nimport { Form, useFormikContext } from 'formik';\n\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { useCanSubmitForm } from 'libs/shared/hooks/UseCanSubmitForm';\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\ninterface SelectAudiencesFormValues {\n audienceIds: string[];\n}\n\ninterface SelectAudiencesFormProps {\n audiences: PresentationAudience[];\n}\n\nfunction SelectAudiencesForm(props: SelectAudiencesFormProps): JSX.Element {\n const formikProps = useFormikContext<SelectAudiencesFormValues>();\n\n const canSubmit = useCanSubmitForm(formikProps);\n\n return (\n <Form>\n <FormField<SelectAudiencesFormValues>\n label='Audience(s)'\n as='select'\n name='audienceIds'\n id='audience-ids'\n multiple\n size={props.audiences.length}\n value={formikProps.values.audienceIds}\n >\n {props.audiences.map(a => <option key={a.masterId} value={a.masterId}>{a.name}</option>)}\n </FormField>\n <div className='d-flex justify-content-end'>\n <SpinnerButton showSpinner={formikProps.isSubmitting} type='submit' disabled={!canSubmit}>\n Save Audiences\n </SpinnerButton>\n </div>\n </Form>\n );\n}\n\ninterface SelectAudiencesProps {\n initialValues: SelectAudiencesFormValues;\n audiences: PresentationAudience[];\n saveAudiences: (audienceIds: string[], onDone: () => void) => void;\n}\n\nexport function SelectAudiences(props: SelectAudiencesProps): JSX.Element {\n const onSubmit = ({ audienceIds }: SelectAudiencesFormValues, onDone: () => void) =>\n props.saveAudiences(audienceIds, onDone);\n\n return (\n <FormWrapper<SelectAudiencesFormValues> initialValues={props.initialValues} onSubmit={onSubmit} enableReinitialize>\n <SelectAudiencesForm audiences={props.audiences} />\n </FormWrapper>\n );\n}\n","import * as React from 'react';\n\nimport { PresentationType } from 'libs/shared/enums/PresentationType';\nimport { Presentation } from 'libs/shared/interfaces';\n\nimport { Tabs } from 'shared/components';\nimport { Actions } from 'shared/constants';\nimport { LevelMemberType } from 'shared/enums';\nimport { NavItem } from 'shared/interfaces';\nimport { PresentationHelper } from 'shared/utils/PresentationHelper';\n\nimport { LevelsNavHelper } from 'apps/subjects/utils';\n\nconst isItemActive = (memberType?: LevelMemberType) => (item: NavItem) => {\n if (!memberType)\n return item.appLink.action === Actions.Subjects.EDIT_AUDIENCE;\n\n switch (memberType) {\n case LevelMemberType.Playlists:\n return item.appLink.action === Actions.Subjects.EDIT_AUDIENCE_PLAYLISTS;\n\n case LevelMemberType.Series:\n return item.appLink.action === Actions.Subjects.EDIT_AUDIENCE_SERIES;\n\n case LevelMemberType.Videos:\n return item.appLink.action === Actions.Subjects.EDIT_AUDIENCE_VIDEOS;\n\n case LevelMemberType.Clips:\n return item.appLink.action === Actions.Subjects.EDIT_AUDIENCE_CLIPS;\n\n case LevelMemberType.Interactives:\n return item.appLink.action === Actions.Subjects.EDIT_AUDIENCE_INTERACTIVES;\n }\n};\n\ninterface EditAudienceNavProps {\n presentation: Presentation;\n audienceId: string;\n presentationType: PresentationType;\n memberType?: LevelMemberType;\n}\n\nexport function EditAudienceNav(props: EditAudienceNavProps): React.ReactElement {\n const { presentation, audienceId, memberType, presentationType } = props;\n\n if (!presentation)\n return <></>;\n\n return (\n <>\n <h6>{`Presentation: ${PresentationHelper.formatPresentationName(presentation)}`}</h6>\n <div className='py-2'>\n <Tabs\n tabs={LevelsNavHelper.getEditAudienceTabs(presentation.id, audienceId, presentationType)}\n isItemActive={isItemActive(memberType)}\n />\n </div>\n </>\n );\n}\n","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { BaseObject } from 'libs/shared/interfaces';\n\ninterface AudienceMemberItemProps<T extends BaseObject> {\n item: T;\n getItemAppLink: (item: T) => Core.AppLink;\n actions?: ActionOptions[];\n}\n\nexport function AudienceMemberItem<T extends BaseObject>(\n props: AudienceMemberItemProps<T>\n): React.ReactElement {\n const { item, getItemAppLink, actions } = props;\n\n return (\n <tr>\n <td>\n <AppLink appLink={getItemAppLink(item)}>{item.name}</AppLink>\n </td>\n {actions &&\n <td>\n <span className='d-flex justify-content-end'>\n <Actions actions={actions} />\n </span>\n </td>\n }\n </tr>\n );\n}\n","import * as React from 'react';\nimport { Table } from 'react-bootstrap';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { BaseObject } from 'libs/shared/interfaces';\n\nimport { LevelMemberType } from 'shared/enums';\n\nimport { LevelMemberHelper } from 'apps/subjects/utils';\n\nimport { AudienceMemberItem } from './AudienceMemberItem';\n\ninterface AudienceMemberListProps<T extends BaseObject> {\n items: T[];\n memberType: LevelMemberType;\n getItemAppLink: (item: T) => Core.AppLink;\n getActions?: (item: T) => ActionOptions[];\n}\n\nexport function AudienceMemberList<T extends BaseObject>(\n props: AudienceMemberListProps<T>\n): React.ReactElement {\n const { items, memberType, getItemAppLink, getActions } = props;\n\n if (!items.length)\n return <div className='py-5'>{`No ${memberType} in this audience.`}</div>;\n\n const memberHeading =\n `${TextHelper.toTitleCase(LevelMemberHelper.singularizeMemberType(memberType))} Name`;\n\n return (\n <Table responsive>\n <thead>\n <tr>\n <th>{memberHeading}</th>\n {FunctionHelper.isFunction(getActions) && <th></th>}\n </tr>\n </thead>\n <tbody>\n {items.map(item => (\n <AudienceMemberItem\n item={item}\n key={item.id}\n getItemAppLink={getItemAppLink}\n actions={FunctionHelper.isFunction(getActions) && getActions(item)}\n />\n ))}\n </tbody>\n </Table>\n );\n}\n","import * as React from 'react';\nimport { Form, useFormikContext } from 'formik';\n\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { useCanSubmitForm } from 'libs/shared/hooks/UseCanSubmitForm';\n\nimport { CreateOrUpdateLevelRequest } from 'shared/interfaces/data-requests';\nimport { Level } from 'shared/interfaces/models';\n\nimport { LevelValidationSchema } from 'apps/subjects/utils';\n\ninterface EditLevelDetailsFormProps {\n id?: string;\n}\n\nexport function EditLevelDetailsForm(props: EditLevelDetailsFormProps): React.ReactElement {\n const isNew = props.id === null || props.id === undefined;\n\n const formikProps = useFormikContext<CreateOrUpdateLevelRequest>();\n\n const canSubmit = useCanSubmitForm(formikProps);\n\n return (\n <Form>\n <FormField<CreateOrUpdateLevelRequest>\n label='Name'\n type='text'\n name='name'\n id='name'\n value={formikProps.values.name}\n placeholder='Enter a name for this level'\n autoFocus\n />\n <SpinnerButton showSpinner={formikProps.isSubmitting} type='submit' disabled={!canSubmit}>\n {isNew ? 'Create' : 'Save'}\n </SpinnerButton>\n </Form>\n );\n}\n\ninterface EditLevelDetailsProps {\n level?: Level;\n saveLevel: (data: CreateOrUpdateLevelRequest, onDone: () => void) => void;\n}\n\nexport function EditLevelDetails(props: EditLevelDetailsProps): React.ReactElement {\n return (\n <FormWrapper<CreateOrUpdateLevelRequest>\n initialValues={props.level}\n validationSchema={LevelValidationSchema}\n onSubmit={props.saveLevel}\n >\n <EditLevelDetailsForm id={props.level && props.level.id} />\n </FormWrapper>\n );\n}\n","import * as React from 'react';\nimport { Form, useFormikContext } from 'formik';\n\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { useCanSubmitForm } from 'libs/shared/hooks/UseCanSubmitForm';\n\nimport { SubjectMemberType } from 'shared/enums';\nimport { Level } from 'shared/interfaces/models';\nimport { ClassificationMemberHelper } from 'shared/utils';\n\ninterface SelectLevelsFormValues {\n backboneAudienceIds: string[];\n}\n\ninterface SelectLevelsFormProps {\n levels: Level[];\n memberType: SubjectMemberType;\n}\n\nfunction SelectLevelsForm(props: SelectLevelsFormProps): JSX.Element {\n const memberType = ClassificationMemberHelper.singularizeMemberType(props.memberType);\n\n const formikProps = useFormikContext<SelectLevelsFormValues>();\n\n const canSubmit = useCanSubmitForm(formikProps);\n\n return (\n <Form>\n <FormField<SelectLevelsFormValues>\n label='Backbone Audience(s)'\n as='select'\n name='backboneAudienceIds'\n id='level-ids'\n multiple\n size={props.levels.length}\n value={formikProps.values.backboneAudienceIds}\n >\n {props.levels.map(l => <option key={l.id} value={l.id}>{l.name}</option>)}\n </FormField>\n <p>\n <strong>Note:</strong>\n {` When removing a ${memberType} from a backbone audience, that backbone audience's mapped audiences `}\n <strong>will not</strong> be automatically removed from.\n </p>\n <div className='d-flex justify-content-end'>\n <SpinnerButton showSpinner={formikProps.isSubmitting} type='submit' disabled={!canSubmit}>\n Save Backbone Audience\n </SpinnerButton>\n </div>\n </Form>\n );\n}\n\ninterface SelectLevelsProps {\n initialValues: SelectLevelsFormValues;\n levels: Level[];\n memberType: SubjectMemberType;\n saveLevels: (backboneAudienceIds: string[], addToAudiences: boolean, setSubmittingFalse: () => void) => void;\n}\n\nexport function SelectLevels(props: SelectLevelsProps): JSX.Element {\n const onSubmit = ({ backboneAudienceIds }: SelectLevelsFormValues, onDone: () => void) =>\n props.saveLevels(backboneAudienceIds, false, onDone);\n\n return (\n <FormWrapper<SelectLevelsFormValues> initialValues={props.initialValues} onSubmit={onSubmit}>\n <SelectLevelsForm levels={props.levels} memberType={props.memberType} />\n </FormWrapper>\n );\n}\n","import * as React from 'react';\nimport { Alert } from 'react-bootstrap';\n\nimport { Tabs } from 'shared/components';\nimport { NavItem } from 'shared/interfaces';\n\nimport { LevelsNavHelper } from 'apps/subjects/utils';\n\nconst isItemActive = (activeAction: string) => (item: NavItem) => item.appLink.action === activeAction;\n\ninterface EditLevelNavProps {\n levelId: string;\n activeAction: string;\n presentationId?: string;\n}\n\nexport function EditLevelNav({ levelId, activeAction, presentationId }: EditLevelNavProps): React.ReactElement {\n return (\n <>\n <Alert variant='danger'>\n Warning: You are editing the backbone audiences.\n </Alert>\n <div className='py-2'>\n <Tabs\n tabs={LevelsNavHelper.getEditLevelTabs(levelId, presentationId)}\n isItemActive={isItemActive(activeAction)}\n />\n </div>\n </>\n );\n}\n","import * as React from 'react';\n\nimport { DevError } from 'libs/common/backbone/errors/DevError';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\n\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\n\nimport { Checkbox } from 'shared/components';\n\nimport { LevelMemberViewModel } from './LevelMemberList';\n\ninterface LevelMemberItemProps {\n member: LevelMemberViewModel;\n getMemberAppLink: (memberId: string) => Core.AppLink;\n onToggleAudience: (audienceId: string, selected: boolean, memberId: string) => void;\n actions?: ActionOptions[];\n}\n\nexport function LevelMemberItem(props: LevelMemberItemProps): React.ReactElement {\n const {\n member: { id, name, audiences = []},\n getMemberAppLink,\n onToggleAudience,\n actions\n } = props;\n\n const appLink = FunctionHelper.isFunction(getMemberAppLink) && getMemberAppLink(id);\n\n if (audiences.length && !FunctionHelper.isFunction(onToggleAudience))\n Core.ErrorHelper.throw(new DevError('onToggleAudience must be passed to LevelMemberItem'));\n\n return (\n <tr>\n <td>\n {appLink ?\n <AppLink appLink={getMemberAppLink(id)}>{name}</AppLink> :\n name\n }\n </td>\n {!!audiences.length && audiences.map(c => (\n <td key={c.id}>\n <Checkbox\n selected={c.selected}\n onToggle={(s: boolean) => onToggleAudience(c.id, s, id)}\n />\n </td>\n ))}\n {actions &&\n <td>\n <span className='d-flex justify-content-end'>\n <Actions actions={actions} />\n </span>\n </td>\n }\n </tr>\n );\n}\n","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\nimport { Checkbox } from 'shared/components';\nimport { LevelMemberType } from 'shared/enums';\n\nimport { LevelMemberHelper } from 'apps/subjects/utils';\n\nconst getAudienceLabel = (a: PresentationAudience, showAudienceSubHeader: boolean) =>\n showAudienceSubHeader ? a.name : `Audience: ${a.name}`;\n\ninterface AudienceHeaderColumnsProps {\n audiences: PresentationAudience[];\n getIsAudienceSelected: (audience: PresentationAudience) => boolean;\n onToggleAudience: (audienceId: string, selected: boolean) => void;\n getAudienceAppLink: (audienceId: string) => Core.AppLink;\n showAudienceSubHeader: boolean;\n}\n\nfunction AudienceHeaderColumns(props: AudienceHeaderColumnsProps): React.ReactElement {\n return (\n <>\n {props.audiences.map(a => (\n <th key={a.masterId}>\n <span className='d-inline-block'>\n <Checkbox\n selected={props.getIsAudienceSelected(a)}\n onToggle={(selected: boolean) => props.onToggleAudience(a.masterId, selected)}\n />\n </span>\n <AppLink appLink={props.getAudienceAppLink(a.masterId)}>\n {getAudienceLabel(a, props.showAudienceSubHeader)}\n </AppLink>\n </th>\n ))}\n </>\n );\n}\n\ninterface LevelMemberListHeaderProps {\n memberType: LevelMemberType;\n hasActions: boolean;\n audiences: PresentationAudience[];\n getIsAudienceSelected: (audience: PresentationAudience) => boolean;\n onToggleAudience: (audienceId: string, selected: boolean) => void;\n getAudienceAppLink: (audienceId: string) => Core.AppLink;\n}\n\nexport function LevelMemberListHeader(props: LevelMemberListHeaderProps): React.ReactElement {\n const { memberType, hasActions, audiences, ...otherProps } = props;\n\n const memberHeading = `${TextHelper.toTitleCase(LevelMemberHelper.singularizeMemberType(memberType))} Name`;\n\n const hasAudiences = !!audiences && !!audiences.length;\n\n const showAudienceSubHeader = hasAudiences && audiences.length > 1;\n\n const rowSpan = hasAudiences ? 2 : 1;\n\n const audienceColumnsProps = { audiences, showAudienceSubHeader, ...otherProps };\n\n return (\n <thead>\n <tr>\n <th rowSpan={rowSpan}>{memberHeading}</th>\n {hasAudiences && (showAudienceSubHeader ?\n <th colSpan={audiences.length} className='text-center'>Audiences</th> :\n <AudienceHeaderColumns {...audienceColumnsProps} />\n )}\n {hasActions && <th rowSpan={rowSpan}></th>}\n </tr>\n {hasAudiences && showAudienceSubHeader &&\n <tr>\n <AudienceHeaderColumns {...audienceColumnsProps} />\n </tr>\n }\n </thead>\n );\n}\n","import * as React from 'react';\nimport { Table } from 'react-bootstrap';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { PresentationAudience } from 'libs/shared/interfaces';\nimport { CollectionHelper } from 'libs/shared/utils/CollectionHelper';\n\nimport { LevelMemberType } from 'shared/enums';\n\nimport { LevelMemberItem } from './LevelMemberItem';\nimport { LevelMemberListHeader } from './LevelMemberListHeader';\n\nfunction allAudienceMembersSelected(\n memberType: LevelMemberType,\n members: LevelMemberViewModel[]\n): (audience: PresentationAudience) => boolean {\n return (audience: PresentationAudience) => {\n const audienceMembers = (audience as any)[memberType];\n\n const numSelectedMembers = CollectionHelper.length(audienceMembers);\n\n return !!numSelectedMembers && numSelectedMembers === members.length;\n };\n}\n\ntype AudienceViewModel = { id: string, selected: boolean };\n\nexport interface LevelMemberViewModel {\n id: string;\n name: string;\n audiences?: AudienceViewModel[];\n}\n\ninterface LevelMemberListProps {\n members: LevelMemberViewModel[];\n memberType: LevelMemberType;\n audiences: PresentationAudience[];\n getMemberAppLink: (memberId: string) => Core.AppLink;\n getAudienceAppLink: (audienceId: string) => Core.AppLink;\n onToggleAudience: (audienceId: string, selected: boolean, memberId?: string) => void;\n getActions?: (itemId: string) => ActionOptions[];\n}\n\nexport function LevelMemberList(props: LevelMemberListProps): React.ReactElement {\n const {\n members,\n memberType,\n getActions,\n audiences,\n getAudienceAppLink,\n onToggleAudience,\n ...itemProps\n } = props;\n\n if (!members.length)\n return <div className='py-5'>{`No ${memberType} in this level.`}</div>;\n\n const hasActions = FunctionHelper.isFunction(getActions);\n\n const headerProps = {\n memberType,\n audiences,\n getAudienceAppLink,\n getIsAudienceSelected: allAudienceMembersSelected(memberType, members),\n onToggleAudience,\n hasActions\n };\n\n return (\n <Table responsive bordered>\n <LevelMemberListHeader {...headerProps} />\n <tbody>\n {members.map((member, idx) => (\n <LevelMemberItem\n key={idx}\n member={member}\n actions={hasActions && getActions(member.id)}\n onToggleAudience={onToggleAudience}\n {...itemProps}\n />\n ))}\n </tbody>\n </Table>\n );\n}\n","import * as React from 'react';\nimport { Form, useFormikContext } from 'formik';\n\nimport { Core } from 'libs/common/core';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { FormButtons } from 'libs/shared/components/forms/form-buttons/FormButtons';\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { SelectContentRegion } from 'libs/shared/components/select-content-region/SelectContentRegion';\nimport { ImageType } from 'libs/shared/enums/Images';\nimport { PresentationLearningLevel } from 'libs/shared/enums/PresentationLearningLevel';\nimport { PresentationStatus } from 'libs/shared/enums/PresentationStatus';\nimport { PresentationType } from 'libs/shared/enums/PresentationType';\nimport { ContentRegionObject, PresentationTheme } from 'libs/shared/interfaces';\n\nimport { ImageSelect } from 'shared/components/forms/image-select/ImageSelect';\nimport { CreateOrUpdatePresentationRequest } from 'shared/interfaces';\n\ninterface EditTopicPresentationDetailsFormProps {\n isNew: boolean;\n allPresentationThemes?: PresentationTheme[];\n imageAppLink: Core.AppLink;\n contentRegions?: ContentRegionObject[];\n isStreamableLearning?: boolean;\n}\n\nexport function EditTopicPresentationDetailsForm(\n props: EditTopicPresentationDetailsFormProps\n): React.ReactElement {\n const formikProps = useFormikContext<CreateOrUpdatePresentationRequest>();\n\n const showThemes = !props.isNew && !props.isStreamableLearning && !!props.allPresentationThemes?.length;\n\n function onChangeTheme(checked: boolean, systemName: string) {\n const current = formikProps.values.themes;\n if (checked) {\n formikProps.setFieldValue('themes', [ ...current, systemName ]);\n } else {\n formikProps.setFieldValue('themes', current.filter(t => t !== systemName));\n if (formikProps.values.defaultThemeSystemName === systemName) {\n formikProps.setFieldValue('defaultThemeSystemName', null);\n }\n }\n }\n\n return (\n <Form>\n <FormField<CreateOrUpdatePresentationRequest>\n label='Name'\n type='text'\n name='name'\n id='name'\n value={formikProps.values.name}\n placeholder='Enter a name for this presentation'\n autoFocus\n />\n <FormField<CreateOrUpdatePresentationRequest>\n label='Description'\n as='textarea'\n name='description'\n id='description'\n value={formikProps.values.description}\n placeholder='Describe this presentation here'\n />\n <FormField<CreateOrUpdatePresentationRequest>\n label='Slug'\n type='text'\n name='slug'\n id='slug'\n value={formikProps.values.slug}\n disabled={!props.isNew}\n infoTooltip='Presentation slugs are used in customer-facing URLs and cannot be modified after being created.'\n placeholder='Enter a slug for this presentation. This must be unique and cannot be updated.'\n />\n <FormField<CreateOrUpdatePresentationRequest>\n as='select'\n label='Status'\n name='status'\n id='status'\n value={formikProps.values.status}\n disabled={props.isNew}\n >\n {ObjectHelper.getEnumKeys(PresentationStatus).map((key: PresentationStatus) =>\n <option key={key} value={PresentationStatus[key]}>{key}</option>)}\n </FormField>\n <FormField<CreateOrUpdatePresentationRequest>\n as='select'\n label='Type'\n name='type'\n id='type'\n value={formikProps.values.type}\n >\n {ObjectHelper.getEnumKeys(PresentationType).map((key: PresentationType) =>\n <option key={key} value={PresentationType[key]}>{key}</option>)}\n </FormField>\n <FormField<CreateOrUpdatePresentationRequest>\n as='select'\n label='Learning Level'\n name='learningLevel'\n id='learningLevel'\n value={formikProps.values.learningLevel}\n >\n {ObjectHelper.getEnumKeys(PresentationLearningLevel).map((key: PresentationLearningLevel) =>\n <option key={key} value={PresentationLearningLevel[key]}>{key}</option>)}\n </FormField>\n {props.contentRegions && (\n <FormField<CreateOrUpdatePresentationRequest>\n label='Content Regions'\n name='contentRegions'\n id='contentRegions'\n >\n {() => (\n <div className='w-50'>\n <SelectContentRegion\n type='radio'\n id='content-regions'\n options={props.contentRegions}\n selected={props.contentRegions.find(\n region => region.systemName === formikProps.values.contentRegions?.[0]\n ) || null}\n onUpdate={contentRegions => formikProps.setFieldValue('contentRegions', [contentRegions.systemName])}\n />\n </div>\n )}\n </FormField>\n )}\n {showThemes && (\n <FormField<CreateOrUpdatePresentationRequest>\n label='Themes'\n name='themes'\n id='themes'\n infoText='Select themes that available for the current presentation and its classifications'\n >\n {() => (\n <div>\n {props.allPresentationThemes.map(theme => (\n <div key={theme.systemName} className='form-check'>\n <input\n className='form-check-input'\n type='checkbox'\n id={`theme-${theme.systemName}`}\n checked={formikProps.values.themes.includes(theme.systemName)}\n onChange={e => onChangeTheme(e.target.checked, theme.systemName)}\n />\n <label className='form-check-label' htmlFor={`theme-${theme.systemName}`}>\n {theme.name}\n </label>\n </div>\n ))}\n </div>\n )}\n </FormField>\n )}\n\n {showThemes && (\n <FormField<CreateOrUpdatePresentationRequest>\n as='select'\n label='Default Theme'\n name='defaultThemeSystemName'\n id='defaultThemeSystemName'\n value={formikProps.values.defaultThemeSystemName ?? ''}\n infoText='Sets the default theme for the current presentation.'\n >\n <option value=''>None</option>\n {formikProps.values.themes.map(theme => {\n const currentTheme = props.allPresentationThemes.find(t => t.systemName === theme);\n if (!currentTheme) {\n return null;\n }\n return <option key={currentTheme.systemName} value={currentTheme.systemName}>{currentTheme.name}</option>;\n })}\n </FormField>\n )}\n <ImageSelect<CreateOrUpdatePresentationRequest>\n imageType={ImageType.Covers}\n fieldName='cover'\n uploadAppLink={props.imageAppLink}\n />\n <div className='btn-container d-flex justify-content-end'>\n <FormButtons isNew={props.isNew} />\n </div>\n </Form>\n );\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{C as e,a as t,i as n,ln as r}from"./rp704-Pm.chunk.js";import{t as i}from"./C1kx8Ra5.chunk.js";import{t as a}from"./UCDGupVs.chunk.js";import{s as o,u as s}from"./Dgk5cBBe.chunk.js";import"./Oh4_zGIH.chunk.js";import{t as c}from"./BDwjs8qz.chunk.js";import{t as l}from"./Bwpvc7Th2.chunk.js";import{t as u}from"./BhWPGAdN2.chunk.js";import{t as d}from"./BcwM0but2.chunk.js";import{t as f}from"./CoqIP93V2.chunk.js";import{t as p}from"./ogE6FIPU2.chunk.js";import{t as m}from"./Da_9BBKD2.chunk.js";var h=r(t()),g=n();function _(){let t=l(),n=s(),r=p(),_=o(f.contentRegions()),v=o(a.currentUser()),[y,b]=h.useState(null);async function x(e){b(e)}async function S(a){let o={...i.omit(a,[`contentRegions`,`parent`,`slug`]),status:c.Draft,contentRegionIds:a.contentRegions.map(e=>e.id),parentId:a.parent?.id,slug:a.slug?.toLowerCase()};try{if(await n(d.createContentPartner(o)),y)if(y.masterVideoId&&y.pendingProcessId)await n(d.updateVideoBanner(o.slug,y.masterVideoId,y.pendingProcessId)),b(null);else throw Error(`Pending video banner is not valid.`);t.success(`Successfully created a content partner.`),e.trigger(r.contentPartners())}catch(e){t.error(e.responseJSON?.message||`There was an error creating a content partner. Please try again.`)}}return!_.hasCompleted||!v.hasCompleted?(0,g.jsx)(u,{}):(0,g.jsx)(m,{onSave:S,contentRegions:_.data?.data,currentUser:v.data,onVideoUploadComplete:x})}export{_ as NewContentPartnerView};
2
- //# sourceMappingURL=BNHULwJy2.chunk.js.map
1
+ import{C as e,a as t,i as n,ln as r}from"./rp704-Pm.chunk.js";import{t as i}from"./C1kx8Ra5.chunk.js";import{t as a}from"./UCDGupVs.chunk.js";import{s as o,u as s}from"./Dgk5cBBe.chunk.js";import"./Oh4_zGIH.chunk.js";import{t as c}from"./BDwjs8qz.chunk.js";import{t as l}from"./Bwpvc7Th2.chunk.js";import{t as u}from"./BhWPGAdN2.chunk.js";import{t as d}from"./BcwM0but2.chunk.js";import{t as f}from"./CoqIP93V2.chunk.js";import{t as p}from"./ogE6FIPU2.chunk.js";import{t as m}from"./Bo_WsHZq2.chunk.js";var h=r(t()),g=n();function _(){let t=l(),n=s(),r=p(),_=o(f.contentRegions()),v=o(a.currentUser()),[y,b]=h.useState(null);async function x(e){b(e)}async function S(a){let o={...i.omit(a,[`contentRegions`,`parent`,`slug`]),status:c.Draft,contentRegionIds:a.contentRegions.map(e=>e.id),parentId:a.parent?.id,slug:a.slug?.toLowerCase()};try{if(await n(d.createContentPartner(o)),y)if(y.masterVideoId&&y.pendingProcessId)await n(d.updateVideoBanner(o.slug,y.masterVideoId,y.pendingProcessId)),b(null);else throw Error(`Pending video banner is not valid.`);t.success(`Successfully created a content partner.`),e.trigger(r.contentPartners())}catch(e){t.error(e.responseJSON?.message||`There was an error creating a content partner. Please try again.`)}}return!_.hasCompleted||!v.hasCompleted?(0,g.jsx)(u,{}):(0,g.jsx)(m,{onSave:S,contentRegions:_.data?.data,currentUser:v.data,onVideoUploadComplete:x})}export{_ as NewContentPartnerView};
2
+ //# sourceMappingURL=BGiLDtc92.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BNHULwJy2.chunk.js","names":[],"sources":["../../../../../src/apps/content-partners/views/new-content-partner/NewContentPartnerView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { PopupLoadingSpinner } from 'libs/shared/components/popup/PopupLoadingSpinner';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { ContentRegionCollection, CurrentUser } from 'libs/shared/interfaces';\n\nimport { PendingItem } from 'shared/components/upload-video/UploadVideo';\nimport { ContentRegionRequests } from 'shared/flight-requests/ContentRegionRequests';\nimport { ContentPartnerProfile } from 'shared/interfaces/models/ContentPartnerProfile';\n\nimport { EditContentPartner } from 'apps/content-partners/components/edit-content-partner/EditContentPartner';\nimport { ContentPartnerRequests } from 'apps/content-partners/flight-requests/ContentPartnerRequests';\nimport { EditPartnerFormData } from 'apps/content-partners/interfaces/EditPartnerFormData';\nimport { UpdateContentPartnerRequest } from 'apps/content-partners/interfaces/UpdateContentPartnerRequest';\nimport { getContentPartnerAppLinks } from 'apps/content-partners/utils/getContentPartnerAppLinks';\n\nexport function NewContentPartnerView(): JSX.Element {\n const alerts = useAlerts();\n\n const fetchAsync = Flight.useGetFetchAsync();\n const appLinks = getContentPartnerAppLinks();\n const contentRegions = Flight.useBasicFetch<ContentRegionCollection>(ContentRegionRequests.contentRegions());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const [ pendingVideoBanner, setPendingVideoBanner ] = React.useState<PendingItem | null>(null);\n\n async function onVideoUploadComplete(pendingItem: PendingItem) {\n setPendingVideoBanner(pendingItem);\n }\n\n async function onCreate(data: EditPartnerFormData): Promise<void> {\n const payload: UpdateContentPartnerRequest = {\n ...ObjectHelper.omit(data, [ 'contentRegions', 'parent', 'slug' ]),\n status: CurationStatus.Draft,\n contentRegionIds: data.contentRegions.map(cr => cr.id),\n parentId: data.parent?.id,\n slug: data.slug?.toLowerCase()\n };\n\n try {\n await fetchAsync<ContentPartnerProfile>(\n ContentPartnerRequests.createContentPartner(payload)\n );\n\n if (pendingVideoBanner) {\n if (!!pendingVideoBanner.masterVideoId && !!pendingVideoBanner.pendingProcessId) {\n await fetchAsync(ContentPartnerRequests.updateVideoBanner(\n payload.slug,\n pendingVideoBanner.masterVideoId,\n pendingVideoBanner.pendingProcessId\n ));\n\n setPendingVideoBanner(null);\n } else {\n throw new Error('Pending video banner is not valid.');\n }\n }\n alerts.success('Successfully created a content partner.');\n Core.AppLinkHelper.trigger(appLinks.contentPartners());\n } catch (xhr) {\n alerts.error(xhr.responseJSON?.message || 'There was an error creating a content partner. Please try again.');\n }\n }\n\n if (!contentRegions.hasCompleted || !currentUser.hasCompleted) {\n return <PopupLoadingSpinner/>;\n }\n\n return (\n <EditContentPartner\n onSave={onCreate}\n contentRegions={contentRegions.data?.data}\n currentUser={currentUser.data}\n onVideoUploadComplete={onVideoUploadComplete}\n />\n );\n}\n"],"mappings":"0gBAsBA,SAAgB,GAAqC,CACnD,IAAM,EAAS,EAAU,EAEnB,EAAa,EAAwB,EACrC,EAAW,EAA0B,EACrC,EAAiB,EAA8C,EAAsB,eAAe,CAAC,EACrG,EAAc,EAAkC,EAAa,YAAY,CAAC,EAE1E,CAAE,EAAoB,GAAA,EAAgC,SAA6B,IAAI,EAE7F,eAAe,EAAsB,EAA0B,CAC7D,EAAsB,CAAW,CACnC,CAEA,eAAe,EAAS,EAA0C,CAChE,IAAM,EAAuC,CAC3C,GAAG,EAAa,KAAK,EAAM,CAAE,iBAAkB,SAAU,MAAO,CAAC,EACjE,OAAQ,EAAe,MACvB,iBAAkB,EAAK,eAAe,IAAI,GAAM,EAAG,EAAE,EACrD,SAAU,EAAK,QAAQ,GACvB,KAAM,EAAK,MAAM,YAAY,CAC/B,EAEA,GAAI,CAKF,GAJA,MAAM,EACJ,EAAuB,qBAAqB,CAAO,CACrD,EAEI,EACF,GAAM,EAAmB,eAAmB,EAAmB,iBAC7D,MAAM,EAAW,EAAuB,kBACtC,EAAQ,KACR,EAAmB,cACnB,EAAmB,gBACrB,CAAC,EAED,EAAsB,IAAI,OAE1B,MAAU,MAAM,oCAAoC,EAGxD,EAAO,QAAQ,yCAAyC,EACxD,EAAmB,QAAQ,EAAS,gBAAgB,CAAC,CACvD,OAAS,EAAK,CACZ,EAAO,MAAM,EAAI,cAAc,SAAW,kEAAkE,CAC9G,CACF,CAMA,MAJI,CAAC,EAAe,cAAgB,CAAC,EAAY,cACxC,EAAA,EAAA,IAAA,CAAC,EAAD,CAAqB,CAAA,GAI5B,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,OAAQ,EACR,eAAgB,EAAe,MAAM,KACrC,YAAa,EAAY,KACF,uBACxB,CAAA,CAEL"}
1
+ {"version":3,"file":"BGiLDtc92.chunk.js","names":[],"sources":["../../../../../src/apps/content-partners/views/new-content-partner/NewContentPartnerView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { PopupLoadingSpinner } from 'libs/shared/components/popup/PopupLoadingSpinner';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { ContentRegionCollection, CurrentUser } from 'libs/shared/interfaces';\n\nimport { PendingItem } from 'shared/components/upload-video/UploadVideo';\nimport { ContentRegionRequests } from 'shared/flight-requests/ContentRegionRequests';\nimport { ContentPartnerProfile } from 'shared/interfaces/models/ContentPartnerProfile';\n\nimport { EditContentPartner } from 'apps/content-partners/components/edit-content-partner/EditContentPartner';\nimport { ContentPartnerRequests } from 'apps/content-partners/flight-requests/ContentPartnerRequests';\nimport { EditPartnerFormData } from 'apps/content-partners/interfaces/EditPartnerFormData';\nimport { UpdateContentPartnerRequest } from 'apps/content-partners/interfaces/UpdateContentPartnerRequest';\nimport { getContentPartnerAppLinks } from 'apps/content-partners/utils/getContentPartnerAppLinks';\n\nexport function NewContentPartnerView(): JSX.Element {\n const alerts = useAlerts();\n\n const fetchAsync = Flight.useGetFetchAsync();\n const appLinks = getContentPartnerAppLinks();\n const contentRegions = Flight.useBasicFetch<ContentRegionCollection>(ContentRegionRequests.contentRegions());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const [ pendingVideoBanner, setPendingVideoBanner ] = React.useState<PendingItem | null>(null);\n\n async function onVideoUploadComplete(pendingItem: PendingItem) {\n setPendingVideoBanner(pendingItem);\n }\n\n async function onCreate(data: EditPartnerFormData): Promise<void> {\n const payload: UpdateContentPartnerRequest = {\n ...ObjectHelper.omit(data, [ 'contentRegions', 'parent', 'slug' ]),\n status: CurationStatus.Draft,\n contentRegionIds: data.contentRegions.map(cr => cr.id),\n parentId: data.parent?.id,\n slug: data.slug?.toLowerCase()\n };\n\n try {\n await fetchAsync<ContentPartnerProfile>(\n ContentPartnerRequests.createContentPartner(payload)\n );\n\n if (pendingVideoBanner) {\n if (!!pendingVideoBanner.masterVideoId && !!pendingVideoBanner.pendingProcessId) {\n await fetchAsync(ContentPartnerRequests.updateVideoBanner(\n payload.slug,\n pendingVideoBanner.masterVideoId,\n pendingVideoBanner.pendingProcessId\n ));\n\n setPendingVideoBanner(null);\n } else {\n throw new Error('Pending video banner is not valid.');\n }\n }\n alerts.success('Successfully created a content partner.');\n Core.AppLinkHelper.trigger(appLinks.contentPartners());\n } catch (xhr) {\n alerts.error(xhr.responseJSON?.message || 'There was an error creating a content partner. Please try again.');\n }\n }\n\n if (!contentRegions.hasCompleted || !currentUser.hasCompleted) {\n return <PopupLoadingSpinner/>;\n }\n\n return (\n <EditContentPartner\n onSave={onCreate}\n contentRegions={contentRegions.data?.data}\n currentUser={currentUser.data}\n onVideoUploadComplete={onVideoUploadComplete}\n />\n );\n}\n"],"mappings":"0gBAsBA,SAAgB,GAAqC,CACnD,IAAM,EAAS,EAAU,EAEnB,EAAa,EAAwB,EACrC,EAAW,EAA0B,EACrC,EAAiB,EAA8C,EAAsB,eAAe,CAAC,EACrG,EAAc,EAAkC,EAAa,YAAY,CAAC,EAE1E,CAAE,EAAoB,GAAA,EAAgC,SAA6B,IAAI,EAE7F,eAAe,EAAsB,EAA0B,CAC7D,EAAsB,CAAW,CACnC,CAEA,eAAe,EAAS,EAA0C,CAChE,IAAM,EAAuC,CAC3C,GAAG,EAAa,KAAK,EAAM,CAAE,iBAAkB,SAAU,MAAO,CAAC,EACjE,OAAQ,EAAe,MACvB,iBAAkB,EAAK,eAAe,IAAI,GAAM,EAAG,EAAE,EACrD,SAAU,EAAK,QAAQ,GACvB,KAAM,EAAK,MAAM,YAAY,CAC/B,EAEA,GAAI,CAKF,GAJA,MAAM,EACJ,EAAuB,qBAAqB,CAAO,CACrD,EAEI,EACF,GAAM,EAAmB,eAAmB,EAAmB,iBAC7D,MAAM,EAAW,EAAuB,kBACtC,EAAQ,KACR,EAAmB,cACnB,EAAmB,gBACrB,CAAC,EAED,EAAsB,IAAI,OAE1B,MAAU,MAAM,oCAAoC,EAGxD,EAAO,QAAQ,yCAAyC,EACxD,EAAmB,QAAQ,EAAS,gBAAgB,CAAC,CACvD,OAAS,EAAK,CACZ,EAAO,MAAM,EAAI,cAAc,SAAW,kEAAkE,CAC9G,CACF,CAMA,MAJI,CAAC,EAAe,cAAgB,CAAC,EAAY,cACxC,EAAA,EAAA,IAAA,CAAC,EAAD,CAAqB,CAAA,GAI5B,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,OAAQ,EACR,eAAgB,EAAe,MAAM,KACrC,YAAa,EAAY,KACF,uBACxB,CAAA,CAEL"}
@@ -1,2 +1,2 @@
1
- import{a as e,i as t,ln as n}from"./rp704-Pm.chunk.js";import{i as r,t as i}from"./BAOFaFPQ.chunk.js";import{t as a}from"./BvMTtGLi.chunk.js";import"./CfCYHRuo.chunk.js";import{n as o}from"./CFoexGFe.chunk.js";import{t as s}from"./BVbA6fE6.chunk.js";import{t as c}from"./UCDGupVs.chunk.js";import{d as l}from"./BhKv6dKl2.chunk.js";import{l as u,s as d}from"./Dgk5cBBe.chunk.js";import"./Oh4_zGIH.chunk.js";import{t as f}from"./B_qCVJZp2.chunk.js";import{t as p}from"./CZyPFSXo.chunk.js";import{t as m}from"./BivItbGo.chunk.js";import{t as h}from"./DLLL2lwS.chunk.js";var g=n(e()),_=t();function v(e){let{presentationId:t,classificationId:n,memberType:v}=e,y=d(c.currentUser()),[b,x]=g.useState(),[S,C]=g.useState();i(r.getPresentationFetchOptions(t,x),[]),i(r.getClassificationFetchOptions(n,C),[n]);let w=d(m.curationTags()),T=d(p.classificationMembers(e.classificationId,o.Tags)),E=u();function D(){let e=[f.MOVIES_AND_TV];return w.data?.filter(t=>!!e.includes(t.name))}function O(t,n,r){E(p.addObjectsToClassification(e.classificationId,[t.id],o.Tags,n,r))}function k(t,n,r){E(p.removeObjectsFromClassification(e.classificationId,[t.id],o.Tags,n,r))}return(0,_.jsxs)(_.Fragment,{children:[!!y.data&&(0,_.jsx)(l,{memberType:v,presentation:b,classificationId:n,getTabs:(e,t,n)=>s.getEditClassificationTabs(a.SUBJECTS,e,t,n)}),!!S&&!!w.data&&!!T.data&&(0,_.jsx)(h,{id:e.classificationId,heading:S.name,curationTags:D(),selectedCurationTags:T.data,addCurationTag:O,removeCurationTag:k})]})}export{v as EditClassificationCurationView};
2
- //# sourceMappingURL=DA9R8atp2.chunk.js.map
1
+ import{a as e,i as t,ln as n}from"./rp704-Pm.chunk.js";import{i as r,t as i}from"./BAOFaFPQ.chunk.js";import{t as a}from"./BvMTtGLi.chunk.js";import"./CfCYHRuo.chunk.js";import{n as o}from"./CFoexGFe.chunk.js";import{t as s}from"./BVbA6fE6.chunk.js";import{t as c}from"./UCDGupVs.chunk.js";import{d as l}from"./GpDEun8c2.chunk.js";import{l as u,s as d}from"./Dgk5cBBe.chunk.js";import"./Oh4_zGIH.chunk.js";import{t as f}from"./B_qCVJZp2.chunk.js";import{t as p}from"./CZyPFSXo.chunk.js";import{t as m}from"./BivItbGo.chunk.js";import{t as h}from"./CNLx6_fS.chunk.js";var g=n(e()),_=t();function v(e){let{presentationId:t,classificationId:n,memberType:v}=e,y=d(c.currentUser()),[b,x]=g.useState(),[S,C]=g.useState();i(r.getPresentationFetchOptions(t,x),[]),i(r.getClassificationFetchOptions(n,C),[n]);let w=d(m.curationTags()),T=d(p.classificationMembers(e.classificationId,o.Tags)),E=u();function D(){let e=[f.MOVIES_AND_TV];return w.data?.filter(t=>!!e.includes(t.name))}function O(t,n,r){E(p.addObjectsToClassification(e.classificationId,[t.id],o.Tags,n,r))}function k(t,n,r){E(p.removeObjectsFromClassification(e.classificationId,[t.id],o.Tags,n,r))}return(0,_.jsxs)(_.Fragment,{children:[!!y.data&&(0,_.jsx)(l,{memberType:v,presentation:b,classificationId:n,getTabs:(e,t,n)=>s.getEditClassificationTabs(a.SUBJECTS,e,t,n)}),!!S&&!!w.data&&!!T.data&&(0,_.jsx)(h,{id:e.classificationId,heading:S.name,curationTags:D(),selectedCurationTags:T.data,addCurationTag:O,removeCurationTag:k})]})}export{v as EditClassificationCurationView};
2
+ //# sourceMappingURL=BH6LIpwu2.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DA9R8atp2.chunk.js","names":[],"sources":["../../../../../src/apps/subjects/views/classifications/edit-classification-curation/EditClassificationCurationView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useGetFetch } from 'libs/common/react/flight';\nimport { useFetch } from 'libs/common/react/hooks/UseFetch';\nimport { Flight } from 'libs/common/react/index';\n\nimport { CurationTag } from 'libs/shared/enums/CurationTag';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { Classification, CuratorUser, Presentation, Tag } from 'libs/shared/interfaces';\n\nimport { EditClassificationNav } from 'shared/components/classifications';\nimport { CurationTags } from 'shared/components/curation-tags/CurationTags';\nimport { AppChannels } from 'shared/constants';\nimport { SubjectMemberType } from 'shared/enums';\nimport { SubjectRequests } from 'shared/flight-requests/SubjectRequests';\nimport { TagRequests } from 'shared/flight-requests/TagRequests';\nimport { SubjectDataServiceHelper } from 'shared/services';\nimport { TopicsNavHelper } from 'shared/utils';\n\ninterface EditClassificationCurationView {\n presentationId: string;\n classificationId: string;\n memberType: SubjectMemberType;\n}\n\nexport function EditClassificationCurationView(props: EditClassificationCurationView) {\n const { presentationId, classificationId, memberType } = props;\n\n const currentUser = Flight.useBasicFetch<CuratorUser>(UserRequests.currentUser());\n\n const [ presentation, setPresentation ] = React.useState<Presentation>();\n const [ classification, setClassification ] = React.useState<Classification>();\n\n useFetch(SubjectDataServiceHelper.getPresentationFetchOptions(presentationId, setPresentation), []);\n\n useFetch(SubjectDataServiceHelper.getClassificationFetchOptions(\n classificationId,\n setClassification\n ), [classificationId]);\n\n const allCurationTags = Flight.useBasicFetch<Tag[]>(TagRequests.curationTags());\n const selectedCurationTags = Flight.useBasicFetch(\n SubjectRequests.classificationMembers(props.classificationId, SubjectMemberType.Tags)\n );\n const fetch = useGetFetch();\n\n function filteredCurationTags(): Tag[] {\n const filter = [CurationTag.MOVIES_AND_TV];\n return allCurationTags.data?.filter(tag => !!filter.includes(tag.name as CurationTag));\n }\n\n function addCurationTag(tag: Tag, success: () => void, error: () => void) {\n fetch(SubjectRequests.addObjectsToClassification(\n props.classificationId,\n [tag.id],\n SubjectMemberType.Tags,\n success,\n error\n ));\n }\n\n function removeCurationTag(tag: Tag, success: () => void, error: () => void) {\n fetch(SubjectRequests.removeObjectsFromClassification(\n props.classificationId,\n [tag.id],\n SubjectMemberType.Tags,\n success,\n error\n ));\n }\n \n return (\n <>\n {!!currentUser.data &&\n <EditClassificationNav\n memberType={memberType}\n presentation={presentation}\n classificationId={classificationId}\n getTabs={(presentationId: string, classificationId: string, hasPermissions) =>\n TopicsNavHelper.getEditClassificationTabs(\n AppChannels.SUBJECTS,\n presentationId,\n classificationId,\n hasPermissions\n )\n }\n />\n }\n {!!classification && !!allCurationTags.data && !!selectedCurationTags.data &&\n <CurationTags\n id={props.classificationId}\n heading={classification.name}\n curationTags={filteredCurationTags()}\n selectedCurationTags={selectedCurationTags.data}\n addCurationTag={addCurationTag}\n removeCurationTag={removeCurationTag}\n />\n }\n </>\n );\n}\n"],"mappings":"0kBAyBA,SAAgB,EAA+B,EAAuC,CACpF,GAAM,CAAE,iBAAgB,mBAAkB,cAAe,EAEnD,EAAc,EAAkC,EAAa,YAAY,CAAC,EAE1E,CAAE,EAAc,GAAA,EAA0B,SAAuB,EACjE,CAAE,EAAgB,GAAA,EAA4B,SAAyB,EAE7E,EAAS,EAAyB,4BAA4B,EAAgB,CAAe,EAAG,CAAC,CAAC,EAElG,EAAS,EAAyB,8BAChC,EACA,CACF,EAAG,CAAC,CAAgB,CAAC,EAErB,IAAM,EAAkB,EAA4B,EAAY,aAAa,CAAC,EACxE,EAAuB,EAC3B,EAAgB,sBAAsB,EAAM,iBAAkB,EAAkB,IAAI,CACtF,EACM,EAAQ,EAAY,EAE1B,SAAS,GAA8B,CACrC,IAAM,EAAS,CAAC,EAAY,aAAa,EACzC,OAAO,EAAgB,MAAM,OAAO,GAAO,CAAC,CAAC,EAAO,SAAS,EAAI,IAAmB,CAAC,CACvF,CAEA,SAAS,EAAe,EAAU,EAAqB,EAAmB,CACxE,EAAM,EAAgB,2BACpB,EAAM,iBACN,CAAC,EAAI,EAAE,EACP,EAAkB,KAClB,EACA,CACF,CAAC,CACH,CAEA,SAAS,EAAkB,EAAU,EAAqB,EAAmB,CAC3E,EAAM,EAAgB,gCACpB,EAAM,iBACN,CAAC,EAAI,EAAE,EACP,EAAkB,KAClB,EACA,CACF,CAAC,CACH,CAEA,OACE,EAAA,EAAA,KAAA,CAAA,EAAA,SAAA,CAAA,SAAA,CACG,CAAC,CAAC,EAAY,OACb,EAAA,EAAA,IAAA,CAAC,EAAD,CACc,aACE,eACI,mBAClB,SAAU,EAAwB,EAA0B,IAC1D,EAAgB,0BACd,EAAY,SACZ,EACA,EACA,CACF,CAEH,CAAA,EAEF,CAAC,CAAC,GAAkB,CAAC,CAAC,EAAgB,MAAQ,CAAC,CAAC,EAAqB,OACpE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,GAAI,EAAM,iBACV,QAAS,EAAe,KACxB,aAAc,EAAqB,EACnC,qBAAsB,EAAqB,KAC3B,iBACG,mBACpB,CAAA,CAEH,CAAA,CAAA,CAEN"}
1
+ {"version":3,"file":"BH6LIpwu2.chunk.js","names":[],"sources":["../../../../../src/apps/subjects/views/classifications/edit-classification-curation/EditClassificationCurationView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useGetFetch } from 'libs/common/react/flight';\nimport { useFetch } from 'libs/common/react/hooks/UseFetch';\nimport { Flight } from 'libs/common/react/index';\n\nimport { CurationTag } from 'libs/shared/enums/CurationTag';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { Classification, CuratorUser, Presentation, Tag } from 'libs/shared/interfaces';\n\nimport { EditClassificationNav } from 'shared/components/classifications';\nimport { CurationTags } from 'shared/components/curation-tags/CurationTags';\nimport { AppChannels } from 'shared/constants';\nimport { SubjectMemberType } from 'shared/enums';\nimport { SubjectRequests } from 'shared/flight-requests/SubjectRequests';\nimport { TagRequests } from 'shared/flight-requests/TagRequests';\nimport { SubjectDataServiceHelper } from 'shared/services';\nimport { TopicsNavHelper } from 'shared/utils';\n\ninterface EditClassificationCurationView {\n presentationId: string;\n classificationId: string;\n memberType: SubjectMemberType;\n}\n\nexport function EditClassificationCurationView(props: EditClassificationCurationView) {\n const { presentationId, classificationId, memberType } = props;\n\n const currentUser = Flight.useBasicFetch<CuratorUser>(UserRequests.currentUser());\n\n const [ presentation, setPresentation ] = React.useState<Presentation>();\n const [ classification, setClassification ] = React.useState<Classification>();\n\n useFetch(SubjectDataServiceHelper.getPresentationFetchOptions(presentationId, setPresentation), []);\n\n useFetch(SubjectDataServiceHelper.getClassificationFetchOptions(\n classificationId,\n setClassification\n ), [classificationId]);\n\n const allCurationTags = Flight.useBasicFetch<Tag[]>(TagRequests.curationTags());\n const selectedCurationTags = Flight.useBasicFetch(\n SubjectRequests.classificationMembers(props.classificationId, SubjectMemberType.Tags)\n );\n const fetch = useGetFetch();\n\n function filteredCurationTags(): Tag[] {\n const filter = [CurationTag.MOVIES_AND_TV];\n return allCurationTags.data?.filter(tag => !!filter.includes(tag.name as CurationTag));\n }\n\n function addCurationTag(tag: Tag, success: () => void, error: () => void) {\n fetch(SubjectRequests.addObjectsToClassification(\n props.classificationId,\n [tag.id],\n SubjectMemberType.Tags,\n success,\n error\n ));\n }\n\n function removeCurationTag(tag: Tag, success: () => void, error: () => void) {\n fetch(SubjectRequests.removeObjectsFromClassification(\n props.classificationId,\n [tag.id],\n SubjectMemberType.Tags,\n success,\n error\n ));\n }\n \n return (\n <>\n {!!currentUser.data &&\n <EditClassificationNav\n memberType={memberType}\n presentation={presentation}\n classificationId={classificationId}\n getTabs={(presentationId: string, classificationId: string, hasPermissions) =>\n TopicsNavHelper.getEditClassificationTabs(\n AppChannels.SUBJECTS,\n presentationId,\n classificationId,\n hasPermissions\n )\n }\n />\n }\n {!!classification && !!allCurationTags.data && !!selectedCurationTags.data &&\n <CurationTags\n id={props.classificationId}\n heading={classification.name}\n curationTags={filteredCurationTags()}\n selectedCurationTags={selectedCurationTags.data}\n addCurationTag={addCurationTag}\n removeCurationTag={removeCurationTag}\n />\n }\n </>\n );\n}\n"],"mappings":"0kBAyBA,SAAgB,EAA+B,EAAuC,CACpF,GAAM,CAAE,iBAAgB,mBAAkB,cAAe,EAEnD,EAAc,EAAkC,EAAa,YAAY,CAAC,EAE1E,CAAE,EAAc,GAAA,EAA0B,SAAuB,EACjE,CAAE,EAAgB,GAAA,EAA4B,SAAyB,EAE7E,EAAS,EAAyB,4BAA4B,EAAgB,CAAe,EAAG,CAAC,CAAC,EAElG,EAAS,EAAyB,8BAChC,EACA,CACF,EAAG,CAAC,CAAgB,CAAC,EAErB,IAAM,EAAkB,EAA4B,EAAY,aAAa,CAAC,EACxE,EAAuB,EAC3B,EAAgB,sBAAsB,EAAM,iBAAkB,EAAkB,IAAI,CACtF,EACM,EAAQ,EAAY,EAE1B,SAAS,GAA8B,CACrC,IAAM,EAAS,CAAC,EAAY,aAAa,EACzC,OAAO,EAAgB,MAAM,OAAO,GAAO,CAAC,CAAC,EAAO,SAAS,EAAI,IAAmB,CAAC,CACvF,CAEA,SAAS,EAAe,EAAU,EAAqB,EAAmB,CACxE,EAAM,EAAgB,2BACpB,EAAM,iBACN,CAAC,EAAI,EAAE,EACP,EAAkB,KAClB,EACA,CACF,CAAC,CACH,CAEA,SAAS,EAAkB,EAAU,EAAqB,EAAmB,CAC3E,EAAM,EAAgB,gCACpB,EAAM,iBACN,CAAC,EAAI,EAAE,EACP,EAAkB,KAClB,EACA,CACF,CAAC,CACH,CAEA,OACE,EAAA,EAAA,KAAA,CAAA,EAAA,SAAA,CAAA,SAAA,CACG,CAAC,CAAC,EAAY,OACb,EAAA,EAAA,IAAA,CAAC,EAAD,CACc,aACE,eACI,mBAClB,SAAU,EAAwB,EAA0B,IAC1D,EAAgB,0BACd,EAAY,SACZ,EACA,EACA,CACF,CAEH,CAAA,EAEF,CAAC,CAAC,GAAkB,CAAC,CAAC,EAAgB,MAAQ,CAAC,CAAC,EAAqB,OACpE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,GAAI,EAAM,iBACV,QAAS,EAAe,KACxB,aAAc,EAAqB,EACnC,qBAAsB,EAAqB,KAC3B,iBACG,mBACpB,CAAA,CAEH,CAAA,CAAA,CAEN"}
@@ -1,2 +1,2 @@
1
- import{t as e}from"./rp704-Pm.chunk.js";import{t}from"./DZX1tZ-D.chunk.js";import{t as n}from"./Di_u2uix.chunk.js";import{t as r}from"./BvMTtGLi.chunk.js";import"./CfCYHRuo.chunk.js";import{W as i}from"./C7Gmh7eY.chunk.js";import{t as a}from"./CMczucng.chunk.js";import{t as o}from"./BDwjs8qz.chunk.js";import{t as s}from"./bg6DbVEI.chunk.js";var c={getClipActions:(c,l)=>{let u=[];return c.status===o.Draft&&(u.push({label:`Open in Content Pipeline`,svg:a,appLink:{application:r.ASSEMBLY_LINE,action:i.mapStageToAction(l?.stage),params:{query:c.id}},button:!0,disabled:!l,tooltip:l?``:`Clip is not in the content pipeline`,className:`btn btn-outline-dark me-2`,openInNewTab:!0}),u.push({label:`Publish`,appLink:null,button:!0,className:`btn btn-dark me-2`,disabled:!0,tooltip:`Clips can only be published through the content pipeline`}),u.push({label:`Open parent video`,appLink:{application:r.VIDEOS,action:n.Videos.EDIT_VIDEO,args:[c._parentVideo.id]},button:!1}),u.push({label:`Delete clip`,appLink:{application:r.CLIPS,action:n.Clips.DELETE_CLIP,args:[c.id]},button:!1,className:`text-danger`})),c.status===o.Published&&(u.push({label:`Open in Content Pipeline`,svg:a,appLink:{application:r.ASSEMBLY_LINE,action:i.mapStageToAction(l?.stage),params:{query:c.id.toString()}},button:!0,disabled:!l,tooltip:l?``:`Clip is not in the content pipeline`,className:`btn btn-outline-dark me-2`,openInNewTab:!0}),u.push({label:`Open in ClickView`,href:t.safeUrlConcat(ClickView.Config.Urls.LiteUrl,`clips/${c.id}/${e.slugify(c.name)}`),openInNewTab:!0,className:`btn btn-outline-dark me-2`,svg:s,button:!0}),u.push({label:`Open parent video`,appLink:{application:r.VIDEOS,action:n.Videos.EDIT_VIDEO,args:[c._parentVideo.id]},button:!1}),u.push({label:`Archive clip`,appLink:{application:r.CLIPS,action:n.Clips.ARCHIVE_CLIP,args:[c.id]},className:`text-danger`,button:!1})),c.status===o.Archived&&(u.push({appLink:{application:r.CLIPS,action:n.Clips.PUBLISH_CLIP,args:[c.id]},className:`btn btn-dark me-2`,button:!0,label:`Republish clip`}),u.push({label:`Open parent video`,appLink:{application:r.VIDEOS,action:n.Videos.EDIT_VIDEO,args:[c._parentVideo.id]},button:!1})),u}};export{c as t};
2
- //# sourceMappingURL=DbrVjVdn.chunk.js.map
1
+ import{t as e}from"./rp704-Pm.chunk.js";import{t}from"./DZX1tZ-D.chunk.js";import{t as n}from"./Di_u2uix.chunk.js";import{t as r}from"./BvMTtGLi.chunk.js";import"./CfCYHRuo.chunk.js";import{W as i}from"./DWHKdmdQ.chunk.js";import{t as a}from"./CMczucng.chunk.js";import{t as o}from"./BDwjs8qz.chunk.js";import{t as s}from"./bg6DbVEI.chunk.js";var c={getClipActions:(c,l)=>{let u=[];return c.status===o.Draft&&(u.push({label:`Open in Content Pipeline`,svg:a,appLink:{application:r.ASSEMBLY_LINE,action:i.mapStageToAction(l?.stage),params:{query:c.id}},button:!0,disabled:!l,tooltip:l?``:`Clip is not in the content pipeline`,className:`btn btn-outline-dark me-2`,openInNewTab:!0}),u.push({label:`Publish`,appLink:null,button:!0,className:`btn btn-dark me-2`,disabled:!0,tooltip:`Clips can only be published through the content pipeline`}),u.push({label:`Open parent video`,appLink:{application:r.VIDEOS,action:n.Videos.EDIT_VIDEO,args:[c._parentVideo.id]},button:!1}),u.push({label:`Delete clip`,appLink:{application:r.CLIPS,action:n.Clips.DELETE_CLIP,args:[c.id]},button:!1,className:`text-danger`})),c.status===o.Published&&(u.push({label:`Open in Content Pipeline`,svg:a,appLink:{application:r.ASSEMBLY_LINE,action:i.mapStageToAction(l?.stage),params:{query:c.id.toString()}},button:!0,disabled:!l,tooltip:l?``:`Clip is not in the content pipeline`,className:`btn btn-outline-dark me-2`,openInNewTab:!0}),u.push({label:`Open in ClickView`,href:t.safeUrlConcat(ClickView.Config.Urls.LiteUrl,`clips/${c.id}/${e.slugify(c.name)}`),openInNewTab:!0,className:`btn btn-outline-dark me-2`,svg:s,button:!0}),u.push({label:`Open parent video`,appLink:{application:r.VIDEOS,action:n.Videos.EDIT_VIDEO,args:[c._parentVideo.id]},button:!1}),u.push({label:`Archive clip`,appLink:{application:r.CLIPS,action:n.Clips.ARCHIVE_CLIP,args:[c.id]},className:`text-danger`,button:!1})),c.status===o.Archived&&(u.push({appLink:{application:r.CLIPS,action:n.Clips.PUBLISH_CLIP,args:[c.id]},className:`btn btn-dark me-2`,button:!0,label:`Republish clip`}),u.push({label:`Open parent video`,appLink:{application:r.VIDEOS,action:n.Videos.EDIT_VIDEO,args:[c._parentVideo.id]},button:!1})),u}};export{c as t};
2
+ //# sourceMappingURL=BMj3pXcm.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DbrVjVdn.chunk.js","names":[],"sources":["../../../../../src/apps/clips/utils/ClipActionsHelper.ts"],"sourcesContent":["import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { NewWindowSvg } from 'libs/shared/images/svg/actions/NewWindowSvg';\nimport { VisibleOnSvg } from 'libs/shared/images/svg/actions/VisibleOnSvg';\nimport { Clip } from 'libs/shared/interfaces';\n\nimport { Actions, AppChannels } from 'shared/constants';\n\nimport { AssemblyLineVideoResponse } from 'apps/assembly-line/interfaces/responses/AssemblyLineVideoResponse';\nimport { AssemblyLineHelper } from 'apps/assembly-line/utils/AssemblyLineHelper';\n\nexport const ClipActionsHelper = {\n getClipActions: (clip: Clip, contentPipelineClip: AssemblyLineVideoResponse) => {\n const actions: ActionOptions[] = [];\n\n if (clip.status === CurationStatus.Draft) {\n actions.push({\n label: 'Open in Content Pipeline',\n svg: VisibleOnSvg,\n appLink: {\n application: AppChannels.ASSEMBLY_LINE,\n action: AssemblyLineHelper.mapStageToAction(contentPipelineClip?.stage),\n params: { query: clip.id }\n },\n button: true,\n disabled: !contentPipelineClip,\n tooltip: !contentPipelineClip ? 'Clip is not in the content pipeline' : '',\n className: 'btn btn-outline-dark me-2',\n openInNewTab: true\n });\n\n actions.push({\n label: 'Publish',\n appLink: null,\n button: true,\n className: 'btn btn-dark me-2',\n disabled: true,\n tooltip: 'Clips can only be published through the content pipeline'\n });\n\n actions.push({\n label: 'Open parent video',\n appLink: {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.EDIT_VIDEO,\n args: [clip._parentVideo.id]\n },\n button: false\n });\n\n actions.push({\n label: 'Delete clip',\n appLink: {\n application: AppChannels.CLIPS,\n action: Actions.Clips.DELETE_CLIP,\n args: [clip.id]\n },\n button: false,\n className: 'text-danger'\n });\n }\n\n if (clip.status === CurationStatus.Published) {\n actions.push({\n label: 'Open in Content Pipeline',\n svg: VisibleOnSvg,\n appLink: {\n application: AppChannels.ASSEMBLY_LINE,\n action: AssemblyLineHelper.mapStageToAction(contentPipelineClip?.stage),\n params: { query: clip.id.toString() }\n },\n button: true,\n disabled: !contentPipelineClip,\n tooltip: !contentPipelineClip ? 'Clip is not in the content pipeline' : '',\n className: 'btn btn-outline-dark me-2',\n openInNewTab: true\n });\n\n actions.push({\n label: 'Open in ClickView',\n href: UrlHelper.safeUrlConcat(\n ClickView.Config.Urls.LiteUrl,\n `clips/${clip.id}/${TextHelper.slugify(clip.name)}`\n ),\n openInNewTab: true,\n className: 'btn btn-outline-dark me-2',\n svg: NewWindowSvg,\n button: true\n });\n\n actions.push({\n label: 'Open parent video',\n appLink: {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.EDIT_VIDEO,\n args: [clip._parentVideo.id]\n },\n button: false\n });\n \n actions.push({\n label: 'Archive clip',\n appLink: {\n application: AppChannels.CLIPS,\n action: Actions.Clips.ARCHIVE_CLIP,\n args: [clip.id]\n },\n className: 'text-danger',\n button: false\n });\n }\n\n if (clip.status === CurationStatus.Archived) {\n actions.push({\n appLink: {\n application: AppChannels.CLIPS,\n action: Actions.Clips.PUBLISH_CLIP,\n args: [clip.id]\n },\n className: 'btn btn-dark me-2',\n button: true,\n label: 'Republish clip'\n });\n\n actions.push({\n label: 'Open parent video',\n appLink: {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.EDIT_VIDEO,\n args: [clip._parentVideo.id]\n },\n button: false\n });\n }\n\n return actions;\n }\n};\n"],"mappings":"uVAcA,IAAa,EAAoB,CAC/B,gBAAiB,EAAY,IAAmD,CAC9E,IAAM,EAA2B,CAAC,EA0HlC,OAxHI,EAAK,SAAW,EAAe,QACjC,EAAQ,KAAK,CACX,MAAO,2BACP,IAAK,EACL,QAAS,CACP,YAAa,EAAY,cACzB,OAAQ,EAAmB,iBAAiB,GAAqB,KAAK,EACtE,OAAQ,CAAE,MAAO,EAAK,EAAG,CAC3B,EACA,OAAQ,GACR,SAAU,CAAC,EACX,QAAU,EAA8D,GAAxC,sCAChC,UAAW,4BACX,aAAc,EAChB,CAAC,EAED,EAAQ,KAAK,CACX,MAAO,UACP,QAAS,KACT,OAAQ,GACR,UAAW,oBACX,SAAU,GACV,QAAS,0DACX,CAAC,EAED,EAAQ,KAAK,CACX,MAAO,oBACP,QAAS,CACP,YAAa,EAAY,OACzB,OAAQ,EAAQ,OAAO,WACvB,KAAM,CAAC,EAAK,aAAa,EAAE,CAC7B,EACA,OAAQ,EACV,CAAC,EAED,EAAQ,KAAK,CACX,MAAO,cACP,QAAS,CACP,YAAa,EAAY,MACzB,OAAQ,EAAQ,MAAM,YACtB,KAAM,CAAC,EAAK,EAAE,CAChB,EACA,OAAQ,GACR,UAAW,aACb,CAAC,GAGC,EAAK,SAAW,EAAe,YACjC,EAAQ,KAAK,CACX,MAAO,2BACP,IAAK,EACL,QAAS,CACP,YAAa,EAAY,cACzB,OAAQ,EAAmB,iBAAiB,GAAqB,KAAK,EACtE,OAAQ,CAAE,MAAO,EAAK,GAAG,SAAS,CAAE,CACtC,EACA,OAAQ,GACR,SAAU,CAAC,EACX,QAAU,EAA8D,GAAxC,sCAChC,UAAW,4BACX,aAAc,EAChB,CAAC,EAED,EAAQ,KAAK,CACX,MAAO,oBACP,KAAM,EAAU,cACd,UAAU,OAAO,KAAK,QACtB,SAAS,EAAK,GAAG,GAAG,EAAW,QAAQ,EAAK,IAAI,GAClD,EACA,aAAc,GACd,UAAW,4BACX,IAAK,EACL,OAAQ,EACV,CAAC,EAED,EAAQ,KAAK,CACX,MAAO,oBACP,QAAS,CACP,YAAa,EAAY,OACzB,OAAQ,EAAQ,OAAO,WACvB,KAAM,CAAC,EAAK,aAAa,EAAE,CAC7B,EACA,OAAQ,EACV,CAAC,EAED,EAAQ,KAAK,CACX,MAAO,eACP,QAAS,CACP,YAAa,EAAY,MACzB,OAAQ,EAAQ,MAAM,aACtB,KAAM,CAAC,EAAK,EAAE,CAChB,EACA,UAAW,cACX,OAAQ,EACV,CAAC,GAGC,EAAK,SAAW,EAAe,WACjC,EAAQ,KAAK,CACX,QAAS,CACP,YAAa,EAAY,MACzB,OAAQ,EAAQ,MAAM,aACtB,KAAM,CAAC,EAAK,EAAE,CAChB,EACA,UAAW,oBACX,OAAQ,GACR,MAAO,gBACT,CAAC,EAED,EAAQ,KAAK,CACX,MAAO,oBACP,QAAS,CACP,YAAa,EAAY,OACzB,OAAQ,EAAQ,OAAO,WACvB,KAAM,CAAC,EAAK,aAAa,EAAE,CAC7B,EACA,OAAQ,EACV,CAAC,GAGI,CACT,CACF"}
1
+ {"version":3,"file":"BMj3pXcm.chunk.js","names":[],"sources":["../../../../../src/apps/clips/utils/ClipActionsHelper.ts"],"sourcesContent":["import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { NewWindowSvg } from 'libs/shared/images/svg/actions/NewWindowSvg';\nimport { VisibleOnSvg } from 'libs/shared/images/svg/actions/VisibleOnSvg';\nimport { Clip } from 'libs/shared/interfaces';\n\nimport { Actions, AppChannels } from 'shared/constants';\n\nimport { AssemblyLineVideoResponse } from 'apps/assembly-line/interfaces/responses/AssemblyLineVideoResponse';\nimport { AssemblyLineHelper } from 'apps/assembly-line/utils/AssemblyLineHelper';\n\nexport const ClipActionsHelper = {\n getClipActions: (clip: Clip, contentPipelineClip: AssemblyLineVideoResponse) => {\n const actions: ActionOptions[] = [];\n\n if (clip.status === CurationStatus.Draft) {\n actions.push({\n label: 'Open in Content Pipeline',\n svg: VisibleOnSvg,\n appLink: {\n application: AppChannels.ASSEMBLY_LINE,\n action: AssemblyLineHelper.mapStageToAction(contentPipelineClip?.stage),\n params: { query: clip.id }\n },\n button: true,\n disabled: !contentPipelineClip,\n tooltip: !contentPipelineClip ? 'Clip is not in the content pipeline' : '',\n className: 'btn btn-outline-dark me-2',\n openInNewTab: true\n });\n\n actions.push({\n label: 'Publish',\n appLink: null,\n button: true,\n className: 'btn btn-dark me-2',\n disabled: true,\n tooltip: 'Clips can only be published through the content pipeline'\n });\n\n actions.push({\n label: 'Open parent video',\n appLink: {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.EDIT_VIDEO,\n args: [clip._parentVideo.id]\n },\n button: false\n });\n\n actions.push({\n label: 'Delete clip',\n appLink: {\n application: AppChannels.CLIPS,\n action: Actions.Clips.DELETE_CLIP,\n args: [clip.id]\n },\n button: false,\n className: 'text-danger'\n });\n }\n\n if (clip.status === CurationStatus.Published) {\n actions.push({\n label: 'Open in Content Pipeline',\n svg: VisibleOnSvg,\n appLink: {\n application: AppChannels.ASSEMBLY_LINE,\n action: AssemblyLineHelper.mapStageToAction(contentPipelineClip?.stage),\n params: { query: clip.id.toString() }\n },\n button: true,\n disabled: !contentPipelineClip,\n tooltip: !contentPipelineClip ? 'Clip is not in the content pipeline' : '',\n className: 'btn btn-outline-dark me-2',\n openInNewTab: true\n });\n\n actions.push({\n label: 'Open in ClickView',\n href: UrlHelper.safeUrlConcat(\n ClickView.Config.Urls.LiteUrl,\n `clips/${clip.id}/${TextHelper.slugify(clip.name)}`\n ),\n openInNewTab: true,\n className: 'btn btn-outline-dark me-2',\n svg: NewWindowSvg,\n button: true\n });\n\n actions.push({\n label: 'Open parent video',\n appLink: {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.EDIT_VIDEO,\n args: [clip._parentVideo.id]\n },\n button: false\n });\n \n actions.push({\n label: 'Archive clip',\n appLink: {\n application: AppChannels.CLIPS,\n action: Actions.Clips.ARCHIVE_CLIP,\n args: [clip.id]\n },\n className: 'text-danger',\n button: false\n });\n }\n\n if (clip.status === CurationStatus.Archived) {\n actions.push({\n appLink: {\n application: AppChannels.CLIPS,\n action: Actions.Clips.PUBLISH_CLIP,\n args: [clip.id]\n },\n className: 'btn btn-dark me-2',\n button: true,\n label: 'Republish clip'\n });\n\n actions.push({\n label: 'Open parent video',\n appLink: {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.EDIT_VIDEO,\n args: [clip._parentVideo.id]\n },\n button: false\n });\n }\n\n return actions;\n }\n};\n"],"mappings":"uVAcA,IAAa,EAAoB,CAC/B,gBAAiB,EAAY,IAAmD,CAC9E,IAAM,EAA2B,CAAC,EA0HlC,OAxHI,EAAK,SAAW,EAAe,QACjC,EAAQ,KAAK,CACX,MAAO,2BACP,IAAK,EACL,QAAS,CACP,YAAa,EAAY,cACzB,OAAQ,EAAmB,iBAAiB,GAAqB,KAAK,EACtE,OAAQ,CAAE,MAAO,EAAK,EAAG,CAC3B,EACA,OAAQ,GACR,SAAU,CAAC,EACX,QAAU,EAA8D,GAAxC,sCAChC,UAAW,4BACX,aAAc,EAChB,CAAC,EAED,EAAQ,KAAK,CACX,MAAO,UACP,QAAS,KACT,OAAQ,GACR,UAAW,oBACX,SAAU,GACV,QAAS,0DACX,CAAC,EAED,EAAQ,KAAK,CACX,MAAO,oBACP,QAAS,CACP,YAAa,EAAY,OACzB,OAAQ,EAAQ,OAAO,WACvB,KAAM,CAAC,EAAK,aAAa,EAAE,CAC7B,EACA,OAAQ,EACV,CAAC,EAED,EAAQ,KAAK,CACX,MAAO,cACP,QAAS,CACP,YAAa,EAAY,MACzB,OAAQ,EAAQ,MAAM,YACtB,KAAM,CAAC,EAAK,EAAE,CAChB,EACA,OAAQ,GACR,UAAW,aACb,CAAC,GAGC,EAAK,SAAW,EAAe,YACjC,EAAQ,KAAK,CACX,MAAO,2BACP,IAAK,EACL,QAAS,CACP,YAAa,EAAY,cACzB,OAAQ,EAAmB,iBAAiB,GAAqB,KAAK,EACtE,OAAQ,CAAE,MAAO,EAAK,GAAG,SAAS,CAAE,CACtC,EACA,OAAQ,GACR,SAAU,CAAC,EACX,QAAU,EAA8D,GAAxC,sCAChC,UAAW,4BACX,aAAc,EAChB,CAAC,EAED,EAAQ,KAAK,CACX,MAAO,oBACP,KAAM,EAAU,cACd,UAAU,OAAO,KAAK,QACtB,SAAS,EAAK,GAAG,GAAG,EAAW,QAAQ,EAAK,IAAI,GAClD,EACA,aAAc,GACd,UAAW,4BACX,IAAK,EACL,OAAQ,EACV,CAAC,EAED,EAAQ,KAAK,CACX,MAAO,oBACP,QAAS,CACP,YAAa,EAAY,OACzB,OAAQ,EAAQ,OAAO,WACvB,KAAM,CAAC,EAAK,aAAa,EAAE,CAC7B,EACA,OAAQ,EACV,CAAC,EAED,EAAQ,KAAK,CACX,MAAO,eACP,QAAS,CACP,YAAa,EAAY,MACzB,OAAQ,EAAQ,MAAM,aACtB,KAAM,CAAC,EAAK,EAAE,CAChB,EACA,UAAW,cACX,OAAQ,EACV,CAAC,GAGC,EAAK,SAAW,EAAe,WACjC,EAAQ,KAAK,CACX,QAAS,CACP,YAAa,EAAY,MACzB,OAAQ,EAAQ,MAAM,aACtB,KAAM,CAAC,EAAK,EAAE,CAChB,EACA,UAAW,oBACX,OAAQ,GACR,MAAO,gBACT,CAAC,EAED,EAAQ,KAAK,CACX,MAAO,oBACP,QAAS,CACP,YAAa,EAAY,OACzB,OAAQ,EAAQ,OAAO,WACvB,KAAM,CAAC,EAAK,aAAa,EAAE,CAC7B,EACA,OAAQ,EACV,CAAC,GAGI,CACT,CACF"}
@@ -1,2 +1,2 @@
1
- import{C as e,a as t,i as n}from"./rp704-Pm.chunk.js";import{t as r}from"./Di_u2uix.chunk.js";import{t as i}from"./BvMTtGLi.chunk.js";import"./CfCYHRuo.chunk.js";import{n as a}from"./BJdNIGDD2.chunk.js";import{t as o}from"./DDHep0UM.chunk.js";t();var s=n(),c=`upload-video`;function l(t){let n=a();function l(){n.lock({id:c})}function u(t){n.unlock(c),e.trigger({application:i.CV_LIVE,action:r.CvLive.EDIT_VIDEO,args:[t.masterVideoId]})}return(0,s.jsx)(o,{livestreamId:t.livestreamId,onSubmitDone:u,onSelectFile:l})}export{l as UploadVideoView};
2
- //# sourceMappingURL=CDvLjxwS.chunk.js.map
1
+ import{C as e,a as t,i as n}from"./rp704-Pm.chunk.js";import{t as r}from"./Di_u2uix.chunk.js";import{t as i}from"./BvMTtGLi.chunk.js";import"./CfCYHRuo.chunk.js";import{n as a}from"./BJdNIGDD2.chunk.js";import{t as o}from"./DHeA2NJS.chunk.js";t();var s=n(),c=`upload-video`;function l(t){let n=a();function l(){n.lock({id:c})}function u(t){n.unlock(c),e.trigger({application:i.CV_LIVE,action:r.CvLive.EDIT_VIDEO,args:[t.masterVideoId]})}return(0,s.jsx)(o,{livestreamId:t.livestreamId,onSubmitDone:u,onSelectFile:l})}export{l as UploadVideoView};
2
+ //# sourceMappingURL=BQTfNBFU.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CDvLjxwS.chunk.js","names":[],"sources":["../../../../../src/apps/cv-live/views/upload-video/UploadVideoView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { useNavLock } from 'libs/shared/hooks/useNavLock';\n\nimport { Actions, AppChannels } from 'shared/constants';\n\nimport { UploadVideo } from 'apps/cv-live/components/upload-video/UploadVideo';\n\nconst NAV_LOCK_ID = 'upload-video';\n\nexport interface UploadVideoViewParams {\n livestreamId?: string;\n}\n\ninterface PendingItem {\n masterVideoId: string;\n}\n\nexport function UploadVideoView(props: UploadVideoViewParams): JSX.Element {\n const navLock = useNavLock();\n\n function onSelectFile(): void {\n navLock.lock({ id: NAV_LOCK_ID });\n }\n\n function onSubmitDone(pendingItem: PendingItem) {\n navLock.unlock(NAV_LOCK_ID);\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.CV_LIVE,\n action: Actions.CvLive.EDIT_VIDEO,\n args: [pendingItem.masterVideoId]\n });\n }\n\n return (\n <UploadVideo\n livestreamId={props.livestreamId}\n onSubmitDone={onSubmitDone}\n onSelectFile={onSelectFile}\n />\n );\n}\n"],"mappings":"iQAUM,EAAc,eAUpB,SAAgB,EAAgB,EAA2C,CACzE,IAAM,EAAU,EAAW,EAE3B,SAAS,GAAqB,CAC5B,EAAQ,KAAK,CAAE,GAAI,CAAY,CAAC,CAClC,CAEA,SAAS,EAAa,EAA0B,CAC9C,EAAQ,OAAO,CAAW,EAE1B,EAAmB,QAAQ,CACzB,YAAa,EAAY,QACzB,OAAQ,EAAQ,OAAO,WACvB,KAAM,CAAC,EAAY,aAAa,CAClC,CAAC,CACH,CAEA,OACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,aAAc,EAAM,aACN,eACA,cACf,CAAA,CAEL"}
1
+ {"version":3,"file":"BQTfNBFU.chunk.js","names":[],"sources":["../../../../../src/apps/cv-live/views/upload-video/UploadVideoView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { useNavLock } from 'libs/shared/hooks/useNavLock';\n\nimport { Actions, AppChannels } from 'shared/constants';\n\nimport { UploadVideo } from 'apps/cv-live/components/upload-video/UploadVideo';\n\nconst NAV_LOCK_ID = 'upload-video';\n\nexport interface UploadVideoViewParams {\n livestreamId?: string;\n}\n\ninterface PendingItem {\n masterVideoId: string;\n}\n\nexport function UploadVideoView(props: UploadVideoViewParams): JSX.Element {\n const navLock = useNavLock();\n\n function onSelectFile(): void {\n navLock.lock({ id: NAV_LOCK_ID });\n }\n\n function onSubmitDone(pendingItem: PendingItem) {\n navLock.unlock(NAV_LOCK_ID);\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.CV_LIVE,\n action: Actions.CvLive.EDIT_VIDEO,\n args: [pendingItem.masterVideoId]\n });\n }\n\n return (\n <UploadVideo\n livestreamId={props.livestreamId}\n onSubmitDone={onSubmitDone}\n onSelectFile={onSelectFile}\n />\n );\n}\n"],"mappings":"iQAUM,EAAc,eAUpB,SAAgB,EAAgB,EAA2C,CACzE,IAAM,EAAU,EAAW,EAE3B,SAAS,GAAqB,CAC5B,EAAQ,KAAK,CAAE,GAAI,CAAY,CAAC,CAClC,CAEA,SAAS,EAAa,EAA0B,CAC9C,EAAQ,OAAO,CAAW,EAE1B,EAAmB,QAAQ,CACzB,YAAa,EAAY,QACzB,OAAQ,EAAQ,OAAO,WACvB,KAAM,CAAC,EAAY,aAAa,CAClC,CAAC,CACH,CAEA,OACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,aAAc,EAAM,aACN,eACA,cACf,CAAA,CAEL"}
@@ -1,2 +1,2 @@
1
- import{a as e,i as t}from"./rp704-Pm.chunk.js";import{t as n}from"./Di_u2uix.chunk.js";import{t as r}from"./BvMTtGLi.chunk.js";import{g as i}from"./BhKv6dKl2.chunk.js";import{t as a}from"./BMIUSUnG.chunk.js";e();var o={getEditVideoTabs(e,t){let i=r.VIDEOS,o=n.Videos,s=[{label:`Preview Video`,appLink:{application:i,action:o.PREVIEW_VIDEO,args:[t]}},{label:`Edit Video Details`,appLink:{application:i,action:o.EDIT_VIDEO,args:[t]}},{label:`Glance / POI`,appLink:{application:i,action:o.MANAGE_POINTS_OF_INTEREST,args:[t]}},{label:`Resources`,appLink:{application:i,action:o.EDIT_VIDEO_RESOURCES,args:[t]}}];return!a.hasSubjectsAccess(e)||(s=s.concat([{label:`Curation`,appLink:{application:i,action:o.EDIT_VIDEO_CURATION,args:[t]}},{label:`Topics`,appLink:{application:i,action:o.EDIT_VIDEO_SUBJECTS,args:[t]}},{label:`Curated Topics`,appLink:{application:i,action:o.EDIT_VIDEO_CURATED_TOPICS,args:[t]}},{label:`Audiences`,appLink:{application:i,action:o.EDIT_VIDEO_AUDIENCES,args:[t]}},{label:`Aliases`,appLink:{application:i,action:o.EDIT_VIDEO_ALIASES,args:[t]}},{label:`Tags`,appLink:{application:i,action:o.EDIT_VIDEO_TAGS,args:[t]}},{label:`Playlists`,appLink:{application:i,action:o.EDIT_VIDEO_PLAYLISTS,args:[t]}},{label:`Clips`,appLink:{application:i,action:o.EDIT_VIDEO_CLIPS,args:[t]}},{label:`Interactives`,appLink:{application:i,action:o.EDIT_VIDEO_INTERACTIVES,args:[t]}}]),!a.isDev(e))||s.push({label:`Curriculums`,appLink:{application:i,action:o.EDIT_VIDEO_CURRICULUMS,args:[t]}}),s}},s=t(),c=e=>t=>t.appLink.action===e;function l(e){let t=o.getEditVideoTabs(e.currentUser,e.videoId);return t.length<2?(0,s.jsx)(s.Fragment,{}):(0,s.jsx)(`div`,{className:`py-2`,children:(0,s.jsx)(i,{tabs:t,isItemActive:c(e.activeAction)})})}export{l as t};
2
- //# sourceMappingURL=mStmtFRo.chunk.js.map
1
+ import{a as e,i as t}from"./rp704-Pm.chunk.js";import{t as n}from"./Di_u2uix.chunk.js";import{t as r}from"./BvMTtGLi.chunk.js";import{g as i}from"./GpDEun8c2.chunk.js";import{t as a}from"./BMIUSUnG.chunk.js";e();var o={getEditVideoTabs(e,t){let i=r.VIDEOS,o=n.Videos,s=[{label:`Preview Video`,appLink:{application:i,action:o.PREVIEW_VIDEO,args:[t]}},{label:`Edit Video Details`,appLink:{application:i,action:o.EDIT_VIDEO,args:[t]}},{label:`Glance / POI`,appLink:{application:i,action:o.MANAGE_POINTS_OF_INTEREST,args:[t]}},{label:`Resources`,appLink:{application:i,action:o.EDIT_VIDEO_RESOURCES,args:[t]}}];return!a.hasSubjectsAccess(e)||(s=s.concat([{label:`Curation`,appLink:{application:i,action:o.EDIT_VIDEO_CURATION,args:[t]}},{label:`Topics`,appLink:{application:i,action:o.EDIT_VIDEO_SUBJECTS,args:[t]}},{label:`Curated Topics`,appLink:{application:i,action:o.EDIT_VIDEO_CURATED_TOPICS,args:[t]}},{label:`Audiences`,appLink:{application:i,action:o.EDIT_VIDEO_AUDIENCES,args:[t]}},{label:`Aliases`,appLink:{application:i,action:o.EDIT_VIDEO_ALIASES,args:[t]}},{label:`Tags`,appLink:{application:i,action:o.EDIT_VIDEO_TAGS,args:[t]}},{label:`Playlists`,appLink:{application:i,action:o.EDIT_VIDEO_PLAYLISTS,args:[t]}},{label:`Clips`,appLink:{application:i,action:o.EDIT_VIDEO_CLIPS,args:[t]}},{label:`Interactives`,appLink:{application:i,action:o.EDIT_VIDEO_INTERACTIVES,args:[t]}}]),!a.isDev(e))||s.push({label:`Curriculums`,appLink:{application:i,action:o.EDIT_VIDEO_CURRICULUMS,args:[t]}}),s}},s=t(),c=e=>t=>t.appLink.action===e;function l(e){let t=o.getEditVideoTabs(e.currentUser,e.videoId);return t.length<2?(0,s.jsx)(s.Fragment,{}):(0,s.jsx)(`div`,{className:`py-2`,children:(0,s.jsx)(i,{tabs:t,isItemActive:c(e.activeAction)})})}export{l as t};
2
+ //# sourceMappingURL=BT-jeT7C.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mStmtFRo.chunk.js","names":[],"sources":["../../../../../src/apps/videos/utils/VideoNavHelper.ts","../../../../../src/apps/videos/components/edit-video-nav/EditVideoNav.tsx"],"sourcesContent":["import { CuratorUser } from 'libs/shared/interfaces';\nimport { CuratorPermissionsHelper } from 'libs/shared/utils/CuratorPermissionsHelper';\n\nimport { Actions } from 'shared/constants/CuratorActions';\nimport { AppChannels } from 'shared/constants/RadioChannels';\nimport { NavItem } from 'shared/interfaces';\n\nexport const VideoNavHelper = {\n getEditVideoTabs(currentUser: CuratorUser, videoId: string): NavItem[] {\n const application = AppChannels.VIDEOS;\n const actions = Actions.Videos;\n\n let tabs = [\n {\n label: 'Preview Video',\n appLink: { application, action: actions.PREVIEW_VIDEO, args: [videoId]}\n },\n {\n label: 'Edit Video Details',\n appLink: { application, action: actions.EDIT_VIDEO, args: [videoId]}\n },\n {\n label: 'Glance / POI',\n appLink: { application, action: actions.MANAGE_POINTS_OF_INTEREST, args: [videoId]}\n },\n {\n label: 'Resources',\n appLink: { application, action: actions.EDIT_VIDEO_RESOURCES, args: [videoId]}\n }\n ];\n\n const canAccessSubjects = CuratorPermissionsHelper.hasSubjectsAccess(currentUser);\n\n if (!canAccessSubjects)\n return tabs;\n\n tabs = tabs.concat([\n {\n label: 'Curation',\n appLink: { application, action: actions.EDIT_VIDEO_CURATION, args: [videoId]}\n },\n {\n label: 'Topics',\n appLink: { application, action: actions.EDIT_VIDEO_SUBJECTS, args: [videoId]}\n },\n {\n label: 'Curated Topics',\n appLink: { application, action: actions.EDIT_VIDEO_CURATED_TOPICS, args: [videoId]}\n },\n {\n label: 'Audiences',\n appLink: { application, action: actions.EDIT_VIDEO_AUDIENCES, args: [videoId]}\n },\n {\n label: 'Aliases',\n appLink: { application, action: actions.EDIT_VIDEO_ALIASES, args: [videoId]}\n },\n {\n label: 'Tags',\n appLink: { application, action: actions.EDIT_VIDEO_TAGS, args: [videoId]}\n },\n {\n label: 'Playlists',\n appLink: { application, action: actions.EDIT_VIDEO_PLAYLISTS, args: [videoId]}\n },\n {\n label: 'Clips',\n appLink: { application, action: actions.EDIT_VIDEO_CLIPS, args: [videoId]}\n },\n {\n label: 'Interactives',\n appLink: { application, action: actions.EDIT_VIDEO_INTERACTIVES, args: [videoId]}\n }\n ]);\n\n if (!CuratorPermissionsHelper.isDev(currentUser))\n return tabs;\n\n // additional tabs for dev\n tabs.push(\n {\n label: 'Curriculums',\n appLink: { application, action: actions.EDIT_VIDEO_CURRICULUMS, args: [videoId]}\n }\n );\n\n return tabs;\n }\n};\n","import * as React from 'react';\n\nimport { CuratorUser } from 'libs/shared/interfaces';\n\nimport { Tabs } from 'shared/components';\nimport { NavItem } from 'shared/interfaces';\n\nimport { VideoNavHelper } from 'apps/videos/utils/VideoNavHelper';\n\nconst isItemActive = (activeAction: string) => (item: NavItem) => item.appLink.action === activeAction;\n\ninterface EditVideoNavProps {\n videoId: string;\n activeAction: string;\n currentUser: CuratorUser;\n}\n\nexport function EditVideoNav(props: EditVideoNavProps): React.ReactElement {\n const tabs = VideoNavHelper.getEditVideoTabs(props.currentUser, props.videoId);\n\n if (tabs.length < 2)\n return <></>;\n\n return (\n <div className='py-2'>\n <Tabs\n tabs={tabs}\n isItemActive={isItemActive(props.activeAction)}\n />\n </div>\n );\n}\n"],"mappings":"oNAOA,IAAa,EAAiB,CAC5B,iBAAiB,EAA0B,EAA4B,CACrE,IAAM,EAAc,EAAY,OAC1B,EAAU,EAAQ,OAEpB,EAAO,CACT,CACE,MAAO,gBACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,cAAe,KAAM,CAAC,CAAO,CAAC,CACxE,EACA,CACE,MAAO,qBACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,WAAY,KAAM,CAAC,CAAO,CAAC,CACrE,EACA,CACE,MAAO,eACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,0BAA2B,KAAM,CAAC,CAAO,CAAC,CACpF,EACA,CACE,MAAO,YACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,qBAAsB,KAAM,CAAC,CAAO,CAAC,CAC/E,CACF,EAyDA,MArDI,CAFsB,EAAyB,kBAAkB,CAEhE,IAGL,EAAO,EAAK,OAAO,CACjB,CACE,MAAO,WACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,oBAAqB,KAAM,CAAC,CAAO,CAAC,CAC9E,EACA,CACE,MAAO,SACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,oBAAqB,KAAM,CAAC,CAAO,CAAC,CAC9E,EACA,CACE,MAAO,iBACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,0BAA2B,KAAM,CAAC,CAAO,CAAC,CACpF,EACA,CACE,MAAO,YACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,qBAAsB,KAAM,CAAC,CAAO,CAAC,CAC/E,EACA,CACE,MAAO,UACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,mBAAoB,KAAM,CAAC,CAAO,CAAC,CAC7E,EACA,CACE,MAAO,OACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,gBAAiB,KAAM,CAAC,CAAO,CAAC,CAC1E,EACA,CACE,MAAO,YACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,qBAAsB,KAAM,CAAC,CAAO,CAAC,CAC/E,EACA,CACE,MAAO,QACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,iBAAkB,KAAM,CAAC,CAAO,CAAC,CAC3E,EACA,CACE,MAAO,eACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,wBAAyB,KAAM,CAAC,CAAO,CAAC,CAClF,CACF,CAAC,EAEG,CAAC,EAAyB,MAAM,CAAW,IAI/C,EAAK,KACH,CACE,MAAO,cACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,uBAAwB,KAAM,CAAC,CAAO,CAAC,CACjF,CACF,EARS,CAWX,CACF,QC/EM,EAAgB,GAA0B,GAAkB,EAAK,QAAQ,SAAW,EAQ1F,SAAgB,EAAa,EAA8C,CACzE,IAAM,EAAO,EAAe,iBAAiB,EAAM,YAAa,EAAM,OAAO,EAK7E,OAHI,EAAK,OAAS,GACT,EAAA,EAAA,IAAA,CAAA,EAAA,SAAA,CAAI,CAAA,GAGX,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,iBACb,EAAA,EAAA,IAAA,CAAC,EAAD,CACQ,OACN,aAAc,EAAa,EAAM,YAAY,CAC9C,CAAA,CACE,CAAA,CAET"}
1
+ {"version":3,"file":"BT-jeT7C.chunk.js","names":[],"sources":["../../../../../src/apps/videos/utils/VideoNavHelper.ts","../../../../../src/apps/videos/components/edit-video-nav/EditVideoNav.tsx"],"sourcesContent":["import { CuratorUser } from 'libs/shared/interfaces';\nimport { CuratorPermissionsHelper } from 'libs/shared/utils/CuratorPermissionsHelper';\n\nimport { Actions } from 'shared/constants/CuratorActions';\nimport { AppChannels } from 'shared/constants/RadioChannels';\nimport { NavItem } from 'shared/interfaces';\n\nexport const VideoNavHelper = {\n getEditVideoTabs(currentUser: CuratorUser, videoId: string): NavItem[] {\n const application = AppChannels.VIDEOS;\n const actions = Actions.Videos;\n\n let tabs = [\n {\n label: 'Preview Video',\n appLink: { application, action: actions.PREVIEW_VIDEO, args: [videoId]}\n },\n {\n label: 'Edit Video Details',\n appLink: { application, action: actions.EDIT_VIDEO, args: [videoId]}\n },\n {\n label: 'Glance / POI',\n appLink: { application, action: actions.MANAGE_POINTS_OF_INTEREST, args: [videoId]}\n },\n {\n label: 'Resources',\n appLink: { application, action: actions.EDIT_VIDEO_RESOURCES, args: [videoId]}\n }\n ];\n\n const canAccessSubjects = CuratorPermissionsHelper.hasSubjectsAccess(currentUser);\n\n if (!canAccessSubjects)\n return tabs;\n\n tabs = tabs.concat([\n {\n label: 'Curation',\n appLink: { application, action: actions.EDIT_VIDEO_CURATION, args: [videoId]}\n },\n {\n label: 'Topics',\n appLink: { application, action: actions.EDIT_VIDEO_SUBJECTS, args: [videoId]}\n },\n {\n label: 'Curated Topics',\n appLink: { application, action: actions.EDIT_VIDEO_CURATED_TOPICS, args: [videoId]}\n },\n {\n label: 'Audiences',\n appLink: { application, action: actions.EDIT_VIDEO_AUDIENCES, args: [videoId]}\n },\n {\n label: 'Aliases',\n appLink: { application, action: actions.EDIT_VIDEO_ALIASES, args: [videoId]}\n },\n {\n label: 'Tags',\n appLink: { application, action: actions.EDIT_VIDEO_TAGS, args: [videoId]}\n },\n {\n label: 'Playlists',\n appLink: { application, action: actions.EDIT_VIDEO_PLAYLISTS, args: [videoId]}\n },\n {\n label: 'Clips',\n appLink: { application, action: actions.EDIT_VIDEO_CLIPS, args: [videoId]}\n },\n {\n label: 'Interactives',\n appLink: { application, action: actions.EDIT_VIDEO_INTERACTIVES, args: [videoId]}\n }\n ]);\n\n if (!CuratorPermissionsHelper.isDev(currentUser))\n return tabs;\n\n // additional tabs for dev\n tabs.push(\n {\n label: 'Curriculums',\n appLink: { application, action: actions.EDIT_VIDEO_CURRICULUMS, args: [videoId]}\n }\n );\n\n return tabs;\n }\n};\n","import * as React from 'react';\n\nimport { CuratorUser } from 'libs/shared/interfaces';\n\nimport { Tabs } from 'shared/components';\nimport { NavItem } from 'shared/interfaces';\n\nimport { VideoNavHelper } from 'apps/videos/utils/VideoNavHelper';\n\nconst isItemActive = (activeAction: string) => (item: NavItem) => item.appLink.action === activeAction;\n\ninterface EditVideoNavProps {\n videoId: string;\n activeAction: string;\n currentUser: CuratorUser;\n}\n\nexport function EditVideoNav(props: EditVideoNavProps): React.ReactElement {\n const tabs = VideoNavHelper.getEditVideoTabs(props.currentUser, props.videoId);\n\n if (tabs.length < 2)\n return <></>;\n\n return (\n <div className='py-2'>\n <Tabs\n tabs={tabs}\n isItemActive={isItemActive(props.activeAction)}\n />\n </div>\n );\n}\n"],"mappings":"oNAOA,IAAa,EAAiB,CAC5B,iBAAiB,EAA0B,EAA4B,CACrE,IAAM,EAAc,EAAY,OAC1B,EAAU,EAAQ,OAEpB,EAAO,CACT,CACE,MAAO,gBACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,cAAe,KAAM,CAAC,CAAO,CAAC,CACxE,EACA,CACE,MAAO,qBACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,WAAY,KAAM,CAAC,CAAO,CAAC,CACrE,EACA,CACE,MAAO,eACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,0BAA2B,KAAM,CAAC,CAAO,CAAC,CACpF,EACA,CACE,MAAO,YACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,qBAAsB,KAAM,CAAC,CAAO,CAAC,CAC/E,CACF,EAyDA,MArDI,CAFsB,EAAyB,kBAAkB,CAEhE,IAGL,EAAO,EAAK,OAAO,CACjB,CACE,MAAO,WACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,oBAAqB,KAAM,CAAC,CAAO,CAAC,CAC9E,EACA,CACE,MAAO,SACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,oBAAqB,KAAM,CAAC,CAAO,CAAC,CAC9E,EACA,CACE,MAAO,iBACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,0BAA2B,KAAM,CAAC,CAAO,CAAC,CACpF,EACA,CACE,MAAO,YACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,qBAAsB,KAAM,CAAC,CAAO,CAAC,CAC/E,EACA,CACE,MAAO,UACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,mBAAoB,KAAM,CAAC,CAAO,CAAC,CAC7E,EACA,CACE,MAAO,OACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,gBAAiB,KAAM,CAAC,CAAO,CAAC,CAC1E,EACA,CACE,MAAO,YACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,qBAAsB,KAAM,CAAC,CAAO,CAAC,CAC/E,EACA,CACE,MAAO,QACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,iBAAkB,KAAM,CAAC,CAAO,CAAC,CAC3E,EACA,CACE,MAAO,eACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,wBAAyB,KAAM,CAAC,CAAO,CAAC,CAClF,CACF,CAAC,EAEG,CAAC,EAAyB,MAAM,CAAW,IAI/C,EAAK,KACH,CACE,MAAO,cACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,uBAAwB,KAAM,CAAC,CAAO,CAAC,CACjF,CACF,EARS,CAWX,CACF,QC/EM,EAAgB,GAA0B,GAAkB,EAAK,QAAQ,SAAW,EAQ1F,SAAgB,EAAa,EAA8C,CACzE,IAAM,EAAO,EAAe,iBAAiB,EAAM,YAAa,EAAM,OAAO,EAK7E,OAHI,EAAK,OAAS,GACT,EAAA,EAAA,IAAA,CAAA,EAAA,SAAA,CAAI,CAAA,GAGX,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,iBACb,EAAA,EAAA,IAAA,CAAC,EAAD,CACQ,OACN,aAAc,EAAa,EAAM,YAAY,CAC9C,CAAA,CACE,CAAA,CAET"}
@@ -1,2 +1,2 @@
1
- import{a as e,i as t}from"./rp704-Pm.chunk.js";import{t as n}from"./Di_u2uix.chunk.js";import"./CfCYHRuo.chunk.js";import{n as r}from"./CFoexGFe.chunk.js";import{t as i}from"./UCDGupVs.chunk.js";import{t as a}from"./cwPDEI372.chunk.js";import{l as o,s}from"./Dgk5cBBe.chunk.js";import"./Oh4_zGIH.chunk.js";import{t as c}from"./Bwpvc7Th2.chunk.js";import{t as l}from"./CZyPFSXo.chunk.js";import{i as u,n as d,r as f,t as p}from"./DcxGcCkR.chunk.js";import{t as m}from"./BbR7yW4A2.chunk.js";e();var h=t();function g(e){let t=c(),g=o(),_=s(i.currentUser()),v=s(l.member(e.interactiveId)),y=s(l.backboneClassificationsTree()),b=s(l.memberBackboneClassifications(e.interactiveId)),x=p(b.data?.map(e=>e.id)),S=d(x?.map(e=>e.id)),C=s(l.presentations(a.Subject)),w=s(l.objectClassifications(e.interactiveId));function T(t,n){g(l.updateObjectBackboneClassification(e.interactiveId,t,r.Interactives,n))}function E(n){g(l.addObjectsToClassification(n,[e.interactiveId],r.Interactives,()=>t.success(u.getOnSuccessMessage(`add`,r.Interactives)),()=>t.error(u.getOnErrorMessage(`add`,r.Interactives))))}return(0,h.jsxs)(h.Fragment,{children:[!!v.data&&!!_.data&&(0,h.jsx)(m,{interactive:v.data,activeAction:n.Interactives.EDIT_INTERACTIVE_CLASSIFICATIONS,currentUser:_.data}),(0,h.jsx)(f,{objectId:e.interactiveId,object:v.data,memberType:r.Interactives,presentations:C.data,backboneClassificationTree:y.data,objectMappedClassifications:w.data,objectClassificationPaths:S,availableClassifications:x,onSaveBackboneClassification:T,onAddToClassification:E,objectMappedBackboneClassifications:b.data})]})}export{g as EditInteractiveClassificationsView};
2
- //# sourceMappingURL=FlF2O19P2.chunk.js.map
1
+ import{a as e,i as t}from"./rp704-Pm.chunk.js";import{t as n}from"./Di_u2uix.chunk.js";import"./CfCYHRuo.chunk.js";import{n as r}from"./CFoexGFe.chunk.js";import{t as i}from"./UCDGupVs.chunk.js";import{t as a}from"./cwPDEI372.chunk.js";import{l as o,s}from"./Dgk5cBBe.chunk.js";import"./Oh4_zGIH.chunk.js";import{t as c}from"./Bwpvc7Th2.chunk.js";import{t as l}from"./CZyPFSXo.chunk.js";import{i as u,n as d,r as f,t as p}from"./BrHyZG_m.chunk.js";import{t as m}from"./5uVJfyDx2.chunk.js";e();var h=t();function g(e){let t=c(),g=o(),_=s(i.currentUser()),v=s(l.member(e.interactiveId)),y=s(l.backboneClassificationsTree()),b=s(l.memberBackboneClassifications(e.interactiveId)),x=p(b.data?.map(e=>e.id)),S=d(x?.map(e=>e.id)),C=s(l.presentations(a.Subject)),w=s(l.objectClassifications(e.interactiveId));function T(t,n){g(l.updateObjectBackboneClassification(e.interactiveId,t,r.Interactives,n))}function E(n){g(l.addObjectsToClassification(n,[e.interactiveId],r.Interactives,()=>t.success(u.getOnSuccessMessage(`add`,r.Interactives)),()=>t.error(u.getOnErrorMessage(`add`,r.Interactives))))}return(0,h.jsxs)(h.Fragment,{children:[!!v.data&&!!_.data&&(0,h.jsx)(m,{interactive:v.data,activeAction:n.Interactives.EDIT_INTERACTIVE_CLASSIFICATIONS,currentUser:_.data}),(0,h.jsx)(f,{objectId:e.interactiveId,object:v.data,memberType:r.Interactives,presentations:C.data,backboneClassificationTree:y.data,objectMappedClassifications:w.data,objectClassificationPaths:S,availableClassifications:x,onSaveBackboneClassification:T,onAddToClassification:E,objectMappedBackboneClassifications:b.data})]})}export{g as EditInteractiveClassificationsView};
2
+ //# sourceMappingURL=BUD4osIg2.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FlF2O19P2.chunk.js","names":[],"sources":["../../../../../src/apps/interactives/views/edit-interactive-classifications/EditInteractiveClassificationsView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { PresentationType } from 'libs/shared/enums/PresentationType';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { Classification, CuratorUser, InteractiveMetadata, Presentation } from 'libs/shared/interfaces';\n\nimport { EditObjectClassifications } from 'shared/components/backbone-classification/edit-object-classifications/EditObjectClassifications';\nimport { Actions } from 'shared/constants';\nimport { SubjectMemberType } from 'shared/enums';\nimport { SubjectRequests } from 'shared/flight-requests/SubjectRequests';\nimport { useFetchClassificationsPaths } from 'shared/hooks/UseClassificationsPaths';\nimport { useFetchAvailableClassifications } from 'shared/hooks/UseFetchAvailableClassifications';\nimport { SubjectTree } from 'shared/interfaces';\nimport { ClassificationMappingListHelper } from 'shared/utils/ClassificationMappingListHelper';\n\nimport { EditInteractivesNav } from 'apps/interactives/components/edit-interactives-nav/EditInteractivesNav';\n\ninterface EditInteractivesClassificationsViewProps {\n interactiveId: string;\n}\n\nexport function EditInteractiveClassificationsView(props: EditInteractivesClassificationsViewProps): JSX.Element {\n const alerts = useAlerts();\n const fetch = Flight.useGetFetch();\n\n const currentUser = Flight.useBasicFetch<CuratorUser>(UserRequests.currentUser());\n const interactive = Flight.useBasicFetch<InteractiveMetadata>(SubjectRequests.member(props.interactiveId));\n\n const backboneClassificationTree = Flight.useBasicFetch<SubjectTree>(\n SubjectRequests.backboneClassificationsTree()\n );\n const interactiveBackboneClassifications = Flight.useBasicFetch<Classification[]>(\n SubjectRequests.memberBackboneClassifications(props.interactiveId)\n );\n const availableClassifications = useFetchAvailableClassifications(\n interactiveBackboneClassifications.data?.map(c => c.id)\n );\n const interactivesClassificationPaths = useFetchClassificationsPaths(availableClassifications?.map(c => c.id));\n const presentations = Flight.useBasicFetch<Presentation[]>(\n SubjectRequests.presentations(PresentationType.Subject)\n );\n const interactiveClassifications = Flight.useBasicFetch<Classification[]>(\n SubjectRequests.objectClassifications(props.interactiveId)\n );\n\n function onSaveBackboneClassification(subjectsId: string[], onDone: () => void) {\n fetch(SubjectRequests.updateObjectBackboneClassification(\n props.interactiveId,\n subjectsId,\n SubjectMemberType.Interactives,\n onDone\n ));\n }\n\n function onAddToClassification(classificationId: string) {\n fetch(SubjectRequests.addObjectsToClassification(\n classificationId,\n [props.interactiveId],\n SubjectMemberType.Interactives,\n () => alerts.success(ClassificationMappingListHelper.getOnSuccessMessage('add', SubjectMemberType.Interactives)),\n () => alerts.error(ClassificationMappingListHelper.getOnErrorMessage('add', SubjectMemberType.Interactives))\n ));\n }\n\n return (\n <>\n {!!interactive.data && !!currentUser.data && (\n <EditInteractivesNav\n interactive={interactive.data}\n activeAction={Actions.Interactives.EDIT_INTERACTIVE_CLASSIFICATIONS}\n currentUser={currentUser.data}\n />\n )}\n <EditObjectClassifications\n objectId={props.interactiveId}\n object={interactive.data}\n memberType={SubjectMemberType.Interactives}\n presentations={presentations.data}\n backboneClassificationTree={backboneClassificationTree.data}\n objectMappedClassifications={interactiveClassifications.data}\n objectClassificationPaths={interactivesClassificationPaths}\n availableClassifications={availableClassifications}\n onSaveBackboneClassification={onSaveBackboneClassification}\n onAddToClassification={onAddToClassification}\n objectMappedBackboneClassifications={interactiveBackboneClassifications.data}\n />\n </>\n );\n}\n"],"mappings":"ufAwBA,SAAgB,EAAmC,EAA8D,CAC/G,IAAM,EAAS,EAAU,EACnB,EAAQ,EAAmB,EAE3B,EAAc,EAAkC,EAAa,YAAY,CAAC,EAC1E,EAAc,EAA0C,EAAgB,OAAO,EAAM,aAAa,CAAC,EAEnG,EAA6B,EACjC,EAAgB,4BAA4B,CAC9C,EACM,EAAqC,EACzC,EAAgB,8BAA8B,EAAM,aAAa,CACnE,EACM,EAA2B,EAC/B,EAAmC,MAAM,IAAI,GAAK,EAAE,EAAE,CACxD,EACM,EAAkC,EAA6B,GAA0B,IAAI,GAAK,EAAE,EAAE,CAAC,EACvG,EAAgB,EACpB,EAAgB,cAAc,EAAiB,OAAO,CACxD,EACM,EAA6B,EACjC,EAAgB,sBAAsB,EAAM,aAAa,CAC3D,EAEA,SAAS,EAA6B,EAAsB,EAAoB,CAC9E,EAAM,EAAgB,mCACpB,EAAM,cACN,EACA,EAAkB,aAClB,CACF,CAAC,CACH,CAEA,SAAS,EAAsB,EAA0B,CACvD,EAAM,EAAgB,2BACpB,EACA,CAAC,EAAM,aAAa,EACpB,EAAkB,iBACZ,EAAO,QAAQ,EAAgC,oBAAoB,MAAO,EAAkB,YAAY,CAAC,MACzG,EAAO,MAAM,EAAgC,kBAAkB,MAAO,EAAkB,YAAY,CAAC,CAC7G,CAAC,CACH,CAEA,OACE,EAAA,EAAA,KAAA,CAAA,EAAA,SAAA,CAAA,SAAA,CACG,CAAC,CAAC,EAAY,MAAQ,CAAC,CAAC,EAAY,OACnC,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,YAAa,EAAY,KACzB,aAAc,EAAQ,aAAa,iCACnC,YAAa,EAAY,IAC1B,CAAA,GAEH,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,SAAU,EAAM,cAChB,OAAQ,EAAY,KACpB,WAAY,EAAkB,aAC9B,cAAe,EAAc,KAC7B,2BAA4B,EAA2B,KACvD,4BAA6B,EAA2B,KACxD,0BAA2B,EACD,2BACI,+BACP,wBACvB,oCAAqC,EAAmC,IACzE,CAAA,CACD,CAAA,CAAA,CAEN"}
1
+ {"version":3,"file":"BUD4osIg2.chunk.js","names":[],"sources":["../../../../../src/apps/interactives/views/edit-interactive-classifications/EditInteractiveClassificationsView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { PresentationType } from 'libs/shared/enums/PresentationType';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { Classification, CuratorUser, InteractiveMetadata, Presentation } from 'libs/shared/interfaces';\n\nimport { EditObjectClassifications } from 'shared/components/backbone-classification/edit-object-classifications/EditObjectClassifications';\nimport { Actions } from 'shared/constants';\nimport { SubjectMemberType } from 'shared/enums';\nimport { SubjectRequests } from 'shared/flight-requests/SubjectRequests';\nimport { useFetchClassificationsPaths } from 'shared/hooks/UseClassificationsPaths';\nimport { useFetchAvailableClassifications } from 'shared/hooks/UseFetchAvailableClassifications';\nimport { SubjectTree } from 'shared/interfaces';\nimport { ClassificationMappingListHelper } from 'shared/utils/ClassificationMappingListHelper';\n\nimport { EditInteractivesNav } from 'apps/interactives/components/edit-interactives-nav/EditInteractivesNav';\n\ninterface EditInteractivesClassificationsViewProps {\n interactiveId: string;\n}\n\nexport function EditInteractiveClassificationsView(props: EditInteractivesClassificationsViewProps): JSX.Element {\n const alerts = useAlerts();\n const fetch = Flight.useGetFetch();\n\n const currentUser = Flight.useBasicFetch<CuratorUser>(UserRequests.currentUser());\n const interactive = Flight.useBasicFetch<InteractiveMetadata>(SubjectRequests.member(props.interactiveId));\n\n const backboneClassificationTree = Flight.useBasicFetch<SubjectTree>(\n SubjectRequests.backboneClassificationsTree()\n );\n const interactiveBackboneClassifications = Flight.useBasicFetch<Classification[]>(\n SubjectRequests.memberBackboneClassifications(props.interactiveId)\n );\n const availableClassifications = useFetchAvailableClassifications(\n interactiveBackboneClassifications.data?.map(c => c.id)\n );\n const interactivesClassificationPaths = useFetchClassificationsPaths(availableClassifications?.map(c => c.id));\n const presentations = Flight.useBasicFetch<Presentation[]>(\n SubjectRequests.presentations(PresentationType.Subject)\n );\n const interactiveClassifications = Flight.useBasicFetch<Classification[]>(\n SubjectRequests.objectClassifications(props.interactiveId)\n );\n\n function onSaveBackboneClassification(subjectsId: string[], onDone: () => void) {\n fetch(SubjectRequests.updateObjectBackboneClassification(\n props.interactiveId,\n subjectsId,\n SubjectMemberType.Interactives,\n onDone\n ));\n }\n\n function onAddToClassification(classificationId: string) {\n fetch(SubjectRequests.addObjectsToClassification(\n classificationId,\n [props.interactiveId],\n SubjectMemberType.Interactives,\n () => alerts.success(ClassificationMappingListHelper.getOnSuccessMessage('add', SubjectMemberType.Interactives)),\n () => alerts.error(ClassificationMappingListHelper.getOnErrorMessage('add', SubjectMemberType.Interactives))\n ));\n }\n\n return (\n <>\n {!!interactive.data && !!currentUser.data && (\n <EditInteractivesNav\n interactive={interactive.data}\n activeAction={Actions.Interactives.EDIT_INTERACTIVE_CLASSIFICATIONS}\n currentUser={currentUser.data}\n />\n )}\n <EditObjectClassifications\n objectId={props.interactiveId}\n object={interactive.data}\n memberType={SubjectMemberType.Interactives}\n presentations={presentations.data}\n backboneClassificationTree={backboneClassificationTree.data}\n objectMappedClassifications={interactiveClassifications.data}\n objectClassificationPaths={interactivesClassificationPaths}\n availableClassifications={availableClassifications}\n onSaveBackboneClassification={onSaveBackboneClassification}\n onAddToClassification={onAddToClassification}\n objectMappedBackboneClassifications={interactiveBackboneClassifications.data}\n />\n </>\n );\n}\n"],"mappings":"ufAwBA,SAAgB,EAAmC,EAA8D,CAC/G,IAAM,EAAS,EAAU,EACnB,EAAQ,EAAmB,EAE3B,EAAc,EAAkC,EAAa,YAAY,CAAC,EAC1E,EAAc,EAA0C,EAAgB,OAAO,EAAM,aAAa,CAAC,EAEnG,EAA6B,EACjC,EAAgB,4BAA4B,CAC9C,EACM,EAAqC,EACzC,EAAgB,8BAA8B,EAAM,aAAa,CACnE,EACM,EAA2B,EAC/B,EAAmC,MAAM,IAAI,GAAK,EAAE,EAAE,CACxD,EACM,EAAkC,EAA6B,GAA0B,IAAI,GAAK,EAAE,EAAE,CAAC,EACvG,EAAgB,EACpB,EAAgB,cAAc,EAAiB,OAAO,CACxD,EACM,EAA6B,EACjC,EAAgB,sBAAsB,EAAM,aAAa,CAC3D,EAEA,SAAS,EAA6B,EAAsB,EAAoB,CAC9E,EAAM,EAAgB,mCACpB,EAAM,cACN,EACA,EAAkB,aAClB,CACF,CAAC,CACH,CAEA,SAAS,EAAsB,EAA0B,CACvD,EAAM,EAAgB,2BACpB,EACA,CAAC,EAAM,aAAa,EACpB,EAAkB,iBACZ,EAAO,QAAQ,EAAgC,oBAAoB,MAAO,EAAkB,YAAY,CAAC,MACzG,EAAO,MAAM,EAAgC,kBAAkB,MAAO,EAAkB,YAAY,CAAC,CAC7G,CAAC,CACH,CAEA,OACE,EAAA,EAAA,KAAA,CAAA,EAAA,SAAA,CAAA,SAAA,CACG,CAAC,CAAC,EAAY,MAAQ,CAAC,CAAC,EAAY,OACnC,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,YAAa,EAAY,KACzB,aAAc,EAAQ,aAAa,iCACnC,YAAa,EAAY,IAC1B,CAAA,GAEH,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,SAAU,EAAM,cAChB,OAAQ,EAAY,KACpB,WAAY,EAAkB,aAC9B,cAAe,EAAc,KAC7B,2BAA4B,EAA2B,KACvD,4BAA6B,EAA2B,KACxD,0BAA2B,EACD,2BACI,+BACP,wBACvB,oCAAqC,EAAmC,IACzE,CAAA,CACD,CAAA,CAAA,CAEN"}
@@ -1,2 +1,2 @@
1
- import{a as e,i as t,ln as n}from"./rp704-Pm.chunk.js";import{l as r,n as i,r as a}from"./Crs6pJ2h.chunk.js";import{G as o,T as s,W as c}from"./C7Gmh7eY.chunk.js";import{i as l}from"./EkUBWhps2.chunk.js";import{n as u}from"./CbiGs3Tn.chunk.js";import{s as d}from"./Dgk5cBBe.chunk.js";import"./Oh4_zGIH.chunk.js";import{R as f,z as p}from"./Bznq7eHJ.chunk.js";import{t as m}from"./C4Xe4WTH.chunk.js";import{t as h}from"./DkLlaBp-.chunk.js";import{a as g,l as _,o as v,s as y,u as b}from"./Ta_RhTv-.chunk.js";import{t as x}from"./psIZEjea.chunk.js";import{t as S}from"./MtOi7z-o.chunk.js";var C=n(e(),1),w={container:`_container_xmv3v_1`,close:`_close_xmv3v_4`,drag:`_drag_xmv3v_13`},T=t(),E=270,D=480,O=15;function k(e){let[t,n]=h(`pip:pos`,{right:15,bottom:15},{storage:l.SessionStorage});function r(e){let r=t.right-e.delta.x,i=t.bottom-e.delta.y;window.innerHeight-t.bottom-E+e.delta.y<O&&(i=window.innerHeight-E-O),r<-240&&(r=-240),i<-135&&(i=-135),r>window.innerWidth-D/2&&(r=window.innerWidth-D/2),i>window.innerHeight-E/2&&(i=window.innerHeight-E/2),n({right:r,bottom:i})}return(0,T.jsx)(g,{onDragEnd:r,sensors:b(_(v,{activationConstraint:{distance:10}})),children:(0,T.jsx)(A,{...e,pos:t})})}function A(e){let[t,n]=C.useState(!1),l=s(),{attributes:h,listeners:g,setNodeRef:_,transform:v}=y({id:`pip`}),b={right:`${e.pos.right}px`,bottom:`${e.pos.bottom}px`,width:`${D}px`,height:`${E}px`,transform:v?`translate3d(${v.x}px, ${v.y}px, 0)`:``},O=d(o.getAssemblyLineVideo(e.videoId)),k=d(f.createViewKey(e.videoId,p.MasterObject));function A(){return!k.hasCompleted||!O.hasCompleted}function j(){return O.data.regions?.map(e=>c.mapVideoContentRegionToLabel(e)).join(` / `)}C.useEffect(()=>{t&&A()&&n(!1)},[A()]),C.useEffect(()=>()=>{l?.resetPlayer()},[]);function M(e){n(!0),l&&l.setPlayerRef(e)}return(0,T.jsx)(`div`,{className:`${w.container} position-fixed box-shadow rounded-3 bg-white overflow-hidden`,style:b,children:k.hasError||O.hasError?(0,T.jsxs)(`div`,{className:`d-flex align-items-center justify-content-center h-100 text-center px-3`,children:[(0,T.jsx)(r,{ref:_,...g,...h,onClick:e.close,className:`${w.drag} d-flex align-items-center justify-content-center rounded-circle box-shadow`,children:(0,T.jsx)(i,{svg:x,size:a.Large})}),O.data.regions?.length?(0,T.jsxs)(`p`,{children:[`This video cannot be viewed from your account. Please log into an account for one of the following regions: `,j()]}):(0,T.jsx)(`p`,{children:`This video cannot be viewed from your account because it has not been added to any libraries yet.`}),(0,T.jsx)(r,{onClick:e.close,className:`${w.close} d-flex align-items-center justify-content-center rounded-circle box-shadow`,children:(0,T.jsx)(i,{svg:m,size:a.Large})})]}):(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`div`,{className:t?`d-none`:`d-flex align-items-center justify-content-center h-100`,children:(0,T.jsx)(u,{})}),!A()&&(0,T.jsxs)(`div`,{className:t?``:`d-none`,children:[(0,T.jsx)(r,{ref:_,...g,...h,onClick:e.close,className:`${w.drag} d-flex align-items-center justify-content-center rounded-circle box-shadow`,children:(0,T.jsx)(i,{svg:x,size:a.Large})}),(0,T.jsx)(S,{viewKey:k.data?.viewKey,playerApi:new URL(ClickView.Config.Urls.PlayerApi),hotkeyElQuerySelector:`body`,onReady:M,eventLogging:!1,autoplay:!0}),(0,T.jsx)(r,{onClick:e.close,className:`${w.close} d-flex align-items-center justify-content-center rounded-circle box-shadow`,children:(0,T.jsx)(i,{svg:m,size:a.Large})})]})]})})}export{k as PictureInPictureView};
2
- //# sourceMappingURL=DWS9yr24.chunk.js.map
1
+ import{a as e,i as t,ln as n}from"./rp704-Pm.chunk.js";import{l as r,n as i,r as a}from"./Crs6pJ2h.chunk.js";import{G as o,T as s,W as c}from"./DWHKdmdQ.chunk.js";import{i as l}from"./EkUBWhps2.chunk.js";import{n as u}from"./CbiGs3Tn.chunk.js";import{s as d}from"./Dgk5cBBe.chunk.js";import"./Oh4_zGIH.chunk.js";import{R as f,z as p}from"./Bznq7eHJ.chunk.js";import{t as m}from"./C4Xe4WTH.chunk.js";import{t as h}from"./DkLlaBp-.chunk.js";import{a as g,l as _,o as v,s as y,u as b}from"./Ta_RhTv-.chunk.js";import{t as x}from"./psIZEjea.chunk.js";import{t as S}from"./MtOi7z-o.chunk.js";var C=n(e(),1),w={container:`_container_xmv3v_1`,close:`_close_xmv3v_4`,drag:`_drag_xmv3v_13`},T=t(),E=270,D=480,O=15;function k(e){let[t,n]=h(`pip:pos`,{right:15,bottom:15},{storage:l.SessionStorage});function r(e){let r=t.right-e.delta.x,i=t.bottom-e.delta.y;window.innerHeight-t.bottom-E+e.delta.y<O&&(i=window.innerHeight-E-O),r<-240&&(r=-240),i<-135&&(i=-135),r>window.innerWidth-D/2&&(r=window.innerWidth-D/2),i>window.innerHeight-E/2&&(i=window.innerHeight-E/2),n({right:r,bottom:i})}return(0,T.jsx)(g,{onDragEnd:r,sensors:b(_(v,{activationConstraint:{distance:10}})),children:(0,T.jsx)(A,{...e,pos:t})})}function A(e){let[t,n]=C.useState(!1),l=s(),{attributes:h,listeners:g,setNodeRef:_,transform:v}=y({id:`pip`}),b={right:`${e.pos.right}px`,bottom:`${e.pos.bottom}px`,width:`${D}px`,height:`${E}px`,transform:v?`translate3d(${v.x}px, ${v.y}px, 0)`:``},O=d(o.getAssemblyLineVideo(e.videoId)),k=d(f.createViewKey(e.videoId,p.MasterObject));function A(){return!k.hasCompleted||!O.hasCompleted}function j(){return O.data.regions?.map(e=>c.mapVideoContentRegionToLabel(e)).join(` / `)}C.useEffect(()=>{t&&A()&&n(!1)},[A()]),C.useEffect(()=>()=>{l?.resetPlayer()},[]);function M(e){n(!0),l&&l.setPlayerRef(e)}return(0,T.jsx)(`div`,{className:`${w.container} position-fixed box-shadow rounded-3 bg-white overflow-hidden`,style:b,children:k.hasError||O.hasError?(0,T.jsxs)(`div`,{className:`d-flex align-items-center justify-content-center h-100 text-center px-3`,children:[(0,T.jsx)(r,{ref:_,...g,...h,onClick:e.close,className:`${w.drag} d-flex align-items-center justify-content-center rounded-circle box-shadow`,children:(0,T.jsx)(i,{svg:x,size:a.Large})}),O.data.regions?.length?(0,T.jsxs)(`p`,{children:[`This video cannot be viewed from your account. Please log into an account for one of the following regions: `,j()]}):(0,T.jsx)(`p`,{children:`This video cannot be viewed from your account because it has not been added to any libraries yet.`}),(0,T.jsx)(r,{onClick:e.close,className:`${w.close} d-flex align-items-center justify-content-center rounded-circle box-shadow`,children:(0,T.jsx)(i,{svg:m,size:a.Large})})]}):(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`div`,{className:t?`d-none`:`d-flex align-items-center justify-content-center h-100`,children:(0,T.jsx)(u,{})}),!A()&&(0,T.jsxs)(`div`,{className:t?``:`d-none`,children:[(0,T.jsx)(r,{ref:_,...g,...h,onClick:e.close,className:`${w.drag} d-flex align-items-center justify-content-center rounded-circle box-shadow`,children:(0,T.jsx)(i,{svg:x,size:a.Large})}),(0,T.jsx)(S,{viewKey:k.data?.viewKey,playerApi:new URL(ClickView.Config.Urls.PlayerApi),hotkeyElQuerySelector:`body`,onReady:M,eventLogging:!1,autoplay:!0}),(0,T.jsx)(r,{onClick:e.close,className:`${w.close} d-flex align-items-center justify-content-center rounded-circle box-shadow`,children:(0,T.jsx)(i,{svg:m,size:a.Large})})]})]})})}export{k as PictureInPictureView};
2
+ //# sourceMappingURL=BVoG71Kc.chunk.js.map