@clickview/library-editor 1.1.21-rc.1 → 1.1.21-rc.2

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 (350) hide show
  1. package/dist/scripts/{bundle-59190acd1d.min.js → bundle-d9f54fa2e3.min.js} +1 -1
  2. package/dist/scripts/bundles.json +1 -1
  3. package/package.json +1 -1
  4. package/dist/css/1.chunk.css.map +0 -1
  5. package/dist/css/10.chunk.css.map +0 -1
  6. package/dist/css/11.chunk.css +0 -137
  7. package/dist/css/11.chunk.css.map +0 -1
  8. package/dist/css/12.chunk.css.map +0 -1
  9. package/dist/css/13.chunk.css.map +0 -1
  10. package/dist/css/14.chunk.css.map +0 -1
  11. package/dist/css/16.chunk.css.map +0 -1
  12. package/dist/css/17.chunk.css.map +0 -1
  13. package/dist/css/18.chunk.css +0 -20
  14. package/dist/css/18.chunk.css.map +0 -1
  15. package/dist/css/2.chunk.css +0 -145
  16. package/dist/css/2.chunk.css.map +0 -1
  17. package/dist/css/21.chunk.css.map +0 -1
  18. package/dist/css/22.chunk.css.map +0 -1
  19. package/dist/css/23.chunk.css.map +0 -1
  20. package/dist/css/25.chunk.css.map +0 -1
  21. package/dist/css/26.chunk.css.map +0 -1
  22. package/dist/css/28.chunk.css.map +0 -1
  23. package/dist/css/29.chunk.css.map +0 -1
  24. package/dist/css/3.chunk.css.map +0 -1
  25. package/dist/css/30.chunk.css.map +0 -1
  26. package/dist/css/31.chunk.css.map +0 -1
  27. package/dist/css/32.chunk.css.map +0 -1
  28. package/dist/css/33.chunk.css +0 -4
  29. package/dist/css/33.chunk.css.map +0 -1
  30. package/dist/css/34.chunk.css +0 -21
  31. package/dist/css/34.chunk.css.map +0 -1
  32. package/dist/css/35.chunk.css +0 -20
  33. package/dist/css/35.chunk.css.map +0 -1
  34. package/dist/css/36.chunk.css.map +0 -1
  35. package/dist/css/37.chunk.css.map +0 -1
  36. package/dist/css/38.chunk.css.map +0 -1
  37. package/dist/css/40.chunk.css.map +0 -1
  38. package/dist/css/41.chunk.css.map +0 -1
  39. package/dist/css/42.chunk.css.map +0 -1
  40. package/dist/css/43.chunk.css.map +0 -1
  41. package/dist/css/44.chunk.css.map +0 -1
  42. package/dist/css/45.chunk.css.map +0 -1
  43. package/dist/css/46.chunk.css.map +0 -1
  44. package/dist/css/47.chunk.css.map +0 -1
  45. package/dist/css/48.chunk.css +0 -2
  46. package/dist/css/48.chunk.css.map +0 -1
  47. package/dist/css/49.chunk.css.map +0 -1
  48. package/dist/css/50.chunk.css.map +0 -1
  49. package/dist/css/51.chunk.css +0 -2
  50. package/dist/css/51.chunk.css.map +0 -1
  51. package/dist/css/52.chunk.css +0 -66
  52. package/dist/css/52.chunk.css.map +0 -1
  53. package/dist/css/55.chunk.css.map +0 -1
  54. package/dist/css/56.chunk.css.map +0 -1
  55. package/dist/css/58.chunk.css.map +0 -1
  56. package/dist/css/59.chunk.css +0 -2
  57. package/dist/css/59.chunk.css.map +0 -1
  58. package/dist/css/6.chunk.css.map +0 -1
  59. package/dist/css/60.chunk.css.map +0 -1
  60. package/dist/css/62.chunk.css +0 -2
  61. package/dist/css/62.chunk.css.map +0 -1
  62. package/dist/css/63.chunk.css +0 -170
  63. package/dist/css/63.chunk.css.map +0 -1
  64. package/dist/css/67.chunk.css +0 -78
  65. package/dist/css/67.chunk.css.map +0 -1
  66. package/dist/css/68.chunk.css +0 -17
  67. package/dist/css/68.chunk.css.map +0 -1
  68. package/dist/css/69.chunk.css +0 -17
  69. package/dist/css/69.chunk.css.map +0 -1
  70. package/dist/css/7.chunk.css.map +0 -1
  71. package/dist/css/70.chunk.css +0 -23
  72. package/dist/css/70.chunk.css.map +0 -1
  73. package/dist/css/71.chunk.css +0 -40
  74. package/dist/css/71.chunk.css.map +0 -1
  75. package/dist/css/72.chunk.css +0 -16
  76. package/dist/css/72.chunk.css.map +0 -1
  77. package/dist/css/73.chunk.css +0 -37
  78. package/dist/css/73.chunk.css.map +0 -1
  79. package/dist/css/74.chunk.css +0 -29
  80. package/dist/css/74.chunk.css.map +0 -1
  81. package/dist/css/75.chunk.css +0 -6
  82. package/dist/css/75.chunk.css.map +0 -1
  83. package/dist/css/76.chunk.css +0 -6
  84. package/dist/css/76.chunk.css.map +0 -1
  85. package/dist/css/8.chunk.css.map +0 -1
  86. package/dist/css/library-editor-app.css.map +0 -1
  87. package/dist/projects/library-editor/src/polyfills.d.ts +0 -2
  88. package/dist/scripts/0-ca679202dc.chunk.js +0 -1
  89. package/dist/scripts/0.chunk.js +0 -1034
  90. package/dist/scripts/0.chunk.js.map +0 -1
  91. package/dist/scripts/1-e99f6a4b40.chunk.js +0 -1
  92. package/dist/scripts/1.chunk.js +0 -442
  93. package/dist/scripts/1.chunk.js.map +0 -1
  94. package/dist/scripts/10-db266215e5.chunk.js +0 -1
  95. package/dist/scripts/10.chunk.js +0 -820
  96. package/dist/scripts/10.chunk.js.map +0 -1
  97. package/dist/scripts/11-51ab13cf04.chunk.js +0 -11
  98. package/dist/scripts/11.chunk.js +0 -4091
  99. package/dist/scripts/11.chunk.js.map +0 -1
  100. package/dist/scripts/12-a8ad430f3a.chunk.js +0 -1
  101. package/dist/scripts/12.chunk.js +0 -555
  102. package/dist/scripts/12.chunk.js.map +0 -1
  103. package/dist/scripts/13-107ba2526f.chunk.js +0 -1
  104. package/dist/scripts/13.chunk.js +0 -373
  105. package/dist/scripts/13.chunk.js.map +0 -1
  106. package/dist/scripts/14-d19ac2872e.chunk.js +0 -1
  107. package/dist/scripts/14.chunk.js +0 -2386
  108. package/dist/scripts/14.chunk.js.map +0 -1
  109. package/dist/scripts/15-979015a718.chunk.js +0 -1
  110. package/dist/scripts/15.chunk.js +0 -314
  111. package/dist/scripts/15.chunk.js.map +0 -1
  112. package/dist/scripts/16-2a8bfb08cb.chunk.js +0 -1
  113. package/dist/scripts/16.chunk.js +0 -1290
  114. package/dist/scripts/16.chunk.js.map +0 -1
  115. package/dist/scripts/17-b7d5d41f7e.chunk.js +0 -1
  116. package/dist/scripts/17.chunk.js +0 -381
  117. package/dist/scripts/17.chunk.js.map +0 -1
  118. package/dist/scripts/18.chunk.js +0 -393
  119. package/dist/scripts/18.chunk.js.map +0 -1
  120. package/dist/scripts/19.chunk.js +0 -364
  121. package/dist/scripts/19.chunk.js.map +0 -1
  122. package/dist/scripts/2-4e0702e404.chunk.js +0 -1
  123. package/dist/scripts/2.chunk.js +0 -519
  124. package/dist/scripts/2.chunk.js.map +0 -1
  125. package/dist/scripts/20-3c3507043d.chunk.js +0 -1
  126. package/dist/scripts/20.chunk.js +0 -317
  127. package/dist/scripts/20.chunk.js.map +0 -1
  128. package/dist/scripts/21-e1b652cbbd.chunk.js +0 -1
  129. package/dist/scripts/21.chunk.js +0 -531
  130. package/dist/scripts/21.chunk.js.map +0 -1
  131. package/dist/scripts/22-6ff4c8acc9.chunk.js +0 -1
  132. package/dist/scripts/22.chunk.js +0 -354
  133. package/dist/scripts/22.chunk.js.map +0 -1
  134. package/dist/scripts/23-84f6d42051.chunk.js +0 -1
  135. package/dist/scripts/23.chunk.js +0 -604
  136. package/dist/scripts/23.chunk.js.map +0 -1
  137. package/dist/scripts/24-71d0e5af84.chunk.js +0 -1
  138. package/dist/scripts/24.chunk.js +0 -318
  139. package/dist/scripts/24.chunk.js.map +0 -1
  140. package/dist/scripts/25-63e55b94d1.chunk.js +0 -1
  141. package/dist/scripts/25.chunk.js +0 -365
  142. package/dist/scripts/25.chunk.js.map +0 -1
  143. package/dist/scripts/26-03148e2beb.chunk.js +0 -1
  144. package/dist/scripts/26.chunk.js +0 -442
  145. package/dist/scripts/26.chunk.js.map +0 -1
  146. package/dist/scripts/27-4c1566e168.chunk.js +0 -1
  147. package/dist/scripts/27.chunk.js +0 -3565
  148. package/dist/scripts/27.chunk.js.map +0 -1
  149. package/dist/scripts/28-8b6147f186.chunk.js +0 -1
  150. package/dist/scripts/28.chunk.js +0 -3173
  151. package/dist/scripts/28.chunk.js.map +0 -1
  152. package/dist/scripts/29-ab744bc76f.chunk.js +0 -1
  153. package/dist/scripts/29.chunk.js +0 -3088
  154. package/dist/scripts/29.chunk.js.map +0 -1
  155. package/dist/scripts/3-948dad23b7.chunk.js +0 -1
  156. package/dist/scripts/3.chunk.js +0 -833
  157. package/dist/scripts/3.chunk.js.map +0 -1
  158. package/dist/scripts/30-ca11897c8c.chunk.js +0 -1
  159. package/dist/scripts/30.chunk.js +0 -1852
  160. package/dist/scripts/30.chunk.js.map +0 -1
  161. package/dist/scripts/31-c52013832c.chunk.js +0 -1
  162. package/dist/scripts/31.chunk.js +0 -958
  163. package/dist/scripts/31.chunk.js.map +0 -1
  164. package/dist/scripts/32-800ff7a3d2.chunk.js +0 -1
  165. package/dist/scripts/32.chunk.js +0 -1235
  166. package/dist/scripts/32.chunk.js.map +0 -1
  167. package/dist/scripts/33-a78c3eebd5.chunk.js +0 -1
  168. package/dist/scripts/33.chunk.js +0 -792
  169. package/dist/scripts/33.chunk.js.map +0 -1
  170. package/dist/scripts/34-3c4c65d69b.chunk.js +0 -1
  171. package/dist/scripts/34.chunk.js +0 -990
  172. package/dist/scripts/34.chunk.js.map +0 -1
  173. package/dist/scripts/35-8f001c740f.chunk.js +0 -1
  174. package/dist/scripts/35.chunk.js +0 -518
  175. package/dist/scripts/35.chunk.js.map +0 -1
  176. package/dist/scripts/36-3aeb2db7b1.chunk.js +0 -1
  177. package/dist/scripts/36.chunk.js +0 -335
  178. package/dist/scripts/36.chunk.js.map +0 -1
  179. package/dist/scripts/37-f837b37da6.chunk.js +0 -1
  180. package/dist/scripts/37.chunk.js +0 -236
  181. package/dist/scripts/37.chunk.js.map +0 -1
  182. package/dist/scripts/38-96a70abc7e.chunk.js +0 -1
  183. package/dist/scripts/38.chunk.js +0 -315
  184. package/dist/scripts/38.chunk.js.map +0 -1
  185. package/dist/scripts/39-2c91ed5792.chunk.js +0 -1
  186. package/dist/scripts/39.chunk.js +0 -116
  187. package/dist/scripts/39.chunk.js.map +0 -1
  188. package/dist/scripts/4-47a1458dff.chunk.js +0 -1
  189. package/dist/scripts/4.chunk.js +0 -335
  190. package/dist/scripts/4.chunk.js.map +0 -1
  191. package/dist/scripts/40-f3651a4572.chunk.js +0 -1
  192. package/dist/scripts/40.chunk.js +0 -1782
  193. package/dist/scripts/40.chunk.js.map +0 -1
  194. package/dist/scripts/41-908d353ede.chunk.js +0 -1
  195. package/dist/scripts/41.chunk.js +0 -2347
  196. package/dist/scripts/41.chunk.js.map +0 -1
  197. package/dist/scripts/42-7de5d85207.chunk.js +0 -1
  198. package/dist/scripts/42.chunk.js +0 -2116
  199. package/dist/scripts/42.chunk.js.map +0 -1
  200. package/dist/scripts/43-f1361f956d.chunk.js +0 -1
  201. package/dist/scripts/43.chunk.js +0 -2243
  202. package/dist/scripts/43.chunk.js.map +0 -1
  203. package/dist/scripts/44-50769e406b.chunk.js +0 -1
  204. package/dist/scripts/44.chunk.js +0 -1024
  205. package/dist/scripts/44.chunk.js.map +0 -1
  206. package/dist/scripts/45-9a434a5bd6.chunk.js +0 -1
  207. package/dist/scripts/45.chunk.js +0 -1065
  208. package/dist/scripts/45.chunk.js.map +0 -1
  209. package/dist/scripts/46-a9ca193eb7.chunk.js +0 -1
  210. package/dist/scripts/46.chunk.js +0 -656
  211. package/dist/scripts/46.chunk.js.map +0 -1
  212. package/dist/scripts/47-a919e008e6.chunk.js +0 -1
  213. package/dist/scripts/47.chunk.js +0 -735
  214. package/dist/scripts/47.chunk.js.map +0 -1
  215. package/dist/scripts/48-8b8ad444c6.chunk.js +0 -1
  216. package/dist/scripts/48.chunk.js +0 -994
  217. package/dist/scripts/48.chunk.js.map +0 -1
  218. package/dist/scripts/49-1060332c94.chunk.js +0 -1
  219. package/dist/scripts/49.chunk.js +0 -759
  220. package/dist/scripts/49.chunk.js.map +0 -1
  221. package/dist/scripts/5-cbac37484e.chunk.js +0 -1
  222. package/dist/scripts/5.chunk.js +0 -15
  223. package/dist/scripts/5.chunk.js.map +0 -1
  224. package/dist/scripts/50-421fc85bef.chunk.js +0 -1
  225. package/dist/scripts/50.chunk.js +0 -528
  226. package/dist/scripts/50.chunk.js.map +0 -1
  227. package/dist/scripts/51-7677f7ff70.chunk.js +0 -1
  228. package/dist/scripts/51.chunk.js +0 -932
  229. package/dist/scripts/51.chunk.js.map +0 -1
  230. package/dist/scripts/52-d4c61c1996.chunk.js +0 -1
  231. package/dist/scripts/52.chunk.js +0 -408
  232. package/dist/scripts/52.chunk.js.map +0 -1
  233. package/dist/scripts/53-8ae575251b.chunk.js +0 -1
  234. package/dist/scripts/53.chunk.js +0 -754
  235. package/dist/scripts/53.chunk.js.map +0 -1
  236. package/dist/scripts/54-6068a4d6c5.chunk.js +0 -1
  237. package/dist/scripts/54.chunk.js +0 -681
  238. package/dist/scripts/54.chunk.js.map +0 -1
  239. package/dist/scripts/55-989847d37e.chunk.js +0 -1
  240. package/dist/scripts/55.chunk.js +0 -645
  241. package/dist/scripts/55.chunk.js.map +0 -1
  242. package/dist/scripts/56-1215f5b596.chunk.js +0 -1
  243. package/dist/scripts/56.chunk.js +0 -346
  244. package/dist/scripts/56.chunk.js.map +0 -1
  245. package/dist/scripts/57-862310acde.chunk.js +0 -1
  246. package/dist/scripts/57.chunk.js +0 -422
  247. package/dist/scripts/57.chunk.js.map +0 -1
  248. package/dist/scripts/58-15786678f5.chunk.js +0 -1
  249. package/dist/scripts/58.chunk.js +0 -437
  250. package/dist/scripts/58.chunk.js.map +0 -1
  251. package/dist/scripts/59-0eaa35b612.chunk.js +0 -1
  252. package/dist/scripts/59.chunk.js +0 -342
  253. package/dist/scripts/59.chunk.js.map +0 -1
  254. package/dist/scripts/6-c9648df42d.chunk.js +0 -1
  255. package/dist/scripts/6.chunk.js +0 -484
  256. package/dist/scripts/6.chunk.js.map +0 -1
  257. package/dist/scripts/60-fd82862934.chunk.js +0 -1
  258. package/dist/scripts/60.chunk.js +0 -254
  259. package/dist/scripts/60.chunk.js.map +0 -1
  260. package/dist/scripts/61-51fca2bf0e.chunk.js +0 -1
  261. package/dist/scripts/61.chunk.js +0 -409
  262. package/dist/scripts/61.chunk.js.map +0 -1
  263. package/dist/scripts/62-2a372f4810.chunk.js +0 -1
  264. package/dist/scripts/62.chunk.js +0 -142
  265. package/dist/scripts/62.chunk.js.map +0 -1
  266. package/dist/scripts/63-3efa945b24.chunk.js +0 -1
  267. package/dist/scripts/63.chunk.js +0 -147
  268. package/dist/scripts/63.chunk.js.map +0 -1
  269. package/dist/scripts/64-eafdec6ee2.chunk.js +0 -1
  270. package/dist/scripts/64.chunk.js +0 -439
  271. package/dist/scripts/64.chunk.js.map +0 -1
  272. package/dist/scripts/65-7de035024e.chunk.js +0 -1
  273. package/dist/scripts/65.chunk.js +0 -582
  274. package/dist/scripts/65.chunk.js.map +0 -1
  275. package/dist/scripts/66-b42ac9bb08.chunk.js +0 -1
  276. package/dist/scripts/66.chunk.js +0 -442
  277. package/dist/scripts/66.chunk.js.map +0 -1
  278. package/dist/scripts/67-07f4863ec4.chunk.js +0 -1
  279. package/dist/scripts/67.chunk.js +0 -295
  280. package/dist/scripts/67.chunk.js.map +0 -1
  281. package/dist/scripts/68-6c49662638.chunk.js +0 -1
  282. package/dist/scripts/68.chunk.js +0 -165
  283. package/dist/scripts/68.chunk.js.map +0 -1
  284. package/dist/scripts/69-30f7b9bd2b.chunk.js +0 -1
  285. package/dist/scripts/69.chunk.js +0 -248
  286. package/dist/scripts/69.chunk.js.map +0 -1
  287. package/dist/scripts/7-06de2dc87e.chunk.js +0 -1
  288. package/dist/scripts/7.chunk.js +0 -309
  289. package/dist/scripts/7.chunk.js.map +0 -1
  290. package/dist/scripts/70-9a7afc7f7c.chunk.js +0 -1
  291. package/dist/scripts/70.chunk.js +0 -207
  292. package/dist/scripts/70.chunk.js.map +0 -1
  293. package/dist/scripts/71-8b092d42ed.chunk.js +0 -1
  294. package/dist/scripts/71.chunk.js +0 -237
  295. package/dist/scripts/71.chunk.js.map +0 -1
  296. package/dist/scripts/72-f1b9669186.chunk.js +0 -1
  297. package/dist/scripts/72.chunk.js +0 -331
  298. package/dist/scripts/72.chunk.js.map +0 -1
  299. package/dist/scripts/73.chunk.js +0 -404
  300. package/dist/scripts/73.chunk.js.map +0 -1
  301. package/dist/scripts/74.chunk.js +0 -301
  302. package/dist/scripts/74.chunk.js.map +0 -1
  303. package/dist/scripts/75.chunk.js +0 -231
  304. package/dist/scripts/75.chunk.js.map +0 -1
  305. package/dist/scripts/76.chunk.js +0 -157
  306. package/dist/scripts/76.chunk.js.map +0 -1
  307. package/dist/scripts/77.chunk.js +0 -307
  308. package/dist/scripts/77.chunk.js.map +0 -1
  309. package/dist/scripts/78.chunk.js +0 -249
  310. package/dist/scripts/78.chunk.js.map +0 -1
  311. package/dist/scripts/79.chunk.js +0 -282
  312. package/dist/scripts/79.chunk.js.map +0 -1
  313. package/dist/scripts/8-7a1c9219fe.chunk.js +0 -1
  314. package/dist/scripts/8.chunk.js +0 -307
  315. package/dist/scripts/8.chunk.js.map +0 -1
  316. package/dist/scripts/80.chunk.js +0 -308
  317. package/dist/scripts/80.chunk.js.map +0 -1
  318. package/dist/scripts/81.chunk.js +0 -366
  319. package/dist/scripts/81.chunk.js.map +0 -1
  320. package/dist/scripts/82.chunk.js +0 -314
  321. package/dist/scripts/82.chunk.js.map +0 -1
  322. package/dist/scripts/83.chunk.js +0 -328
  323. package/dist/scripts/83.chunk.js.map +0 -1
  324. package/dist/scripts/84.chunk.js +0 -313
  325. package/dist/scripts/84.chunk.js.map +0 -1
  326. package/dist/scripts/85.chunk.js +0 -291
  327. package/dist/scripts/85.chunk.js.map +0 -1
  328. package/dist/scripts/86.chunk.js +0 -119
  329. package/dist/scripts/86.chunk.js.map +0 -1
  330. package/dist/scripts/87.chunk.js +0 -219
  331. package/dist/scripts/87.chunk.js.map +0 -1
  332. package/dist/scripts/88.chunk.js +0 -194
  333. package/dist/scripts/88.chunk.js.map +0 -1
  334. package/dist/scripts/89.chunk.js +0 -522
  335. package/dist/scripts/89.chunk.js.map +0 -1
  336. package/dist/scripts/9-5bc6861938.chunk.js +0 -1
  337. package/dist/scripts/9.chunk.js +0 -222
  338. package/dist/scripts/9.chunk.js.map +0 -1
  339. package/dist/scripts/90.chunk.js +0 -337
  340. package/dist/scripts/90.chunk.js.map +0 -1
  341. package/dist/scripts/91.chunk.js +0 -131
  342. package/dist/scripts/91.chunk.js.map +0 -1
  343. package/dist/scripts/92.chunk.js +0 -266
  344. package/dist/scripts/92.chunk.js.map +0 -1
  345. package/dist/scripts/bundle-d83d171bc0.min.js +0 -1
  346. package/dist/scripts/bundle.js +0 -60670
  347. package/dist/scripts/bundle.js.map +0 -1
  348. package/dist/scripts/polyfills-cf8a15183c.min.js +0 -1
  349. package/dist/scripts/polyfills.js +0 -14844
  350. 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/components/chapter-form/ChapterForm.hbs","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/apps/library-editor/components/chapter-form/ChapterFormComponent.ts","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/apps/library-editor/components/chapter-list/ChapterComponentCollection.ts","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/apps/library-editor/components/chapter-list/ChapterItem.hbs","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/apps/library-editor/components/chapter-list/ChapterItemComponent.ts","webpack://@clickview/library-editor/./src/apps/library-editor/components/chapter-list/chapter-item.scss?9c71","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/apps/library-editor/components/chapters/Chapters.hbs","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/apps/library-editor/components/chapters/ChaptersComponent.ts"],"names":[],"mappings":"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","file":"scripts/34.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, alias2=container.lambda, alias3=container.escapeExpression, alias4=depth0 != null ? depth0 : (container.nullContext || {}), alias5=container.hooks.helperMissing;\n\n return \" <div class=\\\"col-6 form-group\\\">\\r\\n <label class=\\\"d-block\\\" for=\\\"\"\n + alias3(alias2(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.timeId : stack1), depth0))\n + \"\\\">\"\n + alias3((helpers.lang||(depth0 && depth0.lang)||alias5).call(alias4,\"startTimeLabel\",{\"name\":\"lang\",\"hash\":{},\"data\":data}))\n + \"</label>\\r\\n <input\\r\\n class=\\\"form-control d-inline-block col-3 time-input hour-input\\\"\\r\\n type=\\\"number\\\"\\r\\n placeholder=\\\"\"\n + alias3((helpers.lang||(depth0 && depth0.lang)||alias5).call(alias4,\"hoursPlaceholder\",{\"name\":\"lang\",\"hash\":{},\"data\":data}))\n + \"\\\"\\r\\n name=\\\"hours\\\"\\r\\n autocomplete=\\\"off\\\"\\r\\n \"\n + ((stack1 = helpers[\"if\"].call(alias4,((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.hrDisabled : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"> <b>:</b>\\r\\n <input\\r\\n class=\\\"form-control d-inline-block col-3 time-input minute-input\\\"\\r\\n type=\\\"number\\\"\\r\\n placeholder=\\\"\"\n + alias3((helpers.lang||(depth0 && depth0.lang)||alias5).call(alias4,\"minutesPlaceholder\",{\"name\":\"lang\",\"hash\":{},\"data\":data}))\n + \"\\\"\\r\\n name=\\\"minutes\\\"\\r\\n autocomplete=\\\"off\\\"\\r\\n \"\n + ((stack1 = helpers[\"if\"].call(alias4,((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.minDisabled : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"> <b>:</b>\\r\\n <input\\r\\n class=\\\"form-control d-inline-block col-3 time-input second-input\\\"\\r\\n type=\\\"number\\\"\\r\\n placeholder=\\\"\"\n + alias3((helpers.lang||(depth0 && depth0.lang)||alias5).call(alias4,\"secondsPlaceholder\",{\"name\":\"lang\",\"hash\":{},\"data\":data}))\n + \"\\\"\\r\\n name=\\\"seconds\\\"\\r\\n id=\\\"\"\n + alias3(alias2(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.timeId : stack1), depth0))\n + \"\\\"\\r\\n autocomplete=\\\"off\\\"\\r\\n \"\n + ((stack1 = helpers[\"if\"].call(alias4,((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.secDisabled : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \">\\r\\n <div class=\\\"form-feedback\\\"></div>\\r\\n </div>\\r\\n\";\n},\"2\":function(container,depth0,helpers,partials,data) {\n return \"disabled\";\n},\"4\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.propertyIsEnumerable;\n\n return \" <button type=\\\"submit\\\" class=\\\"btn btn-primary btn-sm ml-2\\\">\\r\\n <span class=\\\"d-inline-block align-middle svg-container\\\">\"\n + ((stack1 = container.lambda(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.plusSvg : stack1), depth0)) != null ? stack1 : \"\")\n + \"</span>\\r\\n <span class=\\\"align-middle\\\">\"\n + container.escapeExpression((helpers.lang||(depth0 && depth0.lang)||container.hooks.helperMissing).call(depth0 != null ? depth0 : (container.nullContext || {}),\"add\",{\"name\":\"lang\",\"hash\":{},\"data\":data}))\n + \"</span>\\r\\n </button>\\r\\n\";\n},\"6\":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 \" <button type=\\\"submit\\\" class=\\\"btn btn-primary btn-sm ml-2\\\">\"\n + alias4((helpers.lang||(depth0 && depth0.lang)||alias3).call(alias2,\"save\",{\"name\":\"lang\",\"hash\":{},\"data\":data}))\n + \"</button>\\r\\n <button type=\\\"button\\\" class=\\\"btn btn-secondary btn-sm cancel ml-2\\\">\"\n + alias4((helpers.lang||(depth0 && depth0.lang)||alias3).call(alias2,\"cancel\",{\"name\":\"lang\",\"hash\":{},\"data\":data}))\n + \"</button>\\r\\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.propertyIsEnumerable, alias2=container.lambda, alias3=container.escapeExpression, alias4=depth0 != null ? depth0 : (container.nullContext || {}), alias5=container.hooks.helperMissing;\n\n return \"<div class=\\\"row\\\">\\r\\n <div class=\\\"col-6 form-group\\\">\\r\\n <label for=\\\"\"\n + alias3(alias2(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.chapterId : stack1), depth0))\n + \"\\\">\"\n + alias3((helpers.lang||(depth0 && depth0.lang)||alias5).call(alias4,\"nameLabel\",{\"name\":\"lang\",\"hash\":{},\"data\":data}))\n + \"</label>\\r\\n <input type=\\\"text\\\" class=\\\"form-control chapter-name\\\" name=\\\"name\\\" id=\\\"\"\n + alias3(alias2(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.chapterId : stack1), depth0))\n + \"\\\" placeholder=\\\"\"\n + alias3((helpers.lang||(depth0 && depth0.lang)||alias5).call(alias4,\"namePlaceholder\",{\"name\":\"lang\",\"hash\":{},\"data\":data}))\n + \"\\\" autofocus autocomplete=\\\"off\\\">\\r\\n <div class=\\\"form-feedback\\\"></div>\\r\\n </div>\\r\\n\"\n + ((stack1 = helpers[\"if\"].call(alias4,((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.enabled : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"</div>\\r\\n\\r\\n<div class=\\\"row\\\">\\r\\n\"\n + ((stack1 = helpers[\"if\"].call(alias4,((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.creating : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\r\\n\"\n + ((stack1 = helpers[\"if\"].call(alias4,((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.editing : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(6, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"</div>\";\n},\"useData\":true});","import * as _ from 'underscore';\r\nimport * as Backbone from 'backbone';\r\nimport { ObjectHash, Radio } from 'backbone';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { ViewModelService } from 'libs/common/backbone/services/ViewModelService';\r\nimport { SvgHelper, cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\n\r\nimport { BackboneValidationBehavior, StickitBehavior } from 'shared/behaviors';\r\nimport { Chapter } from 'shared/models/Chapter';\r\nimport { TimeHelpers } from 'shared/utils';\r\n\r\nimport { ChapterHelpers } from 'apps/library-editor/utils/ChapterHelper';\r\nimport { LibraryEditorActions } from 'apps/library-editor/constants';\r\n\r\nimport ChapterFormTemplate from './ChapterForm.hbs';\r\n\r\nconst ENTER_KEYCODE = 13;\r\n\r\ninterface ChapterFormComponentOptions extends Core.ComponentOptions {\r\n editing?: boolean;\r\n creating?: boolean;\r\n channelName: string;\r\n duration: number;\r\n playerViewModelKey?: string;\r\n showActions?: boolean;\r\n}\r\n\r\nexport class ChapterFormComponent extends Core.Component {\r\n protected options: ChapterFormComponentOptions;\r\n private webPlayerTime: Date;\r\n\r\n constructor(options: ChapterFormComponentOptions) {\r\n super(options);\r\n }\r\n\r\n public initialize(): void {\r\n if (this.options.playerViewModelKey)\r\n this.listenToPlayerViewModel();\r\n\r\n this.initViewModel();\r\n\r\n if (this.options.editing)\r\n this.syncTime();\r\n }\r\n\r\n public get name(): string {\r\n return 'ChapterFormComponent';\r\n }\r\n\r\n public get lang(): string {\r\n return 'libraryEditor.chapterForm';\r\n }\r\n\r\n public get tagName(): string {\r\n return 'form';\r\n }\r\n\r\n public get viewModelName(): string {\r\n return `${this.name}:${this.cid}`;\r\n }\r\n\r\n public get template(): any {\r\n return ChapterFormTemplate;\r\n }\r\n\r\n public get className(): string {\r\n return this.options.creating ? 'py-3' : 'border-top p-2';\r\n }\r\n\r\n\r\n public get behaviors(): any[] {\r\n return [{\r\n behaviorClass: BackboneValidationBehavior,\r\n bindViewModel: true\r\n }, {\r\n behaviorClass: StickitBehavior,\r\n bindViewModel: true\r\n }];\r\n }\r\n\r\n public events(): ObjectHash {\r\n return {\r\n 'submit': 'onSubmit',\r\n 'change .chapter-name': 'validateName',\r\n 'keyup .chapter-name': 'validateName',\r\n 'change .time-input': 'onTimeInputUpdate',\r\n 'click .time-input': 'onTimeInputUpdate',\r\n 'keyup .time-input': 'onTimeInputUpdate',\r\n 'click .cancel': 'destroyView',\r\n };\r\n }\r\n\r\n public get bindings(): ObjectHash {\r\n return {\r\n '[name=name]': {\r\n observe: 'name',\r\n setOptions: { validate: true }\r\n },\r\n '[name=hours]': {\r\n observe: 'hours',\r\n setOptions: { validate: true }\r\n },\r\n '[name=minutes]': {\r\n observe: 'minutes',\r\n setOptions: { validate: true }\r\n },\r\n '[name=seconds]': {\r\n observe: 'seconds',\r\n setOptions: { validate: true }\r\n },\r\n };\r\n }\r\n\r\n private initViewModel(): void {\r\n this.viewModel = ViewModelService.get<Chapter>(this.viewModelName, this.model.toJSON());\r\n }\r\n\r\n /**\r\n * Synchronise start time based on current player's playback position\r\n */\r\n private listenToPlayerViewModel(): void {\r\n const playerViewModel = ViewModelService.get(this.options.playerViewModelKey);\r\n this.listenTo(playerViewModel, 'change:currenttime', this.updateTime);\r\n }\r\n\r\n /**\r\n * Set the value of each time input, syncing with the webplayer current time\r\n */\r\n private updateTime(player: Core.Model): void {\r\n this.webPlayerTime = player.get('currenttime');\r\n this.syncTime();\r\n }\r\n\r\n private syncTime(): void {\r\n // The start time of the chapter, or the current webplayer time\r\n const time = this.viewModel.get('startTime') || this.webPlayerTime;\r\n\r\n this.viewModel.set({\r\n hours: TimeHelpers.getHoursComponent(time),\r\n minutes: TimeHelpers.getMinutesComponent(time),\r\n seconds: TimeHelpers.getSecondsComponent(time)\r\n });\r\n }\r\n\r\n /**\r\n * The time constructed from each time input in seconds\r\n * Returns -1 if any time component is negative, or all time components are undefined\r\n */\r\n private getNewTime(): number {\r\n if (!this.enabled()) return 0;\r\n return TimeHelpers.parseTime(this.viewModel.pick('hours', 'minutes', 'seconds'));\r\n }\r\n\r\n /**\r\n * Whether the time input's are enabled\r\n * Is true for all chapters except for the first existing chapter\r\n */\r\n private enabled(): boolean {\r\n return this.options.creating || this.model.collection.indexOf(this.model) !== 0;\r\n }\r\n\r\n /**\r\n * Returns the maximum values for hours, minutes and seconds\r\n * based on the duration of the video\r\n */\r\n private maxTimes(): ObjectHash {\r\n const duration = TimeHelpers.millisecondsToSeconds(this.options.duration);\r\n const maxHr = TimeHelpers.getHoursComponent(duration);\r\n const maxMin = maxHr > 0 ? 59 : TimeHelpers.getMinutesComponent(duration);\r\n const maxSec = maxMin > 0 ? 59 : TimeHelpers.getSecondsComponent(duration);\r\n return {\r\n maxHr, maxMin, maxSec\r\n };\r\n }\r\n\r\n /**\r\n * Called when any of the 3 time inputs are updated\r\n * If we are creating a chapter, the webplayer time is also updated\r\n */\r\n private onTimeInputUpdate(): void {\r\n const channel = Radio.channel(this.options.channelName);\r\n channel.trigger(LibraryEditorActions.UpdateChapterTime, this.getNewTime());\r\n\r\n this.validateStartTime();\r\n }\r\n\r\n private destroyView(): void {\r\n const channel = Radio.channel(this.options.channelName);\r\n channel.trigger(LibraryEditorActions.CancelChapterEdit);\r\n this.destroy();\r\n }\r\n\r\n /**\r\n * When a chapter is added or saved, validate the new values\r\n * and trigger appropriate event to update the chapter list\r\n */\r\n private onSubmit(e: JQuery.Event): boolean {\r\n e.preventDefault();\r\n\r\n if (!this.validate())\r\n return false;\r\n\r\n const newChapter: ObjectHash = {\r\n id: this.viewModel.get('id'),\r\n name: this.viewModel.get('name'),\r\n startTime: this.getNewTime(),\r\n };\r\n\r\n const channel = Radio.channel(this.options.channelName);\r\n\r\n // Update or create chapter depending on where the component is being rendered\r\n let chapterChangeEvent = LibraryEditorActions.CreateChapter;\r\n\r\n if (this.options.editing)\r\n chapterChangeEvent = LibraryEditorActions.UpdateChapter;\r\n\r\n channel.trigger(chapterChangeEvent, newChapter);\r\n\r\n this.stopListening(this.viewModel);\r\n ViewModelService.clear(this.viewModelName);\r\n }\r\n\r\n private validate(): boolean {\r\n this.viewModel.validate();\r\n const validStartTime = this.validateStartTime();\r\n const validateName = this.validateName();\r\n return this.viewModel.isValid() && validStartTime && validateName;\r\n }\r\n\r\n private validateStartTime(): boolean {\r\n const { valid, invalid } = Backbone.Validation.callbacks;\r\n const parentCollection = this.model.collection || this.options.collection;\r\n\r\n const newTime = this.getNewTime();\r\n\r\n const invalidTimeMessage = ChapterHelpers.isValidChapterTime(\r\n this.model, newTime, this.options.duration, parentCollection\r\n );\r\n\r\n let invalidTimeProps: any = [];\r\n let validTimeProps = [ 'seconds', 'minutes', 'hours' ];\r\n\r\n if (newTime < 0) {\r\n invalidTimeProps = validTimeProps;\r\n } else if (invalidTimeMessage) {\r\n invalidTimeProps.push('seconds');\r\n if (newTime > 59) invalidTimeProps.push('minutes');\r\n if (newTime > (59 * 60)) invalidTimeProps.push('hours');\r\n }\r\n\r\n validTimeProps.forEach((prop: string) => valid(this, prop, null));\r\n invalidTimeProps.forEach((prop: string) => invalid(this, prop, invalidTimeMessage, null));\r\n\r\n return !invalidTimeMessage;\r\n }\r\n\r\n private validateName(e?: JQueryEventObject): boolean {\r\n if (e && e.keyCode === ENTER_KEYCODE) return;\r\n\r\n const { valid, invalid } = Backbone.Validation.callbacks;\r\n const parentCollection = this.model.collection || this.options.collection;\r\n\r\n const invalidNameMessage = ChapterHelpers.isValidChapterName(this.model, this.viewModel.get('name'), parentCollection);\r\n\r\n if (!invalidNameMessage)\r\n valid(this, 'name', null);\r\n else\r\n invalid(this, 'name', invalidNameMessage, null);\r\n\r\n return !invalidNameMessage;\r\n }\r\n\r\n public viewOptions(): ObjectHash {\r\n const { maxHr, maxMin, maxSec } = this.maxTimes();\r\n\r\n const secDisabled = maxSec === 0;\r\n const minDisabled = maxMin === 0;\r\n const hrDisabled = maxHr === 0;\r\n\r\n return {\r\n ...this.options,\r\n enabled: this.enabled(),\r\n timeId: `${this.cid}-time`,\r\n chapterId: `${this.cid}-chapter-name`,\r\n plusSvg: SvgHelper.getSvg(cvSvgLibrary.Plus),\r\n secDisabled, minDisabled, hrDisabled\r\n };\r\n }\r\n}\r\n","import * as _ from 'underscore';\r\nimport { ObjectHash } from 'backbone';\r\nimport { Core } from 'libs/common/core';\r\n\r\nimport { Chapter } from 'shared/models/Chapter';\r\nimport { ChapterItemComponent } from 'apps/library-editor/components/chapter-list/ChapterItemComponent';\r\nimport { LibraryEditorActions } from 'apps/library-editor/constants';\r\n\r\ninterface ChapterComponentCollectionOptions extends Core.ComponentCollectionOptions {\r\n duration: number;\r\n channelName: string;\r\n showActions?: boolean;\r\n editable?: boolean;\r\n}\r\n\r\nexport class ChapterComponentCollection extends Core.ComponentCollection {\r\n protected options: ChapterComponentCollectionOptions;\r\n\r\n constructor(options: ChapterComponentCollectionOptions) {\r\n super(options);\r\n }\r\n\r\n public initialize(): void {\r\n this.bindEditorListeners();\r\n }\r\n\r\n public get name(): string {\r\n return 'ChapterComponentCollection';\r\n }\r\n\r\n public get className(): string {\r\n return 'chapters';\r\n }\r\n\r\n public get childView(): typeof ChapterItemComponent {\r\n return ChapterItemComponent;\r\n }\r\n\r\n private bindEditorListeners(): void {\r\n if (!this.options.editable)\r\n return;\r\n\r\n this.listenTo(this.options.channelName, LibraryEditorActions.ToggleEdit, this.toggleEditForm);\r\n }\r\n\r\n /**\r\n * When a child view triggers its edit view, hide all other edit views\r\n */\r\n public toggleEditForm(model: Chapter): void {\r\n this.collection.each(m => m !== model && m.set('showEditor', false));\r\n model.set('showEditor', !model.get('showEditor'));\r\n }\r\n\r\n public get childViewOptions(): ObjectHash {\r\n return {\r\n showActions: this.options.showActions,\r\n duration: this.options.duration,\r\n channelName: this.options.channelName,\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 = ((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.styles : stack1)) != null ? stack1.loading : stack1), depth0));\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=\\\"col-2 text-right\\\">\\r\\n <a class=\\\"action edit-chapter my-2 svg-container \"\n + alias3(alias2(((stack1 = ((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.styles : stack1)) != null ? stack1.svgContainer : stack1), depth0))\n + \" d-inline-block text-muted\\\"\\r\\n title=\\\"\"\n + alias3((helpers.lang||(depth0 && depth0.lang)||container.hooks.helperMissing).call(alias4,\"edit\",{\"name\":\"lang\",\"hash\":{},\"data\":data}))\n + \"\\\">\"\n + ((stack1 = alias2(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.editSvg : stack1), depth0)) != null ? stack1 : \"\")\n + \"</a>\\r\\n\"\n + ((stack1 = helpers[\"if\"].call(alias4,((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.allowDelete : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \" </div>\\r\\n\";\n},\"4\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.propertyIsEnumerable, alias2=container.lambda, alias3=container.escapeExpression;\n\n return \" <a class=\\\"action delete-chapter my-2 svg-container \"\n + alias3(alias2(((stack1 = ((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.styles : stack1)) != null ? stack1.svgContainer : stack1), depth0))\n + \" d-inline-block text-muted\\\"\\r\\n title=\\\"\"\n + alias3((helpers.lang||(depth0 && depth0.lang)||container.hooks.helperMissing).call(depth0 != null ? depth0 : (container.nullContext || {}),\"delete\",{\"name\":\"lang\",\"hash\":{},\"data\":data}))\n + \"\\\">\"\n + ((stack1 = alias2(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.deleteSvg : 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=depth0 != null ? depth0 : (container.nullContext || {}), alias3=container.lambda, alias4=container.escapeExpression;\n\n return \"<div class=\\\"row mx-0 border-top chapter-item \"\n + ((stack1 = helpers[\"if\"].call(alias2,((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.loading : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\\">\\r\\n <div class=\\\"clickable-seek col-1\\\">\\r\\n <p class=\\\"m-0 py-2\\\">\"\n + alias4(alias3(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.index : stack1), depth0))\n + \"</p>\\r\\n </div>\\r\\n <div class=\\\"clickable-seek col-6\\\">\\r\\n <p class=\\\"m-0 py-2\\\">\"\n + alias4(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(alias2,{\"name\":\"name\",\"hash\":{},\"data\":data}) : helper)))\n + \"</p>\\r\\n </div>\\r\\n <div class=\\\"clickable-seek col-3 text-right\\\">\\r\\n <p class=\\\"m-0 py-2\\\">\"\n + alias4(alias3(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.time : stack1), depth0))\n + \"</p>\\r\\n </div>\\r\\n\"\n + ((stack1 = helpers[\"if\"].call(alias2,((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.showActions : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"</div>\\r\\n<div class=\\\"edit-form-region\\\"></div>\\r\\n\";\n},\"useData\":true});","import { ObjectHash, Radio } from 'backbone';\r\nimport { Core } from 'libs/common/core';\r\nimport { SvgHelper, cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\nimport { TooltipBehavior } from 'libs/shared/legacy/behaviors/tooltip/TooltipBehavior';\r\n\r\nimport { TimeHelpers } from 'shared/utils';\r\n\r\nimport { ChapterFormComponent } from 'apps/library-editor/components/chapter-form/ChapterFormComponent';\r\nimport { LibraryEditorActions } from 'apps/library-editor/constants';\r\n\r\nimport ChapterItemTemplate from './ChapterItem.hbs';\r\nimport styles from './chapter-item.scss';\r\n\r\ninterface ChapterItemComponentOptions extends Core.ComponentOptions {\r\n showActions?: boolean;\r\n duration: number;\r\n channelName: string;\r\n}\r\n\r\nexport class ChapterItemComponent extends Core.Component {\r\n protected options: ChapterItemComponentOptions;\r\n\r\n constructor(options: ChapterItemComponentOptions) {\r\n super(options);\r\n }\r\n\r\n public initialize(): void {\r\n this.bindListeners();\r\n }\r\n\r\n public get name(): string {\r\n return 'ChapterItemComponent';\r\n }\r\n\r\n public get lang(): string {\r\n return 'libraryEditor.chapterItem';\r\n }\r\n\r\n public get instanceChannelName(): string {\r\n return `${this.name}${this.cid}`;\r\n }\r\n\r\n public get template(): any {\r\n return ChapterItemTemplate;\r\n }\r\n\r\n public get className(): string {\r\n return `chapter ${styles.chapterItem}`;\r\n }\r\n\r\n public get behaviors(): any[] {\r\n return [{\r\n behaviorClass: TooltipBehavior,\r\n selector: '.action'\r\n }];\r\n }\r\n\r\n public regions(): ObjectHash {\r\n return {\r\n editForm: {\r\n replaceElement: false,\r\n el: '.edit-form-region'\r\n }\r\n };\r\n }\r\n\r\n public get elements(): ObjectHash {\r\n return {\r\n chapterItem: '.chapter-item',\r\n editChapter: '.edit-chapter',\r\n deleteChapter: '.delete-chapter'\r\n };\r\n }\r\n\r\n public events(): ObjectHash {\r\n return {\r\n 'click @ui.editChapter': 'onEditChapter',\r\n 'click @ui.deleteChapter': 'onDeleteChapter',\r\n 'click .clickable-seek': 'onClick',\r\n };\r\n }\r\n\r\n private bindListeners(): void {\r\n this.listenTo(this.instanceChannelName, LibraryEditorActions.CancelChapterEdit, this.onCancelEdit);\r\n this.listenTo(this.instanceChannelName, LibraryEditorActions.UpdateChapter, this.onUpdateChapter);\r\n this.listenTo(this.instanceChannelName, LibraryEditorActions.UpdateChapterTime, this.onUpdateChapterTime);\r\n\r\n this.listenTo(this.model, 'change:showEditor', this.onShowEditorChange);\r\n this.listenTo(this.model, 'change:loading', this.onLoadingChange);\r\n\r\n /**\r\n * Bind listener to the first chapter to ensure that it's actions are\r\n * updated to reflect the chapter collection's state.\r\n */\r\n const firstChapter = this.model.collection.first();\r\n if (this.model === firstChapter) {\r\n this.listenTo(this.model.collection, 'add remove sort', this.render);\r\n return;\r\n }\r\n\r\n // Re-render to ensure we display accurate indexes\r\n this.listenTo(this.model.collection, 'sort', this.render);\r\n }\r\n\r\n\r\n private onClick(e: JQuery.Event): void {\r\n const channel = Radio.channel(this.options.channelName);\r\n\r\n if (this.model.get('isPhysicalChapter'))\r\n channel.trigger(LibraryEditorActions.SeekToChapter, this.model.get('index'));\r\n else\r\n channel.trigger(LibraryEditorActions.UpdateChapterTime, this.model.get('startTime'));\r\n }\r\n\r\n private onLoadingChange(): void {\r\n const tooltipState = this.model.get('loading') ? 'disable' : 'enable';\r\n this.getUI('editChapter').tooltip(tooltipState as any);\r\n this.getUI('deleteChapter').tooltip(tooltipState as any);\r\n\r\n this.model.set('showEditor', false, { silent: true });\r\n this.render();\r\n }\r\n\r\n private onShowEditorChange(): void {\r\n if (this.model.get('loading'))\r\n return;\r\n\r\n this.model.get('showEditor') ? this.showEditView() : this.hideEditView();\r\n }\r\n\r\n private showEditView(): void {\r\n this.renderEditForm();\r\n this.getUI('chapterItem').addClass(styles.darkBackground);\r\n }\r\n\r\n private hideEditView(): void {\r\n this.model.set('showEditor', false, { silent: true });\r\n this.getUI('chapterItem').removeClass(styles.darkBackground);\r\n this.detachChildView('editForm');\r\n }\r\n\r\n private onCancelEdit(): void {\r\n this.hideEditView();\r\n }\r\n\r\n private onDeleteChapter(): void {\r\n if (this.model.get('loading'))\r\n return;\r\n\r\n const channel = Radio.channel(this.options.channelName);\r\n channel.trigger(LibraryEditorActions.DeleteChapter, this.model);\r\n }\r\n\r\n // Proxy the update event and propogate up to the edit chapters parent\r\n private onUpdateChapter(chapter: ObjectHash): void {\r\n Radio.channel(this.options.channelName).trigger(LibraryEditorActions.UpdateChapter, chapter);\r\n this.render();\r\n }\r\n\r\n // Proxy the update event and propogate up to the edit chapters parent\r\n private onUpdateChapterTime(time: number): void {\r\n Radio.channel(this.options.channelName).trigger(LibraryEditorActions.UpdateChapterTime, time);\r\n }\r\n\r\n private onEditChapter(): void {\r\n const channel = Radio.channel(this.options.channelName);\r\n channel.trigger(LibraryEditorActions.ToggleEdit, this.model);\r\n }\r\n\r\n private canDelete(index: number): boolean {\r\n const collectionLength = this.model.collection.length;\r\n\r\n // If the only chapter in the collection is the first chapter, allow deletion.\r\n if (index === 1 && collectionLength === 1)\r\n return true;\r\n\r\n // Don't let the first chapter be deleted if there multiple chapters.\r\n if (index === 1 && collectionLength > 1)\r\n return false;\r\n\r\n // All other chapters in th collection can be deleted.\r\n return true;\r\n }\r\n\r\n public viewOptions(): ObjectHash {\r\n const index = this.model.collection.indexOf(this.model) + 1;\r\n const time = TimeHelpers.trimToMinutes(TimeHelpers.secondsToHoursFormatted(this.model.get('startTime')));\r\n\r\n return {\r\n ...this.options,\r\n styles, time, index,\r\n loading: this.model.get('loading'),\r\n allowDelete: this.canDelete(index),\r\n editSvg: SvgHelper.getSvg(cvSvgLibrary.Edit),\r\n deleteSvg: SvgHelper.getSvg(cvSvgLibrary.Delete)\r\n };\r\n }\r\n\r\n private renderEditForm(): void {\r\n this.showChildView('editForm', new ChapterFormComponent({\r\n model: this.model,\r\n editing: true,\r\n channelName: this.instanceChannelName,\r\n duration: this.options.duration,\r\n }));\r\n }\r\n\r\n // This is super trash - but calling dispose does nothing. \r\n public onBeforeDetach(): void {\r\n $('.tooltip').remove();\r\n }\r\n}\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"darkBackground\":\"cv--darkBackground--2jtQl\",\"loading\":\"cv--loading--152ia\",\"svgContainer\":\"cv--svgContainer--xdD5o\",\"chapterItem\":\"cv--chapterItem--3G38c\"};","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, alias2=depth0 != null ? depth0 : (container.nullContext || {}), alias3=container.hooks.helperMissing, alias4=container.escapeExpression;\n\n return \"<h5>\"\n + alias4((helpers.lang||(depth0 && depth0.lang)||alias3).call(alias2,\"chapters\",{\"name\":\"lang\",\"hash\":{},\"data\":data}))\n + \"</h5>\\r\\n<div class=\\\"row mt-3 m-0 border-bottom\\\">\\r\\n <div class=\\\"col-1\\\">\\r\\n <label>#</label>\\r\\n </div>\\r\\n <div class=\\\"col-6\\\">\\r\\n <label>\"\n + alias4((helpers.lang||(depth0 && depth0.lang)||alias3).call(alias2,\"nameLabel\",{\"name\":\"lang\",\"hash\":{},\"data\":data}))\n + \"</label>\\r\\n </div>\\r\\n <div class=\\\"col-3 text-right\\\">\\r\\n <label>\"\n + alias4((helpers.lang||(depth0 && depth0.lang)||alias3).call(alias2,\"startLabel\",{\"name\":\"lang\",\"hash\":{},\"data\":data}))\n + \"</>\\r\\n </div>\\r\\n</div>\\r\\n<div class=\\\"chapter-list-region\\\"></div>\";\n},\"useData\":true});","import { Core } from 'libs/common/core';\r\nimport * as _ from 'underscore';\r\nimport { ObjectHash } from 'backbone';\r\n\r\nimport { ChapterComponentCollection } from 'apps/library-editor/components/chapter-list/ChapterComponentCollection';\r\nimport ChaptersTemplate from './Chapters.hbs';\r\n\r\ninterface ChaptersComponentOptions extends Core.ComponentOptions {\r\n channelName?: string;\r\n duration?: number;\r\n showActions?: boolean;\r\n editable?: boolean;\r\n showHeader?: boolean;\r\n}\r\n\r\nexport class ChaptersComponent extends Core.Component {\r\n public options: ChaptersComponentOptions;\r\n\r\n constructor(options: ChaptersComponentOptions) {\r\n super(options);\r\n }\r\n\r\n public get name(): string {\r\n return 'ChaptersComponent';\r\n }\r\n\r\n public get template(): any {\r\n return ChaptersTemplate;\r\n }\r\n\r\n public get lang(): string {\r\n return 'libraryEditor.chapters';\r\n }\r\n\r\n public get className(): string {\r\n return `chapters ${!this.options.editable && 'py-3 border-top'}`;\r\n }\r\n\r\n public regions(): ObjectHash {\r\n return {\r\n chapterList: {\r\n replaceElement: true,\r\n el: '.chapter-list-region',\r\n },\r\n };\r\n }\r\n\r\n public viewOptions(): ObjectHash {\r\n return {\r\n showHeader: this.options.showHeader\r\n };\r\n }\r\n\r\n public onRender(): void {\r\n this.showChildView('chapterList', new ChapterComponentCollection({\r\n collection: this.collection,\r\n duration: this.options.duration,\r\n channelName: this.options.channelName,\r\n showActions: this.options.showActions,\r\n editable: this.options.editable\r\n }));\r\n }\r\n}"],"sourceRoot":""}
@@ -1 +0,0 @@
1
- (window.webpackJsonp_clickview_library_editor=window.webpackJsonp_clickview_library_editor||[]).push([[35],{1005:function(e,t,n){"use strict";n.d(t,"a",(function(){return d}));var r=n(2),i=n(237);function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function s(e,t){return(s=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function c(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=f(e);if(t){var i=f(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return l(this,n)}}function l(e,t){return!t||"object"!==a(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function f(e){return(f=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var d=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&s(e,t)}(l,e);var t,n,r,a=c(l);function l(){return o(this,l),a.apply(this,arguments)}return t=l,(n=[{key:"defaults",value:function(){return e={},t=i.c.Disabled,n=!0,t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e;var e,t,n}}])&&u(t.prototype,n),r&&u(t,r),l}(r.a.Model)},1008:function(e,t,n){"use strict";n.d(t,"a",(function(){return d})),n.d(t,"k",(function(){return p})),n.d(t,"g",(function(){return g})),n.d(t,"e",(function(){return m})),n.d(t,"j",(function(){return b})),n.d(t,"i",(function(){return v})),n.d(t,"c",(function(){return E})),n.d(t,"b",(function(){return w})),n.d(t,"d",(function(){return x})),n.d(t,"f",(function(){return P})),n.d(t,"h",(function(){return y}));var r=n(2),i=n(1),a=n(18),o=n(27),u=n(3),s="libraryEditor.utils",c=["tags","thumbnail","chapters","resources","subtitles","disabled","links","restrictions","categories"];function l(e,t){if(e){var n=i.reduce(e,(function(e,n,r){var a=t[r];return n||a?i.isObject(n)&&i.isObject(a)&&!i.isUndefined(n.id)&&n.id===a.id?e:i.isArray(n)?f(n,a).length?e.concat(r):e:i.isEqual(n,a)?e:e.concat(r):e}),[]);if(n.length)return i.object(i.map(n,(function(n){return i.isArray(t[n])?[n,f(e[n],t[n])]:[n,t[n]]})))}}function f(e,t){var n=[];return i.each(t,(function(t){var r=i.findWhere(e,{id:t.id});if(!i.isUndefined(r)||0!==Object.keys(t).length){var a=i.isUndefined(r)?t:l(r,t);a&&(t.id<0&&!t.value||(!r||t.id<0?n.push(t):(a.id=t.id,n.push(a))))}})),n}var d={getChanges:function(e,t){var n=l(i.omit(e.toJSON(),c),i.omit(t.toJSON(),c));if(n)return i.object(i.map(i.keys(n),(function(e){return[e,d.formatChanges(e,n[e])]})))},formatChanges:function(e,t){if(!t)return null;if(i.isObject(t)&&i.isEmpty(t))return null;switch(e){case"name":case"description":case"productionYear":case"dateBroadcast":case"fields":case"episodeNumber":return t;case"channel":case"series":case"rating":case"season":return{id:t.id};case"distributors":case"producers":case"directors":case"productionCompanies":return i.map(t,(function(e){return e.id}));case"dateModified":case"hasBroadcast":return;default:r.a.ErrorHelper.throw(new a.a("There are no formatting settings for ".concat(e)))}},updateModelState:function(e,t,n){var a=["distributors","producers","directors","productionCompanies"];for(var o in i.each(i.keys(n),(function(e){a.includes(e)&&(n[e]=t.get(e).toJSON())})),t.set(i.clone(n),{silent:!0}),e.set(t.toJSON(),{silent:!0}),n){if(!n[o]&&e.associations[o]){var u=e.get(o);(u instanceof r.a.Model||u instanceof r.a.NestedModel)&&u.clear()}}},getRemovedObjectIds:function(e,t){var n=["distributors","productionCompanies","producers","directors"],r={};return i.each(i.keys(e.toJSON()),(function(a){if(i.contains(n,a)){var o=e.get(a).map((function(e){return e.id})),u=t.get(a).map((function(e){return e.id})),s=i.filter(o,(function(e){return e&&!i.contains(u,e)}));s.length&&(r[a]=s)}})),r}},p={name:[{required:!0,msg:function(){return u.a.getPhrase(s,"videoTitleRequired")}},{maxLength:255,msg:function(){return u.a.getPhrase(s,"videoTitleExceeds")}}],description:[{required:!1},{maxLength:65535,msg:function(){return u.a.getPhrase(s,"videoDescriptionExceeds")}}],episodeNumber:function(e,t,n){return e&&e<1?u.a.getPhrase(s,"episodeNumberLessThanOne"):e&&e>2147483647?u.a.getPhrase(s,"episodeNumberExceeds"):e%1!=0?u.a.getPhrase(s,"episodeNumberNotWhole"):n.season&&n.season.get("number")>=0&&null===e?u.a.getPhrase(s,"episodeNumberNoSeason"):""},season:function(e,t,n){return n.season&&n.season.get("number")||e&&e.number||!n.episodeNumber?"":u.a.getPhrase(s,"seasonNoEpisodeNumber")}},h=o().year(),m={productionYear:function(e,t,n){return e||0===e?(e=+e,isNaN(e)?"Production year must be a number.":e<1900||e>h?u.a.getPhrase(s,"validProductionYears",{currentYear:h}):void 0):""}},g={name:[{required:!0,msg:function(){return u.a.getPhrase(s,"resourceNameRequired")}}]},b={suggestion:[{required:!0,msg:function(){return u.a.getPhrase(s,"suggestEditRequired")}},{maxLength:65535,msg:function(){return u.a.getPhrase(s,"suggestEditExceeds")}}],reason:[{required:!0,msg:function(){return u.a.getPhrase(s,"suggestEditReasonRequired")}},{maxLength:65535,msg:function(){return u.a.getPhrase(s,"suggestEditReasonExceeds")}}]},y={number:function(e,t,n){return e?+e<1?u.a.getPhrase(s,"seasonLessThanOne"):+e>255?u.a.getPhrase(s,"seasonExceeds"):+e%1!=0?u.a.getPhrase(s,"seasonNotWhole"):"":u.a.getPhrase(s,"seasonRequired")}},v={empty:function(){return u.a.getPhrase(s,"suggestEditRatingRequired")},original:function(){return u.a.getPhrase(s,"suggestEditRatingInvalid")}},P={url:[{required:!0,pattern:"url",msg:function(){return u.a.getPhrase(s,"linkUrlRequired")}},{maxLength:65535,msg:function(){return u.a.getPhrase(s,"linkUrlExceeds")}}],name:[{required:!0,msg:function(){return u.a.getPhrase(s,"linkNameRequired")}},{maxLength:255,msg:function(){return u.a.getPhrase(s,"linkNameExceeds")}}]},E={name:[{maxLength:128,msg:function(){return u.a.getPhrase(s,"fieldNameExceeds")}}],value:[{maxLength:16e3,msg:function(){return u.a.getPhrase(s,"fieldValueExceeds")}}]},w={fields:function(e){return e&&e.length?e.all((function(e){return!1!==e.isValid()}))?"":u.a.getPhrase(s,"fieldsInvalid"):""}};function x(){return[{id:-1,name:"Admin Notes",value:"",placeholder:"Notes that only admins will see"}]}},1009:function(e,t,n){"use strict";var r=n(1015),i=n(1008),a=(n(1013),n(3),n(1016)),o=(n(1018),n(1014)),u=n(85),s={getVideoDownloadUrl:function(e,t){return u.a.safeUrlConcat(u.a.makeHttps(e),"/download?token=".concat(t))}};n.d(t,"a",(function(){return r.a})),n.d(t,"e",(function(){return i.g})),n.d(t,"h",(function(){return i.j})),n.d(t,"g",(function(){return i.i})),n.d(t,"d",(function(){return i.f})),n.d(t,"f",(function(){return i.h})),n.d(t,"c",(function(){return a.a})),n.d(t,"i",(function(){return o.a})),n.d(t,"b",(function(){return s}))},1013:function(e,t,n){"use strict";n.d(t,"a",(function(){return l}));var r=n(1),i=n(47),a=n(153),o=n(3),u="libraryEditor.utils",s={name:[{required:!0,msg:function(){return o.a.getPhrase(u,"folderNameRequired")}},{maxLength:255,msg:function(){return o.a.getPhrase(u,"folderNameExceeds")}}]},c=function(e,t){return{parentId:function(n){return n?i.a.calculateDestinationFolderDepth(e,n,t)>a.a.MAX_FOLDER_DEPTH?o.a.getPhrase(u,"maxFolderDepth",{maxDepth:a.a.MAX_FOLDER_DEPTH}):"":o.a.getPhrase(u,"selectParentFolder")}}},l=function(e){var t=e.validateName,n=e.validateParent,i=e.folder,a=e.collection;return t&&n?r.extend({},s,c(i,a)):t?s:n?c(i,a):void 0}},1014:function(e,t,n){"use strict";n.d(t,"a",(function(){return f}));var r=n(14),i=n(3),a=n(179),o=n(1026),u=n(6);function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var c,l="libraryEditor.utils";!function(e){e.Pdf="pdf",e.Image="image",e.PowerPoint="powerpoint",e.Document="document",e.Excel="excel",e.Zip="archive",e.File="text"}(c||(c={}));var f={mapRatingToClass:function(e){if(!e)return"";return function(e){switch(!0){case e<32:return"bg-purple";case e<48:return"bg-success";case e<80:return"bg-info";case e<96:return"bg-danger";case e<128:return"bg-pink";case e>=128:return"bg-warning";default:return""}}(e)},mapSourceToDisplayName:function(e){switch(e.get("type")){case u.h.HostedLibrary:case u.h.CustomLibrary:return e.get("name");case u.h.Exchange:return i.a.getPhrase(l,"exchange");case u.h.Workspace:return i.a.getPhrase(l,"workspace");default:return""}},mapSourceToClass:function(e){switch(e){case u.h.HostedLibrary:case u.h.CustomLibrary:return"bg-info";case u.h.Exchange:return"bg-success";case u.h.Workspace:default:return"bg-danger"}},isInteractive:function(e){return!(!e||!e.interactives)&&!!e.interactives.length},mapTypeToSvg:function(e){var t,n=(s(t={},c.Pdf,r.b.FilePDF),s(t,c.Image,r.b.FileImg),s(t,c.PowerPoint,r.b.FilePowerpoint),s(t,c.Document,r.b.FileWord),s(t,c.Excel,r.b.FileExcel),s(t,c.Zip,r.b.FileZip),s(t,c.File,r.b.File),t)[e];return n||(n=r.b.Folder),r.a.getSvg(n)},mapTypeToClass:function(e){switch(e){case c.Pdf:return"icon-red";case c.Image:return"icon-purple";case c.Document:return"icon-blue";case c.Excel:return"icon-green";case c.PowerPoint:return"icon-orange";case c.Zip:return"icon-teal";case c.File:return"icon-gray";default:return""}},mapTypeToExtension:function(e){if(!e)return"";return{pdf:"pdf",image:"png",powerpoint:"pptx"}[e.toLowerCase()]},mapTypeToName:function(e){if(!e)return"";switch(e){case c.Pdf:return i.a.getPhrase(l,"pdf");case c.Image:return i.a.getPhrase(l,"image");case c.Document:return i.a.getPhrase(l,"document");case c.Excel:return i.a.getPhrase(l,"spreadsheet");case c.PowerPoint:return i.a.getPhrase(l,"presentation");case c.Zip:return i.a.getPhrase(l,"zipArchive");case c.File:return i.a.getPhrase(l,"file");default:return""}},translateMetadataCollectionNames:function(e){return new o.a(e.map((function(e){return Object.assign(Object.assign({},e.toJSON()),{name:f.translateMetadataName(e.get("name"))})})))},translateMetadataName:function(e){var t="suggestEdit";switch(e){case a.e.VideoTitle:t+="VideoTitle";break;case a.e.Description:t+="Description";break;case a.e.Rating:t+="Rating";break;case a.e.SeriesTitle:t+="SeriesTitle";break;case a.e.Season:t+="SeasonNumber";break;case a.e.EpisodeNumber:t+="EpisodeNumber";break;case a.e.BroadcastDate:t+="BroadcastDate";break;case a.e.Channel:t+="Channel";break;case a.e.ProductionYear:t+="ProductionYear";break;case a.e.Distributors:t+="Distributors";break;case a.e.ProductionCompanies:t+="ProductionCompanies";break;case a.e.Directors:t+="Directors";break;case a.e.Producers:t+="Producers";break;case a.e.Other:t+="Other"}return i.a.getPhrase(l,t)}}},1015:function(e,t,n){"use strict";n.d(t,"a",(function(){return u}));var r=n(1),i=n(12),a=n(3),o="libraryEditor.utils",u={isValidChapterTime:function(e,t,n,a){if(a){if(!r.isNumber(t))return s.StartTime.Invalid();if(t<0)return s.StartTime.Invalid();if(t>i.w.millisecondsToSeconds(n))return s.StartTime.Exceeds();if(a.some((function(n){return!(n.id&&n.id===e.id||n.cid===e.cid)&&n.get("startTime")===t})))return s.StartTime.Exists()}},isValidChapterName:function(e,t,n){return t?t.length>255?s.Name.MaxLength():n.some((function(n){return!(n.id&&n.id===e.id||n.cid===e.cid)&&n.get("name").trim()===t.trim()}))?s.Name.Exists():r.isEmpty(t.trim())?s.Name.Invalid():void 0:s.Name.Invalid()},mapPhysicalChapters:function(e){var t=0;return r.map(e,(function(e,n){var r={name:e.title,startTime:t,index:n,isPhysicalChapter:!0};return t+=e.duration,r}))}},s={Name:{Invalid:function(){return a.a.getPhrase(o,"chapterNameInvalid")},Exists:function(){return a.a.getPhrase(o,"chapterNameExists")},MaxLength:function(){return a.a.getPhrase(o,"chapterNameExceeds")}},StartTime:{Invalid:function(){return a.a.getPhrase(o,"chapterStartTimeInvalid")},Exists:function(){return a.a.getPhrase(o,"chapterStartTimeExists")},Exceeds:function(){return a.a.getPhrase(o,"chapterStartTimeExceeds")}}}},1016:function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r=n(3),i="libraryEditor.utils",a={name:[{required:!0,msg:function(){return r.a.getPhrase(i,"libraryNameRequired")}},{maxLength:255,msg:function(){return r.a.getPhrase(i,"libraryNameExceeds")}}]}},1018:function(e,t,n){"use strict";n.d(t,"a",(function(){return u}));var r=n(27),i=n(3),a=n(1008),o="libraryEditor.utils",u=(r().year(),{name:[{required:!0,msg:function(){return i.a.getPhrase(o,"videoTitleRequired")}}],folderId:[{required:!0,msg:function(){return i.a.getPhrase(o,"uploadFolderRequired")}}],libraryId:[{required:!0,msg:"Please select an upload library"}],episodeNumber:function(e,t,n){return e&&e<1?"Videos cannot have an episode number less than 1":e&&e>255?"Videos cannot have an episode number greater than 255":e&&e%1!=0?"Episode numbers can only be whole numbers":n.season&&n.season.get("number")>=0&&null===e?"Videos with a season must also have an episode number":""},season:function(e,t,n){return n.season&&n.season.get("number")||e&&e.number||!n.episodeNumber?"":"Videos with an episode number must also have a season"},productionYear:function(){return a.e.productionYear.apply(null,arguments)}})},1026:function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){return(a=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function o(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=s(e);if(t){var i=s(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return u(this,n)}}function u(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function s(e){return(s=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}n.d(t,"a",(function(){return c}));var c=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&a(e,t)}(n,e);var t=o(n);function n(){return i(this,n),t.apply(this,arguments)}return n}(n(2).a.Collection)},1262:function(e,t,n){var r=n(9);e.exports=(r.default||r).template({1:function(e,t,n,r,i){var a;e.propertyIsEnumerable;return(null!=(a=e.lambda(null!=(a=null!=t?t.options:t)?a.spinnerEl:a,t))?a:"")+"\r\n"},3:function(e,t,n,r,i){e.propertyIsEnumerable;var a=null!=t?t:e.nullContext||{},o=e.hooks.helperMissing,u=e.escapeExpression;return'<form>\r\n <div class="form-group">\r\n <label for="name" class="control-label">'+u((n.lang||t&&t.lang||o).call(a,"fileName",{name:"lang",hash:{},data:i}))+'</label>\r\n <input name="name" id="name" type="text" class="form-control" placeholder="'+u((n.lang||t&&t.lang||o).call(a,"fileName",{name:"lang",hash:{},data:i}))+'" autocomplete="off" autofocus/>\r\n <div class="form-feedback"></div>\r\n </div>\r\n</form>\r\n'},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,i){var a;e.propertyIsEnumerable;return null!=(a=n.unless.call(null!=t?t:e.nullContext||{},null!=(a=null!=t?t.options:t)?a.dataFetched:a,{name:"unless",hash:{},fn:e.program(1,i,0),inverse:e.program(3,i,0),data:i}))?a:""},useData:!0})},1395:function(e,t,n){"use strict";n.r(t),n.d(t,"EditResourceView",(function(){return S}));var r=n(1),i=n(7),a=n(40),o=n(2),u=n(5),s=n(28),c=n(273),l=n(237),f=n(0),d=n(12),p=n(1005),h=n(168),m=n(3),g=n(1009),b=n(1262),y=n.n(b);function v(e){return(v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function P(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function E(e,t){return(E=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function w(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=k(e);if(t){var i=k(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return x(this,n)}}function x(e,t){return!t||"object"!==v(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function k(e){return(k=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var S=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&E(e,t)}(x,e);var t,n,b,v=w(x);function x(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,x),v.call(this,e)}return t=x,(n=[{key:"initialize",value:function(){this.listenTo(f.e.RESOURCE,"resource:".concat(this.options.resourceId,":sync"),this.render),this.resourceDataService=u.a.getInstance(f.g.Resource,this)}},{key:"events",value:function(){return{submit:"onSubmit","shown.bs.modal":"onModalShown"}}},{key:"onSubmit",value:function(e){var t=this;e&&e.preventDefault(),this.viewModel.validate(),!1!==this.viewModel.isValid()&&(i.Radio.channel(this.channelName).trigger(l.b.ShowSpinner),this.resourceDataService.updateResource(this.options.videoId,this.viewModel,(function(){t.logAction(),o.a.AppLinkHelper.trigger({application:f.b.LIBRARY_EDITOR,action:f.a.LibraryEditor.EDIT_VIDEO_RESOURCES,args:[t.options.videoId]})})))}},{key:"logAction",value:function(){var e={id:this.options.resourceId,parentId:+this.options.videoId,name:this.viewModel.get("name")};a.a.logUserAction(e,this.options.analyticsOptions)}},{key:"selectAllWithoutExtension",value:function(){if(this.model){var e=this.model.get("name").split(".").slice(0,-1).join("."),t=this.getUI("name");t.each((function(n,i){if(r.isFunction(i.setSelectionRange))t.focus(),i.setSelectionRange(0,e.length);else if(r.isFunction(i.createTextRange)){var a=i.createTextRange();a.collapse(!0),a.moveEnd("character",e.length),a.moveStart("character",0),a.select()}}))}}},{key:"onModalShown",value:function(){this.selectAllWithoutExtension()}},{key:"dataFetched",value:function(){return!!this.model&&!!this.viewModel}},{key:"onBeforeRender",value:function(){var e=this;this.model=this.resourceDataService.getResource(this.options.resourceId,(function(t){e.viewModel=s.a.get("resource:".concat(e.options.resourceId),t.toJSON(),{ctor:h.a}),e.viewModel.addValidation(g.e)})),this.dataFetched()&&this.spinnerModel.set(l.c.Disabled,!1)}},{key:"viewOptions",value:function(){return{dataFetched:this.dataFetched(),spinnerEl:d.q.getSpinner({size:d.r.Large,extraClasses:"mx-auto"})}}},{key:"onRender",value:function(){this.viewModel&&(this.stickit(this.viewModel),i.Validation.bind(this,{model:this.viewModel}),this.selectAllWithoutExtension())}},{key:"onClose",value:function(){this.unstickit(),i.Validation.unbind(this)}},{key:"name",get:function(){return"EditResourceView"}},{key:"lang",get:function(){return"libraryEditor.editResource"}},{key:"title",get:function(){return m.a.getPhrase(this.lang,"title")}},{key:"template",get:function(){return y.a}},{key:"channelName",get:function(){return d.k.generateUniqueChannelName(this)}},{key:"behaviors",get:function(){var e=this;return[{behaviorClass:c.f,title:m.a.getPhrase(this.lang,"edit"),spinnerButtonOptions:{channelName:this.channelName,model:this.spinnerModel=new p.a,buttonText:m.a.getPhrase(this.lang,"save"),onClick:function(t){return e.onSubmit(t)}}}]}},{key:"bindings",get:function(){return{"[name=name]":{observe:"name",setOptions:{validate:!0}}}}},{key:"elements",get:function(){return{name:"#name",feedback:".form-feedback"}}}])&&P(t.prototype,n),b&&P(t,b),x}(o.a.View)}}]);