@clickview/library-editor 1.1.27-dev.1 → 1.1.27-rc.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 (361) hide show
  1. package/dist/en.json +1 -1
  2. package/dist/libs/analytics/src/interfaces/AnalyticsTypes.d.ts +1 -0
  3. package/dist/libs/common/src/backbone/utils/LocalStorageHelper.d.ts +1 -1
  4. package/dist/libs/shared/src/interfaces/models/ClassroomGroup.d.ts +1 -1
  5. package/dist/projects/library-editor/src/app.d.ts +1 -0
  6. package/dist/projects/library-editor/src/apps/library-editor/components/tags/TagsComponent.d.ts +1 -0
  7. package/dist/projects/library-editor/src/shared/components/typeahead-input/SearchTypeaheadComponent.d.ts +1 -0
  8. package/dist/scripts/{0-e25d47c666.chunk.js → 0-93a3cbfbb6.chunk.js} +1 -1
  9. package/dist/scripts/{1-620c685eee.chunk.js → 1-69d9709724.chunk.js} +1 -1
  10. package/dist/scripts/{10-3baf058564.chunk.js → 10-8b01d98b20.chunk.js} +1 -1
  11. package/dist/scripts/{11-9f5f0c25dc.chunk.js → 11-cbe69fa3f0.chunk.js} +1 -1
  12. package/dist/scripts/{12-b460ad405e.chunk.js → 12-9b10cdc17d.chunk.js} +1 -1
  13. package/dist/scripts/13-1e10e6e87f.chunk.js +1 -0
  14. package/dist/scripts/{14-670309ef33.chunk.js → 14-ab7a30ee22.chunk.js} +1 -1
  15. package/dist/scripts/{15-39010184ed.chunk.js → 15-74a4408ee9.chunk.js} +1 -1
  16. package/dist/scripts/{16-0971cabfc8.chunk.js → 16-42f9f38a5b.chunk.js} +1 -1
  17. package/dist/scripts/{17-f364868870.chunk.js → 17-b1675f5397.chunk.js} +1 -1
  18. package/dist/scripts/{2-cd7f1d10b5.chunk.js → 2-cfce7347b3.chunk.js} +1 -1
  19. package/dist/scripts/{20-42dc06da39.chunk.js → 20-9f938a6f3e.chunk.js} +1 -1
  20. package/dist/scripts/{21-05615559be.chunk.js → 21-3a0591790a.chunk.js} +1 -1
  21. package/dist/scripts/{22-70b4c18dd2.chunk.js → 22-75ca7c2ae2.chunk.js} +1 -1
  22. package/dist/scripts/23-6cc6df1006.chunk.js +1 -0
  23. package/dist/scripts/{24-6fbd14025b.chunk.js → 24-857f2e7cba.chunk.js} +1 -1
  24. package/dist/scripts/{25-3d067b8b9a.chunk.js → 25-30d6eaa470.chunk.js} +1 -1
  25. package/dist/scripts/{26-468305820a.chunk.js → 26-7e0e9534cf.chunk.js} +1 -1
  26. package/dist/scripts/27-460f20f83b.chunk.js +1 -0
  27. package/dist/scripts/{28-f3f43a3001.chunk.js → 28-c4655d4bd8.chunk.js} +1 -1
  28. package/dist/scripts/{29-268278d2ac.chunk.js → 29-3629c8b906.chunk.js} +1 -1
  29. package/dist/scripts/{3-4694b66aa5.chunk.js → 3-34f154b85d.chunk.js} +1 -1
  30. package/dist/scripts/{30-694b0a0d4b.chunk.js → 30-9d7a8c6475.chunk.js} +1 -1
  31. package/dist/scripts/{31-4c542c18dc.chunk.js → 31-a80eb231ed.chunk.js} +1 -1
  32. package/dist/scripts/{32-a1543ffe27.chunk.js → 32-db0c763740.chunk.js} +1 -1
  33. package/dist/scripts/{33-9685703df6.chunk.js → 33-b9fef236ae.chunk.js} +1 -1
  34. package/dist/scripts/{34-eb9f6709b3.chunk.js → 34-d2a7193286.chunk.js} +1 -1
  35. package/dist/scripts/{35-1ff49137e7.chunk.js → 35-1b97d95b2a.chunk.js} +1 -1
  36. package/dist/scripts/{36-9e89154ca2.chunk.js → 36-179634ea36.chunk.js} +1 -1
  37. package/dist/scripts/{37-80589d542e.chunk.js → 37-e6d9fbefd1.chunk.js} +1 -1
  38. package/dist/scripts/{38-7e88534f67.chunk.js → 38-0c6051fb45.chunk.js} +1 -1
  39. package/dist/scripts/{39-99824f3b64.chunk.js → 39-5fffd05811.chunk.js} +1 -1
  40. package/dist/scripts/{4-ad1e4b43da.chunk.js → 4-2a04f5b2b3.chunk.js} +1 -1
  41. package/dist/scripts/{40-dbfd665c74.chunk.js → 40-5d3d9611b5.chunk.js} +1 -1
  42. package/dist/scripts/{41-25fbac3d17.chunk.js → 41-f3b2533950.chunk.js} +1 -1
  43. package/dist/scripts/42-075fbbf19d.chunk.js +1 -0
  44. package/dist/scripts/{43-5ef29feb2c.chunk.js → 43-205ccfa9a4.chunk.js} +1 -1
  45. package/dist/scripts/{44-223f602431.chunk.js → 44-4be8465afa.chunk.js} +1 -1
  46. package/dist/scripts/{45-344492a36f.chunk.js → 45-541254a177.chunk.js} +1 -1
  47. package/dist/scripts/{46-9ca7afd6a4.chunk.js → 46-fe575b6c9f.chunk.js} +1 -1
  48. package/dist/scripts/{47-ac0c9c5ce1.chunk.js → 47-18d84f7b83.chunk.js} +1 -1
  49. package/dist/scripts/{48-6bf590b9a0.chunk.js → 48-40adeb652e.chunk.js} +1 -1
  50. package/dist/scripts/{49-8e3e782ffb.chunk.js → 49-ac59f2a6fd.chunk.js} +1 -1
  51. package/dist/scripts/{5-b236603e85.chunk.js → 5-ce9948090c.chunk.js} +1 -1
  52. package/dist/scripts/{50-30ba08212e.chunk.js → 50-8cc4935ea5.chunk.js} +1 -1
  53. package/dist/scripts/{51-828972defb.chunk.js → 51-cd80402e6e.chunk.js} +1 -1
  54. package/dist/scripts/{52-b2acf3e742.chunk.js → 52-7e11748c73.chunk.js} +1 -1
  55. package/dist/scripts/{53-5d6ea94871.chunk.js → 53-e807e56657.chunk.js} +1 -1
  56. package/dist/scripts/{54-2d8bd6fde0.chunk.js → 54-265c2852ce.chunk.js} +1 -1
  57. package/dist/scripts/{55-4a8d360746.chunk.js → 55-68bef0b859.chunk.js} +1 -1
  58. package/dist/scripts/{56-ad12ebab5f.chunk.js → 56-f52cc13b44.chunk.js} +1 -1
  59. package/dist/scripts/{57-53b89c2ef0.chunk.js → 57-77549e4856.chunk.js} +1 -1
  60. package/dist/scripts/{58-b246abe78c.chunk.js → 58-3f44c0ba1a.chunk.js} +1 -1
  61. package/dist/scripts/{59-19290686e0.chunk.js → 59-bf231da287.chunk.js} +1 -1
  62. package/dist/scripts/{6-6fb543aa78.chunk.js → 6-97a29c3fdd.chunk.js} +1 -1
  63. package/dist/scripts/{60-0c075e7b5c.chunk.js → 60-c6a9325b5e.chunk.js} +1 -1
  64. package/dist/scripts/{61-2725bbfab2.chunk.js → 61-5fe4279f6d.chunk.js} +1 -1
  65. package/dist/scripts/{62-472d10a18e.chunk.js → 62-ff1c8453b6.chunk.js} +1 -1
  66. package/dist/scripts/{63-7d00e50441.chunk.js → 63-47a43e2399.chunk.js} +1 -1
  67. package/dist/scripts/{64-1b42f78644.chunk.js → 64-398f9ac217.chunk.js} +1 -1
  68. package/dist/scripts/{65-14af88c745.chunk.js → 65-d75308a09e.chunk.js} +1 -1
  69. package/dist/scripts/{66-bc274df13a.chunk.js → 66-ec32c5588a.chunk.js} +1 -1
  70. package/dist/scripts/{67-d1edef09d6.chunk.js → 67-6805e53bfb.chunk.js} +1 -1
  71. package/dist/scripts/{68-52468201b9.chunk.js → 68-046ada4945.chunk.js} +1 -1
  72. package/dist/scripts/{69-b681e9a99c.chunk.js → 69-235a8e6754.chunk.js} +1 -1
  73. package/dist/scripts/{7-2807a666bc.chunk.js → 7-55f3aed0f4.chunk.js} +1 -1
  74. package/dist/scripts/{70-d4018838a9.chunk.js → 70-150be3f4a2.chunk.js} +1 -1
  75. package/dist/scripts/{71-29cce07c7f.chunk.js → 71-c63b7a2a30.chunk.js} +1 -1
  76. package/dist/scripts/{72-6f83214b8d.chunk.js → 72-53bdb8c37f.chunk.js} +1 -1
  77. package/dist/scripts/{8-8f44e8bfc4.chunk.js → 8-94205353a6.chunk.js} +1 -1
  78. package/dist/scripts/{9-b8f9ea66c4.chunk.js → 9-0776e647a0.chunk.js} +1 -1
  79. package/dist/scripts/bundle-704119eb6d.min.js +8 -0
  80. package/dist/scripts/bundles.json +2 -2
  81. package/dist/scripts/polyfills-44c21c47b6.min.js +1 -0
  82. package/package.json +4 -4
  83. package/dist/css/1.chunk.css.map +0 -1
  84. package/dist/css/10.chunk.css.map +0 -1
  85. package/dist/css/11.chunk.css +0 -137
  86. package/dist/css/11.chunk.css.map +0 -1
  87. package/dist/css/12.chunk.css.map +0 -1
  88. package/dist/css/13.chunk.css.map +0 -1
  89. package/dist/css/14.chunk.css.map +0 -1
  90. package/dist/css/16.chunk.css.map +0 -1
  91. package/dist/css/17.chunk.css.map +0 -1
  92. package/dist/css/18.chunk.css +0 -20
  93. package/dist/css/18.chunk.css.map +0 -1
  94. package/dist/css/2.chunk.css +0 -145
  95. package/dist/css/2.chunk.css.map +0 -1
  96. package/dist/css/21.chunk.css.map +0 -1
  97. package/dist/css/22.chunk.css.map +0 -1
  98. package/dist/css/23.chunk.css.map +0 -1
  99. package/dist/css/25.chunk.css.map +0 -1
  100. package/dist/css/26.chunk.css.map +0 -1
  101. package/dist/css/28.chunk.css.map +0 -1
  102. package/dist/css/29.chunk.css.map +0 -1
  103. package/dist/css/3.chunk.css.map +0 -1
  104. package/dist/css/30.chunk.css.map +0 -1
  105. package/dist/css/31.chunk.css.map +0 -1
  106. package/dist/css/32.chunk.css.map +0 -1
  107. package/dist/css/33.chunk.css.map +0 -1
  108. package/dist/css/34.chunk.css +0 -21
  109. package/dist/css/34.chunk.css.map +0 -1
  110. package/dist/css/35.chunk.css +0 -20
  111. package/dist/css/35.chunk.css.map +0 -1
  112. package/dist/css/36.chunk.css +0 -14
  113. package/dist/css/36.chunk.css.map +0 -1
  114. package/dist/css/37.chunk.css.map +0 -1
  115. package/dist/css/38.chunk.css.map +0 -1
  116. package/dist/css/40.chunk.css.map +0 -1
  117. package/dist/css/41.chunk.css.map +0 -1
  118. package/dist/css/42.chunk.css.map +0 -1
  119. package/dist/css/43.chunk.css.map +0 -1
  120. package/dist/css/44.chunk.css.map +0 -1
  121. package/dist/css/45.chunk.css.map +0 -1
  122. package/dist/css/46.chunk.css.map +0 -1
  123. package/dist/css/47.chunk.css.map +0 -1
  124. package/dist/css/48.chunk.css.map +0 -1
  125. package/dist/css/49.chunk.css +0 -35
  126. package/dist/css/49.chunk.css.map +0 -1
  127. package/dist/css/50.chunk.css.map +0 -1
  128. package/dist/css/51.chunk.css.map +0 -1
  129. package/dist/css/52.chunk.css +0 -66
  130. package/dist/css/52.chunk.css.map +0 -1
  131. package/dist/css/55.chunk.css.map +0 -1
  132. package/dist/css/56.chunk.css.map +0 -1
  133. package/dist/css/58.chunk.css.map +0 -1
  134. package/dist/css/59.chunk.css.map +0 -1
  135. package/dist/css/6.chunk.css.map +0 -1
  136. package/dist/css/60.chunk.css +0 -18
  137. package/dist/css/60.chunk.css.map +0 -1
  138. package/dist/css/62.chunk.css.map +0 -1
  139. package/dist/css/63.chunk.css +0 -170
  140. package/dist/css/63.chunk.css.map +0 -1
  141. package/dist/css/67.chunk.css +0 -78
  142. package/dist/css/67.chunk.css.map +0 -1
  143. package/dist/css/68.chunk.css +0 -17
  144. package/dist/css/68.chunk.css.map +0 -1
  145. package/dist/css/69.chunk.css +0 -17
  146. package/dist/css/69.chunk.css.map +0 -1
  147. package/dist/css/7.chunk.css.map +0 -1
  148. package/dist/css/70.chunk.css +0 -23
  149. package/dist/css/70.chunk.css.map +0 -1
  150. package/dist/css/71.chunk.css +0 -40
  151. package/dist/css/71.chunk.css.map +0 -1
  152. package/dist/css/72.chunk.css +0 -16
  153. package/dist/css/72.chunk.css.map +0 -1
  154. package/dist/css/73.chunk.css +0 -37
  155. package/dist/css/73.chunk.css.map +0 -1
  156. package/dist/css/74.chunk.css +0 -29
  157. package/dist/css/74.chunk.css.map +0 -1
  158. package/dist/css/75.chunk.css +0 -6
  159. package/dist/css/75.chunk.css.map +0 -1
  160. package/dist/css/76.chunk.css +0 -6
  161. package/dist/css/76.chunk.css.map +0 -1
  162. package/dist/css/8.chunk.css.map +0 -1
  163. package/dist/css/library-editor-app.css.map +0 -1
  164. package/dist/libs/shared/src/enums/PlayerMediaType.d.ts +0 -5
  165. package/dist/libs/shared/src/interfaces/models/interactive.d.ts +0 -9
  166. package/dist/scripts/0.chunk.js +0 -1039
  167. package/dist/scripts/0.chunk.js.map +0 -1
  168. package/dist/scripts/1.chunk.js +0 -442
  169. package/dist/scripts/1.chunk.js.map +0 -1
  170. package/dist/scripts/10.chunk.js +0 -820
  171. package/dist/scripts/10.chunk.js.map +0 -1
  172. package/dist/scripts/11.chunk.js +0 -4091
  173. package/dist/scripts/11.chunk.js.map +0 -1
  174. package/dist/scripts/12.chunk.js +0 -555
  175. package/dist/scripts/12.chunk.js.map +0 -1
  176. package/dist/scripts/13-89b3a0aebb.chunk.js +0 -1
  177. package/dist/scripts/13.chunk.js +0 -380
  178. package/dist/scripts/13.chunk.js.map +0 -1
  179. package/dist/scripts/14.chunk.js +0 -2386
  180. package/dist/scripts/14.chunk.js.map +0 -1
  181. package/dist/scripts/15.chunk.js +0 -314
  182. package/dist/scripts/15.chunk.js.map +0 -1
  183. package/dist/scripts/16.chunk.js +0 -1290
  184. package/dist/scripts/16.chunk.js.map +0 -1
  185. package/dist/scripts/17.chunk.js +0 -381
  186. package/dist/scripts/17.chunk.js.map +0 -1
  187. package/dist/scripts/18.chunk.js +0 -393
  188. package/dist/scripts/18.chunk.js.map +0 -1
  189. package/dist/scripts/19.chunk.js +0 -364
  190. package/dist/scripts/19.chunk.js.map +0 -1
  191. package/dist/scripts/2.chunk.js +0 -523
  192. package/dist/scripts/2.chunk.js.map +0 -1
  193. package/dist/scripts/20.chunk.js +0 -317
  194. package/dist/scripts/20.chunk.js.map +0 -1
  195. package/dist/scripts/21.chunk.js +0 -531
  196. package/dist/scripts/21.chunk.js.map +0 -1
  197. package/dist/scripts/22.chunk.js +0 -354
  198. package/dist/scripts/22.chunk.js.map +0 -1
  199. package/dist/scripts/23-3166dfeef5.chunk.js +0 -1
  200. package/dist/scripts/23.chunk.js +0 -604
  201. package/dist/scripts/23.chunk.js.map +0 -1
  202. package/dist/scripts/24.chunk.js +0 -318
  203. package/dist/scripts/24.chunk.js.map +0 -1
  204. package/dist/scripts/25.chunk.js +0 -365
  205. package/dist/scripts/25.chunk.js.map +0 -1
  206. package/dist/scripts/26.chunk.js +0 -442
  207. package/dist/scripts/26.chunk.js.map +0 -1
  208. package/dist/scripts/27-d03a99658e.chunk.js +0 -1
  209. package/dist/scripts/27.chunk.js +0 -3630
  210. package/dist/scripts/27.chunk.js.map +0 -1
  211. package/dist/scripts/28.chunk.js +0 -3172
  212. package/dist/scripts/28.chunk.js.map +0 -1
  213. package/dist/scripts/29.chunk.js +0 -3090
  214. package/dist/scripts/29.chunk.js.map +0 -1
  215. package/dist/scripts/3.chunk.js +0 -845
  216. package/dist/scripts/3.chunk.js.map +0 -1
  217. package/dist/scripts/30.chunk.js +0 -1851
  218. package/dist/scripts/30.chunk.js.map +0 -1
  219. package/dist/scripts/31.chunk.js +0 -958
  220. package/dist/scripts/31.chunk.js.map +0 -1
  221. package/dist/scripts/32.chunk.js +0 -1239
  222. package/dist/scripts/32.chunk.js.map +0 -1
  223. package/dist/scripts/33.chunk.js +0 -971
  224. package/dist/scripts/33.chunk.js.map +0 -1
  225. package/dist/scripts/34.chunk.js +0 -990
  226. package/dist/scripts/34.chunk.js.map +0 -1
  227. package/dist/scripts/35.chunk.js +0 -518
  228. package/dist/scripts/35.chunk.js.map +0 -1
  229. package/dist/scripts/36.chunk.js +0 -335
  230. package/dist/scripts/36.chunk.js.map +0 -1
  231. package/dist/scripts/37.chunk.js +0 -236
  232. package/dist/scripts/37.chunk.js.map +0 -1
  233. package/dist/scripts/38.chunk.js +0 -315
  234. package/dist/scripts/38.chunk.js.map +0 -1
  235. package/dist/scripts/39.chunk.js +0 -107
  236. package/dist/scripts/39.chunk.js.map +0 -1
  237. package/dist/scripts/4.chunk.js +0 -335
  238. package/dist/scripts/4.chunk.js.map +0 -1
  239. package/dist/scripts/40.chunk.js +0 -2493
  240. package/dist/scripts/40.chunk.js.map +0 -1
  241. package/dist/scripts/41.chunk.js +0 -1782
  242. package/dist/scripts/41.chunk.js.map +0 -1
  243. package/dist/scripts/42-9f757567db.chunk.js +0 -1
  244. package/dist/scripts/42.chunk.js +0 -2327
  245. package/dist/scripts/42.chunk.js.map +0 -1
  246. package/dist/scripts/43.chunk.js +0 -1206
  247. package/dist/scripts/43.chunk.js.map +0 -1
  248. package/dist/scripts/44.chunk.js +0 -2245
  249. package/dist/scripts/44.chunk.js.map +0 -1
  250. package/dist/scripts/45.chunk.js +0 -1065
  251. package/dist/scripts/45.chunk.js.map +0 -1
  252. package/dist/scripts/46.chunk.js +0 -655
  253. package/dist/scripts/46.chunk.js.map +0 -1
  254. package/dist/scripts/47.chunk.js +0 -736
  255. package/dist/scripts/47.chunk.js.map +0 -1
  256. package/dist/scripts/48.chunk.js +0 -994
  257. package/dist/scripts/48.chunk.js.map +0 -1
  258. package/dist/scripts/49.chunk.js +0 -761
  259. package/dist/scripts/49.chunk.js.map +0 -1
  260. package/dist/scripts/5.chunk.js +0 -15
  261. package/dist/scripts/5.chunk.js.map +0 -1
  262. package/dist/scripts/50.chunk.js +0 -530
  263. package/dist/scripts/50.chunk.js.map +0 -1
  264. package/dist/scripts/51.chunk.js +0 -932
  265. package/dist/scripts/51.chunk.js.map +0 -1
  266. package/dist/scripts/52.chunk.js +0 -408
  267. package/dist/scripts/52.chunk.js.map +0 -1
  268. package/dist/scripts/53.chunk.js +0 -756
  269. package/dist/scripts/53.chunk.js.map +0 -1
  270. package/dist/scripts/54.chunk.js +0 -681
  271. package/dist/scripts/54.chunk.js.map +0 -1
  272. package/dist/scripts/55.chunk.js +0 -645
  273. package/dist/scripts/55.chunk.js.map +0 -1
  274. package/dist/scripts/56.chunk.js +0 -346
  275. package/dist/scripts/56.chunk.js.map +0 -1
  276. package/dist/scripts/57.chunk.js +0 -422
  277. package/dist/scripts/57.chunk.js.map +0 -1
  278. package/dist/scripts/58.chunk.js +0 -437
  279. package/dist/scripts/58.chunk.js.map +0 -1
  280. package/dist/scripts/59.chunk.js +0 -342
  281. package/dist/scripts/59.chunk.js.map +0 -1
  282. package/dist/scripts/6.chunk.js +0 -484
  283. package/dist/scripts/6.chunk.js.map +0 -1
  284. package/dist/scripts/60.chunk.js +0 -254
  285. package/dist/scripts/60.chunk.js.map +0 -1
  286. package/dist/scripts/61.chunk.js +0 -408
  287. package/dist/scripts/61.chunk.js.map +0 -1
  288. package/dist/scripts/62.chunk.js +0 -142
  289. package/dist/scripts/62.chunk.js.map +0 -1
  290. package/dist/scripts/63.chunk.js +0 -147
  291. package/dist/scripts/63.chunk.js.map +0 -1
  292. package/dist/scripts/64.chunk.js +0 -439
  293. package/dist/scripts/64.chunk.js.map +0 -1
  294. package/dist/scripts/65.chunk.js +0 -582
  295. package/dist/scripts/65.chunk.js.map +0 -1
  296. package/dist/scripts/66.chunk.js +0 -442
  297. package/dist/scripts/66.chunk.js.map +0 -1
  298. package/dist/scripts/67.chunk.js +0 -295
  299. package/dist/scripts/67.chunk.js.map +0 -1
  300. package/dist/scripts/68.chunk.js +0 -165
  301. package/dist/scripts/68.chunk.js.map +0 -1
  302. package/dist/scripts/69.chunk.js +0 -248
  303. package/dist/scripts/69.chunk.js.map +0 -1
  304. package/dist/scripts/7.chunk.js +0 -309
  305. package/dist/scripts/7.chunk.js.map +0 -1
  306. package/dist/scripts/70.chunk.js +0 -207
  307. package/dist/scripts/70.chunk.js.map +0 -1
  308. package/dist/scripts/71.chunk.js +0 -237
  309. package/dist/scripts/71.chunk.js.map +0 -1
  310. package/dist/scripts/72.chunk.js +0 -331
  311. package/dist/scripts/72.chunk.js.map +0 -1
  312. package/dist/scripts/73.chunk.js +0 -404
  313. package/dist/scripts/73.chunk.js.map +0 -1
  314. package/dist/scripts/74.chunk.js +0 -301
  315. package/dist/scripts/74.chunk.js.map +0 -1
  316. package/dist/scripts/75.chunk.js +0 -231
  317. package/dist/scripts/75.chunk.js.map +0 -1
  318. package/dist/scripts/76.chunk.js +0 -157
  319. package/dist/scripts/76.chunk.js.map +0 -1
  320. package/dist/scripts/77.chunk.js +0 -307
  321. package/dist/scripts/77.chunk.js.map +0 -1
  322. package/dist/scripts/78.chunk.js +0 -249
  323. package/dist/scripts/78.chunk.js.map +0 -1
  324. package/dist/scripts/79.chunk.js +0 -282
  325. package/dist/scripts/79.chunk.js.map +0 -1
  326. package/dist/scripts/8.chunk.js +0 -307
  327. package/dist/scripts/8.chunk.js.map +0 -1
  328. package/dist/scripts/80.chunk.js +0 -308
  329. package/dist/scripts/80.chunk.js.map +0 -1
  330. package/dist/scripts/81.chunk.js +0 -366
  331. package/dist/scripts/81.chunk.js.map +0 -1
  332. package/dist/scripts/82.chunk.js +0 -314
  333. package/dist/scripts/82.chunk.js.map +0 -1
  334. package/dist/scripts/83.chunk.js +0 -328
  335. package/dist/scripts/83.chunk.js.map +0 -1
  336. package/dist/scripts/84.chunk.js +0 -313
  337. package/dist/scripts/84.chunk.js.map +0 -1
  338. package/dist/scripts/85.chunk.js +0 -291
  339. package/dist/scripts/85.chunk.js.map +0 -1
  340. package/dist/scripts/86.chunk.js +0 -119
  341. package/dist/scripts/86.chunk.js.map +0 -1
  342. package/dist/scripts/87.chunk.js +0 -219
  343. package/dist/scripts/87.chunk.js.map +0 -1
  344. package/dist/scripts/88.chunk.js +0 -194
  345. package/dist/scripts/88.chunk.js.map +0 -1
  346. package/dist/scripts/89.chunk.js +0 -522
  347. package/dist/scripts/89.chunk.js.map +0 -1
  348. package/dist/scripts/9.chunk.js +0 -222
  349. package/dist/scripts/9.chunk.js.map +0 -1
  350. package/dist/scripts/90.chunk.js +0 -337
  351. package/dist/scripts/90.chunk.js.map +0 -1
  352. package/dist/scripts/91.chunk.js +0 -131
  353. package/dist/scripts/91.chunk.js.map +0 -1
  354. package/dist/scripts/92.chunk.js +0 -266
  355. package/dist/scripts/92.chunk.js.map +0 -1
  356. package/dist/scripts/bundle-f28b86bf5b.min.js +0 -8
  357. package/dist/scripts/bundle.js +0 -67206
  358. package/dist/scripts/bundle.js.map +0 -1
  359. package/dist/scripts/polyfills-1d2233ebcc.min.js +0 -1
  360. package/dist/scripts/polyfills.js +0 -14866
  361. package/dist/scripts/polyfills.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["file://C:/ClickView/front-end/clickview/packages/libs/shared/src/legacy/components/file-select/FileSelect.hbs","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/legacy/components/file-select/FileSelectComponent.ts","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/legacy/components/file-select/FileSelectDropMask.hbs","webpack://@clickview/library-editor/C:/ClickView/front-end/clickview/packages/libs/shared/src/legacy/components/file-select/file-select.scss?4bea","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/legacy/components/file-uploads/FileUpload.hbs","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/legacy/components/file-uploads/FileUploadComponent.ts","webpack://@clickview/library-editor/C:/ClickView/front-end/clickview/packages/libs/shared/src/legacy/components/file-uploads/file-upload.scss?2661","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/legacy/components/subtitle-item/Subtitle.hbs","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/legacy/components/subtitle-item/SubtitleItemComponent.ts","webpack://@clickview/library-editor/C:/ClickView/front-end/clickview/packages/libs/shared/src/legacy/components/subtitle-item/subtitle.scss?e630","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/legacy/errors/too-many-resources/TooManyResourcesError.ts","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/legacy/errors/too-many-subtitles/TooManySubtitlesError.ts","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/utils/SubtitleHelper.ts","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/apps/library-editor/components/add-links/AddLinks.hbs","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/apps/library-editor/components/add-links/AddLinksComponent.ts","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/apps/library-editor/components/file-uploads/FileUploadsComponentCollection.ts","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/apps/library-editor/components/language-select/LanguageSelect.hbs","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/apps/library-editor/components/language-select/LanguageSelectComponent.ts","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/apps/library-editor/components/language-select/LanguageSelectTypeaheadHelper.ts","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/apps/library-editor/components/video-subtitles/VideoSubtitles.hbs","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/apps/library-editor/components/video-subtitles/VideoSubtitlesComponent.ts","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/apps/library-editor/views/edit-resources/EditResources.hbs","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/apps/library-editor/views/edit-resources/EditResourcesView.ts"],"names":[],"mappings":"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","file":"scripts/42.chunk.js","sourcesContent":["var Handlebars = require('handlebars');\nmodule.exports = (Handlebars['default'] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.propertyIsEnumerable;\n\n return \"<p class=\\\"alert alert-warning mb-0\\\">\"\n + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.limitText : stack1), depth0))\n + \"</p>\\r\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.propertyIsEnumerable, alias2=container.lambda, alias3=container.escapeExpression, alias4=depth0 != null ? depth0 : (container.nullContext || {});\n\n return \"<div class=\\\"file-drop \"\n + alias3(alias2(((stack1 = ((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.styles : stack1)) != null ? stack1.fileDrop : stack1), depth0))\n + \" p-2\"\n + ((stack1 = helpers[\"if\"].call(alias4,((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.limitText : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\\">\\r\\n <button class=\\\"browse btn btn-secondary mr-2\\\">\"\n + alias3((helpers.lang||(depth0 && depth0.lang)||container.hooks.helperMissing).call(alias4,\"browse\",{\"name\":\"lang\",\"hash\":{},\"data\":data}))\n + \"</button>\\r\\n <span class=\\\"text-muted align-middle\\\">\"\n + alias3(alias2(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.alternateText : stack1), depth0))\n + \"</span>\\r\\n</div>\\r\\n\";\n},\"4\":function(container,depth0,helpers,partials,data) {\n return \" col-6 \";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.propertyIsEnumerable, alias2=container.lambda;\n\n return \"<h5>\"\n + container.escapeExpression(alias2(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.title : stack1), depth0))\n + \"</h5>\\r\\n<p>\"\n + ((stack1 = alias2(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.description : stack1), depth0)) != null ? stack1 : \"\")\n + \"</p>\\r\\n\"\n + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : (container.nullContext || {}),((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.limitText : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.program(3, data, 0),\"data\":data})) != null ? stack1 : \"\");\n},\"useData\":true});","import { ObjectHash } from 'backbone';\r\n\r\nimport { Core } from 'libs/common/core';\r\n\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\n\r\nimport { FileSelectBehavior } from 'libs/shared/legacy/behaviors/file-select/FileSelectBehavior';\r\nimport { FileDropBehavior } from 'libs/shared/legacy/behaviors/file-drop/FileDropBehavior';\r\n\r\nimport styles from './file-select.scss';\r\nimport FileSelectDropMaskTemplate from './FileSelectDropMask.hbs';\r\nimport FileSelectTemplate from './FileSelect.hbs';\r\n\r\ninterface FileSelectComponentOptions extends Core.ComponentOptions {\r\n title: string;\r\n description: string;\r\n alternateText: string;\r\n mimeType: string;\r\n channelName: string;\r\n acceptMultiple?: boolean;\r\n limitText: string;\r\n isClickViewContent?: boolean;\r\n}\r\n\r\nexport class FileSelectComponent extends Core.Component {\r\n public options: FileSelectComponentOptions;\r\n\r\n constructor(options: FileSelectComponentOptions) {\r\n super(options);\r\n }\r\n\r\n public get name(): string {\r\n return 'FileSelectComponent';\r\n }\r\n\r\n public get template(): any {\r\n return FileSelectTemplate;\r\n }\r\n\r\n public get lang(): string {\r\n return 'shared._fileSelect';\r\n }\r\n\r\n public get elements(): ObjectHash {\r\n return {\r\n dropArea: '.file-drop'\r\n };\r\n }\r\n\r\n public get defaults(): ObjectHash {\r\n return {\r\n acceptMultiple: true\r\n };\r\n }\r\n\r\n public get behaviors(): any[] {\r\n return [\r\n {\r\n behaviorClass: FileSelectBehavior,\r\n buttonSelector: '.browse',\r\n channelName: this.options.channelName,\r\n acceptMultiple: this.options.acceptMultiple,\r\n mimeType: this.options.mimeType\r\n },\r\n {\r\n behaviorClass: FileDropBehavior,\r\n channelName: this.options.channelName,\r\n acceptMultiple: this.options.acceptMultiple\r\n }\r\n ];\r\n }\r\n\r\n public events(): ObjectHash {\r\n const dragLeave = `dragleave .${styles.dropMask}`;\r\n\r\n return {\r\n 'drop .file-drop': 'onDrop',\r\n 'dragover .file-drop': 'onDragOver',\r\n [dragLeave]: 'onDragLeave'\r\n };\r\n }\r\n\r\n private onDrop(): void {\r\n this.$el.removeClass(styles.dragOver);\r\n }\r\n\r\n private onDragOver(event: any): void {\r\n this.$el.addClass(styles.dragOver);\r\n\r\n event.preventDefault();\r\n }\r\n\r\n private onDragLeave(): void {\r\n this.$el.removeClass(styles.dragOver);\r\n }\r\n\r\n public viewOptions(): ObjectHash {\r\n return {\r\n ...this.options,\r\n styles,\r\n limitText: this.options.limitText,\r\n isClickViewContent: this.options.isClickViewContent\r\n };\r\n }\r\n\r\n public onRender(): void {\r\n this.getUI('dropArea').append(FileSelectDropMaskTemplate({\r\n dropMask: styles.dropMask,\r\n fileDropText: LanguageService.getPhrase(this.lang, 'drop')\r\n }));\r\n }\r\n}","var Handlebars = require('handlebars');\nmodule.exports = (Handlebars['default'] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=container.propertyIsEnumerable, alias2=container.escapeExpression;\n\n return \"<div class=\\\"\"\n + alias2(((helper = (helper = helpers.dropMask || (depth0 != null ? depth0.dropMask : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"dropMask\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\">\\r\\n <h3>\"\n + alias2(container.lambda(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.fileDropText : stack1), depth0))\n + \"</h3>\\r\\n</div>\";\n},\"useData\":true});","// extracted by mini-css-extract-plugin\nmodule.exports = {\"fileDrop\":\"cv--fileDrop--3-Sp5\",\"dropMask\":\"cv--dropMask--TuDHp\",\"dragOver\":\"cv--dragOver--3Dz1H\"};","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 mr-2 \"\n + container.escapeExpression(alias2(((stack1 = ((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.styles : stack1)) != null ? stack1.svgContainer : stack1), depth0))\n + \" float-right text-success\\\">\"\n + ((stack1 = alias2(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.tickSvg : stack1), depth0)) != null ? stack1 : \"\")\n + \"</span>\\r\\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 mr-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 close float-right\\\">&times;</span>\\r\\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 mr-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>\\r\\n<span class=\\\"align-middle\\\">\\r\\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 + \"\\r\\n</span>\\r\\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 + \"\\r\\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\\\">\\r\\n <div class=\\\"progress-bar bg-info\\\" 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>\\r\\n</div>\";\n},\"useData\":true});","import { ObjectHash } from 'backbone';\r\nimport { Core } from 'libs/common/core';\r\nimport { SvgHelper, cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\n\r\nimport FileUploadTemplate from './FileUpload.hbs';\r\nimport styles from './file-upload.scss';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\n\r\nexport interface FileUploadComponentOptions extends Core.ComponentOptions {\r\n onClickCancelUpload: (id: string) => void;\r\n}\r\n\r\nexport class FileUploadComponent extends Core.Component {\r\n public options: FileUploadComponentOptions;\r\n\r\n constructor(options: FileUploadComponentOptions) {\r\n super(options);\r\n }\r\n\r\n public initialize(): void {\r\n this.listenTo(this.model, 'change:progress', this.render);\r\n }\r\n\r\n public get name(): string {\r\n return 'FileUploadComponent';\r\n }\r\n\r\n public get template(): any {\r\n return FileUploadTemplate;\r\n }\r\n\r\n public events(): ObjectHash {\r\n return {\r\n 'click .cancel-upload': 'onClickCancelUpload'\r\n };\r\n }\r\n\r\n private onClickCancelUpload(): void {\r\n if (!FunctionHelper.isFunction(this.options.onClickCancelUpload))\r\n return;\r\n\r\n this.options.onClickCancelUpload(this.model.get('id'));\r\n }\r\n\r\n public viewOptions(): ObjectHash {\r\n return {\r\n styles,\r\n svg: SvgHelper.getSvg(cvSvgLibrary.Folder),\r\n tickSvg: SvgHelper.getSvg(cvSvgLibrary.Check),\r\n finished: this.model.get('progress') >= 100\r\n };\r\n }\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"svgContainer\":\"cv--svgContainer--QNFLR\",\"progress\":\"cv--progress--1q_ig\"};","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-right \"\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-muted delete\\\">\"\n + ((stack1 = alias2(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.trashSvg : stack1), depth0)) != null ? stack1 : \"\")\n + \"</a>\\r\\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 mr-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>\\r\\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\\\">\\r\\n \"\n + alias3(alias2(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.name : stack1), depth0))\n + \"\\r\\n</a>\\r\\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});","import { Core } from 'libs/common/core';\r\nimport { SvgHelper, cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\nimport { ObjectHash } from 'backbone';\r\n\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\n\r\nimport { VideoDetailsHelper } from 'libs/shared/utils/VideoDetailsHelper';\r\nimport { SubtitleHelper } from 'libs/shared/utils/SubtitleHelper';\r\n\r\nimport SubtitleTemplate from './Subtitle.hbs';\r\nimport styles from './subtitle.scss';\r\n\r\nexport interface SubtitleItemComponentOptions extends Core.ComponentOptions {\r\n onClickDelete: (resource: Core.Model) => void;\r\n isClickViewContent?: boolean;\r\n}\r\n\r\nexport class SubtitleItemComponent extends Core.Component {\r\n public options: SubtitleItemComponentOptions;\r\n\r\n constructor(options: SubtitleItemComponentOptions) {\r\n super(options);\r\n }\r\n\r\n public get name(): string {\r\n return 'SubtitleItemComponent';\r\n }\r\n\r\n public get template(): any {\r\n return SubtitleTemplate;\r\n }\r\n\r\n public get className(): string {\r\n return this.options.className || 'mb-2';\r\n }\r\n\r\n public events(): ObjectHash {\r\n return {\r\n 'click .delete': 'onClickDelete'\r\n };\r\n }\r\n\r\n private getEnglishName(): string {\r\n return SubtitleHelper.getEnglishName(this.model.toJSON(), this.model.collection.toJSON());\r\n }\r\n\r\n private onClickDelete(): void {\r\n if (this.options.isClickViewContent || !FunctionHelper.isFunction(this.options.onClickDelete))\r\n return;\r\n\r\n this.options.onClickDelete(this.model);\r\n }\r\n\r\n public viewOptions(): ObjectHash {\r\n return {\r\n styles,\r\n svg: SvgHelper.getSvg(VideoDetailsHelper.mapTypeToSvg('subtitle')),\r\n trashSvg: SvgHelper.getSvg(cvSvgLibrary.Delete),\r\n name: this.getEnglishName(),\r\n isClickViewContent: this.options.isClickViewContent\r\n };\r\n }\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"svgContainer\":\"cv--svgContainer--186X3\",\"actionSvg\":\"cv--actionSvg--3_l1b\"};","import { DialogError } from 'libs/shared/errors/primitives/DialogError';\r\nimport { DialogOptions } from 'libs/shared/interfaces/DialogOptions';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\n\r\nconst lang = 'shared.errors.tooManyResources';\r\n\r\nexport class TooManyResourcesError extends DialogError {\r\n public resourceLimit: number;\r\n\r\n constructor(resourceLimit: number) {\r\n super('Cannot add that many resources');\r\n\r\n this.resourceLimit = resourceLimit;\r\n }\r\n\r\n public get name(): string {\r\n return 'TooManyResourcesError';\r\n }\r\n\r\n public get dialogOptions(): DialogOptions {\r\n return {\r\n title: LanguageService.getPhrase(lang, 'heading'),\r\n text: LanguageService.getPhrase(lang, 'body', { resourceLimit: this.resourceLimit }),\r\n buttons: [{\r\n text: LanguageService.getPhrase(lang, 'okay'),\r\n className: 'btn btn-primary',\r\n success: true\r\n }]\r\n };\r\n }\r\n}","import { DialogError } from 'libs/shared/errors/primitives/DialogError';\r\nimport { DialogOptions } from 'libs/shared/interfaces/DialogOptions';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\n\r\nconst lang = 'shared.errors.tooManySubtitles';\r\n\r\nexport class TooManySubtitlesError extends DialogError {\r\n public subtileLimit: number;\r\n\r\n constructor(subtitleLimit: number) {\r\n super('Cannot add that many subtitles');\r\n\r\n this.subtileLimit = subtitleLimit;\r\n }\r\n\r\n public get name(): string {\r\n return 'TooManySubtitlesError';\r\n }\r\n\r\n public get dialogOptions(): DialogOptions {\r\n return {\r\n title: LanguageService.getPhrase(lang, 'heading'),\r\n text: LanguageService.getPhrase(lang, 'body', { subtitleLimit: this.subtileLimit }),\r\n buttons: [{\r\n text: LanguageService.getPhrase(lang, 'okay'),\r\n className: 'btn btn-primary',\r\n success: true\r\n }]\r\n };\r\n }\r\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { Subtitle } from 'libs/shared/interfaces';\r\n\r\nconst namespace = 'shared.shared-utils';\r\n\r\nexport const SubtitleHelper = {\r\n /**\r\n * \r\n * @param subtitle - the subtitle to get the English name for.\r\n * @param allVideoSubtitles - the full list of subtitles on the video.\r\n */\r\n getEnglishName(subtitle: Subtitle, allVideoSubtitles?: Subtitle[]): string {\r\n const language = subtitle.language;\r\n\r\n const differentNames = allVideoSubtitles?.filter(s => s.language !== language);\r\n\r\n let name: string;\r\n\r\n if (differentNames.length > 0)\r\n name = CVLanguages.getFullEnglishName(language);\r\n else\r\n name = CVLanguages.getEnglishName(language);\r\n\r\n return subtitle.metadata?.autoGenerated\r\n ? LanguageService.getPhrase(namespace, 'autoGeneratedSubtitle', { name })\r\n : name;\r\n }\r\n};","var Handlebars = require('handlebars');\nmodule.exports = (Handlebars['default'] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.propertyIsEnumerable;\n\n return \"<p class=\\\"alert alert-warning col-8\\\">\"\n + container.escapeExpression((helpers.lang||(depth0 && depth0.lang)||container.hooks.helperMissing).call(depth0 != null ? depth0 : (container.nullContext || {}),\"limit\",{\"name\":\"lang\",\"hash\":{\"limit\":((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.limit : stack1)},\"data\":data}))\n + \"</p>\\r\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n var alias1=container.propertyIsEnumerable, alias2=depth0 != null ? depth0 : (container.nullContext || {}), alias3=container.hooks.helperMissing, alias4=container.escapeExpression;\n\n return \"<p>\"\n + alias4((helpers.lang||(depth0 && depth0.lang)||alias3).call(alias2,\"subheading\",{\"name\":\"lang\",\"hash\":{},\"data\":data}))\n + \"</p>\\r\\n<div class=\\\"form-group mb-1\\\">\\r\\n <label for=\\\"url\\\">\"\n + alias4((helpers.lang||(depth0 && depth0.lang)||alias3).call(alias2,\"urlLabel\",{\"name\":\"lang\",\"hash\":{},\"data\":data}))\n + \"</label>\\r\\n <input name=\\\"url\\\" id=\\\"url\\\" class=\\\"form-control\\\" type=\\\"text\\\" placeholder=\\\"\"\n + alias4((helpers.lang||(depth0 && depth0.lang)||alias3).call(alias2,\"urlPlaceholder\",{\"name\":\"lang\",\"hash\":{},\"data\":data}))\n + \"\\\">\\r\\n <div class=\\\"form-feedback\\\"></div>\\r\\n</div>\\r\\n<div class=\\\"form-group mb-1\\\" id=\\\"name-container\\\" style=\\\"display: none;\\\">\\r\\n <input type=\\\"text\\\" class=\\\"form-control\\\" name=\\\"name\\\" placeholder=\\\"\"\n + alias4((helpers.lang||(depth0 && depth0.lang)||alias3).call(alias2,\"namePlaceholder\",{\"name\":\"lang\",\"hash\":{},\"data\":data}))\n + \"\\\">\\r\\n <div class=\\\"form-feedback\\\"></div>\\r\\n</div>\\r\\n<div class=\\\"attach-btn-region\\\"></div>\\r\\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.propertyIsEnumerable;\n\n return \"<h5 class=\\\"pt-2\\\">Resource Links</h5>\\r\\n\"\n + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : (container.nullContext || {}),((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.hide : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.program(3, data, 0),\"data\":data})) != null ? stack1 : \"\");\n},\"useData\":true});","import { ObjectHash, Radio, Validation } from 'backbone';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { ViewModelService } from 'libs/common/backbone/services/ViewModelService';\r\n\r\nimport { SpinnerButtonComponent } from 'shared/components/spinner-button/SpinnerButtonComponent';\r\nimport { SpinnerSize, SpinnerType } from 'shared/utils';\r\nimport { StickitBehavior, BackboneValidationBehavior } from 'shared/behaviors';\r\n\r\nimport { ResourceLinkValidation } from 'apps/library-editor/utils';\r\n\r\nimport AddLinksTemplate from './AddLinks.hbs';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\n\r\ninterface AddLinksComponentOptions extends Core.ComponentOptions {\r\n limit: number;\r\n hide?: boolean;\r\n}\r\n\r\nexport class AddLinksComponent extends Core.Component {\r\n public options: AddLinksComponentOptions;\r\n private showNameField: boolean = false;\r\n private disableBtn: boolean = true;\r\n\r\n constructor(options: AddLinksComponentOptions) {\r\n super(options);\r\n }\r\n\r\n public initialize(): void {\r\n this.model = ViewModelService.get(this.viewModelName);\r\n this.model.addValidation(ResourceLinkValidation);\r\n\r\n this.bindListeners();\r\n }\r\n\r\n public get name(): string {\r\n return 'AddLinksComponent';\r\n }\r\n\r\n public get template(): string {\r\n return AddLinksTemplate;\r\n }\r\n\r\n public get lang(): string {\r\n return 'libraryEditor.addLinks';\r\n }\r\n\r\n public get tagName(): string {\r\n return 'form';\r\n }\r\n\r\n public get bindings(): ObjectHash {\r\n return {\r\n '[name=url]': {\r\n observe: 'url',\r\n setOptions: { validate: true }\r\n },\r\n '[name=name]': {\r\n observe: 'name',\r\n setOptions: { validate: true }\r\n }\r\n };\r\n }\r\n\r\n public regions(): ObjectHash {\r\n return {\r\n attachBtn: '.attach-btn-region'\r\n };\r\n }\r\n\r\n public get behaviors(): any[] {\r\n return [\r\n {\r\n behaviorClass: StickitBehavior\r\n },\r\n {\r\n behaviorClass: BackboneValidationBehavior\r\n }\r\n ];\r\n }\r\n\r\n public get elements(): ObjectHash {\r\n return {\r\n nameField: '#name-container'\r\n };\r\n }\r\n\r\n private get viewModelName(): string {\r\n return `${this.name}:${this.cid}`;\r\n }\r\n\r\n private bindListeners(): void {\r\n this.listenTo(this.model, 'change:url', this.onChangeUrl);\r\n this.listenTo(this.model, 'change:name', this.onChangeName);\r\n this.listenTo(this.options.channelName, 'attach:link', this.onClickAttach);\r\n }\r\n\r\n private onChangeUrl(): void {\r\n if (this.showNameField && !this.model.isValid('url')) {\r\n this.getUI('nameField').hide();\r\n this.model.set('name', '');\r\n this.showNameField = false;\r\n } else if (!this.showNameField && this.model.isValid('url')) {\r\n this.getUI('nameField').show();\r\n this.showNameField = true;\r\n }\r\n }\r\n\r\n private onChangeName(): void {\r\n this.model.validate('name');\r\n this.disableBtn = !this.model.isValid();\r\n this.renderAttachButton();\r\n }\r\n\r\n private onClickAttach(): void {\r\n const link = this.model.toJSON();\r\n this.model.clear();\r\n\r\n Radio.channel(this.options.channelName)\r\n .trigger('add:link', link);\r\n\r\n this.render();\r\n }\r\n\r\n private renderAttachButton(): void {\r\n if (this.options.hide)\r\n return;\r\n\r\n this.showChildView('attachBtn', new SpinnerButtonComponent({\r\n saveEvent: 'attach:link',\r\n channelName: this.options.channelName,\r\n buttonText: LanguageService.getPhrase(this.lang, 'attach'),\r\n extraButtonClass: `btn-secondary attach`,\r\n disabled: this.disableBtn,\r\n buttonType: 'submit',\r\n spinnerOptions: {\r\n size: SpinnerSize.Medium,\r\n type: SpinnerType.Light,\r\n extraClasses: 'mx-auto'\r\n }\r\n }));\r\n }\r\n\r\n public viewOptions(): ObjectHash {\r\n return {\r\n limit: this.options.limit,\r\n hide: this.options.hide\r\n };\r\n }\r\n\r\n public onRender(): void {\r\n this.renderAttachButton();\r\n\r\n this.stickit();\r\n Validation.bind(this);\r\n }\r\n\r\n public onClose(): void {\r\n this.unstickit();\r\n Validation.unbind(this);\r\n }\r\n}","import { Radio } from 'backbone';\r\nimport { Core } from 'libs/common/core';\r\nimport { FileUploadComponent, FileUploadComponentOptions } from 'libs/shared/legacy/components/file-uploads/FileUploadComponent';\r\n\r\ninterface FileUploadsComponentCollectionOptions extends Core.ComponentCollectionOptions {\r\n channelName: string;\r\n}\r\n\r\nexport class FileUploadsComponentCollection extends Core.ComponentCollection {\r\n public options: FileUploadsComponentCollectionOptions;\r\n\r\n constructor(options: FileUploadsComponentCollectionOptions) {\r\n super(options);\r\n }\r\n\r\n public get name(): string {\r\n return 'FileUploadsComponentCollection';\r\n }\r\n\r\n public get childView(): typeof FileUploadComponent {\r\n return FileUploadComponent;\r\n }\r\n\r\n public get childViewOptions(): FileUploadComponentOptions {\r\n return {\r\n onClickCancelUpload: (id: string) => {\r\n const channel = Radio.channel(this.options.channelName);\r\n channel.trigger('cancel:upload', id);\r\n }\r\n };\r\n }\r\n}","var Handlebars = require('handlebars');\nmodule.exports = (Handlebars['default'] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var alias1=container.propertyIsEnumerable;\n\n return \"<form>\\r\\n <div class=\\\"form-group\\\">\\r\\n <label for=\\\"language\\\">\"\n + container.escapeExpression((helpers.lang||(depth0 && depth0.lang)||container.hooks.helperMissing).call(depth0 != null ? depth0 : (container.nullContext || {}),\"label\",{\"name\":\"lang\",\"hash\":{},\"data\":data}))\n + \"</label>\\r\\n <div class=\\\"typahead-region\\\"></div>\\r\\n </div>\\r\\n</form>\";\n},\"useData\":true});","import { ObjectHash } from 'backbone';\r\nimport { Core } from 'libs/common/core';\r\nimport { ViewModelService } from 'libs/common/backbone/services/ViewModelService';\r\n\r\nimport { PopupBehavior, BackboneValidationBehavior } from 'shared/behaviors';\r\nimport { SearchTypeaheadComponent } from 'shared/components/typeahead-input/SearchTypeaheadComponent';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { SubtitleLanguageValidation } from 'shared/utils';\r\n\r\nimport { LangugageSelectTypeaheadHelper } from 'apps/library-editor/components/language-select/LanguageSelectTypeaheadHelper';\r\n\r\nimport LanguageSelectTemplate from './LanguageSelect.hbs';\r\n\r\nexport interface LanguageSelectComponentOptions extends Core.ComponentOptions {\r\n defaultLanguage: { code: string, name: string };\r\n promise: JQueryDeferred<any>;\r\n}\r\n\r\nexport class LanguageSelectComponent extends Core.Component {\r\n public options: LanguageSelectComponentOptions;\r\n\r\n constructor(options: LanguageSelectComponentOptions) {\r\n super(options);\r\n }\r\n\r\n public initialize(options: LanguageSelectComponentOptions): void {\r\n this.model = ViewModelService.get('subtitle:language', options.defaultLanguage);\r\n this.model.addValidation(SubtitleLanguageValidation);\r\n\r\n this.listenTo(this.channelName, 'select:language', this.onLanguageSelected);\r\n }\r\n\r\n public get template(): any {\r\n return LanguageSelectTemplate;\r\n }\r\n\r\n public get name(): string {\r\n return 'LanguageSelectComponent';\r\n }\r\n\r\n public get lang(): string {\r\n return 'libraryEditor.languageSelect';\r\n }\r\n\r\n public events(): ObjectHash {\r\n return {\r\n 'click .submit': 'onClickSubmit',\r\n 'submit': 'onClickSubmit'\r\n };\r\n }\r\n\r\n public get behaviors(): any[] {\r\n return [\r\n {\r\n behaviorClass: PopupBehavior,\r\n title: LanguageService.getPhrase(this.lang, 'heading'),\r\n buttons: [{\r\n text: LanguageService.getPhrase(this.lang, 'submit'), type: 'submit', className: 'btn btn-primary submit'\r\n }]\r\n },\r\n {\r\n behaviorClass: BackboneValidationBehavior\r\n }\r\n ];\r\n }\r\n\r\n public regions(): ObjectHash {\r\n return {\r\n typeahead: '.typahead-region'\r\n };\r\n }\r\n\r\n public get channelName(): string {\r\n return `${this.name}${this.cid}`;\r\n }\r\n\r\n private getTypeaheadConfigs(): any {\r\n const typeaheadConfig = LangugageSelectTypeaheadHelper.getTypeaheadConfig();\r\n\r\n return [\r\n { name: 'languages', typeaheadConfig }\r\n ];\r\n }\r\n\r\n private renderTypeahead(): void {\r\n this.showChildView('typeahead', new SearchTypeaheadComponent({\r\n model: this.model,\r\n parentChannelName: this.channelName,\r\n inputId: 'language',\r\n selectEvent: 'select:language',\r\n typeaheadConfigs: this.getTypeaheadConfigs()\r\n }));\r\n }\r\n\r\n private onLanguageSelected(selected: ObjectHash): void {\r\n this.model.set('code', selected.key);\r\n }\r\n\r\n private onClickSubmit(): void {\r\n this.model.validate();\r\n\r\n if (!this.model.isValid())\r\n return;\r\n\r\n this.options.promise.resolve(this.model.toJSON());\r\n this.triggerMethod('hide');\r\n }\r\n\r\n public onBeforeDestroy(): void {\r\n if (this.options.promise.state() === 'pending')\r\n this.options.promise.reject();\r\n }\r\n\r\n public onRender(): void {\r\n this.renderTypeahead();\r\n }\r\n}","import * as _ from 'underscore';\r\nimport { ObjectHash } from 'backbone';\r\n\r\nimport { TypeaheadDataSource } from 'libs/shared/apps/search/interfaces';\r\n\r\nimport * as Templates from 'shared/utils/search/raw-search-templates';\r\nimport { Tag } from 'shared/models/Tag';\r\n\r\nexport const LangugageSelectTypeaheadHelper = {\r\n\r\n handleQuery(): TypeaheadDataSource<Tag> {\r\n return (query: string, syncResults: any) => {\r\n\r\n const matches: ObjectHash[] = [];\r\n\r\n if (!query) {\r\n syncResults();\r\n return;\r\n }\r\n\r\n const lanByStr = CVLanguages.getEnglishNameContains(query);\r\n\r\n // do not show already selected languages\r\n _.each(lanByStr, (ls, key) => {\r\n matches.push({ key, name: ls.englishName });\r\n });\r\n\r\n return syncResults(matches);\r\n };\r\n },\r\n\r\n getTypeaheadConfig(): any {\r\n return () => ({\r\n name: 'languages',\r\n source: LangugageSelectTypeaheadHelper.handleQuery(),\r\n limit: 5,\r\n display: (d: ObjectHash) => d.name,\r\n templates: {\r\n suggestion: Templates.ResultSuggestion,\r\n pending: Templates.Loading,\r\n notFound: Templates.NotFound,\r\n }\r\n });\r\n }\r\n};","var Handlebars = require('handlebars');\nmodule.exports = (Handlebars['default'] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.propertyIsEnumerable;\n\n return container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.emptyStateText : stack1), depth0));\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.propertyIsEnumerable;\n\n return \"<h5>\"\n + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.headerText : stack1), depth0))\n + \"</h5>\\r\\n\"\n + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : (container.nullContext || {}),((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.emptyStateText : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\r\\n<div class=\\\"subtitles-list-region\\\"></div>\";\n},\"useData\":true});","import { ObjectHash, Radio } from 'backbone';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\n\r\nimport { SubtitleItemComponentOptions, SubtitleItemComponent } from 'libs/shared/legacy/components/subtitle-item/SubtitleItemComponent';\r\nimport { SubtitleHelper } from 'libs/shared/utils/SubtitleHelper';\r\n\r\nimport { DialogHelper } from 'shared/utils/DialogHelper';\r\nimport { Subtitle } from 'shared/models/Subtitle';\r\n\r\nimport VideoSubtitlesTemplate from './VideoSubtitles.hbs';\r\n\r\ninterface VideoSubtitlesComponentCollectionOptions extends Core.ComponentCollectionOptions {\r\n channelName: string;\r\n isClickViewContent?: boolean;\r\n headerText?: string;\r\n emptyStateText?: string;\r\n}\r\n\r\nexport class VideoSubtitlesComponent extends Core.Component {\r\n public options: VideoSubtitlesComponentCollectionOptions;\r\n\r\n constructor(options: VideoSubtitlesComponentCollectionOptions) {\r\n super(options);\r\n }\r\n\r\n public get name(): string {\r\n return 'VideoSubtitlesComponent';\r\n }\r\n\r\n public get template(): string {\r\n return VideoSubtitlesTemplate;\r\n }\r\n\r\n public regions(): ObjectHash {\r\n return {\r\n subtitles: {\r\n el: '.subtitles-list-region',\r\n replaceElement: true\r\n }\r\n };\r\n }\r\n\r\n public viewOptions(): ObjectHash {\r\n return {\r\n headerText: this.options.headerText,\r\n emptyStateText: this.options.emptyStateText\r\n };\r\n }\r\n\r\n public onRender(): void {\r\n this.showChildView('subtitles', new VideoSubtitlesComponentCollection({\r\n collection: this.collection,\r\n channelName: this.options.channelName,\r\n isClickViewContent: this.options.isClickViewContent\r\n }));\r\n }\r\n}\r\n\r\nexport class VideoSubtitlesComponentCollection extends Core.ComponentCollection {\r\n public options: VideoSubtitlesComponentCollectionOptions;\r\n\r\n constructor(options: VideoSubtitlesComponentCollectionOptions) {\r\n super(options);\r\n }\r\n\r\n public get name(): string {\r\n return 'VideoSubtitlesComponentCollection';\r\n }\r\n\r\n public get lang(): string {\r\n return 'libraryEditor.videoSubtitles';\r\n }\r\n\r\n public get childView(): typeof SubtitleItemComponent {\r\n return SubtitleItemComponent;\r\n }\r\n\r\n public get childViewOptions(): SubtitleItemComponentOptions {\r\n return {\r\n isClickViewContent: this.options.isClickViewContent,\r\n onClickDelete: (model: Subtitle) => this.onClickDelete(model)\r\n };\r\n }\r\n\r\n private onClickDelete(model: Subtitle): void {\r\n if (this.options.isClickViewContent)\r\n return;\r\n\r\n const dialogHelper = new DialogHelper({\r\n title: LanguageService.getPhrase(this.lang, 'removeHeading'),\r\n text: LanguageService.getPhrase(this.lang, 'removeBody', {\r\n language: this.getEnglishName(model)\r\n }),\r\n buttons: [{\r\n text: LanguageService.getPhrase(this.lang, 'remove'),\r\n className: 'btn btn-danger',\r\n success: true,\r\n }, {\r\n text: LanguageService.getPhrase(this.lang, 'cancel'),\r\n className: 'btn btn-secondary',\r\n close: true,\r\n }],\r\n channelName: `${this.name}${this.cid}`\r\n });\r\n\r\n dialogHelper.render().done(() => {\r\n const channel = Radio.channel(this.options.channelName);\r\n channel.trigger('delete:subtitle', model.get('id'));\r\n });\r\n }\r\n\r\n private getEnglishName(model: Subtitle): string {\r\n return SubtitleHelper.getEnglishName(model.toJSON(), model.collection.toJSON());\r\n }\r\n}","var Handlebars = require('handlebars');\nmodule.exports = (Handlebars['default'] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n return \"col-5\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.propertyIsEnumerable, alias2=depth0 != null ? depth0 : (container.nullContext || {});\n\n return \"<div class=\\\"tab-region\\\"></div>\\r\\n\\r\\n<div class=\\\"row py-3\\\">\\r\\n <div class=\\\"\"\n + ((stack1 = helpers[\"if\"].call(alias2,((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.isClickViewContent : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\\">\\r\\n <div class=\\\"clickview-subtitles-list-region\\\"></div>\\r\\n </div>\\r\\n <div class=\\\"col-7\\\">\\r\\n <div class=\\\"subtitles-upload-region\\\"></div>\\r\\n <div class=\\\"subtitles-upload-list-region p-0 col-8\\\"></div>\\r\\n <div class=\\\"customer-subtitles-list-region p-0 col-8\\\"></div>\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n<div class=\\\"row border-top py-3\\\">\\r\\n <div class=\\\"\"\n + ((stack1 = helpers[\"if\"].call(alias2,((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.isClickViewContent : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\\">\\r\\n <div class=\\\"clickview-resources-list-region\\\"></div>\\r\\n </div>\\r\\n <div class=\\\"col-7\\\">\\r\\n <div class=\\\"resources-upload-region\\\"></div>\\r\\n <div class=\\\"resources-upload-list-region p-0 col-8\\\"></div>\\r\\n <div class=\\\"customer-resources-list-region p-0 col-8\\\"></div>\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n<div class=\\\"row border-top py-3\\\">\\r\\n <div class=\\\"\"\n + ((stack1 = helpers[\"if\"].call(alias2,((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.isClickViewContent : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\\">\\r\\n <div class=\\\"clickview-link-list-region\\\"></div>\\r\\n </div>\\r\\n <div class=\\\"col-7\\\">\\r\\n <div class=\\\"add-links-region mb-2\\\"></div>\\r\\n <div class=\\\"customer-link-list-region p-0 col-8\\\"></div>\\r\\n </div>\\r\\n</div>\";\n},\"useData\":true});","import * as _ from 'underscore';\r\nimport { ObjectHash } from 'backbone';\r\nimport { Radio } from 'backbone';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { InstanceManager } from 'libs/common/backbone/services/InstanceManager';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { CommonChannels } from 'libs/common/backbone/constants/CommonChannels';\r\nimport { DataServiceErrorType } from 'libs/common/backbone/enums/DataServiceErrorType';\r\nimport { DataServiceError } from 'libs/common/backbone/interfaces';\r\n\r\nimport { SubtitleUploadService, LearningResourceUploadService } from 'libs/shared/apps/upload/services/UploadService';\r\nimport { UploadEventNames } from 'libs/shared/apps/upload/constants/UploadConstants';\r\nimport { FileExtensionHelper, FileExtensions } from 'libs/shared/apps/upload/utils/FileExtensionsHelper';\r\nimport { FileSelectComponent } from 'libs/shared/legacy/components/file-select/FileSelectComponent';\r\nimport { InteractionType } from 'libs/shared/enums/UploadInteractionType';\r\n\r\nimport { DataPrefixes, DataServices, DataChannels, ServiceChannels } from 'shared/constants';\r\nimport { PermissionsHelper, TabHelper, RadioChannelHelper } from 'shared/utils';\r\nimport { Video } from 'shared/models/Video';\r\nimport { Resource } from 'shared/models/Resource';\r\nimport { Subtitle } from 'shared/models/Subtitle';\r\nimport { User } from 'shared/models/User';\r\nimport { Link } from 'shared/models/Link';\r\nimport { PartialLoading } from 'shared/enums';\r\nimport { LockLayoutFileDropBehavior } from 'shared/behaviors';\r\nimport { UserDataServiceHelper } from 'shared/services/UserDataService';\r\n\r\nimport { VideoDataService } from 'apps/library-editor/services/VideoDataService';\r\nimport { ChapterDataService } from 'apps/library-editor/services/ChapterDataService';\r\nimport { ResourceDataService } from 'apps/library-editor/services/ResourceDataService';\r\nimport { SubtitleDataService } from 'apps/library-editor/services/SubtitleDataService';\r\nimport { LinkDataService } from 'apps/library-editor/services/LinkDataService';\r\n\r\nimport { VideoResourcesComponentCollection } from 'apps/library-editor/components/video-resources/VideoResourcesComponent';\r\nimport { ConcatenateRequestComponent } from 'apps/library-editor/components/concatenate-request/ConcatenateRequestComponent';\r\nimport { FileUploadsComponentCollection } from 'apps/library-editor/components/file-uploads/FileUploadsComponentCollection';\r\nimport { LanguageSelectComponent } from 'apps/library-editor/components/language-select/LanguageSelectComponent';\r\nimport { EditVideoTabsComponent } from 'apps/library-editor/components/edit-video-tabs/EditVideoTabsComponent';\r\nimport { VideoSubtitlesComponent } from 'apps/library-editor/components/video-subtitles/VideoSubtitlesComponent';\r\nimport { VideoResourcesComponent } from 'apps/library-editor/components/video-resources/VideoResourcesComponent';\r\nimport { AddLinksComponent } from 'apps/library-editor/components/add-links/AddLinksComponent';\r\nimport { VideoLinksComponent } from 'apps/library-editor/components/edit-links/VideoLinksComponent';\r\n\r\nimport { TooManyResourcesError } from 'libs/shared/legacy/errors/too-many-resources/TooManyResourcesError';\r\nimport { TooManySubtitlesError } from 'libs/shared/legacy/errors/too-many-subtitles/TooManySubtitlesError';\r\n\r\nimport { ForbiddenVideoError, VideoNotFoundError } from 'apps/library-editor/errors';\r\nimport { ChapterConcatenateRequest } from 'apps/library-editor/models';\r\nimport { LibraryEditorActions } from 'apps/library-editor/constants';\r\nimport { MediaConcatenateStatus } from 'apps/library-editor/enums';\r\nimport { ObjectOwnerType } from 'libs/shared/enums/ObjectOwnerType';\r\n\r\nimport { UserAction, LocationContext, EntityType } from 'libs/analytics/interfaces';\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\n\r\nimport EditResourcesTemplate from './EditResources.hbs';\r\n\r\nconst SUBTITLE_LIMIT = 5;\r\nconst RESOURCE_LIMIT = 25;\r\nconst LINK_LIMIT = 25;\r\n\r\ninterface EditResourcesViewOptions extends Core.ViewOptions<Video> {\r\n videoId: string;\r\n}\r\n\r\nexport class EditResourcesView extends Core.View<Video> {\r\n public options: EditResourcesViewOptions;\r\n\r\n private videoDataService: VideoDataService;\r\n private subtitleUploadService: SubtitleUploadService;\r\n private resourceUploadService: LearningResourceUploadService;\r\n private chapterDataService: ChapterDataService;\r\n private linkDataService: LinkDataService;\r\n private resourceDataService: ResourceDataService;\r\n private subtitleDataService: SubtitleDataService;\r\n\r\n private hasPhysicalChapters: Core.Model;\r\n private concatenateRequest: ChapterConcatenateRequest;\r\n private interactionType: InteractionType;\r\n private currentUser: User;\r\n\r\n private getConcatenateRequestSent: boolean;\r\n private concatenateRequestNotFound: boolean;\r\n private isClickViewContent: boolean;\r\n\r\n private resourceUploads: any[];\r\n private resourceUploadCount: number;\r\n\r\n constructor(options: EditResourcesViewOptions) {\r\n super(options);\r\n }\r\n\r\n public initialize(): void {\r\n this.initializeUploadServices();\r\n this.bindDataListeners();\r\n this.bindViewListeners();\r\n this.bindFileSelectListeners();\r\n TabHelper.initBackButton();\r\n\r\n this.chapterDataService = InstanceManager.getInstance(DataServices.Chapter, this);\r\n this.videoDataService = InstanceManager.getInstance(DataServices.Video, this);\r\n this.linkDataService = InstanceManager.getInstance(DataServices.Link, this);\r\n this.resourceDataService = InstanceManager.getInstance(DataServices.Resource, this);\r\n this.subtitleDataService = InstanceManager.getInstance(DataServices.Subtitle, this);\r\n\r\n this.resourceUploads = [];\r\n this.resourceUploadCount = 0;\r\n }\r\n\r\n public get name(): string {\r\n return 'EditResourcesView';\r\n }\r\n\r\n public get lang(): string {\r\n return 'libraryEditor.editResources';\r\n }\r\n\r\n public get title(): string {\r\n return this.model && this.model.get('name') || 'Edit Resources';\r\n }\r\n\r\n public get template(): any {\r\n return EditResourcesTemplate;\r\n }\r\n\r\n public get props(): string[] {\r\n return ['videoDataService'];\r\n }\r\n\r\n public get className(): string {\r\n return 'bg-white p-3';\r\n }\r\n\r\n public get channelName(): string {\r\n return RadioChannelHelper.generateUniqueChannelName(this);\r\n }\r\n\r\n public get behaviors(): any[] {\r\n return [\r\n {\r\n behaviorClass: LockLayoutFileDropBehavior\r\n }\r\n ];\r\n }\r\n\r\n public get requiredResources(): Core.RequiredResourceHash {\r\n return {\r\n currentUser: UserDataServiceHelper.currentUser\r\n };\r\n }\r\n\r\n private initializeUploadServices(): void {\r\n this.resourceUploadService = new LearningResourceUploadService();\r\n this.listenTo(\r\n ServiceChannels.RESOURCE_UPLOAD, UploadEventNames.UPLOAD_COMPLETE, this.onResourceUploadComplete\r\n );\r\n\r\n this.subtitleUploadService = new SubtitleUploadService();\r\n this.listenTo(\r\n ServiceChannels.SUBTITLE_UPLOAD, UploadEventNames.UPLOAD_COMPLETE, this.onSubtitleUploadComplete\r\n );\r\n }\r\n\r\n private bindDataListeners(): void {\r\n this.listenTo(DataChannels.VIDEO, `${DataPrefixes.VIDEOS}:${this.options.videoId}:sync`, this.render);\r\n this.listenTo(DataChannels.VIDEO, `${DataPrefixes.VIDEOS}:${this.options.videoId}:error`, this.onVideoDataError);\r\n\r\n this.listenTo(DataChannels.VIDEO,\r\n `${DataPrefixes.VIDEO_HAS_PHYSICAL_CHAPTERS}:${this.options.videoId}:sync`, this.render);\r\n\r\n this.listenTo(DataChannels.CHAPTER,\r\n `${DataPrefixes.CONCATENATE_STATUS}:${this.options.videoId}:error`, this.onConcatenateDataError);\r\n }\r\n\r\n private bindViewListeners(): void {\r\n this.listenTo(this.channelName, 'add:link', this.onAddLink);\r\n this.listenTo(this.channelName, 'delete:subtitle', this.onDeleteSubtitle);\r\n this.listenTo(this.channelName, 'delete:resource', this.onDeleteResource);\r\n this.listenTo(this.channelName, 'delete:link', this.onDeleteLink);\r\n this.listenTo(this.channelName, 'cancel:upload', this.onCancelUpload);\r\n this.listenTo(this.channelName, LibraryEditorActions.MergeChapters, this.onMergeChapters);\r\n }\r\n\r\n private bindFileSelectListeners(): void {\r\n this.listenTo(this.getSubtitleSelectChannelName(), UploadEventNames.FILES_SELECTED, this.onSubtitleFilesAdded);\r\n\r\n this.listenTo(this.getResourceSelectChannelName(), UploadEventNames.FILES_SELECTED, this.onResourceFilesAdded);\r\n }\r\n\r\n private getSubtitleSelectChannelName(): string {\r\n return `${this.name}${this.cid}subtitles`;\r\n }\r\n\r\n private getResourceSelectChannelName(): string {\r\n return `${this.name}${this.cid}resources`;\r\n }\r\n\r\n private onVideoDataError(error: DataServiceError): void {\r\n switch (error.type) {\r\n case DataServiceErrorType.NotFound:\r\n Core.ErrorHelper.throw(new VideoNotFoundError());\r\n break;\r\n case DataServiceErrorType.Forbidden:\r\n Core.ErrorHelper.throw(new ForbiddenVideoError());\r\n break;\r\n }\r\n }\r\n\r\n private onConcatenateDataError(error: DataServiceError): void {\r\n if (error.type !== DataServiceErrorType.NotFound)\r\n return;\r\n\r\n this.concatenateRequestNotFound = true;\r\n\r\n this.render();\r\n }\r\n\r\n private onSubtitleFilesAdded(files: File[], type?: InteractionType): void {\r\n if (files.length > (SUBTITLE_LIMIT - this.model.subtitles.length )) {\r\n Core.ErrorHelper.throw(new TooManySubtitlesError(SUBTITLE_LIMIT));\r\n return;\r\n }\r\n\r\n if (type)\r\n this.interactionType = type;\r\n\r\n this.subtitleUploadService.addFiles(files);\r\n }\r\n\r\n private onResourceFilesAdded(files: File[], type?: InteractionType): void {\r\n if (files.length > (RESOURCE_LIMIT - this.model.resources.length )) {\r\n Core.ErrorHelper.throw(new TooManyResourcesError(RESOURCE_LIMIT));\r\n return;\r\n }\r\n\r\n this.resourceUploadCount += files.length;\r\n\r\n if (type)\r\n this.interactionType = type;\r\n\r\n this.resourceUploadService.addFiles(files);\r\n }\r\n\r\n private onAddLink(link: ObjectHash): void {\r\n if (this.model.links.length === LINK_LIMIT)\r\n return;\r\n\r\n // If they are about to reach the limit, immediately hide the link form.\r\n if (this.model.links.length + 1 === LINK_LIMIT)\r\n this.renderAddLinks(true);\r\n\r\n this.linkDataService.addLink(this.model.get('id'), link, (newLink: Link) => {\r\n this.model.links.add(newLink);\r\n this.render();\r\n });\r\n }\r\n\r\n public regions(): ObjectHash {\r\n return {\r\n tabs: {\r\n el: '.tab-region',\r\n partialLoading: PartialLoading.EditVideoTabs\r\n },\r\n\r\n subtitlesUpload: {\r\n el: '.subtitles-upload-region',\r\n partialLoading: PartialLoading.EditVideoUploadArea\r\n },\r\n subtitlesUploadList: '.subtitles-upload-list-region',\r\n customerSubtitlesList: '.customer-subtitles-list-region',\r\n clickViewSubtitlesList: '.clickview-subtitles-list-region',\r\n\r\n resourcesUpload: {\r\n el: '.resources-upload-region',\r\n partialLoading: PartialLoading.EditVideoUploadArea\r\n },\r\n resourcesUploadList: '.resources-upload-list-region',\r\n customerResourcesList: '.customer-resources-list-region',\r\n clickViewResourcesList: '.clickview-resources-list-region',\r\n\r\n addLinks: {\r\n el: '.add-links-region',\r\n partialLoading: PartialLoading.EditVideoUploadArea\r\n },\r\n customerLinkList: '.customer-link-list-region',\r\n clickViewLinkList: '.clickview-link-list-region'\r\n };\r\n }\r\n\r\n /**\r\n * We call this function in onRender to not start polling if we don't have a concatenateRequest\r\n * or if the concatenate request isn't currently concatenating. \r\n */\r\n private startPollingConcatenation(): void {\r\n if (!this.concatenateRequest)\r\n return;\r\n\r\n const ignoreStatuses = [ MediaConcatenateStatus.SingleFile, MediaConcatenateStatus.ConcatenationFailed ];\r\n if (_.contains(ignoreStatuses, this.concatenateRequest.get('status')))\r\n return;\r\n\r\n this.pollConcatenation();\r\n }\r\n\r\n /**\r\n * This function exists seperately from startPollingConcatenation() so that\r\n * we can force the polling to start when this.concatenateRequest is null\r\n * \r\n * This is done when the merge chapter button is clicked to request concatenation\r\n */\r\n private pollConcatenation(): void {\r\n if (this.isDestroyed())\r\n return;\r\n\r\n this.chapterDataService.getConcatenateRequest(this.options.videoId, (data: ChapterConcatenateRequest) => {\r\n this.concatenateRequest = data;\r\n\r\n if (this.concatenateRequest.get('status') !== MediaConcatenateStatus.SingleFile) {\r\n setTimeout(() => this.pollConcatenation(), 5000);\r\n this.renderConcatenationRequest();\r\n return;\r\n }\r\n\r\n this.videoDataService.clearPhysicialChaptersCache();\r\n this.videoDataService.hasPhysicalChapters(this.options.videoId, (model: Core.Model) => {\r\n this.hasPhysicalChapters = model;\r\n this.renderSubtitleFileSelect();\r\n });\r\n });\r\n }\r\n\r\n private onDeleteResource(resourceId: string): void {\r\n this.resourceDataService.deleteResource(this.options.videoId, resourceId, () => {\r\n this.logDeleteAction(EntityType.Resource, resourceId);\r\n this.render();\r\n });\r\n }\r\n\r\n private onDeleteSubtitle(subtitleId: string): void {\r\n this.subtitleDataService.deleteSubtitle(this.options.videoId, subtitleId, () => {\r\n this.logDeleteAction(EntityType.Subtitle, subtitleId);\r\n this.render();\r\n });\r\n }\r\n\r\n private onDeleteLink(linkId: string): void {\r\n this.linkDataService.deleteLink(this.options.videoId, linkId, () => {\r\n this.logDeleteAction(EntityType.Link, linkId);\r\n this.render();\r\n });\r\n }\r\n\r\n private onCancelUpload(uploadId: string): void {\r\n /**\r\n * We don't know if it was a subtitle upload or resource upload\r\n * that was cancelled. But we do know that the uploadId will be unique\r\n * so we jsut blindly cancel it in both services.\r\n *\r\n * Bit hacky... sue me - Sha\r\n */\r\n this.resourceUploadService.cancelUpload(uploadId);\r\n this.subtitleUploadService.cancelUpload(uploadId);\r\n }\r\n\r\n private onResourceUploadComplete(upload: Core.Model): void {\r\n const uploadData = upload.toJSON();\r\n\r\n const data = {\r\n fileId: uploadData.fileInfo.id,\r\n uploadId: uploadData.file.cvUpload.uploadId,\r\n name: uploadData.fileInfo.name,\r\n type: FileExtensionHelper.getResourceType(uploadData.fileInfo.extension),\r\n extension: uploadData.fileInfo.extension,\r\n fileSize: uploadData.fileInfo.size,\r\n fileUrl: uploadData.fileInfo.url,\r\n ingestUrl: uploadData.file.cvUpload.ingestUrl,\r\n metaData: {\r\n type: FileExtensionHelper.getResourceType(uploadData.fileInfo.extension)\r\n },\r\n contribution: false,\r\n url: uploadData.fileInfo.url,\r\n fileIdType: 2 // FileApiv1\r\n };\r\n\r\n this.resourceUploads.push(data);\r\n this.resourceUploadCount--;\r\n\r\n if (this.resourceUploadCount > 0) return;\r\n\r\n // This is only run once all resources have been uploaded.\r\n this.resourceDataService.addResource(this.options.videoId, this.resourceUploads, (resource: Resource) => {\r\n this.model.resources.add(resource);\r\n\r\n const uploadedResource = this.resourceUploadService\r\n .getCollection()\r\n .filter((uploaded: any) => uploaded.get('fileInfo').id === resource.get('fileId'));\r\n\r\n this.resourceUploadService.getCollection().remove(uploadedResource);\r\n\r\n this.logUploadAction(resource);\r\n this.render();\r\n });\r\n this.resourceUploads = [];\r\n }\r\n\r\n private onSubtitleUploadComplete(upload: Core.Model): void {\r\n const promise = $.Deferred();\r\n\r\n const languageSelector = new LanguageSelectComponent({\r\n /**\r\n * TODO: Pull the default language from the user's country.\r\n */\r\n defaultLanguage: { code: 'en', name: 'English' },\r\n promise\r\n });\r\n\r\n promise\r\n .done((language: any) => {\r\n const uploadData = upload.toJSON();\r\n\r\n const data = {\r\n fileId: uploadData.fileInfo.id,\r\n name: language.name,\r\n language: language.code,\r\n type: FileExtensionHelper.getResourceType(uploadData.fileInfo.extension),\r\n fileIdType: 2 // FileApiv1\r\n };\r\n\r\n this.subtitleDataService.addSubtitle(this.options.videoId, data, (subtitle: Subtitle) => {\r\n this.model.subtitles.add(subtitle);\r\n this.subtitleUploadService.getCollection().remove(upload);\r\n this.logUploadAction(subtitle);\r\n this.render();\r\n });\r\n })\r\n .fail(() => {\r\n this.subtitleUploadService.cancelUpload(upload.get('id'));\r\n });\r\n\r\n const channel = Radio.channel(CommonChannels.POPUP);\r\n channel.trigger(Core.EventNames.SHOW_POPUP, languageSelector);\r\n }\r\n\r\n private logUploadAction(item: Resource | Subtitle): void {\r\n const entity = item instanceof Resource ? EntityType.Resource : EntityType.Subtitle;\r\n const descriptor = AnalyticsHelper.mapInteractionType(this.interactionType);\r\n\r\n const analyticsOptions = {\r\n location: LocationContext.EditVideoResources,\r\n actionType: UserAction.Upload,\r\n entity,\r\n descriptor,\r\n };\r\n\r\n AnalyticsHelper.logUserAction(item, analyticsOptions);\r\n }\r\n\r\n private logDeleteAction(entity: EntityType, id: string, ): void {\r\n\r\n const analyticsOptions = {\r\n location: LocationContext.EditVideoResources,\r\n actionType: UserAction.Delete,\r\n entity,\r\n };\r\n\r\n const data = { id, parentId: +this.options.videoId };\r\n\r\n AnalyticsHelper.logUserAction(data, analyticsOptions);\r\n }\r\n\r\n private onMergeChapters(): void {\r\n this.chapterDataService.addConcatenateRequest(this.options.videoId, () => {\r\n this.pollConcatenation();\r\n });\r\n }\r\n\r\n private renderTabs(): void {\r\n const hideChaptersTab: boolean = !PermissionsHelper.canEditVideo(this.model);\r\n this.showChildView('tabs', new EditVideoTabsComponent({\r\n tabs: TabHelper.getEditVideoTabs(this.options.videoId, { hideChaptersTab }),\r\n activeTab: '.edit-resources-subtitles-applink',\r\n goBackTab: TabHelper.getBackButton(this.options.videoId),\r\n }));\r\n }\r\n\r\n private renderSubtitleFileSelect(): void {\r\n if (this.hasPhysicalChapters.get('value')) {\r\n this.renderConcatenationRequest();\r\n return;\r\n }\r\n\r\n const limitText = LanguageService.getPhrase(this.lang, 'subtitlesLimit', {\r\n limit: SUBTITLE_LIMIT\r\n });\r\n\r\n this.showChildView('subtitlesUpload', new FileSelectComponent({\r\n title: this.isClickViewContent\r\n ? LanguageService.getPhrase(this.lang, 'customerSubtitles')\r\n : LanguageService.getPhrase(this.lang, 'subtitles'),\r\n description: LanguageService.getPhrase(this.lang, 'subtitlesInfo'),\r\n alternateText: LanguageService.getPhrase(this.lang, 'subtitlesAlternative'),\r\n mimeType: FileExtensions.SUBTITLES,\r\n channelName: this.getSubtitleSelectChannelName(),\r\n acceptMultiple: false,\r\n limitText: this.model.subtitles.length >= SUBTITLE_LIMIT ? limitText : null,\r\n isClickViewContent: this.isClickViewContent\r\n }));\r\n }\r\n\r\n private renderSubtitleUploadList(): void {\r\n const collection = this.subtitleUploadService.getCollection();\r\n this.showChildView('subtitlesUploadList', new FileUploadsComponentCollection({\r\n collection,\r\n channelName: this.channelName\r\n }));\r\n }\r\n\r\n private renderSubtitlesLists(): void {\r\n this.renderClickViewSubtitlesList();\r\n this.renderCustomerSubtitlesList();\r\n }\r\n\r\n private renderClickViewSubtitlesList(): void {\r\n if (!this.isClickViewContent)\r\n return;\r\n\r\n const subtitles = PermissionsHelper.filterObjectsByOwnerType(this.model.subtitles, ObjectOwnerType.ClickView);\r\n\r\n this.showChildView('clickViewSubtitlesList', new VideoSubtitlesComponent({\r\n collection: subtitles,\r\n channelName: this.channelName,\r\n isClickViewContent: true,\r\n headerText: LanguageService.getPhrase(this.lang, 'clickViewSubtitles'),\r\n emptyStateText: subtitles.models.length ? '' : LanguageService.getPhrase(this.lang, 'clickViewSubtitlesEmpty')\r\n }));\r\n }\r\n\r\n private renderCustomerSubtitlesList(): void {\r\n this.showChildView('customerSubtitlesList', new VideoSubtitlesComponent({\r\n collection: PermissionsHelper.filterObjectsByOwnerType(this.model.subtitles, ObjectOwnerType.Customer, this.currentUser.get('customerId')),\r\n channelName: this.channelName\r\n }));\r\n }\r\n\r\n private renderConcatenationRequest(): void {\r\n if (!this.isRendered())\r\n return;\r\n\r\n this.showChildView('subtitlesUpload', new ConcatenateRequestComponent({\r\n type: this.isClickViewContent ? 'clickViewSubtitles' : 'subtitles',\r\n channelName: this.channelName,\r\n model: this.concatenateRequest\r\n }));\r\n }\r\n\r\n private renderResourcesFileSelect(): void {\r\n const limitText = LanguageService.getPhrase(this.lang, 'resourcesLimit', {\r\n limit: RESOURCE_LIMIT\r\n });\r\n\r\n this.showChildView('resourcesUpload', new FileSelectComponent({\r\n title: this.isClickViewContent\r\n ? LanguageService.getPhrase(this.lang, 'customerResources')\r\n : LanguageService.getPhrase(this.lang, 'resources'),\r\n description: LanguageService.getPhrase(this.lang, 'resourcesDescription'),\r\n alternateText: LanguageService.getPhrase(this.lang, 'resourcesAlternative'),\r\n mimeType: FileExtensions.RESOURCES,\r\n channelName: this.getResourceSelectChannelName(),\r\n limitText: this.model.resources.length >= RESOURCE_LIMIT ? limitText : null,\r\n isClickViewContent: this.isClickViewContent\r\n }));\r\n }\r\n\r\n private renderResourcesUploadList(): void {\r\n const collection = this.resourceUploadService.getCollection();\r\n this.showChildView('resourcesUploadList', new FileUploadsComponentCollection({\r\n collection,\r\n channelName: this.channelName\r\n }));\r\n }\r\n\r\n private renderResourcesLists(): void {\r\n this.renderClickViewResourcesList();\r\n this.renderCustomerResourcesList();\r\n }\r\n\r\n private renderClickViewResourcesList(): void {\r\n if (!this.isClickViewContent)\r\n return;\r\n\r\n const resources = PermissionsHelper.filterObjectsByOwnerType(this.model.resources, ObjectOwnerType.ClickView);\r\n\r\n this.showChildView('clickViewResourcesList', new VideoResourcesComponent({\r\n model: this.model,\r\n customCollection: resources,\r\n editable: false,\r\n videoId: this.options.videoId,\r\n parentChannelName: this.channelName,\r\n headerText: LanguageService.getPhrase(this.lang, 'clickViewResources'),\r\n emptyStateText: resources.models.length ? '' : LanguageService.getPhrase(this.lang, 'clickViewResourcesEmpty'),\r\n analyticsOptions: {\r\n location: LocationContext.EditVideoResources\r\n }\r\n }));\r\n }\r\n\r\n private renderCustomerResourcesList(): void {\r\n this.showChildView('customerResourcesList', new VideoResourcesComponentCollection({\r\n collection: PermissionsHelper.filterObjectsByOwnerType(this.model.resources, ObjectOwnerType.Customer, this.currentUser.get('customerId')),\r\n editable: true,\r\n videoId: this.options.videoId,\r\n channelName: this.channelName,\r\n analyticsOptions: {\r\n location: LocationContext.EditVideoResources\r\n }\r\n }));\r\n }\r\n\r\n private renderAddLinks(hide?: boolean): void {\r\n this.showChildView('addLinks', new AddLinksComponent({\r\n collection: this.model.get('links'),\r\n channelName: this.channelName,\r\n hide: hide || this.model.get('links').length === LINK_LIMIT,\r\n limit: LINK_LIMIT\r\n }));\r\n }\r\n\r\n private renderLinkLists(): void {\r\n const sharedComponentOptions = {\r\n channelName: this.channelName,\r\n analyticsOptions: {\r\n location: LocationContext.EditVideoResources\r\n },\r\n videoId: this.options.videoId\r\n };\r\n\r\n this.renderClickViewLinkList(sharedComponentOptions);\r\n this.renderCustomerLinkList(sharedComponentOptions);\r\n }\r\n\r\n private renderClickViewLinkList(options: any): void {\r\n if (!this.isClickViewContent)\r\n return;\r\n\r\n const links = PermissionsHelper.filterObjectsByOwnerType(this.model.links, ObjectOwnerType.ClickView);\r\n\r\n this.showChildView('clickViewLinkList', new VideoLinksComponent({\r\n ...options,\r\n headingText: 'Resource Links by ClickView',\r\n emptyStateText: links.models.length ? '' : 'There are no ClickView links for this video',\r\n customCollection: links,\r\n editable: false\r\n }));\r\n }\r\n\r\n private renderCustomerLinkList(options: any): void {\r\n this.showChildView('customerLinkList', new VideoLinksComponent({\r\n ...options,\r\n customCollection: PermissionsHelper.filterObjectsByOwnerType(this.model.links, ObjectOwnerType.Customer, this.currentUser.get('customerId')),\r\n editable: true\r\n }));\r\n }\r\n\r\n private fetchData(): void {\r\n this.model = this.videoDataService.getVideo(this.options.videoId);\r\n\r\n this.hasPhysicalChapters = this.videoDataService.hasPhysicalChapters(this.options.videoId);\r\n this.isClickViewContent = this.model && !PermissionsHelper.canEditVideo(this.model);\r\n\r\n /**\r\n * If this.hasPhysicalChapters.get('value') is false, we don't need to fetch the concatenate request.\r\n * Alternatively, if we have already sent a request to fetch the concatenate request, we don't need\r\n * to fetch it again.\r\n * A flag, getConcatenateRequestSent, is used as ChapterDataService.getConcatenateRequest() will\r\n * return null if a concatenate request hasn't been created.\r\n */\r\n if (!this.hasPhysicalChapters || !this.hasPhysicalChapters.get('value') || this.getConcatenateRequestSent)\r\n return;\r\n\r\n this.chapterDataService.getConcatenateRequest(this.options.videoId, (data: ChapterConcatenateRequest) => {\r\n this.concatenateRequest = data;\r\n this.render();\r\n });\r\n\r\n this.getConcatenateRequestSent = true;\r\n }\r\n\r\n private shouldRender(): boolean {\r\n if (!this.model || !this.hasPhysicalChapters)\r\n return false;\r\n\r\n if (this.hasPhysicalChapters.get('value') && (!this.concatenateRequest && !this.concatenateRequestNotFound))\r\n return false;\r\n\r\n return true;\r\n }\r\n\r\n public onBeforeRender(): boolean {\r\n this.fetchData();\r\n\r\n return this.shouldRender();\r\n }\r\n\r\n public viewOptions(): ObjectHash {\r\n return {\r\n isClickViewContent: this.isClickViewContent\r\n };\r\n }\r\n\r\n public onRender(): void {\r\n this.renderTabs();\r\n\r\n this.renderSubtitleFileSelect();\r\n this.renderSubtitleUploadList();\r\n this.renderSubtitlesLists();\r\n\r\n this.renderResourcesFileSelect();\r\n this.renderResourcesUploadList();\r\n this.renderResourcesLists();\r\n\r\n this.renderAddLinks();\r\n this.renderLinkLists();\r\n\r\n this.startPollingConcatenation();\r\n }\r\n\r\n public onDestroy(): void {\r\n this.subtitleUploadService.destroy();\r\n this.resourceUploadService.destroy();\r\n }\r\n}"],"sourceRoot":""}