@clickview/streamable-learning 0.34.1-dev.2 → 0.35.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (437) hide show
  1. package/dist/bundles.json +2 -2
  2. package/dist/css/103-streamable-learning-5060b6cda5.chunk.css +7 -0
  3. package/dist/css/1269-streamable-learning-a12c4ebc99.chunk.css +2 -0
  4. package/dist/css/1457-streamable-learning-c8c8b3b9b1.chunk.css +50 -0
  5. package/dist/css/2334-streamable-learning-de03ae073a.chunk.css +2 -0
  6. package/dist/css/3322-streamable-learning-510e1aa3f3.chunk.css +34 -0
  7. package/dist/css/3838-streamable-learning-da10685fe8.chunk.css +22 -0
  8. package/dist/css/4254-streamable-learning-e493f4a027.chunk.css +2 -0
  9. package/dist/css/4607-streamable-learning-2605302fc2.chunk.css +90 -0
  10. package/dist/css/4772-streamable-learning-f83b838d71.chunk.css +9 -0
  11. package/dist/css/5003-streamable-learning-b38d2ddbbe.chunk.css +98 -0
  12. package/dist/css/5565-streamable-learning-0caae3809b.chunk.css +13 -0
  13. package/dist/css/6017-streamable-learning-098a205d01.chunk.css +6 -0
  14. package/dist/css/6356-streamable-learning-8c5b220bf6.chunk.css +1 -0
  15. package/dist/css/6987-streamable-learning-8f682301c6.chunk.css +1 -0
  16. package/dist/css/7317-streamable-learning-b5d226bbb6.chunk.css +5 -0
  17. package/dist/css/8058-streamable-learning-539cf7be18.chunk.css +12 -0
  18. package/dist/css/8294-streamable-learning-c797263ac2.chunk.css +1 -0
  19. package/dist/css/8496-streamable-learning-ce19f6ca52.chunk.css +13 -0
  20. package/dist/css/8601-streamable-learning-f525210660.chunk.css +6 -0
  21. package/dist/css/9514-streamable-learning-251703c6d1.chunk.css +2 -0
  22. package/dist/css/9766-streamable-learning-31650ffe5d.chunk.css +8 -0
  23. package/dist/css/9842-streamable-learning-24729103f7.chunk.css +4 -0
  24. package/dist/css/9899-streamable-learning-0338f8d2dc.chunk.css +4 -0
  25. package/dist/css/streamable-learning-dd0c1095d5.css +23 -0
  26. package/dist/languages/en.json +1 -0
  27. package/dist/scripts/103-aceced8961-streamable-learning.chunk.js +1 -0
  28. package/dist/scripts/1097-680a971192-streamable-learning.chunk.js +2 -0
  29. package/dist/scripts/1097-680a971192-streamable-learning.chunk.js.LICENSE.txt +105 -0
  30. package/dist/scripts/1269-2d0b903343-streamable-learning.chunk.js +2 -0
  31. package/dist/scripts/1269-2d0b903343-streamable-learning.chunk.js.LICENSE.txt +1 -0
  32. package/dist/scripts/1457-899f40d09a-streamable-learning.chunk.js +1 -0
  33. package/dist/scripts/1482-b1dd75897c-streamable-learning.chunk.js +1 -0
  34. package/dist/scripts/1934-fc017df0da-streamable-learning.chunk.js +2 -0
  35. package/dist/scripts/1934-fc017df0da-streamable-learning.chunk.js.LICENSE.txt +9 -0
  36. package/dist/scripts/2042-d51622d63e-streamable-learning.chunk.js +1 -0
  37. package/dist/scripts/2087-eba9033b1c-streamable-learning.chunk.js +1 -0
  38. package/dist/scripts/2245-8cd3224e1b-streamable-learning.chunk.js +1 -0
  39. package/dist/scripts/2334-00b028191d-streamable-learning.chunk.js +1 -0
  40. package/dist/scripts/2676-c842ec7e8d-streamable-learning.chunk.js +2 -0
  41. package/dist/scripts/2676-c842ec7e8d-streamable-learning.chunk.js.LICENSE.txt +1 -0
  42. package/dist/scripts/2877-5ffc9711f6-streamable-learning.chunk.js +1 -0
  43. package/dist/scripts/2911-2ec3a6600a-streamable-learning.chunk.js +1 -0
  44. package/dist/scripts/3057-731a8ca978-streamable-learning.chunk.js +1 -0
  45. package/dist/scripts/3093-efbcc927ea-streamable-learning.chunk.js +1 -0
  46. package/dist/scripts/3186-d1a6ccffde-streamable-learning.chunk.js +1 -0
  47. package/dist/scripts/3322-33c015dec9-streamable-learning.chunk.js +1 -0
  48. package/dist/scripts/3472-50ca92bde3-streamable-learning.chunk.js +1 -0
  49. package/dist/scripts/3838-4a38f33dc2-streamable-learning.chunk.js +1 -0
  50. package/dist/scripts/3941-2ef15ca9ac-streamable-learning.chunk.js +1 -0
  51. package/dist/scripts/4254-ef581b8105-streamable-learning.chunk.js +1 -0
  52. package/dist/scripts/4607-a4edb06dba-streamable-learning.chunk.js +2 -0
  53. package/dist/scripts/4607-a4edb06dba-streamable-learning.chunk.js.LICENSE.txt +1 -0
  54. package/dist/scripts/4772-3cb280f959-streamable-learning.chunk.js +2 -0
  55. package/dist/scripts/4772-3cb280f959-streamable-learning.chunk.js.LICENSE.txt +1 -0
  56. package/dist/scripts/4951-df701c6a8d-streamable-learning.chunk.js +1 -0
  57. package/dist/scripts/5003-7468a75d64-streamable-learning.chunk.js +2 -0
  58. package/dist/scripts/5003-7468a75d64-streamable-learning.chunk.js.LICENSE.txt +1 -0
  59. package/dist/scripts/5088-2e09e1ba6e-streamable-learning.chunk.js +1 -0
  60. package/dist/scripts/5173-a800a17d0d-streamable-learning.chunk.js +1 -0
  61. package/dist/scripts/5446-2cbe9f9d1b-streamable-learning.chunk.js +1 -0
  62. package/dist/scripts/5543-205aaa36a6-streamable-learning.chunk.js +1 -0
  63. package/dist/scripts/5565-224d86dc1b-streamable-learning.chunk.js +1 -0
  64. package/dist/scripts/578-2cc99f46f7-streamable-learning.chunk.js +1 -0
  65. package/dist/scripts/6017-5bd6f9bf7a-streamable-learning.chunk.js +2 -0
  66. package/dist/scripts/6017-5bd6f9bf7a-streamable-learning.chunk.js.LICENSE.txt +1 -0
  67. package/dist/scripts/6356-eefa3ff22e-streamable-learning.chunk.js +1 -0
  68. package/dist/scripts/6979-ef9a3931a2-streamable-learning.chunk.js +2 -0
  69. package/dist/scripts/6979-ef9a3931a2-streamable-learning.chunk.js.LICENSE.txt +1 -0
  70. package/dist/scripts/6987-e58de31cfe-streamable-learning.chunk.js +1 -0
  71. package/dist/scripts/7317-6b7186c85d-streamable-learning.chunk.js +1 -0
  72. package/dist/scripts/7347-772848ba8a-streamable-learning.chunk.js +1 -0
  73. package/dist/scripts/7570-cd4f70ff52-streamable-learning.chunk.js +2 -0
  74. package/dist/scripts/7570-cd4f70ff52-streamable-learning.chunk.js.LICENSE.txt +1 -0
  75. package/dist/scripts/7904-96574373ca-streamable-learning.chunk.js +1 -0
  76. package/dist/scripts/7925-1e1cfa2a04-streamable-learning.chunk.js +1 -0
  77. package/dist/scripts/8058-51c4b442d6-streamable-learning.chunk.js +1 -0
  78. package/dist/scripts/8126-9d09959b28-streamable-learning.chunk.js +2 -0
  79. package/dist/scripts/8126-9d09959b28-streamable-learning.chunk.js.LICENSE.txt +60 -0
  80. package/dist/scripts/8397-39ce77876d-streamable-learning.chunk.js +1 -0
  81. package/dist/scripts/8496-1b2519f9fd-streamable-learning.chunk.js +2 -0
  82. package/dist/scripts/8496-1b2519f9fd-streamable-learning.chunk.js.LICENSE.txt +1 -0
  83. package/dist/scripts/8599-b74e1ab6e3-streamable-learning.chunk.js +1 -0
  84. package/dist/scripts/8601-37783cf18b-streamable-learning.chunk.js +1 -0
  85. package/dist/scripts/8819-2a50dd6a9b-streamable-learning.chunk.js +1 -0
  86. package/dist/scripts/8937-5103db88d8-streamable-learning.chunk.js +1 -0
  87. package/dist/scripts/9390-bbaf07ad0f-streamable-learning.chunk.js +1 -0
  88. package/dist/scripts/9514-a31ca9af06-streamable-learning.chunk.js +1 -0
  89. package/dist/scripts/9766-48d72d9285-streamable-learning.chunk.js +2 -0
  90. package/dist/scripts/9766-48d72d9285-streamable-learning.chunk.js.LICENSE.txt +1 -0
  91. package/dist/scripts/9842-36d830ee87-streamable-learning.chunk.js +1 -0
  92. package/dist/scripts/9899-f33e8f1d43-streamable-learning.chunk.js +2 -0
  93. package/dist/scripts/9899-f33e8f1d43-streamable-learning.chunk.js.LICENSE.txt +1 -0
  94. package/dist/scripts/bundle-7ea4deeaa8.min.js +2 -0
  95. package/dist/scripts/bundle-7ea4deeaa8.min.js.LICENSE.txt +108 -0
  96. package/dist/scripts/pdf.worker.entry-a2092a6670.min.worker.js +2 -0
  97. package/dist/scripts/pdf.worker.entry-a2092a6670.min.worker.js.LICENSE.txt +21 -0
  98. package/package.json +3 -5
  99. package/typings/utils/imports.d.ts +1 -2
  100. package/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  101. package/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  102. package/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  103. package/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  104. package/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  105. package/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  106. package/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  107. package/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  108. package/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  109. package/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  110. package/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  111. package/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  112. package/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  113. package/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  114. package/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  115. package/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  116. package/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  117. package/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  118. package/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  119. package/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  120. package/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  121. package/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  122. package/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  123. package/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  124. package/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  125. package/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  126. package/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  127. package/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  128. package/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  129. package/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  130. package/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  131. package/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  132. package/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  133. package/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  134. package/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  135. package/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  136. package/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  137. package/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  138. package/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  139. package/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  140. package/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  141. package/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  142. package/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  143. package/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  144. package/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  145. package/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  146. package/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  147. package/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  148. package/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  149. package/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  150. package/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  151. package/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  152. package/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  153. package/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  154. package/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  155. package/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  156. package/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  157. package/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  158. package/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  159. package/dist/css/B-attovs.chunk.css +0 -9
  160. package/dist/css/B1NucFMn.chunk.css +0 -1
  161. package/dist/css/BPdg7JW4.chunk.css +0 -1
  162. package/dist/css/BPrUSCaY.chunk.css +0 -1
  163. package/dist/css/BR0fUt9D.chunk.css +0 -1
  164. package/dist/css/BhYm6SRm.chunk.css +0 -1
  165. package/dist/css/BiRz4h1c.chunk.css +0 -1
  166. package/dist/css/Bq1ChJn4.chunk.css +0 -1
  167. package/dist/css/Bt85j9js.chunk.css +0 -1
  168. package/dist/css/BuYrqi9E.chunk.css +0 -1
  169. package/dist/css/BugV1Bpa.chunk.css +0 -1
  170. package/dist/css/BuuVPl7n.chunk.css +0 -1
  171. package/dist/css/C1NkrNqQ.chunk.css +0 -1
  172. package/dist/css/C1qv5jz5.chunk.css +0 -1
  173. package/dist/css/C7XoyEPr.chunk.css +0 -1
  174. package/dist/css/C7_MDu56.chunk.css +0 -1
  175. package/dist/css/CC5F5C8O.chunk.css +0 -1
  176. package/dist/css/CChSC6Ta.chunk.css +0 -1
  177. package/dist/css/CCsCPLDG.chunk.css +0 -1
  178. package/dist/css/CD1qrI1T.chunk.css +0 -1
  179. package/dist/css/CKqvCBj4.chunk.css +0 -1
  180. package/dist/css/CLZ0Ycds.chunk.css +0 -1
  181. package/dist/css/CO7M4rZW.chunk.css +0 -1
  182. package/dist/css/CY0yvCW4.chunk.css +0 -1
  183. package/dist/css/CYGsw8FT.chunk.css +0 -1
  184. package/dist/css/Cbi3KYBa.chunk.css +0 -1
  185. package/dist/css/CliS8Q8r.chunk.css +0 -1
  186. package/dist/css/D-kQKsZN.chunk.css +0 -1
  187. package/dist/css/D2NwUVrK.chunk.css +0 -1
  188. package/dist/css/D4g1IoUU.chunk.css +0 -1
  189. package/dist/css/DBgpcO3T.chunk.css +0 -1
  190. package/dist/css/DDnpOnVB.chunk.css +0 -1
  191. package/dist/css/DZJSONGP.chunk.css +0 -1
  192. package/dist/css/Dc0zNt2E.chunk.css +0 -1
  193. package/dist/css/DeAfaPiD.chunk.css +0 -1
  194. package/dist/css/Dj731zLm.chunk.css +0 -1
  195. package/dist/css/DjPPxa0A.chunk.css +0 -1
  196. package/dist/css/DlOtoSz0.chunk.css +0 -1
  197. package/dist/css/DwduQat7.chunk.css +0 -1
  198. package/dist/css/Dzuu2GTx.chunk.css +0 -1
  199. package/dist/css/JAvsJreH.chunk.css +0 -1
  200. package/dist/css/NKlFYVOc.chunk.css +0 -1
  201. package/dist/css/VZd8qGtK.chunk.css +0 -1
  202. package/dist/css/Y7U--2na.chunk.css +0 -1
  203. package/dist/css/ir3IcK_l.chunk.css +0 -1
  204. package/dist/css/jbMisi9r.chunk.css +0 -1
  205. package/dist/css/kS5aDtIJ.chunk.css +0 -1
  206. package/dist/css/mqCL1o7m.chunk.css +0 -1
  207. package/dist/css/qZzkUeZk.chunk.css +0 -1
  208. package/dist/css/sC_H3yXE.chunk.css +0 -1
  209. package/dist/css/wR_6C_NV.chunk.css +0 -1
  210. package/dist/en.json +0 -1
  211. package/dist/scripts/7tlnqdEj.chunk.js +0 -2
  212. package/dist/scripts/7tlnqdEj.chunk.js.map +0 -1
  213. package/dist/scripts/82OY25pR.chunk.js +0 -2
  214. package/dist/scripts/82OY25pR.chunk.js.map +0 -1
  215. package/dist/scripts/8JOxjlae.chunk.js +0 -15
  216. package/dist/scripts/8JOxjlae.chunk.js.map +0 -1
  217. package/dist/scripts/B-_Kgmt0.chunk.js +0 -2
  218. package/dist/scripts/B-_Kgmt0.chunk.js.map +0 -1
  219. package/dist/scripts/B0KMLOp5.chunk.js +0 -2
  220. package/dist/scripts/B0KMLOp5.chunk.js.map +0 -1
  221. package/dist/scripts/B1QWJfPw.chunk.js +0 -3
  222. package/dist/scripts/B1QWJfPw.chunk.js.map +0 -1
  223. package/dist/scripts/B26T27lj.chunk.js +0 -2
  224. package/dist/scripts/B26T27lj.chunk.js.map +0 -1
  225. package/dist/scripts/B32lL5ga.chunk.js +0 -2
  226. package/dist/scripts/B32lL5ga.chunk.js.map +0 -1
  227. package/dist/scripts/B5lCwpXp.chunk.js +0 -2
  228. package/dist/scripts/B5lCwpXp.chunk.js.map +0 -1
  229. package/dist/scripts/B8qPNVvK.chunk.js +0 -2
  230. package/dist/scripts/B8qPNVvK.chunk.js.map +0 -1
  231. package/dist/scripts/BBnDr_iy.chunk.js +0 -2
  232. package/dist/scripts/BBnDr_iy.chunk.js.map +0 -1
  233. package/dist/scripts/BCQ0kOEO.chunk.js +0 -6
  234. package/dist/scripts/BCQ0kOEO.chunk.js.map +0 -1
  235. package/dist/scripts/BCyuhFou.chunk.js +0 -2
  236. package/dist/scripts/BCyuhFou.chunk.js.map +0 -1
  237. package/dist/scripts/BF7Uu3LW.chunk.js +0 -2
  238. package/dist/scripts/BF7Uu3LW.chunk.js.map +0 -1
  239. package/dist/scripts/BG6_Ss4G.chunk.js +0 -2
  240. package/dist/scripts/BG6_Ss4G.chunk.js.map +0 -1
  241. package/dist/scripts/BMrWb7Ku.chunk.js +0 -2
  242. package/dist/scripts/BMrWb7Ku.chunk.js.map +0 -1
  243. package/dist/scripts/BQH1xd9z.chunk.js +0 -2
  244. package/dist/scripts/BQH1xd9z.chunk.js.map +0 -1
  245. package/dist/scripts/BW1iqZG2.chunk.js +0 -2
  246. package/dist/scripts/BW1iqZG2.chunk.js.map +0 -1
  247. package/dist/scripts/BdHxGaRy.chunk.js +0 -2
  248. package/dist/scripts/BdHxGaRy.chunk.js.map +0 -1
  249. package/dist/scripts/BdniDID_.chunk.js +0 -2
  250. package/dist/scripts/BdniDID_.chunk.js.map +0 -1
  251. package/dist/scripts/BeTQIGnj.chunk.js +0 -2
  252. package/dist/scripts/BeTQIGnj.chunk.js.map +0 -1
  253. package/dist/scripts/Bf3WCYXw.chunk.js +0 -8
  254. package/dist/scripts/Bf3WCYXw.chunk.js.map +0 -1
  255. package/dist/scripts/Bh4NsrSi.chunk.js +0 -2
  256. package/dist/scripts/Bh4NsrSi.chunk.js.map +0 -1
  257. package/dist/scripts/BjOv-usB.chunk.js +0 -2
  258. package/dist/scripts/BjOv-usB.chunk.js.map +0 -1
  259. package/dist/scripts/BkGt8Gr1.chunk.js +0 -2
  260. package/dist/scripts/BkGt8Gr1.chunk.js.map +0 -1
  261. package/dist/scripts/BlFiywl_.chunk.js +0 -2
  262. package/dist/scripts/BlFiywl_.chunk.js.map +0 -1
  263. package/dist/scripts/BoNyBWaZ.chunk.js +0 -2
  264. package/dist/scripts/BoNyBWaZ.chunk.js.map +0 -1
  265. package/dist/scripts/Bvum7-8x.chunk.js +0 -8
  266. package/dist/scripts/Bvum7-8x.chunk.js.map +0 -1
  267. package/dist/scripts/BwDmMfAz.chunk.js +0 -2
  268. package/dist/scripts/BwDmMfAz.chunk.js.map +0 -1
  269. package/dist/scripts/BwgQZkdi.chunk.js +0 -2
  270. package/dist/scripts/BwgQZkdi.chunk.js.map +0 -1
  271. package/dist/scripts/C-7yn3rc.chunk.js +0 -2
  272. package/dist/scripts/C-7yn3rc.chunk.js.map +0 -1
  273. package/dist/scripts/C-pJ0Wi3.chunk.js +0 -2
  274. package/dist/scripts/C-pJ0Wi3.chunk.js.map +0 -1
  275. package/dist/scripts/C35NlkUr.chunk.js +0 -2
  276. package/dist/scripts/C35NlkUr.chunk.js.map +0 -1
  277. package/dist/scripts/C36-3UWl.chunk.js +0 -2
  278. package/dist/scripts/C36-3UWl.chunk.js.map +0 -1
  279. package/dist/scripts/C3fMNXil.chunk.js +0 -2
  280. package/dist/scripts/C3fMNXil.chunk.js.map +0 -1
  281. package/dist/scripts/C8Br2CdQ.chunk.js +0 -2
  282. package/dist/scripts/C8Br2CdQ.chunk.js.map +0 -1
  283. package/dist/scripts/CEmtkty-.chunk.js +0 -2
  284. package/dist/scripts/CEmtkty-.chunk.js.map +0 -1
  285. package/dist/scripts/CFs3kdQx.chunk.js +0 -53
  286. package/dist/scripts/CFs3kdQx.chunk.js.map +0 -1
  287. package/dist/scripts/CGNCg1fO.chunk.js +0 -2
  288. package/dist/scripts/CGNCg1fO.chunk.js.map +0 -1
  289. package/dist/scripts/CPXlV0fg.chunk.js +0 -2
  290. package/dist/scripts/CPXlV0fg.chunk.js.map +0 -1
  291. package/dist/scripts/CSoZBG8v.chunk.js +0 -2
  292. package/dist/scripts/CSoZBG8v.chunk.js.map +0 -1
  293. package/dist/scripts/CW7x8M-z.chunk.js +0 -2
  294. package/dist/scripts/CW7x8M-z.chunk.js.map +0 -1
  295. package/dist/scripts/CWHjB5Ye.chunk.js +0 -2
  296. package/dist/scripts/CWHjB5Ye.chunk.js.map +0 -1
  297. package/dist/scripts/CXslDtbb.chunk.js +0 -2
  298. package/dist/scripts/CXslDtbb.chunk.js.map +0 -1
  299. package/dist/scripts/CZLZ0bbA.chunk.js +0 -2
  300. package/dist/scripts/CZLZ0bbA.chunk.js.map +0 -1
  301. package/dist/scripts/CZafJWQk.chunk.js +0 -2
  302. package/dist/scripts/CZafJWQk.chunk.js.map +0 -1
  303. package/dist/scripts/CbFIe2Y6.chunk.js +0 -2
  304. package/dist/scripts/CbFIe2Y6.chunk.js.map +0 -1
  305. package/dist/scripts/Cg8SIDnK.chunk.js +0 -8
  306. package/dist/scripts/Cg8SIDnK.chunk.js.map +0 -1
  307. package/dist/scripts/Cib9o4sK.chunk.js +0 -2
  308. package/dist/scripts/Cib9o4sK.chunk.js.map +0 -1
  309. package/dist/scripts/Ciyuu-YU.chunk.js +0 -356
  310. package/dist/scripts/Ciyuu-YU.chunk.js.map +0 -1
  311. package/dist/scripts/CkMhHhda.chunk.js +0 -2
  312. package/dist/scripts/CkMhHhda.chunk.js.map +0 -1
  313. package/dist/scripts/CmAQo6rx.chunk.js +0 -2
  314. package/dist/scripts/CmAQo6rx.chunk.js.map +0 -1
  315. package/dist/scripts/CmcmWGL0.chunk.js +0 -2
  316. package/dist/scripts/CmcmWGL0.chunk.js.map +0 -1
  317. package/dist/scripts/Cmu1J2M7.chunk.js +0 -262
  318. package/dist/scripts/Cmu1J2M7.chunk.js.map +0 -1
  319. package/dist/scripts/CrkRNOU9.chunk.js +0 -2
  320. package/dist/scripts/CrkRNOU9.chunk.js.map +0 -1
  321. package/dist/scripts/CskJerl_.chunk.js +0 -2
  322. package/dist/scripts/CskJerl_.chunk.js.map +0 -1
  323. package/dist/scripts/Ct_IIxaS.chunk.js +0 -2
  324. package/dist/scripts/Ct_IIxaS.chunk.js.map +0 -1
  325. package/dist/scripts/Cuuw0EUi.chunk.js +0 -8
  326. package/dist/scripts/Cuuw0EUi.chunk.js.map +0 -1
  327. package/dist/scripts/Cz45aonc.chunk.js +0 -2
  328. package/dist/scripts/Cz45aonc.chunk.js.map +0 -1
  329. package/dist/scripts/D-I94wdL.chunk.js +0 -7
  330. package/dist/scripts/D-I94wdL.chunk.js.map +0 -1
  331. package/dist/scripts/D0UlXsF8.chunk.js +0 -2
  332. package/dist/scripts/D0UlXsF8.chunk.js.map +0 -1
  333. package/dist/scripts/D0cZC7S-.chunk.js +0 -2
  334. package/dist/scripts/D0cZC7S-.chunk.js.map +0 -1
  335. package/dist/scripts/D1D6Gqx1.chunk.js +0 -2
  336. package/dist/scripts/D1D6Gqx1.chunk.js.map +0 -1
  337. package/dist/scripts/D3tziVkG.chunk.js +0 -2
  338. package/dist/scripts/D3tziVkG.chunk.js.map +0 -1
  339. package/dist/scripts/D4MOOnR6.chunk.js +0 -2
  340. package/dist/scripts/D4MOOnR6.chunk.js.map +0 -1
  341. package/dist/scripts/D83kc0Wf.chunk.js +0 -2
  342. package/dist/scripts/D83kc0Wf.chunk.js.map +0 -1
  343. package/dist/scripts/D8dAIhzO.chunk.js +0 -2
  344. package/dist/scripts/D8dAIhzO.chunk.js.map +0 -1
  345. package/dist/scripts/DBp0J6X9.chunk.js +0 -2
  346. package/dist/scripts/DBp0J6X9.chunk.js.map +0 -1
  347. package/dist/scripts/DCds0mCy.chunk.js +0 -2
  348. package/dist/scripts/DCds0mCy.chunk.js.map +0 -1
  349. package/dist/scripts/DEwFBSVv.chunk.js +0 -2
  350. package/dist/scripts/DEwFBSVv.chunk.js.map +0 -1
  351. package/dist/scripts/DF55CDS8.chunk.js +0 -2
  352. package/dist/scripts/DF55CDS8.chunk.js.map +0 -1
  353. package/dist/scripts/DFw_xy-Y.chunk.js +0 -2
  354. package/dist/scripts/DFw_xy-Y.chunk.js.map +0 -1
  355. package/dist/scripts/DIGYepWa.chunk.js +0 -2
  356. package/dist/scripts/DIGYepWa.chunk.js.map +0 -1
  357. package/dist/scripts/DKeFeMvi.chunk.js +0 -2
  358. package/dist/scripts/DKeFeMvi.chunk.js.map +0 -1
  359. package/dist/scripts/DKqLfL60.chunk.js +0 -5
  360. package/dist/scripts/DKqLfL60.chunk.js.map +0 -1
  361. package/dist/scripts/DLJB8vZh.chunk.js +0 -2
  362. package/dist/scripts/DLJB8vZh.chunk.js.map +0 -1
  363. package/dist/scripts/DNtSrq_L.chunk.js +0 -2
  364. package/dist/scripts/DNtSrq_L.chunk.js.map +0 -1
  365. package/dist/scripts/DOHPsm0Q.chunk.js +0 -2
  366. package/dist/scripts/DOHPsm0Q.chunk.js.map +0 -1
  367. package/dist/scripts/DP-ErTOD.chunk.js +0 -2
  368. package/dist/scripts/DP-ErTOD.chunk.js.map +0 -1
  369. package/dist/scripts/DUwkrIwb.chunk.js +0 -2
  370. package/dist/scripts/DUwkrIwb.chunk.js.map +0 -1
  371. package/dist/scripts/DUyJfVnL.chunk.js +0 -2
  372. package/dist/scripts/DUyJfVnL.chunk.js.map +0 -1
  373. package/dist/scripts/DVfbSloY.chunk.js +0 -2
  374. package/dist/scripts/DVfbSloY.chunk.js.map +0 -1
  375. package/dist/scripts/DWvpibWQ.chunk.js +0 -2
  376. package/dist/scripts/DWvpibWQ.chunk.js.map +0 -1
  377. package/dist/scripts/DYmgSjx-.chunk.js +0 -10
  378. package/dist/scripts/DYmgSjx-.chunk.js.map +0 -1
  379. package/dist/scripts/D_EfITTc.chunk.js +0 -2
  380. package/dist/scripts/D_EfITTc.chunk.js.map +0 -1
  381. package/dist/scripts/DayWKE6G.chunk.js +0 -2
  382. package/dist/scripts/DayWKE6G.chunk.js.map +0 -1
  383. package/dist/scripts/DcOpKno_.chunk.js +0 -2
  384. package/dist/scripts/DcOpKno_.chunk.js.map +0 -1
  385. package/dist/scripts/DgMPP2NS.chunk.js +0 -2
  386. package/dist/scripts/DgMPP2NS.chunk.js.map +0 -1
  387. package/dist/scripts/DhWvZ3GP.chunk.js +0 -2
  388. package/dist/scripts/DhWvZ3GP.chunk.js.map +0 -1
  389. package/dist/scripts/Digrmnl9.chunk.js +0 -2
  390. package/dist/scripts/Digrmnl9.chunk.js.map +0 -1
  391. package/dist/scripts/DjWOPQVv.chunk.js +0 -2
  392. package/dist/scripts/DjWOPQVv.chunk.js.map +0 -1
  393. package/dist/scripts/DkSHJqHu.chunk.js +0 -2
  394. package/dist/scripts/DkSHJqHu.chunk.js.map +0 -1
  395. package/dist/scripts/Dpq10cRY.chunk.js +0 -2
  396. package/dist/scripts/Dpq10cRY.chunk.js.map +0 -1
  397. package/dist/scripts/DrsDxQ8i.chunk.js +0 -2
  398. package/dist/scripts/DrsDxQ8i.chunk.js.map +0 -1
  399. package/dist/scripts/DrsVPpSl.chunk.js +0 -3
  400. package/dist/scripts/DrsVPpSl.chunk.js.map +0 -1
  401. package/dist/scripts/DvDdiDQN.chunk.js +0 -7
  402. package/dist/scripts/DvDdiDQN.chunk.js.map +0 -1
  403. package/dist/scripts/DwU9lZgg.chunk.js +0 -2
  404. package/dist/scripts/DwU9lZgg.chunk.js.map +0 -1
  405. package/dist/scripts/I8EoNmf8.chunk.js +0 -2
  406. package/dist/scripts/I8EoNmf8.chunk.js.map +0 -1
  407. package/dist/scripts/Im8afRMN.chunk.js +0 -2
  408. package/dist/scripts/Im8afRMN.chunk.js.map +0 -1
  409. package/dist/scripts/N_QgBckB.chunk.js +0 -2
  410. package/dist/scripts/N_QgBckB.chunk.js.map +0 -1
  411. package/dist/scripts/SnHtKbiQ.chunk.js +0 -2
  412. package/dist/scripts/SnHtKbiQ.chunk.js.map +0 -1
  413. package/dist/scripts/U-eF69sj.chunk.js +0 -2
  414. package/dist/scripts/U-eF69sj.chunk.js.map +0 -1
  415. package/dist/scripts/XarUQJMp.chunk.js +0 -2
  416. package/dist/scripts/XarUQJMp.chunk.js.map +0 -1
  417. package/dist/scripts/ZYx7Po5r.chunk.js +0 -2
  418. package/dist/scripts/ZYx7Po5r.chunk.js.map +0 -1
  419. package/dist/scripts/app-DfSv_-O3.js +0 -220
  420. package/dist/scripts/app-DfSv_-O3.js.map +0 -1
  421. package/dist/scripts/awsfwCdu.chunk.js +0 -2
  422. package/dist/scripts/awsfwCdu.chunk.js.map +0 -1
  423. package/dist/scripts/b1pZWz43.chunk.js +0 -2
  424. package/dist/scripts/b1pZWz43.chunk.js.map +0 -1
  425. package/dist/scripts/cvX-F_mx.chunk.js +0 -2
  426. package/dist/scripts/cvX-F_mx.chunk.js.map +0 -1
  427. package/dist/scripts/lBHPAFYv.chunk.js +0 -2
  428. package/dist/scripts/lBHPAFYv.chunk.js.map +0 -1
  429. package/dist/scripts/mP-Ymt5z.chunk.js +0 -2
  430. package/dist/scripts/mP-Ymt5z.chunk.js.map +0 -1
  431. package/dist/scripts/nay4aGaa.chunk.js +0 -2
  432. package/dist/scripts/nay4aGaa.chunk.js.map +0 -1
  433. package/dist/scripts/pkzD5BEm.chunk.js +0 -2
  434. package/dist/scripts/pkzD5BEm.chunk.js.map +0 -1
  435. package/dist/scripts/tHf2V3t0.chunk.js +0 -2
  436. package/dist/scripts/tHf2V3t0.chunk.js.map +0 -1
  437. package/vite.config.ts +0 -6
@@ -1,2 +0,0 @@
1
- import{j as t,Y as n,c as a,l as i}from"./app-DfSv_-O3.js";import{T as c}from"./CZafJWQk.chunk.js";const l="_tag_1f6v7_1",r="_tooltip_1f6v7_5",s={tag:l,tooltip:r},e="specialEventCalendar.comingSoonTag";function p(o){return t.jsx(n,{title:a.getPhrase(e,"tooltip"),spanHackClassName:`d-block ${s.tooltip}`,spanHack:!0,children:t.jsxs("div",{className:`d-flex text-dark align-items-center ${s.tag} ${o.className}`,children:[t.jsx(i,{svg:c}),!o.onlyIcon&&a.getPhrase(e,"comingSoon")]})})}export{p as C};
2
- //# sourceMappingURL=DwU9lZgg.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DwU9lZgg.chunk.js","sources":["../../../../libs/shared/src/apps/calendar/components/coming-soon-tag/ComingSoonTag.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { TimerSvg } from 'libs/shared/images/svg/status/TimerSvg';\n\nimport styles from './coming-soon-tag.module.scss';\n\nconst namespace = 'specialEventCalendar.comingSoonTag';\n\ninterface ComingSoonProps {\n className?: string;\n onlyIcon?: boolean;\n}\n\nexport function ComingSoonTag(props: ComingSoonProps): JSX.Element {\n return (\n <Tooltip title={LanguageService.getPhrase(namespace, 'tooltip')} spanHackClassName={`d-block ${styles.tooltip}`} spanHack>\n <div className={`d-flex text-dark align-items-center ${styles.tag} ${props.className}`}>\n <SvgContainer svg={TimerSvg} />\n {!props.onlyIcon && LanguageService.getPhrase(namespace, 'comingSoon')}\n </div>\n </Tooltip>\n );\n}"],"names":["namespace","ComingSoonTag","props","jsx","Tooltip","LanguageService","styles","jsxs","SvgContainer","TimerSvg"],"mappings":"mKAUMA,EAAY,qCAOX,SAASC,EAAcC,EAAqC,CACjE,OACEC,EAAAA,IAACC,EAAA,CAAQ,MAAOC,EAAgB,UAAUL,EAAW,SAAS,EAAG,kBAAmB,WAAWM,EAAO,OAAO,GAAI,SAAQ,GACvH,SAAAC,EAAAA,KAAC,MAAA,CAAI,UAAW,uCAAuCD,EAAO,GAAG,IAAIJ,EAAM,SAAS,GAClF,SAAA,CAAAC,EAAAA,IAACK,EAAA,CAAa,IAAKC,CAAA,CAAU,EAC5B,CAACP,EAAM,UAAYG,EAAgB,UAAUL,EAAW,YAAY,CAAA,CAAA,CACvE,CAAA,CACF,CAEJ"}
@@ -1,2 +0,0 @@
1
- import{b5 as p,a6 as a,bc as l,a5 as v,ao as b,dt as V}from"./app-DfSv_-O3.js";import{a as $}from"./CEmtkty-.chunk.js";import{P as m}from"./pkzD5BEm.chunk.js";var g=(e=>(e.Series="series",e.Playlist="playlist",e.Widget="widget",e.Folder="category",e.CategoryTree="categoryTree",e))(g||{}),n=(e=>(e.Newest="newest",e.Oldest="oldest",e.RecentlyAdded="recently_added",e.AtoZ="atoz",e.ZtoA="ztoa",e.Series="series",e.ProductionYear="production_year",e))(n||{});const k=(e,t)=>`${t?`${t}:`:""}video:sort:${e}`,f=n.RecentlyAdded,T={getValidSortTypeFromParam(e){return Object.values(n).includes(e)?e:n.Newest},getOrSetSortType(e,t,r,i){const s=k(e,i);return(t||!p.cacheExists(s))&&p.cacheSet(s,t||r||f),t||(t=p.cacheGet(s)),t},getVideoSortParam(e){switch(e){case n.AtoZ:return"orderby:name";case n.ZtoA:return"orderbydesc:name";case n.Newest:return"orderbydesc:datecreated";case n.Oldest:return"orderby:datecreated";case n.RecentlyAdded:return"orderbydesc:timestamp";case n.Series:return"orderby:seriessort";case n.ProductionYear:return"orderbydesc:productionyear";default:return}}},u={sharedVideo:(e,t)=>a.urlBuilder(`/api/objects/${e}`,{shareId:t,query:l.VIDEO}),publicVideo:(e,t)=>a.urlBuilder(`/api/objects/${e}`,{query:"thumbnail,_canBeConsumed,series,season,_rating,libraries{typeId:[17]}",permissionFilterOption:m.StripMetadata,shareId:t}),getVideosById:e=>a.urlBuilder("{gateway}/v1/objects",{"query.video":l.VIDEO_COLLECTION,"query.clip":l.CLIP_COLLECTION,"query.interactive":l.INTERACTIVE_COLLECTION,id:e}),relatedVideos:e=>{const{videoId:t,context:r,collectionId:i,moviesAndTv:s,limit:c}=e,o={videoId:t,limit:c,query:l.VIDEO_COLLECTION};return r&&(r===g.Widget?o["context.widgetId"]=i:(o["context.collectionType"]=r,o["context.collectionId"]=i)),s&&(o["context.moviesAndTv"]=!0),a.urlBuilder("{gateway}/v1/suggestions/related-videos",o)}},q={video(e,t){return{url:a.urlBuilder(`{gateway}/v1/objects/${e}`,{query:l.VIDEO,permissionFilterOption:t}),publicUrl:a.urlBuilder(`/api/objects/${e}`,{query:V.VIDEO,permissionFilterOption:t}),key:`videos:${e}:${t}`}},publicVideo(e,t,r,i){return{url:u.publicVideo(e,t),key:`videos:${e}:public:${t}`,bootstrapName:`shared:object:${e}`,success:r,error:i}},sharedVideo(e,t,r,i){return{url:u.sharedVideo(e,t),key:`shared:video:${e}`,success:r,error:i}},myVideos(e,t){const{VIDEO_COLLECTION:r,CLIP_COLLECTION:i,INTERACTIVE:s}=l,c=`videos[${r}]{libraries.typeid:${b.WorkspaceCollection}}`,o=`clips[${i}]`,d=`interactives[${s}]{status:[${$.Published},${$.Draft}]}`,y={query:`(${c}|${o}|${d}){orderbydesc:id}`,permissionFilterOption:m.StripMetadata};return t&&(y.cursor=t),{url:a.urlBuilder(`{gateway}/v1/objects/${e}/members`,y),key:`my:videos:${t}`}},videos(e,t){return{url:u.getVideosById(e),key:`videos:by:id:${e.join(",")}`,success:t}},watchHistoryVideos(e,t){return{url:u.getVideosById(e),key:`watch:history:videos:by:id:${e.join(",")}`,success:t}},updateVideo(e,t,r,i,s){return{key:`update:video:${e}`,url:`{gateway}/v1/objects/${e}`,type:v.PUT,data:t,success:r,error:i,always:s}},videoRatings(e,t){const r=e.map(i=>`id=${i}`);if(r.length)return{url:`/api/domain/v2/objects?query=rating&${r.join("&")}`,key:`video:ratings:by:id:${e.join(",")}`,normalizeOptions:{namespace:t}}},videoMixinAssocs(e,t){if(e.map(i=>`id=${i}`).length)return{url:a.urlBuilder("{gateway}/v1/objects",{query:"interactives{limit:100},resources{limit:100},links{limit:100},_hasCurriculumLinks",id:e}),publicUrl:a.urlBuilder("/api/objects",{query:"interactives{limit:100},resources{limit:100},links{limit:100},_hasCurriculumLinks",id:e}),key:`video:mixin:assocs:${e.join(",")}`,normalizeOptions:{namespace:t}}},getRestrictions(e){const t=e.slice().sort();return{url:`/api/domain/v1/restrictedobjects?objectTypeId=${b.Video}${t.map(r=>`&objectId=${r}`).join("")}`,key:`restrictions:${t.join(",")}`,normalizeOptions:{namespace:"domain",idAttribute:"objectId"}}},delete(e,t,r){return{url:`{gateway}/v1/objects/${e}`,key:`delete:video:${e}`,type:v.DELETE,success:t,error:r,invalidationKeys:["videos","search"]}},deleteBulk(e,t,r,i,s){const c=e.map(d=>`videoIds=${d}`).join("&"),o=[`categoryId=${r}`,`${c}`].join("&");return{url:`/api/domain/v1/libraries/${t}/videos?${o}`,key:`delete:bulk:video:${e.join(":")}:${t}:${r}`,type:v.DELETE,success:i,error:s,invalidationKeys:["videos","search"]}},relatedVideos(e){const{videoId:t,context:r,collectionId:i,moviesAndTv:s}=e;return{url:u.relatedVideos(e),key:`related:videos:${t}:${r}:${i}:${s}`}},collectionVideos(e,t,r,i,s,c){const o=T.getVideoSortParam(t),{VIDEO_COLLECTION:d,CLIP_COLLECTION:y,INTERACTIVE:O}=l,j=`videos[${d}]`,I=`clips[${y}]`,E=`interactives[${O}]{status:[${$.Published},${$.Draft}]}`,h={query:`(${j}|${I}|${E})${o?`{${o}}`:""}`,permissionFilterOption:m.FilterOut,...r?{cursor:r}:{}},C=["folder","videos",e,r,t].filter(L=>!!L).join(":");return{url:a.urlBuilder(`{gateway}/v1/objects/${e}/members`,h),key:C,success:i,error:s,always:c}},pointsOfInterest(e,t,r,i,s){const c={query:"{limit:100}",cursor:t};return{url:a.urlBuilder(`{gateway}/v1/objects/${e}/pointsofinterest`,c),publicUrl:a.urlBuilder(`/api/objects/${e}/pointsofinterest`,c),key:`pointsofinterest:${e}${t?`:${t}`:""}`,success:r,error:i,always:s}},regionAlternatives(e,t,r,i){return{url:`/api/objects/videos/${e}/region-alternatives`,publicUrl:`/api/objects/videos/${e}/region-alternatives`,key:`video:regionAlternatives:${e}`,normalize:!1,success:t,error:r,always:i}}};export{q as V};
2
- //# sourceMappingURL=I8EoNmf8.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"I8EoNmf8.chunk.js","sources":["../../../../libs/shared/src/enums/RelatedVideosContext.ts","../../../../libs/shared/src/enums/VideoSortType.ts","../../../../libs/shared/src/utils/VideoSortHelper.ts","../../../../libs/shared/src/flight-requests/VideoRequests.ts"],"sourcesContent":["export enum RelatedVideosContext {\n Series = 'series',\n Playlist = 'playlist',\n Widget = 'widget',\n Folder = 'category',\n CategoryTree = 'categoryTree'\n}","export enum VideoSortType {\n Newest = 'newest',\n Oldest = 'oldest',\n RecentlyAdded = 'recently_added',\n AtoZ = 'atoz',\n ZtoA = 'ztoa',\n Series = 'series',\n ProductionYear = 'production_year'\n}","import { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\n\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\n\nconst getCacheKey = (userId: string, keyPrefix: string) => `${keyPrefix ? `${keyPrefix}:` : ''}video:sort:${userId}`;\n\nconst DEFAULT_SORT = VideoSortType.RecentlyAdded;\n\nexport const VideoSortHelper = {\n getValidSortTypeFromParam(sortParam: string): VideoSortType {\n if (Object.values(VideoSortType).includes(sortParam as VideoSortType))\n return sortParam as VideoSortType;\n\n return VideoSortType.Newest;\n },\n\n getOrSetSortType(\n userId: string,\n sortType?: VideoSortType,\n defaultSort?: VideoSortType,\n keyPrefix?: string\n ): VideoSortType {\n const cacheKey = getCacheKey(userId, keyPrefix);\n\n /**\n * If there is a sortType param, cache it.\n * If there isn't a sortType param and no value exists\n * in local storage, we need to set a default.\n */\n if (sortType || !LocalStorageHelper.cacheExists(cacheKey))\n LocalStorageHelper.cacheSet(cacheKey, sortType || defaultSort || DEFAULT_SORT);\n\n if (!sortType)\n sortType = LocalStorageHelper.cacheGet(cacheKey);\n\n return sortType;\n },\n\n getVideoSortParam(sortType?: VideoSortType): string {\n switch (sortType) {\n case VideoSortType.AtoZ:\n return 'orderby:name';\n \n case VideoSortType.ZtoA:\n return 'orderbydesc:name';\n \n case VideoSortType.Newest:\n return 'orderbydesc:datecreated';\n \n case VideoSortType.Oldest:\n return 'orderby:datecreated';\n \n case VideoSortType.RecentlyAdded:\n return 'orderbydesc:timestamp';\n \n case VideoSortType.Series:\n return 'orderby:seriessort';\n\n case VideoSortType.ProductionYear:\n return 'orderbydesc:productionyear';\n \n default:\n return;\n }\n }\n};","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Xhr } from 'libs/common/backbone/interfaces/Xhr';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { PublicWithStatement, SharedWithStatements } from 'libs/shared/constants/WithStatements';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionFilterOption } from 'libs/shared/enums/PermissionFilterOption';\nimport { RelatedVideosContext } from 'libs/shared/enums/RelatedVideosContext';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { PointOfInterestCollection, UpdateVideoRequest, Video, VideoCollection } from 'libs/shared/interfaces';\nimport { RegionAlternative } from 'libs/shared/interfaces/models/RegionAlternative';\nimport { VideoSortHelper } from 'libs/shared/utils/VideoSortHelper';\n\nconst endpoints = {\n sharedVideo: (id: string, shareId: string) => UrlHelper.urlBuilder(`/api/objects/${id}`, {\n shareId,\n query: SharedWithStatements.VIDEO\n }),\n\n publicVideo: (id: string, shareId?: string) => UrlHelper.urlBuilder(`/api/objects/${id}`, {\n // Query statement here is coupled with ClickView.Lite.Common\\Services\\OpenGraph\\OpenGraphService.cs\n // in lite. If you update this, please update both.\n query: 'thumbnail,_canBeConsumed,series,season,_rating,libraries{typeId:[17]}',\n permissionFilterOption: PermissionFilterOption.StripMetadata,\n shareId\n }),\n\n getVideosById: (ids: string[]) => {\n return UrlHelper.urlBuilder('{gateway}/v1/objects', {\n 'query.video': SharedWithStatements.VIDEO_COLLECTION,\n 'query.clip': SharedWithStatements.CLIP_COLLECTION,\n 'query.interactive': SharedWithStatements.INTERACTIVE_COLLECTION,\n 'id': ids\n });\n },\n\n relatedVideos: (options: {\n videoId: string;\n context?: RelatedVideosContext;\n collectionId?: string;\n moviesAndTv?: boolean;\n limit: number;\n }) => {\n const { videoId, context, collectionId, moviesAndTv, limit } = options;\n\n const params: HashObject = {\n videoId,\n limit,\n query: SharedWithStatements.VIDEO_COLLECTION\n };\n\n if (context) {\n if (context === RelatedVideosContext.Widget) {\n params['context.widgetId'] = collectionId;\n } else {\n params['context.collectionType'] = context;\n params['context.collectionId'] = collectionId;\n }\n }\n\n if (moviesAndTv)\n params['context.moviesAndTv'] = true;\n\n return UrlHelper.urlBuilder('{gateway}/v1/suggestions/related-videos', params);\n }\n};\n\nexport const VideoRequests = {\n video(id: string, permissionFilterOption?: PermissionFilterOption): Flight.PublicRequest {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${id}`, {\n query: SharedWithStatements.VIDEO,\n permissionFilterOption\n }),\n publicUrl: UrlHelper.urlBuilder(`/api/objects/${id}`, {\n query: PublicWithStatement.VIDEO,\n permissionFilterOption\n }),\n key: `videos:${id}:${permissionFilterOption}`\n };\n },\n\n publicVideo(\n id: string,\n shareId?: string,\n success?: (video: Video) => void,\n error?: (xhr: Xhr) => void\n ): Flight.Request {\n return {\n url: endpoints.publicVideo(id, shareId),\n key: `videos:${id}:public:${shareId}`,\n bootstrapName: `shared:object:${id}`,\n success,\n error\n };\n },\n\n sharedVideo(\n id: string,\n shareId: string,\n success?: (video: Video) => void,\n error?: (xhr: Xhr) => void\n ): Flight.Request {\n return {\n url: endpoints.sharedVideo(id, shareId),\n key: `shared:video:${id}`,\n success,\n error\n };\n },\n\n myVideos(userId: string, cursor: string): Flight.Request {\n const { VIDEO_COLLECTION, CLIP_COLLECTION, INTERACTIVE } = SharedWithStatements;\n\n const videoQuery = `videos[${VIDEO_COLLECTION}]{libraries.typeid:${MasterType.WorkspaceCollection}}`;\n const clipQuery = `clips[${CLIP_COLLECTION}]`;\n const interactiveQuery = `interactives[${INTERACTIVE}]{status:[${CurationStatus.Published},${CurationStatus.Draft}]}`;\n\n const params: HashObject = {\n query: `(${videoQuery}|${clipQuery}|${interactiveQuery}){orderbydesc:id}`,\n permissionFilterOption: PermissionFilterOption.StripMetadata\n };\n\n if (cursor)\n params.cursor = cursor;\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${userId}/members`, params),\n key: `my:videos:${cursor}`\n };\n },\n\n videos(ids: string[], success?: (videos: Video[]) => void): Flight.Request {\n return {\n url: endpoints.getVideosById(ids),\n key: `videos:by:id:${ids.join(',')}`,\n success\n };\n },\n\n watchHistoryVideos(\n ids: string[],\n success?: (videos: Video[]) => void\n ): Flight.Request {\n return {\n url: endpoints.getVideosById(ids),\n key: `watch:history:videos:by:id:${ids.join(',')}`,\n success\n };\n },\n\n updateVideo(\n id: string,\n data: UpdateVideoRequest,\n success?: () => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n key: `update:video:${id}`,\n url: `{gateway}/v1/objects/${id}`,\n type: HttpVerbs.PUT,\n data,\n success,\n error,\n always\n };\n },\n\n /**\n * This is simply an example to show the prototype for useVideoMixin\n * eventually there will be endpoints in domain that let us fetch members\n * without fetching the objects properties, so we can fetch stuff like\n * hasInteractives and isFavourited as subsequent calls\n */\n videoRatings(ids: string[], namespace?: string): Flight.Request {\n const params = ids.map(i => `id=${i}`);\n\n if (!params.length)\n return;\n\n return {\n url: `/api/domain/v2/objects?query=rating&${params.join('&')}`,\n key: `video:ratings:by:id:${ids.join(',')}`,\n normalizeOptions: {\n namespace\n }\n };\n },\n\n videoMixinAssocs(ids: string[], namespace?: string): Flight.PublicRequest {\n const params = ids.map(i => `id=${i}`);\n\n if (!params.length)\n return;\n\n /**\n * IMPORTANT!\n * \n * This request is used for BOTH clips and videos. This means these requests will fail if you\n * add assocs in the future that are not supported for both object types. If you find yourself in this\n * case, what you should do is:\n * \n * 1. Consider whether clips should support the assoc that you're hydrating for videos. In most cases,\n * I think they should, as we want clips and videos to basically support the same fields and metadata.\n * 2. If the above is false or can't be done right now, you will need to create a separate request for clips\n * and update the logic in useVideoMixin to handle this.\n */\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/objects', {\n query: 'interactives{limit:100},resources{limit:100},links{limit:100},_hasCurriculumLinks',\n id: ids\n }),\n publicUrl: UrlHelper.urlBuilder(`/api/objects`, {\n query: 'interactives{limit:100},resources{limit:100},links{limit:100},_hasCurriculumLinks',\n id: ids\n }),\n /**\n * We are intentionally NOT sorting the IDs here. This is because `useVideoMixin` wants to provide\n * the IDs in their original order so that the cache key here doesn't change for subsequent calls.\n * \n * Here is an example of a problem that would occur if we were sorting: say we search for something,\n * and load the first page of 25 results. The videos and clips here would have their IDs sorted in the cache\n * key, then fetched. Then, we scrolled down and fetched the next 25, leading to 50 IDs in the array. If we\n * sort the IDs in the key, the keys would change from the first request, leading to all of the videos/clips\n * from the first request being fetched a second time unnecessarily. Every time you'd fetch a new page, you'd\n * be making multiple unnecessary API calls.\n * \n * TL;DR: Don't sort the IDs here, `useVideoMixin` will handle that.\n */\n key: `video:mixin:assocs:${ids.join(',')}`,\n normalizeOptions: {\n namespace\n }\n };\n },\n\n getRestrictions(videoIds: string[]): Flight.Request {\n const sortedIds = videoIds.slice().sort();\n\n return {\n url: '/api/domain/v1/restrictedobjects'\n + `?objectTypeId=${MasterType.Video}${sortedIds.map(id => `&objectId=${id}`).join('')}`,\n key: `restrictions:${sortedIds.join(',')}`,\n normalizeOptions: {\n namespace: 'domain',\n idAttribute: 'objectId'\n }\n };\n },\n\n delete(videoId: string, success?: () => void, error?: () => void): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${videoId}`,\n key: `delete:video:${videoId}`,\n type: HttpVerbs.DELETE,\n success,\n error,\n invalidationKeys: [ 'videos', 'search' ]\n };\n },\n\n deleteBulk(\n videoId: string[],\n libraryId: string,\n categoryId: string,\n success?: () => void,\n error?: () => void\n ): Flight.Request {\n const videoIds = videoId.map(id => `videoIds=${id}`).join('&');\n const params = [\n `categoryId=${categoryId}`,\n `${videoIds}`\n ].join('&');\n\n return {\n url: `/api/domain/v1/libraries/${libraryId}/videos?${params}`,\n key: `delete:bulk:video:${videoId.join(':')}:${libraryId}:${categoryId}`,\n type: HttpVerbs.DELETE,\n success,\n error,\n invalidationKeys: [ 'videos', 'search' ]\n };\n },\n\n relatedVideos(options: {\n videoId: string;\n context?: RelatedVideosContext;\n collectionId?: string;\n moviesAndTv?: boolean;\n /**\n * This limit is intentionall not in the key. See useGetRelatedVideos for an explanation\n */\n limit: number;\n }): Flight.Request {\n const { videoId, context, collectionId, moviesAndTv } = options;\n\n return {\n url: endpoints.relatedVideos(options),\n key: `related:videos:${videoId}:${context}:${collectionId}:${moviesAndTv}`\n };\n },\n\n collectionVideos(\n collectionId: string,\n sort?: VideoSortType,\n cursor?: string,\n success?: (data: VideoCollection) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n const sortFilter = VideoSortHelper.getVideoSortParam(sort);\n const { VIDEO_COLLECTION, CLIP_COLLECTION, INTERACTIVE } = SharedWithStatements;\n\n const videoQuery = `videos[${VIDEO_COLLECTION}]`;\n const clipQuery = `clips[${CLIP_COLLECTION}]`;\n const interactiveQuery = `interactives[${INTERACTIVE}]{status:[${CurationStatus.Published},${CurationStatus.Draft}]}`;\n\n const params: HashObject = {\n query: `(${videoQuery}|${clipQuery}|${interactiveQuery})${sortFilter ? `{${sortFilter}}` : ''}`,\n permissionFilterOption: PermissionFilterOption.FilterOut,\n ...(cursor ? { cursor } : {})\n };\n\n const key = [ 'folder', 'videos', collectionId, cursor, sort ].filter(k => !!k).join(':');\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${collectionId}/members`, params),\n key,\n success,\n error,\n always\n };\n },\n\n pointsOfInterest(\n videoId: string,\n cursor?: string,\n success?: (data: PointOfInterestCollection) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.PublicRequest {\n const queryStringObj = { query: '{limit:100}', cursor };\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${videoId}/pointsofinterest`, queryStringObj),\n publicUrl: UrlHelper.urlBuilder(`/api/objects/${videoId}/pointsofinterest`, queryStringObj),\n key: `pointsofinterest:${videoId}${cursor ? `:${cursor}` : ''}`,\n success,\n error,\n always\n };\n },\n\n regionAlternatives(\n videoId: string,\n success?: (data: RegionAlternative[]) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.PublicRequest {\n return {\n url: `/api/objects/videos/${videoId}/region-alternatives`,\n publicUrl: `/api/objects/videos/${videoId}/region-alternatives`,\n key: `video:regionAlternatives:${videoId}`,\n normalize: false,\n success,\n error,\n always\n };\n }\n};\n"],"names":["RelatedVideosContext","VideoSortType","getCacheKey","userId","keyPrefix","DEFAULT_SORT","VideoSortHelper","sortParam","sortType","defaultSort","cacheKey","LocalStorageHelper","endpoints","id","shareId","UrlHelper","SharedWithStatements","PermissionFilterOption","ids","options","videoId","context","collectionId","moviesAndTv","limit","params","VideoRequests","permissionFilterOption","PublicWithStatement","success","error","cursor","VIDEO_COLLECTION","CLIP_COLLECTION","INTERACTIVE","videoQuery","MasterType","clipQuery","interactiveQuery","CurationStatus","data","always","HttpVerbs","namespace","videoIds","sortedIds","libraryId","categoryId","sort","sortFilter","key","k","queryStringObj"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{n as l,aX as r,j as s,G as x,c as g,aY as m,T as n,d as o,W as i,X as c,l as u,bP as d}from"./app-DfSv_-O3.js";const j="_logo_15b07_1",h={logo:j},e="streamableVideos.signInPopup",b=g.encloseNamespace(e);function N(t){const a=l.getHref(r.getCurrentRoute().appLink),p=a!=="/"?{redirectUrl:a}:{};return s.jsxs(x,{title:b("signInHeading"),hideTitle:!0,closePopup:t.closePopup,bodyClassName:"p-5",children:[s.jsx("button",{className:"btn-close position-absolute top-0 end-0 p-3",onClick:t.closePopup}),s.jsx("div",{className:`${h.logo} position-absolute top-0 start-0 m-3`,children:s.jsx(m,{})}),s.jsx("h1",{className:"h2 text-center",children:s.jsx(n,{namespace:e,phrase:"signInHeading"})}),s.jsx("p",{className:"text-center mb-3",children:s.jsx(n,{namespace:e,phrase:"signInDescription"})}),s.jsxs(o,{className:"mt-3 btn btn-dark w-100",appLink:{application:c.DEFAULT,action:i.Default.CHALLENGE,params:p},children:[s.jsx(u,{svg:d}),s.jsx("span",{className:"ms-1",children:s.jsx(n,{namespace:e,phrase:"signInButton"})})]}),s.jsx(o,{className:"d-flex justify-content-center align-items-center mt-3 text-info",appLink:{application:c.DEFAULT,action:i.Default.CONTACT_US_POPUP},children:s.jsx(n,{namespace:e,phrase:"contactUsLink"})})]})}export{N as SignInPopupView};
2
- //# sourceMappingURL=Im8afRMN.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Im8afRMN.chunk.js","sources":["../../src/apps/videos/views/sign-in-popup/SignInPopupView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Popup, PopupProps } from 'libs/shared/components/popup/Popup';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { NewWindowSvg } from 'libs/shared/images/svg/actions/NewWindowSvg';\nimport { ContextService } from 'libs/shared/services/ContextService';\n\nimport { StreamableIconLogo } from 'shared/components/streamable-logo/StreamableLogo';\nimport { Actions } from 'shared/constants/StreamableActions';\nimport { AppChannels } from 'shared/constants/StreamableRadioChannels';\n\nimport styles from './sign-in-popup.module.scss';\n\nconst namespace = 'streamableVideos.signInPopup';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface SignInPopupViewProps extends PopupProps { }\n\nexport function SignInPopupView(props: SignInPopupViewProps) {\n const redirectUrl = Core.AppLinkHelper.getHref(ContextService.getCurrentRoute().appLink);\n const params = redirectUrl !== '/' ? { redirectUrl } : {};\n\n return (\n <Popup\n title={getPhrase('signInHeading')}\n hideTitle\n closePopup={props.closePopup}\n bodyClassName='p-5'\n >\n <button className='btn-close position-absolute top-0 end-0 p-3' onClick={props.closePopup} />\n <div className={`${styles.logo} position-absolute top-0 start-0 m-3`}>\n <StreamableIconLogo />\n </div>\n <h1 className='h2 text-center'><Text namespace={namespace} phrase='signInHeading' /></h1>\n <p className='text-center mb-3'><Text namespace={namespace} phrase='signInDescription' /></p>\n <AppLink\n className='mt-3 btn btn-dark w-100'\n appLink={{\n application: AppChannels.DEFAULT,\n action: Actions.Default.CHALLENGE,\n params\n }}\n >\n <SvgContainer svg={NewWindowSvg} />\n <span className='ms-1'>\n <Text namespace={namespace} phrase='signInButton' />\n </span>\n </AppLink>\n <AppLink\n className='d-flex justify-content-center align-items-center mt-3 text-info'\n appLink={{\n application: AppChannels.DEFAULT,\n action: Actions.Default.CONTACT_US_POPUP\n }}\n >\n <Text namespace={namespace} phrase='contactUsLink' />\n </AppLink>\n </Popup>\n );\n}"],"names":["namespace","getPhrase","LanguageService","SignInPopupView","props","redirectUrl","Core.AppLinkHelper","ContextService","params","jsxs","Popup","jsx","styles","StreamableIconLogo","Text","AppLink","AppChannels","Actions","SvgContainer","NewWindowSvg"],"mappings":"yJAkBMA,EAAY,+BACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAIrD,SAASG,EAAgBC,EAA6B,CAC3D,MAAMC,EAAcC,EAAmB,QAAQC,EAAe,gBAAA,EAAkB,OAAO,EACjFC,EAASH,IAAgB,IAAM,CAAE,YAAAA,CAAA,EAAgB,CAAA,EAEvD,OACEI,EAAAA,KAACC,EAAA,CACC,MAAOT,EAAU,eAAe,EAChC,UAAS,GACT,WAAYG,EAAM,WAClB,cAAc,MAEd,SAAA,CAAAO,EAAAA,IAAC,SAAA,CAAO,UAAU,8CAA8C,QAASP,EAAM,WAAY,EAC3FO,EAAAA,IAAC,OAAI,UAAW,GAAGC,EAAO,IAAI,uCAC5B,SAAAD,EAAAA,IAACE,EAAA,CAAA,CAAmB,CAAA,CACtB,EACAF,EAAAA,IAAC,MAAG,UAAU,iBAAiB,eAACG,EAAA,CAAK,UAAAd,EAAsB,OAAO,eAAA,CAAgB,CAAA,CAAE,EACpFW,EAAAA,IAAC,KAAE,UAAU,mBAAmB,eAACG,EAAA,CAAK,UAAAd,EAAsB,OAAO,mBAAA,CAAoB,CAAA,CAAE,EACzFS,EAAAA,KAACM,EAAA,CACC,UAAU,0BACV,QAAS,CACP,YAAaC,EAAY,QACzB,OAAQC,EAAQ,QAAQ,UACxB,OAAAT,CAAA,EAGF,SAAA,CAAAG,EAAAA,IAACO,EAAA,CAAa,IAAKC,CAAA,CAAc,EACjCR,EAAAA,IAAC,QAAK,UAAU,OACd,eAACG,EAAA,CAAK,UAAAd,EAAsB,OAAO,cAAA,CAAe,CAAA,CACpD,CAAA,CAAA,CAAA,EAEFW,EAAAA,IAACI,EAAA,CACC,UAAU,kEACV,QAAS,CACP,YAAaC,EAAY,QACzB,OAAQC,EAAQ,QAAQ,gBAAA,EAG1B,SAAAN,EAAAA,IAACG,EAAA,CAAK,UAAAd,EAAsB,OAAO,eAAA,CAAgB,CAAA,CAAA,CACrD,CAAA,CAAA,CAGN"}
@@ -1,2 +0,0 @@
1
- import{bY as p,c as j,j as a,d as z,l as A,m as P,ai as g,cC as B,D as r,by as H,z as C,bb as f,T as W,F as N,u as U}from"./app-DfSv_-O3.js";import{C as R}from"./DwU9lZgg.chunk.js";import{G}from"./BeTQIGnj.chunk.js";import{A as O}from"./CZLZ0bbA.chunk.js";import{C as Y}from"./DBp0J6X9.chunk.js";import{L as F}from"./C-7yn3rc.chunk.js";import{g as q,B as J}from"./BBnDr_iy.chunk.js";import{I as $}from"./BQH1xd9z.chunk.js";const w={renderInPortalIfExists(e,t){return t?p.createPortal(e,t):e}},M="shared.backButton";y.defaultProps={color:"black",extraClasses:""};function y(e){const{backToName:t,appLink:i,color:l,extraClasses:d,textShadow:u}={textShadow:!0,...e},m=t?j.getPhrase(M,"backTo",{backToName:t}):j.getPhrase(M,"back"),n=l==="black"?"":"text-white",c=u?"text-shadow":"";return a.jsxs(z,{appLink:i,className:`d-inline-flex align-items-center h5 mb-0 ${d} ${n} ${c}`,children:[a.jsx(A,{svg:Y,size:P.Medium}),a.jsx("span",{className:"ms-1",children:m})]})}const K="_bannerContent_168u8_1",Q="_actionsContainer_168u8_9",V="_bannerContentWithLogo_168u8_18",X="_container_168u8_22",Z="_logoContainer_168u8_26",ee="_logoContainerLeft_168u8_37",ae="_specialEventContainer_168u8_44",ne="_headingLarge_168u8_68",te="_heading_168u8_68",s={bannerContent:K,actionsContainer:Q,bannerContentWithLogo:V,container:X,logoContainer:Z,logoContainerLeft:ee,specialEventContainer:ae,headingLarge:ne,heading:te},oe=`${$[f.Banners].width}:${$[f.Banners].height}`,se=1200,re=1920;function ie(){return U().xxl?re:se}function le(e){return e.length<160?"h1":s.headingLarge}const ce="shared.bannerHeader",be=g.memo(function(e){var D,L,_,k;const{heading:t,banner:i,imageCdnUrl:l,actions:d,sortComponent:u,blockColourClass:m,specialEvent:n}=e,c=g.useContext(B),v=ie(),S=g.useMemo(()=>{if(!n||e.showComingSoon)return!1;const o=r.format(new Date,"YYYY-MM-DD");return n.endDate?n.startDate<=o&&n.endDate>=o:n.startDate===o},[n]);function I(o){return o.endDate?r.isSame(o.startDate,o.endDate,"month")?r.format(o.startDate,"MMMM"):`${r.format(o.startDate,"MMM")} - ${r.format(o.endDate,"MMM")}`:r.format(o.startDate,"MMMM")}const T=e.imageOptions||{width:v,ratio:oe,resizeType:H.Cover},x=!!i&&!!l&&C.createBannerUrl(i,{fallbackBaseUrl:l,fallbackCategoryName:t,type:f.Banners},T),h={className:`banner banner-header ${e.bannerClassName}`,style:x?{backgroundImage:`url('${x}')`}:{}};!i&&m&&(delete h.style,h.className+=` ${m}`);const b=e.detailsComponent,E=q(e.heading,J);return w.renderInPortalIfExists(a.jsx("header",{...h,children:a.jsxs("div",{className:`container ${s.container} position-relative inner-banner`,children:[e.backButtonAppLink&&a.jsx("div",{className:"pt-3",children:a.jsx(y,{appLink:e.backButtonAppLink,backToName:e.backButtonText,extraClasses:e.backButtonClasses,color:"white"})}),a.jsxs("div",{className:`${e.alignLogoLeft?"position-absolute top-50 start-0 translate-middle-y w-100 ps-4":`${s.bannerContent} px-2 ${(D=e.logo)!=null&&D.url?s.bannerContentWithLogo:""}`}`,children:[!!n&&a.jsx("div",{className:`position-relative ${s.specialEventContainer}`,children:a.jsx(G,{body:{type:n.endDate?"range":"day",text:n.endDate?`${r.format(n.startDate,"DD")}-${r.format(n.endDate,"DD")}`:r.format(n.startDate,"DD")},month:I(n),theme:e.calendarTheme})}),a.jsxs("div",{children:[S&&a.jsx("div",{className:"rounded-pill py-1 px-2 my-1 me-1 fw-semibold bg-light-blue lh-1 d-inline-block",children:a.jsx(W,{namespace:ce,phrase:"onToday"})}),e.showComingSoon&&a.jsx(R,{className:"pe-2 fw-semibold mb-1 rounded-pill justify-content-start text-nowrap"}),a.jsxs("div",{className:"d-flex align-items-center",children:[e.alignLogoLeft&&((L=e.logo)==null?void 0:L.url)&&a.jsx("div",{className:`${s.logoContainerLeft} d-none d-md-block rounded-circle overflow-hidden me-3 ${E}`,children:a.jsx(F,{src:C.createUrl((_=e.logo)==null?void 0:_.url,{size:N.Medium}),style:{backgroundColor:e.logoBgColour}})}),a.jsxs("h1",{className:`text-white text-shadow pe-3 position-static ${s.heading} ${le(t)} ${e.alignLogoLeft?"w-50":""}`,children:[t,b&&a.jsx(b,{})]})]})]}),!!d&&a.jsx("div",{className:s.actionsContainer,children:a.jsx(O,{actions:d,sortComponent:u,actionsDropdownClassName:e.actionsDropdownClassName})})]}),!e.alignLogoLeft&&!!((k=e.logo)!=null&&k.url)&&a.jsx("div",{className:s.logoContainer,children:a.jsx("img",{src:C.createUrl(e.logo.url,{size:N.Medium}),className:"rounded-circle"})})]})}),c==null?void 0:c.container)},(e,t)=>{var i,l;return e.actions===t.actions&&e.heading===t.heading&&((i=e.logo)==null?void 0:i.url)===((l=t.logo)==null?void 0:l.url)});function De(){const e=g.useContext(B);return w.renderInPortalIfExists(a.jsx("div",{className:`partial-banner partial-loading-background ${s.banner}`}),e==null?void 0:e.container)}export{be as B,De as P};
2
- //# sourceMappingURL=N_QgBckB.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"N_QgBckB.chunk.js","sources":["../../../../libs/common/src/react/utils/PortalHelper.ts","../../../../libs/shared/src/components/back-button/BackButton.tsx","../../../../libs/shared/src/components/banner-header/BannerHeader.tsx"],"sourcesContent":["import React from 'react';\nimport { createPortal } from 'react-dom';\n\nexport const PortalHelper = {\n renderInPortalIfExists(component: React.ReactElement, portalContainer: Element | null): React.ReactElement {\n if (portalContainer)\n return createPortal(component, portalContainer);\n\n return component;\n }\n};","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { ChevronLeftSvg } from 'libs/shared/images/svg/arrows/ChevronLeftSvg';\n\n\nconst namespace = 'shared.backButton';\n\ninterface BackButtonProps {\n appLink: Core.AppLink;\n backToName?: string;\n color?: 'black' | 'white';\n extraClasses?: string;\n /**\n * Whether or not the button text has a text shadow. Defaults to true\n */\n textShadow?: boolean;\n}\n\nBackButton.defaultProps = {\n color: 'black',\n extraClasses: ''\n};\n\nexport function BackButton(props: BackButtonProps): React.ReactElement {\n const { backToName, appLink, color, extraClasses, textShadow } = {\n textShadow: true,\n ...props\n };\n\n const backPhrase = backToName\n ? LanguageService.getPhrase(namespace, 'backTo', { backToName })\n : LanguageService.getPhrase(namespace, 'back');\n\n const colorClass = color === 'black' ? '' : 'text-white';\n const textShadowClass = textShadow ? 'text-shadow' : '';\n\n return (\n <AppLink\n appLink={appLink}\n className={`d-inline-flex align-items-center h5 mb-0 ${extraClasses} ${colorClass} ${textShadowClass}`}\n >\n <SvgContainer svg={ChevronLeftSvg} size={SvgContainerSize.Medium} />\n <span className='ms-1'>{backPhrase}</span>\n </AppLink>\n );\n}","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\nimport { PortalHelper } from 'libs/common/react/utils/PortalHelper';\n\nimport { ComingSoonTag } from 'libs/shared/apps/calendar/components/coming-soon-tag/ComingSoonTag';\nimport { GenericCalendarDate } from 'libs/shared/apps/calendar/components/generic-calendar-date/GenericCalendarDate';\nimport { CalendarTheme } from 'libs/shared/apps/calendar/interfaces/CalendarTheme';\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { BackButton } from 'libs/shared/components/back-button/BackButton';\nimport { LazyImage } from 'libs/shared/components/lazy-image/LazyImage';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { ImageMinDimensions } from 'libs/shared/constants/ImageSizes';\nimport { BannerPortalContext } from 'libs/shared/context/BannerPortalContext';\nimport { ImageSize, ImageType, ResizeType } from 'libs/shared/enums/Images';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Banner, CalendarEvent, Logo } from 'libs/shared/interfaces';\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\nimport { ImageHelper, ImageOptions } from 'libs/shared/utils/ImageHelper';\n\nimport styles from './banner-header.module.scss';\n\nconst RATIO = `${ImageMinDimensions[ImageType.Banners].width}:${ImageMinDimensions[ImageType.Banners].height}`;\nconst DEFAULT_WIDTH = 1200; // This is ImageSize.Large for a Banner.\nconst LARGE_SCREEN_WIDTH = 1920;\n\nfunction useGetImageWidth(): number {\n const breakpoints = useBreakpoints();\n\n if (breakpoints.xxl)\n return LARGE_SCREEN_WIDTH;\n\n return DEFAULT_WIDTH;\n}\n\nfunction getSizeClass(heading: string): string {\n if (heading.length < 160)\n return 'h1';\n\n return styles.headingLarge;\n}\n\ninterface BannerHeaderProps {\n heading: string;\n banner?: Banner;\n bannerClassName?: string;\n imageCdnUrl?: string;\n logo?: Logo;\n logoBgColour?: string;\n actions?: ActionOptions[];\n specialEvent?: CalendarEvent;\n backButtonAppLink?: Core.AppLink;\n backButtonText?: string;\n backButtonClasses?: string;\n sortComponent?: JSX.Element;\n blockColourClass?: string;\n actionsDropdownClassName?: string;\n detailsComponent?: () => React.ReactElement;\n imageOptions?: ImageOptions;\n showComingSoon?: boolean;\n alignLogoLeft?: boolean;\n calendarTheme?: CalendarTheme;\n}\n\nconst namespace = 'shared.bannerHeader';\n\nexport const BannerHeader = React.memo(function(props: React.PropsWithChildren<BannerHeaderProps>): React.ReactElement {\n const { heading, banner, imageCdnUrl, actions, sortComponent, blockColourClass, specialEvent } = props;\n\n const portalContainerContext = React.useContext(BannerPortalContext);\n\n const imageWidth = useGetImageWidth();\n\n const specialEventIsToday = React.useMemo(() => {\n if (!specialEvent || props.showComingSoon)\n return false;\n\n const today = DateHelper.format(new Date(), 'YYYY-MM-DD');\n\n if (!specialEvent.endDate)\n return specialEvent.startDate === today;\n\n return specialEvent.startDate <= today && specialEvent.endDate >= today;\n }, [specialEvent]);\n\n function getSpecialEventMonthText(specialEvent: CalendarEvent): string {\n if (!specialEvent.endDate)\n return DateHelper.format(specialEvent.startDate, 'MMMM');\n\n if (DateHelper.isSame(specialEvent.startDate, specialEvent.endDate, 'month'))\n return DateHelper.format(specialEvent.startDate, 'MMMM');\n\n return `${DateHelper.format(specialEvent.startDate, 'MMM')} - ${DateHelper.format(specialEvent.endDate, 'MMM')}`;\n }\n\n const imageOptions = props.imageOptions || {\n width: imageWidth,\n ratio: RATIO,\n resizeType: ResizeType.Cover\n };\n\n const url = !!banner && !!imageCdnUrl && ImageHelper.createBannerUrl(banner, {\n fallbackBaseUrl: imageCdnUrl,\n fallbackCategoryName: heading,\n type: ImageType.Banners\n }, imageOptions);\n\n const containerProps: React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement> = {\n className: `banner banner-header ${props.bannerClassName}`,\n style: url ? { backgroundImage: `url('${url}')` } : {}\n };\n\n if (!banner && blockColourClass) {\n delete containerProps.style;\n containerProps.className += ` ${blockColourClass}`;\n }\n\n const DetailsComponent = props.detailsComponent;\n\n const logoFallbackBgClassName = getBgColorClass(props.heading, BG_COLOUR_CLASS_NAMES);\n\n return PortalHelper.renderInPortalIfExists(\n // \"banner\" is used in playlists in Online. banner-header is used by all other projects\n <header {...containerProps}>\n <div className={`container ${styles.container} position-relative inner-banner`}>\n {props.backButtonAppLink && (\n <div className='pt-3'>\n <BackButton\n appLink={props.backButtonAppLink}\n backToName={props.backButtonText}\n extraClasses={props.backButtonClasses}\n color='white'\n />\n </div>\n )}\n \n <div className={`${props.alignLogoLeft ? 'position-absolute top-50 start-0 translate-middle-y w-100 ps-4' : `${styles.bannerContent} px-2 ${props.logo?.url ? styles.bannerContentWithLogo : ''}`}`}>\n {!!specialEvent && (\n <div className={`position-relative ${styles.specialEventContainer}`}>\n <GenericCalendarDate\n body={{\n type: specialEvent.endDate ? 'range' : 'day',\n text: specialEvent.endDate\n ? `${DateHelper.format(specialEvent.startDate, 'DD')}-${DateHelper.format(specialEvent.endDate, 'DD')}`\n : DateHelper.format(specialEvent.startDate, 'DD')\n }}\n month={getSpecialEventMonthText(specialEvent)}\n theme={props.calendarTheme}\n />\n </div>\n )}\n <div>\n {specialEventIsToday && (\n <div className='rounded-pill py-1 px-2 my-1 me-1 fw-semibold bg-light-blue lh-1 d-inline-block'>\n <Text namespace={namespace} phrase='onToday' />\n </div>\n )}\n {props.showComingSoon && (\n <ComingSoonTag className='pe-2 fw-semibold mb-1 rounded-pill justify-content-start text-nowrap' />\n )}\n <div className='d-flex align-items-center'>\n {props.alignLogoLeft && props.logo?.url &&\n <div className={`${styles.logoContainerLeft} d-none d-md-block rounded-circle overflow-hidden me-3 ${logoFallbackBgClassName}`}>\n <LazyImage\n src={ImageHelper.createUrl(props.logo?.url, { size: ImageSize.Medium })}\n style={{ backgroundColor: props.logoBgColour }}\n />\n </div>\n }\n <h1 className={`text-white text-shadow pe-3 position-static ${styles.heading} ${getSizeClass(heading)} ${props.alignLogoLeft ? 'w-50' : ''}`}>\n {heading}\n {DetailsComponent && <DetailsComponent />}\n </h1>\n </div>\n </div>\n {!!actions && (\n <div className={styles.actionsContainer}>\n <Actions\n actions={actions}\n sortComponent={sortComponent}\n actionsDropdownClassName={props.actionsDropdownClassName}\n />\n </div>\n )}\n </div>\n {!props.alignLogoLeft && !!props.logo?.url &&\n <div className={styles.logoContainer}>\n <img\n src={ImageHelper.createUrl(props.logo.url, { size: ImageSize.Medium })}\n className='rounded-circle'\n />\n </div>\n }\n </div>\n </header>,\n portalContainerContext?.container\n );\n}, (prevProps, nextProps): boolean => (\n prevProps.actions === nextProps.actions\n && prevProps.heading === nextProps.heading\n && prevProps.logo?.url === nextProps.logo?.url\n));\n\nexport function PartialBannerHeader(): JSX.Element {\n const portalContainerContext = React.useContext(BannerPortalContext);\n\n return PortalHelper.renderInPortalIfExists(\n <div className={`partial-banner partial-loading-background ${styles.banner}`} />,\n portalContainerContext?.container\n );\n}"],"names":["PortalHelper","component","portalContainer","createPortal","namespace","BackButton","props","backToName","appLink","color","extraClasses","textShadow","backPhrase","LanguageService","colorClass","textShadowClass","jsxs","AppLink","jsx","SvgContainer","ChevronLeftSvg","SvgContainerSize","RATIO","ImageMinDimensions","ImageType","DEFAULT_WIDTH","LARGE_SCREEN_WIDTH","useGetImageWidth","useBreakpoints","getSizeClass","heading","styles","BannerHeader","React.memo","banner","imageCdnUrl","actions","sortComponent","blockColourClass","specialEvent","portalContainerContext","React.useContext","BannerPortalContext","imageWidth","specialEventIsToday","React.useMemo","today","DateHelper","getSpecialEventMonthText","imageOptions","ResizeType","url","ImageHelper","containerProps","DetailsComponent","logoFallbackBgClassName","getBgColorClass","BG_COLOUR_CLASS_NAMES","_a","GenericCalendarDate","Text","ComingSoonTag","_b","LazyImage","_c","ImageSize","Actions","_d","prevProps","nextProps","PartialBannerHeader"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{j as t,ae as D,T as _,ai as c,bj as S,bf as h,bk as b,l as z,as as I,R as q,aX as p,O as E,bl as K,n as U,bm as Q,g as X,L as G,av as R}from"./app-DfSv_-O3.js";import{P as A,T as J}from"./DhWvZ3GP.chunk.js";import{D as V}from"./D3tziVkG.chunk.js";const P="search.filterActions";T.defaultProps={active:!1,className:""};function T(e){return t.jsxs("div",{className:`d-flex justify-content-between ${e.className}`,children:[e.active?t.jsx(D,{className:"text-secondary hover-text-underline cursor-pointer",onClick:e.onClickReset,children:t.jsx(_,{namespace:P,phrase:"reset"})}):t.jsx("div",{className:"invisible"}),t.jsx(D,{className:"info-link",onClick:e.onClickApply,children:t.jsx(_,{namespace:P,phrase:"apply"})})]})}const Y="_hideCaret_zki3y_1",Z="_filterMenu_zki3y_4",ee="_twoColumnsWidth_zki3y_8",te="_nestedCheckboxesWidth_zki3y_16",ie="_switchWidth_zki3y_19",ne="_moreFiltersWidth_zki3y_22",se="_svgContainer_zki3y_26",j={hideCaret:Y,filterMenu:Z,twoColumnsWidth:ee,nestedCheckboxesWidth:te,switchWidth:ie,moreFiltersWidth:ne,svgContainer:se};function ae(e){return h.displayTwoColumns(e)?j.twoColumnsWidth:e.id==="classification"?j.classificationWidth:h.displayTwoLayers(e)?j.nestedCheckboxesWidth:e.type==="switch"?j.switchWidth:""}H.defaultProps={hideCaret:!0};function H(e){const{state:s}=c.useContext(S),i=s[e.filter.id],n=e.filter.type==="dropdown",[x,g]=c.useState(e.filter.name),[C,l]=c.useState(!1),[d,f]=c.useState(i);c.useEffect(()=>{g(h.getLabel(e.filter,i)),f(i)},[e.filter,i==null?void 0:i.selection]);function F(m){f(m),n&&u(m)}function r(){var w;const m=(w=e.filter.options)==null?void 0:w.find(O=>O.default);f({active:!1,selection:m?[m]:[]})}function y(){u(),l(!1)}function u(m=d){h.applyFilter([e.filter],i,{[e.filter.id]:m},s.appLink)}function o(m){l(m),!(m||n)&&u()}const v=c.useMemo(()=>e.filter.customComponent?e.filter.customComponent:h.mapTypeToComponent(e.filter.type),[e.filter.type]),N="fw-semibold mx-1 btn d-flex align-items-center",a=e.hideCaret&&!n?j.hideCaret:"",k=ae(e.filter);return e.filter.type==="button"?t.jsx(v,{filter:e.filter,draftState:d,setDraftState:F}):t.jsxs(b,{onToggle:o,show:C,children:[t.jsxs(b.Toggle,{id:`filterButton-${e.filter.id}`,className:`${N} ${a}`,variant:i.active&&!n?"dark":"outline-dark",disabled:e.filter.disabled,children:[!!e.filter.icon&&t.jsx("div",{className:j.svgContainer,children:t.jsx(z,{svg:e.filter.icon})}),e.filter.labelPrefix," ",x]}),t.jsx(b.Menu,{children:t.jsxs("div",{className:`mx-1 ${j.filterMenu} ${k} ${n?"":"px-2 py-1"}`,children:[t.jsx(v,{filter:e.filter,draftState:d,setDraftState:F}),!n&&!e.filter.disabled&&t.jsx(T,{active:d.active,onClickReset:r,onClickApply:y})]})})]})}const le={getSetStateByKey(e,s,i){return n=>e(x=>{const g=I.isFunction(i)?i:I.useIdentity();return{...x,[s]:g(n,x)}})}};function M(e){return Object.keys(e).reduce((i,n)=>e[n].active?i+1:i,0)}function re(e){const{state:s}=c.useContext(S),i=s.moreFilters,[n,x]=c.useState(e.filter.name),[g,C]=c.useState(!1),[l,d]=c.useState(i),[f,F]=c.useState(M(i)),r=Object.keys(i).map(a=>`${a}:${i[a].active}`).join("-");c.useEffect(()=>{d(i),F(M(i))},[e.filter,r]),c.useEffect(()=>{x(f?`${e.filter.name} - ${f}`:e.filter.name)},[f]);function y(){const k=Object.keys(i).reduce((m,w)=>{var L;const $=(L=e.filter.filters.find(W=>W.id===w).options)==null?void 0:L.find(W=>W.default);return m[w]={active:!1,selection:$?[$]:[]},m},{});d(k)}function u(){v(),C(!1)}function o(a){C(a),!a&&v()}function v(){h.applyFilter(e.filter.filters,i,l,s.appLink)}const N=`fw-semibold ${j.hideCaret} mx-1 btn`;return t.jsxs(b,{onToggle:o,show:g,children:[t.jsx(b.Toggle,{id:e.filter.id,className:N,variant:f?"dark":"outline-dark",children:n}),t.jsx(b.Menu,{onClick:a=>a.stopPropagation(),children:t.jsxs("div",{className:`mx-1 ${j.moreFiltersWidth} ${e.filter.type!=="dropdown"?"px-2 py-1":""}`,children:[e.filter.filters.map(a=>{const k=a.customComponent?a.customComponent:h.mapTypeToComponent(a.type);return t.jsx("fieldset",{children:t.jsx(k,{filter:a,draftState:l[a.id],setDraftState:le.getSetStateByKey(d,a.id),isOnMoreFilters:!0})},a.id)}),t.jsx(T,{active:!!Object.keys(l).find(a=>l[a].active),onClickReset:y,onClickApply:u})]})})]})}const ce="_tagItem_165ya_1",B={tagItem:ce};function oe(e){var d,f,F;const{state:s}=q.useContext(S);if(!((d=e.filter)!=null&&d.id))return t.jsx(t.Fragment,{});const i=s[e.filter.id],{selection:n}=i,x=((F=(f=e.filter)==null?void 0:f.options)==null?void 0:F.filter(r=>!(n!=null&&n.find(y=>y.id===r.id))))??[];function g(r){let y=null,u=-1;if(n.find((o,v)=>{u>-1||o.id.toString()===r.id.toString()&&(u=v)}),u>=0){const o=[...n.slice(0,u),...n.slice(u+1)];y={active:!!o.length,selection:o}}else y={active:!0,selection:n.concat(r)};h.applyFilter([e.filter],i,{[e.filter.id]:y},s.appLink)}function C(){let r="mb-3";return l.length&&e.isFetching?r+=" mt-n1":!l.length&&!e.isFetching&&(r+=" d-none"),r}const l=[...n,...e.isFetching?[]:x];return t.jsx("div",{className:e.isFetching||l.length?"py-2":"",children:t.jsx("div",{className:C(),children:(!!l.length||e.isFetching)&&t.jsx(V,{collection:l,childComponent:r=>t.jsx(J,{...r,selectedItems:n,onClick:g}),staticChildren:e.isFetching?new Array(3).fill({component:()=>t.jsx(A,{tagClass:B.tagItem}),position:"end"}):[],partialLoadingComponent:()=>t.jsx("div",{className:"me-2",children:t.jsx(A,{tagClass:`${B.tagItem}`})})})})})}function de(e){const{state:s}=c.useContext(S),i=()=>{var g;const n=((g=p.getCurrentRoute().appLink)==null?void 0:g.params)??{},x=E.pick(n,["query",K]);U.trigger({...s.appLink,params:x})};return t.jsx(D,{onClick:i,className:`${e.alignLeft?"order-first":""} hover-text-underline cursor-pointer d-flex align-items-center mx-2`,children:t.jsx(_,{namespace:"search.resetButton",phrase:"reset"})})}const fe="_filtersContainer_1pjxc_9",ue={filtersContainer:fe};function ge(e){const{queryParams:s,appLink:i,hideHeading:n,isFetchingOptions:x,constantIndices:g=[]}=e,C=c.useMemo(()=>h.deriveInitialStateFromQuery(s,e.mainFilters,e.moreFilters,i),[s,x]),[l,d]=c.useReducer(Q,C);c.useEffect(()=>{E.isEqual(C,l)||(d({type:"update",payload:C}),e.analyticsOptions&&h.logFilterEvent(e.mainFilters,e.moreFilters,C,s.query,e.analyticsOptions))},[C]);const f=X.uniq([...h.getAppliedIndices(s,e._hasNewSearch),...g]),{mainFilters:F,moreFilters:r}=h.mixinDisabledFields(l,f,e.mainFilters,e.moreFilters),y=F.filter(o=>o.type!=="tag"),u=F.find(o=>o.type==="tag");return t.jsx(S.Provider,{value:{state:l,dispatch:d},children:t.jsx(G.Provider,{value:"search.searchFilters",children:t.jsxs("section",{children:[t.jsxs("div",{className:R("d-flex",!e.hideDivider&&"border-bottom pb-3 mb-3",e._hasNewSearch&&e.hideDivider&&"pb-3",e._hasNewSearch&&!e.hideDivider&&"border-gray-300"),children:[!n&&t.jsx("h2",{className:"h5 mb-0 d-inline-block pe-2 border-end d-flex align-items-center",children:t.jsx(_,{phrase:"heading"})}),t.jsxs("div",{className:R(`d-flex flex-wrap ${ue.filtersContainer}`,!n&&"ms-2"),children:[y.map(o=>t.jsx(H,{filter:o,hideCaret:e.hideCaret},o.id)),r&&t.jsx(re,{filter:r}),h.hasActiveFilters(s)&&!e.hideResetButton&&t.jsx(de,{mainFilters:e.mainFilters,moreFilters:e.moreFilters,currentQueryParam:s.query,analyticsOptions:e.analyticsOptions,alignLeft:e.alignResetButtonLeft})]})]}),t.jsx(oe,{filter:u,queryParams:s,isFetching:e.isFetchingOptions})]})})})}export{ge as S};
2
- //# sourceMappingURL=SnHtKbiQ.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SnHtKbiQ.chunk.js","sources":["../../../../libs/shared/src/apps/search/components/filter-actions/FilterActions.tsx","../../../../libs/shared/src/apps/search/components/filter-button/FilterButton.tsx","../../../../libs/shared/src/utils/StateHelper.ts","../../../../libs/shared/src/apps/search/components/filter-button/MoreFiltersButton.tsx","../../../../libs/shared/src/apps/search/components/filter-types/tag-filter/TagFilter.tsx","../../../../libs/shared/src/apps/search/components/reset-button/ResetButton.tsx","../../../../libs/shared/src/apps/search/components/search-filters/SearchFilters.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'search.filterActions';\n\ninterface FilterActionsProps {\n className?: string;\n onClickReset: () => void;\n onClickApply: () => void;\n active: boolean;\n}\n\nFilterActions.defaultProps = {\n active: false,\n className: ''\n};\n\nexport function FilterActions(props: FilterActionsProps): JSX.Element {\n return (\n <div className={`d-flex justify-content-between ${props.className}`}>\n {props.active ? (\n <DivButton className='text-secondary hover-text-underline cursor-pointer' onClick={props.onClickReset}>\n <Text namespace={namespace} phrase='reset' />\n </DivButton>\n ) : (\n <div className='invisible' />\n )}\n\n <DivButton className='info-link' onClick={props.onClickApply}>\n <Text namespace={namespace} phrase='apply' />\n </DivButton>\n </div>\n );\n}","import * as React from 'react';\nimport { Dropdown } from 'react-bootstrap';\n\nimport { FilterActions } from 'libs/shared/apps/search/components/filter-actions/FilterActions';\nimport { SearchFilter } from 'libs/shared/apps/search/interfaces';\nimport { FilterContext, FilterState } from 'libs/shared/apps/search/reducers';\nimport { FilterHelper } from 'libs/shared/apps/search/utils/FilterHelper';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\n\nimport styles from './filter-button.module.scss';\n\n/**\n * If your filter requires some customisations to the default width, add a use case here.\n */\nfunction getCustomWidthClass(filter: SearchFilter): string {\n if (FilterHelper.displayTwoColumns(filter))\n return styles.twoColumnsWidth;\n\n // Some classifications has long names, so we make them wider\n if (filter.id === 'classification')\n return styles.classificationWidth;\n \n if (FilterHelper.displayTwoLayers(filter))\n return styles.nestedCheckboxesWidth;\n\n if (filter.type === 'switch')\n return styles.switchWidth;\n\n return '';\n}\n\nFilterButton.defaultProps = {\n hideCaret: true\n};\n\ninterface FilterButtonProps {\n filter: SearchFilter;\n hideCaret?: boolean;\n}\n\nexport function FilterButton(props: FilterButtonProps): JSX.Element {\n const { state } = React.useContext(FilterContext);\n const currentFilterState = state[props.filter.id];\n\n const isDropdownFilter = props.filter.type === 'dropdown';\n\n const [ label, setLabel ] = React.useState(props.filter.name);\n const [ showDropdown, setShowDropdown ] = React.useState(false);\n const [ draftState, setDraftState ] = React.useState<FilterState>(currentFilterState);\n\n React.useEffect(() => {\n setLabel(FilterHelper.getLabel(props.filter, currentFilterState));\n setDraftState(currentFilterState);\n }, [ props.filter, currentFilterState?.selection ]);\n\n function onSelectItem(state: FilterState): void {\n setDraftState(state);\n\n if (isDropdownFilter)\n applyFilter(state);\n }\n\n function onClickReset(): void {\n const defaultOption = props.filter.options?.find(o => o.default);\n\n setDraftState({\n active: false,\n selection: defaultOption ? [defaultOption] : []\n });\n }\n\n function onClickApply(): void {\n applyFilter();\n setShowDropdown(false);\n }\n\n function applyFilter(newState: FilterState = draftState): void {\n FilterHelper.applyFilter(\n [props.filter],\n currentFilterState,\n { [props.filter.id]: newState },\n state.appLink\n );\n }\n\n function onToggleDropdown(isShowing: boolean): void {\n setShowDropdown(isShowing);\n\n if (isShowing || isDropdownFilter)\n return;\n\n // Apply the filter if the dropdown has been closed\n applyFilter();\n }\n\n const FilterComponent = React.useMemo(() => {\n return props.filter.customComponent\n ? props.filter.customComponent\n : FilterHelper.mapTypeToComponent(props.filter.type);\n }, [props.filter.type]);\n\n const baseClass = `fw-semibold mx-1 btn d-flex align-items-center`;\n const caretClass = props.hideCaret && !isDropdownFilter ? styles.hideCaret : '';\n const customWidthClass = getCustomWidthClass(props.filter);\n\n if (props.filter.type === 'button')\n return (\n <FilterComponent\n filter={props.filter}\n draftState={draftState}\n setDraftState={onSelectItem}\n />\n );\n\n return (\n <Dropdown onToggle={onToggleDropdown} show={showDropdown}>\n <Dropdown.Toggle\n id={`filterButton-${props.filter.id}`}\n className={`${baseClass} ${caretClass}`}\n variant={(currentFilterState.active && !isDropdownFilter) ? 'dark' : 'outline-dark'}\n disabled={props.filter.disabled}\n >\n {!!props.filter.icon && (\n <div className={styles.svgContainer}>\n <SvgContainer svg={props.filter.icon} />\n </div>\n )}\n {props.filter.labelPrefix} {label}\n </Dropdown.Toggle>\n\n <Dropdown.Menu>\n <div className={`mx-1 ${styles.filterMenu} ${customWidthClass} ${!isDropdownFilter ? 'px-2 py-1' : ''}`}>\n <FilterComponent\n filter={props.filter}\n draftState={draftState}\n setDraftState={onSelectItem}\n />\n\n {(!isDropdownFilter && !props.filter.disabled) && (\n <FilterActions\n active={draftState.active}\n onClickReset={onClickReset}\n onClickApply={onClickApply}\n />\n )}\n </div>\n </Dropdown.Menu>\n </Dropdown>\n );\n}\n","import { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nexport const StateHelper = {\n /**\n * Helper function to get the setState function for an individual key in a state object.\n * \n * @param setState React setState action\n * @param key Property within the state object we're updating\n * @param callback Optional callback to modify data before setting state. Uses identity fn by default.\n * \n * @returns Newly updated state object\n */\n getSetStateByKey<T extends HashObject>(\n setState: React.Dispatch<React.SetStateAction<T>>,\n key: keyof T,\n callback?: (data: any, state?: T) => T[keyof T]\n ): (data: any) => void {\n return (data: any) => setState(state => {\n const fn = FunctionHelper.isFunction(callback) ? callback : FunctionHelper.useIdentity<T>();\n return { ...state, [key]: fn(data, state) };\n });\n }\n};","import * as React from 'react';\nimport { Dropdown } from 'react-bootstrap';\n\nimport { FilterActions } from 'libs/shared/apps/search/components/filter-actions/FilterActions';\nimport { FilterIds, MoreFilters } from 'libs/shared/apps/search/interfaces';\nimport { DraftState, FilterContext, FilterStateHash } from 'libs/shared/apps/search/reducers';\nimport { FilterHelper } from 'libs/shared/apps/search/utils/FilterHelper';\nimport { StateHelper } from 'libs/shared/utils/StateHelper';\n\nimport styles from './filter-button.module.scss';\n\nfunction getTotalActiveFilters(currentState: FilterStateHash): number {\n const total = Object.keys(currentState).reduce((acc: number, key: FilterIds) => {\n return currentState[key].active\n ? acc + 1\n : acc;\n }, 0);\n\n return total;\n}\n\ninterface MoreFiltersButtonProps {\n filter: MoreFilters;\n}\n\nexport function MoreFiltersButton(props: MoreFiltersButtonProps): JSX.Element {\n const { state } = React.useContext(FilterContext);\n const currentFilterState = state.moreFilters;\n\n const [ label, setLabel ] = React.useState(props.filter.name);\n const [ showDropdown, setShowDropdown ] = React.useState(false);\n const [ draftState, setDraftState ] = React.useState<DraftState>(currentFilterState);\n const [ totalActiveFilters, setTotalActiveFilters ] = React.useState(getTotalActiveFilters(currentFilterState));\n\n const currentFilterStateKey = Object.keys(currentFilterState).map((id: FilterIds) => {\n return `${id}:${currentFilterState[id].active}`;\n }).join('-');\n\n React.useEffect(() => {\n setDraftState(currentFilterState);\n setTotalActiveFilters(getTotalActiveFilters(currentFilterState));\n }, [ props.filter, currentFilterStateKey ]);\n\n React.useEffect(() => {\n setLabel(totalActiveFilters ? `${props.filter.name} - ${totalActiveFilters}` : props.filter.name);\n }, [totalActiveFilters]);\n\n function onClickReset(): void {\n const filterIds = Object.keys(currentFilterState) as FilterIds[];\n\n const newState = filterIds.reduce((acc: DraftState, filterId) => {\n const filter = props.filter.filters.find(f => f.id === filterId);\n const defaultOption = filter.options?.find(o => o.default);\n\n acc[filterId] = {\n active: false,\n selection: defaultOption ? [defaultOption] : []\n };\n\n return acc;\n }, {});\n\n setDraftState(newState);\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 FilterHelper.applyFilter(\n props.filter.filters,\n currentFilterState,\n draftState,\n state.appLink\n );\n }\n\n const baseClass = `fw-semibold ${styles.hideCaret} mx-1 btn`;\n\n return (\n <Dropdown onToggle={onToggleDropdown} show={showDropdown}>\n <Dropdown.Toggle id={props.filter.id} className={baseClass} variant={totalActiveFilters ? 'dark' : 'outline-dark'}>\n {label}\n </Dropdown.Toggle>\n\n <Dropdown.Menu onClick={(e: React.MouseEvent) => e.stopPropagation()}>\n <div className={`mx-1 ${styles.moreFiltersWidth} ${props.filter.type !== 'dropdown' ? 'px-2 py-1' : ''}`}>\n {props.filter.filters.map(filter => {\n const FilterComponent = filter.customComponent\n ? filter.customComponent\n : FilterHelper.mapTypeToComponent(filter.type);\n\n return (\n <fieldset key={filter.id}>\n <FilterComponent\n filter={filter}\n draftState={draftState[filter.id]}\n setDraftState={StateHelper.getSetStateByKey(setDraftState, filter.id)}\n isOnMoreFilters\n />\n </fieldset>\n );\n })}\n\n <FilterActions\n active={!!Object.keys(draftState).find((key: FilterIds) => draftState[key].active)}\n onClickReset={onClickReset}\n onClickApply={onClickApply}\n />\n </div>\n </Dropdown.Menu>\n </Dropdown>\n );\n}","import React from 'react';\n\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { FilterOption, SearchFilter } from 'libs/shared/apps/search/interfaces';\nimport { FilterContext, FilterState } from 'libs/shared/apps/search/reducers';\nimport { FilterHelper } from 'libs/shared/apps/search/utils/FilterHelper';\nimport { PartialTagItem } from 'libs/shared/components/tags/PartialTagItem';\nimport { DynamicWidget } from 'libs/shared/components/widgets/dynamic-widget/DynamicWidget';\nimport { TagWidgetItem, TagWidgetItemProps } from 'libs/shared/components/widgets/items/tag-widget-item/TagWidgetItem';\n\nimport styles from './tag-filter.module.scss';\n\ninterface TagFilterProps {\n filter: SearchFilter;\n queryParams: HashObject;\n isFetching?: boolean;\n}\n\nexport function TagFilter(props: TagFilterProps): JSX.Element {\n const { state } = React.useContext(FilterContext);\n\n if (!props.filter?.id)\n return <></>;\n\n const currentFilterState = state[props.filter.id];\n\n const { selection: selections } = currentFilterState;\n\n const unappliedOptions = props.filter?.options?.filter(opt => {\n return !selections?.find(selection => selection.id === opt.id);\n }) ?? [];\n\n function onClickOption(option: FilterOption): void {\n let nextFilterState: FilterState = null;\n\n let indexOfItem: number = -1;\n\n // Find the index of the selected item if it's already selected\n selections.find((selection, i) => {\n if (indexOfItem > -1)\n return;\n\n if (selection.id.toString() !== option.id.toString())\n return;\n\n indexOfItem = i;\n });\n\n if (indexOfItem >= 0) {\n const newItems = [ ...selections.slice(0, indexOfItem), ...selections.slice(indexOfItem + 1) ];\n \n nextFilterState = {\n active: !!newItems.length,\n selection: newItems\n };\n } else {\n nextFilterState = {\n active: true,\n selection: selections.concat(option)\n };\n }\n\n FilterHelper.applyFilter(\n [props.filter],\n currentFilterState,\n { [props.filter.id]: nextFilterState },\n state.appLink\n );\n }\n\n function getContainerClass(): string {\n let className = 'mb-3';\n\n if (collection.length && props.isFetching)\n className += ' mt-n1';\n else if (!collection.length && !props.isFetching)\n className += ' d-none';\n\n return className;\n }\n\n const collection = [ ...selections, ...(props.isFetching ? [] : unappliedOptions) ];\n\n return (\n <div className={(props.isFetching || collection.length) ? 'py-2' : ''}>\n <div className={getContainerClass()}>\n {(!!collection.length || props.isFetching) && (\n <DynamicWidget\n collection={collection}\n childComponent={(props: TagWidgetItemProps) => (\n <TagWidgetItem\n {...props}\n selectedItems={selections}\n onClick={onClickOption}\n />\n )}\n staticChildren={props.isFetching\n ? new Array(3).fill({\n component: () => <PartialTagItem tagClass={styles.tagItem} />,\n position: 'end'\n })\n : []\n }\n partialLoadingComponent={() => (\n <div className='me-2'>\n <PartialTagItem tagClass={`${styles.tagItem}`} />\n </div>\n )}\n />\n )}\n </div>\n </div>\n );\n}","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { MoreFilters, SearchFilter } from 'libs/shared/apps/search/interfaces';\nimport { FilterContext } from 'libs/shared/apps/search/reducers';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PropsWithAnalyticsOptions } from 'libs/shared/interfaces';\nimport { ContextService } from 'libs/shared/services/ContextService';\n\nimport { SEARCH_CURRICULUM_CODE_PARAM } from '../../utils/SharedSearchHelper';\n\ntype ResetButtonProps = PropsWithAnalyticsOptions<{\n currentQueryParam: string;\n mainFilters: Array<SearchFilter>;\n moreFilters: MoreFilters;\n alignLeft?: boolean;\n}>;\n\nexport function ResetButton(props: ResetButtonProps): JSX.Element {\n const { state } = React.useContext(FilterContext);\n\n const onClickReset = () => {\n const currentParams = (ContextService.getCurrentRoute().appLink?.params ?? {}) as HashObject;\n const savedParams = ObjectHelper.pick(currentParams, [ 'query', SEARCH_CURRICULUM_CODE_PARAM ]);\n\n Core.AppLinkHelper.trigger({\n ...state.appLink,\n params: savedParams\n });\n };\n\n return (\n <DivButton\n onClick={onClickReset}\n className={`${props.alignLeft ? 'order-first' : ''} hover-text-underline cursor-pointer d-flex align-items-center mx-2`}\n >\n <Text namespace='search.resetButton' phrase='reset' />\n </DivButton>\n );\n}","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { FilterButton } from 'libs/shared/apps/search/components/filter-button/FilterButton';\nimport { MoreFiltersButton } from 'libs/shared/apps/search/components/filter-button/MoreFiltersButton';\nimport { TagFilter } from 'libs/shared/apps/search/components/filter-types/tag-filter/TagFilter';\nimport { ResetButton } from 'libs/shared/apps/search/components/reset-button/ResetButton';\nimport { MoreFilters, SearchFilter, SearchIndices } from 'libs/shared/apps/search/interfaces';\nimport { FilterContext, FilterReducer } from 'libs/shared/apps/search/reducers';\nimport { FilterHelper } from 'libs/shared/apps/search/utils/FilterHelper';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\n\nimport styles from './search-filters.module.scss';\n\ntype SearchFiltersProps = {\n queryParams: HashObject;\n mainFilters: SearchFilter[];\n appLink: Core.AppLink;\n moreFilters?: MoreFilters;\n isFetchingOptions?: boolean;\n constantIndices?: SearchIndices[];\n analyticsOptions?: AnalyticsOptions;\n\n hideHeading?: boolean;\n hideDivider?: boolean;\n hideResetButton?: boolean;\n alignResetButtonLeft?: boolean;\n hideCaret?: boolean;\n\n /**\n * Incremental changes flag for new search\n */\n _hasNewSearch?: boolean;\n};\n\nexport function SearchFilters(props: SearchFiltersProps): JSX.Element {\n const { queryParams, appLink, hideHeading, isFetchingOptions, constantIndices = []} = props;\n\n const newState = React.useMemo(() => {\n return FilterHelper.deriveInitialStateFromQuery(queryParams, props.mainFilters, props.moreFilters, appLink);\n }, [ queryParams, isFetchingOptions ]);\n\n const [ state, dispatch ] = React.useReducer(FilterReducer, newState);\n\n React.useEffect(() => {\n if (ObjectHelper.isEqual(newState, state))\n return;\n\n dispatch({\n type: 'update',\n payload: newState\n });\n\n if (props.analyticsOptions) {\n FilterHelper.logFilterEvent(\n props.mainFilters,\n props.moreFilters,\n newState,\n queryParams.query,\n props.analyticsOptions\n );\n }\n }, [newState]);\n\n const indices = ArrayHelper.uniq([\n ...FilterHelper.getAppliedIndices(queryParams, props._hasNewSearch),\n ...constantIndices\n ]);\n\n const { mainFilters, moreFilters } = FilterHelper.mixinDisabledFields(\n state,\n indices,\n props.mainFilters,\n props.moreFilters\n );\n\n // Separate the tag filter as it's rendered differently\n const mainFiltersWithoutTags = mainFilters.filter(f => f.type !== 'tag');\n const tagFilter = mainFilters.find(f => f.type === 'tag');\n\n return (\n <FilterContext.Provider value={{ state, dispatch }}>\n <LanguageNamespaceContext.Provider value='search.searchFilters'>\n <section>\n <div className={classNames(\n 'd-flex',\n !props.hideDivider && 'border-bottom pb-3 mb-3',\n (props._hasNewSearch && props.hideDivider && 'pb-3'),\n (props._hasNewSearch && !props.hideDivider && 'border-gray-300')\n )}>\n {!hideHeading && (\n <h2 className='h5 mb-0 d-inline-block pe-2 border-end d-flex align-items-center'>\n <Text phrase='heading' />\n </h2>\n )}\n\n <div className={classNames(`d-flex flex-wrap ${styles.filtersContainer}`, !hideHeading && 'ms-2')}>\n {mainFiltersWithoutTags.map(f => (\n <FilterButton key={f.id} filter={f} hideCaret={props.hideCaret} />\n ))}\n\n {moreFilters && <MoreFiltersButton filter={moreFilters} />}\n\n {FilterHelper.hasActiveFilters(queryParams) && !props.hideResetButton && (\n <ResetButton\n mainFilters={props.mainFilters}\n moreFilters={props.moreFilters}\n currentQueryParam={queryParams.query}\n analyticsOptions={props.analyticsOptions}\n alignLeft={props.alignResetButtonLeft}\n />\n )}\n </div>\n </div>\n \n <TagFilter\n filter={tagFilter}\n queryParams={queryParams}\n isFetching={props.isFetchingOptions}\n />\n </section>\n </LanguageNamespaceContext.Provider>\n </FilterContext.Provider>\n );\n}\n"],"names":["namespace","FilterActions","props","jsx","DivButton","Text","getCustomWidthClass","filter","FilterHelper","styles","FilterButton","state","React.useContext","FilterContext","currentFilterState","isDropdownFilter","label","setLabel","React.useState","showDropdown","setShowDropdown","draftState","setDraftState","React.useEffect","onSelectItem","applyFilter","onClickReset","defaultOption","_a","o","onClickApply","newState","onToggleDropdown","isShowing","FilterComponent","React.useMemo","baseClass","caretClass","customWidthClass","jsxs","Dropdown","SvgContainer","StateHelper","setState","key","callback","data","fn","FunctionHelper","getTotalActiveFilters","currentState","acc","MoreFiltersButton","totalActiveFilters","setTotalActiveFilters","currentFilterStateKey","id","filterId","f","e","TagFilter","React","Fragment","selections","unappliedOptions","_c","_b","opt","selection","onClickOption","option","nextFilterState","indexOfItem","i","newItems","getContainerClass","className","collection","DynamicWidget","TagWidgetItem","PartialTagItem","ResetButton","currentParams","ContextService","savedParams","ObjectHelper","SEARCH_CURRICULUM_CODE_PARAM","Core.AppLinkHelper","SearchFilters","queryParams","appLink","hideHeading","isFetchingOptions","constantIndices","dispatch","React.useReducer","FilterReducer","indices","ArrayHelper","mainFilters","moreFilters","mainFiltersWithoutTags","tagFilter","LanguageNamespaceContext","classNames"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{ai as a,j as t,f as c,l as o,m as f}from"./app-DfSv_-O3.js";import{u as l}from"./C36-3UWl.chunk.js";import{C as u}from"./DUwkrIwb.chunk.js";const x="_container_1kfhe_1",h="_spinner_1kfhe_4",r={container:x,spinner:h};m.defaultProps={fetchOnScroll:!1};function m(e){const[s,i]=l();return a.useEffect(()=>{var n;e.fetchOnScroll&&(!i||e.isFetching||(n=e.fetchNext)==null||n.call(e,e.nextCursor))},[i,e.isFetching]),t.jsx("div",{className:`p-3 text-center ${r.container}`,children:e.isFetching?t.jsx(c,{as:"span",animation:"border",role:"status",className:r.spinner}):t.jsx("div",{ref:s,children:t.jsx(o,{svg:u,className:"svg-container cursor-pointer",size:f.Large,onClick:()=>{var n;return(n=e.fetchNext)==null?void 0:n.call(e,e.nextCursor)}})})})}export{m as I};
2
- //# sourceMappingURL=U-eF69sj.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"U-eF69sj.chunk.js","sources":["../../../../libs/shared/src/components/infinite-scroll-footer/InfiniteScrollFooter.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Spinner } from 'react-bootstrap';\nimport { useInView } from 'react-intersection-observer';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { ChevronDownSvg } from 'libs/shared/images/svg/arrows/ChevronDownSvg';\n\nimport styles from './infinite-scroll-footer.module.scss';\n\ninterface InfiniteScrollFooterProps {\n isFetching: boolean;\n fetchNext?: (nextCursor: string) => void;\n nextCursor?: string;\n fetchOnScroll?: boolean;\n}\n\nInfiniteScrollFooter.defaultProps = {\n fetchOnScroll: false\n};\n\nexport function InfiniteScrollFooter(props: InfiniteScrollFooterProps): React.ReactElement {\n const [ ref, inView ] = useInView();\n\n React.useEffect(() => {\n if (!props.fetchOnScroll)\n return;\n\n if (!inView || props.isFetching)\n return;\n\n props.fetchNext?.(props.nextCursor);\n }, [ inView, props.isFetching ]);\n\n return (\n <div className={`p-3 text-center ${styles.container}`}>\n {props.isFetching\n ? <Spinner as='span' animation='border' role='status' className={styles.spinner} />\n : (\n <div ref={ref}>\n <SvgContainer\n svg={ChevronDownSvg}\n className='svg-container cursor-pointer'\n size={SvgContainerSize.Large}\n onClick={() => props.fetchNext?.(props.nextCursor)}\n />\n </div>\n )\n }\n </div>\n );\n}"],"names":["InfiniteScrollFooter","props","ref","inView","useInView","React.useEffect","_a","jsx","styles","Spinner","SvgContainer","ChevronDownSvg","SvgContainerSize"],"mappings":"+NAgBAA,EAAqB,aAAe,CAClC,cAAe,EACjB,EAEO,SAASA,EAAqBC,EAAsD,CACzF,KAAM,CAAEC,EAAKC,CAAO,EAAIC,EAAA,EAExBC,OAAAA,EAAAA,UAAgB,IAAM,OACfJ,EAAM,gBAGP,CAACE,GAAUF,EAAM,aAGrBK,EAAAL,EAAM,YAAN,MAAAK,EAAA,KAAAL,EAAkBA,EAAM,YAC1B,EAAG,CAAEE,EAAQF,EAAM,UAAW,CAAC,EAG7BM,EAAAA,IAAC,OAAI,UAAW,mBAAmBC,EAAO,SAAS,GAChD,SAAAP,EAAM,WACHM,EAAAA,IAACE,EAAA,CAAQ,GAAG,OAAO,UAAU,SAAS,KAAK,SAAS,UAAWD,EAAO,OAAA,CAAS,EAE/ED,EAAAA,IAAC,MAAA,CAAI,IAAAL,EACH,SAAAK,EAAAA,IAACG,EAAA,CACC,IAAKC,EACL,UAAU,+BACV,KAAMC,EAAiB,MACvB,QAAS,IAAA,OAAM,OAAAN,EAAAL,EAAM,YAAN,YAAAK,EAAA,KAAAL,EAAkBA,EAAM,YAAU,CAAA,EAErD,CAAA,CAGN,CAEJ"}
@@ -1,2 +0,0 @@
1
- import{j as i,l as r}from"./app-DfSv_-O3.js";const a="_circle_15nxd_1",n="_img_15nxd_6",l={circle:a,img:n};t.defaultProps={textVariant:"white"};function t(e){return!e.imageUrl&&!e.svg?i.jsx(i.Fragment,{}):e.imageUrl?i.jsx("div",{className:`${l.img} rounded-circle h-100 w-100`,style:{backgroundImage:`url(${e.imageUrl})`},children:" "}):i.jsx("div",{className:`${l.circle} ${e.variant?`bg-${e.variant}`:""} text-${e.textVariant} rounded-circle h-100 w-100 ${e.svgWrapperClassName??""}`,children:i.jsx(r,{svg:e.svg,size:e.svgSize})})}function s(e){return i.jsx("svg",{...e,children:i.jsx("path",{fill:"currentColor",fillRule:"evenodd",d:"M16.247 7.341a1 1 0 0 1 1.506 1.318l-7 8a1 1 0 0 1-1.46.048l-3-3a1 1 0 1 1 1.414-1.414l2.244 2.244z",clipRule:"evenodd"})})}export{s as C,t as I};
2
- //# sourceMappingURL=XarUQJMp.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"XarUQJMp.chunk.js","sources":["../../../../libs/shared/src/components/icon-circle/IconCircle.tsx","../../../../libs/shared/src/images/svg/status/CheckSvg.tsx"],"sourcesContent":["import React from 'react';\nimport { ButtonProps } from 'react-bootstrap';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { SvgIcon } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './icon-circle.module.scss';\n\ninterface IconCircleProps {\n svg?: SvgIcon;\n imageUrl?: string;\n svgSize?: SvgContainerSize;\n variant?: ButtonProps['variant'];\n textVariant?: ButtonProps['variant'];\n svgWrapperClassName?: string;\n}\n\nIconCircle.defaultProps = {\n textVariant: 'white'\n};\n\nexport function IconCircle(props: IconCircleProps): JSX.Element {\n if (!props.imageUrl && !props.svg)\n return <></>;\n\n if (props.imageUrl) {\n return (\n <div className={`${styles.img} rounded-circle h-100 w-100`} style={{ backgroundImage: `url(${props.imageUrl})` }}>\n &nbsp;\n </div>\n );\n }\n\n return (\n <div className={`${styles.circle} ${props.variant ? `bg-${props.variant}` : ''} text-${props.textVariant} rounded-circle h-100 w-100 ${props.svgWrapperClassName ?? ''}`}>\n <SvgContainer svg={props.svg} size={props.svgSize} />\n </div>\n );\n}","import React from 'react';\n\nexport function CheckSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M16.247 7.341a1 1 0 0 1 1.506 1.318l-7 8a1 1 0 0 1-1.46.048l-3-3a1 1 0 1 1 1.414-1.414l2.244 2.244z'\n clipRule='evenodd'\n />\n </svg>\n );\n}\n"],"names":["IconCircle","props","jsx","Fragment","styles","SvgContainer","CheckSvg"],"mappings":"2GAiBAA,EAAW,aAAe,CACxB,YAAa,OACf,EAEO,SAASA,EAAWC,EAAqC,CAC9D,MAAI,CAACA,EAAM,UAAY,CAACA,EAAM,IACrBC,EAAAA,IAAAC,EAAAA,SAAA,EAAE,EAEPF,EAAM,SAENC,EAAAA,IAAC,MAAA,CAAI,UAAW,GAAGE,EAAO,GAAG,8BAA+B,MAAO,CAAE,gBAAiB,OAAOH,EAAM,QAAQ,GAAA,EAAO,SAAA,IAElH,EAKFC,EAAAA,IAAC,MAAA,CAAI,UAAW,GAAGE,EAAO,MAAM,IAAIH,EAAM,QAAU,MAAMA,EAAM,OAAO,GAAK,EAAE,SAASA,EAAM,WAAW,+BAA+BA,EAAM,qBAAuB,EAAE,GACpK,SAAAC,MAACG,EAAA,CAAa,IAAKJ,EAAM,IAAK,KAAMA,EAAM,QAAS,EACrD,CAEJ,CCpCO,SAASK,EAASL,EAAsC,CAC7D,OACEC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EACP,SAAAC,EAAAA,IAAC,OAAA,CACC,KAAK,eACL,SAAS,UACT,EAAE,sGACF,SAAS,SAAA,CAAA,EAEb,CAEJ"}
@@ -1,2 +0,0 @@
1
- import{j as r,u as x,b8 as p,a5 as h,a6 as c,g as b,O as T}from"./app-DfSv_-O3.js";import{c as m}from"./CFs3kdQx.chunk.js";import{R as j}from"./BlFiywl_.chunk.js";import{W as C,e as y}from"./DCds0mCy.chunk.js";import{H as l}from"./BwDmMfAz.chunk.js";import{M as $}from"./B32lL5ga.chunk.js";const D="_partialName_157xw_4",O="_partialDescription_157xw_8",S="_partialThumbnail_157xw_12",_="_partialDragHandle_157xw_15",u={partialName:D,partialDescription:O,partialThumbnail:S,partialDragHandle:_};N.defaultProps={numVideos:15};function N(a){return r.jsx(r.Fragment,{children:Array(a.numVideos).fill(null).map((e,i)=>r.jsxs("div",{className:"d-flex",children:[a.allowBulkActions&&r.jsx("div",{className:"form-check pe-3 pe-sm-2 mx-0 mx-md-2"}),r.jsx(H,{...a})]},i))})}function H(a){const e=x(),t=m.getSize(e,"md")==="sm",s=a.withReordering&&!e.xs;return r.jsxs(j,{className:`${t?"":"py-2"} flex-grow-1`,children:[r.jsx(p,{...m.getThumbnailColumns(),className:`flex-column align-items-flex-start ${t?"pb-2 pe-1":"mb-1 pe-3 pe-md-2"}`,children:r.jsxs(j,{children:[!!s&&r.jsx("div",{className:"d-flex align-items-center justify-content-center col-2",children:r.jsx("div",{className:`partial-loading-background ${u.partialDragHandle}`})}),r.jsx(p,{xs:m.getThumbnailColSize(s),children:r.jsx("div",{className:`partial-loading-background ${t?"rounded":"rounded-3"} ${u.partialThumbnail}`})})]})}),r.jsxs(p,{...m.getDetailsColumns(),className:t?"pb-2":"px-2",children:[r.jsx("div",{className:`partial-loading-background mb-1 ${u.partialName}`}),r.jsx("div",{className:`partial-loading-background ${u.partialDescription}`})]})]})}const k=new Set([...Object.values(l.Classifications.Twig.EnglandSecondary),...Object.values(l.Classifications.Twig.InternationalSecondary),...Object.values(l.Classifications.Twig.ScotlandSecondary),...Object.values(l.Classifications.Twig.NewZealandSecondary),...Object.values(l.Classifications.Twig.CanadaMiddle),...Object.values(l.Classifications.Twig.CanadaHigh)]),P=new Set([...Object.values(l.Classifications.Tigtag.EnglandPrimary),...Object.values(l.Classifications.Tigtag.InternationalPrimary),...Object.values(l.Classifications.Tigtag.ScotlandPrimary),...Object.values(l.Classifications.Tigtag.NewZealandPrimary),...Object.values(l.Classifications.Tigtag.CanadaElementary),...Object.values(l.Classifications.Tigtag.CanadaMiddle)]);function v(a){return Object.keys(a).map(e=>a[e]).join(":")}function B(a){return v(T.pick(a,["audienceId"]))}const M={classificationDashboard(a,e,i,t){const s={target:`classification:${a}`,status:i,userType:e};return{url:c.urlBuilder("{gateway}/v1/discover/dashboards",s),publicUrl:c.urlBuilder("/api/discover/dashboards",s),key:`classification:dashboard:${a}:${e}:${t}:${i==null?void 0:i.join(":")}`,formatData:o=>{var n;return t?(n=o.data)==null?void 0:n.find(g=>g.id.toString()===t.toString()):b.first(o.data)}}},dashboardWidgetContent(a,e={},i,t,s={}){return{url:c.urlBuilder(`{gateway}/v1/discover/widgets/${a}`,e),publicUrl:c.urlBuilder(`/api/discover/widgets/${a}`,e),key:`widget:${a}:${v(e)}`,formatData:o=>{const n=y.formatResponseData(o,t);if(!s.hideTigTag&&!s.hideTwig)return n;if(Array.isArray(n.content)){const g=n.content.filter(d=>$.isClassification(d)?P.has(d.id)?!s.hideTigTag:k.has(d.id)?!s.hideTwig:!0:!0);n.content=g}return n},normalizeOptions:{namespace:B(e)},normalize:i!==C.EditableCoverFixedPillListSmall}},getDashboard(a,e,i,t,s,o){const n={target:i,status:e,userType:a};t!=null&&t.length&&(n["widgets.curriculum"]=t);const g=`dashboard:${i}:${a}:${s}:${e.join(":")}`;return{url:c.urlBuilder("{gateway}/v1/discover/dashboards",n),publicUrl:c.urlBuilder("/api/discover/dashboards",n),key:g,formatData:d=>{var f;return s?(f=d.data)==null?void 0:f.find(w=>w.id.toString()===s.toString()):b.first(d.data)},success:o}},updateWidgetPreferences(a,e,i){return{url:`{gateway}/v1/discover/widgets/${a}/preferences`,key:"update:widget:preferences",invalidationKeys:[`widget:${a}`],type:h.PUT,data:{userId:i.id,customerId:i.customerId,metadata:e}}}};export{M as D,N as P};
2
- //# sourceMappingURL=ZYx7Po5r.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ZYx7Po5r.chunk.js","sources":["../../../../libs/shared/src/components/video-list/partial-loading/PartialVideoList.tsx","../../../../libs/shared/src/flight-requests/DashboardRequests.ts"],"sourcesContent":["import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { VideoListHelper } from 'libs/shared/components/video-list/VideoListHelper';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\n\nimport styles from './partial-video-list.module.scss';\n\ninterface PartialVideoListProps {\n withReordering?: boolean;\n numVideos?: number;\n allowBulkActions?: boolean;\n}\n\nPartialVideoList.defaultProps = {\n numVideos: 15\n};\n\nexport function PartialVideoList(props: PartialVideoListProps): JSX.Element {\n return (\n <>\n {Array(props.numVideos).fill(null).map((_, i) => (\n <div className='d-flex' key={i}>\n {props.allowBulkActions && <div className='form-check pe-3 pe-sm-2 mx-0 mx-md-2' />}\n <PartialVideoItem {...props} />\n </div>\n ))}\n </>\n );\n}\n\nexport function PartialVideoItem(props: PartialVideoListProps): JSX.Element {\n const breakpoints = useBreakpoints();\n\n const size = VideoListHelper.getSize(breakpoints, 'md');\n const isSmall = size === 'sm';\n\n const withDragHandle = props.withReordering && !breakpoints.xs;\n\n return (\n <Row className={`${isSmall ? '' : 'py-2'} flex-grow-1`}>\n <Col {...VideoListHelper.getThumbnailColumns()} className={`flex-column align-items-flex-start ${isSmall ? `pb-2 pe-1` : 'mb-1 pe-3 pe-md-2'}`}>\n <Row>\n {!!withDragHandle && (\n <div className='d-flex align-items-center justify-content-center col-2'>\n <div className={`partial-loading-background ${styles.partialDragHandle}`} />\n </div>\n )}\n <Col xs={VideoListHelper.getThumbnailColSize(withDragHandle)}>\n <div className={`partial-loading-background ${isSmall ? 'rounded' : 'rounded-3'} ${styles.partialThumbnail}`} />\n </Col>\n </Row>\n </Col>\n <Col {...VideoListHelper.getDetailsColumns()} className={isSmall ? 'pb-2' : 'px-2'}>\n <div className={`partial-loading-background mb-1 ${styles.partialName}`} />\n <div className={`partial-loading-background ${styles.partialDescription}`} />\n </Col>\n </Row>\n );\n}\n\n","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { CuratedDashboard, CuratedDashboardCollection, CuratedWidget, CuratedWidgetContent, CuratedWidgetQueryParams, CurrentUser, DashboardStatus, DashboardUserType, Presentation, WidgetPreference } from 'libs/shared/interfaces';\nimport { WidgetHelper } from 'libs/shared/utils/WidgetHelper';\n\nimport { HardCoded } from '../constants/HardCoded';\nimport { WidgetTemplate } from '../enums/WidgetTemplate';\nimport { MasterTypeHelper } from '../utils/MasterTypeHelper';\n\ninterface GetDashboardWidgetContentOptions {\n hideTigTag?: boolean;\n hideTwig?: boolean;\n}\n\nconst TWIG_TOPIC_IDS = new Set([\n ...Object.values(HardCoded.Classifications.Twig.EnglandSecondary),\n ...Object.values(HardCoded.Classifications.Twig.InternationalSecondary),\n ...Object.values(HardCoded.Classifications.Twig.ScotlandSecondary),\n ...Object.values(HardCoded.Classifications.Twig.NewZealandSecondary),\n ...Object.values(HardCoded.Classifications.Twig.CanadaMiddle),\n ...Object.values(HardCoded.Classifications.Twig.CanadaHigh)\n]);\n\nconst TIG_TAG_TOPIC_IDS = new Set([\n ...Object.values(HardCoded.Classifications.Tigtag.EnglandPrimary),\n ...Object.values(HardCoded.Classifications.Tigtag.InternationalPrimary),\n ...Object.values(HardCoded.Classifications.Tigtag.ScotlandPrimary),\n ...Object.values(HardCoded.Classifications.Tigtag.NewZealandPrimary),\n ...Object.values(HardCoded.Classifications.Tigtag.CanadaElementary),\n ...Object.values(HardCoded.Classifications.Tigtag.CanadaMiddle)\n]);\n\nfunction getQueryParamsKey(queryParams: CuratedWidgetQueryParams): string {\n return Object.keys(queryParams)\n .map((key: keyof CuratedWidgetQueryParams) => queryParams[key])\n .join(':');\n}\n\nfunction getNamespaceKey(queryParams: CuratedWidgetQueryParams): string {\n return getQueryParamsKey(ObjectHelper.pick(queryParams, ['audienceId']));\n}\n\nexport const DashboardRequests = {\n classificationDashboard(\n classificationId: string,\n userType: DashboardUserType,\n statuses: DashboardStatus[],\n dashboardId?: string | null\n ): Flight.PublicRequest {\n const queryParamOpts = {\n target: `classification:${classificationId}`,\n status: statuses,\n userType\n };\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/discover/dashboards`, queryParamOpts),\n publicUrl: UrlHelper.urlBuilder(`/api/discover/dashboards`, queryParamOpts),\n key: `classification:dashboard:${classificationId}:${userType}:${dashboardId}:${statuses?.join(':')}`,\n formatData: (data: CuratedDashboardCollection) => {\n if (dashboardId)\n return data.data?.find(d => d.id.toString() === dashboardId.toString());\n\n // only the first one of available dashboard will be displayed for the user\n return ArrayHelper.first(data.data);\n }\n };\n },\n\n dashboardWidgetContent(\n id: string,\n queryParams: CuratedWidgetQueryParams = {},\n template?: WidgetTemplate,\n presentation?: Presentation,\n options: GetDashboardWidgetContentOptions = {}\n ): Flight.PublicRequest {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/discover/widgets/${id}`, queryParams),\n publicUrl: UrlHelper.urlBuilder(`/api/discover/widgets/${id}`, queryParams),\n key: `widget:${id}:${getQueryParamsKey(queryParams)}`,\n formatData: (widget: CuratedWidget) => {\n const formatted = WidgetHelper.formatResponseData(widget, presentation);\n\n if (!options.hideTigTag && !options.hideTwig)\n return formatted;\n\n // Filter out the Twig topics for users who don't have access to the Twig library\n if (Array.isArray(formatted.content)) {\n const newContent = formatted.content.filter(entity => {\n if (MasterTypeHelper.isClassification(entity)) {\n if (TIG_TAG_TOPIC_IDS.has(entity.id))\n return !options.hideTigTag;\n\n if (TWIG_TOPIC_IDS.has(entity.id))\n return !options.hideTwig;\n\n return true;\n }\n \n return true;\n }) as CuratedWidgetContent;\n \n formatted.content = newContent;\n }\n \n return formatted;\n },\n normalizeOptions: {\n namespace: getNamespaceKey(queryParams)\n },\n normalize: template !== WidgetTemplate.EditableCoverFixedPillListSmall\n };\n },\n\n getDashboard(\n userType: DashboardUserType,\n statuses: DashboardStatus[],\n target: string,\n curriculumIds?: string[],\n dashboardId?: string,\n success?: (data: CuratedDashboard) => void\n ): Flight.PublicRequest {\n const queryParamOpts: HashObject = {\n target,\n status: statuses,\n userType\n };\n\n if (curriculumIds?.length)\n queryParamOpts['widgets.curriculum'] = curriculumIds;\n\n const key = `dashboard:${target}:${userType}:${dashboardId}:${statuses.join(':')}`;\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/discover/dashboards`, queryParamOpts),\n publicUrl: UrlHelper.urlBuilder(`/api/discover/dashboards`, queryParamOpts),\n key,\n formatData: (data: CuratedDashboardCollection) => {\n if (dashboardId)\n return data.data?.find(d => d.id.toString() === dashboardId.toString());\n\n // only the first one of available dashboard will be displayed for the user\n return ArrayHelper.first(data.data);\n },\n success\n };\n },\n\n updateWidgetPreferences(widgetId: string, preferences: WidgetPreference[], currentUser: CurrentUser): Flight.Request {\n return {\n url: `{gateway}/v1/discover/widgets/${widgetId}/preferences`,\n key: 'update:widget:preferences',\n invalidationKeys: [`widget:${widgetId}`],\n type: HttpVerbs.PUT,\n data: {\n userId: currentUser.id,\n customerId: currentUser.customerId,\n metadata: preferences\n }\n };\n }\n};"],"names":["PartialVideoList","props","jsx","Fragment","_","jsxs","PartialVideoItem","breakpoints","useBreakpoints","isSmall","VideoListHelper","withDragHandle","Row","Col","styles","TWIG_TOPIC_IDS","HardCoded","TIG_TAG_TOPIC_IDS","getQueryParamsKey","queryParams","key","getNamespaceKey","ObjectHelper","DashboardRequests","classificationId","userType","statuses","dashboardId","queryParamOpts","UrlHelper","data","_a","d","ArrayHelper","id","template","presentation","options","widget","formatted","WidgetHelper","newContent","entity","MasterTypeHelper","WidgetTemplate","target","curriculumIds","success","widgetId","preferences","currentUser","HttpVerbs"],"mappings":"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"}