@clickview/lite 0.50.0 → 0.50.1-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundles.json +2 -2
- package/dist/css/{6846-lite-db93efd058.chunk.css → 1850-lite-dca6b9e86d.chunk.css} +1 -0
- package/dist/css/{2137-lite-6d16d5d7c2.chunk.css → 2137-lite-7045732fc8.chunk.css} +2 -2
- package/dist/css/{2795-lite-1e800fdd04.chunk.css → 2795-lite-1641e6fbf9.chunk.css} +2 -2
- package/dist/css/{458-lite-ecaf4729d3.chunk.css → 3515-lite-c8a3139b8b.chunk.css} +2 -2
- package/dist/css/{8960-lite-a80ad92ea7.chunk.css → 4489-lite-7d5d204d0c.chunk.css} +8 -7
- package/dist/css/{3515-lite-ecaf4729d3.chunk.css → 458-lite-c8a3139b8b.chunk.css} +2 -2
- package/dist/css/{5242-lite-512783e2fb.chunk.css → 5242-lite-58cdcd1ec4.chunk.css} +2 -2
- package/dist/css/{5446-lite-b68e159c6c.chunk.css → 5446-lite-ae2395342f.chunk.css} +2 -2
- package/dist/css/6102-lite-6e94a699ed.chunk.css +39 -0
- package/dist/css/{1437-lite-b847c9e2b6.chunk.css → 6415-lite-707657102b.chunk.css} +1 -1
- package/dist/css/{9839-lite-53b02845a4.chunk.css → 6850-lite-769c93cb9e.chunk.css} +16 -16
- package/dist/css/{7987-lite-7006eb4ded.chunk.css → 7987-lite-94679244a2.chunk.css} +2 -2
- package/dist/css/{355-lite-e474c8ddce.chunk.css → 8192-lite-8721e2ed68.chunk.css} +8 -7
- package/dist/css/{8316-lite-f60e236048.chunk.css → 8316-lite-9083a6565c.chunk.css} +2 -2
- package/dist/css/{9417-lite-f60e236048.chunk.css → 9417-lite-9083a6565c.chunk.css} +2 -2
- package/dist/css/{9620-lite-b202aa1d5c.chunk.css → 9620-lite-d77e9ad59b.chunk.css} +1 -1
- package/dist/css/{7187-lite-db93efd058.chunk.css → 9818-lite-dca6b9e86d.chunk.css} +1 -0
- package/dist/css/{8139-lite-5511af77bf.chunk.css → 986-lite-3bf6e93049.chunk.css} +1 -0
- package/dist/css/{lite-app-cf9b57ee91.css → lite-app-28b7b96628.css} +8 -6
- package/dist/languages/en.json +1 -1
- package/dist/scripts/{1080-d6dfc36c03-lite.chunk.js → 1080-362271a654-lite.chunk.js} +2 -2
- package/dist/scripts/{1080-d6dfc36c03-lite.chunk.js.map → 1080-362271a654-lite.chunk.js.map} +1 -1
- package/dist/scripts/1169-3df974a8eb-lite.chunk.js +2 -0
- package/dist/scripts/1169-3df974a8eb-lite.chunk.js.map +1 -0
- package/dist/scripts/{1285-1ba9b0640e-lite.chunk.js → 1285-818f4ed377-lite.chunk.js} +1 -1
- package/dist/scripts/{1285-1ba9b0640e-lite.chunk.js.map → 1285-818f4ed377-lite.chunk.js.map} +1 -1
- package/dist/scripts/1313-455608bc46-lite.chunk.js +2 -0
- package/dist/scripts/1313-455608bc46-lite.chunk.js.map +1 -0
- package/dist/scripts/{1379-2ee86e6e68-lite.chunk.js → 1379-3a1ba4b4d9-lite.chunk.js} +3 -3
- package/dist/scripts/{1379-2ee86e6e68-lite.chunk.js.map → 1379-3a1ba4b4d9-lite.chunk.js.map} +1 -1
- package/dist/scripts/{1518-be314d1248-lite.chunk.js → 1518-b808d8043f-lite.chunk.js} +2 -2
- package/dist/scripts/1518-b808d8043f-lite.chunk.js.map +1 -0
- package/dist/scripts/{1617-3cf9199cb1-lite.chunk.js → 1617-e1735deb2a-lite.chunk.js} +1 -1
- package/dist/scripts/{1617-3cf9199cb1-lite.chunk.js.map → 1617-e1735deb2a-lite.chunk.js.map} +1 -1
- package/dist/scripts/1672-672f298d82-lite.chunk.js +3 -0
- package/dist/scripts/1672-672f298d82-lite.chunk.js.map +1 -0
- package/dist/scripts/1750-a525866169-lite.chunk.js +2 -0
- package/dist/scripts/1750-a525866169-lite.chunk.js.map +1 -0
- package/dist/scripts/1818-74a3d26afd-lite.chunk.js +2 -0
- package/dist/scripts/1818-74a3d26afd-lite.chunk.js.map +1 -0
- package/dist/scripts/1820-68114ca994-lite.chunk.js +2 -0
- package/dist/scripts/1820-68114ca994-lite.chunk.js.map +1 -0
- package/dist/scripts/{1863-a6e7446cd8-lite.chunk.js → 1863-618c9bd7af-lite.chunk.js} +1 -1
- package/dist/scripts/{1863-a6e7446cd8-lite.chunk.js.map → 1863-618c9bd7af-lite.chunk.js.map} +1 -1
- package/dist/scripts/1905-af9a8f8824-lite.chunk.js +2 -0
- package/dist/scripts/1905-af9a8f8824-lite.chunk.js.map +1 -0
- package/dist/scripts/2004-4e2d98041c-lite.chunk.js +3 -0
- package/dist/scripts/2004-4e2d98041c-lite.chunk.js.map +1 -0
- package/dist/scripts/{209-148abe2aa1-lite.chunk.js → 209-4a54845452-lite.chunk.js} +2 -2
- package/dist/scripts/209-4a54845452-lite.chunk.js.map +1 -0
- package/dist/scripts/2137-093f479ff9-lite.chunk.js +2 -0
- package/dist/scripts/2137-093f479ff9-lite.chunk.js.map +1 -0
- package/dist/scripts/2199-cfc0ff4e1e-lite.chunk.js +2 -0
- package/dist/scripts/2199-cfc0ff4e1e-lite.chunk.js.map +1 -0
- package/dist/scripts/2703-64f709f0d0-lite.chunk.js +2 -0
- package/dist/scripts/2703-64f709f0d0-lite.chunk.js.map +1 -0
- package/dist/scripts/{2795-b3f0673e3e-lite.chunk.js → 2795-0616748349-lite.chunk.js} +1 -1
- package/dist/scripts/{2795-b3f0673e3e-lite.chunk.js.map → 2795-0616748349-lite.chunk.js.map} +1 -1
- package/dist/scripts/2877-40bb796d59-lite.chunk.js +2 -0
- package/dist/scripts/2877-40bb796d59-lite.chunk.js.map +1 -0
- package/dist/scripts/3020-2b9042238c-lite.chunk.js +2 -0
- package/dist/scripts/3020-2b9042238c-lite.chunk.js.map +1 -0
- package/dist/scripts/{3070-47e46e0d89-lite.chunk.js → 3070-fb8eb47716-lite.chunk.js} +1 -1
- package/dist/scripts/{3070-47e46e0d89-lite.chunk.js.map → 3070-fb8eb47716-lite.chunk.js.map} +1 -1
- package/dist/scripts/3231-65bbddef35-lite.chunk.js +2 -0
- package/dist/scripts/3231-65bbddef35-lite.chunk.js.map +1 -0
- package/dist/scripts/3403-12c460d3f6-lite.chunk.js +2 -0
- package/dist/scripts/3403-12c460d3f6-lite.chunk.js.map +1 -0
- package/dist/scripts/3515-4de2fd7070-lite.chunk.js +2 -0
- package/dist/scripts/3515-4de2fd7070-lite.chunk.js.map +1 -0
- package/dist/scripts/3645-72ca9f63df-lite.chunk.js +3 -0
- package/dist/scripts/3645-72ca9f63df-lite.chunk.js.map +1 -0
- package/dist/scripts/3895-a54621a8c4-lite.chunk.js +2 -0
- package/dist/scripts/3895-a54621a8c4-lite.chunk.js.map +1 -0
- package/dist/scripts/458-35c635a2ce-lite.chunk.js +2 -0
- package/dist/scripts/458-35c635a2ce-lite.chunk.js.map +1 -0
- package/dist/scripts/4690-d77e912b9b-lite.chunk.js +2 -0
- package/dist/scripts/4690-d77e912b9b-lite.chunk.js.map +1 -0
- package/dist/scripts/{4718-6df54d3039-lite.chunk.js → 4718-2b58aa560d-lite.chunk.js} +1 -1
- package/dist/scripts/{4718-6df54d3039-lite.chunk.js.map → 4718-2b58aa560d-lite.chunk.js.map} +1 -1
- package/dist/scripts/5143-b6896dad98-lite.chunk.js +2 -0
- package/dist/scripts/5143-b6896dad98-lite.chunk.js.map +1 -0
- package/dist/scripts/5229-036b4d7a22-lite.chunk.js +2 -0
- package/dist/scripts/5229-036b4d7a22-lite.chunk.js.map +1 -0
- package/dist/scripts/{5242-e8f004818c-lite.chunk.js → 5242-2d752ff85e-lite.chunk.js} +1 -1
- package/dist/scripts/{5242-e8f004818c-lite.chunk.js.map → 5242-2d752ff85e-lite.chunk.js.map} +1 -1
- package/dist/scripts/5385-57d7021be7-lite.chunk.js +2 -0
- package/dist/scripts/5385-57d7021be7-lite.chunk.js.map +1 -0
- package/dist/scripts/{5446-de55c3df38-lite.chunk.js → 5446-1ef1639ef6-lite.chunk.js} +1 -1
- package/dist/scripts/{5446-de55c3df38-lite.chunk.js.map → 5446-1ef1639ef6-lite.chunk.js.map} +1 -1
- package/dist/scripts/5595-f33ed220ce-lite.chunk.js +2 -0
- package/dist/scripts/5595-f33ed220ce-lite.chunk.js.map +1 -0
- package/dist/scripts/{5936-4cac311002-lite.chunk.js → 5936-1d99b03e7b-lite.chunk.js} +2 -2
- package/dist/scripts/5936-1d99b03e7b-lite.chunk.js.map +1 -0
- package/dist/scripts/5940-511beff2ee-lite.chunk.js +2 -0
- package/dist/scripts/5940-511beff2ee-lite.chunk.js.map +1 -0
- package/dist/scripts/{610-27e5444f01-lite.chunk.js → 610-6dbeb5cd21-lite.chunk.js} +2 -2
- package/dist/scripts/610-6dbeb5cd21-lite.chunk.js.map +1 -0
- package/dist/scripts/6102-f1851eca08-lite.chunk.js +3 -0
- package/dist/scripts/6102-f1851eca08-lite.chunk.js.map +1 -0
- package/dist/scripts/6189-ce9f0eeb31-lite.chunk.js +2 -0
- package/dist/scripts/6189-ce9f0eeb31-lite.chunk.js.map +1 -0
- package/dist/scripts/{624-010454cb12-lite.chunk.js → 624-7df7efd486-lite.chunk.js} +3 -3
- package/dist/scripts/{624-010454cb12-lite.chunk.js.map → 624-7df7efd486-lite.chunk.js.map} +1 -1
- package/dist/scripts/6263-d74b5b3529-lite.chunk.js +2 -0
- package/dist/scripts/6263-d74b5b3529-lite.chunk.js.map +1 -0
- package/dist/scripts/{6274-46a7af05d7-lite.chunk.js → 6274-15e61b83dc-lite.chunk.js} +1 -1
- package/dist/scripts/{6274-46a7af05d7-lite.chunk.js.map → 6274-15e61b83dc-lite.chunk.js.map} +1 -1
- package/dist/scripts/6415-9d8b88c713-lite.chunk.js +2 -0
- package/dist/scripts/6415-9d8b88c713-lite.chunk.js.map +1 -0
- package/dist/scripts/{6433-fe9efef305-lite.chunk.js → 6433-8dd152d999-lite.chunk.js} +2 -2
- package/dist/scripts/{6433-fe9efef305-lite.chunk.js.map → 6433-8dd152d999-lite.chunk.js.map} +1 -1
- package/dist/scripts/6470-6216086d63-lite.chunk.js +2 -0
- package/dist/scripts/6470-6216086d63-lite.chunk.js.map +1 -0
- package/dist/scripts/6531-597262a181-lite.chunk.js +2 -0
- package/dist/scripts/6531-597262a181-lite.chunk.js.map +1 -0
- package/dist/scripts/6572-4dda098022-lite.chunk.js +2 -0
- package/dist/scripts/6572-4dda098022-lite.chunk.js.map +1 -0
- package/dist/scripts/6587-08d5d85b71-lite.chunk.js +2 -0
- package/dist/scripts/6587-08d5d85b71-lite.chunk.js.map +1 -0
- package/dist/scripts/671-36d34edbf3-lite.chunk.js +2 -0
- package/dist/scripts/671-36d34edbf3-lite.chunk.js.map +1 -0
- package/dist/scripts/{6725-23b09d47ae-lite.chunk.js → 6725-20b1e8b1d2-lite.chunk.js} +2 -2
- package/dist/scripts/6725-20b1e8b1d2-lite.chunk.js.map +1 -0
- package/dist/scripts/6741-ff3e4a33a5-lite.chunk.js +3 -0
- package/dist/scripts/6741-ff3e4a33a5-lite.chunk.js.map +1 -0
- package/dist/scripts/6752-1a9837a40f-lite.chunk.js +2 -0
- package/dist/scripts/6752-1a9837a40f-lite.chunk.js.map +1 -0
- package/dist/scripts/6850-8770bfeefb-lite.chunk.js +3 -0
- package/dist/scripts/6850-8770bfeefb-lite.chunk.js.map +1 -0
- package/dist/scripts/{6863-f04753549c-lite.chunk.js → 6863-b606b8b1e7-lite.chunk.js} +2 -2
- package/dist/scripts/{6863-f04753549c-lite.chunk.js.map → 6863-b606b8b1e7-lite.chunk.js.map} +1 -1
- package/dist/scripts/{6930-0a5d94f8b5-lite.chunk.js → 6930-1a681d42fd-lite.chunk.js} +1 -1
- package/dist/scripts/{6930-0a5d94f8b5-lite.chunk.js.map → 6930-1a681d42fd-lite.chunk.js.map} +1 -1
- package/dist/scripts/6948-84a5f8d76f-lite.chunk.js +2 -0
- package/dist/scripts/6948-84a5f8d76f-lite.chunk.js.map +1 -0
- package/dist/scripts/7097-b9a9a0a4ce-lite.chunk.js +2 -0
- package/dist/scripts/7097-b9a9a0a4ce-lite.chunk.js.map +1 -0
- package/dist/scripts/714-9ab1608522-lite.chunk.js +2 -0
- package/dist/scripts/714-9ab1608522-lite.chunk.js.map +1 -0
- package/dist/scripts/7533-e079b2af18-lite.chunk.js +2 -0
- package/dist/scripts/7533-e079b2af18-lite.chunk.js.map +1 -0
- package/dist/scripts/7715-2146591c84-lite.chunk.js +2 -0
- package/dist/scripts/7715-2146591c84-lite.chunk.js.map +1 -0
- package/dist/scripts/7855-92e790c403-lite.chunk.js +2 -0
- package/dist/scripts/7855-92e790c403-lite.chunk.js.map +1 -0
- package/dist/scripts/{7987-1f9189c4c1-lite.chunk.js → 7987-db0037709c-lite.chunk.js} +1 -1
- package/dist/scripts/{7987-1f9189c4c1-lite.chunk.js.map → 7987-db0037709c-lite.chunk.js.map} +1 -1
- package/dist/scripts/{8046-1943b1d32b-lite.chunk.js → 8046-836d3b8e04-lite.chunk.js} +1 -1
- package/dist/scripts/{8046-1943b1d32b-lite.chunk.js.map → 8046-836d3b8e04-lite.chunk.js.map} +1 -1
- package/dist/scripts/{2877-db49c758e9-lite.chunk.js → 8157-521ad0f974-lite.chunk.js} +2 -2
- package/dist/scripts/{2877-db49c758e9-lite.chunk.js.map → 8157-521ad0f974-lite.chunk.js.map} +1 -1
- package/dist/scripts/8192-ec320614d9-lite.chunk.js +2 -0
- package/dist/scripts/8192-ec320614d9-lite.chunk.js.map +1 -0
- package/dist/scripts/8218-f3b81c7287-lite.chunk.js +2 -0
- package/dist/scripts/8218-f3b81c7287-lite.chunk.js.map +1 -0
- package/dist/scripts/8316-dad1824a5f-lite.chunk.js +2 -0
- package/dist/scripts/8316-dad1824a5f-lite.chunk.js.map +1 -0
- package/dist/scripts/8354-e30261b594-lite.chunk.js +2 -0
- package/dist/scripts/8354-e30261b594-lite.chunk.js.map +1 -0
- package/dist/scripts/8772-42c022effc-lite.chunk.js +2 -0
- package/dist/scripts/8772-42c022effc-lite.chunk.js.map +1 -0
- package/dist/scripts/8800-c88fefeace-lite.chunk.js +2 -0
- package/dist/scripts/8800-c88fefeace-lite.chunk.js.map +1 -0
- package/dist/scripts/8830-452a71751f-lite.chunk.js +2 -0
- package/dist/scripts/8830-452a71751f-lite.chunk.js.map +1 -0
- package/dist/scripts/8987-32190552fa-lite.chunk.js +2 -0
- package/dist/scripts/8987-32190552fa-lite.chunk.js.map +1 -0
- package/dist/scripts/9016-c359251f82-lite.chunk.js +3 -0
- package/dist/scripts/9016-c359251f82-lite.chunk.js.map +1 -0
- package/dist/scripts/{9226-4cff4347a9-lite.chunk.js → 9226-c236c0eeb1-lite.chunk.js} +2 -2
- package/dist/scripts/9226-c236c0eeb1-lite.chunk.js.map +1 -0
- package/dist/scripts/9230-d731020b59-lite.chunk.js +3 -0
- package/dist/scripts/9230-d731020b59-lite.chunk.js.map +1 -0
- package/dist/scripts/{9395-8ad1f28459-lite.chunk.js → 9395-9175b9efcc-lite.chunk.js} +3 -3
- package/dist/scripts/{9395-8ad1f28459-lite.chunk.js.map → 9395-9175b9efcc-lite.chunk.js.map} +1 -1
- package/dist/scripts/9417-70c6489c67-lite.chunk.js +2 -0
- package/dist/scripts/9417-70c6489c67-lite.chunk.js.map +1 -0
- package/dist/scripts/{9478-5a0abba4f7-lite.chunk.js → 9478-9b168ddc36-lite.chunk.js} +3 -3
- package/dist/scripts/{9478-5a0abba4f7-lite.chunk.js.map → 9478-9b168ddc36-lite.chunk.js.map} +1 -1
- package/dist/scripts/{953-b56e03bb19-lite.chunk.js → 953-85fc5f8dbf-lite.chunk.js} +3 -3
- package/dist/scripts/{953-b56e03bb19-lite.chunk.js.map → 953-85fc5f8dbf-lite.chunk.js.map} +1 -1
- package/dist/scripts/9620-630f9e6344-lite.chunk.js +3 -0
- package/dist/scripts/9620-630f9e6344-lite.chunk.js.map +1 -0
- package/dist/scripts/9818-f63bdbbac4-lite.chunk.js +2 -0
- package/dist/scripts/9818-f63bdbbac4-lite.chunk.js.map +1 -0
- package/dist/scripts/9829-097052a2c6-lite.chunk.js +2 -0
- package/dist/scripts/9829-097052a2c6-lite.chunk.js.map +1 -0
- package/dist/scripts/{9843-a3fe640adb-lite.chunk.js → 9843-ec032b6388-lite.chunk.js} +2 -2
- package/dist/scripts/9843-ec032b6388-lite.chunk.js.map +1 -0
- package/dist/scripts/986-ea6d103647-lite.chunk.js +3 -0
- package/dist/scripts/986-ea6d103647-lite.chunk.js.map +1 -0
- package/dist/scripts/bundle-d20cb66d1a.min.js +3 -0
- package/dist/scripts/bundle-d20cb66d1a.min.js.map +1 -0
- package/package.json +1 -1
- package/dist/css/6102-lite-4c795e86b6.chunk.css +0 -39
- package/dist/scripts/1169-5dc443f0f1-lite.chunk.js +0 -2
- package/dist/scripts/1169-5dc443f0f1-lite.chunk.js.map +0 -1
- package/dist/scripts/1313-4fb9d38bc0-lite.chunk.js +0 -2
- package/dist/scripts/1313-4fb9d38bc0-lite.chunk.js.map +0 -1
- package/dist/scripts/1437-5b1889cf0d-lite.chunk.js +0 -2
- package/dist/scripts/1437-5b1889cf0d-lite.chunk.js.map +0 -1
- package/dist/scripts/1518-be314d1248-lite.chunk.js.map +0 -1
- package/dist/scripts/1672-e792631d8e-lite.chunk.js +0 -3
- package/dist/scripts/1672-e792631d8e-lite.chunk.js.map +0 -1
- package/dist/scripts/1750-b8e1fca13a-lite.chunk.js +0 -2
- package/dist/scripts/1750-b8e1fca13a-lite.chunk.js.map +0 -1
- package/dist/scripts/1818-ca1e552c00-lite.chunk.js +0 -2
- package/dist/scripts/1818-ca1e552c00-lite.chunk.js.map +0 -1
- package/dist/scripts/1820-2fa6cf6cb2-lite.chunk.js +0 -2
- package/dist/scripts/1820-2fa6cf6cb2-lite.chunk.js.map +0 -1
- package/dist/scripts/1905-a01549439f-lite.chunk.js +0 -2
- package/dist/scripts/1905-a01549439f-lite.chunk.js.map +0 -1
- package/dist/scripts/209-148abe2aa1-lite.chunk.js.map +0 -1
- package/dist/scripts/2137-a993d13a9a-lite.chunk.js +0 -2
- package/dist/scripts/2137-a993d13a9a-lite.chunk.js.map +0 -1
- package/dist/scripts/2199-22d8809e5e-lite.chunk.js +0 -2
- package/dist/scripts/2199-22d8809e5e-lite.chunk.js.map +0 -1
- package/dist/scripts/2703-aebc378d71-lite.chunk.js +0 -2
- package/dist/scripts/2703-aebc378d71-lite.chunk.js.map +0 -1
- package/dist/scripts/3020-9f647705a0-lite.chunk.js +0 -2
- package/dist/scripts/3020-9f647705a0-lite.chunk.js.map +0 -1
- package/dist/scripts/3231-7e9965499c-lite.chunk.js +0 -2
- package/dist/scripts/3231-7e9965499c-lite.chunk.js.map +0 -1
- package/dist/scripts/3355-e65e88adaa-lite.chunk.js +0 -2
- package/dist/scripts/3355-e65e88adaa-lite.chunk.js.map +0 -1
- package/dist/scripts/3403-a2111c4df8-lite.chunk.js +0 -2
- package/dist/scripts/3403-a2111c4df8-lite.chunk.js.map +0 -1
- package/dist/scripts/3515-925a7caeac-lite.chunk.js +0 -2
- package/dist/scripts/3515-925a7caeac-lite.chunk.js.map +0 -1
- package/dist/scripts/355-3bb5ae2ea4-lite.chunk.js +0 -2
- package/dist/scripts/355-3bb5ae2ea4-lite.chunk.js.map +0 -1
- package/dist/scripts/3645-720267b321-lite.chunk.js +0 -3
- package/dist/scripts/3645-720267b321-lite.chunk.js.map +0 -1
- package/dist/scripts/3895-f7f4926229-lite.chunk.js +0 -2
- package/dist/scripts/3895-f7f4926229-lite.chunk.js.map +0 -1
- package/dist/scripts/458-b99f17e0a1-lite.chunk.js +0 -2
- package/dist/scripts/458-b99f17e0a1-lite.chunk.js.map +0 -1
- package/dist/scripts/4690-774e3c0e2a-lite.chunk.js +0 -2
- package/dist/scripts/4690-774e3c0e2a-lite.chunk.js.map +0 -1
- package/dist/scripts/5143-b77fb12d6a-lite.chunk.js +0 -2
- package/dist/scripts/5143-b77fb12d6a-lite.chunk.js.map +0 -1
- package/dist/scripts/5229-f683f705ab-lite.chunk.js +0 -2
- package/dist/scripts/5229-f683f705ab-lite.chunk.js.map +0 -1
- package/dist/scripts/5385-50d4828b70-lite.chunk.js +0 -2
- package/dist/scripts/5385-50d4828b70-lite.chunk.js.map +0 -1
- package/dist/scripts/5595-c622318cd2-lite.chunk.js +0 -2
- package/dist/scripts/5595-c622318cd2-lite.chunk.js.map +0 -1
- package/dist/scripts/5936-4cac311002-lite.chunk.js.map +0 -1
- package/dist/scripts/5940-d841fd31d8-lite.chunk.js +0 -2
- package/dist/scripts/5940-d841fd31d8-lite.chunk.js.map +0 -1
- package/dist/scripts/610-27e5444f01-lite.chunk.js.map +0 -1
- package/dist/scripts/6102-30960404a9-lite.chunk.js +0 -3
- package/dist/scripts/6102-30960404a9-lite.chunk.js.map +0 -1
- package/dist/scripts/6189-13009e2ba9-lite.chunk.js +0 -2
- package/dist/scripts/6189-13009e2ba9-lite.chunk.js.map +0 -1
- package/dist/scripts/6263-82ae071643-lite.chunk.js +0 -2
- package/dist/scripts/6263-82ae071643-lite.chunk.js.map +0 -1
- package/dist/scripts/6470-2cefcc8abd-lite.chunk.js +0 -2
- package/dist/scripts/6470-2cefcc8abd-lite.chunk.js.map +0 -1
- package/dist/scripts/6531-835c743f1b-lite.chunk.js +0 -2
- package/dist/scripts/6531-835c743f1b-lite.chunk.js.map +0 -1
- package/dist/scripts/6572-0aa0696621-lite.chunk.js +0 -2
- package/dist/scripts/6572-0aa0696621-lite.chunk.js.map +0 -1
- package/dist/scripts/671-300e93ac50-lite.chunk.js +0 -2
- package/dist/scripts/671-300e93ac50-lite.chunk.js.map +0 -1
- package/dist/scripts/6725-23b09d47ae-lite.chunk.js.map +0 -1
- package/dist/scripts/6741-937ae1865f-lite.chunk.js +0 -3
- package/dist/scripts/6741-937ae1865f-lite.chunk.js.map +0 -1
- package/dist/scripts/6846-08b00decd8-lite.chunk.js +0 -2
- package/dist/scripts/6846-08b00decd8-lite.chunk.js.map +0 -1
- package/dist/scripts/6948-4ab91f77dc-lite.chunk.js +0 -2
- package/dist/scripts/6948-4ab91f77dc-lite.chunk.js.map +0 -1
- package/dist/scripts/7052-4c36846f80-lite.chunk.js +0 -3
- package/dist/scripts/7052-4c36846f80-lite.chunk.js.map +0 -1
- package/dist/scripts/7097-af8c032133-lite.chunk.js +0 -2
- package/dist/scripts/7097-af8c032133-lite.chunk.js.map +0 -1
- package/dist/scripts/714-2e52398bb7-lite.chunk.js +0 -2
- package/dist/scripts/714-2e52398bb7-lite.chunk.js.map +0 -1
- package/dist/scripts/7187-414ac79d42-lite.chunk.js +0 -2
- package/dist/scripts/7187-414ac79d42-lite.chunk.js.map +0 -1
- package/dist/scripts/7533-f2e71bd0dd-lite.chunk.js +0 -2
- package/dist/scripts/7533-f2e71bd0dd-lite.chunk.js.map +0 -1
- package/dist/scripts/7630-72099a7a26-lite.chunk.js +0 -2
- package/dist/scripts/7630-72099a7a26-lite.chunk.js.map +0 -1
- package/dist/scripts/7715-255bbe16ef-lite.chunk.js +0 -2
- package/dist/scripts/7715-255bbe16ef-lite.chunk.js.map +0 -1
- package/dist/scripts/7855-04bc8e52e3-lite.chunk.js +0 -2
- package/dist/scripts/7855-04bc8e52e3-lite.chunk.js.map +0 -1
- package/dist/scripts/8085-cde67e66df-lite.chunk.js +0 -2
- package/dist/scripts/8085-cde67e66df-lite.chunk.js.map +0 -1
- package/dist/scripts/8139-01ccbc0539-lite.chunk.js +0 -3
- package/dist/scripts/8139-01ccbc0539-lite.chunk.js.map +0 -1
- package/dist/scripts/8218-70b601169b-lite.chunk.js +0 -2
- package/dist/scripts/8218-70b601169b-lite.chunk.js.map +0 -1
- package/dist/scripts/8316-7ab8f108de-lite.chunk.js +0 -2
- package/dist/scripts/8316-7ab8f108de-lite.chunk.js.map +0 -1
- package/dist/scripts/8354-a03785518e-lite.chunk.js +0 -2
- package/dist/scripts/8354-a03785518e-lite.chunk.js.map +0 -1
- package/dist/scripts/8772-05879c5e99-lite.chunk.js +0 -2
- package/dist/scripts/8772-05879c5e99-lite.chunk.js.map +0 -1
- package/dist/scripts/8830-0d2766a50f-lite.chunk.js +0 -2
- package/dist/scripts/8830-0d2766a50f-lite.chunk.js.map +0 -1
- package/dist/scripts/8987-12841dd69c-lite.chunk.js +0 -2
- package/dist/scripts/8987-12841dd69c-lite.chunk.js.map +0 -1
- package/dist/scripts/9016-df37abbca9-lite.chunk.js +0 -3
- package/dist/scripts/9016-df37abbca9-lite.chunk.js.map +0 -1
- package/dist/scripts/9226-4cff4347a9-lite.chunk.js.map +0 -1
- package/dist/scripts/9230-c79353d3ee-lite.chunk.js +0 -3
- package/dist/scripts/9230-c79353d3ee-lite.chunk.js.map +0 -1
- package/dist/scripts/9417-7313907916-lite.chunk.js +0 -2
- package/dist/scripts/9417-7313907916-lite.chunk.js.map +0 -1
- package/dist/scripts/9620-8814c74837-lite.chunk.js +0 -3
- package/dist/scripts/9620-8814c74837-lite.chunk.js.map +0 -1
- package/dist/scripts/9839-5befd54d51-lite.chunk.js +0 -3
- package/dist/scripts/9839-5befd54d51-lite.chunk.js.map +0 -1
- package/dist/scripts/9843-a3fe640adb-lite.chunk.js.map +0 -1
- package/dist/scripts/bundle-48ad415564.min.js +0 -3
- package/dist/scripts/bundle-48ad415564.min.js.map +0 -1
- package/dist/css/{7422-lite-22ea72f8e3.chunk.css → 7422-lite-c999db664b.chunk.css} +1 -1
- /package/dist/scripts/{1379-2ee86e6e68-lite.chunk.js.LICENSE.txt → 1379-3a1ba4b4d9-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{1672-e792631d8e-lite.chunk.js.LICENSE.txt → 1672-672f298d82-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{3645-720267b321-lite.chunk.js.LICENSE.txt → 2004-4e2d98041c-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6102-30960404a9-lite.chunk.js.LICENSE.txt → 3645-72ca9f63df-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{624-010454cb12-lite.chunk.js.LICENSE.txt → 6102-f1851eca08-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6433-fe9efef305-lite.chunk.js.LICENSE.txt → 624-7df7efd486-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6741-937ae1865f-lite.chunk.js.LICENSE.txt → 6433-8dd152d999-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{7052-4c36846f80-lite.chunk.js.LICENSE.txt → 6741-ff3e4a33a5-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{8139-01ccbc0539-lite.chunk.js.LICENSE.txt → 6850-8770bfeefb-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9016-df37abbca9-lite.chunk.js.LICENSE.txt → 9016-c359251f82-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9230-c79353d3ee-lite.chunk.js.LICENSE.txt → 9230-d731020b59-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9395-8ad1f28459-lite.chunk.js.LICENSE.txt → 9395-9175b9efcc-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9478-5a0abba4f7-lite.chunk.js.LICENSE.txt → 9478-9b168ddc36-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{953-b56e03bb19-lite.chunk.js.LICENSE.txt → 953-85fc5f8dbf-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9620-8814c74837-lite.chunk.js.LICENSE.txt → 9620-630f9e6344-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9839-5befd54d51-lite.chunk.js.LICENSE.txt → 986-ea6d103647-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-48ad415564.min.js.LICENSE.txt → bundle-d20cb66d1a.min.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/6587-08d5d85b71-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/common/src/react/utils/PortalHelper.ts","file:///app/packages/libs/shared/src/components/copyright-disclaimer/copyright-disclaimer.scss","file:///app/packages/libs/shared/src/components/copyright-disclaimer/CopyrightDisclaimer.tsx","file:///app/packages/libs/shared/src/components/play-page-v2/clips-widget/ClipWidgetItemV2.tsx","file:///app/packages/libs/shared/src/components/play-page-v2/clips-widget/PlayPageClips.tsx","file:///app/packages/libs/shared/src/components/play-page-v2/details/video-details.scss","file:///app/packages/libs/shared/src/components/play-page-v2/details/VideoDetailsV2.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/play-page-v2/interactives-widget/InteractiveWidgetItemV2.tsx","file:///app/packages/libs/shared/src/components/play-page-v2/interactives-widget/PlayPageInteractives.tsx","file:///app/packages/libs/shared/src/components/play-page-v2/resources-widget/PlayPageResources.tsx","file:///app/packages/libs/shared/src/components/play-page-v2/resources-widget/resource-widget-item.scss","file:///app/packages/libs/shared/src/components/play-page-v2/resources-widget/ResourceWidgetItemV2.tsx","file:///app/packages/libs/shared/src/components/table-of-contents-list/table-of-contents-list.scss","file:///app/packages/libs/shared/src/components/table-of-contents-list/TableOfContentsList.tsx","file:///app/packages/libs/shared/src/hooks/useTableOfContentsActiveHeading.tsx","file:///app/packages/libs/shared/src/utils/DownloadHelper.ts","file:///app/packages/projects/lite/src/shared/components/play-page/components/table-of-contents/table-of-contents.scss","file:///app/packages/projects/lite/src/shared/components/play-page/components/table-of-contents/TableOfContents.tsx","file:///app/packages/projects/lite/src/shared/views/play/v2/PlayPageUtilV2.tsx","file:///app/packages/projects/lite/src/shared/views/play/v2/hooks/usePlayPageTableOfContent.ts","file:///app/packages/projects/lite/src/shared/constants/PlayPageSectionsOrder.ts","file:///app/packages/projects/lite/src/shared/views/play/v2/hooks/useSectionHeadings.ts","file:///app/packages/projects/lite/src/shared/views/play/v2/hooks/useShouldShowTableOfContents.ts","file:///app/packages/libs/shared/src/components/play-page-v2/glance/video-at-a-glance.scss"],"sourcesContent":["import React from 'react';\nimport { createPortal } from 'react-dom';\n\nexport const PortalHelper = {\n renderInPortalIfExists(component: React.ReactElement, portalContainer: Element | null): React.ReactElement {\n if (portalContainer)\n return createPortal(component, portalContainer);\n\n return component;\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"copyrightDisclaimer\":\"z8YoI\",\"overlayContainer\":\"eJDbJ\"};","import React from 'react';\nimport { Overlay } from 'react-bootstrap';\nimport { Placement } from 'react-bootstrap/esm/types';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useHoverIntent } from 'libs/shared/hooks/UseHover';\n\nimport styles from './copyright-disclaimer.scss';\n\nconst namespace = 'shared.copyrightDisclaimer';\n\nconst CONTAINER_HEIGHT = 150; // px\n\ninterface CopyrightDisclaimerProps {\n placement: Placement;\n overflowPlacement?: Placement;\n className?: string;\n}\n\nexport function CopyrightDisclaimer(props: CopyrightDisclaimerProps) {\n const [ ref, isHovering ] = useHoverIntent<HTMLDivElement>({});\n\n function preventOverflow() {\n const spaceBelow = document.documentElement.clientHeight - ref.current?.getBoundingClientRect().bottom;\n\n return spaceBelow < CONTAINER_HEIGHT;\n }\n\n return (\n <div ref={ref} className={props.className}>\n <p className={`${styles.copyrightDisclaimer} mb-1`}><Text namespace={namespace} phrase='copyrightDisclaimer' /></p>\n <Overlay\n target={ref.current}\n show={isHovering}\n placement={props.overflowPlacement && preventOverflow() ? props.overflowPlacement : props.placement}\n >\n <div className={`${styles.overlayContainer} mw-100 bg-white border rounded-3 p-2`}>\n <p><Text namespace={namespace} phrase='warning' /></p>\n <p className='fw-semibold mb-0'><Text namespace={namespace} phrase='sharing' /></p>\n </div>\n </Overlay>\n </div>\n );\n}","import React from 'react';\n\nimport { ThumbnailText } from 'libs/shared/components/thumbnails/thumbnail-text/ThumbnailText';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { FixedWidgetItemProps } from 'libs/shared/components/widgets/items/FixedWidgetItemProps';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { useMergeAudiences } from 'libs/shared/hooks/UseMergeAudiences';\nimport { CanFavouriteFunc, Clip, FavouriteFunc, PresentationAudience, YearGroup } from 'libs/shared/interfaces';\n\nexport interface ClipWidgetItemV2Props extends FixedWidgetItemProps<Clip> {\n imageCdnUrl: string;\n setFavourite: FavouriteFunc;\n canFavourite: CanFavouriteFunc;\n audiences: PresentationAudience[];\n yearGroups: YearGroup[];\n isPlugin: boolean;\n}\n\nexport const ClipWidgetItemV2 = React.memo(function(props: ClipWidgetItemV2Props): JSX.Element {\n const { data: clip, thumbnailSize, preloadImage, getAppLink } = props;\n const mergedAudience = useMergeAudiences(clip.subjectPresentationAudiences?.data, props.audiences);\n\n return (\n <div className={`flex-shrink-0 px-1 col-6 col-sm-4`}>\n <VideoThumbnail\n type='static'\n textPosition={ThumbnailTextPosition.Independent}\n video={clip}\n appLink={getAppLink(clip)}\n imageOptions={{ size: thumbnailSize }}\n preload={preloadImage}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n imageCdnUrl={props.imageCdnUrl}\n audience={mergedAudience}\n hideDuration={false}\n isPlugin={props.isPlugin}\n />\n\n <div className='mt-2'>\n <ThumbnailText\n {...props}\n video={clip}\n appLink={props.getAppLink(clip)}\n />\n </div>\n </div>\n );\n});","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { FixedWidget } from 'libs/shared/components/widgets/fixed-widget';\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\nimport { CanFavouriteFunc, Clip, FavouriteFunc, PresentationAudience, Video, YearGroup } from 'libs/shared/interfaces';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { ClipWidgetItemV2, ClipWidgetItemV2Props } from './ClipWidgetItemV2';\n\nconst namespace = 'shared.playPageClipsV2';\n\ninterface PlayPageClipsProps {\n video: Video | Clip;\n clips: Clip[];\n canViewClips: boolean;\n yearGroups: YearGroup[];\n audiences: PresentationAudience[];\n imageCdnUrl: string;\n setFavourite: FavouriteFunc;\n canFavourite: CanFavouriteFunc;\n analyticsData: HashObject;\n headingRef?: React.MutableRefObject<Map<PlayPageAnchor, HTMLElement>>;\n isPlugin: boolean;\n}\n\nexport function PlayPageClips(props: PlayPageClipsProps): JSX.Element {\n if (!props.canViewClips || !props.clips?.length)\n return <></>;\n\n const parentIsVideo = VideoHelper.isVideo(props.video);\n\n function getAppLink() {\n if (VideoHelper.isVideo(props.video)) {\n return {\n action: Actions.Videos.VIDEO_CLIPS,\n application: AppChannels.VIDEOS,\n args: [ props.video.id, TextHelper.slugify(props.video.name) ]\n };\n }\n return {\n action: Actions.Clips.CLIP_CLIPS,\n application: AppChannels.CLIPS,\n args: [ props.video.id, TextHelper.slugify(props.video.name) ]\n };\n }\n\n const title = LanguageService.getPhrase(\n namespace,\n parentIsVideo ? 'clips' : 'otherClips',\n { count: props.clips.length }\n );\n\n return (\n <section\n className='play-page-section'\n id={PlayPageAnchor.Clips}\n ref={el => {\n (el && props.headingRef?.current) && props.headingRef.current.set(PlayPageAnchor.Clips, el);\n }}\n >\n <FixedWidget<ClipWidgetItemV2Props>\n name={title}\n contents={WidgetContents.ClipsV2}\n collection={props.clips}\n prefetched\n getChildAppLink={(clip: Clip) => {\n return {\n application: AppChannels.CLIPS,\n action: Actions.Clips.PLAY_CLIP,\n args: [ clip.id, TextHelper.slugify(clip.name) ]\n };\n }}\n appLink={getAppLink()}\n childComponent={ClipWidgetItemV2}\n extraChildComponentProps={{\n yearGroups: props.yearGroups,\n audiences: props.audiences,\n imageCdnUrl: props.imageCdnUrl,\n setFavourite: props.setFavourite,\n canFavourite: props.canFavourite,\n isPlugin: props.isPlugin\n }}\n analyticsData={props.analyticsData}\n />\n </section>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"descriptionBorder\":\"YUC62\"};","import * as React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\nimport { LinkifyHelper } from 'libs/common/react/utils/LinkifyHelper';\n\nimport { ClickDescriptor, EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { CopyrightDisclaimer } from 'libs/shared/components/copyright-disclaimer/CopyrightDisclaimer';\nimport { ImmersiveReader } from 'libs/shared/components/immersive-reader/ImmersiveReader';\nimport { TagHelper } from 'libs/shared/components/tags/TagHelper';\nimport { TagList } from 'libs/shared/components/tags/TagList';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { hasPPDD } from 'libs/shared/components/video-details/VideoDetailsUtils';\nimport { MINIMUM_GLANCE_HEIGHT } from 'libs/shared/constants/MinimumGlanceHeight';\nimport { TagType } from 'libs/shared/enums/TagType';\nimport { BaseObject, BasePaginatedCollection, Tag, VideoTypes } from 'libs/shared/interfaces';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport styles from './video-details.scss';\n\nconst namespace = 'shared.videoDetailsV2';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface CommaListProps {\n label: string;\n items: BasePaginatedCollection<BaseObject>;\n className?: string;\n}\n\nfunction CommaList(props: CommaListProps): React.ReactElement {\n const { label, items, className } = props;\n\n const hasItems = items && items.data && items.data.length;\n\n if (!hasItems)\n return <></>;\n\n const commaSeperated = items.data.map(i => i.name).join(', ');\n\n return (\n <div className={className}>{label}: {commaSeperated}</div>\n );\n}\n\nfunction DetailsSection(props: VideoDetailsWithScrollbarV2Props): React.ReactElement {\n const { video } = props;\n\n if (!VideoHelper.isVideo(video) && !VideoHelper.isClip(video))\n return <></>;\n\n const parentVideo = VideoHelper.getParentVideo(video);\n\n return (\n <div className={video.description ? 'col-md-5 ps-md-3 pt-3 pt-md-0' : 'col-12'}>\n <h2 className='h6 mb-1'><Text phrase='details' /></h2>\n {!!parentVideo.productionYear && (\n <div className='mb-1'>\n <Text phrase='productionYear' options={{ year: parentVideo.productionYear }} />\n </div>\n )}\n <CommaList\n label={getPhrase('productionCompanies', { smartCount: parentVideo.productionCompanies?.data?.length })}\n items={parentVideo.productionCompanies}\n className='mb-1'\n />\n <CommaList\n label={getPhrase('distributors', { smartCount: parentVideo.distributors?.data?.length })}\n items={parentVideo.distributors}\n className='mb-1'\n />\n <CommaList\n label={getPhrase('producers', { smartCount: parentVideo.producers?.data?.length })}\n items={parentVideo.producers}\n className='mb-1'\n />\n <CommaList\n label={getPhrase('directors', { smartCount: parentVideo.directors?.data?.length })}\n items={parentVideo.directors}\n className='mb-1'\n />\n {!!parentVideo.dateBroadcast && (\n <div className='mb-1'>\n <Text phrase='dateBroadcast' options={{ date: DateHelper.format(parentVideo.dateBroadcast, 'DD/MM/YYYY') }} />\n </div>\n )}\n {!!parentVideo.channel && (\n <div className='mb-1'>\n <Text phrase='channel' options={{ channel: parentVideo.channel.name }} />\n </div>\n )}\n {!!(!video._isClickViewCurated?.value && video.dateCreated) && (\n <div className='mb-1'>\n <Text phrase='dateUploaded' options={{ date: DateHelper.format(video.dateCreated, 'DD/MM/YYYY') }} />\n </div>\n )}\n </div>\n );\n}\n\ninterface VideoDetailsWithScrollbarV2Props {\n video: VideoTypes;\n getTagAppLink?: (tag: Tag) => Core.AppLink;\n onLaunchImmersiveReader?: () => void;\n onExitImmersiveReader?: () => void;\n maxHeight?: number;\n suppressInteractivity?: boolean;\n hideTags?: boolean;\n headingRef?: React.MutableRefObject<Map<PlayPageAnchor, HTMLElement>>;\n}\n\nexport function VideoDetailsWithScrollbarV2(props: VideoDetailsWithScrollbarV2Props): React.ReactElement {\n const { video, maxHeight = MINIMUM_GLANCE_HEIGHT } = props;\n\n const parentVideo = VideoHelper.getParentVideo(video);\n\n const showDescription = !!props.video.description;\n\n const showDetails = (\n hasPPDD(props.video) ||\n !!parentVideo.productionYear ||\n !!parentVideo.dateBroadcast ||\n !!parentVideo.channel ||\n !!(video.dateCreated && !video._isClickViewCurated?.value)\n );\n\n if (!showDescription && !showDetails)\n return <></>;\n\n function getTags(): Tag[] {\n if (props.hideTags || VideoHelper.isInteractive(props.video) || !props.video.tags?.data?.length)\n return null;\n\n return props.video.tags?.data?.filter(tag => tag.tagType === TagType.Normal);\n }\n const tags = getTags();\n\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <section\n id={PlayPageAnchor.VideoDetails}\n ref={el => {\n (el && props.headingRef?.current) && props.headingRef.current.set(PlayPageAnchor.VideoDetails, el);\n }}\n className='play-page-section'\n >\n <div>\n <h2 className='h5 mb-2'> <Text phrase='heading' /></h2>\n </div>\n <div className='rounded border p-3 position-relative'>\n <Scrollbars autoHeight autoHeightMax={maxHeight}>\n <div className='row g-0'>\n {showDescription && (\n <div className={showDetails ? `${styles.descriptionBorder} pe-3 col-md-7` : 'col-12'}>\n <div className='d-flex align-items-center'>\n <h2 className='h6 mb-1'>\n <Text phrase='description' />\n </h2>\n <ImmersiveReader\n text={video.description}\n title={video.name}\n className='ps-2'\n onLaunch={props.onLaunchImmersiveReader}\n onExit={props.onExitImmersiveReader}\n analyticsOptions={{\n location: LocationContext.PlayPage,\n entity: EntityType.Video,\n actionType: UserAction.Click,\n descriptor: ClickDescriptor.LaunchImmersiveReader\n }}\n analyticsData={{ id: video.id, type: 'description' }}\n />\n </div>\n <p className='mb-0' dangerouslySetInnerHTML={{ __html: LinkifyHelper.linkifyText(props.video.description, { nl2br: true }) }} />\n </div>\n )}\n\n {showDetails && (\n <DetailsSection {...props} />\n )}\n </div>\n\n {!!tags?.length && (\n <div className='mt-3'>\n <h2 className='h6 mb-1'><Text phrase='normalTags' /></h2>\n <TagList\n tags={tags}\n {...TagHelper.getTagActionProps(props.getTagAppLink, null, props.suppressInteractivity)}\n className='mt-1'\n />\n </div>\n )}\n\n {VideoHelper.isBroadcast(props.video) && <CopyrightDisclaimer placement='bottom-start' className='d-flex justify-content-start mt-2 mb-n1' />}\n\n </Scrollbars>\n </div>\n </section>\n </LanguageNamespaceContext.Provider>\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 { Core } from 'libs/common/backbone/index';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ThumbnailText } from 'libs/shared/components/thumbnails/thumbnail-text/ThumbnailText';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { FixedWidgetItemProps } from 'libs/shared/components/widgets/items/FixedWidgetItemProps';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { CanFavouriteFunc, FavouriteFunc, InteractiveMetadata, YearGroup } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.interactiveWidgetItemV2';\n\nexport interface InteractiveWidgetItemV2Props extends FixedWidgetItemProps<InteractiveMetadata> {\n imageCdnUrl: string;\n questionsAppLink: Core.AppLink;\n setFavourite?: FavouriteFunc;\n canFavourite?: CanFavouriteFunc;\n yearGroups: YearGroup[];\n isPlugin: boolean;\n}\n\nexport const InteractiveWidgetItemV2 = React.memo(function(props: InteractiveWidgetItemV2Props): JSX.Element {\n const { data: interactive, thumbnailSize, preloadImage } = props;\n\n const questionsAppLink: Core.AppLink = {\n ...props.questionsAppLink,\n args: [props.data.id]\n };\n\n const questionsNumber = interactive._timepoints?.value?.length;\n\n return (\n <div className={`flex-shrink-0 px-1 col-6 col-sm-4`}>\n <VideoThumbnail\n type='static'\n textPosition={ThumbnailTextPosition.Independent}\n video={interactive}\n appLink={props.getAppLink(interactive)}\n imageOptions={{ size: thumbnailSize }}\n preload={preloadImage}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n hideDuration={false}\n imageCdnUrl={props.imageCdnUrl}\n isPlugin={props.isPlugin}\n />\n\n <div className='mt-2'>\n <ThumbnailText\n {...props}\n video={interactive}\n appLink={props.getAppLink(interactive)}\n />\n </div>\n\n <div className='mt-1'>\n <AppLink appLink={questionsAppLink} className='cursor-pointer'>\n <Text namespace={namespace} phrase='previewQuestions' options={{ count: questionsNumber, smartCount: questionsNumber }}/>\n </AppLink>\n </div>\n\n </div>\n );\n});\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { FixedWidget } from 'libs/shared/components/widgets/fixed-widget';\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\nimport { CanFavouriteFunc, Clip, FavouriteFunc, Interactive, InteractiveMetadata, Video, YearGroup } from 'libs/shared/interfaces';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { InteractiveWidgetItemV2, InteractiveWidgetItemV2Props } from './InteractiveWidgetItemV2';\n\nconst namespace = 'shared.playPageInteractivesV2';\n\ninterface PlayPageInteractivesProps {\n canViewInteractives: boolean;\n video: Video | Clip;\n interactives: InteractiveMetadata[];\n imageCdnUrl: string;\n analyticsData: HashObject;\n yearGroups: YearGroup[];\n setFavourite: FavouriteFunc;\n canFavourite: CanFavouriteFunc;\n isPlugin: boolean;\n headingRef?: React.MutableRefObject<Map<PlayPageAnchor, HTMLElement>>;\n}\n\nexport function PlayPageInteractives(props: PlayPageInteractivesProps): JSX.Element {\n if (!props.canViewInteractives || !props.interactives?.length)\n return <></>;\n\n function getAppLink() {\n if (VideoHelper.isVideo(props.video))\n return {\n action: Actions.Videos.VIDEO_INTERACTIVES,\n application: AppChannels.VIDEOS,\n args: [ props.video.id, TextHelper.slugify(props.video.name) ]\n };\n\n return {\n action: Actions.Clips.CLIP_INTERACTIVES,\n application: AppChannels.CLIPS,\n args: [ props.video.id, TextHelper.slugify(props.video.name) ]\n };\n }\n\n const title = LanguageService.getPhrase(namespace, 'interactives', { count: props.interactives.length });\n \n return (\n <section className='play-page-section'\n id={PlayPageAnchor.Interactives}\n ref={el => {\n (el && props.headingRef?.current) && props.headingRef.current.set(PlayPageAnchor.Interactives, el);\n }}\n >\n <FixedWidget<InteractiveWidgetItemV2Props>\n name={title}\n contents={WidgetContents.InteractivesV2}\n collection={props.interactives}\n prefetched\n getChildAppLink={(interactive: Interactive) => {\n return {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.VIEW_INTERACTIVE,\n args: [ interactive.id, TextHelper.slugify(interactive.name) ]\n };\n }}\n appLink={getAppLink()}\n childComponent={InteractiveWidgetItemV2}\n extraChildComponentProps={{\n yearGroups: props.yearGroups,\n setFavourite: props.setFavourite,\n canFavourite: props.canFavourite,\n imageCdnUrl: props.imageCdnUrl,\n questionsAppLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.PREVIEW_QUESTIONS\n },\n isPlugin: props.isPlugin\n }}\n analyticsData={props.analyticsData}\n />\n </section>\n );\n}","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 { EntityType, LocationContext, SignUpDescriptors, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { FixedWidget } from 'libs/shared/components/widgets/fixed-widget';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { Clip, Link, Resource, Video } from 'libs/shared/interfaces';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\nimport { DownloadHelper } from 'libs/shared/utils/DownloadHelper';\n\nimport { ResourceWidgetItemV2, ResourceWidgetItemV2Props } from './ResourceWidgetItemV2';\n\nconst namespace = 'shared.playPageResources';\n\nfunction getResources(\n video: Video,\n isLearner: boolean\n): Array<Resource | Link> {\n const resources = video.resources?.data ?? [];\n const links = video.links?.data ?? [];\n\n if (!isLearner)\n return [ ...resources, ...links ];\n\n const filteredResources = resources.filter(r => {\n return [ 'additional-materials', 'student-activity' ].includes(r.metadata?.resourceType);\n });\n\n return [ ...filteredResources, ...links ];\n}\n\ninterface PlayPageResourcesProps {\n video: Video | Clip;\n imageCdnUrl: string;\n canViewResources: boolean;\n getAppLink: (resource: Resource) => Core.AppLink;\n analyticsData: HashObject;\n resourceThumbnailFallbackUrl: string;\n headingRef?: React.MutableRefObject<Map<PlayPageAnchor, HTMLElement>>;\n}\n\nexport function PlayPageResources(props: PlayPageResourcesProps): JSX.Element {\n const { hasPermissions } = usePermissions();\n\n function onClickDownload(resource: Resource): void {\n DownloadHelper.downloadResource(\n resource,\n props.analyticsData,\n { location: LocationContext.PlayPage, actionType: UserAction.Download, entity: EntityType.Resource }\n );\n }\n\n const resources = getResources(props.video, hasPermissions(PermissionName.StudentExperience));\n const title = LanguageService.getPhrase(namespace, 'resources', { count: resources.length });\n\n if (!resources.length)\n return <></>;\n\n return (\n <section\n id={PlayPageAnchor.Resources}\n className='play-page-section'\n ref={el => {\n (el && props.headingRef?.current) && props.headingRef.current.set(PlayPageAnchor.Resources, el);\n }}\n >\n <FixedWidget<ResourceWidgetItemV2Props>\n name={title}\n contents={WidgetContents.PlayPageResourcesV2}\n collection={resources}\n prefetched\n childComponent={ResourceWidgetItemV2}\n extraChildComponentProps={{\n imageCdnUrl: props.imageCdnUrl,\n imageErrorFallbackUrl: props.resourceThumbnailFallbackUrl,\n actionBehaviour: props.canViewResources ? 'normal' : 'public',\n location: 'play-page',\n titlePosition: 'below',\n onClickDownload: props.canViewResources ? onClickDownload : null\n }}\n getChildAppLink={props.getAppLink}\n analyticsOptions={(() => {\n if (props.canViewResources)\n return {};\n \n return {\n workflowPhase: WorkflowPhase.Start,\n descriptor: SignUpDescriptors.SignUp\n };\n })()}\n analyticsData={props.analyticsData}\n />\n </section>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"imageStyle\":\"bYRn8\",\"item\":\"CjuxU\",\"dashboard\":\"IuRN0\",\"playPage\":\"VdJvp\",\"aspectRatio\":\"QK8Jh\",\"outerContainer\":\"eiC_H\",\"innerContainer\":\"huIRg\",\"actions\":\"FsIJm\",\"titleBelow\":\"DpeSr\",\"thumbnailContainer\":\"ZbalL\",\"titleAbove\":\"PwOSX\",\"teacherPack\":\"ZHAEj\",\"text\":\"k3ei6\",\"hoverState\":\"BLrWL\",\"atomGuide\":\"Qz8JE\",\"studentActivity\":\"qNspk\",\"additionalMaterials\":\"R0huw\",\"userUploaded\":\"H_zGf\",\"imageTypeResource\":\"AgeLb\",\"download\":\"DKneu\"};","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, EntityType, UserAction } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { ResourceThumbnail } from 'libs/shared/components/resource-thumbnail/ResourceThumbnail';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { TitleSubText } from 'libs/shared/components/title-sub-text/TitleSubText';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { TypeBadge } from 'libs/shared/components/type-badge/TypeBadge';\nimport { FixedWidgetItemProps } from 'libs/shared/components/widgets/items/FixedWidgetItemProps';\nimport { SeoConstants } from 'libs/shared/constants/SeoConstants';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ResourceFileType } from 'libs/shared/enums/ResourceFileType';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Link, Resource, ResourceType } from 'libs/shared/interfaces';\nimport { ImageOptions } from 'libs/shared/utils/ImageHelper';\nimport { MasterTypeHelper } from 'libs/shared/utils/MasterTypeHelper';\nimport { ResourceHelper } from 'libs/shared/utils/ResourceHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './resource-widget-item.scss';\n\nfunction getColour(resourceType?: ResourceType): string {\n switch (resourceType) {\n case 'atom-guide':\n return styles.atomGuide;\n case 'student-activity':\n return styles.studentActivity;\n case 'teacher-pack':\n return styles.teacherPack;\n case 'additional-materials':\n return styles.additionalMaterials;\n default:\n return styles.userUploaded;\n }\n}\n\nexport function useCanPreviewResource(data: Resource | Link, actionBehaviour: 'normal' | 'public'): boolean {\n const breakpoints = useBreakpoints();\n\n /**\n * When viewing publicly, the resource applink will\n * prompt the user to sign-up (not preview the underlying resource)\n */\n if (actionBehaviour === 'public')\n return true;\n\n if (breakpoints.xs || breakpoints.sm)\n return false;\n\n if (data.type !== 'resource')\n return false;\n \n // Require metadata\n if (!('metadata' in data))\n return false;\n\n // We can preview images\n if (data.metadata.type === ResourceFileType.Image)\n return true;\n\n // If we are a pdf and have a url\n if (data.metadata.type === ResourceFileType.Pdf)\n return !!data.url;\n\n // If we have a pdf assoc\n return !!data.pdf?.url;\n}\n\ninterface ResourceTheme {\n containerClass?: string;\n thumbnailContainerClass?: string;\n}\n\nexport interface ResourceTileProps {\n data: Resource | Link;\n imageCdnUrl: string;\n imageErrorFallbackUrl?: string;\n theme?: ResourceTheme;\n\n titlePosition: 'above' | 'below' | 'none';\n hideTypeBadge?: boolean;\n onClickDownload?: (resource: Resource) => void;\n applyHoverState?: boolean;\n preloadImage: boolean;\n actionBehaviour?: 'normal' | 'public';\n dynamicRatioImageOptions?: ImageOptions;\n}\n\nResourceTileV2.defaultProps = {\n preloadImage: true,\n actionBehaviour: 'normal'\n};\n\n/**\n * This component intentionally doesn't contain an appLink/download link\n * so that the resource download behaviour can be handled differently depending\n * on where this is rendered (e.g. primary play page vs embedded player)\n */\nexport function ResourceTileV2(props: ResourceTileProps): JSX.Element {\n let metadata = null;\n\n if ('metadata' in props.data) {\n metadata = props.data.metadata;\n }\n\n const isResource = MasterTypeHelper.isType<Resource>(props.data, MasterType.Resource);\n\n function getInnerContainerClass(resourceType: ResourceType): string {\n let baseClass = `\n d-flex flex-column align-items-center justify-content-end rounded-3 h-100\n position-relative ${getColour(resourceType)} ${styles.innerContainer}`;\n\n if (props.theme?.containerClass) {\n baseClass += ` ${props.theme.containerClass}`;\n } else {\n baseClass += ` pt-3 px-3`;\n }\n\n if (props.applyHoverState) {\n baseClass += ` ${styles.hoverState}`;\n }\n\n return baseClass;\n }\n\n function onDownload() {\n if (!MasterTypeHelper.isResource(props.data))\n return;\n\n if (typeof props.onClickDownload === 'function') {\n props.onClickDownload(props.data);\n }\n }\n\n return (\n <>\n <div className={styles.aspectRatio}>\n <div className={styles.outerContainer}>\n <div className={getInnerContainerClass(metadata?.resourceType)}>\n {props.titlePosition === 'above' && (\n <Tooltip title={props.data.name}>\n <h3 className={`text-center text-break h5 mb-3 ${styles.text}`}>\n <span className='clamp-1'>{props.data.name}</span>\n </h3>\n </Tooltip>\n )}\n\n <div className={`\n ${props.theme?.thumbnailContainerClass ?? ''} w-75 overflow-hidden \n ${styles.thumbnailContainer} ${props.titlePosition === 'above' ? styles.titleAbove : ''} \n ${styles.imageStyle}\n `}>\n <ResourceThumbnail\n resource={props.data}\n imageCdnUrl={props.imageCdnUrl}\n imageErrorFallbackUrl={props.imageErrorFallbackUrl}\n preloadImage={props.preloadImage}\n dynamicRatioImageOptions={props.dynamicRatioImageOptions}\n />\n </div>\n\n {isResource && props.onClickDownload && props.actionBehaviour === 'normal' && (\n <div className={styles.actions}>\n <DivButton\n onClick={e => {\n e.preventDefault();\n e.stopPropagation();\n onDownload();\n }}\n className={`${styles.download} d-flex align-items-center justify-content-center`}\n >\n <SvgContainer svgName={cvSvgLibrary.Download} />\n </DivButton>\n </div>\n )}\n\n {!props.hideTypeBadge && isResource && (\n <TypeBadge typeId={MasterType.Resource} />\n )}\n </div>\n </div>\n </div>\n {props.titlePosition === 'below' && (\n <div className={`mt-1 ${styles.titleBelow}`}>\n {(\n MasterTypeHelper.isType<Resource>(props.data, MasterType.Resource) &&\n !!props.data?.metadata?.resourceType\n ) && (\n <TitleSubText>\n {ResourceHelper.getResourceTypeName(props.data.metadata.resourceType)}\n </TitleSubText>\n )}\n\n <h3 className='h6 clamp-2'>\n {props.data.name}\n </h3>\n </div>\n )}\n </>\n );\n}\n\nexport interface ResourceWidgetItemV2Props extends ResourceTileProps, FixedWidgetItemProps<Resource | Link> {\n location: 'play-page' | 'dashboard';\n}\n\nexport const ResourceWidgetItemV2 = React.memo(function(props: ResourceWidgetItemV2Props): JSX.Element {\n // Mobile is not allowed to preview\n const canPreview = useCanPreviewResource(props.data, props.actionBehaviour);\n\n function getLocationClass(): string {\n if (props.location === 'play-page')\n return styles.playPage;\n\n return styles.dashboard;\n }\n\n const analyticsData = { ...props.analyticsData, ...props.data };\n\n const analyticsOptions: AnalyticsOptions = {\n ...props.analyticsOptions,\n actionType: UserAction.Click,\n entity: props.data.typeId === MasterType.Resource ? EntityType.Resource : EntityType.Link\n };\n\n function logAction(): void {\n AnalyticsHelper.logUserAction(analyticsData, analyticsOptions);\n }\n\n const tileProps: ResourceTileProps = {\n ...props,\n // Apply the hover state if we have a url or the resource can be previewed\n applyHoverState: canPreview || !!props.data.url\n };\n\n return (\n <div className={`px-1 flex-shrink-0 ${styles.item} ${getLocationClass()} ${SeoConstants.RESOURCE_ITEM_SELECTOR}`}>\n {(() => {\n const className = `d-block no-decoration`;\n\n // Handle resource links\n if (props.data.type === 'link') {\n return (\n <a href={props.data.url} target='_blank' className={className} onClick={logAction}>\n <ResourceTileV2 {...tileProps} />\n </a>\n );\n }\n\n if (canPreview) {\n /**\n * Previewing resources in a public context will always display the sign-up popup, so there \n * will never be a full URL. For SEO purposes, we deliberately use a span over an anchor\n * to ensure we're not creating self-referencing elements that will burn crawl budget.\n */\n if (props.actionBehaviour === 'public') {\n return (\n <div className={`${className} cursor-pointer d-inline`} onClick={() => {\n logAction();\n AppLinkHelper.trigger(props.getAppLink(props.data));\n }}>\n <ResourceTileV2 {...tileProps} />\n </div>\n );\n }\n\n return (\n <AppLink\n appLink={props.getAppLink(props.data)}\n className={className}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n >\n <ResourceTileV2 {...tileProps} />\n </AppLink>\n );\n }\n\n // URLs cannot be previewed\n if (props.data.url) {\n return (\n <a href={props.data.url} className={className} onClick={logAction}>\n <ResourceTileV2 {...tileProps} />\n </a>\n );\n }\n\n // Theres no url, so don't render an <a>\n return (\n <div className={className}>\n <ResourceTileV2 {...tileProps} />\n </div>\n );\n })()}\n </div>\n );\n});","// extracted by mini-css-extract-plugin\nexport default {\"itemsWrapper\":\"m6mGm\",\"anchorWrapper\":\"QptZj\",\"default\":\"_AZa8\",\"selectedItem\":\"Nuiel\",\"disabled\":\"WIzWJ\",\"floatIcon\":\"ARudn\",\"arrowIcon\":\"tEF5Q\",\"listIcon\":\"Ql2wi\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { ScrollHelper } from 'libs/common/backbone/utils/ScrollHelper';\n\nimport { EntityType, HashObject, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport styles from './table-of-contents-list.scss';\n\nexport interface TableOfContentsItem<T=string> {\n name: string;\n id: T;\n}\n\ninterface TableOfContentsProps<T> {\n items: TableOfContentsItem<T>[];\n activeId: string;\n appLink?: Core.AppLink;\n analyticsData?: HashObject;\n setControlledId: (arg: string) => void;\n // set to true if the TOC is controlled by a local state rather than query params\n localState?: boolean;\n getAppLink?: (args: TableOfContentsItem<T>) => Core.AppLink;\n onItemClick?: (args: TableOfContentsItem<T>) => void;\n}\n\nexport function TableOfContentsList<T extends string>(props: TableOfContentsProps<T>): JSX.Element {\n const analyticsOptions = {\n actionType: UserAction.Click,\n entity: EntityType.Widget,\n location: LocationContext.TableOfContents\n };\n\n return (\n <div className={`${styles.itemsWrapper}`}>\n {props.items.map((item, idx) => {\n if (props.localState) {\n return (\n <DivButton\n key={item.id}\n className={`${styles.anchorWrapper} ${props.activeId === item.id ? styles.selectedItem : ''}`}\n onClick={() => {\n ScrollHelper.preventScrollTop();\n props.setControlledId(item.id);\n\n props.onItemClick?.(item);\n }}\n >\n <div className={`${!props.activeId && idx === 0 ? styles.default : ''} `}>\n {item.name}\n </div>\n </DivButton>\n );\n }\n\n return (\n <AppLink\n key={item.id}\n appLink={props.getAppLink(item)}\n appLinkOptions={{ replace: true }}\n className={`${styles.anchorWrapper} ${props.activeId === item.id ? styles.selectedItem : ''}`}\n onClick={() => {\n ScrollHelper.preventScrollTop();\n props.setControlledId(item.id);\n\n props.onItemClick?.(item);\n }}\n analyticsData={{\n ...props.analyticsData,\n id: item.id,\n name: item.name\n }}\n analyticsOptions={analyticsOptions}\n >\n <div className={`${!props.activeId && idx === 0 ? styles.default : ''} `}>\n {item.name}\n </div>\n </AppLink>\n );\n })}\n </div>\n );\n}","import React from 'react';\n\ntype TableOfContentsActiveOption = {\n setActiveId: (id: string) => void;\n headingElements: Element[];\n controlledId?: string;\n setControlledId?: (arg: string) => void;\n}\n\nlet timer: number;\n\nexport const useTableOfContentsActiveHeading = (\n { setActiveId, headingElements, controlledId, setControlledId }: TableOfContentsActiveOption\n) => {\n const scrollPositionRef = React.useRef(0);\n\n React.useEffect(() => {\n const callback = (headings: IntersectionObserverEntry[]) => {\n headings.forEach(heading => {\n if (controlledId) {\n setActiveId(controlledId);\n // can use scrollEnd event when the new event type is supported\n timer = window.setTimeout(() => {\n setControlledId('');\n }, 800);\n return;\n }\n if (heading.isIntersecting) {\n setActiveId(heading.target.id);\n scrollPositionRef.current = window.scrollY;\n } else {\n const scrollDistance = scrollPositionRef.current - window.scrollY;\n const isScrollingUp = scrollDistance > 0;\n const curIndex = headingElements.findIndex(h => h.id === heading.target.id);\n const prevHeading = headingElements[curIndex - 1];\n if (isScrollingUp && prevHeading?.id) {\n setActiveId(prevHeading?.id);\n }\n }\n });\n };\n\n const observer = new IntersectionObserver(callback, {\n // rootMargin top: same as the cv-nav-height\n rootMargin: '-67px 0px -80% 0px'\n });\n\n headingElements.forEach(element => observer.observe(element));\n\n return () => {\n timer && window.clearTimeout(timer);\n observer.disconnect();\n };\n }, [ setActiveId, headingElements.length, controlledId ]);\n};\n\n","import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, EntityType, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { Resource } from '../interfaces';\n\nlet downloadRef: HTMLIFrameElement = null;\n\nexport const DownloadHelper = {\n getVideoDownloadUrl(downloadProxyUrl: string, token: string): string {\n return UrlHelper.safeUrlConcat(UrlHelper.makeHttps(downloadProxyUrl), `/download?token=${token}`);\n },\n\n downloadResource(\n resource: Resource,\n analyticsData: HashObject,\n analyticsOptions: AnalyticsOptions\n ): void {\n let iframe = downloadRef;\n\n if (!downloadRef) {\n iframe = downloadRef = document.createElement('iframe');\n document.body.appendChild(iframe);\n\n iframe.style.display = 'none';\n }\n\n iframe.src = resource.url;\n\n AnalyticsHelper.logUserAction({\n id: resource?.id,\n name: resource?.name,\n resourceType: resource?.metadata?.resourceType,\n ...analyticsData\n }, {\n actionType: UserAction.Download,\n entity: EntityType.Resource,\n workflowPhase: WorkflowPhase.Complete,\n ...analyticsOptions\n });\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"qA4yj\",\"aside\":\"j28IY\",\"collapse\":\"sFoPk\",\"iconContainer\":\"PYyBV\",\"arrowIcon\":\"MTodB\",\"listIcon\":\"W76p8\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { PortalHelper } from 'libs/common/react/utils/PortalHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, HashObject, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { TableOfContentsList } from 'libs/shared/components/table-of-contents-list/TableOfContentsList';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { PLAY_PAGE_TOC_PORTAL_ID } from 'shared/layouts/teacher-layout/TeacherLayoutComponent';\n\nimport styles from './table-of-contents.scss';\n\nconst namespace = 'shared.playPage';\n\nexport interface TableOfContentsItem {\n name: string;\n id: PlayPageAnchor;\n}\n\ninterface TableOfContentsProps {\n items: TableOfContentsItem[];\n activeId: string;\n appLink?: Core.AppLink;\n analyticsData?: HashObject;\n setControlledId: (arg: string) => void;\n isExpanded: boolean;\n setIsExpanded: (arg: boolean) => void;\n showInSide: boolean;\n}\n\nfunction TableOfContentsIcon(props: TableOfContentsProps) {\n function logUserAction() {\n const analyticsOptions = {\n actionType: !props.isExpanded ? UserAction.Open : UserAction.Hide,\n entity: EntityType.TableOfContents,\n location: LocationContext.PlayPage\n };\n\n AnalyticsHelper.logUserAction(props.analyticsData, analyticsOptions);\n }\n\n function onClickIcon() {\n props.setIsExpanded(!props.isExpanded);\n logUserAction();\n }\n\n return (\n <div className='d-flex justify-content-end'>\n <div className={styles.container}>\n <div className={`${styles.iconContainer}`} >\n <IconButton\n className={`btn btn-outline-dark ${styles.listIcon}`}\n svgName={cvSvgLibrary.TableOfContents}\n onClick={onClickIcon}\n />\n \n <IconButton\n className={`btn btn-outline-dark ${styles.arrowIcon}`}\n svgName={!props.isExpanded ? cvSvgLibrary.ExpandLeft : cvSvgLibrary.CollapseRight}\n onClick={onClickIcon}\n />\n </div>\n </div>\n </div>\n );\n}\n\nfunction TableOfContents(props: TableOfContentsProps) {\n function logUserAction() {\n const analyticsOptions = {\n actionType: UserAction.Hide,\n entity: EntityType.TableOfContents,\n location: LocationContext.PlayPage\n };\n\n AnalyticsHelper.logUserAction(props.analyticsData, analyticsOptions);\n }\n\n function getAppLink(item: any): Core.AppLink {\n const currentAppLink = Core.AppLinkHelper.getCurrentAppLink();\n \n const params: HashObject = currentAppLink.params\n ? { ...(currentAppLink.params as HashObject) }\n : {};\n\n params.tocId = item.id;\n\n return {\n ...currentAppLink,\n params\n };\n }\n\n function onClickTableOfContentsHeading() {\n if (!props.showInSide) {\n // in mobile version, collapse once user hit the TOC item\n props.setIsExpanded(false);\n }\n }\n\n return (\n <div className={!props.showInSide ? 'd-inline-flex gap-1' : ''}>\n <aside className={`${styles.aside} position-relative ${!props.showInSide ? 'px-3 pt-3 pb-2 border border-dark rounded-1 bg-white' : 'pe-1 pt-1 '}`}>\n <div className={styles.container}>\n {props.showInSide && (\n <IconButton\n className={`btn position-absolute ${styles.collapse}`}\n svgName={cvSvgLibrary.CollapseRight}\n onClick={() => {\n props.setIsExpanded(false);\n logUserAction();\n }}\n />\n )}\n <h2 className='h5'><Text namespace={namespace} phrase='tocHeading' /></h2>\n \n <TableOfContentsList\n items={props.items}\n activeId={props.activeId}\n getAppLink={getAppLink}\n setControlledId={props.setControlledId}\n analyticsData={props.analyticsData}\n onItemClick={() => onClickTableOfContentsHeading()}\n />\n </div>\n \n </aside>\n {/* in mobile version, always show icon on the right */}\n {!props.showInSide && <TableOfContentsIcon {...props}/>}\n </div>\n );\n}\n\nexport function TableOfContentsContainer(props: TableOfContentsProps): JSX.Element {\n return (\n <>\n {PortalHelper.renderInPortalIfExists(\n props.isExpanded\n ? <TableOfContents {...props} />\n : <TableOfContentsIcon {...props}/>,\n document.getElementById(PLAY_PAGE_TOC_PORTAL_ID)\n )}\n </>\n );\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Clip, InteractiveMetadata, Resource } from 'libs/shared/interfaces';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\n\ninterface SectionHeadingOptions{\n clips: Clip[];\n interactives: InteractiveMetadata[];\n resources: Resource[];\n isPlayClipPage?: boolean;\n}\n\nconst namespace = 'shared.play';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport const PlayPageUtils = {\n getSectionHeading(id: PlayPageAnchor, options: SectionHeadingOptions) {\n switch (id) {\n case PlayPageAnchor.Resources:\n return getPhrase('resourcesHeading', { count: options.resources.length });\n\n case PlayPageAnchor.Clips:\n if (options.isPlayClipPage)\n return getPhrase('otherClipsHeading', { count: options.clips.length - 1 });\n return getPhrase('clipsHeading', { count: options.clips.length });\n\n case PlayPageAnchor.Interactives:\n return getPhrase('interactivesHeading', { count: options.interactives.length });\n\n case PlayPageAnchor.Video:\n return getPhrase('videoHeading');\n\n case PlayPageAnchor.VideoDetails:\n return getPhrase('videoDetailsHeading');\n\n case PlayPageAnchor.RelatedVideos:\n return getPhrase('upNextHeading');\n \n case PlayPageAnchor.CurriculumLinks:\n return getPhrase('curriculumLinksHeading');\n \n case PlayPageAnchor.ClippedFrom:\n return getPhrase('clippedFromHeading');\n\n default:\n return '';\n }\n }\n\n};","import React from 'react';\n\nimport { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\n\nimport { useShouldShowSideTableOfContents } from 'shared/views/play/v2/hooks/useShouldShowTableOfContents';\n\nconst PLAY_PAGE_TOC_EXPANDED = 'play-page-toc-expanded';\n\nexport function usePlayPageTableOfContent(tocId: string) {\n const showInSide = useShouldShowSideTableOfContents();\n\n const localValue = LocalStorageHelper.get(PLAY_PAGE_TOC_EXPANDED) !== false;\n const tocDefaultExpanded = !showInSide ? false : localValue;\n\n const [ controlledId, setControlledId ] = React.useState(tocId || '');\n const [ tableOfContentsActiveId, setTableOfContentsActiveId ] = React.useState<string>('');\n const [ tableOfContentsExpanded, setTableOfContentsExpanded ] = React.useState(tocDefaultExpanded);\n \n React.useEffect(() => {\n if (!showInSide) {\n // automatically collpase on mobile version\n setTableOfContentsExpanded(false);\n } else {\n setTableOfContentsExpanded(localValue);\n }\n }, [showInSide]);\n\n function onToggleTableOfContents() {\n setTableOfContentsExpanded(!tableOfContentsExpanded);\n LocalStorageHelper.set(PLAY_PAGE_TOC_EXPANDED, !tableOfContentsExpanded);\n }\n\n return {\n controlledId,\n setControlledId,\n tableOfContentsExpanded,\n tableOfContentsActiveId,\n setTableOfContentsActiveId,\n onToggleTableOfContents\n };\n}","import { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\n\nexport const PLAY_PAGE_SECTIONS_ORDER = [\n PlayPageAnchor.Video,\n PlayPageAnchor.CurriculumLinks,\n PlayPageAnchor.Resources,\n PlayPageAnchor.Interactives,\n PlayPageAnchor.Clips,\n PlayPageAnchor.VideoDetails,\n PlayPageAnchor.ClippedFrom,\n PlayPageAnchor.RelatedVideos\n];\n\nexport const PLAY_PAGE_SECTIONS_ORDER_NO_GLANCE = [\n PlayPageAnchor.Video,\n PlayPageAnchor.VideoDetails,\n PlayPageAnchor.CurriculumLinks,\n PlayPageAnchor.Resources,\n PlayPageAnchor.Interactives,\n PlayPageAnchor.Clips,\n PlayPageAnchor.ClippedFrom,\n PlayPageAnchor.RelatedVideos\n];","import React from 'react';\n\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\n\nimport { PLAY_PAGE_SECTIONS_ORDER, PLAY_PAGE_SECTIONS_ORDER_NO_GLANCE } from 'shared/constants/PlayPageSectionsOrder';\n\nexport function useSectionHeadings(hasGlance: boolean) {\n const headingRef = React.useRef<Map<PlayPageAnchor, HTMLElement>>(new Map());\n const headingElements = (hasGlance ? PLAY_PAGE_SECTIONS_ORDER : PLAY_PAGE_SECTIONS_ORDER_NO_GLANCE).map(id => {\n return headingRef.current.get(id);\n }).filter(Boolean);\n\n return { headingRef, headingElements };\n}","import { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\n\n// returns boolean value for if we should show the TOC on the side\nexport function useShouldShowSideTableOfContents(): boolean {\n const breakpoints = useBreakpoints();\n const shouldShowSideTableOfContents = breakpoints.lg || breakpoints.xl || breakpoints.xxl;\n return shouldShowSideTableOfContents;\n}","// extracted by mini-css-extract-plugin\nexport default {\"learningIntention\":\"MHM6O\",\"highlightPoi\":\"U7Q6x\"};"],"names":["PortalHelper","renderInPortalIfExists","component","portalContainer","createPortal","namespace","CONTAINER_HEIGHT","CopyrightDisclaimer","props","ref","isHovering","className","Text","phrase","Overlay","target","current","show","placement","overflowPlacement","document","documentElement","clientHeight","getBoundingClientRect","bottom","ClipWidgetItemV2","clip","data","thumbnailSize","preloadImage","getAppLink","mergedAudience","subjectPresentationAudiences","audiences","VideoThumbnail","type","textPosition","ThumbnailTextPosition","video","appLink","imageOptions","size","preload","analyticsData","analyticsOptions","setFavourite","canFavourite","imageCdnUrl","audience","hideDuration","isPlugin","ThumbnailText","PlayPageClips","canViewClips","clips","length","parentIsVideo","VideoHelper","title","LanguageService","count","id","PlayPageAnchor","el","headingRef","set","name","contents","WidgetContents","collection","prefetched","getChildAppLink","application","action","args","TextHelper","childComponent","extraChildComponentProps","yearGroups","getPhrase","CommaList","label","items","commaSeperated","map","i","join","DetailsSection","parentVideo","description","productionYear","options","year","smartCount","productionCompanies","distributors","producers","directors","dateBroadcast","date","DateHelper","channel","_isClickViewCurated","value","dateCreated","VideoDetailsWithScrollbarV2","maxHeight","showDescription","showDetails","tags","hideTags","filter","tag","tagType","TagType","getTags","autoHeight","autoHeightMax","ImmersiveReader","text","onLaunch","onLaunchImmersiveReader","onExit","onExitImmersiveReader","location","entity","actionType","descriptor","dangerouslySetInnerHTML","__html","LinkifyHelper","nl2br","TagList","TagHelper","getTagAppLink","suppressInteractivity","POI_LINK_LINE","useLearningIntentionMarkdown","hasGlanceData","useState","markdownHTML","setMarkdownHTML","useEffect","content","glance","learningIntention","replace","format","useHighlightPointOfInterest","pointOfInterest","shouldHighlight","useRef","onGlancePoiMouseOver","onGlancePoiMouseLeave","hoveredPoi","toString","classList","add","remove","addEventListener","removeEventListener","PointOfInterest","timeStamp","DurationHelper","poi","startTime","DivButton","key","onClick","onClickPoiItem","PointOfInterestList","pointsOfInterest","SCROLL_HEIGHT_MAX","ScrollbarWrapper","hideScrollbar","children","VideoAtAGlanceV2","learningIntentionMarkdownHTML","canViewGlance","onClickTag","time","setStartTime","InteractiveWidgetItemV2","interactive","questionsAppLink","questionsNumber","_timepoints","PlayPageInteractives","canViewInteractives","interactives","PlayPageResources","hasPermissions","resources","isLearner","links","filteredResources","r","includes","metadata","resourceType","getResources","imageErrorFallbackUrl","resourceThumbnailFallbackUrl","actionBehaviour","canViewResources","titlePosition","onClickDownload","resource","workflowPhase","SignUp","useCanPreviewResource","breakpoints","useBreakpoints","xs","sm","ResourceFileType","url","pdf","ResourceTileV2","isResource","MasterTypeHelper","MasterType","baseClass","getColour","theme","containerClass","applyHoverState","getInnerContainerClass","Tooltip","thumbnailContainerClass","ResourceThumbnail","dynamicRatioImageOptions","e","preventDefault","stopPropagation","SvgContainer","svgName","hideTypeBadge","TypeBadge","typeId","TitleSubText","ResourceHelper","defaultProps","ResourceWidgetItemV2","canPreview","logAction","AnalyticsHelper","tileProps","SeoConstants","href","AppLink","TableOfContentsList","item","idx","localState","activeId","ScrollHelper","setControlledId","onItemClick","appLinkOptions","timer","useTableOfContentsActiveHeading","setActiveId","headingElements","controlledId","scrollPositionRef","observer","IntersectionObserver","headings","forEach","heading","window","setTimeout","isIntersecting","scrollY","isScrollingUp","curIndex","findIndex","h","prevHeading","rootMargin","element","observe","clearTimeout","disconnect","downloadRef","DownloadHelper","getVideoDownloadUrl","downloadProxyUrl","token","downloadResource","iframe","createElement","body","appendChild","style","display","src","TableOfContentsIcon","onClickIcon","setIsExpanded","isExpanded","IconButton","TableOfContents","showInSide","currentAppLink","params","tocId","TableOfContentsContainer","getElementById","PlayPageUtils","getSectionHeading","isPlayClipPage","PLAY_PAGE_TOC_EXPANDED","usePlayPageTableOfContent","localValue","tocDefaultExpanded","tableOfContentsActiveId","setTableOfContentsActiveId","tableOfContentsExpanded","setTableOfContentsExpanded","onToggleTableOfContents","PLAY_PAGE_SECTIONS_ORDER","PLAY_PAGE_SECTIONS_ORDER_NO_GLANCE","useSectionHeadings","hasGlance","Map","get","Boolean","useShouldShowSideTableOfContents","lg","xl","xxl"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[671],{56520:(e,i,t)=>{t.d(i,{R0:()=>v,_N:()=>u,eR:()=>p});var a=t(23481),n=t(97395),o=t(20354),r=t(42617),s=t(4594),d=t(39151),c=t(31949),l=a.T.encloseNamespace("shared.hooks");function u(e,i,t,a){var o=n._.safeUrlConcat(e,"manage"),r=n._.safeUrlConcat(e,"exchange"),d=function(e,i,t){return n._.safeUrlConcat(e,"".concat(i,"/").concat(t))};switch(i){case s.E.Subject:return n._.safeUrlConcat(o,"subjects/presentations/".concat(a,"/classifications/").concat(t,"/edit"));case s.E.Video:return d(o,"videos",t);case s.E.Playlist:return d(o,"playlists",t);case s.E.Series:return d(o,"series",t);case s.E.Company:return d(o,"companies",t);case s.E.Interactive:return d(o,"interactives",t);case s.E.Clip:return d(o,"clips",t);case s.E.Category:return d(r,"categories",t)}}function p(){return l("openInCurationStudio")}function v(){var e,i,t=o.a.useBasicFetch(c.N.currentUser()),a=o.a.useBasicFetch((null===(e=t.data)||void 0===e?void 0:e.id)&&c.N.groups(null===(i=t.data)||void 0===i?void 0:i.id)).data,n=o.a.useBasicFetch(d.L.config()),s=[r.j.Curator,r.j.Content,r.j.Developer];return{openInCurationStudioLabel:p(),isUserCurator:s.some((function(e){return null==a?void 0:a.data.find((function(i){return i.name===e}))})),getOpenInCurationStudioLink:function(e,i,t){var a;return u(null===(a=n.data)||void 0===a?void 0:a.curatorUrl,e,i,t)}}}},70227:(e,i,t)=>{t.d(i,{c:()=>o});var a=t(97395),n=t(4594),o={getObjectUrl:function(e,i){var t=e.analyticsWebUrl;if(t){var o="";switch(i.typeId){case n.E.Video:o="/videos/".concat(i.id,"/overview");break;case n.E.Clip:o="/clips/".concat(i.id,"/overview");break;case n.E.Interactive:o="/interactives/".concat(i.id,"/overview")}if(o)return a._.safeUrlConcat(t,o)}}}},10671:(e,i,t)=>{t.d(i,{i:()=>A,_:()=>F});var a,n=t(20354),o=t(65858),r=t(16714);!function(e){e[e.AddToPlaylist=0]="AddToPlaylist",e[e.Share=1]="Share",e[e.EditVideo=2]="EditVideo",e[e.EditDetails=3]="EditDetails",e[e.Download=4]="Download",e[e.Delete=5]="Delete",e[e.ViewCurriculumLinks=6]="ViewCurriculumLinks",e[e.CreateClip=7]="CreateClip",e[e.CreateInteractive=8]="CreateInteractive",e[e.ViewUsage=9]="ViewUsage",e[e.AddToLibrary=10]="AddToLibrary",e[e.Approve=11]="Approve",e[e.ManageAccess=12]="ManageAccess",e[e.OpenInCurationStudio=13]="OpenInCurationStudio",e[e.OpenInLibraryEditor=14]="OpenInLibraryEditor",e[e.AddToMyVideos=15]="AddToMyVideos",e[e.ViewOriginalVideo=16]="ViewOriginalVideo",e[e.EditClip=17]="EditClip",e[e.EditInteractive=18]="EditInteractive",e[e.PreviewQuestions=19]="PreviewQuestions",e[e.ViewResults=20]="ViewResults",e[e.CopyInteractive=21]="CopyInteractive",e[e.PrintInteractive=22]="PrintInteractive",e[e.UnpublishInteractive=23]="UnpublishInteractive"}(a||(a={}));var s,d=t(39151),c=t(98064),l=t(31949),u=t(79967),p=t(56520),v=t(22902),y=t(15311),g=t(31908);!function(e){e[e.PlayPage=0]="PlayPage"}(s||(s={}));var I,f=t(26361),b=t(51855),m=t(23481),C=t(97395),E=t(28400),w=t(5960),V=t(4594),P=t(12754),T=t(70227),h=t(35223),O=t(14070),L=t(97291);function k(e){return k="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},k(e)}function S(e,i,t){return(i=function(e){var i=function(e,i){if("object"!=k(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=k(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==k(i)?i:i+""}(i))in e?Object.defineProperty(e,i,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[i]=t,e}var A,D=m.T.encloseNamespace("shared.utils"),N=(S(S(S(S(S(S(S(S(S(S(I={},a.Approve,(function(e){return{enabled:e.hasPermissions(r.C.ManageVideoAccess),svgName:h.vn.Check,order:10,name:D("approve"),button:!0,showButtonText:!0,appLink:{application:L.O.DEFAULT,action:O.e.Default.APPROVE_VIDEO,params:{objectId:e.video.id,objectTypeId:e.video.typeId}},analyticsOptions:{actionType:o.Vw.Click,descriptor:o.XX.Approve}}})),a.ManageAccess,(function(e){var i=f.l.hasCustomRestriction(e.video);return{enabled:e.hasPermissions(r.C.ManageVideoAccess),svgName:h.vn.Lock,order:90,name:D("manageAccess"),button:i,showButtonText:i,appLink:{application:L.O.DEFAULT,action:O.e.Default.MANAGE_ACCCESS,params:{objectId:e.video.id,objectTypeId:e.video.typeId}},analyticsOptions:{actionType:o.Vw.Click,descriptor:o.XX.ManageAccess},group:"manage"}})),a.ViewResults,(function(e){var i=!0,t=5;if(e.location===A.PlayPage){var a=e.breakpoints.xs||e.breakpoints.sm;i=!a,t=a?10:t}return{enabled:e.hasPermissions(r.C.ViewAnalyticsProduct)&&e.video.status!==w.X.Draft,types:[V.E.Interactive],order:t,svgName:h.vn.Chart,name:D("viewResults"),button:i,showButtonText:e.location===A.PlayPage&&i,href:T.c.getObjectUrl(e.config,e.video),openInNewTab:!0,analyticsOptions:{actionType:o.Vw.Click,descriptor:o.XX.ViewResults},group:"none"}})),a.AddToPlaylist,(function(e){var i=!g.M.isInteractive(e.video)||e.video.status!==w.X.Draft,t=10;if(i&&e.location===A.PlayPage){var a=e.breakpoints.xs||e.breakpoints.sm,n=e.breakpoints.md;g.M.isInteractive(e.video)?(i=!n&&!a,t=n||a?30:t):(i=!a,t=a?55:t)}var r=e.location===A.PlayPage&&i&&!g.M.isInteractive(e.video);return{enabled:!0,order:t,svgName:h.vn.AddToPlaylists,name:D("addToPlaylist"),button:i,showBorder:e.location===A.PlayPage&&i&&g.M.isInteractive(e.video),showButtonText:r,appLink:{application:L.O.PLAYLISTS,action:O.e.Playlists.ADD_TO_PLAYLIST,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Associate,descriptor:o.iF.Playlist,workflowPhase:o.eu.Start},group:"add"}})),a.Share,(function(e){var i=!0,t=20;if(e.location===A.PlayPage){var a=e.breakpoints.xs||e.breakpoints.sm,n=e.breakpoints.md;g.M.isInteractive(e.video)?(i=!n&&!a,t=n||a?5:t):(i=!a,t=a?5:t)}var r=e.location===A.PlayPage&&i&&!g.M.isInteractive(e.video);return{enabled:!g.M.isInteractive(e.video)||e.video.status!==w.X.Draft,order:t,svgName:h.vn.Share2,name:D("share"),button:i,showBorder:e.location===A.PlayPage&&i&&g.M.isInteractive(e.video),showButtonText:r,appLink:{application:L.O.DEFAULT,action:O.e.Default.SHARE,args:[e.video.id],params:{entityType:e.video.type}},analyticsOptions:{actionType:o.Vw.Share,workflowPhase:o.eu.Start,eventVersion:o.eq.V3},group:"none"}})),a.CreateClip,(function(e){return{enabled:!e.isPlugin,types:[V.E.Video],order:30,svgName:h.vn.Clip,name:D("createClip"),button:!1,appLink:{application:L.O.CLIPS,action:O.e.Clips.CREATE_CLIP,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Create,entity:o.py.Clip,workflowPhase:o.eu.Start},analyticsData:{video:e.analyticsData},group:"create"}})),a.CreateInteractive,(function(e){var i=!1,t=40;if(e.location===A.PlayPage){var a=e.breakpoints.xs||e.breakpoints.sm||e.breakpoints.md;i=!a,t=a?t:-10}return{enabled:!e.isPlugin,types:[V.E.Video,V.E.Clip],order:t,svgName:h.vn.CreateInteractive,name:D("createInteractive"),button:i,showButtonText:e.location===A.PlayPage&&i,appLink:{application:L.O.INTERACTIVES,action:g.M.isVideo(e.video)?O.e.Interactives.NEW_INTERACTIVE:O.e.Interactives.NEW_CLIP_INTERACTIVE,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Create,entity:o.py.Interactive,workflowPhase:o.eu.Start},analyticsData:{video:e.analyticsData},group:"create"}})),a.AddToMyVideos,(function(e){var i,t;return{enabled:g.M.isVideo(e.video)&&!!(null===(t=null===(i=e.video.libraries)||void 0===i?void 0:i.data)||void 0===t?void 0:t.find((function(e){return"exchange"===e.type}))),types:[V.E.Video],order:50,svgName:h.vn.AddVideo,name:D("addMyVideos"),button:!1,appLink:{application:L.O.DEFAULT,action:O.e.Default.ADD_VIDEO,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.WorkspaceAdd,workflowPhase:o.eu.Start},group:"add"}})),a.AddToLibrary,(function(e){var i,t;return{enabled:!e.hasPermissions(r.C.StudentExperience)&&(null===(i=e.video._canAddToLibrary)||void 0===i?void 0:i.value)&&(null===(t=e.requestLibraries)||void 0===t?void 0:t.length)&&(!g.M.isInteractive(e.video)||e.video.status!==w.X.Draft),order:60,svgName:h.vn.Library,name:D("addToLibrary"),button:!1,appLink:{application:L.O.LIBRARIES,action:O.e.Libraries.ADD_TO_LIBRARY,args:[e.video.id,e.video.typeId]},analyticsOptions:{actionType:o.Vw.Create,entity:o.py.LibraryRequest,workflowPhase:o.eu.Start},analyticsData:{video:e.analyticsData},group:"add"}})),a.EditVideo,(function(e){var i;return{enabled:null===(i=e.video._canUpdate)||void 0===i?void 0:i.value,types:[V.E.Video],order:70,svgName:h.vn.EditVideo,name:D("editVideo"),button:!1,href:C._.urlBuilder(C._.safeUrlConcat(e.config.cloudEditorUrl,"video/".concat(e.video.id)),{product:P.x.Primary}),openInNewTab:!0,analyticsOptions:{actionType:o.Vw.Click,entity:o.py.Video,descriptor:o.XX.EditVideo},group:"edit"}})),S(S(S(S(S(S(S(S(S(S(I,a.EditClip,(function(e){var i;return{enabled:null===(i=e.video._canUpdate)||void 0===i?void 0:i.value,types:[V.E.Clip],order:70,svgName:h.vn.EditVideo,name:D("editClip"),button:!1,appLink:{application:L.O.CLIPS,action:O.e.Clips.EDIT_CLIP,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Edit,workflowPhase:o.eu.Start},group:"edit"}})),a.EditDetails,(function(e){var i;return{enabled:null===(i=e.video._canUpdate)||void 0===i?void 0:i.value,types:[V.E.Video,V.E.Clip],order:80,svgName:h.vn.Edit,name:D("editDetails"),button:!1,appLink:g.M.isVideo(e.video)?{application:L.O.VIDEOS,action:O.e.Videos.EDIT_VIDEO,args:[e.video.id]}:{application:L.O.CLIPS,action:O.e.Clips.EDIT_CLIP_DETAILS,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Edit,workflowPhase:o.eu.Start},group:"edit"}})),a.ViewOriginalVideo,(function(e){var i,t,a=null;return g.M.isInteractive(e.video)&&(null===(i=e.video._parentClip)||void 0===i?void 0:i.id)&&(a={application:L.O.CLIPS,action:O.e.Clips.PLAY_CLIP,args:[e.video._parentClip.id,E.m.slugify(e.video._parentClip.name)]}),!g.M.isVideo(e.video)&&(null===(t=e.video._parentVideo)||void 0===t?void 0:t.id)&&(a={application:L.O.VIDEOS,action:O.e.Videos.PLAY_VIDEO,args:[e.video._parentVideo.id,E.m.slugify(e.video._parentVideo.name)]}),{enabled:!g.M.isVideo(e.video)&&g.M.canViewOriginalVideo(e.video)&&!!a,types:[V.E.Clip,V.E.Interactive],order:100,svgName:h.vn.Video,name:D("viewOriginalVideo"),button:!1,appLink:a,analyticsOptions:{actionType:o.Vw.Click,descriptor:o.XX.ViewOriginalVideo},group:"manage"}})),a.ViewUsage,(function(e){var i;return{enabled:e.hasPermissions(r.C.ViewAnalyticsProduct)&&(e.hasPermissions(r.C.ViewCustomerAnalytics)||(null===(i=e.video._canUpdate)||void 0===i?void 0:i.value)),types:[V.E.Clip,V.E.Video],order:110,svgName:h.vn.Chart,name:D("viewUsage"),button:!1,href:T.c.getObjectUrl(e.config,e.video),openInNewTab:!0,analyticsOptions:{actionType:o.Vw.Click,workflowPhase:o.eu.Complete,descriptor:o.XX.ViewUsage},group:"manage"}})),a.ViewCurriculumLinks,(function(e){return{enabled:!e.hasPermissions(r.C.StudentExperience)&&g.M.isVideo(e.video)&&e.video._hasCurriculumLinks,types:[V.E.Video],order:120,svgName:h.vn.Tag,name:D("viewCurriculumLinks"),button:!1,appLink:{application:L.O.VIDEOS,action:O.e.Videos.VIEW_CURRICULUM_LINKS,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Click,workflowPhase:o.eu.Complete,descriptor:o.XX.ViewCurriculumLinks},group:"manage"}})),a.Download,(function(e){var i;return{enabled:g.M.isVideo(e.video)&&(null===(i=e.video._canDownload)||void 0===i?void 0:i.value),types:[V.E.Video],order:130,svgName:h.vn.Download,name:D("download"),button:!1,appLink:{application:L.O.VIDEOS,action:O.e.Videos.DOWNLOAD_VIDEO,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Download,workflowPhase:o.eu.Start},group:"manage"}})),a.OpenInCurationStudio,(function(e){return{enabled:e.isUserCurator,order:140,svgName:h.vn.NewWindow,name:D("openInCurationStudio"),button:!1,href:(0,p._N)(e.config.curatorUrl,e.video.typeId,e.video.id),openInNewTab:!0,group:"administrative"}})),a.OpenInLibraryEditor,(function(e){var i,t,a,n,o=new Set(null===(i=e.requestLibraries)||void 0===i?void 0:i.filter((function(i){var t,a,n,o;return(null===(a=null===(t=i.owner)||void 0===t?void 0:t.id)||void 0===a?void 0:a.toString())===(null===(o=null===(n=e.currentUser)||void 0===n?void 0:n.customerId)||void 0===o?void 0:o.toString())})).map((function(e){var i;return null===(i=e.id)||void 0===i?void 0:i.toString()})));return{enabled:e.hasProduct(P.x.LibraryEditor)&&!!(null===(a=null===(t=e.video.libraries)||void 0===t?void 0:t.data)||void 0===a?void 0:a.find((function(e){var i;return o.has(null===(i=e.id)||void 0===i?void 0:i.toString())}))),order:145,svgName:h.vn.NewWindow,name:D("openInLibraryEditor"),button:!1,href:(n="videos",g.M.isClip(e.video)?n="clips":g.M.isInteractive(e.video)&&(n="interactives"),C._.safeUrlConcat(e.config.libraryEditorUrl,"/manage/libraries/".concat(n,"/").concat(e.video.id))),openInNewTab:!0,group:"administrative"}})),a.Delete,(function(e){var i,t={application:L.O.VIDEOS,action:O.e.Videos.DELETE_VIDEO,params:{ids:[e.video.id]}};return g.M.isClip(e.video)?t={application:L.O.CLIPS,action:O.e.Clips.DELETE_CLIP,args:[e.video.id]}:g.M.isInteractive(e.video)&&(t={application:L.O.INTERACTIVES,action:O.e.Interactives.DELETE_INTERACTIVE,args:[e.video.id]}),{enabled:null===(i=e.video._canUpdate)||void 0===i?void 0:i.value,order:150,svgName:h.vn.Delete,name:D("delete"),variant:"danger",button:!1,appLink:t,analyticsOptions:{actionType:o.Vw.Edit,workflowPhase:o.eu.Start},group:"delete"}})),a.PreviewQuestions,(function(e){return{enabled:e.location===A.VideoItem,types:[V.E.Interactive],order:83,svgName:h.vn.Search,name:D("previewInteractive"),button:!1,appLink:{application:L.O.INTERACTIVES,action:O.e.Interactives.PREVIEW_QUESTIONS,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Click,descriptor:o.XX.PreviewInteractiveVideo},group:"manage-interactives"}})),S(S(S(S(I,a.PrintInteractive,(function(e){var i,t=0;if(g.M.isInteractive(e.video)&&(i=!0),i&&e.location===A.PlayPage){var a=e.breakpoints.xs||e.breakpoints.sm;i=!a,t=a?80:t}return{enabled:!0,types:[V.E.Interactive],order:t,svgName:h.vn.Print,name:D("printAsWorksheet"),button:i,showButtonText:e.location===A.PlayPage,appLink:{application:L.O.INTERACTIVES,action:O.e.Interactives.PRINT_QUESTIONS,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Print,workflowPhase:o.eu.Start},group:"manage-interactives"}})),a.CopyInteractive,(function(e){return{enabled:!e.hasPermissions(r.C.StudentExperience),types:[V.E.Interactive],order:87,svgName:h.vn.Copy,name:D("copyInteractive"),button:!1,appLink:{application:L.O.INTERACTIVES,action:O.e.Interactives.COPY_INTERACTIVE,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Copy,workflowPhase:o.eu.Start},group:"manage-interactives"}})),a.EditInteractive,(function(e){var i=e.video.status===w.X.Draft,t=70;return e.location===A.PlayPage&&e.breakpoints.xs&&(i=!1,t=-10),{enabled:!e.isPlugin&&e.video.status===w.X.Draft,types:[V.E.Interactive],order:t,svgName:h.vn.EditVideo,name:D("editInteractive"),tooltip:e.location!==A.PlayPage?D("editInteractiveTooltip"):"",button:i,showButtonText:e.location===A.PlayPage&&i,appLink:{application:L.O.INTERACTIVES,action:O.e.Interactives.EDIT_INTERACTIVE,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Edit,workflowPhase:o.eu.Start},group:"edit"}})),a.UnpublishInteractive,(function(e){var i;return{enabled:(null===(i=e.video._canUpdate)||void 0===i?void 0:i.value)&&e.video.status!==w.X.Draft,types:[V.E.Interactive],order:70,svgName:h.vn.EditVideo,name:D("editInteractive"),button:!1,appLink:{application:L.O.INTERACTIVES,action:O.e.Interactives.UNPUBLISH_INTERACTIVE,args:[e.video.id]},analyticsOptions:{actionType:o.Vw.Publish,descriptor:o.Iq.Unpublish,workflowPhase:o.eu.Start},group:"edit"}})));function _(e,i){(null==i||i>e.length)&&(i=e.length);for(var t=0,a=Array(i);t<i;t++)a[t]=e[t];return a}!function(e){e[e.PlayPage=0]="PlayPage",e[e.VideoItem=1]="VideoItem"}(A||(A={}));var U=[a.Approve,a.ManageAccess],M=[a.ViewResults],R=[a.AddToPlaylist,a.Share,a.EditInteractive,a.ViewResults,a.PrintInteractive],B=[a.ManageAccess,a.AddToLibrary,a.ViewCurriculumLinks,a.ViewUsage,a.CreateClip,a.CreateInteractive,a.EditVideo,a.EditClip,a.EditDetails,a.Delete,a.Download,a.OpenInCurationStudio,a.OpenInLibraryEditor,a.ViewOriginalVideo,a.CopyInteractive,a.UnpublishInteractive,a.PreviewQuestions],x={lazyPlaceholder:!0};function X(e){switch(e){case A.PlayPage:return o.LZ.PlayPage;case A.VideoItem:return o.LZ.VideoListItem}}function j(e,i){return e.map((function(e){var t,a,n,o=N[e](i);if(o.types&&!o.types.some((function(e){return e===i.video.typeId})))return null;if(!o.enabled)return null;var r=o.variant||"outline-dark",s="";o.showButtonText?s="btn btn-".concat(r," me-2"):o.variant&&(s="text-".concat(r));var d=!o.button||o.showButtonText;return{order:o.order,label:d?o.name:null,appLink:o.appLink,href:o.href,onClick:o.onClick,svgName:o.svgName,className:s,button:o.button,showBorder:o.showBorder,tooltip:null!==(t=o.tooltip)&&void 0!==t?t:d?null:o.name,analyticsData:o.analyticsData||i.analyticsData,analyticsOptions:o.analyticsOptions?Object.assign(Object.assign({},null!==(a=i.analyticsOptions)&&void 0!==a?a:{}),null!==(n=o.analyticsOptions)&&void 0!==n?n:{}):null,openInNewTab:o.openInNewTab,group:o.group}})).filter((function(e){return!!e}))}function F(e){var i=(0,u.k)(),t=(0,v.T)(),a=t.hasPermissions,o=t.hasLocalPermissions,I=(0,b.G)().isPlugin,m=(0,p.R0)().isUserCurator,C=(0,y.r)().hasProduct,E=n.a.useBasicFetch(l.N.currentUser()),w=n.a.useBasicFetch(d.L.config()),V=n.a.useBasicFetch(a(r.C.ViewLibraries)&&c.D.libraryRequestLibraries()),P=function(e){var i=n.a.useGetResponseFunc(),t=n.a.useGetFetch();function a(i){return e.type!==s.PlayPage?null:g.M.getVideoRequest(i.id,i.typeId,e.shareId)}return{hydrate:function(e){var n=a(e);i(n.key).shouldFetch&&t(n)},isHydrated:function(e){var t=a(e);return i(t.key).hasCompleted}}}({type:s.PlayPage,shareId:e.shareId}),T=P.hydrate,h=P.isHydrated;return{getVideoActions:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!o(r.E.UseVideoActions))return[];if(!g.M.getCanBeConsumed(t).canConsume)return[];var s,d={video:t,breakpoints:i,location:e.location,hasPermissions:a,hasProduct:C,requestLibraries:V.data,config:w.data,currentUser:E.data,isPlugin:I,isUserCurator:m,analyticsData:g.M.getAnalyticsData(t,n.analyticsData),analyticsOptions:Object.assign(Object.assign({},n.analyticsOptions),{entity:g.M.getAnalyticsEntity(t),location:X(e.location)})};return g.M.isVideoTypeArchived(t)?j(M,d):f.l.hasCustomRestriction(t)?j(U,d):h(t)?j([].concat(R,B),d):[].concat(function(e){if(Array.isArray(e))return _(e)}(s=j(R,d))||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(s)||function(e,i){if(e){if("string"==typeof e)return _(e,i);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_(e,i):void 0}}(s)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),[x])},fetchMoreActions:function(e){return T(e)}}}}}]);
|
|
2
|
+
//# sourceMappingURL=671-36d34edbf3-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/671-36d34edbf3-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/hooks/useCurationStudio.ts","file:///app/packages/libs/shared/src/utils/AnalyticsRouteHelper.ts","file:///app/packages/libs/shared/src/enums/VideoActions.ts","file:///app/packages/libs/shared/src/hooks/useVideohydration.ts","file:///app/packages/projects/lite/src/shared/hooks/use-video-actions/VideoActionDefinitions.ts","file:///app/packages/projects/lite/src/shared/hooks/use-video-actions/useVideoActions.ts"],"sourcesContent":["import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/react/index';\n\nimport { CuratorGroup } from 'libs/shared/enums/CuratorGroup';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { Config, CuratorUserGroupCollection, CurrentUser } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.hooks';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function getOpenInCurationStudioLink(\n baseUrl: string,\n objectType: MasterType | string,\n id: string,\n presentationId?: string\n) {\n const baseManageUrl = UrlHelper.safeUrlConcat(baseUrl, 'manage');\n const baseExchangeUrl = UrlHelper.safeUrlConcat(baseUrl, 'exchange');\n const href = (baseUrl: string, objectType: string, id: string) => UrlHelper.safeUrlConcat(baseUrl, `${objectType}/${id}`);\n\n switch (objectType) {\n case MasterType.Subject:\n return UrlHelper.safeUrlConcat(baseManageUrl, `subjects/presentations/${presentationId}/classifications/${id}/edit`);\n case MasterType.Video:\n return href(baseManageUrl, 'videos', id);\n case MasterType.Playlist:\n return href(baseManageUrl, 'playlists', id);\n case MasterType.Series:\n return href(baseManageUrl, 'series', id);\n case MasterType.Company:\n return href(baseManageUrl, 'companies', id);\n case MasterType.Interactive:\n return href(baseManageUrl, 'interactives', id);\n case MasterType.Clip:\n return href(baseManageUrl, 'clips', id);\n case MasterType.Category:\n return href(baseExchangeUrl, 'categories', id);\n }\n}\n\nexport function getOpenInCurationStudioLabel(): string {\n return getPhrase('openInCurationStudio');\n}\n\nexport function useCurationStudio() {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const { data: userGroups } = Flight.useBasicFetch<CuratorUserGroupCollection>(\n (currentUser.data?.id) && UserRequests.groups(currentUser.data?.id)\n );\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n \n const curatorGroups = [ CuratorGroup.Curator, CuratorGroup.Content, CuratorGroup.Developer ];\n\n function isUserCurator(): boolean {\n return curatorGroups.some(group => userGroups?.data.find(userGroup => userGroup.name === group));\n }\n\n return {\n openInCurationStudioLabel: getOpenInCurationStudioLabel(),\n isUserCurator: isUserCurator(),\n getOpenInCurationStudioLink: (objectType: MasterType | string, id: string, presentationId?: string) =>\n getOpenInCurationStudioLink(config.data?.curatorUrl, objectType, id, presentationId)\n };\n}\n","import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\n\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { BaseObject, Config } from 'libs/shared/interfaces';\n\nexport const AnalyticsRouteHelper = {\n getObjectUrl(config: Config, object: BaseObject): string {\n const baseUrl = config.analyticsWebUrl;\n\n if (!baseUrl)\n return;\n\n let relativeUrl = '';\n\n switch (object.typeId) {\n case MasterType.Video:\n relativeUrl = `/videos/${object.id}/overview`;\n break;\n\n case MasterType.Clip:\n relativeUrl = `/clips/${object.id}/overview`;\n break;\n\n case MasterType.Interactive:\n relativeUrl = `/interactives/${object.id}/overview`;\n break;\n }\n\n if (!relativeUrl)\n return;\n\n return UrlHelper.safeUrlConcat(baseUrl, relativeUrl);\n }\n};","export enum VideoAction {\n AddToPlaylist,\n Share,\n EditVideo,\n EditDetails,\n Download,\n Delete,\n ViewCurriculumLinks,\n CreateClip,\n CreateInteractive,\n ViewUsage,\n AddToLibrary,\n Approve,\n ManageAccess,\n OpenInCurationStudio,\n OpenInLibraryEditor,\n AddToMyVideos,\n ViewOriginalVideo,\n EditClip,\n EditInteractive,\n PreviewQuestions,\n ViewResults,\n CopyInteractive,\n PrintInteractive,\n UnpublishInteractive,\n}","import { Flight } from 'libs/common/react/index';\n\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nexport enum VideoHydrationType {\n PlayPage\n}\n\ninterface UseVideoHydrationOptions {\n type: VideoHydrationType;\n shareId?: string;\n}\n\nexport function useVideoHydration(options: UseVideoHydrationOptions) {\n const getResponse = Flight.useGetResponseFunc();\n const fetch = Flight.useGetFetch();\n \n function getRequest(video: VideoTypes): Flight.Request {\n if (options.type !== VideoHydrationType.PlayPage)\n return null;\n\n\n return VideoHelper.getVideoRequest(video.id, video.typeId, options.shareId);\n }\n \n function hydrate(video: VideoTypes): void {\n const request = getRequest(video);\n const resp = getResponse(request.key);\n\n resp.shouldFetch && fetch(request);\n }\n\n function isHydrated(video: VideoTypes): boolean {\n const request = getRequest(video);\n const resp = getResponse(request.key);\n\n return resp.hasCompleted;\n }\n\n return { hydrate, isHydrated };\n}","import { ButtonProps } from 'react-bootstrap';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { AnalyticsOptions, AssocDescriptor, EntityType, EventVersion, HashObject, PublishDescriptor, UserAction, VideoActionDescriptor, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { VideoAction } from 'libs/shared/enums/VideoActions';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { getOpenInCurationStudioLink } from 'libs/shared/hooks/useCurationStudio';\nimport { HasPermissionsFunc } from 'libs/shared/hooks/usePermissions';\nimport { Config, CurrentUser, Library, VideoTypes } from 'libs/shared/interfaces';\nimport { AnalyticsRouteHelper } from 'libs/shared/utils/AnalyticsRouteHelper';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\n\nconst namespace = 'shared.utils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype ActionGroup = 'create' | 'add' | 'edit' | 'manage-interactives' | 'manage' | 'administrative' | 'delete' | 'none';\n\ninterface VideoActionDefinition {\n order: number;\n svgName: string;\n name: string;\n tooltip?: string;\n button: boolean;\n showBorder?: boolean;\n variant?: ButtonProps['variant'];\n appLink?: Core.AppLink;\n analyticsOptions?: AnalyticsOptions;\n enabled: boolean;\n types?: (MasterType.Video | MasterType.Clip | MasterType.Interactive)[];\n openInNewTab?: boolean;\n onClick?: () => void;\n href?: string;\n analyticsData?: HashObject;\n group?: ActionGroup;\n showButtonText?: boolean;\n}\n\nexport interface GetActionsContext {\n video: VideoTypes;\n location: VideoActionsLocation;\n currentUser: CurrentUser;\n breakpoints: Breakpoints;\n hasPermissions: HasPermissionsFunc;\n hasProduct: (product: ProductId) => boolean;\n requestLibraries: Library[];\n config: Config;\n isPlugin: boolean;\n isUserCurator: boolean;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n}\n\nexport const VideoActionsDefinitions: Record<VideoAction, (options: GetActionsContext) => VideoActionDefinition> = {\n /**\n * Content Review actions\n */\n [VideoAction.Approve]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: ctx.hasPermissions(PermissionName.ManageVideoAccess),\n svgName: cvSvgLibrary.Check,\n order: 10,\n name: getPhrase('approve'),\n button: true,\n showButtonText: true,\n appLink: {\n application: AppChannels.DEFAULT,\n action: Actions.Default.APPROVE_VIDEO,\n params: { objectId: ctx.video.id, objectTypeId: ctx.video.typeId }\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n descriptor: VideoActionDescriptor.Approve\n }\n }),\n\n [VideoAction.ManageAccess]: (ctx: GetActionsContext): VideoActionDefinition => {\n const hasCustomRestriction = RestrictionHelper.hasCustomRestriction(ctx.video);\n\n return {\n enabled: ctx.hasPermissions(PermissionName.ManageVideoAccess),\n svgName: cvSvgLibrary.Lock,\n order: 90,\n name: getPhrase('manageAccess'),\n button: hasCustomRestriction,\n showButtonText: hasCustomRestriction,\n appLink: {\n application: AppChannels.DEFAULT,\n action: Actions.Default.MANAGE_ACCCESS,\n params: {\n objectId: ctx.video.id,\n objectTypeId: ctx.video.typeId\n }\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n descriptor: VideoActionDescriptor.ManageAccess\n },\n group: 'manage'\n };\n },\n\n /**\n * Archived videos\n */\n [VideoAction.ViewResults]: (ctx: GetActionsContext): VideoActionDefinition => {\n let button = true;\n let order = 5;\n\n if (ctx.location === VideoActionsLocation.PlayPage) {\n const isMobile = ctx.breakpoints.xs || ctx.breakpoints.sm;\n button = !isMobile;\n order = isMobile ? 10 : order;\n }\n\n return {\n enabled: ctx.hasPermissions(PermissionName.ViewAnalyticsProduct)\n && ctx.video.status !== CurationStatus.Draft,\n types: [MasterType.Interactive],\n order,\n svgName: cvSvgLibrary.Chart,\n name: getPhrase('viewResults'),\n button,\n showButtonText: ctx.location === VideoActionsLocation.PlayPage && button,\n href: AnalyticsRouteHelper.getObjectUrl(ctx.config, ctx.video),\n openInNewTab: true,\n analyticsOptions: {\n actionType: UserAction.Click,\n descriptor: VideoActionDescriptor.ViewResults\n },\n group: 'none'\n };\n },\n\n /**\n * All other actions\n */\n [VideoAction.AddToPlaylist]: (ctx: GetActionsContext): VideoActionDefinition => {\n let button = !VideoHelper.isInteractive(ctx.video) || ctx.video.status !== CurationStatus.Draft;\n let order = 10;\n\n if (button && ctx.location === VideoActionsLocation.PlayPage) {\n const isMobile = ctx.breakpoints.xs || ctx.breakpoints.sm;\n const isIpad = ctx.breakpoints.md;\n if (VideoHelper.isInteractive(ctx.video)) {\n button = !isIpad && !isMobile;\n order = !isIpad && !isMobile ? order : 30;\n } else {\n button = !isMobile;\n order = isMobile ? 55 : order;\n }\n }\n\n const showButtonText = ctx.location === VideoActionsLocation.PlayPage\n && button\n && !VideoHelper.isInteractive(ctx.video);\n\n return {\n enabled: true,\n order,\n svgName: cvSvgLibrary.AddToPlaylists,\n name: getPhrase('addToPlaylist'),\n button,\n showBorder: ctx.location === VideoActionsLocation.PlayPage && button && VideoHelper.isInteractive(ctx.video),\n showButtonText,\n appLink: {\n application: AppChannels.PLAYLISTS,\n action: Actions.Playlists.ADD_TO_PLAYLIST,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.Associate,\n descriptor: AssocDescriptor.Playlist,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'add'\n };\n },\n\n [VideoAction.Share]: (ctx: GetActionsContext): VideoActionDefinition => {\n let button = true;\n let order = 20;\n\n if (ctx.location === VideoActionsLocation.PlayPage) {\n const isMobile = ctx.breakpoints.xs || ctx.breakpoints.sm;\n const isIpad = ctx.breakpoints.md;\n if (VideoHelper.isInteractive(ctx.video)) {\n button = !isIpad && !isMobile;\n order = (isIpad || isMobile) ? 5 : order;\n } else {\n button = !isMobile;\n order = isMobile ? 5 : order;\n }\n }\n\n const showButtonText = ctx.location === VideoActionsLocation.PlayPage\n && button\n && !VideoHelper.isInteractive(ctx.video);\n\n return {\n enabled: !VideoHelper.isInteractive(ctx.video) || ctx.video.status !== CurationStatus.Draft,\n order,\n svgName: cvSvgLibrary.Share2,\n name: getPhrase('share'),\n button,\n showBorder: ctx.location === VideoActionsLocation.PlayPage && button && VideoHelper.isInteractive(ctx.video),\n showButtonText,\n appLink: {\n application: AppChannels.DEFAULT,\n action: Actions.Default.SHARE,\n args: [ctx.video.id],\n params: { entityType: ctx.video.type }\n },\n analyticsOptions: {\n actionType: UserAction.Share,\n workflowPhase: WorkflowPhase.Start,\n eventVersion: EventVersion.V3\n },\n group: 'none'\n };\n },\n\n [VideoAction.CreateClip]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: !ctx.isPlugin,\n types: [MasterType.Video],\n order: 30,\n svgName: cvSvgLibrary.Clip,\n name: getPhrase('createClip'),\n button: false,\n appLink: { application: AppChannels.CLIPS, action: Actions.Clips.CREATE_CLIP, args: [ctx.video.id]},\n analyticsOptions: {\n actionType: UserAction.Create,\n entity: EntityType.Clip,\n workflowPhase: WorkflowPhase.Start\n },\n analyticsData: {\n video: ctx.analyticsData\n },\n group: 'create'\n }),\n\n [VideoAction.CreateInteractive]: (ctx: GetActionsContext): VideoActionDefinition => {\n let button = false;\n let order = 40;\n\n if (ctx.location === VideoActionsLocation.PlayPage) {\n const isIpad = ctx.breakpoints.xs || ctx.breakpoints.sm || ctx.breakpoints.md;\n button = !isIpad;\n order = isIpad ? order : -10;\n }\n\n return {\n enabled: !ctx.isPlugin,\n types: [ MasterType.Video, MasterType.Clip ],\n order,\n svgName: cvSvgLibrary.CreateInteractive,\n name: getPhrase('createInteractive'),\n button,\n showButtonText: ctx.location === VideoActionsLocation.PlayPage && button,\n appLink: {\n application: AppChannels.INTERACTIVES,\n action: VideoHelper.isVideo(ctx.video) ?\n Actions.Interactives.NEW_INTERACTIVE :\n Actions.Interactives.NEW_CLIP_INTERACTIVE,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.Create,\n entity: EntityType.Interactive,\n workflowPhase: WorkflowPhase.Start\n },\n analyticsData: {\n video: ctx.analyticsData\n },\n group: 'create'\n };\n },\n\n [VideoAction.AddToMyVideos]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: VideoHelper.isVideo(ctx.video) &&\n !!ctx.video.libraries?.data?.find(library => library.type === 'exchange'),\n types: [MasterType.Video],\n order: 50,\n svgName: cvSvgLibrary.AddVideo,\n name: getPhrase('addMyVideos'),\n button: false,\n appLink: {\n application: AppChannels.DEFAULT,\n action: Actions.Default.ADD_VIDEO,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.WorkspaceAdd,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'add'\n }),\n\n [VideoAction.AddToLibrary]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: !ctx.hasPermissions(PermissionName.StudentExperience) &&\n ctx.video._canAddToLibrary?.value &&\n ctx.requestLibraries?.length &&\n (!VideoHelper.isInteractive(ctx.video) || ctx.video.status !== CurationStatus.Draft),\n order: 60,\n svgName: cvSvgLibrary.Library,\n name: getPhrase('addToLibrary'),\n button: false,\n appLink: {\n application: AppChannels.LIBRARIES,\n action: Actions.Libraries.ADD_TO_LIBRARY,\n args: [ ctx.video.id, ctx.video.typeId ]\n },\n analyticsOptions: {\n actionType: UserAction.Create,\n entity: EntityType.LibraryRequest,\n workflowPhase: WorkflowPhase.Start\n },\n analyticsData: {\n video: ctx.analyticsData\n },\n group: 'add'\n }),\n\n [VideoAction.EditVideo]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: ctx.video._canUpdate?.value,\n types: [MasterType.Video],\n order: 70,\n svgName: cvSvgLibrary.EditVideo,\n name: getPhrase('editVideo'),\n button: false,\n href: UrlHelper.urlBuilder(\n UrlHelper.safeUrlConcat(ctx.config.cloudEditorUrl, `video/${ctx.video.id}`),\n { product: ProductId.Primary }\n ),\n openInNewTab: true,\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Video,\n descriptor: VideoActionDescriptor.EditVideo\n },\n group: 'edit'\n }),\n\n [VideoAction.EditClip]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: ctx.video._canUpdate?.value,\n types: [MasterType.Clip],\n order: 70,\n svgName: cvSvgLibrary.EditVideo,\n name: getPhrase('editClip'),\n button: false,\n appLink: {\n application: AppChannels.CLIPS,\n action: Actions.Clips.EDIT_CLIP,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.Edit,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'edit'\n }),\n\n [VideoAction.EditDetails]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: ctx.video._canUpdate?.value,\n types: [ MasterType.Video, MasterType.Clip ],\n order: 80,\n svgName: cvSvgLibrary.Edit,\n name: getPhrase('editDetails'),\n button: false,\n appLink: VideoHelper.isVideo(ctx.video) ?\n { application: AppChannels.VIDEOS, action: Actions.Videos.EDIT_VIDEO, args: [ctx.video.id]} :\n { application: AppChannels.CLIPS, action: Actions.Clips.EDIT_CLIP_DETAILS, args: [ctx.video.id]},\n analyticsOptions: {\n actionType: UserAction.Edit,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'edit'\n }),\n\n [VideoAction.ViewOriginalVideo]: (ctx: GetActionsContext): VideoActionDefinition => {\n let appLink: Core.AppLink = null;\n\n if (VideoHelper.isInteractive(ctx.video) && ctx.video._parentClip?.id) {\n appLink = {\n application: AppChannels.CLIPS,\n action: Actions.Clips.PLAY_CLIP,\n args: [ ctx.video._parentClip.id, TextHelper.slugify(ctx.video._parentClip.name) ]\n };\n }\n \n if (!VideoHelper.isVideo(ctx.video) && ctx.video._parentVideo?.id) {\n appLink = {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PLAY_VIDEO,\n args: [ ctx.video._parentVideo.id, TextHelper.slugify(ctx.video._parentVideo.name) ]\n };\n }\n \n return {\n enabled: !VideoHelper.isVideo(ctx.video) &&\n VideoHelper.canViewOriginalVideo(ctx.video) &&\n !!appLink,\n types: [ MasterType.Clip, MasterType.Interactive ],\n order: 100,\n svgName: cvSvgLibrary.Video,\n name: getPhrase('viewOriginalVideo'),\n button: false,\n appLink,\n analyticsOptions: {\n actionType: UserAction.Click,\n descriptor: VideoActionDescriptor.ViewOriginalVideo\n },\n group: 'manage'\n };\n },\n\n [VideoAction.ViewUsage]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: ctx.hasPermissions(PermissionName.ViewAnalyticsProduct) &&\n (ctx.hasPermissions(PermissionName.ViewCustomerAnalytics) || ctx.video._canUpdate?.value),\n types: [ MasterType.Clip, MasterType.Video ],\n order: 110,\n svgName: cvSvgLibrary.Chart,\n name: getPhrase('viewUsage'),\n button: false,\n href: AnalyticsRouteHelper.getObjectUrl(ctx.config, ctx.video),\n openInNewTab: true,\n analyticsOptions: {\n actionType: UserAction.Click,\n workflowPhase: WorkflowPhase.Complete,\n descriptor: VideoActionDescriptor.ViewUsage\n },\n group: 'manage'\n }),\n\n [VideoAction.ViewCurriculumLinks]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: !ctx.hasPermissions(PermissionName.StudentExperience) &&\n VideoHelper.isVideo(ctx.video) &&\n ctx.video._hasCurriculumLinks,\n types: [MasterType.Video],\n order: 120,\n svgName: cvSvgLibrary.Tag,\n name: getPhrase('viewCurriculumLinks'),\n button: false,\n appLink: { application: AppChannels.VIDEOS, action: Actions.Videos.VIEW_CURRICULUM_LINKS, args: [ctx.video.id]},\n analyticsOptions: {\n actionType: UserAction.Click,\n workflowPhase: WorkflowPhase.Complete,\n descriptor: VideoActionDescriptor.ViewCurriculumLinks\n },\n group: 'manage'\n }),\n\n [VideoAction.Download]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: VideoHelper.isVideo(ctx.video) && ctx.video._canDownload?.value,\n types: [MasterType.Video],\n order: 130,\n svgName: cvSvgLibrary.Download,\n name: getPhrase('download'),\n button: false,\n appLink: { application: AppChannels.VIDEOS, action: Actions.Videos.DOWNLOAD_VIDEO, args: [ctx.video.id]},\n analyticsOptions: {\n actionType: UserAction.Download,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'manage'\n }),\n\n [VideoAction.OpenInCurationStudio]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: ctx.isUserCurator,\n order: 140,\n svgName: cvSvgLibrary.NewWindow,\n name: getPhrase('openInCurationStudio'),\n button: false,\n href: getOpenInCurationStudioLink(ctx.config.curatorUrl, ctx.video.typeId, ctx.video.id),\n openInNewTab: true,\n group: 'administrative'\n }),\n\n [VideoAction.OpenInLibraryEditor]: (ctx: GetActionsContext): VideoActionDefinition => {\n function getOpenInLibraryEditorLink(): string {\n let type = 'videos';\n \n if (VideoHelper.isClip(ctx.video))\n type = 'clips';\n else if (VideoHelper.isInteractive(ctx.video))\n type = 'interactives';\n \n return UrlHelper.safeUrlConcat(ctx.config.libraryEditorUrl, `/manage/libraries/${type}/${ctx.video.id}`);\n }\n\n const schoolLibraryIds = new Set(\n ctx.requestLibraries\n ?.filter(l => l.owner?.id?.toString() === ctx.currentUser?.customerId?.toString())\n .map(l => l.id?.toString())\n );\n\n return {\n enabled: ctx.hasProduct(ProductId.LibraryEditor) &&\n !!ctx.video.libraries?.data?.find(l => schoolLibraryIds.has(l.id?.toString())),\n order: 145,\n svgName: cvSvgLibrary.NewWindow,\n name: getPhrase('openInLibraryEditor'),\n button: false,\n href: getOpenInLibraryEditorLink(),\n openInNewTab: true,\n group: 'administrative'\n };\n },\n\n [VideoAction.Delete]: (ctx: GetActionsContext): VideoActionDefinition => {\n let appLink: Core.AppLink = {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.DELETE_VIDEO,\n params: { ids: [ctx.video.id]}\n };\n \n if (VideoHelper.isClip(ctx.video)) {\n appLink = {\n application: AppChannels.CLIPS,\n action: Actions.Clips.DELETE_CLIP,\n args: [ctx.video.id]\n };\n } else if (VideoHelper.isInteractive(ctx.video)) {\n appLink = {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.DELETE_INTERACTIVE,\n args: [ctx.video.id]\n };\n }\n\n return {\n enabled: ctx.video._canUpdate?.value,\n order: 150,\n svgName: cvSvgLibrary.Delete,\n name: getPhrase('delete'),\n variant: 'danger',\n button: false,\n appLink,\n analyticsOptions: {\n actionType: UserAction.Edit,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'delete'\n };\n },\n\n /**\n * Interactive only\n */\n [VideoAction.PreviewQuestions]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: ctx.location === VideoActionsLocation.VideoItem,\n types: [MasterType.Interactive],\n order: 83,\n svgName: cvSvgLibrary.Search,\n name: getPhrase('previewInteractive'),\n button: false,\n appLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.PREVIEW_QUESTIONS,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n descriptor: VideoActionDescriptor.PreviewInteractiveVideo\n },\n group: 'manage-interactives'\n }),\n\n [VideoAction.PrintInteractive]: (ctx: GetActionsContext): VideoActionDefinition => {\n let button: boolean;\n let order = 0;\n if (VideoHelper.isInteractive(ctx.video)) {\n button = true;\n }\n\n if (button && ctx.location === VideoActionsLocation.PlayPage) {\n const isMobile = ctx.breakpoints.xs || ctx.breakpoints.sm;\n button = !isMobile;\n order = !isMobile ? order : 80;\n }\n\n return {\n enabled: true,\n types: [MasterType.Interactive],\n order,\n svgName: cvSvgLibrary.Print,\n name: getPhrase('printAsWorksheet'),\n button,\n showButtonText: ctx.location === VideoActionsLocation.PlayPage,\n appLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.PRINT_QUESTIONS,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.Print,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'manage-interactives'\n };\n },\n\n [VideoAction.CopyInteractive]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: !ctx.hasPermissions(PermissionName.StudentExperience),\n types: [MasterType.Interactive],\n order: 87,\n svgName: cvSvgLibrary.Copy,\n name: getPhrase('copyInteractive'),\n button: false,\n appLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.COPY_INTERACTIVE,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.Copy,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'manage-interactives'\n }),\n\n [VideoAction.EditInteractive]: (ctx: GetActionsContext): VideoActionDefinition => {\n let button = ctx.video.status === CurationStatus.Draft;\n let order = 70;\n\n if (ctx.location === VideoActionsLocation.PlayPage && ctx.breakpoints.xs) {\n button = false;\n order = -10;\n }\n\n return {\n enabled: !ctx.isPlugin && ctx.video.status === CurationStatus.Draft,\n types: [MasterType.Interactive],\n order,\n svgName: cvSvgLibrary.EditVideo,\n name: getPhrase('editInteractive'),\n tooltip: ctx.location !== VideoActionsLocation.PlayPage\n ? getPhrase('editInteractiveTooltip')\n : '',\n button,\n showButtonText: ctx.location === VideoActionsLocation.PlayPage && button,\n appLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.EDIT_INTERACTIVE,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.Edit,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'edit'\n };\n },\n\n [VideoAction.UnpublishInteractive]: (ctx: GetActionsContext): VideoActionDefinition => ({\n enabled: ctx.video._canUpdate?.value && ctx.video.status !== CurationStatus.Draft,\n types: [MasterType.Interactive],\n order: 70,\n svgName: cvSvgLibrary.EditVideo,\n name: getPhrase('editInteractive'),\n button: false,\n appLink: {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.UNPUBLISH_INTERACTIVE,\n args: [ctx.video.id]\n },\n analyticsOptions: {\n actionType: UserAction.Publish,\n descriptor: PublishDescriptor.Unpublish,\n workflowPhase: WorkflowPhase.Start\n },\n group: 'edit'\n })\n};\n\n","import { Flight } from 'libs/common/react/index';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { VideoActionsOptions } from 'libs/shared/context/VideoActionsContext';\nimport { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { VideoAction } from 'libs/shared/enums/VideoActions';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { useCurationStudio } from 'libs/shared/hooks/useCurationStudio';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\nimport { useVideoHydration, VideoHydrationType } from 'libs/shared/hooks/useVideohydration';\nimport { Config, CurrentUser, Library, VideoTypes } from 'libs/shared/interfaces';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { usePluginHelper } from '../use-plugin-helper/usePluginHelper';\n\nimport { GetActionsContext, VideoActionsDefinitions } from './VideoActionDefinitions';\n\nexport enum VideoActionsLocation {\n PlayPage,\n VideoItem\n}\n\nconst RESTRICTED_ACTIONS = [\n VideoAction.Approve,\n VideoAction.ManageAccess\n];\n\nconst ARCHIVED_ACTIONS = [\n VideoAction.ViewResults\n];\n\nconst ACTIONS = [\n VideoAction.AddToPlaylist,\n VideoAction.Share,\n VideoAction.EditInteractive,\n VideoAction.ViewResults,\n VideoAction.PrintInteractive\n];\n\nconst LAZY_ACTIONS = [\n VideoAction.ManageAccess,\n VideoAction.AddToLibrary,\n VideoAction.ViewCurriculumLinks,\n VideoAction.ViewUsage,\n VideoAction.CreateClip,\n VideoAction.CreateInteractive,\n VideoAction.EditVideo,\n VideoAction.EditClip,\n VideoAction.EditDetails,\n VideoAction.Delete,\n VideoAction.Download,\n VideoAction.OpenInCurationStudio,\n VideoAction.OpenInLibraryEditor,\n VideoAction.ViewOriginalVideo,\n VideoAction.CopyInteractive,\n VideoAction.UnpublishInteractive,\n VideoAction.PreviewQuestions\n];\n\nconst FETCH_MORE_ACTION_OPTION: ActionOptions = {\n lazyPlaceholder: true\n};\n\nfunction mapActionsLocationToAnalyticsLocation(actionsLocation: VideoActionsLocation) {\n switch (actionsLocation) {\n case VideoActionsLocation.PlayPage: return LocationContext.PlayPage;\n case VideoActionsLocation.VideoItem: return LocationContext.VideoListItem;\n }\n}\n\nfunction getActionOptions(actions: VideoAction[], ctx: GetActionsContext): ActionOptions[] {\n return actions.map(action => {\n const definition = VideoActionsDefinitions[action](ctx);\n\n // Action does not apply to this video type\n if (definition.types && !definition.types.some(type => type === ctx.video.typeId))\n return null;\n \n // Action is disabled\n if (!definition.enabled)\n return null;\n\n const variant = definition.variant || 'outline-dark';\n let className = '';\n\n if (definition.showButtonText)\n className = `btn btn-${variant} me-2`;\n else if (definition.variant)\n className = `text-${variant}`;\n\n const showLabel = (!definition.button || definition.showButtonText);\n\n return {\n order: definition.order,\n label: showLabel ? definition.name : null,\n appLink: definition.appLink,\n href: definition.href,\n onClick: definition.onClick,\n svgName: definition.svgName,\n className,\n button: definition.button,\n showBorder: definition.showBorder,\n tooltip: definition.tooltip ?? (!showLabel ? definition.name : null),\n analyticsData: definition.analyticsData || ctx.analyticsData,\n analyticsOptions: definition.analyticsOptions ? {\n ...(ctx.analyticsOptions ?? {}),\n ...(definition.analyticsOptions ?? {})\n } : null,\n openInNewTab: definition.openInNewTab,\n group: definition.group\n };\n }).filter(a => !!a);\n}\n\ninterface UseVideoActionsOptions {\n location: VideoActionsLocation;\n shareId?: string;\n}\n\nexport function useVideoActions(options: UseVideoActionsOptions) {\n const breakpoints = useBreakpoints();\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { isPlugin } = usePluginHelper();\n const { isUserCurator } = useCurationStudio();\n const { hasProduct } = useProducts();\n \n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const requestLibraries = Flight.useBasicFetch<Library[]>(\n hasPermissions(PermissionName.ViewLibraries) &&\n LibraryRequests.libraryRequestLibraries()\n );\n\n const { hydrate, isHydrated } = useVideoHydration({\n type: VideoHydrationType.PlayPage,\n shareId: options.shareId\n });\n\n function getVideoActions(video: VideoTypes, opts: VideoActionsOptions = {}) {\n if (!hasLocalPermissions(LocalPermissionName.UseVideoActions))\n return [];\n\n const { canConsume } = VideoHelper.getCanBeConsumed(video);\n\n if (!canConsume)\n return [];\n\n const context: GetActionsContext = {\n video,\n breakpoints,\n location: options.location,\n hasPermissions,\n hasProduct,\n requestLibraries: requestLibraries.data,\n config: config.data,\n currentUser: currentUser.data,\n isPlugin,\n isUserCurator,\n analyticsData: VideoHelper.getAnalyticsData(video, opts.analyticsData),\n analyticsOptions: {\n ...opts.analyticsOptions,\n entity: VideoHelper.getAnalyticsEntity(video),\n location: mapActionsLocationToAnalyticsLocation(options.location)\n }\n };\n\n if (VideoHelper.isVideoTypeArchived(video))\n return getActionOptions(ARCHIVED_ACTIONS, context);\n\n if (RestrictionHelper.hasCustomRestriction(video))\n return getActionOptions(RESTRICTED_ACTIONS, context);\n\n if (!isHydrated(video))\n return [ ...getActionOptions(ACTIONS, context), FETCH_MORE_ACTION_OPTION ];\n\n return getActionOptions([ ...ACTIONS, ...LAZY_ACTIONS ], context);\n }\n\n return {\n getVideoActions,\n fetchMoreActions: (video: VideoTypes) => hydrate(video)\n };\n}"],"names":["getPhrase","baseUrl","objectType","id","presentationId","baseManageUrl","baseExchangeUrl","href","getOpenInCurationStudioLabel","useCurationStudio","currentUser","userGroups","data","config","curatorGroups","Curator","openInCurationStudioLabel","isUserCurator","some","group","find","userGroup","name","getOpenInCurationStudioLink","curatorUrl","AnalyticsRouteHelper","getObjectUrl","object","analyticsWebUrl","relativeUrl","typeId","VideoAction","VideoHydrationType","VideoActionsLocation","LanguageService","VideoActionsDefinitions","Approve","ctx","enabled","hasPermissions","PermissionName","svgName","order","button","showButtonText","appLink","application","action","params","objectId","video","objectTypeId","analyticsOptions","actionType","descriptor","ManageAccess","hasCustomRestriction","RestrictionHelper","ViewResults","location","PlayPage","isMobile","breakpoints","xs","sm","status","CurationStatus","types","MasterType","openInNewTab","AddToPlaylist","VideoHelper","isIpad","md","showBorder","args","workflowPhase","Share","entityType","type","eventVersion","CreateClip","isPlugin","entity","analyticsData","CreateInteractive","AddToMyVideos","libraries","library","AddToLibrary","_canAddToLibrary","value","requestLibraries","length","EditVideo","_canUpdate","UrlHelper","cloudEditorUrl","product","ProductId","EditClip","EditDetails","ViewOriginalVideo","_parentClip","TextHelper","_parentVideo","ViewUsage","ViewCurriculumLinks","_hasCurriculumLinks","Download","_canDownload","OpenInCurationStudio","OpenInLibraryEditor","schoolLibraryIds","Set","filter","l","owner","toString","customerId","map","hasProduct","has","libraryEditorUrl","Delete","ids","variant","PreviewQuestions","VideoItem","PrintInteractive","CopyInteractive","EditInteractive","tooltip","UnpublishInteractive","RESTRICTED_ACTIONS","ARCHIVED_ACTIONS","ACTIONS","LAZY_ACTIONS","FETCH_MORE_ACTION_OPTION","lazyPlaceholder","mapActionsLocationToAnalyticsLocation","actionsLocation","getActionOptions","actions","definition","className","showLabel","label","onClick","a","useVideoActions","options","useBreakpoints","usePermissions","hasLocalPermissions","usePluginHelper","UserRequests","ConfigRequests","LibraryRequests","getResponse","fetch","getRequest","shareId","hydrate","request","key","shouldFetch","isHydrated","hasCompleted","useVideoHydration","getVideoActions","opts","canConsume","context","fetchMoreActions"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[6725],{94644:(e,n,a)=>{a.d(n,{r:()=>l});var r=a(50242),t=a(81886),i=a(67058),c=a(14553),o=a(49267),s=a(49075),d={notFound:i.d,forbidden:{rating:c.q,yearLevel:c.q,region:o.a,privacy:c.q},badRequest:s._};function l(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var i;i="number"==typeof e?e:e.status;var c=Object.assign(Object.assign({},d),n);i&&t.Q.Ry.isStatusCodeError(i)&&(i!==r.o.NotFound?i!==r.o.Forbidden?a.badRequest||t.Q.Ry.throw(new c.badRequest):a.forbidden||t.Q.Ry.throw(new c.forbidden.privacy):a.notFound||t.Q.Ry.throw(new c.notFound))}}},91286:(e,n,a)=>{a.d(n,{v:()=>c});var r=a(32735),t=a(94644);function i(e){return e.map((function(e){return e.statusCode})).join(":")}function c(e,n,a){var c=Array.isArray(e)?e:[e];(0,r.useEffect)((function(){c.forEach((function(e){(0,t.r)(e.statusCode,n,a)}))}),[i(c),n,a])}},14919:(e,n,a)=>{a.d(n,{w:()=>v});var r=a(32735),t=a(64249),i=a(11607),c=a(2786),o=a(7733),s=a(9085),d=a(98084),l=a(87984);const u={playButtonCircle:"zima4"};function v(e){var n,a,v,m,b=e.onClick,g=e.video,p="rating"in g&&(null===(n=g.rating)||void 0===n?void 0:n.code),f="rating"in g&&(null===(a=g.rating)||void 0===a?void 0:a.value),h=(0,l.C)(f),E="series"in g&&(null===(v=g.series)||void 0===v?void 0:v.name),y="episodeNumber"in g&&g.episodeNumber,k="season"in g&&(null===(m=g.season)||void 0===m?void 0:m.number),w=t.I.getImageUrl(g),C="";w||(C=(0,s.x)(g.name,o.b));var F={backgroundImage:w?"url('".concat(w,"')"):"",backgroundColor:C};return r.createElement(i.L,{className:"cv-embed-splash ".concat(C||"cv-embed-splash-black"),style:F,onClick:b},!!w&&r.createElement("div",{className:"cv-splash-mask"}),r.createElement("div",{className:"cv-splash-metadata"},r.createElement("h1",null,r.createElement("div",{className:"cv-splash-series"},function(e,n,a){if(!e)return"";if(!a||!n)return e;var r=d.I.padNumber(a,2),t=d.I.padNumber(n,2);return"".concat(e," S").concat(r,"
|
|
2
|
-
//# sourceMappingURL=6725-
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[6725],{94644:(e,n,a)=>{a.d(n,{r:()=>l});var r=a(50242),t=a(81886),i=a(67058),c=a(14553),o=a(49267),s=a(49075),d={notFound:i.d,forbidden:{rating:c.q,yearLevel:c.q,region:o.a,privacy:c.q},badRequest:s._};function l(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var i;i="number"==typeof e?e:e.status;var c=Object.assign(Object.assign({},d),n);i&&t.Q.Ry.isStatusCodeError(i)&&(i!==r.o.NotFound?i!==r.o.Forbidden?a.badRequest||t.Q.Ry.throw(new c.badRequest):a.forbidden||t.Q.Ry.throw(new c.forbidden.privacy):a.notFound||t.Q.Ry.throw(new c.notFound))}}},91286:(e,n,a)=>{a.d(n,{v:()=>c});var r=a(32735),t=a(94644);function i(e){return e.map((function(e){return e.statusCode})).join(":")}function c(e,n,a){var c=Array.isArray(e)?e:[e];(0,r.useEffect)((function(){c.forEach((function(e){(0,t.r)(e.statusCode,n,a)}))}),[i(c),n,a])}},14919:(e,n,a)=>{a.d(n,{w:()=>v});var r=a(32735),t=a(64249),i=a(11607),c=a(2786),o=a(7733),s=a(9085),d=a(98084),l=a(87984);const u={playButtonCircle:"zima4"};function v(e){var n,a,v,m,b=e.onClick,g=e.video,p="rating"in g&&(null===(n=g.rating)||void 0===n?void 0:n.code),f="rating"in g&&(null===(a=g.rating)||void 0===a?void 0:a.value),h=(0,l.C)(f),E="series"in g&&(null===(v=g.series)||void 0===v?void 0:v.name),y="episodeNumber"in g&&g.episodeNumber,k="season"in g&&(null===(m=g.season)||void 0===m?void 0:m.number),w=t.I.getImageUrl(g),C="";w||(C=(0,s.x)(g.name,o.b));var F={backgroundImage:w?"url('".concat(w,"')"):"",backgroundColor:C};return r.createElement(i.L,{className:"cv-embed-splash ".concat(C||"cv-embed-splash-black"),style:F,onClick:b},!!w&&r.createElement("div",{className:"cv-splash-mask"}),r.createElement("div",{className:"cv-splash-metadata"},r.createElement("h1",null,r.createElement("div",{className:"cv-splash-series"},function(e,n,a){if(!e)return"";if(!a||!n)return e;var r=d.I.padNumber(a,2),t=d.I.padNumber(n,2);return"".concat(e," S").concat(r," • E").concat(t)}(E,y,k)),g.name),r.createElement("div",{className:"cv-splash-rating ".concat(h)},p)),r.createElement("div",{className:u.playButtonCircle},r.createElement("svg",{viewBox:"0 0 1800 1800"},r.createElement("path",{d:"M597.3333333333334 1418.6666666666665V373.3333333333333L1418.6666666666667 896z"}))),r.createElement("div",{className:"cv-splash-logo"},r.createElement(c.Yo,null)))}},61995:(e,n,a)=>{a.d(n,{_:()=>c});var r=a(45593),t=a(21938),i=a(76867),c={notFound:t.W,forbidden:{rating:r.F,yearLevel:r.F,region:i.z,privacy:r.F},badRequest:i.z}},66725:(e,n,a)=>{a.r(n),a.d(n,{EmbeddedLcsLoginView:()=>g});var r=a(32735),t=a(23481),i=a(20354),c=a(39151),o=a(1575),s=a(91286),d=a(71158),l=a(14919),u=a(6736),v=a(61995),m="embed.embeddedLcsLogin",b={forbidden:!0};function g(e){var n=i.a.useBasicFetch(c.L.config()),a=i.a.useBasicFetch(o.R.publicVideo(e.videoId));if((0,s.v)(a,v._,b),!n.data||!a.hasCompleted)return r.createElement(r.Fragment,null);var g=a.data;return a.hasError&&(g={name:t.T.getPhrase(m,"privateVideo")}),r.createElement(l.w,{onClick:function(){u.b.renderSignInPopup({customerId:e.customerId,consumerKey:null,shareId:null,onComplete:function(e){return d.P.applyToken(null==e?void 0:e.embedToken)}})},video:g})}},87984:(e,n,a)=>{function r(e){return e?function(e){switch(!0){case e<32:return"cv-rating-purple";case e<48:return"cv-rating-green";case e<80:return"cv-rating-blue";case e<96:return"cv-rating-red";case e<128:return"cv-rating-pink";case e>=128:return"cv-rating-yellow";default:return""}}(e):""}a.d(n,{C:()=>r})}}]);
|
|
2
|
+
//# sourceMappingURL=6725-20b1e8b1d2-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/6725-20b1e8b1d2-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/errors/handlers/HttpErrorHandlers.ts","file:///app/packages/libs/shared/src/hooks/UseHandleObjectError.ts","file:///app/packages/projects/lite/src/apps/embed/components/embedded-login/embedded-login.scss","file:///app/packages/projects/lite/src/apps/embed/components/embedded-login/EmbeddedLogin.tsx","file:///app/packages/projects/lite/src/apps/embed/utils/EmbedDefaultErrors.ts","file:///app/packages/projects/lite/src/apps/embed/views/embedded-lcs-login/EmbeddedLcsLoginView.tsx","file:///app/packages/projects/player/src/utils/PlayerRatingHelper.ts"],"sourcesContent":["import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}","import { useEffect } from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { handleHttpError, HttpErrorMap, IgnoreHttpErrorMap } from 'libs/shared/errors/handlers/HttpErrorHandlers';\n\nfunction generateCacheKey(flightObjs: Array<Flight.Response<any>>): string {\n return flightObjs.map(obj => obj.statusCode).join(':');\n}\n\n// TODO: Change this to just `useHandleHttpError` and only accept a status code.\nexport function useHandleObjectError(\n _flightObjs: Flight.Response<any> | Array<Flight.Response<any>>,\n customErrors?: HttpErrorMap,\n ignoreErrors?: IgnoreHttpErrorMap\n): void {\n const flightObjs = Array.isArray(_flightObjs) ? _flightObjs : [_flightObjs];\n\n useEffect(() => {\n flightObjs.forEach(obj => {\n handleHttpError(obj.statusCode, customErrors, ignoreErrors);\n });\n }, [ generateCacheKey(flightObjs), customErrors, ignoreErrors ]);\n}","// extracted by mini-css-extract-plugin\nexport default {\"playButtonCircle\":\"zima4\"};","/**\n * IMPORTANT!\n * Please refer to projects\\player\\src\\components\\poster-image\\poster-image-details.md\n * before changing this file\n */\nimport React from 'react';\n\nimport { ShareViewHelper } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { ClickViewLogoInverted } from 'libs/shared/components/svgs/clickview-logo/ClickViewLogo';\nimport { LOGO_SAFE_BG_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\nimport { NumberHelper } from 'libs/shared/utils/NumberHelper';\n\nimport { mapRatingValueToColourClass } from 'projects/player/utils/PlayerRatingHelper';\n\nimport styles from './embedded-login.scss';\n\nfunction getSeries(seriesName: string, episodeNumber: number, seasonNumber: number): string {\n if (!seriesName)\n return '';\n\n if (!seasonNumber || !episodeNumber)\n return seriesName;\n\n const paddedSeason = NumberHelper.padNumber(seasonNumber, 2);\n const paddedEpisode = NumberHelper.padNumber(episodeNumber, 2);\n\n return `${seriesName} S${paddedSeason} • E${paddedEpisode}`;\n}\n\ninterface EmbeddedLoginProps {\n onClick: () => void;\n video: VideoTypes;\n}\n\nexport function EmbeddedLogin(props: EmbeddedLoginProps): React.ReactElement {\n const {\n onClick,\n video\n } = props;\n\n const ratingCode = 'rating' in video && video.rating?.code;\n const ratingValue = 'rating' in video && video.rating?.value;\n const ratingColour = mapRatingValueToColourClass(ratingValue);\n\n const seriesName = 'series' in video && video.series?.name;\n const episodeNumber = 'episodeNumber' in video && video.episodeNumber;\n const seasonNumber = 'season' in video && video.season?.number;\n\n const backgroundImage = ShareViewHelper.getImageUrl(video);\n let backgroundColor = '';\n\n if (!backgroundImage)\n backgroundColor = getBgColorClass(video.name, LOGO_SAFE_BG_CLASS_NAMES);\n\n const style: React.CSSProperties = {\n backgroundImage: backgroundImage ? `url('${backgroundImage}')` : '',\n backgroundColor\n };\n\n // Markup changes here should also be made to components in `landing-splash-plugin.ts`\n return (\n <DivButton\n className={`cv-embed-splash ${backgroundColor || 'cv-embed-splash-black'}`}\n style={style}\n onClick={onClick}\n >\n {!!backgroundImage && <div className='cv-splash-mask' />}\n\n <div className='cv-splash-metadata'>\n <h1>\n <div className='cv-splash-series'>\n {getSeries(seriesName, episodeNumber, seasonNumber)}\n </div>\n {video.name}\n </h1>\n\n <div className={`cv-splash-rating ${ratingColour}`}>\n {ratingCode}\n </div>\n </div>\n\n <div className={styles.playButtonCircle}>\n <svg viewBox='0 0 1800 1800'>\n <path d='M597.3333333333334 1418.6666666666665V373.3333333333333L1418.6666666666667 896z'></path>\n </svg>\n </div>\n\n <div className='cv-splash-logo'>\n <ClickViewLogoInverted />\n </div>\n </DivButton>\n );\n}","import { HttpErrorMap } from 'libs/shared/errors/handlers/HttpErrorHandlers';\n\nimport { PrivateEmbedError } from 'apps/embed/errors/forbidden/PrivateEmbedError';\nimport { EmbedNotFoundError } from 'apps/embed/errors/not-found/EmbedNotFoundError';\nimport { UnspecifiedEmbedError } from 'apps/embed/errors/unspecified/UnspecifiedEmbedError';\n\nexport const EmbeddedDefaultErrors: HttpErrorMap = {\n notFound: EmbedNotFoundError,\n forbidden: {\n rating: PrivateEmbedError,\n yearLevel: PrivateEmbedError,\n region: UnspecifiedEmbedError,\n privacy: PrivateEmbedError\n },\n badRequest: UnspecifiedEmbedError\n};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { Config, Video } from 'libs/shared/interfaces';\nimport { EmbedTokenHelper } from 'libs/shared/utils/EmbedTokenHelper';\n\nimport { EmbeddedLogin } from 'apps/embed/components/embedded-login/EmbeddedLogin';\nimport { EmbedAuthHelper } from 'apps/embed/utils/EmbedAuthHelper';\nimport { EmbeddedDefaultErrors } from 'apps/embed/utils/EmbedDefaultErrors';\n\nconst namespace = 'embed.embeddedLcsLogin';\n\nconst IGNORE_ERROR_MAP = {\n forbidden: true\n};\n\ninterface EmbeddedLcsLoginViewProps {\n videoId: string;\n customerId?: string\n}\n\nexport function EmbeddedLcsLoginView(props: EmbeddedLcsLoginViewProps): JSX.Element {\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n /**\n * We're using the sharedVideo request because it's piped through Lite's backend\n * in order to get around not being able to use Gateway publicly. Ideally\n * we shouldn't need to use the sharedVideo request once Gateway works publicly\n * - Sha\n */\n const video = Flight.useBasicFetch<Video>(VideoRequests.publicVideo(props.videoId));\n\n function onClick(): void {\n EmbedAuthHelper.renderSignInPopup({\n customerId: props.customerId,\n consumerKey: null,\n shareId: null,\n onComplete: (data: HashObject) => EmbedTokenHelper.applyToken(data?.embedToken)\n });\n }\n\n useHandleObjectError(video, EmbeddedDefaultErrors, IGNORE_ERROR_MAP);\n\n if (!config.data || !video.hasCompleted)\n return <></>;\n\n let sharedResource = video.data;\n if (video.hasError) {\n sharedResource = {\n name: LanguageService.getPhrase(namespace, 'privateVideo')\n };\n }\n \n return (\n <EmbeddedLogin\n onClick={onClick}\n video={sharedResource}\n />\n );\n}","export function mapRatingValueToColourClass(ratingValue: number): string {\n if (!ratingValue) return '';\n\n const ratings = (rating: number): string => {\n switch (true) {\n case (rating < 32):\n return 'cv-rating-purple';\n case (rating < 48):\n return 'cv-rating-green';\n case (rating < 80):\n return 'cv-rating-blue';\n case (rating < 96):\n return 'cv-rating-red';\n case (rating < 128):\n return 'cv-rating-pink';\n case (rating >= 128):\n return 'cv-rating-yellow';\n default:\n return ''; // Handles unrated\n }\n };\n\n return ratings(ratingValue);\n}"],"names":["defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","generateCacheKey","flightObjs","map","obj","join","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","Array","isArray","useEffect","forEach","EmbeddedLogin","props","onClick","video","ratingCode","code","ratingValue","value","ratingColour","seriesName","series","name","episodeNumber","seasonNumber","season","number","backgroundImage","ShareViewHelper","backgroundColor","getBgColorClass","style","DivButton","className","paddedSeason","NumberHelper","paddedEpisode","getSeries","viewBox","d","ClickViewLogo","EmbeddedDefaultErrors","namespace","IGNORE_ERROR_MAP","EmbeddedLcsLoginView","config","videoId","data","hasCompleted","sharedResource","hasError","customerId","consumerKey","shareId","onComplete","embedToken","mapRatingValueToColourClass","ratings"],"sourceRoot":""}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! For license information please see 6741-ff3e4a33a5-lite.chunk.js.LICENSE.txt */
|
|
2
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[6741],{3278:(e,t,n)=>{n.d(t,{z:()=>p});var r=n(32735),a=n(39202),i=n(23481),o=n(65858),c=n(38502),s=n(83345),l=n(40424);const u={pillTab:"bMJM0"};var d="discover.header";function p(e){var t,n,p,f,m,h;if(!e.type)return r.createElement(r.Fragment,null);if(e.type===l.Yv.Learner||e.hasStudentExperience)return r.createElement("div",{className:"py-3"},r.createElement("h1",{className:"h2 mb-0"},r.createElement(s.x,{namespace:d,phrase:"heading"})));var v=[{name:i.T.getPhrase(d,"forYou"),appLink:null===(t=e.appLinks)||void 0===t?void 0:t.forYou,active:"forYou"===e.active,analyticsData:{name:i.T.getPhrase(d,"forYou"),url:a.C$.getHref(null===(n=e.appLinks)||void 0===n?void 0:n.forYou)},analyticsOptions:{actionType:o.Vw.Click,entity:o.py.Url,location:o.LZ.MagicTabs}},{name:i.T.getPhrase(d,"whatsNew"),appLink:null===(p=e.appLinks)||void 0===p?void 0:p.whatsNew,active:"whatsNew"===e.active,analyticsData:{name:i.T.getPhrase(d,"whatsNew"),url:a.C$.getHref(null===(f=e.appLinks)||void 0===f?void 0:f.whatsNew)},analyticsOptions:{actionType:o.Vw.Click,entity:o.py.Url,location:o.LZ.MagicTabs}}];return e.showCalendar&&v.push({name:i.T.getPhrase(d,"calendar"),appLink:null===(m=e.appLinks)||void 0===m?void 0:m.calendar,active:"calendar"===e.active,analyticsData:{name:i.T.getPhrase(d,"calendar"),url:a.C$.getHref(null===(h=e.appLinks)||void 0===h?void 0:h.calendar)},analyticsOptions:{actionType:o.Vw.Click,entity:o.py.Url,location:o.LZ.MagicTabs}}),r.createElement("div",{className:"py-3 text-center"},r.createElement(c.r,{tabs:v,className:u.pillTab}))}},28046:(e,t,n)=>{n.d(t,{l:()=>f,v:()=>m});var r=n(39479),a=["pdf"],i=["doc","docx","dotx","dot","rtf","docm","odt"],o=["csv","txt"],c=["xls","xlt","xlsx"],s=["jpg","tif","png","bmp","gif","jpeg"],l="video/*",u=["zip","rar"],d=["ppt","pot","pps","pptx"],p=["srt"],f={IMAGES:".".concat(s.join(",.")),VIDEO:l,MIXED_MEDIA:".".concat(s.join(",."),",").concat(l),RESOURCES:".".concat([].concat(i,c,d,a,o,s,u).join(",.")),SUBTITLES:".".concat(p.join(",."))},m={getResourceType:function(e){var t=e.toLowerCase();return r.contains(i,t)?"document":r.contains(c,t)?"excel":r.contains(d,t)?"powerpoint":r.contains(a,t)?"pdf":r.contains(o,t)?"text":r.contains(s,t)?"image":r.contains(u,t)?"archive":r.contains(p,t)?"subtitle":""}}},38502:(e,t,n)=>{n.d(t,{r:()=>d});var r=n(32735),a=n(49985),i=n(36848),o=n(18559),c=n(11607),s=n(83914),l=n(87432);function u(e){return r.createElement(r.Fragment,null,!!e.tab.svgName&&r.createElement("div",{className:e.tab.name?"pe-1":""},r.createElement(s.x,{svgName:e.tab.svgName})),e.tab.name,"number"==typeof e.tab.count&&r.createElement("div",{className:"ps-2"},r.createElement(o.C,{type:o.g.Count,data:e.tab.count})))}function d(e){var t;return r.createElement("nav",{className:null!==(t=e.className)&&void 0!==t?t:"",ref:e.containerRef},r.createElement("ul",{className:"\n list-unstyled d-inline-block m-0 ".concat(l.Z.pillTabSelector,"\n ").concat(e.borderRadius?l.Z.radiusSmall:"","\n ").concat(e.listClassName,"\n ")},e.tabs.map((function(e,t){return r.createElement("li",{className:"\n p-0 ".concat(l.Z.tab," ").concat(e.active?"btn btn-dark":"btn btn-outline-dark","\n ").concat(e.name?l.Z.minWidth:""," ").concat(e.className,"\n "),key:t},e.appLink?r.createElement(i.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(l.Z.tabLink,"\n ")},r.createElement(u,{tab:e})):r.createElement(c.L,{className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset p-2 text-nowrap ".concat(l.Z.tabLink,"\n "),onClick:function(){return function(e){!e.active&&e.onSelect&&(e.onSelect(),e.analyticsData&&e.analyticsOptions&&a.k.logUserAction(e.analyticsData,e.analyticsOptions))}(e)}},r.createElement(u,{tab:e})))}))))}d.defaultProps={borderRadius:"lg"}},17101:(e,t,n)=>{var r;n.d(t,{n:()=>r}),function(e){e[e.Other=0]="Other",e[e.SuggestImprovement=1]="SuggestImprovement",e[e.ReportBug=2]="ReportBug",e[e.RequestVideo=3]="RequestVideo",e[e.RaiseIssue=4]="RaiseIssue",e[e.GivePraise=5]="GivePraise",e[e.Footer=6]="Footer",e[e.RequestLivestream=7]="RequestLivestream"}(r||(r={}))},7198:(e,t,n)=>{n.d(t,{f:()=>a});var r=n(99940),a={submitFeedback:function(e,t){return{url:"{gateway}/v1/feedback",key:"submit:feedback",type:r.k.POST,data:Object.assign(Object.assign({},e),t)}}}},52167:(e,t,n)=>{n.d(t,{m:()=>l});var r=n(53301),a=n.n(r),i=n(28046),o=n(19808),c=n(86613);function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var l={getUserInfo:function(e,t){return{id:e.id,username:e.username,email:e.email,userType:e.role===c.i.Admin?"Admin":"Staff",customerId:e.customerId,cvcId:t.crmId,customerName:t.name,instanceRegion:e.instanceRegion,contentRegion:e.contentRegion}},mapInstanceRegionToTag:function(e){switch(e){case o.b.AU:return"au";case o.b.NZ:return"nz";case o.b.UK:return"uk";case o.b.US:return"us"}},getTags:function(e,t,n,r){var a,i=[t].concat(function(e){if(Array.isArray(e))return s(e)}(a=r)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(a)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}(a)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}());i.push(n?"student":"staff"),e.role===c.i.Admin&&i.push("administrator");var o=l.mapInstanceRegionToTag(e.instanceRegion);return o&&i.push(o),i},categorizeFiles:function(e){return e.reduce((function(e,t){var n=t.get("fileInfo");return a().isValidFile(t.get("file"),i.l.VIDEO)?e.videoUrls.push(null==n?void 0:n.url):e.imageUrls.push(null==n?void 0:n.url),e}),{imageUrls:[],videoUrls:[]})}}},16741:(e,t,n)=>{n.r(t),n.d(t,{CuratedDiscoverView:()=>te});var r=n(32735),a=n(23481),i=n(57900),o=n(20354),c=n(2948),s=n(49985),l=n(65858),u=n(75896),d=n(3278),p=n(32624),f=n(16714),m=n(40424),h=n(21366),v=n(23232),g=n(83345),y=n(76177),b=n(35223),w="subjects.discoverDashboardEmptyState",E=a.T.encloseNamespace(w);function L(e){var t,n,i=(null===(t=e.dashboard)||void 0===t?void 0:t.status)===m.GL.Archived;return r.createElement(v.u,null,r.createElement(v.u.Image,{src:e.imageUrl,altText:E("info")}),r.createElement(v.u.Heading,null,r.createElement(g.x,{namespace:w,phrase:"heading"})),r.createElement(v.u.Info,null,r.createElement(g.x,{namespace:w,phrase:"info"})),r.createElement(y.u,{title:i?a.T.getPhrase(w,"archivedCtaTooltip"):"",spanHack:!0},r.createElement(v.u.Cta,{text:a.T.getPhrase(w,"add"),appLink:null===(n=e.addWidgetApplink)||void 0===n?void 0:n.call(e),className:"btn btn-dark",icon:b.vn.Plus,disabled:i})))}function S(e){var t,n,a=u.m.sortBy(null===(t=e.dashboard)||void 0===t?void 0:t.widgets,"index");function i(t,n,r){var a=h.S.getWidgetParams(n,r,h.S.getDashboardTargetType(e.dashboard));return e.getWidgetContentRequest(t,a,r,e.presentation)}var o=e.isReadonly&&!(null==a?void 0:a.length);return r.createElement(r.Fragment,null,r.createElement(d.z,{type:null===(n=e.dashboard)||void 0===n?void 0:n.userType,appLinks:e.headerAppLinks,hasStudentExperience:e.hasPermissions(f.C.StudentExperience),showCalendar:e.showCalendar,active:"forYou"}),a.map((function(t,n){return r.createElement(p.L,{key:t.id,id:t.id,imageCdnUrl:e.imageCdnUrl,getContentRequest:i,audiences:e.audiences,name:t.name,description:t.description,templateId:t.templateId,metadata:t.metadata,presentation:e.presentation,setFavourite:e.setFavourite,canFavourite:e.canFavourite,resourceThumbnailFallbackImageUrl:e.resourceThumbnailFallbackImageUrl,preferences:t.preferences,appLinks:e.widgetAppLinks,isScrollToTargetWidget:(null==e?void 0:e.scrollToWidgetId)===t.id,widgetTypeId:t.widgetId,hasPermissions:e.hasPermissions,hasLocalPermissions:e.hasLocalPermissions,onSubmitFeedback:e.onSubmitFeedback,updatePreferences:e.updatePreferences,yearGroups:e.yearGroups,lazyLoad:e.lazyLoad,dashboardTarget:m.ku.Discover,widgetIndex:n,jobTitle:e.jobTitle,isPreviewing:e.isReadonly,imageUrls:e.imageUrls,settings:e.settings,isPlugin:e.isPlugin})})),o&&r.createElement(L,{dashboard:e.dashboard,isReadonly:e.isReadonly,imageUrl:e.emptyImageUrl,addWidgetApplink:e.widgetAppLinks.widgetWizard}))}var T=n(38143),A=n(17101),k=n(72639),O=n(12754),C=n(39151),x=n(1666),N=n(80889),I=n(7198),P=n(98064),D=n(61699),U=n(31949),F=n(22902),R=n(79612),j=n(37802),_=n(69454),B=n(52167),G=n(76753),M=n(73417),W=n(99742),H=n(51855),V=n(27638),Z=n(85369),Y=n(23737),z=n(33192),q=n(48688),$=n(27051);function J(e){return J="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},J(e)}function K(){K=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,n){return e[t]=n}}function u(e,t,n,r){var i=t&&t.prototype instanceof g?t:g,o=Object.create(i.prototype),c=new N(r||[]);return a(o,"_invoke",{value:k(e,n,c)}),o}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=u;var p="suspendedStart",f="suspendedYield",m="executing",h="completed",v={};function g(){}function y(){}function b(){}var w={};l(w,o,(function(){return this}));var E=Object.getPrototypeOf,L=E&&E(E(I([])));L&&L!==n&&r.call(L,o)&&(w=L);var S=b.prototype=g.prototype=Object.create(w);function T(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function A(e,t){function n(a,i,o,c){var s=d(e[a],e,i);if("throw"!==s.type){var l=s.arg,u=l.value;return u&&"object"==J(u)&&r.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,o,c)}),(function(e){n("throw",e,o,c)})):t.resolve(u).then((function(e){l.value=e,o(l)}),(function(e){return n("throw",e,o,c)}))}c(s.arg)}var i;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return i=i?i.then(a,a):a()}})}function k(t,n,r){var a=p;return function(i,o){if(a===m)throw Error("Generator is already running");if(a===h){if("throw"===i)throw o;return{value:e,done:!0}}for(r.method=i,r.arg=o;;){var c=r.delegate;if(c){var s=O(c,r);if(s){if(s===v)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===p)throw a=h,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=m;var l=d(t,n,r);if("normal"===l.type){if(a=r.done?h:f,l.arg===v)continue;return{value:l.arg,done:r.done}}"throw"===l.type&&(a=h,r.method="throw",r.arg=l.arg)}}}function O(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,O(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),v;var i=d(a,t.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,v;var o=i.arg;return o?o.done?(n[t.resultName]=o.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function C(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function x(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function N(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(C,this),this.reset(!0)}function I(t){if(t||""===t){var n=t[o];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,i=function n(){for(;++a<t.length;)if(r.call(t,a))return n.value=t[a],n.done=!1,n;return n.value=e,n.done=!0,n};return i.next=i}}throw new TypeError(J(t)+" is not iterable")}return y.prototype=b,a(S,"constructor",{value:b,configurable:!0}),a(b,"constructor",{value:y,configurable:!0}),y.displayName=l(b,s,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===y||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,l(e,s,"GeneratorFunction")),e.prototype=Object.create(S),e},t.awrap=function(e){return{__await:e}},T(A.prototype),l(A.prototype,c,(function(){return this})),t.AsyncIterator=A,t.async=function(e,n,r,a,i){void 0===i&&(i=Promise);var o=new A(u(e,n,r,a),i);return t.isGeneratorFunction(n)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},T(S),l(S,s,"Generator"),l(S,o,(function(){return this})),l(S,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=I,N.prototype={constructor:N,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(x),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function a(r,a){return c.type="throw",c.arg=t,n.next=r,a&&(n.method="next",n.arg=e),!!a}for(var i=this.tryEntries.length-1;i>=0;--i){var o=this.tryEntries[i],c=o.completion;if("root"===o.tryLoc)return a("end");if(o.tryLoc<=this.prev){var s=r.call(o,"catchLoc"),l=r.call(o,"finallyLoc");if(s&&l){if(this.prev<o.catchLoc)return a(o.catchLoc,!0);if(this.prev<o.finallyLoc)return a(o.finallyLoc)}else if(s){if(this.prev<o.catchLoc)return a(o.catchLoc,!0)}else{if(!l)throw Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return a(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var i=a;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var o=i?i.completion:{};return o.type=e,o.arg=t,i?(this.method="next",this.next=i.finallyLoc,v):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),v},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),x(n),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;x(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:I(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),v}},t}function Q(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var X=function(e,t,n,r){return new(n||(n=Promise))((function(a,i){function o(e){try{s(r.next(e))}catch(e){i(e)}}function c(e){try{s(r.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,c)}s((r=r.apply(e,t||[])).next())}))},ee=a.T.encloseNamespace("dashboard.dashboard");function te(e){var t,n,a,u,d,p,h,v,g=o.a.useBasicFetch(C.L.config()),y=o.a.useBasicFetch(U.N.currentUser()),b=o.a.useBasicFetch((null===(t=y.data)||void 0===t?void 0:t.isAuthenticated)&&U.N.user(y.data.id)),w=(0,F.T)(),E=w.hasLocalPermissions,L=w.hasPermissions,J=(0,H.G)().isPlugin,te=o.a.useBasicFetch(E(f.E.ManageDiscoverPreferences)&&y.data&&x.h.customer(y.data.customerId)),ne=o.a.useBasicFetch((null===(n=y.data)||void 0===n?void 0:n.isAuthenticated)&&x.h.yearGroups(y.data.customerId)),re=o.a.useBasicFetch((null===(a=y.data)||void 0===a?void 0:a.isAuthenticated)&&P.D.libraries()),ae=(0,Y.y)({targetType:m.ku.Discover,queryParams:e.queryParams,presentationSlug:e.presentationSlug}),ie=ae.dashboard,oe=ae.presentation,ce=ae.audiences,se=o.a.useGetFetchAsync(),le=(0,j.r)(null),ue=(0,V.u)(l.LZ.Dashboard),de=ue.setFavourite,pe=ue.canFavourite,fe=(h=(0,c.D)(T.g.AUDIENCE_FILTER,void 0,{storage:i.Z1.SessionStorage}),v=1,function(e){if(Array.isArray(e))return e}(h)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,c=[],s=!0,l=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);s=!0);}catch(e){l=!0,a=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw a}}return c}}(h,v)||function(e,t){if(e){if("string"==typeof e)return Q(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Q(e,t):void 0}}(h,v)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0],me=(0,$.E)(_.T.getAudienceParams(fe)),he=function(e){return+k.p[null==e?void 0:e.learningLevel]===k.p.Level_1?"VariantOne":"VariantTwo"}(oe);(0,R.M)(G.CG.getDiscoverMetadata({content:oe,phraseContext:{phraseHandler:ee,titlePhrase:"pageTitle".concat(he),descriptionPhrase:"pageDescription".concat(he)},canonicalLink:z.f.getCanonicalLink(),allowIndexing:z.f.allowIndexing(),hrefLang:z.f.getStaticRouteHrefLang(null==oe?void 0:oe.learningLevel,me.discover)}));var ve=(0,Z.N)().showCalendar;return r.createElement("div",{className:"bg-white px-4"},r.createElement(M.T,null),r.createElement(S,{currentUser:y.data,dashboard:ie.data,widgetAppLinks:me,headerAppLinks:(0,$.u)(),presentation:oe,imageCdnUrl:g.data.imageCdnUrl,resourceThumbnailFallbackImageUrl:W.W.Fallbacks.RESOURCE_THUMBNAIL,getWidgetContentRequest:function(){for(var e=q.g.hasTwig(re.data,y.data),t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return N._.discoverWidgetContent.apply(N._,[e].concat(n))},setFavourite:de,audiences:ce.data,canFavourite:pe,updatePreferences:function(e,t,n,r){return X(this,void 0,void 0,K().mark((function t(){var a,i;return K().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a=r.filter((function(e){return!e.hidden&&n.find((function(t){return t.id===e.id})).hidden})),i=r.filter((function(e){return!!e.hidden&&!n.find((function(t){return t.id===e.id})).hidden})),!(null==a?void 0:a.length)){t.next=5;break}return t.next=5,se(D.o.followSubjects(a.map((function(e){return e.id}))));case 5:if(!(null==i?void 0:i.length)){t.next=8;break}return t.next=8,se(D.o.unfollowSubjects(i.map((function(e){return e.id}))));case 8:return t.abrupt("return",se(N._.updateWidgetPreferences(e,r.map((function(e){return{id:e.id,index:e.index}})),y.data)));case 9:case"end":return t.stop()}}),t)})))},hasPermissions:L,hasLocalPermissions:E,onSubmitFeedback:L(f.C.CanSubmitFeedback)&&function(e){return X(this,void 0,void 0,K().mark((function t(){var n;return K().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,se(I.f.submitFeedback({type:A.n.Footer,user:B.m.getUserInfo(y.data,te.data),tags:B.m.getTags(y.data,O.x.Primary,L(f.C.StudentExperience),["discover","in product feedback"])},{reaction:e.type,feedback:e.content,location:"Discover Footer",presentationName:oe.description,presentationId:oe.id,dashboardName:ie.data.name,dashboardId:ie.data.id}));case 2:return n=t.sent,s.k.logUserAction({feedbackType:e.type,content:e.content,presentationId:oe.id,dashboardId:ie.data.id},{actionType:l.Vw.Submit,location:l.LZ.DiscoverFooter,entity:l.py.Feedback,workflowPhase:l.eu.Complete}),t.abrupt("return",n);case 5:case"end":return t.stop()}}),t)})))},yearGroups:ne.data,lazyLoad:!z.f.isBot(),showCalendar:ve,jobTitle:null===(p=null===(d=null===(u=b.data)||void 0===u?void 0:u.userProfile)||void 0===d?void 0:d.metadata)||void 0===p?void 0:p.jobTitle,imageUrls:{onboardingAdminBackgroundFull:W.W.OnboardingV2.Widget.ADMIN_BACKGROUND_FULL,onboardingAdminBackground:W.W.OnboardingV2.Widget.ADMIN_BACKGROUND,onboardingTeacherBackground:W.W.OnboardingV2.Widget.TEACHER_BACKGROUND},settings:le,isPlugin:J}))}},27051:(e,t,n)=>{n.d(t,{E:()=>f,u:()=>m});var r=n(75896),a=n(28400),i=n(17475),o=n(183),c=n(14070),s=n(97291),l=n(22490),u=n(67963),d=n(82431),p="classification-latest-releases";function f(e){return{classification:function(t){return{application:s.O.SUBJECT,action:c.e.Subjects.CLASSIFICATION,args:[null==t?void 0:t.id,a.m.slugify(null==t?void 0:t.name)],params:e||{}}},videoType:function(e,t){return l.W.getAppLink(e,Object.assign(Object.assign({},t),{context:o.Q.Widget}))},series:d.j.getSeriesAppLink,subText:function(e){return d.j.getSeriesAppLink(e.series)},playlist:function(e){return{application:s.O.PLAYLISTS,action:c.e.Playlists.PLAYLIST,args:[e.id,a.m.slugify(e.name)]}},latestReleases:function(){return{application:s.O.CONTENT_UPDATES,action:c.e.ContentUpdates.CONTENT_UPDATES}},allTopics:function(){return{application:s.O.SUBJECT,action:c.e.Subjects.CLASSIFICATION_ALL}},classificationLatestReleases:function(e){return e.id===p?{application:s.O.CONTENT_UPDATES,action:c.e.ContentUpdates.CONTENT_UPDATES}:{application:s.O.CONTENT_UPDATES,action:c.e.ContentUpdates.CLASSIFICATION_UPDATE,args:[e.id,a.m.slugify(e.name)]}},widgetVideoList:function(e,t){return{application:s.O.DASHBOARD,action:c.e.Dashboard.DASHBOARD,args:[e,a.m.slugify(t)]}},watchHistory:function(){return{application:s.O.WATCH_HISTORY,action:c.e.WatchHistory.HOME}},rating:function(e,t){return{application:s.O.SEARCH,action:c.e.Search.HOME,params:{moviesAndTv:!0,rating:i.S.getFrontendParamValue([r.m.first(t),e])}}},company:function(e){return{application:s.O.MOVIES_AND_TV,action:c.e.MoviesAndTv.COMPANY_DASHBOARD,args:[e.id,a.m.slugify(e.name)]}},discover:function(){return{application:s.O.DASHBOARD,action:c.e.Dashboard.HOME}},calendar:function(){return{application:s.O.CALENDAR,action:c.e.Calendar.CALENDAR}},calendarMonth:function(e,t){var n={application:s.O.CALENDAR,action:c.e.Calendar.CALENDAR_MONTH,args:[e.toLowerCase()]};return t&&(n.params={year:t}),n},onboardingStep:function(e){return(0,u.u)()[e]},onboardingAppLinks:function(){return(0,u.u)()},classroomGuide:l.W.getClassroomGuideAppLink,interactiveGuidance:l.W.getInteractiveGuidanceAppLink,resourceGuidance:l.W.getResourceGuidanceAppLink}}function m(){return{forYou:{application:s.O.DASHBOARD,action:c.e.Dashboard.HOME},whatsNew:{application:s.O.CONTENT_UPDATES,action:c.e.ContentUpdates.CONTENT_UPDATES},calendar:{application:s.O.CALENDAR,action:c.e.Calendar.CALENDAR}}}},73417:(e,t,n)=>{n.d(t,{T:()=>u});var r=n(32735),a=n(11607),i=n(83914),o=n(83345),c=n(87348),s=n(35223),l="shared.upgradeFeedbackBanner";function u(){var e=(0,c.Q)(),t=e.showFeedbackBanner,n=e.dismissFeedbackBanner;return t?r.createElement("div",{className:"alert bg-light-blue p-2 rounded text-info fw-semibold d-flex justify-content-between align-items-center"},r.createElement(o.x,{namespace:l,phrase:"message",options:{url:"https://www.clickvieweducation.com/en-au/blog/product/exchange-tv-new-look"}}),r.createElement(a.L,{onClick:n},r.createElement(i.x,{svgName:s.vn.Close,className:"ms-2 svg-container"}))):r.createElement(r.Fragment,null)}},85369:(e,t,n)=>{n.d(t,{N:()=>g});var r=n(32735),a=n(35242),i=n(20354),o=n(27022),c=n(72639),s=n(31949),l=n(37802),u=n(87114),d=n(86698);function p(e){return p="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},p(e)}function f(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,c=[],s=!0,l=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);s=!0);}catch(e){l=!0,a=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return m(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function h(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=p(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=p(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==p(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var v=h(h(h(h(h(h({},o.t.AU,[c.p.Level_1]),o.t.US,[c.p.Level_1]),o.t.UK,[c.p.Level_1]),o.t.SCOT,[c.p.Level_1]),o.t.NZ,[]),o.t.GLOBAL,[]);function g(){var e,t=(0,l.r)(null),n=t.hasSpecialEventCalendar,o=t.isLoadingSettings,c=(0,d.y)({redirectOnError:!0}).activePresentation,p=i.a.useBasicFetch(s.N.currentUser()),m=v[null===(e=p.data)||void 0===e?void 0:e.contentRegion],h=u.i.getMappedPresentationLevel(null==c?void 0:c.learningLevel),g=!(null==m?void 0:m.find((function(e){return e.toString()===(null==h?void 0:h.toString())}))),y=!o&&!n,b=f(r.useState(!y&&!g),2),w=b[0],E=b[1],L=f(r.useState(o||!(null==c?void 0:c.id)),2),S=L[0],T=L[1];return r.useEffect((function(){y||g?E(!1):S||E(!0),T(o||!(null==c?void 0:c.id))}),[n,null==c?void 0:c.id,S]),a.h.isDevelopment?{showCalendar:!0,isLoading:!1}:{showCalendar:w,isLoading:S}}},87432:(e,t,n)=>{n.d(t,{Z:()=>r});const r={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}}}]);
|
|
3
|
+
//# sourceMappingURL=6741-ff3e4a33a5-lite.chunk.js.map
|