@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/projects/library-editor/src/apps/library-editor/views/move-video/MoveVideo.hbs","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/apps/library-editor/views/move-video/MoveVideoView.ts","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/shared/components/dropdown/DropdownComponentCollection.ts","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/shared/models/DisabledSpinnerModel.ts"],"names":[],"mappings":"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","file":"scripts/65.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 \" <div class=\\\"alert alert-info\\\" role=\\\"alert\\\">\\r\\n <p class=\\\"m-0\\\">\"\n + ((stack1 = (helpers.lang||(depth0 && depth0.lang)||container.hooks.helperMissing).call(depth0 != null ? depth0 : (container.nullContext || {}),\"hiddenLibraryNames\",{\"name\":\"lang\",\"hash\":{\"smartCount\":((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.hiddenLibraryNamesLength : stack1),\"libraries\":((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.hiddenLibraryNames : stack1)},\"data\":data})) != null ? stack1 : \"\")\n + \"</p>\\r\\n </div>\\r\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n var alias1=container.propertyIsEnumerable;\n\n return \" <div class=\\\"form-group\\\">\\r\\n <label class=\\\"control-label\\\">\"\n + container.escapeExpression((helpers.lang||(depth0 && depth0.lang)||container.hooks.helperMissing).call(depth0 != null ? depth0 : (container.nullContext || {}),\"library\",{\"name\":\"lang\",\"hash\":{},\"data\":data}))\n + \"</label>\\r\\n <div class=\\\"library-region\\\"></div>\\r\\n </div>\\r\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n return \"style=\\\"display: none;\\\"\";\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 \"<form>\\r\\n\"\n + ((stack1 = helpers[\"if\"].call(alias2,((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.hiddenLibraryNames : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\r\\n\"\n + ((stack1 = helpers[\"if\"].call(alias2,((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.hasMultipleLibraries : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\r\\n <div class=\\\"form-group\\\">\\r\\n <label class=\\\"control-label folder-label\\\" \"\n + ((stack1 = helpers[\"if\"].call(alias2,((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.hasMultipleLibraries : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \">\"\n + container.escapeExpression((helpers.lang||(depth0 && depth0.lang)||container.hooks.helperMissing).call(alias2,\"folder\",{\"name\":\"lang\",\"hash\":{},\"data\":data}))\n + \"</label>\\r\\n <div class=\\\"folder-region\\\"></div>\\r\\n </div>\\r\\n</form>\";\n},\"useData\":true});","import * as _ from 'underscore';\r\nimport { ObjectHash } from 'backbone';\r\n\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { InstanceManager } from 'libs/common/backbone/services/InstanceManager';\r\nimport { Core } from 'libs/common/core';\r\nimport { TextHelper } from 'shared/utils/TextHelper';\r\nimport { TooltipOptions } from 'libs/shared/legacy/behaviors/tooltip/TooltipBehavior';\r\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\n\r\nimport { PopupBehavior } from 'shared/behaviors';\r\nimport { DataServices, DataChannels, DataPrefixes } from 'shared/constants';\r\nimport { VideoCollection } from 'shared/collections/VideoCollection';\r\nimport { LibraryCollection } from 'shared/collections/LibraryCollection';\r\nimport { Folder } from 'shared/models/Folder';\r\nimport { Video } from 'shared/models/Video';\r\nimport { DisabledSpinnerModel } from 'shared/models/DisabledSpinnerModel';\r\nimport { Library } from 'shared/models/Library';\r\nimport { VideoAlerts } from 'shared/alerts';\r\nimport { FolderTreeHelpers, RadioChannelHelper } from 'shared/utils';\r\nimport { TreeDropdownComponent } from 'shared/components/tree-dropdown/TreeDropdownComponent';\r\nimport { SpinnerButtonModelAttributes } from 'shared/components/spinner-button/SpinnerButtonComponent';\r\n\r\nimport { VideoDataService } from 'apps/library-editor/services/VideoDataService';\r\nimport { LibraryDataService } from 'apps/library-editor/services/LibraryDataService';\r\nimport { LibrarySelectComponent } from 'apps/library-editor/components/library-select/LibrarySelectComponent';\r\n\r\nimport MoveVideoTemplate from './MoveVideo.hbs';\r\n\r\ninterface MoveVideoViewOptions extends Core.ViewOptions {\r\n videoIds: string[];\r\n folderId: string;\r\n analyticsOptions?: AnalyticsOptions;\r\n}\r\n\r\nexport class MoveVideoView extends Core.View {\r\n private libraryDataService: LibraryDataService;\r\n private videoDataService: VideoDataService;\r\n private spinnerModel: DisabledSpinnerModel;\r\n private hiddenLibraryNames: string[];\r\n\r\n public options: MoveVideoViewOptions;\r\n public collection: VideoCollection;\r\n public libraries: LibraryCollection;\r\n\r\n constructor(options: MoveVideoViewOptions) {\r\n super(options);\r\n }\r\n\r\n public initialize(): void {\r\n this.listenTo(DataChannels.LIBRARY, 'libraries:sync', this.render);\r\n this.listenTo(DataChannels.VIDEO, `${DataPrefixes.VIDEOS_BY_ID}:${this.options.videoIds.join(',')}:sync`, this.render);\r\n\r\n this.listenTo(this.channelName, 'library:selected', this.onLibrarySelected);\r\n this.listenTo(this.channelName, 'folder:selected', this.onFolderSelected);\r\n\r\n this.libraryDataService = InstanceManager.getInstance(DataServices.Library, this);\r\n this.videoDataService = InstanceManager.getInstance(DataServices.Video, this);\r\n }\r\n\r\n public get name(): string {\r\n return 'MoveVideoView';\r\n }\r\n\r\n public get title(): string {\r\n return this.options.videoIds && LanguageService.getPhrase(this.lang, 'title', {\r\n smartCount: this.options.videoIds.length\r\n });\r\n }\r\n\r\n public get lang(): string {\r\n return 'libraryEditor.moveVideo';\r\n }\r\n\r\n public get channelName(): string {\r\n return RadioChannelHelper.generateUniqueChannelName(this);\r\n }\r\n\r\n public get libraryTreeKey(): string {\r\n return `libraryselect:${this.cid}`;\r\n }\r\n\r\n public get folderTreeKey(): string {\r\n return `folderselect:${this.cid}`;\r\n }\r\n\r\n public get template(): any {\r\n return MoveVideoTemplate;\r\n }\r\n\r\n public regions(): ObjectHash {\r\n return {\r\n folder: '.folder-region',\r\n library: '.library-region'\r\n };\r\n }\r\n\r\n public events(): ObjectHash {\r\n return {\r\n 'submit': 'onSubmit',\r\n 'click .submit': 'onSubmit',\r\n };\r\n }\r\n\r\n public get elements(): ObjectHash {\r\n return {\r\n folderLabel: '.folder-label'\r\n };\r\n }\r\n\r\n public get behaviors(): any[] {\r\n return [\r\n {\r\n title: LanguageService.getPhrase(this.lang, 'heading'),\r\n behaviorClass: PopupBehavior,\r\n closeOnRoute: false,\r\n spinnerButtonOptions: {\r\n channelName: this.channelName,\r\n model: this.spinnerModel = new DisabledSpinnerModel(),\r\n buttonText: LanguageService.getPhrase(this.lang, 'submit'),\r\n tooltip: () => this.getSubmitBtnTooltipOptions(),\r\n onClick: () => this.onSubmit()\r\n }\r\n }\r\n ];\r\n }\r\n\r\n /**\r\n * Used for admins with multiple libraries only:\r\n * If a video the user is moving is already in another library, filter it out\r\n */\r\n private filterLibrariesWithVideo(): void {\r\n if (!this.libraries || !this.collection || !this.hasMultipleLibraries())\r\n return;\r\n\r\n // Library ids that the videos already exist in. These libraries will not be selectable\r\n const videoLibraryIds = this.collection.map(video => {\r\n return video.get('libraries').map((lib: Library) => lib.get('id'));\r\n });\r\n const uniqueVideoLibraryIds = _.uniq(_.flatten(videoLibraryIds));\r\n\r\n const filteredLibraries: Library[] = []; // the libraries that will appears in the library dropdown\r\n const filteredOutLibraries: Library[] = [];\r\n\r\n this.libraries.forEach(lib => {\r\n const isLibraryWithSourceFolder = FolderTreeHelpers.getModelFromCollection(this.options.folderId, lib.get('children'));\r\n\r\n if (!_.contains(uniqueVideoLibraryIds, +lib.get('id')) || isLibraryWithSourceFolder) {\r\n filteredLibraries.push(lib);\r\n } else {\r\n filteredOutLibraries.push(lib);\r\n }\r\n });\r\n\r\n this.libraries = new LibraryCollection(filteredLibraries);\r\n this.hiddenLibraryNames = filteredOutLibraries.map(lib => lib.get('name'));\r\n\r\n if (this.libraries.length === 1) {\r\n this.onLibrarySelected(this.libraries.first());\r\n }\r\n }\r\n\r\n private getSubmitBtnTooltipOptions(): TooltipOptions {\r\n if (!this.spinnerModel.get(SpinnerButtonModelAttributes.Disabled))\r\n return;\r\n\r\n return {\r\n title: LanguageService.getPhrase(this.lang, 'btnTooltip')\r\n };\r\n }\r\n\r\n private onLibrarySelected(library: Library): void {\r\n const previouslySelectedLibrary = FolderTreeHelpers.getSelected(this.libraryTreeKey, this.libraries);\r\n if (previouslySelectedLibrary)\r\n FolderTreeHelpers.deselectAll(this.folderTreeKey, previouslySelectedLibrary.get('children'));\r\n\r\n FolderTreeHelpers.setSelected(this.libraryTreeKey, library, this.libraries);\r\n\r\n if (this.hasMultipleLibraries())\r\n this.getUI('folderLabel').show();\r\n\r\n this.spinnerModel.set(SpinnerButtonModelAttributes.Disabled, true);\r\n\r\n this.render();\r\n }\r\n\r\n private onFolderSelected(folder: Folder, isDisabled: boolean): void {\r\n const folders = FolderTreeHelpers.getSelected(this.libraryTreeKey, this.libraries).get('children');\r\n FolderTreeHelpers.setSelected(this.folderTreeKey, folder, folders, isDisabled);\r\n\r\n if (!isDisabled)\r\n this.spinnerModel.set(SpinnerButtonModelAttributes.Disabled, false);\r\n }\r\n\r\n private onSubmit(): void {\r\n this.spinnerModel.set(SpinnerButtonModelAttributes.ShowSpinner, true);\r\n\r\n const selected = FolderTreeHelpers.getSelected(this.folderTreeKey, this.libraries);\r\n const selectedId = selected.get('id');\r\n\r\n const videosToMove = this.collection.map(c => c.get('id'));\r\n\r\n let currentFolder: Folder;\r\n let currentVideo: Video;\r\n\r\n this.collection.each(v => {\r\n if (currentFolder)\r\n return;\r\n\r\n currentFolder = v.categories.find(f => f.get('id') === +this.options.folderId);\r\n currentVideo = v;\r\n });\r\n\r\n const videoName = videosToMove.length === 1 ? currentVideo.get('name') : '';\r\n const successAlert = VideoAlerts.moveVideoAlert(\r\n currentFolder.get('name'),\r\n selected.get('name'),\r\n selected.get('id'),\r\n videosToMove.length,\r\n videoName);\r\n\r\n this.videoDataService.moveVideos(videosToMove, selectedId, this.options.folderId, () => {\r\n this.triggerMethod('hide');\r\n }, successAlert);\r\n\r\n this.logAction(videosToMove, selectedId);\r\n }\r\n\r\n private hasMultipleLibraries(): boolean {\r\n return this.libraries && this.libraries.length > 1;\r\n }\r\n\r\n private getFormattedHiddenLibraryNames(): string {\r\n const folders = _.map(this.hiddenLibraryNames, lib =>\r\n `<strong>${TextHelper.escapeExpression(lib)}</strong>`\r\n );\r\n\r\n if (folders.length === 1)\r\n return folders[0];\r\n\r\n const and = LanguageService.getPhrase(this.lang, 'and');\r\n return `${folders.slice(0, -1).join(', ')} ${and} ${folders.slice(-1)}`;\r\n }\r\n\r\n private logAction(videoIds: string[], newParentId: string): void {\r\n const data: ObjectHash = {\r\n newParentId,\r\n oldParentId: this.options.folderId,\r\n count: videoIds.length\r\n };\r\n\r\n // When only moving a single video, capture the video id\r\n if (videoIds.length === 1)\r\n data.id = _.first(videoIds);\r\n\r\n AnalyticsHelper.logUserAction(data, this.options.analyticsOptions);\r\n }\r\n\r\n private renderLibrarySelect(): void {\r\n if (!this.libraries || this.libraries.length === 1)\r\n return;\r\n\r\n const selectedLibrary = FolderTreeHelpers.getSelected(this.libraryTreeKey, this.libraries);\r\n\r\n this.showChildView('library', new LibrarySelectComponent({\r\n collection: this.libraries,\r\n channelName: this.channelName,\r\n currentLibraryId: selectedLibrary ? selectedLibrary.get('id') : null\r\n }));\r\n }\r\n\r\n private renderFolderSelect(): void {\r\n const selectedLibrary = FolderTreeHelpers.getSelected(this.libraryTreeKey, this.libraries);\r\n\r\n this.showChildView('folder', new TreeDropdownComponent({\r\n collection: selectedLibrary.get('children'),\r\n channelName: this.channelName,\r\n folderTreeKey: this.folderTreeKey,\r\n disabledIds: [this.options.folderId]\r\n }));\r\n }\r\n\r\n public viewOptions(): ObjectHash {\r\n return {\r\n hasMultipleLibraries: this.hasMultipleLibraries(),\r\n hiddenLibraryNames: this.hiddenLibraryNames?.length ? this.getFormattedHiddenLibraryNames() : '',\r\n hiddenLibraryNamesLength: this.hiddenLibraryNames?.length\r\n };\r\n }\r\n\r\n public onBeforeRender(): boolean {\r\n if (!this.libraries) {\r\n this.libraryDataService.getLibraries(libraries => {\r\n // Filter our empty libraries\r\n this.libraries = new LibraryCollection(libraries.filter(l => !!l.get('children').length));\r\n\r\n if (!this.hasMultipleLibraries())\r\n this.onLibrarySelected(this.libraries.first());\r\n\r\n this.filterLibrariesWithVideo();\r\n this.render();\r\n });\r\n }\r\n\r\n if (!this.collection)\r\n this.videoDataService.getVideos(this.options.videoIds, videos => {\r\n this.collection = videos;\r\n this.filterLibrariesWithVideo();\r\n this.render();\r\n });\r\n\r\n return !!this.collection && !!this.libraries;\r\n }\r\n\r\n public onRender(): void {\r\n this.renderLibrarySelect();\r\n\r\n const selectedLibrary = FolderTreeHelpers.getSelected(this.libraryTreeKey, this.libraries);\r\n if (selectedLibrary)\r\n this.renderFolderSelect();\r\n }\r\n}","import * as _ from 'underscore';\r\nimport { ObjectHash } from 'backbone';\r\n\r\nimport { Core } from 'libs/common/core';\r\n\r\nimport { DropdownItemComponent } from 'shared/components/dropdown/DropdownItemComponent';\r\n\r\nexport interface DropdownDisplayOptions {\r\n alignment?: string;\r\n extraClasses?: string;\r\n}\r\n\r\nexport interface DropdownAnalyticsHelper {\r\n logUserAction(data: ObjectHash | ObjectHash[], analyticsOptions: any): void;\r\n}\r\n\r\nexport interface DropdownChildOptions {\r\n channelName?: string;\r\n titleProperty?: string;\r\n eventName?: string;\r\n extraClasses?: string;\r\n prefixHandler?: () => string;\r\n currentSelectedMessage?: string;\r\n isDisabled?: (model: Core.Model) => boolean;\r\n getTooltip?: (model: Core.Model) => ObjectHash;\r\n truncateOptionNames?: boolean;\r\n}\r\n\r\nexport interface DropdownComponentCollectionOptions extends Core.ComponentCollectionOptions {\r\n channelName: string;\r\n childOptions?: DropdownChildOptions;\r\n displayOptions?: DropdownDisplayOptions;\r\n analyticsHelper: DropdownAnalyticsHelper;\r\n}\r\n\r\nexport class DropdownComponentCollection extends Core.ComponentCollection {\r\n public options: DropdownComponentCollectionOptions;\r\n\r\n constructor(options?: DropdownComponentCollectionOptions) {\r\n super(options);\r\n }\r\n\r\n public get name(): string {\r\n return 'DropdownCollectionComponent';\r\n }\r\n\r\n public get className(): string {\r\n return `dropdown-menu items-viewpart ${this.getExtraClasses(this.options.displayOptions)}`;\r\n }\r\n\r\n public get attributes(): ObjectHash {\r\n return {\r\n 'aria-labelledby': 'dropdownSelector'\r\n };\r\n }\r\n\r\n public initialize(): void {\r\n this.listenTo(this.options.channelName, 'center:dropdown', this.centerSelectedItem);\r\n }\r\n\r\n public get childView(): any {\r\n return DropdownItemComponent;\r\n }\r\n\r\n public get childViewOptions(): ObjectHash {\r\n const baseChildOptions: ObjectHash = {\r\n channelName: this.options.channelName,\r\n analyticsHelper: this.options.analyticsHelper\r\n };\r\n\r\n return _.extend(baseChildOptions, this.options.childOptions);\r\n }\r\n\r\n private getExtraClasses(displayOptions: DropdownDisplayOptions = {}): string {\r\n const { alignment = 'left', extraClasses } = displayOptions;\r\n\r\n let className = `dropdown-menu-${alignment}`;\r\n\r\n if (extraClasses)\r\n className = `${className} ${extraClasses}`;\r\n\r\n return className;\r\n }\r\n\r\n private centerSelectedItem(): void {\r\n const active = this.$el.find('.active');\r\n\r\n if (!active.length)\r\n return;\r\n\r\n const halfRatio = 0.5;\r\n const top = this.$el.scrollTop() + active.position().top;\r\n const distance = this.$el.height() * halfRatio + active.height() * halfRatio;\r\n this.$el.scrollTop(top - distance);\r\n }\r\n}","import { ObjectHash } from 'backbone';\r\nimport { Core } from 'libs/common/core';\r\nimport { SpinnerButtonModelAttributes } from 'shared/components/spinner-button/SpinnerButtonComponent';\r\n\r\nexport class DisabledSpinnerModel extends Core.Model {\r\n public defaults(): ObjectHash {\r\n return {\r\n [SpinnerButtonModelAttributes.Disabled]: true\r\n };\r\n }\r\n}"],"sourceRoot":""}
@@ -1,442 +0,0 @@
1
- (window["webpackJsonp_clickview_library_editor"] = window["webpackJsonp_clickview_library_editor"] || []).push([[66],{
2
-
3
- /***/ "./src/apps/library-editor/views/thumbnail-upload/ThumbnailUpload.hbs":
4
- /*!****************************************************************************!*\
5
- !*** ./src/apps/library-editor/views/thumbnail-upload/ThumbnailUpload.hbs ***!
6
- \****************************************************************************/
7
- /*! no static exports found */
8
- /***/ (function(module, exports, __webpack_require__) {
9
-
10
- var Handlebars = __webpack_require__(/*! handlebars */ "handlebars");
11
- module.exports = (Handlebars['default'] || Handlebars).template({"1":function(container,depth0,helpers,partials,data) {
12
- var stack1, alias1=container.propertyIsEnumerable;
13
-
14
- return ((stack1 = container.lambda(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.spinnerEl : stack1), depth0)) != null ? stack1 : "")
15
- + "\r\n";
16
- },"3":function(container,depth0,helpers,partials,data) {
17
- return "<div class=\"cropper-region\"></div>\r\n";
18
- },"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) {
19
- var stack1, alias1=container.propertyIsEnumerable;
20
-
21
- return ((stack1 = helpers.unless.call(depth0 != null ? depth0 : (container.nullContext || {}),((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.dataFetched : stack1),{"name":"unless","hash":{},"fn":container.program(1, data, 0),"inverse":container.program(3, data, 0),"data":data})) != null ? stack1 : "");
22
- },"useData":true});
23
-
24
- /***/ }),
25
-
26
- /***/ "./src/apps/library-editor/views/thumbnail-upload/ThumbnailUploadView.ts":
27
- /*!*******************************************************************************!*\
28
- !*** ./src/apps/library-editor/views/thumbnail-upload/ThumbnailUploadView.ts ***!
29
- \*******************************************************************************/
30
- /*! exports provided: ThumbnailUploadView */
31
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
32
-
33
- "use strict";
34
- __webpack_require__.r(__webpack_exports__);
35
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ThumbnailUploadView", function() { return ThumbnailUploadView; });
36
- /* harmony import */ var underscore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! underscore */ "underscore");
37
- /* harmony import */ var underscore__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(underscore__WEBPACK_IMPORTED_MODULE_0__);
38
- /* harmony import */ var backbone__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! backbone */ "backbone");
39
- /* harmony import */ var backbone__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(backbone__WEBPACK_IMPORTED_MODULE_1__);
40
- /* harmony import */ var _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../libs/common/src/backbone */ "../../libs/common/src/backbone/index.ts");
41
- /* harmony import */ var _libs_common_src_backbone_services_ViewModelService__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../libs/common/src/backbone/services/ViewModelService */ "../../libs/common/src/backbone/services/ViewModelService.ts");
42
- /* harmony import */ var _libs_common_src_backbone_errors_DevError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../../../../libs/common/src/backbone/errors/DevError */ "../../libs/common/src/backbone/errors/DevError.ts");
43
- /* harmony import */ var _libs_common_src_backbone_services_InstanceManager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../../../../libs/common/src/backbone/services/InstanceManager */ "../../libs/common/src/backbone/services/InstanceManager.ts");
44
- /* harmony import */ var _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../../../../libs/common/src/backbone/services/LanguageService */ "../../libs/common/src/backbone/services/LanguageService.tsx");
45
- /* harmony import */ var _shared_behaviors__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../shared/behaviors */ "./src/shared/behaviors/index.ts");
46
- /* harmony import */ var _shared_constants__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../shared/constants */ "./src/shared/constants/index.ts");
47
- /* harmony import */ var _shared_components_spinner_button_SpinnerButtonComponent__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../../shared/components/spinner-button/SpinnerButtonComponent */ "./src/shared/components/spinner-button/SpinnerButtonComponent.ts");
48
- /* harmony import */ var _shared_models_Image__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../../../shared/models/Image */ "./src/shared/models/Image.ts");
49
- /* harmony import */ var _shared_enums__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../../shared/enums */ "./src/shared/enums/index.ts");
50
- /* harmony import */ var _shared_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../../../shared/utils */ "./src/shared/utils/index.ts");
51
- /* harmony import */ var _shared_components_image_cropper_ImageCropperComponent__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../../../shared/components/image-cropper/ImageCropperComponent */ "./src/shared/components/image-cropper/ImageCropperComponent.ts");
52
- /* harmony import */ var _ThumbnailUpload_hbs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./ThumbnailUpload.hbs */ "./src/apps/library-editor/views/thumbnail-upload/ThumbnailUpload.hbs");
53
- /* harmony import */ var _ThumbnailUpload_hbs__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_ThumbnailUpload_hbs__WEBPACK_IMPORTED_MODULE_14__);
54
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
55
-
56
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
57
-
58
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
59
-
60
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
61
-
62
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
63
-
64
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
65
-
66
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
67
-
68
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
69
-
70
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
71
-
72
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
73
-
74
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
75
-
76
-
77
-
78
-
79
-
80
-
81
-
82
-
83
-
84
-
85
-
86
-
87
-
88
-
89
-
90
-
91
- var ThumbnailUploadView = /*#__PURE__*/function (_Core$View) {
92
- _inherits(ThumbnailUploadView, _Core$View);
93
-
94
- var _super = _createSuper(ThumbnailUploadView);
95
-
96
- function ThumbnailUploadView(options) {
97
- _classCallCheck(this, ThumbnailUploadView);
98
-
99
- return _super.call(this, options);
100
- }
101
-
102
- _createClass(ThumbnailUploadView, [{
103
- key: "initialize",
104
- value: function initialize() {
105
- this.videoDataService = _libs_common_src_backbone_services_InstanceManager__WEBPACK_IMPORTED_MODULE_5__["InstanceManager"].getInstance(_shared_constants__WEBPACK_IMPORTED_MODULE_8__["DataServices"].Video, this);
106
- this.imageUploadDataService = _libs_common_src_backbone_services_InstanceManager__WEBPACK_IMPORTED_MODULE_5__["InstanceManager"].getInstance(_shared_constants__WEBPACK_IMPORTED_MODULE_8__["DataServices"].ImageUpload, this);
107
- this.navLockService = _libs_common_src_backbone_services_InstanceManager__WEBPACK_IMPORTED_MODULE_5__["InstanceManager"].getInstance(_shared_constants__WEBPACK_IMPORTED_MODULE_8__["Services"].NavLock, this);
108
- this.viewModel = _libs_common_src_backbone_services_ViewModelService__WEBPACK_IMPORTED_MODULE_3__["ViewModelService"].get('image:storage');
109
- this.bindListeners();
110
- this.initImageEl();
111
- }
112
- }, {
113
- key: "regions",
114
- value: function regions() {
115
- return {
116
- cropper: {
117
- el: '.cropper-region',
118
- replaceElement: true
119
- }
120
- };
121
- }
122
- }, {
123
- key: "events",
124
- value: function events() {
125
- /**
126
- * When rendering cropper into a modal,
127
- * it must be initialized after the modal
128
- * has be shown completely.
129
- */
130
- return {
131
- 'shown.bs.modal': 'renderCropper'
132
- };
133
- }
134
- }, {
135
- key: "bindListeners",
136
- value: function bindListeners() {
137
- var _this = this;
138
-
139
- this.listenTo(this.channelName, _shared_components_image_cropper_ImageCropperComponent__WEBPACK_IMPORTED_MODULE_13__["CropEventNames"].ImageCropped, this.onImageCropped);
140
- this.listenTo(_shared_constants__WEBPACK_IMPORTED_MODULE_8__["DataChannels"].VIDEO, "".concat(_shared_constants__WEBPACK_IMPORTED_MODULE_8__["DataPrefixes"].VIDEOS, ":").concat(this.options.videoId, ":sync"), this.render);
141
- this.listenTo(_shared_constants__WEBPACK_IMPORTED_MODULE_8__["DataChannels"].VIDEO, "".concat(_shared_constants__WEBPACK_IMPORTED_MODULE_8__["DataPrefixes"].UPDATE_VIDEO_THUMBNAIL, ":").concat(this.options.videoId, ":sync"), function () {
142
- return _this.triggerMethod('hide');
143
- });
144
- }
145
- }, {
146
- key: "initImageEl",
147
- value: function initImageEl() {
148
- if (!this.viewModel.get('dataUrl')) _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_2__["Core"].ErrorHelper.throw(new _libs_common_src_backbone_errors_DevError__WEBPACK_IMPORTED_MODULE_4__["DevError"]('DataUrl must be set on the image:storage ViewModel'));
149
- this.imageEl = new Image();
150
- this.imageEl.src = this.viewModel.get('dataUrl');
151
- this.viewModel.unset('dataUrl');
152
- }
153
- }, {
154
- key: "getCropRegionWidth",
155
- value: function getCropRegionWidth() {
156
- return this.$el.find('.modal-body').width();
157
- }
158
- }, {
159
- key: "onClickCrop",
160
- value: function onClickCrop() {
161
- backbone__WEBPACK_IMPORTED_MODULE_1__["Radio"].channel(this.channelName).trigger(_shared_components_image_cropper_ImageCropperComponent__WEBPACK_IMPORTED_MODULE_13__["CropEventNames"].CropImage);
162
- backbone__WEBPACK_IMPORTED_MODULE_1__["Radio"].channel(this.channelName).trigger(_shared_components_spinner_button_SpinnerButtonComponent__WEBPACK_IMPORTED_MODULE_9__["SpinnerButtonEvents"].ShowSpinner);
163
- }
164
- }, {
165
- key: "onImageCropped",
166
- value: function onImageCropped(dataUrl) {
167
- var _this2 = this;
168
-
169
- this.imageUploadDataService.uploadBase64Image(dataUrl, _shared_enums__WEBPACK_IMPORTED_MODULE_11__["ImageType"].Thumbnails, function (data) {
170
- return _this2.onImageUploaded(data);
171
- });
172
- }
173
- }, {
174
- key: "onImageUploaded",
175
- value: function onImageUploaded(image) {
176
- var _this3 = this;
177
-
178
- var callback = function callback() {
179
- return _this3.triggerMethod('hide');
180
- };
181
-
182
- var currentThumbnailId = this.model.thumbnail && this.model.thumbnail.id;
183
- this.videoDataService.addOrUpdateThumbnail(this.options.videoId, image, currentThumbnailId, callback);
184
- }
185
- }, {
186
- key: "renderCropper",
187
- value: function renderCropper() {
188
- var model = new _shared_models_Image__WEBPACK_IMPORTED_MODULE_10__["Image"]({
189
- dataUrl: this.imageEl.src,
190
- width: this.imageEl.width,
191
- height: this.imageEl.height
192
- });
193
- this.showChildView('cropper', new _shared_components_image_cropper_ImageCropperComponent__WEBPACK_IMPORTED_MODULE_13__["ImageCropperComponent"]({
194
- model: model,
195
- channelName: this.channelName,
196
- imageType: _shared_enums__WEBPACK_IMPORTED_MODULE_11__["ImageType"].Thumbnails,
197
- minWidth: _shared_constants__WEBPACK_IMPORTED_MODULE_8__["ImageMinDimensions"][_shared_enums__WEBPACK_IMPORTED_MODULE_11__["ImageType"].Thumbnails].width,
198
- minHeight: _shared_constants__WEBPACK_IMPORTED_MODULE_8__["ImageMinDimensions"][_shared_enums__WEBPACK_IMPORTED_MODULE_11__["ImageType"].Thumbnails].height,
199
- getCropRegionWidth: underscore__WEBPACK_IMPORTED_MODULE_0__["bind"](this.getCropRegionWidth, this)
200
- }));
201
- }
202
- }, {
203
- key: "onBeforeRender",
204
- value: function onBeforeRender() {
205
- this.model = this.videoDataService.getVideo(this.options.videoId);
206
- }
207
- }, {
208
- key: "viewOptions",
209
- value: function viewOptions() {
210
- return {
211
- dataFetched: !!this.model,
212
- spinnerEl: _shared_utils__WEBPACK_IMPORTED_MODULE_12__["SpinnerHelper"].getSpinner({
213
- size: _shared_utils__WEBPACK_IMPORTED_MODULE_12__["SpinnerSize"].Large,
214
- extraClasses: 'mx-auto'
215
- })
216
- };
217
- }
218
- }, {
219
- key: "onBeforeDestroy",
220
- value: function onBeforeDestroy() {
221
- var viewModel = _libs_common_src_backbone_services_ViewModelService__WEBPACK_IMPORTED_MODULE_3__["ViewModelService"].get('upload:thumbnail:options');
222
- if (viewModel.get('lockNav')) this.navLockService.lock();
223
- }
224
- }, {
225
- key: "name",
226
- get: function get() {
227
- return 'ThumbnailUploadView';
228
- }
229
- }, {
230
- key: "title",
231
- get: function get() {
232
- return _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_6__["LanguageService"].getPhrase(this.lang, 'title');
233
- }
234
- }, {
235
- key: "lang",
236
- get: function get() {
237
- return 'libraryEditor.thumbnailUpload';
238
- }
239
- }, {
240
- key: "template",
241
- get: function get() {
242
- return _ThumbnailUpload_hbs__WEBPACK_IMPORTED_MODULE_14___default.a;
243
- }
244
- }, {
245
- key: "channelName",
246
- get: function get() {
247
- return _shared_utils__WEBPACK_IMPORTED_MODULE_12__["RadioChannelHelper"].generateUniqueChannelName(this);
248
- }
249
- }, {
250
- key: "behaviors",
251
- get: function get() {
252
- var _this4 = this;
253
-
254
- return [{
255
- behaviorClass: _shared_behaviors__WEBPACK_IMPORTED_MODULE_7__["PopupBehavior"],
256
- title: _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_6__["LanguageService"].getPhrase(this.lang, 'resizeAndCrop'),
257
- size: 'modal-lg',
258
- spinnerButtonOptions: {
259
- channelName: this.channelName,
260
- buttonText: _libs_common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_6__["LanguageService"].getPhrase(this.lang, 'crop'),
261
- onClick: function onClick() {
262
- return _this4.onClickCrop();
263
- }
264
- }
265
- }];
266
- }
267
- }]);
268
-
269
- return ThumbnailUploadView;
270
- }(_libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_2__["Core"].View);
271
-
272
- /***/ }),
273
-
274
- /***/ "./src/shared/components/image-cropper/ImageCropper.hbs":
275
- /*!**************************************************************!*\
276
- !*** ./src/shared/components/image-cropper/ImageCropper.hbs ***!
277
- \**************************************************************/
278
- /*! no static exports found */
279
- /***/ (function(module, exports, __webpack_require__) {
280
-
281
- var Handlebars = __webpack_require__(/*! handlebars */ "handlebars");
282
- module.exports = (Handlebars['default'] || Handlebars).template({"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) {
283
- var helper, alias1=container.propertyIsEnumerable;
284
-
285
- return "<img src=\""
286
- + container.escapeExpression(((helper = (helper = helpers.dataUrl || (depth0 != null ? depth0.dataUrl : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"dataUrl","hash":{},"data":data}) : helper)))
287
- + "\" class=\"img img-fluid\" />";
288
- },"useData":true});
289
-
290
- /***/ }),
291
-
292
- /***/ "./src/shared/components/image-cropper/ImageCropperComponent.ts":
293
- /*!**********************************************************************!*\
294
- !*** ./src/shared/components/image-cropper/ImageCropperComponent.ts ***!
295
- \**********************************************************************/
296
- /*! exports provided: CropEventNames, ImageCropperComponent */
297
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
298
-
299
- "use strict";
300
- __webpack_require__.r(__webpack_exports__);
301
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CropEventNames", function() { return CropEventNames; });
302
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ImageCropperComponent", function() { return ImageCropperComponent; });
303
- /* harmony import */ var backbone__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! backbone */ "backbone");
304
- /* harmony import */ var backbone__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(backbone__WEBPACK_IMPORTED_MODULE_0__);
305
- /* harmony import */ var _libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../libs/common/src/backbone */ "../../libs/common/src/backbone/index.ts");
306
- /* harmony import */ var cropperjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! cropperjs */ "../../../node_modules/cropperjs/dist/cropper.js");
307
- /* harmony import */ var cropperjs__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(cropperjs__WEBPACK_IMPORTED_MODULE_2__);
308
- /* harmony import */ var _ImageCropper_hbs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ImageCropper.hbs */ "./src/shared/components/image-cropper/ImageCropper.hbs");
309
- /* harmony import */ var _ImageCropper_hbs__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_ImageCropper_hbs__WEBPACK_IMPORTED_MODULE_3__);
310
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
311
-
312
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
313
-
314
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
315
-
316
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
317
-
318
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
319
-
320
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
321
-
322
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
323
-
324
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
325
-
326
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
327
-
328
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
329
-
330
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
331
-
332
-
333
-
334
-
335
-
336
- var CropEventNames;
337
-
338
- (function (CropEventNames) {
339
- CropEventNames["ClickCrop"] = "click:crop";
340
- CropEventNames["CropImage"] = "crop:image";
341
- CropEventNames["ImageCropped"] = "image:cropped";
342
- })(CropEventNames || (CropEventNames = {}));
343
-
344
- var ImageCropperComponent = /*#__PURE__*/function (_Core$Component) {
345
- _inherits(ImageCropperComponent, _Core$Component);
346
-
347
- var _super = _createSuper(ImageCropperComponent);
348
-
349
- function ImageCropperComponent(options) {
350
- _classCallCheck(this, ImageCropperComponent);
351
-
352
- return _super.call(this, options);
353
- }
354
-
355
- _createClass(ImageCropperComponent, [{
356
- key: "initialize",
357
- value: function initialize() {
358
- this.listenTo(this.options.channelName, CropEventNames.CropImage, this.crop);
359
- }
360
- }, {
361
- key: "getMinCropBoxWidth",
362
- value: function getMinCropBoxWidth() {
363
- return this.options.minWidth * this.getViewportToImageRatio();
364
- }
365
- }, {
366
- key: "getMinCropBoxHeight",
367
- value: function getMinCropBoxHeight() {
368
- return this.options.minHeight * this.getViewportToImageRatio();
369
- }
370
- }, {
371
- key: "getViewportToImageRatio",
372
- value: function getViewportToImageRatio() {
373
- return this.options.getCropRegionWidth() / this.model.get('width');
374
- }
375
- }, {
376
- key: "crop",
377
- value: function crop() {
378
- var dataUrl = this.cropper.getCroppedCanvas().toDataURL(this.getImageMimeType());
379
- backbone__WEBPACK_IMPORTED_MODULE_0__["Radio"].channel(this.options.channelName).trigger(CropEventNames.ImageCropped, dataUrl);
380
- }
381
- }, {
382
- key: "getImageMimeType",
383
- value: function getImageMimeType() {
384
- var dataUrl = this.model.get('dataUrl');
385
- var mime = dataUrl.match(/data:([a-zA-Z0-9]+\/[a-zA-Z0-9-.+]+).*,.*/);
386
- if (!mime) return;
387
- return mime[1];
388
- }
389
- }, {
390
- key: "renderCropper",
391
- value: function renderCropper() {
392
- this.getMinCropBoxWidth();
393
- var image = this.getUI('image').get(0);
394
- this.cropper = new cropperjs__WEBPACK_IMPORTED_MODULE_2___default.a(image, {
395
- viewMode: 1,
396
- aspectRatio: this.options.minWidth / this.options.minHeight,
397
- minCropBoxWidth: this.getMinCropBoxWidth(),
398
- minCropBoxHeight: this.getMinCropBoxHeight(),
399
- autoCropArea: 1
400
- });
401
- }
402
- }, {
403
- key: "onRender",
404
- value: function onRender() {
405
- this.renderCropper();
406
- }
407
- }, {
408
- key: "onBeforeDestroy",
409
- value: function onBeforeDestroy() {
410
- this.cropper.destroy();
411
- }
412
- }, {
413
- key: "name",
414
- get: function get() {
415
- return 'ImageCropperComponent';
416
- }
417
- }, {
418
- key: "template",
419
- get: function get() {
420
- return _ImageCropper_hbs__WEBPACK_IMPORTED_MODULE_3___default.a;
421
- }
422
- }, {
423
- key: "className",
424
- get: function get() {
425
- return 'text-center';
426
- }
427
- }, {
428
- key: "elements",
429
- get: function get() {
430
- return {
431
- image: '.img'
432
- };
433
- }
434
- }]);
435
-
436
- return ImageCropperComponent;
437
- }(_libs_common_src_backbone__WEBPACK_IMPORTED_MODULE_1__["Core"].Component);
438
-
439
- /***/ })
440
-
441
- }]);
442
- //# sourceMappingURL=66.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/apps/library-editor/views/thumbnail-upload/ThumbnailUpload.hbs","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/apps/library-editor/views/thumbnail-upload/ThumbnailUploadView.ts","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/shared/components/image-cropper/ImageCropper.hbs","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/shared/components/image-cropper/ImageCropperComponent.ts"],"names":[],"mappings":";;;;;;;;;AAAA,iBAAiB,mBAAO,CAAC,8BAAY;AACrC,iEAAiE;AACjE;;AAEA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;;AAEA,8FAA8F,iGAAiG,yBAAyB,wFAAwF;AAChT,CAAC,gBAAgB,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZjB;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAMA;AAMO,IAAM,mBAAb;AAAA;;AAAA;;AAOE,+BAAY,OAAZ,EAA+C;AAAA;;AAAA,6BACvC,OADuC;AAE9C;;AATH;AAAA;AAAA,iCAWmB;AACf,WAAK,gBAAL,GAAwB,kGAAe,CAAC,WAAhB,CAA4B,8DAAY,CAAC,KAAzC,EAAgD,IAAhD,CAAxB;AACA,WAAK,sBAAL,GAA8B,kGAAe,CAAC,WAAhB,CAA4B,8DAAY,CAAC,WAAzC,EAAsD,IAAtD,CAA9B;AACA,WAAK,cAAL,GAAsB,kGAAe,CAAC,WAAhB,CAA4B,0DAAQ,CAAC,OAArC,EAA8C,IAA9C,CAAtB;AAEA,WAAK,SAAL,GAAiB,oGAAgB,CAAC,GAAjB,CAAqB,eAArB,CAAjB;AAEA,WAAK,aAAL;AACA,WAAK,WAAL;AACD;AApBH;AAAA;AAAA,8BA0DgB;AACZ,aAAO;AACL,eAAO,EAAE;AACP,YAAE,EAAE,iBADG;AAEP,wBAAc,EAAE;AAFT;AADJ,OAAP;AAMD;AAjEH;AAAA;AAAA,6BAmEe;AACX;;;;AAIG;AACH,aAAO;AACL,0BAAkB;AADb,OAAP;AAGD;AA5EH;AAAA;AAAA,oCA8EuB;AAAA;;AACnB,WAAK,QAAL,CAAc,KAAK,WAAnB,EAAgC,sGAAc,CAAC,YAA/C,EAA6D,KAAK,cAAlE;AAEA,WAAK,QAAL,CAAc,8DAAY,CAAC,KAA3B,YAAqC,8DAAY,CAAC,MAAlD,cAA4D,KAAK,OAAL,CAAa,OAAzE,YAAyF,KAAK,MAA9F;AACA,WAAK,QAAL,CAAc,8DAAY,CAAC,KAA3B,YAAqC,8DAAY,CAAC,sBAAlD,cAA4E,KAAK,OAAL,CAAa,OAAzF,YAAyG;AAAA,eAAM,KAAI,CAAC,aAAL,CAAmB,MAAnB,CAAN;AAAA,OAAzG;AACD;AAnFH;AAAA;AAAA,kCAqFqB;AACjB,UAAI,CAAC,KAAK,SAAL,CAAe,GAAf,CAAmB,SAAnB,CAAL,EACE,8DAAI,CAAC,WAAL,CAAiB,KAAjB,CAAuB,IAAI,kFAAJ,CAAa,oDAAb,CAAvB;AAEF,WAAK,OAAL,GAAe,IAAI,KAAJ,EAAf;AACA,WAAK,OAAL,CAAa,GAAb,GAAmB,KAAK,SAAL,CAAe,GAAf,CAAmB,SAAnB,CAAnB;AACA,WAAK,SAAL,CAAe,KAAf,CAAqB,SAArB;AACD;AA5FH;AAAA;AAAA,yCA8F4B;AACxB,aAAO,KAAK,GAAL,CAAS,IAAT,CAAc,aAAd,EAA6B,KAA7B,EAAP;AACD;AAhGH;AAAA;AAAA,kCAkGqB;AACjB,oDAAK,CAAC,OAAN,CAAc,KAAK,WAAnB,EAAgC,OAAhC,CAAwC,sGAAc,CAAC,SAAvD;AACA,oDAAK,CAAC,OAAN,CAAc,KAAK,WAAnB,EAAgC,OAAhC,CAAwC,4GAAmB,CAAC,WAA5D;AACD;AArGH;AAAA;AAAA,mCAuGyB,OAvGzB,EAuGwC;AAAA;;AACpC,WAAK,sBAAL,CAA4B,iBAA5B,CAA8C,OAA9C,EACE,wDAAS,CAAC,UADZ,EAEE,UAAC,IAAD;AAAA,eAAsB,MAAI,CAAC,eAAL,CAAqB,IAArB,CAAtB;AAAA,OAFF;AAID;AA5GH;AAAA;AAAA,oCA8G0B,KA9G1B,EA8G2C;AAAA;;AACvC,UAAM,QAAQ,GAAG,SAAX,QAAW;AAAA,eAAM,MAAI,CAAC,aAAL,CAAmB,MAAnB,CAAN;AAAA,OAAjB;;AACA,UAAM,kBAAkB,GAAG,KAAK,KAAL,CAAW,SAAX,IAAwB,KAAK,KAAL,CAAW,SAAX,CAAqB,EAAxE;AACA,WAAK,gBAAL,CAAsB,oBAAtB,CAA2C,KAAK,OAAL,CAAa,OAAxD,EAAiE,KAAjE,EAAwE,kBAAxE,EAA4F,QAA5F;AACD;AAlHH;AAAA;AAAA,oCAoHuB;AACnB,UAAM,KAAK,GAAG,IAAI,2DAAJ,CAAe;AAC3B,eAAO,EAAE,KAAK,OAAL,CAAa,GADK;AAE3B,aAAK,EAAE,KAAK,OAAL,CAAa,KAFO;AAG3B,cAAM,EAAE,KAAK,OAAL,CAAa;AAHM,OAAf,CAAd;AAMA,WAAK,aAAL,CAAmB,SAAnB,EAA8B,IAAI,6GAAJ,CAA0B;AACtD,aAAK,EAAL,KADsD;AAEtD,mBAAW,EAAE,KAAK,WAFoC;AAGtD,iBAAS,EAAE,wDAAS,CAAC,UAHiC;AAItD,gBAAQ,EAAE,oEAAkB,CAAC,wDAAS,CAAC,UAAX,CAAlB,CAAyC,KAJG;AAKtD,iBAAS,EAAE,oEAAkB,CAAC,wDAAS,CAAC,UAAX,CAAlB,CAAyC,MALE;AAMtD,0BAAkB,EAAE,gDAAO,KAAK,kBAAZ,EAAgC,IAAhC;AANkC,OAA1B,CAA9B;AAQD;AAnIH;AAAA;AAAA,qCAqIuB;AACnB,WAAK,KAAL,GAAa,KAAK,gBAAL,CAAsB,QAAtB,CAA+B,KAAK,OAAL,CAAa,OAA5C,CAAb;AACD;AAvIH;AAAA;AAAA,kCAyIoB;AAChB,aAAO;AACL,mBAAW,EAAE,CAAC,CAAC,KAAK,KADf;AAEL,iBAAS,EAAE,4DAAa,CAAC,UAAd,CAAyB;AAAE,cAAI,EAAE,0DAAW,CAAC,KAApB;AAA2B,sBAAY,EAAE;AAAzC,SAAzB;AAFN,OAAP;AAID;AA9IH;AAAA;AAAA,sCAgJwB;AACpB,UAAM,SAAS,GAAG,oGAAgB,CAAC,GAAjB,CAAiC,0BAAjC,CAAlB;AACA,UAAI,SAAS,CAAC,GAAV,CAAc,SAAd,CAAJ,EACE,KAAK,cAAL,CAAoB,IAApB;AACH;AApJH;AAAA;AAAA,wBAsBiB;AACb,aAAO,qBAAP;AACD;AAxBH;AAAA;AAAA,wBA0BkB;AACd,aAAO,kGAAe,CAAC,SAAhB,CAA0B,KAAK,IAA/B,EAAqC,OAArC,CAAP;AACD;AA5BH;AAAA;AAAA,wBA8BiB;AACb,aAAO,+BAAP;AACD;AAhCH;AAAA;AAAA,wBAkCqB;AACjB,aAAO,4DAAP;AACD;AApCH;AAAA;AAAA,wBAsCwB;AACpB,aAAO,iEAAkB,CAAC,yBAAnB,CAA6C,IAA7C,CAAP;AACD;AAxCH;AAAA;AAAA,wBA0CsB;AAAA;;AAClB,aAAO,CACL;AACE,qBAAa,EAAE,+DADjB;AAEE,aAAK,EAAE,kGAAe,CAAC,SAAhB,CAA0B,KAAK,IAA/B,EAAqC,eAArC,CAFT;AAGE,YAAI,EAAE,UAHR;AAKE,4BAAoB,EAAE;AACpB,qBAAW,EAAE,KAAK,WADE;AAEpB,oBAAU,EAAE,kGAAe,CAAC,SAAhB,CAA0B,KAAK,IAA/B,EAAqC,MAArC,CAFQ;AAGpB,iBAAO,EAAE;AAAA,mBAAM,MAAI,CAAC,WAAL,EAAN;AAAA;AAHW;AALxB,OADK,CAAP;AAaD;AAxDH;;AAAA;AAAA,EAAyC,8DAAI,CAAC,IAA9C,E;;;;;;;;;;;AC3BA,iBAAiB,mBAAO,CAAC,8BAAY;AACrC,iEAAiE;AACjE;;AAEA;AACA,yQAAyQ,GAAG,0BAA0B,aAAa;AACnT;AACA,CAAC,gBAAgB,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPjB;AACA;AACA;AAKA;AAEA,IAAY,cAAZ;;AAAA,WAAY,cAAZ,EAA0B;AACxB;AACA;AACA;AACD,CAJD,EAAY,cAAc,KAAd,cAAc,MAA1B;;AAcO,IAAM,qBAAb;AAAA;;AAAA;;AAIE,iCAAmB,OAAnB,EAAwD;AAAA;;AAAA,6BAChD,OADgD;AAEvD;;AANH;AAAA;AAAA,iCAQmB;AACf,WAAK,QAAL,CAAc,KAAK,OAAL,CAAa,WAA3B,EAAwC,cAAc,CAAC,SAAvD,EAAkE,KAAK,IAAvE;AACD;AAVH;AAAA;AAAA,yCA8B4B;AACxB,aAAO,KAAK,OAAL,CAAa,QAAb,GAAwB,KAAK,uBAAL,EAA/B;AACD;AAhCH;AAAA;AAAA,0CAkC6B;AACzB,aAAO,KAAK,OAAL,CAAa,SAAb,GAAyB,KAAK,uBAAL,EAAhC;AACD;AApCH;AAAA;AAAA,8CAsCiC;AAC7B,aAAO,KAAK,OAAL,CAAa,kBAAb,KAAoC,KAAK,KAAL,CAAW,GAAX,CAAe,OAAf,CAA3C;AACD;AAxCH;AAAA;AAAA,2BA0Cc;AACV,UAAM,OAAO,GAAG,KAAK,OAAL,CAAa,gBAAb,GAAgC,SAAhC,CAA0C,KAAK,gBAAL,EAA1C,CAAhB;AACA,oDAAK,CAAC,OAAN,CAAc,KAAK,OAAL,CAAa,WAA3B,EAAwC,OAAxC,CAAgD,cAAc,CAAC,YAA/D,EAA6E,OAA7E;AACD;AA7CH;AAAA;AAAA,uCA+C0B;AACtB,UAAM,OAAO,GAAG,KAAK,KAAL,CAAW,GAAX,CAAe,SAAf,CAAhB;AAEA,UAAM,IAAI,GAAG,OAAO,CAAC,KAAR,CAAc,2CAAd,CAAb;AAEA,UAAI,CAAC,IAAL,EAAW;AAEX,aAAO,IAAI,CAAC,CAAD,CAAX;AACD;AAvDH;AAAA;AAAA,oCAyDuB;AACnB,WAAK,kBAAL;AACA,UAAM,KAAK,GAAG,KAAK,KAAL,CAAW,OAAX,EAAoB,GAApB,CAAwB,CAAxB,CAAd;AAEA,WAAK,OAAL,GAAe,IAAI,gDAAJ,CAAY,KAAZ,EAAmB;AAChC,gBAAQ,EAAE,CADsB;AAEhC,mBAAW,EAAE,KAAK,OAAL,CAAa,QAAb,GAAwB,KAAK,OAAL,CAAa,SAFlB;AAGhC,uBAAe,EAAE,KAAK,kBAAL,EAHe;AAIhC,wBAAgB,EAAE,KAAK,mBAAL,EAJc;AAKhC,oBAAY,EAAE;AALkB,OAAnB,CAAf;AAOD;AApEH;AAAA;AAAA,+BAsEiB;AACb,WAAK,aAAL;AACD;AAxEH;AAAA;AAAA,sCA0EwB;AACpB,WAAK,OAAL,CAAa,OAAb;AACD;AA5EH;AAAA;AAAA,wBAYiB;AACb,aAAO,uBAAP;AACD;AAdH;AAAA;AAAA,wBAgBqB;AACjB,aAAO,wDAAP;AACD;AAlBH;AAAA;AAAA,wBAoBsB;AAClB,aAAO,aAAP;AACD;AAtBH;AAAA;AAAA,wBAwBqB;AACjB,aAAO;AACL,aAAK,EAAE;AADF,OAAP;AAGD;AA5BH;;AAAA;AAAA,EAA2C,8DAAI,CAAC,SAAhD,E","file":"scripts/66.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 ((stack1 = container.lambda(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.spinnerEl : stack1), depth0)) != null ? stack1 : \"\")\n + \"\\r\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n return \"<div class=\\\"cropper-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 ((stack1 = helpers.unless.call(depth0 != null ? depth0 : (container.nullContext || {}),((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.dataFetched : stack1),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.program(3, data, 0),\"data\":data})) != null ? stack1 : \"\");\n},\"useData\":true});","import * as _ from 'underscore';\r\nimport { ObjectHash, Radio } from 'backbone';\r\nimport { Core } from 'libs/common/core';\r\nimport { ViewModelService } from 'libs/common/backbone/services/ViewModelService';\r\nimport { DevError } from 'libs/common/backbone/errors/DevError';\r\nimport { InstanceManager } from 'libs/common/backbone/services/InstanceManager';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\n\r\nimport { PopupBehavior } from 'shared/behaviors';\r\nimport { DataServices, DataPrefixes, ImageMinDimensions, DataChannels, Services } from 'shared/constants';\r\nimport { SpinnerButtonEvents } from 'shared/components/spinner-button/SpinnerButtonComponent';\r\nimport { Image as ImageModel } from 'shared/models/Image';\r\nimport { Video } from 'shared/models/Video';\r\nimport { ImageType } from 'shared/enums';\r\nimport { SpinnerSize, SpinnerHelper, RadioChannelHelper } from 'shared/utils';\r\nimport { CropEventNames, ImageCropperComponent } from 'shared/components/image-cropper/ImageCropperComponent';\r\nimport { NavLockService } from 'shared/services/NavigationLockService';\r\n\r\nimport { VideoDataService } from 'apps/library-editor/services/VideoDataService';\r\nimport { ImageUploadDataService } from 'apps/upload/services';\r\n\r\nimport ThumbnailUploadTemplate from './ThumbnailUpload.hbs';\r\n\r\ninterface ThumbnailUploadViewOptions extends Core.ViewOptions<Video> {\r\n videoId: string;\r\n}\r\n\r\nexport class ThumbnailUploadView extends Core.View<Video> {\r\n public options: ThumbnailUploadViewOptions;\r\n private videoDataService: VideoDataService;\r\n private imageUploadDataService: ImageUploadDataService;\r\n private navLockService: NavLockService;\r\n private imageEl: HTMLImageElement;\r\n\r\n constructor(options: ThumbnailUploadViewOptions) {\r\n super(options);\r\n }\r\n\r\n public initialize(): void {\r\n this.videoDataService = InstanceManager.getInstance(DataServices.Video, this);\r\n this.imageUploadDataService = InstanceManager.getInstance(DataServices.ImageUpload, this);\r\n this.navLockService = InstanceManager.getInstance(Services.NavLock, this);\r\n\r\n this.viewModel = ViewModelService.get('image:storage');\r\n\r\n this.bindListeners();\r\n this.initImageEl();\r\n }\r\n\r\n public get name(): string {\r\n return 'ThumbnailUploadView';\r\n }\r\n\r\n public get title(): string {\r\n return LanguageService.getPhrase(this.lang, 'title');\r\n }\r\n\r\n public get lang(): string {\r\n return 'libraryEditor.thumbnailUpload';\r\n }\r\n\r\n public get template(): string {\r\n return ThumbnailUploadTemplate;\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: PopupBehavior,\r\n title: LanguageService.getPhrase(this.lang, 'resizeAndCrop'),\r\n size: 'modal-lg',\r\n\r\n spinnerButtonOptions: {\r\n channelName: this.channelName,\r\n buttonText: LanguageService.getPhrase(this.lang, 'crop'),\r\n onClick: () => this.onClickCrop()\r\n }\r\n }\r\n ];\r\n }\r\n\r\n public regions(): ObjectHash {\r\n return {\r\n cropper: {\r\n el: '.cropper-region',\r\n replaceElement: true\r\n }\r\n };\r\n }\r\n\r\n public events(): ObjectHash {\r\n /**\r\n * When rendering cropper into a modal,\r\n * it must be initialized after the modal\r\n * has be shown completely.\r\n */\r\n return {\r\n 'shown.bs.modal': 'renderCropper',\r\n };\r\n }\r\n\r\n private bindListeners(): void {\r\n this.listenTo(this.channelName, CropEventNames.ImageCropped, this.onImageCropped);\r\n\r\n this.listenTo(DataChannels.VIDEO, `${DataPrefixes.VIDEOS}:${this.options.videoId}:sync`, this.render);\r\n this.listenTo(DataChannels.VIDEO, `${DataPrefixes.UPDATE_VIDEO_THUMBNAIL}:${this.options.videoId}:sync`, () => this.triggerMethod('hide'));\r\n }\r\n\r\n private initImageEl(): void {\r\n if (!this.viewModel.get('dataUrl'))\r\n Core.ErrorHelper.throw(new DevError('DataUrl must be set on the image:storage ViewModel'));\r\n\r\n this.imageEl = new Image();\r\n this.imageEl.src = this.viewModel.get('dataUrl');\r\n this.viewModel.unset('dataUrl');\r\n }\r\n\r\n private getCropRegionWidth(): number {\r\n return this.$el.find('.modal-body').width();\r\n }\r\n\r\n private onClickCrop(): void {\r\n Radio.channel(this.channelName).trigger(CropEventNames.CropImage);\r\n Radio.channel(this.channelName).trigger(SpinnerButtonEvents.ShowSpinner);\r\n }\r\n\r\n private onImageCropped(dataUrl: string): void {\r\n this.imageUploadDataService.uploadBase64Image(dataUrl,\r\n ImageType.Thumbnails,\r\n (data: ImageModel) => this.onImageUploaded(data)\r\n );\r\n }\r\n\r\n private onImageUploaded(image: ImageModel): void {\r\n const callback = () => this.triggerMethod('hide');\r\n const currentThumbnailId = this.model.thumbnail && this.model.thumbnail.id;\r\n this.videoDataService.addOrUpdateThumbnail(this.options.videoId, image, currentThumbnailId, callback);\r\n }\r\n\r\n private renderCropper(): void {\r\n const model = new ImageModel({\r\n dataUrl: this.imageEl.src,\r\n width: this.imageEl.width,\r\n height: this.imageEl.height\r\n });\r\n\r\n this.showChildView('cropper', new ImageCropperComponent({\r\n model,\r\n channelName: this.channelName,\r\n imageType: ImageType.Thumbnails,\r\n minWidth: ImageMinDimensions[ImageType.Thumbnails].width,\r\n minHeight: ImageMinDimensions[ImageType.Thumbnails].height,\r\n getCropRegionWidth: _.bind(this.getCropRegionWidth, this)\r\n }));\r\n }\r\n\r\n public onBeforeRender(): void {\r\n this.model = this.videoDataService.getVideo(this.options.videoId);\r\n }\r\n\r\n public viewOptions(): ObjectHash {\r\n return {\r\n dataFetched: !!this.model,\r\n spinnerEl: SpinnerHelper.getSpinner({ size: SpinnerSize.Large, extraClasses: 'mx-auto' })\r\n };\r\n }\r\n\r\n public onBeforeDestroy(): void {\r\n const viewModel = ViewModelService.get<Core.Model>('upload:thumbnail:options');\r\n if (viewModel.get('lockNav'))\r\n this.navLockService.lock();\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 helper, alias1=container.propertyIsEnumerable;\n\n return \"<img src=\\\"\"\n + container.escapeExpression(((helper = (helper = helpers.dataUrl || (depth0 != null ? depth0.dataUrl : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"dataUrl\",\"hash\":{},\"data\":data}) : helper)))\n + \"\\\" class=\\\"img img-fluid\\\" />\";\n},\"useData\":true});","import { ObjectHash, Radio } from 'backbone';\r\nimport { Core } from 'libs/common/core';\r\nimport Cropper from 'cropperjs';\r\n\r\nimport { Image } from 'shared/models/Image';\r\nimport { ImageType } from 'shared/enums';\r\n\r\nimport ImageCropperTemplate from './ImageCropper.hbs';\r\n\r\nexport enum CropEventNames {\r\n ClickCrop = 'click:crop',\r\n CropImage = 'crop:image',\r\n ImageCropped = 'image:cropped'\r\n}\r\n\r\nexport interface ImageCropperComponentOptions extends Core.ComponentOptions {\r\n channelName: string;\r\n imageType: ImageType;\r\n minHeight: number;\r\n minWidth: number;\r\n getCropRegionWidth: (...args: any) => any;\r\n}\r\n\r\nexport class ImageCropperComponent extends Core.Component<Image> {\r\n public options: ImageCropperComponentOptions;\r\n private cropper: Cropper;\r\n\r\n public constructor(options: ImageCropperComponentOptions) {\r\n super(options);\r\n }\r\n\r\n public initialize(): void {\r\n this.listenTo(this.options.channelName, CropEventNames.CropImage, this.crop);\r\n }\r\n\r\n public get name(): string {\r\n return 'ImageCropperComponent';\r\n }\r\n\r\n public get template(): string {\r\n return ImageCropperTemplate;\r\n }\r\n\r\n public get className(): string {\r\n return 'text-center';\r\n }\r\n\r\n public get elements(): ObjectHash {\r\n return {\r\n image: '.img',\r\n };\r\n }\r\n\r\n private getMinCropBoxWidth(): number {\r\n return this.options.minWidth * this.getViewportToImageRatio();\r\n }\r\n\r\n private getMinCropBoxHeight(): number {\r\n return this.options.minHeight * this.getViewportToImageRatio();\r\n }\r\n\r\n private getViewportToImageRatio(): number {\r\n return this.options.getCropRegionWidth() / this.model.get('width');\r\n }\r\n\r\n private crop(): void {\r\n const dataUrl = this.cropper.getCroppedCanvas().toDataURL(this.getImageMimeType());\r\n Radio.channel(this.options.channelName).trigger(CropEventNames.ImageCropped, dataUrl);\r\n }\r\n\r\n private getImageMimeType(): string {\r\n const dataUrl = this.model.get('dataUrl');\r\n\r\n const mime = dataUrl.match(/data:([a-zA-Z0-9]+\\/[a-zA-Z0-9-.+]+).*,.*/);\r\n\r\n if (!mime) return;\r\n\r\n return mime[1];\r\n }\r\n\r\n private renderCropper(): void {\r\n this.getMinCropBoxWidth();\r\n const image = this.getUI('image').get(0) as HTMLImageElement;\r\n\r\n this.cropper = new Cropper(image, {\r\n viewMode: 1,\r\n aspectRatio: this.options.minWidth / this.options.minHeight,\r\n minCropBoxWidth: this.getMinCropBoxWidth(),\r\n minCropBoxHeight: this.getMinCropBoxHeight(),\r\n autoCropArea: 1\r\n });\r\n }\r\n\r\n public onRender(): void {\r\n this.renderCropper();\r\n }\r\n\r\n public onBeforeDestroy(): void {\r\n this.cropper.destroy();\r\n }\r\n}"],"sourceRoot":""}