@clickview/lite 0.52.0 → 0.52.2-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (354) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/css/{1329-lite-ec64553644.chunk.css → 1329-lite-55772b1036.chunk.css} +2 -2
  3. package/dist/css/{986-lite-6bdd43b250.chunk.css → 3532-lite-a3c7435ba4.chunk.css} +1 -1
  4. package/dist/css/{3969-lite-cb4c4824f6.chunk.css → 3969-lite-94ca677007.chunk.css} +1 -1
  5. package/dist/css/{4489-lite-e971ca8ab6.chunk.css → 4489-lite-49c28410f9.chunk.css} +1 -1
  6. package/dist/css/4690-lite-e1f88a6b47.chunk.css +4 -0
  7. package/dist/css/{537-lite-53bb989a96.chunk.css → 537-lite-390b70028c.chunk.css} +1 -1
  8. package/dist/css/{6489-lite-5ffcd32447.chunk.css → 6489-lite-a917e953c8.chunk.css} +1 -1
  9. package/dist/css/{8192-lite-cf3253f7b8.chunk.css → 8192-lite-282a716c03.chunk.css} +1 -1
  10. package/dist/css/{841-lite-93cc5f2469.chunk.css → 841-lite-4a007cd7be.chunk.css} +1 -1
  11. package/dist/css/{1820-lite-eaf5a9db1c.chunk.css → 999-lite-02c517e917.chunk.css} +1 -1
  12. package/dist/languages/en.json +1 -1
  13. package/dist/scripts/{1080-5b00242a31-lite.chunk.js → 1080-d24c9657ec-lite.chunk.js} +2 -2
  14. package/dist/scripts/{1080-5b00242a31-lite.chunk.js.map → 1080-d24c9657ec-lite.chunk.js.map} +1 -1
  15. package/dist/scripts/{9173-2392d447a6-lite.chunk.js → 1104-f057c6dea1-lite.chunk.js} +3 -3
  16. package/dist/scripts/{9173-2392d447a6-lite.chunk.js.map → 1104-f057c6dea1-lite.chunk.js.map} +1 -1
  17. package/dist/scripts/{1125-aac132b88f-lite.chunk.js → 1125-55dc0a4586-lite.chunk.js} +2 -2
  18. package/dist/scripts/1125-55dc0a4586-lite.chunk.js.map +1 -0
  19. package/dist/scripts/1169-3de585be6a-lite.chunk.js +2 -0
  20. package/dist/scripts/1169-3de585be6a-lite.chunk.js.map +1 -0
  21. package/dist/scripts/1329-850346e6e6-lite.chunk.js +3 -0
  22. package/dist/scripts/1329-850346e6e6-lite.chunk.js.map +1 -0
  23. package/dist/scripts/{1379-082bbab71a-lite.chunk.js → 1379-976d20185f-lite.chunk.js} +3 -3
  24. package/dist/scripts/{1379-082bbab71a-lite.chunk.js.map → 1379-976d20185f-lite.chunk.js.map} +1 -1
  25. package/dist/scripts/1672-60a3ab42f5-lite.chunk.js +3 -0
  26. package/dist/scripts/1672-60a3ab42f5-lite.chunk.js.map +1 -0
  27. package/dist/scripts/1725-1e864ba78a-lite.chunk.js +2 -0
  28. package/dist/scripts/1725-1e864ba78a-lite.chunk.js.map +1 -0
  29. package/dist/scripts/1891-109e674486-lite.chunk.js +2 -0
  30. package/dist/scripts/1891-109e674486-lite.chunk.js.map +1 -0
  31. package/dist/scripts/193-797b89797a-lite.chunk.js +2 -0
  32. package/dist/scripts/193-797b89797a-lite.chunk.js.map +1 -0
  33. package/dist/scripts/2004-7d1bf8b246-lite.chunk.js +3 -0
  34. package/dist/scripts/2004-7d1bf8b246-lite.chunk.js.map +1 -0
  35. package/dist/scripts/209-d2e6b93965-lite.chunk.js +2 -0
  36. package/dist/scripts/209-d2e6b93965-lite.chunk.js.map +1 -0
  37. package/dist/scripts/2134-b9145f8ce8-lite.chunk.js +2 -0
  38. package/dist/scripts/2134-b9145f8ce8-lite.chunk.js.map +1 -0
  39. package/dist/scripts/2952-6a32a90314-lite.chunk.js +2 -0
  40. package/dist/scripts/2952-6a32a90314-lite.chunk.js.map +1 -0
  41. package/dist/scripts/3003-7685240aed-lite.chunk.js +2 -0
  42. package/dist/scripts/3003-7685240aed-lite.chunk.js.map +1 -0
  43. package/dist/scripts/3020-6c9c7d2176-lite.chunk.js +2 -0
  44. package/dist/scripts/3020-6c9c7d2176-lite.chunk.js.map +1 -0
  45. package/dist/scripts/338-e21a3cd6fe-lite.chunk.js +3 -0
  46. package/dist/scripts/338-e21a3cd6fe-lite.chunk.js.map +1 -0
  47. package/dist/scripts/3532-2fed0eb7a4-lite.chunk.js +3 -0
  48. package/dist/scripts/3532-2fed0eb7a4-lite.chunk.js.map +1 -0
  49. package/dist/scripts/3633-025f418c19-lite.chunk.js +2 -0
  50. package/dist/scripts/3633-025f418c19-lite.chunk.js.map +1 -0
  51. package/dist/scripts/3640-694d1d6d2a-lite.chunk.js +2 -0
  52. package/dist/scripts/3640-694d1d6d2a-lite.chunk.js.map +1 -0
  53. package/dist/scripts/3728-2c71d3021e-lite.chunk.js +2 -0
  54. package/dist/scripts/3728-2c71d3021e-lite.chunk.js.map +1 -0
  55. package/dist/scripts/3966-0e3c4f329e-lite.chunk.js +2 -0
  56. package/dist/scripts/3966-0e3c4f329e-lite.chunk.js.map +1 -0
  57. package/dist/scripts/{3969-6d5f2f272f-lite.chunk.js → 3969-e36f1922eb-lite.chunk.js} +1 -1
  58. package/dist/scripts/{3969-6d5f2f272f-lite.chunk.js.map → 3969-e36f1922eb-lite.chunk.js.map} +1 -1
  59. package/dist/scripts/4063-5fa157657f-lite.chunk.js +2 -0
  60. package/dist/scripts/4063-5fa157657f-lite.chunk.js.map +1 -0
  61. package/dist/scripts/4182-7ae9edf4a5-lite.chunk.js +2 -0
  62. package/dist/scripts/4182-7ae9edf4a5-lite.chunk.js.map +1 -0
  63. package/dist/scripts/4395-37537617e2-lite.chunk.js +2 -0
  64. package/dist/scripts/4395-37537617e2-lite.chunk.js.map +1 -0
  65. package/dist/scripts/4502-83e4017e54-lite.chunk.js +2 -0
  66. package/dist/scripts/4502-83e4017e54-lite.chunk.js.map +1 -0
  67. package/dist/scripts/4690-d64efe8020-lite.chunk.js +2 -0
  68. package/dist/scripts/4690-d64efe8020-lite.chunk.js.map +1 -0
  69. package/dist/scripts/4850-bb9541d3ed-lite.chunk.js +2 -0
  70. package/dist/scripts/4850-bb9541d3ed-lite.chunk.js.map +1 -0
  71. package/dist/scripts/5143-d46f032e9e-lite.chunk.js +2 -0
  72. package/dist/scripts/5143-d46f032e9e-lite.chunk.js.map +1 -0
  73. package/dist/scripts/5157-855821ccce-lite.chunk.js +2 -0
  74. package/dist/scripts/5157-855821ccce-lite.chunk.js.map +1 -0
  75. package/dist/scripts/537-f63ad5863e-lite.chunk.js +3 -0
  76. package/dist/scripts/537-f63ad5863e-lite.chunk.js.map +1 -0
  77. package/dist/scripts/5549-bb01b24470-lite.chunk.js +2 -0
  78. package/dist/scripts/5549-bb01b24470-lite.chunk.js.map +1 -0
  79. package/dist/scripts/5573-304fea77a6-lite.chunk.js +2 -0
  80. package/dist/scripts/5573-304fea77a6-lite.chunk.js.map +1 -0
  81. package/dist/scripts/5595-842c05064c-lite.chunk.js +2 -0
  82. package/dist/scripts/5595-842c05064c-lite.chunk.js.map +1 -0
  83. package/dist/scripts/5606-680582b817-lite.chunk.js +2 -0
  84. package/dist/scripts/5606-680582b817-lite.chunk.js.map +1 -0
  85. package/dist/scripts/5877-e75dcce0ef-lite.chunk.js +2 -0
  86. package/dist/scripts/5877-e75dcce0ef-lite.chunk.js.map +1 -0
  87. package/dist/scripts/5936-b509535ec7-lite.chunk.js +2 -0
  88. package/dist/scripts/5936-b509535ec7-lite.chunk.js.map +1 -0
  89. package/dist/scripts/6054-1e9b86d631-lite.chunk.js +2 -0
  90. package/dist/scripts/6054-1e9b86d631-lite.chunk.js.map +1 -0
  91. package/dist/scripts/6094-6c1e95073a-lite.chunk.js +2 -0
  92. package/dist/scripts/6094-6c1e95073a-lite.chunk.js.map +1 -0
  93. package/dist/scripts/{6102-ce44fd00aa-lite.chunk.js → 6102-3ddcebe8a1-lite.chunk.js} +3 -3
  94. package/dist/scripts/{6102-ce44fd00aa-lite.chunk.js.map → 6102-3ddcebe8a1-lite.chunk.js.map} +1 -1
  95. package/dist/scripts/6138-5791b93cc1-lite.chunk.js +2 -0
  96. package/dist/scripts/6138-5791b93cc1-lite.chunk.js.map +1 -0
  97. package/dist/scripts/{624-7ab5fb3f3b-lite.chunk.js → 624-bf0ff6257f-lite.chunk.js} +3 -3
  98. package/dist/scripts/{624-7ab5fb3f3b-lite.chunk.js.map → 624-bf0ff6257f-lite.chunk.js.map} +1 -1
  99. package/dist/scripts/6263-cfd4ebfe8b-lite.chunk.js +2 -0
  100. package/dist/scripts/6263-cfd4ebfe8b-lite.chunk.js.map +1 -0
  101. package/dist/scripts/6290-eb223883fe-lite.chunk.js +2 -0
  102. package/dist/scripts/6290-eb223883fe-lite.chunk.js.map +1 -0
  103. package/dist/scripts/6470-1012a7889c-lite.chunk.js +2 -0
  104. package/dist/scripts/6470-1012a7889c-lite.chunk.js.map +1 -0
  105. package/dist/scripts/6481-39b72a58ef-lite.chunk.js +2 -0
  106. package/dist/scripts/6481-39b72a58ef-lite.chunk.js.map +1 -0
  107. package/dist/scripts/6489-9287613d14-lite.chunk.js +3 -0
  108. package/dist/scripts/6489-9287613d14-lite.chunk.js.map +1 -0
  109. package/dist/scripts/6532-9edab80cc6-lite.chunk.js +2 -0
  110. package/dist/scripts/6532-9edab80cc6-lite.chunk.js.map +1 -0
  111. package/dist/scripts/6604-2353daa8c0-lite.chunk.js +2 -0
  112. package/dist/scripts/6604-2353daa8c0-lite.chunk.js.map +1 -0
  113. package/dist/scripts/6741-572db2d1e9-lite.chunk.js +3 -0
  114. package/dist/scripts/6741-572db2d1e9-lite.chunk.js.map +1 -0
  115. package/dist/scripts/6746-72d35335ba-lite.chunk.js +2 -0
  116. package/dist/scripts/6746-72d35335ba-lite.chunk.js.map +1 -0
  117. package/dist/scripts/6852-f49f6f19d3-lite.chunk.js +2 -0
  118. package/dist/scripts/6852-f49f6f19d3-lite.chunk.js.map +1 -0
  119. package/dist/scripts/714-67adeb44da-lite.chunk.js +2 -0
  120. package/dist/scripts/714-67adeb44da-lite.chunk.js.map +1 -0
  121. package/dist/scripts/7163-8b5ab059b6-lite.chunk.js +2 -0
  122. package/dist/scripts/7163-8b5ab059b6-lite.chunk.js.map +1 -0
  123. package/dist/scripts/7178-4b9c33a63e-lite.chunk.js +2 -0
  124. package/dist/scripts/7178-4b9c33a63e-lite.chunk.js.map +1 -0
  125. package/dist/scripts/7223-e2f8a43b89-lite.chunk.js +2 -0
  126. package/dist/scripts/7223-e2f8a43b89-lite.chunk.js.map +1 -0
  127. package/dist/scripts/7234-595d44446f-lite.chunk.js +2 -0
  128. package/dist/scripts/7234-595d44446f-lite.chunk.js.map +1 -0
  129. package/dist/scripts/7267-dac72aeb98-lite.chunk.js +2 -0
  130. package/dist/scripts/7267-dac72aeb98-lite.chunk.js.map +1 -0
  131. package/dist/scripts/{7293-687e60dba2-lite.chunk.js → 7293-1ad518e385-lite.chunk.js} +2 -2
  132. package/dist/scripts/7293-1ad518e385-lite.chunk.js.map +1 -0
  133. package/dist/scripts/7679-f43777e02e-lite.chunk.js +2 -0
  134. package/dist/scripts/7679-f43777e02e-lite.chunk.js.map +1 -0
  135. package/dist/scripts/7757-2785d666ad-lite.chunk.js +2 -0
  136. package/dist/scripts/7757-2785d666ad-lite.chunk.js.map +1 -0
  137. package/dist/scripts/7795-b641104969-lite.chunk.js +2 -0
  138. package/dist/scripts/7795-b641104969-lite.chunk.js.map +1 -0
  139. package/dist/scripts/7818-cff0f2276c-lite.chunk.js +2 -0
  140. package/dist/scripts/7818-cff0f2276c-lite.chunk.js.map +1 -0
  141. package/dist/scripts/{8192-f26370c5a6-lite.chunk.js → 8192-ea5cee15d7-lite.chunk.js} +1 -1
  142. package/dist/scripts/{8192-f26370c5a6-lite.chunk.js.map → 8192-ea5cee15d7-lite.chunk.js.map} +1 -1
  143. package/dist/scripts/8200-1e4518c5d8-lite.chunk.js +3 -0
  144. package/dist/scripts/8200-1e4518c5d8-lite.chunk.js.map +1 -0
  145. package/dist/scripts/8323-fb330a8f47-lite.chunk.js +3 -0
  146. package/dist/scripts/8323-fb330a8f47-lite.chunk.js.map +1 -0
  147. package/dist/scripts/841-d69c7f4b4d-lite.chunk.js +3 -0
  148. package/dist/scripts/841-d69c7f4b4d-lite.chunk.js.map +1 -0
  149. package/dist/scripts/8709-f360baa021-lite.chunk.js +2 -0
  150. package/dist/scripts/8709-f360baa021-lite.chunk.js.map +1 -0
  151. package/dist/scripts/8722-00d7443d09-lite.chunk.js +2 -0
  152. package/dist/scripts/8722-00d7443d09-lite.chunk.js.map +1 -0
  153. package/dist/scripts/8982-6848480133-lite.chunk.js +2 -0
  154. package/dist/scripts/8982-6848480133-lite.chunk.js.map +1 -0
  155. package/dist/scripts/9016-e17da8b633-lite.chunk.js +3 -0
  156. package/dist/scripts/9016-e17da8b633-lite.chunk.js.map +1 -0
  157. package/dist/scripts/9173-a0c6c7be25-lite.chunk.js +2 -0
  158. package/dist/scripts/9173-a0c6c7be25-lite.chunk.js.map +1 -0
  159. package/dist/scripts/9226-a7c61f9129-lite.chunk.js +2 -0
  160. package/dist/scripts/9226-a7c61f9129-lite.chunk.js.map +1 -0
  161. package/dist/scripts/9230-537f1fcc38-lite.chunk.js +3 -0
  162. package/dist/scripts/9230-537f1fcc38-lite.chunk.js.map +1 -0
  163. package/dist/scripts/9359-deb452cb10-lite.chunk.js +2 -0
  164. package/dist/scripts/9359-deb452cb10-lite.chunk.js.map +1 -0
  165. package/dist/scripts/{9395-90b87097fa-lite.chunk.js → 9395-e9b5cdbdce-lite.chunk.js} +3 -3
  166. package/dist/scripts/{9395-90b87097fa-lite.chunk.js.map → 9395-e9b5cdbdce-lite.chunk.js.map} +1 -1
  167. package/dist/scripts/9399-721a368168-lite.chunk.js +2 -0
  168. package/dist/scripts/9399-721a368168-lite.chunk.js.map +1 -0
  169. package/dist/scripts/{9478-99486906b9-lite.chunk.js → 9478-abfa7ed3cc-lite.chunk.js} +3 -3
  170. package/dist/scripts/{9478-99486906b9-lite.chunk.js.map → 9478-abfa7ed3cc-lite.chunk.js.map} +1 -1
  171. package/dist/scripts/{953-cbc7f0571e-lite.chunk.js → 953-bf3d621a33-lite.chunk.js} +3 -3
  172. package/dist/scripts/{953-cbc7f0571e-lite.chunk.js.map → 953-bf3d621a33-lite.chunk.js.map} +1 -1
  173. package/dist/scripts/9719-ed1956607c-lite.chunk.js +3 -0
  174. package/dist/scripts/9719-ed1956607c-lite.chunk.js.map +1 -0
  175. package/dist/scripts/999-d7e93dac12-lite.chunk.js +2 -0
  176. package/dist/scripts/999-d7e93dac12-lite.chunk.js.map +1 -0
  177. package/dist/scripts/bundle-9a72d04e7d.min.js +3 -0
  178. package/dist/scripts/bundle-9a72d04e7d.min.js.map +1 -0
  179. package/package.json +1 -2
  180. package/dist/css/4690-lite-a4fdd7e61e.chunk.css +0 -4
  181. package/dist/scripts/1125-aac132b88f-lite.chunk.js.map +0 -1
  182. package/dist/scripts/1169-5a0d974a94-lite.chunk.js +0 -2
  183. package/dist/scripts/1169-5a0d974a94-lite.chunk.js.map +0 -1
  184. package/dist/scripts/1329-7064e95200-lite.chunk.js +0 -3
  185. package/dist/scripts/1329-7064e95200-lite.chunk.js.map +0 -1
  186. package/dist/scripts/1466-735d7dad48-lite.chunk.js +0 -3
  187. package/dist/scripts/1466-735d7dad48-lite.chunk.js.map +0 -1
  188. package/dist/scripts/1672-672f298d82-lite.chunk.js +0 -3
  189. package/dist/scripts/1672-672f298d82-lite.chunk.js.map +0 -1
  190. package/dist/scripts/1725-075015497e-lite.chunk.js +0 -2
  191. package/dist/scripts/1725-075015497e-lite.chunk.js.map +0 -1
  192. package/dist/scripts/1818-4949c9b748-lite.chunk.js +0 -2
  193. package/dist/scripts/1818-4949c9b748-lite.chunk.js.map +0 -1
  194. package/dist/scripts/1820-345bf53a3c-lite.chunk.js +0 -2
  195. package/dist/scripts/1820-345bf53a3c-lite.chunk.js.map +0 -1
  196. package/dist/scripts/1867-6f801de383-lite.chunk.js +0 -2
  197. package/dist/scripts/1867-6f801de383-lite.chunk.js.map +0 -1
  198. package/dist/scripts/1891-e80f9f17ee-lite.chunk.js +0 -2
  199. package/dist/scripts/1891-e80f9f17ee-lite.chunk.js.map +0 -1
  200. package/dist/scripts/193-f08b054631-lite.chunk.js +0 -2
  201. package/dist/scripts/193-f08b054631-lite.chunk.js.map +0 -1
  202. package/dist/scripts/2004-d891104ed4-lite.chunk.js +0 -3
  203. package/dist/scripts/2004-d891104ed4-lite.chunk.js.map +0 -1
  204. package/dist/scripts/209-57b05f6c83-lite.chunk.js +0 -2
  205. package/dist/scripts/209-57b05f6c83-lite.chunk.js.map +0 -1
  206. package/dist/scripts/2134-bca2f4697e-lite.chunk.js +0 -2
  207. package/dist/scripts/2134-bca2f4697e-lite.chunk.js.map +0 -1
  208. package/dist/scripts/2703-591ccf069c-lite.chunk.js +0 -2
  209. package/dist/scripts/2703-591ccf069c-lite.chunk.js.map +0 -1
  210. package/dist/scripts/3020-dbc723b098-lite.chunk.js +0 -2
  211. package/dist/scripts/3020-dbc723b098-lite.chunk.js.map +0 -1
  212. package/dist/scripts/3633-66d28be6f8-lite.chunk.js +0 -2
  213. package/dist/scripts/3633-66d28be6f8-lite.chunk.js.map +0 -1
  214. package/dist/scripts/3728-d7ecfc6667-lite.chunk.js +0 -2
  215. package/dist/scripts/3728-d7ecfc6667-lite.chunk.js.map +0 -1
  216. package/dist/scripts/3966-a3bb0e0161-lite.chunk.js +0 -2
  217. package/dist/scripts/3966-a3bb0e0161-lite.chunk.js.map +0 -1
  218. package/dist/scripts/4182-7aecc28a6f-lite.chunk.js +0 -2
  219. package/dist/scripts/4182-7aecc28a6f-lite.chunk.js.map +0 -1
  220. package/dist/scripts/4395-64da004753-lite.chunk.js +0 -2
  221. package/dist/scripts/4395-64da004753-lite.chunk.js.map +0 -1
  222. package/dist/scripts/4502-2e30d86385-lite.chunk.js +0 -2
  223. package/dist/scripts/4502-2e30d86385-lite.chunk.js.map +0 -1
  224. package/dist/scripts/4690-03372d68ac-lite.chunk.js +0 -2
  225. package/dist/scripts/4690-03372d68ac-lite.chunk.js.map +0 -1
  226. package/dist/scripts/5143-b6896dad98-lite.chunk.js +0 -2
  227. package/dist/scripts/5143-b6896dad98-lite.chunk.js.map +0 -1
  228. package/dist/scripts/5157-54aeb51bdf-lite.chunk.js +0 -2
  229. package/dist/scripts/5157-54aeb51bdf-lite.chunk.js.map +0 -1
  230. package/dist/scripts/537-536e52ef91-lite.chunk.js +0 -3
  231. package/dist/scripts/537-536e52ef91-lite.chunk.js.map +0 -1
  232. package/dist/scripts/5562-e011962a62-lite.chunk.js +0 -3
  233. package/dist/scripts/5562-e011962a62-lite.chunk.js.map +0 -1
  234. package/dist/scripts/5573-6cd98b69f2-lite.chunk.js +0 -2
  235. package/dist/scripts/5573-6cd98b69f2-lite.chunk.js.map +0 -1
  236. package/dist/scripts/5595-96a0649af0-lite.chunk.js +0 -2
  237. package/dist/scripts/5595-96a0649af0-lite.chunk.js.map +0 -1
  238. package/dist/scripts/5606-6c25caedc4-lite.chunk.js +0 -2
  239. package/dist/scripts/5606-6c25caedc4-lite.chunk.js.map +0 -1
  240. package/dist/scripts/5877-ddfaf6a7f5-lite.chunk.js +0 -2
  241. package/dist/scripts/5877-ddfaf6a7f5-lite.chunk.js.map +0 -1
  242. package/dist/scripts/5936-f0177219db-lite.chunk.js +0 -2
  243. package/dist/scripts/5936-f0177219db-lite.chunk.js.map +0 -1
  244. package/dist/scripts/6054-14d4ceeae3-lite.chunk.js +0 -2
  245. package/dist/scripts/6054-14d4ceeae3-lite.chunk.js.map +0 -1
  246. package/dist/scripts/6094-7ec9341357-lite.chunk.js +0 -2
  247. package/dist/scripts/6094-7ec9341357-lite.chunk.js.map +0 -1
  248. package/dist/scripts/6138-d419f62f77-lite.chunk.js +0 -2
  249. package/dist/scripts/6138-d419f62f77-lite.chunk.js.map +0 -1
  250. package/dist/scripts/6263-af99de5a35-lite.chunk.js +0 -2
  251. package/dist/scripts/6263-af99de5a35-lite.chunk.js.map +0 -1
  252. package/dist/scripts/6290-56412c6663-lite.chunk.js +0 -2
  253. package/dist/scripts/6290-56412c6663-lite.chunk.js.map +0 -1
  254. package/dist/scripts/6415-8b354a10c7-lite.chunk.js +0 -2
  255. package/dist/scripts/6415-8b354a10c7-lite.chunk.js.map +0 -1
  256. package/dist/scripts/6470-6216086d63-lite.chunk.js +0 -2
  257. package/dist/scripts/6470-6216086d63-lite.chunk.js.map +0 -1
  258. package/dist/scripts/6481-03a4f1082e-lite.chunk.js +0 -2
  259. package/dist/scripts/6481-03a4f1082e-lite.chunk.js.map +0 -1
  260. package/dist/scripts/6489-953bb87f64-lite.chunk.js +0 -3
  261. package/dist/scripts/6489-953bb87f64-lite.chunk.js.map +0 -1
  262. package/dist/scripts/6532-a6b65c91a7-lite.chunk.js +0 -2
  263. package/dist/scripts/6532-a6b65c91a7-lite.chunk.js.map +0 -1
  264. package/dist/scripts/6546-bc3a8099ba-lite.chunk.js +0 -2
  265. package/dist/scripts/6546-bc3a8099ba-lite.chunk.js.map +0 -1
  266. package/dist/scripts/6587-23e7b1d196-lite.chunk.js +0 -2
  267. package/dist/scripts/6587-23e7b1d196-lite.chunk.js.map +0 -1
  268. package/dist/scripts/6604-92193d6d68-lite.chunk.js +0 -2
  269. package/dist/scripts/6604-92193d6d68-lite.chunk.js.map +0 -1
  270. package/dist/scripts/6741-ff3e4a33a5-lite.chunk.js +0 -3
  271. package/dist/scripts/6741-ff3e4a33a5-lite.chunk.js.map +0 -1
  272. package/dist/scripts/6746-b5b2739944-lite.chunk.js +0 -2
  273. package/dist/scripts/6746-b5b2739944-lite.chunk.js.map +0 -1
  274. package/dist/scripts/679-92bb80f478-lite.chunk.js +0 -2
  275. package/dist/scripts/679-92bb80f478-lite.chunk.js.map +0 -1
  276. package/dist/scripts/714-432082f4fa-lite.chunk.js +0 -2
  277. package/dist/scripts/714-432082f4fa-lite.chunk.js.map +0 -1
  278. package/dist/scripts/7178-e603ea6b58-lite.chunk.js +0 -2
  279. package/dist/scripts/7178-e603ea6b58-lite.chunk.js.map +0 -1
  280. package/dist/scripts/7223-135cc7d675-lite.chunk.js +0 -2
  281. package/dist/scripts/7223-135cc7d675-lite.chunk.js.map +0 -1
  282. package/dist/scripts/729-c704d587d3-lite.chunk.js +0 -2
  283. package/dist/scripts/729-c704d587d3-lite.chunk.js.map +0 -1
  284. package/dist/scripts/7293-687e60dba2-lite.chunk.js.map +0 -1
  285. package/dist/scripts/7679-81c2a40df4-lite.chunk.js +0 -2
  286. package/dist/scripts/7679-81c2a40df4-lite.chunk.js.map +0 -1
  287. package/dist/scripts/7757-b149c4c215-lite.chunk.js +0 -2
  288. package/dist/scripts/7757-b149c4c215-lite.chunk.js.map +0 -1
  289. package/dist/scripts/7795-3ca0855d3a-lite.chunk.js +0 -2
  290. package/dist/scripts/7795-3ca0855d3a-lite.chunk.js.map +0 -1
  291. package/dist/scripts/7818-2eafc5f812-lite.chunk.js +0 -2
  292. package/dist/scripts/7818-2eafc5f812-lite.chunk.js.map +0 -1
  293. package/dist/scripts/8200-8a55f1631f-lite.chunk.js +0 -3
  294. package/dist/scripts/8200-8a55f1631f-lite.chunk.js.map +0 -1
  295. package/dist/scripts/8323-99cb03891e-lite.chunk.js +0 -3
  296. package/dist/scripts/8323-99cb03891e-lite.chunk.js.map +0 -1
  297. package/dist/scripts/841-0c50273ad2-lite.chunk.js +0 -3
  298. package/dist/scripts/841-0c50273ad2-lite.chunk.js.map +0 -1
  299. package/dist/scripts/8722-c5f95553f2-lite.chunk.js +0 -2
  300. package/dist/scripts/8722-c5f95553f2-lite.chunk.js.map +0 -1
  301. package/dist/scripts/8766-9605550480-lite.chunk.js +0 -2
  302. package/dist/scripts/8766-9605550480-lite.chunk.js.map +0 -1
  303. package/dist/scripts/8800-c88fefeace-lite.chunk.js +0 -2
  304. package/dist/scripts/8800-c88fefeace-lite.chunk.js.map +0 -1
  305. package/dist/scripts/8982-63c31685bf-lite.chunk.js +0 -2
  306. package/dist/scripts/8982-63c31685bf-lite.chunk.js.map +0 -1
  307. package/dist/scripts/9016-0c078a39cb-lite.chunk.js +0 -3
  308. package/dist/scripts/9016-0c078a39cb-lite.chunk.js.map +0 -1
  309. package/dist/scripts/9226-c236c0eeb1-lite.chunk.js +0 -2
  310. package/dist/scripts/9226-c236c0eeb1-lite.chunk.js.map +0 -1
  311. package/dist/scripts/9230-6dee40b1fb-lite.chunk.js +0 -3
  312. package/dist/scripts/9230-6dee40b1fb-lite.chunk.js.map +0 -1
  313. package/dist/scripts/9359-fa72fcdedc-lite.chunk.js +0 -2
  314. package/dist/scripts/9359-fa72fcdedc-lite.chunk.js.map +0 -1
  315. package/dist/scripts/9399-b724e4fb06-lite.chunk.js +0 -2
  316. package/dist/scripts/9399-b724e4fb06-lite.chunk.js.map +0 -1
  317. package/dist/scripts/9719-cf7d4172b6-lite.chunk.js +0 -3
  318. package/dist/scripts/9719-cf7d4172b6-lite.chunk.js.map +0 -1
  319. package/dist/scripts/986-e9379d557d-lite.chunk.js +0 -3
  320. package/dist/scripts/986-e9379d557d-lite.chunk.js.LICENSE.txt +0 -1
  321. package/dist/scripts/986-e9379d557d-lite.chunk.js.map +0 -1
  322. package/dist/scripts/bundle-1e1730f25e.min.js +0 -3
  323. package/dist/scripts/bundle-1e1730f25e.min.js.map +0 -1
  324. /package/dist/css/{9173-lite-b361d438f6.chunk.css → 1104-lite-b361d438f6.chunk.css} +0 -0
  325. /package/dist/css/{679-lite-00eb7dadb2.chunk.css → 2952-lite-00eb7dadb2.chunk.css} +0 -0
  326. /package/dist/css/{1867-lite-ae7bb51ed6.chunk.css → 3640-lite-ae7bb51ed6.chunk.css} +0 -0
  327. /package/dist/css/{4860-lite-93d7fad455.chunk.css → 4063-lite-93d7fad455.chunk.css} +0 -0
  328. /package/dist/css/{729-lite-93d7fad455.chunk.css → 4850-lite-93d7fad455.chunk.css} +0 -0
  329. /package/dist/css/{6546-lite-ae7bb51ed6.chunk.css → 5549-lite-ae7bb51ed6.chunk.css} +0 -0
  330. /package/dist/css/{8766-lite-8c5d7658ec.chunk.css → 7163-lite-8c5d7658ec.chunk.css} +0 -0
  331. /package/dist/css/{1818-lite-5ef1706d69.chunk.css → 7234-lite-5ef1706d69.chunk.css} +0 -0
  332. /package/dist/css/{6415-lite-707657102b.chunk.css → 9173-lite-707657102b.chunk.css} +0 -0
  333. /package/dist/scripts/{1329-7064e95200-lite.chunk.js.LICENSE.txt → 1104-f057c6dea1-lite.chunk.js.LICENSE.txt} +0 -0
  334. /package/dist/scripts/{1379-082bbab71a-lite.chunk.js.LICENSE.txt → 1329-850346e6e6-lite.chunk.js.LICENSE.txt} +0 -0
  335. /package/dist/scripts/{1466-735d7dad48-lite.chunk.js.LICENSE.txt → 1379-976d20185f-lite.chunk.js.LICENSE.txt} +0 -0
  336. /package/dist/scripts/{1672-672f298d82-lite.chunk.js.LICENSE.txt → 1672-60a3ab42f5-lite.chunk.js.LICENSE.txt} +0 -0
  337. /package/dist/scripts/{2004-d891104ed4-lite.chunk.js.LICENSE.txt → 2004-7d1bf8b246-lite.chunk.js.LICENSE.txt} +0 -0
  338. /package/dist/scripts/{537-536e52ef91-lite.chunk.js.LICENSE.txt → 338-e21a3cd6fe-lite.chunk.js.LICENSE.txt} +0 -0
  339. /package/dist/scripts/{5562-e011962a62-lite.chunk.js.LICENSE.txt → 3532-2fed0eb7a4-lite.chunk.js.LICENSE.txt} +0 -0
  340. /package/dist/scripts/{6102-ce44fd00aa-lite.chunk.js.LICENSE.txt → 537-f63ad5863e-lite.chunk.js.LICENSE.txt} +0 -0
  341. /package/dist/scripts/{624-7ab5fb3f3b-lite.chunk.js.LICENSE.txt → 6102-3ddcebe8a1-lite.chunk.js.LICENSE.txt} +0 -0
  342. /package/dist/scripts/{6489-953bb87f64-lite.chunk.js.LICENSE.txt → 624-bf0ff6257f-lite.chunk.js.LICENSE.txt} +0 -0
  343. /package/dist/scripts/{6741-ff3e4a33a5-lite.chunk.js.LICENSE.txt → 6489-9287613d14-lite.chunk.js.LICENSE.txt} +0 -0
  344. /package/dist/scripts/{8200-8a55f1631f-lite.chunk.js.LICENSE.txt → 6741-572db2d1e9-lite.chunk.js.LICENSE.txt} +0 -0
  345. /package/dist/scripts/{8323-99cb03891e-lite.chunk.js.LICENSE.txt → 8200-1e4518c5d8-lite.chunk.js.LICENSE.txt} +0 -0
  346. /package/dist/scripts/{841-0c50273ad2-lite.chunk.js.LICENSE.txt → 8323-fb330a8f47-lite.chunk.js.LICENSE.txt} +0 -0
  347. /package/dist/scripts/{9173-2392d447a6-lite.chunk.js.LICENSE.txt → 841-d69c7f4b4d-lite.chunk.js.LICENSE.txt} +0 -0
  348. /package/dist/scripts/{9016-0c078a39cb-lite.chunk.js.LICENSE.txt → 9016-e17da8b633-lite.chunk.js.LICENSE.txt} +0 -0
  349. /package/dist/scripts/{9230-6dee40b1fb-lite.chunk.js.LICENSE.txt → 9230-537f1fcc38-lite.chunk.js.LICENSE.txt} +0 -0
  350. /package/dist/scripts/{9395-90b87097fa-lite.chunk.js.LICENSE.txt → 9395-e9b5cdbdce-lite.chunk.js.LICENSE.txt} +0 -0
  351. /package/dist/scripts/{9478-99486906b9-lite.chunk.js.LICENSE.txt → 9478-abfa7ed3cc-lite.chunk.js.LICENSE.txt} +0 -0
  352. /package/dist/scripts/{953-cbc7f0571e-lite.chunk.js.LICENSE.txt → 953-bf3d621a33-lite.chunk.js.LICENSE.txt} +0 -0
  353. /package/dist/scripts/{9719-cf7d4172b6-lite.chunk.js.LICENSE.txt → 9719-ed1956607c-lite.chunk.js.LICENSE.txt} +0 -0
  354. /package/dist/scripts/{bundle-1e1730f25e.min.js.LICENSE.txt → bundle-9a72d04e7d.min.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/2952-6a32a90314-lite.chunk.js","mappings":"ilDAYO,IAAMA,EAAc,YACzB,WAAYC,GAAe,O,4FAAA,mBACnBA,GACR,CAEA,O,qRAAA,M,EAAA,G,EAAA,iBACA,WACE,MAAO,eACT,GAEA,gBACA,WACE,MAAO,iBACT,GAEA,yBACA,WACE,MAAO,CACLC,MAAO,cAA0BC,KAAKC,KAAM,WAC5CC,KAAM,cAA0BF,KAAKC,KAAM,QAC3CE,QAAS,CAAC,CACRD,KAAM,cAA0BF,KAAKC,KAAM,QAC3CG,UAAW,eACXC,SAAS,GACR,CACDH,KAAM,cAA0BF,KAAKC,KAAM,SAC3CG,UAAW,eACXE,OAAO,IAGb,M,6EAAC,CA9BwB,C,SAAQ,E,uECL7BC,EAAgB,CAAC,OACjBC,EAAgB,CAAE,MAAO,OAAQ,OAAQ,MAAO,MAAO,OAAQ,OAC/DC,EAAiB,CAAE,MAAO,OAC1BC,EAAkB,CAAE,MAAO,MAAO,QAClCC,EAAkB,CAAE,MAAO,MAAO,MAAO,MAAO,MAAO,QACvDC,EAAgB,UAChBC,EAAoB,CAAE,MAAO,OAC7BC,EAAuB,CAAE,MAAO,MAAO,MAAO,QAE9CC,EAAqB,CAAC,OAEtBC,EAAiB,CACrBC,OAAQ,IAAF,OAAMN,EAAgBO,KAAK,OACjCC,MAAOP,EACPQ,YAAa,IAAF,OAAMT,EAAgBO,KAAK,MAAK,YAAIN,GAC/CS,UAAW,IAAF,OAAM,UACVb,EACAE,EACAI,EACAP,EACAE,EACAE,EACAE,GACHK,KAAK,OACPI,UAAW,IAAF,OAAMP,EAAmBG,KAAK,QAGnCK,EAAsB,CAC1BC,gBAAe,SAACC,GACd,IAAMC,EAAMD,EAAUE,cAEtB,OAAI,WAAWnB,EAAekB,GAAa,WACvC,WAAWhB,EAAiBgB,GAAa,QACzC,WAAWZ,EAAsBY,GAAa,aAC9C,WAAWnB,EAAemB,GAAa,MAEvC,WAAWjB,EAAgBiB,GAAa,OACxC,WAAWf,EAAiBe,GAAa,QACzC,WAAWb,EAAmBa,GAAa,UAC3C,WAAWX,EAAoBW,GAAa,WAEzC,EACT,E,+OCrCF,IAaaE,EAAiB,SAAH,WAAMC,WAAcC,EAAI,EAAJA,KAAMC,EAAO,EAAPA,QAASC,EAAM,EAANA,OAAUC,EAAY,EAAZA,aAAY,OAClF,sBAAI7B,UAAS,yBAAoB4B,EAAS,UAAY,KACnDA,EACG,8BAASF,GACT,gBAAC,IAAO,CAACC,QAASA,GACjBE,GAAgB,gBAAC,IAAY,CAACC,QAAS,iBAA0BC,KAAM,EAAAC,EAAA,QACxE,wBAAMhC,UAAW6B,EAAe,OAAS,IAAKH,IAG/C,EAOMO,EAAc,SAAH,GAAyC,I,IAAnCC,EAAW,EAAXA,YACtBC,GAAW,OAAc,QAEzBC,GAASF,aAAW,EAAXA,EAAaE,SAAU,EAEiB,G,EAArB,YAAe,G,EAAM,E,o4BAA/CC,EAAQ,KAAEC,EAAW,KAS7B,GAPA,aAAgB,W,MACRC,EAAiF,QAA/D,EAAAL,aAAW,EAAXA,EAAaM,QAAO,SAACC,EAAMC,GAAI,OAAKD,EAAOC,EAAKhB,KAAKU,MAAM,GAAE,UAAE,QAAI,EAEvFA,EAAS,GAAKG,EAvCW,IAwC3BD,GAAY,EAChB,GAAG,CAACJ,aAAW,EAAXA,EAAaE,UAEZA,GAAWD,GAAYC,EAAS,EACnC,OAAO,iCAET,GAAID,EACF,OACE,oCAAgB,cACd,sBAAInC,UAAU,sBACZ,gBAACwB,EAAc,CAACC,WAAYS,EAAYE,EAAS,GAAIP,cAAY,MAKzE,IAAMc,EAAQ,gBAACnB,EAAc,CAACC,WAAYS,EAAY,KAChDU,EAAaR,EAAS,EAAI,gBAACZ,EAAc,CAACC,WAAYS,EAAYE,EAAS,KAAS,iCACpFS,EAAO,gBAACrB,EAAc,CAACC,WAAYS,EAAYE,EAAS,KACxDU,EAAOZ,EAAYa,MAAM,EAAGX,EAAS,GAE3C,OACE,oCAAgB,cACd,sBAAIpC,UAAU,sBACX2C,EACAN,EACC,sBAAIrC,UAAU,mBACZ,0BAAQA,UAAU,WAAWgD,QAAS,kBAAMV,GAAY,EAAM,WAIhEQ,EAAKG,KAAI,SAACxB,EAAYyB,GAAG,OAAK,gBAAC1B,EAAc,CAAC2B,IAAKD,EAAKzB,WAAYA,GAAc,IAEnFmB,EACAC,GAIT,EAEaO,EAAqB,QAAW,YAAiD,QAAtCC,SAAAA,OAAQ,IAAG,IAAC,EAGlE,OAFiB,OAAc,QAI3B,uBAAKrD,UAAU,6BAA6BsD,MAAO,CAAEC,OAAQ,YAAaC,MAAO,UAKnF,oCAAgB,cACd,sBAAIxD,UAAU,sBACX,2BAA4C,CAAEqD,SAAAA,IAAYJ,KAAI,WAAYC,GAAG,IAAZM,EAAK,EAALA,MAAK,OACrE,sBAAIL,IAAKD,EAAKlD,UAAU,mBACtB,wBAAMA,UAAU,4CAA4CsD,MAAO,CAAEE,MAAAA,GAASC,wBAAyB,CAAEC,OAAQ,WAC9G,KAKf,G,oMCtGA,IACMC,EAAY,qBADA,4BAoBZ,SAAUC,EAAkBC,GAChC,I,IAAyE,G,EAArB,YAAe,G,EAAM,E,o4BAAjEC,EAAiB,KAAEC,EAAoB,KAE/C,OACE,gBAAC,IAAK,CAACpE,MAAOkE,EAAMlE,MAAOqE,WAAYH,EAAMG,YAC3C,gCACGH,EAAMI,SACP,gBAAC,IAAY,KACX,gBAAC,WAAmB,CAClBjB,QAASa,EAAMG,WACfE,QAASL,EAAMM,oBACfrE,KAAM+D,EAAMO,kBAAoBT,EAAU,YAE5C,gBAAC,WAAmB,CAClBX,QAAS,WAAQe,GAAqB,GAAOF,EAAMQ,gBAAkB,EACrEvE,KAAM+D,EAAMS,mBAAqBX,EAAU,WAC3CO,QAASL,EAAMU,qBACfC,YAAaV,EACbW,SAAUZ,EAAMa,0BAM5B,CA/BAd,EAAkBe,aAAe,CAC/BJ,qBAAsB,UACtBJ,oBAAqB,O,+BCxBvB,IAAYS,E,iBAAZ,SAAYA,GACV,2BACA,sBACD,CAHD,CAAYA,IAAAA,EAAe,I,sHC0BrBC,EAA8B,CAClCC,SAAU,IACVC,UAAW,CACTC,OAAQ,IACRC,UAAW,IACXC,OAAQ,IACRC,QAAS,KAEXC,WAAY,KAGR,SAAUC,EACdC,GAMkC,IALlCC,EAAA,uDAA+B,CAAC,EAKhCC,EAAA,uDAAgC,CAAC,EAEjC,GAAKF,EAAL,CAGA,IAAIG,EAGFA,EADmB,iBAAVH,EACIA,EAEAA,EAAKI,OAGpB,IAAMC,EAAW,OAAH,wBACTd,GACAU,GAGAE,GAGA,yBAAmCA,KAGpCA,IAAe,aAMfA,IAAe,cAUdD,EAAUJ,YACb,aAAuB,IAAIO,EAASP,YAN/BI,EAAUT,WACb,aAAuB,IAAIY,EAASZ,UAAUI,SAX3CK,EAAUV,UACb,aAAuB,IAAIa,EAASb,UAvBhC,CAuCV,C,qKC9EM,SAAUc,EACdC,EACAC,GACuC,I,MAAvCC,EAAA,uDAAqC,GAE3BC,G,EAAc,YAAe,G,EAAM,E,o4BAA1B,GAiBnB,OAfA,aAAgB,WACd,IAAMC,EAAaJ,IAEnB,GAAKI,EASL,OANAA,EAAWC,IAAI,qBACfD,EAAWE,GAAG,qBAAqB,WACjCH,GAAU,SAAAI,GAAC,OAAKA,CAAC,GACnB,IACIN,GACFG,EAAWE,GAAG,SAAUL,GACnB,WAAQG,EAAWC,IAAI,oBAAsB,CACtD,GAAGH,GAEmB,QAAf,EAAAF,WAAe,eAAEQ,QAC1B,C,0ECzBA,SAASC,EAAiBC,GACxB,OAAOA,EAAWtD,KAAI,SAAAuD,GAAG,OAAIA,EAAIf,UAAU,IAAE3E,KAAK,IACpD,CAGM,SAAU2F,EACdC,EACAC,EACAC,GAEA,IAAML,EAAaM,MAAMC,QAAQJ,GAAeA,EAAc,CAACA,IAE/D,IAAAK,YAAU,WACRR,EAAWS,SAAQ,SAAAR,IACjB,OAAgBA,EAAIf,WAAYkB,EAAcC,EAChD,GACF,GAAG,CAAEN,EAAiBC,GAAaI,EAAcC,GACnD,C,qJCvBA,IAAMK,EAAyD,CAC7D5D,SAAU,EACV6D,SAAU,GACVC,SAAU,KAaCC,EAAuB,CAClCC,uBAAsB,WAAoC,I,EAAnCC,EAAA,uDAAiC,CAAC,EACjDC,EAAO,OAAH,wBACLN,GACAK,GAKL,O,EAAWT,MAAMU,EAAKlE,U,omBAAWJ,KAAI,iBAAO,CAAEO,MAAO,GAAF,OAFhBgE,KAAKC,IAAID,KAAKE,MAAMF,KAAKG,SAAWJ,EAAKJ,UAAWI,EAAKL,UAEd,MAAM,GACtF,E,+DCpBWU,EAAiB,CAM5BC,eAAc,SAACC,EAAoBC,G,MAK7BrG,EAJEsG,EAAWF,EAASE,SAW1B,OAJEtG,GALqBqG,aAAiB,EAAjBA,EAAmBE,QAAO,SAAA7B,GAAC,OAAIA,EAAE4B,WAAaA,CAAQ,KAI1D5F,OAAS,EACnB8F,YAAYC,mBAAmBH,GAE/BE,YAAYL,eAAeG,IAEZ,QAAjB,EAAAF,EAASM,gBAAQ,eAAEC,eACtB,cArBU,sBAqB2B,wBAAyB,CAAE3G,KAAAA,IAChEA,CACN,E,0ECnBW4G,EAAmB,CAC9BC,SAAQ,SAACC,GACP,MAAO,CACLC,IAAK,wBAAF,OAA0BD,GAC7BrF,IAAK,aAAF,OAAeqF,GAEtB,EAEAE,eAAc,SAACC,GACb,MAAO,CACLF,IAAK,wBAAF,OAA0BE,EAAO,6BACpCxF,IAAK,UAAF,OAAYwF,EAAO,cAE1B,EAEAC,YAAW,SACTD,EACAJ,EACAtI,EACA4I,EACAC,GAEA,MAAO,CACLL,IAAK,wBAAF,OAA0BE,EAAO,cACpCxF,IAAK,mBAAF,OAAqBoF,EAASQ,QAAU,oBAC3CC,KAAMT,EACNU,KAAM,SACNC,iBAAkB,CAAC,UAAD,OAAYP,EAAO,+BAAwBA,IAC7D1I,QAAAA,EACA4I,MAAAA,EACAC,OAAAA,EAEJ,EAEAK,eAAc,SACZX,EACAQ,EACA/I,EACA4I,EACAC,GAEA,MAAO,CACLL,IAAK,wBAAF,OAA0BD,GAC7BrF,IAAK,mBAAF,OAAqBqF,GACxBQ,KAAAA,EACAC,KAAM,QACNhJ,QAAAA,EACA4I,MAAAA,EACAC,OAAAA,EAEJ,EAEAM,eAAc,SACZZ,EACAG,EACA1I,EACA4I,EACAC,GAEA,MAAO,CACLL,IAAK,wBAAF,OAA0BD,GAC7BrF,IAAK,mBAAF,OAAqBqF,GACxBS,KAAM,WACNC,iBAAkB,CAAC,UAAD,OAAYP,EAAO,+BAAwBA,IAC7D1I,QAAAA,EACA4I,MAAAA,EACAC,OAAAA,EAEJ,E,0ECtEWO,EAAmB,CAC9BvB,SAAQ,SAACU,GACP,MAAO,CACLC,IAAK,wBAAF,OAA0BD,GAC7BrF,IAAK,aAAF,OAAeqF,GAEtB,EAEAc,eAAc,SAACX,GACb,MAAO,CACLF,IAAK,wBAAF,OAA0BE,EAAO,6BACpCxF,IAAK,UAAF,OAAYwF,EAAO,cAE1B,EAEAY,YAAW,SACTZ,EACAb,EACA7H,EACA4I,EACAC,GAEA,MAAO,CACLL,IAAK,wBAAF,OAA0BE,EAAO,cACpCxF,IAAK,mBAAF,OAAqB2E,EAASiB,QAAU,oBAC3CC,KAAMlB,EACNmB,KAAM,SACNC,iBAAkB,UAAF,OAAYP,EAAO,cACnC1I,QAAAA,EACA4I,MAAAA,EACAC,OAAAA,EAEJ,EAEAU,eAAc,SACZhB,EACAG,EACA1I,EACA4I,EACAC,GAEA,MAAO,CACLL,IAAK,wBAAF,OAA0BD,GAC7BrF,IAAK,mBAAF,OAAqBqF,GACxBS,KAAM,WACNC,iBAAkB,UAAF,OAAYP,EAAO,cACnC1I,QAAAA,EACA4I,MAAAA,EACAC,OAAAA,EAEJ,E,sRC9CIW,EAAY,0BACZ9F,EAAY+F,EAAA,mBAAiCD,GAM7C,SAAUE,EAAuC9F,G,UAC/C+F,GAAc,UAEpB,SAASC,EAAWC,GAClBF,EAAYG,cAAc,UAAWD,EACvC,CASA,IAAME,GAAwC,QAA1B,EAAAJ,EAAYK,OAAOH,eAAO,eAAEtB,KAClB,QAA1B,EAAAoB,EAAYK,OAAOH,eAAO,eAAEpI,QAA0B,QAAlB,EAAAmC,EAAMqG,oBAAY,eAAExI,MACxD,GAEJ,OACE,gBAACyI,EAAA,EAAS,CACRC,MAAOzG,EAAU,WACjBjC,KAAK,YAEJ,W,MAAM,OACL,gBAAC2I,EAAA,EAAS,CACRlH,IAA+B,QAA1B,EAAAyG,EAAYK,OAAOH,eAAO,eAAEtB,GACjC8B,aAAcN,EACdO,aAAc,SAACC,GAAS,4DAAoDA,EAAC,EAC7EC,qBAAsBZ,EACtBa,iBAAkB,EAClBC,YAAajB,EAAA,YAA0BD,EAAW,eAClDmB,qBAAqB,EACrBC,uBAAqB,EACrBC,oBAAkB,EAClBC,kBAAmB,kBAAMlB,EAAW,CAAC,EAAE,EACvCmB,cAAc,G,GAKxB,C,wDCxDA,SAAgB,eAAiB,QAAQ,YAAc,QAAQ,kBAAoB,SCkB7E,SAAUC,EAA0CpH,GACxD,IAAM+F,GAAc,UAEdsB,GAAe,QAAMtB,aAAW,EAAXA,EAAaK,OAAQpG,EAAMsH,WAEhDC,EAAY,cAAiB,SACjCC,EACAC,GAA6C,OAE7C,uBAAKtL,UAAS,4BAAuB,mBACnC,yBACE0B,KAAMmC,EAAMsH,UACZR,YAAa9G,EAAM8G,YACnB3K,UAAU,eACVuL,MAAOF,EAAeE,MACtBC,SAAUH,EAAeG,SACzBxI,QAASqI,EAAerI,QACxByI,UAAW,SAACC,GAAsB,OAAKA,EAAEC,gBAAgB,EACzDL,IAAKA,EACLM,aAAa,QAEf,uBAAK5L,UAAW,uBACXkL,GACD,uBAAKlL,UAAS,uDAAkD,gBAC9D,gBAAC6L,EAAA,EAAY,CACX/J,QAAS,WACTC,KAAM8J,EAAA7J,EAAA,SACNgB,QAAS,kBAAM4G,EAAYG,cAAclG,EAAMsH,UAAW,KAAK,KAIrE,uBAAKnL,UAAU,iCACb,gBAAC6L,EAAA,EAAY,CACX/J,QAAS,cACTC,KAAM8J,EAAA7J,EAAA,SACNgB,QAASqI,EAAerI,YAI1B,IAGR,OACE,gBAACmH,EAAA,EAAS,CACRC,MAAOvG,EAAMuG,MACb1I,KAAMmC,EAAMsH,YAEX,kBACC,gBAAC,IAAU,CACTW,SAAUZ,EAAe,IAAIa,KAAKb,GAAgB,KAClDM,SAAU,SAACQ,GAAU,OAAKpC,EAAYG,cAAclG,EAAMsH,UAAWa,EAAKC,cAAc,EACxFC,WAAY,cACZC,QAAStI,EAAMsI,QACfC,mBAAiB,EACjBC,kBAAgB,EAChBC,YAAa,gBAAClB,EAAS,OACvB,GAIV,C,4HC9EA,SAAgB,WAAa,QAAQ,eAAiB,S,qnDCwBtD,IAAM,EAAY,qBACZ,EAAY1B,EAAA,mBAAiC,GA0B7C,SAAU6C,EAAuC1I,GACrD,IACE2I,EACE3I,EADF2I,UAAWC,EACT5I,EADS4I,UAAW9K,EACpBkC,EADoBlC,QAAS+K,EAC7B7I,EAD6B6I,aAAcC,EAC3C9I,EAD2C8I,iBAAkBC,EAC7D/I,EAD6D+I,YAG3DhD,GAAc,UAEdiD,GAAe,QAAMjD,aAAW,EAAXA,EAAaK,OAAQwC,GAEhD,EAAgD,aAAiBK,EAAA,GAAzDC,EAAU,EAAVA,WAAYC,EAAQ,EAARA,SAAUC,EAAa,EAAbA,cAEmC,IAArB,YAAe,GAAM,GAAzDC,EAAa,KAAEC,EAAgB,KACwB,IAAnC,WAAsBN,GAAa,GAAvDO,EAAK,KAAEC,EAAQ,KAevB,SAASC,EAAYC,GACnBJ,GAAiB,GACjBJ,EAAWQ,EAAQC,KAGnB,eAA2B,OAAD,wBACrB7L,GAAO,CACV8L,KAAM,CAACjB,KAEX,CAmCA,OApDA,aAAgB,WACTK,GACHQ,EAAS,OAEPR,aAAY,EAAZA,EAAcpE,MAChB4E,EAASR,EACb,GAAG,CAACA,IA+BJ,aAAgB,WACd,GAAKK,EAAL,CAGA,IAtBqBQ,EAsBfC,EAAWX,IAEZW,IAILR,GAAiB,GACjBE,EAASM,GA7BYD,EA8BPC,EA7BVC,EAAA,aAA0BjB,GAC5BA,EAAiBe,GAId9D,GAMLA,EAAYG,cAAc0C,EAAW,CACnC1D,OAAQ2E,EAAclF,IAAMkF,EAAc3E,OAC1C8E,WAAY,kBAMN,CAWV,GAAG,CAACZ,IAGF,uBAAKjN,UAAU,UACb,uBAAKA,UAAS,2BAAsB,mBACjC4M,GAAeQ,GAAS,gBAACvB,EAAA,EAAY,CACpC/J,QAAS,YACTkB,QAAS,kBAAM4J,EAAYH,EAAU,EACrCzM,UAAS,uCAAmC,gBAG9C,gBAAC8N,EAAA,EAAS,CACR9E,KAAMoE,EACNZ,UAAWA,EACXuB,aAAc,CAAEhM,KAAM,cAGrB2K,EACG,uBAAK1M,UAAW0M,IAChB,gBAACsB,EAAA,GAAa,CAAC/E,KAAMpF,EAAMoK,sBAInC,sBAAIjO,UAAU,yCACZ,gBAACkO,EAAA,EAAI,CACHzE,UAAW,EACX0E,OAAO,gBACP7G,QAAS,CACP9D,MAAO,IAAmBgJ,GAAWhJ,MACrCD,OAAQ,IAAmBiJ,GAAWjJ,WAI5C,gBAAC6K,EAAA,EAAgB,CACfpO,UAAS,kBAAa6D,EAAMwK,WAAU,UACtCC,SAAU,WACVC,aAAc,SAACC,GAAe,OAAKC,EAAA,eAA+BjC,EAAWgC,EAAOlB,EAAY,GAjIxG,SAAkBd,GAMhB,OALY,SACT,gBAAuB,EAAU,qBACjC,YAAmB,EAAU,iBAC7B,aAAoB,EAAU,kBAEnBA,EAChB,CA4HSkC,CAASlC,IAIlB,CAnHAD,EAAY5H,aAAe,CACzB0J,WAAY,S,0BCrCR,EAAY3E,EAAA,mBADA,0BAUZ,SAAUiF,GAAqD9K,GACnE,IAAM+F,GAAc,UAMpB,OACE,gBAACO,EAAA,EAAS,CACRC,MAAO,EAAU,UACjB1I,KAAK,WAEJ,kBACC,2BACE,gBAACkN,EAAA,EAAW,KACT/K,EAAMgL,QAAQ5L,KAAI,SAAC+B,EAAQ9B,G,QAC1B,IAAK8B,EAAO8J,KACV,OAAO,gBAAC,WAAc,CAAC3L,IAAKD,IAE9B,IAAM6L,EAAW/J,EAAOwD,GAAGwG,cAA4C,QAA7B,EAAyB,QAAzB,EAAApF,EAAYK,OAAOjF,cAAM,eAAEwD,UAAE,eAAEwG,YAEzE,OACE,gBAACC,EAAA,EAAO,CAAC9L,IAAKD,EAAKvD,MAAOqF,EAAOtD,MAC/B,gBAACwN,EAAA,EAAM,CACLhL,QAAQ,QACRlB,QAAS,YAtB3B,SAAmBgC,GACjB4E,EAAYG,cAAc,SAAU/E,EACtC,CAqBoBmK,CAAUJ,EAAW,KAAO/J,EAC9B,EACApD,OAAQmN,EACRtK,SAAUZ,EAAMY,UAEfO,EAAO8J,MAIhB,KAEE,GAId,C,gBC7DA,UAAgB,MAAQ,QAAQ,OAAS,S,uGC2BzC,IAAM,GAAY,0BACZ,GAAYpF,EAAA,mBAAiC,IAC7C0F,GAAc,+BAadC,GAAwB,OAAaC,MAA0B,CACnE5N,KAAM,OACH6N,OACA9H,IAAI,KAAK,kBAAM,GAAU,eAAe,IACxC+H,UAAS,kBAAM,GAAU,gBAAgB,IAAC,QAClC,IAEXC,YAAa,OACVF,OACA9H,IAAI,MAAO,kBAAM,GAAU,qBAAqB,IAAC,QACzC,IAEXzC,OAAQ,OACLsK,MAA0B,CACzB9G,GAAI,SACJ,QACO,CAAC,GACTkH,WACAC,YAEHC,cAAe,OACZL,OACAG,WAEH5F,QAAS,OACNwF,MAA2B,CAC1B9G,GAAI,SACJ,QACO,CAAC,GACTkH,WACAC,YAEHE,UAAW,OACRP,MAAiB,CAChB9G,GAAI,OACJO,OAAQ,OACR8E,WAAY,OACZpF,IAAK,SACL,QACO,CAAC,GACTkH,cAEFA,YAsBH,SAASG,GAAiBjM,GACxB,I,IAAM+F,GAAc,UAE6D,G,EAArB,YAAe,G,EAAM,E,s4BAAzEmG,EAAqB,KAAEC,EAAwB,KAEjDC,GAAU,EAAAC,GAAA,KAiBhB,OAbA,aAAgB,W,MACVtG,EAAYuG,OACdF,EAAQG,KAAK,CACX5H,GAAI4G,GACJzP,MAAO+J,EAAA,YAA0B,GAAW,gBAC5C5J,KAAM4J,EAAA,YAA0B,GAAW,eAC3C2G,iBAA+C,QAA7B,EAAAxM,EAAMyM,+BAAuB,QAAI,KAGlD1G,EAAYuG,OAZKF,EAAQM,OAAOnB,GAcvC,GAAG,CAACxF,EAAYuG,QAGd,gCACE,gBAAC,KAAI,KACH,gBAACK,EAAA,EAAG,KACF,uBAAKxQ,UAAU,2BACb,sBAAIA,UAAU,MAAM,GAAU,cAC9B,gBAACuM,EAAW,CACVC,UAAW,gBACXC,UAAU,YACV9K,QAASkC,EAAM4M,mBACfpC,WAAYxK,EAAM6M,oBAClBzC,kBAAmBD,EAAA,YAGvB,uBAAKhO,UAAU,2BACb,gBAACwQ,EAAA,EAAG,KACF,uBAAKxQ,UAAU,yCACb,sBAAIA,UAAU,MAAM,GAAU,qBAC9B,6BACK4J,EAAYuG,OACb,gBAACjB,EAAA,EAAM,CAAChL,QAAQ,OAAOlB,QAAS,kBAAMgN,GAAyB,EAAK,GACjE,GAAU,gBAGf,gBAACW,EAAA,EAAW,CAACC,OAAO,EAAO1M,QAASL,EAAMgN,oBAIhD,gBAACL,EAAA,EAAG,KACF,uBAAKxQ,UAAS,wBAAmB,WAC/B,gBAACmK,EAAA,EAAS,CACRC,MAAO,GAAU,SACjBnB,KAAK,OACLvH,KAAK,OACL8G,GAAG,OACH+C,MAAO3B,EAAYK,OAAOvI,KAC1BiJ,YAAa,GAAU,wBAGzB9G,EAAMiN,YACN,uBAAK9Q,UAAS,wBAAmB,YAC/B,gBAAC2O,GAAY,CAAqBE,QAAShL,EAAMgL,QAASpK,SAAUZ,EAAMkN,mBAIhF,gBAACP,EAAA,EAAG,KACF,uBAAKxQ,UAAU,aACb,gBAACmK,EAAA,EAAS,CACRC,MAAO,GAAU,eACjB4G,GAAG,WACHtP,KAAK,cACL8G,GAAG,cACH+C,MAAO3B,EAAYK,OAAOwF,YAC1B9E,YAAa,GAAU,+BAI3B9G,EAAMoN,mBACN,gBAACT,EAAA,EAAG,KACF,uBAAKxQ,UAAU,YACb,gBAACiL,EAAmB,CAClBb,MAAO,GAAU,iBACjBO,YAAa,GAAU,4BACvBQ,UAAU,gBACVgB,QAAS,IAAIJ,QAGjB,uBAAK/L,UAAU,YACb,gBAAC2J,EAAgB,CAACO,aAAcrG,EAAMqN,sBAOjDnB,GACC,gBAACnM,EAAA,EAAiB,CAChBjE,MAAO,GAAU,kBACjB0E,eAAgB,WAAQuF,EAAYuH,YAAanB,GAAyB,EAAQ,EAClFhM,WAAY,kBAAMgM,GAAyB,EAAM,EACjD1L,kBAAmB,GAAU,oBAC7BF,iBAAkB,GAAU,mBAC5BG,qBAAqB,UAErB,yBACE,gBAAC2J,EAAA,EAAI,CACHC,OAAO,gBACP1E,UAAW,GACXnC,QAAS,CAAE8J,UAAWxH,EAAYyH,cAAc3P,UAO9D,CAkBM,SAAU4P,GAAiBzN,GAC/B,OACE,gBAAC0N,EAAA,EAAW,CACVF,eArNoBG,EAqNY3N,EAAM2N,MApNnC,CACL9P,KAAM8P,EAAM9P,KACZ+N,YAAa+B,EAAM/B,YACnBG,cAAe4B,EAAM5B,cACrB5K,OAAQwM,EAAMxM,OACd8E,QAAS0H,EAAM1H,QAAU,CAAEtB,GAAIgJ,EAAM1H,QAAQtB,IAAO,KACpDqH,UAAW2B,EAAM3B,YA+Mf4B,iBAAkBpC,GAClBqC,SAAU7N,EAAM8N,WAEhB,gBAAC7B,GAAgB,CACftH,GAAI3E,EAAM2N,OAAS3N,EAAM2N,MAAMhJ,GAC/BuI,eAAgBlN,EAAMkN,eACtBlC,QAAShL,EAAMgL,QACfqC,eAAgBrN,EAAM2N,MAAM1H,QAC5B2G,mBAAoB5M,EAAM4M,mBAC1BQ,kBAAmBpN,EAAMoN,kBACzBH,WAAYjN,EAAMiN,WAClBR,wBAAyBzM,EAAMyM,wBAC/BO,eAAgBhN,EAAMgN,eACtBH,oBAAqB7M,EAAM6M,uBAnOnC,IAA0Bc,CAuO1B,CAhKA1B,GAAiBnL,aAAe,CAC9BkM,eAAgB,WCvGlB,UAAgB,OAAS,QAAQ,UAAY,QAAQ,mBAAqB,QAAQ,MAAQ,QAAQ,QAAU,SCGtG,SAAUe,KACd,OACE,uBAAK5R,UAAU,OACb,uBAAKA,UAAU,2BACb,uBAAKA,UAAS,0CAAqC,aACnD,uBAAKA,UAAS,gDAA2C,yBACzD,0BAAQA,UAAU,6CAA2C,MAE/D,uBAAKA,UAAU,2BACb,uBAAKA,UAAS,0CAAqC,aAEnD,uBAAKA,UAAS,0CAAqC,gBACnD,uBAAKA,UAAS,0CAAqC,YAEnD,uBAAKA,UAAS,0CAAqC,gBACnD,uBAAKA,UAAS,0CAAqC,cAEnD,uBAAKA,UAAS,0CAAqC,gBACnD,uBAAKA,UAAS,0CAAqC,aAI3D,CCzBA,UAAgB,OAAS,QAAQ,KAAO,QAAQ,OAAS,SCGnD,SAAU6R,KACd,OACE,uBAAK7R,UAAU,kBACb,uBAAKA,UAAU,2BACb,uBAAKA,UAAS,0CAAqC,aACnD,uBAAKA,UAAS,0CAAqC,WACnD,uBAAKA,UAAS,0CAAqC,cAErD,uBAAKA,UAAU,2BACb,uBAAKA,UAAS,0CAAqC,aACnD,uBAAKA,UAAS,0CAAqC,WACnD,uBAAKA,UAAS,0CAAqC,cAErD,uBAAKA,UAAU,2BACb,uBAAKA,UAAS,0CAAqC,aACnD,uBAAKA,UAAS,0CAAqC,WACnD,uBAAKA,UAAS,0CAAqC,cAI3D,C,gBCvBA,UAAgB,cAAgB,SCYhC,IACM,GAAY0J,EAAA,mBADA,yBASlB,SAASoI,GAASjO,GAChB,OACE,uBAAK7D,UAAS,0DAAqD,mBACjE,4BACE,wBAAMA,UAAU,yCACd,gBAAC6L,EAAA,EAAY,CAAC/J,QAAS,aAEzB,qBAAGiQ,KAAMlO,EAAMmO,KAAKvJ,IAAKwJ,OAAO,SAASjS,UAAU,qBAAqB6D,EAAMmO,KAAKtQ,OAErF,wBAAM1B,UAAU,iCACd,gBAAC6L,EAAA,EAAY,CAAC/J,QAAS,UAAmBkB,QAAS,kBAAMa,EAAMqO,SAASrO,EAAMmO,KAAKxJ,GAAG,IACtF,gBAACqD,EAAA,EAAY,CAAC/J,QAAS,YAAqBkB,QAAS,kBAAMa,EAAMsO,WAAWtO,EAAMmO,KAAKxJ,GAAG,KAIlG,CAWM,SAAU4J,GAAevO,G,MAC7B,OACE,gCACE,sBAAI7D,UAAU,MAAM,GAAU,YAC9B,yBAAI,GAAU,gBACd,uBAAKA,UAAU,SACD,QAAX,EAAA6D,EAAMwO,aAAK,eAAEjQ,QAASyB,EAAMyO,MACzB,gBAACC,GAAA,EAAQ,CAACC,SAAU3O,EAAM4O,QAASC,iBAAkB,GAAU,UAAWC,oBAAqB9O,EAAMwK,aAErG,qBAAGrO,UAAU,4BACV,GAAU,QAAS,CAAEsS,MAAOzO,EAAMyO,UAK1CzO,EAAMwO,MAAMpP,KAAI,SAAC2P,EAAG1P,GAAG,OACtB,gBAAC4O,GAAQ,CAAC3O,IAAKD,EAAK8O,KAAMY,EAAGV,SAAUrO,EAAMqO,SAAUC,WAAYtO,EAAMsO,YAAc,IAG/F,C,wgDC9DA,IAAMtS,GAAO,sBAEAgT,GAAkB,YAC7B,oB,4FAAA,oBACQnJ,EAAA,YAA0B7J,GAAM,UACxC,CAEA,O,sRAAA,M,EAAA,G,EAAA,iBACA,WACE,MAAO,mBACT,GAEA,yBACA,WACE,MAAO,CACLF,MAAO+J,EAAA,YAA0B7J,GAAM,WACvCC,KAAM4J,EAAA,YAA0B7J,GAAM,QACtCE,QAAS,CAAC,CACRD,KAAM4J,EAAA,YAA0B7J,GAAM,QACtCG,UAAW,eACXC,SAAS,IAGf,M,8EAAC,CArB4B,CAAQ6S,GAAA,GCNvC,UAAgB,SAAW,QAAQ,WAAa,QAAQ,SAAW,S,uGCanE,IAAM,GAAYpJ,EAAA,mBAAiC,qBAiB7C,SAAUqJ,GAAWlP,GACzB,OAAsD,SAAY,CAChEmP,OAAQ,SAACC,GAAqB,OAAKpP,EAAMqP,aAAaD,EAAe,cAAyB,EAC9FE,SAAS,EACTC,YAAY,EACZC,WAAYxP,EAAMyP,eAClBC,eAAgB,SAACC,GAWXA,EAAcpR,OAAS,IAAMyB,EAAMyP,eACrC,aAAuB,IAAIT,IAI7B,aAAuB,IAAIpT,GAAA,EAAc,GAAU,oBACrD,IAtBMgU,EAAY,EAAZA,aAAcC,EAAa,EAAbA,cAAeC,EAAY,EAAZA,aAyBjC3T,EAAY,OAAH,OAAU,aAKvB,OAHI2T,IACF3T,GAAa,IAAJ,OAAQ,gBAEf6D,EAAM+P,gBAAkB/P,EAAMgQ,eAE9B,qBAAG7T,UAAU,4BAA4B6D,EAAM+P,gBAIjD,gCACE,uCAASH,EAAa,CAAEzT,UAAAA,KACtB,gBAACoO,EAAA,EAAgB,CACfpO,UAAS,kBAAa6D,EAAMwK,YAC5BE,aAAc,SAACC,GAAe,OAAK3K,EAAMqP,a,gDAAiB1E,I,ojBAAQ,iB,KAA2B,EAC7FF,SAAUzK,EAAMyK,SAChBgF,eAAgBzP,EAAMyP,gBAErBzP,EAAMiQ,SAAW,GAAU,aAE3BjQ,EAAMkQ,eACP,wBAAM/T,UAAU,oCAAoC6D,EAAMkQ,eAE3DJ,GAAgB,uBAAK3T,UAAW,cACjC,yCAAW0T,OAInB,CA3DAX,GAAWpO,aAAe,CACxB0J,WAAY,S,sCC3Bd,UAAgB,aAAe,QAAQ,SAAW,S,o9CCc3C,IAAM2F,GAAoB,YAG/B,WAAY1M,GAAmC,O,4FAAA,oBACvCA,GACR,CAAC,O,sRAAA,M,EAAA,G,EAAA,yBAEM,WACL1H,KAAKqU,SAASrU,KAAKsU,MAAO,kBAAmBtU,KAAKuU,OACpD,GAEA,gBACA,WACE,MAAO,qBACT,GAEA,oBACA,WACE,OAAO,IACT,GAAC,oBAEM,WACL,MAAO,CACL,uBAAwB,sBAE5B,GAAC,iCAEO,WACDvG,EAAA,aAA0BhO,KAAK0H,QAAQ8M,sBAG5CxU,KAAK0H,QAAQ8M,oBAAoBxU,KAAKsU,MAAMG,IAAI,MAClD,GAAC,yBAEM,WACL,MAAO,CACLC,OAAA,GACAC,IAAKC,EAAA,UAAiB,aACtBC,QAASD,EAAA,UAAiB,YAC1BE,SAAU9U,KAAKsU,MAAMG,IAAI,aAAe,IAE5C,M,8EAAC,CAzC8B,CAAQ,QCFzC,SAASM,GAAe9Q,GACtB,IAAMqQ,EAAQ,WAAc,kBAAM,IAAI,OAAWrQ,EAAM+Q,OAAO,GAAE,CAAC/Q,EAAM+Q,SAEvE,OACE,gBAACC,GAAA,EAAmB,CAClBC,KAAMd,GACN1M,QAAS,CACP4M,MAAAA,EACAE,oBAAqBvQ,EAAMkR,cAE7BhP,aAAc,CAAClC,EAAM+Q,SAG3B,CAOM,SAAUI,GAAenR,G,MAC7B,OAAkB,QAAb,EAAAA,EAAMoR,eAAO,eAAE7S,QAIlB,gCACGyB,EAAMoR,QAAQhS,KAAI,SAACiS,EAAGhS,GAAG,OACxB,gBAACyR,GAAc,CACbxR,IAAKD,EACL0R,OAAQM,EACRH,aAAclR,EAAMkR,cACpB,KATC,gCAaX,C,2/CCzBO,ICvBKI,GDuBCC,GAAsB,YAGjC,WAAY9N,GAAqC,O,4FAAA,oBACzCA,GACR,CAEA,O,sRAAA,M,EAAA,G,EAAA,iBACA,WACE,MAAO,uBACT,GAEA,oBACA,WACE,OAAO,IACT,GAEA,qBACA,WACE,MAAO,GAAP,OEzCwB,QFyCE,oBAC5B,GAAC,oBAEM,WACL,MAAO,CACL,gBAAiB,gBACjB,cAAe,cAEnB,GAEA,oBACA,WACE,MAAO,CACL,QAAS1H,KAAK0H,QAAQ+N,eAAezV,KAAKsU,MAAMG,IAAI,OAExD,GAEA,yBACQ,WACN,IAAMiB,EAAmBC,EAAA,eAA6B3V,KAAK0H,QAAQgO,iBAAkB,CACnFE,WAAY,UACZC,OAAQ,cACRC,cAAe,aAGX1M,EAAO,CACXR,GAAI5I,KAAKsU,MAAMG,IAAI,MACnBsB,UAAW/V,KAAK0H,QAAQqB,SAG1B4M,EAAA,gBAA8BvM,EAAMsM,EACtC,GAAC,2BAEO,WACD1H,EAAA,aAA0BhO,KAAK0H,QAAQsO,gBAG5ChW,KAAK0H,QAAQsO,cAAchW,KAAKsU,MAClC,GAAC,yBAEM,WACL,IAAM9L,EAAWxI,KAAKsU,MAAMG,IAAI,YAC1BwB,EAAWzN,EAAWA,EAASa,KAAO,GAE5C,MAAO,CACL6M,SAAUlW,KAAK0H,QAAQwO,SACvBzU,UAAW0U,GAAA,qBAAsCF,GACjDtB,IAAKC,EAAA,UAAiBuB,GAAA,eAAgCF,IACtDG,UAAWD,GAAA,iBAAkCF,GAC7CI,aAAcF,GAAA,gBAAiCF,GAC/CK,QAAS1B,EAAA,UAAiB,WAC1B2B,SAAU3B,EAAA,UAAiB,aAE/B,M,8EAAC,CAxEgC,CAAQ,QGJ3C,SAAS,GAAa3Q,GACpB,IAAMqQ,EAAQ,WAAc,kBAAM,IAAI,OAAW,OAAD,UAAMrQ,EAAM0E,UAAW,GAAE,CAAC1E,EAAM0E,WAEhF,OACE,gBAACsM,GAAA,EAAmB,CAClBC,KAAMM,GACN9N,QAAS,CACP4M,MAAAA,EACAvL,QAAS9E,EAAM8E,QACfmN,SAAUjS,EAAMiS,SAChBT,eAAgBxR,EAAMwR,eACtBO,cAAe,SAACrN,GAAoB,OAAK1E,EAAM+R,cAAcrN,EAAS8L,IAAI,MAAM,EAChFiB,iBAAkBzR,EAAMyR,kBAE1BvP,aAAc,CAAElC,EAAM0E,SAAU1E,EAAM8E,UAG5C,CAWM,SAAUyN,GAAavS,G,MAC3B,OAAoB,QAAf,EAAAA,EAAMwS,iBAAS,eAAEjU,QAIpB,gCACGyB,EAAMwS,UAAUpT,KAAI,SAACqT,EAAGpT,GAAG,OAC1B,gBAAC,GAAY,CACXC,IAAKD,EACLqF,SAAU+N,EACV3N,QAAS9E,EAAM8E,QACfmN,SAAUjS,EAAMiS,SAChBT,eAAgBxR,EAAMwR,eACtBO,cAAe/R,EAAM+R,cACrBN,iBAAkBzR,EAAMyR,kBACxB,KAbC,gCAiBX,EFlEA,SAAYH,GACV,2BACA,4BACD,CAHD,CAAYA,KAAAA,GAAe,K,gBGgBdoB,GAAoB,CAC/BC,aAAY,SAAChF,GACX,OAAIA,EAAMiF,WACDjF,EAAMiF,WAAWlL,MAf9B,SAAkCiG,G,QAChC,OAA6B,QAAtB,EAAgB,QAAhB,EAAAA,aAAK,EAALA,EAAOkF,iBAAS,eAAE1N,YAAI,eAAE2N,OAAM,SAAA/D,GAAC,OAAIA,EAAE3J,OAAS2N,GAAA,eAA+B,GACtF,CAeWC,CAAyBrF,IAbpC,SAA8BA,G,QAC5B,OAA6B,QAAtB,EAAgB,QAAhB,EAAAA,aAAK,EAALA,EAAOkF,iBAAS,eAAE1N,YAAI,eAAE2N,OAAM,SAAA/D,GAAC,OAAIA,EAAE3J,OAAS2N,GAAA,WAA2B,GAClF,CAW8CE,CAAqBtF,EACjE,EAEAuF,yBAAwB,SACtBC,EACAC,EACAC,GAEA,OAAOF,EAAQ/O,QAAO,SAACkP,G,MACfC,EAAkC,QAAf,EAAAD,EAAOE,gBAAQ,eAAE7O,GAE1C,OAAK4O,GAAoBH,IAAU9B,GAAgBmC,YAG5CF,aAAgB,EAAhBA,EAAkBpI,eAAekI,aAAiB,EAAjBA,EAAmBlI,aAAciI,IAAU9B,GAAgBoC,QACrG,GACF,GClBI,GAAY7N,EAAA,mBADA,6BAiBZ,SAAU8N,GAAmB3T,G,MAC3B4T,GAAoBlB,GAAkBC,aAAa3S,EAAM2N,OAEzDkG,EAAoBD,EACtBlB,GAAkBQ,yBAAyBlT,EAAMwS,UAAWlB,GAAgBoC,SAAU1T,EAAM8T,uBAC5F9T,EAAMwS,UAEJuB,IAAuBH,GAAoBlB,GAAkBQ,yBACjElT,EAAMwS,UACNlB,GAAgBmC,WAGlB,OACE,mCACKM,aAAkB,EAAlBA,EAAoBxV,SACrB,gCACE,sBAAIpC,UAAU,MAAM,GAAU,uBAC9B,gBAACoW,GAAY,CACXC,UAAWuB,EACXjP,QAAS9E,EAAM2N,MAAMhJ,GACrB6M,eAAgBxR,EAAMwR,eACtBO,cAAe/R,EAAM+R,cACrBN,iBAAkBzR,EAAMyR,iBACxBQ,UAAU,KAIhB,uBAAK9V,UAAU,QACb,0BAAwB,GAAnByX,EAA6B,oBAAiC,cACnE,qBAAGhU,wBAAyB,CAAEC,OAAQ,GAAU,2BAChD,gBAACqP,GAAU,CACTG,aAAcrP,EAAMgU,iBACpB9D,cAAe,GAAU,wBACzBzF,SAAU,cACVsF,eAAgB,GAAU,iBAAkB,CAAEtB,MAAOzO,EAAMiU,gBAC3DjE,gBAA+B,QAAf,EAAAhQ,EAAMwS,iBAAS,eAAEjU,SAAUyB,EAAMiU,cACjDzJ,WAAYxK,EAAMwK,WAClBiF,gBAAc,KAGlB,gBAAC0B,GAAc,CAACC,QAASpR,EAAMkU,eAAgBhD,aAAclR,EAAMkR,eACnE,gBAACqB,GAAY,CACXC,UAAWqB,EACX/O,QAAS9E,EAAM2N,MAAMhJ,GACrB6M,eAAgBxR,EAAMwR,eACtBO,cAAe/R,EAAM+R,cACrBN,iBAAkBzR,EAAMyR,iBACxBQ,UAAW2B,IAInB,C,uCCrFA,UAAgB,UAAY,QAAQ,aAAe,QAAQ,UAAY,S,o9CCiBhE,IAAMO,GAAsB,YAGjC,WAAY1Q,GAAqC,O,4FAAA,oBACzCA,GACR,CAEA,O,sRAAA,M,EAAA,G,EAAA,iBACA,WACE,MAAO,uBACT,GAEA,oBACA,WACE,OAAO,IACT,GAEA,qBACA,WACE,MAAO,GAAP,OAAU,aAAgB,oBAC5B,GAAC,oBAEM,WACL,MAAO,CACL,gBAAiB,gBAErB,GAAC,4BAEO,WACN,OAAOM,GAAA,iBAA8BhI,KAAKsU,MAAM7N,SAAUzG,KAAKsU,MAAMjO,WAAWI,SAClF,GAAC,2BAEO,YACFzG,KAAK0H,QAAQ2Q,oBAAuBrK,EAAA,aAA0BhO,KAAK0H,QAAQsO,gBAG/EhW,KAAK0H,QAAQsO,cAAchW,KAAKsU,MAClC,GAAC,yBAEM,WACL,MAAO,CACLI,OAAA,GACAC,IAAKC,EAAA,UAAiBuB,GAAA,eAAgC,aACtDI,SAAU3B,EAAA,UAAiB,aAC3B9S,KAAM9B,KAAKiI,iBACXoQ,mBAAoBrY,KAAK0H,QAAQ2Q,mBAErC,M,8EAAC,CA/CgC,CAAQ,QCJ3C,SAASC,GAAarU,GACpB,OACE,gBAACgR,GAAA,EAAmB,CAClBC,KAAMkD,GACN1Q,QAAS,CACP4M,MAAOrQ,EAAMiE,SACb8N,cAAe,SAAC9N,GAAoB,OAAKjE,EAAM+R,cAAc9N,EAASuM,IAAI,MAAM,EAChF4D,mBAAoBpU,EAAMoU,oBAE5BlS,aAAc,CAAClC,EAAMiE,WAG3B,CAQM,SAAUqQ,GAAatU,G,MAKrBoC,EAAa,WAAc,kBAAM,IAAI,OAAgBpC,EAAMuU,UAAU,GAAE,CAACvU,EAAMuU,YAEpF,OAAoB,QAAf,EAAAvU,EAAMuU,iBAAS,eAAEhW,QAIpB,gCACG6D,EAAWhD,KAAI,SAAC6E,EAAU5E,GAAG,OAC5B,gBAACgV,GAAY,CACX/U,IAAKD,EACL4E,SAAUA,EACV8N,cAAe/R,EAAM+R,cACrBqC,mBAAoBpU,EAAMoU,oBAC1B,KAVC,gCAcX,CCzCA,IACM,GAAYvO,EAAA,mBADA,6BAeZ,SAAU2O,GAAmBxU,G,MAC3B4T,GAAoBlB,GAAkBC,aAAa3S,EAAM2N,OAEzD8G,EAAoBb,EACtBlB,GAAkBQ,yBAAyBlT,EAAMuU,UAAWjD,GAAgBoC,SAAU1T,EAAM8T,uBAC5F9T,EAAMuU,UAEJG,IAAuBd,GAAoBlB,GAAkBQ,yBACjElT,EAAMuU,UACNjD,GAAgBmC,WAGlB,OACE,mCACKiB,aAAkB,EAAlBA,EAAoBnW,SACrB,gCACE,sBAAIpC,UAAU,MAAM,GAAU,uBAC9B,gBAACmY,GAAY,CACXC,UAAWG,EACX3C,cAAe/R,EAAM+R,cACrBqC,mBAAoBR,KAI1B,uBAAKzX,UAAU,QACb,0BAAwB,GAAnByX,EAA6B,oBAAiC,cACnE,qBACEhU,wBAAyB,CACvBC,OAAQ,GAAU,uBAAwB,CAAE4O,MAAOzO,EAAM2U,mBAG7D,gBAACzF,GAAU,CACTG,aAAcrP,EAAM4U,iBACpB1E,cAAe,GAAU,wBACzBzF,SAAU,cACVsF,eAAgB,GAAU,iBAAkB,CAAEtB,MAAOzO,EAAM2U,gBAC3D3E,gBAA+B,QAAf,EAAAhQ,EAAMuU,iBAAS,eAAEhW,SAAUyB,EAAM2U,cACjDnK,WAAYxK,EAAMwK,cAGtB,gBAAC2G,GAAc,CAACC,QAASpR,EAAMkU,eAAgBhD,aAAclR,EAAMkR,eACnE,gBAACoD,GAAY,CACXC,UAAWE,EACX1C,cAAe/R,EAAM+R,cACrBqC,mBAAoBR,IAI5B,C,8IClEA,IACM,GAAY/N,EAAA,mBADA,yBAGZgP,GAAmB,EAEzB,SAASC,GAAmBC,GAC1B,IAAMC,EAAsB,GAE5B,IAAKD,EACH,OAAOC,EAET,IAAMC,EAAuB5Q,YAAY6Q,uBAAuBH,GAMhE,OAJAI,OAAOC,KAAKH,GAAU9R,SAAQ,SAAA7D,GAC5B0V,EAAQK,KAAK,CAAEpK,KAAM3L,EAAKzB,KAAMoX,EAAS3V,GAAKgW,aAChD,IAEOC,GAAA,WAAqBP,EAASH,GACvC,CAYM,SAAUW,GAAexV,GAC7B,I,IAAuF,G,EAArC,WAAeA,EAAMyV,iB,EAAgB,E,s4BAA/EC,EAAgB,KAAEC,EAAmB,KAS7C,OACE,gBAACC,GAAA,EAAK,CAAC9Z,MAAO,GAAU,WAAYqE,WAAYH,EAAMG,YACpD,uBAAKhE,UAAU,QACb,gBAACqK,EAAA,EAAS,CACRC,aAAciP,EAAiB7X,KAC/B+I,qBAAsB+O,EACtBE,MAAO,GACPC,oBAAqBhB,GACrBhO,YAAa,GAAU,eACvBD,iBAAkB,EAClBE,qBAAqB,EACrBgP,gBAAc,EACd/O,uBAAqB,KAGzB,gBAACgP,GAAA,EAAY,KACX,gBAACA,GAAA,SAAmB,CAAC/Z,KAAM,GAAU,SAAUkD,QAASa,EAAMG,aAC9D,gBAAC6V,GAAA,SAAmB,CAAC/Z,KAAM,GAAU,UAAWkD,QAxBtD,WACOuW,GAGL1V,EAAMiW,iBAAiBP,EACzB,EAmBiFrV,QAASL,EAAMkW,iBAIlG,CAnCAV,GAAe1U,aAAe,CAC5BoV,cAAe,W,4BCrCJC,GAAiB,CAC5BnL,QAAO,WACL,MAAO,CACLpG,IAAK,4BACLtF,IAAK,UAET,G,uiDCHF,IAAM,GAAO,iCAEA8W,GAAsB,YAGjC,WAAYnC,GAAqB,MAGI,O,4FAHJ,UAC/B,aAAM,oCAEDA,cAAgBA,EAAc,CACrC,CAEA,O,sRAAA,M,EAAA,G,EAAA,iBACA,WACE,MAAO,uBACT,GAEA,yBACA,WACE,MAAO,CACLnY,MAAO+J,EAAA,YAA0B,GAAM,WACvC5J,KAAM4J,EAAA,YAA0B,GAAM,OAAQ,CAAEoO,cAAelY,KAAKkY,gBACpE/X,QAAS,CAAC,CACRD,KAAM4J,EAAA,YAA0B,GAAM,QACtC1J,UAAW,eACXC,SAAS,IAGf,M,8EAAC,CAzBgC,CAAQ6S,GAAA,G,o9CCF3C,IAAM,GAAO,iCAEAoH,GAAsB,YAGjC,WAAY1B,GAAqB,MAGG,O,4FAHH,UAC/B,aAAM,oCAED2B,aAAe3B,EAAc,CACpC,CAEA,O,sRAAA,M,EAAA,G,EAAA,iBACA,WACE,MAAO,uBACT,GAEA,yBACA,WACE,MAAO,CACL7Y,MAAO+J,EAAA,YAA0B,GAAM,WACvC5J,KAAM4J,EAAA,YAA0B,GAAM,OAAQ,CAAE8O,cAAe5Y,KAAKua,eACpEpa,QAAS,CAAC,CACRD,KAAM4J,EAAA,YAA0B,GAAM,QACtC1J,UAAW,eACXC,SAAS,IAGf,M,8EAAC,CAzBgC,CAAQ6S,GAAA,G,w/CCH3C,IAAM,GAAY,yBAELsH,GAAqB,YAChC,oB,4FAAA,oBACQ1Q,EAAA,YAA0B,GAAW,UAC7C,CAEA,O,sRAAA,M,EAAA,G,EAAA,iBACA,WACE,MAAO,uBACT,GAEA,mBACA,WACE,OAAOA,EAAA,YAA0B,GAAW,UAC9C,GAEA,uBACA,WACE,OAAOA,EAAA,YAA0B,GAAW,cAC9C,M,8EAAC,CAlB+B,CAAQ2Q,GAAA,G,+xBCK1C,IACM,GAAY3Q,EAAA,mBADA,kBCRX,IAAM4Q,GAA6B,WACxC,MAAO,CACL,CACEC,YAAa,YACbC,OAAQ,0BAEV,CACED,YAAa,YACbC,OAAQ,2BAEV,CACED,YAAa,YACbC,OAAQ,6BAEV,CACED,YAAa,YACbC,OAAQ,6BAEV,CACED,YAAa,YACbC,OAAQ,uBAEV,CACED,YAAa,YACbC,OAAQ,yBAGd,E,uGCgCA,IACM,GAAY9Q,EAAA,mBADA,oBAGZ+Q,GAAiB,EACjBC,GAAiB,GACjBC,GAAa,GAEnB,SAASC,GAAgBC,EAA2BpF,EAAoBqF,GACtE,IAAMC,EAAaxF,EAAA,qBAAmCuF,GAEhDxF,EAAmB,CACvB0F,SAAU,wBACVxF,WAAY,YACZC,OAAAA,EACAsF,WAAAA,GAGFxF,EAAA,gBAA8BsF,EAAMvF,EACtC,CAMM,SAAU2F,GAAcpX,G,sBACtBqX,GAAW,UACXC,GAAS,UAE2D,G,EAA5B,a,EAA4B,E,s4BAAlEC,EAAc,KAAEC,EAAiB,KAEnC7J,EAAQ,kBAA4B8J,GAAA,QAAoBzX,EAAM2E,KAC9DqG,EAAU,kBAA+BmL,GAAenL,WACxD0M,EAAc,kBAAkCC,GAAA,iBAKhDnF,EAAY,kBAAyC/N,GAAA,iBAAgCzE,EAAM2E,KAC3F4P,EAAY,kBAAyC/O,GAAA,iBAAgCxF,EAAM2E,KAC3F6J,EAAQ,kBAAqCoJ,GAAA,aAAwB5X,EAAM2E,KAE3EkT,GAAwB,OAA0CC,GAAA,kBAClEC,GAAkB,SAAkC,kBAAMF,EAAsB7V,eAAe,GAAE,MAEjGgW,GAAwB,OAAkCF,GAAA,kBAC1DG,GAAkB,SAAkC,kBAAMD,EAAsBhW,eAAe,GAAE,MAEjG3D,EF/FF,SAAqCsP,G,cACnCuK,EAAgC,QAAvB,EAAiB,QAAjB,EAAAvK,aAAK,EAALA,EAAOwK,kBAAU,eAAEhT,YAAI,eAAG,GAEnCiT,EAAiC,QAAvB,EAAiB,QAAjB,EAAAF,aAAM,EAANA,EAAQrF,iBAAS,eAAE1N,YAAI,eAAG,GACpCkT,GAAkBD,aAAO,EAAPA,EAAShT,QAAS2N,GAAA,gBAEpCuF,EAAYD,EAAkB,CAClCxa,KAAMua,aAAO,EAAPA,EAASva,KACfC,QAAS,CACP4Y,YAAa,eACbC,OAAQ,uBACR/M,KAAM,CAAEwO,aAAO,EAAPA,EAASzT,GAAI4T,GAAA,UAAmBH,aAAO,EAAPA,EAASva,SAEjD,CACFA,KAAM,GAAU,YAChBC,QAAS,CACP4Y,YAAa,eACbC,OAAQ,0BAGN6B,EAAW,CAAE3a,KAAM8P,aAAK,EAALA,EAAO9P,KAAME,QAAQ,GAExCM,EGtBF,SAA8BoF,G,QAC1BgV,EAA8ChV,EAA9CgV,SAAUH,EAAoC7U,EAApC6U,UAAWE,EAAyB/U,EAAzB+U,SAAUE,EAAejV,EAAfiV,WAEjCC,EAAa,kBAAiDC,GAAA,mBAAiCH,IAErG,KAA8B,QAAzB,EAAe,QAAf,EAAAE,EAAWxT,YAAI,eAAE/E,gBAAQ,eAAE7B,QAC9B,MAAO,GAST,IAPA,IAAMsa,EAGAF,EAAWxT,KAAK/E,SAAShB,KAAI,SAAA0Z,GAAC,MAAK,CAAEC,KAAMD,EAAGE,KAAM,CAACF,GAAG,IAE1Dza,EAA4B,GAAG,aAGjC,MAAuBwa,EAAYI,MAA3BF,EAAI,EAAJA,KAAMC,EAAI,EAAJA,KAEVD,EAAK5T,KAAKR,GAAGwG,aAAesN,EAAStN,aACvC9M,EAAc2a,EAAK5Z,KAAI,SAAAkU,GAAM,MAAK,CAChCzV,KAAMyV,EAAOnO,KAAKtH,KAClBC,QAAS4a,EAAWpF,GACrB,KAECyF,EAAK3Y,UACPyY,EAAYxD,KAAI,MAAhBwD,EAAW,GAASE,EAAK3Y,SAAShB,KAAI,SAAA0Z,GAAC,MAAK,CAAEC,KAAMD,EAAGE,KAAM,GAAF,UAAOA,GAAI,CAAEF,IAAI,K,EAVzED,EAAYta,QAAM,IAkBzB,OALI+Z,GAAWja,EAAY6a,QAAQZ,GAC/BE,GAAUna,EAAYgX,KAAKmD,GAE/Bna,EAAYA,EAAYE,OAAS,GAAGR,QAAS,EAEtCM,CACT,CHZsB8a,CAAoB,CACtCV,SAAUP,aAAM,EAANA,EAAQvT,GAClB+T,WAAY,SAAApF,GACV,OAAK+E,EAQE,CACL3B,YAAa,eACbC,OAAQ,sBACR/M,KAAM,CAAEwO,EAAQzT,GAAI2O,EAAOnO,KAAKR,GAAI4T,GAAA,UAAmBjF,EAAOnO,KAAKtH,QAV5D,CACL6Y,YAAa,eACbC,OAAQ,+BACR/M,KAAM,CAAE0J,EAAOnO,KAAKR,GAAI4T,GAAA,UAAmBjF,EAAOnO,KAAKtH,OAS7D,EACAya,UAAAA,EACAE,SAAAA,IAMF,OAAqB,QAAjB,EAAA7K,aAAK,EAALA,EAAOwK,kBAAU,eAAEhT,QAASwI,EAAMwK,WAAWhT,KAAK5G,OAC7C,CAAE+Z,EAAWE,GAGfna,CACT,CE4CsB+a,CAA2BzL,EAAMxI,MAErD,aAAgB,W,QACTwI,EAAM0L,gBAGe,QAAtB,EAAU,QAAV,EAAA1L,EAAMxI,YAAI,eAAEyN,kBAAU,eAAElL,QAG5B,aAAuB,IAAI6O,IAC7B,GAAG,CAAuB,QAAtB,EAAU,QAAV,EAAA5I,EAAMxI,YAAI,eAAEyN,kBAAU,eAAElL,SAE5B,QACE,EAAA4R,MAAA,QAAc,uBACd,qBAqDF,SAAkCvI,GAChC,IAAMwI,EAAyBxI,EAAOvO,SAEhC2C,EAAO,CACXD,OAAQqU,EAAWC,SAAS7U,GAC5B8U,SAAUF,EAAWG,KAAKC,SAASF,SACnC5b,KAAM0b,EAAWC,SAAS3b,KAC1BuH,KAAM,oBAAoCmU,EAAWC,SAAShc,WAC9DA,UAAW+b,EAAWC,SAAShc,UAC/Boc,SAAUL,EAAWC,SAAStb,KAC9B2b,QAASN,EAAWC,SAAS5U,IAC7BkV,UAAWP,EAAWG,KAAKC,SAASG,UACpCC,SAAU,CACR3U,KAAM,oBAAoCmU,EAAWC,SAAShc,YAEhEwc,cAAc,EACdpV,IAAK2U,EAAWC,SAAS5U,IACzBoF,WAAY,GAMd,GAHAiQ,EAAmBC,QAAQ7E,KAAKlQ,GAChCgV,EAAuBD,YAEnBC,EAAuBD,QAAU,GAArC,CAIA,IAAIE,EAAoBH,EAAmBC,QAAQ3b,OAE7C8b,EAAY,SAAC3V,GACjB0V,IAEArD,GAAgBrS,EAAU,cAAqB4V,EAAmBJ,SAE9DE,EAAoB,GAGxB9C,EAAOlb,QAAQ,GAAU,yBAC3B,EAEMme,EAAU,WAAH,OAASjD,EAAOtS,MAAM,GAAU,uBAAuB,EAEpEiV,EAAmBC,QAAQ/W,SAAQ,SAAAuB,GAMjC,UAAa2S,EAAU5S,GAAA,cAA6BzE,EAAM2E,GAAID,EAAU2V,EAAWE,GALpE,WACb,IAAMC,EAAmB3C,EAAsB7V,gBAAgBoC,QAAO,SAAAqO,GAAI,MAAC,OAAiB,QAAjB,EAAAA,EAAEjC,IAAI,mBAAW,eAAE7L,MAAOD,EAASQ,MAAM,IACpH2S,EAAsB7V,gBAAgByY,OAAOD,EAC/C,IAGF,IAEAP,EAAmBC,QAAU,EA3BrB,CA4BV,KArGA,QACE,EAAAZ,MAAA,QAAc,uBACd,qBAqGF,SAAkCvI,GAChCyG,EAAkBzG,EAAOvO,SAC3B,IAnGA,IAAM8X,EAAqB,WACrBH,EAAyB,SAAa,GACtCF,EAAqB,SAAa,IAoJxC,OAlJA,EAAAS,GAAA,GAAmB,CAAE5e,QAAS6R,EAAMxI,MAAQ,GAAU,YAAa,CAAEtH,KAAM8P,EAAMxI,KAAKtH,UACtF,QAAqB8P,GAkJnB,gCACE,uBAAKxR,UAAU,QACb,uBAAKA,UAAU,sBACb,sBAAIA,UAAU,MAAM,GAAU,YAC9B,gBAACiC,EAAA,GAAW,CAACC,YAAaA,KAExBsP,EAAMxI,MAAU6F,EAAQ7F,KAExB,gBAACsI,GAAgB,CACfE,MAAOgN,EAAA,OAAkBhN,EAAMxI,KAAM,CAAE,QAAS,iBAChD6F,QAASA,EAAQ7F,KACjB2I,UA3JZ,SAAmB3I,EAA0ByV,GAO3C,UAAavD,EAAUI,GAAA,cAA0BzX,EAAM2E,GAAIQ,GANzC,WAAH,OAASmS,EAAOlb,QAAQ,GAAU,4BAA6B,CAC5EyB,KAAMsH,EAAKtH,KACXgd,YAAY,IACX,IACa,WAAH,OAASvD,EAAOtS,MAAM,GAAU,2BAA2B,GAEa4V,GACvF,EAoJYhO,mBAAoB,CAClB8J,YAAa,YACbC,OAAQ,0BAEVlK,wBAAyBgK,KACzBzJ,eAAe,OACfH,oBAAoB,eACpBI,YAAU,EACVG,mBAAiB,IAEjB,gBAACW,GAAuB,MAG1BJ,EAAMxI,MAAUuS,EAAYvS,MAAUqN,EAAUrN,MAAUoP,EAAUpP,MAAUqJ,EAAMrJ,KACtF,uBAAKhJ,UAAU,kBACb,uBAAKA,UAAU,2BACb,gBAACwX,GAAkB,CACjBK,iBAnKd,SAA0BrJ,EAAevF,G,QACnCuF,EAAMpM,OAAUsY,IAAqC,QAApB,EAAc,QAAd,EAAArE,EAAUrN,YAAI,eAAEA,YAAI,eAAE5G,QACzD,aAAuB,IAAI6X,GAAsBS,MAInDsD,EAAuBD,SAAWvP,EAAMpM,OAEpC6G,IACFkV,EAAmBJ,QAAU9U,GAE/ByS,EAAsBiD,SAASnQ,GACjC,EAwJcsJ,cAAe4C,GACflJ,MAAOA,EAAMxI,KACbqN,UAAyB,QAAd,EAAAA,EAAUrN,YAAI,eAAEA,KAC3B+O,eAAgB6D,EAChB7G,aAAc,SAACvM,GAAU,OAAKkT,EAAsB3G,aAAavM,EAAG,EACpEmP,sBAAuC,QAAhB,EAAA4D,EAAYvS,YAAI,eAAE4V,WACzCvJ,eAAgB,SAACwJ,GAAkB,MAAM,CACvCtE,YAAa,YACbC,OAAQ,0BACR/M,KAAM,CAAE5J,EAAM2E,GAAIqW,GACnB,EACDjJ,cAAe,SAACiJ,GAAkB,OAAK,eAA2B,CAChEtE,YAAa,YACbC,OAAQ,4BACR/M,KAAM,CAAE5J,EAAM2E,GAAIqW,IAClB,EACFvJ,iBAAkB,CAChB0F,SAAU,uBAEZ3M,WAAW,kBAGf,uBAAKrO,UAAU,2BACb,gBAACqY,GAAkB,CACjBI,iBA9Kd,SAA0BjK,EAAevF,G,QACnCuF,EAAMpM,OAAUqY,IAAqC,QAApB,EAAc,QAAd,EAAArC,EAAUpP,YAAI,eAAEA,YAAI,eAAE5G,QACzD,aAAuB,IAAI8X,GAAsBQ,MAI/CzR,IACFkV,EAAmBJ,QAAU9U,GAE/B4S,EAAsB8C,SAASnQ,GACjC,EAqKcgK,cAAeiC,GACfjJ,MAAOA,EAAMxI,KACboP,UAAyB,QAAd,EAAAA,EAAUpP,YAAI,eAAEA,KAC3B+O,eAAgB+D,EAChB/G,aAAc,SAACvM,GAAU,OAAKqT,EAAsB9G,aAAavM,EAAG,EACpEmP,sBAAuC,QAAhB,EAAA4D,EAAYvS,YAAI,eAAE4V,WACzChJ,cAAe,SAACkJ,GAAkB,OAAK,eAA2B,CAChEvE,YAAa,YACbC,OAAQ,4BACR/M,KAAM,CAAE5J,EAAM2E,GAAIsW,IAClB,EACFzQ,WAAW,kBAGf,uBAAKrO,UAAU,2BACb,gBAACoS,GAAc,CACbC,MAAiB,QAAV,EAAAA,EAAMrJ,YAAI,eAAEA,KACnByJ,QAlGd,SAAiBzJ,EAAYyV,G,SACP,QAAhB,EAAU,QAAV,EAAApM,EAAMrJ,YAAI,eAAEA,YAAI,eAAE5G,SAAUuY,IAkBhC,UACEO,EACAO,GAAA,UAAqB5X,EAAM2E,GAAIQ,GAjBf,SAACgJ,GACjBmJ,EAAOlb,QAAQ,GAAU,oBAEzB,IAAMqV,EAAmB,CACvB0F,SAAU,wBACVxF,WAAY,eACZC,OAAQ,WACRsF,WAAY,WAGdxF,EAAA,gBAA8B,CAAE/M,GAAI3E,EAAM2E,GAAIwJ,KAAAA,GAAQsD,EACxD,IAEgB,WAAH,OAAS6F,EAAOtS,MAAM,GAAU,iBAAiB,IAIH,kBAAM4V,EAAO,CAAEM,OAAO,GAAO,IAE1F,EA4Ec7M,SAAU,SAAC8M,GAAc,OAAK,eAA2B,CACvDzE,YAAa,YACbC,OAAQ,sBACR/M,KAAM,CAAE5J,EAAM2E,GAAIwW,IAClB,EACF7M,WAAY,SAAC6M,GAAc,OAAK,eAA2B,CACzDzE,YAAa,YACbC,OAAQ,wBACR/M,KAAM,CAAE5J,EAAM2E,GAAIwW,IAClB,EACF1M,MAAOqI,GACPtM,WAAW,mBAIf,gBAACwD,GAA0B,SAE9BuJ,GACD,gBAAC/B,GAAc,CACbS,iBA9IR,SAAkC9R,GAChC,IAAMgB,EAAO,CACXD,OAAQqS,EAAeiC,SAAS7U,GAChC9G,KAAMsG,EAAStG,KACfsG,SAAUA,EAAS8G,KACnB7F,KAAM,oBAAoCmS,EAAeiC,SAAShc,WAClEwM,WAAY,GAadwN,EAAkB,MAElB,UAAaH,EAAU7R,GAAA,cAA6BxF,EAAM2E,GAAIQ,GAZ5C,SAAClB,GACjB8S,GAAgB9S,EAAU,cAAqBqW,EAAmBJ,SAElE5C,EAAOlb,QAAQ,GAAU,yBAC3B,IAEgB,WAAH,OAASkb,EAAOtS,MAAM,GAAU,uBAAuB,IAErD,WAAH,OAASgT,EAAsBhW,gBAAgByY,OAAOlD,EAAe,IAKnF,EAyHQ9B,gBAAiB,CAAExK,KAAM,KAAMpN,KAAM,WACrCsC,WAAY,WACV6X,EAAsB9G,aAAaqG,EAAe5S,IAClD6S,EAAkB,KACpB,EACAtB,cAAc,SAKxB,C,kBEnYA,IAAIkF,EAAa,EAAQ,OACzBC,EAAOC,SAAWF,EAAoB,SAAKA,GAAYG,SAAS,CAAC,EAAI,SAASC,EAAUC,EAAOC,EAAQC,EAASxW,GACzFqW,EAAUI,qBAA7B,IAAIC,EAA+CC,EAAON,EAAUO,OAEtE,MAAO,iDACHP,EAAUQ,iBAAiBF,EAA+G,OAAtGD,EAAmE,OAAxDA,EAAoB,MAAVJ,EAAiBA,EAAOhY,QAAUgY,GAAmBI,EAAOpL,OAASoL,GAAmBA,EAAOI,aAAeJ,EAASJ,IAChL,6BACyH,OAAvHI,EAASC,EAAiE,OAAxDD,EAAoB,MAAVJ,EAAiBA,EAAOhY,QAAUgY,GAAmBI,EAAOjL,QAAUiL,EAASJ,IAAmBI,EAAS,IACzI,WACN,EAAE,EAAI,SAASL,EAAUC,EAAOC,EAAQC,EAASxW,GAC7C,IAAI0W,EAEN,OAFqBL,EAAUI,qBAExB,iDACHJ,EAAUQ,iBAAiBR,EAAUO,OAA+G,OAAtGF,EAAmE,OAAxDA,EAAoB,MAAVJ,EAAiBA,EAAOhY,QAAUgY,GAAmBI,EAAOpL,OAASoL,GAAmBA,EAAOI,aAAeJ,EAASJ,IAC1L,+FACN,EAAE,SAAW,CAAC,EAAE,YAAY,KAAO,SAASD,EAAUC,EAAOC,EAAQC,EAASxW,GAC/CqW,EAAUI,qBAArC,IAAIC,EAAQK,EAA+CJ,EAAON,EAAUO,OAAQI,EAAOX,EAAUQ,iBAAkBI,EAAiB,MAAVX,EAAiBA,EAAUD,EAAUa,aAAe,CAAC,EAAIC,EAAOd,EAAUe,MAAMC,cAAeC,EAAO,WAEtO,MAAO,iDACHN,EAAOL,EAA+G,OAAtGD,EAAmE,OAAxDA,EAAoB,MAAVJ,EAAiBA,EAAOhY,QAAUgY,GAAmBI,EAAOpL,OAASoL,GAAmBA,EAAOI,aAAeJ,EAASJ,IAC5J,MACqH,OAAnHI,EAASC,EAAiE,OAAxDD,EAAoB,MAAVJ,EAAiBA,EAAOhY,QAAUgY,GAAmBI,EAAOnL,IAAMmL,EAASJ,IAAmBI,EAAS,IACrI,2CACAM,SAASD,EAA+E,OAArEA,EAASR,EAAQ7d,OAAmB,MAAV4d,EAAiBA,EAAO5d,KAAO4d,IAAmBS,EAASI,KAA2BG,EAASP,EAAOQ,KAAKN,EAAO,CAAC,KAAO,OAAO,KAAO,CAAC,EAAE,KAAOjX,IAAS+W,GACxM,eACoP,OAAlPL,EAASH,EAAY,GAAEgB,KAAKN,EAAiE,OAAxDP,EAAoB,MAAVJ,EAAiBA,EAAOhY,QAAUgY,GAAmBI,EAAOhL,SAAWgL,EAAQ,CAAC,KAAO,KAAK,KAAO,CAAC,EAAE,GAAKL,EAAUmB,QAAQ,EAAGxX,EAAM,GAAG,QAAUqW,EAAUmB,QAAQ,EAAGxX,EAAM,GAAG,KAAOA,KAAkB0W,EAAS,IACpQ,+BACAM,EAAOL,EAA+G,OAAtGD,EAAmE,OAAxDA,EAAoB,MAAVJ,EAAiBA,EAAOhY,QAAUgY,GAAmBI,EAAOpL,OAASoL,GAAmBA,EAAOe,SAAWf,EAASJ,IACxJ,8DACAU,SAASD,EAAuF,OAA7EA,EAASR,EAAQkB,WAAuB,MAAVnB,EAAiBA,EAAOmB,SAAWnB,IAAmBS,EAASI,KAA2BG,EAASP,EAAOQ,KAAKN,EAAO,CAAC,KAAO,WAAW,KAAO,CAAC,EAAE,KAAOjX,IAAS+W,GACpN,qBACAC,SAASD,EAAuF,OAA7EA,EAASR,EAAQkB,WAAuB,MAAVnB,EAAiBA,EAAOmB,SAAWnB,IAAmBS,EAASI,KAA2BG,EAASP,EAAOQ,KAAKN,EAAO,CAAC,KAAO,WAAW,KAAO,CAAC,EAAE,KAAOjX,IAAS+W,GACpN,wDACN,EAAE,SAAU,G,kBCjCZ,IAAId,EAAa,EAAQ,OACzBC,EAAOC,SAAWF,EAAoB,SAAKA,GAAYG,SAAS,CAAC,EAAI,SAASC,EAAUC,EAAOC,EAAQC,EAASxW,GACzFqW,EAAUI,qBAA7B,IAAIC,EAA+CC,EAAON,EAAUO,OAEtE,MAAO,4EACuH,OAAxHF,EAASC,EAAiE,OAAxDD,EAAoB,MAAVJ,EAAiBA,EAAOhY,QAAUgY,GAAmBI,EAAOvJ,SAAWuJ,EAASJ,IAAmBI,EAAS,IAC1I,gFACyH,OAAvHA,EAASC,EAAiE,OAAxDD,EAAoB,MAAVJ,EAAiBA,EAAOhY,QAAUgY,GAAmBI,EAAOxJ,QAAUwJ,EAASJ,IAAmBI,EAAS,IACzI,QACN,EAAE,SAAW,CAAC,EAAE,YAAY,KAAO,SAASL,EAAUC,EAAOC,EAAQC,EAASxW,GAC/CqW,EAAUI,qBAArC,IAAIC,EAAQK,EAA+CJ,EAAON,EAAUO,OAAQI,EAAOX,EAAUQ,iBAAkBI,EAAiB,MAAVX,EAAiBA,EAAUD,EAAUa,aAAe,CAAC,EAAIC,EAAOd,EAAUe,MAAMC,cAAeC,EAAO,WAEtO,MAAO,gBACHN,EAAOL,EAAiE,OAAxDD,EAAoB,MAAVJ,EAAiBA,EAAOhY,QAAUgY,GAAmBI,EAAOzJ,aAAeyJ,EAASJ,IAC9G,2DACAU,EAAOL,EAAiE,OAAxDD,EAAoB,MAAVJ,EAAiBA,EAAOhY,QAAUgY,GAAmBI,EAAO1J,UAAY0J,EAASJ,IAC3G,MACqH,OAAnHI,EAASC,EAAiE,OAAxDD,EAAoB,MAAVJ,EAAiBA,EAAOhY,QAAUgY,GAAmBI,EAAOnL,IAAMmL,EAASJ,IAAmBI,EAAS,IACrI,qBACAM,SAASD,EAA6E,OAAnEA,EAASR,EAAQ9W,MAAkB,MAAV6W,EAAiBA,EAAO7W,IAAM6W,IAAmBS,EAASI,KAA2BG,EAASP,EAAOQ,KAAKN,EAAO,CAAC,KAAO,MAAM,KAAO,CAAC,EAAE,KAAOjX,IAAS+W,GACrM,SACAC,SAASD,EAA+E,OAArEA,EAASR,EAAQ7d,OAAmB,MAAV4d,EAAiBA,EAAO5d,KAAO4d,IAAmBS,EAASI,KAA2BG,EAASP,EAAOQ,KAAKN,EAAO,CAAC,KAAO,OAAO,KAAO,CAAC,EAAE,KAAOjX,IAAS+W,GACxM,8BACAC,SAASD,EAA+E,OAArEA,EAASR,EAAQ7d,OAAmB,MAAV4d,EAAiBA,EAAO5d,KAAO4d,IAAmBS,EAASI,KAA2BG,EAASP,EAAOQ,KAAKN,EAAO,CAAC,KAAO,OAAO,KAAO,CAAC,EAAE,KAAOjX,IAAS+W,GACxM,YACqO,OAAnOL,EAASH,EAAY,GAAEgB,KAAKN,EAAiE,OAAxDP,EAAoB,MAAVJ,EAAiBA,EAAOhY,QAAUgY,GAAmBI,EAAO5J,SAAW4J,EAAQ,CAAC,KAAO,KAAK,KAAO,CAAC,EAAE,GAAKL,EAAUmB,QAAQ,EAAGxX,EAAM,GAAG,QAAUqW,EAAUqB,KAAK,KAAO1X,KAAkB0W,EAAS,GAC3P,EAAE,SAAU,G,kBC1BZ,IAAIT,EAAa,EAAQ,OACzBC,EAAOC,SAAWF,EAAoB,SAAKA,GAAYG,SAAS,CAAC,EAAI,SAASC,EAAUC,EAAOC,EAAQC,EAASxW,GACzFqW,EAAUI,qBAA7B,IAAIC,EAA+CC,EAAON,EAAUO,OAAQI,EAAOX,EAAUQ,iBAE/F,MAAO,uBACHG,EAAOL,EAA+G,OAAtGD,EAAmE,OAAxDA,EAAoB,MAAVJ,EAAiBA,EAAOhY,QAAUgY,GAAmBI,EAAOpL,OAASoL,GAAmBA,EAAOI,aAAeJ,EAASJ,IAC5J,IACAU,EAAOL,EAA+G,OAAtGD,EAAmE,OAAxDA,EAAoB,MAAVJ,EAAiBA,EAAOhY,QAAUgY,GAAmBI,EAAOpL,OAASoL,GAAmBA,EAAOiB,UAAYjB,EAASJ,IACzJ,4BAC0H,OAAxHI,EAASC,EAAiE,OAAxDD,EAAoB,MAAVJ,EAAiBA,EAAOhY,QAAUgY,GAAmBI,EAAOvJ,SAAWuJ,EAASJ,IAAmBI,EAAS,IAC1I,QACN,EAAE,SAAW,CAAC,EAAE,YAAY,KAAO,SAASL,EAAUC,EAAOC,EAAQC,EAASxW,GAC/CqW,EAAUI,qBAArC,IAAIC,EAAQK,EAA+CJ,EAAON,EAAUO,OAAQI,EAAOX,EAAUQ,iBAAkBI,EAAiB,MAAVX,EAAiBA,EAAUD,EAAUa,aAAe,CAAC,EAErL,MAAO,iDACHF,EAAOL,EAA+G,OAAtGD,EAAmE,OAAxDA,EAAoB,MAAVJ,EAAiBA,EAAOhY,QAAUgY,GAAmBI,EAAOpL,OAASoL,GAAmBA,EAAOI,aAAeJ,EAASJ,IAC5J,MACqH,OAAnHI,EAASC,EAAiE,OAAxDD,EAAoB,MAAVJ,EAAiBA,EAAOhY,QAAUgY,GAAmBI,EAAOnL,IAAMmL,EAASJ,IAAmBI,EAAS,IACrI,qBACAM,EAAwJ,mBAA/ID,EAA6E,OAAnEA,EAASR,EAAQ9W,MAAkB,MAAV6W,EAAiBA,EAAO7W,IAAM6W,IAAmBS,EAASV,EAAUe,MAAMC,eAA+CN,EAAOQ,KAAKN,EAAO,CAAC,KAAO,MAAM,KAAO,CAAC,EAAE,KAAOjX,IAAS+W,GAChO,SACAC,EAAOL,EAAiE,OAAxDD,EAAoB,MAAVJ,EAAiBA,EAAOhY,QAAUgY,GAAmBI,EAAOhe,KAAOge,EAASJ,IACtG,8BACAU,EAAOL,EAAiE,OAAxDD,EAAoB,MAAVJ,EAAiBA,EAAOhY,QAAUgY,GAAmBI,EAAOhe,KAAOge,EAASJ,IACtG,YACoP,OAAlPI,EAASH,EAAQqB,OAAOL,KAAKN,EAAiE,OAAxDP,EAAoB,MAAVJ,EAAiBA,EAAOhY,QAAUgY,GAAmBI,EAAOzH,mBAAqByH,EAAQ,CAAC,KAAO,SAAS,KAAO,CAAC,EAAE,GAAKL,EAAUmB,QAAQ,EAAGxX,EAAM,GAAG,QAAUqW,EAAUqB,KAAK,KAAO1X,KAAkB0W,EAAS,GAC1Q,EAAE,SAAU,G","sources":["file:///app/packages/libs/shared/src/apps/upload/errors/file-type/FileTypeError.ts","file:///app/packages/libs/shared/src/apps/upload/utils/FileExtensionsHelper.ts","file:///app/packages/libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx","file:///app/packages/libs/shared/src/components/confirmation-popup/ConfirmationPopup.tsx","file:///app/packages/libs/shared/src/enums/UploadInteractionType.ts","file:///app/packages/libs/shared/src/errors/handlers/HttpErrorHandlers.ts","file:///app/packages/libs/shared/src/hooks/UseGetCollectionItems.ts","file:///app/packages/libs/shared/src/hooks/UseHandleObjectError.ts","file:///app/packages/libs/shared/src/utils/PartialLoadingHelper.ts","file:///app/packages/libs/shared/src/utils/SubtitleHelper.ts","file:///app/packages/projects/lite/src/shared/flight-requests/ResourceRequests.ts","file:///app/packages/projects/lite/src/shared/flight-requests/SubtitleRequests.ts","file:///app/packages/libs/shared/src/components/channel-form-field/ChannelFormField.tsx","file:///app/packages/libs/shared/src/components/forms/date-picker-form-field/date-picker-form-field.scss","file:///app/packages/libs/shared/src/components/forms/date-picker-form-field/DatePickerFormField.tsx","file:///app/packages/libs/shared/src/components/image-select/image-select.scss","file:///app/packages/libs/shared/src/components/image-select/ImageSelect.tsx","file:///app/packages/libs/shared/src/components/rating-select/RatingSelect.tsx","file:///app/packages/libs/shared/src/components/edit-video-details/edit-video-details.scss","file:///app/packages/libs/shared/src/components/edit-video-details/EditVideoDetails.tsx","file:///app/packages/libs/shared/src/components/edit-video-details/partial-loading-details/partial-edit-video-details.scss","file:///app/packages/libs/shared/src/components/edit-video-details/partial-loading-details/PartialEditVideoDetails.tsx","file:///app/packages/libs/shared/src/components/edit-video-details/partial-loading-upload/partial-edit-video-upload-area.scss","file:///app/packages/libs/shared/src/components/edit-video-details/partial-loading-upload/PartialEditVideoUploadArea.tsx","file:///app/packages/libs/shared/src/components/edit-video-links/edit-video-links.scss","file:///app/packages/libs/shared/src/components/edit-video-links/EditVideoLinks.tsx","file:///app/packages/libs/shared/src/legacy/errors/too-many-files/TooManyFilesError.ts","file:///app/packages/libs/shared/src/components/file-select/file-select.scss","file:///app/packages/libs/shared/src/components/file-select/FileSelect.tsx","file:///app/packages/libs/shared/src/legacy/components/file-uploads/file-upload.scss","file:///app/packages/libs/shared/src/legacy/components/file-uploads/FileUploadComponent.ts","file:///app/packages/libs/shared/src/components/file-upload-list/FileUploadList.tsx","file:///app/packages/libs/shared/src/legacy/components/resource-item/ResourceItemComponent.ts","file:///app/packages/libs/shared/src/enums/ObjectOwnerType.ts","file:///app/packages/libs/shared/src/legacy/components/resource-item/resource.scss","file:///app/packages/libs/shared/src/components/resource-list/ResourceList.tsx","file:///app/packages/libs/shared/src/utils/PermissionsHelper.ts","file:///app/packages/libs/shared/src/components/edit-video-resources/EditVideoResources.tsx","file:///app/packages/libs/shared/src/legacy/components/subtitle-item/subtitle.scss","file:///app/packages/libs/shared/src/legacy/components/subtitle-item/SubtitleItemComponent.ts","file:///app/packages/libs/shared/src/components/subtitle-list/SubtitleList.tsx","file:///app/packages/libs/shared/src/components/edit-video-subtitles/EditVideoSubtitles.tsx","file:///app/packages/libs/shared/src/components/language-select/LanguageSelect.tsx","file:///app/packages/libs/shared/src/flight-requests/RatingRequests.ts","file:///app/packages/libs/shared/src/legacy/errors/too-many-resources/TooManyResourcesError.ts","file:///app/packages/libs/shared/src/legacy/errors/too-many-subtitles/TooManySubtitlesError.ts","file:///app/packages/projects/lite/src/shared/errors/videos/cannot-edit/CannotEditVideoError.ts","file:///app/packages/projects/lite/src/shared/views/edit-video/useGetEditVideoBreadcrumbs.ts","file:///app/packages/projects/lite/src/shared/views/edit-video/EditVideoViewUtils.ts","file:///app/packages/projects/lite/src/shared/views/edit-video/EditVideoView.tsx","file:///app/packages/libs/shared/src/hooks/useBuildBreadcrumbs.ts","file:///app/packages/libs/shared/src/legacy/components/file-uploads/FileUpload.hbs","file:///app/packages/libs/shared/src/legacy/components/resource-item/ResourceItem.hbs","file:///app/packages/libs/shared/src/legacy/components/subtitle-item/Subtitle.hbs"],"sourcesContent":["import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { DialogError } from 'libs/shared/errors/primitives/DialogError';\nimport { DialogOptions } from 'libs/shared/interfaces';\n\n/**\n * TODO: Create a more useful message here.\n * Perhaps using the mime types listen on MDN\n * https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types\n * or in the list of all the official mime types\n * https://www.iana.org/assignments/media-types/media-types.xhtml\n */\nexport class FileTypeError extends DialogError {\n constructor(message: string) {\n super(message);\n }\n\n // @ts-ignore\n public get name(): string {\n return 'FileTypeError';\n }\n\n // @ts-ignore\n public get lang(): string {\n return 'upload.fileType';\n }\n\n // @ts-ignore\n public get dialogOptions(): DialogOptions {\n return {\n title: LanguageService.getPhrase(this.lang, 'heading'),\n text: LanguageService.getPhrase(this.lang, 'body'),\n buttons: [{\n text: LanguageService.getPhrase(this.lang, 'okay'),\n className: 'btn btn-dark',\n success: true\n }, {\n text: LanguageService.getPhrase(this.lang, 'close'),\n className: 'btn btn-link',\n close: true\n }]\n };\n }\n}","import * as _ from 'underscore';\n\n/**\n * This are kept as separate variables for when we eventually need a single group of them.\n * For example when we add image upload support.\n */\n\nconst pdfExtensions = ['pdf'];\nconst docExtensions = [ 'doc', 'docx', 'dotx', 'dot', 'rtf', 'docm', 'odt' ];\nconst textExtensions = [ 'csv', 'txt' ];\nconst excelExtensions = [ 'xls', 'xlt', 'xlsx' ];\nconst imageExtensions = [ 'jpg', 'tif', 'png', 'bmp', 'gif', 'jpeg' ];\nconst videoMimeType = 'video/*';\nconst archiveExtensions = [ 'zip', 'rar' ];\nconst powerPointExtensions = [ 'ppt', 'pot', 'pps', 'pptx' ];\n\nconst subtitleExtensions = ['srt'];\n\nconst FileExtensions = {\n IMAGES: `.${imageExtensions.join(',.')}`,\n VIDEO: videoMimeType,\n MIXED_MEDIA: `.${imageExtensions.join(',.')},${videoMimeType}`,\n RESOURCES: `.${[\n ...docExtensions,\n ...excelExtensions,\n ...powerPointExtensions,\n ...pdfExtensions,\n ...textExtensions,\n ...imageExtensions,\n ...archiveExtensions\n ].join(',.')}`,\n SUBTITLES: `.${subtitleExtensions.join(',.')}`\n};\n\nconst FileExtensionHelper = {\n getResourceType(extension: string): string {\n const ext = extension.toLowerCase();\n\n if (_.contains(docExtensions, ext)) return 'document';\n if (_.contains(excelExtensions, ext)) return 'excel';\n if (_.contains(powerPointExtensions, ext)) return 'powerpoint';\n if (_.contains(pdfExtensions, ext)) return 'pdf';\n\n if (_.contains(textExtensions, ext)) return 'text';\n if (_.contains(imageExtensions, ext)) return 'image';\n if (_.contains(archiveExtensions, ext)) return 'archive';\n if (_.contains(subtitleExtensions, ext)) return 'subtitle';\n\n return '';\n }\n};\n\nexport { FileExtensions, FileExtensionHelper };","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nconst COLLAPSE_CHARACTER_COUNT = 56;\n\nexport interface Breadcrumb {\n name: string;\n appLink?: Core.AppLink;\n active?: boolean;\n}\n\ninterface BreadcrumbItemProps {\n breadcrumb: Breadcrumb;\n withBackIcon?: boolean;\n}\n\nexport const BreadcrumbItem = ({ breadcrumb: { name, appLink, active }, withBackIcon }: BreadcrumbItemProps) => (\n <li className={`breadcrumb-item${active ? ' active' : ''}`}>\n {active\n ? <strong>{name}</strong>\n : <AppLink appLink={appLink}>\n {withBackIcon && <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{name}</span>\n </AppLink>\n }\n </li>\n);\n\ninterface BreadcrumbsProps {\n breadcrumbs: Breadcrumb[];\n}\n\nexport const Breadcrumbs = ({ breadcrumbs }: BreadcrumbsProps) => {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n const length = breadcrumbs?.length || 0;\n \n const [ collapse, setCollapse ] = React.useState(false);\n\n React.useEffect(() => {\n const characterLength = breadcrumbs?.reduce((prev, next) => prev + next.name.length, 0) ?? 0;\n\n if (length > 3 && characterLength > COLLAPSE_CHARACTER_COUNT)\n setCollapse(true);\n }, [breadcrumbs?.length]);\n\n if (!length || (isMobile && length < 2))\n return <></>;\n\n if (isMobile)\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} withBackIcon />\n </ol>\n </nav>\n );\n\n const first = <BreadcrumbItem breadcrumb={breadcrumbs[0]} />;\n const secondLast = length > 2 ? <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} /> : <></>;\n const last = <BreadcrumbItem breadcrumb={breadcrumbs[length - 1]} />;\n const rest = breadcrumbs.slice(1, length - 2);\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {first}\n {collapse ?\n <li className='breadcrumb-item'>\n <button className='btn-link' onClick={() => setCollapse(false)}>\n ...\n </button>\n </li> :\n rest.map((breadcrumb, idx) => <BreadcrumbItem key={idx} breadcrumb={breadcrumb} />)\n }\n {secondLast}\n {last}\n </ol>\n </nav>\n );\n};\n\nexport const PartialBreadcrumbs = React.memo(function({ numItems = 3 }: { numItems?: number; }) {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n if (isMobile) {\n return (\n <div className='partial-loading-background' style={{ height: '1.3125rem', width: '6rem' }} />\n );\n }\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {PartialLoadingHelper.getPartialLoadingItems({ numItems }).map(({ width }, idx) => (\n <li key={idx} className='breadcrumb-item'>\n <span className='d-inline-block partial-loading-background' style={{ width }} dangerouslySetInnerHTML={{ __html: '&nbsp' }} />\n </li>\n ))}\n </ol>\n </nav>\n );\n});","import * as React from 'react';\nimport { ButtonProps } from 'react-bootstrap';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { PopupViewProps } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.confirmationPopup';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ConfirmationPopupProps {\n title: string;\n onClickConfirm: () => void;\n confirmButtonText?: string;\n cancelButtonText?: string;\n confirmButtonVariant?: ButtonProps['variant'];\n cancelButtonVariant?: ButtonProps['variant'];\n disabledConfirmButton?: boolean;\n}\n\nConfirmationPopup.defaultProps = {\n confirmButtonVariant: 'primary',\n cancelButtonVariant: 'link'\n};\n\ntype PropTypes = React.PropsWithChildren<ConfirmationPopupProps & PopupViewProps>;\n\nexport function ConfirmationPopup(props: PropTypes): React.ReactElement {\n const [ showButtonSpinner, setShowButtonSpinner ] = React.useState(false);\n\n return (\n <Popup title={props.title} closePopup={props.closePopup}>\n <>\n {props.children}\n <PopupButtons>\n <PopupButtons.Cancel\n onClick={props.closePopup}\n variant={props.cancelButtonVariant}\n text={props.cancelButtonText || getPhrase('cancel')}\n />\n <PopupButtons.Submit\n onClick={() => { setShowButtonSpinner(true); props.onClickConfirm(); }}\n text={props.confirmButtonText || getPhrase('confirm')}\n variant={props.confirmButtonVariant}\n showSpinner={showButtonSpinner}\n disabled={props.disabledConfirmButton}\n />\n </PopupButtons>\n </>\n </Popup>\n );\n}","export enum InteractionType {\n FileSelect = 'file-select',\n DragDrop = 'drag-drop'\n}","import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\n/**\n * Hook used to listen to updates on a Backbone Collection\n * and trigger a re-render.\n */\nexport function useGetCollectionItems<T>(\n getCollection: () => Core.Collection,\n onRemove?: () => void,\n dependencies: React.DependencyList = []\n): T[] {\n const [ , setUpdate ] = React.useState(false);\n\n React.useEffect(() => {\n const collection = getCollection();\n\n if (!collection)\n return;\n\n collection.off('add remove change');\n collection.on('add remove change', () => {\n setUpdate(s => !s);\n });\n if (onRemove)\n collection.on('remove', onRemove);\n return () => { collection.off('add remove change'); };\n }, dependencies);\n\n return getCollection()?.toJSON();\n}","import { useEffect } from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { handleHttpError, HttpErrorMap, IgnoreHttpErrorMap } from 'libs/shared/errors/handlers/HttpErrorHandlers';\n\nfunction generateCacheKey(flightObjs: Array<Flight.Response<any>>): string {\n return flightObjs.map(obj => obj.statusCode).join(':');\n}\n\n// TODO: Change this to just `useHandleHttpError` and only accept a status code.\nexport function useHandleObjectError(\n _flightObjs: Flight.Response<any> | Array<Flight.Response<any>>,\n customErrors?: HttpErrorMap,\n ignoreErrors?: IgnoreHttpErrorMap\n): void {\n const flightObjs = Array.isArray(_flightObjs) ? _flightObjs : [_flightObjs];\n\n useEffect(() => {\n flightObjs.forEach(obj => {\n handleHttpError(obj.statusCode, customErrors, ignoreErrors);\n });\n }, [ generateCacheKey(flightObjs), customErrors, ignoreErrors ]);\n}","const DEFAULT_PARTIAL_LOADING_OPTIONS: PartialLoadingOptions = {\n numItems: 5,\n minWidth: 50, // px\n maxWidth: 100 // px\n};\n\nexport interface PartialLoadingOptions {\n numItems?: number;\n minWidth?: number;\n maxWidth?: number;\n}\n\ninterface PartialLoadingItem {\n width: string;\n}\n\nexport const PartialLoadingHelper = {\n getPartialLoadingItems(options: PartialLoadingOptions = {}): PartialLoadingItem[] {\n const opts = {\n ...DEFAULT_PARTIAL_LOADING_OPTIONS,\n ...options\n };\n\n const getRandomFilterWidth = () => Math.max(Math.floor(Math.random() * opts.maxWidth), opts.minWidth);\n\n return [...Array(opts.numItems)].map(() => ({ width: `${getRandomFilterWidth()}px` }));\n }\n};","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Subtitle } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.shared-utils';\n\nexport const SubtitleHelper = {\n /**\n * \n * @param subtitle - the subtitle to get the English name for.\n * @param allVideoSubtitles - the full list of subtitles on the video.\n */\n getEnglishName(subtitle: Subtitle, allVideoSubtitles?: Subtitle[]): string {\n const language = subtitle.language;\n\n const differentNames = allVideoSubtitles?.filter(s => s.language !== language);\n\n let name: string;\n\n if (differentNames.length > 0)\n name = CVLanguages.getFullEnglishName(language);\n else\n name = CVLanguages.getEnglishName(language);\n\n return subtitle.metadata?.autoGenerated\n ? LanguageService.getPhrase(namespace, 'autoGeneratedSubtitle', { name })\n : name;\n }\n};","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Xhr } from 'libs/common/backbone/interfaces/Xhr';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\nimport { RandomHelper } from 'libs/common/react/utils/RandomHelper';\n\nimport { UpdateResourceRequest } from 'libs/shared/interfaces';\n\nexport const ResourceRequests = {\n resource(id: string): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}`,\n key: `resources:${id}`\n };\n },\n\n videoResources(videoId: string): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${videoId}/resources?query=customer`,\n key: `videos:${videoId}:resources`\n };\n },\n\n addResource(\n videoId: string,\n resource: any,\n success?: (data: HashObject) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${videoId}/resources`,\n key: `create:resource:${resource.fileId || RandomHelper.getRandomInt()}`,\n data: resource,\n type: HttpVerbs.POST,\n invalidationKeys: [ `videos:${videoId}:resources`, `videos:${videoId}` ],\n success,\n error,\n always\n };\n },\n\n updateResource(\n id: string,\n data: UpdateResourceRequest,\n success?: (data: HashObject) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}`,\n key: `update:resource:${id}`,\n data,\n type: HttpVerbs.PUT,\n success,\n error,\n always\n };\n },\n\n deleteResource(\n id: string,\n videoId: string,\n success?: (data: HashObject) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}`,\n key: `delete:resource:${id}`,\n type: HttpVerbs.DELETE,\n invalidationKeys: [ `videos:${videoId}:resources`, `videos:${videoId}` ],\n success,\n error,\n always\n };\n }\n};","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Xhr } from 'libs/common/backbone/interfaces/Xhr';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\nimport { RandomHelper } from 'libs/common/react/utils/RandomHelper';\n\nexport const SubtitleRequests = {\n subtitle(id: string): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}`,\n key: `subtitles:${id}`\n };\n },\n\n videoSubtitles(videoId: string): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${videoId}/subtitles?query=customer`,\n key: `videos:${videoId}:subtitles`\n };\n },\n\n addSubtitle(\n videoId: string,\n subtitle: any,\n success?: (data: HashObject) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${videoId}/subtitles`,\n key: `create:subtitle:${subtitle.fileId || RandomHelper.getRandomInt()}`,\n data: subtitle,\n type: HttpVerbs.POST,\n invalidationKeys: `videos:${videoId}:subtitles`,\n success,\n error,\n always\n };\n },\n\n deleteSubtitle(\n id: string,\n videoId: string,\n success?: (data: HashObject) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}`,\n key: `delete:subtitle:${id}`,\n type: HttpVerbs.DELETE,\n invalidationKeys: `videos:${videoId}:subtitles`,\n success,\n error,\n always\n };\n }\n};","import * as React from 'react';\nimport { useFormikContext } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { SearchBar } from 'libs/shared/components/search-bar/SearchBar';\nimport { Channel } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.channelFormField';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ChannelFormFieldProps {\n initialValue?: Channel;\n}\n\nexport function ChannelFormField<T extends HashObject>(props: ChannelFormFieldProps): JSX.Element {\n const formikProps = useFormikContext<T>();\n\n function setChannel(channel: Channel): void {\n formikProps.setFieldValue('channel', channel);\n }\n\n /**\n * On initial render or after saving, `formikProps.values.channel.name` will not be set\n * as it isn't sent in the API request. In those situations, props.initialValue.name will\n * be used.\n * Once a new channel is selected (but before the video is saved) `formikProps.values.channel.name`\n * will be set.\n */\n const channelName = formikProps.values.channel?.id\n ? formikProps.values.channel?.name || props.initialValue?.name\n : '';\n \n return (\n <FormField<T>\n label={getPhrase('channel')}\n name='channel'\n >\n {() => (\n <SearchBar\n key={formikProps.values.channel?.id}\n initialQuery={channelName}\n getRemoteUrl={(q: string) => `/api/domain/v1/search/channel/instant/raw?q=${q}`}\n onSuggestionSelected={setChannel}\n activationLength={2}\n placeholder={LanguageService.getPhrase(namespace, 'placeholder')}\n searchIconPlacement={false}\n highlightInputOnFocus\n showClearInputIcon\n onClickClearInput={() => setChannel({})}\n renderAsForm={false}\n />\n )}\n </FormField>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"inputContainer\":\"yR3gh\",\"clearButton\":\"KdxtL\",\"inputBtnContainer\":\"PPVhq\"};","import * as React from 'react';\nimport DatePicker from 'react-datepicker';\nimport { getIn, useFormikContext } from 'formik';\n\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './date-picker-form-field.scss';\n\ninterface DatePickerFormFieldProps<T> {\n attribute: keyof T & string;\n label?: string;\n placeholder?: string;\n maxDate?: Date;\n}\n\nexport function DatePickerFormField<T extends HashObject>(props: DatePickerFormFieldProps<T>): JSX.Element {\n const formikProps = useFormikContext<T>();\n\n const currentValue = getIn(formikProps?.values, props.attribute);\n\n const DateInput = React.forwardRef((\n dateInputProps: React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>,\n ref: React.MutableRefObject<HTMLInputElement>\n ) => (\n <div className={`position-relative ${styles.inputContainer}`}>\n <input\n name={props.attribute}\n placeholder={props.placeholder}\n className='form-control'\n value={dateInputProps.value as string}\n onChange={dateInputProps.onChange}\n onClick={dateInputProps.onClick}\n onKeyDown={(e: React.KeyboardEvent) => e.preventDefault()} // Prevent keyboard input\n ref={ref}\n autoComplete='off'\n />\n <div className={styles.inputBtnContainer}>\n {!!currentValue &&\n <div className={`d-inline-block text-secondary cursor-pointer ${styles.clearButton}`}>\n <SvgContainer\n svgName={cvSvgLibrary.Close}\n size={SvgContainerSize.Standard}\n onClick={() => formikProps.setFieldValue(props.attribute, null)}\n />\n </div>\n }\n <div className='d-inline-block cursor-pointer'>\n <SvgContainer\n svgName={cvSvgLibrary.Calendar}\n size={SvgContainerSize.Standard}\n onClick={dateInputProps.onClick}\n />\n </div>\n </div>\n </div>\n ));\n\n return (\n <FormField<T>\n label={props.label}\n name={props.attribute}\n >\n {() => (\n <DatePicker\n selected={currentValue ? new Date(currentValue) : null}\n onChange={(date: Date) => formikProps.setFieldValue(props.attribute, date.toISOString())}\n dateFormat={'d MMMM yyyy'}\n maxDate={props.maxDate}\n showMonthDropdown\n showYearDropdown\n customInput={<DateInput />}\n />\n )}\n </FormField>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"deleteIcon\":\"RsZ8L\",\"imageContainer\":\"R4kuc\"};","import * as React from 'react';\nimport { ButtonProps } from 'react-bootstrap';\nimport { getIn, useFormikContext } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { FileExtensions } from 'libs/shared/apps/upload/utils/FileExtensionsHelper';\nimport { FileSelectButton } from 'libs/shared/components/file-select-button/FileSelectButton';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ImageMinDimensions } from 'libs/shared/constants/ImageSizes';\nimport { ImageStorageContext } from 'libs/shared/context/ImageStorageContext';\nimport { FileIdType, ImageSize, ImageType } from 'libs/shared/enums/Images';\nimport { Image } from 'libs/shared/interfaces';\nimport { ImageSelectHelper } from 'libs/shared/utils/ImageSelectHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ImageFallback, ImageFallbackType } from '../image/ImageFallback';\n\nimport styles from './image-select.scss';\n\nconst namespace = 'shared.imageSelect';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getLabel(imageType: ImageType): string {\n const labels: { [imageType: string]: string } = {\n [ImageType.Thumbnails]: getPhrase('uploadAThumbnail'),\n [ImageType.Covers]: getPhrase('uploadACover'),\n [ImageType.Banners]: getPhrase('uploadABanner')\n };\n return labels[imageType];\n}\n\ninterface ImageSelectProps<Values extends HashObject> {\n imageType: ImageType;\n fieldName: keyof Values & string;\n appLink: Core.AppLink;\n imageFallbackType: ImageFallbackType;\n extraClasses?: string;\n setSelectedImage?: (image: Image) => void; // formikProps.setFieldValue will be used be default.\n deleteImage?: (fieldName: string) => void;\n btnVariant?: ButtonProps['variant'];\n}\n\nImageSelect.defaultProps = {\n btnVariant: 'light'\n};\n\nexport function ImageSelect<Values extends HashObject>(props: ImageSelectProps<Values>): React.ReactElement {\n const {\n imageType, fieldName, appLink, extraClasses, setSelectedImage, deleteImage\n } = props;\n\n const formikProps = useFormikContext<Values>();\n\n const currentImage = getIn(formikProps?.values, fieldName);\n\n const { setDataUrl, getImage, imageUploaded } = React.useContext(ImageStorageContext);\n\n const [ imageSelected, setImageSelected ] = React.useState(false);\n const [ image, setImage ] = React.useState<Image>(currentImage);\n\n /**\n * If the form is reset, we reset the image.\n * We check for a url because when a new image is selected\n * and set below, the url isn't set.\n */\n React.useEffect(() => {\n if (!currentImage)\n setImage(null);\n\n if (currentImage?.url)\n setImage(currentImage);\n }, [currentImage]);\n\n function onImageLoad(imageEl: HTMLImageElement): void {\n setImageSelected(true);\n setDataUrl(imageEl.src);\n\n // Trigger Upload Image appLink\n Core.AppLinkHelper.trigger({\n ...appLink,\n args: [imageType]\n });\n }\n\n function setImageValue(selectedImage: Image): void {\n if (FunctionHelper.isFunction(setSelectedImage)) {\n setSelectedImage(selectedImage);\n return;\n }\n\n if (!formikProps)\n return;\n\n /**\n * Intentionally not setting url so that it can be generated by the api.\n */\n formikProps.setFieldValue(fieldName, {\n fileId: selectedImage.id || selectedImage.fileId,\n fileIdType: FileIdType.ImageAPIv2\n });\n }\n\n React.useEffect(() => {\n if (!imageSelected)\n return;\n\n const newImage = getImage();\n\n if (!newImage)\n return;\n\n // Prevent this effect from being re-run unless we select an new image in this component.\n setImageSelected(false);\n setImage(newImage); // Set in component state so image can be viewed.\n setImageValue(newImage); // Set on parent component.\n }, [imageUploaded]);\n\n return (\n <div className='h-auto'>\n <div className={`pb-2 img-padding ${styles.imageContainer}`}>\n {deleteImage && image && <SvgContainer\n svgName={cvSvgLibrary.Delete}\n onClick={() => deleteImage(fieldName)}\n className= {`svg-container cursor-pointer ${styles.deleteIcon}`}\n />\n }\n <BaseImage\n data={image}\n imageType={imageType}\n imageOptions={{ size: ImageSize.Medium }}\n >\n {/** VideoThumbnailFallback may not work for other image types */}\n {extraClasses\n ? <div className={extraClasses} />\n : <ImageFallback type={props.imageFallbackType} />\n }\n </BaseImage>\n </div>\n <em className='d-block mb-2 em-margin text-secondary'>\n <Text\n namespace={namespace}\n phrase='minDimensions'\n options={{\n width: ImageMinDimensions[imageType].width,\n height: ImageMinDimensions[imageType].height\n }}\n />\n </em>\n <FileSelectButton\n className={`btn btn-${props.btnVariant} w-100`}\n mimeType={FileExtensions.IMAGES}\n onFileSelect={(files: FileList) => ImageSelectHelper.onFileSelect(imageType, files, onImageLoad)}\n >\n {getLabel(imageType)}\n </FileSelectButton>\n </div>\n );\n}","import * as React from 'react';\nimport { Button, ButtonGroup } from 'react-bootstrap';\nimport { useFormikContext } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { Rating, UpdateObjectRating } from 'libs/shared/interfaces';\n\nconst namespace = 'workspace.ratingSelect';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype ObjectWithRating<T extends HashObject> = T & { rating: UpdateObjectRating };\n\ninterface RatingSelectProps {\n ratings: Rating[];\n disabled?: boolean;\n}\n\nexport function RatingSelect<T extends ObjectWithRating<HashObject>>(props: RatingSelectProps): JSX.Element {\n const formikProps = useFormikContext<T>();\n\n function setRating(rating: Rating): void {\n formikProps.setFieldValue('rating', rating);\n }\n\n return (\n <FormField<T>\n label={getPhrase('rating')}\n name='rating'\n >\n {() => (\n <div>\n <ButtonGroup>\n {props.ratings.map((rating, idx) => {\n if (!rating.code)\n return <React.Fragment key={idx}></React.Fragment>;\n\n const isActive = rating.id.toString() === formikProps.values.rating?.id?.toString();\n\n return (\n <Tooltip key={idx} title={rating.name}>\n <Button\n variant='light'\n onClick={() => {\n setRating(isActive ? null : rating);\n }}\n active={isActive}\n disabled={props.disabled}\n >\n {rating.code}\n </Button>\n </Tooltip>\n );\n })}\n </ButtonGroup>\n </div>\n )}\n </FormField>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"title\":\"WCtjS\",\"rating\":\"dOyqo\"};","import * as React from 'react';\nimport { Button, ButtonProps, Row } from 'react-bootstrap';\nimport { Form, useFormikContext } from 'formik';\nimport * as Yup from 'yup';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { ChannelFormField } from 'libs/shared/components/channel-form-field/ChannelFormField';\nimport { ConfirmationPopup } from 'libs/shared/components/confirmation-popup/ConfirmationPopup';\nimport { DatePickerFormField } from 'libs/shared/components/forms/date-picker-form-field/DatePickerFormField';\nimport { FormButtons } from 'libs/shared/components/forms/form-buttons/FormButtons';\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { ImageSelect } from 'libs/shared/components/image-select/ImageSelect';\nimport { RatingSelect } from 'libs/shared/components/rating-select/RatingSelect';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { FileIdType, ImageType } from 'libs/shared/enums/Images';\nimport { useNavLock } from 'libs/shared/hooks/useNavLock';\nimport {\n Channel,\n Rating, Thumbnail, UpdateObjectChannel, UpdateObjectRating, UpdateVideoRequest, Video } from 'libs/shared/interfaces';\n\nimport { ImageFallbackType } from '../image/ImageFallback';\n\nimport styles from './edit-video-details.scss';\n\nconst namespace = 'shared.editVideoDetails';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\nconst NAV_LOCK_ID = 'edit-workspace-video-details';\n\nfunction getInitialValues(video: Video): UpdateVideoRequest {\n return {\n name: video.name,\n description: video.description,\n dateBroadcast: video.dateBroadcast,\n rating: video.rating,\n channel: video.channel ? { id: video.channel.id } : null,\n thumbnail: video.thumbnail\n };\n}\n\nconst VideoValidationSchema = Yup.object().shape<UpdateVideoRequest>({\n name: Yup.string()\n .trim()\n .max(255, () => getPhrase('titleTooLong'))\n .required(() => getPhrase('titleRequired'))\n .default(''),\n\n description: Yup.string()\n .trim()\n .max(16000, () => getPhrase('descriptionTooLong'))\n .default(''),\n\n rating: Yup.object()\n .shape<UpdateObjectRating>({\n id: Yup.string()\n })\n .default({})\n .nullable()\n .noUnknown(),\n\n dateBroadcast: Yup.string()\n .trim()\n .nullable(),\n\n channel: Yup.object()\n .shape<UpdateObjectChannel>({\n id: Yup.string()\n })\n .default({})\n .nullable()\n .noUnknown(),\n\n thumbnail: Yup.object()\n .shape<Thumbnail>({\n id: Yup.string(),\n fileId: Yup.string(),\n fileIdType: Yup.mixed<FileIdType>(),\n url: Yup.string()\n })\n .default({})\n .noUnknown()\n\n}).noUnknown();\n\ninterface VideoDetailsFormProps {\n id: string;\n ratings: Rating[];\n initialChannel?: Channel;\n actions?: ActionOptions[];\n imageUploadAppLink: Core.AppLink;\n navLockAppLinkWhitelist?: Core.AppLink[];\n\n saveBtnVariant?: ButtonProps['variant'];\n thumbnailBtnVariant?: ButtonProps['variant'];\n\n hideBroadcastInfo?: boolean;\n hideRating?: boolean;\n disableRatings?: boolean;\n}\n\nVideoDetailsForm.defaultProps = {\n saveBtnVariant: 'primary'\n};\n\nfunction VideoDetailsForm(props: VideoDetailsFormProps): JSX.Element {\n const formikProps = useFormikContext<UpdateVideoRequest>();\n\n const [ showResetConfirmPopup, setShowResetConfirmPopup ] = React.useState(false);\n\n const navLock = useNavLock();\n const unlockNav = () => navLock.unlock(NAV_LOCK_ID);\n\n // Runs on page load to lock the nav, and validate the initially uploaded users\n React.useEffect(() => {\n if (formikProps.dirty)\n navLock.lock({\n id: NAV_LOCK_ID,\n title: LanguageService.getPhrase(namespace, 'navLockTitle'),\n text: LanguageService.getPhrase(namespace, 'navLockBody'),\n appLinkWhitelist: props.navLockAppLinkWhitelist ?? []\n });\n \n if (!formikProps.dirty)\n unlockNav();\n }, [formikProps.dirty]);\n\n return (\n <>\n <Form>\n <Row>\n <div className='col-sm-4 col-xs-12 py-3'>\n <h2 className='h5'>{getPhrase('thumbnail')}</h2>\n <ImageSelect<UpdateVideoRequest>\n imageType={ImageType.Thumbnails}\n fieldName='thumbnail'\n appLink={props.imageUploadAppLink}\n btnVariant={props.thumbnailBtnVariant}\n imageFallbackType={ImageFallbackType.Video}\n />\n </div>\n <div className='col-sm-8 col-xs-12 py-3'>\n <Row>\n <div className='col-12 d-flex justify-content-between'>\n <h2 className='h5'>{getPhrase('basicInformation')}</h2>\n <div>\n {!!formikProps.dirty &&\n <Button variant='link' onClick={() => setShowResetConfirmPopup(true)}>\n {getPhrase('undoChanges')}\n </Button>\n }\n <FormButtons isNew={false} variant={props.saveBtnVariant} />\n </div>\n </div>\n </Row>\n <Row>\n <div className={`col-auto px-2 ${styles.title}`}>\n <FormField<UpdateVideoRequest>\n label={getPhrase('title')}\n type='text'\n name='name'\n id='name'\n value={formikProps.values.name}\n placeholder={getPhrase('titlePlaceholder')}\n />\n </div>\n {!props.hideRating && (\n <div className={`col-auto px-2 ${styles.rating}`}>\n <RatingSelect<UpdateVideoRequest> ratings={props.ratings} disabled={props.disableRatings} />\n </div>\n )}\n </Row>\n <Row>\n <div className='col-md-12'>\n <FormField<UpdateVideoRequest>\n label={getPhrase('description')}\n as='textarea'\n name='description'\n id='description'\n value={formikProps.values.description}\n placeholder={getPhrase('descriptionPlaceholder')}\n />\n </div>\n </Row>\n {!props.hideBroadcastInfo && (\n <Row>\n <div className='col-md-6'>\n <DatePickerFormField<UpdateVideoRequest>\n label={getPhrase('broadcastDate')}\n placeholder={getPhrase('broadcastDatePlaceholder')}\n attribute='dateBroadcast'\n maxDate={new Date()}\n />\n </div>\n <div className='col-md-6'>\n <ChannelFormField initialValue={props.initialChannel} />\n </div>\n </Row>\n )}\n </div>\n </Row>\n </Form>\n {showResetConfirmPopup &&\n <ConfirmationPopup\n title={getPhrase('undoPopupTitle') }\n onClickConfirm={() => { formikProps.resetForm(); setShowResetConfirmPopup(false); }}\n closePopup={() => setShowResetConfirmPopup(false)}\n confirmButtonText={getPhrase('undoPopupConfirm')}\n cancelButtonText={getPhrase('undoPopupCancel')}\n confirmButtonVariant='danger'\n >\n <p>\n <Text\n phrase='undoPopupBody'\n namespace={namespace}\n options={{ videoName: formikProps.initialValues.name }}\n />\n </p>\n </ConfirmationPopup>\n }\n </>\n );\n}\n\ninterface EditVideoDetailsProps {\n video: Video;\n saveVideo: (data: UpdateVideoRequest, onDone: () => void) => void;\n ratings: Rating[];\n\n imageUploadAppLink: Core.AppLink;\n navLockAppLinkWhitelist?: Core.AppLink[];\n\n saveBtnVariant?: ButtonProps['variant'];\n thumbnailBtnVariant?: ButtonProps['variant'];\n\n hideBroadcastInfo?: boolean;\n hideRating?: boolean;\n disableRatings?: boolean;\n}\n\nexport function EditVideoDetails(props: EditVideoDetailsProps): JSX.Element {\n return (\n <FormWrapper<UpdateVideoRequest>\n initialValues={getInitialValues(props.video)}\n validationSchema={VideoValidationSchema}\n onSubmit={props.saveVideo}\n >\n <VideoDetailsForm\n id={props.video && props.video.id}\n disableRatings={props.disableRatings}\n ratings={props.ratings}\n initialChannel={props.video.channel}\n imageUploadAppLink={props.imageUploadAppLink}\n hideBroadcastInfo={props.hideBroadcastInfo}\n hideRating={props.hideRating}\n navLockAppLinkWhitelist={props.navLockAppLinkWhitelist}\n saveBtnVariant={props.saveBtnVariant}\n thumbnailBtnVariant={props.thumbnailBtnVariant}\n />\n </FormWrapper>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"header\":\"y01jy\",\"subHeader\":\"rzjU8\",\"thumbnailContainer\":\"JqqU_\",\"input\":\"S4426\",\"textbox\":\"DWzHV\"};","import * as React from 'react';\n\nimport styles from './partial-edit-video-details.scss';\n\nexport function PartialEditVideoDetails(): JSX.Element {\n return (\n <div className='row'>\n <div className='col-sm-4 col-xs-12 py-3'>\n <div className={`partial-loading-background mb-2 ${styles.header}`}></div>\n <div className={`partial-loading-background mb-2 w-100 ${styles.thumbnailContainer}`}></div>\n <button className='btn my-3 w-100 partial-loading-background'>&nbsp;</button>\n </div>\n <div className='col-sm-8 col-xs-12 py-3'>\n <div className={`partial-loading-background mb-2 ${styles.header}`}></div>\n\n <div className={`partial-loading-background mb-2 ${styles.subHeader}`}></div>\n <div className={`partial-loading-background mb-2 ${styles.input}`}></div>\n\n <div className={`partial-loading-background mb-2 ${styles.subHeader}`}></div>\n <div className={`partial-loading-background mb-2 ${styles.textbox}`}></div>\n\n <div className={`partial-loading-background mb-2 ${styles.subHeader}`}></div>\n <div className={`partial-loading-background mb-2 ${styles.input}`}></div>\n </div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"header\":\"jXnSJ\",\"text\":\"TexaF\",\"upload\":\"iLqe5\"};","import * as React from 'react';\n\nimport styles from './partial-edit-video-upload-area.scss';\n\nexport function PartialEditVideoUploadArea(): JSX.Element {\n return (\n <div className='row border-top'>\n <div className='col-xl-6 col-lg-12 pt-3'>\n <div className={`partial-loading-background mb-2 ${styles.header}`}></div>\n <div className={`partial-loading-background mb-2 ${styles.text}`}></div>\n <div className={`partial-loading-background mb-2 ${styles.upload}`}></div>\n </div>\n <div className='col-xl-6 col-lg-12 pt-3'>\n <div className={`partial-loading-background mb-2 ${styles.header}`}></div>\n <div className={`partial-loading-background mb-2 ${styles.text}`}></div>\n <div className={`partial-loading-background mb-2 ${styles.upload}`}></div>\n </div>\n <div className='col-xl-6 col-lg-12 pt-3'>\n <div className={`partial-loading-background mb-2 ${styles.header}`}></div>\n <div className={`partial-loading-background mb-2 ${styles.text}`}></div>\n <div className={`partial-loading-background mb-2 ${styles.upload}`}></div>\n </div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"linkContainer\":\"muWDg\"};","import * as React from 'react';\nimport { ButtonProps } from 'react-bootstrap';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EditLink } from 'libs/shared/components/edit-link/EditLink';\nimport { FormSubmissionOptions } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Link } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './edit-video-links.scss';\n\nconst namespace = 'shared.editVideoLinks';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface LinkItemProps {\n link: Link;\n editLink: (id: string) => void;\n deleteLink: (id: string) => void;\n}\n\nfunction LinkItem(props: LinkItemProps): JSX.Element {\n return (\n <div className={`d-flex justify-content-between rounded p-2 mb-2 ${styles.linkContainer}`}>\n <span>\n <span className='d-inline-block align-middle info-link'>\n <SvgContainer svgName={cvSvgLibrary.Link} />\n </span>\n <a href={props.link.url} target='_blank' className='align-middle ms-2'>{props.link.name}</a>\n </span>\n <span className='cursor-pointer text-secondary'>\n <SvgContainer svgName={cvSvgLibrary.Edit} onClick={() => props.editLink(props.link.id)} />\n <SvgContainer svgName={cvSvgLibrary.Delete} onClick={() => props.deleteLink(props.link.id)} />\n </span>\n </div>\n );\n}\n\ninterface EditVideoLinksProps {\n links: Link[];\n addLink: (link: Link, onDone: (opts: FormSubmissionOptions) => void) => void;\n editLink: (id: string) => void;\n deleteLink: (id: string) => void;\n limit: number;\n btnVariant?: ButtonProps['variant'];\n}\n\nexport function EditVideoLinks(props: EditVideoLinksProps): JSX.Element {\n return (\n <>\n <h2 className='h5'>{getPhrase('heading')}</h2>\n <p>{getPhrase('description')}</p>\n <div className='mb-2'>\n {props.links?.length < props.limit\n ? <EditLink saveLink={props.addLink} submitButtonText={getPhrase('attach')} submitButtonVariant={props.btnVariant} />\n : (\n <p className='alert alert-warning mb-0'>\n {getPhrase('limit', { limit: props.limit })}\n </p>\n )\n }\n </div>\n {props.links.map((l, idx) =>\n <LinkItem key={idx} link={l} editLink={props.editLink} deleteLink={props.deleteLink} />)}\n </>\n );\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { DialogError } from 'libs/shared/errors/primitives/DialogError';\nimport { DialogOptions } from 'libs/shared/interfaces';\n\nconst lang = 'shared.tooManyFiles';\n\nexport class TooManyFilesError extends DialogError {\n constructor() {\n super(LanguageService.getPhrase(lang, 'title'));\n }\n\n // @ts-ignore\n public get name(): string {\n return 'TooManyFilesError';\n }\n\n // @ts-ignore\n public get dialogOptions(): DialogOptions {\n return {\n title: LanguageService.getPhrase(lang, 'heading'),\n text: LanguageService.getPhrase(lang, 'body'),\n buttons: [{\n text: LanguageService.getPhrase(lang, 'okay'),\n className: 'btn btn-dark',\n success: true\n }]\n };\n }\n}","// extracted by mini-css-extract-plugin\nexport default {\"fileDrop\":\"JuPXH\",\"dragActive\":\"aw4tl\",\"dropMask\":\"mP8BL\"};","import * as React from 'react';\nimport { ButtonProps } from 'react-bootstrap';\nimport { FileRejection, useDropzone } from 'react-dropzone';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { FileTypeError } from 'libs/shared/apps/upload/errors/file-type/FileTypeError';\nimport { FileSelectButton } from 'libs/shared/components/file-select-button/FileSelectButton';\nimport { InteractionType } from 'libs/shared/enums/UploadInteractionType';\nimport { TooManyFilesError } from 'libs/shared/legacy/errors/too-many-files/TooManyFilesError';\n\nimport styles from './file-select.scss';\n\nconst getPhrase = LanguageService.encloseNamespace('shared.fileSelect');\n\ninterface FileSelectProps {\n onFilesAdded: (files: File[], type?: InteractionType) => void;\n mimeType: string;\n btnText?: string;\n alternateText?: string;\n acceptMultiple?: boolean;\n limitAlertText?: string;\n showLimitAlert?: boolean;\n btnVariant?: ButtonProps['variant'];\n}\n\nFileSelect.defaultProps = {\n btnVariant: 'light'\n};\n\nexport function FileSelect(props: FileSelectProps): JSX.Element {\n const { getRootProps, getInputProps, isDragActive } = useDropzone({\n onDrop: (acceptedFiles: File[]) => props.onFilesAdded(acceptedFiles, InteractionType.DragDrop),\n noClick: true,\n noKeyboard: true,\n multiple: !!props.acceptMultiple,\n onDropRejected: (rejectedFiles: FileRejection[]) => {\n /**\n * Files can be rejected for the following reasons:\n * - Multiple files selected when multiple option is false.\n * - Invalid MIME type.\n * - File size too large/small.\n *\n * As we aren't passing min/max size options, we can assume\n * that the rejection reason is file type after we've checked\n * for multiple files.\n */\n if (rejectedFiles.length > 1 && !props.acceptMultiple) {\n Core.ErrorHelper.throw(new TooManyFilesError());\n return;\n }\n\n Core.ErrorHelper.throw(new FileTypeError(getPhrase('invalidFileType')));\n }\n });\n\n let className = `p-2 ${styles.fileDrop}`;\n\n if (isDragActive)\n className += ` ${styles.dragActive}`;\n\n if (props.limitAlertText && props.showLimitAlert)\n return (\n <p className='alert alert-warning mb-0'>{props.limitAlertText}</p>\n );\n\n return (\n <>\n <div {...getRootProps({ className })}>\n <FileSelectButton\n className={`btn btn-${props.btnVariant}`}\n onFileSelect={(files: FileList) => props.onFilesAdded([...files], InteractionType.FileSelect)}\n mimeType={props.mimeType}\n acceptMultiple={props.acceptMultiple}\n >\n {props.btnText || getPhrase('browse')}\n </FileSelectButton>\n {!!props.alternateText &&\n <span className='ms-2 text-secondary align-middle'>{props.alternateText}</span>\n }\n {isDragActive && <div className={styles.dropMask}></div>}\n <input {...getInputProps()} />\n </div>\n </>\n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"svgContainer\":\"sr9KQ\",\"progress\":\"Cn0ad\"};","import { ObjectHash } from 'backbone';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\n\nimport { cvSvgLibrary, SvgHelper } from 'libs/shared/utils/SvgHelper';\n\nimport FileUploadTemplate from './FileUpload.hbs';\n\nimport styles from './file-upload.scss';\n\nexport interface FileUploadComponentOptions extends Core.ComponentOptions {\n onClickCancelUpload: (id: string) => void;\n}\n\nexport class FileUploadComponent extends Core.Component {\n public options: FileUploadComponentOptions;\n\n constructor(options: FileUploadComponentOptions) {\n super(options);\n }\n\n public initialize(): void {\n this.listenTo(this.model, 'change:progress', this.render);\n }\n\n // @ts-ignore\n public get name(): string {\n return 'FileUploadComponent';\n }\n\n // @ts-ignore\n public get template(): any {\n return FileUploadTemplate;\n }\n\n public events(): ObjectHash {\n return {\n 'click .cancel-upload': 'onClickCancelUpload'\n };\n }\n\n private onClickCancelUpload(): void {\n if (!FunctionHelper.isFunction(this.options.onClickCancelUpload))\n return;\n\n this.options.onClickCancelUpload(this.model.get('id'));\n }\n\n public viewOptions(): ObjectHash {\n return {\n styles,\n svg: SvgHelper.getSvg(cvSvgLibrary.Folder),\n tickSvg: SvgHelper.getSvg(cvSvgLibrary.Check),\n finished: this.model.get('progress') >= 100\n };\n }\n}","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { BackboneViewWrapper } from 'libs/common/react/components/BackboneViewWrapper';\n\nimport { UploadItem } from 'libs/shared/apps/upload/services/UploadService';\nimport { FileUploadComponent } from 'libs/shared/legacy/components/file-uploads/FileUploadComponent';\n\ninterface FileUploadItemProps {\n upload: UploadItem;\n cancelUpload: (id: string) => void;\n}\n\nfunction FileUploadItem(props: FileUploadItemProps): JSX.Element {\n const model = React.useMemo(() => new Core.Model(props.upload), [props.upload]);\n\n return (\n <BackboneViewWrapper\n view={FileUploadComponent}\n options={{\n model,\n onClickCancelUpload: props.cancelUpload\n }}\n dependencies={[props.upload]}\n />\n );\n}\n\ninterface FileUploadListProps {\n uploads: UploadItem[];\n cancelUpload: (id: string) => void;\n}\n\nexport function FileUploadList(props: FileUploadListProps): JSX.Element {\n if (!props.uploads?.length)\n return <></>;\n\n return (\n <>\n {props.uploads.map((u, idx) => (\n <FileUploadItem\n key={idx}\n upload={u}\n cancelUpload={props.cancelUpload}\n />\n ))}\n </>\n );\n}","import { ObjectHash } from 'backbone';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, EntityType, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { cvSvgLibrary, SvgHelper } from 'libs/shared/utils/SvgHelper';\nimport { VideoDetailsHelper } from 'libs/shared/utils/VideoDetailsHelper';\n\nimport ResourceItemTemplate from './ResourceItem.hbs';\n\nimport styles from './resource.scss';\n\nexport interface ResourceItemComponentOptions extends Core.ComponentOptions {\n editable: boolean;\n videoId: string;\n getEditAppLink: (resourceId: string) => Core.AppLink;\n onClickDelete: (resource: Core.Model) => void;\n analyticsOptions?: AnalyticsOptions;\n}\n\nexport class ResourceItemComponent extends Core.Component {\n public options: ResourceItemComponentOptions;\n\n constructor(options: ResourceItemComponentOptions) {\n super(options);\n }\n\n // @ts-ignore\n public get name(): string {\n return 'ResourceItemComponent';\n }\n\n // @ts-ignore\n public get template(): any {\n return ResourceItemTemplate;\n }\n\n // @ts-ignore\n public get className(): string {\n return `${styles.container} rounded p-2 mb-2`;\n }\n\n public events(): ObjectHash {\n return {\n 'click .delete': 'onClickDelete',\n 'click .edit': 'onClickEdit'\n };\n }\n\n // @ts-ignore\n public get appLinks(): Core.AppLinkHash {\n return {\n '.edit': this.options.getEditAppLink(this.model.get('id'))\n };\n }\n\n // Log action and allow event to bubble\n private onClickEdit(): void {\n const analyticsOptions = AnalyticsHelper.mergeOptions(this.options.analyticsOptions, {\n actionType: UserAction.Edit,\n entity: EntityType.Resource,\n workflowPhase: WorkflowPhase.Start\n });\n\n const data = {\n id: this.model.get('id'),\n parentId: +this.options.videoId\n };\n\n AnalyticsHelper.logUserAction(data, analyticsOptions);\n }\n\n private onClickDelete(): void {\n if (!FunctionHelper.isFunction(this.options.onClickDelete))\n return;\n\n this.options.onClickDelete(this.model);\n }\n\n public viewOptions(): ObjectHash {\n const metadata = this.model.get('metadata');\n const fileType = metadata ? metadata.type : '';\n\n return {\n editable: this.options.editable,\n extension: VideoDetailsHelper.mapTypeToExtension(fileType),\n svg: SvgHelper.getSvg(VideoDetailsHelper.mapTypeToSvg(fileType)),\n iconClass: VideoDetailsHelper.mapTypeToClass(fileType),\n resourceType: VideoDetailsHelper.mapTypeToName(fileType),\n editSvg: SvgHelper.getSvg(cvSvgLibrary.Edit),\n trashSvg: SvgHelper.getSvg(cvSvgLibrary.Delete)\n };\n }\n}","export enum ObjectOwnerType {\n Customer = 1,\n ClickView = 2\n}","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"CdlNn\"};","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { BackboneViewWrapper } from 'libs/common/react/components/BackboneViewWrapper';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { Resource } from 'libs/shared/interfaces';\nimport { ResourceItemComponent } from 'libs/shared/legacy/components/resource-item/ResourceItemComponent';\n\ninterface ResourceItemProps {\n resource: Resource;\n videoId: string;\n editable: boolean;\n getEditAppLink: (resourceId: string) => Core.AppLink;\n onClickDelete: (resourceId: string) => void;\n analyticsOptions?: AnalyticsOptions;\n}\n\nfunction ResourceItem(props: ResourceItemProps): JSX.Element {\n const model = React.useMemo(() => new Core.Model({ ...props.resource }), [props.resource]);\n\n return (\n <BackboneViewWrapper\n view={ResourceItemComponent}\n options={{\n model,\n videoId: props.videoId,\n editable: props.editable,\n getEditAppLink: props.getEditAppLink,\n onClickDelete: (resource: Core.Model) => props.onClickDelete(resource.get('id')),\n analyticsOptions: props.analyticsOptions\n }}\n dependencies={[ props.resource, props.videoId ]}\n />\n );\n}\n\ninterface ResourceListProps {\n resources: Resource[];\n videoId: string;\n editable: boolean;\n getEditAppLink: (resourceId: string) => Core.AppLink;\n onClickDelete: (resourceId: string) => void;\n analyticsOptions?: AnalyticsOptions;\n}\n\nexport function ResourceList(props: ResourceListProps): JSX.Element {\n if (!props.resources?.length)\n return <></>;\n\n return (\n <>\n {props.resources.map((r, idx) => (\n <ResourceItem\n key={idx}\n resource={r}\n videoId={props.videoId}\n editable={props.editable}\n getEditAppLink={props.getEditAppLink}\n onClickDelete={props.onClickDelete}\n analyticsOptions={props.analyticsOptions}\n />\n ))}\n </>\n );\n}","import { MasterObjectTypes } from 'libs/shared/enums/MasterObjectTypes';\nimport { ObjectOwnerType } from 'libs/shared/enums/ObjectOwnerType';\nimport { BaseObject, Customer, Video } from 'libs/shared/interfaces';\n\nfunction isCustomLibraryVideoOnly(video: Video): boolean {\n return video?.libraries?.data?.every(l => l.type === MasterObjectTypes.CustomLibrary);\n}\n\nfunction isWorkspaceVideoOnly(video: Video): boolean {\n return video?.libraries?.data?.every(l => l.type === MasterObjectTypes.Workspace);\n}\n\ninterface ObjectWithCustomer extends BaseObject {\n customer?: Customer;\n}\n\nexport const PermissionsHelper = {\n canEditVideo(video: Video): boolean {\n if (video._canUpdate)\n return video._canUpdate.value;\n\n return isCustomLibraryVideoOnly(video) || isWorkspaceVideoOnly(video);\n },\n\n filterObjectsByOwnerType<T extends ObjectWithCustomer>(\n objects: T[],\n owner: ObjectOwnerType,\n currentCustomerId?: string\n ): T[] {\n return objects.filter((object: T) => {\n const objectCustomerId = object.customer?.id;\n\n if (!objectCustomerId && owner === ObjectOwnerType.ClickView)\n return true;\n\n return objectCustomerId?.toString() === currentCustomerId?.toString() && owner === ObjectOwnerType.Customer;\n });\n }\n};","import * as React from 'react';\nimport { ButtonProps } from 'react-bootstrap';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { UploadItem } from 'libs/shared/apps/upload/services/UploadService';\nimport { FileExtensions } from 'libs/shared/apps/upload/utils/FileExtensionsHelper';\nimport { FileSelect } from 'libs/shared/components/file-select/FileSelect';\nimport { FileUploadList } from 'libs/shared/components/file-upload-list/FileUploadList';\nimport { ResourceList } from 'libs/shared/components/resource-list/ResourceList';\nimport { ObjectOwnerType } from 'libs/shared/enums/ObjectOwnerType';\nimport { InteractionType } from 'libs/shared/enums/UploadInteractionType';\nimport { Resource, Video } from 'libs/shared/interfaces';\nimport { PermissionsHelper } from 'libs/shared/utils/PermissionsHelper';\n\nconst namespace = 'shared.editVideoResources';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface EditVideoResourcesProps {\n video: Video;\n resources: Resource[];\n addResourceFiles: (files: File[], type?: InteractionType) => void;\n resourceLimit: number;\n uploadingFiles: UploadItem[];\n cancelUpload: (id: string) => void;\n getEditAppLink: (resourceId: string) => Core.AppLink;\n onClickDelete: (resourceId: string) => void;\n currentUserCustomerId: string;\n analyticsOptions?: AnalyticsOptions;\n btnVariant?: ButtonProps['variant'];\n}\n\nexport function EditVideoResources(props: EditVideoResourcesProps): JSX.Element {\n const isClickViewVideo = !PermissionsHelper.canEditVideo(props.video);\n\n const customerResources = isClickViewVideo\n ? PermissionsHelper.filterObjectsByOwnerType(props.resources, ObjectOwnerType.Customer, props.currentUserCustomerId)\n : props.resources;\n\n const clickViewResources = !!isClickViewVideo && PermissionsHelper.filterObjectsByOwnerType(\n props.resources,\n ObjectOwnerType.ClickView\n );\n\n return (\n <>\n {!!clickViewResources?.length &&\n <>\n <h2 className='h5'>{getPhrase('clickViewResources')}</h2>\n <ResourceList\n resources={clickViewResources}\n videoId={props.video.id}\n getEditAppLink={props.getEditAppLink}\n onClickDelete={props.onClickDelete}\n analyticsOptions={props.analyticsOptions}\n editable={false}\n />\n </>\n }\n <div className='mb-2'>\n <h5>{isClickViewVideo ? getPhrase('customerResources') : getPhrase('resources')}</h5>\n <p dangerouslySetInnerHTML={{ __html: getPhrase('resourcesDescription') }} />\n <FileSelect\n onFilesAdded={props.addResourceFiles}\n alternateText={getPhrase('resourcesAlternative')}\n mimeType={FileExtensions.RESOURCES}\n limitAlertText={getPhrase('resourcesLimit', { limit: props.resourceLimit })}\n showLimitAlert={props.resources?.length >= props.resourceLimit}\n btnVariant={props.btnVariant}\n acceptMultiple\n />\n </div>\n <FileUploadList uploads={props.uploadingFiles} cancelUpload={props.cancelUpload} />\n <ResourceList\n resources={customerResources}\n videoId={props.video.id}\n getEditAppLink={props.getEditAppLink}\n onClickDelete={props.onClickDelete}\n analyticsOptions={props.analyticsOptions}\n editable={!isClickViewVideo}\n />\n </>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"SizJb\",\"svgContainer\":\"PuqLQ\",\"actionSvg\":\"L9P1P\"};","import { ObjectHash } from 'backbone';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\n\nimport { SubtitleHelper } from 'libs/shared/utils/SubtitleHelper';\nimport { cvSvgLibrary, SvgHelper } from 'libs/shared/utils/SvgHelper';\nimport { VideoDetailsHelper } from 'libs/shared/utils/VideoDetailsHelper';\n\nimport SubtitleTemplate from './Subtitle.hbs';\n\nimport styles from './subtitle.scss';\n\nexport interface SubtitleItemComponentOptions extends Core.ComponentOptions {\n onClickDelete: (resource: Core.Model) => void;\n isClickViewContent?: boolean;\n}\n\nexport class SubtitleItemComponent extends Core.Component {\n public options: SubtitleItemComponentOptions;\n\n constructor(options: SubtitleItemComponentOptions) {\n super(options);\n }\n\n // @ts-ignore\n public get name(): string {\n return 'SubtitleItemComponent';\n }\n\n // @ts-ignore\n public get template(): any {\n return SubtitleTemplate;\n }\n\n // @ts-ignore\n public get className(): string {\n return `${styles.container} rounded p-2 mb-2`;\n }\n\n public events(): ObjectHash {\n return {\n 'click .delete': 'onClickDelete'\n };\n }\n\n private getEnglishName(): string {\n return SubtitleHelper.getEnglishName(this.model.toJSON(), this.model.collection.toJSON());\n }\n\n private onClickDelete(): void {\n if (this.options.isClickViewContent || !FunctionHelper.isFunction(this.options.onClickDelete))\n return;\n\n this.options.onClickDelete(this.model);\n }\n\n public viewOptions(): ObjectHash {\n return {\n styles,\n svg: SvgHelper.getSvg(VideoDetailsHelper.mapTypeToSvg('subtitle')),\n trashSvg: SvgHelper.getSvg(cvSvgLibrary.Delete),\n name: this.getEnglishName(),\n isClickViewContent: this.options.isClickViewContent\n };\n }\n}","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { BackboneViewWrapper } from 'libs/common/react/components/BackboneViewWrapper';\n\nimport { Subtitle } from 'libs/shared/interfaces';\nimport { SubtitleItemComponent } from 'libs/shared/legacy/components/subtitle-item/SubtitleItemComponent';\n\ninterface SubtitleItemProps {\n subtitle: Core.Model;\n onClickDelete: (subtitleId: string) => void;\n isClickViewContent?: boolean;\n}\n\nfunction SubtitleItem(props: SubtitleItemProps): JSX.Element {\n return (\n <BackboneViewWrapper\n view={SubtitleItemComponent}\n options={{\n model: props.subtitle,\n onClickDelete: (subtitle: Core.Model) => props.onClickDelete(subtitle.get('id')),\n isClickViewContent: props.isClickViewContent\n }}\n dependencies={[props.subtitle]}\n />\n );\n}\n\ninterface SubtitleListProps {\n subtitles: Subtitle[];\n onClickDelete: (subtitleId: string) => void;\n isClickViewContent?: boolean;\n}\n\nexport function SubtitleList(props: SubtitleListProps): JSX.Element {\n /**\n * We use a Backbone collection as SubtitleItemComponent expects\n * the model to be in a collection.\n */\n const collection = React.useMemo(() => new Core.Collection(props.subtitles), [props.subtitles]);\n\n if (!props.subtitles?.length)\n return <></>;\n\n return (\n <>\n {collection.map((subtitle, idx) => (\n <SubtitleItem\n key={idx}\n subtitle={subtitle}\n onClickDelete={props.onClickDelete}\n isClickViewContent={props.isClickViewContent}\n />\n ))}\n </>\n );\n}","import * as React from 'react';\nimport { ButtonProps } from 'react-bootstrap';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { UploadItem } from 'libs/shared/apps/upload/services/UploadService';\nimport { FileExtensions } from 'libs/shared/apps/upload/utils/FileExtensionsHelper';\nimport { FileSelect } from 'libs/shared/components/file-select/FileSelect';\nimport { FileUploadList } from 'libs/shared/components/file-upload-list/FileUploadList';\nimport { SubtitleList } from 'libs/shared/components/subtitle-list/SubtitleList';\nimport { ObjectOwnerType } from 'libs/shared/enums/ObjectOwnerType';\nimport { InteractionType } from 'libs/shared/enums/UploadInteractionType';\nimport { Subtitle, Video } from 'libs/shared/interfaces';\nimport { PermissionsHelper } from 'libs/shared/utils/PermissionsHelper';\n\nconst namespace = 'shared.editVideoSubtitles';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface EditVideoSubtitlesProps {\n video: Video;\n subtitles: Subtitle[];\n addSubtitleFiles: (files: File[], type?: InteractionType) => void;\n subtitleLimit: number;\n uploadingFiles: UploadItem[];\n cancelUpload: (id: string) => void;\n onClickDelete: (subtitleId: string) => void;\n currentUserCustomerId: string;\n btnVariant?: ButtonProps['variant'];\n}\n\nexport function EditVideoSubtitles(props: EditVideoSubtitlesProps): JSX.Element {\n const isClickViewVideo = !PermissionsHelper.canEditVideo(props.video);\n\n const customerSubtitles = isClickViewVideo\n ? PermissionsHelper.filterObjectsByOwnerType(props.subtitles, ObjectOwnerType.Customer, props.currentUserCustomerId)\n : props.subtitles;\n\n const clickViewSubtitles = !!isClickViewVideo && PermissionsHelper.filterObjectsByOwnerType(\n props.subtitles,\n ObjectOwnerType.ClickView\n );\n\n return (\n <>\n {!!clickViewSubtitles?.length &&\n <>\n <h2 className='h5'>{getPhrase('clickViewSubtitles')}</h2>\n <SubtitleList\n subtitles={clickViewSubtitles}\n onClickDelete={props.onClickDelete}\n isClickViewContent={isClickViewVideo}\n />\n </>\n }\n <div className='mb-2'>\n <h5>{isClickViewVideo ? getPhrase('customerSubtitles') : getPhrase('subtitles')}</h5>\n <p\n dangerouslySetInnerHTML={{\n __html: getPhrase('subtitlesDescription', { limit: props.subtitleLimit })\n }}\n />\n <FileSelect\n onFilesAdded={props.addSubtitleFiles}\n alternateText={getPhrase('subtitlesAlternative')}\n mimeType={FileExtensions.SUBTITLES}\n limitAlertText={getPhrase('subtitlesLimit', { limit: props.subtitleLimit })}\n showLimitAlert={props.subtitles?.length >= props.subtitleLimit}\n btnVariant={props.btnVariant}\n />\n </div>\n <FileUploadList uploads={props.uploadingFiles} cancelUpload={props.cancelUpload} />\n <SubtitleList\n subtitles={customerSubtitles}\n onClickDelete={props.onClickDelete}\n isClickViewContent={isClickViewVideo}\n />\n </>\n );\n}","import * as React from 'react';\nimport { ButtonProps } from 'react-bootstrap';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { SearchBar } from 'libs/shared/components/search-bar/SearchBar';\nimport { Language, PopupViewProps } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.languageSelect';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst SUGGESTION_LIMIT = 5;\n\nfunction getLanguageMatches(query: string): Language[] {\n const matches: Language[] = [];\n\n if (!query)\n return matches;\n\n const lanByStr: HashObject = CVLanguages.getEnglishNameContains(query);\n\n Object.keys(lanByStr).forEach(key => {\n matches.push({ code: key, name: lanByStr[key].englishName });\n });\n\n return ArrayHelper.firstFew(matches, SUGGESTION_LIMIT);\n}\n\ninterface LanguageSelectProps extends PopupViewProps {\n onSelectLanguage: (language: Language) => void;\n defaultLanguage: Language;\n submitVariant?: ButtonProps['variant'];\n}\n\nLanguageSelect.defaultProps = {\n submitVariant: 'primary'\n};\n\nexport function LanguageSelect(props: LanguageSelectProps): JSX.Element {\n const [ selectedLanguage, setSelectedLanguage ] = React.useState(props.defaultLanguage);\n\n function onSelectLanguage(): void {\n if (!selectedLanguage)\n return;\n\n props.onSelectLanguage(selectedLanguage);\n }\n\n return (\n <Popup title={getPhrase('heading')} closePopup={props.closePopup}>\n <div className='pb-3'>\n <SearchBar\n initialQuery={selectedLanguage.name}\n onSuggestionSelected={setSelectedLanguage}\n local={[]}\n getLocalSuggestions={getLanguageMatches}\n placeholder={getPhrase('placeholder')}\n activationLength={1}\n searchIconPlacement={false}\n autoFocusInput\n highlightInputOnFocus\n />\n </div>\n <PopupButtons>\n <PopupButtons.Cancel text={getPhrase('close')} onClick={props.closePopup} />\n <PopupButtons.Submit text={getPhrase('submit')} onClick={onSelectLanguage} variant={props.submitVariant} />\n </PopupButtons>\n </Popup>\n );\n}","import { Flight } from 'libs/common/flight';\n\nexport const RatingRequests = {\n ratings(): Flight.Request {\n return {\n url: '/api/domain/v2/me/ratings',\n key: 'ratings'\n };\n }\n};","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { DialogError } from 'libs/shared/errors/primitives/DialogError';\nimport { DialogOptions } from 'libs/shared/interfaces/DialogOptions';\n\nconst lang = 'shared.errors.tooManyResources';\n\nexport class TooManyResourcesError extends DialogError {\n public resourceLimit: number;\n\n constructor(resourceLimit: number) {\n super('Cannot add that many resources');\n\n this.resourceLimit = resourceLimit;\n }\n\n // @ts-ignore\n public get name(): string {\n return 'TooManyResourcesError';\n }\n\n // @ts-ignore\n public get dialogOptions(): DialogOptions {\n return {\n title: LanguageService.getPhrase(lang, 'heading'),\n text: LanguageService.getPhrase(lang, 'body', { resourceLimit: this.resourceLimit }),\n buttons: [{\n text: LanguageService.getPhrase(lang, 'okay'),\n className: 'btn btn-dark',\n success: true\n }]\n };\n }\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { DialogError } from 'libs/shared/errors/primitives/DialogError';\nimport { DialogOptions } from 'libs/shared/interfaces/DialogOptions';\n\nconst lang = 'shared.errors.tooManySubtitles';\n\nexport class TooManySubtitlesError extends DialogError {\n public subtileLimit: number;\n\n constructor(subtitleLimit: number) {\n super('Cannot add that many subtitles');\n\n this.subtileLimit = subtitleLimit;\n }\n\n // @ts-ignore\n public get name(): string {\n return 'TooManySubtitlesError';\n }\n\n // @ts-ignore\n public get dialogOptions(): DialogOptions {\n return {\n title: LanguageService.getPhrase(lang, 'heading'),\n text: LanguageService.getPhrase(lang, 'body', { subtitleLimit: this.subtileLimit }),\n buttons: [{\n text: LanguageService.getPhrase(lang, 'okay'),\n className: 'btn btn-dark',\n success: true\n }]\n };\n }\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nconst namespace = 'shared.cannotEditVideo';\n\nexport class CannotEditVideoError extends ErrorPageError {\n constructor() {\n super(LanguageService.getPhrase(namespace, 'title'));\n }\n\n // @ts-ignore\n public get name(): string {\n return 'CannnotEditVideoError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return LanguageService.getPhrase(namespace, 'heading');\n }\n\n // @ts-ignore\n public get description(): string {\n return LanguageService.getPhrase(namespace, 'description');\n }\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { MasterObjectTypes } from 'libs/shared/enums/MasterObjectTypes';\nimport { useBuildBreadcrumbs } from 'libs/shared/hooks/useBuildBreadcrumbs';\nimport { Video } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'myVideos.hooks';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function useGetEditVideoBreadcrumbs(video: Video): Breadcrumb[] {\n const folder = video?.categories?.data?.[0];\n\n const library = folder?.libraries?.data?.[0];\n const isCustomLibrary = library?.type === MasterObjectTypes.CustomLibrary;\n\n const firstItem = isCustomLibrary ? {\n name: library?.name,\n appLink: {\n application: AppChannels.LIBRARIES,\n action: Actions.Libraries.LIBRARY,\n args: [ library?.id, TextHelper.slugify(library?.name) ]\n }\n } : {\n name: getPhrase('myVideos'),\n appLink: {\n application: AppChannels.MY_VIDEOS,\n action: Actions.MyVideos.MY_VIDEOS\n }\n };\n const lastItem = { name: video?.name, active: true };\n \n const breadcrumbs = useBuildBreadcrumbs({\n folderId: folder?.id,\n getAppLink: object => {\n if (!isCustomLibrary) {\n return {\n application: AppChannels.MY_VIDEOS,\n action: Actions.MyVideos.MY_VIDEOS_FOLDER,\n args: [ object.data.id, TextHelper.slugify(object.data.name) ]\n };\n }\n \n return {\n application: AppChannels.LIBRARIES,\n action: Actions.Libraries.FOLDER,\n args: [ library.id, object.data.id, TextHelper.slugify(object.data.name) ]\n };\n },\n firstItem,\n lastItem\n });\n\n /**\n * Handling category tree in my videos. - Sha\n */\n if (video?.categories?.data && !video.categories.data.length) {\n return [ firstItem, lastItem ];\n }\n\n return breadcrumbs;\n}","import { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nexport const getNavLockAppLinkWhiteList = () => {\n return [\n {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.UPLOAD_IMAGE\n },\n {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.EDIT_RESOURCE\n },\n {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.DELETE_RESOURCE\n },\n {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.DELETE_SUBTITLE\n },\n {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.EDIT_LINK\n },\n {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.DELETE_LINK\n }\n ];\n};","import * as React from 'react';\nimport { useDispatch } from 'react-redux';\nimport { Radio } from 'backbone';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\nimport { useService } from 'libs/common/react/hooks/UseService';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AssocDescriptor, EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { UploadEventNames } from 'libs/shared/apps/upload/constants/UploadConstants';\nimport { LearningResourceUploadService, SubtitleUploadService, UploadItem } from 'libs/shared/apps/upload/services/UploadService';\nimport { FileExtensionHelper } from 'libs/shared/apps/upload/utils/FileExtensionsHelper';\nimport { Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { EditVideoDetails } from 'libs/shared/components/edit-video-details/EditVideoDetails';\nimport { PartialEditVideoDetails } from 'libs/shared/components/edit-video-details/partial-loading-details/PartialEditVideoDetails';\nimport { PartialEditVideoUploadArea } from 'libs/shared/components/edit-video-details/partial-loading-upload/PartialEditVideoUploadArea';\nimport { EditVideoLinks } from 'libs/shared/components/edit-video-links/EditVideoLinks';\nimport { EditVideoResources } from 'libs/shared/components/edit-video-resources/EditVideoResources';\nimport { EditVideoSubtitles } from 'libs/shared/components/edit-video-subtitles/EditVideoSubtitles';\nimport { FormSubmissionOptions } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { LanguageSelect } from 'libs/shared/components/language-select/LanguageSelect';\nimport { SharedServiceChannels } from 'libs/shared/constants/RadioChannels';\nimport { SharedServices } from 'libs/shared/constants/SharedServices';\nimport { InteractionType } from 'libs/shared/enums/UploadInteractionType';\nimport { RatingRequests } from 'libs/shared/flight-requests/RatingRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useGetCollectionItems } from 'libs/shared/hooks/UseGetCollectionItems';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useListenOn } from 'libs/shared/hooks/UseListenOn';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport {\n CurrentUser,\n FileUpload,\n Language,\n Link,\n LinkCollection,\n Rating,\n Resource,\n ResourceCollection,\n Subtitle,\n SubtitleCollection,\n UpdateVideoRequest,\n Video } from 'libs/shared/interfaces';\nimport { TooManyResourcesError } from 'libs/shared/legacy/errors/too-many-resources/TooManyResourcesError';\nimport { TooManySubtitlesError } from 'libs/shared/legacy/errors/too-many-subtitles/TooManySubtitlesError';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { CannotEditVideoError } from 'shared/errors/videos/cannot-edit/CannotEditVideoError';\nimport { LinkRequests } from 'shared/flight-requests/LinkRequests';\nimport { ResourceRequests } from 'shared/flight-requests/ResourceRequests';\nimport { SubtitleRequests } from 'shared/flight-requests/SubtitleRequests';\nimport { useGetEditVideoBreadcrumbs } from 'shared/views/edit-video/useGetEditVideoBreadcrumbs';\n\nimport { getNavLockAppLinkWhiteList } from './EditVideoViewUtils';\n\nconst namespace = 'shared.editVideo';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst SUBTITLE_LIMIT = 5;\nconst RESOURCE_LIMIT = 25;\nconst LINK_LIMIT = 25;\n\nfunction logUploadAction(item: Resource | Subtitle, entity: EntityType, interactionType: InteractionType): void {\n const descriptor = AnalyticsHelper.mapInteractionType(interactionType);\n\n const analyticsOptions = {\n location: LocationContext.EditVideoResources,\n actionType: UserAction.Upload,\n entity,\n descriptor\n };\n\n AnalyticsHelper.logUserAction(item, analyticsOptions);\n}\n\ninterface EditVideoViewProps {\n id: string;\n}\n\nexport function EditVideoView(props: EditVideoViewProps): JSX.Element {\n const dispatch = useDispatch();\n const alerts = useAlerts();\n\n const [ subtitleUpload, setSubtitleUpload ] = React.useState<FileUpload>();\n\n const video = Flight.useBasicFetch<Video>(VideoRequests.video(props.id));\n const ratings = Flight.useBasicFetch<Rating[]>(RatingRequests.ratings());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n /**\n * We fetch resources, subtitles and link separately from the video so that we can invalidate the\n * resources/subtitles/links in the store without invalidating the video as it may interrupt the user editing.\n */\n const resources = Flight.useBasicFetch<ResourceCollection>(ResourceRequests.videoResources(props.id));\n const subtitles = Flight.useBasicFetch<SubtitleCollection>(SubtitleRequests.videoSubtitles(props.id));\n const links = Flight.useBasicFetch<LinkCollection>(LinkRequests.videoLinks(props.id));\n\n const resourceUploadService = useService<LearningResourceUploadService>(SharedServices.ResourceUpload);\n const resourceUploads = useGetCollectionItems<UploadItem>(() => resourceUploadService.getCollection(), null);\n\n const subtitleUploadService = useService<SubtitleUploadService>(SharedServices.SubtitleUpload);\n const subtitleUploads = useGetCollectionItems<UploadItem>(() => subtitleUploadService.getCollection(), null);\n\n const breadcrumbs = useGetEditVideoBreadcrumbs(video.data);\n\n React.useEffect(() => {\n if (!video.hasCompleted)\n return;\n\n if (video.data?._canUpdate?.value)\n return;\n\n Core.ErrorHelper.throw(new CannotEditVideoError());\n }, [video.data?._canUpdate?.value]);\n\n useListenOn(\n Radio.channel(SharedServiceChannels.RESOURCE_UPLOAD),\n UploadEventNames.UPLOAD_COMPLETE,\n onResourceUploadComplete\n );\n\n useListenOn(\n Radio.channel(SharedServiceChannels.SUBTITLE_UPLOAD),\n UploadEventNames.UPLOAD_COMPLETE,\n onSubtitleUploadComplete\n );\n\n const interactionTypeRef = React.useRef<InteractionType>();\n const resourceUploadCountRef = React.useRef(0);\n const resourceUploadsRef = React.useRef([]);\n\n useSetPageMetadata({ title: !!video.data && getPhrase('pageTitle', { name: video.data.name }) });\n useHandleObjectError(video);\n\n function saveVideo(data: UpdateVideoRequest, onDone: () => void): void {\n const onSuccess = () => alerts.success(getPhrase('videoDetailsUpdateSuccess', {\n name: data.name,\n escapeText: true\n }));\n const onError = () => alerts.error(getPhrase('videoDetailsUpdateError'));\n\n Flight.fetch(dispatch, VideoRequests.updateVideo(props.id, data, onSuccess, onError, onDone));\n }\n\n function addResourceFiles(files: File[], type?: InteractionType): void {\n if (files.length > (RESOURCE_LIMIT - resources.data?.data?.length)) {\n Core.ErrorHelper.throw(new TooManyResourcesError(RESOURCE_LIMIT));\n return;\n }\n\n resourceUploadCountRef.current += files.length;\n\n if (type)\n interactionTypeRef.current = type;\n\n resourceUploadService.addFiles(files);\n }\n\n function addSubtitleFiles(files: File[], type?: InteractionType): void {\n if (files.length > (SUBTITLE_LIMIT - subtitles.data?.data?.length)) {\n Core.ErrorHelper.throw(new TooManySubtitlesError(RESOURCE_LIMIT));\n return;\n }\n\n if (type)\n interactionTypeRef.current = type;\n\n subtitleUploadService.addFiles(files);\n }\n\n function onResourceUploadComplete(upload: Core.Model): void {\n const uploadData: FileUpload = upload.toJSON();\n\n const data = {\n fileId: uploadData.fileInfo.id,\n uploadId: uploadData.file.cvUpload.uploadId,\n name: uploadData.fileInfo.name,\n type: FileExtensionHelper.getResourceType(uploadData.fileInfo.extension),\n extension: uploadData.fileInfo.extension,\n fileSize: uploadData.fileInfo.size,\n fileUrl: uploadData.fileInfo.url,\n ingestUrl: uploadData.file.cvUpload.ingestUrl,\n metaData: {\n type: FileExtensionHelper.getResourceType(uploadData.fileInfo.extension)\n },\n contribution: false,\n url: uploadData.fileInfo.url,\n fileIdType: 2 // FileApiV1\n };\n\n resourceUploadsRef.current.push(data);\n resourceUploadCountRef.current--;\n\n if (resourceUploadCountRef.current > 0)\n return;\n\n // The below will only run once all resources have been uploaded.\n let resourcesToUpload = resourceUploadsRef.current.length;\n\n const onSuccess = (resource: Resource) => {\n resourcesToUpload--;\n\n logUploadAction(resource, EntityType.Resource, interactionTypeRef.current);\n\n if (resourcesToUpload > 0)\n return;\n\n alerts.success(getPhrase('resourceUploadSuccess'));\n };\n\n const onError = () => alerts.error(getPhrase('resourceUploadError'));\n\n resourceUploadsRef.current.forEach(resource => {\n const onDone = () => {\n const uploadedResource = resourceUploadService.getCollection().filter(r => r.get('fileInfo')?.id === resource.fileId);\n resourceUploadService.getCollection().remove(uploadedResource);\n };\n\n Flight.fetch(dispatch, ResourceRequests.addResource(props.id, resource, onSuccess, onError, onDone));\n });\n\n resourceUploadsRef.current = [];\n }\n\n function onSubtitleUploadComplete(upload: Core.Model): void {\n setSubtitleUpload(upload.toJSON());\n }\n\n function onSubtitleLanguageSelect(language: Language): void {\n const data = {\n fileId: subtitleUpload.fileInfo.id,\n name: language.name,\n language: language.code,\n type: FileExtensionHelper.getResourceType(subtitleUpload.fileInfo.extension),\n fileIdType: 2 // FileApiV1\n };\n\n const onSuccess = (subtitle: Subtitle) => {\n logUploadAction(subtitle, EntityType.Subtitle, interactionTypeRef.current);\n\n alerts.success(getPhrase('subtitleUploadSuccess'));\n };\n\n const onError = () => alerts.error(getPhrase('subtitleUploadError'));\n\n const onDone = () => subtitleUploadService.getCollection().remove(subtitleUpload);\n\n setSubtitleUpload(null);\n\n Flight.fetch(dispatch, SubtitleRequests.addSubtitle(props.id, data, onSuccess, onError, onDone));\n }\n\n function addLink(data: Link, onDone: (opts: FormSubmissionOptions) => void): void {\n if (links.data?.data?.length >= LINK_LIMIT)\n return;\n\n const onSuccess = (link: Link) => {\n alerts.success(getPhrase('linkSaveSuccess'));\n\n const analyticsOptions = {\n location: LocationContext.EditVideoResources,\n actionType: UserAction.Associate,\n entity: EntityType.Video,\n descriptor: AssocDescriptor.Link\n };\n\n AnalyticsHelper.logUserAction({ id: props.id, link }, analyticsOptions);\n };\n\n const onError = () => alerts.error(getPhrase('linkSaveError'));\n\n Flight.fetch(\n dispatch,\n LinkRequests.addLink(props.id, data, onSuccess, onError, () => onDone({ reset: true }))\n );\n }\n\n return (\n <>\n <div className='px-3'>\n <div className='border-bottom pb-3'>\n <h1 className='h2'>{getPhrase('heading')}</h1>\n <Breadcrumbs breadcrumbs={breadcrumbs} />\n </div>\n {(!!video.data && !!ratings.data)\n ? (\n <EditVideoDetails\n video={ObjectHelper.omit(video.data, [ 'clips', 'interactives' ])}\n ratings={ratings.data}\n saveVideo={saveVideo}\n imageUploadAppLink={{\n application: AppChannels.VIDEOS,\n action: Actions.Videos.UPLOAD_IMAGE\n }}\n navLockAppLinkWhitelist={getNavLockAppLinkWhiteList()}\n saveBtnVariant='dark'\n thumbnailBtnVariant='outline-dark'\n hideRating\n hideBroadcastInfo\n />\n ) : <PartialEditVideoDetails />\n }\n\n {(!!video.data && !!currentUser.data && !!resources.data && !!subtitles.data && !!links.data) ? (\n <div className='row border-top'>\n <div className='col-xl-6 col-lg-12 pt-3'>\n <EditVideoResources\n addResourceFiles={addResourceFiles}\n resourceLimit={RESOURCE_LIMIT}\n video={video.data}\n resources={resources.data?.data}\n uploadingFiles={resourceUploads}\n cancelUpload={(id: string) => resourceUploadService.cancelUpload(id)}\n currentUserCustomerId={currentUser.data?.customerId}\n getEditAppLink={(resourceId: string) => ({\n application: AppChannels.VIDEOS,\n action: Actions.Videos.EDIT_RESOURCE,\n args: [ props.id, resourceId ]\n })}\n onClickDelete={(resourceId: string) => Core.AppLinkHelper.trigger({\n application: AppChannels.VIDEOS,\n action: Actions.Videos.DELETE_RESOURCE,\n args: [ props.id, resourceId ]\n })}\n analyticsOptions={{\n location: LocationContext.EditVideoDetails\n }}\n btnVariant='outline-dark'\n />\n </div>\n <div className='col-xl-6 col-lg-12 pt-3'>\n <EditVideoSubtitles\n addSubtitleFiles={addSubtitleFiles}\n subtitleLimit={SUBTITLE_LIMIT}\n video={video.data}\n subtitles={subtitles.data?.data}\n uploadingFiles={subtitleUploads}\n cancelUpload={(id: string) => subtitleUploadService.cancelUpload(id)}\n currentUserCustomerId={currentUser.data?.customerId}\n onClickDelete={(subtitleId: string) => Core.AppLinkHelper.trigger({\n application: AppChannels.VIDEOS,\n action: Actions.Videos.DELETE_SUBTITLE,\n args: [ props.id, subtitleId ]\n })}\n btnVariant='outline-dark'\n />\n </div>\n <div className='col-xl-6 col-lg-12 pt-3'>\n <EditVideoLinks\n links={links.data?.data}\n addLink={addLink}\n editLink={(linkId: string) => Core.AppLinkHelper.trigger({\n application: AppChannels.VIDEOS,\n action: Actions.Videos.EDIT_LINK,\n args: [ props.id, linkId ]\n })}\n deleteLink={(linkId: string) => Core.AppLinkHelper.trigger({\n application: AppChannels.VIDEOS,\n action: Actions.Videos.DELETE_LINK,\n args: [ props.id, linkId ]\n })}\n limit={LINK_LIMIT}\n btnVariant='outline-dark'\n />\n </div>\n </div>\n ) : <PartialEditVideoUploadArea />}\n </div>\n {!!subtitleUpload &&\n <LanguageSelect\n onSelectLanguage={onSubtitleLanguageSelect}\n defaultLanguage={{ code: 'en', name: 'English' }}\n closePopup={() => {\n subtitleUploadService.cancelUpload(subtitleUpload.id);\n setSubtitleUpload(null);\n }}\n submitVariant='dark'\n />\n }\n </>\n );\n}\n","import { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { Folder, MasterNestedObject } from 'libs/shared/interfaces';\n\ninterface BuildOptions {\n folderId: string;\n firstItem?: Breadcrumb;\n lastItem?: Breadcrumb;\n getAppLink: (folder: MasterNestedObject<Folder>) => Core.AppLink;\n}\n\nexport function useBuildBreadcrumbs(options: BuildOptions): Breadcrumb[] {\n const { folderId, firstItem, lastItem, getAppLink } = options;\n\n const parentTree = Flight.useBasicFetch<MasterNestedObject<Folder>>(LibraryRequests.folderParentTree(folderId));\n\n if (!parentTree.data?.children?.length)\n return [];\n\n const searchStack: {\n node: MasterNestedObject<Folder>,\n path: MasterNestedObject<Folder>[]\n }[] = parentTree.data.children.map(c => ({ node: c, path: [c]}));\n\n let breadcrumbs: Breadcrumb[] = [];\n\n while (searchStack.length) {\n const { node, path } = searchStack.pop();\n \n if (node.data.id.toString() === folderId.toString())\n breadcrumbs = path.map(object => ({\n name: object.data.name,\n appLink: getAppLink(object)\n }));\n\n if (node.children)\n searchStack.push(...node.children.map(c => ({ node: c, path: [ ...path, c ]})));\n }\n\n if (firstItem) breadcrumbs.unshift(firstItem);\n if (lastItem) breadcrumbs.push(lastItem);\n\n breadcrumbs[breadcrumbs.length - 1].active = true;\n\n return breadcrumbs;\n}\n ","var Handlebars = require('handlebars');\nmodule.exports = (Handlebars['default'] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.propertyIsEnumerable, alias2=container.lambda;\n\n return \"<span class=\\\"d-inline-block align-middle me-2 \"\n + container.escapeExpression(alias2(((stack1 = ((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.styles : stack1)) != null ? stack1.svgContainer : stack1), depth0))\n + \" float-end text-success\\\">\"\n + ((stack1 = alias2(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.tickSvg : stack1), depth0)) != null ? stack1 : \"\")\n + \"</span>\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.propertyIsEnumerable;\n\n return \"<span class=\\\"d-inline-block align-middle me-2 \"\n + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.styles : stack1)) != null ? stack1.svgContainer : stack1), depth0))\n + \" cursor-pointer cancel-upload btn-close float-end\\\" role=\\\"button\\\" aria-label=\\\"Close\\\"></span>\\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=container.propertyIsEnumerable, alias2=container.lambda, alias3=container.escapeExpression, alias4=depth0 != null ? depth0 : (container.nullContext || {}), alias5=container.hooks.helperMissing, alias6=\"function\";\n\n return \"<span class=\\\"d-inline-block align-middle me-2 \"\n + alias3(alias2(((stack1 = ((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.styles : stack1)) != null ? stack1.svgContainer : stack1), depth0))\n + \"\\\">\"\n + ((stack1 = alias2(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.svg : stack1), depth0)) != null ? stack1 : \"\")\n + \"</span>\\n<span class=\\\"align-middle\\\">\\n \"\n + alias3(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : alias5),(typeof helper === alias6 ? helper.call(alias4,{\"name\":\"name\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\n</span>\\n\"\n + ((stack1 = helpers[\"if\"].call(alias4,((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.finished : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.program(3, data, 0),\"data\":data})) != null ? stack1 : \"\")\n + \"\\n<div class=\\\"progress my-2 \"\n + alias3(alias2(((stack1 = ((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.styles : stack1)) != null ? stack1.progress : stack1), depth0))\n + \" mt-2\\\">\\n <div class=\\\"progress-bar bg-blue\\\" style=\\\"width: \"\n + alias3(((helper = (helper = helpers.progress || (depth0 != null ? depth0.progress : depth0)) != null ? helper : alias5),(typeof helper === alias6 ? helper.call(alias4,{\"name\":\"progress\",\"hash\":{},\"data\":data}) : helper)))\n + \"%\\\" aria-valuenow=\\\"\"\n + alias3(((helper = (helper = helpers.progress || (depth0 != null ? depth0.progress : depth0)) != null ? helper : alias5),(typeof helper === alias6 ? helper.call(alias4,{\"name\":\"progress\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\" aria-valuemin=\\\"0\\\" aria-valuemax=\\\"100\\\"></div>\\n</div>\";\n},\"useData\":true});","var Handlebars = require('handlebars');\nmodule.exports = (Handlebars['default'] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.propertyIsEnumerable, alias2=container.lambda;\n\n return \"<a class=\\\"float-end svg-container cursor-pointer text-secondary delete\\\">\"\n + ((stack1 = alias2(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.trashSvg : stack1), depth0)) != null ? stack1 : \"\")\n + \"</a>\\n<a class=\\\"float-end svg-container cursor-pointer text-secondary edit\\\">\"\n + ((stack1 = alias2(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.editSvg : stack1), depth0)) != null ? stack1 : \"\")\n + \"</a>\\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=container.propertyIsEnumerable, alias2=container.lambda, alias3=container.escapeExpression, alias4=depth0 != null ? depth0 : (container.nullContext || {}), alias5=container.hooks.helperMissing, alias6=\"function\";\n\n return \"<span title=\\\"\"\n + alias3(alias2(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.resourceType : stack1), depth0))\n + \"\\\" class=\\\"d-inline-block align-middle me-2 svg-container \"\n + alias3(alias2(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.iconClass : stack1), depth0))\n + \"\\\">\"\n + ((stack1 = alias2(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.svg : stack1), depth0)) != null ? stack1 : \"\")\n + \"</span>\\n<a href=\\\"\"\n + alias3(((helper = (helper = helpers.url || (depth0 != null ? depth0.url : depth0)) != null ? helper : alias5),(typeof helper === alias6 ? helper.call(alias4,{\"name\":\"url\",\"hash\":{},\"data\":data}) : helper)))\n + \"?name=\"\n + alias3(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : alias5),(typeof helper === alias6 ? helper.call(alias4,{\"name\":\"name\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\" class=\\\"align-middle\\\">\\n \"\n + alias3(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : alias5),(typeof helper === alias6 ? helper.call(alias4,{\"name\":\"name\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\n</a>\\n\"\n + ((stack1 = helpers[\"if\"].call(alias4,((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.editable : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"useData\":true});","var Handlebars = require('handlebars');\nmodule.exports = (Handlebars['default'] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.propertyIsEnumerable, alias2=container.lambda, alias3=container.escapeExpression;\n\n return \"<a class=\\\"float-end \"\n + alias3(alias2(((stack1 = ((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.styles : stack1)) != null ? stack1.svgContainer : stack1), depth0))\n + \" \"\n + alias3(alias2(((stack1 = ((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.styles : stack1)) != null ? stack1.actionSvg : stack1), depth0))\n + \" text-secondary delete\\\">\"\n + ((stack1 = alias2(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.trashSvg : stack1), depth0)) != null ? stack1 : \"\")\n + \"</a>\\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=container.propertyIsEnumerable, alias2=container.lambda, alias3=container.escapeExpression, alias4=depth0 != null ? depth0 : (container.nullContext || {});\n\n return \"<span class=\\\"d-inline-block align-middle me-2 \"\n + alias3(alias2(((stack1 = ((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.styles : stack1)) != null ? stack1.svgContainer : stack1), depth0))\n + \"\\\">\"\n + ((stack1 = alias2(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.svg : stack1), depth0)) != null ? stack1 : \"\")\n + \"</span>\\n<a href=\\\"\"\n + alias3(((helper = (helper = helpers.url || (depth0 != null ? depth0.url : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(alias4,{\"name\":\"url\",\"hash\":{},\"data\":data}) : helper)))\n + \"?name=\"\n + alias3(alias2(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.name : stack1), depth0))\n + \"\\\" class=\\\"align-middle\\\">\\n \"\n + alias3(alias2(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.name : stack1), depth0))\n + \"\\n</a>\\n\"\n + ((stack1 = helpers.unless.call(alias4,((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.isClickViewContent : stack1),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"useData\":true});"],"names":["FileTypeError","message","title","this","lang","text","buttons","className","success","close","pdfExtensions","docExtensions","textExtensions","excelExtensions","imageExtensions","videoMimeType","archiveExtensions","powerPointExtensions","subtitleExtensions","FileExtensions","IMAGES","join","VIDEO","MIXED_MEDIA","RESOURCES","SUBTITLES","FileExtensionHelper","getResourceType","extension","ext","toLowerCase","BreadcrumbItem","breadcrumb","name","appLink","active","withBackIcon","svgName","size","S","Breadcrumbs","breadcrumbs","isMobile","length","collapse","setCollapse","characterLength","reduce","prev","next","first","secondLast","last","rest","slice","onClick","map","idx","key","PartialBreadcrumbs","numItems","style","height","width","dangerouslySetInnerHTML","__html","getPhrase","ConfirmationPopup","props","showButtonSpinner","setShowButtonSpinner","closePopup","children","variant","cancelButtonVariant","cancelButtonText","onClickConfirm","confirmButtonText","confirmButtonVariant","showSpinner","disabled","disabledConfirmButton","defaultProps","InteractionType","defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","useGetCollectionItems","getCollection","onRemove","dependencies","setUpdate","collection","off","on","s","toJSON","generateCacheKey","flightObjs","obj","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","Array","isArray","useEffect","forEach","DEFAULT_PARTIAL_LOADING_OPTIONS","minWidth","maxWidth","PartialLoadingHelper","getPartialLoadingItems","options","opts","Math","max","floor","random","SubtitleHelper","getEnglishName","subtitle","allVideoSubtitles","language","filter","CVLanguages","getFullEnglishName","metadata","autoGenerated","ResourceRequests","resource","id","url","videoResources","videoId","addResource","error","always","fileId","data","type","invalidationKeys","updateResource","deleteResource","SubtitleRequests","videoSubtitles","addSubtitle","deleteSubtitle","namespace","LanguageService","ChannelFormField","formikProps","setChannel","channel","setFieldValue","channelName","values","initialValue","FormField","label","SearchBar","initialQuery","getRemoteUrl","q","onSuggestionSelected","activationLength","placeholder","searchIconPlacement","highlightInputOnFocus","showClearInputIcon","onClickClearInput","renderAsForm","DatePickerFormField","currentValue","attribute","DateInput","dateInputProps","ref","value","onChange","onKeyDown","e","preventDefault","autoComplete","SvgContainer","selected","Date","date","toISOString","dateFormat","maxDate","showMonthDropdown","showYearDropdown","customInput","ImageSelect","imageType","fieldName","extraClasses","setSelectedImage","deleteImage","currentImage","ImageStorageContext","setDataUrl","getImage","imageUploaded","imageSelected","setImageSelected","image","setImage","onImageLoad","imageEl","src","args","selectedImage","newImage","FunctionHelper","fileIdType","BaseImage","imageOptions","ImageFallback","imageFallbackType","Text","phrase","FileSelectButton","btnVariant","mimeType","onFileSelect","files","ImageSelectHelper","getLabel","RatingSelect","ButtonGroup","ratings","code","isActive","toString","Tooltip","Button","setRating","NAV_LOCK_ID","VideoValidationSchema","shape","trim","required","description","nullable","noUnknown","dateBroadcast","thumbnail","VideoDetailsForm","showResetConfirmPopup","setShowResetConfirmPopup","navLock","useNavLock","dirty","lock","appLinkWhitelist","navLockAppLinkWhitelist","unlock","Row","imageUploadAppLink","thumbnailBtnVariant","FormButtons","isNew","saveBtnVariant","hideRating","disableRatings","as","hideBroadcastInfo","initialChannel","resetForm","videoName","initialValues","EditVideoDetails","FormWrapper","video","validationSchema","onSubmit","saveVideo","PartialEditVideoDetails","PartialEditVideoUploadArea","LinkItem","href","link","target","editLink","deleteLink","EditVideoLinks","links","limit","EditLink","saveLink","addLink","submitButtonText","submitButtonVariant","l","TooManyFilesError","DialogError","FileSelect","onDrop","acceptedFiles","onFilesAdded","noClick","noKeyboard","multiple","acceptMultiple","onDropRejected","rejectedFiles","getRootProps","getInputProps","isDragActive","limitAlertText","showLimitAlert","btnText","alternateText","FileUploadComponent","listenTo","model","render","onClickCancelUpload","get","styles","svg","SvgHelper","tickSvg","finished","FileUploadItem","upload","BackboneViewWrapper","view","cancelUpload","FileUploadList","uploads","u","ObjectOwnerType","ResourceItemComponent","getEditAppLink","analyticsOptions","AnalyticsHelper","actionType","entity","workflowPhase","parentId","onClickDelete","fileType","editable","VideoDetailsHelper","iconClass","resourceType","editSvg","trashSvg","ResourceList","resources","r","PermissionsHelper","canEditVideo","_canUpdate","libraries","every","MasterObjectTypes","isCustomLibraryVideoOnly","isWorkspaceVideoOnly","filterObjectsByOwnerType","objects","owner","currentCustomerId","object","objectCustomerId","customer","ClickView","Customer","EditVideoResources","isClickViewVideo","customerResources","currentUserCustomerId","clickViewResources","addResourceFiles","resourceLimit","uploadingFiles","SubtitleItemComponent","isClickViewContent","SubtitleItem","SubtitleList","subtitles","EditVideoSubtitles","customerSubtitles","clickViewSubtitles","subtitleLimit","addSubtitleFiles","SUGGESTION_LIMIT","getLanguageMatches","query","matches","lanByStr","getEnglishNameContains","Object","keys","push","englishName","ArrayHelper","LanguageSelect","defaultLanguage","selectedLanguage","setSelectedLanguage","Popup","local","getLocalSuggestions","autoFocusInput","PopupButtons","onSelectLanguage","submitVariant","RatingRequests","TooManyResourcesError","TooManySubtitlesError","subtileLimit","CannotEditVideoError","ErrorPageError","getNavLockAppLinkWhiteList","application","action","SUBTITLE_LIMIT","RESOURCE_LIMIT","LINK_LIMIT","logUploadAction","item","interactionType","descriptor","location","EditVideoView","dispatch","alerts","subtitleUpload","setSubtitleUpload","VideoRequests","currentUser","UserRequests","LinkRequests","resourceUploadService","SharedServices","resourceUploads","subtitleUploadService","subtitleUploads","folder","categories","library","isCustomLibrary","firstItem","TextHelper","lastItem","folderId","getAppLink","parentTree","LibraryRequests","searchStack","c","node","path","pop","unshift","useBuildBreadcrumbs","useGetEditVideoBreadcrumbs","hasCompleted","Radio","uploadData","fileInfo","uploadId","file","cvUpload","fileSize","fileUrl","ingestUrl","metaData","contribution","resourceUploadsRef","current","resourceUploadCountRef","resourcesToUpload","onSuccess","interactionTypeRef","onError","uploadedResource","remove","useSetPageMetadata","ObjectHelper","onDone","escapeText","addFiles","customerId","resourceId","subtitleId","reset","linkId","Handlebars","module","exports","template","container","depth0","helpers","partials","propertyIsEnumerable","stack1","alias2","lambda","escapeExpression","svgContainer","helper","alias3","alias4","nullContext","alias5","hooks","helperMissing","alias6","call","program","progress","noop","actionSvg","unless"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ (self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[3003],{33003:t=>{t.exports=function(t){"use strict";var r=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];function e(t,r){var e=t[0],n=t[1],f=t[2],i=t[3];n=((n+=((f=((f+=((i=((i+=((e=((e+=(n&f|~n&i)+r[0]-680876936|0)<<7|e>>>25)+n|0)&n|~e&f)+r[1]-389564586|0)<<12|i>>>20)+e|0)&e|~i&n)+r[2]+606105819|0)<<17|f>>>15)+i|0)&i|~f&e)+r[3]-1044525330|0)<<22|n>>>10)+f|0,n=((n+=((f=((f+=((i=((i+=((e=((e+=(n&f|~n&i)+r[4]-176418897|0)<<7|e>>>25)+n|0)&n|~e&f)+r[5]+1200080426|0)<<12|i>>>20)+e|0)&e|~i&n)+r[6]-1473231341|0)<<17|f>>>15)+i|0)&i|~f&e)+r[7]-45705983|0)<<22|n>>>10)+f|0,n=((n+=((f=((f+=((i=((i+=((e=((e+=(n&f|~n&i)+r[8]+1770035416|0)<<7|e>>>25)+n|0)&n|~e&f)+r[9]-1958414417|0)<<12|i>>>20)+e|0)&e|~i&n)+r[10]-42063|0)<<17|f>>>15)+i|0)&i|~f&e)+r[11]-1990404162|0)<<22|n>>>10)+f|0,n=((n+=((f=((f+=((i=((i+=((e=((e+=(n&f|~n&i)+r[12]+1804603682|0)<<7|e>>>25)+n|0)&n|~e&f)+r[13]-40341101|0)<<12|i>>>20)+e|0)&e|~i&n)+r[14]-1502002290|0)<<17|f>>>15)+i|0)&i|~f&e)+r[15]+1236535329|0)<<22|n>>>10)+f|0,n=((n+=((f=((f+=((i=((i+=((e=((e+=(n&i|f&~i)+r[1]-165796510|0)<<5|e>>>27)+n|0)&f|n&~f)+r[6]-1069501632|0)<<9|i>>>23)+e|0)&n|e&~n)+r[11]+643717713|0)<<14|f>>>18)+i|0)&e|i&~e)+r[0]-373897302|0)<<20|n>>>12)+f|0,n=((n+=((f=((f+=((i=((i+=((e=((e+=(n&i|f&~i)+r[5]-701558691|0)<<5|e>>>27)+n|0)&f|n&~f)+r[10]+38016083|0)<<9|i>>>23)+e|0)&n|e&~n)+r[15]-660478335|0)<<14|f>>>18)+i|0)&e|i&~e)+r[4]-405537848|0)<<20|n>>>12)+f|0,n=((n+=((f=((f+=((i=((i+=((e=((e+=(n&i|f&~i)+r[9]+568446438|0)<<5|e>>>27)+n|0)&f|n&~f)+r[14]-1019803690|0)<<9|i>>>23)+e|0)&n|e&~n)+r[3]-187363961|0)<<14|f>>>18)+i|0)&e|i&~e)+r[8]+1163531501|0)<<20|n>>>12)+f|0,n=((n+=((f=((f+=((i=((i+=((e=((e+=(n&i|f&~i)+r[13]-1444681467|0)<<5|e>>>27)+n|0)&f|n&~f)+r[2]-51403784|0)<<9|i>>>23)+e|0)&n|e&~n)+r[7]+1735328473|0)<<14|f>>>18)+i|0)&e|i&~e)+r[12]-1926607734|0)<<20|n>>>12)+f|0,n=((n+=((f=((f+=((i=((i+=((e=((e+=(n^f^i)+r[5]-378558|0)<<4|e>>>28)+n|0)^n^f)+r[8]-2022574463|0)<<11|i>>>21)+e|0)^e^n)+r[11]+1839030562|0)<<16|f>>>16)+i|0)^i^e)+r[14]-35309556|0)<<23|n>>>9)+f|0,n=((n+=((f=((f+=((i=((i+=((e=((e+=(n^f^i)+r[1]-1530992060|0)<<4|e>>>28)+n|0)^n^f)+r[4]+1272893353|0)<<11|i>>>21)+e|0)^e^n)+r[7]-155497632|0)<<16|f>>>16)+i|0)^i^e)+r[10]-1094730640|0)<<23|n>>>9)+f|0,n=((n+=((f=((f+=((i=((i+=((e=((e+=(n^f^i)+r[13]+681279174|0)<<4|e>>>28)+n|0)^n^f)+r[0]-358537222|0)<<11|i>>>21)+e|0)^e^n)+r[3]-722521979|0)<<16|f>>>16)+i|0)^i^e)+r[6]+76029189|0)<<23|n>>>9)+f|0,n=((n+=((f=((f+=((i=((i+=((e=((e+=(n^f^i)+r[9]-640364487|0)<<4|e>>>28)+n|0)^n^f)+r[12]-421815835|0)<<11|i>>>21)+e|0)^e^n)+r[15]+530742520|0)<<16|f>>>16)+i|0)^i^e)+r[2]-995338651|0)<<23|n>>>9)+f|0,n=((n+=((i=((i+=(n^((e=((e+=(f^(n|~i))+r[0]-198630844|0)<<6|e>>>26)+n|0)|~f))+r[7]+1126891415|0)<<10|i>>>22)+e|0)^((f=((f+=(e^(i|~n))+r[14]-1416354905|0)<<15|f>>>17)+i|0)|~e))+r[5]-57434055|0)<<21|n>>>11)+f|0,n=((n+=((i=((i+=(n^((e=((e+=(f^(n|~i))+r[12]+1700485571|0)<<6|e>>>26)+n|0)|~f))+r[3]-1894986606|0)<<10|i>>>22)+e|0)^((f=((f+=(e^(i|~n))+r[10]-1051523|0)<<15|f>>>17)+i|0)|~e))+r[1]-2054922799|0)<<21|n>>>11)+f|0,n=((n+=((i=((i+=(n^((e=((e+=(f^(n|~i))+r[8]+1873313359|0)<<6|e>>>26)+n|0)|~f))+r[15]-30611744|0)<<10|i>>>22)+e|0)^((f=((f+=(e^(i|~n))+r[6]-1560198380|0)<<15|f>>>17)+i|0)|~e))+r[13]+1309151649|0)<<21|n>>>11)+f|0,n=((n+=((i=((i+=(n^((e=((e+=(f^(n|~i))+r[4]-145523070|0)<<6|e>>>26)+n|0)|~f))+r[11]-1120210379|0)<<10|i>>>22)+e|0)^((f=((f+=(e^(i|~n))+r[2]+718787259|0)<<15|f>>>17)+i|0)|~e))+r[9]-343485551|0)<<21|n>>>11)+f|0,t[0]=e+t[0]|0,t[1]=n+t[1]|0,t[2]=f+t[2]|0,t[3]=i+t[3]|0}function n(t){var r,e=[];for(r=0;r<64;r+=4)e[r>>2]=t.charCodeAt(r)+(t.charCodeAt(r+1)<<8)+(t.charCodeAt(r+2)<<16)+(t.charCodeAt(r+3)<<24);return e}function f(t){var r,e=[];for(r=0;r<64;r+=4)e[r>>2]=t[r]+(t[r+1]<<8)+(t[r+2]<<16)+(t[r+3]<<24);return e}function i(t){var r,f,i,h,s,o,u=t.length,a=[1732584193,-271733879,-1732584194,271733878];for(r=64;r<=u;r+=64)e(a,n(t.substring(r-64,r)));for(f=(t=t.substring(r-64)).length,i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],r=0;r<f;r+=1)i[r>>2]|=t.charCodeAt(r)<<(r%4<<3);if(i[r>>2]|=128<<(r%4<<3),r>55)for(e(a,i),r=0;r<16;r+=1)i[r]=0;return h=(h=8*u).toString(16).match(/(.*?)(.{0,8})$/),s=parseInt(h[2],16),o=parseInt(h[1],16)||0,i[14]=s,i[15]=o,e(a,i),a}function h(t){var e,n="";for(e=0;e<4;e+=1)n+=r[t>>8*e+4&15]+r[t>>8*e&15];return n}function s(t){var r;for(r=0;r<t.length;r+=1)t[r]=h(t[r]);return t.join("")}function o(t){return/[\u0080-\uFFFF]/.test(t)&&(t=unescape(encodeURIComponent(t))),t}function u(t){var r,e=[],n=t.length;for(r=0;r<n-1;r+=2)e.push(parseInt(t.substr(r,2),16));return String.fromCharCode.apply(String,e)}function a(){this.reset()}return s(i("hello")),"undefined"==typeof ArrayBuffer||ArrayBuffer.prototype.slice||function(){function t(t,r){return(t=0|t||0)<0?Math.max(t+r,0):Math.min(t,r)}ArrayBuffer.prototype.slice=function(r,e){var n,f,i,h,s=this.byteLength,o=t(r,s),u=s;return undefined!==e&&(u=t(e,s)),o>u?new ArrayBuffer(0):(n=u-o,f=new ArrayBuffer(n),i=new Uint8Array(f),h=new Uint8Array(this,o,n),i.set(h),f)}}(),a.prototype.append=function(t){return this.appendBinary(o(t)),this},a.prototype.appendBinary=function(t){this._buff+=t,this._length+=t.length;var r,f=this._buff.length;for(r=64;r<=f;r+=64)e(this._hash,n(this._buff.substring(r-64,r)));return this._buff=this._buff.substring(r-64),this},a.prototype.end=function(t){var r,e,n=this._buff,f=n.length,i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(r=0;r<f;r+=1)i[r>>2]|=n.charCodeAt(r)<<(r%4<<3);return this._finish(i,f),e=s(this._hash),t&&(e=u(e)),this.reset(),e},a.prototype.reset=function(){return this._buff="",this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},a.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash.slice()}},a.prototype.setState=function(t){return this._buff=t.buff,this._length=t.length,this._hash=t.hash,this},a.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},a.prototype._finish=function(t,r){var n,f,i,h=r;if(t[h>>2]|=128<<(h%4<<3),h>55)for(e(this._hash,t),h=0;h<16;h+=1)t[h]=0;n=(n=8*this._length).toString(16).match(/(.*?)(.{0,8})$/),f=parseInt(n[2],16),i=parseInt(n[1],16)||0,t[14]=f,t[15]=i,e(this._hash,t)},a.hash=function(t,r){return a.hashBinary(o(t),r)},a.hashBinary=function(t,r){var e=s(i(t));return r?u(e):e},a.ArrayBuffer=function(){this.reset()},a.ArrayBuffer.prototype.append=function(t){var r,n,i,h,s,o=(n=this._buff.buffer,i=t,h=!0,(s=new Uint8Array(n.byteLength+i.byteLength)).set(new Uint8Array(n)),s.set(new Uint8Array(i),n.byteLength),h?s:s.buffer),u=o.length;for(this._length+=t.byteLength,r=64;r<=u;r+=64)e(this._hash,f(o.subarray(r-64,r)));return this._buff=r-64<u?new Uint8Array(o.buffer.slice(r-64)):new Uint8Array(0),this},a.ArrayBuffer.prototype.end=function(t){var r,e,n=this._buff,f=n.length,i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(r=0;r<f;r+=1)i[r>>2]|=n[r]<<(r%4<<3);return this._finish(i,f),e=s(this._hash),t&&(e=u(e)),this.reset(),e},a.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},a.ArrayBuffer.prototype.getState=function(){var t,r=a.prototype.getState.call(this);return r.buff=(t=r.buff,String.fromCharCode.apply(null,new Uint8Array(t))),r},a.ArrayBuffer.prototype.setState=function(t){return t.buff=function(t,r){var e,n=t.length,f=new ArrayBuffer(n),i=new Uint8Array(f);for(e=0;e<n;e+=1)i[e]=t.charCodeAt(e);return r?i:f}(t.buff,!0),a.prototype.setState.call(this,t)},a.ArrayBuffer.prototype.destroy=a.prototype.destroy,a.ArrayBuffer.prototype._finish=a.prototype._finish,a.ArrayBuffer.hash=function(t,r){var n=s(function(t){var r,n,i,h,s,o,u=t.length,a=[1732584193,-271733879,-1732584194,271733878];for(r=64;r<=u;r+=64)e(a,f(t.subarray(r-64,r)));for(n=(t=r-64<u?t.subarray(r-64):new Uint8Array(0)).length,i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],r=0;r<n;r+=1)i[r>>2]|=t[r]<<(r%4<<3);if(i[r>>2]|=128<<(r%4<<3),r>55)for(e(a,i),r=0;r<16;r+=1)i[r]=0;return h=(h=8*u).toString(16).match(/(.*?)(.{0,8})$/),s=parseInt(h[2],16),o=parseInt(h[1],16)||0,i[14]=s,i[15]=o,e(a,i),a}(new Uint8Array(t)));return r?u(n):n},a}()}}]);
2
+ //# sourceMappingURL=3003-7685240aed-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/3003-7685240aed-lite.chunk.js","mappings":"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","sources":["file:///app/node_modules/spark-md5/spark-md5.js"],"sourcesContent":["(function (factory) {\n if (typeof exports === 'object') {\n // Node/CommonJS\n module.exports = factory();\n } else if (typeof define === 'function' && define.amd) {\n // AMD\n define(factory);\n } else {\n // Browser globals (with support for web workers)\n var glob;\n\n try {\n glob = window;\n } catch (e) {\n glob = self;\n }\n\n glob.SparkMD5 = factory();\n }\n}(function (undefined) {\n\n 'use strict';\n\n /*\n * Fastest md5 implementation around (JKM md5).\n * Credits: Joseph Myers\n *\n * @see http://www.myersdaily.org/joseph/javascript/md5-text.html\n * @see http://jsperf.com/md5-shootout/7\n */\n\n /* this function is much faster,\n so if possible we use it. Some IEs\n are the only ones I know of that\n need the idiotic second function,\n generated by an if clause. */\n var add32 = function (a, b) {\n return (a + b) & 0xFFFFFFFF;\n },\n hex_chr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];\n\n\n function cmn(q, a, b, x, s, t) {\n a = add32(add32(a, q), add32(x, t));\n return add32((a << s) | (a >>> (32 - s)), b);\n }\n\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 |b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 |b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 |b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n\n function md5blk(s) {\n var md5blks = [],\n i; /* Andy King said do it this way. */\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n return md5blks;\n }\n\n function md5blk_array(a) {\n var md5blks = [],\n i; /* Andy King said do it this way. */\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n return md5blks;\n }\n\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << ((i % 4) << 3);\n }\n tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n // Beware that the final length might not fit in 32 bits so we take care of that\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n\n tail[14] = lo;\n tail[15] = hi;\n\n md5cycle(state, tail);\n return state;\n }\n\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n\n // Not sure if it is a bug, however IE10 will always produce a sub array of length 1\n // containing the last element of the parent array if the sub array specified starts\n // beyond the length of the parent array - weird.\n // https://connect.microsoft.com/IE/feedback/details/771452/typed-array-subarray-issue\n a = (i - 64) < n ? a.subarray(i - 64) : new Uint8Array(0);\n\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << ((i % 4) << 3);\n }\n\n tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n // Beware that the final length might not fit in 32 bits so we take care of that\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n\n tail[14] = lo;\n tail[15] = hi;\n\n md5cycle(state, tail);\n\n return state;\n }\n\n function rhex(n) {\n var s = '',\n j;\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[(n >> (j * 8 + 4)) & 0x0F] + hex_chr[(n >> (j * 8)) & 0x0F];\n }\n return s;\n }\n\n function hex(x) {\n var i;\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n return x.join('');\n }\n\n // In some cases the fast add32 function cannot be used..\n if (hex(md51('hello')) !== '5d41402abc4b2a76b9719d911017c592') {\n add32 = function (x, y) {\n var lsw = (x & 0xFFFF) + (y & 0xFFFF),\n msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return (msw << 16) | (lsw & 0xFFFF);\n };\n }\n\n // ---------------------------------------------------\n\n /**\n * ArrayBuffer slice polyfill.\n *\n * @see https://github.com/ttaubert/node-arraybuffer-slice\n */\n\n if (typeof ArrayBuffer !== 'undefined' && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = (val | 0) || 0;\n\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n\n return Math.min(val, length);\n }\n\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n\n if (to !== undefined) {\n end = clamp(to, length);\n }\n\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n\n return target;\n };\n })();\n }\n\n // ---------------------------------------------------\n\n /**\n * Helpers.\n */\n\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n\n return str;\n }\n\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n\n return returnUInt8Array ? arr : buff;\n }\n\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n\n return returnUInt8Array ? result : result.buffer;\n }\n\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n\n return String.fromCharCode.apply(String, bytes);\n }\n\n // ---------------------------------------------------\n\n /**\n * SparkMD5 OOP implementation.\n *\n * Use this class to perform an incremental md5, otherwise use the\n * static methods instead.\n */\n\n function SparkMD5() {\n // call reset to init the instance\n this.reset();\n }\n\n /**\n * Appends a string.\n * A conversion will be applied if an utf8 string is detected.\n *\n * @param {String} str The string to be appended\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.append = function (str) {\n // Converts the string to utf8 bytes if necessary\n // Then append as binary\n this.appendBinary(toUtf8(str));\n\n return this;\n };\n\n /**\n * Appends a binary string.\n *\n * @param {String} contents The binary string to be appended\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n\n var length = this._buff.length,\n i;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n\n this._buff = this._buff.substring(i - 64);\n\n return this;\n };\n\n /**\n * Finishes the incremental computation, reseting the internal state and\n * returning the result.\n *\n * @param {Boolean} raw True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << ((i % 4) << 3);\n }\n\n this._finish(tail, length);\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n\n return ret;\n };\n\n /**\n * Resets the internal state of the computation.\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.reset = function () {\n this._buff = '';\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n\n return this;\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @return {Object} The state\n */\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash.slice()\n };\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @param {Object} state The state\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n\n return this;\n };\n\n /**\n * Releases memory used by the incremental buffer and other additional\n * resources. If you plan to use the instance again, use reset instead.\n */\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n\n /**\n * Finish the final calculation based on the tail.\n *\n * @param {Array} tail The tail (will be modified)\n * @param {Number} length The length of the remaining buffer\n */\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n\n tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n if (i > 55) {\n md5cycle(this._hash, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n // Do the final computation based on the tail and length\n // Beware that the final length may not fit in 32 bits so we take care of that\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n\n /**\n * Performs the md5 hash on a string.\n * A conversion will be applied if utf8 string is detected.\n *\n * @param {String} str The string\n * @param {Boolean} [raw] True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.hash = function (str, raw) {\n // Converts the string to utf8 bytes if necessary\n // Then compute it using the binary function\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n\n /**\n * Performs the md5 hash on a binary string.\n *\n * @param {String} content The binary string\n * @param {Boolean} [raw] True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n // ---------------------------------------------------\n\n /**\n * SparkMD5 OOP implementation for array buffers.\n *\n * Use this class to perform an incremental md5 ONLY for array buffers.\n */\n SparkMD5.ArrayBuffer = function () {\n // call reset to init the instance\n this.reset();\n };\n\n /**\n * Appends an array buffer.\n *\n * @param {ArrayBuffer} arr The array to be appended\n *\n * @return {SparkMD5.ArrayBuffer} The instance itself\n */\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n\n this._length += arr.byteLength;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n\n this._buff = (i - 64) < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n\n return this;\n };\n\n /**\n * Finishes the incremental computation, reseting the internal state and\n * returning the result.\n *\n * @param {Boolean} raw True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << ((i % 4) << 3);\n }\n\n this._finish(tail, length);\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n\n return ret;\n };\n\n /**\n * Resets the internal state of the computation.\n *\n * @return {SparkMD5.ArrayBuffer} The instance itself\n */\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n\n return this;\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @return {Object} The state\n */\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n\n // Convert buffer to a string\n state.buff = arrayBuffer2Utf8Str(state.buff);\n\n return state;\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @param {Object} state The state\n *\n * @return {SparkMD5.ArrayBuffer} The instance itself\n */\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n // Convert string to buffer\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n\n return SparkMD5.prototype.setState.call(this, state);\n };\n\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n /**\n * Performs the md5 hash on an array buffer.\n *\n * @param {ArrayBuffer} arr The array buffer\n * @param {Boolean} [raw] True to get the raw string, false to get the hex one\n *\n * @return {String} The result\n */\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n return SparkMD5;\n}));\n"],"names":["module","exports","undefined","hex_chr","md5cycle","x","k","a","b","c","d","md5blk","s","i","md5blks","charCodeAt","md5blk_array","md51","length","tail","tmp","lo","hi","n","state","substring","toString","match","parseInt","rhex","j","hex","join","toUtf8","str","test","unescape","encodeURIComponent","hexToBinaryString","bytes","push","substr","String","fromCharCode","apply","SparkMD5","this","reset","ArrayBuffer","prototype","slice","clamp","val","Math","max","min","from","to","num","target","targetArray","sourceArray","byteLength","begin","end","factory","Uint8Array","set","append","appendBinary","contents","_buff","_length","_hash","raw","ret","buff","_finish","getState","hash","setState","destroy","hashBinary","content","arr","first","second","returnUInt8Array","result","buffer","subarray","call","utf8Str2ArrayBuffer","md51_array"],"sourceRoot":""}