@clickview/lite 0.50.1-rc.0 → 0.50.1-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundles.json +2 -2
- package/dist/css/{1313-lite-b05099b818.chunk.css → 1313-lite-6b1a20b3fe.chunk.css} +1 -1
- package/dist/css/{1402-lite-9489903efd.chunk.css → 1402-lite-8a07733b96.chunk.css} +1 -1
- package/dist/css/{3588-lite-f083d46330.chunk.css → 1407-lite-be6668ef3a.chunk.css} +1 -1
- package/dist/css/{5725-lite-789978250c.chunk.css → 1539-lite-a5772fefdb.chunk.css} +1 -1
- package/dist/css/{5769-lite-16efb24b77.chunk.css → 1567-lite-2ab4d6f863.chunk.css} +1 -1
- package/dist/css/{1602-lite-90df7cca5c.chunk.css → 1602-lite-8fb6cea449.chunk.css} +1 -1
- package/dist/css/{1820-lite-ebb89eab7a.chunk.css → 1820-lite-8008c78ef7.chunk.css} +1 -1
- package/dist/css/{9818-lite-dca6b9e86d.chunk.css → 1850-lite-e9e8c03964.chunk.css} +1 -1
- package/dist/css/{2120-lite-dd1595051d.chunk.css → 2120-lite-b1876117b4.chunk.css} +1 -1
- package/dist/css/{2137-lite-7045732fc8.chunk.css → 2137-lite-6e9d11bd5b.chunk.css} +1 -1
- package/dist/css/{2446-lite-6b11bdfdc1.chunk.css → 2446-lite-dfc41ecbea.chunk.css} +1 -1
- package/dist/css/{9211-lite-f00eb0266e.chunk.css → 2507-lite-9516182bdb.chunk.css} +1 -1
- package/dist/css/{2724-lite-24da60896e.chunk.css → 2724-lite-669b5b8120.chunk.css} +1 -1
- package/dist/css/{2795-lite-1641e6fbf9.chunk.css → 2795-lite-34f8ca5018.chunk.css} +1 -1
- package/dist/css/{3070-lite-c0909f46f3.chunk.css → 3070-lite-6af4bd0c76.chunk.css} +1 -1
- package/dist/css/{3397-lite-dfab7385b6.chunk.css → 3397-lite-5b25e3a686.chunk.css} +1 -1
- package/dist/css/{3403-lite-4b92798a0c.chunk.css → 3403-lite-89bcc16133.chunk.css} +1 -1
- package/dist/css/{458-lite-c8a3139b8b.chunk.css → 3515-lite-10695a1950.chunk.css} +2 -2
- package/dist/css/{1407-lite-f083d46330.chunk.css → 3588-lite-be6668ef3a.chunk.css} +1 -1
- package/dist/css/{3895-lite-b05099b818.chunk.css → 3895-lite-6b1a20b3fe.chunk.css} +1 -1
- package/dist/css/{4151-lite-fcc0fc8753.chunk.css → 4151-lite-9cbe9bba57.chunk.css} +1 -1
- package/dist/css/{3515-lite-c8a3139b8b.chunk.css → 458-lite-10695a1950.chunk.css} +2 -2
- package/dist/css/{5114-lite-38330c6187.chunk.css → 5114-lite-06a1ac179b.chunk.css} +1 -1
- package/dist/css/{5242-lite-58cdcd1ec4.chunk.css → 5242-lite-30642a9642.chunk.css} +2 -2
- package/dist/css/{5364-lite-93bfe767eb.chunk.css → 5364-lite-e8c416fe79.chunk.css} +1 -1
- package/dist/css/{5446-lite-ae2395342f.chunk.css → 5446-lite-2e956685f4.chunk.css} +1 -1
- package/dist/css/{1539-lite-789978250c.chunk.css → 5725-lite-a5772fefdb.chunk.css} +1 -1
- package/dist/css/{6759-lite-16efb24b77.chunk.css → 5769-lite-2ab4d6f863.chunk.css} +1 -1
- package/dist/css/{5803-lite-d1315afce2.chunk.css → 5803-lite-625e484692.chunk.css} +1 -1
- package/dist/css/{5810-lite-ba174cfe3d.chunk.css → 5810-lite-1224500e4d.chunk.css} +1 -1
- package/dist/css/{6181-lite-7558375a74.chunk.css → 6181-lite-ca9f6aeba1.chunk.css} +1 -1
- package/dist/css/{6189-lite-4c33c1b5c4.chunk.css → 6189-lite-20e4d47423.chunk.css} +1 -1
- package/dist/css/{6309-lite-a23dc59ecd.chunk.css → 6309-lite-bd0968a2c8.chunk.css} +1 -1
- package/dist/css/{6531-lite-9431296610.chunk.css → 6531-lite-1f6f3c392c.chunk.css} +1 -1
- package/dist/css/{1567-lite-16efb24b77.chunk.css → 6759-lite-2ab4d6f863.chunk.css} +1 -1
- package/dist/css/{6803-lite-16efb24b77.chunk.css → 6803-lite-2ab4d6f863.chunk.css} +1 -1
- package/dist/css/{6850-lite-769c93cb9e.chunk.css → 6850-lite-0bf8514497.chunk.css} +3 -3
- package/dist/css/{7533-lite-d0ae59ec54.chunk.css → 7533-lite-206fce5dbd.chunk.css} +1 -1
- package/dist/css/{7777-lite-8067dea624.chunk.css → 7777-lite-48d916f95c.chunk.css} +1 -1
- package/dist/css/{7987-lite-94679244a2.chunk.css → 7987-lite-fd431fbaf2.chunk.css} +1 -1
- package/dist/css/{8218-lite-fe8c54917b.chunk.css → 8218-lite-f54139cf27.chunk.css} +1 -1
- package/dist/css/{8316-lite-9083a6565c.chunk.css → 8316-lite-6036f465f0.chunk.css} +1 -1
- package/dist/css/{8354-lite-bc431d9d01.chunk.css → 8354-lite-8228cb401d.chunk.css} +1 -1
- package/dist/css/{8987-lite-95b3d79328.chunk.css → 8987-lite-6cd15b48d2.chunk.css} +1 -1
- package/dist/css/{9068-lite-c0341005e4.chunk.css → 9068-lite-c3a9ace963.chunk.css} +1 -1
- package/dist/css/{2507-lite-f00eb0266e.chunk.css → 9211-lite-9516182bdb.chunk.css} +1 -1
- package/dist/css/{9329-lite-a259b19412.chunk.css → 9329-lite-5f15379e31.chunk.css} +1 -1
- package/dist/css/{9417-lite-9083a6565c.chunk.css → 9417-lite-6036f465f0.chunk.css} +1 -1
- package/dist/css/{9620-lite-d77e9ad59b.chunk.css → 9620-lite-111c825071.chunk.css} +1 -1
- package/dist/css/{1850-lite-dca6b9e86d.chunk.css → 9818-lite-e9e8c03964.chunk.css} +1 -1
- package/dist/css/{lite-app-28b7b96628.css → lite-app-212404ee3a.css} +1 -1
- package/dist/scripts/1169-5a0d974a94-lite.chunk.js +2 -0
- package/dist/scripts/1169-5a0d974a94-lite.chunk.js.map +1 -0
- package/dist/scripts/{1313-455608bc46-lite.chunk.js → 1313-5a7170fb69-lite.chunk.js} +1 -1
- package/dist/scripts/{1313-455608bc46-lite.chunk.js.map → 1313-5a7170fb69-lite.chunk.js.map} +1 -1
- package/dist/scripts/{1402-d40dc88741-lite.chunk.js → 1402-39cb29d725-lite.chunk.js} +1 -1
- package/dist/scripts/{1402-d40dc88741-lite.chunk.js.map → 1402-39cb29d725-lite.chunk.js.map} +1 -1
- package/dist/scripts/{1407-3592ec24f2-lite.chunk.js → 1407-3bab3f00f6-lite.chunk.js} +1 -1
- package/dist/scripts/{1407-3592ec24f2-lite.chunk.js.map → 1407-3bab3f00f6-lite.chunk.js.map} +1 -1
- package/dist/scripts/{1567-edcff759b1-lite.chunk.js → 1567-b3141bc14f-lite.chunk.js} +1 -1
- package/dist/scripts/{1567-edcff759b1-lite.chunk.js.map → 1567-b3141bc14f-lite.chunk.js.map} +1 -1
- package/dist/scripts/{1602-173a4f272a-lite.chunk.js → 1602-dfe6928d65-lite.chunk.js} +1 -1
- package/dist/scripts/{1602-173a4f272a-lite.chunk.js.map → 1602-dfe6928d65-lite.chunk.js.map} +1 -1
- package/dist/scripts/{1820-68114ca994-lite.chunk.js → 1820-9a1f618969-lite.chunk.js} +2 -2
- package/dist/scripts/1820-9a1f618969-lite.chunk.js.map +1 -0
- package/dist/scripts/{2120-88f6dd6652-lite.chunk.js → 2120-82a7b90997-lite.chunk.js} +1 -1
- package/dist/scripts/{2120-88f6dd6652-lite.chunk.js.map → 2120-82a7b90997-lite.chunk.js.map} +1 -1
- package/dist/scripts/{2137-093f479ff9-lite.chunk.js → 2137-2e78e535ad-lite.chunk.js} +1 -1
- package/dist/scripts/{2137-093f479ff9-lite.chunk.js.map → 2137-2e78e535ad-lite.chunk.js.map} +1 -1
- package/dist/scripts/{2446-acc94130ed-lite.chunk.js → 2446-eaa1d2ee7d-lite.chunk.js} +2 -2
- package/dist/scripts/{2446-acc94130ed-lite.chunk.js.map → 2446-eaa1d2ee7d-lite.chunk.js.map} +1 -1
- package/dist/scripts/{2507-bb4e17b1b3-lite.chunk.js → 2507-fc744cab62-lite.chunk.js} +1 -1
- package/dist/scripts/{2507-bb4e17b1b3-lite.chunk.js.map → 2507-fc744cab62-lite.chunk.js.map} +1 -1
- package/dist/scripts/{2724-ee3a51e0c9-lite.chunk.js → 2724-060fdde41c-lite.chunk.js} +1 -1
- package/dist/scripts/{2724-ee3a51e0c9-lite.chunk.js.map → 2724-060fdde41c-lite.chunk.js.map} +1 -1
- package/dist/scripts/{2795-0616748349-lite.chunk.js → 2795-eb3a51adc2-lite.chunk.js} +1 -1
- package/dist/scripts/{2795-0616748349-lite.chunk.js.map → 2795-eb3a51adc2-lite.chunk.js.map} +1 -1
- package/dist/scripts/3070-63e0a6b63e-lite.chunk.js +2 -0
- package/dist/scripts/3070-63e0a6b63e-lite.chunk.js.map +1 -0
- package/dist/scripts/{3397-bb32e2287f-lite.chunk.js → 3397-cd6acb96c4-lite.chunk.js} +1 -1
- package/dist/scripts/{3397-bb32e2287f-lite.chunk.js.map → 3397-cd6acb96c4-lite.chunk.js.map} +1 -1
- package/dist/scripts/{3403-12c460d3f6-lite.chunk.js → 3403-d42b7125ae-lite.chunk.js} +1 -1
- package/dist/scripts/{3403-12c460d3f6-lite.chunk.js.map → 3403-d42b7125ae-lite.chunk.js.map} +1 -1
- package/dist/scripts/{3515-4de2fd7070-lite.chunk.js → 3515-72a31e0bbd-lite.chunk.js} +1 -1
- package/dist/scripts/{3515-4de2fd7070-lite.chunk.js.map → 3515-72a31e0bbd-lite.chunk.js.map} +1 -1
- package/dist/scripts/{3588-62e61bc526-lite.chunk.js → 3588-1c1c264291-lite.chunk.js} +2 -2
- package/dist/scripts/{3588-62e61bc526-lite.chunk.js.map → 3588-1c1c264291-lite.chunk.js.map} +1 -1
- package/dist/scripts/{3895-a54621a8c4-lite.chunk.js → 3895-cbeb003a0a-lite.chunk.js} +1 -1
- package/dist/scripts/{3895-a54621a8c4-lite.chunk.js.map → 3895-cbeb003a0a-lite.chunk.js.map} +1 -1
- package/dist/scripts/{4151-ad0c6f107f-lite.chunk.js → 4151-bb1e8aafcb-lite.chunk.js} +1 -1
- package/dist/scripts/{4151-ad0c6f107f-lite.chunk.js.map → 4151-bb1e8aafcb-lite.chunk.js.map} +1 -1
- package/dist/scripts/{458-35c635a2ce-lite.chunk.js → 458-1ca8abf829-lite.chunk.js} +1 -1
- package/dist/scripts/{458-35c635a2ce-lite.chunk.js.map → 458-1ca8abf829-lite.chunk.js.map} +1 -1
- package/dist/scripts/4718-b3cfb276a7-lite.chunk.js +2 -0
- package/dist/scripts/4718-b3cfb276a7-lite.chunk.js.map +1 -0
- package/dist/scripts/{5114-fcfd260e0b-lite.chunk.js → 5114-15c4180b16-lite.chunk.js} +1 -1
- package/dist/scripts/{5114-fcfd260e0b-lite.chunk.js.map → 5114-15c4180b16-lite.chunk.js.map} +1 -1
- package/dist/scripts/{5242-2d752ff85e-lite.chunk.js → 5242-e5cc8311eb-lite.chunk.js} +1 -1
- package/dist/scripts/{5242-2d752ff85e-lite.chunk.js.map → 5242-e5cc8311eb-lite.chunk.js.map} +1 -1
- package/dist/scripts/{5364-b081f5e1ca-lite.chunk.js → 5364-fe4a00711f-lite.chunk.js} +1 -1
- package/dist/scripts/{5364-b081f5e1ca-lite.chunk.js.map → 5364-fe4a00711f-lite.chunk.js.map} +1 -1
- package/dist/scripts/{5446-1ef1639ef6-lite.chunk.js → 5446-5a2f719a6f-lite.chunk.js} +1 -1
- package/dist/scripts/{5446-1ef1639ef6-lite.chunk.js.map → 5446-5a2f719a6f-lite.chunk.js.map} +1 -1
- package/dist/scripts/{5725-6792ca3e92-lite.chunk.js → 5725-1592727a8f-lite.chunk.js} +1 -1
- package/dist/scripts/{5725-6792ca3e92-lite.chunk.js.map → 5725-1592727a8f-lite.chunk.js.map} +1 -1
- package/dist/scripts/{5769-34ad224f5f-lite.chunk.js → 5769-e9f596e2b2-lite.chunk.js} +1 -1
- package/dist/scripts/{5769-34ad224f5f-lite.chunk.js.map → 5769-e9f596e2b2-lite.chunk.js.map} +1 -1
- package/dist/scripts/{5803-0005a9eb66-lite.chunk.js → 5803-7db6af5411-lite.chunk.js} +1 -1
- package/dist/scripts/{5803-0005a9eb66-lite.chunk.js.map → 5803-7db6af5411-lite.chunk.js.map} +1 -1
- package/dist/scripts/{5810-a652483b8e-lite.chunk.js → 5810-c81d69aea8-lite.chunk.js} +2 -2
- package/dist/scripts/{5810-a652483b8e-lite.chunk.js.map → 5810-c81d69aea8-lite.chunk.js.map} +1 -1
- package/dist/scripts/{5940-511beff2ee-lite.chunk.js → 5940-5731abccf3-lite.chunk.js} +2 -2
- package/dist/scripts/5940-5731abccf3-lite.chunk.js.map +1 -0
- package/dist/scripts/{6102-f1851eca08-lite.chunk.js → 6102-38e3abf2fa-lite.chunk.js} +3 -3
- package/dist/scripts/{6102-f1851eca08-lite.chunk.js.map → 6102-38e3abf2fa-lite.chunk.js.map} +1 -1
- package/dist/scripts/{6181-7a4fc8e1e1-lite.chunk.js → 6181-55d2689d74-lite.chunk.js} +1 -1
- package/dist/scripts/{6181-7a4fc8e1e1-lite.chunk.js.map → 6181-55d2689d74-lite.chunk.js.map} +1 -1
- package/dist/scripts/{6189-ce9f0eeb31-lite.chunk.js → 6189-b45080fab7-lite.chunk.js} +1 -1
- package/dist/scripts/{6189-ce9f0eeb31-lite.chunk.js.map → 6189-b45080fab7-lite.chunk.js.map} +1 -1
- package/dist/scripts/6309-f5bb1c14dc-lite.chunk.js +3 -0
- package/dist/scripts/6309-f5bb1c14dc-lite.chunk.js.map +1 -0
- package/dist/scripts/{6415-9d8b88c713-lite.chunk.js → 6415-5ac1a71471-lite.chunk.js} +1 -1
- package/dist/scripts/{6415-9d8b88c713-lite.chunk.js.map → 6415-5ac1a71471-lite.chunk.js.map} +1 -1
- package/dist/scripts/6450-2745feb746-lite.chunk.js +2 -0
- package/dist/scripts/6450-2745feb746-lite.chunk.js.map +1 -0
- package/dist/scripts/{6531-597262a181-lite.chunk.js → 6531-1325be9fb1-lite.chunk.js} +1 -1
- package/dist/scripts/{6531-597262a181-lite.chunk.js.map → 6531-1325be9fb1-lite.chunk.js.map} +1 -1
- package/dist/scripts/{6759-3f36472a49-lite.chunk.js → 6759-a7e1119553-lite.chunk.js} +1 -1
- package/dist/scripts/{6759-3f36472a49-lite.chunk.js.map → 6759-a7e1119553-lite.chunk.js.map} +1 -1
- package/dist/scripts/{6803-2275c83d96-lite.chunk.js → 6803-222bfeea55-lite.chunk.js} +1 -1
- package/dist/scripts/{6803-2275c83d96-lite.chunk.js.map → 6803-222bfeea55-lite.chunk.js.map} +1 -1
- package/dist/scripts/6850-393de993b8-lite.chunk.js +3 -0
- package/dist/scripts/6850-393de993b8-lite.chunk.js.map +1 -0
- package/dist/scripts/{6948-84a5f8d76f-lite.chunk.js → 6948-23ec6a6370-lite.chunk.js} +2 -2
- package/dist/scripts/6948-23ec6a6370-lite.chunk.js.map +1 -0
- package/dist/scripts/{7533-e079b2af18-lite.chunk.js → 7533-9edee544c6-lite.chunk.js} +1 -1
- package/dist/scripts/{7533-e079b2af18-lite.chunk.js.map → 7533-9edee544c6-lite.chunk.js.map} +1 -1
- package/dist/scripts/{7777-f0937ef1f5-lite.chunk.js → 7777-1c3490134e-lite.chunk.js} +1 -1
- package/dist/scripts/{7777-f0937ef1f5-lite.chunk.js.map → 7777-1c3490134e-lite.chunk.js.map} +1 -1
- package/dist/scripts/{7987-db0037709c-lite.chunk.js → 7987-ff7de6531f-lite.chunk.js} +1 -1
- package/dist/scripts/{7987-db0037709c-lite.chunk.js.map → 7987-ff7de6531f-lite.chunk.js.map} +1 -1
- package/dist/scripts/{8218-f3b81c7287-lite.chunk.js → 8218-088530bdf7-lite.chunk.js} +1 -1
- package/dist/scripts/{8218-f3b81c7287-lite.chunk.js.map → 8218-088530bdf7-lite.chunk.js.map} +1 -1
- package/dist/scripts/8316-ba6bae1f29-lite.chunk.js +2 -0
- package/dist/scripts/8316-ba6bae1f29-lite.chunk.js.map +1 -0
- package/dist/scripts/{8354-e30261b594-lite.chunk.js → 8354-d07c3bef5a-lite.chunk.js} +1 -1
- package/dist/scripts/{8354-e30261b594-lite.chunk.js.map → 8354-d07c3bef5a-lite.chunk.js.map} +1 -1
- package/dist/scripts/{8987-32190552fa-lite.chunk.js → 8987-c0c2790aab-lite.chunk.js} +1 -1
- package/dist/scripts/{8987-32190552fa-lite.chunk.js.map → 8987-c0c2790aab-lite.chunk.js.map} +1 -1
- package/dist/scripts/9016-0c078a39cb-lite.chunk.js +3 -0
- package/dist/scripts/9016-0c078a39cb-lite.chunk.js.map +1 -0
- package/dist/scripts/{9068-562c30f718-lite.chunk.js → 9068-554aa0d22b-lite.chunk.js} +1 -1
- package/dist/scripts/{9068-562c30f718-lite.chunk.js.map → 9068-554aa0d22b-lite.chunk.js.map} +1 -1
- package/dist/scripts/{9211-d4c7016679-lite.chunk.js → 9211-0381d3e715-lite.chunk.js} +1 -1
- package/dist/scripts/{9211-d4c7016679-lite.chunk.js.map → 9211-0381d3e715-lite.chunk.js.map} +1 -1
- package/dist/scripts/{9329-5cf6baab9d-lite.chunk.js → 9329-798d826fc4-lite.chunk.js} +1 -1
- package/dist/scripts/{9329-5cf6baab9d-lite.chunk.js.map → 9329-798d826fc4-lite.chunk.js.map} +1 -1
- package/dist/scripts/9417-aa8d198d40-lite.chunk.js +2 -0
- package/dist/scripts/9417-aa8d198d40-lite.chunk.js.map +1 -0
- package/dist/scripts/9620-d0f04eeccd-lite.chunk.js +3 -0
- package/dist/scripts/9620-d0f04eeccd-lite.chunk.js.map +1 -0
- package/dist/scripts/{9818-f63bdbbac4-lite.chunk.js → 9818-a2fa140139-lite.chunk.js} +1 -1
- package/dist/scripts/{9818-f63bdbbac4-lite.chunk.js.map → 9818-a2fa140139-lite.chunk.js.map} +1 -1
- package/dist/scripts/bundle-815f926b0f.min.js +3 -0
- package/dist/scripts/bundle-815f926b0f.min.js.map +1 -0
- package/package.json +1 -1
- package/dist/scripts/1169-3df974a8eb-lite.chunk.js +0 -2
- package/dist/scripts/1169-3df974a8eb-lite.chunk.js.map +0 -1
- package/dist/scripts/1820-68114ca994-lite.chunk.js.map +0 -1
- package/dist/scripts/3070-fb8eb47716-lite.chunk.js +0 -2
- package/dist/scripts/3070-fb8eb47716-lite.chunk.js.map +0 -1
- package/dist/scripts/4718-2b58aa560d-lite.chunk.js +0 -2
- package/dist/scripts/4718-2b58aa560d-lite.chunk.js.map +0 -1
- package/dist/scripts/5940-511beff2ee-lite.chunk.js.map +0 -1
- package/dist/scripts/6309-dd3a8e7f21-lite.chunk.js +0 -3
- package/dist/scripts/6309-dd3a8e7f21-lite.chunk.js.map +0 -1
- package/dist/scripts/6450-6819d42c15-lite.chunk.js +0 -2
- package/dist/scripts/6450-6819d42c15-lite.chunk.js.map +0 -1
- package/dist/scripts/6850-8770bfeefb-lite.chunk.js +0 -3
- package/dist/scripts/6850-8770bfeefb-lite.chunk.js.map +0 -1
- package/dist/scripts/6948-84a5f8d76f-lite.chunk.js.map +0 -1
- package/dist/scripts/8316-dad1824a5f-lite.chunk.js +0 -2
- package/dist/scripts/8316-dad1824a5f-lite.chunk.js.map +0 -1
- package/dist/scripts/9016-c359251f82-lite.chunk.js +0 -3
- package/dist/scripts/9016-c359251f82-lite.chunk.js.map +0 -1
- package/dist/scripts/9417-70c6489c67-lite.chunk.js +0 -2
- package/dist/scripts/9417-70c6489c67-lite.chunk.js.map +0 -1
- package/dist/scripts/9620-630f9e6344-lite.chunk.js +0 -3
- package/dist/scripts/9620-630f9e6344-lite.chunk.js.map +0 -1
- package/dist/scripts/bundle-d20cb66d1a.min.js +0 -3
- package/dist/scripts/bundle-d20cb66d1a.min.js.map +0 -1
- /package/dist/scripts/{2446-acc94130ed-lite.chunk.js.LICENSE.txt → 2446-eaa1d2ee7d-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{3588-62e61bc526-lite.chunk.js.LICENSE.txt → 3588-1c1c264291-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{5810-a652483b8e-lite.chunk.js.LICENSE.txt → 5810-c81d69aea8-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6102-f1851eca08-lite.chunk.js.LICENSE.txt → 6102-38e3abf2fa-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6309-dd3a8e7f21-lite.chunk.js.LICENSE.txt → 6309-f5bb1c14dc-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6850-8770bfeefb-lite.chunk.js.LICENSE.txt → 6850-393de993b8-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9016-c359251f82-lite.chunk.js.LICENSE.txt → 9016-0c078a39cb-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9620-630f9e6344-lite.chunk.js.LICENSE.txt → 9620-d0f04eeccd-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-d20cb66d1a.min.js.LICENSE.txt → bundle-815f926b0f.min.js.LICENSE.txt} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/9620-630f9e6344-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/common/src/react/hooks/UseEventsServiceSubscribe.ts","file:///app/packages/libs/common/src/react/services/EventsService.ts","file:///app/packages/libs/shared/src/components/curriculum-links/CurriculumLinkItem.tsx","file:///app/packages/libs/shared/src/components/curriculum-links/CurriculumLinksEmptyState.tsx","file:///app/packages/libs/shared/src/components/curriculum-links/partial-loading/PartialCurriculumLinks.tsx","file:///app/packages/libs/shared/src/components/curriculum-links/partial-loading/partial-curriculum-links.scss","file:///app/packages/libs/shared/src/components/play-page-v2/curriculum-links/curriculum-links.scss","file:///app/packages/libs/shared/src/components/play-page-v2/curriculum-links/CurriculumLinksV2.tsx","file:///app/packages/libs/shared/src/components/play-page-v2/curriculum-links/CurriculumsWidget.tsx","file:///app/packages/libs/shared/src/components/play-page-v2/glance/VideoAtAGlanceUtilsV2.ts","file:///app/packages/libs/shared/src/components/play-page-v2/glance/points-of-interest-list/points-of-interest-list.scss","file:///app/packages/libs/shared/src/components/play-page-v2/glance/points-of-interest-list/PointsOfInterestList.tsx","file:///app/packages/libs/shared/src/components/play-page-v2/glance/VideoAtAGlanceV2.tsx","file:///app/packages/libs/shared/src/components/tags/PartialTagItem.tsx","file:///app/packages/libs/shared/src/components/tags/TagHelper.ts","file:///app/packages/libs/shared/src/components/tags/TagItem.tsx","file:///app/packages/libs/shared/src/components/tags/TagList.tsx","file:///app/packages/libs/shared/src/components/widgets/curated-widgets/components/header/widget-header.scss","file:///app/packages/libs/shared/src/components/widgets/curated-widgets/components/header/WidgetHeader.tsx","file:///app/packages/libs/shared/src/utils/DragHelper.ts","file:///app/packages/libs/shared/src/components/widgets/sliding-list/SlidingListContainer.tsx","file:///app/packages/libs/shared/src/components/widgets/widget-button/widget-button.scss","file:///app/packages/libs/shared/src/components/widgets/widget-button/WidgetButton.tsx","file:///app/packages/libs/shared/src/enums/CssMeasurement.ts","file:///app/packages/libs/shared/src/enums/CurriculumType.ts","file:///app/packages/libs/shared/src/enums/TagType.ts","file:///app/packages/libs/shared/src/enums/WidgetInteraction.ts","file:///app/packages/libs/shared/src/hooks/UseGetMediaQueryString.ts","file:///app/packages/projects/lite/src/shared/hooks/useVideoFeatureAccess.ts","file:///app/packages/libs/shared/src/components/video-guidance/classroom-guide/popup/VideoGuidanceClassroomGuidePopup.tsx","file:///app/packages/projects/lite/src/shared/views/video-guidance-classroom-guide/VideoGuidanceClassroomGuideView.tsx","file:///app/packages/libs/shared/src/components/curriculum-links/curriculum-links.scss","file:///app/packages/libs/shared/src/components/play-page-v2/glance/video-at-a-glance.scss","file:///app/packages/libs/shared/src/components/tags/tags.scss"],"sourcesContent":["import { useEffect } from 'react';\n\nimport { EventsService } from 'libs/common/react/services/EventsService';\n\n/**\n * \n * @param event the event to subscribe to\n * @param callback the callback function\n * @param once whether to subscribe once\n * @param shouldSubscribe conditionally determine whether to subscribe to events\n * @returns unsubscribe function\n */\nexport function useEventsServiceSubscribe(\n event: string,\n callback: (...args: any[]) => void,\n once?: boolean,\n shouldSubscribe?: boolean\n): () => void {\n const unsubscribe = () => {\n EventsService.unsubscribe(event, callback);\n };\n\n useEffect(() => {\n if (!shouldSubscribe)\n return;\n\n once ? EventsService.subscribeOnce(event, callback) : EventsService.subscribe(event, callback);\n\n return () => {\n unsubscribe();\n };\n }, []);\n\n return unsubscribe;\n}","type EventCallback = (...args: any[]) => void;\n\ninterface EventListener {\n callback: EventCallback,\n executionLimit?: number;\n executionCount?: number;\n}\n\ninterface EventsListenerHash {\n [event: string]: EventListener[];\n}\n\nexport class StaticEventsService {\n public subscribe(event: string, callback: EventCallback): void {\n this.registerListener(event, callback);\n }\n\n public subscribeOnce(event: string, callback: EventCallback): void {\n this.registerListener(event, callback, 1);\n }\n\n public unsubscribe(event: string, callback?: EventCallback): void {\n this.deregisterListener(event, callback);\n }\n\n public trigger(event: string, ...args: any[]): void {\n this.triggerCallbacks(event, args);\n }\n\n /**\n * Private functions/members below\n */\n\n private listeners: EventsListenerHash = {};\n\n private registerListener(event: string, callback: EventCallback, executionLimit?: number) {\n if (typeof event !== 'string')\n throw new Error('Event name must be a string');\n\n if (typeof callback !== 'function')\n throw new Error('Event callback must be a function');\n\n if (!!executionLimit && typeof executionLimit !== 'number')\n throw new Error('Execution limit must be a number or undefined');\n\n this.listeners[event] = this.listeners[event] ?? [];\n this.listeners[event].push({ callback, executionLimit });\n }\n\n private deregisterListener(event: string, callback?: EventCallback): void {\n if (typeof event !== 'string')\n throw new Error('Event name must be a string');\n\n if (!!callback && typeof callback !== 'function')\n throw new Error('Event callback must be a function');\n \n if (!callback) {\n this.listeners[event] = [];\n return;\n }\n\n const idxToRemove = this.listeners[event]?.findIndex(e => e.callback === callback);\n\n if (typeof idxToRemove !== 'number' || idxToRemove === -1)\n return;\n\n this.listeners[event].splice(idxToRemove, 1);\n\n if (this.listeners[event].length === 0)\n delete this.listeners[event];\n }\n\n private triggerCallbacks(event: string, ...args: any[]): void {\n if (!this.listeners[event])\n return;\n\n const callbacksToRemove: EventCallback[] = [];\n\n this.listeners[event].forEach(listener => {\n if (typeof listener.executionLimit === 'number') {\n listener.executionCount = listener.executionCount ?? 0;\n listener.executionCount++;\n\n if (listener.executionCount === listener.executionLimit)\n callbacksToRemove.push(listener.callback);\n }\n\n listener.callback.apply(null, ...args);\n });\n\n if (!callbacksToRemove.length)\n return;\n\n callbacksToRemove.forEach(callback => this.deregisterListener(event, callback));\n }\n}\n\nexport const EventsService = new StaticEventsService();","import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { Presentation } from 'libs/shared/interfaces';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\n\nimport styles from './curriculum-links.scss';\n\ninterface CurriculumLinkItemProps {\n data: Presentation;\n onChangeCurriculum: (id: string) => any;\n selected: boolean;\n}\n\nexport function CurriculumLinkItem(props: CurriculumLinkItemProps): JSX.Element {\n const { data: curriculumTag } = props;\n\n return (\n <DivButton\n key={curriculumTag.id}\n className={`p-1 pe-2 rounded-pill d-inline-flex align-items-center cursor-pointer ${styles.tag} ${props.selected ? styles.selected : ''}`}\n onClick={() => props.onChangeCurriculum(curriculumTag.id.toString())}\n >\n <div className={`bg-white ${styles.cover} rounded-circle border`}>\n <img\n src={ImageHelper.createUrl(curriculumTag.cover.url, { size: ImageSize.Small })}\n alt={curriculumTag.name}\n className='rounded-circle'\n />\n </div>\n <div className='ms-2'>\n {curriculumTag.name}\n </div>\n </DivButton>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'shared.curriculumLinks';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface CurriculumLinksEmptyStateProps {\n emptyStateUrl: string;\n}\n\nexport function CurriculumLinksEmptyState(props: CurriculumLinksEmptyStateProps): JSX.Element {\n return (\n <EmptyState className='pt-3'>\n <EmptyState.Image src={props.emptyStateUrl} altText={getPhrase('emptyInfo')} size='small'/>\n <EmptyState.Heading>\n <Text namespace={namespace} phrase='emptyHeading' />\n </EmptyState.Heading>\n <EmptyState.Info>\n <Text namespace={namespace} phrase='emptyInfo' />\n </EmptyState.Info>\n </EmptyState>\n );\n}","import React from 'react';\n\nimport styles from './partial-curriculum-links.scss';\n\nconst PartialCurriculumLinkSection = () => (\n <>\n <div className={`partial-loading-background rounded-pill py-1 px-2 d-inline-block me-1 mb-2 ${styles.audience}`} />\n <div>\n <div className={`partial-loading-background mb-1 ${styles.area}`} />\n\n <div className='mb-2 d-flex'>\n <div className={`me-1 align-self-start ${styles.code}`}>\n <div className={`partial-loading-background rounded-pill py-1 px-2 d-inline-block w-100 h-100`} />\n </div>\n \n <div className={`partial-loading-background ${styles.description}`} />\n </div>\n </div>\n </>\n);\n\nexport function PartialCurriculumLinks(): JSX.Element {\n return (\n <div>\n <div className='mb-3'>\n <PartialCurriculumLinkSection />\n </div>\n\n <div className='mb-3'>\n <PartialCurriculumLinkSection />\n </div>\n\n <div>\n <PartialCurriculumLinkSection />\n </div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"audience\":\"vDcrq\",\"area\":\"GXhoW\",\"code\":\"goKaS\",\"description\":\"vFew6\"};","// extracted by mini-css-extract-plugin\nexport default {\"curriculumSubject\":\"i4D3h\",\"curriculumSet\":\"WCdf9\",\"areaLeafSet\":\"o8H8s\",\"closeButton\":\"McsPs\",\"leafDescriptionOnly\":\"xmEEo\"};","import React from 'react';\n\nimport { CurriculumLinksEmptyState } from 'libs/shared/components/curriculum-links/CurriculumLinksEmptyState';\nimport { PartialCurriculumLinks } from 'libs/shared/components/curriculum-links/partial-loading/PartialCurriculumLinks';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { CurriculumType } from 'libs/shared/enums/CurriculumType';\nimport { Curriculum } from 'libs/shared/interfaces';\n\nimport styles from './curriculum-links.scss';\n\nconst BRACKET_SEGMENT_REGEX = /(.*)\\s\\((.*)?\\)/i;\n\nconst namespace = 'shared.curriculumLinks';\n\nconst BASE_PILL_CLASS = 'text-nowrap font-size-normal rounded-pill py-1 px-2 my-0 d-inline-block fw-semibold';\n\ninterface CurriculumStructure {\n [CurriculumType.Subject]: Curriculum<CurriculumType.Subject>;\n [CurriculumType.Audience]: Curriculum<CurriculumType.Audience>;\n areasAndLeaves: Array<{\n [CurriculumType.Area]: Curriculum<CurriculumType.Area>[];\n [CurriculumType.Leaf]: Curriculum<CurriculumType.Leaf>[];\n }>;\n}\n\ninterface CurriculumLeafProps {\n leaf: Curriculum<CurriculumType.Leaf>;\n codeWidth: number;\n trySetMaxCodeWidth: React.Dispatch<React.SetStateAction<number>>;\n uiContainsCodes: boolean;\n}\n\nfunction CurriculumLeaf(props: CurriculumLeafProps): JSX.Element {\n function getCurriculumCodeClass(): string {\n const baseClass = BASE_PILL_CLASS + ' bg-white border';\n\n // If a leaf has no code but the rest of the UI has leaf nodes w/ codes, we show a special \"No code\" pill\n if (!props.leaf.name && props.uiContainsCodes)\n return baseClass + ' border-secondary text-secondary';\n\n return baseClass + ' border-dark';\n }\n\n const codeRef = React.useRef<HTMLDivElement>();\n\n React.useEffect(() => {\n if (!codeRef.current)\n return;\n\n const { width } = codeRef.current.getBoundingClientRect();\n\n props.trySetMaxCodeWidth(width);\n }, [codeRef.current]);\n\n return (\n <div className='d-flex'>\n {(() => {\n if (!props.leaf.description)\n return <p className='m-0' dangerouslySetInnerHTML={{ __html: props.leaf.name }} />;\n\n /**\n * If a leaf has no code but the rest of the UI has leaf nodes\n * with codes, we show a special \"No code\" pill. Example: https://imgur.com/3L1Ela3\n */\n if (!props.leaf.name && props.uiContainsCodes) {\n return (\n <>\n <div\n className='me-1 align-self-start'\n style={{ minWidth: props.codeWidth ? `${props.codeWidth}px` : 'auto' }}\n >\n <h5 ref={codeRef} className={getCurriculumCodeClass()}>\n <Text namespace={namespace} phrase='noCode' />\n </h5>\n </div>\n <p className='m-0 align-self-center' dangerouslySetInnerHTML={{ __html: props.leaf.description }} />\n </>\n );\n }\n\n /**\n * If a leaf has no code and the rest of the UI leaf nodes have no code, we just\n * display the description with a bullet point. Example: https://imgur.com/jzJvmWs\n */\n if (!props.leaf.name && !props.uiContainsCodes)\n return <p className='m-0' dangerouslySetInnerHTML={{ __html: props.leaf.description }} />;\n\n return (\n <>\n <div\n className='me-1 align-self-start'\n style={{ minWidth: props.codeWidth ? `${props.codeWidth}px` : 'auto' }}\n >\n <h5 ref={codeRef} className={getCurriculumCodeClass()}>{props.leaf.name}</h5>\n </div>\n <p className='m-0 align-self-center' dangerouslySetInnerHTML={{ __html: props.leaf.description }} />\n </>\n );\n })()}\n </div>\n );\n}\n\ninterface CurriculumSubjectProps {\n linkSet: CurriculumStructure;\n codeWidth: number;\n trySetMaxCodeWidth: React.Dispatch<React.SetStateAction<number>>;\n}\n\nfunction CurriculumSubject(props: CurriculumSubjectProps): JSX.Element {\n const areaAndLeafSets: { [areaText: string]: Curriculum<CurriculumType.Leaf>[]; } = {};\n\n let uiContainsCodes = false;\n\n props.linkSet.areasAndLeaves.forEach(areaAndLeafSet => {\n const areaText = areaAndLeafSet[CurriculumType.Area].map(ca => ca.name).join(' - ');\n\n if (areaAndLeafSets[areaText]) {\n areaAndLeafSet[CurriculumType.Leaf].forEach(leaf => {\n areaAndLeafSets[areaText].push(leaf);\n\n // We need the info on if _any_ leaf node has a code in it. See why in the comments in `<CurriculumLeaf />`\n if (leaf.name)\n uiContainsCodes = true;\n });\n\n return;\n }\n\n areaAndLeafSets[areaText] = areaAndLeafSet[CurriculumType.Leaf];\n });\n\n function getAudienceText(): string {\n const audienceSegment = props.linkSet[CurriculumType.Audience].name;\n const subjectSegment = props.linkSet[CurriculumType.Subject].name;\n\n /**\n * In some curriculums, such as the UK curriculum, the audience string may contain a year group\n * in brackets. For example, it may be \"Lower Key Stage 2 (Year 4)\".\n * This regex will pull that segment out if it exists.\n */\n const audienceBracketSegments = audienceSegment.match(BRACKET_SEGMENT_REGEX);\n\n if (audienceBracketSegments)\n return `${audienceBracketSegments[1]} • ${audienceBracketSegments[2]} • ${subjectSegment}`;\n\n return `${audienceSegment} • ${subjectSegment}`;\n }\n\n function getLeafStyleClass(leaf: Curriculum<CurriculumType.Leaf>): string {\n const className = 'mb-2';\n\n if (!leaf.name && !uiContainsCodes)\n return className + ' ms-4 ' + styles.leafDescriptionOnly;\n\n return className;\n }\n\n return (\n <>\n <h3 className={`${BASE_PILL_CLASS} text-white bg-dark-blue fw-normal me-1 mb-2`}>\n {getAudienceText()}\n </h3>\n\n <div className={`me-2 ${styles.curriculumSubject}`}>\n {Object.keys(areaAndLeafSets).map((areaText, i) => {\n return (\n <div key={i} className={styles.areaLeafSet} >\n {areaText && <h4 className='mb-1 font-size-normal'>{areaText}</h4>}\n <ul className='list-unstyled'>\n {areaAndLeafSets[areaText].map(leaf => (\n <li key={leaf.id} className={getLeafStyleClass(leaf)}>\n <CurriculumLeaf\n leaf={leaf}\n codeWidth={props.codeWidth}\n trySetMaxCodeWidth={props.trySetMaxCodeWidth}\n uiContainsCodes={uiContainsCodes}\n />\n </li>\n ))}\n </ul>\n </div>\n );\n })}\n </div>\n </>\n );\n}\n\ninterface CurriculumLinksSet {\n [subjectAndAudienceIdKey: string]: CurriculumStructure\n}\n\ninterface CurriculumLinksV2Props {\n curriculumLinks?: Curriculum[][];\n emptyStateUrl: string;\n}\n\nexport function CurriculumLinksV2(props: CurriculumLinksV2Props): JSX.Element {\n const [ codeWidth, setCodeWidth ] = React.useState(0);\n\n function trySetMaxCodeWidth(width: number): void {\n /**\n * The width of the curriculum code column should be identical for each leaf node, meaning\n * the leaf description text will be perfectly vertically aligned all the way down.\n * See here for example: https://imgur.com/MbganZf\n * \n * This is achieved by us setting the state for the maximum code width, and forcing all\n * smaller codes to abide by that max width.\n * \n * This value is used in the `<CurriculumLeaf />` component.\n */\n setCodeWidth(currentVal => {\n if (currentVal >= width)\n return currentVal;\n\n return width;\n });\n }\n\n /**\n * Here, we're taking the structure of links from the backend, and restructuring it in a way\n * that resembles the structure of our UI more closely. The general idea is:\n * \n * CurriculumAudience - CurriculumSubject\n * CurriculumAreas\n * CurriculumLeaves\n */\n const curriculumLinkSets = React.useMemo(() => {\n const newSet: CurriculumLinksSet = {};\n\n props.curriculumLinks.forEach(linkSet => {\n let subject: Curriculum<CurriculumType.Subject> = null;\n let audience: Curriculum<CurriculumType.Audience> = null;\n const areas: Curriculum<CurriculumType.Area>[] = [];\n const leaves: Curriculum<CurriculumType.Leaf>[] = [];\n \n linkSet.forEach(curriculumObj => {\n switch (curriculumObj.type) {\n case CurriculumType.Subject:\n subject = curriculumObj as Curriculum<CurriculumType.Subject>;\n break;\n case CurriculumType.Audience:\n audience = curriculumObj as Curriculum<CurriculumType.Audience>;\n break;\n case CurriculumType.Area:\n areas.push(curriculumObj as Curriculum<CurriculumType.Area>);\n break;\n case CurriculumType.Leaf:\n leaves.push(curriculumObj as Curriculum<CurriculumType.Leaf>);\n break;\n default:\n break;\n }\n });\n \n const key = `${subject.id}:${audience.id}`;\n \n if (newSet[key]) {\n newSet[key].areasAndLeaves.push({\n [CurriculumType.Area]: areas,\n [CurriculumType.Leaf]: leaves\n });\n \n return;\n }\n \n newSet[key] = {\n [CurriculumType.Subject]: subject,\n [CurriculumType.Audience]: audience,\n areasAndLeaves: [{\n [CurriculumType.Area]: areas,\n [CurriculumType.Leaf]: leaves\n }]\n };\n });\n\n return newSet;\n }, [props.curriculumLinks]);\n\n if (!props.curriculumLinks)\n return <PartialCurriculumLinks />;\n\n if (!props.curriculumLinks?.length) {\n return <CurriculumLinksEmptyState emptyStateUrl={props.emptyStateUrl} />;\n }\n\n return (\n <ul className='list-unstyled m-0'>\n {Object.keys(curriculumLinkSets).map((linkSetKey, i) => (\n <li key={`linkset-${i}`} className={styles.curriculumSet}>\n <CurriculumSubject\n linkSet={curriculumLinkSets[linkSetKey]}\n trySetMaxCodeWidth={trySetMaxCodeWidth}\n codeWidth={codeWidth}\n />\n </li>\n ))}\n </ul>\n );\n}","import React from 'react';\n\nimport { CurriculumLinkItem } from 'libs/shared/components/curriculum-links/CurriculumLinkItem';\nimport { PartialTagItem } from 'libs/shared/components/tags/PartialTagItem';\nimport { DynamicWidget } from 'libs/shared/components/widgets/dynamic-widget';\nimport { CurriculumData, Presentation } from 'libs/shared/interfaces';\n\ninterface CurriculumsWidgetProps {\n curriculums: CurriculumData;\n selectedCurriculum: Presentation;\n onChangeCurriculum: (curriculumId: string) => void;\n}\n\nexport function CurriculumsWidget(props: CurriculumsWidgetProps): JSX.Element {\n return (\n <DynamicWidget\n collection={props.selectedCurriculum?.id ? props.curriculums.nonEmptyCurriculums : null}\n childClassName='flex-shrink-0'\n childComponent={_props => {\n return (\n <CurriculumLinkItem\n {..._props}\n selected={props.selectedCurriculum?.id?.toString() === _props.data.id.toString()}\n onChangeCurriculum={props.onChangeCurriculum}\n />\n );\n }}\n partialLoadingComponent={() => <PartialTagItem />}\n widgetDataDeps={[ props.selectedCurriculum?.id?.toString(), props.onChangeCurriculum ]}\n />\n );\n}","import { MutableRefObject, useEffect, useRef, useState } from 'react';\nimport * as marked from 'marked';\n\nimport { useEventsServiceSubscribe } from 'libs/common/react/hooks/UseEventsServiceSubscribe';\nimport { EventsService } from 'libs/common/react/services/EventsService';\n\nimport { Clip, Glance, PointOfInterest, Video } from 'libs/shared/interfaces';\n\nimport styles from './video-at-a-glance.scss';\n\nconst POI_LINK_LINE = /\\[\\]\\(cv:\\/\\/poi\\?id=\\d+\\)\\n*/g;\n\nfunction stripPoisFromGlanceContent(glanceContent: string): string {\n return glanceContent.replace(POI_LINK_LINE, '');\n}\n\nfunction getLearningIntentionHTML(glance: Glance): string {\n const learningIntention = stripPoisFromGlanceContent(glance.content);\n\n return marked(learningIntention);\n}\n\nexport function useLearningIntentionMarkdown(\n video: Video,\n hasGlanceData?: boolean\n): string {\n const [ markdownHTML, setMarkdownHTML ] = useState('');\n\n useEffect(() => {\n if (!hasGlanceData)\n return;\n\n const content = getLearningIntentionHTML(video.glance);\n\n setMarkdownHTML(content);\n }, [ video.glance?.content, hasGlanceData ]);\n\n return markdownHTML;\n}\n\nexport function hasGlanceData(video: Video | Clip): boolean {\n return video.glance?.content && video.glance?.format === 'text/markdown';\n}\n\nexport function useHighlightPointOfInterest(\n pointOfInterest: PointOfInterest,\n shouldHighlight: boolean\n): MutableRefObject<HTMLDivElement> {\n const ref = useRef<HTMLDivElement>();\n\n useEventsServiceSubscribe('player:poi:mouseover', onPlayerPoiMouseOver, null, shouldHighlight);\n useEventsServiceSubscribe('player:poi:mouseleave', onPlayerPoiMouseLeave, null, shouldHighlight);\n\n useEffect(() => {\n if (!ref.current || !shouldHighlight)\n return;\n\n ref.current?.addEventListener('mouseover', onGlancePoiMouseOver);\n ref.current?.addEventListener('mouseleave', onGlancePoiMouseLeave);\n\n return () => {\n ref.current?.removeEventListener('mouseover', onGlancePoiMouseOver);\n ref.current?.removeEventListener('mouseleave', onGlancePoiMouseLeave);\n };\n }, [ref.current]);\n\n function onPlayerPoiMouseOver(hoveredPoi: PointOfInterest): void {\n if (!hoveredPoi?.id || pointOfInterest?.id?.toString() !== hoveredPoi?.id?.toString())\n return;\n\n ref.current?.classList.add(styles.highlightPoi);\n }\n\n function onPlayerPoiMouseLeave(): void {\n ref.current?.classList.remove(styles.highlightPoi);\n }\n\n /**\n * `this` will be the element to which the eventListener is bound.\n */\n function onGlancePoiMouseOver(): void {\n if (pointOfInterest)\n EventsService.trigger('glance:poi:mouseover', pointOfInterest);\n }\n\n function onGlancePoiMouseLeave(): void {\n EventsService.trigger('glance:poi:mouseleave');\n }\n\n return ref;\n}","// extracted by mini-css-extract-plugin\nexport default {\"poiEntry\":\"vr6R9\",\"poiText\":\"znHZF\",\"public\":\"v0BZ9\",\"poiTimeStamp\":\"AdKwe\"};","import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PointOfInterest } from 'libs/shared/interfaces';\nimport { DurationHelper } from 'libs/shared/utils/DurationHelper';\n\nimport { useHighlightPointOfInterest } from '../VideoAtAGlanceUtilsV2';\n\nimport styles from './points-of-interest-list.scss';\n\ninterface PointOfInterestProps {\n poi: PointOfInterest;\n suppressInteractivity?: boolean;\n onClickPoiItem: (time: number) => void;\n}\n\nfunction PointOfInterest(props: PointOfInterestProps): JSX.Element {\n const timeStamp = DurationHelper.ToDisplayDuration(props.poi.startTime * 1000);\n\n const ref = useHighlightPointOfInterest(props.poi, !props.suppressInteractivity);\n\n if (props.suppressInteractivity) {\n return (\n <div className={`d-flex ${styles.poiEntry} mb-2`}>\n <span className={`d-flex rounded-pill justify-content-center align-items-center fw-semibold info-link ${styles.poiTimeStamp}`}>{timeStamp}</span>\n <div className={`${styles.public} ms-2`}>{props.poi.description}</div>\n </div>\n );\n }\n\n return (\n <DivButton\n key={props.poi.startTime}\n className={`d-flex ${styles.poiEntry} mb-2 cursor-pointer`}\n onClick={() => props.onClickPoiItem(props.poi.startTime)}\n ref={ref}\n >\n <div className={`d-flex rounded-pill justify-content-center align-items-center fw-semibold info-link ${styles.poiTimeStamp}`}>{timeStamp}</div>\n <div className={`ms-2 ${styles.poiText}`}>{props.poi.description}</div>\n </DivButton>\n );\n}\n\ninterface PointOfInterestListProps{\n pointsOfInterest: PointOfInterest[];\n suppressInteractivity?: boolean;\n onClickPoiItem: (time: number) => void\n}\n\nconst namespace = 'shared.pointsOfInterestList';\n\nexport function PointOfInterestList(props: PointOfInterestListProps) {\n return (\n <div>\n <h2 className='h6 my-2'><Text namespace={namespace} phrase='heading' /></h2>\n\n <div>\n {props.pointsOfInterest.map(poi => {\n return (\n <PointOfInterest\n key={poi.startTime}\n poi={poi}\n suppressInteractivity={props.suppressInteractivity}\n onClickPoiItem={props.onClickPoiItem}\n />\n );\n })}\n\n </div>\n </div>\n );\n}","import * as React from 'react';\nimport Scrollbars from 'react-custom-scrollbars-2';\n\nimport { Core } from 'libs/common/core';\n\nimport { PointOfInterestList } from 'libs/shared/components/play-page-v2/glance/points-of-interest-list/PointsOfInterestList';\nimport { TagHelper } from 'libs/shared/components/tags/TagHelper';\nimport { TagList } from 'libs/shared/components/tags/TagList';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { TagType } from 'libs/shared/enums/TagType';\nimport { PointOfInterest, Tag, Video } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { useLearningIntentionMarkdown } from './VideoAtAGlanceUtilsV2';\n\nimport styles from './video-at-a-glance.scss';\n\nconst namespace = 'shared.videoAtAGlanceV2';\n\nconst SCROLL_HEIGHT_MAX = 350; // in px\n\ninterface ScrollbarWrapperProps {\n hideScrollbar?: boolean;\n}\n\nfunction ScrollbarWrapper(props: React.PropsWithChildren<ScrollbarWrapperProps>): JSX.Element {\n if (props.hideScrollbar)\n return <>{props.children}</>;\n\n return (\n <div className='rounded border mb-4 bg-white'>\n <Scrollbars\n autoHeight\n autoHeightMax={SCROLL_HEIGHT_MAX}\n >\n <div className='px-3 px-3 pt-3 pb-2'>\n {props.children}\n </div>\n </Scrollbars>\n </div>\n );\n}\n\ninterface VideoAtAGlanceV2Props {\n video: Video;\n pointsOfInterest?: PointOfInterest[];\n suppressInteractivity?: boolean;\n setStartTime?: (time: number) => void;\n getTagAppLink?: (tag: Tag) => Core.AppLink;\n onClickTag?: () => void;\n hideScrollbar?: boolean;\n canViewGlance: boolean;\n}\n\nexport function VideoAtAGlanceV2(props: VideoAtAGlanceV2Props): JSX.Element {\n const learningIntentionMarkdownHTML = useLearningIntentionMarkdown(props.video, props.canViewGlance);\n \n function getTags(): Tag[] {\n if (VideoHelper.isInteractive(props.video) || !props.video.tags?.data?.length)\n return null;\n\n return props.video.tags?.data?.filter(tag => tag.tagType === TagType.Pedagogy || tag.tagType === TagType.Skill);\n }\n const tags = getTags();\n\n if (!props.canViewGlance)\n return <></>;\n\n function onClickPoiItem(time: number) {\n props.setStartTime(time);\n }\n\n return (\n <section className='play-page-section'>\n <ScrollbarWrapper hideScrollbar={props.hideScrollbar}>\n <h2 className='h6 mb-2'><Text namespace={namespace} phrase='learningIntention' /></h2>\n <div className={`${styles.learningIntention} mb-3`}>\n <div dangerouslySetInnerHTML={{ __html: learningIntentionMarkdownHTML }}/>\n </div>\n\n {!!tags?.length && (\n <div className='mb-1'>\n <TagList\n tags={tags}\n {...TagHelper.getTagActionProps(props.getTagAppLink, props.onClickTag, props.suppressInteractivity)}\n className='mt-2'\n />\n </div>\n )}\n\n {!!props.pointsOfInterest.length && (\n <PointOfInterestList\n pointsOfInterest={props.pointsOfInterest}\n suppressInteractivity={props.suppressInteractivity}\n onClickPoiItem={onClickPoiItem}\n />\n )}\n </ScrollbarWrapper>\n </section>\n );\n}","import React from 'react';\n\nimport styles from './tags.scss';\n\ninterface PartialTagItemProps {\n tagClass?: string;\n}\n\nexport const PartialTagItem = React.memo(function({ tagClass = '' }: PartialTagItemProps): JSX.Element {\n const classNames = `partial-loading-background d-inline-block rounded-pill py-1 px-2 mb-1 me-1 text-nowrap ${tagClass} ${styles.partialTag}`;\n\n return (\n <div className='mt-1'>\n <span className={classNames}> </span>\n </div>\n );\n});","import { Core } from 'libs/common/core';\n\nimport { Tag } from 'libs/shared/interfaces';\n\nexport const TagHelper = {\n /**\n * This helper allows tag appLinks to be triggered manually for use in a public context.\n * \n * For public pages, all anchors will be crawled by bots. Given then number of tags we have\n * this will chew through crawl budget unnecessarily. \n * \n * The consuming project can opt-in for this behaviour. By default, tags will always be rendered\n * as anchors.\n */\n getTagActionProps: (\n getTagAppLink: (tag: Tag) => Core.AppLink,\n onClick: () => void,\n renderAsSpan?: boolean\n ) => {\n if (renderAsSpan) {\n return {\n onClick: (tag: Tag) => {\n if (onClick)\n onClick();\n\n const appLink = getTagAppLink ? getTagAppLink(tag) : null;\n\n if (!appLink)\n return;\n\n return Core.AppLinkHelper.trigger(appLink);\n }\n };\n }\n\n return {\n getAppLink: (tag: Tag) => {\n return getTagAppLink\n ? getTagAppLink(tag)\n : null;\n },\n onClick\n };\n }\n};","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { TagType } from 'libs/shared/enums/TagType';\nimport { Tag, ThemeColours } from 'libs/shared/interfaces';\n\nimport styles from './tags.scss';\n\ninterface TagItemProps {\n tag: Tag;\n themeColours?: ThemeColours;\n appLink?: Core.AppLink;\n onClick?: () => void;\n onRemove?: () => void;\n disabled?: boolean;\n tagClass?: string;\n}\n\nfunction getTagTypeClass(tagType: TagType, hasThemeColour: boolean): string {\n switch (tagType) {\n case TagType.Pedagogy:\n case TagType.Skill:\n return 'pedagogy-tag text-white';\n\n case TagType.Hidden:\n return 'hidden-tag fw-normal';\n\n case TagType.Normal:\n if (!hasThemeColour)\n return 'bg-gray-100 fw-normal';\n return '';\n\n default:\n return '';\n }\n}\n\nexport function TagItem(props: TagItemProps): JSX.Element {\n const { tag, appLink, onClick, disabled, tagClass = 'tag' } = props;\n\n const name = tag.name.toLowerCase();\n const tagType = tag.tagType?.toLowerCase() as TagType;\n\n const hasThemeColour = (tagType === TagType.Normal && props.themeColours) && !!props.themeColours?.secondary;\n let classNames = `rounded-pill py-1 px-2 my-1 me-1 ${tagClass} ${getTagTypeClass(tagType, hasThemeColour)}`;\n\n if (hasThemeColour)\n classNames += ' text-white';\n\n if ((appLink || onClick) && !disabled)\n classNames += ' cursor-pointer';\n\n if (disabled)\n classNames += ' ' + styles.disabled;\n\n if (props.onRemove)\n classNames += ' ' + styles.badge;\n\n if (!appLink)\n classNames += ' d-inline-block';\n\n const style: React.CSSProperties = hasThemeColour\n ? { backgroundColor: props.themeColours.secondary }\n : {};\n\n if (appLink) {\n return (\n <AppLink\n onClick={onClick}\n appLink={appLink}\n className={classNames}\n title={name}\n style={style}\n >\n <span className='text-truncate text-nowrap'>{name}</span>\n </AppLink>\n );\n }\n\n return (\n <span\n onClick={onClick}\n className={classNames}\n title={name}\n style={style}\n >\n <span className='text-truncate text-nowrap'>\n {name}\n {props.onRemove &&\n <button\n onClick={props.onRemove}\n className={`${styles.close} btn-close font-size-normal`}\n role='button'\n aria-label='Close'\n />\n }\n </span>\n </span>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { TagItem } from 'libs/shared/components/tags/TagItem';\nimport { TagType } from 'libs/shared/enums/TagType';\nimport { Tag, ThemeColours } from 'libs/shared/interfaces';\n\nimport styles from './tags.scss';\n\n/**\n * TODO: this will eventually handle ClickView and Customer tag types.\n */\nfunction getTagSortValue(tag: Tag): number {\n switch (tag.tagType?.toLowerCase()) {\n case TagType.Pedagogy:\n return 0;\n\n case TagType.Skill:\n return 1;\n\n default:\n return 2;\n }\n}\n\ninterface TagListProps {\n tags: Tag[];\n themeColours?: ThemeColours;\n onClick?: (tag: Tag) => void;\n onRemove?: (tag: Tag) => void;\n getAppLink?: (tag: Tag) => Core.AppLink;\n className?: string;\n}\n\nexport function TagList(props: TagListProps): JSX.Element {\n if (!props.tags)\n return <></>;\n\n const sortedTags = [...props.tags].sort((a, b) => getTagSortValue(a) - getTagSortValue(b));\n\n return (\n <div className={`${styles.tagList} ${props.className}`}>\n {sortedTags.map((tag: Tag) => {\n const appLink = typeof props.getAppLink === 'function'\n ? props.getAppLink(tag)\n : null;\n\n const onRemove = typeof props.onRemove === 'function'\n ? () => props.onRemove(tag)\n : null;\n\n const onClick = typeof props.onClick === 'function'\n ? () => props.onClick(tag)\n : null;\n\n return (\n <TagItem\n key={tag.id || tag.name}\n tag={tag}\n appLink={appLink}\n themeColours={props.themeColours}\n onRemove={onRemove}\n onClick={onClick}\n />\n );\n })}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"seeMore\":\"yv0FS\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions, ClickDescriptor } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\n\nimport styles from './widget-header.scss';\n\nconst namespace = 'shared.widgetHeader';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface WidgetHeaderProps {\n name: string;\n description: string;\n\n appLink?: Core.AppLink;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n showSeeMoreLink?: boolean;\n onClick?: () => void;\n}\n\nfunction SeeMore(props: WidgetHeaderProps) {\n return (\n <div className={`ms-3 ${styles.seeMore}`}>\n <AppLink\n appLink={props.appLink}\n analyticsData={props.analyticsData }\n analyticsOptions={{ ...props.analyticsOptions, descriptor: ClickDescriptor.SeeMore }}\n className={`text-decoration-none ${props.appLink ? 'curated-widget-link' : ''}`}\n >\n <p className='hover-text-underline text-dark curated-widget-heading'>{getPhrase('seeMore')}</p>\n </AppLink>\n </div>\n );\n}\n\nexport function WidgetHeader(props: WidgetHeaderProps): JSX.Element {\n const hasDescription = !!props.description;\n\n if (!props.name && !props.description)\n return <></>;\n\n return (\n <div className='curated-widget-header'>\n <div className='d-flex justify-content-between'>\n {!!props.name && (\n <div className={styles.title}>\n <AppLink\n appLink={props.appLink}\n analyticsOptions={props.analyticsOptions}\n analyticsData={props.analyticsData}\n className={`text-decoration-none ${props.appLink ? 'curated-widget-link' : ''}`}\n onClick={props.onClick}\n >\n <h2 className='h4 curated-widget-heading'>\n {props.name}\n </h2>\n </AppLink>\n </div>\n )}\n {!!props.appLink && !hasDescription && !!props.showSeeMoreLink && <SeeMore {...props}/>}\n </div>\n \n {hasDescription && (\n <div className='d-flex justify-content-between align-items-end'>\n <p className={`description curated-widget-description ${styles.description}`}>\n <span>{props.description}</span>\n </p>\n {!!props.appLink && !!props.showSeeMoreLink && <SeeMore {...props}/> }\n </div>\n )}\n </div>\n );\n}","import { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\n\nconst blankImage = new Image();\nblankImage.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=';\n\nexport const DragHelper = {\n // This removes the image that appears when you drag a draggable HTML element\n hideDragImage(event: React.DragEvent<HTMLElement>): void {\n if (!event.dataTransfer.setDragImage || !FunctionHelper.isFunction(event.dataTransfer.setDragImage))\n return;\n\n event.dataTransfer.setDragImage(blankImage, 0, 0);\n }\n};","import * as React from 'react';\n\nimport { UserAgentHelper } from 'libs/common/backbone/utils/UserAgentHelper';\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\n\nimport { CssMeasurement } from 'libs/shared/enums/CssMeasurement';\nimport { DragHelper } from 'libs/shared/utils/DragHelper';\n\nconst isTouchScreen = UserAgentHelper.isTouchScreen();\n\nconst getPositionStyling = (xPosition: number, measurement: CssMeasurement, dragPercentage?: number) => {\n // Used in situations where a touch screen user is dragging the `<FixedWidget />`\n if (measurement === CssMeasurement.Percentage && dragPercentage)\n xPosition = xPosition - dragPercentage;\n\n return {\n transform: `translate3d(${xPosition}${measurement}, 0px, 0px)`,\n transition: 'transform .4s ease-in-out'\n };\n};\n\ninterface SlidingListContainerProps extends React.PropsWithChildren<unknown> {\n position: number;\n positionType: CssMeasurement;\n\n onDrag?: (event: React.DragEvent<HTMLDivElement>) => void;\n onDragEnd?: () => void;\n\n onTouchMove?: (event: React.TouchEvent<HTMLDivElement>) => void;\n onTouchEnd?: () => void;\n\n percentageDragged?: number;\n}\n\nexport const SlidingListContainer = React.forwardRef((\n props: SlidingListContainerProps,\n ref: React.MutableRefObject<HTMLDivElement>\n): JSX.Element => {\n const { children, positionType, onDrag, onDragEnd, onTouchMove, onTouchEnd, percentageDragged, position = 0 } = props;\n\n function getEventListeners(): HashObject {\n const listenerProps: HashObject = {};\n\n if (onDrag && onDragEnd) {\n listenerProps.draggable = true;\n listenerProps.onDragEnd = onDragEnd;\n listenerProps.onDragStart = DragHelper.hideDragImage;\n listenerProps.onDragOver = onDrag;\n }\n\n if (onTouchMove && onTouchEnd && isTouchScreen) {\n listenerProps.onTouchMoveCapture = onTouchMove;\n listenerProps.onTouchEndCapture = onTouchEnd;\n }\n\n return listenerProps;\n }\n\n return (\n <div\n className='d-flex flex-nowrap position-relative w-100'\n style={getPositionStyling(position, positionType, percentageDragged)}\n ref={ref}\n {...getEventListeners()}\n >\n {children}\n </div>\n );\n});","// extracted by mini-css-extract-plugin\nexport default {\"buttonContainer\":\"_ejId\",\"left\":\"VSAPU\",\"right\":\"kgeXh\",\"button\":\"gAsE9\",\"hoverText\":\"APA36\",\"buttonHover\":\"cqD75\",\"chevron\":\"Ev4hr\",\"extendedClickableArea\":\"AtsWP\",\"gradientRight\":\"ZuAif\",\"gradientLeft\":\"Pt3nx\",\"topPos\":\"BVcIS\"};","import * as React from 'react';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { FixedWidgetState } from 'libs/shared/components/widgets/fixed-widget';\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './widget-button.scss';\n\nexport enum WidgetButtonDirection {\n Left,\n Right\n}\n\ninterface WidgetButtonProps {\n onClick: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;\n direction: WidgetButtonDirection;\n hide: boolean;\n contents?: WidgetContents;\n useGradientBackdrop?: boolean;\n className?: string;\n hoverText?: string;\n hideExtendedClickableArea?: boolean;\n state?: FixedWidgetState;\n\n leftButtonClassName?: string;\n rightButtonClassName?: string;\n leftGradientClassName?: string;\n rightGradientClassName?: string;\n}\n\nexport const WidgetButton = React.memo(function(props: WidgetButtonProps): JSX.Element {\n const isLeft = props.direction === WidgetButtonDirection.Left;\n\n const arrowSvg = isLeft ? cvSvgLibrary.ChevronLeft : cvSvgLibrary.ChevronRight;\n\n function getPositionClass(): string {\n let className = styles.topPos;\n \n // Left / Right\n if (isLeft)\n className += ` ${styles.left} ${props.leftButtonClassName}`;\n else\n className += ` ${styles.right} ${props.rightButtonClassName}`;\n \n return className;\n }\n\n function getStyle(): React.CSSProperties {\n if (props.state?.contents === 'videos')\n return { paddingBottom: (56.25 / props.state?.viewableItems) + '%' };\n\n return { height: '100%' };\n }\n\n if (props.hide)\n return <></>;\n\n return (\n <div className={styles.buttonContainer} style={getStyle()}>\n {props.useGradientBackdrop &&\n <div className={isLeft ? `${styles.gradientLeft} ${props.leftGradientClassName}` : `${styles.gradientRight} ${props.rightGradientClassName}`} />\n }\n\n {!props.hideExtendedClickableArea && (\n <div\n role='button'\n onClick={props.onClick}\n className={`${styles.extendedClickableArea} ${isLeft ? styles.left : styles.right}`}\n />\n )}\n\n <div\n role='button'\n className={`${getPositionClass()} ${styles.button} ${props.className || ''}`}\n onClick={props.onClick}\n >\n {props.hoverText && (\n <span className={`ps-3 pe-2 ${styles.hoverText}`}>{props.hoverText}</span>\n )}\n <SvgContainer\n svgName={arrowSvg}\n size={SvgContainerSize.Medium}\n className={`svg-container d-inline-block ${styles.chevron}`}\n />\n </div>\n </div>\n );\n});","export enum CssMeasurement {\n Percentage = '%',\n Pixels = 'px'\n}","export enum CurriculumType {\n Subject = 'CurriculumSubject',\n Audience = 'CurriculumAudience',\n Area = 'CurriculumArea',\n Leaf = 'CurriculumLeaf'\n}","export enum TagType {\n Normal = 'normal',\n Pedagogy = 'pedagogy',\n Hidden = 'hidden',\n Skill = 'skill',\n Curation = 'curation'\n}\n\n/**\n * This should **only** be used to create new tags in master (as it only accepts enum values).\n * Use the string enum above for all other cases.\n */\nexport enum TagTypeNumber {\n Normal = 0,\n Pedagogy = 1,\n Hidden = 2,\n Skill = 3,\n Curation = 4\n}","export enum WidgetInteraction {\n Init = 'init',\n Next = 'next',\n Previous = 'previous',\n Resize = 'resize',\n Drag = 'drag',\n Update = 'update',\n JumpToIndex = 'jump-to-index'\n}","import { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\n\nimport { useMediaQuery } from './UseMediaQuery';\n\n/**\n * @deprecated Please use useBreakpoints() instead\n */\nexport function useGetMediaQueryString(): MediaQueryStrings {\n const isXS = useMediaQuery(MediaQueryStrings.XS);\n const isSM = useMediaQuery(MediaQueryStrings.SM);\n const isMD = useMediaQuery(MediaQueryStrings.MD);\n const isLG = useMediaQuery(MediaQueryStrings.LG);\n const isXL = useMediaQuery(MediaQueryStrings.XL);\n const isXXL = useMediaQuery(MediaQueryStrings.XXL);\n\n let currentString = MediaQueryStrings.LG; // default\n if (isXS) currentString = MediaQueryStrings.XS;\n if (isSM) currentString = MediaQueryStrings.SM;\n if (isMD) currentString = MediaQueryStrings.MD;\n if (isLG) currentString = MediaQueryStrings.LG;\n if (isXL) currentString = MediaQueryStrings.XL;\n if (isXXL) currentString = MediaQueryStrings.XXL;\n\n return currentString;\n}","import { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\n\nimport { LiteRouteHelper } from 'shared/utils/LiteRouteHelper';\n\nexport interface VideoFeaturesHash {\n canViewGlance: boolean;\n canViewResources: boolean;\n canViewInteractives: boolean;\n canViewClips: boolean;\n canUseActions: boolean;\n canViewPublicLayout: boolean;\n canNavigate: boolean;\n canViewCurriculumLinks: boolean;\n canViewResourceItems: boolean;\n}\n\nexport function useVideoFeatureAccess() {\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { hasProduct } = useProducts();\n\n const hasNP = hasProduct(ProductId.Primary);\n\n function showPublicLayout(): boolean {\n /**\n * Authenticated users should never see the placeholder\n */\n if (hasLocalPermissions(LocalPermissionName.WatchVideos))\n return false;\n\n /**\n * Accessing a play page unathenticated will have different contextual behabviours:\n * - For a share page, the user should see the video and never the placeholder\n * - For a public browsing page (ie. using a route-prefix) they should see the placeholder\n */\n return LiteRouteHelper.hasRegionPrefix();\n }\n\n return {\n canViewGlance: hasPermissions(PermissionName.ViewVideoGlance),\n canViewResources: true,\n canViewInteractives: hasNP && hasPermissions(PermissionName.ViewVideoInteractives),\n canViewClips: hasNP && hasPermissions(PermissionName.ViewVideoClips),\n canViewCurriculumLinks: hasPermissions(PermissionName.ViewCurriculums),\n canUseActions: hasLocalPermissions(LocalPermissionName.UseVideoActions),\n canViewPublicLayout: showPublicLayout(),\n canViewResourceItems: hasLocalPermissions(LocalPermissionName.ViewVideoResourceItems),\n canNavigate: hasNP\n };\n}","import React from 'react';\nimport Scrollbars from 'react-custom-scrollbars-2';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, PresentationDescriptor, UserAction } from 'libs/analytics/interfaces';\n\nimport { PartialCurriculumLinks } from 'libs/shared/components/curriculum-links/partial-loading/PartialCurriculumLinks';\nimport { CurriculumLinksV2 } from 'libs/shared/components/play-page-v2/curriculum-links/CurriculumLinksV2';\nimport { CurriculumsWidget } from 'libs/shared/components/play-page-v2/curriculum-links/CurriculumsWidget';\nimport { VideoAtAGlanceV2 } from 'libs/shared/components/play-page-v2/glance/VideoAtAGlanceV2';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { Clip, CurriculumData, PointOfInterest, PopupViewProps, Presentation, Tag, Video } from 'libs/shared/interfaces';\nimport { GetVideoAppLinkOptions } from 'libs/shared/interfaces/VideoAppLinkOptions';\n\nconst namespace = 'shared.videoGuidanceClassroomGuidePopup';\n\nconst MIN_MAX_HEIGHT = 350;\n\ninterface VideoGuidanceClassroomGuidePopupProps extends PopupViewProps {\n isLoading: boolean;\n video: Video | Clip;\n onClickClose: () => void;\n onClickViewVideo: () => void;\n pointsOfInterest: PointOfInterest[];\n curriculums: CurriculumData;\n curriculumLinksEmptyStateUrl: string;\n\n getTagAppLink?: (tag: Tag) => Core.AppLink;\n getVideoAppLink: (video: Video | Clip, opts: GetVideoAppLinkOptions) => Core.AppLink;\n\n canViewPublicLayout: boolean;\n canViewCurriculumLinks: boolean;\n canViewGlance: boolean;\n}\n\nexport function VideoGuidanceClassroomGuidePopup(props: VideoGuidanceClassroomGuidePopupProps): JSX.Element {\n const [ selectedCurriculum, setSelectedCurriculum ] = React.useState<Presentation>();\n\n const alerts = useAlerts();\n\n React.useEffect(() => {\n if (props.isLoading || !props.curriculums)\n return;\n\n if (!selectedCurriculum) {\n const currentCurriculum = props.curriculums.activeCurriculum\n ? props.curriculums.activeCurriculum\n : ArrayHelper.first(props.curriculums.availableCurriculums);\n setSelectedCurriculum(currentCurriculum);\n }\n }, [ props.isLoading, props.curriculums?.activeCurriculum?.id ]);\n\n async function onChangeCurriculum(curriculumId: string): Promise<boolean> {\n const newCurriculum = props.curriculums.availableCurriculums.find(c => c.id.toString() === curriculumId);\n\n if (!newCurriculum?.id)\n return false;\n\n if (props.curriculums.activeCurriculum?.id?.toString() === newCurriculum?.id?.toString())\n return false;\n\n setSelectedCurriculum(newCurriculum);\n\n try {\n await props.curriculums.updateCurriculum(newCurriculum);\n\n AnalyticsHelper.logUserAction({\n id: newCurriculum.id,\n name: newCurriculum.id,\n description: newCurriculum.description,\n videoId: props.video.id,\n videoName: props.video.name\n }, {\n entity: EntityType.Presentation,\n actionType: UserAction.Select,\n descriptor: PresentationDescriptor.Curriculum,\n location: LocationContext.ClassroomGuidancePopup\n });\n } catch {\n setSelectedCurriculum(selectedCurriculum);\n alerts.error(LanguageService.getPhrase(namespace, 'updateCurriculumFailed'));\n }\n }\n\n const hasCurriculumLinks = props.canViewCurriculumLinks && props.curriculums?.customerHasCurriculumLinks;\n\n return (\n <Popup\n closePopup={props.onClickClose}\n showLoadingSpinner={props.isLoading}\n title={LanguageService.getPhrase(namespace, 'classroomGuide')}\n size='lg'\n >\n {!props.isLoading && (\n <>\n <Scrollbars\n autoHeightMax={MIN_MAX_HEIGHT}\n autoHeightMin={MIN_MAX_HEIGHT}\n autoHeight\n className='pb-3'\n >\n <div className={hasCurriculumLinks ? 'mb-4' : ''}>\n <VideoAtAGlanceV2\n video={props.video}\n pointsOfInterest={props.pointsOfInterest}\n setStartTime={startTime => {\n Core.AppLinkHelper.trigger(props.getVideoAppLink(props.video, { t: startTime }));\n props.closePopup();\n }}\n getTagAppLink={props.getTagAppLink}\n suppressInteractivity={props.canViewPublicLayout}\n onClickTag={props.closePopup}\n canViewGlance={props.canViewGlance}\n hideScrollbar\n />\n </div>\n\n {hasCurriculumLinks && (\n <>\n <h2 className='h6'>\n <Text namespace={namespace} phrase='curriculumLinks' />\n </h2>\n\n <div className='mb-2'>\n <CurriculumsWidget\n curriculums={props.curriculums}\n selectedCurriculum={selectedCurriculum}\n onChangeCurriculum={onChangeCurriculum}\n />\n </div>\n \n {!props.curriculums?.hasLoaded\n ? <PartialCurriculumLinks />\n : (\n <CurriculumLinksV2\n curriculumLinks={props.curriculums?.curriculumLinks}\n emptyStateUrl={props.curriculumLinksEmptyStateUrl}\n />\n )}\n </>\n )}\n </Scrollbars>\n\n <PopupButtons>\n <PopupButtons.Cancel\n onClick={props.onClickClose}\n text={LanguageService.getPhrase(namespace, 'close')}\n />\n <PopupButtons.Submit\n text={LanguageService.getPhrase(namespace, 'viewVideo')}\n variant='dark'\n onClick={props.onClickViewVideo}\n />\n </PopupButtons>\n </>\n )}\n </Popup>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { Flight } from 'libs/common/react/index';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction, VideoGuidanceDescriptor } from 'libs/analytics/interfaces';\n\nimport { VideoGuidanceClassroomGuidePopup } from 'libs/shared/components/video-guidance/classroom-guide/popup/VideoGuidanceClassroomGuidePopup';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { Clip, PopupViewProps, Video } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { useCurriculums } from 'shared/hooks/useCurriculums';\nimport { useFetchPointsOfInterest } from 'shared/hooks/useFetchPointsOfInterest';\nimport { useVideoFeatureAccess } from 'shared/hooks/useVideoFeatureAccess';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\ninterface VideoGuidanceClassroomGuideViewProps extends PopupViewProps {\n id: string;\n type: MasterType;\n}\n\nexport function VideoGuidanceClassroomGuideView(props: VideoGuidanceClassroomGuideViewProps): JSX.Element {\n function getRequest(): Flight.Request {\n return props.type === MasterType.Video\n ? VideoRequests.video(props.id)\n : ClipRequests.clip(props.id);\n }\n\n const video = Flight.useBasicFetch<Clip | Video>(getRequest());\n const pointsOfInterest = useFetchPointsOfInterest(props.id, true);\n const curriculums = useCurriculums(props.id, true);\n const featureAccess = useVideoFeatureAccess();\n\n function onClickClose(): void {\n AnalyticsHelper.logUserAction({\n id: video.data.id,\n name: video.data.name\n }, {\n entity: VideoHelper.isVideo(video.data)\n ? EntityType.Video\n : EntityType.Clip,\n location: LocationContext.ClassroomGuidancePopup,\n actionType: UserAction.Click,\n descriptor: VideoGuidanceDescriptor.Close\n });\n\n props.closePopup();\n }\n\n function onClickViewVideo(): void {\n AnalyticsHelper.logUserAction({\n id: video.data.id,\n name: video.data.name\n }, {\n entity: VideoHelper.isVideo(video.data)\n ? EntityType.Video\n : EntityType.Clip,\n location: LocationContext.ClassroomGuidancePopup,\n actionType: UserAction.Click,\n descriptor: VideoGuidanceDescriptor.ViewVideo\n });\n\n if (VideoHelper.isVideo(video.data)) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PLAY_VIDEO,\n args: [ video.data.id, TextHelper.slugify(video.data.name) ]\n });\n\n props.closePopup();\n\n return;\n }\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.CLIPS,\n action: Actions.Clips.PLAY_CLIP,\n args: [ video.data.id, TextHelper.slugify(video.data.name) ]\n });\n\n props.closePopup();\n }\n\n return (\n <VideoGuidanceClassroomGuidePopup\n isLoading={!video.hasCompleted || !pointsOfInterest.hasCompleted}\n video={video.data}\n pointsOfInterest={pointsOfInterest.items}\n curriculums={curriculums}\n onClickClose={onClickClose}\n onClickViewVideo={onClickViewVideo}\n curriculumLinksEmptyStateUrl={ImageUrls.EmptyStates.CURRICULUM_LINKS}\n getVideoAppLink={VideoAppLinkHelper.getAppLink}\n getTagAppLink={tag => ({\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: { tagOrClassification: tag.name }\n })}\n canViewCurriculumLinks={featureAccess.canViewCurriculumLinks}\n canViewPublicLayout={featureAccess.canViewPublicLayout}\n canViewGlance={featureAccess.canViewGlance}\n closePopup={props.closePopup}\n />\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"curriculumSubject\":\"GvGYH\",\"curriculumSet\":\"d7RK0\",\"areaLeafSet\":\"XRTAe\",\"closeButton\":\"N3l5Q\",\"heading\":\"hAxR4\",\"leafDescriptionOnly\":\"h66ke\",\"dropdown\":\"CsG6G\",\"tag\":\"rdLqY\",\"cover\":\"etwaD\",\"active\":\"aDLMe\",\"selected\":\"BMrSd\"};","// extracted by mini-css-extract-plugin\nexport default {\"learningIntention\":\"MHM6O\",\"highlightPoi\":\"U7Q6x\"};","// extracted by mini-css-extract-plugin\nexport default {\"tagList\":\"Zw6d9\",\"disabled\":\"jlL1c\",\"partialTag\":\"too_N\",\"badge\":\"OjtN8\",\"close\":\"X9joI\"};"],"names":["useEventsServiceSubscribe","event","callback","once","shouldSubscribe","unsubscribe","useEffect","EventsService","listeners","this","registerListener","deregisterListener","args","triggerCallbacks","executionLimit","Error","push","idxToRemove","findIndex","e","splice","length","callbacksToRemove","forEach","listener","executionCount","apply","CurriculumLinkItem","props","curriculumTag","data","key","id","className","selected","onClick","onChangeCurriculum","toString","src","cover","url","size","alt","name","namespace","getPhrase","CurriculumLinksEmptyState","emptyStateUrl","altText","phrase","PartialCurriculumLinkSection","PartialCurriculumLinks","BRACKET_SEGMENT_REGEX","BASE_PILL_CLASS","CurriculumLeaf","getCurriculumCodeClass","baseClass","leaf","uiContainsCodes","codeRef","current","width","getBoundingClientRect","trySetMaxCodeWidth","description","style","minWidth","codeWidth","ref","Text","dangerouslySetInnerHTML","__html","CurriculumSubject","audienceSegment","subjectSegment","audienceBracketSegments","areaAndLeafSets","getLeafStyleClass","linkSet","areasAndLeaves","areaAndLeafSet","areaText","CurriculumType","map","ca","join","match","Object","keys","i","CurriculumLinksV2","setCodeWidth","currentVal","curriculumLinkSets","newSet","curriculumLinks","subject","audience","areas","leaves","curriculumObj","type","linkSetKey","CurriculumsWidget","collection","selectedCurriculum","curriculums","nonEmptyCurriculums","childClassName","childComponent","_props","partialLoadingComponent","widgetDataDeps","POI_LINK_LINE","useLearningIntentionMarkdown","video","hasGlanceData","useState","markdownHTML","setMarkdownHTML","content","glance","learningIntention","replace","format","useHighlightPointOfInterest","pointOfInterest","shouldHighlight","useRef","onGlancePoiMouseOver","onGlancePoiMouseLeave","hoveredPoi","classList","add","remove","addEventListener","removeEventListener","PointOfInterest","timeStamp","DurationHelper","poi","startTime","suppressInteractivity","DivButton","onClickPoiItem","PointOfInterestList","pointsOfInterest","SCROLL_HEIGHT_MAX","ScrollbarWrapper","hideScrollbar","children","autoHeight","autoHeightMax","VideoAtAGlanceV2","learningIntentionMarkdownHTML","canViewGlance","tags","VideoHelper","filter","tag","tagType","TagType","TagList","TagHelper","getTagAppLink","onClickTag","time","setStartTime","PartialTagItem","tagClass","classNames","getTagActionProps","renderAsSpan","appLink","getAppLink","TagItem","disabled","toLowerCase","hasThemeColour","themeColours","secondary","getTagTypeClass","onRemove","backgroundColor","title","role","getTagSortValue","sortedTags","sort","a","b","LanguageService","SeeMore","AppLink","analyticsData","analyticsOptions","descriptor","WidgetHeader","hasDescription","showSeeMoreLink","blankImage","Image","DragHelper","dataTransfer","setDragImage","FunctionHelper","isTouchScreen","UserAgentHelper","SlidingListContainer","listenerProps","xPosition","measurement","dragPercentage","positionType","onDrag","onDragEnd","onTouchMove","onTouchEnd","percentageDragged","position","CssMeasurement","C","transform","transition","draggable","onDragStart","onDragOver","onTouchMoveCapture","onTouchEndCapture","WidgetButtonDirection","WidgetButton","isLeft","direction","Left","arrowSvg","hide","state","contents","paddingBottom","viewableItems","height","useGradientBackdrop","leftGradientClassName","rightGradientClassName","hideExtendedClickableArea","leftButtonClassName","rightButtonClassName","hoverText","SvgContainer","svgName","S","TagTypeNumber","WidgetInteraction","useGetMediaQueryString","isXS","isSM","isMD","isLG","isXL","isXXL","currentString","useVideoFeatureAccess","hasPermissions","hasLocalPermissions","hasNP","hasProduct","canViewResources","canViewInteractives","canViewClips","canViewCurriculumLinks","canUseActions","canViewPublicLayout","canViewResourceItems","canNavigate","MIN_MAX_HEIGHT","VideoGuidanceClassroomGuidePopup","setSelectedCurriculum","alerts","isLoading","currentCurriculum","activeCurriculum","ArrayHelper","availableCurriculums","hasCurriculumLinks","customerHasCurriculumLinks","Popup","closePopup","onClickClose","showLoadingSpinner","autoHeightMin","getVideoAppLink","t","curriculumId","newCurriculum","find","c","updateCurriculum","AnalyticsHelper","videoId","videoName","entity","actionType","location","error","hasLoaded","curriculumLinksEmptyStateUrl","PopupButtons","text","variant","onClickViewVideo","VideoGuidanceClassroomGuideView","MasterType","VideoRequests","ClipRequests","useFetchPointsOfInterest","useCurriculums","featureAccess","hasCompleted","items","application","action","TextHelper","ImageUrls","VideoAppLinkHelper","params","tagOrClassification"],"sourceRoot":""}
|