@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{C as e,a as t,i as n,ln as r}from"./rp704-Pm.chunk.js";import{c as i,l as a,n as o}from"./Crs6pJ2h.chunk.js";import{t as s}from"./C1kx8Ra5.chunk.js";import{K as c}from"./C7Gmh7eY.chunk.js";import{t as l}from"./DrMTnrkG2.chunk.js";import{t as u}from"./DhQcAYq7.chunk.js";import{t as d}from"./C67LjtZj.chunk.js";import{t as f}from"./DmpWpl-3.chunk.js";import{t as p}from"./BkdBq-7h.chunk.js";import{s as m}from"./Dgk5cBBe.chunk.js";import{t as h}from"./DpqbC5uX.chunk.js";import"./Oh4_zGIH.chunk.js";import{t as g}from"./B1uI4W1W.chunk.js";import{t as _}from"./C4Xe4WTH.chunk.js";import{n as v,r as y}from"./GWw4zEXk2.chunk.js";import{t as b}from"./C8hLOeBc2.chunk.js";import{n as x}from"./Duk0omCc2.chunk.js";import{t as S}from"./Bs_JuMoc2.chunk.js";import{n as C}from"./DPmhibHP2.chunk.js";import{t as w}from"./Cqdcbyjp.chunk.js";var T=r(t()),E={field:`_field_14la6_1`,condition:`_condition_14la6_6`,value:`_value_14la6_12`,svgContainer:`_svgContainer_14la6_19`,dropdownToggle:`_dropdownToggle_14la6_24`,dropdown:`_dropdown_14la6_24`,closeIcon:`_closeIcon_14la6_30`,inputFocused:`_inputFocused_14la6_33`},D=n(),O={empty:{label:`empty`,name:`empty`},not_empty:{label:`not empty`,name:`not_empty`},in:{label:`equals`,name:`in`},not_in:{label:`does not equal`,name:`not_in`},complete:{label:`completed`,name:`complete`},incomplete:{label:`incomplete`,name:`incomplete`},true:{label:`Is true`,name:`true`},false:{label:`Is false`,name:`false`},lte:{label:`less than or equal to`,name:`lte`},gte:{label:`greater than or equal to`,name:`gte`},is_not_applicable:{label:`is N/A`,name:`is_not_applicable`},is_not_not_applicable:{label:`is not N/A`,name:`is_not_not_applicable`}};function k(e){function t(t){e.setFilterState({id:e.filterState.id,field:e.filterState.field,condition:t})}return T.useEffect(()=>{!e.filterState.condition&&e.filterField?.conditions!==!1&&e.filterField?.conditions?.length===1&&t(h.first(e.filterField?.conditions))},[e.filterField?.conditions,e.filterState.condition]),e.filterField?.conditions===!1?(0,D.jsx)(D.Fragment,{}):(0,D.jsxs)(`select`,{onChange:e=>t(e.target.value),className:`form-select ${E.condition}`,value:e.filterState.condition||``,disabled:!e.filterState.field,children:[(0,D.jsx)(`option`,{className:`text-secondary`,value:``,disabled:!0,children:`Condition`}),e.filterField?.conditions?.map(t=>{let n=O[t],r=e.filterField.labelOverrides?.[n.name]||n.label;return(0,D.jsx)(`option`,{value:n.name,className:`text-dark`,children:r},n.name)})]})}function A(e){function t(t){e.setFilterState({id:e.filterState.id,field:t})}return(0,D.jsxs)(`select`,{onChange:e=>t(e.target.value),className:`form-select ${E.field}`,value:e.filterState.field||``,children:[(0,D.jsx)(`option`,{className:`text-secondary`,value:``,disabled:!0,children:`Field`}),e.filterOptions.map(e=>(0,D.jsx)(`option`,{value:e.name,className:e.disabled?`disabled text-secondary`:`text-dark`,disabled:e.disabled,children:e.label},e.name))]})}function j(e){function t(){let t=e.filterState.values?.[0]?.value;if(t)return p.format(p.convertUTCToLocal(t),`YYYY-MM-DD`)}return(0,D.jsx)(`input`,{type:`date`,className:`form-control ${E.value}`,value:t(),onChange:t=>e.onChange(t.target.value)})}function M(){return(0,D.jsx)(`select`,{className:`form-select ${E.value}`,value:``,disabled:!0,children:(0,D.jsx)(`option`,{className:`text-secondary`,value:``,disabled:!0,children:`Value`})})}function N(e){let t=e.filterState.values||[];return e.multiple?(0,D.jsx)(`div`,{className:E.value,children:(0,D.jsx)(w,{placeholder:`Search`,local:e.options,valueKey:`name`,selections:t,onSuggestionSelected:e.onSelect,removeSelection:t=>e.onRemove(t.value),errorStateImageUrl:b.TYPEAHEAD_ERROR,emptyStateImageUrl:b.EmptyStates.TYPEAHEAD_RESULTS,activationLength:0,suggestionLimit:1/0,getInputTokenComponent:t=>(0,D.jsx)(C,{selection:{name:t.name,id:t.value,value:t.value},colourVariant:`teal`,onClickRemove:t=>e.onRemove(t.value),hideExpander:!0},t.value),getSuggestionComponent:e=>y(`name`,e)})}):(0,D.jsxs)(`select`,{onChange:t=>{let n=t.target.value;e.onSelect(e.options.find(e=>e.value.toString()===n.toString()))},className:`form-select ${E.value}`,value:t?.[0]?.value||``,children:[(0,D.jsx)(`option`,{className:`text-secondary`,value:``,disabled:!0,children:`Value`}),e.options.map(e=>(0,D.jsx)(`option`,{value:e.value,className:`text-dark`,children:e.name},e.value))]})}function P(e){let t=m(e.request),[n,r]=T.useState([]);T.useEffect(()=>{r(e.formatData(t.data,e.filterState.condition))},[t.data,e.filterState.condition]);let i=e.filterState.values||[];function a(e,t){return v(e,t,`name`,0).filter(e=>!i.find(t=>t.value===e.value))}return(0,D.jsx)(`div`,{className:E.value,children:(0,D.jsx)(w,{placeholder:`Search`,local:n,initialLocalSuggestions:a(``,n),valueKey:`name`,selections:i,renderSuggestionsOnInputFocus:!0,onSuggestionSelected:e.onSelect,removeSelection:t=>e.onRemove(t.value),errorStateImageUrl:b.TYPEAHEAD_ERROR,emptyStateImageUrl:b.EmptyStates.TYPEAHEAD_RESULTS,activationLength:0,suggestionLimit:100,getInputTokenComponent:t=>(0,D.jsx)(C,{selection:{name:t.name,id:t.value},colourVariant:`teal`,onClickRemove:t=>e.onRemove(t.id),hideExpander:!0},t.value),getSuggestionComponent:e=>y(`name`,e),onSuggestionDependencies:[n,e.filterState.values,a],getLocalSuggestions:a,alwaysRenderSuggestionsWhenFocused:!0})})}function F(e){let t=e.filterState.values||[];return(0,D.jsx)(`div`,{className:E.value,children:(0,D.jsx)(w,{placeholder:`Search`,getRemoteUrl:e.getRemoteUrl,valueKey:`name`,selections:t,formatRemoteSuggestions:n=>e.formatData(n,t),onSuggestionSelected:e.onSelect,removeSelection:t=>e.onRemove(t.value),errorStateImageUrl:b.TYPEAHEAD_ERROR,emptyStateImageUrl:b.EmptyStates.TYPEAHEAD_RESULTS,activationLength:2,suggestionLimit:10,debounceTime:200,getInputTokenComponent:t=>(0,D.jsx)(C,{selection:t,colourVariant:`teal`,onClickRemove:t=>e.onRemove(t.value),hideExpander:!0},t.value),getSuggestionComponent:e=>y(`name`,e),renderSuggestionsOnInputFocus:!1,onSuggestionDependencies:[e.filterState.values],theme:{inputFocused:E.inputFocused}})})}I.defaultProps={inputType:`text`};function I(e){return(0,D.jsx)(`input`,{className:`form-control ${E.value}`,value:e.filterState.values?.[0]?.value,onChange:t=>e.onChange(t.target.value),placeholder:e.placeholder,type:e.inputType})}function L(e){function t(t){if(typeof e.filterField.values!=`boolean`){if(`multiple`in e.filterField.values&&(i.isFunction(e.filterField.values.multiple)?e.filterField.values.multiple(e.filterState.condition):e.filterField.values.multiple)){e.setFilterState({...e.filterState,values:(e.filterState.values||[]).concat(t)});return}e.setFilterState({...e.filterState,values:[t]})}}function n(t){typeof e.filterField.values!=`boolean`&&((!(`multiple`in e.filterField.values)||e.filterField.values.multiple===!1)&&e.setFilterState(s.omit(e.filterState,[`values`])),e.setFilterState({...e.filterState,values:e.filterState.values.filter(e=>e.value!==t)}))}if(e.filterField?.values===!1)return(0,D.jsx)(D.Fragment,{});let r=e.filterState.condition||e.filterField?.conditions===!1;if(!e.filterField?.values||!r)return(0,D.jsx)(M,{});if(e.filterField?.conditions!==!1&&!c.canConditionHaveValue(e.filterState.condition))return(0,D.jsx)(D.Fragment,{});switch(e.filterField.values.type){case`local-list`:return(0,D.jsx)(N,{filterState:e.filterState,onSelect:t,onRemove:n,options:e.filterField.values.options,multiple:e.filterField.values.multiple});case`remote-list`:return(0,D.jsx)(P,{filterState:e.filterState,onSelect:t,onRemove:n,request:e.filterField.values.request,formatData:e.filterField.values.formatData});case`remote-search`:return(0,D.jsx)(F,{filterState:e.filterState,onSelect:t,onRemove:n,getRemoteUrl:e.filterField.values.getRemoteUrl,formatData:e.filterField.values.formatData});case`text`:return(0,D.jsx)(I,{filterState:e.filterState,onChange:r=>{if(!r){n(e.filterState.values[0].value);return}t({value:r,name:r})},placeholder:e.filterField.values.placeholder,inputType:e.filterField.values.inputType});case`date`:return(0,D.jsx)(j,{filterState:e.filterState,onChange:e=>{t({value:p.getUtcISOString(e),name:p.getUtcISOString(e)})}})}return(0,D.jsx)(D.Fragment,{})}function R(e){let t=T.useMemo(()=>e.filters.every(t=>c.isFilterValid(t,e.options)),[e.filters]);function n(t,n){e.setFilters(e=>e.map(e=>e.id===t?n:e))}function r(){e.setFilters(e=>{let t=h.last(e);return[...e,{id:(t?.id??0)+1}]})}function i(t){e.setFilters(e=>e.filter(e=>e.id!==t))}return(0,D.jsxs)(D.Fragment,{children:[e.showInDropdown&&(0,D.jsx)(d,{title:`Filters`}),(0,D.jsx)(`div`,{children:e.filters.map(t=>{let r=e.options.find(e=>e.name===t.field);return(0,D.jsxs)(`div`,{className:`d-flex pb-2`,children:[(0,D.jsx)(A,{filterState:t,setFilterState:e=>n(t.id,e),filterOptions:e.options}),(0,D.jsx)(k,{filterState:t,setFilterState:e=>n(t.id,e),filterField:r}),(0,D.jsx)(L,{filterState:t,setFilterState:e=>n(t.id,e),filterField:r}),(e.filters.length>1||e.showRemoveButton)&&(0,D.jsx)(a,{className:`btn btn-link align-items-center align-self-start ms-n2 ${E.closeIcon}`,onClick:()=>i(t.id),children:(0,D.jsx)(o,{svg:_})})]},t.id)})}),t&&(0,D.jsxs)(a,{onClick:r,className:`info-link d-inline-flex align-items-center`,children:[(0,D.jsx)(o,{svg:g}),(0,D.jsx)(`span`,{children:`Add new filter`})]})]})}var z=[{id:0}];function B(e,t){return e.length>0?e:t?z:[]}function V(t){let n=B(t.initialState,t.showInDropdown),r=x(n),[i,a]=T.useState(n),[d,p]=T.useState(!1);T.useEffect(()=>{s.isEqual(n,r)||a(n)},[t.initialState]);function m(){let e=h.last(i);a([{id:e.id+1}])}T.useEffect(()=>{t.onFiltersChange&&t.onFiltersChange(i)},[i]);function g(){v(),p(!1)}function _(e){p(e),!e&&v()}function v(){let r=i.filter(e=>c.isFilterValid(e,t.options));if(s.isEqual(n,r))return;let a=s.pick(t.queryParams,[`query`,`presentationId`,`sort`,`limit`]);r.length&&(a={...a,...c.serializeFilterParams(r)});let o=f.getCurrentRoute().appLink;e.trigger({...o,params:a})}let y=t.initialState.length,b=!!y;return t.showInDropdown?(0,D.jsxs)(l,{onToggle:_,show:d,children:[(0,D.jsxs)(l.Toggle,{id:`conditional-filters`,className:`fw-semibold mx-1 btn d-flex align-items-center ${E.dropdownToggle}`,variant:b?`dark`:`outline-dark`,children:[(0,D.jsx)(`div`,{className:E.svgContainer,children:(0,D.jsx)(o,{svg:S})}),`Filters`,b?` - ${y}`:``]}),(0,D.jsx)(l.Menu,{children:(0,D.jsxs)(`div`,{className:`mx-1 w-100 px-2 py-1 pe-3 ${E.dropdown}`,children:[(0,D.jsx)(R,{filters:i,setFilters:a,options:t.options,showInDropdown:!0}),(0,D.jsx)(u,{active:i.some(e=>c.isFilterValid(e,t.options)),onClickReset:m,onClickApply:g})]})})]}):(0,D.jsx)(`div`,{children:(0,D.jsx)(R,{filters:i,setFilters:a,options:t.options,showRemoveButton:!0,showInDropdown:!1})})}export{V as t};
2
- //# sourceMappingURL=0S5J0xX22.chunk.js.map
1
+ import{C as e,a as t,i as n,ln as r}from"./rp704-Pm.chunk.js";import{c as i,l as a,n as o}from"./Crs6pJ2h.chunk.js";import{t as s}from"./C1kx8Ra5.chunk.js";import{K as c}from"./DWHKdmdQ.chunk.js";import{t as l}from"./DrMTnrkG2.chunk.js";import{t as u}from"./DhQcAYq7.chunk.js";import{t as d}from"./C67LjtZj.chunk.js";import{t as f}from"./DmpWpl-3.chunk.js";import{t as p}from"./BkdBq-7h.chunk.js";import{s as m}from"./Dgk5cBBe.chunk.js";import{t as h}from"./DpqbC5uX.chunk.js";import"./Oh4_zGIH.chunk.js";import{t as g}from"./B1uI4W1W.chunk.js";import{t as _}from"./C4Xe4WTH.chunk.js";import{n as v,r as y}from"./GWw4zEXk2.chunk.js";import{t as b}from"./C8hLOeBc2.chunk.js";import{n as x}from"./Duk0omCc2.chunk.js";import{t as S}from"./Bs_JuMoc2.chunk.js";import{n as C}from"./DPmhibHP2.chunk.js";import{t as w}from"./Cqdcbyjp.chunk.js";var T=r(t()),E={field:`_field_14la6_1`,condition:`_condition_14la6_6`,value:`_value_14la6_12`,svgContainer:`_svgContainer_14la6_19`,dropdownToggle:`_dropdownToggle_14la6_24`,dropdown:`_dropdown_14la6_24`,closeIcon:`_closeIcon_14la6_30`,inputFocused:`_inputFocused_14la6_33`},D=n(),O={empty:{label:`empty`,name:`empty`},not_empty:{label:`not empty`,name:`not_empty`},in:{label:`equals`,name:`in`},not_in:{label:`does not equal`,name:`not_in`},complete:{label:`completed`,name:`complete`},incomplete:{label:`incomplete`,name:`incomplete`},true:{label:`Is true`,name:`true`},false:{label:`Is false`,name:`false`},lte:{label:`less than or equal to`,name:`lte`},gte:{label:`greater than or equal to`,name:`gte`},is_not_applicable:{label:`is N/A`,name:`is_not_applicable`},is_not_not_applicable:{label:`is not N/A`,name:`is_not_not_applicable`}};function k(e){function t(t){e.setFilterState({id:e.filterState.id,field:e.filterState.field,condition:t})}return T.useEffect(()=>{!e.filterState.condition&&e.filterField?.conditions!==!1&&e.filterField?.conditions?.length===1&&t(h.first(e.filterField?.conditions))},[e.filterField?.conditions,e.filterState.condition]),e.filterField?.conditions===!1?(0,D.jsx)(D.Fragment,{}):(0,D.jsxs)(`select`,{onChange:e=>t(e.target.value),className:`form-select ${E.condition}`,value:e.filterState.condition||``,disabled:!e.filterState.field,children:[(0,D.jsx)(`option`,{className:`text-secondary`,value:``,disabled:!0,children:`Condition`}),e.filterField?.conditions?.map(t=>{let n=O[t],r=e.filterField.labelOverrides?.[n.name]||n.label;return(0,D.jsx)(`option`,{value:n.name,className:`text-dark`,children:r},n.name)})]})}function A(e){function t(t){e.setFilterState({id:e.filterState.id,field:t})}return(0,D.jsxs)(`select`,{onChange:e=>t(e.target.value),className:`form-select ${E.field}`,value:e.filterState.field||``,children:[(0,D.jsx)(`option`,{className:`text-secondary`,value:``,disabled:!0,children:`Field`}),e.filterOptions.map(e=>(0,D.jsx)(`option`,{value:e.name,className:e.disabled?`disabled text-secondary`:`text-dark`,disabled:e.disabled,children:e.label},e.name))]})}function j(e){function t(){let t=e.filterState.values?.[0]?.value;if(t)return p.format(p.convertUTCToLocal(t),`YYYY-MM-DD`)}return(0,D.jsx)(`input`,{type:`date`,className:`form-control ${E.value}`,value:t(),onChange:t=>e.onChange(t.target.value)})}function M(){return(0,D.jsx)(`select`,{className:`form-select ${E.value}`,value:``,disabled:!0,children:(0,D.jsx)(`option`,{className:`text-secondary`,value:``,disabled:!0,children:`Value`})})}function N(e){let t=e.filterState.values||[];return e.multiple?(0,D.jsx)(`div`,{className:E.value,children:(0,D.jsx)(w,{placeholder:`Search`,local:e.options,valueKey:`name`,selections:t,onSuggestionSelected:e.onSelect,removeSelection:t=>e.onRemove(t.value),errorStateImageUrl:b.TYPEAHEAD_ERROR,emptyStateImageUrl:b.EmptyStates.TYPEAHEAD_RESULTS,activationLength:0,suggestionLimit:1/0,getInputTokenComponent:t=>(0,D.jsx)(C,{selection:{name:t.name,id:t.value,value:t.value},colourVariant:`teal`,onClickRemove:t=>e.onRemove(t.value),hideExpander:!0},t.value),getSuggestionComponent:e=>y(`name`,e)})}):(0,D.jsxs)(`select`,{onChange:t=>{let n=t.target.value;e.onSelect(e.options.find(e=>e.value.toString()===n.toString()))},className:`form-select ${E.value}`,value:t?.[0]?.value||``,children:[(0,D.jsx)(`option`,{className:`text-secondary`,value:``,disabled:!0,children:`Value`}),e.options.map(e=>(0,D.jsx)(`option`,{value:e.value,className:`text-dark`,children:e.name},e.value))]})}function P(e){let t=m(e.request),[n,r]=T.useState([]);T.useEffect(()=>{r(e.formatData(t.data,e.filterState.condition))},[t.data,e.filterState.condition]);let i=e.filterState.values||[];function a(e,t){return v(e,t,`name`,0).filter(e=>!i.find(t=>t.value===e.value))}return(0,D.jsx)(`div`,{className:E.value,children:(0,D.jsx)(w,{placeholder:`Search`,local:n,initialLocalSuggestions:a(``,n),valueKey:`name`,selections:i,renderSuggestionsOnInputFocus:!0,onSuggestionSelected:e.onSelect,removeSelection:t=>e.onRemove(t.value),errorStateImageUrl:b.TYPEAHEAD_ERROR,emptyStateImageUrl:b.EmptyStates.TYPEAHEAD_RESULTS,activationLength:0,suggestionLimit:100,getInputTokenComponent:t=>(0,D.jsx)(C,{selection:{name:t.name,id:t.value},colourVariant:`teal`,onClickRemove:t=>e.onRemove(t.id),hideExpander:!0},t.value),getSuggestionComponent:e=>y(`name`,e),onSuggestionDependencies:[n,e.filterState.values,a],getLocalSuggestions:a,alwaysRenderSuggestionsWhenFocused:!0})})}function F(e){let t=e.filterState.values||[];return(0,D.jsx)(`div`,{className:E.value,children:(0,D.jsx)(w,{placeholder:`Search`,getRemoteUrl:e.getRemoteUrl,valueKey:`name`,selections:t,formatRemoteSuggestions:n=>e.formatData(n,t),onSuggestionSelected:e.onSelect,removeSelection:t=>e.onRemove(t.value),errorStateImageUrl:b.TYPEAHEAD_ERROR,emptyStateImageUrl:b.EmptyStates.TYPEAHEAD_RESULTS,activationLength:2,suggestionLimit:10,debounceTime:200,getInputTokenComponent:t=>(0,D.jsx)(C,{selection:t,colourVariant:`teal`,onClickRemove:t=>e.onRemove(t.value),hideExpander:!0},t.value),getSuggestionComponent:e=>y(`name`,e),renderSuggestionsOnInputFocus:!1,onSuggestionDependencies:[e.filterState.values],theme:{inputFocused:E.inputFocused}})})}I.defaultProps={inputType:`text`};function I(e){return(0,D.jsx)(`input`,{className:`form-control ${E.value}`,value:e.filterState.values?.[0]?.value,onChange:t=>e.onChange(t.target.value),placeholder:e.placeholder,type:e.inputType})}function L(e){function t(t){if(typeof e.filterField.values!=`boolean`){if(`multiple`in e.filterField.values&&(i.isFunction(e.filterField.values.multiple)?e.filterField.values.multiple(e.filterState.condition):e.filterField.values.multiple)){e.setFilterState({...e.filterState,values:(e.filterState.values||[]).concat(t)});return}e.setFilterState({...e.filterState,values:[t]})}}function n(t){typeof e.filterField.values!=`boolean`&&((!(`multiple`in e.filterField.values)||e.filterField.values.multiple===!1)&&e.setFilterState(s.omit(e.filterState,[`values`])),e.setFilterState({...e.filterState,values:e.filterState.values.filter(e=>e.value!==t)}))}if(e.filterField?.values===!1)return(0,D.jsx)(D.Fragment,{});let r=e.filterState.condition||e.filterField?.conditions===!1;if(!e.filterField?.values||!r)return(0,D.jsx)(M,{});if(e.filterField?.conditions!==!1&&!c.canConditionHaveValue(e.filterState.condition))return(0,D.jsx)(D.Fragment,{});switch(e.filterField.values.type){case`local-list`:return(0,D.jsx)(N,{filterState:e.filterState,onSelect:t,onRemove:n,options:e.filterField.values.options,multiple:e.filterField.values.multiple});case`remote-list`:return(0,D.jsx)(P,{filterState:e.filterState,onSelect:t,onRemove:n,request:e.filterField.values.request,formatData:e.filterField.values.formatData});case`remote-search`:return(0,D.jsx)(F,{filterState:e.filterState,onSelect:t,onRemove:n,getRemoteUrl:e.filterField.values.getRemoteUrl,formatData:e.filterField.values.formatData});case`text`:return(0,D.jsx)(I,{filterState:e.filterState,onChange:r=>{if(!r){n(e.filterState.values[0].value);return}t({value:r,name:r})},placeholder:e.filterField.values.placeholder,inputType:e.filterField.values.inputType});case`date`:return(0,D.jsx)(j,{filterState:e.filterState,onChange:e=>{t({value:p.getUtcISOString(e),name:p.getUtcISOString(e)})}})}return(0,D.jsx)(D.Fragment,{})}function R(e){let t=T.useMemo(()=>e.filters.every(t=>c.isFilterValid(t,e.options)),[e.filters]);function n(t,n){e.setFilters(e=>e.map(e=>e.id===t?n:e))}function r(){e.setFilters(e=>{let t=h.last(e);return[...e,{id:(t?.id??0)+1}]})}function i(t){e.setFilters(e=>e.filter(e=>e.id!==t))}return(0,D.jsxs)(D.Fragment,{children:[e.showInDropdown&&(0,D.jsx)(d,{title:`Filters`}),(0,D.jsx)(`div`,{children:e.filters.map(t=>{let r=e.options.find(e=>e.name===t.field);return(0,D.jsxs)(`div`,{className:`d-flex pb-2`,children:[(0,D.jsx)(A,{filterState:t,setFilterState:e=>n(t.id,e),filterOptions:e.options}),(0,D.jsx)(k,{filterState:t,setFilterState:e=>n(t.id,e),filterField:r}),(0,D.jsx)(L,{filterState:t,setFilterState:e=>n(t.id,e),filterField:r}),(e.filters.length>1||e.showRemoveButton)&&(0,D.jsx)(a,{className:`btn btn-link align-items-center align-self-start ms-n2 ${E.closeIcon}`,onClick:()=>i(t.id),children:(0,D.jsx)(o,{svg:_})})]},t.id)})}),t&&(0,D.jsxs)(a,{onClick:r,className:`info-link d-inline-flex align-items-center`,children:[(0,D.jsx)(o,{svg:g}),(0,D.jsx)(`span`,{children:`Add new filter`})]})]})}var z=[{id:0}];function B(e,t){return e.length>0?e:t?z:[]}function V(t){let n=B(t.initialState,t.showInDropdown),r=x(n),[i,a]=T.useState(n),[d,p]=T.useState(!1);T.useEffect(()=>{s.isEqual(n,r)||a(n)},[t.initialState]);function m(){let e=h.last(i);a([{id:e.id+1}])}T.useEffect(()=>{t.onFiltersChange&&t.onFiltersChange(i)},[i]);function g(){v(),p(!1)}function _(e){p(e),!e&&v()}function v(){let r=i.filter(e=>c.isFilterValid(e,t.options));if(s.isEqual(n,r))return;let a=s.pick(t.queryParams,[`query`,`presentationId`,`sort`,`limit`]);r.length&&(a={...a,...c.serializeFilterParams(r)});let o=f.getCurrentRoute().appLink;e.trigger({...o,params:a})}let y=t.initialState.length,b=!!y;return t.showInDropdown?(0,D.jsxs)(l,{onToggle:_,show:d,children:[(0,D.jsxs)(l.Toggle,{id:`conditional-filters`,className:`fw-semibold mx-1 btn d-flex align-items-center ${E.dropdownToggle}`,variant:b?`dark`:`outline-dark`,children:[(0,D.jsx)(`div`,{className:E.svgContainer,children:(0,D.jsx)(o,{svg:S})}),`Filters`,b?` - ${y}`:``]}),(0,D.jsx)(l.Menu,{children:(0,D.jsxs)(`div`,{className:`mx-1 w-100 px-2 py-1 pe-3 ${E.dropdown}`,children:[(0,D.jsx)(R,{filters:i,setFilters:a,options:t.options,showInDropdown:!0}),(0,D.jsx)(u,{active:i.some(e=>c.isFilterValid(e,t.options)),onClickReset:m,onClickApply:g})]})})]}):(0,D.jsx)(`div`,{children:(0,D.jsx)(R,{filters:i,setFilters:a,options:t.options,showRemoveButton:!0,showInDropdown:!1})})}export{V as t};
2
+ //# sourceMappingURL=3IQ_8AZP2.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"0S5J0xX22.chunk.js","names":[],"sources":["../../../../../src/apps/assembly-line/components/conditional-filters/conditional-filters.module.scss","../../../../../src/apps/assembly-line/components/conditional-filters/fields/select-condition/ConditionalFilterConditions.tsx","../../../../../src/apps/assembly-line/components/conditional-filters/fields/select-field/ConditionalFilterFields.tsx","../../../../../src/apps/assembly-line/components/conditional-filters/fields/select-value/date/ConditionalFilterValueDate.tsx","../../../../../src/apps/assembly-line/components/conditional-filters/fields/select-value/disabled/ConditionalFilterValueDisabled.tsx","../../../../../src/apps/assembly-line/components/conditional-filters/fields/select-value/local-list/ConditionalFilterValueLocalList.tsx","../../../../../src/apps/assembly-line/components/conditional-filters/fields/select-value/remote-list/ConditionalFilterValueRemoteList.tsx","../../../../../src/apps/assembly-line/components/conditional-filters/fields/select-value/remote-search/ConditionalFilterValueRemoteSearch.tsx","../../../../../src/apps/assembly-line/components/conditional-filters/fields/select-value/text/ConditionalFilterValueText.tsx","../../../../../src/apps/assembly-line/components/conditional-filters/fields/select-value/ConditionalFilterValues.tsx","../../../../../src/apps/assembly-line/components/conditional-filters/ConditionalFilters.tsx","../../../../../src/apps/assembly-line/components/conditional-filters/ConditionalFiltersButton.tsx"],"sourcesContent":[":local {\n $field-min-height: 2.9rem;\n $value-width: 20rem;\n\n .field {\n margin-right: map-get($spacers, 2);\n flex-grow: 1;\n min-height: $field-min-height;\n }\n\n .condition {\n margin-right: map-get($spacers, 2);\n flex-grow: 1;\n max-width: $value-width;\n min-height: $field-min-height;\n }\n\n .value {\n margin-right: map-get($spacers, 2);\n flex-grow: 2;\n min-width: $value-width;\n width: $value-width;\n min-height: $field-min-height;\n }\n\n // Icon positioning adjustments to make it look nicer\n .svgContainer {\n margin-top: 0.05rem;\n margin-right: 0.2rem;\n margin-left: -0.2rem;\n }\n\n .dropdownToggle::after {\n display: none;\n }\n\n .dropdown {\n min-width: 50rem;\n }\n\n .closeIcon {\n margin-top: 0.2rem;\n }\n\n .inputFocused {\n box-shadow: none !important;\n }\n}","import React from 'react';\n\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { ConditionalFilterState } from 'apps/assembly-line/components/conditional-filters/ConditionalFilters';\nimport { ConditionalFilterConfig, FilterConditions } from 'apps/assembly-line/interfaces/ConditionalFilterTypes';\n\nimport styles from '../../conditional-filters.module.scss';\n\ntype FilterConditionOptionsHash = {\n [key in FilterConditions]: {\n label: string,\n name: FilterConditions\n };\n};\n\nconst FilterConditionOptions: FilterConditionOptionsHash = {\n empty: {\n label: 'empty',\n name: 'empty'\n },\n not_empty: {\n label: 'not empty',\n name: 'not_empty'\n },\n in: {\n label: 'equals',\n name: 'in'\n },\n not_in: {\n label: 'does not equal',\n name: 'not_in'\n },\n complete: {\n label: 'completed',\n name: 'complete'\n },\n incomplete: {\n label: 'incomplete',\n name: 'incomplete'\n },\n true: {\n label: 'Is true',\n name: 'true'\n },\n false: {\n label: 'Is false',\n name: 'false'\n },\n lte: {\n label: 'less than or equal to',\n name: 'lte'\n },\n gte: {\n label: 'greater than or equal to',\n name: 'gte'\n },\n is_not_applicable: {\n label: 'is N/A',\n name: 'is_not_applicable'\n },\n is_not_not_applicable: {\n label: 'is not N/A',\n name: 'is_not_not_applicable'\n }\n};\n\ninterface ConditionalFilterConditionsProps {\n filterState: ConditionalFilterState;\n setFilterState: (state: ConditionalFilterState) => void;\n filterField: ConditionalFilterConfig<string>;\n}\n\nexport function ConditionalFilterConditions(props: ConditionalFilterConditionsProps): JSX.Element {\n function onSelectCondition(condition: FilterConditions): void {\n props.setFilterState({ id: props.filterState.id, field: props.filterState.field, condition });\n }\n\n React.useEffect(() => {\n if (\n !props.filterState.condition\n && props.filterField?.conditions !== false\n && props.filterField?.conditions?.length === 1\n ) {\n onSelectCondition(ArrayHelper.first(props.filterField?.conditions));\n }\n }, [ props.filterField?.conditions, props.filterState.condition ]);\n\n if (props.filterField?.conditions === false)\n return <></>;\n\n return (\n <select\n onChange={e => onSelectCondition(e.target.value as FilterConditions)}\n className={`form-select ${styles.condition}`}\n value={props.filterState.condition || ''}\n disabled={!props.filterState.field}\n >\n <option className='text-secondary' value='' disabled>\n Condition\n </option>\n\n {props.filterField?.conditions?.map(condition => {\n const conditionOption = FilterConditionOptions[condition];\n const label = props.filterField.labelOverrides?.[conditionOption.name] || conditionOption.label;\n return (\n <option key={conditionOption.name} value={conditionOption.name} className='text-dark'>\n {label}\n </option>\n );\n })}\n </select>\n );\n}\n","import React from 'react';\n\nimport { ConditionalFilterState } from 'apps/assembly-line/components/conditional-filters/ConditionalFilters';\nimport { ConditionalFilterConfig } from 'apps/assembly-line/interfaces/ConditionalFilterTypes';\n\nimport styles from '../../conditional-filters.module.scss';\n\ninterface ConditionalFilterFieldsProps {\n filterState: ConditionalFilterState;\n setFilterState: (state: ConditionalFilterState) => void;\n filterOptions: ConditionalFilterConfig<string>[];\n}\n\nexport function ConditionalFilterFields(props: ConditionalFilterFieldsProps): JSX.Element {\n function onSelectField(field: string): void {\n props.setFilterState({ id: props.filterState.id, field });\n }\n\n return (\n <select\n onChange={e => onSelectField(e.target.value)}\n className={`form-select ${styles.field}`}\n value={props.filterState.field || ''}\n >\n <option className='text-secondary' value='' disabled>\n Field\n </option>\n\n {props.filterOptions.map(o => {\n return (\n <option\n key={o.name}\n value={o.name}\n className={o.disabled ? 'disabled text-secondary' : 'text-dark'}\n disabled={o.disabled}\n >\n {o.label}\n </option>\n );\n })}\n </select>\n );\n}\n","import React from 'react';\n\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { ConditionalFilterState } from 'apps/assembly-line/components/conditional-filters/ConditionalFilters';\n\nimport styles from '../../../conditional-filters.module.scss';\n\ninterface ConditionalFilterValueDateProps {\n filterState: ConditionalFilterState;\n onChange: (value: string) => void;\n}\n\nexport function ConditionalFilterValueDate(props: ConditionalFilterValueDateProps): JSX.Element {\n function getValue() {\n const value = props.filterState.values?.[0]?.value;\n\n if (!value)\n return;\n\n return DateHelper.format(DateHelper.convertUTCToLocal(value), 'YYYY-MM-DD');\n }\n\n return (\n <input\n type='date'\n className={`form-control ${styles.value}`}\n value={getValue()}\n onChange={e => props.onChange(e.target.value)}\n />\n );\n}\n","import React from 'react';\n\nimport styles from '../../../conditional-filters.module.scss';\n\nexport function ConditionalFilterValueDisabled(): JSX.Element {\n return (\n <select\n className={`form-select ${styles.value}`}\n value=''\n disabled\n >\n <option className='text-secondary' value='' disabled>\n Value\n </option>\n </select>\n );\n}\n","import React from 'react';\n\nimport { InputToken } from 'libs/shared/apps/share/components/tokenized-typeahead/InputSelection';\nimport { TokenizedTypeahead } from 'libs/shared/apps/share/components/tokenized-typeahead/TokenizedTypeahead';\nimport { getSuggestionComponent } from 'libs/shared/components/search-bar/SearchUtils';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { ConditionalFilterState } from 'apps/assembly-line/components/conditional-filters/ConditionalFilters';\nimport { ConditionalFilterListOption } from 'apps/assembly-line/interfaces/ConditionalFilterTypes';\n\nimport styles from '../../../conditional-filters.module.scss';\n\ninterface ConditionalFilterValueLocalListProps {\n filterState: ConditionalFilterState;\n onSelect: (option: ConditionalFilterListOption) => void;\n onRemove: (option: ConditionalFilterListOption['value']) => void;\n options: ConditionalFilterListOption[];\n multiple?: boolean;\n}\n\nexport function ConditionalFilterValueLocalList(props: ConditionalFilterValueLocalListProps): JSX.Element {\n const selections = props.filterState.values || [];\n\n if (!props.multiple) {\n return (\n <select\n onChange={e => {\n const value = e.target.value;\n\n props.onSelect(props.options.find(o => o.value.toString() === value.toString()));\n }}\n className={`form-select ${styles.value}`}\n value={selections?.[0]?.value || ''}\n >\n <option className='text-secondary' value='' disabled>\n Value\n </option>\n \n {props.options.map(option => {\n return (\n <option key={option.value} value={option.value} className='text-dark'>\n {option.name}\n </option>\n );\n })}\n </select>\n );\n }\n\n return (\n <div className={styles.value}>\n <TokenizedTypeahead<ConditionalFilterListOption>\n placeholder='Search'\n local={props.options}\n valueKey='name'\n selections={selections}\n onSuggestionSelected={props.onSelect}\n removeSelection={selection => props.onRemove(selection.value)}\n errorStateImageUrl={ImageUrls.TYPEAHEAD_ERROR}\n emptyStateImageUrl={ImageUrls.EmptyStates.TYPEAHEAD_RESULTS}\n activationLength={0}\n suggestionLimit={Infinity}\n getInputTokenComponent={selection => {\n return (\n <InputToken\n key={selection.value}\n selection={{ name: selection.name, id: selection.value, value: selection.value }}\n colourVariant='teal'\n onClickRemove={(selection: ConditionalFilterListOption) => props.onRemove(selection.value)}\n hideExpander\n />\n );\n }}\n getSuggestionComponent={suggestion => getSuggestionComponent('name', suggestion)}\n />\n </div>\n );\n}\n","import React from 'react';\n\nimport { Flight } from 'libs/common/react/index';\n\nimport { InputToken } from 'libs/shared/apps/share/components/tokenized-typeahead/InputSelection';\nimport { TokenizedTypeahead } from 'libs/shared/apps/share/components/tokenized-typeahead/TokenizedTypeahead';\nimport { getSuggestionComponent } from 'libs/shared/components/search-bar/SearchUtils';\nimport * as SearchUtils from 'libs/shared/components/search-bar/SearchUtils';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { ConditionalFilterState } from 'apps/assembly-line/components/conditional-filters/ConditionalFilters';\nimport { ConditionalFilterListOption, FilterConditions } from 'apps/assembly-line/interfaces/ConditionalFilterTypes';\n\nimport styles from '../../../conditional-filters.module.scss';\n\ninterface ConditionalFilterValueRemoteListProps {\n filterState: ConditionalFilterState;\n onSelect: (option: ConditionalFilterListOption) => void;\n onRemove: (option: ConditionalFilterListOption['value']) => void;\n request: Flight.Request;\n formatData: (data: any, condition: FilterConditions) => ConditionalFilterListOption[];\n}\n\nexport function ConditionalFilterValueRemoteList(props: ConditionalFilterValueRemoteListProps): JSX.Element {\n const response = Flight.useBasicFetch<ConditionalFilterListOption[]>(props.request);\n\n const [ options, setOptions ] = React.useState<ConditionalFilterListOption[]>([]);\n\n React.useEffect(() => {\n setOptions(props.formatData(response.data, props.filterState.condition));\n }, [ response.data, props.filterState.condition ]);\n\n const selections = props.filterState.values || [];\n\n function getLocalSuggestions(\n query: string,\n data: ConditionalFilterListOption[]\n ): ConditionalFilterListOption[] {\n const localSuggestions = SearchUtils.getLocalSuggestions<ConditionalFilterListOption>(\n query,\n data,\n 'name',\n 0\n );\n\n return localSuggestions.filter(suggestion => {\n // If a suggestion has already been selected, filter it out\n if (selections.find(selection => selection.value === suggestion.value))\n return false;\n\n return true;\n });\n }\n\n return (\n <div className={styles.value}>\n <TokenizedTypeahead<ConditionalFilterListOption>\n placeholder='Search'\n local={options}\n initialLocalSuggestions={getLocalSuggestions('', options)}\n valueKey='name'\n selections={selections}\n renderSuggestionsOnInputFocus\n onSuggestionSelected={props.onSelect}\n removeSelection={selection => props.onRemove(selection.value)}\n errorStateImageUrl={ImageUrls.TYPEAHEAD_ERROR}\n emptyStateImageUrl={ImageUrls.EmptyStates.TYPEAHEAD_RESULTS}\n activationLength={0} // The remote list acts as a dropdown that allows you to select multiple options. No query is required\n suggestionLimit={100}\n getInputTokenComponent={selection => {\n return (\n <InputToken\n key={selection.value}\n selection={{ name: selection.name, id: selection.value }}\n colourVariant='teal'\n onClickRemove={selection => props.onRemove(selection.id)}\n hideExpander\n />\n );\n }}\n getSuggestionComponent={suggestion => getSuggestionComponent('name', suggestion)}\n onSuggestionDependencies={[ options, props.filterState.values, getLocalSuggestions ]}\n getLocalSuggestions={getLocalSuggestions}\n alwaysRenderSuggestionsWhenFocused\n />\n </div>\n );\n}\n","import React from 'react';\n\nimport { InputToken } from 'libs/shared/apps/share/components/tokenized-typeahead/InputSelection';\nimport { TokenizedTypeahead } from 'libs/shared/apps/share/components/tokenized-typeahead/TokenizedTypeahead';\nimport { getSuggestionComponent } from 'libs/shared/components/search-bar/SearchUtils';\nimport { BaseObject } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { ConditionalFilterState } from 'apps/assembly-line/components/conditional-filters/ConditionalFilters';\nimport { ConditionalFilterListOption } from 'apps/assembly-line/interfaces/ConditionalFilterTypes';\n\nimport styles from '../../../conditional-filters.module.scss';\n\ninterface ConditionalFilterValueRemoteSearchProps {\n filterState: ConditionalFilterState;\n onSelect: (option: ConditionalFilterListOption) => void;\n onRemove: (option: string) => void;\n formatData: (results: BaseObject[], selections: ConditionalFilterListOption[]) => ConditionalFilterListOption[];\n getRemoteUrl: (query: string) => string;\n}\n\nexport function ConditionalFilterValueRemoteSearch(props: ConditionalFilterValueRemoteSearchProps): JSX.Element {\n const selections = props.filterState.values || [];\n\n return (\n <div className={styles.value}>\n <TokenizedTypeahead<ConditionalFilterListOption>\n placeholder='Search'\n getRemoteUrl={props.getRemoteUrl}\n valueKey='name'\n selections={selections}\n formatRemoteSuggestions={suggestions => props.formatData(suggestions, selections)}\n onSuggestionSelected={props.onSelect}\n removeSelection={selection => props.onRemove(selection.value)}\n errorStateImageUrl={ImageUrls.TYPEAHEAD_ERROR}\n emptyStateImageUrl={ImageUrls.EmptyStates.TYPEAHEAD_RESULTS}\n activationLength={2}\n suggestionLimit={10}\n debounceTime={200}\n getInputTokenComponent={selection => {\n return (\n <InputToken\n key={selection.value}\n selection={selection}\n colourVariant='teal'\n onClickRemove={(selection: ConditionalFilterListOption) => props.onRemove(selection.value)}\n hideExpander\n />\n );\n }}\n getSuggestionComponent={suggestion => getSuggestionComponent('name', suggestion)}\n renderSuggestionsOnInputFocus={false}\n onSuggestionDependencies={[props.filterState.values]}\n theme={{\n inputFocused: styles.inputFocused\n }}\n />\n </div>\n );\n}\n","import React from 'react';\n\nimport { ConditionalFilterState } from 'apps/assembly-line/components/conditional-filters/ConditionalFilters';\n\nimport styles from '../../../conditional-filters.module.scss';\n\ninterface ConditionalFilterValueTextProps {\n filterState: ConditionalFilterState;\n onChange: (value: string) => void;\n placeholder: string;\n inputType?: React.HTMLInputTypeAttribute;\n}\n\nConditionalFilterValueText.defaultProps = {\n inputType: 'text'\n};\n\nexport function ConditionalFilterValueText(props: ConditionalFilterValueTextProps): JSX.Element {\n return (\n <input\n className={`form-control ${styles.value}`}\n value={props.filterState.values?.[0]?.value}\n onChange={e => props.onChange(e.target.value)}\n placeholder={props.placeholder}\n type={props.inputType}\n />\n );\n}\n","import React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { ConditionalFilterState } from 'apps/assembly-line/components/conditional-filters/ConditionalFilters';\nimport { ConditionalFilterValueDate } from 'apps/assembly-line/components/conditional-filters/fields/select-value/date/ConditionalFilterValueDate';\nimport { ConditionalFilterValueDisabled } from 'apps/assembly-line/components/conditional-filters/fields/select-value/disabled/ConditionalFilterValueDisabled';\nimport { ConditionalFilterValueLocalList } from 'apps/assembly-line/components/conditional-filters/fields/select-value/local-list/ConditionalFilterValueLocalList';\nimport { ConditionalFilterValueRemoteList } from 'apps/assembly-line/components/conditional-filters/fields/select-value/remote-list/ConditionalFilterValueRemoteList';\nimport { ConditionalFilterValueRemoteSearch } from 'apps/assembly-line/components/conditional-filters/fields/select-value/remote-search/ConditionalFilterValueRemoteSearch';\nimport { ConditionalFilterValueText } from 'apps/assembly-line/components/conditional-filters/fields/select-value/text/ConditionalFilterValueText';\nimport { ConditionalFilterConfig, ConditionalFilterListOption } from 'apps/assembly-line/interfaces/ConditionalFilterTypes';\nimport { AssemblyLineFilterHelper } from 'apps/assembly-line/utils/AssemblyLineFilterHelper';\n\ninterface ConditionalFilterValuesProps {\n filterState: ConditionalFilterState;\n setFilterState: (state: ConditionalFilterState) => void;\n \n filterField: ConditionalFilterConfig<string>;\n}\n\nexport function ConditionalFilterValues(props: ConditionalFilterValuesProps): JSX.Element {\n function onSelectValue(value: ConditionalFilterListOption): void {\n if (typeof props.filterField.values === 'boolean')\n return;\n\n if ('multiple' in props.filterField.values) {\n const multiple = FunctionHelper.isFunction(props.filterField.values.multiple) ?\n props.filterField.values.multiple(props.filterState.condition) :\n props.filterField.values.multiple;\n\n if (multiple) {\n props.setFilterState({\n ...props.filterState,\n values: (props.filterState.values || []).concat(value)\n });\n\n return;\n }\n }\n\n props.setFilterState({\n ...props.filterState,\n values: [value]\n });\n }\n\n function onRemoveValue(value: string): void {\n if (typeof props.filterField.values === 'boolean')\n return;\n\n if (!('multiple' in props.filterField.values) || props.filterField.values.multiple === false) {\n props.setFilterState(ObjectHelper.omit(props.filterState, ['values']));\n }\n\n props.setFilterState({\n ...props.filterState,\n values: props.filterState.values.filter(val => val.value !== value)\n });\n }\n\n // If the filter field type doesn't support selecting a value, display nothing\n if (props.filterField?.values === false)\n return <></>;\n\n const isConditionSet = props.filterState.condition || props.filterField?.conditions === false;\n\n // If the values are being fetched or a condition hasn't been set, display a disabled component\n if (!props.filterField?.values || !isConditionSet)\n return <ConditionalFilterValueDisabled />;\n\n // If a condition has been set and it doesn't support selecting a value, display nothing\n if (\n props.filterField?.conditions !== false &&\n !AssemblyLineFilterHelper.canConditionHaveValue(props.filterState.condition)\n ) {\n return <></>;\n }\n\n // If we can display a filter value field, render a component based on the type\n switch (props.filterField.values.type) {\n case 'local-list': {\n return (\n <ConditionalFilterValueLocalList\n filterState={props.filterState}\n onSelect={onSelectValue}\n onRemove={onRemoveValue}\n options={props.filterField.values.options}\n multiple={props.filterField.values.multiple}\n />\n );\n }\n\n case 'remote-list': {\n return (\n <ConditionalFilterValueRemoteList\n filterState={props.filterState}\n onSelect={onSelectValue}\n onRemove={onRemoveValue}\n request={props.filterField.values.request}\n formatData={props.filterField.values.formatData}\n />\n );\n }\n\n case 'remote-search': {\n return (\n <ConditionalFilterValueRemoteSearch\n filterState={props.filterState}\n onSelect={onSelectValue}\n onRemove={onRemoveValue}\n getRemoteUrl={props.filterField.values.getRemoteUrl}\n formatData={props.filterField.values.formatData}\n />\n );\n }\n\n case 'text': {\n return (\n <ConditionalFilterValueText\n filterState={props.filterState}\n onChange={value => {\n if (!value) {\n onRemoveValue(props.filterState.values[0].value);\n return;\n }\n\n onSelectValue({\n value,\n name: value\n });\n }}\n placeholder={props.filterField.values.placeholder}\n inputType={props.filterField.values.inputType}\n />\n );\n }\n\n case 'date': {\n return (\n <ConditionalFilterValueDate\n filterState={props.filterState}\n onChange={value => {\n onSelectValue({\n value: DateHelper.getUtcISOString(value),\n name: DateHelper.getUtcISOString(value)\n });\n }}\n />\n );\n }\n }\n\n return <></>;\n}\n","import React from 'react';\n\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { FilterDropdownTitle } from 'libs/shared/apps/search/components/filter-dropdown-title/FilterDropdownTitle';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { CloseSvg } from 'libs/shared/images/svg/actions/CloseSvg';\nimport { PlusSvg } from 'libs/shared/images/svg/actions/PlusSvg';\n\nimport { ConditionalFilterConditions } from 'apps/assembly-line/components/conditional-filters/fields/select-condition/ConditionalFilterConditions';\nimport { ConditionalFilterFields } from 'apps/assembly-line/components/conditional-filters/fields/select-field/ConditionalFilterFields';\nimport { ConditionalFilterValues } from 'apps/assembly-line/components/conditional-filters/fields/select-value/ConditionalFilterValues';\nimport { ConditionalFilterConfig, ConditionalFilterListOption, FilterConditions } from 'apps/assembly-line/interfaces/ConditionalFilterTypes';\nimport { AssemblyLineFilterHelper } from 'apps/assembly-line/utils/AssemblyLineFilterHelper';\n\nimport styles from './conditional-filters.module.scss';\n\nexport interface ConditionalFilterState<TField = string> {\n id: number;\n field?: TField;\n condition?: FilterConditions;\n values?: ConditionalFilterListOption[];\n}\n\ninterface ConditionalFiltersProps {\n filters: ConditionalFilterState[];\n setFilters: React.Dispatch<React.SetStateAction<ConditionalFilterState[]>>;\n options: ConditionalFilterConfig<string>[];\n showRemoveButton?: boolean;\n showInDropdown?: boolean;\n}\n\nexport function ConditionalFilters(props: ConditionalFiltersProps): JSX.Element {\n // New filters can only be added if all current filters are valid.\n const canAddNewFilter = React.useMemo(() => {\n return props.filters.every(f => AssemblyLineFilterHelper.isFilterValid(f, props.options));\n }, [props.filters]);\n\n function setFilterState(id: number, state: ConditionalFilterState): void {\n props.setFilters(filters => {\n return filters.map(filter => {\n if (filter.id !== id)\n return filter;\n \n return state;\n });\n });\n }\n\n function onClickAddFilter(): void {\n props.setFilters(filters => {\n const latest = ArrayHelper.last(filters);\n return [ ...filters, { id: (latest?.id ?? 0) + 1 }];\n });\n }\n\n function onClickRemoveFilter(id: number): void {\n props.setFilters(filters => {\n return filters.filter(f => {\n return f.id !== id;\n });\n });\n }\n\n return (\n <>\n {props.showInDropdown && <FilterDropdownTitle title='Filters' />}\n\n <div>\n {props.filters.map(filter => {\n const selectedField = props.options.find(o => o.name === filter.field);\n\n return (\n <div key={filter.id} className='d-flex pb-2'>\n <ConditionalFilterFields\n filterState={filter}\n setFilterState={state => setFilterState(filter.id, state)}\n filterOptions={props.options}\n />\n\n <ConditionalFilterConditions\n filterState={filter}\n setFilterState={state => setFilterState(filter.id, state)}\n filterField={selectedField}\n />\n\n <ConditionalFilterValues\n filterState={filter}\n setFilterState={state => setFilterState(filter.id, state)}\n filterField={selectedField}\n />\n\n {(props.filters.length > 1 || props.showRemoveButton) && (\n <DivButton\n className={`btn btn-link align-items-center align-self-start ms-n2 ${styles.closeIcon}`}\n onClick={() => onClickRemoveFilter(filter.id)}\n >\n <SvgContainer svg={CloseSvg} />\n </DivButton>\n )}\n </div>\n );\n })}\n </div>\n\n {canAddNewFilter && (\n <DivButton\n onClick={onClickAddFilter}\n className='info-link d-inline-flex align-items-center'\n >\n <SvgContainer svg={PlusSvg} />\n <span>Add new filter</span>\n </DivButton>\n )}\n </>\n );\n}\n","import React from 'react';\nimport { Dropdown } from 'react-bootstrap';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { FilterActions } from 'libs/shared/apps/search/components/filter-actions/FilterActions';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { usePrevious } from 'libs/shared/hooks/usePrevious';\nimport { FilterSvg } from 'libs/shared/images/svg/objects/FilterSvg';\nimport { ContextService } from 'libs/shared/services/ContextService';\n\nimport { ConditionalFilters, ConditionalFilterState } from 'apps/assembly-line/components/conditional-filters/ConditionalFilters';\nimport { AssemblyLineQueryParams } from 'apps/assembly-line/interfaces/AssemblyLineQueryParams';\nimport { ConditionalFilterConfig } from 'apps/assembly-line/interfaces/ConditionalFilterTypes';\nimport { AssemblyLineFilterHelper } from 'apps/assembly-line/utils/AssemblyLineFilterHelper';\n\nimport styles from './conditional-filters.module.scss';\n\nconst INITIAL_STATE = [{ id: 0 }];\n\ninterface ConditionalFiltersButtonProps {\n initialState: ConditionalFilterState[];\n options: ConditionalFilterConfig[];\n queryParams: AssemblyLineQueryParams;\n columns: string[];\n showInDropdown?: boolean;\n onFiltersChange?: (filters: ConditionalFilterState[]) => void;\n}\n\nfunction getInitialState(initialState: ConditionalFilterState[], showInDropdown?: boolean): ConditionalFilterState[] {\n if (initialState.length > 0) {\n return initialState;\n }\n if (showInDropdown) {\n return INITIAL_STATE;\n }\n return [];\n}\n\n/**\n * TODO: Try to DRY this up with FilterButton as much as possible\n */\nexport function ConditionalFiltersButton(props: ConditionalFiltersButtonProps): JSX.Element {\n const initialState = getInitialState(props.initialState, props.showInDropdown);\n const previousInitialState = usePrevious(initialState);\n\n const [ filters, setFilters ] = React.useState<ConditionalFilterState[]>(initialState);\n const [ showDropdown, setShowDropdown ] = React.useState(false);\n\n React.useEffect(() => {\n if (ObjectHelper.isEqual(initialState, previousInitialState))\n return;\n\n setFilters(initialState);\n }, [props.initialState]);\n\n function onClickReset(): void {\n const latestFilter = ArrayHelper.last(filters);\n setFilters([{ id: latestFilter.id + 1 }]);\n }\n\n React.useEffect(() => {\n if (props.onFiltersChange)\n props.onFiltersChange(filters);\n }, [filters]);\n\n function onClickApply(): void {\n applyFilter();\n setShowDropdown(false);\n }\n\n function onToggleDropdown(isShowing: boolean): void {\n setShowDropdown(isShowing);\n\n if (isShowing)\n return;\n\n // Apply the filter if the dropdown has been closed\n applyFilter();\n }\n\n function applyFilter(): void {\n const validFilters = filters.filter(f => AssemblyLineFilterHelper.isFilterValid(f, props.options));\n\n if (ObjectHelper.isEqual(initialState, validFilters))\n return;\n\n let params = ObjectHelper.pick(props.queryParams, [ 'query', 'presentationId', 'sort', 'limit' ]);\n\n if (validFilters.length) {\n params = {\n ...params,\n ...AssemblyLineFilterHelper.serializeFilterParams(validFilters)\n };\n }\n\n const currentAppLink = ContextService.getCurrentRoute().appLink;\n\n Core.AppLinkHelper.trigger({\n ...currentAppLink,\n params\n });\n }\n\n const appliedFilterCount = props.initialState.length;\n const hasAppliedFilters = !!appliedFilterCount;\n\n if (!props.showInDropdown) {\n return (\n <div>\n <ConditionalFilters\n filters={filters}\n setFilters={setFilters}\n options={props.options}\n showRemoveButton\n showInDropdown={false}\n />\n </div>\n );\n }\n\n return (\n <Dropdown onToggle={onToggleDropdown} show={showDropdown}>\n <Dropdown.Toggle\n id='conditional-filters'\n className={`fw-semibold mx-1 btn d-flex align-items-center ${styles.dropdownToggle}`}\n variant={hasAppliedFilters ? 'dark' : 'outline-dark'}\n >\n <div className={styles.svgContainer}>\n <SvgContainer svg={FilterSvg} />\n </div>\n Filters\n {hasAppliedFilters ? ` - ${appliedFilterCount}` : ''}\n </Dropdown.Toggle>\n\n <Dropdown.Menu>\n <div className={`mx-1 w-100 px-2 py-1 pe-3 ${styles.dropdown}`}>\n <ConditionalFilters\n filters={filters}\n setFilters={setFilters}\n options={props.options}\n showInDropdown\n />\n\n <FilterActions\n active={filters.some(f => AssemblyLineFilterHelper.isFilterValid(f, props.options))}\n onClickReset={onClickReset}\n onClickApply={onClickApply}\n />\n </div>\n </Dropdown.Menu>\n </Dropdown>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"3IQ_8AZP2.chunk.js","names":[],"sources":["../../../../../src/apps/assembly-line/components/conditional-filters/conditional-filters.module.scss","../../../../../src/apps/assembly-line/components/conditional-filters/fields/select-condition/ConditionalFilterConditions.tsx","../../../../../src/apps/assembly-line/components/conditional-filters/fields/select-field/ConditionalFilterFields.tsx","../../../../../src/apps/assembly-line/components/conditional-filters/fields/select-value/date/ConditionalFilterValueDate.tsx","../../../../../src/apps/assembly-line/components/conditional-filters/fields/select-value/disabled/ConditionalFilterValueDisabled.tsx","../../../../../src/apps/assembly-line/components/conditional-filters/fields/select-value/local-list/ConditionalFilterValueLocalList.tsx","../../../../../src/apps/assembly-line/components/conditional-filters/fields/select-value/remote-list/ConditionalFilterValueRemoteList.tsx","../../../../../src/apps/assembly-line/components/conditional-filters/fields/select-value/remote-search/ConditionalFilterValueRemoteSearch.tsx","../../../../../src/apps/assembly-line/components/conditional-filters/fields/select-value/text/ConditionalFilterValueText.tsx","../../../../../src/apps/assembly-line/components/conditional-filters/fields/select-value/ConditionalFilterValues.tsx","../../../../../src/apps/assembly-line/components/conditional-filters/ConditionalFilters.tsx","../../../../../src/apps/assembly-line/components/conditional-filters/ConditionalFiltersButton.tsx"],"sourcesContent":[":local {\n $field-min-height: 2.9rem;\n $value-width: 20rem;\n\n .field {\n margin-right: map-get($spacers, 2);\n flex-grow: 1;\n min-height: $field-min-height;\n }\n\n .condition {\n margin-right: map-get($spacers, 2);\n flex-grow: 1;\n max-width: $value-width;\n min-height: $field-min-height;\n }\n\n .value {\n margin-right: map-get($spacers, 2);\n flex-grow: 2;\n min-width: $value-width;\n width: $value-width;\n min-height: $field-min-height;\n }\n\n // Icon positioning adjustments to make it look nicer\n .svgContainer {\n margin-top: 0.05rem;\n margin-right: 0.2rem;\n margin-left: -0.2rem;\n }\n\n .dropdownToggle::after {\n display: none;\n }\n\n .dropdown {\n min-width: 50rem;\n }\n\n .closeIcon {\n margin-top: 0.2rem;\n }\n\n .inputFocused {\n box-shadow: none !important;\n }\n}","import React from 'react';\n\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { ConditionalFilterState } from 'apps/assembly-line/components/conditional-filters/ConditionalFilters';\nimport { ConditionalFilterConfig, FilterConditions } from 'apps/assembly-line/interfaces/ConditionalFilterTypes';\n\nimport styles from '../../conditional-filters.module.scss';\n\ntype FilterConditionOptionsHash = {\n [key in FilterConditions]: {\n label: string,\n name: FilterConditions\n };\n};\n\nconst FilterConditionOptions: FilterConditionOptionsHash = {\n empty: {\n label: 'empty',\n name: 'empty'\n },\n not_empty: {\n label: 'not empty',\n name: 'not_empty'\n },\n in: {\n label: 'equals',\n name: 'in'\n },\n not_in: {\n label: 'does not equal',\n name: 'not_in'\n },\n complete: {\n label: 'completed',\n name: 'complete'\n },\n incomplete: {\n label: 'incomplete',\n name: 'incomplete'\n },\n true: {\n label: 'Is true',\n name: 'true'\n },\n false: {\n label: 'Is false',\n name: 'false'\n },\n lte: {\n label: 'less than or equal to',\n name: 'lte'\n },\n gte: {\n label: 'greater than or equal to',\n name: 'gte'\n },\n is_not_applicable: {\n label: 'is N/A',\n name: 'is_not_applicable'\n },\n is_not_not_applicable: {\n label: 'is not N/A',\n name: 'is_not_not_applicable'\n }\n};\n\ninterface ConditionalFilterConditionsProps {\n filterState: ConditionalFilterState;\n setFilterState: (state: ConditionalFilterState) => void;\n filterField: ConditionalFilterConfig<string>;\n}\n\nexport function ConditionalFilterConditions(props: ConditionalFilterConditionsProps): JSX.Element {\n function onSelectCondition(condition: FilterConditions): void {\n props.setFilterState({ id: props.filterState.id, field: props.filterState.field, condition });\n }\n\n React.useEffect(() => {\n if (\n !props.filterState.condition\n && props.filterField?.conditions !== false\n && props.filterField?.conditions?.length === 1\n ) {\n onSelectCondition(ArrayHelper.first(props.filterField?.conditions));\n }\n }, [ props.filterField?.conditions, props.filterState.condition ]);\n\n if (props.filterField?.conditions === false)\n return <></>;\n\n return (\n <select\n onChange={e => onSelectCondition(e.target.value as FilterConditions)}\n className={`form-select ${styles.condition}`}\n value={props.filterState.condition || ''}\n disabled={!props.filterState.field}\n >\n <option className='text-secondary' value='' disabled>\n Condition\n </option>\n\n {props.filterField?.conditions?.map(condition => {\n const conditionOption = FilterConditionOptions[condition];\n const label = props.filterField.labelOverrides?.[conditionOption.name] || conditionOption.label;\n return (\n <option key={conditionOption.name} value={conditionOption.name} className='text-dark'>\n {label}\n </option>\n );\n })}\n </select>\n );\n}\n","import React from 'react';\n\nimport { ConditionalFilterState } from 'apps/assembly-line/components/conditional-filters/ConditionalFilters';\nimport { ConditionalFilterConfig } from 'apps/assembly-line/interfaces/ConditionalFilterTypes';\n\nimport styles from '../../conditional-filters.module.scss';\n\ninterface ConditionalFilterFieldsProps {\n filterState: ConditionalFilterState;\n setFilterState: (state: ConditionalFilterState) => void;\n filterOptions: ConditionalFilterConfig<string>[];\n}\n\nexport function ConditionalFilterFields(props: ConditionalFilterFieldsProps): JSX.Element {\n function onSelectField(field: string): void {\n props.setFilterState({ id: props.filterState.id, field });\n }\n\n return (\n <select\n onChange={e => onSelectField(e.target.value)}\n className={`form-select ${styles.field}`}\n value={props.filterState.field || ''}\n >\n <option className='text-secondary' value='' disabled>\n Field\n </option>\n\n {props.filterOptions.map(o => {\n return (\n <option\n key={o.name}\n value={o.name}\n className={o.disabled ? 'disabled text-secondary' : 'text-dark'}\n disabled={o.disabled}\n >\n {o.label}\n </option>\n );\n })}\n </select>\n );\n}\n","import React from 'react';\n\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { ConditionalFilterState } from 'apps/assembly-line/components/conditional-filters/ConditionalFilters';\n\nimport styles from '../../../conditional-filters.module.scss';\n\ninterface ConditionalFilterValueDateProps {\n filterState: ConditionalFilterState;\n onChange: (value: string) => void;\n}\n\nexport function ConditionalFilterValueDate(props: ConditionalFilterValueDateProps): JSX.Element {\n function getValue() {\n const value = props.filterState.values?.[0]?.value;\n\n if (!value)\n return;\n\n return DateHelper.format(DateHelper.convertUTCToLocal(value), 'YYYY-MM-DD');\n }\n\n return (\n <input\n type='date'\n className={`form-control ${styles.value}`}\n value={getValue()}\n onChange={e => props.onChange(e.target.value)}\n />\n );\n}\n","import React from 'react';\n\nimport styles from '../../../conditional-filters.module.scss';\n\nexport function ConditionalFilterValueDisabled(): JSX.Element {\n return (\n <select\n className={`form-select ${styles.value}`}\n value=''\n disabled\n >\n <option className='text-secondary' value='' disabled>\n Value\n </option>\n </select>\n );\n}\n","import React from 'react';\n\nimport { InputToken } from 'libs/shared/apps/share/components/tokenized-typeahead/InputSelection';\nimport { TokenizedTypeahead } from 'libs/shared/apps/share/components/tokenized-typeahead/TokenizedTypeahead';\nimport { getSuggestionComponent } from 'libs/shared/components/search-bar/SearchUtils';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { ConditionalFilterState } from 'apps/assembly-line/components/conditional-filters/ConditionalFilters';\nimport { ConditionalFilterListOption } from 'apps/assembly-line/interfaces/ConditionalFilterTypes';\n\nimport styles from '../../../conditional-filters.module.scss';\n\ninterface ConditionalFilterValueLocalListProps {\n filterState: ConditionalFilterState;\n onSelect: (option: ConditionalFilterListOption) => void;\n onRemove: (option: ConditionalFilterListOption['value']) => void;\n options: ConditionalFilterListOption[];\n multiple?: boolean;\n}\n\nexport function ConditionalFilterValueLocalList(props: ConditionalFilterValueLocalListProps): JSX.Element {\n const selections = props.filterState.values || [];\n\n if (!props.multiple) {\n return (\n <select\n onChange={e => {\n const value = e.target.value;\n\n props.onSelect(props.options.find(o => o.value.toString() === value.toString()));\n }}\n className={`form-select ${styles.value}`}\n value={selections?.[0]?.value || ''}\n >\n <option className='text-secondary' value='' disabled>\n Value\n </option>\n \n {props.options.map(option => {\n return (\n <option key={option.value} value={option.value} className='text-dark'>\n {option.name}\n </option>\n );\n })}\n </select>\n );\n }\n\n return (\n <div className={styles.value}>\n <TokenizedTypeahead<ConditionalFilterListOption>\n placeholder='Search'\n local={props.options}\n valueKey='name'\n selections={selections}\n onSuggestionSelected={props.onSelect}\n removeSelection={selection => props.onRemove(selection.value)}\n errorStateImageUrl={ImageUrls.TYPEAHEAD_ERROR}\n emptyStateImageUrl={ImageUrls.EmptyStates.TYPEAHEAD_RESULTS}\n activationLength={0}\n suggestionLimit={Infinity}\n getInputTokenComponent={selection => {\n return (\n <InputToken\n key={selection.value}\n selection={{ name: selection.name, id: selection.value, value: selection.value }}\n colourVariant='teal'\n onClickRemove={(selection: ConditionalFilterListOption) => props.onRemove(selection.value)}\n hideExpander\n />\n );\n }}\n getSuggestionComponent={suggestion => getSuggestionComponent('name', suggestion)}\n />\n </div>\n );\n}\n","import React from 'react';\n\nimport { Flight } from 'libs/common/react/index';\n\nimport { InputToken } from 'libs/shared/apps/share/components/tokenized-typeahead/InputSelection';\nimport { TokenizedTypeahead } from 'libs/shared/apps/share/components/tokenized-typeahead/TokenizedTypeahead';\nimport { getSuggestionComponent } from 'libs/shared/components/search-bar/SearchUtils';\nimport * as SearchUtils from 'libs/shared/components/search-bar/SearchUtils';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { ConditionalFilterState } from 'apps/assembly-line/components/conditional-filters/ConditionalFilters';\nimport { ConditionalFilterListOption, FilterConditions } from 'apps/assembly-line/interfaces/ConditionalFilterTypes';\n\nimport styles from '../../../conditional-filters.module.scss';\n\ninterface ConditionalFilterValueRemoteListProps {\n filterState: ConditionalFilterState;\n onSelect: (option: ConditionalFilterListOption) => void;\n onRemove: (option: ConditionalFilterListOption['value']) => void;\n request: Flight.Request;\n formatData: (data: any, condition: FilterConditions) => ConditionalFilterListOption[];\n}\n\nexport function ConditionalFilterValueRemoteList(props: ConditionalFilterValueRemoteListProps): JSX.Element {\n const response = Flight.useBasicFetch<ConditionalFilterListOption[]>(props.request);\n\n const [ options, setOptions ] = React.useState<ConditionalFilterListOption[]>([]);\n\n React.useEffect(() => {\n setOptions(props.formatData(response.data, props.filterState.condition));\n }, [ response.data, props.filterState.condition ]);\n\n const selections = props.filterState.values || [];\n\n function getLocalSuggestions(\n query: string,\n data: ConditionalFilterListOption[]\n ): ConditionalFilterListOption[] {\n const localSuggestions = SearchUtils.getLocalSuggestions<ConditionalFilterListOption>(\n query,\n data,\n 'name',\n 0\n );\n\n return localSuggestions.filter(suggestion => {\n // If a suggestion has already been selected, filter it out\n if (selections.find(selection => selection.value === suggestion.value))\n return false;\n\n return true;\n });\n }\n\n return (\n <div className={styles.value}>\n <TokenizedTypeahead<ConditionalFilterListOption>\n placeholder='Search'\n local={options}\n initialLocalSuggestions={getLocalSuggestions('', options)}\n valueKey='name'\n selections={selections}\n renderSuggestionsOnInputFocus\n onSuggestionSelected={props.onSelect}\n removeSelection={selection => props.onRemove(selection.value)}\n errorStateImageUrl={ImageUrls.TYPEAHEAD_ERROR}\n emptyStateImageUrl={ImageUrls.EmptyStates.TYPEAHEAD_RESULTS}\n activationLength={0} // The remote list acts as a dropdown that allows you to select multiple options. No query is required\n suggestionLimit={100}\n getInputTokenComponent={selection => {\n return (\n <InputToken\n key={selection.value}\n selection={{ name: selection.name, id: selection.value }}\n colourVariant='teal'\n onClickRemove={selection => props.onRemove(selection.id)}\n hideExpander\n />\n );\n }}\n getSuggestionComponent={suggestion => getSuggestionComponent('name', suggestion)}\n onSuggestionDependencies={[ options, props.filterState.values, getLocalSuggestions ]}\n getLocalSuggestions={getLocalSuggestions}\n alwaysRenderSuggestionsWhenFocused\n />\n </div>\n );\n}\n","import React from 'react';\n\nimport { InputToken } from 'libs/shared/apps/share/components/tokenized-typeahead/InputSelection';\nimport { TokenizedTypeahead } from 'libs/shared/apps/share/components/tokenized-typeahead/TokenizedTypeahead';\nimport { getSuggestionComponent } from 'libs/shared/components/search-bar/SearchUtils';\nimport { BaseObject } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { ConditionalFilterState } from 'apps/assembly-line/components/conditional-filters/ConditionalFilters';\nimport { ConditionalFilterListOption } from 'apps/assembly-line/interfaces/ConditionalFilterTypes';\n\nimport styles from '../../../conditional-filters.module.scss';\n\ninterface ConditionalFilterValueRemoteSearchProps {\n filterState: ConditionalFilterState;\n onSelect: (option: ConditionalFilterListOption) => void;\n onRemove: (option: string) => void;\n formatData: (results: BaseObject[], selections: ConditionalFilterListOption[]) => ConditionalFilterListOption[];\n getRemoteUrl: (query: string) => string;\n}\n\nexport function ConditionalFilterValueRemoteSearch(props: ConditionalFilterValueRemoteSearchProps): JSX.Element {\n const selections = props.filterState.values || [];\n\n return (\n <div className={styles.value}>\n <TokenizedTypeahead<ConditionalFilterListOption>\n placeholder='Search'\n getRemoteUrl={props.getRemoteUrl}\n valueKey='name'\n selections={selections}\n formatRemoteSuggestions={suggestions => props.formatData(suggestions, selections)}\n onSuggestionSelected={props.onSelect}\n removeSelection={selection => props.onRemove(selection.value)}\n errorStateImageUrl={ImageUrls.TYPEAHEAD_ERROR}\n emptyStateImageUrl={ImageUrls.EmptyStates.TYPEAHEAD_RESULTS}\n activationLength={2}\n suggestionLimit={10}\n debounceTime={200}\n getInputTokenComponent={selection => {\n return (\n <InputToken\n key={selection.value}\n selection={selection}\n colourVariant='teal'\n onClickRemove={(selection: ConditionalFilterListOption) => props.onRemove(selection.value)}\n hideExpander\n />\n );\n }}\n getSuggestionComponent={suggestion => getSuggestionComponent('name', suggestion)}\n renderSuggestionsOnInputFocus={false}\n onSuggestionDependencies={[props.filterState.values]}\n theme={{\n inputFocused: styles.inputFocused\n }}\n />\n </div>\n );\n}\n","import React from 'react';\n\nimport { ConditionalFilterState } from 'apps/assembly-line/components/conditional-filters/ConditionalFilters';\n\nimport styles from '../../../conditional-filters.module.scss';\n\ninterface ConditionalFilterValueTextProps {\n filterState: ConditionalFilterState;\n onChange: (value: string) => void;\n placeholder: string;\n inputType?: React.HTMLInputTypeAttribute;\n}\n\nConditionalFilterValueText.defaultProps = {\n inputType: 'text'\n};\n\nexport function ConditionalFilterValueText(props: ConditionalFilterValueTextProps): JSX.Element {\n return (\n <input\n className={`form-control ${styles.value}`}\n value={props.filterState.values?.[0]?.value}\n onChange={e => props.onChange(e.target.value)}\n placeholder={props.placeholder}\n type={props.inputType}\n />\n );\n}\n","import React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { ConditionalFilterState } from 'apps/assembly-line/components/conditional-filters/ConditionalFilters';\nimport { ConditionalFilterValueDate } from 'apps/assembly-line/components/conditional-filters/fields/select-value/date/ConditionalFilterValueDate';\nimport { ConditionalFilterValueDisabled } from 'apps/assembly-line/components/conditional-filters/fields/select-value/disabled/ConditionalFilterValueDisabled';\nimport { ConditionalFilterValueLocalList } from 'apps/assembly-line/components/conditional-filters/fields/select-value/local-list/ConditionalFilterValueLocalList';\nimport { ConditionalFilterValueRemoteList } from 'apps/assembly-line/components/conditional-filters/fields/select-value/remote-list/ConditionalFilterValueRemoteList';\nimport { ConditionalFilterValueRemoteSearch } from 'apps/assembly-line/components/conditional-filters/fields/select-value/remote-search/ConditionalFilterValueRemoteSearch';\nimport { ConditionalFilterValueText } from 'apps/assembly-line/components/conditional-filters/fields/select-value/text/ConditionalFilterValueText';\nimport { ConditionalFilterConfig, ConditionalFilterListOption } from 'apps/assembly-line/interfaces/ConditionalFilterTypes';\nimport { AssemblyLineFilterHelper } from 'apps/assembly-line/utils/AssemblyLineFilterHelper';\n\ninterface ConditionalFilterValuesProps {\n filterState: ConditionalFilterState;\n setFilterState: (state: ConditionalFilterState) => void;\n \n filterField: ConditionalFilterConfig<string>;\n}\n\nexport function ConditionalFilterValues(props: ConditionalFilterValuesProps): JSX.Element {\n function onSelectValue(value: ConditionalFilterListOption): void {\n if (typeof props.filterField.values === 'boolean')\n return;\n\n if ('multiple' in props.filterField.values) {\n const multiple = FunctionHelper.isFunction(props.filterField.values.multiple) ?\n props.filterField.values.multiple(props.filterState.condition) :\n props.filterField.values.multiple;\n\n if (multiple) {\n props.setFilterState({\n ...props.filterState,\n values: (props.filterState.values || []).concat(value)\n });\n\n return;\n }\n }\n\n props.setFilterState({\n ...props.filterState,\n values: [value]\n });\n }\n\n function onRemoveValue(value: string): void {\n if (typeof props.filterField.values === 'boolean')\n return;\n\n if (!('multiple' in props.filterField.values) || props.filterField.values.multiple === false) {\n props.setFilterState(ObjectHelper.omit(props.filterState, ['values']));\n }\n\n props.setFilterState({\n ...props.filterState,\n values: props.filterState.values.filter(val => val.value !== value)\n });\n }\n\n // If the filter field type doesn't support selecting a value, display nothing\n if (props.filterField?.values === false)\n return <></>;\n\n const isConditionSet = props.filterState.condition || props.filterField?.conditions === false;\n\n // If the values are being fetched or a condition hasn't been set, display a disabled component\n if (!props.filterField?.values || !isConditionSet)\n return <ConditionalFilterValueDisabled />;\n\n // If a condition has been set and it doesn't support selecting a value, display nothing\n if (\n props.filterField?.conditions !== false &&\n !AssemblyLineFilterHelper.canConditionHaveValue(props.filterState.condition)\n ) {\n return <></>;\n }\n\n // If we can display a filter value field, render a component based on the type\n switch (props.filterField.values.type) {\n case 'local-list': {\n return (\n <ConditionalFilterValueLocalList\n filterState={props.filterState}\n onSelect={onSelectValue}\n onRemove={onRemoveValue}\n options={props.filterField.values.options}\n multiple={props.filterField.values.multiple}\n />\n );\n }\n\n case 'remote-list': {\n return (\n <ConditionalFilterValueRemoteList\n filterState={props.filterState}\n onSelect={onSelectValue}\n onRemove={onRemoveValue}\n request={props.filterField.values.request}\n formatData={props.filterField.values.formatData}\n />\n );\n }\n\n case 'remote-search': {\n return (\n <ConditionalFilterValueRemoteSearch\n filterState={props.filterState}\n onSelect={onSelectValue}\n onRemove={onRemoveValue}\n getRemoteUrl={props.filterField.values.getRemoteUrl}\n formatData={props.filterField.values.formatData}\n />\n );\n }\n\n case 'text': {\n return (\n <ConditionalFilterValueText\n filterState={props.filterState}\n onChange={value => {\n if (!value) {\n onRemoveValue(props.filterState.values[0].value);\n return;\n }\n\n onSelectValue({\n value,\n name: value\n });\n }}\n placeholder={props.filterField.values.placeholder}\n inputType={props.filterField.values.inputType}\n />\n );\n }\n\n case 'date': {\n return (\n <ConditionalFilterValueDate\n filterState={props.filterState}\n onChange={value => {\n onSelectValue({\n value: DateHelper.getUtcISOString(value),\n name: DateHelper.getUtcISOString(value)\n });\n }}\n />\n );\n }\n }\n\n return <></>;\n}\n","import React from 'react';\n\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { FilterDropdownTitle } from 'libs/shared/apps/search/components/filter-dropdown-title/FilterDropdownTitle';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { CloseSvg } from 'libs/shared/images/svg/actions/CloseSvg';\nimport { PlusSvg } from 'libs/shared/images/svg/actions/PlusSvg';\n\nimport { ConditionalFilterConditions } from 'apps/assembly-line/components/conditional-filters/fields/select-condition/ConditionalFilterConditions';\nimport { ConditionalFilterFields } from 'apps/assembly-line/components/conditional-filters/fields/select-field/ConditionalFilterFields';\nimport { ConditionalFilterValues } from 'apps/assembly-line/components/conditional-filters/fields/select-value/ConditionalFilterValues';\nimport { ConditionalFilterConfig, ConditionalFilterListOption, FilterConditions } from 'apps/assembly-line/interfaces/ConditionalFilterTypes';\nimport { AssemblyLineFilterHelper } from 'apps/assembly-line/utils/AssemblyLineFilterHelper';\n\nimport styles from './conditional-filters.module.scss';\n\nexport interface ConditionalFilterState<TField = string> {\n id: number;\n field?: TField;\n condition?: FilterConditions;\n values?: ConditionalFilterListOption[];\n}\n\ninterface ConditionalFiltersProps {\n filters: ConditionalFilterState[];\n setFilters: React.Dispatch<React.SetStateAction<ConditionalFilterState[]>>;\n options: ConditionalFilterConfig<string>[];\n showRemoveButton?: boolean;\n showInDropdown?: boolean;\n}\n\nexport function ConditionalFilters(props: ConditionalFiltersProps): JSX.Element {\n // New filters can only be added if all current filters are valid.\n const canAddNewFilter = React.useMemo(() => {\n return props.filters.every(f => AssemblyLineFilterHelper.isFilterValid(f, props.options));\n }, [props.filters]);\n\n function setFilterState(id: number, state: ConditionalFilterState): void {\n props.setFilters(filters => {\n return filters.map(filter => {\n if (filter.id !== id)\n return filter;\n \n return state;\n });\n });\n }\n\n function onClickAddFilter(): void {\n props.setFilters(filters => {\n const latest = ArrayHelper.last(filters);\n return [ ...filters, { id: (latest?.id ?? 0) + 1 }];\n });\n }\n\n function onClickRemoveFilter(id: number): void {\n props.setFilters(filters => {\n return filters.filter(f => {\n return f.id !== id;\n });\n });\n }\n\n return (\n <>\n {props.showInDropdown && <FilterDropdownTitle title='Filters' />}\n\n <div>\n {props.filters.map(filter => {\n const selectedField = props.options.find(o => o.name === filter.field);\n\n return (\n <div key={filter.id} className='d-flex pb-2'>\n <ConditionalFilterFields\n filterState={filter}\n setFilterState={state => setFilterState(filter.id, state)}\n filterOptions={props.options}\n />\n\n <ConditionalFilterConditions\n filterState={filter}\n setFilterState={state => setFilterState(filter.id, state)}\n filterField={selectedField}\n />\n\n <ConditionalFilterValues\n filterState={filter}\n setFilterState={state => setFilterState(filter.id, state)}\n filterField={selectedField}\n />\n\n {(props.filters.length > 1 || props.showRemoveButton) && (\n <DivButton\n className={`btn btn-link align-items-center align-self-start ms-n2 ${styles.closeIcon}`}\n onClick={() => onClickRemoveFilter(filter.id)}\n >\n <SvgContainer svg={CloseSvg} />\n </DivButton>\n )}\n </div>\n );\n })}\n </div>\n\n {canAddNewFilter && (\n <DivButton\n onClick={onClickAddFilter}\n className='info-link d-inline-flex align-items-center'\n >\n <SvgContainer svg={PlusSvg} />\n <span>Add new filter</span>\n </DivButton>\n )}\n </>\n );\n}\n","import React from 'react';\nimport { Dropdown } from 'react-bootstrap';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { FilterActions } from 'libs/shared/apps/search/components/filter-actions/FilterActions';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { usePrevious } from 'libs/shared/hooks/usePrevious';\nimport { FilterSvg } from 'libs/shared/images/svg/objects/FilterSvg';\nimport { ContextService } from 'libs/shared/services/ContextService';\n\nimport { ConditionalFilters, ConditionalFilterState } from 'apps/assembly-line/components/conditional-filters/ConditionalFilters';\nimport { AssemblyLineQueryParams } from 'apps/assembly-line/interfaces/AssemblyLineQueryParams';\nimport { ConditionalFilterConfig } from 'apps/assembly-line/interfaces/ConditionalFilterTypes';\nimport { AssemblyLineFilterHelper } from 'apps/assembly-line/utils/AssemblyLineFilterHelper';\n\nimport styles from './conditional-filters.module.scss';\n\nconst INITIAL_STATE = [{ id: 0 }];\n\ninterface ConditionalFiltersButtonProps {\n initialState: ConditionalFilterState[];\n options: ConditionalFilterConfig[];\n queryParams: AssemblyLineQueryParams;\n columns: string[];\n showInDropdown?: boolean;\n onFiltersChange?: (filters: ConditionalFilterState[]) => void;\n}\n\nfunction getInitialState(initialState: ConditionalFilterState[], showInDropdown?: boolean): ConditionalFilterState[] {\n if (initialState.length > 0) {\n return initialState;\n }\n if (showInDropdown) {\n return INITIAL_STATE;\n }\n return [];\n}\n\n/**\n * TODO: Try to DRY this up with FilterButton as much as possible\n */\nexport function ConditionalFiltersButton(props: ConditionalFiltersButtonProps): JSX.Element {\n const initialState = getInitialState(props.initialState, props.showInDropdown);\n const previousInitialState = usePrevious(initialState);\n\n const [ filters, setFilters ] = React.useState<ConditionalFilterState[]>(initialState);\n const [ showDropdown, setShowDropdown ] = React.useState(false);\n\n React.useEffect(() => {\n if (ObjectHelper.isEqual(initialState, previousInitialState))\n return;\n\n setFilters(initialState);\n }, [props.initialState]);\n\n function onClickReset(): void {\n const latestFilter = ArrayHelper.last(filters);\n setFilters([{ id: latestFilter.id + 1 }]);\n }\n\n React.useEffect(() => {\n if (props.onFiltersChange)\n props.onFiltersChange(filters);\n }, [filters]);\n\n function onClickApply(): void {\n applyFilter();\n setShowDropdown(false);\n }\n\n function onToggleDropdown(isShowing: boolean): void {\n setShowDropdown(isShowing);\n\n if (isShowing)\n return;\n\n // Apply the filter if the dropdown has been closed\n applyFilter();\n }\n\n function applyFilter(): void {\n const validFilters = filters.filter(f => AssemblyLineFilterHelper.isFilterValid(f, props.options));\n\n if (ObjectHelper.isEqual(initialState, validFilters))\n return;\n\n let params = ObjectHelper.pick(props.queryParams, [ 'query', 'presentationId', 'sort', 'limit' ]);\n\n if (validFilters.length) {\n params = {\n ...params,\n ...AssemblyLineFilterHelper.serializeFilterParams(validFilters)\n };\n }\n\n const currentAppLink = ContextService.getCurrentRoute().appLink;\n\n Core.AppLinkHelper.trigger({\n ...currentAppLink,\n params\n });\n }\n\n const appliedFilterCount = props.initialState.length;\n const hasAppliedFilters = !!appliedFilterCount;\n\n if (!props.showInDropdown) {\n return (\n <div>\n <ConditionalFilters\n filters={filters}\n setFilters={setFilters}\n options={props.options}\n showRemoveButton\n showInDropdown={false}\n />\n </div>\n );\n }\n\n return (\n <Dropdown onToggle={onToggleDropdown} show={showDropdown}>\n <Dropdown.Toggle\n id='conditional-filters'\n className={`fw-semibold mx-1 btn d-flex align-items-center ${styles.dropdownToggle}`}\n variant={hasAppliedFilters ? 'dark' : 'outline-dark'}\n >\n <div className={styles.svgContainer}>\n <SvgContainer svg={FilterSvg} />\n </div>\n Filters\n {hasAppliedFilters ? ` - ${appliedFilterCount}` : ''}\n </Dropdown.Toggle>\n\n <Dropdown.Menu>\n <div className={`mx-1 w-100 px-2 py-1 pe-3 ${styles.dropdown}`}>\n <ConditionalFilters\n filters={filters}\n setFilters={setFilters}\n options={props.options}\n showInDropdown\n />\n\n <FilterActions\n active={filters.some(f => AssemblyLineFilterHelper.isFilterValid(f, props.options))}\n onClickReset={onClickReset}\n onClickApply={onClickApply}\n />\n </div>\n </Dropdown.Menu>\n </Dropdown>\n );\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{C as e,a as t,ln as n}from"./rp704-Pm.chunk.js";import{t as r}from"./C1kx8Ra5.chunk.js";import{W as i,h as a}from"./C7Gmh7eY.chunk.js";import{t as o}from"./CDO6_xgK2.chunk.js";import{t as s}from"./cwPDEI372.chunk.js";import{t as c}from"./EkUBWhps2.chunk.js";import{t as l}from"./DmpWpl-3.chunk.js";import{s as u}from"./Dgk5cBBe.chunk.js";import"./Oh4_zGIH.chunk.js";import{t as d}from"./CZyPFSXo.chunk.js";import{t as f}from"./CUVnn-Rk.chunk.js";var p=n(t()),m=e=>`assembly_line_presentation_id_${e}`;function h(t={},n,h,g,_){let{presentationId:v}=t;a[_]?.presentationId&&(v=a[_].presentationId);let y=c.get(m(g)),b=u(d.presentations(s.Subject)),x=u(f.cvLivePresentation());p.useEffect(()=>{if(!(t.presentationId||!b.hasCompleted||!x.hasCompleted)){if(y){S(y);return}if(g===`cv-live`){S(x.data.id);return}i.canViewAllPresentations(h)||S(b.data.find(e=>e.status===o.Published).id)}},[b.hasCompleted,x.hasCompleted]);function S(t){c.set(m(g),t);let i=l.getCurrentRoute().appLink,a=i.params;a.presentationId?.toString()!==t?.toString()&&(n!==`video`&&(a=r.omit(a,[`cursor`])),e.trigger({...i,params:{...a,presentationId:t}},{replace:!0}))}let C=g===`cv-live`?[x.data].filter(Boolean):[...b.data||[],h===`topic_seo`?null:x.data].filter(Boolean),w=x.data&&b.data;return{selectedPresentation:w&&C?.find(e=>e.id.toString()===v?.toString()),setPresentation:S,isLoading:!w,presentations:C}}export{h as n,m as t};
2
- //# sourceMappingURL=DvP7S5Uq.chunk.js.map
1
+ import{C as e,a as t,ln as n}from"./rp704-Pm.chunk.js";import{t as r}from"./C1kx8Ra5.chunk.js";import{W as i,h as a}from"./DWHKdmdQ.chunk.js";import{t as o}from"./CDO6_xgK2.chunk.js";import{t as s}from"./cwPDEI372.chunk.js";import{t as c}from"./EkUBWhps2.chunk.js";import{t as l}from"./DmpWpl-3.chunk.js";import{s as u}from"./Dgk5cBBe.chunk.js";import"./Oh4_zGIH.chunk.js";import{t as d}from"./CZyPFSXo.chunk.js";import{t as f}from"./CUVnn-Rk.chunk.js";var p=n(t()),m=e=>`assembly_line_presentation_id_${e}`;function h(t={},n,h,g,_){let{presentationId:v}=t;a[_]?.presentationId&&(v=a[_].presentationId);let y=c.get(m(g)),b=u(d.presentations(s.Subject)),x=u(f.cvLivePresentation());p.useEffect(()=>{if(!(t.presentationId||!b.hasCompleted||!x.hasCompleted)){if(y){S(y);return}if(g===`cv-live`){S(x.data.id);return}i.canViewAllPresentations(h)||S(b.data.find(e=>e.status===o.Published).id)}},[b.hasCompleted,x.hasCompleted]);function S(t){c.set(m(g),t);let i=l.getCurrentRoute().appLink,a=i.params;a.presentationId?.toString()!==t?.toString()&&(n!==`video`&&(a=r.omit(a,[`cursor`])),e.trigger({...i,params:{...a,presentationId:t}},{replace:!0}))}let C=g===`cv-live`?[x.data].filter(Boolean):[...b.data||[],h===`topic_seo`?null:x.data].filter(Boolean),w=x.data&&b.data;return{selectedPresentation:w&&C?.find(e=>e.id.toString()===v?.toString()),setPresentation:S,isLoading:!w,presentations:C}}export{h as n,m as t};
2
+ //# sourceMappingURL=3eMwLZ5D.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DvP7S5Uq.chunk.js","names":[],"sources":["../../../../../src/apps/assembly-line/hooks/usePresentationFilter.ts"],"sourcesContent":["import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { Flight } from 'libs/common/react/index';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { PresentationStatus } from 'libs/shared/enums/PresentationStatus';\nimport { PresentationType } from 'libs/shared/enums/PresentationType';\nimport { Presentation } from 'libs/shared/interfaces';\nimport { ContextService } from 'libs/shared/services/ContextService';\n\nimport { SubjectRequests } from 'shared/flight-requests/SubjectRequests';\n\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 { PresentationRequests } from 'apps/cv-live/flight-requests/CvLivePresentationRequests';\n\nimport { AssemblyLineViewConfig } from '../constants/AssemblyLineViewConfig';\nimport { AssemblyLineView } from '../interfaces/AssemblyLineView';\nimport { ContentPipelineId } from '../interfaces/ContentPipelineId';\nimport { AssemblyLineHelper } from '../utils/AssemblyLineHelper';\n\nexport const getAssemblyLinePresentationKey = (pipelineId: ContentPipelineId) => {\n return `assembly_line_presentation_id_${pipelineId}`;\n};\n\nexport function usePresentationFilter(\n queryParams: AssemblyLineQueryParams = {},\n objectType: AssemblyLineObjectType,\n stage: AssemblyLineStage,\n pipelineId: ContentPipelineId,\n view?: AssemblyLineView\n) {\n let { presentationId } = queryParams;\n\n if (AssemblyLineViewConfig[view]?.presentationId)\n presentationId = AssemblyLineViewConfig[view].presentationId;\n\n const savedPresentationId = LocalStorageHelper.get(getAssemblyLinePresentationKey(pipelineId)) as string | null;\n\n const subjectPresentations = Flight.useBasicFetch<Presentation[]>(\n SubjectRequests.presentations(PresentationType.Subject)\n );\n const cvLivePresentation = Flight.useBasicFetch<Presentation>(\n PresentationRequests.cvLivePresentation()\n );\n\n React.useEffect(() => {\n if (queryParams.presentationId || !subjectPresentations.hasCompleted || !cvLivePresentation.hasCompleted)\n return;\n\n if (savedPresentationId) {\n setPresentation(savedPresentationId);\n return;\n }\n\n if (pipelineId === 'cv-live') {\n setPresentation(cvLivePresentation.data.id);\n return;\n }\n\n if (AssemblyLineHelper.canViewAllPresentations(stage))\n return;\n\n const firstPresentation = subjectPresentations.data.find(p => p.status === PresentationStatus.Published);\n setPresentation(firstPresentation.id);\n }, [ subjectPresentations.hasCompleted, cvLivePresentation.hasCompleted ]);\n\n function setPresentation(presentationId: string): void {\n LocalStorageHelper.set(getAssemblyLinePresentationKey(pipelineId), presentationId);\n\n const currentAppLink = ContextService.getCurrentRoute().appLink;\n let currentParams = currentAppLink.params as AssemblyLineQueryParams;\n\n if (currentParams.presentationId?.toString() === presentationId?.toString())\n return;\n\n if (objectType !== 'video')\n currentParams = ObjectHelper.omit(currentParams, ['cursor']);\n\n Core.AppLinkHelper.trigger({\n ...currentAppLink,\n params: {\n ...currentParams,\n presentationId\n }\n }, { replace: true });\n }\n\n const presentations = pipelineId === 'cv-live' ?\n [cvLivePresentation.data].filter(Boolean) :\n [\n ...(subjectPresentations.data || []),\n stage !== 'topic_seo' ? cvLivePresentation.data : null\n ].filter(Boolean);\n \n const dataLoaded = cvLivePresentation.data && subjectPresentations.data;\n \n return {\n selectedPresentation: dataLoaded &&\n presentations?.find(p => p.id.toString() === presentationId?.toString()),\n setPresentation,\n isLoading: !dataLoaded,\n presentations: presentations\n };\n}\n"],"mappings":"kdAwBa,EAAkC,GACtC,iCAAiC,IAG1C,SAAgB,EACd,EAAuC,CAAC,EACxC,EACA,EACA,EACA,EACA,CACA,GAAI,CAAE,kBAAmB,EAErB,EAAuB,EAAK,EAAE,iBAChC,EAAiB,EAAuB,EAAK,CAAC,gBAEhD,IAAM,EAAsB,EAAmB,IAAI,EAA+B,CAAU,CAAC,EAEvF,EAAuB,EAC3B,EAAgB,cAAc,EAAiB,OAAO,CACxD,EACM,EAAqB,EACzB,EAAqB,mBAAmB,CAC1C,EAEA,EAAM,cAAgB,CAChB,OAAY,gBAAkB,CAAC,EAAqB,cAAgB,CAAC,EAAmB,cAG5F,IAAI,EAAqB,CACvB,EAAgB,CAAmB,EACnC,MACF,CAEA,GAAI,IAAe,UAAW,CAC5B,EAAgB,EAAmB,KAAK,EAAE,EAC1C,MACF,CAEI,EAAmB,wBAAwB,CAAK,GAIpD,EAD0B,EAAqB,KAAK,KAAK,GAAK,EAAE,SAAW,EAAmB,SAC9E,CAAA,CAAkB,EAAE,CAXpC,CAYF,EAAG,CAAE,EAAqB,aAAc,EAAmB,YAAa,CAAC,EAEzE,SAAS,EAAgB,EAA8B,CACrD,EAAmB,IAAI,EAA+B,CAAU,EAAG,CAAc,EAEjF,IAAM,EAAiB,EAAe,gBAAgB,CAAC,CAAC,QACpD,EAAgB,EAAe,OAE/B,EAAc,gBAAgB,SAAS,IAAM,GAAgB,SAAS,IAGtE,IAAe,UACjB,EAAgB,EAAa,KAAK,EAAe,CAAC,QAAQ,CAAC,GAE7D,EAAmB,QAAQ,CACzB,GAAG,EACH,OAAQ,CACN,GAAG,EACH,gBACF,CACF,EAAG,CAAE,QAAS,EAAK,CAAC,EACtB,CAEA,IAAM,EAAgB,IAAe,UACnC,CAAC,EAAmB,IAAI,CAAC,CAAC,OAAO,OAAO,EACxC,CACE,GAAI,EAAqB,MAAQ,CAAC,EAClC,IAAU,YAAwC,KAA1B,EAAmB,IAC7C,CAAC,CAAC,OAAO,OAAO,EAEZ,EAAa,EAAmB,MAAQ,EAAqB,KAEnE,MAAO,CACL,qBAAsB,GACpB,GAAe,KAAK,GAAK,EAAE,GAAG,SAAS,IAAM,GAAgB,SAAS,CAAC,EACzE,kBACA,UAAW,CAAC,EACG,eACjB,CACF"}
1
+ {"version":3,"file":"3eMwLZ5D.chunk.js","names":[],"sources":["../../../../../src/apps/assembly-line/hooks/usePresentationFilter.ts"],"sourcesContent":["import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { Flight } from 'libs/common/react/index';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { PresentationStatus } from 'libs/shared/enums/PresentationStatus';\nimport { PresentationType } from 'libs/shared/enums/PresentationType';\nimport { Presentation } from 'libs/shared/interfaces';\nimport { ContextService } from 'libs/shared/services/ContextService';\n\nimport { SubjectRequests } from 'shared/flight-requests/SubjectRequests';\n\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 { PresentationRequests } from 'apps/cv-live/flight-requests/CvLivePresentationRequests';\n\nimport { AssemblyLineViewConfig } from '../constants/AssemblyLineViewConfig';\nimport { AssemblyLineView } from '../interfaces/AssemblyLineView';\nimport { ContentPipelineId } from '../interfaces/ContentPipelineId';\nimport { AssemblyLineHelper } from '../utils/AssemblyLineHelper';\n\nexport const getAssemblyLinePresentationKey = (pipelineId: ContentPipelineId) => {\n return `assembly_line_presentation_id_${pipelineId}`;\n};\n\nexport function usePresentationFilter(\n queryParams: AssemblyLineQueryParams = {},\n objectType: AssemblyLineObjectType,\n stage: AssemblyLineStage,\n pipelineId: ContentPipelineId,\n view?: AssemblyLineView\n) {\n let { presentationId } = queryParams;\n\n if (AssemblyLineViewConfig[view]?.presentationId)\n presentationId = AssemblyLineViewConfig[view].presentationId;\n\n const savedPresentationId = LocalStorageHelper.get(getAssemblyLinePresentationKey(pipelineId)) as string | null;\n\n const subjectPresentations = Flight.useBasicFetch<Presentation[]>(\n SubjectRequests.presentations(PresentationType.Subject)\n );\n const cvLivePresentation = Flight.useBasicFetch<Presentation>(\n PresentationRequests.cvLivePresentation()\n );\n\n React.useEffect(() => {\n if (queryParams.presentationId || !subjectPresentations.hasCompleted || !cvLivePresentation.hasCompleted)\n return;\n\n if (savedPresentationId) {\n setPresentation(savedPresentationId);\n return;\n }\n\n if (pipelineId === 'cv-live') {\n setPresentation(cvLivePresentation.data.id);\n return;\n }\n\n if (AssemblyLineHelper.canViewAllPresentations(stage))\n return;\n\n const firstPresentation = subjectPresentations.data.find(p => p.status === PresentationStatus.Published);\n setPresentation(firstPresentation.id);\n }, [ subjectPresentations.hasCompleted, cvLivePresentation.hasCompleted ]);\n\n function setPresentation(presentationId: string): void {\n LocalStorageHelper.set(getAssemblyLinePresentationKey(pipelineId), presentationId);\n\n const currentAppLink = ContextService.getCurrentRoute().appLink;\n let currentParams = currentAppLink.params as AssemblyLineQueryParams;\n\n if (currentParams.presentationId?.toString() === presentationId?.toString())\n return;\n\n if (objectType !== 'video')\n currentParams = ObjectHelper.omit(currentParams, ['cursor']);\n\n Core.AppLinkHelper.trigger({\n ...currentAppLink,\n params: {\n ...currentParams,\n presentationId\n }\n }, { replace: true });\n }\n\n const presentations = pipelineId === 'cv-live' ?\n [cvLivePresentation.data].filter(Boolean) :\n [\n ...(subjectPresentations.data || []),\n stage !== 'topic_seo' ? cvLivePresentation.data : null\n ].filter(Boolean);\n \n const dataLoaded = cvLivePresentation.data && subjectPresentations.data;\n \n return {\n selectedPresentation: dataLoaded &&\n presentations?.find(p => p.id.toString() === presentationId?.toString()),\n setPresentation,\n isLoading: !dataLoaded,\n presentations: presentations\n };\n}\n"],"mappings":"kdAwBa,EAAkC,GACtC,iCAAiC,IAG1C,SAAgB,EACd,EAAuC,CAAC,EACxC,EACA,EACA,EACA,EACA,CACA,GAAI,CAAE,kBAAmB,EAErB,EAAuB,EAAK,EAAE,iBAChC,EAAiB,EAAuB,EAAK,CAAC,gBAEhD,IAAM,EAAsB,EAAmB,IAAI,EAA+B,CAAU,CAAC,EAEvF,EAAuB,EAC3B,EAAgB,cAAc,EAAiB,OAAO,CACxD,EACM,EAAqB,EACzB,EAAqB,mBAAmB,CAC1C,EAEA,EAAM,cAAgB,CAChB,OAAY,gBAAkB,CAAC,EAAqB,cAAgB,CAAC,EAAmB,cAG5F,IAAI,EAAqB,CACvB,EAAgB,CAAmB,EACnC,MACF,CAEA,GAAI,IAAe,UAAW,CAC5B,EAAgB,EAAmB,KAAK,EAAE,EAC1C,MACF,CAEI,EAAmB,wBAAwB,CAAK,GAIpD,EAD0B,EAAqB,KAAK,KAAK,GAAK,EAAE,SAAW,EAAmB,SAC9E,CAAA,CAAkB,EAAE,CAXpC,CAYF,EAAG,CAAE,EAAqB,aAAc,EAAmB,YAAa,CAAC,EAEzE,SAAS,EAAgB,EAA8B,CACrD,EAAmB,IAAI,EAA+B,CAAU,EAAG,CAAc,EAEjF,IAAM,EAAiB,EAAe,gBAAgB,CAAC,CAAC,QACpD,EAAgB,EAAe,OAE/B,EAAc,gBAAgB,SAAS,IAAM,GAAgB,SAAS,IAGtE,IAAe,UACjB,EAAgB,EAAa,KAAK,EAAe,CAAC,QAAQ,CAAC,GAE7D,EAAmB,QAAQ,CACzB,GAAG,EACH,OAAQ,CACN,GAAG,EACH,gBACF,CACF,EAAG,CAAE,QAAS,EAAK,CAAC,EACtB,CAEA,IAAM,EAAgB,IAAe,UACnC,CAAC,EAAmB,IAAI,CAAC,CAAC,OAAO,OAAO,EACxC,CACE,GAAI,EAAqB,MAAQ,CAAC,EAClC,IAAU,YAAwC,KAA1B,EAAmB,IAC7C,CAAC,CAAC,OAAO,OAAO,EAEZ,EAAa,EAAmB,MAAQ,EAAqB,KAEnE,MAAO,CACL,qBAAsB,GACpB,GAAe,KAAK,GAAK,EAAE,GAAG,SAAS,IAAM,GAAgB,SAAS,CAAC,EACzE,kBACA,UAAW,CAAC,EACG,eACjB,CACF"}
@@ -1,2 +1,2 @@
1
- import{C as e,a as t,i as n,ln as r}from"./rp704-Pm.chunk.js";import{n as i}from"./Crs6pJ2h.chunk.js";import{t as a}from"./C1kx8Ra5.chunk.js";import{t as o}from"./C7Gmh7eY.chunk.js";import{t as s}from"./EkUBWhps2.chunk.js";import{t as c}from"./DbAhNsCO2.chunk.js";import{t as l}from"./DrMTnrkG2.chunk.js";import{t as u}from"./DhQcAYq7.chunk.js";import{t as d}from"./C67LjtZj.chunk.js";import{t as f}from"./CHTOLKFB.chunk.js";import{t as p}from"./CMczucng.chunk.js";import{t as m}from"./DmpWpl-3.chunk.js";var h=r(t()),g={svgContainer:`_svgContainer_1qg2t_1`,dropdownToggle:`_dropdownToggle_1qg2t_6`,dropdown:`_dropdown_1qg2t_6`},_=n(),v=`assembly_line_columns`;function y(t){let n=s.get(v),[r,y]=h.useState(t.initialState),[b,x]=h.useState(!1),S=t.options?.filter(e=>!t.defaultOptions.some(t=>t.id===e.id))??[];function C(e){y(e)}h.useEffect(()=>{C(t.initialState)},[t.initialState]);function w(e){if(r.includes(e.id)){C(r.filter(t=>t!==e.id));return}C([...r,e.id])}function T(){C(t.defaultOptions.map(e=>e.id))}function E(){O(),x(!1)}function D(e){x(e),!e&&O()}function O(){if(a.isEqual(t.initialState,r))return;s.set(v,{...n,[t.stage]:{added:r.filter(e=>!t.defaultOptions.some(t=>t.id===e)),removed:t.defaultOptions.filter(e=>!r.includes(e.id)).map(e=>e.id)}});let i=a.omit(t.queryParams,t.queryParams.quickFilter?[`quickFilter`,`cursor`]:[]),o=m.getCurrentRoute().appLink;e.trigger({...o,params:i})}return(0,_.jsxs)(l,{onToggle:D,show:b,children:[(0,_.jsxs)(l.Toggle,{id:`column-filters`,className:`fw-semibold mx-1 btn d-flex align-items-center ${g.dropdownToggle}`,variant:`outline-dark`,children:[(0,_.jsx)(`div`,{className:g.svgContainer,children:(0,_.jsx)(i,{svg:p})}),`Columns`]}),(0,_.jsx)(l.Menu,{children:(0,_.jsxs)(`div`,{className:`mx-1 w-100 px-2 py-1 pe-3 ${g.dropdown}`,children:[(0,_.jsx)(`div`,{className:`mb-n1`,children:(0,_.jsx)(d,{title:`${o[t.stage].label} Columns`})}),(0,_.jsxs)(c,{className:`mb-3`,children:[(0,_.jsx)(`div`,{className:`row px-2`,children:t.defaultOptions.map(e=>{let t=r.some(t=>t===e.id);return(0,_.jsx)(f,{label:e.name,name:e.id,id:e.id,onChange:()=>w(e),checked:t,className:`my-1 col-4`},e.id)})}),!!S?.length&&(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(`div`,{className:`mb-n1 pt-3`,children:(0,_.jsx)(d,{title:`Other Columns`})}),(0,_.jsx)(`div`,{className:`row px-2`,children:S.map(e=>{let t=r.some(t=>t===e.id);return(0,_.jsx)(f,{label:e.name,name:e.id,id:e.id,onChange:()=>w(e),checked:t,className:`my-1 col-4`},e.id)})})]})]}),(0,_.jsx)(u,{active:!!r.length,onClickReset:T,onClickApply:E})]})})]})}export{y as n,v as t};
2
- //# sourceMappingURL=y1L3G7XA2.chunk.js.map
1
+ import{C as e,a as t,i as n,ln as r}from"./rp704-Pm.chunk.js";import{n as i}from"./Crs6pJ2h.chunk.js";import{t as a}from"./C1kx8Ra5.chunk.js";import{t as o}from"./DWHKdmdQ.chunk.js";import{t as s}from"./EkUBWhps2.chunk.js";import{t as c}from"./DbAhNsCO2.chunk.js";import{t as l}from"./DrMTnrkG2.chunk.js";import{t as u}from"./DhQcAYq7.chunk.js";import{t as d}from"./C67LjtZj.chunk.js";import{t as f}from"./CHTOLKFB.chunk.js";import{t as p}from"./CMczucng.chunk.js";import{t as m}from"./DmpWpl-3.chunk.js";var h=r(t()),g={svgContainer:`_svgContainer_1qg2t_1`,dropdownToggle:`_dropdownToggle_1qg2t_6`,dropdown:`_dropdown_1qg2t_6`},_=n(),v=`assembly_line_columns`;function y(t){let n=s.get(v),[r,y]=h.useState(t.initialState),[b,x]=h.useState(!1),S=t.options?.filter(e=>!t.defaultOptions.some(t=>t.id===e.id))??[];function C(e){y(e)}h.useEffect(()=>{C(t.initialState)},[t.initialState]);function w(e){if(r.includes(e.id)){C(r.filter(t=>t!==e.id));return}C([...r,e.id])}function T(){C(t.defaultOptions.map(e=>e.id))}function E(){O(),x(!1)}function D(e){x(e),!e&&O()}function O(){if(a.isEqual(t.initialState,r))return;s.set(v,{...n,[t.stage]:{added:r.filter(e=>!t.defaultOptions.some(t=>t.id===e)),removed:t.defaultOptions.filter(e=>!r.includes(e.id)).map(e=>e.id)}});let i=a.omit(t.queryParams,t.queryParams.quickFilter?[`quickFilter`,`cursor`]:[]),o=m.getCurrentRoute().appLink;e.trigger({...o,params:i})}return(0,_.jsxs)(l,{onToggle:D,show:b,children:[(0,_.jsxs)(l.Toggle,{id:`column-filters`,className:`fw-semibold mx-1 btn d-flex align-items-center ${g.dropdownToggle}`,variant:`outline-dark`,children:[(0,_.jsx)(`div`,{className:g.svgContainer,children:(0,_.jsx)(i,{svg:p})}),`Columns`]}),(0,_.jsx)(l.Menu,{children:(0,_.jsxs)(`div`,{className:`mx-1 w-100 px-2 py-1 pe-3 ${g.dropdown}`,children:[(0,_.jsx)(`div`,{className:`mb-n1`,children:(0,_.jsx)(d,{title:`${o[t.stage].label} Columns`})}),(0,_.jsxs)(c,{className:`mb-3`,children:[(0,_.jsx)(`div`,{className:`row px-2`,children:t.defaultOptions.map(e=>{let t=r.some(t=>t===e.id);return(0,_.jsx)(f,{label:e.name,name:e.id,id:e.id,onChange:()=>w(e),checked:t,className:`my-1 col-4`},e.id)})}),!!S?.length&&(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(`div`,{className:`mb-n1 pt-3`,children:(0,_.jsx)(d,{title:`Other Columns`})}),(0,_.jsx)(`div`,{className:`row px-2`,children:S.map(e=>{let t=r.some(t=>t===e.id);return(0,_.jsx)(f,{label:e.name,name:e.id,id:e.id,onChange:()=>w(e),checked:t,className:`my-1 col-4`},e.id)})})]})]}),(0,_.jsx)(u,{active:!!r.length,onClickReset:T,onClickApply:E})]})})]})}export{y as n,v as t};
2
+ //# sourceMappingURL=4Tx2JSvk2.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"y1L3G7XA2.chunk.js","names":[],"sources":["../../../../../src/apps/assembly-line/components/column-filters/column-filters.module.scss","../../../../../src/apps/assembly-line/components/column-filters/ColumnFilters.tsx"],"sourcesContent":[":local {\n // Icon positioning adjustments to make it look nicer\n .svgContainer {\n margin-top: 0.05rem;\n margin-right: 0.2rem;\n margin-left: -0.2rem;\n }\n\n .dropdownToggle::after {\n display: none;\n }\n\n .dropdown {\n min-width: 40rem;\n }\n}","import React from 'react';\nimport { Dropdown, Form } from 'react-bootstrap';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { FilterActions } from 'libs/shared/apps/search/components/filter-actions/FilterActions';\nimport { FilterDropdownTitle } from 'libs/shared/apps/search/components/filter-dropdown-title/FilterDropdownTitle';\nimport { FilterOption } from 'libs/shared/apps/search/interfaces';\nimport { Checkbox } from 'libs/shared/components/forms/form-checkbox/Checkbox';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { VisibleOnSvg } from 'libs/shared/images/svg/actions/VisibleOnSvg';\nimport { ContextService } from 'libs/shared/services/ContextService';\n\nimport { AssemblyLineStageConfig } from 'apps/assembly-line/constants/AssemblyLineStageConfig';\nimport { SavedAssemblyLineColumns } from 'apps/assembly-line/hooks/useAssemblyLineColumns';\nimport { AssemblyLineQueryParams } from 'apps/assembly-line/interfaces/AssemblyLineQueryParams';\nimport { AssemblyLineStage } from 'apps/assembly-line/interfaces/AssemblyLineStage';\n\nimport styles from './column-filters.module.scss';\n\ninterface ColumnFiltersButtonProps {\n initialState: string[];\n defaultOptions: FilterOption[];\n options: FilterOption[];\n queryParams: AssemblyLineQueryParams;\n stage: AssemblyLineStage;\n}\n\nexport const CONTENT_PIPELINE_COLUMNS = 'assembly_line_columns';\n\nexport function ColumnFilters(props: ColumnFiltersButtonProps): JSX.Element {\n const savedColumns = LocalStorageHelper.get<SavedAssemblyLineColumns>(CONTENT_PIPELINE_COLUMNS);\n\n const [ columns, setColumns ] = React.useState<string[]>(props.initialState);\n\n const [ showDropdown, setShowDropdown ] = React.useState(false);\n\n const nonDefaultColumns = props.options?.filter(col => !props.defaultOptions.some(opt => opt.id === col.id)) ?? [];\n\n function updateColumns(cols: string[]): void {\n setColumns(cols);\n }\n\n React.useEffect(() => {\n updateColumns(props.initialState);\n }, [props.initialState]);\n\n function onToggleColumn(option: FilterOption): void {\n if (columns.includes(option.id)) {\n updateColumns(columns.filter(col => col !== option.id));\n return;\n }\n\n updateColumns([ ...columns, option.id ]);\n }\n\n function onClickReset(): void {\n updateColumns(props.defaultOptions.map(opt => opt.id));\n }\n\n function onClickApply(): void {\n applyFilter();\n setShowDropdown(false);\n }\n\n function onToggleDropdown(isShowing: boolean): void {\n setShowDropdown(isShowing);\n\n if (isShowing)\n return;\n\n // Apply the filter if the dropdown has been closed\n applyFilter();\n }\n\n function applyFilter(): void {\n if (ObjectHelper.isEqual(props.initialState, columns))\n return;\n\n LocalStorageHelper.set<SavedAssemblyLineColumns>(\n CONTENT_PIPELINE_COLUMNS,\n {\n ...savedColumns,\n [props.stage]: {\n added: columns.filter(col => !props.defaultOptions.some(opt => opt.id === col)),\n removed: props.defaultOptions.filter(opt => !columns.includes(opt.id)).map(opt => opt.id)\n }\n }\n );\n \n const params = ObjectHelper.omit(props.queryParams, props.queryParams.quickFilter ? [ 'quickFilter', 'cursor' ] : []);\n\n const currentAppLink = ContextService.getCurrentRoute().appLink;\n\n Core.AppLinkHelper.trigger({\n ...currentAppLink,\n params\n });\n }\n\n return (\n <Dropdown onToggle={onToggleDropdown} show={showDropdown}>\n <Dropdown.Toggle\n id='column-filters'\n className={`fw-semibold mx-1 btn d-flex align-items-center ${styles.dropdownToggle}`}\n variant='outline-dark'\n >\n <div className={styles.svgContainer}>\n <SvgContainer svg={VisibleOnSvg} />\n </div>\n Columns\n </Dropdown.Toggle>\n\n <Dropdown.Menu>\n <div className={`mx-1 w-100 px-2 py-1 pe-3 ${styles.dropdown}`}>\n <div className='mb-n1'>\n <FilterDropdownTitle title={`${AssemblyLineStageConfig[props.stage].label} Columns`} />\n </div>\n\n <Form className='mb-3'>\n <div className='row px-2'>\n {props.defaultOptions.map(option => {\n const isChecked = columns.some(c => c === option.id);\n\n return (\n <Checkbox\n key={option.id}\n label={option.name}\n name={option.id}\n id={option.id}\n onChange={() => onToggleColumn(option)}\n checked={isChecked}\n className='my-1 col-4'\n />\n );\n })}\n </div>\n\n {!!nonDefaultColumns?.length && (\n <>\n <div className='mb-n1 pt-3'>\n <FilterDropdownTitle title='Other Columns' />\n </div>\n <div className='row px-2'>\n {nonDefaultColumns.map(option => {\n const isChecked = columns.some(c => c === option.id);\n\n return (\n <Checkbox\n key={option.id}\n label={option.name}\n name={option.id}\n id={option.id}\n onChange={() => onToggleColumn(option)}\n checked={isChecked}\n className='my-1 col-4'\n />\n );\n })}\n </div>\n </>\n )}\n </Form>\n\n <FilterActions\n active={!!columns.length}\n onClickReset={onClickReset}\n onClickApply={onClickApply}\n />\n </div>\n </Dropdown.Menu>\n </Dropdown>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"4Tx2JSvk2.chunk.js","names":[],"sources":["../../../../../src/apps/assembly-line/components/column-filters/column-filters.module.scss","../../../../../src/apps/assembly-line/components/column-filters/ColumnFilters.tsx"],"sourcesContent":[":local {\n // Icon positioning adjustments to make it look nicer\n .svgContainer {\n margin-top: 0.05rem;\n margin-right: 0.2rem;\n margin-left: -0.2rem;\n }\n\n .dropdownToggle::after {\n display: none;\n }\n\n .dropdown {\n min-width: 40rem;\n }\n}","import React from 'react';\nimport { Dropdown, Form } from 'react-bootstrap';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { FilterActions } from 'libs/shared/apps/search/components/filter-actions/FilterActions';\nimport { FilterDropdownTitle } from 'libs/shared/apps/search/components/filter-dropdown-title/FilterDropdownTitle';\nimport { FilterOption } from 'libs/shared/apps/search/interfaces';\nimport { Checkbox } from 'libs/shared/components/forms/form-checkbox/Checkbox';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { VisibleOnSvg } from 'libs/shared/images/svg/actions/VisibleOnSvg';\nimport { ContextService } from 'libs/shared/services/ContextService';\n\nimport { AssemblyLineStageConfig } from 'apps/assembly-line/constants/AssemblyLineStageConfig';\nimport { SavedAssemblyLineColumns } from 'apps/assembly-line/hooks/useAssemblyLineColumns';\nimport { AssemblyLineQueryParams } from 'apps/assembly-line/interfaces/AssemblyLineQueryParams';\nimport { AssemblyLineStage } from 'apps/assembly-line/interfaces/AssemblyLineStage';\n\nimport styles from './column-filters.module.scss';\n\ninterface ColumnFiltersButtonProps {\n initialState: string[];\n defaultOptions: FilterOption[];\n options: FilterOption[];\n queryParams: AssemblyLineQueryParams;\n stage: AssemblyLineStage;\n}\n\nexport const CONTENT_PIPELINE_COLUMNS = 'assembly_line_columns';\n\nexport function ColumnFilters(props: ColumnFiltersButtonProps): JSX.Element {\n const savedColumns = LocalStorageHelper.get<SavedAssemblyLineColumns>(CONTENT_PIPELINE_COLUMNS);\n\n const [ columns, setColumns ] = React.useState<string[]>(props.initialState);\n\n const [ showDropdown, setShowDropdown ] = React.useState(false);\n\n const nonDefaultColumns = props.options?.filter(col => !props.defaultOptions.some(opt => opt.id === col.id)) ?? [];\n\n function updateColumns(cols: string[]): void {\n setColumns(cols);\n }\n\n React.useEffect(() => {\n updateColumns(props.initialState);\n }, [props.initialState]);\n\n function onToggleColumn(option: FilterOption): void {\n if (columns.includes(option.id)) {\n updateColumns(columns.filter(col => col !== option.id));\n return;\n }\n\n updateColumns([ ...columns, option.id ]);\n }\n\n function onClickReset(): void {\n updateColumns(props.defaultOptions.map(opt => opt.id));\n }\n\n function onClickApply(): void {\n applyFilter();\n setShowDropdown(false);\n }\n\n function onToggleDropdown(isShowing: boolean): void {\n setShowDropdown(isShowing);\n\n if (isShowing)\n return;\n\n // Apply the filter if the dropdown has been closed\n applyFilter();\n }\n\n function applyFilter(): void {\n if (ObjectHelper.isEqual(props.initialState, columns))\n return;\n\n LocalStorageHelper.set<SavedAssemblyLineColumns>(\n CONTENT_PIPELINE_COLUMNS,\n {\n ...savedColumns,\n [props.stage]: {\n added: columns.filter(col => !props.defaultOptions.some(opt => opt.id === col)),\n removed: props.defaultOptions.filter(opt => !columns.includes(opt.id)).map(opt => opt.id)\n }\n }\n );\n \n const params = ObjectHelper.omit(props.queryParams, props.queryParams.quickFilter ? [ 'quickFilter', 'cursor' ] : []);\n\n const currentAppLink = ContextService.getCurrentRoute().appLink;\n\n Core.AppLinkHelper.trigger({\n ...currentAppLink,\n params\n });\n }\n\n return (\n <Dropdown onToggle={onToggleDropdown} show={showDropdown}>\n <Dropdown.Toggle\n id='column-filters'\n className={`fw-semibold mx-1 btn d-flex align-items-center ${styles.dropdownToggle}`}\n variant='outline-dark'\n >\n <div className={styles.svgContainer}>\n <SvgContainer svg={VisibleOnSvg} />\n </div>\n Columns\n </Dropdown.Toggle>\n\n <Dropdown.Menu>\n <div className={`mx-1 w-100 px-2 py-1 pe-3 ${styles.dropdown}`}>\n <div className='mb-n1'>\n <FilterDropdownTitle title={`${AssemblyLineStageConfig[props.stage].label} Columns`} />\n </div>\n\n <Form className='mb-3'>\n <div className='row px-2'>\n {props.defaultOptions.map(option => {\n const isChecked = columns.some(c => c === option.id);\n\n return (\n <Checkbox\n key={option.id}\n label={option.name}\n name={option.id}\n id={option.id}\n onChange={() => onToggleColumn(option)}\n checked={isChecked}\n className='my-1 col-4'\n />\n );\n })}\n </div>\n\n {!!nonDefaultColumns?.length && (\n <>\n <div className='mb-n1 pt-3'>\n <FilterDropdownTitle title='Other Columns' />\n </div>\n <div className='row px-2'>\n {nonDefaultColumns.map(option => {\n const isChecked = columns.some(c => c === option.id);\n\n return (\n <Checkbox\n key={option.id}\n label={option.name}\n name={option.id}\n id={option.id}\n onChange={() => onToggleColumn(option)}\n checked={isChecked}\n className='my-1 col-4'\n />\n );\n })}\n </div>\n </>\n )}\n </Form>\n\n <FilterActions\n active={!!columns.length}\n onClickReset={onClickReset}\n onClickApply={onClickApply}\n />\n </div>\n </Dropdown.Menu>\n </Dropdown>\n );\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{a as e,i as t}from"./rp704-Pm.chunk.js";import{t as n}from"./Di_u2uix.chunk.js";import{t as r}from"./BvMTtGLi.chunk.js";import{g as i}from"./BhKv6dKl2.chunk.js";import{t as a}from"./BDwjs8qz.chunk.js";import{t as o}from"./BMIUSUnG.chunk.js";e();var s={getInteractivesTabs(e,t){let i=r.INTERACTIVES,s=n.Interactives;if(!o.hasSubjectsAccess(e))return[];let c=[];return t.status===a.Draft?c.push({label:`Edit Interactive`,appLink:{application:i,action:s.EDIT_INTERACTIVE,args:[t.id]}}):c.push({label:`Preview Interactive`,appLink:{application:i,action:s.PREVIEW_INTERACTIVE,args:[t.id]}}),c.push({label:`Curation`,appLink:{application:i,action:s.EDIT_INTERACTIVE_CURATION,args:[t.id]},disabled:t.status===a.Draft}),c.push({label:`Topics`,appLink:{application:i,action:s.EDIT_INTERACTIVE_CLASSIFICATIONS,args:[t.id]},disabled:t.status===a.Draft}),c.push({label:`Audiences`,appLink:{application:i,action:s.EDIT_INTERACTIVE_AUDIENCES,args:[t.id]},disabled:t.status===a.Draft}),c}},c=t(),l=e=>t=>t.appLink.action===e;function u(e){let t=s.getInteractivesTabs(e.currentUser,e.interactive);return t.length<2?(0,c.jsx)(c.Fragment,{}):(0,c.jsx)(`div`,{className:`py-2`,children:(0,c.jsx)(i,{tabs:t,isItemActive:l(e.activeAction)})})}export{u as t};
2
- //# sourceMappingURL=BbR7yW4A2.chunk.js.map
1
+ import{a as e,i as t}from"./rp704-Pm.chunk.js";import{t as n}from"./Di_u2uix.chunk.js";import{t as r}from"./BvMTtGLi.chunk.js";import{g as i}from"./GpDEun8c2.chunk.js";import{t as a}from"./BDwjs8qz.chunk.js";import{t as o}from"./BMIUSUnG.chunk.js";e();var s={getInteractivesTabs(e,t){let i=r.INTERACTIVES,s=n.Interactives;if(!o.hasSubjectsAccess(e))return[];let c=[];return t.status===a.Draft?c.push({label:`Edit Interactive`,appLink:{application:i,action:s.EDIT_INTERACTIVE,args:[t.id]}}):c.push({label:`Preview Interactive`,appLink:{application:i,action:s.PREVIEW_INTERACTIVE,args:[t.id]}}),c.push({label:`Curation`,appLink:{application:i,action:s.EDIT_INTERACTIVE_CURATION,args:[t.id]},disabled:t.status===a.Draft}),c.push({label:`Topics`,appLink:{application:i,action:s.EDIT_INTERACTIVE_CLASSIFICATIONS,args:[t.id]},disabled:t.status===a.Draft}),c.push({label:`Audiences`,appLink:{application:i,action:s.EDIT_INTERACTIVE_AUDIENCES,args:[t.id]},disabled:t.status===a.Draft}),c}},c=t(),l=e=>t=>t.appLink.action===e;function u(e){let t=s.getInteractivesTabs(e.currentUser,e.interactive);return t.length<2?(0,c.jsx)(c.Fragment,{}):(0,c.jsx)(`div`,{className:`py-2`,children:(0,c.jsx)(i,{tabs:t,isItemActive:l(e.activeAction)})})}export{u as t};
2
+ //# sourceMappingURL=5uVJfyDx2.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BbR7yW4A2.chunk.js","names":[],"sources":["../../../../../src/apps/interactives/utils/InteractivesNavHelper.tsx","../../../../../src/apps/interactives/components/edit-interactives-nav/EditInteractivesNav.tsx"],"sourcesContent":["import { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { CuratorUser, InteractiveMetadata } from 'libs/shared/interfaces';\nimport { CuratorPermissionsHelper } from 'libs/shared/utils/CuratorPermissionsHelper';\n\nimport { Actions } from 'shared/constants/CuratorActions';\nimport { AppChannels } from 'shared/constants/RadioChannels';\nimport { NavItem } from 'shared/interfaces';\n\nexport const InteractivesNavHelper = {\n getInteractivesTabs(currentUser: CuratorUser, interactive: InteractiveMetadata): NavItem[] {\n const application = AppChannels.INTERACTIVES;\n const actions = Actions.Interactives;\n\n const canAccessSubjects = CuratorPermissionsHelper.hasSubjectsAccess(currentUser);\n\n if (!canAccessSubjects)\n return [];\n\n const tabs: NavItem[] = [];\n\n if (interactive.status !== CurationStatus.Draft) {\n tabs.push({\n label: 'Preview Interactive',\n appLink: { application, action: actions.PREVIEW_INTERACTIVE, args: [interactive.id]}\n });\n } else {\n tabs.push({\n label: 'Edit Interactive',\n appLink: { application, action: actions.EDIT_INTERACTIVE, args: [interactive.id]}\n });\n }\n\n tabs.push({\n label: 'Curation',\n appLink: { application, action: actions.EDIT_INTERACTIVE_CURATION, args: [interactive.id]},\n disabled: interactive.status === CurationStatus.Draft\n });\n\n tabs.push({\n label: 'Topics',\n appLink: { application, action: actions.EDIT_INTERACTIVE_CLASSIFICATIONS, args: [interactive.id]},\n disabled: interactive.status === CurationStatus.Draft\n });\n\n tabs.push({\n label: 'Audiences',\n appLink: { application, action: actions.EDIT_INTERACTIVE_AUDIENCES, args: [interactive.id]},\n disabled: interactive.status === CurationStatus.Draft\n });\n\n return tabs;\n }\n};\n","import React from 'react';\n\nimport { CuratorUser, InteractiveMetadata } from 'libs/shared/interfaces';\n\nimport { Tabs } from 'shared/components';\nimport { NavItem } from 'shared/interfaces';\n\nimport { InteractivesNavHelper } from 'apps/interactives/utils/InteractivesNavHelper';\n\nconst isItemActive = (activeAction: string) => (item: NavItem) => item.appLink.action === activeAction;\n\ninterface EditInteractivesNavProps {\n interactive: InteractiveMetadata;\n activeAction: string;\n currentUser: CuratorUser;\n}\n\nexport function EditInteractivesNav(props: EditInteractivesNavProps): JSX.Element {\n const tabs = InteractivesNavHelper.getInteractivesTabs(props.currentUser, props.interactive);\n\n if (tabs.length < 2)\n return <></>;\n\n return (\n <div className='py-2'>\n <Tabs\n tabs={tabs}\n isItemActive={isItemActive(props.activeAction)}\n />\n </div>\n );\n}\n"],"mappings":"4PAQA,IAAa,EAAwB,CACnC,oBAAoB,EAA0B,EAA6C,CACzF,IAAM,EAAc,EAAY,aAC1B,EAAU,EAAQ,aAIxB,GAAI,CAFsB,EAAyB,kBAAkB,CAEhE,EACH,MAAO,CAAC,EAEV,IAAM,EAAkB,CAAC,EAgCzB,OA9BI,EAAY,SAAW,EAAe,MAMxC,EAAK,KAAK,CACR,MAAO,mBACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,iBAAkB,KAAM,CAAC,EAAY,EAAE,CAAC,CAClF,CAAC,EARD,EAAK,KAAK,CACR,MAAO,sBACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,oBAAqB,KAAM,CAAC,EAAY,EAAE,CAAC,CACrF,CAAC,EAQH,EAAK,KAAK,CACR,MAAO,WACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,0BAA2B,KAAM,CAAC,EAAY,EAAE,CAAC,EACzF,SAAU,EAAY,SAAW,EAAe,KAClD,CAAC,EAED,EAAK,KAAK,CACR,MAAO,SACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,iCAAkC,KAAM,CAAC,EAAY,EAAE,CAAC,EAChG,SAAU,EAAY,SAAW,EAAe,KAClD,CAAC,EAED,EAAK,KAAK,CACR,MAAO,YACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,2BAA4B,KAAM,CAAC,EAAY,EAAE,CAAC,EAC1F,SAAU,EAAY,SAAW,EAAe,KAClD,CAAC,EAEM,CACT,CACF,QC3CM,EAAgB,GAA0B,GAAkB,EAAK,QAAQ,SAAW,EAQ1F,SAAgB,EAAoB,EAA8C,CAChF,IAAM,EAAO,EAAsB,oBAAoB,EAAM,YAAa,EAAM,WAAW,EAK3F,OAHI,EAAK,OAAS,GACT,EAAA,EAAA,IAAA,CAAA,EAAA,SAAA,CAAI,CAAA,GAGX,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,iBACb,EAAA,EAAA,IAAA,CAAC,EAAD,CACQ,OACN,aAAc,EAAa,EAAM,YAAY,CAC9C,CAAA,CACE,CAAA,CAET"}
1
+ {"version":3,"file":"5uVJfyDx2.chunk.js","names":[],"sources":["../../../../../src/apps/interactives/utils/InteractivesNavHelper.tsx","../../../../../src/apps/interactives/components/edit-interactives-nav/EditInteractivesNav.tsx"],"sourcesContent":["import { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { CuratorUser, InteractiveMetadata } from 'libs/shared/interfaces';\nimport { CuratorPermissionsHelper } from 'libs/shared/utils/CuratorPermissionsHelper';\n\nimport { Actions } from 'shared/constants/CuratorActions';\nimport { AppChannels } from 'shared/constants/RadioChannels';\nimport { NavItem } from 'shared/interfaces';\n\nexport const InteractivesNavHelper = {\n getInteractivesTabs(currentUser: CuratorUser, interactive: InteractiveMetadata): NavItem[] {\n const application = AppChannels.INTERACTIVES;\n const actions = Actions.Interactives;\n\n const canAccessSubjects = CuratorPermissionsHelper.hasSubjectsAccess(currentUser);\n\n if (!canAccessSubjects)\n return [];\n\n const tabs: NavItem[] = [];\n\n if (interactive.status !== CurationStatus.Draft) {\n tabs.push({\n label: 'Preview Interactive',\n appLink: { application, action: actions.PREVIEW_INTERACTIVE, args: [interactive.id]}\n });\n } else {\n tabs.push({\n label: 'Edit Interactive',\n appLink: { application, action: actions.EDIT_INTERACTIVE, args: [interactive.id]}\n });\n }\n\n tabs.push({\n label: 'Curation',\n appLink: { application, action: actions.EDIT_INTERACTIVE_CURATION, args: [interactive.id]},\n disabled: interactive.status === CurationStatus.Draft\n });\n\n tabs.push({\n label: 'Topics',\n appLink: { application, action: actions.EDIT_INTERACTIVE_CLASSIFICATIONS, args: [interactive.id]},\n disabled: interactive.status === CurationStatus.Draft\n });\n\n tabs.push({\n label: 'Audiences',\n appLink: { application, action: actions.EDIT_INTERACTIVE_AUDIENCES, args: [interactive.id]},\n disabled: interactive.status === CurationStatus.Draft\n });\n\n return tabs;\n }\n};\n","import React from 'react';\n\nimport { CuratorUser, InteractiveMetadata } from 'libs/shared/interfaces';\n\nimport { Tabs } from 'shared/components';\nimport { NavItem } from 'shared/interfaces';\n\nimport { InteractivesNavHelper } from 'apps/interactives/utils/InteractivesNavHelper';\n\nconst isItemActive = (activeAction: string) => (item: NavItem) => item.appLink.action === activeAction;\n\ninterface EditInteractivesNavProps {\n interactive: InteractiveMetadata;\n activeAction: string;\n currentUser: CuratorUser;\n}\n\nexport function EditInteractivesNav(props: EditInteractivesNavProps): JSX.Element {\n const tabs = InteractivesNavHelper.getInteractivesTabs(props.currentUser, props.interactive);\n\n if (tabs.length < 2)\n return <></>;\n\n return (\n <div className='py-2'>\n <Tabs\n tabs={tabs}\n isItemActive={isItemActive(props.activeAction)}\n />\n </div>\n );\n}\n"],"mappings":"4PAQA,IAAa,EAAwB,CACnC,oBAAoB,EAA0B,EAA6C,CACzF,IAAM,EAAc,EAAY,aAC1B,EAAU,EAAQ,aAIxB,GAAI,CAFsB,EAAyB,kBAAkB,CAEhE,EACH,MAAO,CAAC,EAEV,IAAM,EAAkB,CAAC,EAgCzB,OA9BI,EAAY,SAAW,EAAe,MAMxC,EAAK,KAAK,CACR,MAAO,mBACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,iBAAkB,KAAM,CAAC,EAAY,EAAE,CAAC,CAClF,CAAC,EARD,EAAK,KAAK,CACR,MAAO,sBACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,oBAAqB,KAAM,CAAC,EAAY,EAAE,CAAC,CACrF,CAAC,EAQH,EAAK,KAAK,CACR,MAAO,WACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,0BAA2B,KAAM,CAAC,EAAY,EAAE,CAAC,EACzF,SAAU,EAAY,SAAW,EAAe,KAClD,CAAC,EAED,EAAK,KAAK,CACR,MAAO,SACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,iCAAkC,KAAM,CAAC,EAAY,EAAE,CAAC,EAChG,SAAU,EAAY,SAAW,EAAe,KAClD,CAAC,EAED,EAAK,KAAK,CACR,MAAO,YACP,QAAS,CAAE,cAAa,OAAQ,EAAQ,2BAA4B,KAAM,CAAC,EAAY,EAAE,CAAC,EAC1F,SAAU,EAAY,SAAW,EAAe,KAClD,CAAC,EAEM,CACT,CACF,QC3CM,EAAgB,GAA0B,GAAkB,EAAK,QAAQ,SAAW,EAQ1F,SAAgB,EAAoB,EAA8C,CAChF,IAAM,EAAO,EAAsB,oBAAoB,EAAM,YAAa,EAAM,WAAW,EAK3F,OAHI,EAAK,OAAS,GACT,EAAA,EAAA,IAAA,CAAA,EAAA,SAAA,CAAI,CAAA,GAGX,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,iBACb,EAAA,EAAA,IAAA,CAAC,EAAD,CACQ,OACN,aAAc,EAAa,EAAM,YAAY,CAC9C,CAAA,CACE,CAAA,CAET"}
@@ -1,2 +1,2 @@
1
- import{D as e,a as t,i as n,ln as r}from"./rp704-Pm.chunk.js";import{t as i}from"./Crs6pJ2h.chunk.js";import{a,i as o,t as s}from"./BAOFaFPQ.chunk.js";import{t as c}from"./C1kx8Ra5.chunk.js";import{t as l}from"./Di_u2uix.chunk.js";import{t as u}from"./BvMTtGLi.chunk.js";import"./CfCYHRuo.chunk.js";import{n as d}from"./CFoexGFe.chunk.js";import{i as f,n as p}from"./BVbA6fE6.chunk.js";import{t as m}from"./UCDGupVs.chunk.js";import{G as h,W as g}from"./C7Gmh7eY.chunk.js";import{t as _}from"./CLCeObem2.chunk.js";import{t as v}from"./C7gaMI1t2.chunk.js";import{t as y}from"./cwPDEI372.chunk.js";import{t as b}from"./Da4lNxpT2.chunk.js";import{f as x,s as S,y as C}from"./BhKv6dKl2.chunk.js";import{n as w}from"./CbiGs3Tn.chunk.js";import{t as T}from"./CMczucng.chunk.js";import{n as E}from"./CsF4wDV1.chunk.js";import{c as D,l as O,r as k,s as A,u as j}from"./Dgk5cBBe.chunk.js";import{t as M}from"./Bw7dP6jB.chunk.js";import{t as N}from"./DpqbC5uX.chunk.js";import"./Oh4_zGIH.chunk.js";import{t as P}from"./BuWnKnnb.chunk.js";import{t as F}from"./BCfBk23W.chunk.js";import{t as I}from"./Lh2c_aQx2.chunk.js";import{t as L}from"./Bwpvc7Th2.chunk.js";import{t as ee}from"./suzdRjwd.chunk.js";import{t as R}from"./CZyPFSXo.chunk.js";import{t as z}from"./BivItbGo.chunk.js";import{t as B}from"./dKyhMawf.chunk.js";import{i as V,t as te}from"./DfwcH0ZK2.chunk.js";import{t as ne}from"./Dxmu3Qys2.chunk.js";import{t as re}from"./DZt0Izys.chunk.js";import{t as H}from"./JmL1DHFu.chunk.js";import{t as ie}from"./Bfw0P1qU2.chunk.js";import{t as ae}from"./CJGGMhrK2.chunk.js";import{a as oe,i as U}from"./BJdNIGDD2.chunk.js";import{t as W}from"./DYVUvs3j2.chunk.js";import{t as G}from"./2LTy46yF.chunk.js";import{c as K}from"./_wZpe632.chunk.js";import{t as q}from"./DLLL2lwS.chunk.js";import{t as se}from"./DjlPflaG.chunk.js";import{n as ce}from"./D5f0T6ip2.chunk.js";import{t as le}from"./DaEXgbc_.chunk.js";import{t as ue}from"./BwToh2X9.chunk.js";import{t as de}from"./Dpgqkqbp.chunk.js";import{t as fe}from"./CXNcHvCo.chunk.js";import{t as pe}from"./VY2KbIoM.chunk.js";import{t as J}from"./mStmtFRo.chunk.js";import"./DrBVabtm.chunk.js";import{t as me}from"./FS74_jrx.chunk.js";import{t as he}from"./DeDh-wVP.chunk.js";var ge=r(e(),1),Y=r(t(),1),X=r(_()),_e=X.object().shape({name:X.string().trim().max(255,`Name is too long`).required(`Name is required`).default(``),description:X.string().trim().default(``),status:X.mixed().required(`Status is required`),productionYear:X.number().min(1900),rating:X.object().shape({id:X.string()}).default({}).noUnknown(),thumbnail:v,heroBanner:v,glance:X.object().shape({theme:X.string(),format:X.mixed(),content:X.string(),type:X.mixed()}).default({}).noUnknown(),subtitles:X.array(),producers:X.array(),productionCompanies:X.array(),directors:X.array(),distributors:X.array(),libraries:X.array(),series:X.object().nullable(),season:X.object().nullable(),episodeNumber:X.number()}).noUnknown(),Z=n();function ve(e,t){if(e)return{...e,...t||{},libraries:e.libraries?.data??[],subtitles:e.subtitles?.data??[],producers:e.producers?.data??[],directors:e.directors?.data??[],productionCompanies:e.productionCompanies?.data??[],distributors:e.distributors?.data??[],series:e.series,season:e.season,glance:{...e.glance,theme:e.glance?.theme||``}}}function ye(e){return(0,Z.jsx)(B,{initialValues:ve(e.video,e.rightslineVideo),validationSchema:_e,onSubmit:e.saveVideo,allowInitialSubmit:!!e.rightslineVideo,children:(0,Z.jsx)(de,{id:e.video&&e.video.id,ratings:e.ratings,libraries:e.libraries,rightslineId:e.rightslineId,hideActions:e.hideActions,hideHeroBanner:e.hideHeroBanner,hideThumbnailText:!0,onSubtitleFilesAdded:e.onSubtitleFilesAdded,onClickCreatePerson:e.onClickCreatePerson,onClickCreateCompany:e.onClickCreateCompany,getAiGeneratedDescription:e.getAiGeneratedDescription})})}function be(e){return{application:u.VIDEOS,action:l.Videos.LEGACY_EDIT_VIDEO,args:[e]}}function xe(e){let[t,n]=Y.useState(!1),r=A(H.video(e.videoId)),a=A(H.rightslineVideo(e.videoId)),o=A(le.ratings()),s=A(H.clickViewTags(e.videoId)),d=A(m.currentUser()),f=se(e.videoId),p=A(h.getAssemblyLineVideo(e.videoId)),_=A(ee.hostedLibraries()),v=I(E.SubtitleUpload),y=j(),x=L();function S(){if(p.data)return{application:u.ASSEMBLY_LINE,action:g.mapStageToAction(p.data.stage),params:{query:e.videoId}}}function C(){a.isFetching||(n(!0),y(H.rightslineVideo(e.videoId)))}async function D(t,n){try{await O(t),await k(t),await M(t),await y(H.updateVideo(e.videoId,c.omit(t,[`subtitles`,`libraries`,`series`,`season`,`episodeNumber`,`glance`]))),t.thumbnail?.fileId!==r.data.thumbnail?.fileId&&!p.data?.hasCuratedThumbnail&&await y(H.updateContentPipelineVideo(e.videoId,{hasCuratedThumbnail:!0})),n(),x.success(`Successfully saved video.`)}catch{x.error(`Something went wrong while trying to save the video. Please try again.`)}}async function O(t){let n=r.data.producers?.data?.filter(e=>!t.producers?.find(t=>t.id===e.id)),i=r.data.productionCompanies?.data?.filter(e=>!t.productionCompanies?.find(t=>t.id===e.id)),a=r.data.directors?.data?.filter(e=>!t.directors?.find(t=>t.id===e.id)),o=r.data.distributors?.data?.filter(e=>!t.distributors?.find(t=>t.id===e.id)),s=r.data.subtitles?.data?.filter(e=>!t.subtitles?.find(t=>t.id===e.id)),c=[];return n?.length&&c.push(H.dissociateMember(e.videoId,`producers`,n.map(e=>e.id))),i?.length&&c.push(H.dissociateMember(e.videoId,`productionCompanies`,i.map(e=>e.id))),a?.length&&c.push(H.dissociateMember(e.videoId,`directors`,a.map(e=>e.id))),o?.length&&c.push(H.dissociateMember(e.videoId,`distributors`,o.map(e=>e.id))),s?.length&&c.push(H.dissociateMember(e.videoId,`subtitles`,s.map(e=>e.id))),Promise.all(c.map(e=>y(e)))}async function k(t){let n=[];return t.subtitles?.forEach(t=>{t.id||n.push(H.addSubtitle(e.videoId,t))}),Promise.all(n.map(e=>y(e)))}async function M(e){let t=e.libraries.filter(e=>!r.data.libraries?.data?.find(t=>t.id.toString()===e.id.toString())),n=r.data.libraries?.data?.filter(t=>!e.libraries.find(e=>e.id.toString()===t.id.toString()))??[];t.length&&await y(H.addToLibraries(r.data.id,t.map(e=>e.id))),n.length&&await Promise.all(n.map(e=>y(H.removeFromLibraries(r.data.id,e.id))))}function N(e){return new Promise(t=>{v.addFiles(e),ge.default.channel(U.SUBTITLE_UPLOAD).once(oe.UPLOAD_COMPLETE,e=>{t(e.toJSON())})})}async function P(e){return y(ie.createPerson({name:e}))}async function F(e){return y(ae.createCompany({name:e}))}async function R(){if(r.data.subtitles?.data?.length)try{return(await y(V.getVideoDescriptionSuggestion(r.data.id,{subtitleId:r.data.subtitles?.data?.[0]?.id}))).description}catch(e){x.error(te(e.responseJSON?.type))}}function z(){return!r.hasCompleted||!o.hasCompleted||!p.hasCompleted||!d.hasCompleted||!s.hasCompleted||!a.hasCompleted||!f?.hasCompleted||!_.hasCompleted}return z()?(0,Z.jsx)(`div`,{className:`py-5 text-center`,children:(0,Z.jsx)(w,{})}):(0,Z.jsxs)(Z.Fragment,{children:[e.context===`live`?(0,Z.jsx)(ue,{videoId:e.videoId,activeAction:l.CvLive.EDIT_VIDEO}):(0,Z.jsx)(J,{videoId:e.videoId,activeAction:l.Videos.EDIT_VIDEO,currentUser:d.data}),e.context===`clickview`&&(0,Z.jsxs)(`div`,{className:`d-flex justify-content-end gap-2 pt-3`,children:[(0,Z.jsx)(re,{appLink:S(),disabled:!p.data,tooltip:p.data?``:`Video is not in the content pipeline`,svg:T,className:`btn btn-outline-dark`,openInNewTab:!0,children:`Open in Content Pipeline`}),!!a.data&&(0,Z.jsx)(b,{variant:`outline-dark`,onClick:C,children:`Sync from Rightsline`})]}),(0,Z.jsx)(ye,{video:r.data,saveVideo:D,ratings:o.data,libraries:_.data,rightslineId:a.data?.rightslineId,rightslineVideo:t&&a.data,onSubtitleFilesAdded:N,hideHeroBanner:e.context===`live`,hideActions:e.context===`live`,onClickCreatePerson:P,onClickCreateCompany:F,getAiGeneratedDescription:R}),e.context===`clickview`&&(0,Z.jsxs)(`div`,{className:`py-3 text-end`,children:[`Can't find what you're looking for? Try the old edit video page `,(0,Z.jsx)(i,{className:`info-link`,appLink:be(e.videoId),children:`here`}),`.`]})]})}function Se(e,t,n){let r=e=>P.getSetStateByKey(n,e);s(o.getObjectLevelsFetchOptions(e,d.Videos,r(`videoLevels`)),[e]),s(o.getObjectAudiencesFetchOptions(e,d.Videos,r(`videoAudiences`)),[e,t.videoLevels]),G([o.getPresentationsFetchOptions(r(`presentations`),y.Subject),o.getLevelsFetchOptions(r(`levels`))],[]),s(!!t.currentPresentation&&o.getAudiencesFetchOptions(t.currentPresentation.id,r(`presentationAudiences`)),[t.currentPresentation],!!t.currentPresentation)}function Ce(e){let[t,n]=Y.useState({}),r=A(H.video(e.videoId)),i=A(m.currentUser()),o=I(a.SUBJECT);Se(e.videoId,t,n),F(t,n);let s=!!t.presentations&&!!t.levels&&!!t.presentationAudiences&&!!t.videoLevels&&!!t.videoAudiences;return(0,Z.jsxs)(Z.Fragment,{children:[!!i.data&&(0,Z.jsx)(J,{videoId:e.videoId,activeAction:l.Videos.EDIT_VIDEO_AUDIENCES,currentUser:i.data}),(0,Z.jsx)(C,{object:r.data}),!!s&&(0,Z.jsx)(K,{objectLevels:t.videoLevels,objectAudiences:t.videoAudiences,presentations:t.presentations,currentPresentation:t.currentPresentation,setCurrentPresentation:P.getSetStateByKey(n,`currentPresentation`),levels:t.levels,presentationAudiences:t.presentationAudiences,memberType:d.Videos,saveLevels:(t,n,r)=>o.updateObjectLevels(e.videoId,t,d.Videos,n,r,r),saveAudiences:(n,r)=>o.updateObjectAudiences(e.videoId,t.currentPresentation.id,n,d.Videos,r,r)})]})}function we(e){switch(e){case`show`:return`Video is now visible within the topic`;case`hide`:return`Video has been hidden in the topic`;case`add`:return`Successfully added video to topic`;case`remove`:return`Successfully removed video from topic`;default:return``}}function Te(e){switch(e){case`show`:case`add`:return`Failed to ${e} video to topic`;case`hide`:case`remove`:return`Failed to ${e} video from topic`;default:return``}}function Ee(e){let t=t=>P.getSetStateByKey(e,t);G([o.getSubjectTreeFetchOptions(t(`subjectTree`),y.Subject),o.getPresentationsFetchOptions(t(`presentations`),y.Subject)],[])}function De(e,t){let n=e?.join(`,`),r=D(e?.length?N.chunk(e,100).map(e=>R.classificationPaths(e)):[]),i=[];r.data?.forEach(e=>i=i.concat(e)),Y.useEffect(()=>{if(!r.hasCompleted)return;let e={};i?.forEach(t=>{let n=N.last(t?.[0]);n&&(e[n.id]||(e[n.id]=[]),e[n.id].push(t))}),t(t=>({...t,videoClassificationsPaths:e}))},[n,r.hasCompleted,r.data?.length])}function Oe(e,t){let n=e?.join(`,`),r=A(e?.length&&R.mappedClassificationFromBackboneClassification(e));Y.useEffect(()=>{if(r.data?.length===0){t(e=>({...e,availableClassifications:[]}));return}r.hasCompleted&&t(e=>({...e,availableClassifications:r.data}))},[n,r.hasCompleted,r.data?.length])}function Q(e){let[t,n]=Y.useState({}),r=M(),i=L(),o=A(H.video(e.videoId)),s=A(m.currentUser()),c=A(R.videoClassification(e.videoId)),h=A(R.objectClassifications(e.videoId)),g=A(R.memberBackboneClassifications(e.videoId));Oe(g.data?.map(e=>e.id),n),De(t.availableClassifications?.map(e=>e.id),n);let _=I(a.SUBJECT);Ee(n);function v(e,t){k(r,R.removeObjectsFromClassification(e,[t],d.PinnedVideos,()=>x(`hide`),()=>T(`hide`)))}function b(e,t,n){k(r,R.addObjectsToClassification(e,[t],d.PinnedVideos,()=>x(n),()=>T(n)))}function x(e){i.success(we(e))}function T(e){i.error(Te(e))}function E(e,t){b(e,t,`add`)}function D(t){let n={application:u.SUBJECTS,action:l.Subjects,subjectId:t.id,videoId:e.videoId,ownerType:f.Classification,memberType:d.Videos,memberId:e.videoId},r=c.data?.includes(t.id);return h.data?.find(e=>e.id===t.id)?[p.buildMemberAction({actionName:r?`hideInClassification`:`showInClassification`,callback:r?()=>v(t.id,o.data.id):()=>b(t.id,o.data.id,`show`),...n}),{label:`Remove Video`,appLink:{application:u.VIDEOS,action:l.Videos.REMOVE_VIDEO_CLASSIFICATION,args:[n.subjectId,n.memberId,n.memberType]},className:`text-danger`}]:[{label:`Add`,button:!0,className:`btn btn-dark`,onClick:()=>{E(t.id,e.videoId)}}]}let O={actions:D},j=!!t.subjectTree&&!!t.presentations&&!!h.data&&g.hasCompleted;return(0,Z.jsxs)(Z.Fragment,{children:[!!s.data&&(0,Z.jsx)(J,{videoId:e.videoId,activeAction:l.Videos.EDIT_VIDEO_SUBJECTS,currentUser:s.data}),(0,Z.jsx)(C,{object:o.data}),j?(0,Z.jsx)(S,{objectSubjects:g.data,subjectTree:t.subjectTree,memberType:d.Videos,presentations:t.presentations,presentationType:y.Subject,currentPresentation:t.currentPresentation,setCurrentPresentation:P.getSetStateByKey(n,`currentPresentation`),objectClassifications:h.data,objectSubjectClassifications:t.subjectClassifications,classificationTree:t.classificationTree,saveSubjects:(t,n,i)=>k(r,R.updateObjectBackboneClassification(e.videoId,t,d.Videos,i)),saveClassifications:(n,r)=>_.updateObjectClassifications(e.videoId,t.currentPresentation.id,n,d.Videos,r,r),classificationsPaths:t.videoClassificationsPaths,availableClassifications:t.availableClassifications,visibleInClassification:c.data,videoId:e.videoId,columnData:O,mappedClassification:h.data,isFetchingVisibility:c.isFetching,isVideoClassification:!0}):(0,Z.jsx)(`div`,{className:`text-center p-5`,children:(0,Z.jsx)(w,{as:`div`,animation:`border`,role:`status`})})]})}var ke=ne(),$=new Map,Ae=e=>{let[t,n]=Y.useState(null),[r,i]=Y.useState(null),[a,o]=Y.useState(!1),s=j(),c=L(),l=A(R.presentations(y.Curriculum));Y.useEffect(()=>{l.data?.length&&(n(l.data[0]),e&&(o(!0),s(R.curriculumLinksPresentation(e,l.data[0].id)).then(e=>{i(e)}).finally(()=>{o(!1)})))},[l.data?.map(e=>e.id).join(`,`)]);let u=l.data?.map(e=>e.id)??[],d=A(e&&u.length&&R.getVideoPresentations(e,u));async function f(r){if(t.id.toString()===r.toString())return;let a=l.data.find(e=>e.id.toString()===r.toString());n(a);try{if(e){if($.has(r.toString())){i($.get(r.toString()));return}o(!0);let t=await s(R.curriculumLinksPresentation(e,r));i(t),$.set(r,t),o(!1)}}catch{c.error(`Something went wrong while trying to switch curriculums. Please try again.`),n(t)}}function p(){return t?!e||!!r&&d.hasCompleted:!1}return{preferredCurriculum:t,curriculumLinks:r||[],availableCurriculums:l.data||[],mappedCurriculums:d.data||[],updateCurriculum:f,hasCompleted:p(),isFetching:a}};function je(e){let t=A(H.video(e.videoId)),n=A(m.currentUser()),{availableCurriculums:r,updateCurriculum:i,preferredCurriculum:a,mappedCurriculums:o,curriculumLinks:s,hasCompleted:c,isFetching:u}=Ae(e.videoId);function d(e){i(e,{shouldLog:!1})}return(0,Z.jsxs)(Z.Fragment,{children:[!!n.data&&(0,Z.jsx)(J,{videoId:e.videoId,activeAction:l.Videos.EDIT_VIDEO_CURRICULUMS,currentUser:n.data}),(0,Z.jsx)(C,{object:t.data}),(0,Z.jsx)(fe,{availableCurriculums:r,onChangeCurriculum:d,selectedCurriculum:a}),(0,Z.jsx)(`div`,{className:`rounded border position-relative`,children:(0,Z.jsx)(ke.Scrollbars,{autoHeight:!0,autoHeightMax:600,children:(0,Z.jsx)(`div`,{className:`p-3`,children:(0,Z.jsx)(ce,{curriculumLinks:s,onChangeCurriculum:d,hasCompleted:c,mappedCurriculums:o,isFetching:u,locationContext:null})})})})]})}function Me(e){let t=M(),n=L(),r=A(H.video(e.videoId)),i=A(W.getAliases(e.videoId)),a=A(m.currentUser());function o(r,i){k(t,W.createAlias(e.videoId,r,()=>{n.success(`Successfully created alias`),i()},()=>{n.error(`Something went wrong creating your alias`)}))}function s(r){k(t,W.deleteAlias(e.videoId,r,()=>{n.success(`Successfully deleted alias`)},()=>{n.error(`Something went wrong deleting your alias`)}))}return!i.data||!a.data||!r.data?(0,Z.jsx)(Z.Fragment,{children:`Loading...`}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(J,{videoId:e.videoId,activeAction:l.Videos.EDIT_VIDEO_ALIASES,currentUser:a.data}),(0,Z.jsx)(pe,{memberName:`Alias`,video:r.data}),(0,Z.jsx)(x,{aliases:i.data.data,onSave:o,onDelete:s})]})}function Ne(e){let t=A(m.currentUser()),n=A(H.video(e.videoId)),r=A(z.curationTags()),i=A(z.selectedCurationTags(e.videoId)),a=O();function o(t,n,r){a(z.addTag(e.videoId,t,n,r))}function s(t,n,r){a(z.removeTag(e.videoId,t,n,r))}return(0,Z.jsxs)(Z.Fragment,{children:[!!t.data&&(0,Z.jsx)(J,{videoId:e.videoId,activeAction:l.Videos.EDIT_VIDEO_CURATION,currentUser:t.data}),!!n.data&&!!r.data&&!!i.data&&(0,Z.jsx)(q,{id:e.videoId,heading:n.data.name,curationTags:r.data,selectedCurationTags:i.data,addCurationTag:o,removeCurationTag:s,disableClickViewCurated:!0})]})}export{Me as EditVideoAliasesView,Ce as EditVideoAudiencesView,Ne as EditVideoCurationView,je as EditVideoCurriculumsView,Q as EditVideoSubjectsView,me as EditVideoTagsView,xe as EditVideoView,he as ManagePointsOfInterestView};
2
- //# sourceMappingURL=B52yjTo5.chunk.js.map
1
+ import{D as e,a as t,i as n,ln as r}from"./rp704-Pm.chunk.js";import{t as i}from"./Crs6pJ2h.chunk.js";import{a,i as o,t as s}from"./BAOFaFPQ.chunk.js";import{t as c}from"./C1kx8Ra5.chunk.js";import{t as l}from"./Di_u2uix.chunk.js";import{t as u}from"./BvMTtGLi.chunk.js";import"./CfCYHRuo.chunk.js";import{n as d}from"./CFoexGFe.chunk.js";import{i as f,n as p}from"./BVbA6fE6.chunk.js";import{t as m}from"./UCDGupVs.chunk.js";import{G as h,W as g}from"./DWHKdmdQ.chunk.js";import{t as _}from"./CLCeObem2.chunk.js";import{t as v}from"./C7gaMI1t2.chunk.js";import{t as y}from"./cwPDEI372.chunk.js";import{t as b}from"./Da4lNxpT2.chunk.js";import{f as x,s as S,y as C}from"./GpDEun8c2.chunk.js";import{n as w}from"./CbiGs3Tn.chunk.js";import{t as T}from"./CMczucng.chunk.js";import{n as E}from"./CsF4wDV1.chunk.js";import{c as D,l as O,r as k,s as A,u as j}from"./Dgk5cBBe.chunk.js";import{t as M}from"./Bw7dP6jB.chunk.js";import{t as N}from"./DpqbC5uX.chunk.js";import"./Oh4_zGIH.chunk.js";import{t as P}from"./BuWnKnnb.chunk.js";import{t as F}from"./BCfBk23W.chunk.js";import{t as I}from"./Lh2c_aQx2.chunk.js";import{t as L}from"./Bwpvc7Th2.chunk.js";import{t as ee}from"./suzdRjwd.chunk.js";import{t as R}from"./CZyPFSXo.chunk.js";import{t as z}from"./BivItbGo.chunk.js";import{t as B}from"./dKyhMawf.chunk.js";import{i as V,t as te}from"./DfwcH0ZK2.chunk.js";import{t as ne}from"./Dxmu3Qys2.chunk.js";import{t as re}from"./DZt0Izys.chunk.js";import{t as H}from"./JmL1DHFu.chunk.js";import{t as ie}from"./Bfw0P1qU2.chunk.js";import{t as ae}from"./CJGGMhrK2.chunk.js";import{a as oe,i as U}from"./BJdNIGDD2.chunk.js";import{t as W}from"./DYVUvs3j2.chunk.js";import{t as G}from"./2LTy46yF.chunk.js";import{c as K}from"./BFPSIGJg.chunk.js";import{t as q}from"./CNLx6_fS.chunk.js";import{t as se}from"./fapHSEex.chunk.js";import{n as ce}from"./D5f0T6ip2.chunk.js";import{t as le}from"./DaEXgbc_.chunk.js";import{t as ue}from"./DjnvbVQs.chunk.js";import{t as de}from"./BX1tMzoa.chunk.js";import{t as fe}from"./CXNcHvCo.chunk.js";import{t as pe}from"./VY2KbIoM.chunk.js";import{t as J}from"./BT-jeT7C.chunk.js";import"./B1pBJzjh.chunk.js";import{t as me}from"./DTvCgZ4c.chunk.js";import{t as he}from"./CSA2Tnv9.chunk.js";var ge=r(e(),1),Y=r(t(),1),X=r(_()),_e=X.object().shape({name:X.string().trim().max(255,`Name is too long`).required(`Name is required`).default(``),description:X.string().trim().default(``),status:X.mixed().required(`Status is required`),productionYear:X.number().min(1900),rating:X.object().shape({id:X.string()}).default({}).noUnknown(),thumbnail:v,heroBanner:v,glance:X.object().shape({theme:X.string(),format:X.mixed(),content:X.string(),type:X.mixed()}).default({}).noUnknown(),subtitles:X.array(),producers:X.array(),productionCompanies:X.array(),directors:X.array(),distributors:X.array(),libraries:X.array(),series:X.object().nullable(),season:X.object().nullable(),episodeNumber:X.number()}).noUnknown(),Z=n();function ve(e,t){if(e)return{...e,...t||{},libraries:e.libraries?.data??[],subtitles:e.subtitles?.data??[],producers:e.producers?.data??[],directors:e.directors?.data??[],productionCompanies:e.productionCompanies?.data??[],distributors:e.distributors?.data??[],series:e.series,season:e.season,glance:{...e.glance,theme:e.glance?.theme||``}}}function ye(e){return(0,Z.jsx)(B,{initialValues:ve(e.video,e.rightslineVideo),validationSchema:_e,onSubmit:e.saveVideo,allowInitialSubmit:!!e.rightslineVideo,children:(0,Z.jsx)(de,{id:e.video&&e.video.id,ratings:e.ratings,libraries:e.libraries,rightslineId:e.rightslineId,hideActions:e.hideActions,hideHeroBanner:e.hideHeroBanner,hideThumbnailText:!0,onSubtitleFilesAdded:e.onSubtitleFilesAdded,onClickCreatePerson:e.onClickCreatePerson,onClickCreateCompany:e.onClickCreateCompany,getAiGeneratedDescription:e.getAiGeneratedDescription})})}function be(e){return{application:u.VIDEOS,action:l.Videos.LEGACY_EDIT_VIDEO,args:[e]}}function xe(e){let[t,n]=Y.useState(!1),r=A(H.video(e.videoId)),a=A(H.rightslineVideo(e.videoId)),o=A(le.ratings()),s=A(H.clickViewTags(e.videoId)),d=A(m.currentUser()),f=se(e.videoId),p=A(h.getAssemblyLineVideo(e.videoId)),_=A(ee.hostedLibraries()),v=I(E.SubtitleUpload),y=j(),x=L();function S(){if(p.data)return{application:u.ASSEMBLY_LINE,action:g.mapStageToAction(p.data.stage),params:{query:e.videoId}}}function C(){a.isFetching||(n(!0),y(H.rightslineVideo(e.videoId)))}async function D(t,n){try{await O(t),await k(t),await M(t),await y(H.updateVideo(e.videoId,c.omit(t,[`subtitles`,`libraries`,`series`,`season`,`episodeNumber`,`glance`]))),t.thumbnail?.fileId!==r.data.thumbnail?.fileId&&!p.data?.hasCuratedThumbnail&&await y(H.updateContentPipelineVideo(e.videoId,{hasCuratedThumbnail:!0})),n(),x.success(`Successfully saved video.`)}catch{x.error(`Something went wrong while trying to save the video. Please try again.`)}}async function O(t){let n=r.data.producers?.data?.filter(e=>!t.producers?.find(t=>t.id===e.id)),i=r.data.productionCompanies?.data?.filter(e=>!t.productionCompanies?.find(t=>t.id===e.id)),a=r.data.directors?.data?.filter(e=>!t.directors?.find(t=>t.id===e.id)),o=r.data.distributors?.data?.filter(e=>!t.distributors?.find(t=>t.id===e.id)),s=r.data.subtitles?.data?.filter(e=>!t.subtitles?.find(t=>t.id===e.id)),c=[];return n?.length&&c.push(H.dissociateMember(e.videoId,`producers`,n.map(e=>e.id))),i?.length&&c.push(H.dissociateMember(e.videoId,`productionCompanies`,i.map(e=>e.id))),a?.length&&c.push(H.dissociateMember(e.videoId,`directors`,a.map(e=>e.id))),o?.length&&c.push(H.dissociateMember(e.videoId,`distributors`,o.map(e=>e.id))),s?.length&&c.push(H.dissociateMember(e.videoId,`subtitles`,s.map(e=>e.id))),Promise.all(c.map(e=>y(e)))}async function k(t){let n=[];return t.subtitles?.forEach(t=>{t.id||n.push(H.addSubtitle(e.videoId,t))}),Promise.all(n.map(e=>y(e)))}async function M(e){let t=e.libraries.filter(e=>!r.data.libraries?.data?.find(t=>t.id.toString()===e.id.toString())),n=r.data.libraries?.data?.filter(t=>!e.libraries.find(e=>e.id.toString()===t.id.toString()))??[];t.length&&await y(H.addToLibraries(r.data.id,t.map(e=>e.id))),n.length&&await Promise.all(n.map(e=>y(H.removeFromLibraries(r.data.id,e.id))))}function N(e){return new Promise(t=>{v.addFiles(e),ge.default.channel(U.SUBTITLE_UPLOAD).once(oe.UPLOAD_COMPLETE,e=>{t(e.toJSON())})})}async function P(e){return y(ie.createPerson({name:e}))}async function F(e){return y(ae.createCompany({name:e}))}async function R(){if(r.data.subtitles?.data?.length)try{return(await y(V.getVideoDescriptionSuggestion(r.data.id,{subtitleId:r.data.subtitles?.data?.[0]?.id}))).description}catch(e){x.error(te(e.responseJSON?.type))}}function z(){return!r.hasCompleted||!o.hasCompleted||!p.hasCompleted||!d.hasCompleted||!s.hasCompleted||!a.hasCompleted||!f?.hasCompleted||!_.hasCompleted}return z()?(0,Z.jsx)(`div`,{className:`py-5 text-center`,children:(0,Z.jsx)(w,{})}):(0,Z.jsxs)(Z.Fragment,{children:[e.context===`live`?(0,Z.jsx)(ue,{videoId:e.videoId,activeAction:l.CvLive.EDIT_VIDEO}):(0,Z.jsx)(J,{videoId:e.videoId,activeAction:l.Videos.EDIT_VIDEO,currentUser:d.data}),e.context===`clickview`&&(0,Z.jsxs)(`div`,{className:`d-flex justify-content-end gap-2 pt-3`,children:[(0,Z.jsx)(re,{appLink:S(),disabled:!p.data,tooltip:p.data?``:`Video is not in the content pipeline`,svg:T,className:`btn btn-outline-dark`,openInNewTab:!0,children:`Open in Content Pipeline`}),!!a.data&&(0,Z.jsx)(b,{variant:`outline-dark`,onClick:C,children:`Sync from Rightsline`})]}),(0,Z.jsx)(ye,{video:r.data,saveVideo:D,ratings:o.data,libraries:_.data,rightslineId:a.data?.rightslineId,rightslineVideo:t&&a.data,onSubtitleFilesAdded:N,hideHeroBanner:e.context===`live`,hideActions:e.context===`live`,onClickCreatePerson:P,onClickCreateCompany:F,getAiGeneratedDescription:R}),e.context===`clickview`&&(0,Z.jsxs)(`div`,{className:`py-3 text-end`,children:[`Can't find what you're looking for? Try the old edit video page `,(0,Z.jsx)(i,{className:`info-link`,appLink:be(e.videoId),children:`here`}),`.`]})]})}function Se(e,t,n){let r=e=>P.getSetStateByKey(n,e);s(o.getObjectLevelsFetchOptions(e,d.Videos,r(`videoLevels`)),[e]),s(o.getObjectAudiencesFetchOptions(e,d.Videos,r(`videoAudiences`)),[e,t.videoLevels]),G([o.getPresentationsFetchOptions(r(`presentations`),y.Subject),o.getLevelsFetchOptions(r(`levels`))],[]),s(!!t.currentPresentation&&o.getAudiencesFetchOptions(t.currentPresentation.id,r(`presentationAudiences`)),[t.currentPresentation],!!t.currentPresentation)}function Ce(e){let[t,n]=Y.useState({}),r=A(H.video(e.videoId)),i=A(m.currentUser()),o=I(a.SUBJECT);Se(e.videoId,t,n),F(t,n);let s=!!t.presentations&&!!t.levels&&!!t.presentationAudiences&&!!t.videoLevels&&!!t.videoAudiences;return(0,Z.jsxs)(Z.Fragment,{children:[!!i.data&&(0,Z.jsx)(J,{videoId:e.videoId,activeAction:l.Videos.EDIT_VIDEO_AUDIENCES,currentUser:i.data}),(0,Z.jsx)(C,{object:r.data}),!!s&&(0,Z.jsx)(K,{objectLevels:t.videoLevels,objectAudiences:t.videoAudiences,presentations:t.presentations,currentPresentation:t.currentPresentation,setCurrentPresentation:P.getSetStateByKey(n,`currentPresentation`),levels:t.levels,presentationAudiences:t.presentationAudiences,memberType:d.Videos,saveLevels:(t,n,r)=>o.updateObjectLevels(e.videoId,t,d.Videos,n,r,r),saveAudiences:(n,r)=>o.updateObjectAudiences(e.videoId,t.currentPresentation.id,n,d.Videos,r,r)})]})}function we(e){switch(e){case`show`:return`Video is now visible within the topic`;case`hide`:return`Video has been hidden in the topic`;case`add`:return`Successfully added video to topic`;case`remove`:return`Successfully removed video from topic`;default:return``}}function Te(e){switch(e){case`show`:case`add`:return`Failed to ${e} video to topic`;case`hide`:case`remove`:return`Failed to ${e} video from topic`;default:return``}}function Ee(e){let t=t=>P.getSetStateByKey(e,t);G([o.getSubjectTreeFetchOptions(t(`subjectTree`),y.Subject),o.getPresentationsFetchOptions(t(`presentations`),y.Subject)],[])}function De(e,t){let n=e?.join(`,`),r=D(e?.length?N.chunk(e,100).map(e=>R.classificationPaths(e)):[]),i=[];r.data?.forEach(e=>i=i.concat(e)),Y.useEffect(()=>{if(!r.hasCompleted)return;let e={};i?.forEach(t=>{let n=N.last(t?.[0]);n&&(e[n.id]||(e[n.id]=[]),e[n.id].push(t))}),t(t=>({...t,videoClassificationsPaths:e}))},[n,r.hasCompleted,r.data?.length])}function Oe(e,t){let n=e?.join(`,`),r=A(e?.length&&R.mappedClassificationFromBackboneClassification(e));Y.useEffect(()=>{if(r.data?.length===0){t(e=>({...e,availableClassifications:[]}));return}r.hasCompleted&&t(e=>({...e,availableClassifications:r.data}))},[n,r.hasCompleted,r.data?.length])}function Q(e){let[t,n]=Y.useState({}),r=M(),i=L(),o=A(H.video(e.videoId)),s=A(m.currentUser()),c=A(R.videoClassification(e.videoId)),h=A(R.objectClassifications(e.videoId)),g=A(R.memberBackboneClassifications(e.videoId));Oe(g.data?.map(e=>e.id),n),De(t.availableClassifications?.map(e=>e.id),n);let _=I(a.SUBJECT);Ee(n);function v(e,t){k(r,R.removeObjectsFromClassification(e,[t],d.PinnedVideos,()=>x(`hide`),()=>T(`hide`)))}function b(e,t,n){k(r,R.addObjectsToClassification(e,[t],d.PinnedVideos,()=>x(n),()=>T(n)))}function x(e){i.success(we(e))}function T(e){i.error(Te(e))}function E(e,t){b(e,t,`add`)}function D(t){let n={application:u.SUBJECTS,action:l.Subjects,subjectId:t.id,videoId:e.videoId,ownerType:f.Classification,memberType:d.Videos,memberId:e.videoId},r=c.data?.includes(t.id);return h.data?.find(e=>e.id===t.id)?[p.buildMemberAction({actionName:r?`hideInClassification`:`showInClassification`,callback:r?()=>v(t.id,o.data.id):()=>b(t.id,o.data.id,`show`),...n}),{label:`Remove Video`,appLink:{application:u.VIDEOS,action:l.Videos.REMOVE_VIDEO_CLASSIFICATION,args:[n.subjectId,n.memberId,n.memberType]},className:`text-danger`}]:[{label:`Add`,button:!0,className:`btn btn-dark`,onClick:()=>{E(t.id,e.videoId)}}]}let O={actions:D},j=!!t.subjectTree&&!!t.presentations&&!!h.data&&g.hasCompleted;return(0,Z.jsxs)(Z.Fragment,{children:[!!s.data&&(0,Z.jsx)(J,{videoId:e.videoId,activeAction:l.Videos.EDIT_VIDEO_SUBJECTS,currentUser:s.data}),(0,Z.jsx)(C,{object:o.data}),j?(0,Z.jsx)(S,{objectSubjects:g.data,subjectTree:t.subjectTree,memberType:d.Videos,presentations:t.presentations,presentationType:y.Subject,currentPresentation:t.currentPresentation,setCurrentPresentation:P.getSetStateByKey(n,`currentPresentation`),objectClassifications:h.data,objectSubjectClassifications:t.subjectClassifications,classificationTree:t.classificationTree,saveSubjects:(t,n,i)=>k(r,R.updateObjectBackboneClassification(e.videoId,t,d.Videos,i)),saveClassifications:(n,r)=>_.updateObjectClassifications(e.videoId,t.currentPresentation.id,n,d.Videos,r,r),classificationsPaths:t.videoClassificationsPaths,availableClassifications:t.availableClassifications,visibleInClassification:c.data,videoId:e.videoId,columnData:O,mappedClassification:h.data,isFetchingVisibility:c.isFetching,isVideoClassification:!0}):(0,Z.jsx)(`div`,{className:`text-center p-5`,children:(0,Z.jsx)(w,{as:`div`,animation:`border`,role:`status`})})]})}var ke=ne(),$=new Map,Ae=e=>{let[t,n]=Y.useState(null),[r,i]=Y.useState(null),[a,o]=Y.useState(!1),s=j(),c=L(),l=A(R.presentations(y.Curriculum));Y.useEffect(()=>{l.data?.length&&(n(l.data[0]),e&&(o(!0),s(R.curriculumLinksPresentation(e,l.data[0].id)).then(e=>{i(e)}).finally(()=>{o(!1)})))},[l.data?.map(e=>e.id).join(`,`)]);let u=l.data?.map(e=>e.id)??[],d=A(e&&u.length&&R.getVideoPresentations(e,u));async function f(r){if(t.id.toString()===r.toString())return;let a=l.data.find(e=>e.id.toString()===r.toString());n(a);try{if(e){if($.has(r.toString())){i($.get(r.toString()));return}o(!0);let t=await s(R.curriculumLinksPresentation(e,r));i(t),$.set(r,t),o(!1)}}catch{c.error(`Something went wrong while trying to switch curriculums. Please try again.`),n(t)}}function p(){return t?!e||!!r&&d.hasCompleted:!1}return{preferredCurriculum:t,curriculumLinks:r||[],availableCurriculums:l.data||[],mappedCurriculums:d.data||[],updateCurriculum:f,hasCompleted:p(),isFetching:a}};function je(e){let t=A(H.video(e.videoId)),n=A(m.currentUser()),{availableCurriculums:r,updateCurriculum:i,preferredCurriculum:a,mappedCurriculums:o,curriculumLinks:s,hasCompleted:c,isFetching:u}=Ae(e.videoId);function d(e){i(e,{shouldLog:!1})}return(0,Z.jsxs)(Z.Fragment,{children:[!!n.data&&(0,Z.jsx)(J,{videoId:e.videoId,activeAction:l.Videos.EDIT_VIDEO_CURRICULUMS,currentUser:n.data}),(0,Z.jsx)(C,{object:t.data}),(0,Z.jsx)(fe,{availableCurriculums:r,onChangeCurriculum:d,selectedCurriculum:a}),(0,Z.jsx)(`div`,{className:`rounded border position-relative`,children:(0,Z.jsx)(ke.Scrollbars,{autoHeight:!0,autoHeightMax:600,children:(0,Z.jsx)(`div`,{className:`p-3`,children:(0,Z.jsx)(ce,{curriculumLinks:s,onChangeCurriculum:d,hasCompleted:c,mappedCurriculums:o,isFetching:u,locationContext:null})})})})]})}function Me(e){let t=M(),n=L(),r=A(H.video(e.videoId)),i=A(W.getAliases(e.videoId)),a=A(m.currentUser());function o(r,i){k(t,W.createAlias(e.videoId,r,()=>{n.success(`Successfully created alias`),i()},()=>{n.error(`Something went wrong creating your alias`)}))}function s(r){k(t,W.deleteAlias(e.videoId,r,()=>{n.success(`Successfully deleted alias`)},()=>{n.error(`Something went wrong deleting your alias`)}))}return!i.data||!a.data||!r.data?(0,Z.jsx)(Z.Fragment,{children:`Loading...`}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(J,{videoId:e.videoId,activeAction:l.Videos.EDIT_VIDEO_ALIASES,currentUser:a.data}),(0,Z.jsx)(pe,{memberName:`Alias`,video:r.data}),(0,Z.jsx)(x,{aliases:i.data.data,onSave:o,onDelete:s})]})}function Ne(e){let t=A(m.currentUser()),n=A(H.video(e.videoId)),r=A(z.curationTags()),i=A(z.selectedCurationTags(e.videoId)),a=O();function o(t,n,r){a(z.addTag(e.videoId,t,n,r))}function s(t,n,r){a(z.removeTag(e.videoId,t,n,r))}return(0,Z.jsxs)(Z.Fragment,{children:[!!t.data&&(0,Z.jsx)(J,{videoId:e.videoId,activeAction:l.Videos.EDIT_VIDEO_CURATION,currentUser:t.data}),!!n.data&&!!r.data&&!!i.data&&(0,Z.jsx)(q,{id:e.videoId,heading:n.data.name,curationTags:r.data,selectedCurationTags:i.data,addCurationTag:o,removeCurationTag:s,disableClickViewCurated:!0})]})}export{Me as EditVideoAliasesView,Ce as EditVideoAudiencesView,Ne as EditVideoCurationView,je as EditVideoCurriculumsView,Q as EditVideoSubjectsView,me as EditVideoTagsView,xe as EditVideoView,he as ManagePointsOfInterestView};
2
+ //# sourceMappingURL=6l2s6d3Q.chunk.js.map