@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.
- package/dist/en.json +1 -1
- package/dist/libs/analytics/src/interfaces/AnalyticsTypes.d.ts +1 -0
- package/dist/libs/common/src/backbone/utils/LocalStorageHelper.d.ts +1 -1
- package/dist/libs/shared/src/interfaces/models/ClassroomGroup.d.ts +1 -1
- package/dist/projects/library-editor/src/app.d.ts +1 -0
- package/dist/projects/library-editor/src/apps/library-editor/components/tags/TagsComponent.d.ts +1 -0
- package/dist/projects/library-editor/src/shared/components/typeahead-input/SearchTypeaheadComponent.d.ts +1 -0
- package/dist/scripts/{0-e25d47c666.chunk.js → 0-93a3cbfbb6.chunk.js} +1 -1
- package/dist/scripts/{1-620c685eee.chunk.js → 1-69d9709724.chunk.js} +1 -1
- package/dist/scripts/{10-3baf058564.chunk.js → 10-8b01d98b20.chunk.js} +1 -1
- package/dist/scripts/{11-9f5f0c25dc.chunk.js → 11-cbe69fa3f0.chunk.js} +1 -1
- package/dist/scripts/{12-b460ad405e.chunk.js → 12-9b10cdc17d.chunk.js} +1 -1
- package/dist/scripts/13-1e10e6e87f.chunk.js +1 -0
- package/dist/scripts/{14-670309ef33.chunk.js → 14-ab7a30ee22.chunk.js} +1 -1
- package/dist/scripts/{15-39010184ed.chunk.js → 15-74a4408ee9.chunk.js} +1 -1
- package/dist/scripts/{16-0971cabfc8.chunk.js → 16-42f9f38a5b.chunk.js} +1 -1
- package/dist/scripts/{17-f364868870.chunk.js → 17-b1675f5397.chunk.js} +1 -1
- package/dist/scripts/{2-cd7f1d10b5.chunk.js → 2-cfce7347b3.chunk.js} +1 -1
- package/dist/scripts/{20-42dc06da39.chunk.js → 20-9f938a6f3e.chunk.js} +1 -1
- package/dist/scripts/{21-05615559be.chunk.js → 21-3a0591790a.chunk.js} +1 -1
- package/dist/scripts/{22-70b4c18dd2.chunk.js → 22-75ca7c2ae2.chunk.js} +1 -1
- package/dist/scripts/23-6cc6df1006.chunk.js +1 -0
- package/dist/scripts/{24-6fbd14025b.chunk.js → 24-857f2e7cba.chunk.js} +1 -1
- package/dist/scripts/{25-3d067b8b9a.chunk.js → 25-30d6eaa470.chunk.js} +1 -1
- package/dist/scripts/{26-468305820a.chunk.js → 26-7e0e9534cf.chunk.js} +1 -1
- package/dist/scripts/27-460f20f83b.chunk.js +1 -0
- package/dist/scripts/{28-f3f43a3001.chunk.js → 28-c4655d4bd8.chunk.js} +1 -1
- package/dist/scripts/{29-268278d2ac.chunk.js → 29-3629c8b906.chunk.js} +1 -1
- package/dist/scripts/{3-4694b66aa5.chunk.js → 3-34f154b85d.chunk.js} +1 -1
- package/dist/scripts/{30-694b0a0d4b.chunk.js → 30-9d7a8c6475.chunk.js} +1 -1
- package/dist/scripts/{31-4c542c18dc.chunk.js → 31-a80eb231ed.chunk.js} +1 -1
- package/dist/scripts/{32-a1543ffe27.chunk.js → 32-db0c763740.chunk.js} +1 -1
- package/dist/scripts/{33-9685703df6.chunk.js → 33-b9fef236ae.chunk.js} +1 -1
- package/dist/scripts/{34-eb9f6709b3.chunk.js → 34-d2a7193286.chunk.js} +1 -1
- package/dist/scripts/{35-1ff49137e7.chunk.js → 35-1b97d95b2a.chunk.js} +1 -1
- package/dist/scripts/{36-9e89154ca2.chunk.js → 36-179634ea36.chunk.js} +1 -1
- package/dist/scripts/{37-80589d542e.chunk.js → 37-e6d9fbefd1.chunk.js} +1 -1
- package/dist/scripts/{38-7e88534f67.chunk.js → 38-0c6051fb45.chunk.js} +1 -1
- package/dist/scripts/{39-99824f3b64.chunk.js → 39-5fffd05811.chunk.js} +1 -1
- package/dist/scripts/{4-ad1e4b43da.chunk.js → 4-2a04f5b2b3.chunk.js} +1 -1
- package/dist/scripts/{40-dbfd665c74.chunk.js → 40-5d3d9611b5.chunk.js} +1 -1
- package/dist/scripts/{41-25fbac3d17.chunk.js → 41-f3b2533950.chunk.js} +1 -1
- package/dist/scripts/42-075fbbf19d.chunk.js +1 -0
- package/dist/scripts/{43-5ef29feb2c.chunk.js → 43-205ccfa9a4.chunk.js} +1 -1
- package/dist/scripts/{44-223f602431.chunk.js → 44-4be8465afa.chunk.js} +1 -1
- package/dist/scripts/{45-344492a36f.chunk.js → 45-541254a177.chunk.js} +1 -1
- package/dist/scripts/{46-9ca7afd6a4.chunk.js → 46-fe575b6c9f.chunk.js} +1 -1
- package/dist/scripts/{47-ac0c9c5ce1.chunk.js → 47-18d84f7b83.chunk.js} +1 -1
- package/dist/scripts/{48-6bf590b9a0.chunk.js → 48-40adeb652e.chunk.js} +1 -1
- package/dist/scripts/{49-8e3e782ffb.chunk.js → 49-ac59f2a6fd.chunk.js} +1 -1
- package/dist/scripts/{5-b236603e85.chunk.js → 5-ce9948090c.chunk.js} +1 -1
- package/dist/scripts/{50-30ba08212e.chunk.js → 50-8cc4935ea5.chunk.js} +1 -1
- package/dist/scripts/{51-828972defb.chunk.js → 51-cd80402e6e.chunk.js} +1 -1
- package/dist/scripts/{52-b2acf3e742.chunk.js → 52-7e11748c73.chunk.js} +1 -1
- package/dist/scripts/{53-5d6ea94871.chunk.js → 53-e807e56657.chunk.js} +1 -1
- package/dist/scripts/{54-2d8bd6fde0.chunk.js → 54-265c2852ce.chunk.js} +1 -1
- package/dist/scripts/{55-4a8d360746.chunk.js → 55-68bef0b859.chunk.js} +1 -1
- package/dist/scripts/{56-ad12ebab5f.chunk.js → 56-f52cc13b44.chunk.js} +1 -1
- package/dist/scripts/{57-53b89c2ef0.chunk.js → 57-77549e4856.chunk.js} +1 -1
- package/dist/scripts/{58-b246abe78c.chunk.js → 58-3f44c0ba1a.chunk.js} +1 -1
- package/dist/scripts/{59-19290686e0.chunk.js → 59-bf231da287.chunk.js} +1 -1
- package/dist/scripts/{6-6fb543aa78.chunk.js → 6-97a29c3fdd.chunk.js} +1 -1
- package/dist/scripts/{60-0c075e7b5c.chunk.js → 60-c6a9325b5e.chunk.js} +1 -1
- package/dist/scripts/{61-2725bbfab2.chunk.js → 61-5fe4279f6d.chunk.js} +1 -1
- package/dist/scripts/{62-472d10a18e.chunk.js → 62-ff1c8453b6.chunk.js} +1 -1
- package/dist/scripts/{63-7d00e50441.chunk.js → 63-47a43e2399.chunk.js} +1 -1
- package/dist/scripts/{64-1b42f78644.chunk.js → 64-398f9ac217.chunk.js} +1 -1
- package/dist/scripts/{65-14af88c745.chunk.js → 65-d75308a09e.chunk.js} +1 -1
- package/dist/scripts/{66-bc274df13a.chunk.js → 66-ec32c5588a.chunk.js} +1 -1
- package/dist/scripts/{67-d1edef09d6.chunk.js → 67-6805e53bfb.chunk.js} +1 -1
- package/dist/scripts/{68-52468201b9.chunk.js → 68-046ada4945.chunk.js} +1 -1
- package/dist/scripts/{69-b681e9a99c.chunk.js → 69-235a8e6754.chunk.js} +1 -1
- package/dist/scripts/{7-2807a666bc.chunk.js → 7-55f3aed0f4.chunk.js} +1 -1
- package/dist/scripts/{70-d4018838a9.chunk.js → 70-150be3f4a2.chunk.js} +1 -1
- package/dist/scripts/{71-29cce07c7f.chunk.js → 71-c63b7a2a30.chunk.js} +1 -1
- package/dist/scripts/{72-6f83214b8d.chunk.js → 72-53bdb8c37f.chunk.js} +1 -1
- package/dist/scripts/{8-8f44e8bfc4.chunk.js → 8-94205353a6.chunk.js} +1 -1
- package/dist/scripts/{9-b8f9ea66c4.chunk.js → 9-0776e647a0.chunk.js} +1 -1
- package/dist/scripts/bundle-704119eb6d.min.js +8 -0
- package/dist/scripts/bundles.json +2 -2
- package/dist/scripts/polyfills-44c21c47b6.min.js +1 -0
- package/package.json +4 -4
- package/dist/css/1.chunk.css.map +0 -1
- package/dist/css/10.chunk.css.map +0 -1
- package/dist/css/11.chunk.css +0 -137
- package/dist/css/11.chunk.css.map +0 -1
- package/dist/css/12.chunk.css.map +0 -1
- package/dist/css/13.chunk.css.map +0 -1
- package/dist/css/14.chunk.css.map +0 -1
- package/dist/css/16.chunk.css.map +0 -1
- package/dist/css/17.chunk.css.map +0 -1
- package/dist/css/18.chunk.css +0 -20
- package/dist/css/18.chunk.css.map +0 -1
- package/dist/css/2.chunk.css +0 -145
- package/dist/css/2.chunk.css.map +0 -1
- package/dist/css/21.chunk.css.map +0 -1
- package/dist/css/22.chunk.css.map +0 -1
- package/dist/css/23.chunk.css.map +0 -1
- package/dist/css/25.chunk.css.map +0 -1
- package/dist/css/26.chunk.css.map +0 -1
- package/dist/css/28.chunk.css.map +0 -1
- package/dist/css/29.chunk.css.map +0 -1
- package/dist/css/3.chunk.css.map +0 -1
- package/dist/css/30.chunk.css.map +0 -1
- package/dist/css/31.chunk.css.map +0 -1
- package/dist/css/32.chunk.css.map +0 -1
- package/dist/css/33.chunk.css.map +0 -1
- package/dist/css/34.chunk.css +0 -21
- package/dist/css/34.chunk.css.map +0 -1
- package/dist/css/35.chunk.css +0 -20
- package/dist/css/35.chunk.css.map +0 -1
- package/dist/css/36.chunk.css +0 -14
- package/dist/css/36.chunk.css.map +0 -1
- package/dist/css/37.chunk.css.map +0 -1
- package/dist/css/38.chunk.css.map +0 -1
- package/dist/css/40.chunk.css.map +0 -1
- package/dist/css/41.chunk.css.map +0 -1
- package/dist/css/42.chunk.css.map +0 -1
- package/dist/css/43.chunk.css.map +0 -1
- package/dist/css/44.chunk.css.map +0 -1
- package/dist/css/45.chunk.css.map +0 -1
- package/dist/css/46.chunk.css.map +0 -1
- package/dist/css/47.chunk.css.map +0 -1
- package/dist/css/48.chunk.css.map +0 -1
- package/dist/css/49.chunk.css +0 -35
- package/dist/css/49.chunk.css.map +0 -1
- package/dist/css/50.chunk.css.map +0 -1
- package/dist/css/51.chunk.css.map +0 -1
- package/dist/css/52.chunk.css +0 -66
- package/dist/css/52.chunk.css.map +0 -1
- package/dist/css/55.chunk.css.map +0 -1
- package/dist/css/56.chunk.css.map +0 -1
- package/dist/css/58.chunk.css.map +0 -1
- package/dist/css/59.chunk.css.map +0 -1
- package/dist/css/6.chunk.css.map +0 -1
- package/dist/css/60.chunk.css +0 -18
- package/dist/css/60.chunk.css.map +0 -1
- package/dist/css/62.chunk.css.map +0 -1
- package/dist/css/63.chunk.css +0 -170
- package/dist/css/63.chunk.css.map +0 -1
- package/dist/css/67.chunk.css +0 -78
- package/dist/css/67.chunk.css.map +0 -1
- package/dist/css/68.chunk.css +0 -17
- package/dist/css/68.chunk.css.map +0 -1
- package/dist/css/69.chunk.css +0 -17
- package/dist/css/69.chunk.css.map +0 -1
- package/dist/css/7.chunk.css.map +0 -1
- package/dist/css/70.chunk.css +0 -23
- package/dist/css/70.chunk.css.map +0 -1
- package/dist/css/71.chunk.css +0 -40
- package/dist/css/71.chunk.css.map +0 -1
- package/dist/css/72.chunk.css +0 -16
- package/dist/css/72.chunk.css.map +0 -1
- package/dist/css/73.chunk.css +0 -37
- package/dist/css/73.chunk.css.map +0 -1
- package/dist/css/74.chunk.css +0 -29
- package/dist/css/74.chunk.css.map +0 -1
- package/dist/css/75.chunk.css +0 -6
- package/dist/css/75.chunk.css.map +0 -1
- package/dist/css/76.chunk.css +0 -6
- package/dist/css/76.chunk.css.map +0 -1
- package/dist/css/8.chunk.css.map +0 -1
- package/dist/css/library-editor-app.css.map +0 -1
- package/dist/libs/shared/src/enums/PlayerMediaType.d.ts +0 -5
- package/dist/libs/shared/src/interfaces/models/interactive.d.ts +0 -9
- package/dist/scripts/0.chunk.js +0 -1039
- package/dist/scripts/0.chunk.js.map +0 -1
- package/dist/scripts/1.chunk.js +0 -442
- package/dist/scripts/1.chunk.js.map +0 -1
- package/dist/scripts/10.chunk.js +0 -820
- package/dist/scripts/10.chunk.js.map +0 -1
- package/dist/scripts/11.chunk.js +0 -4091
- package/dist/scripts/11.chunk.js.map +0 -1
- package/dist/scripts/12.chunk.js +0 -555
- package/dist/scripts/12.chunk.js.map +0 -1
- package/dist/scripts/13-89b3a0aebb.chunk.js +0 -1
- package/dist/scripts/13.chunk.js +0 -380
- package/dist/scripts/13.chunk.js.map +0 -1
- package/dist/scripts/14.chunk.js +0 -2386
- package/dist/scripts/14.chunk.js.map +0 -1
- package/dist/scripts/15.chunk.js +0 -314
- package/dist/scripts/15.chunk.js.map +0 -1
- package/dist/scripts/16.chunk.js +0 -1290
- package/dist/scripts/16.chunk.js.map +0 -1
- package/dist/scripts/17.chunk.js +0 -381
- package/dist/scripts/17.chunk.js.map +0 -1
- package/dist/scripts/18.chunk.js +0 -393
- package/dist/scripts/18.chunk.js.map +0 -1
- package/dist/scripts/19.chunk.js +0 -364
- package/dist/scripts/19.chunk.js.map +0 -1
- package/dist/scripts/2.chunk.js +0 -523
- package/dist/scripts/2.chunk.js.map +0 -1
- package/dist/scripts/20.chunk.js +0 -317
- package/dist/scripts/20.chunk.js.map +0 -1
- package/dist/scripts/21.chunk.js +0 -531
- package/dist/scripts/21.chunk.js.map +0 -1
- package/dist/scripts/22.chunk.js +0 -354
- package/dist/scripts/22.chunk.js.map +0 -1
- package/dist/scripts/23-3166dfeef5.chunk.js +0 -1
- package/dist/scripts/23.chunk.js +0 -604
- package/dist/scripts/23.chunk.js.map +0 -1
- package/dist/scripts/24.chunk.js +0 -318
- package/dist/scripts/24.chunk.js.map +0 -1
- package/dist/scripts/25.chunk.js +0 -365
- package/dist/scripts/25.chunk.js.map +0 -1
- package/dist/scripts/26.chunk.js +0 -442
- package/dist/scripts/26.chunk.js.map +0 -1
- package/dist/scripts/27-d03a99658e.chunk.js +0 -1
- package/dist/scripts/27.chunk.js +0 -3630
- package/dist/scripts/27.chunk.js.map +0 -1
- package/dist/scripts/28.chunk.js +0 -3172
- package/dist/scripts/28.chunk.js.map +0 -1
- package/dist/scripts/29.chunk.js +0 -3090
- package/dist/scripts/29.chunk.js.map +0 -1
- package/dist/scripts/3.chunk.js +0 -845
- package/dist/scripts/3.chunk.js.map +0 -1
- package/dist/scripts/30.chunk.js +0 -1851
- package/dist/scripts/30.chunk.js.map +0 -1
- package/dist/scripts/31.chunk.js +0 -958
- package/dist/scripts/31.chunk.js.map +0 -1
- package/dist/scripts/32.chunk.js +0 -1239
- package/dist/scripts/32.chunk.js.map +0 -1
- package/dist/scripts/33.chunk.js +0 -971
- package/dist/scripts/33.chunk.js.map +0 -1
- package/dist/scripts/34.chunk.js +0 -990
- package/dist/scripts/34.chunk.js.map +0 -1
- package/dist/scripts/35.chunk.js +0 -518
- package/dist/scripts/35.chunk.js.map +0 -1
- package/dist/scripts/36.chunk.js +0 -335
- package/dist/scripts/36.chunk.js.map +0 -1
- package/dist/scripts/37.chunk.js +0 -236
- package/dist/scripts/37.chunk.js.map +0 -1
- package/dist/scripts/38.chunk.js +0 -315
- package/dist/scripts/38.chunk.js.map +0 -1
- package/dist/scripts/39.chunk.js +0 -107
- package/dist/scripts/39.chunk.js.map +0 -1
- package/dist/scripts/4.chunk.js +0 -335
- package/dist/scripts/4.chunk.js.map +0 -1
- package/dist/scripts/40.chunk.js +0 -2493
- package/dist/scripts/40.chunk.js.map +0 -1
- package/dist/scripts/41.chunk.js +0 -1782
- package/dist/scripts/41.chunk.js.map +0 -1
- package/dist/scripts/42-9f757567db.chunk.js +0 -1
- package/dist/scripts/42.chunk.js +0 -2327
- package/dist/scripts/42.chunk.js.map +0 -1
- package/dist/scripts/43.chunk.js +0 -1206
- package/dist/scripts/43.chunk.js.map +0 -1
- package/dist/scripts/44.chunk.js +0 -2245
- package/dist/scripts/44.chunk.js.map +0 -1
- package/dist/scripts/45.chunk.js +0 -1065
- package/dist/scripts/45.chunk.js.map +0 -1
- package/dist/scripts/46.chunk.js +0 -655
- package/dist/scripts/46.chunk.js.map +0 -1
- package/dist/scripts/47.chunk.js +0 -736
- package/dist/scripts/47.chunk.js.map +0 -1
- package/dist/scripts/48.chunk.js +0 -994
- package/dist/scripts/48.chunk.js.map +0 -1
- package/dist/scripts/49.chunk.js +0 -761
- package/dist/scripts/49.chunk.js.map +0 -1
- package/dist/scripts/5.chunk.js +0 -15
- package/dist/scripts/5.chunk.js.map +0 -1
- package/dist/scripts/50.chunk.js +0 -530
- package/dist/scripts/50.chunk.js.map +0 -1
- package/dist/scripts/51.chunk.js +0 -932
- package/dist/scripts/51.chunk.js.map +0 -1
- package/dist/scripts/52.chunk.js +0 -408
- package/dist/scripts/52.chunk.js.map +0 -1
- package/dist/scripts/53.chunk.js +0 -756
- package/dist/scripts/53.chunk.js.map +0 -1
- package/dist/scripts/54.chunk.js +0 -681
- package/dist/scripts/54.chunk.js.map +0 -1
- package/dist/scripts/55.chunk.js +0 -645
- package/dist/scripts/55.chunk.js.map +0 -1
- package/dist/scripts/56.chunk.js +0 -346
- package/dist/scripts/56.chunk.js.map +0 -1
- package/dist/scripts/57.chunk.js +0 -422
- package/dist/scripts/57.chunk.js.map +0 -1
- package/dist/scripts/58.chunk.js +0 -437
- package/dist/scripts/58.chunk.js.map +0 -1
- package/dist/scripts/59.chunk.js +0 -342
- package/dist/scripts/59.chunk.js.map +0 -1
- package/dist/scripts/6.chunk.js +0 -484
- package/dist/scripts/6.chunk.js.map +0 -1
- package/dist/scripts/60.chunk.js +0 -254
- package/dist/scripts/60.chunk.js.map +0 -1
- package/dist/scripts/61.chunk.js +0 -408
- package/dist/scripts/61.chunk.js.map +0 -1
- package/dist/scripts/62.chunk.js +0 -142
- package/dist/scripts/62.chunk.js.map +0 -1
- package/dist/scripts/63.chunk.js +0 -147
- package/dist/scripts/63.chunk.js.map +0 -1
- package/dist/scripts/64.chunk.js +0 -439
- package/dist/scripts/64.chunk.js.map +0 -1
- package/dist/scripts/65.chunk.js +0 -582
- package/dist/scripts/65.chunk.js.map +0 -1
- package/dist/scripts/66.chunk.js +0 -442
- package/dist/scripts/66.chunk.js.map +0 -1
- package/dist/scripts/67.chunk.js +0 -295
- package/dist/scripts/67.chunk.js.map +0 -1
- package/dist/scripts/68.chunk.js +0 -165
- package/dist/scripts/68.chunk.js.map +0 -1
- package/dist/scripts/69.chunk.js +0 -248
- package/dist/scripts/69.chunk.js.map +0 -1
- package/dist/scripts/7.chunk.js +0 -309
- package/dist/scripts/7.chunk.js.map +0 -1
- package/dist/scripts/70.chunk.js +0 -207
- package/dist/scripts/70.chunk.js.map +0 -1
- package/dist/scripts/71.chunk.js +0 -237
- package/dist/scripts/71.chunk.js.map +0 -1
- package/dist/scripts/72.chunk.js +0 -331
- package/dist/scripts/72.chunk.js.map +0 -1
- package/dist/scripts/73.chunk.js +0 -404
- package/dist/scripts/73.chunk.js.map +0 -1
- package/dist/scripts/74.chunk.js +0 -301
- package/dist/scripts/74.chunk.js.map +0 -1
- package/dist/scripts/75.chunk.js +0 -231
- package/dist/scripts/75.chunk.js.map +0 -1
- package/dist/scripts/76.chunk.js +0 -157
- package/dist/scripts/76.chunk.js.map +0 -1
- package/dist/scripts/77.chunk.js +0 -307
- package/dist/scripts/77.chunk.js.map +0 -1
- package/dist/scripts/78.chunk.js +0 -249
- package/dist/scripts/78.chunk.js.map +0 -1
- package/dist/scripts/79.chunk.js +0 -282
- package/dist/scripts/79.chunk.js.map +0 -1
- package/dist/scripts/8.chunk.js +0 -307
- package/dist/scripts/8.chunk.js.map +0 -1
- package/dist/scripts/80.chunk.js +0 -308
- package/dist/scripts/80.chunk.js.map +0 -1
- package/dist/scripts/81.chunk.js +0 -366
- package/dist/scripts/81.chunk.js.map +0 -1
- package/dist/scripts/82.chunk.js +0 -314
- package/dist/scripts/82.chunk.js.map +0 -1
- package/dist/scripts/83.chunk.js +0 -328
- package/dist/scripts/83.chunk.js.map +0 -1
- package/dist/scripts/84.chunk.js +0 -313
- package/dist/scripts/84.chunk.js.map +0 -1
- package/dist/scripts/85.chunk.js +0 -291
- package/dist/scripts/85.chunk.js.map +0 -1
- package/dist/scripts/86.chunk.js +0 -119
- package/dist/scripts/86.chunk.js.map +0 -1
- package/dist/scripts/87.chunk.js +0 -219
- package/dist/scripts/87.chunk.js.map +0 -1
- package/dist/scripts/88.chunk.js +0 -194
- package/dist/scripts/88.chunk.js.map +0 -1
- package/dist/scripts/89.chunk.js +0 -522
- package/dist/scripts/89.chunk.js.map +0 -1
- package/dist/scripts/9.chunk.js +0 -222
- package/dist/scripts/9.chunk.js.map +0 -1
- package/dist/scripts/90.chunk.js +0 -337
- package/dist/scripts/90.chunk.js.map +0 -1
- package/dist/scripts/91.chunk.js +0 -131
- package/dist/scripts/91.chunk.js.map +0 -1
- package/dist/scripts/92.chunk.js +0 -266
- package/dist/scripts/92.chunk.js.map +0 -1
- package/dist/scripts/bundle-f28b86bf5b.min.js +0 -8
- package/dist/scripts/bundle.js +0 -67206
- package/dist/scripts/bundle.js.map +0 -1
- package/dist/scripts/polyfills-1d2233ebcc.min.js +0 -1
- package/dist/scripts/polyfills.js +0 -14866
- 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/edit-thumbnail/EditThumbnail.hbs","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/apps/library-editor/components/edit-thumbnail/EditThumbnailComponent.ts","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/apps/library-editor/components/edit-video/EditVideoDetails.hbs","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/apps/library-editor/components/edit-video/EditVideoDetailsComponent.ts","webpack://@clickview/library-editor/./src/apps/library-editor/components/edit-video/edit-video-details.scss?f8bb","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/apps/library-editor/components/save/Save.hbs","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/apps/library-editor/components/save/SaveComponent.ts","webpack://@clickview/library-editor/./src/apps/library-editor/components/save/save.scss?f68a","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/apps/library-editor/components/tags/Tags.hbs","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/apps/library-editor/components/tags/TagsComponent.ts","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/apps/library-editor/views/edit-video/EditVideo.hbs","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/apps/library-editor/views/edit-video/EditVideoView.ts","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/shared/components/edit-video/extra-info/ExtraInfo.hbs","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/shared/components/edit-video/extra-info/ExtraInfoComponent.ts","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/shared/components/edit-video/extra-info/ExtraInfoItem.hbs","file://C:/ClickView/front-end/clickview/packages/projects/library-editor/src/shared/components/edit-video/extra-info/ExtraInfoItemComponent.ts"],"names":[],"mappings":"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","file":"scripts/44.chunk.js","sourcesContent":["var Handlebars = require('handlebars');\nmodule.exports = (Handlebars['default'] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var alias1=container.propertyIsEnumerable;\n\n return \"<h5>\"\n + container.escapeExpression((helpers.lang||(depth0 && depth0.lang)||container.hooks.helperMissing).call(depth0 != null ? depth0 : (container.nullContext || {}),\"label\",{\"name\":\"lang\",\"hash\":{},\"data\":data}))\n + \"</h5>\\r\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n return \"my-2\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.propertyIsEnumerable, alias2=depth0 != null ? depth0 : (container.nullContext || {}), alias3=container.hooks.helperMissing, alias4=container.escapeExpression;\n\n return \" <div class=\\\"text-muted mt-3 mb-1\\\"><em>\"\n + alias4((helpers.lang||(depth0 && depth0.lang)||alias3).call(alias2,\"recommendedSize\",{\"name\":\"lang\",\"hash\":{\"height\":((stack1 = ((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.dimensions : stack1)) != null ? stack1.height : stack1),\"width\":((stack1 = ((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.dimensions : stack1)) != null ? stack1.width : stack1)},\"data\":data}))\n + \"</em></div>\\r\\n <button class=\\\"upload-thumbnail btn btn-light mb-3 w-100\\\">\"\n + alias4((helpers.lang||(depth0 && depth0.lang)||alias3).call(alias2,\"upload\",{\"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=depth0 != null ? depth0 : (container.nullContext || {});\n\n return ((stack1 = helpers[\"if\"].call(alias2,((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.editable : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"<div class=\\\"thumbnail-region\\\"></div>\\r\\n<div class=\\\"\"\n + ((stack1 = helpers.unless.call(alias2,((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.editable : stack1),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(3, 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.editable : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"</div>\";\n},\"useData\":true});","import { ObjectHash } from 'backbone';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { ViewModelService } from 'libs/common/backbone/services/ViewModelService';\r\nimport { ThumbnailComponent } from 'libs/shared/legacy/components/thumbnail/ThumbnailComponent';\r\nimport { ImageSize } from 'libs/shared/enums/Images';\r\n\r\nimport { Video } from 'shared/models/Video';\r\nimport { ImageSelectBehavior } from 'shared/behaviors';\r\nimport { ImageType } from 'shared/enums';\r\nimport { Actions, AppChannels, ImageWarnDimensions } from 'shared/constants';\r\n\r\nimport EditThumbnailTemplate from './EditThumbnail.hbs';\r\n\r\ninterface EditThumbnailComponentOptions extends Core.ComponentOptions<Video> {\r\n model: Video;\r\n channelName: string;\r\n editable?: boolean;\r\n}\r\n\r\nexport class EditThumbnailComponent extends Core.Component<Video> {\r\n public options: EditThumbnailComponentOptions;\r\n\r\n constructor(options: EditThumbnailComponentOptions) {\r\n super(options);\r\n }\r\n\r\n public initialize(): void {\r\n this.viewModel = ViewModelService.get('image:storage');\r\n }\r\n\r\n public get name(): string {\r\n return 'EditThumbnailComponent';\r\n }\r\n\r\n public get lang(): string {\r\n return 'libraryEditor.editThumbnail';\r\n }\r\n\r\n public get template(): any {\r\n return EditThumbnailTemplate;\r\n }\r\n\r\n public get behaviors(): any[] {\r\n return [\r\n {\r\n behaviorClass: ImageSelectBehavior,\r\n channelName: this.options.channelName,\r\n buttonSelector: '.upload-thumbnail',\r\n imageType: ImageType.Thumbnails,\r\n appLink: {\r\n application: AppChannels.LIBRARY_EDITOR,\r\n action: Actions.LibraryEditor.UPLOAD_THUMBNAIL,\r\n args: [this.options.model.id]\r\n },\r\n saveImage: (dataUrl: string) => this.viewModel.set({ dataUrl })\r\n }\r\n ];\r\n }\r\n\r\n public get defaults(): ObjectHash {\r\n return {\r\n editable: true\r\n };\r\n }\r\n\r\n public regions(): ObjectHash {\r\n return {\r\n thumbnail: {\r\n el: '.thumbnail-region',\r\n replaceElement: true\r\n }\r\n };\r\n }\r\n\r\n public viewOptions(): ObjectHash {\r\n return {\r\n editable: this.options.editable,\r\n dimensions: ImageWarnDimensions[ImageType.Thumbnails]\r\n };\r\n }\r\n\r\n public onRender(): void {\r\n this.showChildView('thumbnail', new ThumbnailComponent({\r\n model: this.model,\r\n thumbnailOptions: {\r\n size: ImageSize.Medium\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 return \"mb-4\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.propertyIsEnumerable;\n\n return \" <p class=\\\"mb-2 py-1 px-2 alert alert-info \"\n + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.styles : stack1)) != null ? stack1.suggestEdit : stack1), depth0))\n + \"\\\">\\r\\n\"\n + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : (container.nullContext || {}),((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.isExchange : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.program(6, data, 0),\"data\":data})) != null ? stack1 : \"\")\n + \" </p>\\r\\n\";\n},\"4\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.propertyIsEnumerable;\n\n return \" \"\n + ((stack1 = (helpers.lang||(depth0 && depth0.lang)||container.hooks.helperMissing).call(depth0 != null ? depth0 : (container.nullContext || {}),\"suggestEditExchange\",{\"name\":\"lang\",\"hash\":{\"classNames\":((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.suggestEditClasses : stack1)},\"data\":data})) != null ? stack1 : \"\")\n + \"\\r\\n\";\n},\"6\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.propertyIsEnumerable;\n\n return \" \"\n + ((stack1 = (helpers.lang||(depth0 && depth0.lang)||container.hooks.helperMissing).call(depth0 != null ? depth0 : (container.nullContext || {}),\"suggestEdit\",{\"name\":\"lang\",\"hash\":{\"classNames\":((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.suggestEditClasses : stack1)},\"data\":data})) != null ? stack1 : \"\")\n + \"\\r\\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.propertyIsEnumerable, alias2=depth0 != null ? depth0 : (container.nullContext || {});\n\n return \"<div class=\\\"row\\\">\\r\\n <div class=\\\"left-pane col-4\\\">\\r\\n <div class=\\\"thumbnail-region\\\"></div>\\r\\n <div class=\\\"cv-tags-region \"\n + ((stack1 = helpers.unless.call(alias2,((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.editable : stack1),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"\\\"></div>\\r\\n <div class=\\\"customer-tags-region\\\"></div>\\r\\n </div>\\r\\n <div class=\\\"right-pane col-8\\\">\\r\\n\"\n + ((stack1 = helpers.unless.call(alias2,((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.editable : stack1),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \" <div class=\\\"top-save-region\\\"></div>\\r\\n <div class=\\\"basic-info-region mb-4\\\"></div> \\r\\n <div class=\\\"additional-details-region mb-4\\\"></div> \\r\\n <div class=\\\"production-info-region mb-4\\\"></div> \\r\\n <div class=\\\"fields-region mb-4\\\"></div>\\r\\n <div class=\\\"bottom-save-region\\\"></div>\\r\\n </div>\\r\\n</div>\";\n},\"useData\":true});","import { ObjectHash } from 'backbone';\r\nimport { Core } from 'libs/common/core';\r\n\r\nimport { RatingCollection } from 'shared/collections/RatingCollection';\r\nimport { FolderCollection } from 'shared/collections/FolderCollection';\r\nimport { LibraryCollection } from 'shared/collections/LibraryCollection';\r\nimport { Video } from 'shared/models/Video';\r\nimport { User } from 'shared/models/User';\r\nimport { EditBasicInfoComponent } from 'shared/components/edit-video/edit-basic-info/EditBasicInfoComponent';\r\nimport { EditProductionInfoComponent } from 'shared/components/edit-video/edit-production-info/EditProductionInfoComponent';\r\nimport { EditAdditionalInfoComponent } from 'shared/components/edit-video/edit-additional-info/EditAdditionalInfoComponent';\r\nimport { ExtraInfoComponent } from 'shared/components/edit-video/extra-info/ExtraInfoComponent';\r\nimport { AppChannels, Actions } from 'shared/constants';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { PermissionsHelper, VideoHelper } from 'shared/utils';\r\nimport { ObjectOwnerType } from 'libs/shared/enums/ObjectOwnerType';\r\n\r\nimport { TagsComponent } from 'apps/library-editor/components/tags/TagsComponent';\r\nimport { SaveComponent } from 'apps/library-editor/components/save/SaveComponent';\r\nimport { EditThumbnailComponent } from 'apps/library-editor/components/edit-thumbnail/EditThumbnailComponent';\r\nimport { TagOrientation } from 'apps/library-editor/enums';\r\nimport { TagBehavior } from 'apps/library-editor/enums';\r\n\r\nimport EditVideoDetails from './EditVideoDetails.hbs';\r\nimport styles from './edit-video-details.scss';\r\n\r\n\r\ninterface EditViewDetailsComponentOptions extends Core.ComponentOptions<Video> {\r\n model: Video;\r\n ratings: RatingCollection;\r\n libraries: FolderCollection;\r\n hostedLibraries: LibraryCollection;\r\n currentUser: User;\r\n channelName: string;\r\n isSaveDisabled: boolean;\r\n hasChanges: boolean;\r\n editable: boolean;\r\n showPublisherVideoDetails: boolean;\r\n}\r\n\r\n/**\r\n * This component exists until we decide on popup/tabbed/own page layout\r\n */\r\nexport class EditVideoDetailsComponent extends Core.Component<Video> {\r\n protected options: EditViewDetailsComponentOptions;\r\n\r\n constructor(options: EditViewDetailsComponentOptions) {\r\n super(options);\r\n }\r\n\r\n public initialize(): void {\r\n this.listenTo(this.options.channelName, 'update:tags', this.renderCustomerTags);\r\n }\r\n\r\n public get name(): string {\r\n return 'EditVideoDetailsComponent';\r\n }\r\n\r\n public get className(): string {\r\n return 'edit-video-detail py-3';\r\n }\r\n\r\n public get lang(): string {\r\n return 'libraryEditor.editVideoDetails';\r\n }\r\n\r\n public get template(): any {\r\n return EditVideoDetails;\r\n }\r\n\r\n public get appLinks(): Core.AppLinkHash {\r\n return {\r\n '.suggest-edit': {\r\n application: AppChannels.LIBRARY_EDITOR,\r\n action: Actions.LibraryEditor.SUGGEST_AN_EDIT,\r\n args: [this.model.id]\r\n }\r\n };\r\n }\r\n\r\n public regions(): ObjectHash {\r\n return {\r\n topSave: {\r\n el: '.top-save-region',\r\n replaceElement: true\r\n },\r\n bottomSave: {\r\n el: '.bottom-save-region',\r\n replaceElement: true\r\n },\r\n thumbnail: {\r\n el: '.thumbnail-region',\r\n replaceElement: true\r\n },\r\n basicInfo: {\r\n el: '.basic-info-region',\r\n replaceElement: true\r\n },\r\n additionalInfo: {\r\n el: '.additional-details-region',\r\n replaceElement: true\r\n },\r\n productionInfo: {\r\n el: '.production-info-region',\r\n replaceElement: true\r\n },\r\n fields: {\r\n el: '.fields-region',\r\n replaceElement: true\r\n },\r\n clickViewTags: {\r\n el: '.cv-tags-region',\r\n replaceElement: false\r\n },\r\n customerTags: {\r\n el: '.customer-tags-region',\r\n replaceElement: true\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * Render methods\r\n */\r\n\r\n private renderSave(): void {\r\n if (this.options.editable) {\r\n this.showChildView('topSave', new SaveComponent({\r\n channelName: this.options.channelName,\r\n allowUndo: true,\r\n isDisabled: this.options.isSaveDisabled,\r\n hasChanges: this.options.hasChanges,\r\n extraClasses: 'float-right'\r\n }));\r\n }\r\n\r\n this.showChildView('bottomSave', new SaveComponent({\r\n channelName: this.options.channelName,\r\n allowUndo: true,\r\n isDisabled: this.options.isSaveDisabled,\r\n hasChanges: this.options.hasChanges,\r\n extraClasses: 'float-right'\r\n }));\r\n }\r\n\r\n private renderBasicInfo(): void {\r\n this.showChildView('basicInfo', new EditBasicInfoComponent({\r\n model: this.model,\r\n ratings: this.options.ratings,\r\n channelName: this.options.channelName,\r\n editable: this.options.editable,\r\n showingSaveButton: this.options.editable,\r\n showPublisherVideoDetails: this.options.showPublisherVideoDetails\r\n }));\r\n }\r\n\r\n private renderThumbnail(): void {\r\n this.showChildView('thumbnail', new EditThumbnailComponent({\r\n model: this.model,\r\n channelName: this.options.channelName,\r\n editable: this.options.editable\r\n }));\r\n }\r\n\r\n private renderAdditionalInfo(): void {\r\n this.showChildView('additionalInfo', new EditAdditionalInfoComponent({\r\n model: this.model,\r\n channelName: this.options.channelName,\r\n libraries: this.options.libraries,\r\n hostedLibraries: this.options.hostedLibraries,\r\n editable: this.options.editable\r\n }));\r\n }\r\n\r\n private renderProductionInfo(): void {\r\n this.showChildView('productionInfo', new EditProductionInfoComponent({\r\n model: this.model,\r\n channelName: this.options.channelName,\r\n editable: this.options.editable\r\n }));\r\n }\r\n\r\n private renderFields(): void {\r\n this.showChildView('fields', new ExtraInfoComponent({\r\n model: this.model,\r\n channelName: this.options.channelName\r\n }));\r\n }\r\n\r\n private renderClickViewTags(): void {\r\n if (this.options.editable)\r\n return;\r\n\r\n const cvTags = PermissionsHelper.filterObjectsByOwnerType(this.model.tags, ObjectOwnerType.ClickView, this.options.currentUser.get('customerId'));\r\n\r\n this.showChildView('clickViewTags', new TagsComponent({\r\n parentId: this.model.get('id'),\r\n collection: cvTags,\r\n orientation: TagOrientation.Flex,\r\n behavior: TagBehavior.Disabled,\r\n channelName: this.options.channelName,\r\n headerText: LanguageService.getPhrase(this.lang, 'clickviewTags'),\r\n emptyStateText: LanguageService.getPhrase(this.lang, 'clickviewTagsEmpty')\r\n }));\r\n }\r\n\r\n private renderCustomerTags(): void {\r\n const customerTags = PermissionsHelper.filterObjectsByOwnerType(this.model.tags, ObjectOwnerType.Customer, this.options.currentUser.get('customerId'));\r\n\r\n this.showChildView('customerTags', new TagsComponent({\r\n parentId: this.model.get('id'),\r\n collection: customerTags,\r\n channelName: this.options.channelName,\r\n behavior: TagBehavior.Edit,\r\n headerText: LanguageService.getPhrase(this.lang, 'customerTags'),\r\n removeEvent: 'remove:tag'\r\n }));\r\n }\r\n\r\n private renderTags(): void {\r\n this.renderClickViewTags();\r\n this.renderCustomerTags();\r\n }\r\n\r\n public viewOptions(): ObjectHash {\r\n return {\r\n styles,\r\n editable: this.options.editable,\r\n suggestEditClasses: 'info-link text-underline suggest-edit',\r\n isExchange: VideoHelper.isExchangeVideo(this.model)\r\n };\r\n }\r\n\r\n public onRender(): void {\r\n this.renderSave();\r\n this.renderBasicInfo();\r\n this.renderThumbnail();\r\n this.renderAdditionalInfo();\r\n this.renderProductionInfo();\r\n this.renderFields();\r\n this.renderTags();\r\n }\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"suggestEdit\":\"cv--suggestEdit--1X4l5\"};","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.escapeExpression;\n\n return \"<span class=\\\"text-muted mx-2 undo \"\n + alias2(container.lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.styles : stack1)) != null ? stack1.undo : stack1), depth0))\n + \"\\\">\"\n + alias2((helpers.lang||(depth0 && depth0.lang)||container.hooks.helperMissing).call(depth0 != null ? depth0 : (container.nullContext || {}),\"undo\",{\"name\":\"lang\",\"hash\":{},\"data\":data}))\n + \"</span>\\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[\"if\"].call(depth0 != null ? depth0 : (container.nullContext || {}),((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.allowUndo : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"<div class=\\\"save-region\\\"></div>\";\n},\"useData\":true});","import { ObjectHash } from 'backbone';\r\nimport { Radio } from 'backbone';\r\nimport { Core } from 'libs/common/core';\r\n\r\nimport { SpinnerType, SpinnerSize } from 'shared/utils';\r\nimport { SpinnerButtonComponent, SpinnerButtonModelAttributes } from 'shared/components/spinner-button/SpinnerButtonComponent';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\n\r\nimport { LibraryEditorActions } from 'apps/library-editor/constants';\r\n\r\nimport SaveTemplate from './Save.hbs';\r\nimport styles from './save.scss';\r\n\r\nexport interface SaveComponentOptions extends Core.ComponentOptions {\r\n channelName: string;\r\n allowUndo?: boolean;\r\n isDisabled?: boolean;\r\n hasChanges?: boolean;\r\n extraClasses?: string;\r\n showSpinner?: boolean;\r\n}\r\n\r\nexport class SaveComponent extends Core.Component {\r\n protected options: SaveComponentOptions;\r\n\r\n constructor(options: SaveComponentOptions) {\r\n super(options);\r\n }\r\n\r\n public get name(): string {\r\n return 'SaveComponent';\r\n }\r\n\r\n public get template(): any {\r\n return SaveTemplate;\r\n }\r\n\r\n public get className(): string {\r\n return `save-component ${this.options.extraClasses}`;\r\n }\r\n\r\n public get lang(): string {\r\n return 'libraryEditor.save';\r\n }\r\n\r\n public getParentChannel(): Radio.Channel {\r\n return Radio.channel(this.options.channelName);\r\n }\r\n\r\n public getSaveChannelName(): string {\r\n return `${this.name}:${this.cid}`;\r\n }\r\n\r\n public regions(): ObjectHash {\r\n return {\r\n save: {\r\n el: '.save-region',\r\n replaceElement: true\r\n }\r\n };\r\n }\r\n\r\n public events(): ObjectHash {\r\n return {\r\n 'click .undo': 'onUndo',\r\n };\r\n }\r\n\r\n public initialize(): void {\r\n if (!this.model)\r\n this.model = new Core.Model({\r\n [SpinnerButtonModelAttributes.ShowSpinner]: this.options.showSpinner,\r\n [SpinnerButtonModelAttributes.Disabled]: this.options.isDisabled,\r\n });\r\n\r\n const channel = this.options.channelName;\r\n this.listenTo(channel, LibraryEditorActions.DisableSave, this.onDisableSave);\r\n this.listenTo(channel, LibraryEditorActions.EnableSave, this.onEnableSave);\r\n this.listenTo(channel, LibraryEditorActions.CancelSave, this.onCancelSave);\r\n\r\n const saveChannel = Radio.channel(this.getSaveChannelName());\r\n this.listenTo(saveChannel, LibraryEditorActions.Save, this.onSave);\r\n\r\n if (this.options.allowUndo) {\r\n if (this.options.hasChanges) {\r\n this.model.set('showUndo', true);\r\n }\r\n\r\n this.listenTo(this.model, 'change:showUndo', this.render);\r\n }\r\n }\r\n\r\n private onCancelSave(): void {\r\n this.model.set(SpinnerButtonModelAttributes.ShowSpinner, false);\r\n }\r\n\r\n private onEnableSave(): void {\r\n this.model.set(SpinnerButtonModelAttributes.Disabled, false);\r\n\r\n if (this.options.allowUndo)\r\n this.model.set('showUndo', true);\r\n }\r\n\r\n private onDisableSave(): void {\r\n if (this.model.get(SpinnerButtonModelAttributes.ShowSpinner))\r\n this.model.set(SpinnerButtonModelAttributes.ShowSpinner, false, { silent: true });\r\n\r\n this.model.set(SpinnerButtonModelAttributes.Disabled, true);\r\n\r\n if (this.options.allowUndo)\r\n this.model.set('showUndo', false);\r\n }\r\n\r\n private onUndo(e: JQuery.Event): void {\r\n e.stopPropagation();\r\n\r\n const channel = this.getParentChannel();\r\n channel.trigger(LibraryEditorActions.Undo);\r\n }\r\n\r\n private onSave(): void {\r\n this.model.set(SpinnerButtonModelAttributes.ShowSpinner, true);\r\n\r\n const channel = this.getParentChannel();\r\n channel.trigger(LibraryEditorActions.Save);\r\n }\r\n\r\n public viewOptions(): ObjectHash {\r\n return {\r\n allowUndo: this.options.allowUndo && this.model.get('showUndo'),\r\n styles\r\n };\r\n }\r\n\r\n private renderSaveButton(): void {\r\n const view = new SpinnerButtonComponent({\r\n saveEvent: LibraryEditorActions.Save,\r\n channelName: this.getSaveChannelName(),\r\n model: this.model,\r\n buttonText: LanguageService.getPhrase(this.lang, 'save'),\r\n extraButtonClass: `btn-primary ${styles.saveButton}`,\r\n spinnerOptions: {\r\n size: SpinnerSize.Small,\r\n type: SpinnerType.Light,\r\n extraClasses: 'mx-auto'\r\n }\r\n });\r\n\r\n this.showChildView('save', view);\r\n }\r\n\r\n public onRender(): void {\r\n this.renderSaveButton();\r\n }\r\n}\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"saveButton\":\"cv--saveButton--2FsA6\",\"undo\":\"cv--undo--v6msX\"};","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 \"<h5>\"\n + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.headerText : stack1), depth0))\n + \"</h5>\\r\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.propertyIsEnumerable;\n\n return \"<p>\"\n + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.emptyStateText : stack1), depth0))\n + \"</p>\\r\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n return \"<div class=\\\"tag-selector-region\\\"></div>\\r\\n\";\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 ((stack1 = helpers[\"if\"].call(alias2,((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.headerText : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + ((stack1 = helpers[\"if\"].call(alias2,((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.emptyStateText : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + ((stack1 = helpers[\"if\"].call(alias2,((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.editable : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n + \"<div class=\\\"tag-list-region\\\"></div>\";\n},\"useData\":true});","import { ObjectHash } from 'backbone';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { DevError } from 'libs/common/backbone/errors/DevError';\r\nimport { TypeaheadHelper } from 'libs/shared/apps/search/utils/TypeaheadHelper';\r\n\r\nimport { Tag } from 'shared/models/Tag';\r\nimport { SearchQueryType } from 'shared/constants';\r\nimport { RawSearchHelper } from 'shared/utils/search/RawSearchHelper';\r\nimport { SearchTypeaheadComponent } from 'shared/components/typeahead-input/SearchTypeaheadComponent';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\n\r\nimport { TagComponentCollection } from 'apps/library-editor/components/tag-list/TagComponentCollection';\r\nimport { TagOrientation, TagBehavior } from 'apps/library-editor/enums';\r\n\r\nimport TagsTemplate from './Tags.hbs';\r\n\r\ninterface TagsComponentOptions extends Core.ComponentOptions {\r\n channelName: string;\r\n parentId?: string;\r\n behavior: TagBehavior;\r\n orientation?: TagOrientation;\r\n showInline?: boolean;\r\n headerText?: string;\r\n emptyStateText?: string;\r\n removeEvent?: string;\r\n}\r\n\r\nexport class TagsComponent extends Core.Component {\r\n public options: TagsComponentOptions;\r\n\r\n public constructor(options?: TagsComponentOptions) {\r\n super(options);\r\n }\r\n\r\n public get name(): string {\r\n return 'TagsComponent';\r\n }\r\n\r\n public get template(): any {\r\n return TagsTemplate;\r\n }\r\n\r\n public get lang(): string {\r\n return 'libraryEditor.tags';\r\n }\r\n\r\n public get defaults(): ObjectHash {\r\n return {\r\n headerText: LanguageService.getPhrase(this.lang, 'heading'),\r\n orientation: TagOrientation.Flex\r\n };\r\n }\r\n\r\n public regions(): ObjectHash {\r\n return {\r\n tagList: {\r\n el: '.tag-list-region',\r\n replaceElement: true\r\n },\r\n tagSelector: {\r\n el: '.tag-selector-region',\r\n replaceElement: true\r\n }\r\n };\r\n }\r\n\r\n public initialize(): void {\r\n if (this.options.behavior === TagBehavior.Edit && !this.options.parentId)\r\n Core.ErrorHelper.throw(new DevError('parentId is required to edit tags.'));\r\n }\r\n\r\n private getTypeaheadConfigs(): any {\r\n const typeaheadConfig = RawSearchHelper.getTypeaheadConfig();\r\n const bloodhoundConfig = RawSearchHelper.getBloodhoundConfig();\r\n\r\n const rawTagOptions = { hideEmptyResults: true };\r\n const newTagOptions = { newType: SearchQueryType.TagsRaw };\r\n\r\n const emptySuggestionOptions = {\r\n newType: SearchQueryType.TagsRaw,\r\n footerTemplate: TypeaheadHelper.getConfirmSelectionTemplate()\r\n };\r\n\r\n // The order here is important. It reflects how suggestions will be rendered in the typeahead.\r\n return [\r\n { name: SearchQueryType.TagsRaw, typeaheadConfig, bloodhoundConfig, options: rawTagOptions },\r\n { name: 'add-new', typeaheadConfig, bloodhoundConfig, options: newTagOptions },\r\n { name: 'empty-suggestion', typeaheadConfig, bloodhoundConfig, options: emptySuggestionOptions },\r\n ];\r\n }\r\n\r\n public viewOptions(): ObjectHash {\r\n let emptyStateText;\r\n\r\n if (this.showEmptyStateText())\r\n emptyStateText = this.options.emptyStateText;\r\n\r\n return {\r\n headerText: this.options.headerText,\r\n editable: this.options.behavior === TagBehavior.Edit,\r\n emptyStateText\r\n };\r\n }\r\n\r\n private showEmptyStateText(): boolean {\r\n return this.options.behavior !== TagBehavior.Edit && !this.collection.length && !!this.options.emptyStateText;\r\n }\r\n\r\n private renderTagSelector(): void {\r\n if (this.options.behavior !== TagBehavior.Edit) return;\r\n\r\n this.showChildView('tagSelector', new SearchTypeaheadComponent<Tag>({\r\n model: this.model,\r\n parentChannelName: this.options.channelName,\r\n inputId: 'tag-select',\r\n selectEvent: 'add:tag',\r\n typeaheadConfigs: this.getTypeaheadConfigs(),\r\n placeholderText: LanguageService.getPhrase(this.lang, 'placeholder'),\r\n callbacks: {\r\n onRender: TypeaheadHelper.selectFirstResult,\r\n onBlur: TypeaheadHelper.clearInputOnBlur,\r\n },\r\n typeaheadOptions: {\r\n hint: false,\r\n },\r\n actionOptions: {\r\n clearOnSelect: true\r\n }\r\n }));\r\n }\r\n\r\n private renderTagList(): void {\r\n if (this.showEmptyStateText())\r\n return;\r\n\r\n this.showChildView('tagList', new TagComponentCollection({\r\n collection: this.collection,\r\n channelName: this.options.channelName,\r\n behavior: this.options.behavior,\r\n orientation: this.options.orientation,\r\n removeEvent: this.options.removeEvent\r\n }));\r\n }\r\n\r\n public onRender(): void {\r\n this.renderTagSelector();\r\n this.renderTagList();\r\n }\r\n}\r\n","var Handlebars = require('handlebars');\nmodule.exports = (Handlebars['default'] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n return \"<div class=\\\"tab-region\\\"></div>\\r\\n<div class=\\\"edit-content-region\\\"></div>\\r\\n<div class=\\\"dialog-region\\\"></div>\";\n},\"useData\":true});","import * as _ from 'underscore';\r\nimport { ObjectHash } from 'backbone';\r\nimport { Radio } from 'backbone';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { DevError } from 'libs/common/backbone/errors/DevError';\r\nimport { ViewModelService } from 'libs/common/backbone/services/ViewModelService';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { CommonChannels } from 'libs/common/backbone/constants/CommonChannels';\r\nimport { InstanceManager } from 'libs/common/backbone/services/InstanceManager';\r\nimport { DataServiceErrorType } from 'libs/common/backbone/enums/DataServiceErrorType';\r\nimport { DataServiceError } from 'libs/common/backbone/interfaces';\r\n\r\nimport { DataPrefixes, DataServices, DataChannels, Services } from 'shared/constants';\r\nimport { RatingCollection } from 'shared/collections/RatingCollection';\r\nimport { FolderCollection } from 'shared/collections/FolderCollection';\r\nimport { TagCollection } from 'shared/collections/TagCollection';\r\nimport { LibraryCollection } from 'shared/collections/LibraryCollection';\r\nimport { SeasonCollection } from 'shared/collections/SeasonCollection';\r\nimport { NavLockService } from 'shared/services/NavigationLockService';\r\nimport { UserDataServiceHelper } from 'shared/services/UserDataService';\r\nimport { AlertService } from 'shared/services/AlertService';\r\nimport { PermissionsHelper, DialogHelper, TabHelper, CollectionHelpers } from 'shared/utils';\r\nimport { Video } from 'shared/models/Video';\r\nimport { Tag } from 'shared/models/Tag';\r\nimport { Series } from 'shared/models/Series';\r\nimport { Folder } from 'shared/models/Folder';\r\nimport { User } from 'shared/models/User';\r\nimport { Distributor } from 'shared/models/Distributor';\r\nimport { ProductionCompany } from 'shared/models/ProductionCompany';\r\nimport { Director } from 'shared/models/Director';\r\nimport { Producer } from 'shared/models/Producer';\r\nimport { Season } from 'shared/models/Season';\r\nimport { VideoAlerts } from 'shared/alerts';\r\nimport { PartialLoading } from 'shared/enums';\r\nimport { UserAction, EntityType, WorkflowPhase, LocationContext } from 'libs/analytics/interfaces';\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\n\r\n// Move to common\r\nimport { LibraryEditorActions } from 'apps/library-editor/constants';\r\nimport { VideoDataService } from 'apps/library-editor/services/VideoDataService';\r\nimport { RatingsDataService } from 'apps/library-editor/services/RatingsDataService';\r\nimport { TagDataService } from 'apps/library-editor/services/TagDataService';\r\nimport { SeriesDataService } from 'apps/library-editor/services/SeriesDataService';\r\nimport { LibraryDataServiceHelper, LibraryDataService } from 'apps/library-editor/services/LibraryDataService';\r\nimport { CompanyDataService } from 'apps/library-editor/services/CompanyDataService';\r\nimport { PersonDataService } from 'apps/library-editor/services/PersonDataService';\r\nimport { FieldsDataService } from 'apps/library-editor/services/FieldsDataService';\r\nimport { VideoValidation, EditVideoHelpers, ProductionYearValidation, FieldValidation, GetDefaultFields, FieldAssocValidation } from 'apps/library-editor/utils/EditVideoHelpers';\r\nimport { EditVideoDetailsComponent } from 'apps/library-editor/components/edit-video/EditVideoDetailsComponent';\r\nimport { EditVideoTabsComponent } from 'apps/library-editor/components/edit-video-tabs/EditVideoTabsComponent';\r\nimport { ForbiddenVideoError } from 'apps/library-editor/errors/forbidden-video/ForbiddenVideoError';\r\nimport { VideoNotFoundError } from 'apps/library-editor/errors/video-not-found/VideoNotFoundError';\r\nimport { MigrationVideoDataService } from 'apps/migration-wizard/services/MigrationVideoDataService';\r\n\r\nimport EditVideoTemplate from './EditVideo.hbs';\r\n\r\ninterface EditVideoViewOptions extends Core.ViewOptions<Video> {\r\n videoId: string;\r\n}\r\n\r\ninterface SaveOptions {\r\n dataChanges: ObjectHash;\r\n pendingDissocs: ObjectHash;\r\n updatedVideo?: ObjectHash;\r\n}\r\n\r\nexport class EditVideoView extends Core.View<Video> {\r\n protected options: EditVideoViewOptions;\r\n\r\n private videoDataService: VideoDataService;\r\n private tagDataService: TagDataService;\r\n private seriesDataService: SeriesDataService;\r\n private libraryDataService: LibraryDataService;\r\n private ratingsDataService: RatingsDataService;\r\n private migrationVideoDataService: MigrationVideoDataService;\r\n private fieldsDataService: FieldsDataService;\r\n private alertService: AlertService;\r\n private companyDataService: CompanyDataService;\r\n private personDataService: PersonDataService;\r\n\r\n private libraries: FolderCollection;\r\n private folder: Folder;\r\n private hostedLibraries: LibraryCollection;\r\n private ratings: RatingCollection;\r\n private currentUser: User;\r\n private publisherVideo: Core.Model;\r\n\r\n public viewModel: Video;\r\n private navLock: NavLockService;\r\n\r\n /**\r\n * @description\r\n * Editable state is determined based on the library origin\r\n * of the video. If the video exists in a non-custom library\r\n * (ie. Hosted library or the Exchange) it will not be editable.\r\n */\r\n private editable: boolean = false;\r\n\r\n constructor(options: EditVideoViewOptions) {\r\n super(options);\r\n }\r\n\r\n public get name(): string {\r\n return 'EditVideoView';\r\n }\r\n\r\n public get title(): string {\r\n return this.model && this.model.get('name');\r\n }\r\n\r\n public get lang(): string {\r\n return 'libraryEditor.editVideo';\r\n }\r\n\r\n public get className(): string {\r\n return 'bg-white p-3';\r\n }\r\n\r\n public get channelName(): string {\r\n return `${this.name}:${this.cid}`;\r\n }\r\n\r\n public get viewModelName(): string {\r\n return `${this.name}:${this.options.videoId}`;\r\n }\r\n\r\n public get template(): any {\r\n return EditVideoTemplate;\r\n }\r\n\r\n public regions(): ObjectHash {\r\n return {\r\n tabs: {\r\n el: '.tab-region',\r\n replaceElement: true,\r\n partialLoading: PartialLoading.EditVideoTabs,\r\n },\r\n content: {\r\n el: '.edit-content-region',\r\n replaceElement: true,\r\n partialLoading: PartialLoading.EditVideoDetails,\r\n }\r\n };\r\n }\r\n\r\n public initialize(): void {\r\n this.navLock = InstanceManager.getInstance(Services.NavLock, this);\r\n this.initDataListeners();\r\n TabHelper.initBackButton();\r\n\r\n this.initServices();\r\n }\r\n\r\n public initServices(): void {\r\n this.videoDataService = InstanceManager.getInstance(DataServices.Video, this);\r\n this.tagDataService = InstanceManager.getInstance(DataServices.Tags, this);\r\n this.libraryDataService = InstanceManager.getInstance(DataServices.Library, this);\r\n this.seriesDataService = InstanceManager.getInstance(DataServices.Series, this);\r\n this.ratingsDataService = InstanceManager.getInstance(DataServices.Ratings, this);\r\n this.migrationVideoDataService = InstanceManager.getInstance(DataServices.MigrationVideo, this);\r\n this.fieldsDataService = InstanceManager.getInstance(DataServices.Fields, this);\r\n this.alertService = InstanceManager.getInstance(Services.Alerts, this);\r\n this.personDataService = InstanceManager.getInstance(DataServices.Person, this);\r\n this.companyDataService = InstanceManager.getInstance(DataServices.Company, this);\r\n }\r\n\r\n public initDataListeners(): void {\r\n this.listenTo(CommonChannels.SHELL, Core.EventNames.NAV_UNLOCKED_BY_USER, this.onNavigateAway);\r\n\r\n this.listenTo(DataChannels.VIDEO, `videos:${this.options.videoId}:sync`, this.render);\r\n this.listenTo(DataChannels.VIDEO, `videos:${this.options.videoId}:error`, this.onError);\r\n this.listenTo(DataChannels.RATINGS, `${DataPrefixes.RATINGS}:sync`, this.render);\r\n this.listenTo(DataChannels.VIDEO,\r\n `${DataPrefixes.UPDATE_VIDEO_THUMBNAIL}:${this.options.videoId}:sync`, this.onThumbnailUpdated);\r\n this.listenTo(DataChannels.LIBRARY, `hosted:libraries:sync`, this.render);\r\n\r\n /**\r\n * Tap into changes occuring within child components\r\n */\r\n // Select model events\r\n this.listenTo(this.channelName, 'select:rating', _.partial(this.onTypeaheadSelection, _, 'rating'));\r\n this.listenTo(this.channelName, 'select:channel', _.partial(this.onTypeaheadSelection, _, 'channel'));\r\n this.listenTo(this.channelName, 'select:series', this.onSelectSeries);\r\n this.listenTo(this.channelName, 'add:season', this.onSelectSeason);\r\n\r\n // Add to collection events\r\n this.listenTo(this.channelName, 'add:distributors', this.onSelectDistributor);\r\n this.listenTo(this.channelName, 'add:productionCompanies', this.onSelectProductionCompany);\r\n this.listenTo(this.channelName, 'add:directors', this.onSelectDirector);\r\n this.listenTo(this.channelName, 'add:producers', this.onSelectProducer);\r\n this.listenTo(this.channelName, 'add:tag', this.onAddTag);\r\n\r\n // Remove from collection events\r\n this.listenTo(this.channelName, 'remove:distributors', this.onRemoveDistributor);\r\n this.listenTo(this.channelName, 'remove:productionCompanies', this.onRemoveProductionCompany);\r\n this.listenTo(this.channelName, 'remove:directors', this.onRemoveDirector);\r\n this.listenTo(this.channelName, 'remove:producers', this.onRemoveProducer);\r\n this.listenTo(this.channelName, 'remove:tag', this.onRemoveTag);\r\n\r\n this.listenTo(this.channelName, LibraryEditorActions.Save, this.onSave);\r\n this.listenTo(this.channelName, LibraryEditorActions.Undo, this.onUndo);\r\n this.listenTo(this.channelName, LibraryEditorActions.DetectInput, this.onTypeaheadInput);\r\n\r\n this.listenTo(this.channelName, 'image:load', this.onBeforeThumbnailUpload);\r\n }\r\n\r\n private onError(error: DataServiceError): void {\r\n switch (error.type) {\r\n case DataServiceErrorType.NotFound:\r\n Core.ErrorHelper.throw(new VideoNotFoundError());\r\n break;\r\n case DataServiceErrorType.Forbidden:\r\n Core.ErrorHelper.throw(new ForbiddenVideoError());\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Invoked from selecting a typeahead option, which returns the raw JSON of the selected model.\r\n * Using the same callback dynamically for different assoc/model type.\r\n */\r\n private onTypeaheadSelection(newModelObject: ObjectHash, modelType: string, isCollection?: boolean): void {\r\n if (isCollection) {\r\n const collection = this.viewModel.get(modelType);\r\n\r\n const existingModels = collection.filter({ name: newModelObject.name });\r\n _.each(existingModels, existing => collection.remove(existing));\r\n\r\n collection.add(newModelObject);\r\n } else {\r\n this.viewModel.set(modelType, newModelObject);\r\n }\r\n\r\n this.onModelChange(newModelObject, { manualUpdate: true });\r\n }\r\n\r\n /**\r\n * Detect when a user has cleared out an existing typeahead option. Where this is the case\r\n * we need to clear the existing assoc/model value from our viewModel to ensure we can save.\r\n * Using the same callback dynamically for different assoc/model type.\r\n *\r\n * @param val\r\n * @param modelType\r\n */\r\n private onTypeaheadInput(model: Core.Model, modelType: string, options: ObjectHash): void {\r\n if (model.get('name')) return;\r\n\r\n if (options && options.isCollection) {\r\n this.viewModel.get(modelType).remove(model.get('id'), { silent: true });\r\n } else {\r\n this.viewModel.get(modelType).clear({ silent: true });\r\n }\r\n\r\n this.onModelChange(null, { manualUpdate: true });\r\n\r\n // As a side effect of series being cleared, season and episode number inputs are locked.\r\n if (modelType === 'series') {\r\n this.validateSeries();\r\n Radio.channel(this.channelName).trigger('clear:series');\r\n }\r\n }\r\n\r\n private onSelectSeries(seriesObject: ObjectHash): void {\r\n // Handle the assoc against an existing series\r\n if (seriesObject.id) {\r\n // Fetching series here is required to get its associated seasons\r\n this.seriesDataService.getSeries(seriesObject.id, (series: Series) => {\r\n this.viewModel.unset('season');\r\n this.viewModel.set('episodeNumber', null);\r\n this.onTypeaheadSelection(series.toJSON(), 'series');\r\n });\r\n\r\n return;\r\n }\r\n\r\n if (!seriesObject.name)\r\n return;\r\n\r\n // Attempt to create a new series\r\n this.seriesDataService.createSeries(seriesObject.name, (newSeries: Series) => {\r\n this.viewModel.unset('season');\r\n this.viewModel.set('episodeNumber', null);\r\n this.onTypeaheadSelection({ id: newSeries.id }, 'series');\r\n });\r\n }\r\n\r\n private onSelectSeason(season: ObjectHash): void {\r\n if (_.isNull(season)) {\r\n this.viewModel.get('season').clear({ silent: true });\r\n this.viewModel.set('episodeNumber', null);\r\n CollectionHelpers.deselectAll(this.viewModel.get('series.seasons'));\r\n this.onModelChange(null, { manualUpdate: true });\r\n return;\r\n }\r\n\r\n // If user select an option from the season dropdown\r\n if (season.id) {\r\n this.viewModel.set('season', season);\r\n CollectionHelpers.setSelected(season.id, this.viewModel.get('series.seasons'));\r\n this.onModelChange(season, { manualUpdate: true });\r\n return;\r\n }\r\n\r\n if (!season.number)\r\n return;\r\n\r\n // Creating a new season\r\n const seriesId = this.viewModel.get('series.id');\r\n this.seriesDataService.createSeason(season, seriesId, (newSeason: Season) => {\r\n this.viewModel.set('season', newSeason.toJSON());\r\n\r\n !this.viewModel.get('series.seasons') && this.viewModel.get('series').set('seasons', new SeasonCollection());\r\n this.viewModel.get('series.seasons').add(newSeason.toJSON());\r\n\r\n CollectionHelpers.setSelected(newSeason.id, this.viewModel.get('series.seasons'));\r\n\r\n this.onModelChange(newSeason.toJSON(), { manualUpdate: true });\r\n this.render();\r\n });\r\n }\r\n\r\n private onSelectDistributor(distributorObject: ObjectHash): void {\r\n if (distributorObject.id) {\r\n this.onTypeaheadSelection(distributorObject, 'distributors', true);\r\n return;\r\n }\r\n\r\n if (!distributorObject.name) return;\r\n this.companyDataService.createCompany(distributorObject.name, (newDistributor: Distributor) => {\r\n this.onTypeaheadSelection(newDistributor.toJSON(), 'distributors', true);\r\n });\r\n }\r\n\r\n private onSelectProductionCompany(productionCompanyObject: ObjectHash): void {\r\n if (productionCompanyObject.id) {\r\n this.onTypeaheadSelection(productionCompanyObject, 'productionCompanies', true);\r\n return;\r\n }\r\n\r\n if (!productionCompanyObject.name) return;\r\n this.companyDataService.createCompany(productionCompanyObject.name, (newProductionCompany: ProductionCompany) => {\r\n this.onTypeaheadSelection(newProductionCompany.toJSON(), 'productionCompanies', true);\r\n });\r\n }\r\n\r\n private onSelectDirector(director: ObjectHash): void {\r\n if (director.id) {\r\n this.onTypeaheadSelection(director, 'directors', true);\r\n return;\r\n }\r\n\r\n if (!director.name) return;\r\n this.personDataService.createPerson(director.name, (newDirector: Director) => {\r\n this.onTypeaheadSelection(newDirector.toJSON(), 'directors', true);\r\n });\r\n }\r\n\r\n private onSelectProducer(producer: ObjectHash): void {\r\n if (producer.id) {\r\n this.onTypeaheadSelection(producer, 'producers', true);\r\n return;\r\n }\r\n\r\n if (!producer.name) return;\r\n this.personDataService.createPerson(producer.name, (newProducer: Producer) => {\r\n this.onTypeaheadSelection(newProducer.toJSON(), 'producers', true);\r\n });\r\n }\r\n\r\n private onRemoveDistributor(distributor: ObjectHash): void {\r\n this.removeFromCollection(distributor, 'distributors');\r\n }\r\n\r\n private onRemoveProductionCompany(productionCompany: ObjectHash): void {\r\n this.removeFromCollection(productionCompany, 'productionCompanies');\r\n }\r\n\r\n private onRemoveDirector(director: ObjectHash): void {\r\n this.removeFromCollection(director, 'directors');\r\n }\r\n\r\n private onRemoveProducer(producer: ObjectHash): void {\r\n this.removeFromCollection(producer, 'producers');\r\n }\r\n\r\n private removeFromCollection(object: ObjectHash, modelType: string): void {\r\n if (!object || !object.id || !modelType) return;\r\n\r\n this.viewModel.get(modelType).remove(object.id);\r\n this.onModelChange(null, { manualUpdate: true });\r\n }\r\n\r\n /**\r\n * Tag management logic\r\n */\r\n\r\n private onAddTag(tag: ObjectHash): void {\r\n if (!tag || !tag.name) return;\r\n\r\n /**\r\n * Tags should always be lowercase. This is also enforced by master.\r\n */\r\n const tagName = tag.name.trim().toLowerCase();\r\n\r\n /**\r\n * Ensure that no whitespace-only tags get\r\n */\r\n if (!tagName) return;\r\n\r\n /**\r\n * Don't allow a new tag to be created if it already exists on the video, either\r\n * as a ClickView tag or a customer tag.\r\n */\r\n const existingTag = CollectionHelpers.findModelByName<Tag, TagCollection>(tagName, this.viewModel.tags);\r\n if (existingTag) return;\r\n\r\n /**\r\n * @important\r\n * We are relying on core functionality within Domain's create object endpoint to ensure that if a\r\n * tag is created with the same name as another tag that belongs to that *specific* customer, it will\r\n * return the pre-existing tag.\r\n * \r\n * This is necessary as the tag typeahead will include both ClickView and Customer tag suggestions \r\n * and we *cannot* reliably use the permission object that is passed through the typeahead. It will\r\n * also ensure that users will not be able to inadvertently created assocations for CV tags.\r\n * - Mike\r\n */\r\n const newTag = new Tag({ name: tagName });\r\n this.viewModel.tags.add(newTag);\r\n\r\n /**\r\n * Once the tag has been created, merge the attributes with the existing model.\r\n * We do this as we don't initially have an id for the tag, so technically we cannot\r\n * dissoc it yet.\r\n */\r\n this.tagDataService.createTag(tagName, this.model.get('id'), (data: Tag) => {\r\n\r\n // Override the client-side model with the server-created props\r\n newTag.set(data.toJSON());\r\n Radio.channel(this.channelName)\r\n .trigger('update:tags');\r\n });\r\n }\r\n\r\n private onRemoveTag(tag: Tag): void {\r\n if (!(tag instanceof Tag) || !tag.id) return;\r\n\r\n this.tagDataService.dissociateTag(tag.id, this.model.get('id'), () => {\r\n this.viewModel.tags.remove(tag);\r\n Radio.channel(this.channelName).trigger('update:tags');\r\n this.logDissocAction(this.model.get('id'), tag, EntityType.Tag);\r\n });\r\n }\r\n\r\n private saveFields(options: SaveOptions, next: Core.MiddlewareNext<SaveOptions>): void {\r\n let doneCount = 0;\r\n\r\n /**\r\n * We need updatedVideo to be set so that this.updateChanges is called in this.afterSave\r\n */\r\n options.updatedVideo = _.extend({}, options.updatedVideo || {});\r\n const done = () => {\r\n doneCount++;\r\n\r\n if (doneCount === options.dataChanges.fields.length) next(options);\r\n };\r\n\r\n _.each(options.dataChanges.fields, (f: ObjectHash) => {\r\n if (f.id && !f.value) {\r\n this.viewModel.fields.remove(this.viewModel.fields.findWhere({ id: f.id }));\r\n this.fieldsDataService.deleteField(f.id, done);\r\n return;\r\n }\r\n\r\n if (!f.id || f.id > 0) {\r\n this.fieldsDataService.updateField(f, done);\r\n return;\r\n }\r\n\r\n this.fieldsDataService.addField(this.options.videoId, f, (updatedField: ObjectHash) => {\r\n const oldField = this.viewModel.fields.findWhere({ id: f.id });\r\n oldField.set('id', updatedField.id);\r\n done();\r\n });\r\n });\r\n }\r\n\r\n private bulkDissoc(options: SaveOptions, next: Core.MiddlewareNext<SaveOptions>): void {\r\n this.videoDataService.bulkDissoc(this.model.id, options.pendingDissocs, () => {\r\n next(options);\r\n });\r\n }\r\n\r\n private saveVideo(options: SaveOptions, next: Core.MiddlewareNext<SaveOptions>): void {\r\n const dataChanges = _.omit(options.dataChanges, 'fields');\r\n\r\n if (_.isEmpty(dataChanges)) {\r\n next(options);\r\n return;\r\n }\r\n const data = _.omit(options.dataChanges, 'fields');\r\n\r\n this.videoDataService.updateVideo(this.model.get('id'), this.folder.get('id'), data,\r\n (updatedVideo: ObjectHash) => {\r\n if ((options.dataChanges.series && options.dataChanges.series.id)\r\n || options.dataChanges.episodeNumber\r\n || options.dataChanges.season)\r\n this.videoDataService.clearVideoCache();\r\n\r\n options.updatedVideo = _.extend({}, options.updatedVideo || {}, updatedVideo);\r\n\r\n next(options);\r\n });\r\n }\r\n\r\n private afterSave(options: SaveOptions): void {\r\n if (!this.viewModel)\r\n return;\r\n\r\n if (options.updatedVideo)\r\n this.updateState(options.updatedVideo);\r\n\r\n this.unlockNav();\r\n this.updateSaveButton(LibraryEditorActions.DisableSave);\r\n\r\n this.logEditAction(options.dataChanges, WorkflowPhase.Save);\r\n\r\n const successHandler = VideoAlerts.updatedVideoAlert(this.viewModel.get('name'));\r\n this.alertService.success(successHandler || 'Video was successfully updated')();\r\n }\r\n\r\n /**\r\n * Save logic\r\n */\r\n private onSave(): boolean {\r\n this.viewModel.validate();\r\n\r\n if (this.viewModel.isValid() === false) {\r\n this.updateSaveButton(LibraryEditorActions.CancelSave);\r\n return false;\r\n }\r\n\r\n this.validateSeries();\r\n\r\n const dataChanges = EditVideoHelpers.getChanges(this.model, this.viewModel);\r\n const pendingDissocs = EditVideoHelpers.getRemovedObjectIds(this.model, this.viewModel);\r\n\r\n if (!dataChanges && !_.keys(pendingDissocs).length) {\r\n this.updateSaveButton(LibraryEditorActions.CancelSave);\r\n return false;\r\n }\r\n\r\n const middleware = new Core.Middleware<any>();\r\n\r\n if (dataChanges && dataChanges.fields)\r\n middleware.use(_.bind(this.saveFields, this));\r\n\r\n if (pendingDissocs && _.keys(pendingDissocs).length)\r\n middleware.use(_.bind(this.bulkDissoc, this));\r\n\r\n if (this.editable)\r\n middleware.use(_.bind(this.saveVideo, this));\r\n\r\n middleware.use(_.bind(this.afterSave, this));\r\n\r\n middleware.go({ dataChanges, pendingDissocs }, null);\r\n return false;\r\n }\r\n\r\n private onUndo(): void {\r\n const dialogHelper = new DialogHelper({\r\n title: LanguageService.getPhrase(this.lang, 'undoTitle'),\r\n text: LanguageService.getPhrase(this.lang, 'undoBody', { videoName: this.model.get('name') }),\r\n buttons: [{\r\n text: LanguageService.getPhrase(this.lang, 'undo'),\r\n className: 'btn btn-danger',\r\n success: true,\r\n }, {\r\n text: LanguageService.getPhrase(this.lang, 'cancel'),\r\n className: 'btn btn-secondary',\r\n close: true,\r\n }]\r\n });\r\n\r\n dialogHelper.render().done(() => {\r\n this.logEditAction({}, WorkflowPhase.Discard);\r\n this.revertState({ undo: true });\r\n this.render();\r\n });\r\n }\r\n\r\n /**\r\n * After saving the current model, we want to refresh both the\r\n * video model and the viewModel.\r\n */\r\n private updateState(updatedVideo: any): void {\r\n // Stop listening to existing view model and clear it\r\n this.stopListening(this.viewModel);\r\n\r\n EditVideoHelpers.updateModelState(this.model, this.viewModel, updatedVideo);\r\n\r\n ViewModelService.clear(this.viewModelName);\r\n\r\n // Revert the view model to its initial state and listen for new changes\r\n this.getViewModel();\r\n this.renderContent();\r\n }\r\n\r\n private onNavigateAway(): void {\r\n this.revertState();\r\n }\r\n\r\n /**\r\n * Revert the current viewModel state back to being a copy of the current\r\n * video model.\r\n */\r\n private revertState(options: ObjectHash = {}): void {\r\n const { undo } = options;\r\n\r\n // Stop listening to existing view model and clear it\r\n this.stopListening(this.viewModel);\r\n ViewModelService.clear(this.viewModelName);\r\n delete this.viewModel;\r\n\r\n this.unlockNav();\r\n\r\n // Only re-init the viewModel if we're undoing changes.\r\n if (!undo)\r\n return;\r\n\r\n // Revert the view model to its initial state and listen for new changes\r\n this.getViewModel();\r\n }\r\n\r\n private lockNav(): void {\r\n this.navLock.lock({\r\n title: LanguageService.getPhrase(this.lang, 'navLockHeading'),\r\n text: LanguageService.getPhrase(this.lang, 'navLockBody')\r\n });\r\n }\r\n\r\n private unlockNav(): void {\r\n this.navLock.unlock();\r\n }\r\n\r\n private onBeforeThumbnailUpload(): void {\r\n if (!this.navLock.isLocked())\r\n return;\r\n\r\n this.navLock.unlock();\r\n const viewModel = ViewModelService.get<Core.Model>('upload:thumbnail:options');\r\n viewModel.set('lockNav', true);\r\n }\r\n\r\n /**\r\n * We are mapping against the backbone change event triggered by stickit, as the model itself\r\n * has already been updated, we're only concerned with the additional options param.\r\n *\r\n * @param model\r\n * @param options\r\n */\r\n private onModelChange(model: Core.Model | ObjectHash, options: ObjectHash = {}): void {\r\n if (!options.stickitChange && !options.manualUpdate) return;\r\n\r\n this.viewModel.validate();\r\n if (this.viewModel.isValid() === false) {\r\n this.updateSaveButton(LibraryEditorActions.DisableSave);\r\n return;\r\n }\r\n\r\n const hasChanges =\r\n EditVideoHelpers.getChanges(this.model, this.viewModel) ||\r\n _.keys(EditVideoHelpers.getRemovedObjectIds(this.model, this.viewModel)).length;\r\n\r\n if (!hasChanges) {\r\n this.unlockNav();\r\n this.updateSaveButton(LibraryEditorActions.DisableSave);\r\n return;\r\n }\r\n\r\n this.lockNav();\r\n this.updateSaveButton(LibraryEditorActions.EnableSave);\r\n }\r\n\r\n private updateSaveButton(saveEvent: string): void {\r\n const viewEventChannel = Radio.channel(this.channelName);\r\n\r\n const { EnableSave, DisableSave, CancelSave } = LibraryEditorActions;\r\n\r\n switch (saveEvent) {\r\n case EnableSave:\r\n viewEventChannel.trigger(EnableSave);\r\n return;\r\n\r\n case DisableSave:\r\n viewEventChannel.trigger(DisableSave);\r\n return;\r\n\r\n case CancelSave:\r\n viewEventChannel.trigger(CancelSave);\r\n return;\r\n }\r\n\r\n Core.ErrorHelper.throw(new DevError('Save action type is not valid.'));\r\n }\r\n\r\n private onThumbnailUpdated(): void {\r\n this.videoDataService.clearCacheAndGetVideo(this.options.videoId, (data: Video) => {\r\n this.model = data;\r\n this.viewModel.set('thumbnail', this.model.thumbnail.toJSON());\r\n });\r\n }\r\n\r\n private logEditAction(data: ObjectHash, workflowPhase: WorkflowPhase): void {\r\n const analyticsData = { id: this.model.get('id'), ...data };\r\n\r\n AnalyticsHelper.logUserAction(analyticsData, {\r\n actionType: UserAction.Edit,\r\n entity: EntityType.Video,\r\n location: LocationContext.EditVideoDetails,\r\n workflowPhase\r\n });\r\n }\r\n\r\n private logDissocAction(videoId: number, model: Core.Model, modelType: EntityType): void {\r\n const analyticsData = { videoId, ...model.pick('id', 'name') };\r\n\r\n AnalyticsHelper.logUserAction(analyticsData, {\r\n actionType: UserAction.Dissociate,\r\n entity: modelType,\r\n location: LocationContext.EditVideoDetails\r\n });\r\n }\r\n\r\n private onValidation(isValid: boolean): void {\r\n this.viewModel.set('disabled', !isValid);\r\n }\r\n\r\n private getViewModel(): void {\r\n if (!this.model.fields || !this.model.fields.length)\r\n this.model.set('fields', GetDefaultFields());\r\n\r\n this.viewModel = ViewModelService.get<Video>(this.viewModelName, this.model.toJSON(), { ctor: Video });\r\n\r\n // Bind our validation\r\n if (this.editable) {\r\n this.viewModel.addValidation(VideoValidation);\r\n this.viewModel.addValidation(ProductionYearValidation);\r\n }\r\n this.viewModel.addValidation(FieldAssocValidation);\r\n\r\n this.listenTo(this.viewModel, 'validated', this.onValidation);\r\n this.listenTo(this.viewModel, 'change', this.onModelChange);\r\n this.listenTo(this.viewModel, 'change:dateBroadcast', _.partial(this.onModelChange, _, { manualUpdate: true }));\r\n\r\n if (this.viewModel.fields) {\r\n this.viewModel.fields && this.viewModel.fields.each(f => f.addValidation(FieldValidation));\r\n this.listenTo(this.viewModel.fields, 'change', this.onModelChange);\r\n }\r\n }\r\n\r\n /**\r\n * If the user has deselected a series, we clear the season and episode number.\r\n */\r\n private validateSeries(): void {\r\n if (this.viewModel.get('series.id')) return;\r\n\r\n this.viewModel.unset('season');\r\n this.viewModel.set('episodeNumber', null);\r\n }\r\n\r\n private fetchData(): void {\r\n this.model = this.videoDataService.getVideo(this.options.videoId);\r\n this.ratings = this.ratingsDataService.getAllRatings();\r\n this.hostedLibraries = this.libraryDataService.getHostedLibraries();\r\n\r\n this.migrationVideoDataService.getCustomerVideoByMasterId(this.options.videoId, video => {\r\n const triggerRender = !!this.publisherVideo;\r\n this.publisherVideo = video;\r\n triggerRender && this.isRendered() && this.renderContent();\r\n });\r\n\r\n if (!this.model)\r\n return;\r\n\r\n this.editable = PermissionsHelper.canEditVideo(this.model);\r\n\r\n this.folder = this.model.categories.first();\r\n\r\n if (!this.ratings || !this.hostedLibraries)\r\n return;\r\n\r\n // If we already have a viewModel instance don't try to re-bind it\r\n if (this.viewModel instanceof Video)\r\n return;\r\n\r\n this.getViewModel();\r\n }\r\n\r\n public get requiredResources(): Core.RequiredResourceHash {\r\n return {\r\n libraries: LibraryDataServiceHelper.libraries,\r\n currentUser: UserDataServiceHelper.currentUser\r\n };\r\n }\r\n\r\n public onBeforeRender(): boolean {\r\n this.fetchData();\r\n return !!this.model && !!this.ratings && !!this.viewModel;\r\n }\r\n\r\n private renderContent(): void {\r\n const hasChanges =\r\n EditVideoHelpers.getChanges(this.model, this.viewModel) ||\r\n _.keys(EditVideoHelpers.getRemovedObjectIds(this.model, this.viewModel)).length;\r\n\r\n // Needs to render\r\n this.showChildView('content', new EditVideoDetailsComponent({\r\n model: this.viewModel,\r\n ratings: this.ratings,\r\n libraries: this.libraries,\r\n hostedLibraries: this.hostedLibraries,\r\n channelName: this.channelName,\r\n isSaveDisabled: !hasChanges,\r\n hasChanges: !!hasChanges,\r\n editable: this.editable,\r\n currentUser: this.currentUser,\r\n showPublisherVideoDetails: !!this.publisherVideo\r\n }));\r\n }\r\n\r\n private renderTabs(): void {\r\n this.showChildView('tabs', new EditVideoTabsComponent({\r\n tabs: TabHelper.getEditVideoTabs(this.options.videoId, { hideChaptersTab: !this.editable }),\r\n activeTab: '.edit-video-applink',\r\n goBackTab: TabHelper.getBackButton(this.options.videoId)\r\n }));\r\n }\r\n\r\n public onRender(): void {\r\n this.renderTabs();\r\n this.renderContent();\r\n }\r\n}\r\n","var Handlebars = require('handlebars');\nmodule.exports = (Handlebars['default'] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n return \"<h5 class=\\\"mb-0\\\">Extra Information</h5>\\r\\n<div class=\\\"text-muted mb-3\\\">This information is only visible to admins and will not be searchable</div>\\r\\n<div class=\\\"fields-region\\\"></div>\";\n},\"useData\":true});","import { Core } from 'libs/common/core';\r\n\r\nimport { ObjectHash } from 'backbone';\r\nimport { Video } from 'shared/models/Video';\r\nimport { ExtraInfoItemComponent, ExtraInfoItemComponentOptions } from './ExtraInfoItemComponent';\r\n\r\nimport ExtraInfoTemplate from './ExtraInfo.hbs';\r\n\r\ninterface ExtraInfoComponentCollectionOptions extends Core.ComponentCollectionOptions {\r\n viewModel: Video;\r\n}\r\n\r\nclass ExtraInfoComponentCollection extends Core.ComponentCollection {\r\n protected options: ExtraInfoComponentCollectionOptions;\r\n\r\n constructor(options: ExtraInfoComponentCollectionOptions) {\r\n super(options);\r\n }\r\n\r\n public get name(): string {\r\n return 'ExtraInfoComponentCollection';\r\n }\r\n\r\n public get childView(): typeof ExtraInfoItemComponent {\r\n return ExtraInfoItemComponent;\r\n }\r\n\r\n public get childViewOptions(): ExtraInfoItemComponentOptions {\r\n return {\r\n viewModel: this.options.viewModel\r\n };\r\n }\r\n}\r\n\r\ninterface ExtraInfoComponentOptions extends Core.ComponentOptions<Video> {\r\n model: Video;\r\n}\r\n\r\nexport class ExtraInfoComponent extends Core.Component<Video> {\r\n public options: ExtraInfoComponentOptions;\r\n\r\n constructor(options: ExtraInfoComponentOptions) {\r\n super(options);\r\n }\r\n\r\n public get name(): string {\r\n return 'ExtraInfoComponent';\r\n }\r\n\r\n public get template(): any {\r\n return ExtraInfoTemplate;\r\n }\r\n\r\n public get className(): string {\r\n return 'border-top pt-3';\r\n }\r\n\r\n public regions(): ObjectHash {\r\n return {\r\n fields: {\r\n el: '.fields-region',\r\n replaceElement: true\r\n }\r\n };\r\n }\r\n\r\n public onRender(): void {\r\n this.showChildView('fields', new ExtraInfoComponentCollection({\r\n collection: this.model.fields,\r\n viewModel: this.model\r\n }));\r\n }\r\n}","var Handlebars = require('handlebars');\nmodule.exports = (Handlebars['default'] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=container.propertyIsEnumerable;\n\n return \"<div class=\\\"form-group\\\">\\r\\n <label for=\\\"edit-description\\\">\"\n + container.escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"name\",\"hash\":{},\"data\":data}) : helper)))\n + \"</label>\\r\\n <div class=\\\"text-area-region\\\"></div>\\r\\n <div class=\\\"form-feedback\\\"></div>\\r\\n</div>\";\n},\"useData\":true});","import { Validation, ObjectHash } from 'backbone';\r\nimport { Core } from 'libs/common/core';\r\n\r\nimport { Video } from 'shared/models/Video';\r\nimport { ResizingTextAreaComponent } from 'shared/components/resizing-text-area/ResizingTextAreaComponent';\r\n\r\nimport ExtraInfoItemTemplate from './ExtraInfoItem.hbs';\r\n\r\nexport interface ExtraInfoItemComponentOptions extends Core.ComponentOptions {\r\n viewModel: Video;\r\n}\r\n\r\nexport class ExtraInfoItemComponent extends Core.Component {\r\n protected options: ExtraInfoItemComponentOptions;\r\n\r\n constructor(options: ExtraInfoItemComponentOptions) {\r\n super(options);\r\n }\r\n\r\n public initialize(): void {\r\n this.listenTo(this.model, 'change', () => this.options.viewModel.validate());\r\n }\r\n\r\n public get template(): any {\r\n return ExtraInfoItemTemplate;\r\n }\r\n\r\n public get name(): string {\r\n return 'ExtraInfoItemComponent';\r\n }\r\n\r\n public regions(): ObjectHash {\r\n return {\r\n textArea: {\r\n el: '.text-area-region',\r\n replaceElement: true\r\n }\r\n };\r\n }\r\n\r\n public get bindings(): ObjectHash {\r\n return {\r\n '[name=value]': {\r\n observe: 'value',\r\n setOptions: { validate: true }\r\n }\r\n };\r\n }\r\n\r\n public onRender(): void {\r\n this.showChildView('textArea', new ResizingTextAreaComponent({\r\n name: 'value',\r\n class: 'form-control',\r\n placeholder: this.model.get('placeholder'),\r\n id: 'admin-notes'\r\n }));\r\n\r\n this.stickit();\r\n Validation.bind(this);\r\n }\r\n\r\n public onDestroy(): void {\r\n this.unstickit();\r\n Validation.unbind(this);\r\n }\r\n}"],"sourceRoot":""}
|