@clickview/library-editor 1.1.23-rc.3 → 1.1.23
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/css/1.chunk.css.map +1 -1
- package/dist/css/10.chunk.css.map +1 -1
- package/dist/css/11.chunk.css.map +1 -1
- package/dist/css/12.chunk.css.map +1 -1
- package/dist/css/13.chunk.css.map +1 -1
- package/dist/css/14.chunk.css.map +1 -1
- package/dist/css/16.chunk.css.map +1 -1
- package/dist/css/17.chunk.css.map +1 -1
- package/dist/css/18.chunk.css.map +1 -1
- package/dist/css/2.chunk.css.map +1 -1
- package/dist/css/21.chunk.css.map +1 -1
- package/dist/css/22.chunk.css.map +1 -1
- package/dist/css/23.chunk.css.map +1 -1
- package/dist/css/25.chunk.css.map +1 -1
- package/dist/css/26.chunk.css.map +1 -1
- package/dist/css/28.chunk.css.map +1 -1
- package/dist/css/29.chunk.css.map +1 -1
- package/dist/css/3.chunk.css.map +1 -1
- package/dist/css/30.chunk.css.map +1 -1
- package/dist/css/31.chunk.css.map +1 -1
- package/dist/css/32.chunk.css.map +1 -1
- package/dist/css/33.chunk.css.map +1 -1
- package/dist/css/34.chunk.css.map +1 -1
- package/dist/css/35.chunk.css.map +1 -1
- package/dist/css/36.chunk.css.map +1 -1
- package/dist/css/37.chunk.css.map +1 -1
- package/dist/css/38.chunk.css.map +1 -1
- package/dist/css/40.chunk.css.map +1 -1
- package/dist/css/41.chunk.css.map +1 -1
- package/dist/css/42.chunk.css.map +1 -1
- package/dist/css/43.chunk.css.map +1 -1
- package/dist/css/44.chunk.css.map +1 -1
- package/dist/css/45.chunk.css.map +1 -1
- package/dist/css/46.chunk.css.map +1 -1
- package/dist/css/47.chunk.css.map +1 -1
- package/dist/css/48.chunk.css.map +1 -1
- package/dist/css/49.chunk.css.map +1 -1
- package/dist/css/50.chunk.css.map +1 -1
- package/dist/css/51.chunk.css.map +1 -1
- package/dist/css/52.chunk.css.map +1 -1
- package/dist/css/55.chunk.css.map +1 -1
- package/dist/css/56.chunk.css.map +1 -1
- package/dist/css/58.chunk.css.map +1 -1
- package/dist/css/59.chunk.css.map +1 -1
- package/dist/css/6.chunk.css.map +1 -1
- package/dist/css/60.chunk.css.map +1 -1
- package/dist/css/62.chunk.css.map +1 -1
- package/dist/css/63.chunk.css.map +1 -1
- package/dist/css/67.chunk.css.map +1 -1
- package/dist/css/68.chunk.css.map +1 -1
- package/dist/css/69.chunk.css.map +1 -1
- package/dist/css/7.chunk.css.map +1 -1
- package/dist/css/70.chunk.css.map +1 -1
- package/dist/css/71.chunk.css.map +1 -1
- package/dist/css/72.chunk.css.map +1 -1
- package/dist/css/73.chunk.css.map +1 -1
- package/dist/css/74.chunk.css.map +1 -1
- package/dist/css/75.chunk.css.map +1 -1
- package/dist/css/76.chunk.css.map +1 -1
- package/dist/css/8.chunk.css.map +1 -1
- package/dist/css/library-editor-app.css.map +1 -1
- package/dist/scripts/{0-2765595d0a.chunk.js → 0-09e1e33a5c.chunk.js} +1 -1
- package/dist/scripts/0.chunk.js +1 -1
- package/dist/scripts/0.chunk.js.map +1 -1
- package/dist/scripts/{1-b6dedae131.chunk.js → 1-a66bb44471.chunk.js} +1 -1
- package/dist/scripts/1.chunk.js.map +1 -1
- package/dist/scripts/{10-8307f8e248.chunk.js → 10-6c79d8c6f9.chunk.js} +1 -1
- package/dist/scripts/10.chunk.js.map +1 -1
- package/dist/scripts/{11-9dbae07504.chunk.js → 11-6eef9e160e.chunk.js} +1 -1
- package/dist/scripts/11.chunk.js.map +1 -1
- package/dist/scripts/{12-06cf65b136.chunk.js → 12-dbffa50a92.chunk.js} +1 -1
- package/dist/scripts/12.chunk.js.map +1 -1
- package/dist/scripts/{13-3d84e237b9.chunk.js → 13-37e5cfab3e.chunk.js} +1 -1
- package/dist/scripts/13.chunk.js.map +1 -1
- package/dist/scripts/{14-988bab314d.chunk.js → 14-b524fbd295.chunk.js} +1 -1
- package/dist/scripts/14.chunk.js.map +1 -1
- package/dist/scripts/{15-eed00bc875.chunk.js → 15-1ff1252d1a.chunk.js} +1 -1
- package/dist/scripts/15.chunk.js.map +1 -1
- package/dist/scripts/{16-3a99050a93.chunk.js → 16-b27142fe98.chunk.js} +1 -1
- package/dist/scripts/16.chunk.js.map +1 -1
- package/dist/scripts/{17-bff211f26a.chunk.js → 17-c3bbe50816.chunk.js} +1 -1
- package/dist/scripts/17.chunk.js +1 -1
- package/dist/scripts/17.chunk.js.map +1 -1
- package/dist/scripts/18.chunk.js.map +1 -1
- package/dist/scripts/19.chunk.js +1 -1
- package/dist/scripts/19.chunk.js.map +1 -1
- package/dist/scripts/{2-5079f4b088.chunk.js → 2-2cc3988222.chunk.js} +1 -1
- package/dist/scripts/2.chunk.js.map +1 -1
- package/dist/scripts/{20-d4470b4a53.chunk.js → 20-6d9086f5db.chunk.js} +1 -1
- package/dist/scripts/20.chunk.js.map +1 -1
- package/dist/scripts/{21-77f6ddec3d.chunk.js → 21-2f10553302.chunk.js} +1 -1
- package/dist/scripts/21.chunk.js.map +1 -1
- package/dist/scripts/{22-9ef39722d1.chunk.js → 22-59ae44b448.chunk.js} +1 -1
- package/dist/scripts/22.chunk.js.map +1 -1
- package/dist/scripts/{23-c8071cb869.chunk.js → 23-11e008ee63.chunk.js} +1 -1
- package/dist/scripts/23.chunk.js +3 -3
- package/dist/scripts/23.chunk.js.map +1 -1
- package/dist/scripts/{24-b655377e1f.chunk.js → 24-7f21e384d2.chunk.js} +1 -1
- package/dist/scripts/24.chunk.js.map +1 -1
- package/dist/scripts/{25-f814e3921c.chunk.js → 25-f0f7fa16a4.chunk.js} +1 -1
- package/dist/scripts/25.chunk.js.map +1 -1
- package/dist/scripts/{26-9dd482e1e6.chunk.js → 26-e65533bd94.chunk.js} +1 -1
- package/dist/scripts/26.chunk.js.map +1 -1
- package/dist/scripts/{27-5ecd204dab.chunk.js → 27-9dc0f5a4df.chunk.js} +1 -1
- package/dist/scripts/27.chunk.js +3 -3
- package/dist/scripts/27.chunk.js.map +1 -1
- package/dist/scripts/{28-e9b8962af8.chunk.js → 28-26e5c371c7.chunk.js} +1 -1
- package/dist/scripts/28.chunk.js +6 -6
- package/dist/scripts/28.chunk.js.map +1 -1
- package/dist/scripts/{29-e3391b4e4b.chunk.js → 29-61415c2af0.chunk.js} +1 -1
- package/dist/scripts/29.chunk.js.map +1 -1
- package/dist/scripts/{3-079c0b4d3b.chunk.js → 3-5eff8c9df5.chunk.js} +1 -1
- package/dist/scripts/3.chunk.js +13 -25
- package/dist/scripts/3.chunk.js.map +1 -1
- package/dist/scripts/{30-a6a7291b5e.chunk.js → 30-6075c28972.chunk.js} +1 -1
- package/dist/scripts/30.chunk.js +6 -6
- package/dist/scripts/30.chunk.js.map +1 -1
- package/dist/scripts/31-e35ae4e153.chunk.js +1 -0
- package/dist/scripts/31.chunk.js.map +1 -1
- package/dist/scripts/{32-96ac2f9c32.chunk.js → 32-d5a50a7592.chunk.js} +1 -1
- package/dist/scripts/32.chunk.js.map +1 -1
- package/dist/scripts/{33-061a87935f.chunk.js → 33-5ae90ed7d7.chunk.js} +1 -1
- package/dist/scripts/33.chunk.js.map +1 -1
- package/dist/scripts/{34-56f92b9a87.chunk.js → 34-50402c1835.chunk.js} +1 -1
- package/dist/scripts/34.chunk.js.map +1 -1
- package/dist/scripts/{35-cdd788a4b5.chunk.js → 35-ec8c190357.chunk.js} +1 -1
- package/dist/scripts/35.chunk.js.map +1 -1
- package/dist/scripts/{36-7d33d11b58.chunk.js → 36-4d467bc42e.chunk.js} +1 -1
- package/dist/scripts/36.chunk.js.map +1 -1
- package/dist/scripts/{37-fbd149e569.chunk.js → 37-37e8965783.chunk.js} +1 -1
- package/dist/scripts/37.chunk.js.map +1 -1
- package/dist/scripts/{38-57af633fa1.chunk.js → 38-3dc24b8867.chunk.js} +1 -1
- package/dist/scripts/38.chunk.js.map +1 -1
- package/dist/scripts/{39-cc627dfe2b.chunk.js → 39-350ff66a2b.chunk.js} +1 -1
- package/dist/scripts/39.chunk.js.map +1 -1
- package/dist/scripts/{4-0a8a5ac2f0.chunk.js → 4-b3f3c7c71c.chunk.js} +1 -1
- package/dist/scripts/4.chunk.js.map +1 -1
- package/dist/scripts/{40-78639874b5.chunk.js → 40-3443f99cb2.chunk.js} +1 -1
- package/dist/scripts/40.chunk.js.map +1 -1
- package/dist/scripts/{41-2c6722e410.chunk.js → 41-b5dfd35e9e.chunk.js} +1 -1
- package/dist/scripts/41.chunk.js.map +1 -1
- package/dist/scripts/{42-9b7795d20a.chunk.js → 42-103fecb7b6.chunk.js} +1 -1
- package/dist/scripts/42.chunk.js.map +1 -1
- package/dist/scripts/{43-006ce08a8f.chunk.js → 43-57b07579f7.chunk.js} +1 -1
- package/dist/scripts/43.chunk.js.map +1 -1
- package/dist/scripts/{44-b4c134efe8.chunk.js → 44-210d64dffe.chunk.js} +1 -1
- package/dist/scripts/44.chunk.js.map +1 -1
- package/dist/scripts/{45-3e85e78a77.chunk.js → 45-632b07e926.chunk.js} +1 -1
- package/dist/scripts/45.chunk.js.map +1 -1
- package/dist/scripts/{46-1256828b60.chunk.js → 46-82cce63cbf.chunk.js} +1 -1
- package/dist/scripts/46.chunk.js +6 -6
- package/dist/scripts/46.chunk.js.map +1 -1
- package/dist/scripts/{47-9e514e7536.chunk.js → 47-595b4aae87.chunk.js} +1 -1
- package/dist/scripts/47.chunk.js +1 -2
- package/dist/scripts/47.chunk.js.map +1 -1
- package/dist/scripts/{48-9af8b50e4f.chunk.js → 48-fcf6378889.chunk.js} +1 -1
- package/dist/scripts/48.chunk.js.map +1 -1
- package/dist/scripts/{49-883d9131af.chunk.js → 49-d8a4899eb1.chunk.js} +1 -1
- package/dist/scripts/49.chunk.js.map +1 -1
- package/dist/scripts/{5-f5ad097d2b.chunk.js → 5-06bc197b1e.chunk.js} +1 -1
- package/dist/scripts/5.chunk.js +3 -3
- package/dist/scripts/5.chunk.js.map +1 -1
- package/dist/scripts/{50-198f89794c.chunk.js → 50-11b1a49916.chunk.js} +1 -1
- package/dist/scripts/50.chunk.js.map +1 -1
- package/dist/scripts/{51-61bb2b80fe.chunk.js → 51-72a75e0265.chunk.js} +1 -1
- package/dist/scripts/51.chunk.js.map +1 -1
- package/dist/scripts/{52-e7fd215888.chunk.js → 52-195f73bcd6.chunk.js} +1 -1
- package/dist/scripts/52.chunk.js.map +1 -1
- package/dist/scripts/{53-595b1efa1a.chunk.js → 53-bb4f37ee25.chunk.js} +1 -1
- package/dist/scripts/53.chunk.js.map +1 -1
- package/dist/scripts/{54-646c8458e0.chunk.js → 54-7a201d8285.chunk.js} +1 -1
- package/dist/scripts/54.chunk.js.map +1 -1
- package/dist/scripts/{55-dac67eae0b.chunk.js → 55-be3d7b8805.chunk.js} +1 -1
- package/dist/scripts/55.chunk.js.map +1 -1
- package/dist/scripts/{56-9a02efb9a1.chunk.js → 56-6aeece1bf1.chunk.js} +1 -1
- package/dist/scripts/56.chunk.js.map +1 -1
- package/dist/scripts/{57-bf72265d49.chunk.js → 57-59ee15161b.chunk.js} +1 -1
- package/dist/scripts/57.chunk.js.map +1 -1
- package/dist/scripts/{58-34ef45f4b6.chunk.js → 58-8ff58b194a.chunk.js} +1 -1
- package/dist/scripts/58.chunk.js.map +1 -1
- package/dist/scripts/{59-f3d473090d.chunk.js → 59-3d33954fcb.chunk.js} +1 -1
- package/dist/scripts/59.chunk.js.map +1 -1
- package/dist/scripts/{6-a5f6258253.chunk.js → 6-a469872b10.chunk.js} +1 -1
- package/dist/scripts/6.chunk.js.map +1 -1
- package/dist/scripts/{60-ac4f11764a.chunk.js → 60-f092baa91c.chunk.js} +1 -1
- package/dist/scripts/60.chunk.js.map +1 -1
- package/dist/scripts/{61-62ec9b3628.chunk.js → 61-bd9ef62ccd.chunk.js} +1 -1
- package/dist/scripts/61.chunk.js +12 -12
- package/dist/scripts/61.chunk.js.map +1 -1
- package/dist/scripts/{62-4d0e82f903.chunk.js → 62-f15b3bf74c.chunk.js} +1 -1
- package/dist/scripts/62.chunk.js.map +1 -1
- package/dist/scripts/{63-47af37825d.chunk.js → 63-92757f75e7.chunk.js} +1 -1
- package/dist/scripts/63.chunk.js.map +1 -1
- package/dist/scripts/{64-c42635a917.chunk.js → 64-c5a1c55521.chunk.js} +1 -1
- package/dist/scripts/64.chunk.js.map +1 -1
- package/dist/scripts/{65-7780441e5e.chunk.js → 65-6bb10ae23b.chunk.js} +1 -1
- package/dist/scripts/65.chunk.js.map +1 -1
- package/dist/scripts/{66-7f2750cd97.chunk.js → 66-f047027f7d.chunk.js} +1 -1
- package/dist/scripts/66.chunk.js.map +1 -1
- package/dist/scripts/{67-564ff2bd16.chunk.js → 67-2e1a011200.chunk.js} +1 -1
- package/dist/scripts/67.chunk.js.map +1 -1
- package/dist/scripts/{68-df9024fadc.chunk.js → 68-d5c0ab3fc1.chunk.js} +1 -1
- package/dist/scripts/68.chunk.js.map +1 -1
- package/dist/scripts/{69-4d32ddddbc.chunk.js → 69-fc8325afc9.chunk.js} +1 -1
- package/dist/scripts/69.chunk.js.map +1 -1
- package/dist/scripts/{7-2696f5afc4.chunk.js → 7-58dd909fa3.chunk.js} +1 -1
- package/dist/scripts/7.chunk.js.map +1 -1
- package/dist/scripts/{70-2a427b3dd0.chunk.js → 70-ceda95013e.chunk.js} +1 -1
- package/dist/scripts/70.chunk.js.map +1 -1
- package/dist/scripts/{71-215cac8b69.chunk.js → 71-6e8fc95beb.chunk.js} +1 -1
- package/dist/scripts/71.chunk.js.map +1 -1
- package/dist/scripts/{72-6eb3ef092e.chunk.js → 72-53fe3338bf.chunk.js} +1 -1
- package/dist/scripts/72.chunk.js.map +1 -1
- package/dist/scripts/73.chunk.js.map +1 -1
- package/dist/scripts/74.chunk.js.map +1 -1
- package/dist/scripts/75.chunk.js.map +1 -1
- package/dist/scripts/76.chunk.js.map +1 -1
- package/dist/scripts/77.chunk.js.map +1 -1
- package/dist/scripts/78.chunk.js.map +1 -1
- package/dist/scripts/79.chunk.js.map +1 -1
- package/dist/scripts/{8-f4f18356f7.chunk.js → 8-6974afed28.chunk.js} +1 -1
- package/dist/scripts/8.chunk.js.map +1 -1
- package/dist/scripts/80.chunk.js.map +1 -1
- package/dist/scripts/81.chunk.js.map +1 -1
- package/dist/scripts/82.chunk.js.map +1 -1
- package/dist/scripts/83.chunk.js.map +1 -1
- package/dist/scripts/84.chunk.js.map +1 -1
- package/dist/scripts/85.chunk.js.map +1 -1
- package/dist/scripts/86.chunk.js.map +1 -1
- package/dist/scripts/87.chunk.js.map +1 -1
- package/dist/scripts/88.chunk.js.map +1 -1
- package/dist/scripts/89.chunk.js.map +1 -1
- package/dist/scripts/{9-cd0bcefa7f.chunk.js → 9-9279038caa.chunk.js} +1 -1
- package/dist/scripts/9.chunk.js.map +1 -1
- package/dist/scripts/90.chunk.js.map +1 -1
- package/dist/scripts/91.chunk.js.map +1 -1
- package/dist/scripts/92.chunk.js.map +1 -1
- package/dist/scripts/bundle-06dc1f4908.min.js +8 -0
- package/dist/scripts/bundle-8498807388.min.js +1 -0
- package/dist/scripts/{bundle-5b64746afd.min.js → bundle-891db89400.min.js} +1 -1
- package/dist/scripts/bundle-f4a423ce34.min.js +1 -0
- package/dist/scripts/bundle.js +1364 -1492
- package/dist/scripts/bundle.js.map +1 -1
- package/dist/scripts/bundles.json +2 -2
- package/dist/scripts/polyfills-efb4d7caa3.min.js +1 -0
- package/dist/scripts/polyfills.js +1050 -1050
- package/dist/scripts/polyfills.js.map +1 -1
- package/package.json +3 -3
- package/dist/scripts/0-f82360fd03.chunk.js +0 -1
- package/dist/scripts/1-35f87e4cdc.chunk.js +0 -1
- package/dist/scripts/10-227e797872.chunk.js +0 -1
- package/dist/scripts/12-43e54b0a2d.chunk.js +0 -1
- package/dist/scripts/13-01ee41eb1e.chunk.js +0 -1
- package/dist/scripts/14-cf307e51d9.chunk.js +0 -1
- package/dist/scripts/15-bedb9ff6d0.chunk.js +0 -1
- package/dist/scripts/16-339a29fa2f.chunk.js +0 -1
- package/dist/scripts/17-66da06be62.chunk.js +0 -1
- package/dist/scripts/20-6019ccb462.chunk.js +0 -1
- package/dist/scripts/21-7bd1977005.chunk.js +0 -1
- package/dist/scripts/22-d88b8e9c20.chunk.js +0 -1
- package/dist/scripts/23-e8a0f60c53.chunk.js +0 -1
- package/dist/scripts/24-f62e7ff166.chunk.js +0 -1
- package/dist/scripts/25-acda0ed17e.chunk.js +0 -1
- package/dist/scripts/26-39f6c3ca17.chunk.js +0 -1
- package/dist/scripts/27-1313c7d392.chunk.js +0 -1
- package/dist/scripts/28-b583483a6e.chunk.js +0 -1
- package/dist/scripts/29-44119e600a.chunk.js +0 -1
- package/dist/scripts/3-bea2c1c371.chunk.js +0 -1
- package/dist/scripts/30-aef6a19cde.chunk.js +0 -1
- package/dist/scripts/31-4f1ea6d067.chunk.js +0 -1
- package/dist/scripts/31-70fe14b490.chunk.js +0 -1
- package/dist/scripts/32-0b05da2f4c.chunk.js +0 -1
- package/dist/scripts/33-04b1fbcdeb.chunk.js +0 -1
- package/dist/scripts/34-4f2c861480.chunk.js +0 -1
- package/dist/scripts/35-08ead0d078.chunk.js +0 -1
- package/dist/scripts/36-4db22bf8bb.chunk.js +0 -1
- package/dist/scripts/37-4de2537ff4.chunk.js +0 -1
- package/dist/scripts/38-7733a3d81e.chunk.js +0 -1
- package/dist/scripts/39-5451786b7d.chunk.js +0 -1
- package/dist/scripts/4-84fa8e49e2.chunk.js +0 -1
- package/dist/scripts/40-31940ddf04.chunk.js +0 -1
- package/dist/scripts/41-0366a0332e.chunk.js +0 -1
- package/dist/scripts/42-c87c36d7d4.chunk.js +0 -1
- package/dist/scripts/43-591954817b.chunk.js +0 -1
- package/dist/scripts/44-fc3a1d45c5.chunk.js +0 -1
- package/dist/scripts/45-32ce8dd910.chunk.js +0 -1
- package/dist/scripts/46-e096df45ef.chunk.js +0 -1
- package/dist/scripts/47-61b53964c2.chunk.js +0 -1
- package/dist/scripts/48-3f804b22a4.chunk.js +0 -1
- package/dist/scripts/49-79b28e90c9.chunk.js +0 -1
- package/dist/scripts/5-093c9ee130.chunk.js +0 -1
- package/dist/scripts/50-ce04770db1.chunk.js +0 -1
- package/dist/scripts/51-177fe97a9b.chunk.js +0 -1
- package/dist/scripts/52-d8cf26c75f.chunk.js +0 -1
- package/dist/scripts/53-e78a58c963.chunk.js +0 -1
- package/dist/scripts/54-7976c21511.chunk.js +0 -1
- package/dist/scripts/55-5e3b70736e.chunk.js +0 -1
- package/dist/scripts/56-3c520aec72.chunk.js +0 -1
- package/dist/scripts/57-6f84e1bb9d.chunk.js +0 -1
- package/dist/scripts/58-1c37240b43.chunk.js +0 -1
- package/dist/scripts/59-05cbb57b32.chunk.js +0 -1
- package/dist/scripts/6-e49b6b4c08.chunk.js +0 -1
- package/dist/scripts/60-dd50d4179f.chunk.js +0 -1
- package/dist/scripts/61-e759f86871.chunk.js +0 -1
- package/dist/scripts/62-bfd5450b13.chunk.js +0 -1
- package/dist/scripts/63-8521e39a2e.chunk.js +0 -1
- package/dist/scripts/64-12150ef48b.chunk.js +0 -1
- package/dist/scripts/65-a4fdf8777b.chunk.js +0 -1
- package/dist/scripts/66-029947cf5c.chunk.js +0 -1
- package/dist/scripts/67-47f208342a.chunk.js +0 -1
- package/dist/scripts/68-5656cc45fe.chunk.js +0 -1
- package/dist/scripts/69-a4b3442e68.chunk.js +0 -1
- package/dist/scripts/7-b39ab430b9.chunk.js +0 -1
- package/dist/scripts/70-0f070c1596.chunk.js +0 -1
- package/dist/scripts/71-c43ee23686.chunk.js +0 -1
- package/dist/scripts/72-f5a8cfc8b7.chunk.js +0 -1
- package/dist/scripts/8-1e0751e30b.chunk.js +0 -1
- package/dist/scripts/9-bb567e1c99.chunk.js +0 -1
- package/dist/scripts/bundle-e7f4d4e659.min.js +0 -8
- package/dist/scripts/bundle-f73bcaa857.min.js +0 -8
- package/dist/scripts/polyfills-9517d7e647.min.js +0 -1
- package/dist/scripts/polyfills-e442ebbfb0.min.js +0 -1
- /package/dist/scripts/{0-2d62d8ccd7.chunk.js → 0-f604eee110.chunk.js} +0 -0
- /package/dist/scripts/{1-cf6d342590.chunk.js → 1-056bd8c79b.chunk.js} +0 -0
- /package/dist/scripts/{10-7475ff8374.chunk.js → 10-028c6001e1.chunk.js} +0 -0
- /package/dist/scripts/{12-20b4c4cdb6.chunk.js → 12-d3f51f4e06.chunk.js} +0 -0
- /package/dist/scripts/{13-292e92093a.chunk.js → 13-4029d31569.chunk.js} +0 -0
- /package/dist/scripts/{14-66f92fd1d3.chunk.js → 14-4c94f97e4e.chunk.js} +0 -0
- /package/dist/scripts/{15-d580267aff.chunk.js → 15-ec9aa4878b.chunk.js} +0 -0
- /package/dist/scripts/{16-0aa5e3e5fe.chunk.js → 16-5bc8299e14.chunk.js} +0 -0
- /package/dist/scripts/{17-f44cb6ca42.chunk.js → 17-9fe035f9e2.chunk.js} +0 -0
- /package/dist/scripts/{20-af6230b8af.chunk.js → 20-60e4eee833.chunk.js} +0 -0
- /package/dist/scripts/{21-1281b41577.chunk.js → 21-a7fffe8852.chunk.js} +0 -0
- /package/dist/scripts/{22-878d242dfd.chunk.js → 22-f670791432.chunk.js} +0 -0
- /package/dist/scripts/{23-e55ad46abd.chunk.js → 23-4d26d6300a.chunk.js} +0 -0
- /package/dist/scripts/{24-87aea794c8.chunk.js → 24-813ef82099.chunk.js} +0 -0
- /package/dist/scripts/{25-b3b05ff03c.chunk.js → 25-023d08a591.chunk.js} +0 -0
- /package/dist/scripts/{26-5f79a251ff.chunk.js → 26-a9fcf0d596.chunk.js} +0 -0
- /package/dist/scripts/{27-fb5a56b6e9.chunk.js → 27-84f7bbade6.chunk.js} +0 -0
- /package/dist/scripts/{28-d75e03d0c0.chunk.js → 28-cdf603f4cf.chunk.js} +0 -0
- /package/dist/scripts/{29-2c0b30c31b.chunk.js → 29-8278d23f9b.chunk.js} +0 -0
- /package/dist/scripts/{3-29a29544af.chunk.js → 3-1fa81c9d9b.chunk.js} +0 -0
- /package/dist/scripts/{30-a373fad3e5.chunk.js → 30-7ab880728c.chunk.js} +0 -0
- /package/dist/scripts/{31-1bb00d89bc.chunk.js → 31-aa4cd0f45e.chunk.js} +0 -0
- /package/dist/scripts/{32-a5e4069473.chunk.js → 32-7717941f1d.chunk.js} +0 -0
- /package/dist/scripts/{33-c671ce256e.chunk.js → 33-6da33143ea.chunk.js} +0 -0
- /package/dist/scripts/{34-e896aea27d.chunk.js → 34-27e40f4d4b.chunk.js} +0 -0
- /package/dist/scripts/{35-be151f3db1.chunk.js → 35-3260300446.chunk.js} +0 -0
- /package/dist/scripts/{36-e1dc9478b6.chunk.js → 36-bec0c74d05.chunk.js} +0 -0
- /package/dist/scripts/{37-b3aa0290c0.chunk.js → 37-3916177181.chunk.js} +0 -0
- /package/dist/scripts/{38-c1c3eaedae.chunk.js → 38-89f7c22ea8.chunk.js} +0 -0
- /package/dist/scripts/{39-6969b0c7b0.chunk.js → 39-9456631219.chunk.js} +0 -0
- /package/dist/scripts/{4-a0d8871170.chunk.js → 4-a7f6d378e0.chunk.js} +0 -0
- /package/dist/scripts/{40-8f82ccc935.chunk.js → 40-f65196723f.chunk.js} +0 -0
- /package/dist/scripts/{41-8512aa7dc5.chunk.js → 41-70b16d99d0.chunk.js} +0 -0
- /package/dist/scripts/{42-e4f279e42c.chunk.js → 42-e17f214d6c.chunk.js} +0 -0
- /package/dist/scripts/{43-11144c5f88.chunk.js → 43-6826fbc7d4.chunk.js} +0 -0
- /package/dist/scripts/{44-558a97cea6.chunk.js → 44-593e820fa2.chunk.js} +0 -0
- /package/dist/scripts/{45-73329af938.chunk.js → 45-8231a03833.chunk.js} +0 -0
- /package/dist/scripts/{46-db028594cc.chunk.js → 46-682ca88fd9.chunk.js} +0 -0
- /package/dist/scripts/{47-8b9d860084.chunk.js → 47-aec7cf95e8.chunk.js} +0 -0
- /package/dist/scripts/{48-ab5af19e09.chunk.js → 48-7b09165697.chunk.js} +0 -0
- /package/dist/scripts/{49-df996c66c2.chunk.js → 49-0e6ceb191f.chunk.js} +0 -0
- /package/dist/scripts/{5-27d34603ed.chunk.js → 5-e2e64bc05f.chunk.js} +0 -0
- /package/dist/scripts/{50-0d6bdb887e.chunk.js → 50-fa6f6fd1dc.chunk.js} +0 -0
- /package/dist/scripts/{51-819b13fe95.chunk.js → 51-1c9fca4604.chunk.js} +0 -0
- /package/dist/scripts/{52-4977addfab.chunk.js → 52-ebce0c9f12.chunk.js} +0 -0
- /package/dist/scripts/{53-1ad87216cb.chunk.js → 53-c6807d4e0b.chunk.js} +0 -0
- /package/dist/scripts/{54-0a404f9f36.chunk.js → 54-e6195aa62a.chunk.js} +0 -0
- /package/dist/scripts/{55-9163aa1312.chunk.js → 55-f9f9a251af.chunk.js} +0 -0
- /package/dist/scripts/{56-04f189d5de.chunk.js → 56-20f27f96db.chunk.js} +0 -0
- /package/dist/scripts/{57-4eb1cc6019.chunk.js → 57-b25862dbf0.chunk.js} +0 -0
- /package/dist/scripts/{58-804f31a61a.chunk.js → 58-edf06f18f9.chunk.js} +0 -0
- /package/dist/scripts/{59-dcbd713f4b.chunk.js → 59-241a666e49.chunk.js} +0 -0
- /package/dist/scripts/{6-26cb86223d.chunk.js → 6-c631df7bda.chunk.js} +0 -0
- /package/dist/scripts/{60-d8853c434d.chunk.js → 60-ac631fa385.chunk.js} +0 -0
- /package/dist/scripts/{61-c8c69eeff5.chunk.js → 61-360e50b6cb.chunk.js} +0 -0
- /package/dist/scripts/{62-45c821e85d.chunk.js → 62-22ee1d2a94.chunk.js} +0 -0
- /package/dist/scripts/{63-c236987805.chunk.js → 63-25413d744e.chunk.js} +0 -0
- /package/dist/scripts/{64-fbab857648.chunk.js → 64-1b027092be.chunk.js} +0 -0
- /package/dist/scripts/{65-b2901f7de5.chunk.js → 65-c8a9aae545.chunk.js} +0 -0
- /package/dist/scripts/{66-fb79386913.chunk.js → 66-20aec598ca.chunk.js} +0 -0
- /package/dist/scripts/{67-048121cf49.chunk.js → 67-d8d1cb35a4.chunk.js} +0 -0
- /package/dist/scripts/{68-d529af6c1b.chunk.js → 68-869ea333d9.chunk.js} +0 -0
- /package/dist/scripts/{69-4548bb42ea.chunk.js → 69-c4ff3e5568.chunk.js} +0 -0
- /package/dist/scripts/{7-10b288197e.chunk.js → 7-1d94e0bb0c.chunk.js} +0 -0
- /package/dist/scripts/{70-e36b006dbe.chunk.js → 70-171dcf9fe1.chunk.js} +0 -0
- /package/dist/scripts/{71-5d5ec02d3d.chunk.js → 71-33e7082ca2.chunk.js} +0 -0
- /package/dist/scripts/{72-d98ffab96a.chunk.js → 72-2eef8b13b0.chunk.js} +0 -0
- /package/dist/scripts/{8-b0942a9479.chunk.js → 8-34ae87490f.chunk.js} +0 -0
- /package/dist/scripts/{9-ba4f55ce15.chunk.js → 9-0d7004dd33.chunk.js} +0 -0
- /package/dist/scripts/{polyfills-5c483eb7f4.min.js → polyfills-21eaf1215c.min.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(window.webpackJsonp_clickview_library_editor=window.webpackJsonp_clickview_library_editor||[]).push([[3],{1030:function(e,t,n){"use strict";n.d(t,"a",(function(){return d}));var r=n(2),o=n(15),i=n(13),s=n(0),l=n(1202),a=n(1203),u=n.n(a);function c(e){return(c="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 f(e,t){return(f=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function h(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=m(e);if(t){var o=m(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return y(this,n)}}function y(e,t){return!t||"object"!==c(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 m(e){return(m=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&&f(e,t)}(c,e);var t,n,r,a=h(c);function c(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,c),a.call(this,e)}return t=c,(n=[{key:"padNumber",value:function(e){if(!e)return null;var t=e.toString(),n=2;if(t.length>=n)return t;for(n-=t.length;n>0;)t="0"+t,n--;return t}},{key:"getSeriesName",value:function(){return this.options.highlight?i.v.wordsHighlighter(this.model.series.get("name"),this.model.get("_matchedWords")):this.model.series.get("name")}},{key:"viewOptions",value:function(){return{styles:l,seasonNumber:this.padNumber(this.model.season&&this.model.season.get("number")),episodeNumber:this.padNumber(this.model.get("episodeNumber")),seriesName:this.getSeriesName(),seriesUrl:this.options.seriesUrl,externalSvg:o.a.getSvg(o.b.NewWindow),styleUppercase:this.options.styleUppercase}}},{key:"onBeforeRender",value:function(){return this.model.series&&!!this.model.series.get("id")}},{key:"defaults",get:function(){return{styleUppercase:!0}}},{key:"name",get:function(){return"VideoItemSeriesComponent"}},{key:"template",get:function(){return u.a}},{key:"appLinks",get:function(){return this.options.seriesUrl?{}:{".series-applink":{application:s.b.LIBRARY_EDITOR,action:s.a.LibraryEditor.SERIES,args:[this.model.series.get("id")]}}}}])&&p(t.prototype,n),r&&p(t,r),c}(r.a.Component)},1035:function(e,t,n){"use strict";n.d(t,"a",(function(){return f}));var r=n(1),o=n(2),i=n(285);function s(e){return(s="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 l(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 a(e,t){return(a=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function u(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=p(e);if(t){var o=p(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return c(this,n)}}function c(e,t){return!t||"object"!==s(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 p(e){return(p=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var f=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)}(c,e);var t,n,o,s=u(c);function c(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,c),s.call(this,e)}return t=c,(n=[{key:"initialize",value:function(){this.listenTo(this.options.channelName,"center:dropdown",this.centerSelectedItem)}},{key:"getExtraClasses",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.alignment,n=void 0===t?"left":t,r=e.extraClasses,o="dropdown-menu-".concat(n);return r&&(o="".concat(o," ").concat(r)),o}},{key:"centerSelectedItem",value:function(){var e=this.$el.find(".active");if(e.length){var t=this.$el.scrollTop()+e.position().top,n=.5*this.$el.height()+.5*e.height();this.$el.scrollTop(t-n)}}},{key:"name",get:function(){return"DropdownCollectionComponent"}},{key:"className",get:function(){return"dropdown-menu items-viewpart ".concat(this.getExtraClasses(this.options.displayOptions))}},{key:"attributes",get:function(){return{"aria-labelledby":"dropdownSelector"}}},{key:"childView",get:function(){return i.a}},{key:"childViewOptions",get:function(){var e={channelName:this.options.channelName,analyticsHelper:this.options.analyticsHelper};return r.extend(e,this.options.childOptions)}}])&&l(t.prototype,n),o&&l(t,o),c}(o.a.ComponentCollection)},1053:function(e,t,n){"use strict";n.d(t,"b",(function(){return o})),n.d(t,"a",(function(){return w}));var r,o,i=n(2),s=n(13),l=n(3),a=n(1120),u=n.n(a),c=n(1121),p=n.n(c);function f(e){return(f="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 h(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 y(e,t){return(y=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function m(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=b(e);if(t){var o=b(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return d(this,n)}}function d(e,t){return!t||"object"!==f(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 b(e){return(b=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function v(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}!function(e){e.Small="sm",e.Large="lg"}(o||(o={}));var g=(v(r={},o.Small,3),v(r,o.Large,5),r),w=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&&y(e,t)}(a,e);var t,n,r,i=m(a);function a(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,a),(t=i.call(this,e)).showingMore=!1,t}return t=a,(n=[{key:"events",value:function(){return v({},"click .".concat(p.a.showMoreEllipsis),"onClickShowMore")}},{key:"onClickShowMore",value:function(e){e.preventDefault(),this.showingMore?this.showLessDescription():this.showMoreDescription()}},{key:"getDescription",value:function(){return this.options.linkify?s.v.linkifyText(s.v.escapeExpression(this.model.get("description"))):this.options.highlighter?s.v.wordsHighlighter(s.v.escapeExpression(this.model.get("description")),this.model.get("_matchedWords")):void 0}},{key:"getDescriptionElements",value:function(){return{descriptionTextEl:this.getUI("description"),ellipsisEl:this.getUI("ellipsis")}}},{key:"showMoreDescription",value:function(){var e=this.getDescriptionElements(),t=e.descriptionTextEl,n=e.ellipsisEl;t.removeClass(p.a.truncateLarge).addClass(p.a.open),n.text(l.a.getPhrase(this.lang,"showLess")),this.showingMore=!0}},{key:"showLessDescription",value:function(){var e,t=this.getDescriptionElements(),n=t.descriptionTextEl,r=t.ellipsisEl;this.options.size===o.Small&&(e="truncateSmall"),this.options.size===o.Large&&(e="truncateLarge"),n.addClass(p.a[e]),r.text(this.options.allowExpand?"... ".concat(l.a.getPhrase(this.lang,"showMore")):"...").removeClass(p.a.hideEllipsis).addClass(p.a.showEllipsis),this.showingMore=!1}},{key:"truncateDescription",value:function(){if(this.options.truncate){var e=this.getDescriptionElements().descriptionTextEl,t=g[this.options.size];e.height()<=21*t||this.showLessDescription()}}},{key:"viewOptions",value:function(){return{styles:p.a,truncate:this.options.truncate,expandable:this.options.allowExpand,description:this.getDescription()}}},{key:"onAttach",value:function(){this.truncateDescription()}},{key:"name",get:function(){return"VideoDescriptionComponent"}},{key:"template",get:function(){return u.a}},{key:"lang",get:function(){return"shared.videoDescription"}},{key:"defaults",get:function(){return{size:"sm"}}},{key:"elements",get:function(){return{description:".description",ellipsis:this.options.allowExpand?".".concat(p.a.showMoreEllipsis):".".concat(p.a.singleEllipsis)}}}])&&h(t.prototype,n),r&&h(t,r),a}(i.a.Component)},1070:function(e,t,n){"use strict";n.d(t,"a",(function(){return E}));var r=n(1),o=n(7),i=n(2),s=n(4),l=n(42),a=n(190),u=n(188),c=n(281),p=n(13),f=n(0),h=n(1176),y=n(1122),m=n.n(y);function d(e){return(d="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 b(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 v(e,t){return(v=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function g(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 o=k(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return w(this,n)}}function w(e,t){return!t||"object"!==d(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 E=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&&v(e,t)}(d,e);var t,n,i,y=g(d);function d(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,d),y.call(this,e)}return t=d,(n=[{key:"initialize",value:function(){this.bindListeners()}},{key:"regions",value:function(){return{player:{el:".video-player-region",replaceElement:!1},thumbnail:{el:".thumbnail-region",replaceElement:!0}}}},{key:"events",value:function(){return{click:"onClick"}}},{key:"bindListeners",value:function(){this.options.channelName&&this.listenTo(this.options.channelName,"update:chapter:time",this.onUpdateWebplayer)}},{key:"onUpdateWebplayer",value:function(e){if(!this.player)return this.listenToOnce(this.options.channelName,"webplayer:loaded",r.bind(this.seekToChapter,this,e)),void this.renderVideoPreview();this.seekToChapter(e)}},{key:"seekToChapter",value:function(e){this.player.seekTo(e)}},{key:"onClick",value:function(){this.player||this.renderVideoPreview()}},{key:"renderThumbnail",value:function(){this.showChildView("thumbnail",new u.a({model:this.model,thumbnailOptions:{size:a.a.Medium},playIcon:!0,lazyload:!0,channelName:this.instanceChannelName}))}},{key:"renderVideoPreview",value:function(){this.player=new h.a({model:this.model,webPlayerUrl:this.options.webPlayerUrl,parentChannelName:this.options.channelName,autoplay:!0,analyticsOptions:l.a.mergeOptions(this.options.analyticsOptions,{entity:s.e.Video}),captureAnalytics:this.options.captureAnalytics}),this.showChildView("player",this.player)}},{key:"onRender",value:function(){this.renderThumbnail()}},{key:"name",get:function(){return"VideoPreviewComponent"}},{key:"template",get:function(){return m.a}},{key:"instanceChannelName",get:function(){return p.k.generateUniqueChannelName(this)}},{key:"defaults",get:function(){return{captureAnalytics:!0}}},{key:"behaviors",get:function(){var e=this;return[{behaviorClass:c.d,selector:".lazy-img",callback:function(){o.Radio.channel(e.instanceChannelName).trigger("show:play:icon")},minBrowserSupportVersion:f.p}]}}])&&b(t.prototype,n),i&&b(t,i),d}(i.a.Component)},1120:function(e,t,n){var r=n(10);e.exports=(r.default||r).template({1:function(e,t,n,r,o){e.propertyIsEnumerable;var i,s=e.lambda,l=e.escapeExpression;return' <div class="'+l(s(null!=(i=null!=(i=null!=t?t.options:t)?i.styles:i)?i.descriptionWrapper:i,t))+'">\r\n <p class="description '+l(s(null!=(i=null!=(i=null!=t?t.options:t)?i.styles:i)?i.description:i,t))+'">'+(null!=(i=n.if.call(null!=t?t:e.nullContext||{},null!=(i=null!=t?t.options:t)?i.expandable:i,{name:"if",hash:{},fn:e.program(2,o,0),inverse:e.program(4,o,0),data:o}))?i:"")+"</p>\r\n </div>\r\n"},2:function(e,t,n,r,o){e.propertyIsEnumerable;var i,s=e.lambda,l=e.escapeExpression;return(null!=(i=s(null!=(i=null!=t?t.options:t)?i.description:i,t))?i:"")+'<span class="'+l(s(null!=(i=null!=(i=null!=t?t.options:t)?i.styles:i)?i.showMoreEllipsis:i,t))+" "+l(s(null!=(i=null!=(i=null!=t?t.options:t)?i.styles:i)?i.hideEllipsis:i,t))+'">... '+l((n.lang||t&&t.lang||e.hooks.helperMissing).call(null!=t?t:e.nullContext||{},"showMore",{name:"lang",hash:{},data:o}))+"</span>"},4:function(e,t,n,r,o){e.propertyIsEnumerable;var i,s=e.lambda,l=e.escapeExpression;return(null!=(i=s(null!=(i=null!=t?t.options:t)?i.description:i,t))?i:"")+'<span class="'+l(s(null!=(i=null!=(i=null!=t?t.options:t)?i.styles:i)?i.singleEllipsis:i,t))+" "+l(s(null!=(i=null!=(i=null!=t?t.options:t)?i.styles:i)?i.hideEllipsis:i,t))+'">...</span>'},6:function(e,t,n,r,o){e.propertyIsEnumerable;var i,s=e.lambda;return' <p class="'+e.escapeExpression(s(null!=(i=null!=(i=null!=t?t.options:t)?i.styles:i)?i.description:i,t))+'">'+(null!=(i=s(null!=(i=null!=t?t.options:t)?i.description:i,t))?i:"")+"</p>\r\n"},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var i;e.propertyIsEnumerable;return null!=(i=n.if.call(null!=t?t:e.nullContext||{},null!=(i=null!=t?t.options:t)?i.truncate:i,{name:"if",hash:{},fn:e.program(1,o,0),inverse:e.program(6,o,0),data:o}))?i:""},useData:!0})},1121:function(e,t,n){e.exports={columnNames:"_1a1Re",descriptionWrapper:"_2MZC5",description:"_3U9j9",ellipsis:"_1YjUg",singleEllipsis:"_3SNtn",showMoreEllipsis:"xy3i9",showEllipsis:"_1_L9t",hideEllipsis:"TCdgP",open:"_18ojI",truncateSmall:"nLuVF",truncateLarge:"sEELY"}},1122:function(e,t,n){var r=n(10);e.exports=(r.default||r).template({compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return'<div class="video-player-region cursor-pointer responsize-img">\r\n <div class="thumbnail-region"></div>\r\n</div>'},useData:!0})},1202:function(e,t,n){e.exports={svgContainer:"_1CUEt",series:"oZx-K"}},1203:function(e,t,n){var r=n(10);e.exports=(r.default||r).template({1:function(e,t,n,r,o){var i;e.propertyIsEnumerable;return e.escapeExpression(e.lambda(null!=(i=null!=(i=null!=t?t.options:t)?i.styles:i)?i.series:i,t))},3:function(e,t,n,r,o){var i;e.propertyIsEnumerable;return'href="'+e.escapeExpression(e.lambda(null!=(i=null!=t?t.options:t)?i.seriesUrl:i,t))+'" target="_blank"'},5:function(e,t,n,r,o){var i;e.propertyIsEnumerable;return(null!=(i=n.if.call(null!=t?t:e.nullContext||{},null!=(i=null!=t?t.options:t)?i.seasonNumber:i,{name:"if",hash:{},fn:e.program(6,o,0),inverse:e.noop,data:o}))?i:"")+" E"+e.escapeExpression(e.lambda(null!=(i=null!=t?t.options:t)?i.episodeNumber:i,t))+"\r\n"},6:function(e,t,n,r,o){var i;e.propertyIsEnumerable;return" S"+e.escapeExpression(e.lambda(null!=(i=null!=t?t.options:t)?i.seasonNumber:i,t))+" •"},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){e.propertyIsEnumerable;var i,s=null!=t?t:e.nullContext||{};return'<a class="series-applink text-muted '+(null!=(i=n.if.call(s,null!=(i=null!=t?t.options:t)?i.styleUppercase:i,{name:"if",hash:{},fn:e.program(1,o,0),inverse:e.noop,data:o}))?i:"")+'" '+(null!=(i=n.if.call(s,null!=(i=null!=t?t.options:t)?i.seriesUrl:i,{name:"if",hash:{},fn:e.program(3,o,0),inverse:e.noop,data:o}))?i:"")+">\r\n "+(null!=(i=e.lambda(null!=(i=null!=t?t.options:t)?i.seriesName:i,t))?i:"")+(null!=(i=n.if.call(s,null!=(i=null!=t?t.options:t)?i.episodeNumber:i,{name:"if",hash:{},fn:e.program(5,o,0),inverse:e.noop,data:o}))?i:"")+"</a>"},useData:!0})}}]);
|
|
1
|
+
(window.webpackJsonp_clickview_library_editor=window.webpackJsonp_clickview_library_editor||[]).push([[3],{1026:function(e,t,n){"use strict";n.d(t,"a",(function(){return d}));var r=n(2),o=n(15),i=n(13),s=n(0),l=n(1198),a=n(1199),u=n.n(a);function c(e){return(c="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 f(e,t){return(f=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function h(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=m(e);if(t){var o=m(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return y(this,n)}}function y(e,t){return!t||"object"!==c(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 m(e){return(m=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&&f(e,t)}(c,e);var t,n,r,a=h(c);function c(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,c),a.call(this,e)}return t=c,(n=[{key:"padNumber",value:function(e){if(!e)return null;var t=e.toString(),n=2;if(t.length>=n)return t;for(n-=t.length;n>0;)t="0"+t,n--;return t}},{key:"getSeriesName",value:function(){return this.options.highlight?i.v.wordsHighlighter(this.model.series.get("name"),this.model.get("_matchedWords")):this.model.series.get("name")}},{key:"viewOptions",value:function(){return{styles:l,seasonNumber:this.padNumber(this.model.season&&this.model.season.get("number")),episodeNumber:this.padNumber(this.model.get("episodeNumber")),seriesName:this.getSeriesName(),seriesUrl:this.options.seriesUrl,externalSvg:o.a.getSvg(o.b.NewWindow),styleUppercase:this.options.styleUppercase}}},{key:"onBeforeRender",value:function(){return this.model.series&&!!this.model.series.get("id")}},{key:"defaults",get:function(){return{styleUppercase:!0}}},{key:"name",get:function(){return"VideoItemSeriesComponent"}},{key:"template",get:function(){return u.a}},{key:"appLinks",get:function(){return this.options.seriesUrl?{}:{".series-applink":{application:s.b.LIBRARY_EDITOR,action:s.a.LibraryEditor.SERIES,args:[this.model.series.get("id")]}}}}])&&p(t.prototype,n),r&&p(t,r),c}(r.a.Component)},1031:function(e,t,n){"use strict";n.d(t,"a",(function(){return f}));var r=n(1),o=n(2),i=n(285);function s(e){return(s="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 l(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 a(e,t){return(a=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function u(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=p(e);if(t){var o=p(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return c(this,n)}}function c(e,t){return!t||"object"!==s(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 p(e){return(p=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var f=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)}(c,e);var t,n,o,s=u(c);function c(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,c),s.call(this,e)}return t=c,(n=[{key:"initialize",value:function(){this.listenTo(this.options.channelName,"center:dropdown",this.centerSelectedItem)}},{key:"getExtraClasses",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.alignment,n=void 0===t?"left":t,r=e.extraClasses,o="dropdown-menu-".concat(n);return r&&(o="".concat(o," ").concat(r)),o}},{key:"centerSelectedItem",value:function(){var e=this.$el.find(".active");if(e.length){var t=this.$el.scrollTop()+e.position().top,n=.5*this.$el.height()+.5*e.height();this.$el.scrollTop(t-n)}}},{key:"name",get:function(){return"DropdownCollectionComponent"}},{key:"className",get:function(){return"dropdown-menu items-viewpart ".concat(this.getExtraClasses(this.options.displayOptions))}},{key:"attributes",get:function(){return{"aria-labelledby":"dropdownSelector"}}},{key:"childView",get:function(){return i.a}},{key:"childViewOptions",get:function(){var e={channelName:this.options.channelName,analyticsHelper:this.options.analyticsHelper};return r.extend(e,this.options.childOptions)}}])&&l(t.prototype,n),o&&l(t,o),c}(o.a.ComponentCollection)},1049:function(e,t,n){"use strict";n.d(t,"b",(function(){return o})),n.d(t,"a",(function(){return w}));var r,o,i=n(2),s=n(13),l=n(3),a=n(1116),u=n.n(a),c=n(1117),p=n.n(c);function f(e){return(f="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 h(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 y(e,t){return(y=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function m(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=b(e);if(t){var o=b(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return d(this,n)}}function d(e,t){return!t||"object"!==f(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 b(e){return(b=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function v(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}!function(e){e.Small="sm",e.Large="lg"}(o||(o={}));var g=(v(r={},o.Small,3),v(r,o.Large,5),r),w=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&&y(e,t)}(a,e);var t,n,r,i=m(a);function a(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,a),(t=i.call(this,e)).showingMore=!1,t}return t=a,(n=[{key:"events",value:function(){return v({},"click .".concat(p.a.showMoreEllipsis),"onClickShowMore")}},{key:"onClickShowMore",value:function(e){e.preventDefault(),this.showingMore?this.showLessDescription():this.showMoreDescription()}},{key:"getDescription",value:function(){return this.options.linkify?s.v.linkifyText(s.v.escapeExpression(this.model.get("description"))):this.options.highlighter?s.v.wordsHighlighter(s.v.escapeExpression(this.model.get("description")),this.model.get("_matchedWords")):void 0}},{key:"getDescriptionElements",value:function(){return{descriptionTextEl:this.getUI("description"),ellipsisEl:this.getUI("ellipsis")}}},{key:"showMoreDescription",value:function(){var e=this.getDescriptionElements(),t=e.descriptionTextEl,n=e.ellipsisEl;t.removeClass(p.a.truncateLarge).addClass(p.a.open),n.text(l.a.getPhrase(this.lang,"showLess")),this.showingMore=!0}},{key:"showLessDescription",value:function(){var e,t=this.getDescriptionElements(),n=t.descriptionTextEl,r=t.ellipsisEl;this.options.size===o.Small&&(e="truncateSmall"),this.options.size===o.Large&&(e="truncateLarge"),n.addClass(p.a[e]),r.text(this.options.allowExpand?"... ".concat(l.a.getPhrase(this.lang,"showMore")):"...").removeClass(p.a.hideEllipsis).addClass(p.a.showEllipsis),this.showingMore=!1}},{key:"truncateDescription",value:function(){if(this.options.truncate){var e=this.getDescriptionElements().descriptionTextEl,t=g[this.options.size];e.height()<=21*t||this.showLessDescription()}}},{key:"viewOptions",value:function(){return{styles:p.a,truncate:this.options.truncate,expandable:this.options.allowExpand,description:this.getDescription()}}},{key:"onAttach",value:function(){this.truncateDescription()}},{key:"name",get:function(){return"VideoDescriptionComponent"}},{key:"template",get:function(){return u.a}},{key:"lang",get:function(){return"shared.videoDescription"}},{key:"defaults",get:function(){return{size:"sm"}}},{key:"elements",get:function(){return{description:".description",ellipsis:this.options.allowExpand?".".concat(p.a.showMoreEllipsis):".".concat(p.a.singleEllipsis)}}}])&&h(t.prototype,n),r&&h(t,r),a}(i.a.Component)},1066:function(e,t,n){"use strict";n.d(t,"a",(function(){return E}));var r=n(1),o=n(7),i=n(2),s=n(4),l=n(42),a=n(190),u=n(188),c=n(281),p=n(13),f=n(0),h=n(1172),y=n(1118),m=n.n(y);function d(e){return(d="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 b(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 v(e,t){return(v=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function g(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 o=k(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return w(this,n)}}function w(e,t){return!t||"object"!==d(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 E=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&&v(e,t)}(d,e);var t,n,i,y=g(d);function d(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,d),y.call(this,e)}return t=d,(n=[{key:"initialize",value:function(){this.bindListeners()}},{key:"regions",value:function(){return{player:{el:".video-player-region",replaceElement:!1},thumbnail:{el:".thumbnail-region",replaceElement:!0}}}},{key:"events",value:function(){return{click:"onClick"}}},{key:"bindListeners",value:function(){this.options.channelName&&this.listenTo(this.options.channelName,"update:chapter:time",this.onUpdateWebplayer)}},{key:"onUpdateWebplayer",value:function(e){if(!this.player)return this.listenToOnce(this.options.channelName,"webplayer:loaded",r.bind(this.seekToChapter,this,e)),void this.renderVideoPreview();this.seekToChapter(e)}},{key:"seekToChapter",value:function(e){this.player.seekTo(e)}},{key:"onClick",value:function(){this.player||this.renderVideoPreview()}},{key:"renderThumbnail",value:function(){this.showChildView("thumbnail",new u.a({model:this.model,thumbnailOptions:{size:a.a.Medium},playIcon:!0,lazyload:!0,channelName:this.instanceChannelName}))}},{key:"renderVideoPreview",value:function(){this.player=new h.a({model:this.model,webPlayerUrl:this.options.webPlayerUrl,parentChannelName:this.options.channelName,autoplay:!0,analyticsOptions:l.a.mergeOptions(this.options.analyticsOptions,{entity:s.e.Video}),captureAnalytics:this.options.captureAnalytics}),this.showChildView("player",this.player)}},{key:"onRender",value:function(){this.renderThumbnail()}},{key:"name",get:function(){return"VideoPreviewComponent"}},{key:"template",get:function(){return m.a}},{key:"instanceChannelName",get:function(){return p.k.generateUniqueChannelName(this)}},{key:"defaults",get:function(){return{captureAnalytics:!0}}},{key:"behaviors",get:function(){var e=this;return[{behaviorClass:c.d,selector:".lazy-img",callback:function(){o.Radio.channel(e.instanceChannelName).trigger("show:play:icon")},minBrowserSupportVersion:f.p}]}}])&&b(t.prototype,n),i&&b(t,i),d}(i.a.Component)},1116:function(e,t,n){var r=n(10);e.exports=(r.default||r).template({1:function(e,t,n,r,o){e.propertyIsEnumerable;var i,s=e.lambda,l=e.escapeExpression;return' <div class="'+l(s(null!=(i=null!=(i=null!=t?t.options:t)?i.styles:i)?i.descriptionWrapper:i,t))+'">\r\n <p class="description '+l(s(null!=(i=null!=(i=null!=t?t.options:t)?i.styles:i)?i.description:i,t))+'">'+(null!=(i=n.if.call(null!=t?t:e.nullContext||{},null!=(i=null!=t?t.options:t)?i.expandable:i,{name:"if",hash:{},fn:e.program(2,o,0),inverse:e.program(4,o,0),data:o}))?i:"")+"</p>\r\n </div>\r\n"},2:function(e,t,n,r,o){e.propertyIsEnumerable;var i,s=e.lambda,l=e.escapeExpression;return(null!=(i=s(null!=(i=null!=t?t.options:t)?i.description:i,t))?i:"")+'<span class="'+l(s(null!=(i=null!=(i=null!=t?t.options:t)?i.styles:i)?i.showMoreEllipsis:i,t))+" "+l(s(null!=(i=null!=(i=null!=t?t.options:t)?i.styles:i)?i.hideEllipsis:i,t))+'">... '+l((n.lang||t&&t.lang||e.hooks.helperMissing).call(null!=t?t:e.nullContext||{},"showMore",{name:"lang",hash:{},data:o}))+"</span>"},4:function(e,t,n,r,o){e.propertyIsEnumerable;var i,s=e.lambda,l=e.escapeExpression;return(null!=(i=s(null!=(i=null!=t?t.options:t)?i.description:i,t))?i:"")+'<span class="'+l(s(null!=(i=null!=(i=null!=t?t.options:t)?i.styles:i)?i.singleEllipsis:i,t))+" "+l(s(null!=(i=null!=(i=null!=t?t.options:t)?i.styles:i)?i.hideEllipsis:i,t))+'">...</span>'},6:function(e,t,n,r,o){e.propertyIsEnumerable;var i,s=e.lambda;return' <p class="'+e.escapeExpression(s(null!=(i=null!=(i=null!=t?t.options:t)?i.styles:i)?i.description:i,t))+'">'+(null!=(i=s(null!=(i=null!=t?t.options:t)?i.description:i,t))?i:"")+"</p>\r\n"},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var i;e.propertyIsEnumerable;return null!=(i=n.if.call(null!=t?t:e.nullContext||{},null!=(i=null!=t?t.options:t)?i.truncate:i,{name:"if",hash:{},fn:e.program(1,o,0),inverse:e.program(6,o,0),data:o}))?i:""},useData:!0})},1117:function(e,t,n){e.exports={columnNames:"_1a1Re",descriptionWrapper:"_2MZC5",description:"_3U9j9",ellipsis:"_1YjUg",singleEllipsis:"_3SNtn",showMoreEllipsis:"xy3i9",showEllipsis:"_1_L9t",hideEllipsis:"TCdgP",open:"_18ojI",truncateSmall:"nLuVF",truncateLarge:"sEELY"}},1118:function(e,t,n){var r=n(10);e.exports=(r.default||r).template({compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){return'<div class="video-player-region cursor-pointer responsize-img">\r\n <div class="thumbnail-region"></div>\r\n</div>'},useData:!0})},1198:function(e,t,n){e.exports={svgContainer:"_1CUEt",series:"oZx-K"}},1199:function(e,t,n){var r=n(10);e.exports=(r.default||r).template({1:function(e,t,n,r,o){var i;e.propertyIsEnumerable;return e.escapeExpression(e.lambda(null!=(i=null!=(i=null!=t?t.options:t)?i.styles:i)?i.series:i,t))},3:function(e,t,n,r,o){var i;e.propertyIsEnumerable;return'href="'+e.escapeExpression(e.lambda(null!=(i=null!=t?t.options:t)?i.seriesUrl:i,t))+'" target="_blank"'},5:function(e,t,n,r,o){var i;e.propertyIsEnumerable;return(null!=(i=n.if.call(null!=t?t:e.nullContext||{},null!=(i=null!=t?t.options:t)?i.seasonNumber:i,{name:"if",hash:{},fn:e.program(6,o,0),inverse:e.noop,data:o}))?i:"")+" E"+e.escapeExpression(e.lambda(null!=(i=null!=t?t.options:t)?i.episodeNumber:i,t))+"\r\n"},6:function(e,t,n,r,o){var i;e.propertyIsEnumerable;return" S"+e.escapeExpression(e.lambda(null!=(i=null!=t?t.options:t)?i.seasonNumber:i,t))+" •"},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){e.propertyIsEnumerable;var i,s=null!=t?t:e.nullContext||{};return'<a class="series-applink text-muted '+(null!=(i=n.if.call(s,null!=(i=null!=t?t.options:t)?i.styleUppercase:i,{name:"if",hash:{},fn:e.program(1,o,0),inverse:e.noop,data:o}))?i:"")+'" '+(null!=(i=n.if.call(s,null!=(i=null!=t?t.options:t)?i.seriesUrl:i,{name:"if",hash:{},fn:e.program(3,o,0),inverse:e.noop,data:o}))?i:"")+">\r\n "+(null!=(i=e.lambda(null!=(i=null!=t?t.options:t)?i.seriesName:i,t))?i:"")+(null!=(i=n.if.call(s,null!=(i=null!=t?t.options:t)?i.episodeNumber:i,{name:"if",hash:{},fn:e.program(5,o,0),inverse:e.noop,data:o}))?i:"")+"</a>"},useData:!0})}}]);
|
package/dist/scripts/3.chunk.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
(window["webpackJsonp_clickview_library_editor"] = window["webpackJsonp_clickview_library_editor"] || []).push([[3],{
|
|
2
2
|
|
|
3
3
|
/***/ "../../libs/analytics/src/utils/ObjectFormatHelper.ts":
|
|
4
|
-
|
|
5
|
-
!*** C:/ClickView Projects
|
|
6
|
-
|
|
4
|
+
/*!************************************************************************************************!*\
|
|
5
|
+
!*** C:/ClickView Projects/@clickview/packages/libs/analytics/src/utils/ObjectFormatHelper.ts ***!
|
|
6
|
+
\************************************************************************************************/
|
|
7
7
|
/*! exports provided: ObjectFormatHelper */
|
|
8
8
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
9
9
|
|
|
@@ -25,9 +25,9 @@ var ObjectFormatHelper = {
|
|
|
25
25
|
/***/ }),
|
|
26
26
|
|
|
27
27
|
/***/ "../../libs/analytics/src/utils/VideoAnalyticsTracker.ts":
|
|
28
|
-
|
|
29
|
-
!*** C:/ClickView Projects
|
|
30
|
-
|
|
28
|
+
/*!***************************************************************************************************!*\
|
|
29
|
+
!*** C:/ClickView Projects/@clickview/packages/libs/analytics/src/utils/VideoAnalyticsTracker.ts ***!
|
|
30
|
+
\***************************************************************************************************/
|
|
31
31
|
/*! exports provided: VideoAnalyticsTracker */
|
|
32
32
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
33
33
|
|
|
@@ -301,11 +301,8 @@ var VideoAnalyticsTracker = /*#__PURE__*/function (_Core$Service) {
|
|
|
301
301
|
}, {
|
|
302
302
|
key: "logStream",
|
|
303
303
|
value: function logStream() {
|
|
304
|
-
var action = _AnalyticsHelper__WEBPACK_IMPORTED_MODULE_7__["AnalyticsHelper"].buildActionContext(this.options.analyticsOptions);
|
|
305
|
-
|
|
306
|
-
_Analytics__WEBPACK_IMPORTED_MODULE_6__["Analytics"].log(_interfaces__WEBPACK_IMPORTED_MODULE_5__["UserAction"].Stream, this.getPlaybackData(), action); // This won't actually log as it's blocked in CollectionApiClientHelper.shouldLog
|
|
307
|
-
|
|
308
|
-
_Analytics__WEBPACK_IMPORTED_MODULE_6__["Analytics"].log(_interfaces__WEBPACK_IMPORTED_MODULE_5__["UserAction"].StreamRaw, this.getStreamRawData(), action);
|
|
304
|
+
var action = _AnalyticsHelper__WEBPACK_IMPORTED_MODULE_7__["AnalyticsHelper"].buildActionContext(this.options.analyticsOptions);
|
|
305
|
+
_Analytics__WEBPACK_IMPORTED_MODULE_6__["Analytics"].log(_interfaces__WEBPACK_IMPORTED_MODULE_5__["UserAction"].Stream, this.getPlaybackData(), action);
|
|
309
306
|
}
|
|
310
307
|
/**
|
|
311
308
|
* logVerbose is used for more granular logging than logStream, however as of June 2020
|
|
@@ -320,9 +317,8 @@ var VideoAnalyticsTracker = /*#__PURE__*/function (_Core$Service) {
|
|
|
320
317
|
descriptor: descriptor
|
|
321
318
|
});
|
|
322
319
|
var action = _AnalyticsHelper__WEBPACK_IMPORTED_MODULE_7__["AnalyticsHelper"].buildActionContext(analyticsOptions);
|
|
323
|
-
_Analytics__WEBPACK_IMPORTED_MODULE_6__["Analytics"].log(_interfaces__WEBPACK_IMPORTED_MODULE_5__["UserAction"].
|
|
324
|
-
}
|
|
325
|
-
|
|
320
|
+
_Analytics__WEBPACK_IMPORTED_MODULE_6__["Analytics"].log(_interfaces__WEBPACK_IMPORTED_MODULE_5__["UserAction"].Stream, this.getPlaybackData(), action);
|
|
321
|
+
}
|
|
326
322
|
}, {
|
|
327
323
|
key: "getPlaybackData",
|
|
328
324
|
value: function getPlaybackData() {
|
|
@@ -336,14 +332,6 @@ var VideoAnalyticsTracker = /*#__PURE__*/function (_Core$Service) {
|
|
|
336
332
|
playbackStatus: underscore__WEBPACK_IMPORTED_MODULE_0__["omit"](this.playbackStatus, 'hasStarted')
|
|
337
333
|
};
|
|
338
334
|
}
|
|
339
|
-
}, {
|
|
340
|
-
key: "getStreamRawData",
|
|
341
|
-
value: function getStreamRawData() {
|
|
342
|
-
var model = _ObjectFormatHelper__WEBPACK_IMPORTED_MODULE_4__["ObjectFormatHelper"].toJSON(this.model);
|
|
343
|
-
return {
|
|
344
|
-
id: model.id.toString()
|
|
345
|
-
};
|
|
346
|
-
}
|
|
347
335
|
}, {
|
|
348
336
|
key: "onDestroy",
|
|
349
337
|
value: function onDestroy() {
|
|
@@ -364,9 +352,9 @@ var VideoAnalyticsTracker = /*#__PURE__*/function (_Core$Service) {
|
|
|
364
352
|
/***/ }),
|
|
365
353
|
|
|
366
354
|
/***/ "../../libs/common/src/backbone/constants/Webplayer.ts":
|
|
367
|
-
|
|
368
|
-
!*** C:/ClickView Projects
|
|
369
|
-
|
|
355
|
+
/*!*************************************************************************************************!*\
|
|
356
|
+
!*** C:/ClickView Projects/@clickview/packages/libs/common/src/backbone/constants/Webplayer.ts ***!
|
|
357
|
+
\*************************************************************************************************/
|
|
370
358
|
/*! exports provided: WebplayerEvents */
|
|
371
359
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
372
360
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["file://C:/ClickView Projects/clickview/packages/libs/analytics/src/utils/ObjectFormatHelper.ts","file://C:/ClickView Projects/clickview/packages/libs/analytics/src/utils/VideoAnalyticsTracker.ts","file://C:/ClickView Projects/clickview/packages/libs/common/src/backbone/constants/Webplayer.ts","file://C:/ClickView Projects/clickview/packages/projects/library-editor/src/shared/components/web-player/WebPlayer.handlebars","file://C:/ClickView Projects/clickview/packages/projects/library-editor/src/shared/components/web-player/WebPlayerComponent.ts","file://C:/ClickView Projects/clickview/packages/projects/library-editor/src/shared/components/web-player/webplayer.scss"],"names":[],"mappings":"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","file":"scripts/3.chunk.js","sourcesContent":["import * as Backbone from 'backbone';\r\nimport { Core } from 'libs/common/core';\r\n\r\ntype BackboneDataStructure = Core.Model | Core.Collection | Backbone.Model | Backbone.Collection;\r\n\r\n// Convert backbone models/collection to regular arrays/objects.\r\nexport const ObjectFormatHelper = {\r\n toJSON<T>(object: BackboneDataStructure | T): T {\r\n return (\r\n object instanceof Core.Model ||\r\n object instanceof Core.Collection ||\r\n object instanceof Backbone.Model ||\r\n object instanceof Backbone.Collection\r\n ) ? object.toJSON() : object;\r\n }\r\n};","import * as _ from 'underscore';\r\nimport { ObjectHash } from 'backbone';\r\nimport { CVEventsApi } from 'CVEvents';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { DevError } from 'libs/common/backbone/errors/DevError';\r\nimport { WebplayerEvents } from 'libs/common/backbone/constants/Webplayer';\r\n\r\nimport { ObjectFormatHelper } from 'libs/analytics/utils/ObjectFormatHelper';\r\nimport { Video, AnalyticsOptions, UserAction, PlaybackDescriptor, ActionDescriptor } from 'libs/analytics/interfaces';\r\nimport { Analytics } from 'libs/analytics/Analytics';\r\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\r\n\r\nimport { PlaybackStatus, VideoWatchAnalyticsEvent } from './VideoDataFormatHelper';\r\n\r\n// Record progress watch progress every minute\r\nconst DEFAULT_LOG_INTERVAL = 60; // Seconds\r\n\r\n// Legacy watch event was recorded after viewing for 8 seconds\r\nconst LEGACY_WATCH_ELAPSE = 8;\r\n\r\nconst SHOULD_LOG_VERBOSE = false; // See logVerbose function below.\r\n\r\ninterface StreamRawAnalyticsEvent {\r\n id: string;\r\n}\r\n\r\nexport interface VideoAnalyticsTrackerOptions extends Core.ServiceOptions {\r\n eventsApi: CVEventsApi;\r\n video: Video;\r\n captureInterval?: number;\r\n analyticsOptions?: AnalyticsOptions;\r\n}\r\n\r\nexport class VideoAnalyticsTracker extends Core.Service {\r\n protected options: VideoAnalyticsTrackerOptions;\r\n private eventsApi: CVEventsApi;\r\n private model: Video;\r\n private captureInterval: number = DEFAULT_LOG_INTERVAL;\r\n private playbackStatus: PlaybackStatus;\r\n\r\n constructor(options: VideoAnalyticsTrackerOptions) {\r\n super(options);\r\n }\r\n\r\n public get name(): string {\r\n return 'VideoAnalyticsTracker';\r\n }\r\n\r\n public initialize(): void {\r\n this.eventsApi = this.options.eventsApi;\r\n\r\n if (!this.options.video)\r\n Core.ErrorHelper.throw(new DevError('Video logging requires video to be passed in.'));\r\n\r\n this.model = this.options.video;\r\n\r\n this.playbackStatus = this.getNewPlaybackStatus();\r\n\r\n if (this.options.captureInterval)\r\n this.captureInterval = this.options.captureInterval;\r\n\r\n this.bindListeners();\r\n this.getChapters();\r\n }\r\n\r\n private bindListeners(): void {\r\n this.eventsApi.on(WebplayerEvents.RECEIVE.TIME_UPDATE, _.bind(this.onPlayerTimeUpdate, this));\r\n this.eventsApi.on(WebplayerEvents.RECEIVE.VIDEO_END, _.bind(this.onEnd, this));\r\n this.eventsApi.on(WebplayerEvents.RECEIVE.FULLSCREEN_CHANGE, _.bind(this.onFullScreen, this));\r\n this.eventsApi.on(WebplayerEvents.RECEIVE.CHAPTER_CHANGE, _.bind(this.onChapterChange, this));\r\n }\r\n\r\n private unbindListeners(): void {\r\n this.eventsApi.off(WebplayerEvents.RECEIVE.TIME_UPDATE);\r\n this.eventsApi.off(WebplayerEvents.RECEIVE.VIDEO_END);\r\n this.eventsApi.off(WebplayerEvents.RECEIVE.FULLSCREEN_CHANGE);\r\n this.eventsApi.off(WebplayerEvents.RECEIVE.CHAPTER_CHANGE);\r\n }\r\n\r\n private getChapters(): void {\r\n this.queryWebplayer(WebplayerEvents.QUERIES.GET_CHAPTERS, (e: JQuery.Event, chapters: ObjectHash[]) => {\r\n this.setInitialChapter(chapters);\r\n this.setVideoDuration(chapters);\r\n });\r\n }\r\n\r\n private queryWebplayer(queryEvent: string, callback: Function): void {\r\n const uniqueTrackerId = _.uniqueId(this.name);\r\n const queryCallbackEvent = `${WebplayerEvents.RECEIVE.QUERY_CALLBACK}-${uniqueTrackerId}`;\r\n\r\n this.eventsApi.one(queryCallbackEvent, callback);\r\n this.eventsApi.trigger(WebplayerEvents.TRIGGER.QUERY, queryEvent, uniqueTrackerId);\r\n }\r\n\r\n private onEnd(): void {\r\n this.setCurrentPosition(this.playbackStatus.totalDuration);\r\n this.logVerbose(PlaybackDescriptor.Finish);\r\n this.resetPlaybackStatus();\r\n }\r\n\r\n private onFullScreen(e: JQuery.Event, isFullScreen: boolean): void {\r\n const descriptor = isFullScreen ? PlaybackDescriptor.FullScreenEnter : PlaybackDescriptor.FullScreenExit;\r\n this.logVerbose(descriptor);\r\n }\r\n\r\n\r\n private onPlayerTimeUpdate(e: JQuery.Event, rawTime: number): void {\r\n this.queryWebplayer(WebplayerEvents.QUERIES.IS_PAUSED, (ev: JQuery.Event, isPaused: boolean) => {\r\n this.updateTime(rawTime, isPaused);\r\n });\r\n }\r\n\r\n private onChapterChange(e: JQuery.Event, nextChapter: ObjectHash): void {\r\n if (!_.isObject(nextChapter)) return;\r\n this.setCurrentChapter(nextChapter.number);\r\n }\r\n\r\n private updateTime(rawTime: number, isPaused: boolean): void {\r\n const time = Math.floor(rawTime);\r\n\r\n /**\r\n * Ignore the first time update at 0 and duplicate events with the same rawTime point. \r\n * This is necessary to avoid subtle bugs where the webplayer is reset at the end of playback.\r\n */\r\n if (!time || time === this.getCurrentPositon()) return;\r\n\r\n /**\r\n * Always set the position first, so we can restore state when the user continues\r\n * playback of the same video from a different location. \r\n */\r\n this.setCurrentPosition(time);\r\n\r\n /**\r\n * Only update watch time and log if we are actually playing a video\r\n */\r\n if (isPaused)\r\n return;\r\n\r\n // Log the start event\r\n if (!this.playbackHasStarted()) {\r\n this.logVerbose(PlaybackDescriptor.Start);\r\n this.setPlaybackStarted();\r\n }\r\n\r\n this.incrementWatchTime();\r\n\r\n // Log at each interval period\r\n if (this.getWatchTime() % this.captureInterval === 0)\r\n this.logVerbose(PlaybackDescriptor.Playback);\r\n\r\n if (this.getWatchTime() === LEGACY_WATCH_ELAPSE)\r\n this.logStream();\r\n }\r\n\r\n private setInitialChapter(chapters: ObjectHash[]): void {\r\n const currentChapter = _.find(chapters, (c: ObjectHash) => c.current === true);\r\n\r\n if (!_.isObject(currentChapter)) return;\r\n\r\n this.setCurrentChapter(currentChapter.number);\r\n }\r\n\r\n private setVideoDuration(chapters: ObjectHash[]): void {\r\n let totalDuration = _.reduce(chapters, (d: number, c: ObjectHash) => d + c.duration, 0);\r\n\r\n if (_.isNaN(totalDuration) || !_.isNumber(totalDuration))\r\n return;\r\n\r\n // Always round down to the current second\r\n this.playbackStatus.totalDuration = Math.floor(totalDuration);\r\n }\r\n\r\n // Store the current playback position\r\n private setCurrentPosition(time: number): void {\r\n this.playbackStatus.position = time;\r\n }\r\n\r\n private getCurrentPositon(): number {\r\n return this.playbackStatus.position;\r\n }\r\n\r\n private setCurrentChapter(chapter: number): void {\r\n this.playbackStatus.chapter = chapter;\r\n }\r\n\r\n private setPlaybackStarted(): void {\r\n this.playbackStatus.hasStarted = true;\r\n }\r\n\r\n private playbackHasStarted(): boolean {\r\n return this.playbackStatus.hasStarted;\r\n }\r\n\r\n private getWatchTime(): number {\r\n return this.playbackStatus.totalWatched;\r\n }\r\n\r\n private incrementWatchTime(): void {\r\n this.playbackStatus.totalWatched += 1;\r\n }\r\n\r\n private getNewPlaybackStatus(options: ObjectHash = {}): PlaybackStatus {\r\n const { duration, watched } = options;\r\n\r\n return {\r\n position: 0,\r\n chapter: 0,\r\n hasStarted: false,\r\n totalWatched: watched ? watched : 0,\r\n totalDuration: duration ? duration : 0\r\n };\r\n }\r\n\r\n private resetPlaybackStatus(): void {\r\n const preservedState = {\r\n duration: this.playbackStatus.totalDuration,\r\n watched: this.playbackStatus.totalWatched\r\n };\r\n\r\n this.playbackStatus = this.getNewPlaybackStatus(preservedState);\r\n }\r\n\r\n private unbindUnload(): void {\r\n $(window).off('unload');\r\n }\r\n\r\n private bindUnload(): void {\r\n $(window).on('unload', _.bind(this.logUnload, this));\r\n }\r\n\r\n private logUnload(): void {\r\n if (!this.playbackHasStarted())\r\n return;\r\n\r\n this.logVerbose(PlaybackDescriptor.Terminate);\r\n }\r\n\r\n private logStream(): void {\r\n const action = AnalyticsHelper.buildActionContext(this.options.analyticsOptions);\r\n\r\n // TODO: Remove when migration to StreamRaw is finalised.\r\n Analytics.log(UserAction.Stream, this.getPlaybackData(), action);\r\n\r\n // This won't actually log as it's blocked in CollectionApiClientHelper.shouldLog\r\n Analytics.log(UserAction.StreamRaw, this.getStreamRawData(), action);\r\n }\r\n\r\n /**\r\n * logVerbose is used for more granular logging than logStream, however as of June 2020\r\n * we are only logging the simpler stream event which is the same as videoWatched in Online.\r\n */\r\n private logVerbose(descriptor: ActionDescriptor): void {\r\n if (!SHOULD_LOG_VERBOSE)\r\n return;\r\n\r\n const analyticsOptions = AnalyticsHelper.mergeOptions(this.options.analyticsOptions, { descriptor });\r\n const action = AnalyticsHelper.buildActionContext(analyticsOptions);\r\n\r\n Analytics.log(UserAction.StreamRaw, this.getStreamRawData(), action);\r\n }\r\n\r\n // TODO: Remove when migration to StreamRaw is finalised.\r\n private getPlaybackData(): VideoWatchAnalyticsEvent {\r\n return {\r\n model: ObjectFormatHelper.toJSON<Video>(this.model),\r\n /**\r\n * Clone the playback status to ensure that the object is not mutated prior to being logged by\r\n * the AnalyticsService. Remove view-specific properties.\r\n */\r\n playbackStatus: _.omit(this.playbackStatus, 'hasStarted')\r\n };\r\n }\r\n\r\n private getStreamRawData(): StreamRawAnalyticsEvent {\r\n const model = ObjectFormatHelper.toJSON<Video>(this.model);\r\n\r\n return {\r\n id: model.id.toString()\r\n };\r\n }\r\n\r\n public onDestroy(): void {\r\n this.unbindListeners();\r\n this.unbindUnload();\r\n this.logUnload();\r\n }\r\n}\r\n","/**\r\n * Events are mapped against those in Webplayer.\r\n * @see http://gitlab.cvinternal.net/WebPlayer/WebPlayer/blob/master/ClickView.Html5.WebPlayer.Web/Scripts/CVPlayerEventsApi.js\r\n */\r\nconst WebplayerEvents = {\r\n /**\r\n * Events emitted from webplayer via CVEventsAPI\r\n */\r\n RECEIVE: {\r\n PLAY: 'cv-player-play',\r\n PAUSE: 'cv-player-pause',\r\n VIDEO_END: 'cv-player-ended',\r\n VOLUME_CHANGE: 'cv-player-volumechange',\r\n CHAPTER_CHANGE: 'cv-player-chapterchange',\r\n TIME_UPDATE: 'cv-player-timeupdate',\r\n FULLSCREEN_CHANGE: 'cv-player-fullscreenchange',\r\n CLIP_POINTS_UPDATE: 'cv-player-cliptoolupdate',\r\n QUALITY_CHANGE: 'cv-player-qualitychange',\r\n QUERY_CALLBACK: 'cv-player-querycallback',\r\n SUBTITLES_ENABLED: 'cv-player-hassubtitles',\r\n SUBTITLES: 'cv-player-subtitles',\r\n PONG: 'cv-player-pong',\r\n\r\n // User-initiated events from webplayer UI\r\n FULLSCREEN_CLICK: '_cvwp:fsc',\r\n DEVICES_BTN_CLICK: '_cvwp:devices:click',\r\n },\r\n\r\n /**\r\n * Events to trigger on CVEventsAPI to manage/update webplayer\r\n */\r\n TRIGGER: {\r\n PLAY: 'cv-player-play',\r\n PAUSE: 'cv-player-pause',\r\n SET_VOLUME: 'cv-player-setvolume',\r\n NEXT_CHAPTER: 'cv-player-nextchapter',\r\n PREV_CHAPTER: 'cv-player-previouschapter',\r\n CHANGE_CHAPTER: 'cv-player-changechapter',\r\n TOGGLE_CLIPPING: 'cv-player-cliptooltoggle',\r\n SET_CLIP_POINTS: 'cv-player-cliptoolset',\r\n CLIP: 'cv-player-setclip',\r\n CLEAR_CLIP: 'cv-player-clearclip',\r\n SEEK_TO: 'cv-player-seekto',\r\n CONTROLS: 'cv-player-showcontrols',\r\n SUBTITLES: 'cv-player-subtitles',\r\n SET_QUALITY: 'cv-player-setquality',\r\n QUERY: 'cv-player-query',\r\n ADD_LISTENER: 'cv-player-addlistener',\r\n REMOVE_LISTENER: 'cv-player-removelistener',\r\n PING: 'cv-player-ping',\r\n\r\n // Update Webplayer UI\r\n TOGGLE_DEVICES_BTN: '_cv:toggledevicesbtn',\r\n SHOW_DEVICES_BTN: '_cv:showdevicesbtn',\r\n SHOW_FS_BTN: '_cv:showfsbtn'\r\n },\r\n\r\n /**\r\n * The webplayer can be queried directly for the following data.\r\n * Listen on QUERY_CALLBACK for result and trigger on QUERY.\r\n */\r\n QUERIES: {\r\n GET_AVAILABLE_QUALITIES: 'getAvailableQualities',\r\n GET_CURRENT_QUALITY: 'currentQuality',\r\n IS_PAUSED: 'paused',\r\n GET_CURRENT_TIME: 'currentTime',\r\n GET_CHAPTERS: 'getChapters',\r\n HAS_METADATA_CHAPTERS: 'hasMetadataChapters',\r\n }\r\n};\r\n\r\nexport { WebplayerEvents };","var Handlebars = require('handlebars');\nmodule.exports = (Handlebars['default'] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.propertyIsEnumerable, alias2=container.lambda, alias3=container.escapeExpression;\n\n return \"<iframe class=\\\"\"\n + alias3(alias2(((stack1 = ((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.styles : stack1)) != null ? stack1.webPlayer : stack1), depth0))\n + \" embed-responsive-item\\\" id=\\\"\"\n + alias3(alias2(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.id : stack1), depth0))\n + \"\\\" allowfullscreen webkitallowfullscreen mozallowfullscreen allow=\\\"autoplay; fullscreen\\\" frameborder=\\\"0\\\" width=\\\"\"\n + alias3(alias2(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.width : stack1), depth0))\n + \"\\\" height=\\\"\"\n + alias3(alias2(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.height : stack1), depth0))\n + \"\\\" src=\\\"\"\n + alias3(alias2(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.url : stack1), depth0))\n + \"\\\"></iframe>\\r\\n<div class=\\\"\"\n + alias3(alias2(((stack1 = ((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.styles : stack1)) != null ? stack1.svgContainer : stack1), depth0))\n + \"\\\">\"\n + ((stack1 = alias2(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.playSvg : stack1), depth0)) != null ? stack1 : \"\")\n + \"</div>\";\n},\"useData\":true});","import * as _ from 'underscore';\r\nimport { ObjectHash, Radio } from 'backbone';\r\nimport { signUrl } from '@clickview/url-signer';\r\n\r\nimport { WebplayerEvents } from 'libs/common/backbone/constants/Webplayer';\r\nimport { Core } from 'libs/common/core';\r\nimport { ViewModelService } from 'libs/common/backbone/services/ViewModelService';\r\nimport { DevError } from 'libs/common/backbone/errors/DevError';\r\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\r\nimport { SvgHelper, cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\n\r\nimport { CVEventsApi } from 'CVEvents';\r\n\r\nimport { Video } from 'shared/models/Video';\r\nimport { Webplayer } from 'shared/constants';\r\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\r\nimport { VideoAnalyticsTracker } from 'libs/analytics/utils/VideoAnalyticsTracker';\r\n\r\nimport WebPlayerTemplate from './WebPlayer.handlebars';\r\nimport styles from './webplayer.scss';\r\n\r\nexport interface WebPlayerComponentOptions extends Core.ComponentOptions<Video> {\r\n isPreview?: boolean;\r\n autoplay?: boolean;\r\n parentChannelName?: string;\r\n webPlayerUrl: string;\r\n showDevicesButton?: boolean;\r\n captureAnalytics?: boolean;\r\n analyticsOptions?: AnalyticsOptions;\r\n}\r\n\r\nexport class WebPlayerComponent extends Core.Component<Video> {\r\n protected options: WebPlayerComponentOptions;\r\n\r\n public viewModel: Core.Model;\r\n private eventsApi: CVEventsApi;\r\n private enableIeFs: boolean;\r\n private isPreview: boolean;\r\n private iframeReady: boolean;\r\n private tracker: VideoAnalyticsTracker;\r\n\r\n constructor(options?: WebPlayerComponentOptions) {\r\n super(options);\r\n }\r\n\r\n public get elements(): ObjectHash {\r\n return {\r\n iframe: 'iframe'\r\n };\r\n }\r\n\r\n public get name(): string {\r\n return 'WebPlayerView';\r\n }\r\n\r\n public get template(): any {\r\n return WebPlayerTemplate;\r\n }\r\n\r\n public get className(): string {\r\n return `${styles.webPlayerContainer} embed-responsive embed-responsive-16by9`;\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 defaults(): ObjectHash {\r\n return {\r\n captureAnalytics: true,\r\n showDevicesButton: false\r\n };\r\n }\r\n\r\n private get viewModelDefaults(): ObjectHash {\r\n return {\r\n width: 640,\r\n height: 360,\r\n autoplay: !!this.options.autoplay,\r\n parameters: {\r\n s: false, // Hide the splash\r\n bc: false, // Hide chapters and resources\r\n bf: false // Hide fullscreen button\r\n },\r\n webPlayerHost: this.options.webPlayerUrl\r\n };\r\n }\r\n\r\n public initialize(): void {\r\n this.enableIeFs = this.isTop();\r\n\r\n this.getViewModel();\r\n }\r\n\r\n public seekTo(time: number): void {\r\n if (this.eventsApi)\r\n this.eventsApi.trigger(WebplayerEvents.TRIGGER.SEEK_TO, time);\r\n }\r\n\r\n public seekToChapter(chapterIndex: number): void {\r\n if (this.eventsApi)\r\n this.eventsApi.trigger('cv-player-changechapter', chapterIndex);\r\n }\r\n\r\n private getViewModel(): void {\r\n let id = this.model.get('id');\r\n\r\n if (!id)\r\n id = this.model.get('trackingCode');\r\n\r\n this.viewModel = ViewModelService.get(`${Webplayer.NAME}-${id}`);\r\n\r\n if (!this.viewModel.get('initialized'))\r\n this.initViewModel();\r\n\r\n this.setUrl();\r\n }\r\n\r\n private initViewModel(): void {\r\n let videoModel = this.model.pick('id');\r\n\r\n if (!videoModel.id)\r\n videoModel = this.model.pick('trackingCode');\r\n\r\n if (!videoModel.id && !videoModel.trackingCode) {\r\n Core.ErrorHelper.throw(new DevError(`Must provide either a master id or a tracking code to ${this.name}`));\r\n }\r\n\r\n const attrs = _.extend({},\r\n this.viewModelDefaults,\r\n videoModel,\r\n this.viewModel.toJSON(),\r\n {\r\n initialized: true\r\n }\r\n );\r\n\r\n this.viewModel.set(attrs);\r\n }\r\n\r\n private initWebPlayerEvents(): void {\r\n if (!this.enableIeFs) return;\r\n\r\n const $iframe = this.getUI('iframe');\r\n if (!$iframe || $iframe.length === 0)\r\n return;\r\n\r\n $iframe.on('load', this.bindWebPlayerEvents.bind(this));\r\n }\r\n\r\n private bindWebPlayerEvents(): void {\r\n if (this.iframeReady)\r\n return;\r\n\r\n const iframe = this.getUI('iframe').get(0) as HTMLIFrameElement;\r\n\r\n this.eventsApi = new CVEventsApi(iframe.contentWindow);\r\n\r\n // Ping to see if we are ready\r\n this.eventsApi.on(WebplayerEvents.RECEIVE.PONG, this.onPong.bind(this));\r\n this.eventsApi.trigger(WebplayerEvents.TRIGGER.PING);\r\n\r\n // Bind events\r\n this.eventsApi.on(WebplayerEvents.RECEIVE.FULLSCREEN_CLICK, this.onFullscreenChange.bind(this));\r\n this.eventsApi.trigger(WebplayerEvents.TRIGGER.SHOW_FS_BTN);\r\n\r\n this.eventsApi.on(WebplayerEvents.RECEIVE.TIME_UPDATE, this.onTimeUpdate.bind(this));\r\n this.eventsApi.on(WebplayerEvents.RECEIVE.PLAY, this.onPlay.bind(this));\r\n this.eventsApi.on(WebplayerEvents.RECEIVE.PAUSE, this.onPause.bind(this));\r\n this.eventsApi.on(WebplayerEvents.RECEIVE.VIDEO_END, this.onEnded.bind(this));\r\n\r\n // TODO: Push to device is not yet supported in LE. Also needs to check the user is an Admin.\r\n // Update default in future. \r\n if (this.options.showDevicesButton) {\r\n this.eventsApi.on(WebplayerEvents.RECEIVE.DEVICES_BTN_CLICK, this.showDeviceToggle.bind(this));\r\n this.eventsApi.trigger(WebplayerEvents.TRIGGER.SHOW_DEVICES_BTN);\r\n }\r\n\r\n if (this.options.captureAnalytics)\r\n this.tracker = new VideoAnalyticsTracker({\r\n video: this.model.toJSON(),\r\n eventsApi: this.eventsApi,\r\n analyticsOptions: this.options.analyticsOptions\r\n });\r\n }\r\n\r\n private unbindWebPlayerEvents(): void {\r\n if (!this.eventsApi) return;\r\n\r\n this.eventsApi.off(WebplayerEvents.RECEIVE.FULLSCREEN_CLICK);\r\n this.eventsApi.off(WebplayerEvents.RECEIVE.TIME_UPDATE);\r\n this.eventsApi.off(WebplayerEvents.RECEIVE.PLAY);\r\n this.eventsApi.off(WebplayerEvents.RECEIVE.PAUSE);\r\n this.eventsApi.off(WebplayerEvents.RECEIVE.VIDEO_END);\r\n this.eventsApi.off(WebplayerEvents.RECEIVE.PONG);\r\n this.eventsApi.off(WebplayerEvents.RECEIVE.DEVICES_BTN_CLICK);\r\n }\r\n\r\n private setUrl(): void {\r\n const webPlayerHost = `${this.viewModel.get('webPlayerHost')}embed`;\r\n\r\n const reservedParams = [ 'p', 'vid' ];\r\n const webPlayerParams = _.omit(this.viewModel.get('parameters'), reservedParams) || {};\r\n\r\n webPlayerParams.a = !!this.viewModel.get('autoplay');\r\n\r\n const id = this.viewModel.get('id');\r\n\r\n if (id)\r\n webPlayerParams.vid = id;\r\n\r\n const trackingCode = this.viewModel.get('trackingCode');\r\n\r\n if (trackingCode)\r\n webPlayerParams.p = trackingCode;\r\n\r\n if (this.viewModel.get('currenttime')) {\r\n webPlayerParams.t = this.viewModel.get('currenttime');\r\n webPlayerParams.a = !this.viewModel.get('paused');\r\n }\r\n\r\n const url = UrlHelper.urlBuilder(webPlayerHost, webPlayerParams);\r\n const signedUrl = signUrl(url, { timestamp: true });\r\n\r\n this.viewModel.set({ url: signedUrl });\r\n }\r\n\r\n private isTop(): boolean {\r\n return window.top === window;\r\n }\r\n\r\n private onTimeUpdate(e: JQuery.Event, time: Date): void {\r\n this.viewModel.set('ready', true);\r\n this.viewModel.set('currenttime', time);\r\n }\r\n\r\n private onPlay(): void {\r\n this.viewModel.set('ready', true);\r\n this.viewModel.set('paused', false);\r\n }\r\n\r\n private onPause(): void {\r\n this.viewModel.set('ready', true);\r\n this.viewModel.set('paused', true);\r\n }\r\n\r\n private onEnded(): void {\r\n this.viewModel.trigger('ended');\r\n }\r\n\r\n private onPong(): void {\r\n this.iframeReady = true;\r\n this.viewModel.set('ready', true);\r\n\r\n const channel = Radio.channel(this.channelName);\r\n channel.trigger('loaded');\r\n\r\n // Notify any parent components once the webpalyer is ready\r\n if (this.options.parentChannelName)\r\n Radio.channel(this.options.parentChannelName).trigger('webplayer:loaded');\r\n }\r\n\r\n private onFullscreenChange(e: JQuery.Event, isFs: boolean, hasFsApi: boolean): void {\r\n if (isFs) {\r\n this.requestFs(hasFsApi);\r\n return;\r\n }\r\n\r\n this.cancelFs(hasFsApi);\r\n }\r\n\r\n private requestFs(hasFsApi: boolean): void {\r\n // If the request wasn't sent using the fullscreen API, add the fs class\r\n if (!hasFsApi)\r\n $('html').addClass('player-fullscreen');\r\n }\r\n\r\n private cancelFs(hasFsApi: boolean): void {\r\n // If the request wasn't sent using the fullscreen API, add the fs class\r\n if (!hasFsApi)\r\n $('html').removeClass('player-fullscreen');\r\n }\r\n\r\n private showDeviceToggle(shouldShow: boolean): void {\r\n this.viewModel.trigger('showDevices', !!shouldShow);\r\n }\r\n\r\n public query(queryName: string, callback: (...args: any[]) => void): void {\r\n if (!this.iframeReady) {\r\n this.listenToOnce(this.channelName, 'loaded', () => this.query(queryName, callback));\r\n return;\r\n }\r\n\r\n const uniqueId = _.uniqueId(`cveventsapi`);\r\n\r\n this.eventsApi.one(`${WebplayerEvents.RECEIVE.QUERY_CALLBACK}-${uniqueId}`, (event: any, data: any) => {\r\n callback(data);\r\n });\r\n\r\n this.eventsApi.trigger(WebplayerEvents.TRIGGER.QUERY, queryName, uniqueId);\r\n }\r\n\r\n public viewOptions(): ObjectHash {\r\n return _.extend({},\r\n {\r\n styles,\r\n playSvg: SvgHelper.getSvg(cvSvgLibrary.Play),\r\n },\r\n this.viewModel.toJSON()\r\n );\r\n }\r\n\r\n public onRender(): void {\r\n this.initWebPlayerEvents();\r\n }\r\n\r\n public onBeforeDestroy(): void {\r\n this.unbindWebPlayerEvents();\r\n\r\n // Clean up our analytics tracker\r\n if (this.tracker)\r\n this.tracker.destroy();\r\n }\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"webPlayerContainer\":\"cv--webPlayerContainer--2S4VF\",\"webPlayer\":\"cv--webPlayer--3569L\",\"svgContainer\":\"cv--svgContainer--1WsxD\"};"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["file://C:/ClickView Projects/@clickview/packages/libs/analytics/src/utils/ObjectFormatHelper.ts","file://C:/ClickView Projects/@clickview/packages/libs/analytics/src/utils/VideoAnalyticsTracker.ts","file://C:/ClickView Projects/@clickview/packages/libs/common/src/backbone/constants/Webplayer.ts","file://C:/ClickView Projects/@clickview/packages/projects/library-editor/src/shared/components/web-player/WebPlayer.handlebars","file://C:/ClickView Projects/@clickview/packages/projects/library-editor/src/shared/components/web-player/WebPlayerComponent.ts","webpack://@clickview/library-editor/./src/shared/components/web-player/webplayer.scss?b55b"],"names":[],"mappings":"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","file":"scripts/3.chunk.js","sourcesContent":["import * as Backbone from 'backbone';\r\nimport { Core } from 'libs/common/core';\r\n\r\ntype BackboneDataStructure = Core.Model | Core.Collection | Backbone.Model | Backbone.Collection;\r\n\r\n// Convert backbone models/collection to regular arrays/objects.\r\nexport const ObjectFormatHelper = {\r\n toJSON<T>(object: BackboneDataStructure | T): T {\r\n return (\r\n object instanceof Core.Model ||\r\n object instanceof Core.Collection ||\r\n object instanceof Backbone.Model ||\r\n object instanceof Backbone.Collection\r\n ) ? object.toJSON() : object;\r\n }\r\n};","import * as _ from 'underscore';\r\nimport { ObjectHash } from 'backbone';\r\nimport { Core } from 'libs/common/core';\r\nimport { DevError } from 'libs/common/backbone/errors/DevError';\r\nimport { WebplayerEvents } from 'libs/common/backbone/constants/Webplayer';\r\nimport { CVEventsApi } from 'CVEvents';\r\nimport { ObjectFormatHelper } from 'libs/analytics/utils/ObjectFormatHelper';\r\n\r\nimport { Video, AnalyticsOptions, UserAction, PlaybackDescriptor, ActionDescriptor } from 'libs/analytics/interfaces';\r\nimport { PlaybackStatus, VideoWatchAnalyticsEvent } from 'libs/analytics/utils/VideoDataFormatHelper';\r\n\r\nimport { Analytics } from '../Analytics';\r\nimport { AnalyticsHelper } from '../AnalyticsHelper';\r\n\r\n// Record progress watch progress every minute\r\nconst DEFAULT_LOG_INTERVAL = 60; // Seconds\r\n\r\n// Legacy watch event was recorded after viewing for 8 seconds\r\nconst LEGACY_WATCH_ELAPSE = 8;\r\n\r\nconst SHOULD_LOG_VERBOSE = false; // See logVerbose function below.\r\n\r\nexport interface VideoAnalyticsTrackerOptions extends Core.ServiceOptions {\r\n eventsApi: CVEventsApi;\r\n video: Video;\r\n captureInterval?: number;\r\n analyticsOptions?: AnalyticsOptions;\r\n}\r\n\r\nexport class VideoAnalyticsTracker extends Core.Service {\r\n protected options: VideoAnalyticsTrackerOptions;\r\n private eventsApi: CVEventsApi;\r\n private model: Video;\r\n private captureInterval: number = DEFAULT_LOG_INTERVAL;\r\n private playbackStatus: PlaybackStatus;\r\n\r\n constructor(options: VideoAnalyticsTrackerOptions) {\r\n super(options);\r\n }\r\n\r\n public get name(): string {\r\n return 'VideoAnalyticsTracker';\r\n }\r\n\r\n public initialize(): void {\r\n this.eventsApi = this.options.eventsApi;\r\n\r\n if (!this.options.video)\r\n Core.ErrorHelper.throw(new DevError('Video logging requires video to be passed in.'));\r\n\r\n this.model = this.options.video;\r\n\r\n this.playbackStatus = this.getNewPlaybackStatus();\r\n\r\n if (this.options.captureInterval)\r\n this.captureInterval = this.options.captureInterval;\r\n\r\n this.bindListeners();\r\n this.getChapters();\r\n }\r\n\r\n private bindListeners(): void {\r\n this.eventsApi.on(WebplayerEvents.RECEIVE.TIME_UPDATE, _.bind(this.onPlayerTimeUpdate, this));\r\n this.eventsApi.on(WebplayerEvents.RECEIVE.VIDEO_END, _.bind(this.onEnd, this));\r\n this.eventsApi.on(WebplayerEvents.RECEIVE.FULLSCREEN_CHANGE, _.bind(this.onFullScreen, this));\r\n this.eventsApi.on(WebplayerEvents.RECEIVE.CHAPTER_CHANGE, _.bind(this.onChapterChange, this));\r\n }\r\n\r\n private unbindListeners(): void {\r\n this.eventsApi.off(WebplayerEvents.RECEIVE.TIME_UPDATE);\r\n this.eventsApi.off(WebplayerEvents.RECEIVE.VIDEO_END);\r\n this.eventsApi.off(WebplayerEvents.RECEIVE.FULLSCREEN_CHANGE);\r\n this.eventsApi.off(WebplayerEvents.RECEIVE.CHAPTER_CHANGE);\r\n }\r\n\r\n private getChapters(): void {\r\n this.queryWebplayer(WebplayerEvents.QUERIES.GET_CHAPTERS, (e: JQuery.Event, chapters: ObjectHash[]) => {\r\n this.setInitialChapter(chapters);\r\n this.setVideoDuration(chapters);\r\n });\r\n }\r\n\r\n private queryWebplayer(queryEvent: string, callback: Function): void {\r\n const uniqueTrackerId = _.uniqueId(this.name);\r\n const queryCallbackEvent = `${WebplayerEvents.RECEIVE.QUERY_CALLBACK}-${uniqueTrackerId}`;\r\n\r\n this.eventsApi.one(queryCallbackEvent, callback);\r\n this.eventsApi.trigger(WebplayerEvents.TRIGGER.QUERY, queryEvent, uniqueTrackerId);\r\n }\r\n\r\n private onEnd(): void {\r\n this.setCurrentPosition(this.playbackStatus.totalDuration);\r\n this.logVerbose(PlaybackDescriptor.Finish);\r\n this.resetPlaybackStatus();\r\n }\r\n\r\n private onFullScreen(e: JQuery.Event, isFullScreen: boolean): void {\r\n const descriptor = isFullScreen ? PlaybackDescriptor.FullScreenEnter : PlaybackDescriptor.FullScreenExit;\r\n this.logVerbose(descriptor);\r\n }\r\n\r\n\r\n private onPlayerTimeUpdate(e: JQuery.Event, rawTime: number): void {\r\n this.queryWebplayer(WebplayerEvents.QUERIES.IS_PAUSED, (ev: JQuery.Event, isPaused: boolean) => {\r\n this.updateTime(rawTime, isPaused);\r\n });\r\n }\r\n\r\n private onChapterChange(e: JQuery.Event, nextChapter: ObjectHash): void {\r\n if (!_.isObject(nextChapter)) return;\r\n this.setCurrentChapter(nextChapter.number);\r\n }\r\n\r\n private updateTime(rawTime: number, isPaused: boolean): void {\r\n const time = Math.floor(rawTime);\r\n\r\n /**\r\n * Ignore the first time update at 0 and duplicate events with the same rawTime point. \r\n * This is necessary to avoid subtle bugs where the webplayer is reset at the end of playback.\r\n */\r\n if (!time || time === this.getCurrentPositon()) return;\r\n\r\n /**\r\n * Always set the position first, so we can restore state when the user continues\r\n * playback of the same video from a different location. \r\n */\r\n this.setCurrentPosition(time);\r\n\r\n /**\r\n * Only update watch time and log if we are actually playing a video\r\n */\r\n if (isPaused)\r\n return;\r\n\r\n // Log the start event\r\n if (!this.playbackHasStarted()) {\r\n this.logVerbose(PlaybackDescriptor.Start);\r\n this.setPlaybackStarted();\r\n }\r\n\r\n this.incrementWatchTime();\r\n\r\n // Log at each interval period\r\n if (this.getWatchTime() % this.captureInterval === 0)\r\n this.logVerbose(PlaybackDescriptor.Playback);\r\n\r\n if (this.getWatchTime() === LEGACY_WATCH_ELAPSE)\r\n this.logStream();\r\n }\r\n\r\n private setInitialChapter(chapters: ObjectHash[]): void {\r\n const currentChapter = _.find(chapters, (c: ObjectHash) => c.current === true);\r\n\r\n if (!_.isObject(currentChapter)) return;\r\n\r\n this.setCurrentChapter(currentChapter.number);\r\n }\r\n\r\n private setVideoDuration(chapters: ObjectHash[]): void {\r\n let totalDuration = _.reduce(chapters, (d: number, c: ObjectHash) => d + c.duration, 0);\r\n\r\n if (_.isNaN(totalDuration) || !_.isNumber(totalDuration))\r\n return;\r\n\r\n // Always round down to the current second\r\n this.playbackStatus.totalDuration = Math.floor(totalDuration);\r\n }\r\n\r\n // Store the current playback position\r\n private setCurrentPosition(time: number): void {\r\n this.playbackStatus.position = time;\r\n }\r\n\r\n private getCurrentPositon(): number {\r\n return this.playbackStatus.position;\r\n }\r\n\r\n private setCurrentChapter(chapter: number): void {\r\n this.playbackStatus.chapter = chapter;\r\n }\r\n\r\n private setPlaybackStarted(): void {\r\n this.playbackStatus.hasStarted = true;\r\n }\r\n\r\n private playbackHasStarted(): boolean {\r\n return this.playbackStatus.hasStarted;\r\n }\r\n\r\n private getWatchTime(): number {\r\n return this.playbackStatus.totalWatched;\r\n }\r\n\r\n private incrementWatchTime(): void {\r\n this.playbackStatus.totalWatched += 1;\r\n }\r\n\r\n private getNewPlaybackStatus(options: ObjectHash = {}): PlaybackStatus {\r\n const { duration, watched } = options;\r\n\r\n return {\r\n position: 0,\r\n chapter: 0,\r\n hasStarted: false,\r\n totalWatched: watched ? watched : 0,\r\n totalDuration: duration ? duration : 0\r\n };\r\n }\r\n\r\n private resetPlaybackStatus(): void {\r\n const preservedState = {\r\n duration: this.playbackStatus.totalDuration,\r\n watched: this.playbackStatus.totalWatched\r\n };\r\n\r\n this.playbackStatus = this.getNewPlaybackStatus(preservedState);\r\n }\r\n\r\n private unbindUnload(): void {\r\n $(window).off('unload');\r\n }\r\n\r\n private bindUnload(): void {\r\n $(window).on('unload', _.bind(this.logUnload, this));\r\n }\r\n\r\n private logUnload(): void {\r\n if (!this.playbackHasStarted())\r\n return;\r\n\r\n this.logVerbose(PlaybackDescriptor.Terminate);\r\n }\r\n\r\n private logStream(): void {\r\n const action = AnalyticsHelper.buildActionContext(this.options.analyticsOptions);\r\n Analytics.log(UserAction.Stream, this.getPlaybackData(), action);\r\n }\r\n\r\n /**\r\n * logVerbose is used for more granular logging than logStream, however as of June 2020\r\n * we are only logging the simpler stream event which is the same as videoWatched in Online.\r\n */\r\n private logVerbose(descriptor: ActionDescriptor): void {\r\n if (!SHOULD_LOG_VERBOSE)\r\n return;\r\n\r\n const analyticsOptions = AnalyticsHelper.mergeOptions(this.options.analyticsOptions, { descriptor });\r\n const action = AnalyticsHelper.buildActionContext(analyticsOptions);\r\n\r\n Analytics.log(UserAction.Stream, this.getPlaybackData(), action);\r\n }\r\n\r\n private getPlaybackData(): VideoWatchAnalyticsEvent {\r\n return {\r\n model: ObjectFormatHelper.toJSON<Video>(this.model),\r\n /**\r\n * Clone the playback status to ensure that the object is not mutated prior to being logged by\r\n * the AnalyticsService. Remove view-specific properties.\r\n */\r\n playbackStatus: _.omit(this.playbackStatus, 'hasStarted')\r\n };\r\n }\r\n\r\n public onDestroy(): void {\r\n this.unbindListeners();\r\n this.unbindUnload();\r\n this.logUnload();\r\n }\r\n}\r\n","/**\r\n * Events are mapped against those in Webplayer.\r\n * @see http://gitlab.cvinternal.net/WebPlayer/WebPlayer/blob/master/ClickView.Html5.WebPlayer.Web/Scripts/CVPlayerEventsApi.js\r\n */\r\nconst WebplayerEvents = {\r\n /**\r\n * Events emitted from webplayer via CVEventsAPI\r\n */\r\n RECEIVE: {\r\n PLAY: 'cv-player-play',\r\n PAUSE: 'cv-player-pause',\r\n VIDEO_END: 'cv-player-ended',\r\n VOLUME_CHANGE: 'cv-player-volumechange',\r\n CHAPTER_CHANGE: 'cv-player-chapterchange',\r\n TIME_UPDATE: 'cv-player-timeupdate',\r\n FULLSCREEN_CHANGE: 'cv-player-fullscreenchange',\r\n CLIP_POINTS_UPDATE: 'cv-player-cliptoolupdate',\r\n QUALITY_CHANGE: 'cv-player-qualitychange',\r\n QUERY_CALLBACK: 'cv-player-querycallback',\r\n SUBTITLES_ENABLED: 'cv-player-hassubtitles',\r\n SUBTITLES: 'cv-player-subtitles',\r\n PONG: 'cv-player-pong',\r\n\r\n // User-initiated events from webplayer UI\r\n FULLSCREEN_CLICK: '_cvwp:fsc',\r\n DEVICES_BTN_CLICK: '_cvwp:devices:click',\r\n },\r\n\r\n /**\r\n * Events to trigger on CVEventsAPI to manage/update webplayer\r\n */\r\n TRIGGER: {\r\n PLAY: 'cv-player-play',\r\n PAUSE: 'cv-player-pause',\r\n SET_VOLUME: 'cv-player-setvolume',\r\n NEXT_CHAPTER: 'cv-player-nextchapter',\r\n PREV_CHAPTER: 'cv-player-previouschapter',\r\n CHANGE_CHAPTER: 'cv-player-changechapter',\r\n TOGGLE_CLIPPING: 'cv-player-cliptooltoggle',\r\n SET_CLIP_POINTS: 'cv-player-cliptoolset',\r\n CLIP: 'cv-player-setclip',\r\n CLEAR_CLIP: 'cv-player-clearclip',\r\n SEEK_TO: 'cv-player-seekto',\r\n CONTROLS: 'cv-player-showcontrols',\r\n SUBTITLES: 'cv-player-subtitles',\r\n SET_QUALITY: 'cv-player-setquality',\r\n QUERY: 'cv-player-query',\r\n ADD_LISTENER: 'cv-player-addlistener',\r\n REMOVE_LISTENER: 'cv-player-removelistener',\r\n PING: 'cv-player-ping',\r\n\r\n // Update Webplayer UI\r\n TOGGLE_DEVICES_BTN: '_cv:toggledevicesbtn',\r\n SHOW_DEVICES_BTN: '_cv:showdevicesbtn',\r\n SHOW_FS_BTN: '_cv:showfsbtn'\r\n },\r\n\r\n /**\r\n * The webplayer can be queried directly for the following data.\r\n * Listen on QUERY_CALLBACK for result and trigger on QUERY.\r\n */\r\n QUERIES: {\r\n GET_AVAILABLE_QUALITIES: 'getAvailableQualities',\r\n GET_CURRENT_QUALITY: 'currentQuality',\r\n IS_PAUSED: 'paused',\r\n GET_CURRENT_TIME: 'currentTime',\r\n GET_CHAPTERS: 'getChapters',\r\n HAS_METADATA_CHAPTERS: 'hasMetadataChapters',\r\n }\r\n};\r\n\r\nexport { WebplayerEvents };","var Handlebars = require('handlebars');\nmodule.exports = (Handlebars['default'] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.propertyIsEnumerable, alias2=container.lambda, alias3=container.escapeExpression;\n\n return \"<iframe class=\\\"\"\n + alias3(alias2(((stack1 = ((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.styles : stack1)) != null ? stack1.webPlayer : stack1), depth0))\n + \" embed-responsive-item\\\" id=\\\"\"\n + alias3(alias2(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.id : stack1), depth0))\n + \"\\\" allowfullscreen webkitallowfullscreen mozallowfullscreen allow=\\\"autoplay; fullscreen\\\" frameborder=\\\"0\\\" width=\\\"\"\n + alias3(alias2(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.width : stack1), depth0))\n + \"\\\" height=\\\"\"\n + alias3(alias2(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.height : stack1), depth0))\n + \"\\\" src=\\\"\"\n + alias3(alias2(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.url : stack1), depth0))\n + \"\\\"></iframe>\\r\\n<div class=\\\"\"\n + alias3(alias2(((stack1 = ((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.styles : stack1)) != null ? stack1.svgContainer : stack1), depth0))\n + \"\\\">\"\n + ((stack1 = alias2(((stack1 = (depth0 != null ? depth0.options : depth0)) != null ? stack1.playSvg : stack1), depth0)) != null ? stack1 : \"\")\n + \"</div>\";\n},\"useData\":true});","import * as _ from 'underscore';\r\nimport { ObjectHash, Radio } from 'backbone';\r\nimport { signUrl } from '@clickview/url-signer';\r\n\r\nimport { WebplayerEvents } from 'libs/common/backbone/constants/Webplayer';\r\nimport { Core } from 'libs/common/core';\r\nimport { ViewModelService } from 'libs/common/backbone/services/ViewModelService';\r\nimport { DevError } from 'libs/common/backbone/errors/DevError';\r\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\r\nimport { SvgHelper, cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\n\r\nimport { CVEventsApi } from 'CVEvents';\r\n\r\nimport { Video } from 'shared/models/Video';\r\nimport { Webplayer } from 'shared/constants';\r\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\r\nimport { VideoAnalyticsTracker } from 'libs/analytics/utils/VideoAnalyticsTracker';\r\n\r\nimport WebPlayerTemplate from './WebPlayer.handlebars';\r\nimport styles from './webplayer.scss';\r\n\r\nexport interface WebPlayerComponentOptions extends Core.ComponentOptions<Video> {\r\n isPreview?: boolean;\r\n autoplay?: boolean;\r\n parentChannelName?: string;\r\n webPlayerUrl: string;\r\n showDevicesButton?: boolean;\r\n captureAnalytics?: boolean;\r\n analyticsOptions?: AnalyticsOptions;\r\n}\r\n\r\nexport class WebPlayerComponent extends Core.Component<Video> {\r\n protected options: WebPlayerComponentOptions;\r\n\r\n public viewModel: Core.Model;\r\n private eventsApi: CVEventsApi;\r\n private enableIeFs: boolean;\r\n private isPreview: boolean;\r\n private iframeReady: boolean;\r\n private tracker: VideoAnalyticsTracker;\r\n\r\n constructor(options?: WebPlayerComponentOptions) {\r\n super(options);\r\n }\r\n\r\n public get elements(): ObjectHash {\r\n return {\r\n iframe: 'iframe'\r\n };\r\n }\r\n\r\n public get name(): string {\r\n return 'WebPlayerView';\r\n }\r\n\r\n public get template(): any {\r\n return WebPlayerTemplate;\r\n }\r\n\r\n public get className(): string {\r\n return `${styles.webPlayerContainer} embed-responsive embed-responsive-16by9`;\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 defaults(): ObjectHash {\r\n return {\r\n captureAnalytics: true,\r\n showDevicesButton: false\r\n };\r\n }\r\n\r\n private get viewModelDefaults(): ObjectHash {\r\n return {\r\n width: 640,\r\n height: 360,\r\n autoplay: !!this.options.autoplay,\r\n parameters: {\r\n s: false, // Hide the splash\r\n bc: false, // Hide chapters and resources\r\n bf: false // Hide fullscreen button\r\n },\r\n webPlayerHost: this.options.webPlayerUrl\r\n };\r\n }\r\n\r\n public initialize(): void {\r\n this.enableIeFs = this.isTop();\r\n\r\n this.getViewModel();\r\n }\r\n\r\n public seekTo(time: number): void {\r\n if (this.eventsApi)\r\n this.eventsApi.trigger(WebplayerEvents.TRIGGER.SEEK_TO, time);\r\n }\r\n\r\n public seekToChapter(chapterIndex: number): void {\r\n if (this.eventsApi)\r\n this.eventsApi.trigger('cv-player-changechapter', chapterIndex);\r\n }\r\n\r\n private getViewModel(): void {\r\n let id = this.model.get('id');\r\n\r\n if (!id)\r\n id = this.model.get('trackingCode');\r\n\r\n this.viewModel = ViewModelService.get(`${Webplayer.NAME}-${id}`);\r\n\r\n if (!this.viewModel.get('initialized'))\r\n this.initViewModel();\r\n\r\n this.setUrl();\r\n }\r\n\r\n private initViewModel(): void {\r\n let videoModel = this.model.pick('id');\r\n\r\n if (!videoModel.id)\r\n videoModel = this.model.pick('trackingCode');\r\n\r\n if (!videoModel.id && !videoModel.trackingCode) {\r\n Core.ErrorHelper.throw(new DevError(`Must provide either a master id or a tracking code to ${this.name}`));\r\n }\r\n\r\n const attrs = _.extend({},\r\n this.viewModelDefaults,\r\n videoModel,\r\n this.viewModel.toJSON(),\r\n {\r\n initialized: true\r\n }\r\n );\r\n\r\n this.viewModel.set(attrs);\r\n }\r\n\r\n private initWebPlayerEvents(): void {\r\n if (!this.enableIeFs) return;\r\n\r\n const $iframe = this.getUI('iframe');\r\n if (!$iframe || $iframe.length === 0)\r\n return;\r\n\r\n $iframe.on('load', this.bindWebPlayerEvents.bind(this));\r\n }\r\n\r\n private bindWebPlayerEvents(): void {\r\n if (this.iframeReady)\r\n return;\r\n\r\n const iframe = this.getUI('iframe').get(0) as HTMLIFrameElement;\r\n\r\n this.eventsApi = new CVEventsApi(iframe.contentWindow);\r\n\r\n // Ping to see if we are ready\r\n this.eventsApi.on(WebplayerEvents.RECEIVE.PONG, this.onPong.bind(this));\r\n this.eventsApi.trigger(WebplayerEvents.TRIGGER.PING);\r\n\r\n // Bind events\r\n this.eventsApi.on(WebplayerEvents.RECEIVE.FULLSCREEN_CLICK, this.onFullscreenChange.bind(this));\r\n this.eventsApi.trigger(WebplayerEvents.TRIGGER.SHOW_FS_BTN);\r\n\r\n this.eventsApi.on(WebplayerEvents.RECEIVE.TIME_UPDATE, this.onTimeUpdate.bind(this));\r\n this.eventsApi.on(WebplayerEvents.RECEIVE.PLAY, this.onPlay.bind(this));\r\n this.eventsApi.on(WebplayerEvents.RECEIVE.PAUSE, this.onPause.bind(this));\r\n this.eventsApi.on(WebplayerEvents.RECEIVE.VIDEO_END, this.onEnded.bind(this));\r\n\r\n // TODO: Push to device is not yet supported in LE. Also needs to check the user is an Admin.\r\n // Update default in future. \r\n if (this.options.showDevicesButton) {\r\n this.eventsApi.on(WebplayerEvents.RECEIVE.DEVICES_BTN_CLICK, this.showDeviceToggle.bind(this));\r\n this.eventsApi.trigger(WebplayerEvents.TRIGGER.SHOW_DEVICES_BTN);\r\n }\r\n\r\n if (this.options.captureAnalytics)\r\n this.tracker = new VideoAnalyticsTracker({\r\n video: this.model.toJSON(),\r\n eventsApi: this.eventsApi,\r\n analyticsOptions: this.options.analyticsOptions\r\n });\r\n }\r\n\r\n private unbindWebPlayerEvents(): void {\r\n if (!this.eventsApi) return;\r\n\r\n this.eventsApi.off(WebplayerEvents.RECEIVE.FULLSCREEN_CLICK);\r\n this.eventsApi.off(WebplayerEvents.RECEIVE.TIME_UPDATE);\r\n this.eventsApi.off(WebplayerEvents.RECEIVE.PLAY);\r\n this.eventsApi.off(WebplayerEvents.RECEIVE.PAUSE);\r\n this.eventsApi.off(WebplayerEvents.RECEIVE.VIDEO_END);\r\n this.eventsApi.off(WebplayerEvents.RECEIVE.PONG);\r\n this.eventsApi.off(WebplayerEvents.RECEIVE.DEVICES_BTN_CLICK);\r\n }\r\n\r\n private setUrl(): void {\r\n const webPlayerHost = `${this.viewModel.get('webPlayerHost')}embed`;\r\n\r\n const reservedParams = [ 'p', 'vid' ];\r\n const webPlayerParams = _.omit(this.viewModel.get('parameters'), reservedParams) || {};\r\n\r\n webPlayerParams.a = !!this.viewModel.get('autoplay');\r\n\r\n const id = this.viewModel.get('id');\r\n\r\n if (id)\r\n webPlayerParams.vid = id;\r\n\r\n const trackingCode = this.viewModel.get('trackingCode');\r\n\r\n if (trackingCode)\r\n webPlayerParams.p = trackingCode;\r\n\r\n if (this.viewModel.get('currenttime')) {\r\n webPlayerParams.t = this.viewModel.get('currenttime');\r\n webPlayerParams.a = !this.viewModel.get('paused');\r\n }\r\n\r\n const url = UrlHelper.urlBuilder(webPlayerHost, webPlayerParams);\r\n const signedUrl = signUrl(url, { timestamp: true });\r\n\r\n this.viewModel.set({ url: signedUrl });\r\n }\r\n\r\n private isTop(): boolean {\r\n return window.top === window;\r\n }\r\n\r\n private onTimeUpdate(e: JQuery.Event, time: Date): void {\r\n this.viewModel.set('ready', true);\r\n this.viewModel.set('currenttime', time);\r\n }\r\n\r\n private onPlay(): void {\r\n this.viewModel.set('ready', true);\r\n this.viewModel.set('paused', false);\r\n }\r\n\r\n private onPause(): void {\r\n this.viewModel.set('ready', true);\r\n this.viewModel.set('paused', true);\r\n }\r\n\r\n private onEnded(): void {\r\n this.viewModel.trigger('ended');\r\n }\r\n\r\n private onPong(): void {\r\n this.iframeReady = true;\r\n this.viewModel.set('ready', true);\r\n\r\n const channel = Radio.channel(this.channelName);\r\n channel.trigger('loaded');\r\n\r\n // Notify any parent components once the webpalyer is ready\r\n if (this.options.parentChannelName)\r\n Radio.channel(this.options.parentChannelName).trigger('webplayer:loaded');\r\n }\r\n\r\n private onFullscreenChange(e: JQuery.Event, isFs: boolean, hasFsApi: boolean): void {\r\n if (isFs) {\r\n this.requestFs(hasFsApi);\r\n return;\r\n }\r\n\r\n this.cancelFs(hasFsApi);\r\n }\r\n\r\n private requestFs(hasFsApi: boolean): void {\r\n // If the request wasn't sent using the fullscreen API, add the fs class\r\n if (!hasFsApi)\r\n $('html').addClass('player-fullscreen');\r\n }\r\n\r\n private cancelFs(hasFsApi: boolean): void {\r\n // If the request wasn't sent using the fullscreen API, add the fs class\r\n if (!hasFsApi)\r\n $('html').removeClass('player-fullscreen');\r\n }\r\n\r\n private showDeviceToggle(shouldShow: boolean): void {\r\n this.viewModel.trigger('showDevices', !!shouldShow);\r\n }\r\n\r\n public query(queryName: string, callback: (...args: any[]) => void): void {\r\n if (!this.iframeReady) {\r\n this.listenToOnce(this.channelName, 'loaded', () => this.query(queryName, callback));\r\n return;\r\n }\r\n\r\n const uniqueId = _.uniqueId(`cveventsapi`);\r\n\r\n this.eventsApi.one(`${WebplayerEvents.RECEIVE.QUERY_CALLBACK}-${uniqueId}`, (event: any, data: any) => {\r\n callback(data);\r\n });\r\n\r\n this.eventsApi.trigger(WebplayerEvents.TRIGGER.QUERY, queryName, uniqueId);\r\n }\r\n\r\n public viewOptions(): ObjectHash {\r\n return _.extend({},\r\n {\r\n styles,\r\n playSvg: SvgHelper.getSvg(cvSvgLibrary.Play),\r\n },\r\n this.viewModel.toJSON()\r\n );\r\n }\r\n\r\n public onRender(): void {\r\n this.initWebPlayerEvents();\r\n }\r\n\r\n public onBeforeDestroy(): void {\r\n this.unbindWebPlayerEvents();\r\n\r\n // Clean up our analytics tracker\r\n if (this.tracker)\r\n this.tracker.destroy();\r\n }\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"webPlayerContainer\":\"cv--webPlayerContainer--2S4VF\",\"webPlayer\":\"cv--webPlayer--3569L\",\"svgContainer\":\"cv--svgContainer--1WsxD\"};"],"sourceRoot":""}
|