@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,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}from"./Crs6pJ2h.chunk.js";import{t as a}from"./Di_u2uix.chunk.js";import{t as o}from"./BvMTtGLi.chunk.js";import"./CfCYHRuo.chunk.js";import{t as s}from"./UCDGupVs.chunk.js";import{$ as c,B as l,G as u,W as d,Y as f,b as p,t as m,tt as h}from"./C7Gmh7eY.chunk.js";import{t as ee}from"./D-JsEiDq2.chunk.js";import{n as g}from"./CbiGs3Tn.chunk.js";import{r as _,s as v,u as te}from"./Dgk5cBBe.chunk.js";import{t as y}from"./Bw7dP6jB.chunk.js";import{t as b}from"./DpqbC5uX.chunk.js";import"./Oh4_zGIH.chunk.js";import{t as x}from"./CVHQXNzi.chunk.js";import{t as S}from"./D_O97jwq.chunk.js";import{t as ne}from"./DkLlaBp-.chunk.js";import{t as C}from"./D0JviwKV2.chunk.js";import{t as re}from"./CGACfSBR.chunk.js";import{t as w}from"./2NdfwDHB.chunk.js";import{t as T}from"./C8hLOeBc2.chunk.js";import{n as E,t as D}from"./DIFBEfuJ2.chunk.js";import{t as O}from"./DOqkOvWG2.chunk.js";import{t as k}from"./XcBcKeKH2.chunk.js";import{t as A}from"./BCDw1Rw-2.chunk.js";import{n as j,t as M}from"./CZU8Ycam2.chunk.js";var N=n(e()),P=t();function ie(e){let{owners:t}=p();return(0,P.jsxs)(`div`,{children:[(0,P.jsxs)(`p`,{children:[`Choose which action you'd like to take on the selected `,t.length,` `,e.pluralObjectName,`.`]}),(0,P.jsx)(k,{options:d.getBulkActionOptions(e.stage,t,e.pluralObjectName),setOption:e.onSelectAction,selectedAction:e.action}),(0,P.jsxs)(C,{className:`bulk-action-modal-buttons`,children:[(0,P.jsx)(C.Cancel,{onClick:e.closePopup}),(0,P.jsx)(C.Submit,{onClick:e.onClickNext,text:`Next`,variant:`dark`,disabled:!e.action})]})]})}var F={idColumn:`_idColumn_1xejz_1`},I=45;function L(e){let t=N.useRef(null),{owners:n,ownerType:s,removeOwner:l}=p();return(0,P.jsx)(`div`,{className:`border rounded mb-3`,children:(0,P.jsx)(A,{items:n,rowHeight:I,containerHeight:I*11,ref:t,staticComponentAboveRows:(0,P.jsxs)(P.Fragment,{children:[(0,P.jsxs)(`div`,{children:[(0,P.jsxs)(`div`,{className:`ps-3 d-flex align-items-center`,style:{height:`${I}px`},children:[`The above changes will be applied to the selected `,n.length,` `,e.pluralObjectName,`:`]}),(0,P.jsxs)(`div`,{className:`fw-semibold px-3 pt-1 pb-2`,children:[(0,P.jsx)(`div`,{className:`d-inline-block ${F.idColumn}`,children:`ID`}),(0,P.jsx)(`div`,{className:`d-inline-block`,children:`Title`})]})]}),(0,P.jsx)(`li`,{className:`d-none`})]}),getComponent:e=>{let t=s===`video`?{application:o.VIDEOS,action:a.Videos.EDIT_VIDEO,args:[e.id]}:{application:o.SUBJECTS,action:a.Subjects.EDIT_CLASSIFICATION,args:[e.id,e.presentationId]};return(0,P.jsxs)(`li`,{style:{height:`${I}px`},className:`mb-0 py-2 px-3 d-flex align-items-center`,children:[(0,P.jsx)(`div`,{className:`${F.idColumn}`,children:(0,P.jsx)(c,{actions:[`new-window`,`copy`],data:e.id,appLink:t,openInNewTab:!0})}),(0,P.jsx)(`div`,{className:`me-auto`,children:e.name}),(0,P.jsx)(r,{onClick:()=>l(e.id),className:`me-1`,children:(0,P.jsx)(i,{svg:w})})]},e.id)}})})}function ae(e){function t(){return e.comment?e.comment.bypassCategory===`Other`?`Reason: ${e.comment.bypassReason}`:`Reason: ${e.comment.bypassCategory}`:``}function n(){if(e.action===`thumbnailQuality`){let t=e.members?.[0];return(0,P.jsxs)(P.Fragment,{children:[`Set to\xA0`,(0,P.jsx)(`strong`,{children:d.mapThumbnailQualityToLabel(t)}),` thumbnail quality.`]})}if(e.action===`priorities`){let t=e.members?.[0],n=t===`None`?null:+t;return(0,P.jsxs)(P.Fragment,{children:[`Set to\xA0`,(0,P.jsx)(`strong`,{children:d.getPriorityLabel(n)}),` priority.`]})}if(e.action===`reviewer`){if(!e.members.length)return(0,P.jsx)(P.Fragment,{children:`Clear the reviewers on the selected items.`});let t=S.getFullName(e.members[0]),n=S.getFullName(e.members[1]);return(0,P.jsxs)(P.Fragment,{children:[`Assign `,(0,P.jsx)(`strong`,{children:t}),` and `,(0,P.jsx)(`strong`,{children:n}),` to review the thumbnails for the selected videos.`]})}if(e.action===`stage`)return(0,P.jsxs)(P.Fragment,{children:[`Move to the\xA0`,(0,P.jsx)(`strong`,{children:d.formatStageName(d.getNextStage(e.stage))}),` stage.`]});if(e.action===`publish`)return(0,P.jsx)(P.Fragment,{children:`Publish videos.`});if(e.action===`assignedTo`){if(!e.members.length)return(0,P.jsx)(P.Fragment,{children:`Unassign all of the selected items.`});let t=e.members[0];return(0,P.jsxs)(P.Fragment,{children:[`Assign `,(0,P.jsx)(`strong`,{children:S.getFullName(t)}),` to the selected items.`]})}if(e.action===`series`)return(0,P.jsx)(P.Fragment,{children:`Remove the association with series.`});if(e.action===`subtitles`)return(0,P.jsxs)(P.Fragment,{children:[`No longer requires subtitles. `,t()]});if(e.action===`skipCurriculum`)return(0,P.jsx)(P.Fragment,{children:`No longer requires curriculum.`});if(e.action===`hasCurriculum`)return(0,P.jsx)(P.Fragment,{children:`Already have curriculum.`});if(e.action===`pointsOfInterest`)return(0,P.jsxs)(P.Fragment,{children:[`No longer requires points of interests. `,t()]});if(e.action===`resources`)return(0,P.jsxs)(P.Fragment,{children:[`No longer requires resources or interactives. `,t()]});if(J.includes(e.action)){let n=t();return(0,P.jsx)(P.Fragment,{children:`Remove the association with ${e.name}. ${n}`})}}return(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`p`,{children:`Changes to be made:`}),(0,P.jsx)(`div`,{className:`p-2 border rounded mb-3`,children:e.isLocalAction?n():(0,P.jsxs)(P.Fragment,{children:[(0,P.jsxs)(`p`,{className:`fw-semibold mb-2`,children:[`Add the following `,e.name,`:`]}),!e.groupedMembers&&(0,P.jsx)(`ul`,{className:`mb-1`,children:e.members.map(e=>(0,P.jsx)(`li`,{children:e.name},e.id??e.name))}),e.groupedMembers&&Object.keys(e.groupedMembers).map(t=>Object.keys(e.groupedMembers[t]).length===0?null:(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`p`,{className:`fw-semibold mb-1`,children:e.getGroupedMemberName?.(t)??t}),(0,P.jsx)(`ul`,{className:`mb-2`,children:e.groupedMembers[t].map(e=>(0,P.jsx)(`li`,{children:e.name},e.id))})]},t))]})}),(0,P.jsx)(L,{pluralObjectName:e.pluralObjectName}),(0,P.jsxs)(C,{className:`bulk-action-modal-buttons`,children:[(0,P.jsx)(C.Cancel,{onClick:e.onClickBack,text:`Back`}),(0,P.jsx)(C.Submit,{onClick:e.onClickConfirm,text:`Confirm`,variant:`dark`})]})]})}var R=`None`;function z(e){let[t,n]=N.useState(R);function r(e){let t=e.target.value===`None`?`None`:+e.target.value;n(t)}return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(`p`,{children:`Select a priority level for the selected items:`}),(0,P.jsx)(`div`,{className:`form-group assembly-line-form`,children:(0,P.jsx)(`select`,{id:`priority`,className:`form-control`,onChange:r,value:t,children:l.map(e=>(0,P.jsx)(`option`,{value:e,children:d.getPriorityLabel(e)},e))})}),(0,P.jsxs)(C,{className:`bulk-action-modal-buttons`,children:[(0,P.jsx)(C.Cancel,{onClick:e.onClickBack,text:`Back`}),(0,P.jsx)(C.Submit,{onClick:()=>{e.onClickNext([t],!0)},text:`Next`,variant:`dark`})]})]})}var B=[f.High,f.Low],V=`None`;function H(e){let[t,n]=N.useState(V);function r(e){let t=e.target.value;n(t)}return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(`p`,{children:`Select a quality for the selected thumbnails:`}),(0,P.jsx)(`div`,{className:`form-group assembly-line-form`,children:(0,P.jsxs)(`select`,{id:`quality`,className:`form-control cursor-pointer ${t?``:`text-danger`}`,onChange:r,value:t,children:[(0,P.jsx)(`option`,{value:V,disabled:!0,hidden:!0,children:`None`}),B.map(e=>(0,P.jsx)(`option`,{value:e,children:d.mapThumbnailQualityToLabel(e)},e))]})}),(0,P.jsxs)(C,{className:`bulk-action-modal-buttons`,children:[(0,P.jsx)(C.Cancel,{onClick:e.onClickBack,text:`Back`}),(0,P.jsx)(C.Submit,{onClick:()=>{e.onClickNext([t],!0)},disabled:t===V,text:`Next`,variant:`dark`})]})]})}function U(e){function t(){return e.action===`thumbnailQuality`?`Successfully updated thumbnail quality for ${e.count} ${e.pluralObjectName}.`:e.action===`priorities`?`Successfully updated priorities for ${e.count} ${e.pluralObjectName}.`:e.action===`stage`?`Successfully moved all ${e.count} ${e.pluralObjectName} to the ${d.formatStageName(d.getNextStage(e.stage))} stage.`:e.action===`publish`?`Successfully published all ${e.count} ${e.pluralObjectName}.`:e.action===`series`?`Successfully removed series association for ${e.count} ${e.pluralObjectName}.`:e.action===`subtitles`?`Subtitles are now no longer required for ${e.count} ${e.pluralObjectName}`:e.action===`resources`?`Resources are now no longer required for ${e.count} ${e.pluralObjectName}`:e.action===`assignedTo`?`Successfully updated assignees for ${e.count} ${e.pluralObjectName}.`:e.action===`reviewer`?`Successfully updated reviewers for ${e.count} ${e.pluralObjectName}`:e.action===`skipCurriculum`?`Successfully skipped curriculum for ${e.count} ${e.pluralObjectName}`:J.includes(e.action)?`Successfully removed ${K[e.action]} association for ${e.count} ${e.pluralObjectName}.`:``}return(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`div`,{className:`mb-4`,children:(0,P.jsx)(j,{message:t(),successImageUrl:T.Wizard.WIZARD_SUCCESS})}),(0,P.jsx)(C,{className:`bulk-props.action-modal-buttons`,children:(0,P.jsx)(C.Submit,{onClick:e.onClickFinish,text:`Finish`,variant:`dark`})})]})}function W(e){let t=v(O.getJob(e.jobId)),n=v(O.getJobSummary(e.jobId)),r=!!t.data&&!!n.data,{owners:i}=p();return r?(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`div`,{className:`mb-4`,children:(0,P.jsx)(M,{job:t.data,objectCount:i.length,objectType:x.Video,summary:n.data,imageCdnUrl:ClickView.Config.Urls.ImageAPI,successImageUrl:T.Wizard.WIZARD_SUCCESS,failedImageUrl:T.Wizard.WIZARD_ERROR,getResultsRequest:O.getJobResults,actionSucceededMessage:e.actionSucceededMessage,actionVerb:`Add`,preventLoggingAnalytics:!0})}),(0,P.jsx)(C,{className:`bulk-action-modal-buttons`,children:(0,P.jsx)(C.Submit,{onClick:e.onClickFinish,text:`Finish`,variant:`dark`})})]}):(0,P.jsx)(P.Fragment,{})}function G(e){let t=y();function n(n,r){_(t,O.getJobProgress(e.jobId,n,r))}return e.jobId?(0,P.jsx)(`div`,{children:(0,P.jsx)(`div`,{className:`mb-4`,children:(0,P.jsx)(D,{jobId:e.jobId,pollJob:n,onStatusCompleted:e.onCompleted,actionName:`Bulk update`,actionVerb:`Update`})})}):(0,P.jsx)(`div`,{className:`text-center`,children:(0,P.jsx)(g,{as:`div`,animation:`border`,role:`status`})})}var K={producers:`producer(s)`,productionCompanies:`production company(s)`,directors:`director(s)`,distributors:`distributor(s)`,backboneAudiences:`backbone audience(s)`,backboneClassifications:`backbone subject(s)`,libraries:`library(s)`,series:`series`,classifications:`classification(s)`,audiences:`audience(s)`,curationTags:`curation tag(s)`,skillTags:`skill tag(s)`,pedagogyTags:`pedagogy tag(s)`,normalTags:`keyword tag(s)`,hiddenTags:`search tag(s)`,resources:`resource(s)`,subtitles:`subtitle(s)`,assignedTo:`assignee`,reviewer:`reviewer`,productionYear:`production year`,aliases:`aliases`,partnerProfiles:`channel(s)`},q={partnerProfiles:`Channel(s)`,productionCompanies:`Production company(s)`,directors:`Director(s)`,distributors:`Distributor(s)`,producers:`Producer(s)`},J=[`pedagogyTags`,`skillTags`,`curationTags`,`series`,`subtitles`,`resources`,`producers`,`productionCompanies`,`directors`,`distributors`,`pointsOfInterest`],Y=25;function X(e){return b.chunk(e,Y)}function oe(e,t){switch(e){case`video`:return m[t].moveToLatestStage?u.moveVideoToFurthestStage:t===`review_video`?u.publishVideo:u.updateVideoStage;case`topic`:return u.updateTopicStage;case`dashboard`:return u.updateDashboardStage}}function se(e){switch(e){case`video`:return u.updateVideoPriority;case`topic`:return u.updateTopicPriority;case`dashboard`:return u.updateDashboardPriority}}function ce(e){return{pedagogyTags:`hasPedagogyTags`,curationTags:`hasCurationTags`,skillTags:`hasSkillTags`,series:`isInSeries`,subtitles:`doesNotRequireCaptions`,resources:`doesNotRequireResource`,producers:`hasProducers`,productionCompanies:`hasProductionCompanies`,directors:`hasDirectors`,distributors:`hasDistributors`,pointsOfInterest:`hasPointsOfInterest`}[e]}function Z(e){return{pedagogyTags:`bypassPedagogyTags`,skillTags:`bypassSkillTags`,subtitles:`bypassSubtitles`,resources:`bypassResources`,pointsOfInterest:`bypassPointsOfInterest`,skipCurriculum:`bypassCurriculum`}[e]}function le(e){return{hasPedagogyTags:!1,hasCurationTags:!1,hasSkillTags:!1,isInSeries:!1,doesNotRequireCaptions:!0,doesNotRequireResource:!0,hasProducers:!1,hasProductionCompanies:!1,hasDirectors:!1,hasDistributors:!1,hasPointsOfInterest:!1}[e]}function ue(e,t){return e===`action-details`&&t===`resources`?`xl`:`lg`}function Q(e){let[t]=ne(re.ASSEMBLY_LINE),n=te(),r=v(s.currentUser()),[i,a]=N.useState(`select-action`),[o,c]=N.useState(),[l,f]=N.useState(),[_,y]=N.useState(),[b,x]=N.useState(),[S,C]=N.useState(0),[w,T]=N.useState(``),[D,k]=N.useState(!1);N.useEffect(()=>{(o===`stage`||o===`publish`||o===`priorities`)&&k(!0)},[o]);let{owners:A,isFetching:j}=p(),M=N.useRef(A.length);N.useEffect(()=>{A.length&&(M.current=A.length)},[A.length]);let F=d.useCreateJobErrorAlert(),I=d.useOnCompleteBulkAction(),L=d.getPluralObjectName(t.ownerType);function R(){let n=new Map(t.ownerIdMap);t.removedIds.forEach(e=>{n.delete(e.toString())}),I(e.stage,n,l,o),e.closePopup()}N.useEffect(()=>{i===`complete`&&(o===`stage`||o===`publish`)&&t.resetSelection()},[i]);function B(){if(o===`stage`||o===`publish`){let n=oe(t.ownerType,e.stage);return X(A).map(t=>n(t.map(e=>e.id),e.stage,d.getNextStage(e.stage)))}if(o===`priorities`){let n=se(t.ownerType),r=l?.[0],i=r===`None`?null:+r;return X(A).map(t=>n(t.map(e=>e.id),i,e.stage,e.presentationId,e.queryParams.sort))}if(o===`thumbnailQuality`){let e=l?.[0],t=u.updateThumbnailQuality;return X(A).map(n=>t(n,e))}if(J.includes(o)){let e=ce(o),t=Z(o),n=le(e),r=[],i=X(A);for(let a of i)r.push(u.updateFlags(a,e,n)),b&&r.push(u.addComment(a,t,b.bypassCategory,b.bypassReason));return r}if(o===`assignedTo`){let n=d.getAssigneeActionRequest(t.ownerType);return X(A).map(t=>n(t.map(e=>e.id).sort(),d.getSyncedAssigneeStages(e.stage),l[0]?.id??null))}if(o===`reviewer`){function e(){return l.length?l.map(e=>({reviewerId:e.id,approved:!1})):[{reviewerId:null,approved:!1},{reviewerId:null,approved:!1}]}return X(A).map(t=>u.updateReviewer(t,e()))}if(o===`bypassUnusedStage`)return X(A).map(e=>u.addComment(e,`bypassUnusedStage`,b.bypassCategory,b.bypassReason));if(o===`skipCurriculum`){let e=l[0].value,t=Z(o),n=[],r=X(A);for(let i of r)n.push(u.skipVideoCurriculum(i,e)),b&&n.push(u.addComment(i,t,b.bypassCategory,b.bypassReason));return n}if(o===`hasCurriculum`){let e=l[0].value;return X(A).map(t=>u.updateHasCurriculum(t,e))}}async function V(){if(a(`running`),D){let e=B(),t=Z(o);for(let r=0;r<e.length;r++)await n(e[r]),t&&(r++,await n(e[r])),C(e=>e+Y);a(`complete`);return}let e=Array.from(t.ownerIdMap.keys()).filter(e=>!t.removedIds.includes(e.toString())),i=d.getCreateJobRequestData(e,l,o,r.data?.customerId);n(O.createJob(i)).then(e=>T(e.id)).catch(F)}function Q(){let e=[`producers`,`productionCompanies`,`directors`,`distributors`],i=(_?.partnerProfiles??[]).map(e=>e.id);if(!(e.includes(o)&&i.length>0)){a(`complete`);return}let s=Array.from(t.ownerIdMap.keys()).filter(e=>!t.removedIds.includes(e.toString())),l=d.getCreatePartnerProfilesJobRequestData(s,i,r.data?.customerId);n(O.createJob(l)).then(e=>{T(e.id),c(`partnerProfiles`)}).catch(F)}function de(e){return q[e]??e}function fe(){switch(i){case`select-action`:return(0,P.jsx)(ie,{stage:e.stage,action:o,onSelectAction:c,closePopup:e.closePopup,pluralObjectName:L,onClickNext:()=>{if(f([]),y({}),o!==`stage`&&o!==`publish`){a(`action-details`);return}a(`confirmation`)}});case`action-details`:{let t;switch(o){case`priorities`:t=z;break;case`thumbnailQuality`:t=H;break;default:t=m[e.stage].forms[o].bulkActionDetailsComponent;break}return(0,P.jsx)(t,{onClickNext:(e,t,n,r)=>{f(e.filter(e=>!!e)),k(t),x(n),y(r),a(`confirmation`)},initialValues:l,onClickBack:()=>a(`select-action`),presentationId:e.presentationId,stage:e.stage,view:e.view})}case`confirmation`:return(0,P.jsx)(ae,{members:l,comment:b,groupedMembers:_,name:typeof _==`object`?``:K[o],pluralObjectName:L,onClickConfirm:V,onClickBack:()=>{if(o===`stage`||o===`publish`){a(`select-action`);return}a(`action-details`)},action:o,isLocalAction:D,stage:e.stage,getGroupedMemberName:de});case`running`:return D?(0,P.jsx)(E,{totalItems:t.ownerIdMap.size,totalItemsComplete:S,actionName:`Bulk update`,actionVerb:`Update`}):(0,P.jsx)(G,{name:K[o],jobId:w,onCompleted:Q});case`complete`:return D?(0,P.jsx)(U,{onClickFinish:R,action:o,count:M.current,pluralObjectName:L,stage:e.stage}):(0,P.jsx)(W,{name:K[o],jobId:w,customerId:r.data?.id,onClickFinish:R,actionSucceededMessage:`Successfully added all ${A.length} ${L} to the selected ${K[o]}`})}}let pe=i===`running`||i===`complete`,$=ue(i,o);return(0,P.jsx)(h,{subStage:e.stage,pipelineId:e.pipelineId,children:(0,P.jsx)(ee,{title:`Bulk Action`,closePopup:e.closePopup,closeButton:!pe,size:$,dialogClassName:$===`lg`?`bulk-action-modal`:`bulk-action-modal-wide`,backdrop:`static`,children:j?(0,P.jsxs)(`div`,{className:`text-center p-5`,children:[(0,P.jsx)(g,{as:`div`,animation:`border`,role:`status`}),(0,P.jsxs)(`div`,{children:[`Loading `,L,`: `,A.length,` / `,t.ownerIdMap.size]})]}):fe()})})}export{Q as AssemblyLineWizardView};
2
- //# sourceMappingURL=BOGS-BOS.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}from"./Crs6pJ2h.chunk.js";import{t as a}from"./Di_u2uix.chunk.js";import{t as o}from"./BvMTtGLi.chunk.js";import"./CfCYHRuo.chunk.js";import{t as s}from"./UCDGupVs.chunk.js";import{$ as c,B as l,G as u,W as d,Y as f,b as p,t as m,tt as h}from"./DWHKdmdQ.chunk.js";import{t as ee}from"./D-JsEiDq2.chunk.js";import{n as g}from"./CbiGs3Tn.chunk.js";import{r as _,s as v,u as te}from"./Dgk5cBBe.chunk.js";import{t as y}from"./Bw7dP6jB.chunk.js";import{t as b}from"./DpqbC5uX.chunk.js";import"./Oh4_zGIH.chunk.js";import{t as x}from"./CVHQXNzi.chunk.js";import{t as S}from"./D_O97jwq.chunk.js";import{t as ne}from"./DkLlaBp-.chunk.js";import{t as C}from"./D0JviwKV2.chunk.js";import{t as re}from"./CGACfSBR.chunk.js";import{t as w}from"./2NdfwDHB.chunk.js";import{t as T}from"./C8hLOeBc2.chunk.js";import{n as E,t as D}from"./DIFBEfuJ2.chunk.js";import{t as O}from"./DOqkOvWG2.chunk.js";import{t as k}from"./XcBcKeKH2.chunk.js";import{t as A}from"./BCDw1Rw-2.chunk.js";import{n as j,t as M}from"./CZU8Ycam2.chunk.js";var N=n(e()),P=t();function ie(e){let{owners:t}=p();return(0,P.jsxs)(`div`,{children:[(0,P.jsxs)(`p`,{children:[`Choose which action you'd like to take on the selected `,t.length,` `,e.pluralObjectName,`.`]}),(0,P.jsx)(k,{options:d.getBulkActionOptions(e.stage,t,e.pluralObjectName),setOption:e.onSelectAction,selectedAction:e.action}),(0,P.jsxs)(C,{className:`bulk-action-modal-buttons`,children:[(0,P.jsx)(C.Cancel,{onClick:e.closePopup}),(0,P.jsx)(C.Submit,{onClick:e.onClickNext,text:`Next`,variant:`dark`,disabled:!e.action})]})]})}var F={idColumn:`_idColumn_1xejz_1`},I=45;function L(e){let t=N.useRef(null),{owners:n,ownerType:s,removeOwner:l}=p();return(0,P.jsx)(`div`,{className:`border rounded mb-3`,children:(0,P.jsx)(A,{items:n,rowHeight:I,containerHeight:I*11,ref:t,staticComponentAboveRows:(0,P.jsxs)(P.Fragment,{children:[(0,P.jsxs)(`div`,{children:[(0,P.jsxs)(`div`,{className:`ps-3 d-flex align-items-center`,style:{height:`${I}px`},children:[`The above changes will be applied to the selected `,n.length,` `,e.pluralObjectName,`:`]}),(0,P.jsxs)(`div`,{className:`fw-semibold px-3 pt-1 pb-2`,children:[(0,P.jsx)(`div`,{className:`d-inline-block ${F.idColumn}`,children:`ID`}),(0,P.jsx)(`div`,{className:`d-inline-block`,children:`Title`})]})]}),(0,P.jsx)(`li`,{className:`d-none`})]}),getComponent:e=>{let t=s===`video`?{application:o.VIDEOS,action:a.Videos.EDIT_VIDEO,args:[e.id]}:{application:o.SUBJECTS,action:a.Subjects.EDIT_CLASSIFICATION,args:[e.id,e.presentationId]};return(0,P.jsxs)(`li`,{style:{height:`${I}px`},className:`mb-0 py-2 px-3 d-flex align-items-center`,children:[(0,P.jsx)(`div`,{className:`${F.idColumn}`,children:(0,P.jsx)(c,{actions:[`new-window`,`copy`],data:e.id,appLink:t,openInNewTab:!0})}),(0,P.jsx)(`div`,{className:`me-auto`,children:e.name}),(0,P.jsx)(r,{onClick:()=>l(e.id),className:`me-1`,children:(0,P.jsx)(i,{svg:w})})]},e.id)}})})}function ae(e){function t(){return e.comment?e.comment.bypassCategory===`Other`?`Reason: ${e.comment.bypassReason}`:`Reason: ${e.comment.bypassCategory}`:``}function n(){if(e.action===`thumbnailQuality`){let t=e.members?.[0];return(0,P.jsxs)(P.Fragment,{children:[`Set to\xA0`,(0,P.jsx)(`strong`,{children:d.mapThumbnailQualityToLabel(t)}),` thumbnail quality.`]})}if(e.action===`priorities`){let t=e.members?.[0],n=t===`None`?null:+t;return(0,P.jsxs)(P.Fragment,{children:[`Set to\xA0`,(0,P.jsx)(`strong`,{children:d.getPriorityLabel(n)}),` priority.`]})}if(e.action===`reviewer`){if(!e.members.length)return(0,P.jsx)(P.Fragment,{children:`Clear the reviewers on the selected items.`});let t=S.getFullName(e.members[0]),n=S.getFullName(e.members[1]);return(0,P.jsxs)(P.Fragment,{children:[`Assign `,(0,P.jsx)(`strong`,{children:t}),` and `,(0,P.jsx)(`strong`,{children:n}),` to review the thumbnails for the selected videos.`]})}if(e.action===`stage`)return(0,P.jsxs)(P.Fragment,{children:[`Move to the\xA0`,(0,P.jsx)(`strong`,{children:d.formatStageName(d.getNextStage(e.stage))}),` stage.`]});if(e.action===`publish`)return(0,P.jsx)(P.Fragment,{children:`Publish videos.`});if(e.action===`assignedTo`){if(!e.members.length)return(0,P.jsx)(P.Fragment,{children:`Unassign all of the selected items.`});let t=e.members[0];return(0,P.jsxs)(P.Fragment,{children:[`Assign `,(0,P.jsx)(`strong`,{children:S.getFullName(t)}),` to the selected items.`]})}if(e.action===`series`)return(0,P.jsx)(P.Fragment,{children:`Remove the association with series.`});if(e.action===`subtitles`)return(0,P.jsxs)(P.Fragment,{children:[`No longer requires subtitles. `,t()]});if(e.action===`skipCurriculum`)return(0,P.jsx)(P.Fragment,{children:`No longer requires curriculum.`});if(e.action===`hasCurriculum`)return(0,P.jsx)(P.Fragment,{children:`Already have curriculum.`});if(e.action===`pointsOfInterest`)return(0,P.jsxs)(P.Fragment,{children:[`No longer requires points of interests. `,t()]});if(e.action===`resources`)return(0,P.jsxs)(P.Fragment,{children:[`No longer requires resources or interactives. `,t()]});if(J.includes(e.action)){let n=t();return(0,P.jsx)(P.Fragment,{children:`Remove the association with ${e.name}. ${n}`})}}return(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`p`,{children:`Changes to be made:`}),(0,P.jsx)(`div`,{className:`p-2 border rounded mb-3`,children:e.isLocalAction?n():(0,P.jsxs)(P.Fragment,{children:[(0,P.jsxs)(`p`,{className:`fw-semibold mb-2`,children:[`Add the following `,e.name,`:`]}),!e.groupedMembers&&(0,P.jsx)(`ul`,{className:`mb-1`,children:e.members.map(e=>(0,P.jsx)(`li`,{children:e.name},e.id??e.name))}),e.groupedMembers&&Object.keys(e.groupedMembers).map(t=>Object.keys(e.groupedMembers[t]).length===0?null:(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`p`,{className:`fw-semibold mb-1`,children:e.getGroupedMemberName?.(t)??t}),(0,P.jsx)(`ul`,{className:`mb-2`,children:e.groupedMembers[t].map(e=>(0,P.jsx)(`li`,{children:e.name},e.id))})]},t))]})}),(0,P.jsx)(L,{pluralObjectName:e.pluralObjectName}),(0,P.jsxs)(C,{className:`bulk-action-modal-buttons`,children:[(0,P.jsx)(C.Cancel,{onClick:e.onClickBack,text:`Back`}),(0,P.jsx)(C.Submit,{onClick:e.onClickConfirm,text:`Confirm`,variant:`dark`})]})]})}var R=`None`;function z(e){let[t,n]=N.useState(R);function r(e){let t=e.target.value===`None`?`None`:+e.target.value;n(t)}return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(`p`,{children:`Select a priority level for the selected items:`}),(0,P.jsx)(`div`,{className:`form-group assembly-line-form`,children:(0,P.jsx)(`select`,{id:`priority`,className:`form-control`,onChange:r,value:t,children:l.map(e=>(0,P.jsx)(`option`,{value:e,children:d.getPriorityLabel(e)},e))})}),(0,P.jsxs)(C,{className:`bulk-action-modal-buttons`,children:[(0,P.jsx)(C.Cancel,{onClick:e.onClickBack,text:`Back`}),(0,P.jsx)(C.Submit,{onClick:()=>{e.onClickNext([t],!0)},text:`Next`,variant:`dark`})]})]})}var B=[f.High,f.Low],V=`None`;function H(e){let[t,n]=N.useState(V);function r(e){let t=e.target.value;n(t)}return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(`p`,{children:`Select a quality for the selected thumbnails:`}),(0,P.jsx)(`div`,{className:`form-group assembly-line-form`,children:(0,P.jsxs)(`select`,{id:`quality`,className:`form-control cursor-pointer ${t?``:`text-danger`}`,onChange:r,value:t,children:[(0,P.jsx)(`option`,{value:V,disabled:!0,hidden:!0,children:`None`}),B.map(e=>(0,P.jsx)(`option`,{value:e,children:d.mapThumbnailQualityToLabel(e)},e))]})}),(0,P.jsxs)(C,{className:`bulk-action-modal-buttons`,children:[(0,P.jsx)(C.Cancel,{onClick:e.onClickBack,text:`Back`}),(0,P.jsx)(C.Submit,{onClick:()=>{e.onClickNext([t],!0)},disabled:t===V,text:`Next`,variant:`dark`})]})]})}function U(e){function t(){return e.action===`thumbnailQuality`?`Successfully updated thumbnail quality for ${e.count} ${e.pluralObjectName}.`:e.action===`priorities`?`Successfully updated priorities for ${e.count} ${e.pluralObjectName}.`:e.action===`stage`?`Successfully moved all ${e.count} ${e.pluralObjectName} to the ${d.formatStageName(d.getNextStage(e.stage))} stage.`:e.action===`publish`?`Successfully published all ${e.count} ${e.pluralObjectName}.`:e.action===`series`?`Successfully removed series association for ${e.count} ${e.pluralObjectName}.`:e.action===`subtitles`?`Subtitles are now no longer required for ${e.count} ${e.pluralObjectName}`:e.action===`resources`?`Resources are now no longer required for ${e.count} ${e.pluralObjectName}`:e.action===`assignedTo`?`Successfully updated assignees for ${e.count} ${e.pluralObjectName}.`:e.action===`reviewer`?`Successfully updated reviewers for ${e.count} ${e.pluralObjectName}`:e.action===`skipCurriculum`?`Successfully skipped curriculum for ${e.count} ${e.pluralObjectName}`:J.includes(e.action)?`Successfully removed ${K[e.action]} association for ${e.count} ${e.pluralObjectName}.`:``}return(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`div`,{className:`mb-4`,children:(0,P.jsx)(j,{message:t(),successImageUrl:T.Wizard.WIZARD_SUCCESS})}),(0,P.jsx)(C,{className:`bulk-props.action-modal-buttons`,children:(0,P.jsx)(C.Submit,{onClick:e.onClickFinish,text:`Finish`,variant:`dark`})})]})}function W(e){let t=v(O.getJob(e.jobId)),n=v(O.getJobSummary(e.jobId)),r=!!t.data&&!!n.data,{owners:i}=p();return r?(0,P.jsxs)(`div`,{children:[(0,P.jsx)(`div`,{className:`mb-4`,children:(0,P.jsx)(M,{job:t.data,objectCount:i.length,objectType:x.Video,summary:n.data,imageCdnUrl:ClickView.Config.Urls.ImageAPI,successImageUrl:T.Wizard.WIZARD_SUCCESS,failedImageUrl:T.Wizard.WIZARD_ERROR,getResultsRequest:O.getJobResults,actionSucceededMessage:e.actionSucceededMessage,actionVerb:`Add`,preventLoggingAnalytics:!0})}),(0,P.jsx)(C,{className:`bulk-action-modal-buttons`,children:(0,P.jsx)(C.Submit,{onClick:e.onClickFinish,text:`Finish`,variant:`dark`})})]}):(0,P.jsx)(P.Fragment,{})}function G(e){let t=y();function n(n,r){_(t,O.getJobProgress(e.jobId,n,r))}return e.jobId?(0,P.jsx)(`div`,{children:(0,P.jsx)(`div`,{className:`mb-4`,children:(0,P.jsx)(D,{jobId:e.jobId,pollJob:n,onStatusCompleted:e.onCompleted,actionName:`Bulk update`,actionVerb:`Update`})})}):(0,P.jsx)(`div`,{className:`text-center`,children:(0,P.jsx)(g,{as:`div`,animation:`border`,role:`status`})})}var K={producers:`producer(s)`,productionCompanies:`production company(s)`,directors:`director(s)`,distributors:`distributor(s)`,backboneAudiences:`backbone audience(s)`,backboneClassifications:`backbone subject(s)`,libraries:`library(s)`,series:`series`,classifications:`classification(s)`,audiences:`audience(s)`,curationTags:`curation tag(s)`,skillTags:`skill tag(s)`,pedagogyTags:`pedagogy tag(s)`,normalTags:`keyword tag(s)`,hiddenTags:`search tag(s)`,resources:`resource(s)`,subtitles:`subtitle(s)`,assignedTo:`assignee`,reviewer:`reviewer`,productionYear:`production year`,aliases:`aliases`,partnerProfiles:`channel(s)`},q={partnerProfiles:`Channel(s)`,productionCompanies:`Production company(s)`,directors:`Director(s)`,distributors:`Distributor(s)`,producers:`Producer(s)`},J=[`pedagogyTags`,`skillTags`,`curationTags`,`series`,`subtitles`,`resources`,`producers`,`productionCompanies`,`directors`,`distributors`,`pointsOfInterest`],Y=25;function X(e){return b.chunk(e,Y)}function oe(e,t){switch(e){case`video`:return m[t].moveToLatestStage?u.moveVideoToFurthestStage:t===`review_video`?u.publishVideo:u.updateVideoStage;case`topic`:return u.updateTopicStage;case`dashboard`:return u.updateDashboardStage}}function se(e){switch(e){case`video`:return u.updateVideoPriority;case`topic`:return u.updateTopicPriority;case`dashboard`:return u.updateDashboardPriority}}function ce(e){return{pedagogyTags:`hasPedagogyTags`,curationTags:`hasCurationTags`,skillTags:`hasSkillTags`,series:`isInSeries`,subtitles:`doesNotRequireCaptions`,resources:`doesNotRequireResource`,producers:`hasProducers`,productionCompanies:`hasProductionCompanies`,directors:`hasDirectors`,distributors:`hasDistributors`,pointsOfInterest:`hasPointsOfInterest`}[e]}function Z(e){return{pedagogyTags:`bypassPedagogyTags`,skillTags:`bypassSkillTags`,subtitles:`bypassSubtitles`,resources:`bypassResources`,pointsOfInterest:`bypassPointsOfInterest`,skipCurriculum:`bypassCurriculum`}[e]}function le(e){return{hasPedagogyTags:!1,hasCurationTags:!1,hasSkillTags:!1,isInSeries:!1,doesNotRequireCaptions:!0,doesNotRequireResource:!0,hasProducers:!1,hasProductionCompanies:!1,hasDirectors:!1,hasDistributors:!1,hasPointsOfInterest:!1}[e]}function ue(e,t){return e===`action-details`&&t===`resources`?`xl`:`lg`}function Q(e){let[t]=ne(re.ASSEMBLY_LINE),n=te(),r=v(s.currentUser()),[i,a]=N.useState(`select-action`),[o,c]=N.useState(),[l,f]=N.useState(),[_,y]=N.useState(),[b,x]=N.useState(),[S,C]=N.useState(0),[w,T]=N.useState(``),[D,k]=N.useState(!1);N.useEffect(()=>{(o===`stage`||o===`publish`||o===`priorities`)&&k(!0)},[o]);let{owners:A,isFetching:j}=p(),M=N.useRef(A.length);N.useEffect(()=>{A.length&&(M.current=A.length)},[A.length]);let F=d.useCreateJobErrorAlert(),I=d.useOnCompleteBulkAction(),L=d.getPluralObjectName(t.ownerType);function R(){let n=new Map(t.ownerIdMap);t.removedIds.forEach(e=>{n.delete(e.toString())}),I(e.stage,n,l,o),e.closePopup()}N.useEffect(()=>{i===`complete`&&(o===`stage`||o===`publish`)&&t.resetSelection()},[i]);function B(){if(o===`stage`||o===`publish`){let n=oe(t.ownerType,e.stage);return X(A).map(t=>n(t.map(e=>e.id),e.stage,d.getNextStage(e.stage)))}if(o===`priorities`){let n=se(t.ownerType),r=l?.[0],i=r===`None`?null:+r;return X(A).map(t=>n(t.map(e=>e.id),i,e.stage,e.presentationId,e.queryParams.sort))}if(o===`thumbnailQuality`){let e=l?.[0],t=u.updateThumbnailQuality;return X(A).map(n=>t(n,e))}if(J.includes(o)){let e=ce(o),t=Z(o),n=le(e),r=[],i=X(A);for(let a of i)r.push(u.updateFlags(a,e,n)),b&&r.push(u.addComment(a,t,b.bypassCategory,b.bypassReason));return r}if(o===`assignedTo`){let n=d.getAssigneeActionRequest(t.ownerType);return X(A).map(t=>n(t.map(e=>e.id).sort(),d.getSyncedAssigneeStages(e.stage),l[0]?.id??null))}if(o===`reviewer`){function e(){return l.length?l.map(e=>({reviewerId:e.id,approved:!1})):[{reviewerId:null,approved:!1},{reviewerId:null,approved:!1}]}return X(A).map(t=>u.updateReviewer(t,e()))}if(o===`bypassUnusedStage`)return X(A).map(e=>u.addComment(e,`bypassUnusedStage`,b.bypassCategory,b.bypassReason));if(o===`skipCurriculum`){let e=l[0].value,t=Z(o),n=[],r=X(A);for(let i of r)n.push(u.skipVideoCurriculum(i,e)),b&&n.push(u.addComment(i,t,b.bypassCategory,b.bypassReason));return n}if(o===`hasCurriculum`){let e=l[0].value;return X(A).map(t=>u.updateHasCurriculum(t,e))}}async function V(){if(a(`running`),D){let e=B(),t=Z(o);for(let r=0;r<e.length;r++)await n(e[r]),t&&(r++,await n(e[r])),C(e=>e+Y);a(`complete`);return}let e=Array.from(t.ownerIdMap.keys()).filter(e=>!t.removedIds.includes(e.toString())),i=d.getCreateJobRequestData(e,l,o,r.data?.customerId);n(O.createJob(i)).then(e=>T(e.id)).catch(F)}function Q(){let e=[`producers`,`productionCompanies`,`directors`,`distributors`],i=(_?.partnerProfiles??[]).map(e=>e.id);if(!(e.includes(o)&&i.length>0)){a(`complete`);return}let s=Array.from(t.ownerIdMap.keys()).filter(e=>!t.removedIds.includes(e.toString())),l=d.getCreatePartnerProfilesJobRequestData(s,i,r.data?.customerId);n(O.createJob(l)).then(e=>{T(e.id),c(`partnerProfiles`)}).catch(F)}function de(e){return q[e]??e}function fe(){switch(i){case`select-action`:return(0,P.jsx)(ie,{stage:e.stage,action:o,onSelectAction:c,closePopup:e.closePopup,pluralObjectName:L,onClickNext:()=>{if(f([]),y({}),o!==`stage`&&o!==`publish`){a(`action-details`);return}a(`confirmation`)}});case`action-details`:{let t;switch(o){case`priorities`:t=z;break;case`thumbnailQuality`:t=H;break;default:t=m[e.stage].forms[o].bulkActionDetailsComponent;break}return(0,P.jsx)(t,{onClickNext:(e,t,n,r)=>{f(e.filter(e=>!!e)),k(t),x(n),y(r),a(`confirmation`)},initialValues:l,onClickBack:()=>a(`select-action`),presentationId:e.presentationId,stage:e.stage,view:e.view})}case`confirmation`:return(0,P.jsx)(ae,{members:l,comment:b,groupedMembers:_,name:typeof _==`object`?``:K[o],pluralObjectName:L,onClickConfirm:V,onClickBack:()=>{if(o===`stage`||o===`publish`){a(`select-action`);return}a(`action-details`)},action:o,isLocalAction:D,stage:e.stage,getGroupedMemberName:de});case`running`:return D?(0,P.jsx)(E,{totalItems:t.ownerIdMap.size,totalItemsComplete:S,actionName:`Bulk update`,actionVerb:`Update`}):(0,P.jsx)(G,{name:K[o],jobId:w,onCompleted:Q});case`complete`:return D?(0,P.jsx)(U,{onClickFinish:R,action:o,count:M.current,pluralObjectName:L,stage:e.stage}):(0,P.jsx)(W,{name:K[o],jobId:w,customerId:r.data?.id,onClickFinish:R,actionSucceededMessage:`Successfully added all ${A.length} ${L} to the selected ${K[o]}`})}}let pe=i===`running`||i===`complete`,$=ue(i,o);return(0,P.jsx)(h,{subStage:e.stage,pipelineId:e.pipelineId,children:(0,P.jsx)(ee,{title:`Bulk Action`,closePopup:e.closePopup,closeButton:!pe,size:$,dialogClassName:$===`lg`?`bulk-action-modal`:`bulk-action-modal-wide`,backdrop:`static`,children:j?(0,P.jsxs)(`div`,{className:`text-center p-5`,children:[(0,P.jsx)(g,{as:`div`,animation:`border`,role:`status`}),(0,P.jsxs)(`div`,{children:[`Loading `,L,`: `,A.length,` / `,t.ownerIdMap.size]})]}):fe()})})}export{Q as AssemblyLineWizardView};
2
+ //# sourceMappingURL=Eg4zYYCO.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BOGS-BOS.chunk.js","names":[],"sources":["../../../../../src/apps/assembly-line/components/bulk-actions/select-action/AssemblyLineSelectBulkAction.tsx","../../../../../src/apps/assembly-line/views/wizard/confirmation-video-list/bulk-confirmation-video-list.module.scss","../../../../../src/apps/assembly-line/views/wizard/confirmation-video-list/BulkConfirmationOwnerList.tsx","../../../../../src/apps/assembly-line/views/wizard/confirmation-view/AssemblyLineBulkConfirmationView.tsx","../../../../../src/apps/assembly-line/views/wizard/fields/priority/PriorityBulkActionDetailsView.tsx","../../../../../src/apps/assembly-line/views/wizard/fields/thumbnail-quality/ThumbnailQualityBulkActionDetailsView.tsx","../../../../../src/apps/assembly-line/views/wizard/status/succeeded/AssemblyLineBulkSucceededView.tsx","../../../../../src/apps/assembly-line/views/wizard/status/completed/AssemblyLineBulkCompletedView.tsx","../../../../../src/apps/assembly-line/views/wizard/status/polling/AssemblyLineBulkPollingView.tsx","../../../../../src/apps/assembly-line/views/wizard/AssemblyLineWizardView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { WizardOptions } from 'libs/shared/components/wizard/options/WizardOptions';\nimport { PopupViewProps } from 'libs/shared/interfaces';\n\nimport { useAssemblyLineSelections } from 'apps/assembly-line/hooks/useAssemblyLineSelections';\nimport { AssemblyLineStage } from 'apps/assembly-line/interfaces/AssemblyLineStage';\nimport { AssemblyLineHelper } from 'apps/assembly-line/utils/AssemblyLineHelper';\n\ninterface AssemblyLineSelectBulkActionProps extends PopupViewProps {\n stage: AssemblyLineStage;\n action: string;\n onSelectAction: (action: string) => void;\n onClickNext: () => void;\n pluralObjectName: string;\n}\n\nexport function AssemblyLineSelectBulkAction(props: AssemblyLineSelectBulkActionProps): JSX.Element {\n const { owners } = useAssemblyLineSelections();\n\n return (\n <div>\n <p>\n Choose which action you'd like to take on the selected {owners.length} {props.pluralObjectName}.\n </p>\n\n <WizardOptions\n options={AssemblyLineHelper.getBulkActionOptions(\n props.stage,\n owners,\n props.pluralObjectName\n )}\n setOption={props.onSelectAction}\n selectedAction={props.action}\n />\n\n <PopupButtons className='bulk-action-modal-buttons'>\n <PopupButtons.Cancel onClick={props.closePopup} />\n <PopupButtons.Submit\n onClick={props.onClickNext}\n text='Next'\n variant='dark'\n disabled={!props.action}\n />\n </PopupButtons>\n </div>\n );\n}\n",":local {\n .idColumn {\n width: 10rem;\n }\n}","import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { WindowedList } from 'libs/shared/components/windowed-list/WindowedList';\nimport { DeleteSvg } from 'libs/shared/images/svg/actions/DeleteSvg';\n\nimport { Actions, AppChannels } from 'shared/constants';\n\nimport { AssemblyLineActionsCell } from 'apps/assembly-line/components/table/cells/actions/AssemblyLineActionsCell';\nimport { useAssemblyLineSelections } from 'apps/assembly-line/hooks/useAssemblyLineSelections';\nimport { AssemblyLineTopic } from 'apps/assembly-line/interfaces/AssemblyLineTopic';\n\nimport styles from './bulk-confirmation-video-list.module.scss';\n\nconst ROW_HEIGHT = 45; // px\n\ninterface BulkConfirmationOwnerListProps {\n pluralObjectName: string;\n}\n\nexport function BulkConfirmationOwnerList(props: BulkConfirmationOwnerListProps): JSX.Element {\n const ref = React.useRef<any>(null);\n const { owners, ownerType, removeOwner } = useAssemblyLineSelections();\n\n return (\n <div className='border rounded mb-3'>\n <WindowedList\n items={owners}\n rowHeight={ROW_HEIGHT}\n containerHeight={ROW_HEIGHT * 11}\n ref={ref}\n staticComponentAboveRows={(\n <>\n <div>\n <div className='ps-3 d-flex align-items-center' style={{ height: `${ROW_HEIGHT}px` }}>\n The above changes will be applied to the selected {owners.length} {props.pluralObjectName}:\n </div>\n\n <div className='fw-semibold px-3 pt-1 pb-2'>\n <div className={`d-inline-block ${styles.idColumn}`}>ID</div>\n <div className='d-inline-block'>Title</div>\n </div>\n </div>\n <li className='d-none' />\n </>\n )}\n getComponent={owner => {\n const appLink = ownerType === 'video' ? {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.EDIT_VIDEO,\n args: [owner.id]\n } : {\n application: AppChannels.SUBJECTS,\n action: Actions.Subjects.EDIT_CLASSIFICATION,\n args: [ owner.id, (owner as AssemblyLineTopic).presentationId ]\n };\n\n return (\n <li\n style={{ height: `${ROW_HEIGHT}px` }}\n className='mb-0 py-2 px-3 d-flex align-items-center'\n key={owner.id}\n >\n <div className={`${styles.idColumn}`}>\n <AssemblyLineActionsCell\n actions={[ 'new-window', 'copy' ]}\n data={owner.id}\n appLink={appLink}\n openInNewTab\n />\n </div>\n\n <div className='me-auto'>{owner.name}</div>\n\n <DivButton onClick={() => removeOwner(owner.id)} className='me-1'>\n <SvgContainer svg={DeleteSvg} />\n </DivButton>\n </li>\n );\n }}\n />\n </div>\n );\n}\n","import React from 'react';\n\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { BaseObject, User } from 'libs/shared/interfaces';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport { AssemblyLineStage } from 'apps/assembly-line/interfaces/AssemblyLineStage';\nimport { ThumbnailQuality } from 'apps/assembly-line/interfaces/AssemblyLineThumbnailQuality';\nimport { CommentFormData } from 'apps/assembly-line/interfaces/primitives/CommentFormData';\nimport { AssemblyLineHelper } from 'apps/assembly-line/utils/AssemblyLineHelper';\nimport { VIDEO_FLAG_ACTIONS } from 'apps/assembly-line/views/wizard/AssemblyLineWizardView';\nimport { BulkConfirmationOwnerList } from 'apps/assembly-line/views/wizard/confirmation-video-list/BulkConfirmationOwnerList';\n\ninterface AssemblyLineBulkConfirmationProps {\n name: string;\n pluralObjectName: string;\n members: BaseObject[];\n comment: CommentFormData;\n groupedMembers: Record<string, BaseObject[]>;\n onClickConfirm: () => void;\n onClickBack: () => void;\n isLocalAction: boolean;\n action: string;\n stage: AssemblyLineStage;\n getGroupedMemberName?: (member: string) => string;\n}\n\nexport function AssemblyLineBulkConfirmationView(props: AssemblyLineBulkConfirmationProps): JSX.Element {\n function getReason(): string {\n if (!props.comment)\n return '';\n\n if (props.comment.bypassCategory === 'Other')\n return `Reason: ${props.comment.bypassReason}`;\n\n return `Reason: ${props.comment.bypassCategory}`;\n }\n\n function getLocalActionChangeInfo(): JSX.Element {\n if (props.action === 'thumbnailQuality') {\n const quality = props.members?.[0] as unknown as ThumbnailQuality;\n return (\n <>\n Set to&nbsp;<strong>{AssemblyLineHelper.mapThumbnailQualityToLabel(quality)}</strong> thumbnail quality.\n </>\n );\n }\n\n if (props.action === 'priorities') {\n const rawValue = props.members?.[0] as string | number;\n const priority = rawValue === 'None' ? null : +rawValue;\n return (\n <>\n Set to&nbsp;<strong>{AssemblyLineHelper.getPriorityLabel(priority as number | null)}</strong> priority.\n </>\n );\n }\n\n if (props.action === 'reviewer') {\n if (!props.members.length)\n return <>Clear the reviewers on the selected items.</>;\n\n const reviewer1 = UserHelper.getFullName(props.members[0] as User);\n const reviewer2 = UserHelper.getFullName(props.members[1] as User);\n return (\n <>\n Assign <strong>{reviewer1}</strong> and <strong>{reviewer2}</strong> to review the\n thumbnails for the selected videos.\n </>\n );\n }\n\n if (props.action === 'stage')\n return (\n <>\n Move to the&nbsp;\n <strong>{AssemblyLineHelper.formatStageName(AssemblyLineHelper.getNextStage(props.stage))}</strong> stage.\n </>\n );\n\n if (props.action === 'publish')\n return (\n <>Publish videos.</>\n );\n\n if (props.action === 'assignedTo') {\n if (!props.members.length)\n return <>Unassign all of the selected items.</>;\n\n const assignee = (props.members[0] as User);\n return <>Assign <strong>{UserHelper.getFullName(assignee)}</strong> to the selected items.</>;\n }\n \n if (props.action === 'series')\n return <>Remove the association with series.</>;\n\n if (props.action === 'subtitles') {\n return (\n <>No longer requires subtitles. {getReason()}</>\n );\n }\n\n if (props.action === 'skipCurriculum') {\n return (\n <>No longer requires curriculum.</>\n );\n }\n\n if (props.action === 'hasCurriculum') {\n return (\n <>Already have curriculum.</>\n );\n }\n\n if (props.action === 'pointsOfInterest') {\n return (\n <>No longer requires points of interests. {getReason()}</>\n );\n }\n\n if (props.action === 'resources') {\n return (\n <>No longer requires resources or interactives. {getReason()}</>\n );\n }\n\n if (VIDEO_FLAG_ACTIONS.includes(props.action)) {\n const reason = getReason();\n return <>{`Remove the association with ${props.name}. ${reason}`}</>;\n }\n }\n\n return (\n <div>\n <p>Changes to be made:</p>\n\n <div className='p-2 border rounded mb-3'>\n {!props.isLocalAction ? (\n <>\n <p className='fw-semibold mb-2'>Add the following {props.name}:</p>\n\n {!props.groupedMembers && (\n <ul className='mb-1'>\n {(props.members as BaseObject[]).map(member => {\n return (\n <li key={member.id ?? member.name}>\n {member.name}\n </li>\n );\n })}\n </ul>\n )}\n\n {props.groupedMembers && Object.keys(props.groupedMembers).map(presentation => {\n if (Object.keys(props.groupedMembers[presentation]).length === 0)\n return null;\n \n return (\n <div key={presentation}>\n <p className='fw-semibold mb-1'>{props.getGroupedMemberName?.(presentation) ?? presentation}</p>\n <ul className='mb-2'>\n {props.groupedMembers[presentation].map(members => (\n <li key={members.id}>{members.name}</li>\n ))}\n </ul>\n </div>\n );\n })}\n </>\n ) : getLocalActionChangeInfo()}\n </div>\n\n <BulkConfirmationOwnerList pluralObjectName={props.pluralObjectName} />\n\n <PopupButtons className='bulk-action-modal-buttons'>\n <PopupButtons.Cancel onClick={props.onClickBack} text='Back' />\n <PopupButtons.Submit\n onClick={props.onClickConfirm}\n text='Confirm'\n variant='dark'\n />\n </PopupButtons>\n </div>\n );\n}\n","import React from 'react';\n\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\n\nimport { PRIORITIES_OPTIONS } from 'apps/assembly-line/components/table/cells/priority/AssemblyLinePriorityCell';\nimport { AssemblyLineBulkActionDetailsProps } from 'apps/assembly-line/interfaces/AssemblyLineBulkActionDetailsProps';\nimport { AssemblyLineHelper } from 'apps/assembly-line/utils/AssemblyLineHelper';\n\nconst DEFAULT_PRIORITY = 'None';\n\nexport function PriorityBulkActionDetailsView(\n props: AssemblyLineBulkActionDetailsProps<any>\n): JSX.Element {\n const [ priority, setPriority ] = React.useState<number | typeof DEFAULT_PRIORITY>(DEFAULT_PRIORITY);\n\n function onChange(e: React.ChangeEvent<HTMLSelectElement>) {\n const newPriority = e.target.value === 'None' ? 'None' : +e.target.value;\n setPriority(newPriority);\n }\n\n return (\n <>\n <p>Select a priority level for the selected items:</p>\n\n <div className='form-group assembly-line-form'>\n <select id='priority' className='form-control' onChange={onChange} value={priority}>\n {PRIORITIES_OPTIONS.map(priority => {\n return (\n <option\n key={priority}\n value={priority}\n >\n {AssemblyLineHelper.getPriorityLabel(priority)}\n </option>\n );\n })}\n </select>\n </div>\n\n <PopupButtons className='bulk-action-modal-buttons'>\n <PopupButtons.Cancel onClick={props.onClickBack} text='Back' />\n <PopupButtons.Submit\n onClick={() => {\n props.onClickNext([priority], true);\n }}\n text='Next'\n variant='dark'\n />\n </PopupButtons>\n </>\n );\n}\n","import React from 'react';\n\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\n\nimport { AssemblyLineBulkActionDetailsProps } from 'apps/assembly-line/interfaces/AssemblyLineBulkActionDetailsProps';\nimport { ThumbnailQuality } from 'apps/assembly-line/interfaces/AssemblyLineThumbnailQuality';\nimport { AssemblyLineHelper } from 'apps/assembly-line/utils/AssemblyLineHelper';\n\nexport const QUALITY_OPTIONS = [ ThumbnailQuality.High, ThumbnailQuality.Low ];\nconst DEFAULT_QUALITY = 'None';\n\nexport function ThumbnailQualityBulkActionDetailsView(\n props: AssemblyLineBulkActionDetailsProps<any>\n): JSX.Element {\n const [ quality, setQuality ] = React.useState<ThumbnailQuality | typeof DEFAULT_QUALITY>(DEFAULT_QUALITY);\n\n function onChange(e: React.ChangeEvent<HTMLSelectElement>) {\n const newQuality = e.target.value as ThumbnailQuality;\n setQuality(newQuality);\n }\n\n return (\n <>\n <p>Select a quality for the selected thumbnails:</p>\n <div className='form-group assembly-line-form'>\n <select\n id='quality'\n className={`form-control cursor-pointer ${!quality ? 'text-danger' : ''}`}\n onChange={onChange}\n value={quality}\n >\n <option value={DEFAULT_QUALITY} disabled hidden>None</option>\n {QUALITY_OPTIONS.map(quality => {\n return (\n <option\n key={quality}\n value={quality}\n >\n {AssemblyLineHelper.mapThumbnailQualityToLabel(quality)}\n </option>\n );\n })}\n </select>\n </div>\n <PopupButtons className='bulk-action-modal-buttons'>\n <PopupButtons.Cancel onClick={props.onClickBack} text='Back' />\n <PopupButtons.Submit\n onClick={() => {\n props.onClickNext([quality], true);\n }}\n disabled={quality === DEFAULT_QUALITY}\n text='Next'\n variant='dark'\n />\n </PopupButtons>\n </>\n );\n}\n","/**\n * Display the succeeded view for bulk props.action requests that are not passed to batch api\n */\nimport React from 'react';\n\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { WizardSucceeded } from 'libs/shared/components/wizard/status/statuses/succeeded/WizardSucceeded';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { AssemblyLineStage } from 'apps/assembly-line/interfaces/AssemblyLineStage';\nimport { AssemblyLineHelper } from 'apps/assembly-line/utils/AssemblyLineHelper';\nimport { ActionObjectNames, VIDEO_FLAG_ACTIONS } from 'apps/assembly-line/views/wizard/AssemblyLineWizardView';\n\ninterface AssemblyLineBulkSucceededProps {\n onClickFinish: () => void;\n action: string;\n pluralObjectName: string;\n stage: AssemblyLineStage;\n count: number;\n}\n\nexport function AssemblyLineBulkSucceededView(props: AssemblyLineBulkSucceededProps): JSX.Element {\n function getNoBatchApiSuccessMessage(): string {\n if (props.action === 'thumbnailQuality')\n return `Successfully updated thumbnail quality for ${props.count} ${props.pluralObjectName}.`;\n\n if (props.action === 'priorities')\n return `Successfully updated priorities for ${props.count} ${props.pluralObjectName}.`;\n\n if (props.action === 'stage')\n return `Successfully moved all ${props.count} ${props.pluralObjectName} to the ${AssemblyLineHelper.formatStageName(AssemblyLineHelper.getNextStage(props.stage))} stage.`;\n \n if (props.action === 'publish')\n return `Successfully published all ${props.count} ${props.pluralObjectName}.`;\n \n if (props.action === 'series')\n return `Successfully removed series association for ${props.count} ${props.pluralObjectName}.`;\n\n if (props.action === 'subtitles')\n return `Subtitles are now no longer required for ${props.count} ${props.pluralObjectName}`;\n\n if (props.action === 'resources')\n return `Resources are now no longer required for ${props.count} ${props.pluralObjectName}`;\n\n if (props.action === 'assignedTo')\n return `Successfully updated assignees for ${props.count} ${props.pluralObjectName}.`;\n\n if (props.action === 'reviewer')\n return `Successfully updated reviewers for ${props.count} ${props.pluralObjectName}`;\n \n if (props.action === 'skipCurriculum')\n return `Successfully skipped curriculum for ${props.count} ${props.pluralObjectName}`;\n \n if (VIDEO_FLAG_ACTIONS.includes(props.action))\n return `Successfully removed ${ActionObjectNames[props.action]} association for ${props.count} ${props.pluralObjectName}.`;\n\n return '';\n }\n\n return (\n <div>\n <div className='mb-4'>\n <WizardSucceeded\n message={getNoBatchApiSuccessMessage()}\n successImageUrl={ImageUrls.Wizard.WIZARD_SUCCESS}\n />\n </div>\n <PopupButtons className='bulk-props.action-modal-buttons'>\n <PopupButtons.Submit\n onClick={props.onClickFinish}\n text='Finish'\n variant='dark'\n />\n </PopupButtons>\n </div>\n );\n}\n","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { WizardCompleted } from 'libs/shared/components/wizard/status/completed/WizardCompleted';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { BatchJob, BatchJobSummary } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { JobRequests } from 'shared/flight-requests/JobRequests';\n\nimport { useAssemblyLineSelections } from 'apps/assembly-line/hooks/useAssemblyLineSelections';\n\ninterface AssemblyLineBulkCompletedProps {\n jobId: string;\n name: string;\n customerId: string;\n onClickFinish: () => void;\n actionSucceededMessage: string;\n}\n\nexport function AssemblyLineBulkCompletedView(props: AssemblyLineBulkCompletedProps): JSX.Element {\n const job = Flight.useBasicFetch<BatchJob>(JobRequests.getJob(props.jobId));\n const summary = Flight.useBasicFetch<BatchJobSummary>(JobRequests.getJobSummary(props.jobId));\n const dataLoaded = !!job.data && !!summary.data;\n\n const { owners } = useAssemblyLineSelections();\n\n if (!dataLoaded)\n return <></>;\n\n return (\n <div>\n <div className='mb-4'>\n <WizardCompleted\n job={job.data}\n objectCount={owners.length}\n objectType={MasterType.Video}\n summary={summary.data}\n imageCdnUrl={ClickView.Config.Urls.ImageAPI}\n successImageUrl={ImageUrls.Wizard.WIZARD_SUCCESS}\n failedImageUrl={ImageUrls.Wizard.WIZARD_ERROR}\n getResultsRequest={JobRequests.getJobResults}\n actionSucceededMessage={props.actionSucceededMessage}\n actionVerb='Add'\n preventLoggingAnalytics={true}\n />\n </div>\n <PopupButtons className='bulk-action-modal-buttons'>\n <PopupButtons.Submit\n onClick={props.onClickFinish}\n text='Finish'\n variant='dark'\n />\n </PopupButtons>\n </div>\n );\n}\n","import React from 'react';\nimport { Spinner } from 'react-bootstrap';\nimport { useDispatch } from 'react-redux';\n\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Flight } from 'libs/common/react/index';\n\nimport { WizardPolling } from 'libs/shared/components/wizard/status/polling/WizardPolling';\nimport { BatchJobProgress } from 'libs/shared/interfaces';\n\nimport { JobRequests } from 'shared/flight-requests/JobRequests';\n\ninterface AssemblyLineBulkPollingProps {\n name: string;\n jobId: string;\n onCompleted: () => void;\n}\n\nexport function AssemblyLineBulkPollingView(props: AssemblyLineBulkPollingProps): JSX.Element {\n const dispatch = useDispatch();\n\n function pollJob(onSuccess: (progress: BatchJobProgress) => void, onError: (xhr: Xhr) => void): void {\n Flight.fetch(dispatch, JobRequests.getJobProgress(props.jobId, onSuccess, onError));\n }\n\n if (!props.jobId)\n return (\n <div className='text-center'>\n <Spinner as='div' animation='border' role='status' />\n </div>\n );\n\n return (\n <div>\n <div className='mb-4'>\n <WizardPolling\n jobId={props.jobId}\n pollJob={pollJob}\n onStatusCompleted={props.onCompleted}\n actionName='Bulk update'\n actionVerb='Update'\n />\n </div>\n </div>\n );\n}\n","import React from 'react';\nimport { Spinner } from 'react-bootstrap';\n\nimport { Flight } from 'libs/common/flight';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { WizardInProgress } from 'libs/shared/components/wizard/status/statuses/in-progress/WizardInProgress';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { BaseObject, BatchJob, CurrentUser, PopupViewProps } from 'libs/shared/interfaces';\n\nimport { ViewModelKeys } from 'shared/constants/CuratorViewModels';\nimport { JobRequests } from 'shared/flight-requests/JobRequests';\n\nimport { AssemblyLineSelectBulkAction } from 'apps/assembly-line/components/bulk-actions/select-action/AssemblyLineSelectBulkAction';\nimport { AssemblyLineStageConfig } from 'apps/assembly-line/constants/AssemblyLineStageConfig';\nimport { AssemblyLineStageContext } from 'apps/assembly-line/contexts/AssemblyLineStageContext';\nimport { AssemblyLineRequests } from 'apps/assembly-line/flight-requests/AssemblyLineRequests';\nimport { useAssemblyLineSelections } from 'apps/assembly-line/hooks/useAssemblyLineSelections';\nimport { AssemblyLineBulkActionViewModel } from 'apps/assembly-line/interfaces/AssemblyLineBulkActionViewModel';\nimport { AssemblyLineCommentType } from 'apps/assembly-line/interfaces/AssemblyLineComments';\nimport { AssemblyLineObjectType } from 'apps/assembly-line/interfaces/AssemblyLineObjectType';\nimport { AssemblyLineQueryParams } from 'apps/assembly-line/interfaces/AssemblyLineQueryParams';\nimport { AssemblyLineStage } from 'apps/assembly-line/interfaces/AssemblyLineStage';\nimport { ThumbnailQuality } from 'apps/assembly-line/interfaces/AssemblyLineThumbnailQuality';\nimport { AssemblyLineVideo, AssemblyLineVideoFlags } from 'apps/assembly-line/interfaces/AssemblyLineVideo';\nimport { AssemblyLineView } from 'apps/assembly-line/interfaces/AssemblyLineView';\nimport { ContentPipelineId } from 'apps/assembly-line/interfaces/ContentPipelineId';\nimport { AssemblyLineObject } from 'apps/assembly-line/interfaces/primitives/AssemblyLineObject';\nimport { CommentFormData } from 'apps/assembly-line/interfaces/primitives/CommentFormData';\nimport { AssemblyLineHelper } from 'apps/assembly-line/utils/AssemblyLineHelper';\nimport { AssemblyLineBulkConfirmationView } from 'apps/assembly-line/views/wizard/confirmation-view/AssemblyLineBulkConfirmationView';\nimport { CurriculumBoolValue } from 'apps/assembly-line/views/wizard/fields/curriculum/HasCurriculumBulkActionDetailsView';\nimport { PriorityBulkActionDetailsView } from 'apps/assembly-line/views/wizard/fields/priority/PriorityBulkActionDetailsView';\nimport { ThumbnailQualityBulkActionDetailsView } from 'apps/assembly-line/views/wizard/fields/thumbnail-quality/ThumbnailQualityBulkActionDetailsView';\nimport { AssemblyLineBulkSucceededView } from 'apps/assembly-line/views/wizard/status/succeeded/AssemblyLineBulkSucceededView';\n\nimport { AssemblyLineBulkCompletedView } from './status/completed/AssemblyLineBulkCompletedView';\nimport { AssemblyLineBulkPollingView } from './status/polling/AssemblyLineBulkPollingView';\n\ntype WizardStage = 'select-action' | 'action-details' | 'confirmation' | 'running' | 'complete';\n\nexport const ActionObjectNames: HashObject = {\n producers: 'producer(s)',\n productionCompanies: 'production company(s)',\n directors: 'director(s)',\n distributors: 'distributor(s)',\n backboneAudiences: 'backbone audience(s)',\n backboneClassifications: 'backbone subject(s)',\n libraries: 'library(s)',\n series: 'series',\n classifications: 'classification(s)',\n audiences: 'audience(s)',\n curationTags: 'curation tag(s)',\n skillTags: 'skill tag(s)',\n pedagogyTags: 'pedagogy tag(s)',\n normalTags: 'keyword tag(s)',\n hiddenTags: 'search tag(s)',\n resources: 'resource(s)',\n subtitles: 'subtitle(s)',\n assignedTo: 'assignee',\n reviewer: 'reviewer',\n productionYear: 'production year',\n aliases: 'aliases',\n partnerProfiles: 'channel(s)'\n};\n\nconst GroupedMemberNames: HashObject = {\n partnerProfiles: 'Channel(s)',\n productionCompanies: 'Production company(s)',\n directors: 'Director(s)',\n distributors: 'Distributor(s)',\n producers: 'Producer(s)'\n};\n\nexport const VIDEO_FLAG_ACTIONS = [ 'pedagogyTags', 'skillTags', 'curationTags', 'series', 'subtitles', 'resources', 'producers', 'productionCompanies', 'directors', 'distributors', 'pointsOfInterest' ];\nconst LOCAL_ACTION_CHUNK_SIZE = 25;\n\ninterface AssemblyLineWizardViewProps extends PopupViewProps {\n stage: AssemblyLineStage;\n presentationId: string;\n queryParams: AssemblyLineQueryParams;\n pipelineId: ContentPipelineId;\n view: AssemblyLineView;\n}\n\nfunction chunkObjects(objects: AssemblyLineObject[]): AssemblyLineObject[][] {\n return ArrayHelper.chunk(objects, LOCAL_ACTION_CHUNK_SIZE);\n}\n\nfunction getStageActionRequest(ownerType: AssemblyLineObjectType, stage: AssemblyLineStage) {\n switch (ownerType) {\n case 'video': {\n if (AssemblyLineStageConfig[stage].moveToLatestStage)\n return AssemblyLineRequests.moveVideoToFurthestStage;\n\n if (stage === 'review_video')\n return AssemblyLineRequests.publishVideo;\n\n return AssemblyLineRequests.updateVideoStage;\n }\n case 'topic':\n return AssemblyLineRequests.updateTopicStage;\n case 'dashboard':\n return AssemblyLineRequests.updateDashboardStage;\n }\n}\n\nfunction getPrioritiesActionRequest(ownerType: AssemblyLineObjectType) {\n switch (ownerType) {\n case 'video':\n return AssemblyLineRequests.updateVideoPriority;\n case 'topic':\n return AssemblyLineRequests.updateTopicPriority;\n case 'dashboard':\n return AssemblyLineRequests.updateDashboardPriority;\n }\n}\n\nfunction mapActionToFlag(field: string): keyof AssemblyLineVideoFlags {\n return ({\n pedagogyTags: 'hasPedagogyTags',\n curationTags: 'hasCurationTags',\n skillTags: 'hasSkillTags',\n series: 'isInSeries',\n subtitles: 'doesNotRequireCaptions',\n resources: 'doesNotRequireResource',\n producers: 'hasProducers',\n productionCompanies: 'hasProductionCompanies',\n directors: 'hasDirectors',\n distributors: 'hasDistributors',\n pointsOfInterest: 'hasPointsOfInterest'\n } as Record<string, keyof AssemblyLineVideoFlags>)[field];\n}\n\nfunction mapActionToBypassCommentType(field: string): AssemblyLineCommentType {\n return ({\n pedagogyTags: 'bypassPedagogyTags',\n skillTags: 'bypassSkillTags',\n subtitles: 'bypassSubtitles',\n resources: 'bypassResources',\n pointsOfInterest: 'bypassPointsOfInterest',\n skipCurriculum: 'bypassCurriculum'\n } as Record<string, AssemblyLineCommentType>)[field];\n}\n\nfunction mapFlagToValue(flag: keyof AssemblyLineVideoFlags): boolean {\n return ({\n hasPedagogyTags: false,\n hasCurationTags: false,\n hasSkillTags: false,\n isInSeries: false,\n doesNotRequireCaptions: true,\n doesNotRequireResource: true,\n hasProducers: false,\n hasProductionCompanies: false,\n hasDirectors: false,\n hasDistributors: false,\n hasPointsOfInterest: false\n } as Record<keyof AssemblyLineVideoFlags, boolean>)[flag];\n}\n\nfunction getPopupSize(wizardStage: WizardStage, action: string) {\n // Returns 'xl' size when editing resources to accommodate the resource table width\n if (wizardStage === 'action-details' && action === 'resources') {\n return 'xl';\n }\n return 'lg';\n}\n\nexport function AssemblyLineWizardView(props: AssemblyLineWizardViewProps): JSX.Element {\n const [viewModel] = useViewModel<AssemblyLineBulkActionViewModel>(ViewModelKeys.ASSEMBLY_LINE);\n\n const fetchAsync = Flight.useGetFetchAsync();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const [ wizardStage, setWizardStage ] = React.useState<WizardStage>('select-action');\n const [ action, setAction ] = React.useState<string>();\n const [ members, setMembers ] = React.useState<BaseObject[]>();\n const [ groupedMembers, setGroupedMembers ] = React.useState<Record<string, BaseObject[]>>();\n const [ comment, setComment ] = React.useState<CommentFormData>();\n const [ totalComplete, setTotalComplete ] = React.useState<number>(0);\n const [ jobId, setJobId ] = React.useState<string>('');\n\n // local action refers the action that won't pass req to batch api\n const [ isLocalAction, setIsLocalAction ] = React.useState(false);\n\n React.useEffect(() => {\n if (action === 'stage' || action === 'publish' || action === 'priorities')\n setIsLocalAction(true);\n }, [action]);\n\n const { owners, isFetching } = useAssemblyLineSelections();\n // store the number of owners before we reset the selection\n const countRef = React.useRef(owners.length);\n React.useEffect(() => {\n if (owners.length)\n countRef.current = owners.length;\n }, [owners.length]);\n\n const onCreateJobError = AssemblyLineHelper.useCreateJobErrorAlert();\n const onComplete = AssemblyLineHelper.useOnCompleteBulkAction();\n\n const pluralObjectName = AssemblyLineHelper.getPluralObjectName(viewModel.ownerType);\n\n function onClickFinish(): void {\n const updatedIds = new Map(viewModel.ownerIdMap);\n\n viewModel.removedIds.forEach(id => {\n updatedIds.delete(id.toString());\n });\n\n onComplete(\n props.stage,\n updatedIds,\n members,\n action as keyof AssemblyLineVideo\n );\n\n props.closePopup();\n }\n\n React.useEffect(() => {\n // reset selection since all the selected items go to next stage\n if (wizardStage === 'complete' && (action === 'stage' || action === 'publish')) {\n viewModel.resetSelection();\n }\n }, [wizardStage]);\n\n function getLocalActionRequests(): Flight.Request[] {\n // Move to next stage\n if (action === 'stage' || action === 'publish') {\n const request = getStageActionRequest(viewModel.ownerType, props.stage);\n\n return chunkObjects(owners).map(ownerChunk => {\n return request(\n ownerChunk.map(o => o.id),\n props.stage,\n AssemblyLineHelper.getNextStage(props.stage)\n );\n });\n }\n\n // Set priorities\n if (action === 'priorities') {\n const request = getPrioritiesActionRequest(viewModel.ownerType);\n const rawValue = members?.[0] as string | number;\n const priority = rawValue === 'None' ? null : +rawValue;\n\n return chunkObjects(owners).map(ownerChunk => {\n return request(\n ownerChunk.map(o => o.id),\n priority,\n props.stage,\n props.presentationId,\n props.queryParams.sort\n );\n });\n }\n\n // Set thumbnail quality\n if (action === 'thumbnailQuality') {\n const quality = members?.[0] as unknown as ThumbnailQuality;\n const request = AssemblyLineRequests.updateThumbnailQuality;\n return chunkObjects(owners).map(ownerChunk => {\n return request(ownerChunk as AssemblyLineVideo[], quality);\n });\n }\n\n if (VIDEO_FLAG_ACTIONS.includes(action)) {\n const flag = mapActionToFlag(action);\n const bypassCommentType = mapActionToBypassCommentType(action);\n const value = mapFlagToValue(flag);\n\n const requests: Flight.Request[] = [];\n\n const videoChunks = chunkObjects(owners) as AssemblyLineVideo[][];\n\n for (const videoChunk of videoChunks) {\n requests.push(AssemblyLineRequests.updateFlags(videoChunk, flag, value));\n\n if (comment) {\n requests.push(AssemblyLineRequests.addComment(\n videoChunk,\n bypassCommentType,\n comment.bypassCategory,\n comment.bypassReason\n ));\n }\n }\n\n return requests;\n }\n\n // Set assignee\n if (action === 'assignedTo') {\n const request = AssemblyLineHelper.getAssigneeActionRequest(viewModel.ownerType);\n\n return chunkObjects(owners).map(ownerChunk => {\n return request(\n ownerChunk.map(o => o.id).sort(),\n AssemblyLineHelper.getSyncedAssigneeStages(props.stage),\n members[0]?.id ?? null\n );\n });\n }\n\n if (action === 'reviewer') {\n function getData() {\n if (!members.length) {\n return [{\n reviewerId: null,\n approved: false\n }, {\n reviewerId: null,\n approved: false\n }];\n }\n\n return members.map(m => ({\n reviewerId: m.id,\n approved: false\n }));\n }\n\n return chunkObjects(owners).map(ownerChunk => {\n return AssemblyLineRequests.updateReviewer(\n ownerChunk as AssemblyLineVideo[],\n getData()\n );\n });\n }\n\n if (action === 'bypassUnusedStage') {\n return chunkObjects(owners).map(ownerChunk => {\n return AssemblyLineRequests.addComment(\n ownerChunk as AssemblyLineVideo[],\n 'bypassUnusedStage',\n comment.bypassCategory,\n comment.bypassReason\n );\n });\n }\n\n if (action === 'skipCurriculum') {\n const skip = (members[0] as CurriculumBoolValue).value;\n const bypassCommentType = mapActionToBypassCommentType(action);\n\n const requests: Flight.Request[] = [];\n\n const videoChunks = chunkObjects(owners) as AssemblyLineVideo[][];\n\n for (const videoChunk of videoChunks) {\n requests.push(AssemblyLineRequests.skipVideoCurriculum(videoChunk, skip));\n\n if (comment) {\n requests.push(AssemblyLineRequests.addComment(\n videoChunk,\n bypassCommentType,\n comment.bypassCategory,\n comment.bypassReason\n ));\n }\n }\n\n return requests;\n }\n\n if (action === 'hasCurriculum') {\n const hasCurriculum = (members[0] as CurriculumBoolValue).value;\n return chunkObjects(owners).map(ownerChunk => {\n return AssemblyLineRequests.updateHasCurriculum(\n ownerChunk as AssemblyLineVideo[],\n hasCurriculum\n );\n });\n }\n }\n\n async function startBulkAction(): Promise<void> {\n setWizardStage('running');\n\n if (isLocalAction) {\n const requests = getLocalActionRequests();\n\n const bypassCommentType = mapActionToBypassCommentType(action);\n\n for (let i = 0; i < requests.length; i++) {\n await fetchAsync(requests[i]);\n\n // If a local action to bypass validation includes a comment, we need to make 2 requests per video.\n // The first request is to update the flag, the second request is to add the comment. These requests\n // can be seen in getLocalActionRequests\n if (bypassCommentType) {\n i++;\n await fetchAsync(requests[i]);\n }\n\n setTotalComplete(prev => prev + LOCAL_ACTION_CHUNK_SIZE);\n }\n\n setWizardStage('complete');\n return;\n }\n\n const videoIds = Array.from(viewModel.ownerIdMap.keys()).filter(\n id => !viewModel.removedIds.includes(id.toString())\n );\n\n const data = AssemblyLineHelper.getCreateJobRequestData(\n videoIds,\n members,\n action,\n currentUser.data?.customerId\n );\n\n fetchAsync(JobRequests.createJob(data))\n .then((job: BatchJob) => setJobId(job.id))\n .catch(onCreateJobError);\n }\n\n function onCompletePollingAction(): void {\n /**\n * If we want to do something similar in future where we want to start multiple jobs in same wizard,\n * we should NOT use this approach and create something more generic and extendable which is probably alot more work.\n * \"This is a one off solution for now\"™️\n * - Nish\n */\n const ppddActions = [ 'producers', 'productionCompanies', 'directors', 'distributors' ];\n const partnerProfileIds = (groupedMembers?.partnerProfiles ?? []).map(p => p.id);\n const hasPartnerProfiles = ppddActions.includes(action) && partnerProfileIds.length > 0;\n\n if (!hasPartnerProfiles) {\n setWizardStage('complete');\n return;\n }\n\n const videoIds = Array.from(viewModel.ownerIdMap.keys()).filter(\n id => !viewModel.removedIds.includes(id.toString())\n );\n\n const ppddData = AssemblyLineHelper.getCreatePartnerProfilesJobRequestData(\n videoIds,\n partnerProfileIds,\n currentUser.data?.customerId\n );\n\n fetchAsync(JobRequests.createJob(ppddData))\n .then((job: BatchJob) => {\n setJobId(job.id);\n setAction('partnerProfiles');\n })\n .catch(onCreateJobError);\n }\n\n function getGroupedMemberName(member: string): string {\n return GroupedMemberNames[member] ?? member;\n }\n\n function getComponent(): JSX.Element {\n switch (wizardStage) {\n case 'select-action': {\n return (\n <AssemblyLineSelectBulkAction\n stage={props.stage}\n action={action}\n onSelectAction={setAction}\n closePopup={props.closePopup}\n pluralObjectName={pluralObjectName}\n onClickNext={() => {\n setMembers([]);\n setGroupedMembers({});\n\n if (action !== 'stage' && action !== 'publish') {\n setWizardStage('action-details');\n return;\n }\n\n setWizardStage('confirmation');\n }}\n />\n );\n }\n\n case 'action-details': {\n let Component;\n switch (action) {\n case 'priorities':\n Component = PriorityBulkActionDetailsView;\n break;\n case 'thumbnailQuality':\n Component = ThumbnailQualityBulkActionDetailsView;\n break;\n default:\n Component = AssemblyLineStageConfig[props.stage].forms[action].bulkActionDetailsComponent;\n break;\n }\n \n return (\n <Component\n onClickNext={(members, isLocalAction, comment, groupedMembers) => {\n setMembers(members.filter(member => !!member));\n setIsLocalAction(isLocalAction);\n setComment(comment);\n setGroupedMembers(groupedMembers);\n \n setWizardStage('confirmation');\n }}\n initialValues={members}\n onClickBack={() => setWizardStage('select-action')}\n presentationId={props.presentationId}\n stage={props.stage}\n view={props.view}\n />\n );\n }\n\n case 'confirmation': {\n return (\n <AssemblyLineBulkConfirmationView\n members={members}\n comment={comment}\n groupedMembers={groupedMembers}\n name={typeof groupedMembers !== 'object' ? ActionObjectNames[action] : ''}\n pluralObjectName={pluralObjectName}\n onClickConfirm={startBulkAction}\n onClickBack={() => {\n if (action === 'stage' || action === 'publish') {\n setWizardStage('select-action');\n return;\n }\n setWizardStage('action-details');\n }}\n action={action}\n isLocalAction={isLocalAction}\n stage={props.stage}\n getGroupedMemberName={getGroupedMemberName}\n />\n );\n }\n\n case 'running': {\n if (isLocalAction) {\n return (\n <WizardInProgress\n totalItems={viewModel.ownerIdMap.size}\n totalItemsComplete={totalComplete}\n actionName='Bulk update'\n actionVerb='Update'\n />\n );\n }\n\n return (\n <AssemblyLineBulkPollingView\n name={ActionObjectNames[action]}\n jobId={jobId}\n onCompleted={onCompletePollingAction}\n />\n );\n }\n\n case 'complete': {\n if (isLocalAction) {\n return (\n <AssemblyLineBulkSucceededView\n onClickFinish={onClickFinish}\n action={action}\n count={countRef.current}\n pluralObjectName={pluralObjectName}\n stage={props.stage}\n />\n );\n }\n\n return (\n <AssemblyLineBulkCompletedView\n name={ActionObjectNames[action]}\n jobId={jobId}\n customerId ={currentUser.data?.id}\n onClickFinish={onClickFinish}\n actionSucceededMessage={\n `Successfully added all ${owners.length} ${pluralObjectName} to the selected ${ActionObjectNames[action]}`\n }\n />\n );\n }\n }\n }\n\n const preventClose = wizardStage === 'running' || wizardStage === 'complete';\n\n const popupSize = getPopupSize(wizardStage, action);\n\n return (\n <AssemblyLineStageContext subStage={props.stage} pipelineId={props.pipelineId}>\n <Popup\n title='Bulk Action'\n closePopup={props.closePopup}\n closeButton={!preventClose}\n size={popupSize}\n dialogClassName={popupSize === 'lg' ? 'bulk-action-modal' : 'bulk-action-modal-wide'}\n backdrop='static'\n >\n {isFetching ?\n (\n <div className='text-center p-5'>\n <Spinner as='div' animation='border' role='status' />\n <div>Loading {pluralObjectName}: {owners.length} / {viewModel.ownerIdMap.size}</div>\n </div>\n ) :\n getComponent()\n }\n </Popup>\n </AssemblyLineStageContext>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Eg4zYYCO.chunk.js","names":[],"sources":["../../../../../src/apps/assembly-line/components/bulk-actions/select-action/AssemblyLineSelectBulkAction.tsx","../../../../../src/apps/assembly-line/views/wizard/confirmation-video-list/bulk-confirmation-video-list.module.scss","../../../../../src/apps/assembly-line/views/wizard/confirmation-video-list/BulkConfirmationOwnerList.tsx","../../../../../src/apps/assembly-line/views/wizard/confirmation-view/AssemblyLineBulkConfirmationView.tsx","../../../../../src/apps/assembly-line/views/wizard/fields/priority/PriorityBulkActionDetailsView.tsx","../../../../../src/apps/assembly-line/views/wizard/fields/thumbnail-quality/ThumbnailQualityBulkActionDetailsView.tsx","../../../../../src/apps/assembly-line/views/wizard/status/succeeded/AssemblyLineBulkSucceededView.tsx","../../../../../src/apps/assembly-line/views/wizard/status/completed/AssemblyLineBulkCompletedView.tsx","../../../../../src/apps/assembly-line/views/wizard/status/polling/AssemblyLineBulkPollingView.tsx","../../../../../src/apps/assembly-line/views/wizard/AssemblyLineWizardView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { WizardOptions } from 'libs/shared/components/wizard/options/WizardOptions';\nimport { PopupViewProps } from 'libs/shared/interfaces';\n\nimport { useAssemblyLineSelections } from 'apps/assembly-line/hooks/useAssemblyLineSelections';\nimport { AssemblyLineStage } from 'apps/assembly-line/interfaces/AssemblyLineStage';\nimport { AssemblyLineHelper } from 'apps/assembly-line/utils/AssemblyLineHelper';\n\ninterface AssemblyLineSelectBulkActionProps extends PopupViewProps {\n stage: AssemblyLineStage;\n action: string;\n onSelectAction: (action: string) => void;\n onClickNext: () => void;\n pluralObjectName: string;\n}\n\nexport function AssemblyLineSelectBulkAction(props: AssemblyLineSelectBulkActionProps): JSX.Element {\n const { owners } = useAssemblyLineSelections();\n\n return (\n <div>\n <p>\n Choose which action you'd like to take on the selected {owners.length} {props.pluralObjectName}.\n </p>\n\n <WizardOptions\n options={AssemblyLineHelper.getBulkActionOptions(\n props.stage,\n owners,\n props.pluralObjectName\n )}\n setOption={props.onSelectAction}\n selectedAction={props.action}\n />\n\n <PopupButtons className='bulk-action-modal-buttons'>\n <PopupButtons.Cancel onClick={props.closePopup} />\n <PopupButtons.Submit\n onClick={props.onClickNext}\n text='Next'\n variant='dark'\n disabled={!props.action}\n />\n </PopupButtons>\n </div>\n );\n}\n",":local {\n .idColumn {\n width: 10rem;\n }\n}","import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { WindowedList } from 'libs/shared/components/windowed-list/WindowedList';\nimport { DeleteSvg } from 'libs/shared/images/svg/actions/DeleteSvg';\n\nimport { Actions, AppChannels } from 'shared/constants';\n\nimport { AssemblyLineActionsCell } from 'apps/assembly-line/components/table/cells/actions/AssemblyLineActionsCell';\nimport { useAssemblyLineSelections } from 'apps/assembly-line/hooks/useAssemblyLineSelections';\nimport { AssemblyLineTopic } from 'apps/assembly-line/interfaces/AssemblyLineTopic';\n\nimport styles from './bulk-confirmation-video-list.module.scss';\n\nconst ROW_HEIGHT = 45; // px\n\ninterface BulkConfirmationOwnerListProps {\n pluralObjectName: string;\n}\n\nexport function BulkConfirmationOwnerList(props: BulkConfirmationOwnerListProps): JSX.Element {\n const ref = React.useRef<any>(null);\n const { owners, ownerType, removeOwner } = useAssemblyLineSelections();\n\n return (\n <div className='border rounded mb-3'>\n <WindowedList\n items={owners}\n rowHeight={ROW_HEIGHT}\n containerHeight={ROW_HEIGHT * 11}\n ref={ref}\n staticComponentAboveRows={(\n <>\n <div>\n <div className='ps-3 d-flex align-items-center' style={{ height: `${ROW_HEIGHT}px` }}>\n The above changes will be applied to the selected {owners.length} {props.pluralObjectName}:\n </div>\n\n <div className='fw-semibold px-3 pt-1 pb-2'>\n <div className={`d-inline-block ${styles.idColumn}`}>ID</div>\n <div className='d-inline-block'>Title</div>\n </div>\n </div>\n <li className='d-none' />\n </>\n )}\n getComponent={owner => {\n const appLink = ownerType === 'video' ? {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.EDIT_VIDEO,\n args: [owner.id]\n } : {\n application: AppChannels.SUBJECTS,\n action: Actions.Subjects.EDIT_CLASSIFICATION,\n args: [ owner.id, (owner as AssemblyLineTopic).presentationId ]\n };\n\n return (\n <li\n style={{ height: `${ROW_HEIGHT}px` }}\n className='mb-0 py-2 px-3 d-flex align-items-center'\n key={owner.id}\n >\n <div className={`${styles.idColumn}`}>\n <AssemblyLineActionsCell\n actions={[ 'new-window', 'copy' ]}\n data={owner.id}\n appLink={appLink}\n openInNewTab\n />\n </div>\n\n <div className='me-auto'>{owner.name}</div>\n\n <DivButton onClick={() => removeOwner(owner.id)} className='me-1'>\n <SvgContainer svg={DeleteSvg} />\n </DivButton>\n </li>\n );\n }}\n />\n </div>\n );\n}\n","import React from 'react';\n\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { BaseObject, User } from 'libs/shared/interfaces';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport { AssemblyLineStage } from 'apps/assembly-line/interfaces/AssemblyLineStage';\nimport { ThumbnailQuality } from 'apps/assembly-line/interfaces/AssemblyLineThumbnailQuality';\nimport { CommentFormData } from 'apps/assembly-line/interfaces/primitives/CommentFormData';\nimport { AssemblyLineHelper } from 'apps/assembly-line/utils/AssemblyLineHelper';\nimport { VIDEO_FLAG_ACTIONS } from 'apps/assembly-line/views/wizard/AssemblyLineWizardView';\nimport { BulkConfirmationOwnerList } from 'apps/assembly-line/views/wizard/confirmation-video-list/BulkConfirmationOwnerList';\n\ninterface AssemblyLineBulkConfirmationProps {\n name: string;\n pluralObjectName: string;\n members: BaseObject[];\n comment: CommentFormData;\n groupedMembers: Record<string, BaseObject[]>;\n onClickConfirm: () => void;\n onClickBack: () => void;\n isLocalAction: boolean;\n action: string;\n stage: AssemblyLineStage;\n getGroupedMemberName?: (member: string) => string;\n}\n\nexport function AssemblyLineBulkConfirmationView(props: AssemblyLineBulkConfirmationProps): JSX.Element {\n function getReason(): string {\n if (!props.comment)\n return '';\n\n if (props.comment.bypassCategory === 'Other')\n return `Reason: ${props.comment.bypassReason}`;\n\n return `Reason: ${props.comment.bypassCategory}`;\n }\n\n function getLocalActionChangeInfo(): JSX.Element {\n if (props.action === 'thumbnailQuality') {\n const quality = props.members?.[0] as unknown as ThumbnailQuality;\n return (\n <>\n Set to&nbsp;<strong>{AssemblyLineHelper.mapThumbnailQualityToLabel(quality)}</strong> thumbnail quality.\n </>\n );\n }\n\n if (props.action === 'priorities') {\n const rawValue = props.members?.[0] as string | number;\n const priority = rawValue === 'None' ? null : +rawValue;\n return (\n <>\n Set to&nbsp;<strong>{AssemblyLineHelper.getPriorityLabel(priority as number | null)}</strong> priority.\n </>\n );\n }\n\n if (props.action === 'reviewer') {\n if (!props.members.length)\n return <>Clear the reviewers on the selected items.</>;\n\n const reviewer1 = UserHelper.getFullName(props.members[0] as User);\n const reviewer2 = UserHelper.getFullName(props.members[1] as User);\n return (\n <>\n Assign <strong>{reviewer1}</strong> and <strong>{reviewer2}</strong> to review the\n thumbnails for the selected videos.\n </>\n );\n }\n\n if (props.action === 'stage')\n return (\n <>\n Move to the&nbsp;\n <strong>{AssemblyLineHelper.formatStageName(AssemblyLineHelper.getNextStage(props.stage))}</strong> stage.\n </>\n );\n\n if (props.action === 'publish')\n return (\n <>Publish videos.</>\n );\n\n if (props.action === 'assignedTo') {\n if (!props.members.length)\n return <>Unassign all of the selected items.</>;\n\n const assignee = (props.members[0] as User);\n return <>Assign <strong>{UserHelper.getFullName(assignee)}</strong> to the selected items.</>;\n }\n \n if (props.action === 'series')\n return <>Remove the association with series.</>;\n\n if (props.action === 'subtitles') {\n return (\n <>No longer requires subtitles. {getReason()}</>\n );\n }\n\n if (props.action === 'skipCurriculum') {\n return (\n <>No longer requires curriculum.</>\n );\n }\n\n if (props.action === 'hasCurriculum') {\n return (\n <>Already have curriculum.</>\n );\n }\n\n if (props.action === 'pointsOfInterest') {\n return (\n <>No longer requires points of interests. {getReason()}</>\n );\n }\n\n if (props.action === 'resources') {\n return (\n <>No longer requires resources or interactives. {getReason()}</>\n );\n }\n\n if (VIDEO_FLAG_ACTIONS.includes(props.action)) {\n const reason = getReason();\n return <>{`Remove the association with ${props.name}. ${reason}`}</>;\n }\n }\n\n return (\n <div>\n <p>Changes to be made:</p>\n\n <div className='p-2 border rounded mb-3'>\n {!props.isLocalAction ? (\n <>\n <p className='fw-semibold mb-2'>Add the following {props.name}:</p>\n\n {!props.groupedMembers && (\n <ul className='mb-1'>\n {(props.members as BaseObject[]).map(member => {\n return (\n <li key={member.id ?? member.name}>\n {member.name}\n </li>\n );\n })}\n </ul>\n )}\n\n {props.groupedMembers && Object.keys(props.groupedMembers).map(presentation => {\n if (Object.keys(props.groupedMembers[presentation]).length === 0)\n return null;\n \n return (\n <div key={presentation}>\n <p className='fw-semibold mb-1'>{props.getGroupedMemberName?.(presentation) ?? presentation}</p>\n <ul className='mb-2'>\n {props.groupedMembers[presentation].map(members => (\n <li key={members.id}>{members.name}</li>\n ))}\n </ul>\n </div>\n );\n })}\n </>\n ) : getLocalActionChangeInfo()}\n </div>\n\n <BulkConfirmationOwnerList pluralObjectName={props.pluralObjectName} />\n\n <PopupButtons className='bulk-action-modal-buttons'>\n <PopupButtons.Cancel onClick={props.onClickBack} text='Back' />\n <PopupButtons.Submit\n onClick={props.onClickConfirm}\n text='Confirm'\n variant='dark'\n />\n </PopupButtons>\n </div>\n );\n}\n","import React from 'react';\n\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\n\nimport { PRIORITIES_OPTIONS } from 'apps/assembly-line/components/table/cells/priority/AssemblyLinePriorityCell';\nimport { AssemblyLineBulkActionDetailsProps } from 'apps/assembly-line/interfaces/AssemblyLineBulkActionDetailsProps';\nimport { AssemblyLineHelper } from 'apps/assembly-line/utils/AssemblyLineHelper';\n\nconst DEFAULT_PRIORITY = 'None';\n\nexport function PriorityBulkActionDetailsView(\n props: AssemblyLineBulkActionDetailsProps<any>\n): JSX.Element {\n const [ priority, setPriority ] = React.useState<number | typeof DEFAULT_PRIORITY>(DEFAULT_PRIORITY);\n\n function onChange(e: React.ChangeEvent<HTMLSelectElement>) {\n const newPriority = e.target.value === 'None' ? 'None' : +e.target.value;\n setPriority(newPriority);\n }\n\n return (\n <>\n <p>Select a priority level for the selected items:</p>\n\n <div className='form-group assembly-line-form'>\n <select id='priority' className='form-control' onChange={onChange} value={priority}>\n {PRIORITIES_OPTIONS.map(priority => {\n return (\n <option\n key={priority}\n value={priority}\n >\n {AssemblyLineHelper.getPriorityLabel(priority)}\n </option>\n );\n })}\n </select>\n </div>\n\n <PopupButtons className='bulk-action-modal-buttons'>\n <PopupButtons.Cancel onClick={props.onClickBack} text='Back' />\n <PopupButtons.Submit\n onClick={() => {\n props.onClickNext([priority], true);\n }}\n text='Next'\n variant='dark'\n />\n </PopupButtons>\n </>\n );\n}\n","import React from 'react';\n\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\n\nimport { AssemblyLineBulkActionDetailsProps } from 'apps/assembly-line/interfaces/AssemblyLineBulkActionDetailsProps';\nimport { ThumbnailQuality } from 'apps/assembly-line/interfaces/AssemblyLineThumbnailQuality';\nimport { AssemblyLineHelper } from 'apps/assembly-line/utils/AssemblyLineHelper';\n\nexport const QUALITY_OPTIONS = [ ThumbnailQuality.High, ThumbnailQuality.Low ];\nconst DEFAULT_QUALITY = 'None';\n\nexport function ThumbnailQualityBulkActionDetailsView(\n props: AssemblyLineBulkActionDetailsProps<any>\n): JSX.Element {\n const [ quality, setQuality ] = React.useState<ThumbnailQuality | typeof DEFAULT_QUALITY>(DEFAULT_QUALITY);\n\n function onChange(e: React.ChangeEvent<HTMLSelectElement>) {\n const newQuality = e.target.value as ThumbnailQuality;\n setQuality(newQuality);\n }\n\n return (\n <>\n <p>Select a quality for the selected thumbnails:</p>\n <div className='form-group assembly-line-form'>\n <select\n id='quality'\n className={`form-control cursor-pointer ${!quality ? 'text-danger' : ''}`}\n onChange={onChange}\n value={quality}\n >\n <option value={DEFAULT_QUALITY} disabled hidden>None</option>\n {QUALITY_OPTIONS.map(quality => {\n return (\n <option\n key={quality}\n value={quality}\n >\n {AssemblyLineHelper.mapThumbnailQualityToLabel(quality)}\n </option>\n );\n })}\n </select>\n </div>\n <PopupButtons className='bulk-action-modal-buttons'>\n <PopupButtons.Cancel onClick={props.onClickBack} text='Back' />\n <PopupButtons.Submit\n onClick={() => {\n props.onClickNext([quality], true);\n }}\n disabled={quality === DEFAULT_QUALITY}\n text='Next'\n variant='dark'\n />\n </PopupButtons>\n </>\n );\n}\n","/**\n * Display the succeeded view for bulk props.action requests that are not passed to batch api\n */\nimport React from 'react';\n\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { WizardSucceeded } from 'libs/shared/components/wizard/status/statuses/succeeded/WizardSucceeded';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { AssemblyLineStage } from 'apps/assembly-line/interfaces/AssemblyLineStage';\nimport { AssemblyLineHelper } from 'apps/assembly-line/utils/AssemblyLineHelper';\nimport { ActionObjectNames, VIDEO_FLAG_ACTIONS } from 'apps/assembly-line/views/wizard/AssemblyLineWizardView';\n\ninterface AssemblyLineBulkSucceededProps {\n onClickFinish: () => void;\n action: string;\n pluralObjectName: string;\n stage: AssemblyLineStage;\n count: number;\n}\n\nexport function AssemblyLineBulkSucceededView(props: AssemblyLineBulkSucceededProps): JSX.Element {\n function getNoBatchApiSuccessMessage(): string {\n if (props.action === 'thumbnailQuality')\n return `Successfully updated thumbnail quality for ${props.count} ${props.pluralObjectName}.`;\n\n if (props.action === 'priorities')\n return `Successfully updated priorities for ${props.count} ${props.pluralObjectName}.`;\n\n if (props.action === 'stage')\n return `Successfully moved all ${props.count} ${props.pluralObjectName} to the ${AssemblyLineHelper.formatStageName(AssemblyLineHelper.getNextStage(props.stage))} stage.`;\n \n if (props.action === 'publish')\n return `Successfully published all ${props.count} ${props.pluralObjectName}.`;\n \n if (props.action === 'series')\n return `Successfully removed series association for ${props.count} ${props.pluralObjectName}.`;\n\n if (props.action === 'subtitles')\n return `Subtitles are now no longer required for ${props.count} ${props.pluralObjectName}`;\n\n if (props.action === 'resources')\n return `Resources are now no longer required for ${props.count} ${props.pluralObjectName}`;\n\n if (props.action === 'assignedTo')\n return `Successfully updated assignees for ${props.count} ${props.pluralObjectName}.`;\n\n if (props.action === 'reviewer')\n return `Successfully updated reviewers for ${props.count} ${props.pluralObjectName}`;\n \n if (props.action === 'skipCurriculum')\n return `Successfully skipped curriculum for ${props.count} ${props.pluralObjectName}`;\n \n if (VIDEO_FLAG_ACTIONS.includes(props.action))\n return `Successfully removed ${ActionObjectNames[props.action]} association for ${props.count} ${props.pluralObjectName}.`;\n\n return '';\n }\n\n return (\n <div>\n <div className='mb-4'>\n <WizardSucceeded\n message={getNoBatchApiSuccessMessage()}\n successImageUrl={ImageUrls.Wizard.WIZARD_SUCCESS}\n />\n </div>\n <PopupButtons className='bulk-props.action-modal-buttons'>\n <PopupButtons.Submit\n onClick={props.onClickFinish}\n text='Finish'\n variant='dark'\n />\n </PopupButtons>\n </div>\n );\n}\n","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { WizardCompleted } from 'libs/shared/components/wizard/status/completed/WizardCompleted';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { BatchJob, BatchJobSummary } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { JobRequests } from 'shared/flight-requests/JobRequests';\n\nimport { useAssemblyLineSelections } from 'apps/assembly-line/hooks/useAssemblyLineSelections';\n\ninterface AssemblyLineBulkCompletedProps {\n jobId: string;\n name: string;\n customerId: string;\n onClickFinish: () => void;\n actionSucceededMessage: string;\n}\n\nexport function AssemblyLineBulkCompletedView(props: AssemblyLineBulkCompletedProps): JSX.Element {\n const job = Flight.useBasicFetch<BatchJob>(JobRequests.getJob(props.jobId));\n const summary = Flight.useBasicFetch<BatchJobSummary>(JobRequests.getJobSummary(props.jobId));\n const dataLoaded = !!job.data && !!summary.data;\n\n const { owners } = useAssemblyLineSelections();\n\n if (!dataLoaded)\n return <></>;\n\n return (\n <div>\n <div className='mb-4'>\n <WizardCompleted\n job={job.data}\n objectCount={owners.length}\n objectType={MasterType.Video}\n summary={summary.data}\n imageCdnUrl={ClickView.Config.Urls.ImageAPI}\n successImageUrl={ImageUrls.Wizard.WIZARD_SUCCESS}\n failedImageUrl={ImageUrls.Wizard.WIZARD_ERROR}\n getResultsRequest={JobRequests.getJobResults}\n actionSucceededMessage={props.actionSucceededMessage}\n actionVerb='Add'\n preventLoggingAnalytics={true}\n />\n </div>\n <PopupButtons className='bulk-action-modal-buttons'>\n <PopupButtons.Submit\n onClick={props.onClickFinish}\n text='Finish'\n variant='dark'\n />\n </PopupButtons>\n </div>\n );\n}\n","import React from 'react';\nimport { Spinner } from 'react-bootstrap';\nimport { useDispatch } from 'react-redux';\n\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Flight } from 'libs/common/react/index';\n\nimport { WizardPolling } from 'libs/shared/components/wizard/status/polling/WizardPolling';\nimport { BatchJobProgress } from 'libs/shared/interfaces';\n\nimport { JobRequests } from 'shared/flight-requests/JobRequests';\n\ninterface AssemblyLineBulkPollingProps {\n name: string;\n jobId: string;\n onCompleted: () => void;\n}\n\nexport function AssemblyLineBulkPollingView(props: AssemblyLineBulkPollingProps): JSX.Element {\n const dispatch = useDispatch();\n\n function pollJob(onSuccess: (progress: BatchJobProgress) => void, onError: (xhr: Xhr) => void): void {\n Flight.fetch(dispatch, JobRequests.getJobProgress(props.jobId, onSuccess, onError));\n }\n\n if (!props.jobId)\n return (\n <div className='text-center'>\n <Spinner as='div' animation='border' role='status' />\n </div>\n );\n\n return (\n <div>\n <div className='mb-4'>\n <WizardPolling\n jobId={props.jobId}\n pollJob={pollJob}\n onStatusCompleted={props.onCompleted}\n actionName='Bulk update'\n actionVerb='Update'\n />\n </div>\n </div>\n );\n}\n","import React from 'react';\nimport { Spinner } from 'react-bootstrap';\n\nimport { Flight } from 'libs/common/flight';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { WizardInProgress } from 'libs/shared/components/wizard/status/statuses/in-progress/WizardInProgress';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { BaseObject, BatchJob, CurrentUser, PopupViewProps } from 'libs/shared/interfaces';\n\nimport { ViewModelKeys } from 'shared/constants/CuratorViewModels';\nimport { JobRequests } from 'shared/flight-requests/JobRequests';\n\nimport { AssemblyLineSelectBulkAction } from 'apps/assembly-line/components/bulk-actions/select-action/AssemblyLineSelectBulkAction';\nimport { AssemblyLineStageConfig } from 'apps/assembly-line/constants/AssemblyLineStageConfig';\nimport { AssemblyLineStageContext } from 'apps/assembly-line/contexts/AssemblyLineStageContext';\nimport { AssemblyLineRequests } from 'apps/assembly-line/flight-requests/AssemblyLineRequests';\nimport { useAssemblyLineSelections } from 'apps/assembly-line/hooks/useAssemblyLineSelections';\nimport { AssemblyLineBulkActionViewModel } from 'apps/assembly-line/interfaces/AssemblyLineBulkActionViewModel';\nimport { AssemblyLineCommentType } from 'apps/assembly-line/interfaces/AssemblyLineComments';\nimport { AssemblyLineObjectType } from 'apps/assembly-line/interfaces/AssemblyLineObjectType';\nimport { AssemblyLineQueryParams } from 'apps/assembly-line/interfaces/AssemblyLineQueryParams';\nimport { AssemblyLineStage } from 'apps/assembly-line/interfaces/AssemblyLineStage';\nimport { ThumbnailQuality } from 'apps/assembly-line/interfaces/AssemblyLineThumbnailQuality';\nimport { AssemblyLineVideo, AssemblyLineVideoFlags } from 'apps/assembly-line/interfaces/AssemblyLineVideo';\nimport { AssemblyLineView } from 'apps/assembly-line/interfaces/AssemblyLineView';\nimport { ContentPipelineId } from 'apps/assembly-line/interfaces/ContentPipelineId';\nimport { AssemblyLineObject } from 'apps/assembly-line/interfaces/primitives/AssemblyLineObject';\nimport { CommentFormData } from 'apps/assembly-line/interfaces/primitives/CommentFormData';\nimport { AssemblyLineHelper } from 'apps/assembly-line/utils/AssemblyLineHelper';\nimport { AssemblyLineBulkConfirmationView } from 'apps/assembly-line/views/wizard/confirmation-view/AssemblyLineBulkConfirmationView';\nimport { CurriculumBoolValue } from 'apps/assembly-line/views/wizard/fields/curriculum/HasCurriculumBulkActionDetailsView';\nimport { PriorityBulkActionDetailsView } from 'apps/assembly-line/views/wizard/fields/priority/PriorityBulkActionDetailsView';\nimport { ThumbnailQualityBulkActionDetailsView } from 'apps/assembly-line/views/wizard/fields/thumbnail-quality/ThumbnailQualityBulkActionDetailsView';\nimport { AssemblyLineBulkSucceededView } from 'apps/assembly-line/views/wizard/status/succeeded/AssemblyLineBulkSucceededView';\n\nimport { AssemblyLineBulkCompletedView } from './status/completed/AssemblyLineBulkCompletedView';\nimport { AssemblyLineBulkPollingView } from './status/polling/AssemblyLineBulkPollingView';\n\ntype WizardStage = 'select-action' | 'action-details' | 'confirmation' | 'running' | 'complete';\n\nexport const ActionObjectNames: HashObject = {\n producers: 'producer(s)',\n productionCompanies: 'production company(s)',\n directors: 'director(s)',\n distributors: 'distributor(s)',\n backboneAudiences: 'backbone audience(s)',\n backboneClassifications: 'backbone subject(s)',\n libraries: 'library(s)',\n series: 'series',\n classifications: 'classification(s)',\n audiences: 'audience(s)',\n curationTags: 'curation tag(s)',\n skillTags: 'skill tag(s)',\n pedagogyTags: 'pedagogy tag(s)',\n normalTags: 'keyword tag(s)',\n hiddenTags: 'search tag(s)',\n resources: 'resource(s)',\n subtitles: 'subtitle(s)',\n assignedTo: 'assignee',\n reviewer: 'reviewer',\n productionYear: 'production year',\n aliases: 'aliases',\n partnerProfiles: 'channel(s)'\n};\n\nconst GroupedMemberNames: HashObject = {\n partnerProfiles: 'Channel(s)',\n productionCompanies: 'Production company(s)',\n directors: 'Director(s)',\n distributors: 'Distributor(s)',\n producers: 'Producer(s)'\n};\n\nexport const VIDEO_FLAG_ACTIONS = [ 'pedagogyTags', 'skillTags', 'curationTags', 'series', 'subtitles', 'resources', 'producers', 'productionCompanies', 'directors', 'distributors', 'pointsOfInterest' ];\nconst LOCAL_ACTION_CHUNK_SIZE = 25;\n\ninterface AssemblyLineWizardViewProps extends PopupViewProps {\n stage: AssemblyLineStage;\n presentationId: string;\n queryParams: AssemblyLineQueryParams;\n pipelineId: ContentPipelineId;\n view: AssemblyLineView;\n}\n\nfunction chunkObjects(objects: AssemblyLineObject[]): AssemblyLineObject[][] {\n return ArrayHelper.chunk(objects, LOCAL_ACTION_CHUNK_SIZE);\n}\n\nfunction getStageActionRequest(ownerType: AssemblyLineObjectType, stage: AssemblyLineStage) {\n switch (ownerType) {\n case 'video': {\n if (AssemblyLineStageConfig[stage].moveToLatestStage)\n return AssemblyLineRequests.moveVideoToFurthestStage;\n\n if (stage === 'review_video')\n return AssemblyLineRequests.publishVideo;\n\n return AssemblyLineRequests.updateVideoStage;\n }\n case 'topic':\n return AssemblyLineRequests.updateTopicStage;\n case 'dashboard':\n return AssemblyLineRequests.updateDashboardStage;\n }\n}\n\nfunction getPrioritiesActionRequest(ownerType: AssemblyLineObjectType) {\n switch (ownerType) {\n case 'video':\n return AssemblyLineRequests.updateVideoPriority;\n case 'topic':\n return AssemblyLineRequests.updateTopicPriority;\n case 'dashboard':\n return AssemblyLineRequests.updateDashboardPriority;\n }\n}\n\nfunction mapActionToFlag(field: string): keyof AssemblyLineVideoFlags {\n return ({\n pedagogyTags: 'hasPedagogyTags',\n curationTags: 'hasCurationTags',\n skillTags: 'hasSkillTags',\n series: 'isInSeries',\n subtitles: 'doesNotRequireCaptions',\n resources: 'doesNotRequireResource',\n producers: 'hasProducers',\n productionCompanies: 'hasProductionCompanies',\n directors: 'hasDirectors',\n distributors: 'hasDistributors',\n pointsOfInterest: 'hasPointsOfInterest'\n } as Record<string, keyof AssemblyLineVideoFlags>)[field];\n}\n\nfunction mapActionToBypassCommentType(field: string): AssemblyLineCommentType {\n return ({\n pedagogyTags: 'bypassPedagogyTags',\n skillTags: 'bypassSkillTags',\n subtitles: 'bypassSubtitles',\n resources: 'bypassResources',\n pointsOfInterest: 'bypassPointsOfInterest',\n skipCurriculum: 'bypassCurriculum'\n } as Record<string, AssemblyLineCommentType>)[field];\n}\n\nfunction mapFlagToValue(flag: keyof AssemblyLineVideoFlags): boolean {\n return ({\n hasPedagogyTags: false,\n hasCurationTags: false,\n hasSkillTags: false,\n isInSeries: false,\n doesNotRequireCaptions: true,\n doesNotRequireResource: true,\n hasProducers: false,\n hasProductionCompanies: false,\n hasDirectors: false,\n hasDistributors: false,\n hasPointsOfInterest: false\n } as Record<keyof AssemblyLineVideoFlags, boolean>)[flag];\n}\n\nfunction getPopupSize(wizardStage: WizardStage, action: string) {\n // Returns 'xl' size when editing resources to accommodate the resource table width\n if (wizardStage === 'action-details' && action === 'resources') {\n return 'xl';\n }\n return 'lg';\n}\n\nexport function AssemblyLineWizardView(props: AssemblyLineWizardViewProps): JSX.Element {\n const [viewModel] = useViewModel<AssemblyLineBulkActionViewModel>(ViewModelKeys.ASSEMBLY_LINE);\n\n const fetchAsync = Flight.useGetFetchAsync();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const [ wizardStage, setWizardStage ] = React.useState<WizardStage>('select-action');\n const [ action, setAction ] = React.useState<string>();\n const [ members, setMembers ] = React.useState<BaseObject[]>();\n const [ groupedMembers, setGroupedMembers ] = React.useState<Record<string, BaseObject[]>>();\n const [ comment, setComment ] = React.useState<CommentFormData>();\n const [ totalComplete, setTotalComplete ] = React.useState<number>(0);\n const [ jobId, setJobId ] = React.useState<string>('');\n\n // local action refers the action that won't pass req to batch api\n const [ isLocalAction, setIsLocalAction ] = React.useState(false);\n\n React.useEffect(() => {\n if (action === 'stage' || action === 'publish' || action === 'priorities')\n setIsLocalAction(true);\n }, [action]);\n\n const { owners, isFetching } = useAssemblyLineSelections();\n // store the number of owners before we reset the selection\n const countRef = React.useRef(owners.length);\n React.useEffect(() => {\n if (owners.length)\n countRef.current = owners.length;\n }, [owners.length]);\n\n const onCreateJobError = AssemblyLineHelper.useCreateJobErrorAlert();\n const onComplete = AssemblyLineHelper.useOnCompleteBulkAction();\n\n const pluralObjectName = AssemblyLineHelper.getPluralObjectName(viewModel.ownerType);\n\n function onClickFinish(): void {\n const updatedIds = new Map(viewModel.ownerIdMap);\n\n viewModel.removedIds.forEach(id => {\n updatedIds.delete(id.toString());\n });\n\n onComplete(\n props.stage,\n updatedIds,\n members,\n action as keyof AssemblyLineVideo\n );\n\n props.closePopup();\n }\n\n React.useEffect(() => {\n // reset selection since all the selected items go to next stage\n if (wizardStage === 'complete' && (action === 'stage' || action === 'publish')) {\n viewModel.resetSelection();\n }\n }, [wizardStage]);\n\n function getLocalActionRequests(): Flight.Request[] {\n // Move to next stage\n if (action === 'stage' || action === 'publish') {\n const request = getStageActionRequest(viewModel.ownerType, props.stage);\n\n return chunkObjects(owners).map(ownerChunk => {\n return request(\n ownerChunk.map(o => o.id),\n props.stage,\n AssemblyLineHelper.getNextStage(props.stage)\n );\n });\n }\n\n // Set priorities\n if (action === 'priorities') {\n const request = getPrioritiesActionRequest(viewModel.ownerType);\n const rawValue = members?.[0] as string | number;\n const priority = rawValue === 'None' ? null : +rawValue;\n\n return chunkObjects(owners).map(ownerChunk => {\n return request(\n ownerChunk.map(o => o.id),\n priority,\n props.stage,\n props.presentationId,\n props.queryParams.sort\n );\n });\n }\n\n // Set thumbnail quality\n if (action === 'thumbnailQuality') {\n const quality = members?.[0] as unknown as ThumbnailQuality;\n const request = AssemblyLineRequests.updateThumbnailQuality;\n return chunkObjects(owners).map(ownerChunk => {\n return request(ownerChunk as AssemblyLineVideo[], quality);\n });\n }\n\n if (VIDEO_FLAG_ACTIONS.includes(action)) {\n const flag = mapActionToFlag(action);\n const bypassCommentType = mapActionToBypassCommentType(action);\n const value = mapFlagToValue(flag);\n\n const requests: Flight.Request[] = [];\n\n const videoChunks = chunkObjects(owners) as AssemblyLineVideo[][];\n\n for (const videoChunk of videoChunks) {\n requests.push(AssemblyLineRequests.updateFlags(videoChunk, flag, value));\n\n if (comment) {\n requests.push(AssemblyLineRequests.addComment(\n videoChunk,\n bypassCommentType,\n comment.bypassCategory,\n comment.bypassReason\n ));\n }\n }\n\n return requests;\n }\n\n // Set assignee\n if (action === 'assignedTo') {\n const request = AssemblyLineHelper.getAssigneeActionRequest(viewModel.ownerType);\n\n return chunkObjects(owners).map(ownerChunk => {\n return request(\n ownerChunk.map(o => o.id).sort(),\n AssemblyLineHelper.getSyncedAssigneeStages(props.stage),\n members[0]?.id ?? null\n );\n });\n }\n\n if (action === 'reviewer') {\n function getData() {\n if (!members.length) {\n return [{\n reviewerId: null,\n approved: false\n }, {\n reviewerId: null,\n approved: false\n }];\n }\n\n return members.map(m => ({\n reviewerId: m.id,\n approved: false\n }));\n }\n\n return chunkObjects(owners).map(ownerChunk => {\n return AssemblyLineRequests.updateReviewer(\n ownerChunk as AssemblyLineVideo[],\n getData()\n );\n });\n }\n\n if (action === 'bypassUnusedStage') {\n return chunkObjects(owners).map(ownerChunk => {\n return AssemblyLineRequests.addComment(\n ownerChunk as AssemblyLineVideo[],\n 'bypassUnusedStage',\n comment.bypassCategory,\n comment.bypassReason\n );\n });\n }\n\n if (action === 'skipCurriculum') {\n const skip = (members[0] as CurriculumBoolValue).value;\n const bypassCommentType = mapActionToBypassCommentType(action);\n\n const requests: Flight.Request[] = [];\n\n const videoChunks = chunkObjects(owners) as AssemblyLineVideo[][];\n\n for (const videoChunk of videoChunks) {\n requests.push(AssemblyLineRequests.skipVideoCurriculum(videoChunk, skip));\n\n if (comment) {\n requests.push(AssemblyLineRequests.addComment(\n videoChunk,\n bypassCommentType,\n comment.bypassCategory,\n comment.bypassReason\n ));\n }\n }\n\n return requests;\n }\n\n if (action === 'hasCurriculum') {\n const hasCurriculum = (members[0] as CurriculumBoolValue).value;\n return chunkObjects(owners).map(ownerChunk => {\n return AssemblyLineRequests.updateHasCurriculum(\n ownerChunk as AssemblyLineVideo[],\n hasCurriculum\n );\n });\n }\n }\n\n async function startBulkAction(): Promise<void> {\n setWizardStage('running');\n\n if (isLocalAction) {\n const requests = getLocalActionRequests();\n\n const bypassCommentType = mapActionToBypassCommentType(action);\n\n for (let i = 0; i < requests.length; i++) {\n await fetchAsync(requests[i]);\n\n // If a local action to bypass validation includes a comment, we need to make 2 requests per video.\n // The first request is to update the flag, the second request is to add the comment. These requests\n // can be seen in getLocalActionRequests\n if (bypassCommentType) {\n i++;\n await fetchAsync(requests[i]);\n }\n\n setTotalComplete(prev => prev + LOCAL_ACTION_CHUNK_SIZE);\n }\n\n setWizardStage('complete');\n return;\n }\n\n const videoIds = Array.from(viewModel.ownerIdMap.keys()).filter(\n id => !viewModel.removedIds.includes(id.toString())\n );\n\n const data = AssemblyLineHelper.getCreateJobRequestData(\n videoIds,\n members,\n action,\n currentUser.data?.customerId\n );\n\n fetchAsync(JobRequests.createJob(data))\n .then((job: BatchJob) => setJobId(job.id))\n .catch(onCreateJobError);\n }\n\n function onCompletePollingAction(): void {\n /**\n * If we want to do something similar in future where we want to start multiple jobs in same wizard,\n * we should NOT use this approach and create something more generic and extendable which is probably alot more work.\n * \"This is a one off solution for now\"™️\n * - Nish\n */\n const ppddActions = [ 'producers', 'productionCompanies', 'directors', 'distributors' ];\n const partnerProfileIds = (groupedMembers?.partnerProfiles ?? []).map(p => p.id);\n const hasPartnerProfiles = ppddActions.includes(action) && partnerProfileIds.length > 0;\n\n if (!hasPartnerProfiles) {\n setWizardStage('complete');\n return;\n }\n\n const videoIds = Array.from(viewModel.ownerIdMap.keys()).filter(\n id => !viewModel.removedIds.includes(id.toString())\n );\n\n const ppddData = AssemblyLineHelper.getCreatePartnerProfilesJobRequestData(\n videoIds,\n partnerProfileIds,\n currentUser.data?.customerId\n );\n\n fetchAsync(JobRequests.createJob(ppddData))\n .then((job: BatchJob) => {\n setJobId(job.id);\n setAction('partnerProfiles');\n })\n .catch(onCreateJobError);\n }\n\n function getGroupedMemberName(member: string): string {\n return GroupedMemberNames[member] ?? member;\n }\n\n function getComponent(): JSX.Element {\n switch (wizardStage) {\n case 'select-action': {\n return (\n <AssemblyLineSelectBulkAction\n stage={props.stage}\n action={action}\n onSelectAction={setAction}\n closePopup={props.closePopup}\n pluralObjectName={pluralObjectName}\n onClickNext={() => {\n setMembers([]);\n setGroupedMembers({});\n\n if (action !== 'stage' && action !== 'publish') {\n setWizardStage('action-details');\n return;\n }\n\n setWizardStage('confirmation');\n }}\n />\n );\n }\n\n case 'action-details': {\n let Component;\n switch (action) {\n case 'priorities':\n Component = PriorityBulkActionDetailsView;\n break;\n case 'thumbnailQuality':\n Component = ThumbnailQualityBulkActionDetailsView;\n break;\n default:\n Component = AssemblyLineStageConfig[props.stage].forms[action].bulkActionDetailsComponent;\n break;\n }\n \n return (\n <Component\n onClickNext={(members, isLocalAction, comment, groupedMembers) => {\n setMembers(members.filter(member => !!member));\n setIsLocalAction(isLocalAction);\n setComment(comment);\n setGroupedMembers(groupedMembers);\n \n setWizardStage('confirmation');\n }}\n initialValues={members}\n onClickBack={() => setWizardStage('select-action')}\n presentationId={props.presentationId}\n stage={props.stage}\n view={props.view}\n />\n );\n }\n\n case 'confirmation': {\n return (\n <AssemblyLineBulkConfirmationView\n members={members}\n comment={comment}\n groupedMembers={groupedMembers}\n name={typeof groupedMembers !== 'object' ? ActionObjectNames[action] : ''}\n pluralObjectName={pluralObjectName}\n onClickConfirm={startBulkAction}\n onClickBack={() => {\n if (action === 'stage' || action === 'publish') {\n setWizardStage('select-action');\n return;\n }\n setWizardStage('action-details');\n }}\n action={action}\n isLocalAction={isLocalAction}\n stage={props.stage}\n getGroupedMemberName={getGroupedMemberName}\n />\n );\n }\n\n case 'running': {\n if (isLocalAction) {\n return (\n <WizardInProgress\n totalItems={viewModel.ownerIdMap.size}\n totalItemsComplete={totalComplete}\n actionName='Bulk update'\n actionVerb='Update'\n />\n );\n }\n\n return (\n <AssemblyLineBulkPollingView\n name={ActionObjectNames[action]}\n jobId={jobId}\n onCompleted={onCompletePollingAction}\n />\n );\n }\n\n case 'complete': {\n if (isLocalAction) {\n return (\n <AssemblyLineBulkSucceededView\n onClickFinish={onClickFinish}\n action={action}\n count={countRef.current}\n pluralObjectName={pluralObjectName}\n stage={props.stage}\n />\n );\n }\n\n return (\n <AssemblyLineBulkCompletedView\n name={ActionObjectNames[action]}\n jobId={jobId}\n customerId ={currentUser.data?.id}\n onClickFinish={onClickFinish}\n actionSucceededMessage={\n `Successfully added all ${owners.length} ${pluralObjectName} to the selected ${ActionObjectNames[action]}`\n }\n />\n );\n }\n }\n }\n\n const preventClose = wizardStage === 'running' || wizardStage === 'complete';\n\n const popupSize = getPopupSize(wizardStage, action);\n\n return (\n <AssemblyLineStageContext subStage={props.stage} pipelineId={props.pipelineId}>\n <Popup\n title='Bulk Action'\n closePopup={props.closePopup}\n closeButton={!preventClose}\n size={popupSize}\n dialogClassName={popupSize === 'lg' ? 'bulk-action-modal' : 'bulk-action-modal-wide'}\n backdrop='static'\n >\n {isFetching ?\n (\n <div className='text-center p-5'>\n <Spinner as='div' animation='border' role='status' />\n <div>Loading {pluralObjectName}: {owners.length} / {viewModel.ownerIdMap.size}</div>\n </div>\n ) :\n getComponent()\n }\n </Popup>\n </AssemblyLineStageContext>\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,sn as i,t as a}from"./rp704-Pm.chunk.js";import{n as o,r as s,t as c}from"./Crs6pJ2h.chunk.js";import{a as l,i as u,t as d}from"./BAOFaFPQ.chunk.js";import{t as f}from"./C1kx8Ra5.chunk.js";import{t as p}from"./BQ9k2zyI.chunk.js";import{t as m}from"./Di_u2uix.chunk.js";import{t as h}from"./BvMTtGLi.chunk.js";import"./CfCYHRuo.chunk.js";import{n as g}from"./CFoexGFe.chunk.js";import{i as _,n as v,t as y}from"./BVbA6fE6.chunk.js";import{t as ee}from"./Cw0PORhW.chunk.js";import{t as te}from"./Ce7s4mG6.chunk.js";import{r as b}from"./DkstLT1W.chunk.js";import{t as ne}from"./CLCeObem2.chunk.js";import{t as x}from"./DBHDBu1Y2.chunk.js";import{t as S}from"./B-2mjJwh2.chunk.js";import{t as C}from"./CDO6_xgK2.chunk.js";import{t as w}from"./cwPDEI372.chunk.js";import{t as re}from"./eoeMwpAO2.chunk.js";import{S as ie,a as T,c as ae,d as oe,n as se,o as ce,r as le,t as ue,u as de}from"./BhKv6dKl2.chunk.js";import{t as E}from"./D-JsEiDq2.chunk.js";import{l as fe,s as D}from"./Dgk5cBBe.chunk.js";import{t as O}from"./DpqbC5uX.chunk.js";import"./Oh4_zGIH.chunk.js";import{t as k}from"./B1uI4W1W.chunk.js";import{t as A}from"./BuWnKnnb.chunk.js";import"./BCfBk23W.chunk.js";import{t as j}from"./DjzD1n9W.chunk.js";import{t as M}from"./Lh2c_aQx2.chunk.js";import{t as pe}from"./CZyPFSXo.chunk.js";import{r as me}from"./BRcHS92O.chunk.js";import{t as N}from"./DhW1fXNd.chunk.js";import{c as P,i as F}from"./DA0I3jYA.chunk.js";import{t as I}from"./dKyhMawf.chunk.js";import{t as he}from"./R3C4JT9X2.chunk.js";import{t as L}from"./D0JviwKV2.chunk.js";import{n as R,r as z}from"./C4Ey4nzb2.chunk.js";import{t as B}from"./JmL1DHFu.chunk.js";import{t as ge}from"./Dmnz9ZcP.chunk.js";import{t as _e}from"./CNfsk-2G.chunk.js";import{n as V,t as H}from"./DXH18G3-.chunk.js";import{t as U}from"./CxUyw6yf.chunk.js";import{t as ve}from"./X6xnBNx7.chunk.js";import{t as W}from"./Bhk_xXa62.chunk.js";import{t as G}from"./2LTy46yF.chunk.js";import{t as ye}from"./DHD4nY6U.chunk.js";import{t as be}from"./BUtlulMl.chunk.js";import{t as K}from"./Cwh6cLM4.chunk.js";import{t as xe}from"./B33M6TT5.chunk.js";var q=r(t(),1),Se={navContainer:`_navContainer_14jj2_1`},J=n();function Ce(e,t,n){G([u.getClassificationTreeFetchOptions(e,t),u.getPresentationFetchOptions(e,n)],[e])}function we(e,t){return{application:h.CURRICULUMS,action:m.Subjects.EDIT_CLASSIFICATION,args:[e,t.id]}}function Y(e){return{application:h.CURRICULUMS,action:m.Subjects.NEW_CLASSIFICATION,args:[e]}}function Te(e){let{presentationId:t,selectedClassificationId:n}=e,[r,i]=q.useState(),[a,l]=q.useState();Ce(t,i,l);let{hasPermissions:u}=j(),d=u(b.CurriculumsClassificationUpdate),f=u(b.CurriculumsClassificationDelete);function p(){let e=[];return d&&e.push({label:`Add child`,getAppLink:e=>({...Y(t),args:[t],params:{parentId:e.id}})}),f&&e.push({label:`Delete topic`,getAppLink:e=>({application:h.CURRICULUMS,action:m.Subjects.DELETE_CLASSIFICATION,args:[t,e.id]}),className:`text-danger`}),e}return(0,J.jsxs)(`div`,{className:`${Se.navContainer} h-auto pe-2 border-end`,children:[!!a&&(0,J.jsxs)(`div`,{className:`pb-2 mb-2 border-bottom`,children:[(0,J.jsx)(`h6`,{children:`Topics`}),(0,J.jsx)(`p`,{className:`mb-0`,children:a.name}),(0,J.jsx)(`p`,{className:`mb-2`,children:(0,J.jsx)(`em`,{children:a.description})})]}),d&&(0,J.jsxs)(c,{appLink:Y(t),className:`d-inline-block pb-2`,children:[(0,J.jsx)(o,{svg:k,size:s.Small}),(0,J.jsx)(`span`,{children:`New Topic`})]}),!!r&&(0,J.jsx)(`div`,{className:`${d?`border-top`:``} pt-1`,children:(0,J.jsx)(V,{tree:r,getAppLink:e=>we(t,e),selectedIds:[n],actions:p(),selectedLinkClassName:`bg-light fw-semibold`})})]})}function Ee(t){let{classificationId:n,routeToOnDelete:r,closePopup:i}=t,[a,o]=q.useState(),[s,c]=q.useState(!1);d(u.getClassificationFetchOptions(n,o),[]);let f=M(l.SUBJECT);return(0,J.jsx)(E,{title:`Delete Classification`,closePopup:i,showLoadingSpinner:!a,children:!!a&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{children:(0,J.jsxs)(`p`,{children:[`Are you sure you want to delete `,(0,J.jsx)(`strong`,{children:a.name}),`?`]})}),(0,J.jsxs)(L,{children:[(0,J.jsx)(L.Cancel,{onClick:t.closePopup}),(0,J.jsx)(L.Submit,{variant:`danger`,onClick:()=>{c(!0),f.deleteClassification(n,()=>{i(),r&&e.trigger(r)},i)},text:`Yes, delete this classification`,showSpinner:s})]})]})})}var De=e=>({application:h.CURRICULUMS,action:m.Subjects.EDIT_SUBJECT,args:[e]}),Oe=(e,t)=>n=>{if(n.id===t)return!0;let r=U.find(e,t);return!!U.find(r,n.id)};function ke(e){let t=P(),n=he(t),r=!e.classification?.id,i=!r||!!(t.values.parentIds&&t.values.parentIds.length),[a,o]=q.useState(i);q.useEffect(()=>o(i),[e.classification?.id,t.values.parentIds]),q.useEffect(()=>{t.values.backboneClassificationIds.length&&!t.touched.backboneClassificationIds&&t.setFieldTouched(`backboneClassificationIds`,!0)},[t.values.backboneClassificationIds]);let s=e=>t.setFieldValue(`parentIds`,O.addOrRemove(t.values.parentIds.map(e=>e.toString()),e.id.toString())),l=e=>t.setFieldValue(`backboneClassificationIds`,O.addOrRemove(t.values.backboneClassificationIds.map(e=>e.toString()),e.id.toString())),u=e=>`${z.getCustomFormControlClassName(t.errors,t.touched,e)} h-auto py-2`,{hasPermissions:d}=j(),p=d(b.CurriculumsClassificationUpdate);return(0,J.jsxs)(F,{children:[(0,J.jsx)(R,{label:`Name`,name:`name`,id:`name`,value:t.values.name,placeholder:`Enter a name for this curriculum classification`,disabled:!p,autoFocus:!0}),(0,J.jsx)(R,{label:`Description`,name:`description`,id:`description`,value:t.values.description,placeholder:`Add a description for this curriculum classification`,infoTooltip:`Description will be displayed where Name is not populated. This should only be used for elaborations.`,disabled:!p}),(0,J.jsx)(R,{as:`select`,label:`Type`,name:`type`,id:`type`,value:t.values.type,disabled:!p,children:f.getEnumKeys(f.omit(S,[S.Subject])).map(e=>(0,J.jsx)(`option`,{value:S[e],children:e},e))}),(0,J.jsx)(R,{as:`select`,label:`Status`,name:`status`,id:`status`,value:t.values.status,disabled:!p||r,children:f.getEnumKeys(x).map(e=>(0,J.jsx)(`option`,{value:x[e],children:e},e))}),(0,J.jsx)(R,{name:`parentIds`,disabled:!p,children:()=>(0,J.jsx)(`div`,{className:u(`parentIds`),children:(0,J.jsx)(H,{label:`Parent Topic(s)`,tree:e.classificationTree,selectedIds:t.values.parentIds,onSelect:s,collapse:a,noSelectionMessage:`No parent selected, this will be a root topic.`,isNodeDisabled:Oe(e.classificationTree,e.classification?.id),multiSelect:!0})})}),(0,J.jsx)(R,{name:`backboneClassificationIds`,disabled:!p,children:()=>(0,J.jsx)(`div`,{className:u(`backboneClassificationIds`),children:(0,J.jsx)(H,{label:`Mapped Backbone Subject(s)`,tree:e.subjectTree,selectedIds:t.values.backboneClassificationIds,onSelect:l,collapse:!r,getSelectedItemAppLink:De,multiSelect:!0})})}),(0,J.jsxs)(`div`,{className:`d-flex justify-content-between`,children:[p&&(0,J.jsx)(N,{showSpinner:t.isSubmitting,type:`submit`,disabled:!n,children:r?`Create`:`Save`}),!r&&d(b.CurriculumsClassificationDelete)&&(0,J.jsx)(c,{className:`btn btn-outline-danger`,appLink:{application:h.CURRICULUMS,action:m.Subjects.DELETE_CLASSIFICATION,args:[e.presentationId,e.classification?.id]},children:`Delete`})]})]})}var X=r(ne(),1),Ae=X.object().shape({name:X.string().trim().max(255,`Name is too long`).default(``),description:X.string().trim().max(255,`Description is too long`).default(``),parentIds:X.array().of(X.string()).default([p.Root]),backboneClassificationIds:X.array().of(X.string()).min(1,`A classification must be mapped to at least one subject`).required(`A classification must be mapped to at least one subject`).default([]),type:X.mixed().required(`Type is required`).default(S.Subject),status:X.mixed().required(`Status is required`).default(x.Draft),emphasize:X.boolean().default(!1),canBePreferred:X.boolean().default(!1)}).noUnknown(),je=X.object().shape({name:X.string().max(255,`Name is too long`).required(`Name is required`),description:X.string().max(16e3,`Description is too long`).required(`Description is required`),status:X.mixed().required(`Status is required`).default(C.Draft),type:X.mixed().required(`Type is required`).default(w.Curriculum)}),Me=X.object().shape({name:X.string().trim().max(255,`Name is too long`).required(`Name is required`).default(``),parentId:X.string().default(ee.Root)}).noUnknown(),Z={getTopNavItems(){let e=h.CURRICULUMS,t=m.Subjects;return[{label:`Topics`,appLink:{application:e,action:t.CLASSIFICATIONS},activeActions:[t.CLASSIFICATIONS,t.PRESENTATION_CLASSIFICATIONS,t.NEW_CLASSIFICATION,t.EDIT_CLASSIFICATION,t.EDIT_CLASSIFICATION_PLAYLISTS,t.EDIT_CLASSIFICATION_SERIES,t.EDIT_CLASSIFICATION_VIDEOS,t.DELETE_CLASSIFICATION,t.REMOVE_CLASSIFICATION_MEMBER]},{label:`Backbone Subjects`,appLink:{application:e,action:t.SUBJECTS},activeActions:[t.SUBJECTS,t.NEW_SUBJECT,t.EDIT_SUBJECT,t.EDIT_SUBJECT_PLAYLISTS,t.EDIT_SUBJECT_SERIES,t.EDIT_SUBJECT_VIDEOS,t.SUBJECT_CLASSIFICATIONS,t.DELETE_SUBJECT,t.ADD_SUBJECT_MEMBERS,t.REMOVE_SUBJECT_MEMBER]},{label:`Presentations`,appLink:{application:e,action:t.PRESENTATIONS},activeActions:[t.PRESENTATIONS,t.NEW_PRESENTATION,t.EDIT_PRESENTATION]}]},getEditSubjectTabs(e,t){let n=h.CURRICULUMS,r=m.Subjects,i=[e];return[{label:`Edit Backbone Subject Details`,appLink:{action:r.EDIT_SUBJECT}},{label:`Topics`,appLink:{action:r.SUBJECT_CLASSIFICATIONS}},{label:`Videos`,appLink:{action:r.EDIT_SUBJECT_VIDEOS}}].map(e=>{let r={...e.appLink,application:n,args:i};return t&&(r.params={presentationId:t}),{label:e.label,appLink:r}})},getEditClassificationTabs(e,t){let n=h.CURRICULUMS,r=m.Subjects;return[{label:`Edit Topic Details`,appLink:{application:n,action:r.EDIT_CLASSIFICATION,args:[e,t]}},{label:`Videos`,appLink:{application:n,action:r.EDIT_CLASSIFICATION_VIDEOS,args:[e,t]}}]}};function Ne(e){let{presentationId:t,classificationId:n}=e,[r,i]=q.useState(),[a,o]=q.useState(),[s,c]=q.useState(),[f,p]=q.useState(),m=M(l.SUBJECT),h=u.getClassificationFetchOptions(n,i),g=u.getPresentationFetchOptions(t,o),_=u.getClassificationTreeFetchOptions(t,c);return d(u.getSubjectTreeFetchOptions(p,w.Curriculum),[]),d(h,[n]),G([g,_],[t]),(0,J.jsxs)(`div`,{children:[(0,J.jsx)(oe,{presentation:a,classificationId:n,getTabs:(e,t)=>r?.type===S.CurriculumLeaf?Z.getEditClassificationTabs(e,t):[]}),!!r&&!!s&&!!f&&(0,J.jsx)(de,{classification:r,saveClassification:(e,t)=>{let i={pinnedVideoMasterId:r?.pinnedVideoMasterId||null,...e};return m.updateClassification(n,i,t,t)},validationSchema:Ae,children:(0,J.jsx)(ke,{presentationId:t,classificationTree:s,subjectTree:f,classification:r})})]})}function Pe(e,t){let n=fe();function r(n){return pe.classificationMembers(e,t,n)}function i(e){n(r(e))}return ye(r,i).items}function Fe(e){let{presentationId:t,classificationId:n,memberType:r}=e,[i,a]=q.useState(),[o,s]=q.useState(),c=Pe(e.classificationId,e.memberType);d(u.getPresentationFetchOptions(t,a),[]),d(u.getClassificationFetchOptions(n,s),[n]);let f=M(l.SUBJECT),p={items:c,memberType:r,classification:o,updatePinnedVideo:(e,t)=>{let r={...o,pinnedVideoMasterId:e};f.updateClassification(n,r,t)},getItemAppLink:e=>v.getMemberAppLink(r,e.id),getActions:e=>v.getMemberActions(h.CURRICULUMS,n,_.Classification,r,e.id)},m={presentation:i,classificationId:n,getTabs:Z.getEditClassificationTabs},g=te.propsLoaded(p);return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(oe,{...m,memberType:r}),g&&(0,J.jsx)(ae,{...p})]})}var Ie=(e,t)=>n=>{if(n.id===t)return!0;let r=U.find(e,t);return!!U.find(r,n.id)};function Le(e){let t=!e.id,n=P(),r=he(n),i=!t||!!n.values.parentId,[a,o]=q.useState(i);q.useEffect(()=>o(i),[e.id,n.values.parentId]);let s=e=>{let t=e.id===n.values.parentId?null:e.id;n.setFieldValue(`parentId`,t)},l=`${z.getCustomFormControlClassName(n.errors,n.touched,`parentId`)} h-auto py-2`,{hasPermissions:u}=j(),d=u(b.CurriculumsBackboneUpdate);return(0,J.jsxs)(F,{children:[(0,J.jsx)(R,{label:`Name`,name:`name`,id:`name`,value:n.values.name,placeholder:`Enter a name for this backbone subject`,disabled:!d,autoFocus:!0}),(0,J.jsx)(R,{name:`parentId`,disabled:!d,children:()=>(0,J.jsx)(`div`,{className:l,children:(0,J.jsx)(H,{label:`Parent Backbone Subject`,tree:e.subjectTree,selectedIds:[n.values.parentId],onSelect:s,collapse:a,noSelectionMessage:`No parent selected, this will be a root backbone subject.`,isNodeDisabled:Ie(e.subjectTree,e.id)})})}),(0,J.jsxs)(`div`,{className:`d-flex justify-content-between`,children:[d&&(0,J.jsx)(N,{showSpinner:n.isSubmitting,type:`submit`,disabled:!r,children:t?`Create`:`Save`}),!t&&u(b.CurriculumsBackboneDelete)&&(0,J.jsx)(c,{className:`btn btn-outline-danger`,appLink:{...e.deleteSubject,args:[e.id]},children:`Delete`})]})]})}function Re(e){let t=P();return(0,J.jsxs)(F,{children:[(0,J.jsx)(R,{label:`Name`,type:`text`,name:`name`,id:`name`,value:t.values.name,placeholder:`Enter a name for this presentation`,autoFocus:!0}),(0,J.jsx)(R,{label:`Description`,as:`textarea`,name:`description`,id:`description`,value:t.values.description,placeholder:`Describe this presentation here`}),(0,J.jsx)(R,{as:`select`,label:`Status`,name:`status`,id:`status`,value:t.values.status,disabled:e.isNew,children:f.getEnumKeys(C).map(e=>(0,J.jsx)(`option`,{value:C[e],children:e},e))}),(0,J.jsx)(R,{as:`select`,label:`Type`,name:`type`,id:`type`,value:t.values.type,children:f.getEnumKeys(w).map(e=>(0,J.jsx)(`option`,{value:w[e],children:e},e))}),(0,J.jsx)(_e,{imageType:me.Covers,fieldName:`cover`,uploadAppLink:e.imageAppLink}),(0,J.jsx)(`div`,{className:`btn-container d-flex justify-content-end`,children:(0,J.jsx)(be,{isNew:e.isNew})})]})}var ze=(t,n)=>r=>{n(),!(!r||!r.id)&&e.trigger({application:h.CURRICULUMS,action:m.Subjects.EDIT_CLASSIFICATION,args:[t,r.id]})};function Be(e){let{presentationId:t,parentId:n}=e,[r,i]=q.useState(),[a,o]=q.useState(),s=M(l.SUBJECT),c=u.getClassificationTreeFetchOptions(t,i);return d(u.getSubjectTreeFetchOptions(o,w.Curriculum),[]),d(c,[t]),(0,J.jsxs)(`div`,{children:[(0,J.jsx)(`h4`,{className:`py-2`,children:`Create New Classification`}),!!a&&!!r&&(0,J.jsx)(de,{classification:n?{parentIds:[n]}:{},saveClassification:(e,n)=>s.createClassification({...e,presentationId:t},ze(t,n),n),validationSchema:Ae,children:(0,J.jsx)(ke,{presentationId:e.presentationId,classificationTree:r,subjectTree:a})})]})}function Ve(e,t){switch(e){case g.Playlists:return K.playlist(t);case g.Series:return W.series(t);case g.Videos:return B.video(t)}}function He(e){let[t,n]=q.useState(),[r,i]=q.useState(!1),o=D(Ve(e.memberType,e.memberId)),s=M(l.SUBJECT);d(u.getClassificationFetchOptions(e.classificationId,n),[e.classificationId]);let c=()=>{i(!0),s.removeObjectsFromClassification(e.classificationId,[e.memberId],e.memberType,null,null,e.closePopup,e.closePopup),t.pinnedVideoMasterId===e.memberId&&s.updateClassification(e.classificationId,{...t,pinnedVideoMasterId:null})},f=!!t&&!!o.data;return(0,J.jsx)(E,{title:`Remove ${a.toTitleCase(v.singularizeMemberType(e.memberType))}`,closePopup:e.closePopup,showLoadingSpinner:!f,children:f&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{children:[(0,J.jsxs)(`p`,{children:[`Are you sure you want to remove `,(0,J.jsx)(`strong`,{children:o.data.name}),` from `,(0,J.jsx)(`strong`,{children:t.name}),`?`]}),(0,J.jsx)(`p`,{children:`This will not remove it from the backbone subject.`})]}),(0,J.jsxs)(L,{children:[(0,J.jsx)(L.Cancel,{onClick:e.closePopup}),(0,J.jsx)(L.Submit,{variant:`danger`,onClick:c,text:`Yes, remove this ${v.singularizeMemberType(e.memberType)}`,showSpinner:r})]})]})})}function Ue({id:e}){let[t,n]=q.useState(),r=M(l.SUBJECT);d(u.getPresentationFetchOptions(e,n),[e]);function i(t,n){let i={...t,contentRegions:t.contentRegions?.map(e=>e.systemName)};r.updatePresentation(e,i,n,n)}let a={application:h.CURRICULUMS,action:m.Subjects.UPLOAD_IMAGE},o=t?.id;return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`h4`,{className:`py-2`,children:`Edit Presentation`}),!!o&&(0,J.jsx)(I,{initialValues:t,validationSchema:je,onSubmit:i,children:(0,J.jsx)(Re,{isNew:!t?.id,imageAppLink:a})})]})}var We=e=>({application:h.CURRICULUMS,action:m.Subjects.EDIT_PRESENTATION,args:[e.id]}),Ge={application:h.CURRICULUMS,action:m.Subjects.NEW_PRESENTATION};function Ke(){let[e,t]=q.useState();d(u.getPresentationsFetchOptions(t,w.Curriculum),[]);let{hasPermissions:n}=j(),r=n(b.CurriculumsBackboneUpdate);return(0,J.jsxs)(`div`,{children:[(0,J.jsxs)(`div`,{className:`d-flex justify-content-between mb-2`,children:[(0,J.jsx)(`h5`,{className:`d-inline-block m-0`,children:`Select a presentation to edit:`}),r&&(0,J.jsxs)(c,{appLink:Ge,className:`d-block`,children:[(0,J.jsx)(o,{svg:k,size:s.Small}),(0,J.jsx)(`span`,{children:`New Presentation`})]})]}),(0,J.jsx)(xe,{presentations:e,getAppLink:We})]})}function qe(){let t=M(l.SUBJECT);function n(n,r){function i(t){r(),!(!t||!t.id)&&e.trigger({application:h.CURRICULUMS,action:m.Subjects.EDIT_PRESENTATION,args:[t.id]})}t.createPresentation(n,i,r)}let r={application:h.CURRICULUMS,action:m.Subjects.UPLOAD_IMAGE};return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`h4`,{className:`py-2`,children:`Create New Presentation`}),(0,J.jsx)(I,{initialValues:{},validationSchema:je,onSubmit:n,children:(0,J.jsx)(Re,{isNew:!0,imageAppLink:r})})]})}function Q(e,t){return A.getSetStateByKey(e,t)}function Je(e,t){d(u.getSubjectTreeFetchOptions(Q(t,`subjectTree`),w.Curriculum),[])}function Ye(t,n,r,i,a){let{selectedSubject:o}=i,s=()=>Q(a,`showConfirmationPopup`)(!1);n.addObjectsToSubject(o.id,t.map(e=>e.id),r.memberType,i.addToClassifications,()=>{s(),e.trigger(Qe(o.id,r.memberType))},s)}function Xe(e,t){switch(e){case g.Playlists:return K.playlistsById(t);case g.Series:return W.seriesById(t);case g.Videos:return B.videosById(t)}}function Ze(e,t,n){if(!(!t||!n))return`Add ${t.length===1?`this ${v.singularizeMemberType(e)}`:`these ${e}`} to ${n.name}`}function Qe(e,t){let n={application:h.CURRICULUMS,args:[e]};switch(t){case g.Playlists:return{...n,action:m.Subjects.EDIT_SUBJECT_PLAYLISTS};case g.Series:return{...n,action:m.Subjects.EDIT_SUBJECT_SERIES};case g.Videos:return{...n,action:m.Subjects.EDIT_SUBJECT_VIDEOS}}}function $e(e){return a.toTitleCase(v.singularizeMemberType(e))}function et(e,t){return(n,r,i)=>{i(),Q(t,`selectedSubject`)(U.find(e.subjectTree,O.first(n))),Q(t,`addToClassifications`)(r),Q(t,`showConfirmationPopup`)(!0)}}function tt(e){let[t,n]=q.useState({}),r=D(Xe(e.memberType,e.objectIds)),i=M(l.SUBJECT);Je(e,n);let o=e=>Q(n,`showConfirmationPopup`)(e);return(0,J.jsxs)(J.Fragment,{children:[!!r.data&&!!t.subjectTree&&(0,J.jsx)(ce,{memberType:e.memberType,presentationType:w.Curriculum,objects:r.data,subjectTree:t.subjectTree,onClickAddToSubject:et(t,n)}),t.showConfirmationPopup&&(0,J.jsxs)(ge,{title:Ze(e.memberType,r.data,t.selectedSubject),onClickConfirm:()=>Ye(r.data,i,e,t,n),closePopup:()=>o(!1),children:[(0,J.jsxs)(`p`,{children:[`The following ${e.memberType} will be added to `,(0,J.jsx)(`strong`,{children:t.selectedSubject.name}),t.addToClassifications?` and its mapped topics:`:`:`]}),(0,J.jsx)(`ul`,{children:r.data.map(e=>(0,J.jsx)(`li`,{children:e.name},e.id))}),!t.addToClassifications&&(0,J.jsx)(`p`,{children:`${r.data.length===1?`It`:`They`} will not be added to its mapped topics.`}),(0,J.jsxs)(`p`,{children:[`${$e(e.memberType)} to topic mappings can be managed from the `,(0,J.jsx)(`strong`,{children:`Edit Backbone Subject ${a.toTitleCase(e.memberType)} `}),`page.`]})]})]})}function nt(t){let{subjectId:n,routeToOnDelete:r,closePopup:i}=t,[a,o]=q.useState(),[s,c]=q.useState(!1);d(u.getSubjectFetchOptions(n,o),[]);let f=M(l.SUBJECT);return(0,J.jsx)(E,{title:`Delete Backbone Subject`,closePopup:i,showLoadingSpinner:!a,children:!!a&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{children:[(0,J.jsxs)(`p`,{children:[`Are you sure you want to delete `,(0,J.jsx)(`strong`,{children:a.name}),`?`]}),(0,J.jsx)(`p`,{children:`Backbone subject that have mapped topics cannot be deleted.`})]}),(0,J.jsxs)(L,{children:[(0,J.jsx)(L.Cancel,{onClick:i}),(0,J.jsx)(L.Submit,{variant:`danger`,onClick:()=>{c(!0),f.deleteSubject(n,()=>{i(),r&&e.trigger(r)},i)},text:`Yes, delete this backbone subject`,showSpinner:s})]})]})})}function rt({subjectId:e}){let[t,n]=q.useState(),[r,i]=q.useState(),a=M(l.SUBJECT),o=u.getSubjectFetchOptions(e,n);d(u.getSubjectTreeFetchOptions(i,w.Curriculum),[]),d(o,[e]);let s=(t,n)=>a.updateSubject(e,t,n,n),c={application:h.CURRICULUMS,action:m.Subjects.DELETE_SUBJECT};return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(T,{subjectId:e,presentationType:w.Curriculum,activeAction:m.Subjects.EDIT_SUBJECT,getTabs:(e,t)=>y.getEditBackboneClassificationTabs(h.CURRICULUMS,e,t)}),!!t&&!!r&&(0,J.jsx)(I,{initialValues:t,validationSchema:Me,onSubmit:s,children:(0,J.jsx)(Le,{id:e,subjectTree:r,deleteSubject:c})})]})}function $(e,t){return A.getSetStateByKey(e,t)}function it(e,t,n){let{subjectId:r,memberType:i,presentationId:a}=e;d(u.getPresentationsFetchOptions($(n,`presentations`),w.Curriculum),[]),d(u.getSubjectMemberIdsFetchOptions(r,i,$(n,`memberIds`)),[r,i]),d(!!a&&u.getSubjectClassificationFetchOptions(r,$(n,`classifications`),a,i),[r,i,a],!!a)}function at(e,t,n,r){let{classifications:i}=n;q.useEffect(()=>{$(r,`membersWithClassifications`)(ct(t.memberType,e,i))},[e,i])}function ot(e,t){switch(e){case g.Playlists:return K.playlistsById(t);case g.Series:return W.seriesById(t);case g.Videos:return B.videosById(t)}}var st=(e,t)=>n=>{let r=h.CURRICULUMS,i=[t,n],a;switch(e){case g.Playlists:a=m.Subjects.EDIT_CLASSIFICATION_PLAYLISTS;break;case g.Series:a=m.Subjects.EDIT_CLASSIFICATION_SERIES;break;case g.Videos:a=m.Subjects.EDIT_CLASSIFICATION_VIDEOS;break}return{application:r,action:a,args:i}};function ct(e,t,n){if(!t||!n)return;let r=(t,n)=>!!n[e]&&!!n[e].data.filter(e=>e.id===t.id).length;return t.map(e=>({id:e.id,name:e.name,classifications:n.map(t=>({id:t.id,selected:r(e,t)}))}))}function lt(e,t,n,r,i,a,o){(o?e.addObjectsToClassification.bind(e):e.removeObjectsFromClassification.bind(e))(a,n,t,r,i)}function ut(e){switch(e){case g.Playlists:return m.Subjects.EDIT_SUBJECT_PLAYLISTS;case g.Series:return m.Subjects.EDIT_SUBJECT_SERIES;case g.Videos:return m.Subjects.EDIT_SUBJECT_VIDEOS}}function dt(t){let[n,r]=q.useState({}),{presentations:i,classifications:a,memberIds:o,membersWithClassifications:s}=n,c=D(Array.isArray(o)&&ot(t.memberType,o)),u=M(l.SUBJECT);it(t,n,r),at(c.data,t,n,r),q.useEffect(()=>{t.presentationId||!i?.length||d(O.first(i).id)},[t.presentationId]);function d(n){e.trigger({application:h.CURRICULUMS,action:t.action,args:[t.subjectId],params:{presentationId:n}})}let f=!!t.presentationId&&!!a;return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(T,{subjectId:t.subjectId,presentationType:w.Curriculum,presentationId:t.presentationId,activeAction:ut(t.memberType),getTabs:(e,t)=>y.getEditBackboneClassificationTabs(h.CURRICULUMS,e,t)}),(0,J.jsx)(re,{variant:`info`,className:`m-0`,children:`Select which ${t.memberType} are shown for each topic in this backbone subject. Change the selected presentation to view different topics.`}),(0,J.jsx)(`div`,{className:`w-50 py-2`,children:!!i&&(0,J.jsx)(ve,{presentations:i,currentPresentationId:t.presentationId,setCurrentPresentation:e=>d(e.id)})}),f&&(0,J.jsx)(se,{members:s||[],memberType:t.memberType,getMemberAppLink:e=>v.getMemberAppLink(t.memberType,e),getActions:e=>v.getMemberActions(h.CURRICULUMS,t.subjectId,_.Subject,t.memberType,e),classifications:a,getClassificationAppLink:t.presentationId&&st(t.memberType,t.presentationId),onToggleClassification:(e,n,r)=>lt(u,t.memberType,r?[r]:o,t.subjectId,t.presentationId,e,n)})]})}var ft=t=>n=>{t(),!(!n||!n.id)&&e.trigger({application:h.CURRICULUMS,action:m.Subjects.EDIT_SUBJECT,args:[n.id]})};function pt({parentId:e}){let[t,n]=q.useState(),r=M(l.SUBJECT);d(u.getSubjectTreeFetchOptions(n,w.Curriculum),[]);let i=(e,n)=>(+e.parentId||(e.parentId=t.id),r.createSubject(e,ft(n),n)),a={application:h.CURRICULUMS,action:m.Subjects.PRESENTATIONS},o={application:h.CURRICULUMS,action:m.Subjects.DELETE_SUBJECT};return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:`pb-2 border-bottom`,children:(0,J.jsx)(ie,{backToName:`Presentations`,appLink:a})}),(0,J.jsx)(`h4`,{className:`py-2`,children:`Create New Subject`}),!!t&&(0,J.jsx)(I,{initialValues:{parentId:e},validationSchema:Me,onSubmit:i,children:(0,J.jsx)(Le,{id:e,subjectTree:t,deleteSubject:o})})]})}function mt(e,t){switch(e){case g.Playlists:return K.playlist(t);case g.Series:return W.series(t);case g.Videos:return B.video(t)}}function ht(e){let[t,n]=q.useState(),[r,i]=q.useState(!1),o=D(mt(e.memberType,e.memberId)),s=M(l.SUBJECT);d(u.getSubjectFetchOptions(e.subjectId,n),[e.subjectId]);let c=()=>{i(!0),s.removeObjectsFromSubject(e.subjectId,[e.memberId],e.memberType,e.closePopup,e.closePopup)},f=!!t&&!!o.data;return(0,J.jsx)(E,{title:`Remove ${a.toTitleCase(v.singularizeMemberType(e.memberType))}`,closePopup:e.closePopup,showLoadingSpinner:!f,children:f&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{children:[(0,J.jsxs)(`p`,{children:[`Are you sure you want to remove `,(0,J.jsx)(`strong`,{children:o.data.name}),` from `,(0,J.jsx)(`strong`,{children:t.name}),`?`]}),(0,J.jsx)(`p`,{children:`Please ensure that it is not in any classifications before removing.`})]}),(0,J.jsxs)(L,{children:[(0,J.jsx)(L.Cancel,{onClick:e.closePopup}),(0,J.jsx)(L.Submit,{onClick:c,variant:`danger`,text:`Yes, remove this ${v.singularizeMemberType(e.memberType)}`,showSpinner:r})]})]})})}function gt(e,t){let n=e=>A.getSetStateByKey(t,e);d(u.getSubjectClassificationFetchOptions(e,n(`classifications`)),[e]),d(u.getPresentationsFetchOptions(n(`presentations`),w.Curriculum),[])}function _t({subjectId:e}){let[t,n]=q.useState({});return gt(e,n),(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(T,{subjectId:e,presentationType:w.Curriculum,activeAction:m.Subjects.SUBJECT_CLASSIFICATIONS,getTabs:(e,t)=>y.getEditBackboneClassificationTabs(h.CURRICULUMS,e,t)}),(0,J.jsx)(le,{presentations:t.presentations,classificationDictionary:O.groupBy(t.classifications,`presentationId`)})]})}var vt={navContainer:`_navContainer_14jj2_1`};function yt({selectedSubjectId:e}){let[t,n]=q.useState();d(u.getSubjectTreeFetchOptions(n,w.Curriculum),[]);let r=q.useCallback(e=>({application:h.CURRICULUMS,action:m.Subjects.EDIT_SUBJECT,args:[e.id]}),[]),i={application:h.CURRICULUMS,action:m.Subjects.NEW_SUBJECT},{hasPermissions:a}=j(),l=a(b.CurriculumsBackboneUpdate);return(0,J.jsxs)(`div`,{className:`${vt.navContainer} h-auto pe-2 border-end`,children:[(0,J.jsx)(`h2`,{className:`h5 m-0 text-center`,children:`Backbone Subjects`}),(0,J.jsx)(`div`,{className:`d-flex justify-content-center`,children:(0,J.jsx)(`span`,{className:`${l?`border-bottom`:``} badge bg-blue my-2`,children:`Curriculums`})}),l&&(0,J.jsxs)(c,{appLink:i,className:`d-inline-block border-top p-2`,children:[(0,J.jsx)(o,{svg:k,size:s.Small}),(0,J.jsx)(`span`,{children:`New Backbone Subject`})]}),!!t&&(0,J.jsx)(`div`,{className:`border-top pt-1`,children:(0,J.jsx)(V,{tree:t,getAppLink:r,selectedIds:[e],actions:[]})})]})}function bt({currentAppLink:e}){return(0,J.jsx)(ue,{navItems:Z.getTopNavItems(),currentAppLink:e})}var xt=i({AddSubjectMembersView:()=>tt,ClassificationNavView:()=>Te,DeleteClassificationView:()=>Ee,DeleteSubjectView:()=>nt,EditClassificationMembersView:()=>Fe,EditClassificationView:()=>Ne,EditPresentationView:()=>Ue,EditPresentationsListView:()=>Ke,EditSubjectMembersView:()=>dt,EditSubjectView:()=>rt,NewClassificationView:()=>Be,NewPresentationView:()=>qe,NewSubjectView:()=>pt,RemoveClassificationMemberView:()=>He,RemoveSubjectMemberView:()=>ht,SubjectClassificationsView:()=>_t,SubjectNavView:()=>yt,TopNavView:()=>bt});export{bt as n,xt as t};
2
- //# sourceMappingURL=CSuC7le7.chunk.js.map
1
+ import{C as e,a as t,i as n,ln as r,sn as i,t as a}from"./rp704-Pm.chunk.js";import{n as o,r as s,t as c}from"./Crs6pJ2h.chunk.js";import{a as l,i as u,t as d}from"./BAOFaFPQ.chunk.js";import{t as f}from"./C1kx8Ra5.chunk.js";import{t as p}from"./BQ9k2zyI.chunk.js";import{t as m}from"./Di_u2uix.chunk.js";import{t as h}from"./BvMTtGLi.chunk.js";import"./CfCYHRuo.chunk.js";import{n as g}from"./CFoexGFe.chunk.js";import{i as _,n as v,t as y}from"./BVbA6fE6.chunk.js";import{t as ee}from"./Cw0PORhW.chunk.js";import{t as te}from"./Ce7s4mG6.chunk.js";import{r as b}from"./DkstLT1W.chunk.js";import{t as ne}from"./CLCeObem2.chunk.js";import{t as x}from"./DBHDBu1Y2.chunk.js";import{t as S}from"./B-2mjJwh2.chunk.js";import{t as C}from"./CDO6_xgK2.chunk.js";import{t as w}from"./cwPDEI372.chunk.js";import{t as re}from"./eoeMwpAO2.chunk.js";import{S as ie,a as T,c as ae,d as oe,n as se,o as ce,r as le,t as ue,u as de}from"./GpDEun8c2.chunk.js";import{t as E}from"./D-JsEiDq2.chunk.js";import{l as fe,s as D}from"./Dgk5cBBe.chunk.js";import{t as O}from"./DpqbC5uX.chunk.js";import"./Oh4_zGIH.chunk.js";import{t as k}from"./B1uI4W1W.chunk.js";import{t as A}from"./BuWnKnnb.chunk.js";import"./BCfBk23W.chunk.js";import{t as j}from"./DjzD1n9W.chunk.js";import{t as M}from"./Lh2c_aQx2.chunk.js";import{t as pe}from"./CZyPFSXo.chunk.js";import{r as me}from"./BRcHS92O.chunk.js";import{t as N}from"./DhW1fXNd.chunk.js";import{c as P,i as F}from"./DA0I3jYA.chunk.js";import{t as I}from"./dKyhMawf.chunk.js";import{t as he}from"./R3C4JT9X2.chunk.js";import{t as L}from"./D0JviwKV2.chunk.js";import{n as R,r as z}from"./C4Ey4nzb2.chunk.js";import{t as B}from"./JmL1DHFu.chunk.js";import{t as ge}from"./Dmnz9ZcP.chunk.js";import{t as _e}from"./CNfsk-2G.chunk.js";import{n as V,t as H}from"./DXH18G3-.chunk.js";import{t as U}from"./CxUyw6yf.chunk.js";import{t as ve}from"./X6xnBNx7.chunk.js";import{t as W}from"./Bhk_xXa62.chunk.js";import{t as G}from"./2LTy46yF.chunk.js";import{t as ye}from"./DHD4nY6U.chunk.js";import{t as be}from"./BUtlulMl.chunk.js";import{t as K}from"./Cwh6cLM4.chunk.js";import{t as xe}from"./B33M6TT5.chunk.js";var q=r(t(),1),Se={navContainer:`_navContainer_14jj2_1`},J=n();function Ce(e,t,n){G([u.getClassificationTreeFetchOptions(e,t),u.getPresentationFetchOptions(e,n)],[e])}function we(e,t){return{application:h.CURRICULUMS,action:m.Subjects.EDIT_CLASSIFICATION,args:[e,t.id]}}function Y(e){return{application:h.CURRICULUMS,action:m.Subjects.NEW_CLASSIFICATION,args:[e]}}function Te(e){let{presentationId:t,selectedClassificationId:n}=e,[r,i]=q.useState(),[a,l]=q.useState();Ce(t,i,l);let{hasPermissions:u}=j(),d=u(b.CurriculumsClassificationUpdate),f=u(b.CurriculumsClassificationDelete);function p(){let e=[];return d&&e.push({label:`Add child`,getAppLink:e=>({...Y(t),args:[t],params:{parentId:e.id}})}),f&&e.push({label:`Delete topic`,getAppLink:e=>({application:h.CURRICULUMS,action:m.Subjects.DELETE_CLASSIFICATION,args:[t,e.id]}),className:`text-danger`}),e}return(0,J.jsxs)(`div`,{className:`${Se.navContainer} h-auto pe-2 border-end`,children:[!!a&&(0,J.jsxs)(`div`,{className:`pb-2 mb-2 border-bottom`,children:[(0,J.jsx)(`h6`,{children:`Topics`}),(0,J.jsx)(`p`,{className:`mb-0`,children:a.name}),(0,J.jsx)(`p`,{className:`mb-2`,children:(0,J.jsx)(`em`,{children:a.description})})]}),d&&(0,J.jsxs)(c,{appLink:Y(t),className:`d-inline-block pb-2`,children:[(0,J.jsx)(o,{svg:k,size:s.Small}),(0,J.jsx)(`span`,{children:`New Topic`})]}),!!r&&(0,J.jsx)(`div`,{className:`${d?`border-top`:``} pt-1`,children:(0,J.jsx)(V,{tree:r,getAppLink:e=>we(t,e),selectedIds:[n],actions:p(),selectedLinkClassName:`bg-light fw-semibold`})})]})}function Ee(t){let{classificationId:n,routeToOnDelete:r,closePopup:i}=t,[a,o]=q.useState(),[s,c]=q.useState(!1);d(u.getClassificationFetchOptions(n,o),[]);let f=M(l.SUBJECT);return(0,J.jsx)(E,{title:`Delete Classification`,closePopup:i,showLoadingSpinner:!a,children:!!a&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{children:(0,J.jsxs)(`p`,{children:[`Are you sure you want to delete `,(0,J.jsx)(`strong`,{children:a.name}),`?`]})}),(0,J.jsxs)(L,{children:[(0,J.jsx)(L.Cancel,{onClick:t.closePopup}),(0,J.jsx)(L.Submit,{variant:`danger`,onClick:()=>{c(!0),f.deleteClassification(n,()=>{i(),r&&e.trigger(r)},i)},text:`Yes, delete this classification`,showSpinner:s})]})]})})}var De=e=>({application:h.CURRICULUMS,action:m.Subjects.EDIT_SUBJECT,args:[e]}),Oe=(e,t)=>n=>{if(n.id===t)return!0;let r=U.find(e,t);return!!U.find(r,n.id)};function ke(e){let t=P(),n=he(t),r=!e.classification?.id,i=!r||!!(t.values.parentIds&&t.values.parentIds.length),[a,o]=q.useState(i);q.useEffect(()=>o(i),[e.classification?.id,t.values.parentIds]),q.useEffect(()=>{t.values.backboneClassificationIds.length&&!t.touched.backboneClassificationIds&&t.setFieldTouched(`backboneClassificationIds`,!0)},[t.values.backboneClassificationIds]);let s=e=>t.setFieldValue(`parentIds`,O.addOrRemove(t.values.parentIds.map(e=>e.toString()),e.id.toString())),l=e=>t.setFieldValue(`backboneClassificationIds`,O.addOrRemove(t.values.backboneClassificationIds.map(e=>e.toString()),e.id.toString())),u=e=>`${z.getCustomFormControlClassName(t.errors,t.touched,e)} h-auto py-2`,{hasPermissions:d}=j(),p=d(b.CurriculumsClassificationUpdate);return(0,J.jsxs)(F,{children:[(0,J.jsx)(R,{label:`Name`,name:`name`,id:`name`,value:t.values.name,placeholder:`Enter a name for this curriculum classification`,disabled:!p,autoFocus:!0}),(0,J.jsx)(R,{label:`Description`,name:`description`,id:`description`,value:t.values.description,placeholder:`Add a description for this curriculum classification`,infoTooltip:`Description will be displayed where Name is not populated. This should only be used for elaborations.`,disabled:!p}),(0,J.jsx)(R,{as:`select`,label:`Type`,name:`type`,id:`type`,value:t.values.type,disabled:!p,children:f.getEnumKeys(f.omit(S,[S.Subject])).map(e=>(0,J.jsx)(`option`,{value:S[e],children:e},e))}),(0,J.jsx)(R,{as:`select`,label:`Status`,name:`status`,id:`status`,value:t.values.status,disabled:!p||r,children:f.getEnumKeys(x).map(e=>(0,J.jsx)(`option`,{value:x[e],children:e},e))}),(0,J.jsx)(R,{name:`parentIds`,disabled:!p,children:()=>(0,J.jsx)(`div`,{className:u(`parentIds`),children:(0,J.jsx)(H,{label:`Parent Topic(s)`,tree:e.classificationTree,selectedIds:t.values.parentIds,onSelect:s,collapse:a,noSelectionMessage:`No parent selected, this will be a root topic.`,isNodeDisabled:Oe(e.classificationTree,e.classification?.id),multiSelect:!0})})}),(0,J.jsx)(R,{name:`backboneClassificationIds`,disabled:!p,children:()=>(0,J.jsx)(`div`,{className:u(`backboneClassificationIds`),children:(0,J.jsx)(H,{label:`Mapped Backbone Subject(s)`,tree:e.subjectTree,selectedIds:t.values.backboneClassificationIds,onSelect:l,collapse:!r,getSelectedItemAppLink:De,multiSelect:!0})})}),(0,J.jsxs)(`div`,{className:`d-flex justify-content-between`,children:[p&&(0,J.jsx)(N,{showSpinner:t.isSubmitting,type:`submit`,disabled:!n,children:r?`Create`:`Save`}),!r&&d(b.CurriculumsClassificationDelete)&&(0,J.jsx)(c,{className:`btn btn-outline-danger`,appLink:{application:h.CURRICULUMS,action:m.Subjects.DELETE_CLASSIFICATION,args:[e.presentationId,e.classification?.id]},children:`Delete`})]})]})}var X=r(ne(),1),Ae=X.object().shape({name:X.string().trim().max(255,`Name is too long`).default(``),description:X.string().trim().max(255,`Description is too long`).default(``),parentIds:X.array().of(X.string()).default([p.Root]),backboneClassificationIds:X.array().of(X.string()).min(1,`A classification must be mapped to at least one subject`).required(`A classification must be mapped to at least one subject`).default([]),type:X.mixed().required(`Type is required`).default(S.Subject),status:X.mixed().required(`Status is required`).default(x.Draft),emphasize:X.boolean().default(!1),canBePreferred:X.boolean().default(!1)}).noUnknown(),je=X.object().shape({name:X.string().max(255,`Name is too long`).required(`Name is required`),description:X.string().max(16e3,`Description is too long`).required(`Description is required`),status:X.mixed().required(`Status is required`).default(C.Draft),type:X.mixed().required(`Type is required`).default(w.Curriculum)}),Me=X.object().shape({name:X.string().trim().max(255,`Name is too long`).required(`Name is required`).default(``),parentId:X.string().default(ee.Root)}).noUnknown(),Z={getTopNavItems(){let e=h.CURRICULUMS,t=m.Subjects;return[{label:`Topics`,appLink:{application:e,action:t.CLASSIFICATIONS},activeActions:[t.CLASSIFICATIONS,t.PRESENTATION_CLASSIFICATIONS,t.NEW_CLASSIFICATION,t.EDIT_CLASSIFICATION,t.EDIT_CLASSIFICATION_PLAYLISTS,t.EDIT_CLASSIFICATION_SERIES,t.EDIT_CLASSIFICATION_VIDEOS,t.DELETE_CLASSIFICATION,t.REMOVE_CLASSIFICATION_MEMBER]},{label:`Backbone Subjects`,appLink:{application:e,action:t.SUBJECTS},activeActions:[t.SUBJECTS,t.NEW_SUBJECT,t.EDIT_SUBJECT,t.EDIT_SUBJECT_PLAYLISTS,t.EDIT_SUBJECT_SERIES,t.EDIT_SUBJECT_VIDEOS,t.SUBJECT_CLASSIFICATIONS,t.DELETE_SUBJECT,t.ADD_SUBJECT_MEMBERS,t.REMOVE_SUBJECT_MEMBER]},{label:`Presentations`,appLink:{application:e,action:t.PRESENTATIONS},activeActions:[t.PRESENTATIONS,t.NEW_PRESENTATION,t.EDIT_PRESENTATION]}]},getEditSubjectTabs(e,t){let n=h.CURRICULUMS,r=m.Subjects,i=[e];return[{label:`Edit Backbone Subject Details`,appLink:{action:r.EDIT_SUBJECT}},{label:`Topics`,appLink:{action:r.SUBJECT_CLASSIFICATIONS}},{label:`Videos`,appLink:{action:r.EDIT_SUBJECT_VIDEOS}}].map(e=>{let r={...e.appLink,application:n,args:i};return t&&(r.params={presentationId:t}),{label:e.label,appLink:r}})},getEditClassificationTabs(e,t){let n=h.CURRICULUMS,r=m.Subjects;return[{label:`Edit Topic Details`,appLink:{application:n,action:r.EDIT_CLASSIFICATION,args:[e,t]}},{label:`Videos`,appLink:{application:n,action:r.EDIT_CLASSIFICATION_VIDEOS,args:[e,t]}}]}};function Ne(e){let{presentationId:t,classificationId:n}=e,[r,i]=q.useState(),[a,o]=q.useState(),[s,c]=q.useState(),[f,p]=q.useState(),m=M(l.SUBJECT),h=u.getClassificationFetchOptions(n,i),g=u.getPresentationFetchOptions(t,o),_=u.getClassificationTreeFetchOptions(t,c);return d(u.getSubjectTreeFetchOptions(p,w.Curriculum),[]),d(h,[n]),G([g,_],[t]),(0,J.jsxs)(`div`,{children:[(0,J.jsx)(oe,{presentation:a,classificationId:n,getTabs:(e,t)=>r?.type===S.CurriculumLeaf?Z.getEditClassificationTabs(e,t):[]}),!!r&&!!s&&!!f&&(0,J.jsx)(de,{classification:r,saveClassification:(e,t)=>{let i={pinnedVideoMasterId:r?.pinnedVideoMasterId||null,...e};return m.updateClassification(n,i,t,t)},validationSchema:Ae,children:(0,J.jsx)(ke,{presentationId:t,classificationTree:s,subjectTree:f,classification:r})})]})}function Pe(e,t){let n=fe();function r(n){return pe.classificationMembers(e,t,n)}function i(e){n(r(e))}return ye(r,i).items}function Fe(e){let{presentationId:t,classificationId:n,memberType:r}=e,[i,a]=q.useState(),[o,s]=q.useState(),c=Pe(e.classificationId,e.memberType);d(u.getPresentationFetchOptions(t,a),[]),d(u.getClassificationFetchOptions(n,s),[n]);let f=M(l.SUBJECT),p={items:c,memberType:r,classification:o,updatePinnedVideo:(e,t)=>{let r={...o,pinnedVideoMasterId:e};f.updateClassification(n,r,t)},getItemAppLink:e=>v.getMemberAppLink(r,e.id),getActions:e=>v.getMemberActions(h.CURRICULUMS,n,_.Classification,r,e.id)},m={presentation:i,classificationId:n,getTabs:Z.getEditClassificationTabs},g=te.propsLoaded(p);return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(oe,{...m,memberType:r}),g&&(0,J.jsx)(ae,{...p})]})}var Ie=(e,t)=>n=>{if(n.id===t)return!0;let r=U.find(e,t);return!!U.find(r,n.id)};function Le(e){let t=!e.id,n=P(),r=he(n),i=!t||!!n.values.parentId,[a,o]=q.useState(i);q.useEffect(()=>o(i),[e.id,n.values.parentId]);let s=e=>{let t=e.id===n.values.parentId?null:e.id;n.setFieldValue(`parentId`,t)},l=`${z.getCustomFormControlClassName(n.errors,n.touched,`parentId`)} h-auto py-2`,{hasPermissions:u}=j(),d=u(b.CurriculumsBackboneUpdate);return(0,J.jsxs)(F,{children:[(0,J.jsx)(R,{label:`Name`,name:`name`,id:`name`,value:n.values.name,placeholder:`Enter a name for this backbone subject`,disabled:!d,autoFocus:!0}),(0,J.jsx)(R,{name:`parentId`,disabled:!d,children:()=>(0,J.jsx)(`div`,{className:l,children:(0,J.jsx)(H,{label:`Parent Backbone Subject`,tree:e.subjectTree,selectedIds:[n.values.parentId],onSelect:s,collapse:a,noSelectionMessage:`No parent selected, this will be a root backbone subject.`,isNodeDisabled:Ie(e.subjectTree,e.id)})})}),(0,J.jsxs)(`div`,{className:`d-flex justify-content-between`,children:[d&&(0,J.jsx)(N,{showSpinner:n.isSubmitting,type:`submit`,disabled:!r,children:t?`Create`:`Save`}),!t&&u(b.CurriculumsBackboneDelete)&&(0,J.jsx)(c,{className:`btn btn-outline-danger`,appLink:{...e.deleteSubject,args:[e.id]},children:`Delete`})]})]})}function Re(e){let t=P();return(0,J.jsxs)(F,{children:[(0,J.jsx)(R,{label:`Name`,type:`text`,name:`name`,id:`name`,value:t.values.name,placeholder:`Enter a name for this presentation`,autoFocus:!0}),(0,J.jsx)(R,{label:`Description`,as:`textarea`,name:`description`,id:`description`,value:t.values.description,placeholder:`Describe this presentation here`}),(0,J.jsx)(R,{as:`select`,label:`Status`,name:`status`,id:`status`,value:t.values.status,disabled:e.isNew,children:f.getEnumKeys(C).map(e=>(0,J.jsx)(`option`,{value:C[e],children:e},e))}),(0,J.jsx)(R,{as:`select`,label:`Type`,name:`type`,id:`type`,value:t.values.type,children:f.getEnumKeys(w).map(e=>(0,J.jsx)(`option`,{value:w[e],children:e},e))}),(0,J.jsx)(_e,{imageType:me.Covers,fieldName:`cover`,uploadAppLink:e.imageAppLink}),(0,J.jsx)(`div`,{className:`btn-container d-flex justify-content-end`,children:(0,J.jsx)(be,{isNew:e.isNew})})]})}var ze=(t,n)=>r=>{n(),!(!r||!r.id)&&e.trigger({application:h.CURRICULUMS,action:m.Subjects.EDIT_CLASSIFICATION,args:[t,r.id]})};function Be(e){let{presentationId:t,parentId:n}=e,[r,i]=q.useState(),[a,o]=q.useState(),s=M(l.SUBJECT),c=u.getClassificationTreeFetchOptions(t,i);return d(u.getSubjectTreeFetchOptions(o,w.Curriculum),[]),d(c,[t]),(0,J.jsxs)(`div`,{children:[(0,J.jsx)(`h4`,{className:`py-2`,children:`Create New Classification`}),!!a&&!!r&&(0,J.jsx)(de,{classification:n?{parentIds:[n]}:{},saveClassification:(e,n)=>s.createClassification({...e,presentationId:t},ze(t,n),n),validationSchema:Ae,children:(0,J.jsx)(ke,{presentationId:e.presentationId,classificationTree:r,subjectTree:a})})]})}function Ve(e,t){switch(e){case g.Playlists:return K.playlist(t);case g.Series:return W.series(t);case g.Videos:return B.video(t)}}function He(e){let[t,n]=q.useState(),[r,i]=q.useState(!1),o=D(Ve(e.memberType,e.memberId)),s=M(l.SUBJECT);d(u.getClassificationFetchOptions(e.classificationId,n),[e.classificationId]);let c=()=>{i(!0),s.removeObjectsFromClassification(e.classificationId,[e.memberId],e.memberType,null,null,e.closePopup,e.closePopup),t.pinnedVideoMasterId===e.memberId&&s.updateClassification(e.classificationId,{...t,pinnedVideoMasterId:null})},f=!!t&&!!o.data;return(0,J.jsx)(E,{title:`Remove ${a.toTitleCase(v.singularizeMemberType(e.memberType))}`,closePopup:e.closePopup,showLoadingSpinner:!f,children:f&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{children:[(0,J.jsxs)(`p`,{children:[`Are you sure you want to remove `,(0,J.jsx)(`strong`,{children:o.data.name}),` from `,(0,J.jsx)(`strong`,{children:t.name}),`?`]}),(0,J.jsx)(`p`,{children:`This will not remove it from the backbone subject.`})]}),(0,J.jsxs)(L,{children:[(0,J.jsx)(L.Cancel,{onClick:e.closePopup}),(0,J.jsx)(L.Submit,{variant:`danger`,onClick:c,text:`Yes, remove this ${v.singularizeMemberType(e.memberType)}`,showSpinner:r})]})]})})}function Ue({id:e}){let[t,n]=q.useState(),r=M(l.SUBJECT);d(u.getPresentationFetchOptions(e,n),[e]);function i(t,n){let i={...t,contentRegions:t.contentRegions?.map(e=>e.systemName)};r.updatePresentation(e,i,n,n)}let a={application:h.CURRICULUMS,action:m.Subjects.UPLOAD_IMAGE},o=t?.id;return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`h4`,{className:`py-2`,children:`Edit Presentation`}),!!o&&(0,J.jsx)(I,{initialValues:t,validationSchema:je,onSubmit:i,children:(0,J.jsx)(Re,{isNew:!t?.id,imageAppLink:a})})]})}var We=e=>({application:h.CURRICULUMS,action:m.Subjects.EDIT_PRESENTATION,args:[e.id]}),Ge={application:h.CURRICULUMS,action:m.Subjects.NEW_PRESENTATION};function Ke(){let[e,t]=q.useState();d(u.getPresentationsFetchOptions(t,w.Curriculum),[]);let{hasPermissions:n}=j(),r=n(b.CurriculumsBackboneUpdate);return(0,J.jsxs)(`div`,{children:[(0,J.jsxs)(`div`,{className:`d-flex justify-content-between mb-2`,children:[(0,J.jsx)(`h5`,{className:`d-inline-block m-0`,children:`Select a presentation to edit:`}),r&&(0,J.jsxs)(c,{appLink:Ge,className:`d-block`,children:[(0,J.jsx)(o,{svg:k,size:s.Small}),(0,J.jsx)(`span`,{children:`New Presentation`})]})]}),(0,J.jsx)(xe,{presentations:e,getAppLink:We})]})}function qe(){let t=M(l.SUBJECT);function n(n,r){function i(t){r(),!(!t||!t.id)&&e.trigger({application:h.CURRICULUMS,action:m.Subjects.EDIT_PRESENTATION,args:[t.id]})}t.createPresentation(n,i,r)}let r={application:h.CURRICULUMS,action:m.Subjects.UPLOAD_IMAGE};return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`h4`,{className:`py-2`,children:`Create New Presentation`}),(0,J.jsx)(I,{initialValues:{},validationSchema:je,onSubmit:n,children:(0,J.jsx)(Re,{isNew:!0,imageAppLink:r})})]})}function Q(e,t){return A.getSetStateByKey(e,t)}function Je(e,t){d(u.getSubjectTreeFetchOptions(Q(t,`subjectTree`),w.Curriculum),[])}function Ye(t,n,r,i,a){let{selectedSubject:o}=i,s=()=>Q(a,`showConfirmationPopup`)(!1);n.addObjectsToSubject(o.id,t.map(e=>e.id),r.memberType,i.addToClassifications,()=>{s(),e.trigger(Qe(o.id,r.memberType))},s)}function Xe(e,t){switch(e){case g.Playlists:return K.playlistsById(t);case g.Series:return W.seriesById(t);case g.Videos:return B.videosById(t)}}function Ze(e,t,n){if(!(!t||!n))return`Add ${t.length===1?`this ${v.singularizeMemberType(e)}`:`these ${e}`} to ${n.name}`}function Qe(e,t){let n={application:h.CURRICULUMS,args:[e]};switch(t){case g.Playlists:return{...n,action:m.Subjects.EDIT_SUBJECT_PLAYLISTS};case g.Series:return{...n,action:m.Subjects.EDIT_SUBJECT_SERIES};case g.Videos:return{...n,action:m.Subjects.EDIT_SUBJECT_VIDEOS}}}function $e(e){return a.toTitleCase(v.singularizeMemberType(e))}function et(e,t){return(n,r,i)=>{i(),Q(t,`selectedSubject`)(U.find(e.subjectTree,O.first(n))),Q(t,`addToClassifications`)(r),Q(t,`showConfirmationPopup`)(!0)}}function tt(e){let[t,n]=q.useState({}),r=D(Xe(e.memberType,e.objectIds)),i=M(l.SUBJECT);Je(e,n);let o=e=>Q(n,`showConfirmationPopup`)(e);return(0,J.jsxs)(J.Fragment,{children:[!!r.data&&!!t.subjectTree&&(0,J.jsx)(ce,{memberType:e.memberType,presentationType:w.Curriculum,objects:r.data,subjectTree:t.subjectTree,onClickAddToSubject:et(t,n)}),t.showConfirmationPopup&&(0,J.jsxs)(ge,{title:Ze(e.memberType,r.data,t.selectedSubject),onClickConfirm:()=>Ye(r.data,i,e,t,n),closePopup:()=>o(!1),children:[(0,J.jsxs)(`p`,{children:[`The following ${e.memberType} will be added to `,(0,J.jsx)(`strong`,{children:t.selectedSubject.name}),t.addToClassifications?` and its mapped topics:`:`:`]}),(0,J.jsx)(`ul`,{children:r.data.map(e=>(0,J.jsx)(`li`,{children:e.name},e.id))}),!t.addToClassifications&&(0,J.jsx)(`p`,{children:`${r.data.length===1?`It`:`They`} will not be added to its mapped topics.`}),(0,J.jsxs)(`p`,{children:[`${$e(e.memberType)} to topic mappings can be managed from the `,(0,J.jsx)(`strong`,{children:`Edit Backbone Subject ${a.toTitleCase(e.memberType)} `}),`page.`]})]})]})}function nt(t){let{subjectId:n,routeToOnDelete:r,closePopup:i}=t,[a,o]=q.useState(),[s,c]=q.useState(!1);d(u.getSubjectFetchOptions(n,o),[]);let f=M(l.SUBJECT);return(0,J.jsx)(E,{title:`Delete Backbone Subject`,closePopup:i,showLoadingSpinner:!a,children:!!a&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{children:[(0,J.jsxs)(`p`,{children:[`Are you sure you want to delete `,(0,J.jsx)(`strong`,{children:a.name}),`?`]}),(0,J.jsx)(`p`,{children:`Backbone subject that have mapped topics cannot be deleted.`})]}),(0,J.jsxs)(L,{children:[(0,J.jsx)(L.Cancel,{onClick:i}),(0,J.jsx)(L.Submit,{variant:`danger`,onClick:()=>{c(!0),f.deleteSubject(n,()=>{i(),r&&e.trigger(r)},i)},text:`Yes, delete this backbone subject`,showSpinner:s})]})]})})}function rt({subjectId:e}){let[t,n]=q.useState(),[r,i]=q.useState(),a=M(l.SUBJECT),o=u.getSubjectFetchOptions(e,n);d(u.getSubjectTreeFetchOptions(i,w.Curriculum),[]),d(o,[e]);let s=(t,n)=>a.updateSubject(e,t,n,n),c={application:h.CURRICULUMS,action:m.Subjects.DELETE_SUBJECT};return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(T,{subjectId:e,presentationType:w.Curriculum,activeAction:m.Subjects.EDIT_SUBJECT,getTabs:(e,t)=>y.getEditBackboneClassificationTabs(h.CURRICULUMS,e,t)}),!!t&&!!r&&(0,J.jsx)(I,{initialValues:t,validationSchema:Me,onSubmit:s,children:(0,J.jsx)(Le,{id:e,subjectTree:r,deleteSubject:c})})]})}function $(e,t){return A.getSetStateByKey(e,t)}function it(e,t,n){let{subjectId:r,memberType:i,presentationId:a}=e;d(u.getPresentationsFetchOptions($(n,`presentations`),w.Curriculum),[]),d(u.getSubjectMemberIdsFetchOptions(r,i,$(n,`memberIds`)),[r,i]),d(!!a&&u.getSubjectClassificationFetchOptions(r,$(n,`classifications`),a,i),[r,i,a],!!a)}function at(e,t,n,r){let{classifications:i}=n;q.useEffect(()=>{$(r,`membersWithClassifications`)(ct(t.memberType,e,i))},[e,i])}function ot(e,t){switch(e){case g.Playlists:return K.playlistsById(t);case g.Series:return W.seriesById(t);case g.Videos:return B.videosById(t)}}var st=(e,t)=>n=>{let r=h.CURRICULUMS,i=[t,n],a;switch(e){case g.Playlists:a=m.Subjects.EDIT_CLASSIFICATION_PLAYLISTS;break;case g.Series:a=m.Subjects.EDIT_CLASSIFICATION_SERIES;break;case g.Videos:a=m.Subjects.EDIT_CLASSIFICATION_VIDEOS;break}return{application:r,action:a,args:i}};function ct(e,t,n){if(!t||!n)return;let r=(t,n)=>!!n[e]&&!!n[e].data.filter(e=>e.id===t.id).length;return t.map(e=>({id:e.id,name:e.name,classifications:n.map(t=>({id:t.id,selected:r(e,t)}))}))}function lt(e,t,n,r,i,a,o){(o?e.addObjectsToClassification.bind(e):e.removeObjectsFromClassification.bind(e))(a,n,t,r,i)}function ut(e){switch(e){case g.Playlists:return m.Subjects.EDIT_SUBJECT_PLAYLISTS;case g.Series:return m.Subjects.EDIT_SUBJECT_SERIES;case g.Videos:return m.Subjects.EDIT_SUBJECT_VIDEOS}}function dt(t){let[n,r]=q.useState({}),{presentations:i,classifications:a,memberIds:o,membersWithClassifications:s}=n,c=D(Array.isArray(o)&&ot(t.memberType,o)),u=M(l.SUBJECT);it(t,n,r),at(c.data,t,n,r),q.useEffect(()=>{t.presentationId||!i?.length||d(O.first(i).id)},[t.presentationId]);function d(n){e.trigger({application:h.CURRICULUMS,action:t.action,args:[t.subjectId],params:{presentationId:n}})}let f=!!t.presentationId&&!!a;return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(T,{subjectId:t.subjectId,presentationType:w.Curriculum,presentationId:t.presentationId,activeAction:ut(t.memberType),getTabs:(e,t)=>y.getEditBackboneClassificationTabs(h.CURRICULUMS,e,t)}),(0,J.jsx)(re,{variant:`info`,className:`m-0`,children:`Select which ${t.memberType} are shown for each topic in this backbone subject. Change the selected presentation to view different topics.`}),(0,J.jsx)(`div`,{className:`w-50 py-2`,children:!!i&&(0,J.jsx)(ve,{presentations:i,currentPresentationId:t.presentationId,setCurrentPresentation:e=>d(e.id)})}),f&&(0,J.jsx)(se,{members:s||[],memberType:t.memberType,getMemberAppLink:e=>v.getMemberAppLink(t.memberType,e),getActions:e=>v.getMemberActions(h.CURRICULUMS,t.subjectId,_.Subject,t.memberType,e),classifications:a,getClassificationAppLink:t.presentationId&&st(t.memberType,t.presentationId),onToggleClassification:(e,n,r)=>lt(u,t.memberType,r?[r]:o,t.subjectId,t.presentationId,e,n)})]})}var ft=t=>n=>{t(),!(!n||!n.id)&&e.trigger({application:h.CURRICULUMS,action:m.Subjects.EDIT_SUBJECT,args:[n.id]})};function pt({parentId:e}){let[t,n]=q.useState(),r=M(l.SUBJECT);d(u.getSubjectTreeFetchOptions(n,w.Curriculum),[]);let i=(e,n)=>(+e.parentId||(e.parentId=t.id),r.createSubject(e,ft(n),n)),a={application:h.CURRICULUMS,action:m.Subjects.PRESENTATIONS},o={application:h.CURRICULUMS,action:m.Subjects.DELETE_SUBJECT};return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:`pb-2 border-bottom`,children:(0,J.jsx)(ie,{backToName:`Presentations`,appLink:a})}),(0,J.jsx)(`h4`,{className:`py-2`,children:`Create New Subject`}),!!t&&(0,J.jsx)(I,{initialValues:{parentId:e},validationSchema:Me,onSubmit:i,children:(0,J.jsx)(Le,{id:e,subjectTree:t,deleteSubject:o})})]})}function mt(e,t){switch(e){case g.Playlists:return K.playlist(t);case g.Series:return W.series(t);case g.Videos:return B.video(t)}}function ht(e){let[t,n]=q.useState(),[r,i]=q.useState(!1),o=D(mt(e.memberType,e.memberId)),s=M(l.SUBJECT);d(u.getSubjectFetchOptions(e.subjectId,n),[e.subjectId]);let c=()=>{i(!0),s.removeObjectsFromSubject(e.subjectId,[e.memberId],e.memberType,e.closePopup,e.closePopup)},f=!!t&&!!o.data;return(0,J.jsx)(E,{title:`Remove ${a.toTitleCase(v.singularizeMemberType(e.memberType))}`,closePopup:e.closePopup,showLoadingSpinner:!f,children:f&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{children:[(0,J.jsxs)(`p`,{children:[`Are you sure you want to remove `,(0,J.jsx)(`strong`,{children:o.data.name}),` from `,(0,J.jsx)(`strong`,{children:t.name}),`?`]}),(0,J.jsx)(`p`,{children:`Please ensure that it is not in any classifications before removing.`})]}),(0,J.jsxs)(L,{children:[(0,J.jsx)(L.Cancel,{onClick:e.closePopup}),(0,J.jsx)(L.Submit,{onClick:c,variant:`danger`,text:`Yes, remove this ${v.singularizeMemberType(e.memberType)}`,showSpinner:r})]})]})})}function gt(e,t){let n=e=>A.getSetStateByKey(t,e);d(u.getSubjectClassificationFetchOptions(e,n(`classifications`)),[e]),d(u.getPresentationsFetchOptions(n(`presentations`),w.Curriculum),[])}function _t({subjectId:e}){let[t,n]=q.useState({});return gt(e,n),(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(T,{subjectId:e,presentationType:w.Curriculum,activeAction:m.Subjects.SUBJECT_CLASSIFICATIONS,getTabs:(e,t)=>y.getEditBackboneClassificationTabs(h.CURRICULUMS,e,t)}),(0,J.jsx)(le,{presentations:t.presentations,classificationDictionary:O.groupBy(t.classifications,`presentationId`)})]})}var vt={navContainer:`_navContainer_14jj2_1`};function yt({selectedSubjectId:e}){let[t,n]=q.useState();d(u.getSubjectTreeFetchOptions(n,w.Curriculum),[]);let r=q.useCallback(e=>({application:h.CURRICULUMS,action:m.Subjects.EDIT_SUBJECT,args:[e.id]}),[]),i={application:h.CURRICULUMS,action:m.Subjects.NEW_SUBJECT},{hasPermissions:a}=j(),l=a(b.CurriculumsBackboneUpdate);return(0,J.jsxs)(`div`,{className:`${vt.navContainer} h-auto pe-2 border-end`,children:[(0,J.jsx)(`h2`,{className:`h5 m-0 text-center`,children:`Backbone Subjects`}),(0,J.jsx)(`div`,{className:`d-flex justify-content-center`,children:(0,J.jsx)(`span`,{className:`${l?`border-bottom`:``} badge bg-blue my-2`,children:`Curriculums`})}),l&&(0,J.jsxs)(c,{appLink:i,className:`d-inline-block border-top p-2`,children:[(0,J.jsx)(o,{svg:k,size:s.Small}),(0,J.jsx)(`span`,{children:`New Backbone Subject`})]}),!!t&&(0,J.jsx)(`div`,{className:`border-top pt-1`,children:(0,J.jsx)(V,{tree:t,getAppLink:r,selectedIds:[e],actions:[]})})]})}function bt({currentAppLink:e}){return(0,J.jsx)(ue,{navItems:Z.getTopNavItems(),currentAppLink:e})}var xt=i({AddSubjectMembersView:()=>tt,ClassificationNavView:()=>Te,DeleteClassificationView:()=>Ee,DeleteSubjectView:()=>nt,EditClassificationMembersView:()=>Fe,EditClassificationView:()=>Ne,EditPresentationView:()=>Ue,EditPresentationsListView:()=>Ke,EditSubjectMembersView:()=>dt,EditSubjectView:()=>rt,NewClassificationView:()=>Be,NewPresentationView:()=>qe,NewSubjectView:()=>pt,RemoveClassificationMemberView:()=>He,RemoveSubjectMemberView:()=>ht,SubjectClassificationsView:()=>_t,SubjectNavView:()=>yt,TopNavView:()=>bt});export{bt as n,xt as t};
2
+ //# sourceMappingURL=GT6nO4Jv.chunk.js.map