@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/9620-630f9e6344-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/common/src/react/hooks/UseEventsServiceSubscribe.ts","file:///app/packages/libs/common/src/react/services/EventsService.ts","file:///app/packages/libs/shared/src/components/curriculum-links/CurriculumLinkItem.tsx","file:///app/packages/libs/shared/src/components/curriculum-links/CurriculumLinksEmptyState.tsx","file:///app/packages/libs/shared/src/components/curriculum-links/partial-loading/PartialCurriculumLinks.tsx","file:///app/packages/libs/shared/src/components/curriculum-links/partial-loading/partial-curriculum-links.scss","file:///app/packages/libs/shared/src/components/play-page-v2/curriculum-links/curriculum-links.scss","file:///app/packages/libs/shared/src/components/play-page-v2/curriculum-links/CurriculumLinksV2.tsx","file:///app/packages/libs/shared/src/components/play-page-v2/curriculum-links/CurriculumsWidget.tsx","file:///app/packages/libs/shared/src/components/play-page-v2/glance/VideoAtAGlanceUtilsV2.ts","file:///app/packages/libs/shared/src/components/play-page-v2/glance/points-of-interest-list/points-of-interest-list.scss","file:///app/packages/libs/shared/src/components/play-page-v2/glance/points-of-interest-list/PointsOfInterestList.tsx","file:///app/packages/libs/shared/src/components/play-page-v2/glance/VideoAtAGlanceV2.tsx","file:///app/packages/libs/shared/src/components/tags/PartialTagItem.tsx","file:///app/packages/libs/shared/src/components/tags/TagHelper.ts","file:///app/packages/libs/shared/src/components/tags/TagItem.tsx","file:///app/packages/libs/shared/src/components/tags/TagList.tsx","file:///app/packages/libs/shared/src/components/widgets/curated-widgets/components/header/widget-header.scss","file:///app/packages/libs/shared/src/components/widgets/curated-widgets/components/header/WidgetHeader.tsx","file:///app/packages/libs/shared/src/utils/DragHelper.ts","file:///app/packages/libs/shared/src/components/widgets/sliding-list/SlidingListContainer.tsx","file:///app/packages/libs/shared/src/components/widgets/widget-button/widget-button.scss","file:///app/packages/libs/shared/src/components/widgets/widget-button/WidgetButton.tsx","file:///app/packages/libs/shared/src/enums/CssMeasurement.ts","file:///app/packages/libs/shared/src/enums/CurriculumType.ts","file:///app/packages/libs/shared/src/enums/TagType.ts","file:///app/packages/libs/shared/src/enums/WidgetInteraction.ts","file:///app/packages/libs/shared/src/hooks/UseGetMediaQueryString.ts","file:///app/packages/projects/lite/src/shared/hooks/useVideoFeatureAccess.ts","file:///app/packages/libs/shared/src/components/video-guidance/classroom-guide/popup/VideoGuidanceClassroomGuidePopup.tsx","file:///app/packages/projects/lite/src/shared/views/video-guidance-classroom-guide/VideoGuidanceClassroomGuideView.tsx","file:///app/packages/libs/shared/src/components/curriculum-links/curriculum-links.scss","file:///app/packages/libs/shared/src/components/play-page-v2/glance/video-at-a-glance.scss","file:///app/packages/libs/shared/src/components/tags/tags.scss"],"sourcesContent":["import { useEffect } from 'react';\n\nimport { EventsService } from 'libs/common/react/services/EventsService';\n\n/**\n * \n * @param event the event to subscribe to\n * @param callback the callback function\n * @param once whether to subscribe once\n * @param shouldSubscribe conditionally determine whether to subscribe to events\n * @returns unsubscribe function\n */\nexport function useEventsServiceSubscribe(\n event: string,\n callback: (...args: any[]) => void,\n once?: boolean,\n shouldSubscribe?: boolean\n): () => void {\n const unsubscribe = () => {\n EventsService.unsubscribe(event, callback);\n };\n\n useEffect(() => {\n if (!shouldSubscribe)\n return;\n\n once ? EventsService.subscribeOnce(event, callback) : EventsService.subscribe(event, callback);\n\n return () => {\n unsubscribe();\n };\n }, []);\n\n return unsubscribe;\n}","type EventCallback = (...args: any[]) => void;\n\ninterface EventListener {\n callback: EventCallback,\n executionLimit?: number;\n executionCount?: number;\n}\n\ninterface EventsListenerHash {\n [event: string]: EventListener[];\n}\n\nexport class StaticEventsService {\n public subscribe(event: string, callback: EventCallback): void {\n this.registerListener(event, callback);\n }\n\n public subscribeOnce(event: string, callback: EventCallback): void {\n this.registerListener(event, callback, 1);\n }\n\n public unsubscribe(event: string, callback?: EventCallback): void {\n this.deregisterListener(event, callback);\n }\n\n public trigger(event: string, ...args: any[]): void {\n this.triggerCallbacks(event, args);\n }\n\n /**\n * Private functions/members below\n */\n\n private listeners: EventsListenerHash = {};\n\n private registerListener(event: string, callback: EventCallback, executionLimit?: number) {\n if (typeof event !== 'string')\n throw new Error('Event name must be a string');\n\n if (typeof callback !== 'function')\n throw new Error('Event callback must be a function');\n\n if (!!executionLimit && typeof executionLimit !== 'number')\n throw new Error('Execution limit must be a number or undefined');\n\n this.listeners[event] = this.listeners[event] ?? [];\n this.listeners[event].push({ callback, executionLimit });\n }\n\n private deregisterListener(event: string, callback?: EventCallback): void {\n if (typeof event !== 'string')\n throw new Error('Event name must be a string');\n\n if (!!callback && typeof callback !== 'function')\n throw new Error('Event callback must be a function');\n \n if (!callback) {\n this.listeners[event] = [];\n return;\n }\n\n const idxToRemove = this.listeners[event]?.findIndex(e => e.callback === callback);\n\n if (typeof idxToRemove !== 'number' || idxToRemove === -1)\n return;\n\n this.listeners[event].splice(idxToRemove, 1);\n\n if (this.listeners[event].length === 0)\n delete this.listeners[event];\n }\n\n private triggerCallbacks(event: string, ...args: any[]): void {\n if (!this.listeners[event])\n return;\n\n const callbacksToRemove: EventCallback[] = [];\n\n this.listeners[event].forEach(listener => {\n if (typeof listener.executionLimit === 'number') {\n listener.executionCount = listener.executionCount ?? 0;\n listener.executionCount++;\n\n if (listener.executionCount === listener.executionLimit)\n callbacksToRemove.push(listener.callback);\n }\n\n listener.callback.apply(null, ...args);\n });\n\n if (!callbacksToRemove.length)\n return;\n\n callbacksToRemove.forEach(callback => this.deregisterListener(event, callback));\n }\n}\n\nexport const EventsService = new StaticEventsService();","import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { Presentation } from 'libs/shared/interfaces';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\n\nimport styles from './curriculum-links.scss';\n\ninterface CurriculumLinkItemProps {\n data: Presentation;\n onChangeCurriculum: (id: string) => any;\n selected: boolean;\n}\n\nexport function CurriculumLinkItem(props: CurriculumLinkItemProps): JSX.Element {\n const { data: curriculumTag } = props;\n\n return (\n <DivButton\n key={curriculumTag.id}\n className={`p-1 pe-2 rounded-pill d-inline-flex align-items-center cursor-pointer ${styles.tag} ${props.selected ? styles.selected : ''}`}\n onClick={() => props.onChangeCurriculum(curriculumTag.id.toString())}\n >\n <div className={`bg-white ${styles.cover} rounded-circle border`}>\n <img\n src={ImageHelper.createUrl(curriculumTag.cover.url, { size: ImageSize.Small })}\n alt={curriculumTag.name}\n className='rounded-circle'\n />\n </div>\n <div className='ms-2'>\n {curriculumTag.name}\n </div>\n </DivButton>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'shared.curriculumLinks';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface CurriculumLinksEmptyStateProps {\n emptyStateUrl: string;\n}\n\nexport function CurriculumLinksEmptyState(props: CurriculumLinksEmptyStateProps): JSX.Element {\n return (\n <EmptyState className='pt-3'>\n <EmptyState.Image src={props.emptyStateUrl} altText={getPhrase('emptyInfo')} size='small'/>\n <EmptyState.Heading>\n <Text namespace={namespace} phrase='emptyHeading' />\n </EmptyState.Heading>\n <EmptyState.Info>\n <Text namespace={namespace} phrase='emptyInfo' />\n </EmptyState.Info>\n </EmptyState>\n );\n}","import React from 'react';\n\nimport styles from './partial-curriculum-links.scss';\n\nconst PartialCurriculumLinkSection = () => (\n <>\n <div className={`partial-loading-background rounded-pill py-1 px-2 d-inline-block me-1 mb-2 ${styles.audience}`} />\n <div>\n <div className={`partial-loading-background mb-1 ${styles.area}`} />\n\n <div className='mb-2 d-flex'>\n <div className={`me-1 align-self-start ${styles.code}`}>\n <div className={`partial-loading-background rounded-pill py-1 px-2 d-inline-block w-100 h-100`} />\n </div>\n \n <div className={`partial-loading-background ${styles.description}`} />\n </div>\n </div>\n </>\n);\n\nexport function PartialCurriculumLinks(): JSX.Element {\n return (\n <div>\n <div className='mb-3'>\n <PartialCurriculumLinkSection />\n </div>\n\n <div className='mb-3'>\n <PartialCurriculumLinkSection />\n </div>\n\n <div>\n <PartialCurriculumLinkSection />\n </div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"audience\":\"vDcrq\",\"area\":\"GXhoW\",\"code\":\"goKaS\",\"description\":\"vFew6\"};","// extracted by mini-css-extract-plugin\nexport default {\"curriculumSubject\":\"i4D3h\",\"curriculumSet\":\"WCdf9\",\"areaLeafSet\":\"o8H8s\",\"closeButton\":\"McsPs\",\"leafDescriptionOnly\":\"xmEEo\"};","import React from 'react';\n\nimport { CurriculumLinksEmptyState } from 'libs/shared/components/curriculum-links/CurriculumLinksEmptyState';\nimport { PartialCurriculumLinks } from 'libs/shared/components/curriculum-links/partial-loading/PartialCurriculumLinks';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { CurriculumType } from 'libs/shared/enums/CurriculumType';\nimport { Curriculum } from 'libs/shared/interfaces';\n\nimport styles from './curriculum-links.scss';\n\nconst BRACKET_SEGMENT_REGEX = /(.*)\\s\\((.*)?\\)/i;\n\nconst namespace = 'shared.curriculumLinks';\n\nconst BASE_PILL_CLASS = 'text-nowrap font-size-normal rounded-pill py-1 px-2 my-0 d-inline-block fw-semibold';\n\ninterface CurriculumStructure {\n [CurriculumType.Subject]: Curriculum<CurriculumType.Subject>;\n [CurriculumType.Audience]: Curriculum<CurriculumType.Audience>;\n areasAndLeaves: Array<{\n [CurriculumType.Area]: Curriculum<CurriculumType.Area>[];\n [CurriculumType.Leaf]: Curriculum<CurriculumType.Leaf>[];\n }>;\n}\n\ninterface CurriculumLeafProps {\n leaf: Curriculum<CurriculumType.Leaf>;\n codeWidth: number;\n trySetMaxCodeWidth: React.Dispatch<React.SetStateAction<number>>;\n uiContainsCodes: boolean;\n}\n\nfunction CurriculumLeaf(props: CurriculumLeafProps): JSX.Element {\n function getCurriculumCodeClass(): string {\n const baseClass = BASE_PILL_CLASS + ' bg-white border';\n\n // If a leaf has no code but the rest of the UI has leaf nodes w/ codes, we show a special \"No code\" pill\n if (!props.leaf.name && props.uiContainsCodes)\n return baseClass + ' border-secondary text-secondary';\n\n return baseClass + ' border-dark';\n }\n\n const codeRef = React.useRef<HTMLDivElement>();\n\n React.useEffect(() => {\n if (!codeRef.current)\n return;\n\n const { width } = codeRef.current.getBoundingClientRect();\n\n props.trySetMaxCodeWidth(width);\n }, [codeRef.current]);\n\n return (\n <div className='d-flex'>\n {(() => {\n if (!props.leaf.description)\n return <p className='m-0' dangerouslySetInnerHTML={{ __html: props.leaf.name }} />;\n\n /**\n * If a leaf has no code but the rest of the UI has leaf nodes\n * with codes, we show a special \"No code\" pill. Example: https://imgur.com/3L1Ela3\n */\n if (!props.leaf.name && props.uiContainsCodes) {\n return (\n <>\n <div\n className='me-1 align-self-start'\n style={{ minWidth: props.codeWidth ? `${props.codeWidth}px` : 'auto' }}\n >\n <h5 ref={codeRef} className={getCurriculumCodeClass()}>\n <Text namespace={namespace} phrase='noCode' />\n </h5>\n </div>\n <p className='m-0 align-self-center' dangerouslySetInnerHTML={{ __html: props.leaf.description }} />\n </>\n );\n }\n\n /**\n * If a leaf has no code and the rest of the UI leaf nodes have no code, we just\n * display the description with a bullet point. Example: https://imgur.com/jzJvmWs\n */\n if (!props.leaf.name && !props.uiContainsCodes)\n return <p className='m-0' dangerouslySetInnerHTML={{ __html: props.leaf.description }} />;\n\n return (\n <>\n <div\n className='me-1 align-self-start'\n style={{ minWidth: props.codeWidth ? `${props.codeWidth}px` : 'auto' }}\n >\n <h5 ref={codeRef} className={getCurriculumCodeClass()}>{props.leaf.name}</h5>\n </div>\n <p className='m-0 align-self-center' dangerouslySetInnerHTML={{ __html: props.leaf.description }} />\n </>\n );\n })()}\n </div>\n );\n}\n\ninterface CurriculumSubjectProps {\n linkSet: CurriculumStructure;\n codeWidth: number;\n trySetMaxCodeWidth: React.Dispatch<React.SetStateAction<number>>;\n}\n\nfunction CurriculumSubject(props: CurriculumSubjectProps): JSX.Element {\n const areaAndLeafSets: { [areaText: string]: Curriculum<CurriculumType.Leaf>[]; } = {};\n\n let uiContainsCodes = false;\n\n props.linkSet.areasAndLeaves.forEach(areaAndLeafSet => {\n const areaText = areaAndLeafSet[CurriculumType.Area].map(ca => ca.name).join(' - ');\n\n if (areaAndLeafSets[areaText]) {\n areaAndLeafSet[CurriculumType.Leaf].forEach(leaf => {\n areaAndLeafSets[areaText].push(leaf);\n\n // We need the info on if _any_ leaf node has a code in it. See why in the comments in `<CurriculumLeaf />`\n if (leaf.name)\n uiContainsCodes = true;\n });\n\n return;\n }\n\n areaAndLeafSets[areaText] = areaAndLeafSet[CurriculumType.Leaf];\n });\n\n function getAudienceText(): string {\n const audienceSegment = props.linkSet[CurriculumType.Audience].name;\n const subjectSegment = props.linkSet[CurriculumType.Subject].name;\n\n /**\n * In some curriculums, such as the UK curriculum, the audience string may contain a year group\n * in brackets. For example, it may be \"Lower Key Stage 2 (Year 4)\".\n * This regex will pull that segment out if it exists.\n */\n const audienceBracketSegments = audienceSegment.match(BRACKET_SEGMENT_REGEX);\n\n if (audienceBracketSegments)\n return `${audienceBracketSegments[1]} • ${audienceBracketSegments[2]} • ${subjectSegment}`;\n\n return `${audienceSegment} • ${subjectSegment}`;\n }\n\n function getLeafStyleClass(leaf: Curriculum<CurriculumType.Leaf>): string {\n const className = 'mb-2';\n\n if (!leaf.name && !uiContainsCodes)\n return className + ' ms-4 ' + styles.leafDescriptionOnly;\n\n return className;\n }\n\n return (\n <>\n <h3 className={`${BASE_PILL_CLASS} text-white bg-dark-blue fw-normal me-1 mb-2`}>\n {getAudienceText()}\n </h3>\n\n <div className={`me-2 ${styles.curriculumSubject}`}>\n {Object.keys(areaAndLeafSets).map((areaText, i) => {\n return (\n <div key={i} className={styles.areaLeafSet} >\n {areaText && <h4 className='mb-1 font-size-normal'>{areaText}</h4>}\n <ul className='list-unstyled'>\n {areaAndLeafSets[areaText].map(leaf => (\n <li key={leaf.id} className={getLeafStyleClass(leaf)}>\n <CurriculumLeaf\n leaf={leaf}\n codeWidth={props.codeWidth}\n trySetMaxCodeWidth={props.trySetMaxCodeWidth}\n uiContainsCodes={uiContainsCodes}\n />\n </li>\n ))}\n </ul>\n </div>\n );\n })}\n </div>\n </>\n );\n}\n\ninterface CurriculumLinksSet {\n [subjectAndAudienceIdKey: string]: CurriculumStructure\n}\n\ninterface CurriculumLinksV2Props {\n curriculumLinks?: Curriculum[][];\n emptyStateUrl: string;\n}\n\nexport function CurriculumLinksV2(props: CurriculumLinksV2Props): JSX.Element {\n const [ codeWidth, setCodeWidth ] = React.useState(0);\n\n function trySetMaxCodeWidth(width: number): void {\n /**\n * The width of the curriculum code column should be identical for each leaf node, meaning\n * the leaf description text will be perfectly vertically aligned all the way down.\n * See here for example: https://imgur.com/MbganZf\n * \n * This is achieved by us setting the state for the maximum code width, and forcing all\n * smaller codes to abide by that max width.\n * \n * This value is used in the `<CurriculumLeaf />` component.\n */\n setCodeWidth(currentVal => {\n if (currentVal >= width)\n return currentVal;\n\n return width;\n });\n }\n\n /**\n * Here, we're taking the structure of links from the backend, and restructuring it in a way\n * that resembles the structure of our UI more closely. The general idea is:\n * \n * CurriculumAudience - CurriculumSubject\n * CurriculumAreas\n * CurriculumLeaves\n */\n const curriculumLinkSets = React.useMemo(() => {\n const newSet: CurriculumLinksSet = {};\n\n props.curriculumLinks.forEach(linkSet => {\n let subject: Curriculum<CurriculumType.Subject> = null;\n let audience: Curriculum<CurriculumType.Audience> = null;\n const areas: Curriculum<CurriculumType.Area>[] = [];\n const leaves: Curriculum<CurriculumType.Leaf>[] = [];\n \n linkSet.forEach(curriculumObj => {\n switch (curriculumObj.type) {\n case CurriculumType.Subject:\n subject = curriculumObj as Curriculum<CurriculumType.Subject>;\n break;\n case CurriculumType.Audience:\n audience = curriculumObj as Curriculum<CurriculumType.Audience>;\n break;\n case CurriculumType.Area:\n areas.push(curriculumObj as Curriculum<CurriculumType.Area>);\n break;\n case CurriculumType.Leaf:\n leaves.push(curriculumObj as Curriculum<CurriculumType.Leaf>);\n break;\n default:\n break;\n }\n });\n \n const key = `${subject.id}:${audience.id}`;\n \n if (newSet[key]) {\n newSet[key].areasAndLeaves.push({\n [CurriculumType.Area]: areas,\n [CurriculumType.Leaf]: leaves\n });\n \n return;\n }\n \n newSet[key] = {\n [CurriculumType.Subject]: subject,\n [CurriculumType.Audience]: audience,\n areasAndLeaves: [{\n [CurriculumType.Area]: areas,\n [CurriculumType.Leaf]: leaves\n }]\n };\n });\n\n return newSet;\n }, [props.curriculumLinks]);\n\n if (!props.curriculumLinks)\n return <PartialCurriculumLinks />;\n\n if (!props.curriculumLinks?.length) {\n return <CurriculumLinksEmptyState emptyStateUrl={props.emptyStateUrl} />;\n }\n\n return (\n <ul className='list-unstyled m-0'>\n {Object.keys(curriculumLinkSets).map((linkSetKey, i) => (\n <li key={`linkset-${i}`} className={styles.curriculumSet}>\n <CurriculumSubject\n linkSet={curriculumLinkSets[linkSetKey]}\n trySetMaxCodeWidth={trySetMaxCodeWidth}\n codeWidth={codeWidth}\n />\n </li>\n ))}\n </ul>\n );\n}","import React from 'react';\n\nimport { CurriculumLinkItem } from 'libs/shared/components/curriculum-links/CurriculumLinkItem';\nimport { PartialTagItem } from 'libs/shared/components/tags/PartialTagItem';\nimport { DynamicWidget } from 'libs/shared/components/widgets/dynamic-widget';\nimport { CurriculumData, Presentation } from 'libs/shared/interfaces';\n\ninterface CurriculumsWidgetProps {\n curriculums: CurriculumData;\n selectedCurriculum: Presentation;\n onChangeCurriculum: (curriculumId: string) => void;\n}\n\nexport function CurriculumsWidget(props: CurriculumsWidgetProps): JSX.Element {\n return (\n <DynamicWidget\n collection={props.selectedCurriculum?.id ? props.curriculums.nonEmptyCurriculums : null}\n childClassName='flex-shrink-0'\n childComponent={_props => {\n return (\n <CurriculumLinkItem\n {..._props}\n selected={props.selectedCurriculum?.id?.toString() === _props.data.id.toString()}\n onChangeCurriculum={props.onChangeCurriculum}\n />\n );\n }}\n partialLoadingComponent={() => <PartialTagItem />}\n widgetDataDeps={[ props.selectedCurriculum?.id?.toString(), props.onChangeCurriculum ]}\n />\n );\n}","import { MutableRefObject, useEffect, useRef, useState } from 'react';\nimport * as marked from 'marked';\n\nimport { useEventsServiceSubscribe } from 'libs/common/react/hooks/UseEventsServiceSubscribe';\nimport { EventsService } from 'libs/common/react/services/EventsService';\n\nimport { Clip, Glance, PointOfInterest, Video } from 'libs/shared/interfaces';\n\nimport styles from './video-at-a-glance.scss';\n\nconst POI_LINK_LINE = /\\[\\]\\(cv:\\/\\/poi\\?id=\\d+\\)\\n*/g;\n\nfunction stripPoisFromGlanceContent(glanceContent: string): string {\n return glanceContent.replace(POI_LINK_LINE, '');\n}\n\nfunction getLearningIntentionHTML(glance: Glance): string {\n const learningIntention = stripPoisFromGlanceContent(glance.content);\n\n return marked(learningIntention);\n}\n\nexport function useLearningIntentionMarkdown(\n video: Video,\n hasGlanceData?: boolean\n): string {\n const [ markdownHTML, setMarkdownHTML ] = useState('');\n\n useEffect(() => {\n if (!hasGlanceData)\n return;\n\n const content = getLearningIntentionHTML(video.glance);\n\n setMarkdownHTML(content);\n }, [ video.glance?.content, hasGlanceData ]);\n\n return markdownHTML;\n}\n\nexport function hasGlanceData(video: Video | Clip): boolean {\n return video.glance?.content && video.glance?.format === 'text/markdown';\n}\n\nexport function useHighlightPointOfInterest(\n pointOfInterest: PointOfInterest,\n shouldHighlight: boolean\n): MutableRefObject<HTMLDivElement> {\n const ref = useRef<HTMLDivElement>();\n\n useEventsServiceSubscribe('player:poi:mouseover', onPlayerPoiMouseOver, null, shouldHighlight);\n useEventsServiceSubscribe('player:poi:mouseleave', onPlayerPoiMouseLeave, null, shouldHighlight);\n\n useEffect(() => {\n if (!ref.current || !shouldHighlight)\n return;\n\n ref.current?.addEventListener('mouseover', onGlancePoiMouseOver);\n ref.current?.addEventListener('mouseleave', onGlancePoiMouseLeave);\n\n return () => {\n ref.current?.removeEventListener('mouseover', onGlancePoiMouseOver);\n ref.current?.removeEventListener('mouseleave', onGlancePoiMouseLeave);\n };\n }, [ref.current]);\n\n function onPlayerPoiMouseOver(hoveredPoi: PointOfInterest): void {\n if (!hoveredPoi?.id || pointOfInterest?.id?.toString() !== hoveredPoi?.id?.toString())\n return;\n\n ref.current?.classList.add(styles.highlightPoi);\n }\n\n function onPlayerPoiMouseLeave(): void {\n ref.current?.classList.remove(styles.highlightPoi);\n }\n\n /**\n * `this` will be the element to which the eventListener is bound.\n */\n function onGlancePoiMouseOver(): void {\n if (pointOfInterest)\n EventsService.trigger('glance:poi:mouseover', pointOfInterest);\n }\n\n function onGlancePoiMouseLeave(): void {\n EventsService.trigger('glance:poi:mouseleave');\n }\n\n return ref;\n}","// extracted by mini-css-extract-plugin\nexport default {\"poiEntry\":\"vr6R9\",\"poiText\":\"znHZF\",\"public\":\"v0BZ9\",\"poiTimeStamp\":\"AdKwe\"};","import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PointOfInterest } from 'libs/shared/interfaces';\nimport { DurationHelper } from 'libs/shared/utils/DurationHelper';\n\nimport { useHighlightPointOfInterest } from '../VideoAtAGlanceUtilsV2';\n\nimport styles from './points-of-interest-list.scss';\n\ninterface PointOfInterestProps {\n poi: PointOfInterest;\n suppressInteractivity?: boolean;\n onClickPoiItem: (time: number) => void;\n}\n\nfunction PointOfInterest(props: PointOfInterestProps): JSX.Element {\n const timeStamp = DurationHelper.ToDisplayDuration(props.poi.startTime * 1000);\n\n const ref = useHighlightPointOfInterest(props.poi, !props.suppressInteractivity);\n\n if (props.suppressInteractivity) {\n return (\n <div className={`d-flex ${styles.poiEntry} mb-2`}>\n <span className={`d-flex rounded-pill justify-content-center align-items-center fw-semibold info-link ${styles.poiTimeStamp}`}>{timeStamp}</span>\n <div className={`${styles.public} ms-2`}>{props.poi.description}</div>\n </div>\n );\n }\n\n return (\n <DivButton\n key={props.poi.startTime}\n className={`d-flex ${styles.poiEntry} mb-2 cursor-pointer`}\n onClick={() => props.onClickPoiItem(props.poi.startTime)}\n ref={ref}\n >\n <div className={`d-flex rounded-pill justify-content-center align-items-center fw-semibold info-link ${styles.poiTimeStamp}`}>{timeStamp}</div>\n <div className={`ms-2 ${styles.poiText}`}>{props.poi.description}</div>\n </DivButton>\n );\n}\n\ninterface PointOfInterestListProps{\n pointsOfInterest: PointOfInterest[];\n suppressInteractivity?: boolean;\n onClickPoiItem: (time: number) => void\n}\n\nconst namespace = 'shared.pointsOfInterestList';\n\nexport function PointOfInterestList(props: PointOfInterestListProps) {\n return (\n <div>\n <h2 className='h6 my-2'><Text namespace={namespace} phrase='heading' /></h2>\n\n <div>\n {props.pointsOfInterest.map(poi => {\n return (\n <PointOfInterest\n key={poi.startTime}\n poi={poi}\n suppressInteractivity={props.suppressInteractivity}\n onClickPoiItem={props.onClickPoiItem}\n />\n );\n })}\n\n </div>\n </div>\n );\n}","import * as React from 'react';\nimport Scrollbars from 'react-custom-scrollbars-2';\n\nimport { Core } from 'libs/common/core';\n\nimport { PointOfInterestList } from 'libs/shared/components/play-page-v2/glance/points-of-interest-list/PointsOfInterestList';\nimport { TagHelper } from 'libs/shared/components/tags/TagHelper';\nimport { TagList } from 'libs/shared/components/tags/TagList';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { TagType } from 'libs/shared/enums/TagType';\nimport { PointOfInterest, Tag, Video } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { useLearningIntentionMarkdown } from './VideoAtAGlanceUtilsV2';\n\nimport styles from './video-at-a-glance.scss';\n\nconst namespace = 'shared.videoAtAGlanceV2';\n\nconst SCROLL_HEIGHT_MAX = 350; // in px\n\ninterface ScrollbarWrapperProps {\n hideScrollbar?: boolean;\n}\n\nfunction ScrollbarWrapper(props: React.PropsWithChildren<ScrollbarWrapperProps>): JSX.Element {\n if (props.hideScrollbar)\n return <>{props.children}</>;\n\n return (\n <div className='rounded border mb-4 bg-white'>\n <Scrollbars\n autoHeight\n autoHeightMax={SCROLL_HEIGHT_MAX}\n >\n <div className='px-3 px-3 pt-3 pb-2'>\n {props.children}\n </div>\n </Scrollbars>\n </div>\n );\n}\n\ninterface VideoAtAGlanceV2Props {\n video: Video;\n pointsOfInterest?: PointOfInterest[];\n suppressInteractivity?: boolean;\n setStartTime?: (time: number) => void;\n getTagAppLink?: (tag: Tag) => Core.AppLink;\n onClickTag?: () => void;\n hideScrollbar?: boolean;\n canViewGlance: boolean;\n}\n\nexport function VideoAtAGlanceV2(props: VideoAtAGlanceV2Props): JSX.Element {\n const learningIntentionMarkdownHTML = useLearningIntentionMarkdown(props.video, props.canViewGlance);\n \n function getTags(): Tag[] {\n if (VideoHelper.isInteractive(props.video) || !props.video.tags?.data?.length)\n return null;\n\n return props.video.tags?.data?.filter(tag => tag.tagType === TagType.Pedagogy || tag.tagType === TagType.Skill);\n }\n const tags = getTags();\n\n if (!props.canViewGlance)\n return <></>;\n\n function onClickPoiItem(time: number) {\n props.setStartTime(time);\n }\n\n return (\n <section className='play-page-section'>\n <ScrollbarWrapper hideScrollbar={props.hideScrollbar}>\n <h2 className='h6 mb-2'><Text namespace={namespace} phrase='learningIntention' /></h2>\n <div className={`${styles.learningIntention} mb-3`}>\n <div dangerouslySetInnerHTML={{ __html: learningIntentionMarkdownHTML }}/>\n </div>\n\n {!!tags?.length && (\n <div className='mb-1'>\n <TagList\n tags={tags}\n {...TagHelper.getTagActionProps(props.getTagAppLink, props.onClickTag, props.suppressInteractivity)}\n className='mt-2'\n />\n </div>\n )}\n\n {!!props.pointsOfInterest.length && (\n <PointOfInterestList\n pointsOfInterest={props.pointsOfInterest}\n suppressInteractivity={props.suppressInteractivity}\n onClickPoiItem={onClickPoiItem}\n />\n )}\n </ScrollbarWrapper>\n </section>\n );\n}","import React from 'react';\n\nimport styles from './tags.scss';\n\ninterface PartialTagItemProps {\n tagClass?: string;\n}\n\nexport const PartialTagItem = React.memo(function({ tagClass = '' }: PartialTagItemProps): JSX.Element {\n const classNames = `partial-loading-background d-inline-block rounded-pill py-1 px-2 mb-1 me-1 text-nowrap ${tagClass} ${styles.partialTag}`;\n\n return (\n <div className='mt-1'>\n <span className={classNames}> </span>\n </div>\n );\n});","import { Core } from 'libs/common/core';\n\nimport { Tag } from 'libs/shared/interfaces';\n\nexport const TagHelper = {\n /**\n * This helper allows tag appLinks to be triggered manually for use in a public context.\n * \n * For public pages, all anchors will be crawled by bots. Given then number of tags we have\n * this will chew through crawl budget unnecessarily. \n * \n * The consuming project can opt-in for this behaviour. By default, tags will always be rendered\n * as anchors.\n */\n getTagActionProps: (\n getTagAppLink: (tag: Tag) => Core.AppLink,\n onClick: () => void,\n renderAsSpan?: boolean\n ) => {\n if (renderAsSpan) {\n return {\n onClick: (tag: Tag) => {\n if (onClick)\n onClick();\n\n const appLink = getTagAppLink ? getTagAppLink(tag) : null;\n\n if (!appLink)\n return;\n\n return Core.AppLinkHelper.trigger(appLink);\n }\n };\n }\n\n return {\n getAppLink: (tag: Tag) => {\n return getTagAppLink\n ? getTagAppLink(tag)\n : null;\n },\n onClick\n };\n }\n};","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { TagType } from 'libs/shared/enums/TagType';\nimport { Tag, ThemeColours } from 'libs/shared/interfaces';\n\nimport styles from './tags.scss';\n\ninterface TagItemProps {\n tag: Tag;\n themeColours?: ThemeColours;\n appLink?: Core.AppLink;\n onClick?: () => void;\n onRemove?: () => void;\n disabled?: boolean;\n tagClass?: string;\n}\n\nfunction getTagTypeClass(tagType: TagType, hasThemeColour: boolean): string {\n switch (tagType) {\n case TagType.Pedagogy:\n case TagType.Skill:\n return 'pedagogy-tag text-white';\n\n case TagType.Hidden:\n return 'hidden-tag fw-normal';\n\n case TagType.Normal:\n if (!hasThemeColour)\n return 'bg-gray-100 fw-normal';\n return '';\n\n default:\n return '';\n }\n}\n\nexport function TagItem(props: TagItemProps): JSX.Element {\n const { tag, appLink, onClick, disabled, tagClass = 'tag' } = props;\n\n const name = tag.name.toLowerCase();\n const tagType = tag.tagType?.toLowerCase() as TagType;\n\n const hasThemeColour = (tagType === TagType.Normal && props.themeColours) && !!props.themeColours?.secondary;\n let classNames = `rounded-pill py-1 px-2 my-1 me-1 ${tagClass} ${getTagTypeClass(tagType, hasThemeColour)}`;\n\n if (hasThemeColour)\n classNames += ' text-white';\n\n if ((appLink || onClick) && !disabled)\n classNames += ' cursor-pointer';\n\n if (disabled)\n classNames += ' ' + styles.disabled;\n\n if (props.onRemove)\n classNames += ' ' + styles.badge;\n\n if (!appLink)\n classNames += ' d-inline-block';\n\n const style: React.CSSProperties = hasThemeColour\n ? { backgroundColor: props.themeColours.secondary }\n : {};\n\n if (appLink) {\n return (\n <AppLink\n onClick={onClick}\n appLink={appLink}\n className={classNames}\n title={name}\n style={style}\n >\n <span className='text-truncate text-nowrap'>{name}</span>\n </AppLink>\n );\n }\n\n return (\n <span\n onClick={onClick}\n className={classNames}\n title={name}\n style={style}\n >\n <span className='text-truncate text-nowrap'>\n {name}\n {props.onRemove &&\n <button\n onClick={props.onRemove}\n className={`${styles.close} btn-close font-size-normal`}\n role='button'\n aria-label='Close'\n />\n }\n </span>\n </span>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { TagItem } from 'libs/shared/components/tags/TagItem';\nimport { TagType } from 'libs/shared/enums/TagType';\nimport { Tag, ThemeColours } from 'libs/shared/interfaces';\n\nimport styles from './tags.scss';\n\n/**\n * TODO: this will eventually handle ClickView and Customer tag types.\n */\nfunction getTagSortValue(tag: Tag): number {\n switch (tag.tagType?.toLowerCase()) {\n case TagType.Pedagogy:\n return 0;\n\n case TagType.Skill:\n return 1;\n\n default:\n return 2;\n }\n}\n\ninterface TagListProps {\n tags: Tag[];\n themeColours?: ThemeColours;\n onClick?: (tag: Tag) => void;\n onRemove?: (tag: Tag) => void;\n getAppLink?: (tag: Tag) => Core.AppLink;\n className?: string;\n}\n\nexport function TagList(props: TagListProps): JSX.Element {\n if (!props.tags)\n return <></>;\n\n const sortedTags = [...props.tags].sort((a, b) => getTagSortValue(a) - getTagSortValue(b));\n\n return (\n <div className={`${styles.tagList} ${props.className}`}>\n {sortedTags.map((tag: Tag) => {\n const appLink = typeof props.getAppLink === 'function'\n ? props.getAppLink(tag)\n : null;\n\n const onRemove = typeof props.onRemove === 'function'\n ? () => props.onRemove(tag)\n : null;\n\n const onClick = typeof props.onClick === 'function'\n ? () => props.onClick(tag)\n : null;\n\n return (\n <TagItem\n key={tag.id || tag.name}\n tag={tag}\n appLink={appLink}\n themeColours={props.themeColours}\n onRemove={onRemove}\n onClick={onClick}\n />\n );\n })}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"seeMore\":\"yv0FS\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions, ClickDescriptor } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\n\nimport styles from './widget-header.scss';\n\nconst namespace = 'shared.widgetHeader';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface WidgetHeaderProps {\n name: string;\n description: string;\n\n appLink?: Core.AppLink;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n showSeeMoreLink?: boolean;\n onClick?: () => void;\n}\n\nfunction SeeMore(props: WidgetHeaderProps) {\n return (\n <div className={`ms-3 ${styles.seeMore}`}>\n <AppLink\n appLink={props.appLink}\n analyticsData={props.analyticsData }\n analyticsOptions={{ ...props.analyticsOptions, descriptor: ClickDescriptor.SeeMore }}\n className={`text-decoration-none ${props.appLink ? 'curated-widget-link' : ''}`}\n >\n <p className='hover-text-underline text-dark curated-widget-heading'>{getPhrase('seeMore')}</p>\n </AppLink>\n </div>\n );\n}\n\nexport function WidgetHeader(props: WidgetHeaderProps): JSX.Element {\n const hasDescription = !!props.description;\n\n if (!props.name && !props.description)\n return <></>;\n\n return (\n <div className='curated-widget-header'>\n <div className='d-flex justify-content-between'>\n {!!props.name && (\n <div className={styles.title}>\n <AppLink\n appLink={props.appLink}\n analyticsOptions={props.analyticsOptions}\n analyticsData={props.analyticsData}\n className={`text-decoration-none ${props.appLink ? 'curated-widget-link' : ''}`}\n onClick={props.onClick}\n >\n <h2 className='h4 curated-widget-heading'>\n {props.name}\n </h2>\n </AppLink>\n </div>\n )}\n {!!props.appLink && !hasDescription && !!props.showSeeMoreLink && <SeeMore {...props}/>}\n </div>\n \n {hasDescription && (\n <div className='d-flex justify-content-between align-items-end'>\n <p className={`description curated-widget-description ${styles.description}`}>\n <span>{props.description}</span>\n </p>\n {!!props.appLink && !!props.showSeeMoreLink && <SeeMore {...props}/> }\n </div>\n )}\n </div>\n );\n}","import { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\n\nconst blankImage = new Image();\nblankImage.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=';\n\nexport const DragHelper = {\n // This removes the image that appears when you drag a draggable HTML element\n hideDragImage(event: React.DragEvent<HTMLElement>): void {\n if (!event.dataTransfer.setDragImage || !FunctionHelper.isFunction(event.dataTransfer.setDragImage))\n return;\n\n event.dataTransfer.setDragImage(blankImage, 0, 0);\n }\n};","import * as React from 'react';\n\nimport { UserAgentHelper } from 'libs/common/backbone/utils/UserAgentHelper';\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\n\nimport { CssMeasurement } from 'libs/shared/enums/CssMeasurement';\nimport { DragHelper } from 'libs/shared/utils/DragHelper';\n\nconst isTouchScreen = UserAgentHelper.isTouchScreen();\n\nconst getPositionStyling = (xPosition: number, measurement: CssMeasurement, dragPercentage?: number) => {\n // Used in situations where a touch screen user is dragging the `<FixedWidget />`\n if (measurement === CssMeasurement.Percentage && dragPercentage)\n xPosition = xPosition - dragPercentage;\n\n return {\n transform: `translate3d(${xPosition}${measurement}, 0px, 0px)`,\n transition: 'transform .4s ease-in-out'\n };\n};\n\ninterface SlidingListContainerProps extends React.PropsWithChildren<unknown> {\n position: number;\n positionType: CssMeasurement;\n\n onDrag?: (event: React.DragEvent<HTMLDivElement>) => void;\n onDragEnd?: () => void;\n\n onTouchMove?: (event: React.TouchEvent<HTMLDivElement>) => void;\n onTouchEnd?: () => void;\n\n percentageDragged?: number;\n}\n\nexport const SlidingListContainer = React.forwardRef((\n props: SlidingListContainerProps,\n ref: React.MutableRefObject<HTMLDivElement>\n): JSX.Element => {\n const { children, positionType, onDrag, onDragEnd, onTouchMove, onTouchEnd, percentageDragged, position = 0 } = props;\n\n function getEventListeners(): HashObject {\n const listenerProps: HashObject = {};\n\n if (onDrag && onDragEnd) {\n listenerProps.draggable = true;\n listenerProps.onDragEnd = onDragEnd;\n listenerProps.onDragStart = DragHelper.hideDragImage;\n listenerProps.onDragOver = onDrag;\n }\n\n if (onTouchMove && onTouchEnd && isTouchScreen) {\n listenerProps.onTouchMoveCapture = onTouchMove;\n listenerProps.onTouchEndCapture = onTouchEnd;\n }\n\n return listenerProps;\n }\n\n return (\n <div\n className='d-flex flex-nowrap position-relative w-100'\n style={getPositionStyling(position, positionType, percentageDragged)}\n ref={ref}\n {...getEventListeners()}\n >\n {children}\n </div>\n );\n});","// extracted by mini-css-extract-plugin\nexport default {\"buttonContainer\":\"_ejId\",\"left\":\"VSAPU\",\"right\":\"kgeXh\",\"button\":\"gAsE9\",\"hoverText\":\"APA36\",\"buttonHover\":\"cqD75\",\"chevron\":\"Ev4hr\",\"extendedClickableArea\":\"AtsWP\",\"gradientRight\":\"ZuAif\",\"gradientLeft\":\"Pt3nx\",\"topPos\":\"BVcIS\"};","import * as React from 'react';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { FixedWidgetState } from 'libs/shared/components/widgets/fixed-widget';\nimport { WidgetContents } from 'libs/shared/enums/WidgetContents';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './widget-button.scss';\n\nexport enum WidgetButtonDirection {\n Left,\n Right\n}\n\ninterface WidgetButtonProps {\n onClick: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;\n direction: WidgetButtonDirection;\n hide: boolean;\n contents?: WidgetContents;\n useGradientBackdrop?: boolean;\n className?: string;\n hoverText?: string;\n hideExtendedClickableArea?: boolean;\n state?: FixedWidgetState;\n\n leftButtonClassName?: string;\n rightButtonClassName?: string;\n leftGradientClassName?: string;\n rightGradientClassName?: string;\n}\n\nexport const WidgetButton = React.memo(function(props: WidgetButtonProps): JSX.Element {\n const isLeft = props.direction === WidgetButtonDirection.Left;\n\n const arrowSvg = isLeft ? cvSvgLibrary.ChevronLeft : cvSvgLibrary.ChevronRight;\n\n function getPositionClass(): string {\n let className = styles.topPos;\n \n // Left / Right\n if (isLeft)\n className += ` ${styles.left} ${props.leftButtonClassName}`;\n else\n className += ` ${styles.right} ${props.rightButtonClassName}`;\n \n return className;\n }\n\n function getStyle(): React.CSSProperties {\n if (props.state?.contents === 'videos')\n return { paddingBottom: (56.25 / props.state?.viewableItems) + '%' };\n\n return { height: '100%' };\n }\n\n if (props.hide)\n return <></>;\n\n return (\n <div className={styles.buttonContainer} style={getStyle()}>\n {props.useGradientBackdrop &&\n <div className={isLeft ? `${styles.gradientLeft} ${props.leftGradientClassName}` : `${styles.gradientRight} ${props.rightGradientClassName}`} />\n }\n\n {!props.hideExtendedClickableArea && (\n <div\n role='button'\n onClick={props.onClick}\n className={`${styles.extendedClickableArea} ${isLeft ? styles.left : styles.right}`}\n />\n )}\n\n <div\n role='button'\n className={`${getPositionClass()} ${styles.button} ${props.className || ''}`}\n onClick={props.onClick}\n >\n {props.hoverText && (\n <span className={`ps-3 pe-2 ${styles.hoverText}`}>{props.hoverText}</span>\n )}\n <SvgContainer\n svgName={arrowSvg}\n size={SvgContainerSize.Medium}\n className={`svg-container d-inline-block ${styles.chevron}`}\n />\n </div>\n </div>\n );\n});","export enum CssMeasurement {\n Percentage = '%',\n Pixels = 'px'\n}","export enum CurriculumType {\n Subject = 'CurriculumSubject',\n Audience = 'CurriculumAudience',\n Area = 'CurriculumArea',\n Leaf = 'CurriculumLeaf'\n}","export enum TagType {\n Normal = 'normal',\n Pedagogy = 'pedagogy',\n Hidden = 'hidden',\n Skill = 'skill',\n Curation = 'curation'\n}\n\n/**\n * This should **only** be used to create new tags in master (as it only accepts enum values).\n * Use the string enum above for all other cases.\n */\nexport enum TagTypeNumber {\n Normal = 0,\n Pedagogy = 1,\n Hidden = 2,\n Skill = 3,\n Curation = 4\n}","export enum WidgetInteraction {\n Init = 'init',\n Next = 'next',\n Previous = 'previous',\n Resize = 'resize',\n Drag = 'drag',\n Update = 'update',\n JumpToIndex = 'jump-to-index'\n}","import { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\n\nimport { useMediaQuery } from './UseMediaQuery';\n\n/**\n * @deprecated Please use useBreakpoints() instead\n */\nexport function useGetMediaQueryString(): MediaQueryStrings {\n const isXS = useMediaQuery(MediaQueryStrings.XS);\n const isSM = useMediaQuery(MediaQueryStrings.SM);\n const isMD = useMediaQuery(MediaQueryStrings.MD);\n const isLG = useMediaQuery(MediaQueryStrings.LG);\n const isXL = useMediaQuery(MediaQueryStrings.XL);\n const isXXL = useMediaQuery(MediaQueryStrings.XXL);\n\n let currentString = MediaQueryStrings.LG; // default\n if (isXS) currentString = MediaQueryStrings.XS;\n if (isSM) currentString = MediaQueryStrings.SM;\n if (isMD) currentString = MediaQueryStrings.MD;\n if (isLG) currentString = MediaQueryStrings.LG;\n if (isXL) currentString = MediaQueryStrings.XL;\n if (isXXL) currentString = MediaQueryStrings.XXL;\n\n return currentString;\n}","import { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\n\nimport { LiteRouteHelper } from 'shared/utils/LiteRouteHelper';\n\nexport interface VideoFeaturesHash {\n canViewGlance: boolean;\n canViewResources: boolean;\n canViewInteractives: boolean;\n canViewClips: boolean;\n canUseActions: boolean;\n canViewPublicLayout: boolean;\n canNavigate: boolean;\n canViewCurriculumLinks: boolean;\n canViewResourceItems: boolean;\n}\n\nexport function useVideoFeatureAccess() {\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { hasProduct } = useProducts();\n\n const hasNP = hasProduct(ProductId.Primary);\n\n function showPublicLayout(): boolean {\n /**\n * Authenticated users should never see the placeholder\n */\n if (hasLocalPermissions(LocalPermissionName.WatchVideos))\n return false;\n\n /**\n * Accessing a play page unathenticated will have different contextual behabviours:\n * - For a share page, the user should see the video and never the placeholder\n * - For a public browsing page (ie. using a route-prefix) they should see the placeholder\n */\n return LiteRouteHelper.hasRegionPrefix();\n }\n\n return {\n canViewGlance: hasPermissions(PermissionName.ViewVideoGlance),\n canViewResources: true,\n canViewInteractives: hasNP && hasPermissions(PermissionName.ViewVideoInteractives),\n canViewClips: hasNP && hasPermissions(PermissionName.ViewVideoClips),\n canViewCurriculumLinks: hasPermissions(PermissionName.ViewCurriculums),\n canUseActions: hasLocalPermissions(LocalPermissionName.UseVideoActions),\n canViewPublicLayout: showPublicLayout(),\n canViewResourceItems: hasLocalPermissions(LocalPermissionName.ViewVideoResourceItems),\n canNavigate: hasNP\n };\n}","import React from 'react';\nimport Scrollbars from 'react-custom-scrollbars-2';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, PresentationDescriptor, UserAction } from 'libs/analytics/interfaces';\n\nimport { PartialCurriculumLinks } from 'libs/shared/components/curriculum-links/partial-loading/PartialCurriculumLinks';\nimport { CurriculumLinksV2 } from 'libs/shared/components/play-page-v2/curriculum-links/CurriculumLinksV2';\nimport { CurriculumsWidget } from 'libs/shared/components/play-page-v2/curriculum-links/CurriculumsWidget';\nimport { VideoAtAGlanceV2 } from 'libs/shared/components/play-page-v2/glance/VideoAtAGlanceV2';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { Clip, CurriculumData, PointOfInterest, PopupViewProps, Presentation, Tag, Video } from 'libs/shared/interfaces';\nimport { GetVideoAppLinkOptions } from 'libs/shared/interfaces/VideoAppLinkOptions';\n\nconst namespace = 'shared.videoGuidanceClassroomGuidePopup';\n\nconst MIN_MAX_HEIGHT = 350;\n\ninterface VideoGuidanceClassroomGuidePopupProps extends PopupViewProps {\n isLoading: boolean;\n video: Video | Clip;\n onClickClose: () => void;\n onClickViewVideo: () => void;\n pointsOfInterest: PointOfInterest[];\n curriculums: CurriculumData;\n curriculumLinksEmptyStateUrl: string;\n\n getTagAppLink?: (tag: Tag) => Core.AppLink;\n getVideoAppLink: (video: Video | Clip, opts: GetVideoAppLinkOptions) => Core.AppLink;\n\n canViewPublicLayout: boolean;\n canViewCurriculumLinks: boolean;\n canViewGlance: boolean;\n}\n\nexport function VideoGuidanceClassroomGuidePopup(props: VideoGuidanceClassroomGuidePopupProps): JSX.Element {\n const [ selectedCurriculum, setSelectedCurriculum ] = React.useState<Presentation>();\n\n const alerts = useAlerts();\n\n React.useEffect(() => {\n if (props.isLoading || !props.curriculums)\n return;\n\n if (!selectedCurriculum) {\n const currentCurriculum = props.curriculums.activeCurriculum\n ? props.curriculums.activeCurriculum\n : ArrayHelper.first(props.curriculums.availableCurriculums);\n setSelectedCurriculum(currentCurriculum);\n }\n }, [ props.isLoading, props.curriculums?.activeCurriculum?.id ]);\n\n async function onChangeCurriculum(curriculumId: string): Promise<boolean> {\n const newCurriculum = props.curriculums.availableCurriculums.find(c => c.id.toString() === curriculumId);\n\n if (!newCurriculum?.id)\n return false;\n\n if (props.curriculums.activeCurriculum?.id?.toString() === newCurriculum?.id?.toString())\n return false;\n\n setSelectedCurriculum(newCurriculum);\n\n try {\n await props.curriculums.updateCurriculum(newCurriculum);\n\n AnalyticsHelper.logUserAction({\n id: newCurriculum.id,\n name: newCurriculum.id,\n description: newCurriculum.description,\n videoId: props.video.id,\n videoName: props.video.name\n }, {\n entity: EntityType.Presentation,\n actionType: UserAction.Select,\n descriptor: PresentationDescriptor.Curriculum,\n location: LocationContext.ClassroomGuidancePopup\n });\n } catch {\n setSelectedCurriculum(selectedCurriculum);\n alerts.error(LanguageService.getPhrase(namespace, 'updateCurriculumFailed'));\n }\n }\n\n const hasCurriculumLinks = props.canViewCurriculumLinks && props.curriculums?.customerHasCurriculumLinks;\n\n return (\n <Popup\n closePopup={props.onClickClose}\n showLoadingSpinner={props.isLoading}\n title={LanguageService.getPhrase(namespace, 'classroomGuide')}\n size='lg'\n >\n {!props.isLoading && (\n <>\n <Scrollbars\n autoHeightMax={MIN_MAX_HEIGHT}\n autoHeightMin={MIN_MAX_HEIGHT}\n autoHeight\n className='pb-3'\n >\n <div className={hasCurriculumLinks ? 'mb-4' : ''}>\n <VideoAtAGlanceV2\n video={props.video}\n pointsOfInterest={props.pointsOfInterest}\n setStartTime={startTime => {\n Core.AppLinkHelper.trigger(props.getVideoAppLink(props.video, { t: startTime }));\n props.closePopup();\n }}\n getTagAppLink={props.getTagAppLink}\n suppressInteractivity={props.canViewPublicLayout}\n onClickTag={props.closePopup}\n canViewGlance={props.canViewGlance}\n hideScrollbar\n />\n </div>\n\n {hasCurriculumLinks && (\n <>\n <h2 className='h6'>\n <Text namespace={namespace} phrase='curriculumLinks' />\n </h2>\n\n <div className='mb-2'>\n <CurriculumsWidget\n curriculums={props.curriculums}\n selectedCurriculum={selectedCurriculum}\n onChangeCurriculum={onChangeCurriculum}\n />\n </div>\n \n {!props.curriculums?.hasLoaded\n ? <PartialCurriculumLinks />\n : (\n <CurriculumLinksV2\n curriculumLinks={props.curriculums?.curriculumLinks}\n emptyStateUrl={props.curriculumLinksEmptyStateUrl}\n />\n )}\n </>\n )}\n </Scrollbars>\n\n <PopupButtons>\n <PopupButtons.Cancel\n onClick={props.onClickClose}\n text={LanguageService.getPhrase(namespace, 'close')}\n />\n <PopupButtons.Submit\n text={LanguageService.getPhrase(namespace, 'viewVideo')}\n variant='dark'\n onClick={props.onClickViewVideo}\n />\n </PopupButtons>\n </>\n )}\n </Popup>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { Flight } from 'libs/common/react/index';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction, VideoGuidanceDescriptor } from 'libs/analytics/interfaces';\n\nimport { VideoGuidanceClassroomGuidePopup } from 'libs/shared/components/video-guidance/classroom-guide/popup/VideoGuidanceClassroomGuidePopup';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { Clip, PopupViewProps, Video } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { useCurriculums } from 'shared/hooks/useCurriculums';\nimport { useFetchPointsOfInterest } from 'shared/hooks/useFetchPointsOfInterest';\nimport { useVideoFeatureAccess } from 'shared/hooks/useVideoFeatureAccess';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\ninterface VideoGuidanceClassroomGuideViewProps extends PopupViewProps {\n id: string;\n type: MasterType;\n}\n\nexport function VideoGuidanceClassroomGuideView(props: VideoGuidanceClassroomGuideViewProps): JSX.Element {\n function getRequest(): Flight.Request {\n return props.type === MasterType.Video\n ? VideoRequests.video(props.id)\n : ClipRequests.clip(props.id);\n }\n\n const video = Flight.useBasicFetch<Clip | Video>(getRequest());\n const pointsOfInterest = useFetchPointsOfInterest(props.id, true);\n const curriculums = useCurriculums(props.id, true);\n const featureAccess = useVideoFeatureAccess();\n\n function onClickClose(): void {\n AnalyticsHelper.logUserAction({\n id: video.data.id,\n name: video.data.name\n }, {\n entity: VideoHelper.isVideo(video.data)\n ? EntityType.Video\n : EntityType.Clip,\n location: LocationContext.ClassroomGuidancePopup,\n actionType: UserAction.Click,\n descriptor: VideoGuidanceDescriptor.Close\n });\n\n props.closePopup();\n }\n\n function onClickViewVideo(): void {\n AnalyticsHelper.logUserAction({\n id: video.data.id,\n name: video.data.name\n }, {\n entity: VideoHelper.isVideo(video.data)\n ? EntityType.Video\n : EntityType.Clip,\n location: LocationContext.ClassroomGuidancePopup,\n actionType: UserAction.Click,\n descriptor: VideoGuidanceDescriptor.ViewVideo\n });\n\n if (VideoHelper.isVideo(video.data)) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PLAY_VIDEO,\n args: [ video.data.id, TextHelper.slugify(video.data.name) ]\n });\n\n props.closePopup();\n\n return;\n }\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.CLIPS,\n action: Actions.Clips.PLAY_CLIP,\n args: [ video.data.id, TextHelper.slugify(video.data.name) ]\n });\n\n props.closePopup();\n }\n\n return (\n <VideoGuidanceClassroomGuidePopup\n isLoading={!video.hasCompleted || !pointsOfInterest.hasCompleted}\n video={video.data}\n pointsOfInterest={pointsOfInterest.items}\n curriculums={curriculums}\n onClickClose={onClickClose}\n onClickViewVideo={onClickViewVideo}\n curriculumLinksEmptyStateUrl={ImageUrls.EmptyStates.CURRICULUM_LINKS}\n getVideoAppLink={VideoAppLinkHelper.getAppLink}\n getTagAppLink={tag => ({\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: { tagOrClassification: tag.name }\n })}\n canViewCurriculumLinks={featureAccess.canViewCurriculumLinks}\n canViewPublicLayout={featureAccess.canViewPublicLayout}\n canViewGlance={featureAccess.canViewGlance}\n closePopup={props.closePopup}\n />\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"curriculumSubject\":\"GvGYH\",\"curriculumSet\":\"d7RK0\",\"areaLeafSet\":\"XRTAe\",\"closeButton\":\"N3l5Q\",\"heading\":\"hAxR4\",\"leafDescriptionOnly\":\"h66ke\",\"dropdown\":\"CsG6G\",\"tag\":\"rdLqY\",\"cover\":\"etwaD\",\"active\":\"aDLMe\",\"selected\":\"BMrSd\"};","// extracted by mini-css-extract-plugin\nexport default {\"learningIntention\":\"MHM6O\",\"highlightPoi\":\"U7Q6x\"};","// extracted by mini-css-extract-plugin\nexport default {\"tagList\":\"Zw6d9\",\"disabled\":\"jlL1c\",\"partialTag\":\"too_N\",\"badge\":\"OjtN8\",\"close\":\"X9joI\"};"],"names":["useEventsServiceSubscribe","event","callback","once","shouldSubscribe","unsubscribe","useEffect","EventsService","listeners","this","registerListener","deregisterListener","args","triggerCallbacks","executionLimit","Error","push","idxToRemove","findIndex","e","splice","length","callbacksToRemove","forEach","listener","executionCount","apply","CurriculumLinkItem","props","curriculumTag","data","key","id","className","selected","onClick","onChangeCurriculum","toString","src","cover","url","size","alt","name","namespace","getPhrase","CurriculumLinksEmptyState","emptyStateUrl","altText","phrase","PartialCurriculumLinkSection","PartialCurriculumLinks","BRACKET_SEGMENT_REGEX","BASE_PILL_CLASS","CurriculumLeaf","getCurriculumCodeClass","baseClass","leaf","uiContainsCodes","codeRef","current","width","getBoundingClientRect","trySetMaxCodeWidth","description","style","minWidth","codeWidth","ref","Text","dangerouslySetInnerHTML","__html","CurriculumSubject","audienceSegment","subjectSegment","audienceBracketSegments","areaAndLeafSets","getLeafStyleClass","linkSet","areasAndLeaves","areaAndLeafSet","areaText","CurriculumType","map","ca","join","match","Object","keys","i","CurriculumLinksV2","setCodeWidth","currentVal","curriculumLinkSets","newSet","curriculumLinks","subject","audience","areas","leaves","curriculumObj","type","linkSetKey","CurriculumsWidget","collection","selectedCurriculum","curriculums","nonEmptyCurriculums","childClassName","childComponent","_props","partialLoadingComponent","widgetDataDeps","POI_LINK_LINE","useLearningIntentionMarkdown","video","hasGlanceData","useState","markdownHTML","setMarkdownHTML","content","glance","learningIntention","replace","format","useHighlightPointOfInterest","pointOfInterest","shouldHighlight","useRef","onGlancePoiMouseOver","onGlancePoiMouseLeave","hoveredPoi","classList","add","remove","addEventListener","removeEventListener","PointOfInterest","timeStamp","DurationHelper","poi","startTime","suppressInteractivity","DivButton","onClickPoiItem","PointOfInterestList","pointsOfInterest","SCROLL_HEIGHT_MAX","ScrollbarWrapper","hideScrollbar","children","autoHeight","autoHeightMax","VideoAtAGlanceV2","learningIntentionMarkdownHTML","canViewGlance","tags","VideoHelper","filter","tag","tagType","TagType","TagList","TagHelper","getTagAppLink","onClickTag","time","setStartTime","PartialTagItem","tagClass","classNames","getTagActionProps","renderAsSpan","appLink","getAppLink","TagItem","disabled","toLowerCase","hasThemeColour","themeColours","secondary","getTagTypeClass","onRemove","backgroundColor","title","role","getTagSortValue","sortedTags","sort","a","b","LanguageService","SeeMore","AppLink","analyticsData","analyticsOptions","descriptor","WidgetHeader","hasDescription","showSeeMoreLink","blankImage","Image","DragHelper","dataTransfer","setDragImage","FunctionHelper","isTouchScreen","UserAgentHelper","SlidingListContainer","listenerProps","xPosition","measurement","dragPercentage","positionType","onDrag","onDragEnd","onTouchMove","onTouchEnd","percentageDragged","position","CssMeasurement","C","transform","transition","draggable","onDragStart","onDragOver","onTouchMoveCapture","onTouchEndCapture","WidgetButtonDirection","WidgetButton","isLeft","direction","Left","arrowSvg","hide","state","contents","paddingBottom","viewableItems","height","useGradientBackdrop","leftGradientClassName","rightGradientClassName","hideExtendedClickableArea","leftButtonClassName","rightButtonClassName","hoverText","SvgContainer","svgName","S","TagTypeNumber","WidgetInteraction","useGetMediaQueryString","isXS","isSM","isMD","isLG","isXL","isXXL","currentString","useVideoFeatureAccess","hasPermissions","hasLocalPermissions","hasNP","hasProduct","canViewResources","canViewInteractives","canViewClips","canViewCurriculumLinks","canUseActions","canViewPublicLayout","canViewResourceItems","canNavigate","MIN_MAX_HEIGHT","VideoGuidanceClassroomGuidePopup","setSelectedCurriculum","alerts","isLoading","currentCurriculum","activeCurriculum","ArrayHelper","availableCurriculums","hasCurriculumLinks","customerHasCurriculumLinks","Popup","closePopup","onClickClose","showLoadingSpinner","autoHeightMin","getVideoAppLink","t","curriculumId","newCurriculum","find","c","updateCurriculum","AnalyticsHelper","videoId","videoName","entity","actionType","location","error","hasLoaded","curriculumLinksEmptyStateUrl","PopupButtons","text","variant","onClickViewVideo","VideoGuidanceClassroomGuideView","MasterType","VideoRequests","ClipRequests","useFetchPointsOfInterest","useCurriculums","featureAccess","hasCompleted","items","application","action","TextHelper","ImageUrls","VideoAppLinkHelper","params","tagOrClassification"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[9818,1850],{96922:(e,i,t)=>{t.r(i),t.d(i,{SharedSeriesView:()=>d});var r=t(32735),c=t(81886),n=t(183),s=t(58800);function d(e){var i=c.Q.C$.getCurrentAppLink();return r.createElement(s.SeriesView,{key:e.objectId,id:e.objectId,shareId:e.shareId,getVideoAppLink:function(t){return Object.assign(Object.assign({},i),{params:{videoId:t.id,contextId:e.objectId,context:n.Q.Series}})}})}}}]);
|
|
2
|
+
//# sourceMappingURL=9818-f63bdbbac4-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/9818-f63bdbbac4-lite.chunk.js","mappings":"6MAWM,SAAUA,EAAiBC,GAC/B,IAAMC,EAAiB,2BAWvB,OACE,gBAAC,EAAAC,WAAU,CACTC,IAAKH,EAAMI,SACXC,GAAIL,EAAMI,SACVE,QAASN,EAAMM,QACfC,gBAdoB,SAACC,GAAY,OAAK,+BACrCP,GAAc,CACjBQ,OAAQ,CACNC,QAASF,EAAMH,GACfM,UAAWX,EAAMI,SACjBQ,QAAS,aACV,GAWL,C","sources":["file:///app/packages/projects/lite/src/apps/share/views/shared-series/SharedSeriesView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { RelatedVideosContext } from 'libs/shared/enums/RelatedVideosContext';\nimport { Video } from 'libs/shared/interfaces';\n\nimport { SeriesView } from 'shared/views/series/SeriesView';\n\nimport { ShareLinkViewProps } from 'apps/share/interfaces/ShareLinkViewProps';\n\nexport function SharedSeriesView(props: ShareLinkViewProps): JSX.Element {\n const currentAppLink = Core.AppLinkHelper.getCurrentAppLink();\n\n const getVideoAppLink = (video: Video) => ({\n ...currentAppLink,\n params: {\n videoId: video.id,\n contextId: props.objectId,\n context: RelatedVideosContext.Series\n }\n });\n\n return (\n <SeriesView\n key={props.objectId}\n id={props.objectId}\n shareId={props.shareId}\n getVideoAppLink={getVideoAppLink}\n />\n );\n}"],"names":["SharedSeriesView","props","currentAppLink","SeriesView","key","objectId","id","shareId","getVideoAppLink","video","params","videoId","contextId","context"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[9829],{34468:(e,t,r)=>{r.d(t,{R:()=>i});var n=r(32735),a=r(73758);function i(e,t,r,i){var l=function(){a.n.unsubscribe(e,t)};return(0,n.useEffect)((function(){if(i)return r?a.n.subscribeOnce(e,t):a.n.subscribe(e,t),function(){l()}}),[]),l}},73758:(e,t,r)=>{function n(e){return n="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},n(e)}function a(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,i(n.key),n)}}function i(e){var t=function(e,t){if("object"!=n(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var a=r.call(e,"string");if("object"!=n(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==n(t)?t:t+""}r.d(t,{n:()=>l});var l=new(function(){return e=function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.listeners={}},t=[{key:"subscribe",value:function(e,t){this.registerListener(e,t)}},{key:"subscribeOnce",value:function(e,t){this.registerListener(e,t,1)}},{key:"unsubscribe",value:function(e,t){this.deregisterListener(e,t)}},{key:"trigger",value:function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];this.triggerCallbacks(e,r)}},{key:"registerListener",value:function(e,t,r){var n;if("string"!=typeof e)throw new Error("Event name must be a string");if("function"!=typeof t)throw new Error("Event callback must be a function");if(r&&"number"!=typeof r)throw new Error("Execution limit must be a number or undefined");this.listeners[e]=null!==(n=this.listeners[e])&&void 0!==n?n:[],this.listeners[e].push({callback:t,executionLimit:r})}},{key:"deregisterListener",value:function(e,t){var r;if("string"!=typeof e)throw new Error("Event name must be a string");if(t&&"function"!=typeof t)throw new Error("Event callback must be a function");if(t){var n=null===(r=this.listeners[e])||void 0===r?void 0:r.findIndex((function(e){return e.callback===t}));"number"==typeof n&&-1!==n&&(this.listeners[e].splice(n,1),0===this.listeners[e].length&&delete this.listeners[e])}else this.listeners[e]=[]}},{key:"triggerCallbacks",value:function(e){for(var t=this,r=arguments.length,n=new Array(r>1?r-1:0),a=1;a<r;a++)n[a-1]=arguments[a];if(this.listeners[e]){var i=[];this.listeners[e].forEach((function(e){var t,r;"number"==typeof e.executionLimit&&(e.executionCount=null!==(r=e.executionCount)&&void 0!==r?r:0,e.executionCount++,e.executionCount===e.executionLimit&&i.push(e.callback)),(t=e.callback).apply.apply(t,[null].concat(n))})),i.length&&i.forEach((function(r){return t.deregisterListener(e,r)}))}}}],t&&a(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}())},71020:(e,t,r)=>{r.d(t,{_:()=>u});var n=r(32735),a=r(80247),i=r(34152),l=r(83914),o=r(35223);const c={container:"VwD1b",spinner:"eJ85e"};function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function u(e){var t,r,u=(t=(0,i.YD)(),r=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,i,l,o=[],c=!0,s=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(o.push(n.value),o.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=r.return&&(l=r.return(),Object(l)!==l))return}finally{if(s)throw a}}return o}}(t,r)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?s(e,t):void 0}}(t,r)||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.")}()),d=u[0],m=u[1];return n.useEffect((function(){var t;e.fetchOnScroll&&m&&!e.isFetching&&(null===(t=e.fetchNext)||void 0===t||t.call(e,e.nextCursor))}),[m,e.isFetching]),n.createElement("div",{className:"p-3 text-center ".concat(c.container),ref:d},e.isFetching?n.createElement(a.Z,{as:"span",animation:"border",role:"status",className:c.spinner}):n.createElement(l.x,{svgName:o.vn.ChevronDown,className:"svg-container cursor-pointer",size:l.S.Large,onClick:function(){var t;return null===(t=e.fetchNext)||void 0===t?void 0:t.call(e,e.nextCursor)}}))}u.defaultProps={fetchOnScroll:!1}},75891:(e,t,r)=>{r.d(t,{C:()=>f});var n=r(32735),a=r(86073),i=r(54610),l=r(1164),o=r(67453),c=r(45778),s=r(75163);const u={imageStyle:"FFgf3",imageTypeResource:"z4O5p",fallBackImage:"Xy4zX"};var d={width:200,resizeType:i.Nq.Cover};function m(e){var t;return c.G.isResource(e)?e.metadata.type===l.L.Pdf||(null===(t=e.pdf)||void 0===t?void 0:t.url)?i.__.Pdf:i.__.Thumbnails:i.__.Link}function f(e){var t,r,f,p=null,v=0;c.G.isResource(e.resource)&&(p=e.resource.metadata,v=null!==(f=null===(r=null===(t=e.resource.thumbnail)||void 0===t?void 0:t.metadata)||void 0===r?void 0:r.rotation)&&void 0!==f?f:0);var g=function(e,t){var r,n,s,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:d,f=m(t);if("thumbnail"in t&&(null===(r=t.thumbnail)||void 0===r?void 0:r.url))return o.j.createUrl(null===(n=t.thumbnail)||void 0===n?void 0:n.url,Object.assign({},u));var p=a._.safeUrlConcat(e,"/v1/previews");return c.G.isResource(t)?f===i.__.Pdf?t.metadata.type===l.L.Pdf?o.j.createResourceImage(p,t.url,Object.assign({},u)):o.j.createResourceImage(p,null===(s=t.pdf)||void 0===s?void 0:s.url,Object.assign({},u)):t.metadata.type!==l.L.Zip?o.j.createUrl(t.url,{size:i.h2.Medium,resizeType:i.Nq.Cover}):"/images/zip-resource.png":o.j.createResourceImage(p,t.url,Object.assign({},u))}(e.imageCdnUrl,e.resource,e.dynamicRatioImageOptions);return n.createElement(s.Z,{data:g,imageType:m(e.resource),imageStyle:{transform:"rotate(".concat(v,"deg)")},alt:e.resource.name,errorFallbackImageSrc:e.imageErrorFallbackUrl,errorFallbackImageClassName:u.fallBackImage,imageClassName:(null==p?void 0:p.type)===l.L.Image?"".concat(u.imageTypeResource," ").concat(u.imageStyle):"",preload:e.preloadImage,preventLoad:!e.preloadImage})}},74696:(e,t,r)=>{r.d(t,{S:()=>s});var n=r(32735),a=r(68050),i=r(69111),l=r(9977),o=r(79967);const c={partialOptions:"Gufgq",partialName:"SicQQ",partialDescription:"dPGMq",partialThumbnail:"vZrnb",partialDragHandle:"iq73R"};function s(e){return n.createElement("div",{className:"mx-2"},Array(e.numVideos).fill(null).map((function(t,r){return n.createElement("div",{className:"d-flex",key:r},e.allowBulkActions&&n.createElement("div",{className:"form-check pe-3 pe-sm-2 mx-0 mx-md-2"}),n.createElement(u,Object.assign({},e)))})))}function u(e){var t=(0,o.k)(),r="sm"===l.O.getSize(t,"md"),s=e.withReordering&&!t.xs;return n.createElement(a.Z,{className:"".concat(r?"":"py-2"," flex-grow-1")},n.createElement(i.Z,Object.assign({},l.O.getThumbnailColumns(),{className:"flex-column align-items-flex-start ".concat(r?"pb-2 pe-1":"mb-1 pe-3 pe-md-2")}),n.createElement(a.Z,null,!!s&&n.createElement("div",{className:"d-flex align-items-center justify-content-center col-2"},n.createElement("div",{className:"partial-loading-background ".concat(c.partialDragHandle)})),n.createElement(i.Z,{xs:l.O.getThumbnailColSize(s)},n.createElement("div",{className:"partial-loading-background ".concat(r?"rounded":"rounded-3"," ").concat(c.partialThumbnail)})))),n.createElement(i.Z,Object.assign({},l.O.getDetailsColumns(),{className:r?"pb-2":"px-2"}),n.createElement("div",{className:"partial-loading-background mb-1 ".concat(c.partialName)}),n.createElement("div",{className:"partial-loading-background ".concat(c.partialDescription)})))}s.defaultProps={numVideos:15}},94631:(e,t,r)=>{r.d(t,{D:()=>a});var n=r(32735);function a(e){var t=n.useRef();return n.useEffect((function(){t.current=e})),t.current}},76196:(e,t,r)=>{r.d(t,{P:()=>l});var n=r(32735),a=r(94631);function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var l=function(e,t){var r,l,o=(r=n.useState(!1),l=2,function(e){if(Array.isArray(e))return e}(r)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,i,l,o=[],c=!0,s=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(o.push(n.value),o.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=r.return&&(l=r.return(),Object(l)!==l))return}finally{if(s)throw a}}return o}}(r,l)||function(e,t){if(e){if("string"==typeof e)return i(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?i(e,t):void 0}}(r,l)||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.")}()),c=o[0],s=o[1],u=(0,a.D)(t),d=t;n.useLayoutEffect((function(){if(!c||u!==d){var t=e.find((function(e){return e&&(null==e?void 0:e.id)===d}));if(t){var r=t.getBoundingClientRect();window.scrollBy({top:r.top-80,behavior:"smooth"}),c||s(!0)}}}),[e,u,d,c])}},59598:(e,t,r)=>{var n;r.d(t,{K:()=>n}),function(e){e.Resources="resources",e.Interactives="interactives",e.Video="video",e.Clips="clips",e.CurriculumLinks="curriculum-links",e.VideoDetails="video-details",e.RelatedVideos="related-videos",e.ClippedFrom="clipped-from"}(n||(n={}))},54297:(e,t,r)=>{r.d(t,{C:()=>n});var n={getResourceTypeName:function(e){switch(e){case"additional-materials":return"Additional Materials";case"atom-guide":return"ATOM Guide";case"teacher-pack":return"Teacher Pack";case"student-activity":return"Student Activity";default:return"N/A"}}}},26492:(e,t,r)=>{r.d(t,{T:()=>u});var n=r(32735),a=r(23481),i=r(65858),l=r(83914),o=r(4594),c=r(35223),s="shared.playPage";function u(e){var t=a.T.encloseNamespace(s),r=function(e){switch(e){case o.E.Video:return"video";case o.E.Clip:return"clip";case o.E.Interactive:return"interactive";default:return""}}(e.typeId);return n.createElement("div",{className:"alert bg-light-blue p-3 rounded-3 d-flex justify-content-between align-items-center"},n.createElement(l.x,{svgName:c.vn.Archive,size:l.S.Standard,className:"me-2 svg-container"}),n.createElement("div",{className:"w-100"},n.createElement("p",{className:"fw-semibold mb-0"},t("archivedInfoTitle",{type:r})),(!e.hasStudentExperience||r===i.py.Video)&&n.createElement("p",{className:"mb-1"},t("archivedInfo",{type:"".concat(r,"s")}))))}},47938:(e,t,r)=>{r.d(t,{W:()=>m});var n=r(32735),a=r(36848),i=r(83914),l=r(83345),o=r(5345),c=r(26361),s=r(14070),u=r(97291),d="shared.playPage";function m(e){var t,r;if(!(null===(r=null===(t=e.restrictions)||void 0===t?void 0:t.value)||void 0===r?void 0:r.length)||!e.yearGroups||!e.canManageVideoAccess)return n.createElement(n.Fragment,null);if(c.l.getWeightedRestriction(e.restrictions.value).type!==o.c.Custom)return n.createElement(n.Fragment,null);var m=c.l.mapRestrictionToClass(e.restrictions),f="".concat(m," fw-semibold p-2 rounded mb-3 d-flex justify-content-between align-items-center");return n.createElement("div",{className:f},n.createElement("div",{className:"d-flex align-items-center"},n.createElement(i.x,{svgName:c.l.mapRestrictionToSvg(e.restrictions),size:i.S.Large}),n.createElement("span",{className:"ps-1"},c.l.mapRestrictionToText(e.restrictions,e.yearGroups))),n.createElement(a.F,{appLink:{application:u.O.DEFAULT,action:s.e.Default.APPROVE_VIDEO,params:{objectId:e.objectId,objectTypeId:e.objectTypeId}},className:"btn btn-outline-dark"},n.createElement(l.x,{namespace:d,phrase:"approve"})))}},91479:(e,t,r)=>{r.d(t,{v:()=>y});var n=r(32735),a=r(65858),i=r(83657),l=r(36848),o=r(40955),c=r(18559),s=r(17464),u=r(83345),d=r(38647),m=r(11882),f=r(80143),p=r(31908),v=r(10671);const g={series:"wTlJJ",badgeListContainer:"Vaout"};var h="shared.playPage";function y(e){var t,r,y,b,E,w,k=(0,f.n)(null===(t=e.media.subjectPresentationAudiences)||void 0===t?void 0:t.data,e.audiences),N=n.useRef(null),A=n.useRef(null),V=p.M.isVideo(e.media)&&!!(null===(r=e.media.rating)||void 0===r?void 0:r.value)||p.M.isVideo(e.media)&&!!e.media.productionYear||!!(null===(b=null===(y=e.media.subjectPresentationAudiences)||void 0===y?void 0:y.data)||void 0===b?void 0:b.length),C=(0,v._)({location:v.i.PlayPage,shareId:e.shareId}),L=!!e.originalVideoAppLink&&p.M.isClip(e.media)&&p.M.canViewOriginalVideo(e.media);return n.createElement("section",{className:"mb-3 position-relative",ref:N},n.createElement("div",{className:"d-inline-block w-100",ref:A},e.featureAccess.canNavigate&&n.createElement("div",{className:"ms-2 float-end"},n.createElement(i.e,{actions:C.getVideoActions(e.media),actionsDropdownClassName:"btn btn-outline-dark",fetchMore:function(){return C.fetchMoreActions(e.media)}})),!!p.M.isVideo(e.media)&&n.createElement(m.$,{type:"series",video:e.media,appLink:null===(E=e.getSeriesAppLink)||void 0===E?void 0:E.call(e,e.media.series),className:"".concat(g.series," text-truncate mw-100"),analyticsOptions:{location:a.LZ.PlayPage}}),n.createElement("h1",{className:"h4 mb-2 mw-100"},n.createElement("span",{className:"align-self-center"},e.media.name),n.createElement(d.m,{tooltipPlacement:"right",className:"d-inline-block ps-1",video:e.media,yearGroups:e.yearGroups})),V&&n.createElement(s.c,{className:g.badgeListContainer},n.createElement(o.P,{audience:k,className:"bg-white text-dark",border:"dark"}),p.M.isVideo(e.media)&&n.createElement(c.C,{type:c.g.Rating,data:e.media.rating}),p.M.isVideo(e.media)&&n.createElement(c.C,{type:c.g.ProductionYear,data:e.media.productionYear}))),p.M.isClip(e.media)&&L&&n.createElement("p",{className:"clamp-1"},n.createElement(u.x,{namespace:h,phrase:"viewOriginal"})," ",n.createElement(l.F,{className:"info-link",appLink:e.originalVideoAppLink},null===(w=e.media._parentVideo)||void 0===w?void 0:w.name)))}},81024:(e,t,r)=>{r.d(t,{S:()=>v});var n=r(32735),a=r(23481),i=r(65858),l=r(36848),o=r(83914),c=r(54610),s=r(67453),u=r(35223),d=r(31908);const m="LL7My",f="QoLgZ";var p=a.T.encloseNamespace("shared.playerPlaceholder");function v(e){switch(e.type){case"pip":return n.createElement(g,Object.assign({},e));case"public":return n.createElement(h,Object.assign({},e));default:return n.createElement(n.Fragment,null)}}var g=function(e){var t,r;return n.createElement("div",{className:"position-relative responsive-img ".concat(f),style:{backgroundImage:"url('".concat(null!==(r=null===(t=d.M.getThumbnail(e.video))||void 0===t?void 0:t.url)&&void 0!==r?r:"","')")}},n.createElement("p",{className:"m-0 text-white h3 ".concat("BcnSH")},p("playingPiP")),n.createElement("div",{className:m}))},h=function(e){var t,r,a=s.j.createUrl(null!==(r=null===(t=d.M.getThumbnail(e.video))||void 0===t?void 0:t.url)&&void 0!==r?r:"",{size:c.h2.Large});return n.createElement("div",{className:"position-relative responsive-img ".concat(f),style:{backgroundImage:"url('".concat(a,"')")}},n.createElement(l.F,{appLink:e.appLink,analyticsOptions:{actionType:i.Vw.Click,location:i.LZ.PlayPage,entity:i.py.AppLink,workflowPhase:i.eu.Start,descriptor:i.Yu.SignUp},analyticsData:{}},n.createElement(o.x,{svgName:u.vn.PlayCircle,className:"x_1f6"}),n.createElement("div",{className:m})))}},78166:(e,t,r)=>{r.d(t,{Z:()=>h});var n=r(32735),a=r(71020),i=r(83345),l=r(74696),o=r(13231),c=r(51365),s=r(22902),u=r(59598),d=r(31908),m=r(10671),f=r(10741),p=r(22490),v=r(82431),g="shared.relatedVideos";function h(e){var t,r,h=(0,m._)({location:m.i.VideoItem}),y=(0,s.T)().hasPermissions;if(!(null===(t=e.currentUser)||void 0===t?void 0:t.isAuthenticated))return n.createElement(n.Fragment,null);if(e.relatedVideos.hasError)return n.createElement(n.Fragment,null);if(e.relatedVideos.hasCompleted&&!(null===(r=e.relatedVideos.videos)||void 0===r?void 0:r.length))return n.createElement(n.Fragment,null);if(!e.relatedVideos.isFetching&&!e.relatedVideos.hasCompleted)return n.createElement(n.Fragment,null);var b=!d.M.isInteractive(e.currentVideo);return n.createElement("section",{id:u.K.RelatedVideos,className:"play-page-section",ref:function(t){var r,n;t&&(null===(r=e.headingRef)||void 0===r?void 0:r.current)&&(null===(n=e.relatedVideos.videos)||void 0===n?void 0:n.length)&&e.headingRef.current.set(u.K.RelatedVideos,t)}},n.createElement(c.M.Provider,{value:h},n.createElement("h2",{className:"h4 mb-0"},n.createElement(i.x,{namespace:g,phrase:b?"upNext":"relatedVideos"})),e.relatedVideos.hasCompleted?n.createElement(o.E4,{videos:e.relatedVideos.videos,yearGroups:e.yearGroups,getSubTextAppLink:function(t){return v.j.getSeriesAppLink(t.series,e.moviesAndTv?{mtv:!0}:null)},getVideoAppLink:e.getVideoAppLink,hasPermissions:y,setFavourite:e.setFavourite,canFavourite:e.canFavourite,presentationAudiences:e.audiences,getPreviewQuestionsAppLink:function(e){return f.j.getPreviewQuestionsAppLink(e)},isPlugin:e.isPlugin,getClassroomGuideAppLink:p.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:p.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:p.W.getResourceGuidanceAppLink}):n.createElement(l.S,null),e.relatedVideos.hasMore&&n.createElement(a._,{isFetching:e.relatedVideos.isFetching,fetchNext:e.relatedVideos.fetchNext})))}},35014:(e,t,r)=>{r.d(t,{I:()=>c});var n=r(16714),a=r(12754),i=r(22902),l=r(15311),o=r(11387);function c(){var e=(0,i.T)(),t=e.hasPermissions,r=e.hasLocalPermissions,c=(0,(0,l.r)().hasProduct)(a.x.Primary);return{canViewGlance:t(n.C.ViewVideoGlance),canViewResources:!0,canViewInteractives:c&&t(n.C.ViewVideoInteractives),canViewClips:c&&t(n.C.ViewVideoClips),canViewCurriculumLinks:t(n.C.ViewCurriculums),canUseActions:r(n.E.UseVideoActions),canViewPublicLayout:!r(n.E.WatchVideos)&&o.C.hasRegionPrefix(),canViewResourceItems:r(n.E.ViewVideoResourceItems),canNavigate:c}}},97816:(e,t,r)=>{r.d(t,{V:()=>d});var n=r(32735),a=r(20354),i=r(21750),l=r(31949),o=r(1575),c=r(31908);function s(e,t){if(e){if("string"==typeof e)return u(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?u(e,t):void 0}}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function d(e){var t,r,d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},m=a.a.useBasicFetch(l.N.currentUser()),f=n.useRef(new Set),p=function(e){return e?Array.isArray(e)?e.filter((function(e){return!!e&&(c.M.isVideo(e)||c.M.isClip(e))})):"data"in e?e.data.filter((function(e){return!!e&&(c.M.isVideo(e)||c.M.isClip(e))})):[]:[]}(e),v=p.map((function(e){return e.id})),g=(t=n.useState([]),r=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,i,l,o=[],c=!0,s=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(o.push(n.value),o.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=r.return&&(l=r.return(),Object(l)!==l))return}finally{if(s)throw a}}return o}}(t,r)||s(t,r)||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.")}()),h=g[0],y=g[1];n.useEffect((function(){if((null==v?void 0:v.length)&&m.hasCompleted){var e=[];v.forEach((function(t){f.current.has(t)||(e.push(t),f.current.add(t))})),e.length&&y((function(t){var r,n=[].concat(function(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||s(e)||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.")}()}(t),[o.R.videoMixinAssocs(e,d.flightNamespace)]);return(null===(r=m.data)||void 0===r?void 0:r.isAuthenticated)&&n.push(i.x.hasCurriculumLinks(e,null,d.flightNamespace)),n}))}}),[null==v?void 0:v.length,m.hasCompleted]),a.a.useBasicFetchAll(h)}}}]);
|
|
2
|
+
//# sourceMappingURL=9829-097052a2c6-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/9829-097052a2c6-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/common/src/react/hooks/UseEventsServiceSubscribe.ts","file:///app/packages/libs/common/src/react/services/EventsService.ts","file:///app/packages/libs/shared/src/components/infinite-scroll-footer/infinite-scroll-footer.scss","file:///app/packages/libs/shared/src/components/infinite-scroll-footer/InfiniteScrollFooter.tsx","file:///app/packages/libs/shared/src/components/resource-thumbnail/resource-thumbnail.scss","file:///app/packages/libs/shared/src/components/resource-thumbnail/ResourceThumbnail.tsx","file:///app/packages/libs/shared/src/components/video-list/partial-loading/partial-video-list.scss","file:///app/packages/libs/shared/src/components/video-list/partial-loading/PartialVideoList.tsx","file:///app/packages/libs/shared/src/hooks/usePrevious.ts","file:///app/packages/libs/shared/src/hooks/useTableOfContentsScroll.tsx","file:///app/packages/libs/shared/src/interfaces/PlayPageAnchor.ts","file:///app/packages/libs/shared/src/utils/ResourceHelper.ts","file:///app/packages/projects/lite/src/shared/components/play-page/ArchivedBanner.tsx","file:///app/packages/projects/lite/src/shared/components/play-page/RestrictionBanner.tsx","file:///app/packages/projects/lite/src/shared/components/play-page/components/title-and-actions/title-and-actions.scss","file:///app/packages/projects/lite/src/shared/components/play-page/components/title-and-actions/PlayPageTitleAndActions.tsx","file:///app/packages/projects/lite/src/shared/components/player-placeholder/player-placeholder.scss","file:///app/packages/projects/lite/src/shared/components/player-placeholder/PlayerPlaceholder.tsx","file:///app/packages/projects/lite/src/shared/components/related-videos/RelatedVideos.tsx","file:///app/packages/projects/lite/src/shared/hooks/useVideoFeatureAccess.ts","file:///app/packages/projects/lite/src/shared/hooks/useVideoMixin.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nimport { EventsService } from 'libs/common/react/services/EventsService';\n\n/**\n * \n * @param event the event to subscribe to\n * @param callback the callback function\n * @param once whether to subscribe once\n * @param shouldSubscribe conditionally determine whether to subscribe to events\n * @returns unsubscribe function\n */\nexport function useEventsServiceSubscribe(\n event: string,\n callback: (...args: any[]) => void,\n once?: boolean,\n shouldSubscribe?: boolean\n): () => void {\n const unsubscribe = () => {\n EventsService.unsubscribe(event, callback);\n };\n\n useEffect(() => {\n if (!shouldSubscribe)\n return;\n\n once ? EventsService.subscribeOnce(event, callback) : EventsService.subscribe(event, callback);\n\n return () => {\n unsubscribe();\n };\n }, []);\n\n return unsubscribe;\n}","type EventCallback = (...args: any[]) => void;\n\ninterface EventListener {\n callback: EventCallback,\n executionLimit?: number;\n executionCount?: number;\n}\n\ninterface EventsListenerHash {\n [event: string]: EventListener[];\n}\n\nexport class StaticEventsService {\n public subscribe(event: string, callback: EventCallback): void {\n this.registerListener(event, callback);\n }\n\n public subscribeOnce(event: string, callback: EventCallback): void {\n this.registerListener(event, callback, 1);\n }\n\n public unsubscribe(event: string, callback?: EventCallback): void {\n this.deregisterListener(event, callback);\n }\n\n public trigger(event: string, ...args: any[]): void {\n this.triggerCallbacks(event, args);\n }\n\n /**\n * Private functions/members below\n */\n\n private listeners: EventsListenerHash = {};\n\n private registerListener(event: string, callback: EventCallback, executionLimit?: number) {\n if (typeof event !== 'string')\n throw new Error('Event name must be a string');\n\n if (typeof callback !== 'function')\n throw new Error('Event callback must be a function');\n\n if (!!executionLimit && typeof executionLimit !== 'number')\n throw new Error('Execution limit must be a number or undefined');\n\n this.listeners[event] = this.listeners[event] ?? [];\n this.listeners[event].push({ callback, executionLimit });\n }\n\n private deregisterListener(event: string, callback?: EventCallback): void {\n if (typeof event !== 'string')\n throw new Error('Event name must be a string');\n\n if (!!callback && typeof callback !== 'function')\n throw new Error('Event callback must be a function');\n \n if (!callback) {\n this.listeners[event] = [];\n return;\n }\n\n const idxToRemove = this.listeners[event]?.findIndex(e => e.callback === callback);\n\n if (typeof idxToRemove !== 'number' || idxToRemove === -1)\n return;\n\n this.listeners[event].splice(idxToRemove, 1);\n\n if (this.listeners[event].length === 0)\n delete this.listeners[event];\n }\n\n private triggerCallbacks(event: string, ...args: any[]): void {\n if (!this.listeners[event])\n return;\n\n const callbacksToRemove: EventCallback[] = [];\n\n this.listeners[event].forEach(listener => {\n if (typeof listener.executionLimit === 'number') {\n listener.executionCount = listener.executionCount ?? 0;\n listener.executionCount++;\n\n if (listener.executionCount === listener.executionLimit)\n callbacksToRemove.push(listener.callback);\n }\n\n listener.callback.apply(null, ...args);\n });\n\n if (!callbacksToRemove.length)\n return;\n\n callbacksToRemove.forEach(callback => this.deregisterListener(event, callback));\n }\n}\n\nexport const EventsService = new StaticEventsService();","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"VwD1b\",\"spinner\":\"eJ85e\"};","import * as React from 'react';\nimport { Spinner } from 'react-bootstrap';\nimport { useInView } from 'react-intersection-observer';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './infinite-scroll-footer.scss';\n\ninterface InfiniteScrollFooterProps {\n isFetching: boolean;\n fetchNext?: (nextCursor: string) => void;\n nextCursor?: string;\n fetchOnScroll?: boolean;\n}\n\nInfiniteScrollFooter.defaultProps = {\n fetchOnScroll: false\n};\n\nexport function InfiniteScrollFooter(props: InfiniteScrollFooterProps): React.ReactElement {\n const [ ref, inView ] = useInView();\n\n React.useEffect(() => {\n if (!props.fetchOnScroll)\n return;\n\n if (!inView || props.isFetching)\n return;\n\n props.fetchNext?.(props.nextCursor);\n }, [ inView, props.isFetching ]);\n\n return (\n <div className={`p-3 text-center ${styles.container}`} ref={ref}>\n {props.isFetching\n ? <Spinner as='span' animation='border' role='status' className={styles.spinner} />\n : (\n <SvgContainer\n svgName={cvSvgLibrary.ChevronDown}\n className='svg-container cursor-pointer'\n size={SvgContainerSize.Large}\n onClick={() => props.fetchNext?.(props.nextCursor)}\n />\n )\n }\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"imageStyle\":\"FFgf3\",\"imageTypeResource\":\"z4O5p\",\"fallBackImage\":\"Xy4zX\"};","import React from 'react';\n\nimport { UrlHelper } from 'libs/analytics/utils/UrlHelper';\n\nimport { ImageSize, ImageType, ResizeType } from 'libs/shared/enums/Images';\nimport { ResourceFileType } from 'libs/shared/enums/ResourceFileType';\nimport { Link, Resource } from 'libs/shared/interfaces';\nimport { ImageHelper, ImageOptions } from 'libs/shared/utils/ImageHelper';\nimport { MasterTypeHelper } from 'libs/shared/utils/MasterTypeHelper';\n\nimport { BaseImage } from '../image/BaseImage';\n\nimport styles from './resource-thumbnail.scss';\n\n// Used for both PDFs and Links where we don't know the image ratio\nconst DYNAMIC_RATIO_IMAGE_OPTIONS: ImageOptions = {\n width: 200,\n resizeType: ResizeType.Cover\n};\n\nfunction getThumbnailUrl(\n imageCdnUrl: string,\n resource: Resource | Link,\n dynamicRatioImageOptions: ImageOptions = DYNAMIC_RATIO_IMAGE_OPTIONS\n): string {\n const imageType = getImageType(resource);\n\n // Use the thumbnail if defined\n if ('thumbnail' in resource && resource.thumbnail?.url)\n return ImageHelper.createUrl(resource.thumbnail?.url, { ...dynamicRatioImageOptions });\n \n const previewUrl = UrlHelper.safeUrlConcat(imageCdnUrl, '/v1/previews');\n\n if (!MasterTypeHelper.isResource(resource))\n return ImageHelper.createResourceImage(previewUrl, resource.url, { ...dynamicRatioImageOptions });\n\n if (imageType === ImageType.Pdf) {\n return resource.metadata.type === ResourceFileType.Pdf\n ? ImageHelper.createResourceImage(previewUrl, resource.url, { ...dynamicRatioImageOptions })\n : ImageHelper.createResourceImage(previewUrl, resource.pdf?.url, { ...dynamicRatioImageOptions });\n }\n\n if (resource.metadata.type !== ResourceFileType.Zip)\n return ImageHelper.createUrl(resource.url, { size: ImageSize.Medium, resizeType: ResizeType.Cover });\n\n return '/images/zip-resource.png';\n}\n\nfunction getImageType(resource: Resource | Link): ImageType {\n if (!MasterTypeHelper.isResource(resource))\n return ImageType.Link;\n\n if (resource.metadata.type === ResourceFileType.Pdf || resource.pdf?.url)\n return ImageType.Pdf;\n\n return ImageType.Thumbnails;\n}\n\ninterface ResourceThumbnailProps {\n imageCdnUrl: string;\n resource: Resource | Link;\n imageErrorFallbackUrl: string;\n preloadImage: boolean;\n dynamicRatioImageOptions?: ImageOptions;\n}\n\nexport function ResourceThumbnail(props: ResourceThumbnailProps): JSX.Element {\n let metadata = null;\n let rotation = 0;\n\n if (MasterTypeHelper.isResource(props.resource)) {\n metadata = props.resource.metadata;\n rotation = props.resource.thumbnail?.metadata?.rotation ?? 0;\n }\n\n const thumbnailUrl = getThumbnailUrl(props.imageCdnUrl, props.resource, props.dynamicRatioImageOptions);\n\n return (\n <BaseImage\n data={thumbnailUrl}\n imageType={getImageType(props.resource)}\n imageStyle={{ transform: `rotate(${rotation}deg)` }}\n alt={props.resource.name}\n errorFallbackImageSrc={props.imageErrorFallbackUrl}\n errorFallbackImageClassName={styles.fallBackImage}\n imageClassName={metadata?.type === ResourceFileType.Image ? `${styles.imageTypeResource} ${styles.imageStyle}` : ''}\n preload={props.preloadImage}\n preventLoad={!props.preloadImage}\n >\n </BaseImage>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"partialOptions\":\"Gufgq\",\"partialName\":\"SicQQ\",\"partialDescription\":\"dPGMq\",\"partialThumbnail\":\"vZrnb\",\"partialDragHandle\":\"iq73R\"};","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { VideoListHelper } from 'libs/shared/components/video-list/VideoListHelper';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\n\nimport styles from './partial-video-list.scss';\n\ninterface PartialVideoListProps {\n withReordering?: boolean;\n numVideos?: number;\n allowBulkActions?: boolean;\n}\n\nPartialVideoList.defaultProps = {\n numVideos: 15\n};\n\nexport function PartialVideoList(props: PartialVideoListProps): JSX.Element {\n return (\n <div className='mx-2'>\n {Array(props.numVideos).fill(null).map((_, i) => (\n <div className='d-flex' key={i}>\n {props.allowBulkActions && <div className='form-check pe-3 pe-sm-2 mx-0 mx-md-2' />}\n <PartialVideoItem {...props} />\n </div>\n ))}\n </div>\n );\n}\n\nexport function PartialVideoItem(props: PartialVideoListProps): JSX.Element {\n const breakpoints = useBreakpoints();\n\n const size = VideoListHelper.getSize(breakpoints, 'md');\n const isSmall = size === 'sm';\n\n const withDragHandle = props.withReordering && !breakpoints.xs;\n\n return (\n <Row className={`${isSmall ? '' : 'py-2'} flex-grow-1`}>\n <Col {...VideoListHelper.getThumbnailColumns()} className={`flex-column align-items-flex-start ${isSmall ? `pb-2 pe-1` : 'mb-1 pe-3 pe-md-2'}`}>\n <Row>\n {!!withDragHandle && (\n <div className='d-flex align-items-center justify-content-center col-2'>\n <div className={`partial-loading-background ${styles.partialDragHandle}`} />\n </div>\n )}\n <Col xs={VideoListHelper.getThumbnailColSize(withDragHandle)}>\n <div className={`partial-loading-background ${isSmall ? 'rounded' : 'rounded-3'} ${styles.partialThumbnail}`} />\n </Col>\n </Row>\n </Col>\n <Col {...VideoListHelper.getDetailsColumns()} className={isSmall ? 'pb-2' : 'px-2'}>\n <div className={`partial-loading-background mb-1 ${styles.partialName}`} />\n <div className={`partial-loading-background ${styles.partialDescription}`} />\n </Col>\n </Row>\n );\n}\n\n","import React from 'react';\n\n// https://reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state\nexport function usePrevious<T>(value: T): T {\n const ref = React.useRef<T>();\n React.useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}","import React from 'react';\n\nimport { usePrevious } from './usePrevious';\n\nconst HEADER_OFFSET = 80; // Size of header + some extra spacing\n\nexport const useTableOfContentsScroll = (elements: Element[], activeId: string) => {\n const [ hasDoneInitialScroll, setHasDoneInitialScroll ] = React.useState(false);\n\n const previousId = usePrevious(activeId);\n const currentId = activeId;\n\n React.useLayoutEffect(() => {\n if (!hasDoneInitialScroll || previousId !== currentId) {\n const target = elements.find(heading => heading && (heading?.id === currentId));\n\n if (target) {\n const rec = target.getBoundingClientRect();\n\n window.scrollBy({\n top: rec.top - HEADER_OFFSET,\n behavior: 'smooth'\n });\n \n if (!hasDoneInitialScroll)\n setHasDoneInitialScroll(true);\n }\n }\n }, [ elements, previousId, currentId, hasDoneInitialScroll ]);\n};","export enum PlayPageAnchor {\n Resources = 'resources',\n Interactives = 'interactives',\n Video = 'video',\n Clips = 'clips',\n CurriculumLinks = 'curriculum-links',\n VideoDetails = 'video-details',\n RelatedVideos = 'related-videos',\n ClippedFrom='clipped-from'\n}","import { ResourceType } from 'libs/shared/interfaces';\n\nexport const ResourceHelper = {\n getResourceTypeName(resourceType: ResourceType): string {\n switch (resourceType) {\n case 'additional-materials':\n return 'Additional Materials';\n\n case 'atom-guide':\n return 'ATOM Guide';\n\n case 'teacher-pack':\n return 'Teacher Pack';\n\n case 'student-activity':\n return 'Student Activity';\n\n default:\n return 'N/A';\n }\n }\n};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType } from 'libs/analytics/interfaces';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'shared.playPage';\n\ninterface ArchivedBannerProps {\n typeId: MasterType;\n hasStudentExperience: boolean;\n}\n\nfunction mapTypeId(typeId: MasterType): string {\n switch (typeId) {\n case MasterType.Video:\n return 'video';\n case MasterType.Clip:\n return 'clip';\n case MasterType.Interactive:\n return 'interactive';\n default:\n return '';\n }\n}\n\nexport function ArchivedBanner(props: ArchivedBannerProps): JSX.Element {\n const getPhrase = LanguageService.encloseNamespace(namespace);\n const type = mapTypeId(props.typeId);\n\n return (\n <div className='alert bg-light-blue p-3 rounded-3 d-flex justify-content-between align-items-center'>\n <SvgContainer\n svgName={cvSvgLibrary.Archive}\n size={SvgContainerSize.Standard}\n className='me-2 svg-container'\n />\n \n <div className='w-100'>\n <p className='fw-semibold mb-0'>{getPhrase('archivedInfoTitle', { type })}</p>\n {(!props.hasStudentExperience || type === EntityType.Video) && (\n <p className='mb-1'>{getPhrase('archivedInfo', { type: `${type}s` })}</p>\n )}\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { RestrictionType } from 'libs/shared/enums/RestrictionType';\nimport { Restrictions, YearGroup } from 'libs/shared/interfaces';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'shared.playPage';\n\ninterface RestrictionBannerProps {\n restrictions: Restrictions;\n yearGroups: YearGroup[];\n objectId: string;\n objectTypeId: MasterType;\n canManageVideoAccess: boolean;\n}\n\nexport function RestrictionBanner(props: RestrictionBannerProps): JSX.Element {\n if (!props.restrictions?.value?.length || !props.yearGroups || !props.canManageVideoAccess)\n return <></>;\n\n const restriction = RestrictionHelper.getWeightedRestriction(props.restrictions.value);\n\n if (restriction.type !== RestrictionType.Custom)\n return <></>;\n\n const baseClassName = RestrictionHelper.mapRestrictionToClass(props.restrictions);\n const className = `${baseClassName} fw-semibold p-2 rounded mb-3 d-flex justify-content-between align-items-center`;\n\n return (\n <div className={className}>\n <div className='d-flex align-items-center'>\n <SvgContainer\n svgName={RestrictionHelper.mapRestrictionToSvg(props.restrictions)}\n size={SvgContainerSize.Large}\n />\n <span className='ps-1'>\n {RestrictionHelper.mapRestrictionToText(props.restrictions, props.yearGroups)}\n </span>\n </div>\n \n <AppLink\n appLink={{\n application: AppChannels.DEFAULT,\n action: Actions.Default.APPROVE_VIDEO,\n params: {\n objectId: props.objectId,\n objectTypeId: props.objectTypeId\n }\n }}\n className='btn btn-outline-dark'\n >\n <Text namespace={namespace} phrase='approve' />\n </AppLink>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"series\":\"wTlJJ\",\"badgeListContainer\":\"Vaout\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { Actions } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { AudienceLabel } from 'libs/shared/components/audience-label/AudienceLabel';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { BadgeListContainer } from 'libs/shared/components/badges/BadgeListContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { RestrictionPadlock } from 'libs/shared/components/video-list/components/restriction-padlock/RestrictionPadlock';\nimport { VideoSubText } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { useMergeAudiences } from 'libs/shared/hooks/UseMergeAudiences';\nimport { Clip, PresentationAudience, Series, Video, YearGroup } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { VideoFeaturesHash } from 'shared/hooks/useVideoFeatureAccess';\n\nimport styles from './title-and-actions.scss';\n\nconst namespace = 'shared.playPage';\n\ninterface PlayPageTitleAndActionsProps {\n media: Clip | Video;\n yearGroups: YearGroup[];\n audiences: PresentationAudience[];\n featureAccess: VideoFeaturesHash;\n getSeriesAppLink?: (series: Series) => Core.AppLink;\n originalVideoAppLink?: Core.AppLink;\n shareId: string;\n}\n\nexport function PlayPageTitleAndActions(props: PlayPageTitleAndActionsProps): JSX.Element {\n const mergedAudience = useMergeAudiences(props.media.subjectPresentationAudiences?.data, props.audiences);\n\n const containerRef = React.useRef<HTMLDivElement>(null);\n const titleContainerRef = React.useRef<HTMLDivElement>(null);\n\n const hasBadges = (\n (VideoHelper.isVideo(props.media) && !!props.media.rating?.value) ||\n (VideoHelper.isVideo(props.media) && !!props.media.productionYear) ||\n !!props.media.subjectPresentationAudiences?.data?.length\n );\n\n const videoActions = useVideoActions({\n location: VideoActionsLocation.PlayPage,\n shareId: props.shareId\n });\n\n const canViewOriginal = !!props.originalVideoAppLink &&\n VideoHelper.isClip(props.media) &&\n VideoHelper.canViewOriginalVideo(props.media);\n\n return (\n <section className='mb-3 position-relative' ref={containerRef}>\n <div className='d-inline-block w-100' ref={titleContainerRef}>\n {props.featureAccess.canNavigate &&\n <div className='ms-2 float-end'>\n <Actions\n actions={videoActions.getVideoActions(props.media)}\n actionsDropdownClassName='btn btn-outline-dark'\n fetchMore={() => videoActions.fetchMoreActions(props.media)}\n />\n </div>\n }\n\n {!!VideoHelper.isVideo(props.media) && (\n <VideoSubText\n type='series'\n video={props.media}\n appLink={props.getSeriesAppLink?.(props.media.series)}\n className={`${styles.series} text-truncate mw-100`}\n analyticsOptions={{ location: LocationContext.PlayPage }}\n />\n )}\n <h1 className='h4 mb-2 mw-100'>\n <span className='align-self-center'>{props.media.name}</span>\n <RestrictionPadlock\n tooltipPlacement='right'\n className='d-inline-block ps-1'\n video={props.media}\n yearGroups={props.yearGroups}\n />\n </h1>\n\n {hasBadges && (\n <BadgeListContainer className={styles.badgeListContainer}>\n <AudienceLabel\n audience={mergedAudience}\n className='bg-white text-dark'\n border='dark'\n />\n {VideoHelper.isVideo(props.media) && (\n <Badge type={BadgeType.Rating} data={props.media.rating} />\n )}\n {VideoHelper.isVideo(props.media) && (\n <Badge type={BadgeType.ProductionYear} data={props.media.productionYear} />\n )}\n </BadgeListContainer>\n )}\n </div>\n\n {VideoHelper.isClip(props.media) && canViewOriginal && (\n <p className='clamp-1'>\n <Text namespace={namespace} phrase='viewOriginal' />\n \n <AppLink className='info-link' appLink={props.originalVideoAppLink}>\n {props.media._parentVideo?.name}\n </AppLink>\n </p>\n )}\n </section>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"mask\":\"LL7My\",\"centeredIcon\":\"x_1f6\",\"bgImage\":\"QoLgZ\",\"centeredOverlay\":\"BcnSH\"};","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { EntityType, LocationContext, SignUpDescriptors, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport styles from './player-placeholder.scss';\n\nconst namespace = 'shared.playerPlaceholder';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface PlayerPlaceholderProps {\n video: VideoTypes;\n type: 'pip' | 'public';\n appLink?: Core.AppLink;\n}\n\nexport function PlayerPlaceholder(props: PlayerPlaceholderProps): JSX.Element {\n switch (props.type) {\n case 'pip':\n return <PipPlaceholder {...props} />;\n case 'public':\n return <PublicPlaceholder {...props} />;\n default:\n return <></>;\n }\n}\n\nconst PipPlaceholder = (props: PlayerPlaceholderProps) => (\n <div\n className={`position-relative responsive-img ${styles.bgImage}`}\n style={{ backgroundImage: `url('${VideoHelper.getThumbnail(props.video)?.url ?? ''}')` }}\n >\n <p className={`m-0 text-white h3 ${styles.centeredOverlay}`}>{getPhrase('playingPiP')}</p>\n <div className={styles.mask} />\n </div>\n);\n\nconst PublicPlaceholder = (props: PlayerPlaceholderProps) => {\n const thumbnailUrl = ImageHelper.createUrl(VideoHelper.getThumbnail(props.video)?.url ?? '', {\n size: ImageSize.Large\n });\n\n return (\n <div\n className={`position-relative responsive-img ${styles.bgImage}`}\n style={{ backgroundImage: `url('${thumbnailUrl}')` }}\n >\n <AppLink\n appLink={props.appLink}\n analyticsOptions={{\n actionType: UserAction.Click,\n location: LocationContext.PlayPage,\n entity: EntityType.AppLink,\n workflowPhase: WorkflowPhase.Start,\n descriptor: SignUpDescriptors.SignUp\n }}\n analyticsData={{}}\n >\n <SvgContainer\n svgName={cvSvgLibrary.PlayCircle}\n className={styles.centeredIcon}\n />\n <div className={styles.mask} />\n </AppLink>\n </div>\n );\n};","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { CanFavouriteFunc, CurrentUser, FavouriteFunc, PresentationAudience, VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\nimport { GetVideoAppLinkOptions } from 'libs/shared/interfaces/VideoAppLinkOptions';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { RelatedVideosHash } from 'shared/hooks/useGetRelatedVideos';\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nconst namespace = 'shared.relatedVideos';\n\ninterface RelatedVideosProps {\n currentVideo: VideoTypes;\n yearGroups: YearGroup[];\n relatedVideos: RelatedVideosHash;\n setFavourite: FavouriteFunc;\n canFavourite: CanFavouriteFunc;\n currentUser: CurrentUser;\n audiences: PresentationAudience[];\n getVideoAppLink: (video: VideoTypes, opts: GetVideoAppLinkOptions) => Core.AppLink;\n moviesAndTv: boolean;\n isPlugin: boolean;\n headingRef?: React.MutableRefObject<Map<PlayPageAnchor, HTMLElement>>;\n}\n\nexport function RelatedVideos(props: RelatedVideosProps): JSX.Element {\n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem });\n const { hasPermissions } = usePermissions();\n\n if (!props.currentUser?.isAuthenticated) // Don't render if user is unauthenticated\n return <></>;\n\n if (props.relatedVideos.hasError) // Don't render if request has errored\n return <></>;\n\n if (props.relatedVideos.hasCompleted && !props.relatedVideos.videos?.length) // Don't render if response is empty\n return <></>;\n\n if (!props.relatedVideos.isFetching && !props.relatedVideos.hasCompleted) // Don't render if request is never made\n return <></>;\n\n // We don't support autoplaying from interactives. This means the related videos heading won't say \"Up next\"\n const canAutoplay = !VideoHelper.isInteractive(props.currentVideo);\n\n return (\n <section\n id={PlayPageAnchor.RelatedVideos}\n className='play-page-section'\n ref={el => {\n (el && props.headingRef?.current\n && !!props.relatedVideos.videos?.length)\n && props.headingRef.current.set(PlayPageAnchor.RelatedVideos, el);\n }}\n >\n <VideoActionsContext.Provider value={videoActions}>\n <h2 className='h4 mb-0'>\n <Text namespace={namespace} phrase={canAutoplay ? 'upNext' : 'relatedVideos'} />\n </h2>\n {props.relatedVideos.hasCompleted ? (\n <VideoList\n videos={props.relatedVideos.videos}\n yearGroups={props.yearGroups}\n getSubTextAppLink={video => {\n return SeriesAppLinkHelper.getSeriesAppLink(video.series, props.moviesAndTv ? { mtv: true } : null);\n }}\n getVideoAppLink={props.getVideoAppLink}\n hasPermissions={hasPermissions}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n presentationAudiences={props.audiences}\n getPreviewQuestionsAppLink={interactive => InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n isPlugin={props.isPlugin}\n getClassroomGuideAppLink={VideoAppLinkHelper.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={VideoAppLinkHelper.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={VideoAppLinkHelper.getResourceGuidanceAppLink}\n />\n ) : <PartialVideoList />\n }\n {props.relatedVideos.hasMore && (\n <InfiniteScrollFooter\n isFetching={props.relatedVideos.isFetching}\n fetchNext={props.relatedVideos.fetchNext}\n />\n )}\n </VideoActionsContext.Provider>\n </section>\n );\n}","import { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\n\nimport { LiteRouteHelper } from 'shared/utils/LiteRouteHelper';\n\nexport interface VideoFeaturesHash {\n canViewGlance: boolean;\n canViewResources: boolean;\n canViewInteractives: boolean;\n canViewClips: boolean;\n canUseActions: boolean;\n canViewPublicLayout: boolean;\n canNavigate: boolean;\n canViewCurriculumLinks: boolean;\n canViewResourceItems: boolean;\n}\n\nexport function useVideoFeatureAccess() {\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { hasProduct } = useProducts();\n\n const hasNP = hasProduct(ProductId.Primary);\n\n function showPublicLayout(): boolean {\n /**\n * Authenticated users should never see the placeholder\n */\n if (hasLocalPermissions(LocalPermissionName.WatchVideos))\n return false;\n\n /**\n * Accessing a play page unathenticated will have different contextual behabviours:\n * - For a share page, the user should see the video and never the placeholder\n * - For a public browsing page (ie. using a route-prefix) they should see the placeholder\n */\n return LiteRouteHelper.hasRegionPrefix();\n }\n\n return {\n canViewGlance: hasPermissions(PermissionName.ViewVideoGlance),\n canViewResources: true,\n canViewInteractives: hasNP && hasPermissions(PermissionName.ViewVideoInteractives),\n canViewClips: hasNP && hasPermissions(PermissionName.ViewVideoClips),\n canViewCurriculumLinks: hasPermissions(PermissionName.ViewCurriculums),\n canUseActions: hasLocalPermissions(LocalPermissionName.UseVideoActions),\n canViewPublicLayout: showPublicLayout(),\n canViewResourceItems: hasLocalPermissions(LocalPermissionName.ViewVideoResourceItems),\n canNavigate: hasNP\n };\n}","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { ClassificationRequests } from 'libs/shared/flight-requests/ClassificationRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { Clip, ClipCollection, CurrentUser, Video, VideoCollection } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\ntype Types = Video[] | VideoCollection | Clip[] | ClipCollection;\n\nfunction getValidObjects(objects: Types): (Video | Clip)[] {\n if (!objects)\n return [];\n\n if (Array.isArray(objects))\n return objects.filter(o => !!o && (VideoHelper.isVideo(o) || VideoHelper.isClip(o)));\n\n if ('data' in objects)\n return objects.data.filter(o => !!o && (VideoHelper.isVideo(o) || VideoHelper.isClip(o)));\n\n return [];\n}\n\ninterface VideoMixinOptions {\n /**\n * If the videos that are having new data mixed into are sitting on an explicit Flight namespace,\n * providing that namespace here is required\n */\n flightNamespace?: string;\n}\n\nexport function useVideoMixin(objects: Types, options: VideoMixinOptions = {}): void {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const hydratedVideos = React.useRef<Set<string>>(new Set<string>());\n\n const videos = getValidObjects(objects);\n\n const videoIds = videos.map(v => v.id);\n\n const [ request, setRequest ] = React.useState<Flight.Request[]>([]);\n\n React.useEffect(() => {\n if (!videoIds?.length || !currentUser.hasCompleted)\n return;\n\n const unhydratedVideos: string[] = [];\n\n videoIds.forEach(id => {\n if (!hydratedVideos.current.has(id)) {\n unhydratedVideos.push(id);\n hydratedVideos.current.add(id);\n }\n });\n \n if (!unhydratedVideos.length)\n return;\n\n setRequest(r => {\n const newRequests = [\n ...r,\n VideoRequests.videoMixinAssocs(unhydratedVideos, options.flightNamespace)\n ];\n\n if (currentUser.data?.isAuthenticated)\n newRequests.push(ClassificationRequests.hasCurriculumLinks(unhydratedVideos, null, options.flightNamespace));\n\n return newRequests;\n });\n }, [ videoIds?.length, currentUser.hasCompleted ]);\n\n Flight.useBasicFetchAll(request);\n}"],"names":["useEventsServiceSubscribe","event","callback","once","shouldSubscribe","unsubscribe","useEffect","EventsService","listeners","this","registerListener","deregisterListener","args","triggerCallbacks","executionLimit","Error","push","idxToRemove","findIndex","e","splice","length","callbacksToRemove","forEach","listener","executionCount","apply","InfiniteScrollFooter","props","ref","inView","fetchOnScroll","isFetching","fetchNext","nextCursor","className","Spinner","as","animation","role","SvgContainer","svgName","size","S","onClick","defaultProps","DYNAMIC_RATIO_IMAGE_OPTIONS","width","resizeType","getImageType","resource","MasterTypeHelper","metadata","type","ResourceFileType","pdf","url","ResourceThumbnail","rotation","thumbnail","thumbnailUrl","imageCdnUrl","dynamicRatioImageOptions","imageType","ImageHelper","previewUrl","UrlHelper","getThumbnailUrl","BaseImage","data","imageStyle","transform","alt","name","errorFallbackImageSrc","imageErrorFallbackUrl","errorFallbackImageClassName","imageClassName","preload","preloadImage","preventLoad","PartialVideoList","Array","numVideos","fill","map","_","i","key","allowBulkActions","PartialVideoItem","breakpoints","useBreakpoints","isSmall","VideoListHelper","withDragHandle","withReordering","xs","Row","Col","usePrevious","value","current","useTableOfContentsScroll","elements","activeId","hasDoneInitialScroll","setHasDoneInitialScroll","previousId","currentId","target","find","heading","id","rec","getBoundingClientRect","window","scrollBy","top","behavior","PlayPageAnchor","ResourceHelper","getResourceTypeName","resourceType","namespace","ArchivedBanner","getPhrase","typeId","mapTypeId","hasStudentExperience","RestrictionBanner","restrictions","yearGroups","canManageVideoAccess","baseClassName","appLink","application","action","params","objectId","objectTypeId","phrase","PlayPageTitleAndActions","mergedAudience","media","subjectPresentationAudiences","audiences","containerRef","titleContainerRef","hasBadges","VideoHelper","rating","productionYear","videoActions","useVideoActions","location","shareId","canViewOriginal","originalVideoAppLink","featureAccess","canNavigate","Actions","actions","getVideoActions","actionsDropdownClassName","fetchMore","fetchMoreActions","VideoSubText","video","getSeriesAppLink","series","analyticsOptions","RestrictionPadlock","tooltipPlacement","BadgeListContainer","AudienceLabel","audience","border","Badge","Text","AppLink","_parentVideo","LanguageService","PlayerPlaceholder","PipPlaceholder","PublicPlaceholder","style","backgroundImage","actionType","entity","workflowPhase","descriptor","SignUp","analyticsData","RelatedVideos","hasPermissions","currentUser","isAuthenticated","relatedVideos","hasError","hasCompleted","videos","canAutoplay","currentVideo","el","headingRef","set","getSubTextAppLink","moviesAndTv","mtv","getVideoAppLink","setFavourite","canFavourite","presentationAudiences","getPreviewQuestionsAppLink","interactive","isPlugin","getClassroomGuideAppLink","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","hasMore","useVideoFeatureAccess","hasLocalPermissions","hasNP","hasProduct","canViewGlance","canViewResources","canViewInteractives","canViewClips","canViewCurriculumLinks","canUseActions","canViewPublicLayout","canViewResourceItems","useVideoMixin","objects","options","hydratedVideos","Set","isArray","filter","o","getValidObjects","videoIds","v","request","setRequest","unhydratedVideos","has","add","r","newRequests","flightNamespace"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[9843],{69843:(e,t,a)=>{a.d(t,{c:()=>L});var n=a(32735),r=a(23481),i=a(81886),s=a(2948),o=a(49985),l=a(65858),c=a(26055),d=a(43820),u=a(86685),m=a(83345),p="userManager.ssoPasswordResetEmailNotAllowedError";function g(e){return n.createElement(u.W,null,n.createElement("p",{className:"mb-1 fw-semibold"},n.createElement(m.x,{namespace:p,phrase:"warning"})),e.helpArticle&&n.createElement("a",{href:e.helpArticle,target:"_blank",className:"info-link"},n.createElement(m.x,{namespace:p,phrase:"findMore"})))}var b=a(83657),v=a(38143),f=a(32045),h=a(12754),k=a(76881),w=a(42617);function y(e){return e&&e.groups?e.groups.map((function(e){return e.name})):[]}var E={isDev:function(e){return y(e).includes(w.j.Developer)},hasSubjectsAccess:function(e){return[w.j.Developer,w.j.Content,w.j.Curator,w.j.StreamableCurator].some((function(t){return y(e).includes(t)}))}},N=a(89961),C=a(35223),R=a(64818);function S(e){return function(e){if(Array.isArray(e))return A(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||O(e)||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.")}()}function O(e,t){if(e){if("string"==typeof e)return A(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?A(e,t):void 0}}function A(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var T=r.T.encloseNamespace("userManager.userList");function L(e){var t=function(e){var t,a,r,u,m,p,b,w,y,A=n.useContext(c.A),L=function(t){return t===e.user.status},j=null===(t=e.user.metadata)||void 0===t?void 0:t.isEmailVerified,U=e.user.id==(null===(a=e.currentUser)||void 0===a?void 0:a.id),D=(w=(0,s.D)(v.g.BULK_REMOVE_USERS),y=2,function(e){if(Array.isArray(e))return e}(w)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,i,s,o=[],l=!0,c=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;l=!1}else for(;!(l=(n=i.call(a)).done)&&(o.push(n.value),o.length!==t);l=!0);}catch(e){c=!0,r=e}finally{try{if(!l&&null!=a.return&&(s=a.return(),Object(s)!==s))return}finally{if(c)throw r}}return o}}(w,y)||O(w,y)||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.")}())[1];function x(t){o.k.logUserAction({id:e.user.id},o.k.mergeOptions({entity:l.py.User,workflowPhase:l.eu.Start,location:l.LZ[e.userType===k.Y.Learner?"StaffManagerListItem":"StudentManagerListItem"]},t))}var I=[];if(!e.isEditUserForm){var V=function(){return!(e.hasRostering||!L(f.w.Active)&&(!L(f.w.Inactive)||A!==d.a.Curator))};I.push({order:0,onClick:function(){var t;if(V()){x({actionType:l.Vw.Edit});var a=Object.assign(Object.assign({},e.appLinks.editUser),{args:[].concat(S(null!==(t=e.appLinks.editUser.args)&&void 0!==t?t:[]),[e.user.id])});i.Q.C$.trigger(a)}},svgName:C.vn.Edit,className:"btn btn-link svg-container ".concat(V()?"":"disabled"),tooltip:e.hasRostering?T("editControlledByRostering"):L(f.w.Disabled)?T("editUserDisabled"):L(f.w.Inactive)&&A!==d.a.Curator?T("editUserPending"):T("editUser"),button:!0})}return e.user.email&&L(f.w.Inactive)&&e.onClickResendActivationEmail&&I.push({order:5,disabled:e.hasRostering,tooltip:e.hasRostering?T("editControlledByRostering"):"",label:T("resendActivationEmail"),onClick:function(){x({actionType:l.Vw.SendEmail,descriptor:l.on.ActivateUser}),e.onClickResendActivationEmail(e.user)},className:e.hasRostering?"cursor-default disabled":"btn btn-link"}),e.user.email&&L(f.w.Active)&&!j&&I.push({order:5,label:T("sendVerificationEmail"),disabled:e.hasRostering,tooltip:e.hasRostering?T("editControlledByRostering"):"",onClick:function(){x({actionType:l.Vw.SendEmail,descriptor:l.on.VerifyEmail}),e.onClickSendVerificationEmail(e.user)},className:e.hasRostering?"cursor-default disabled":"btn btn-link"}),U||(j&&L(f.w.Active)&&e.onClickSendResetEmail&&I.push({order:5,label:T("sendResetEmail"),disabled:e.hasRostering,tooltip:e.hasRostering?T("editControlledByRostering"):"",onClick:function(){R.l.hasSso(e.user)?N.M.render(n.createElement(g,{helpArticle:e.ssoHelpArticle}),{title:T("sendResetEmail"),cancelButtonProps:{text:T("close"),variant:"dark"}}):(x({actionType:l.Vw.SendEmail,descriptor:l.on.ResetPasswordEmail}),e.onClickSendResetEmail(e.user))},className:e.hasRostering?"cursor-default disabled":"btn btn-link"}),L(f.w.Inactive)||I.push({order:10,label:T(L(f.w.Active)?"deactivate":"activate"),disabled:e.hasRostering,tooltip:e.hasRostering?T("editControlledByRostering"):"",className:e.hasRostering?"cursor-default disabled":"",onClick:function(){var t;x({actionType:l.Vw.Activate,descriptor:L(f.w.Active)?l.DL.Off:l.DL.On});var a=Object.assign(Object.assign({},e.appLinks.toggleStatus),{args:[].concat(S(null!==(t=e.appLinks.toggleStatus.args)&&void 0!==t?t:[]),[e.user.id])});i.Q.C$.trigger(a)}}),(A!==d.a.Primary||(null===(r=e.products)||void 0===r?void 0:r.includes(h.x.Online)))&&I.push({order:25,disabled:e.hasRostering,onClick:function(){L(f.w.Active)||(x({actionType:l.Vw.Delete,descriptor:l.yh.Single}),D({users:[e.user],totalUsers:1}),i.Q.C$.trigger(e.appLinks.deleteUser))},label:T("delete"),className:"btn btn-link text-danger ".concat(L(f.w.Active)||e.hasRostering?"cursor-default disabled":""),button:!1,tooltip:e.hasRostering?T("editControlledByRostering"):L(f.w.Active)?T("deleteDisabledTooltip"):null}),A!==d.a.Online&&!(null===(u=e.products)||void 0===u?void 0:u.includes(h.x.Online))&&I.push({order:25,disabled:e.hasRostering,onClick:function(){var t;if(!L(f.w.Active)){x({actionType:l.Vw.Remove,descriptor:l.yh.Single});var a=Object.assign(Object.assign({},e.appLinks.removeUser),{args:[].concat(S(null!==(t=e.appLinks.editUser.args)&&void 0!==t?t:[]),[e.user.id])});i.Q.C$.trigger(a)}},label:T("remove"),className:"btn btn-link text-danger ".concat(L(f.w.Active)||e.hasRostering?"cursor-default disabled":""),button:!1,tooltip:e.hasRostering?T("editControlledByRostering"):L(f.w.Active)?T("removeDisabledTooltip"):null})),A===d.a.Online&&e.userType===k.Y.Learner&&L(f.w.Active)&&I.push({order:15,label:T("viewWorkspace"),onClick:function(){return x({actionType:l.Vw.Click,descriptor:l._S.ViewStudentWorkspace})},appLink:Object.assign(Object.assign({},e.appLinks.viewStudentWorkspace),{params:{username:e.user.username}}),className:e.hasRostering?"cursor-default disabled":"btn btn-link",button:!1}),A!==d.a.Primary||e.userType!==k.Y.Learner||L(f.w.Inactive)||I.push({order:15,label:T("viewStudentsVideos"),onClick:function(){return x({actionType:l.Vw.Click,descriptor:l._S.ViewStudentWorkspace})},appLink:Object.assign(Object.assign({},e.appLinks.viewStudentWorkspace),{args:[e.user.id]}),className:"btn btn-link",button:!1}),L(f.w.Active)&&(e.userType===k.Y.Staff&&!j||e.userType===k.Y.Learner)&&I.push({order:20,disabled:e.hasRostering,label:T("changePassword"),className:e.hasRostering?"cursor-default disabled":"",onClick:function(){var t;x({actionType:l.Vw.ChangePassword});var a=Object.assign(Object.assign({},e.appLinks.changePassword),{args:[].concat(S(null!==(t=e.appLinks.changePassword.args)&&void 0!==t?t:[]),[e.user.id])});i.Q.C$.trigger(a)}}),A===d.a.Curator&&E.isDev(e.currentUser)&&I.push.apply(I,[{order:2,label:T("manageCuratorGroups"),disabled:e.hasRostering,tooltip:e.hasRostering?T("editControlledByRostering"):"",className:e.hasRostering?"cursor-default disabled":"",onClick:function(){x({actionType:l.Vw.ManageGroup}),i.Q.C$.trigger(Object.assign(Object.assign({},e.appLinks.manageUserCuratorGroups),{args:[e.user.id]}))}},{order:3,label:T("editUserOptions"),disabled:e.hasRostering,tooltip:e.hasRostering?T("editControlledByRostering"):"",className:e.hasRostering?"cursor-default disabled":"",appLink:Object.assign(Object.assign({},e.appLinks.editUserOptions),{args:[].concat(S(null!==(m=e.appLinks.editUserOptions.args)&&void 0!==m?m:[]),[e.user.id])})}]),A===d.a.Curator&&(null===(p=e.user.metadata)||void 0===p?void 0:p.isEmailVerified)&&!L(f.w.Inactive)&&I.push({order:5,label:T("unverifyEmail"),disabled:e.hasRostering,tooltip:e.hasRostering?T("editControlledByRostering"):"",className:e.hasRostering?"cursor-default disabled":"",onClick:function(){var t;x({actionType:l.Vw.VerifyEmail,descriptor:l.hY.Remove}),i.Q.C$.trigger(Object.assign(Object.assign({},e.appLinks.deleteUserEmail),{args:[].concat(S(null!==(t=e.appLinks.deleteUserEmail.args)&&void 0!==t?t:[]),[e.user.id])}))}}),A===d.a.Curator&&e.isEditUserForm&&I.push({order:6,label:T("addToAnotherCustomer"),disabled:e.hasRostering,tooltip:e.hasRostering?T("editControlledByRostering"):"",className:e.hasRostering?"cursor-default disabled":"",appLink:Object.assign(Object.assign({},e.appLinks.addToAnotherCustomer),{args:[].concat(S(null!==(b=e.appLinks.addToAnotherCustomer.args)&&void 0!==b?b:[]),[e.user.id])})}),I}(e);return n.createElement(b.e,{actions:t,className:e.isEditUserForm?"mb-2":"pe-4",actionsDropdownClassName:e.isEditUserForm?"btn btn-outline-dark":"btn btn-link ms-1"})}},86685:(e,t,a)=>{a.d(t,{W:()=>o});var n=a(32735),r=a(83914),i=a(35223);const s={icon:"eCi4v"};function o(e){return n.createElement("div",{className:"alert alert-warning d-flex align-items-center px-2 mb-3"},n.createElement(r.x,{svgName:i.vn.WarningOutline,className:"svg-container me-2 ".concat(s.icon)}),n.createElement("div",null,e.children))}},26055:(e,t,a)=>{a.d(t,{A:()=>n});var n=a(32735).createContext(null)},83657:(e,t,a)=>{a.d(t,{e:()=>c});var n=a(32735),r=a(91967),i=a(10874),s=a(76177),o=a(42735),l=a(86509);function c(e){var t=n.useMemo((function(){return e.actions.sort((function(e,t){return e.order-t.order}))}),[e.actions]),a=[],c=[];t.forEach((function(e){e.button?a.push(e):c.push(e)}));var d="d-flex";return e.className&&(d+=" ".concat(e.className)),a.length||c.length?n.createElement("div",{className:d},n.createElement(n.Fragment,null,n.createElement("span",{className:"d-flex align-items-center"},a.length?a.map((function(e,t){return n.createElement(n.Fragment,{key:t},function(){if(e.label){var t=r.q.isFunction(e.label)?e.label:function(){return n.createElement(n.Fragment,null,e.label)};return n.createElement(o.K,{appLink:e.appLink,href:e.href,onClick:e.onClick,svgName:e.svgName,className:e.className,tooltip:e.tooltip,showSpinner:e.showSpinner,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,openInNewTab:e.openInNewTab,disabled:e.disabled},t())}var a=n.createElement(i.h,{appLink:e.appLink,href:e.href,onClick:e.onClick,svgName:e.svgName,className:e.className,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,openInNewTab:e.openInNewTab,disabled:e.disabled});return e.tooltip?n.createElement(s.u,{title:e.tooltip,spanHack:!0},a):a}())})):n.createElement(n.Fragment,null),e.sortComponent&&e.sortComponent,c.length?n.createElement(l.m,{actions:c,dropdownToggleClassName:e.actionsDropdownClassName,dropdownToggleSvgSize:e.dropdownToggleSvgSize,fetchMore:e.fetchMore}):n.createElement(n.Fragment,null)))):n.createElement(n.Fragment,null)}},86509:(e,t,a)=>{a.d(t,{m:()=>v});var n=a(32735),r=a(91967),i=a(81886),s=a(45157),o=a(49985),l=a(36848),c=a(83914),d=a(76177),u=a(35223);const m={dropdownToggle:"UCAnJ"};function p(){return n.createElement(n.Fragment,null,n.createElement("div",{style:{padding:"0.53125rem 1rem"}},n.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"8rem"}})),n.createElement("div",{style:{padding:"0.53125rem 1rem"}},n.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"12rem"}})),n.createElement("div",{style:{padding:"0.53125rem 1rem"}},n.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"11rem"}})),n.createElement("div",{style:{padding:"0.53125rem 1rem"}},n.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"9rem"}})))}function g(e){var t="dropdown-item";return e&&(t+=" ".concat(e)),t}function b(e){var t=r.q.isFunction(e.action.label)?e.action.label:function(){return n.createElement(n.Fragment,null,e.action.label)};if(e.action.appLink)return n.createElement(l.F,{appLink:e.action.appLink,onClick:e.action.onClick,className:g(e.action.className),analyticsData:e.action.analyticsData,analyticsOptions:e.action.analyticsOptions,openInNewTab:e.action.openInNewTab,disabled:e.action.disabled},e.action.svgName&&n.createElement(c.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2 align-middle"}),n.createElement("span",{className:"align-middle"},t()));function a(t){t.preventDefault(),e.action.analyticsData&&e.action.analyticsOptions&&o.k.logUserAction(e.action.analyticsData,e.action.analyticsOptions),r.q.isFunction(e.action.onClick)&&e.action.onClick(),e.action.href&&i.Q.Ab.PageLoad(e.action.href,e.action.openInNewTab)}return e.action.href?n.createElement("a",{className:g(e.action.className),onClick:a,href:e.action.href},e.action.svgName&&n.createElement(c.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2 align-middle"}),n.createElement("span",{className:"align-middle"},t())):n.createElement("span",{className:"cursor-pointer ".concat(g(e.action.className)),onClick:a,role:"button",tabIndex:0,onKeyDown:function(e){return"Enter"===e.key&&a(e)}},e.action.svgName&&n.createElement(c.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2"}),t())}function v(e){if(!e.actions||!e.actions.length)return n.createElement(n.Fragment,null);var t=e.actions.some((function(e){return e.lazyPlaceholder})),a="dropdown";e.className&&(a+=" ".concat(e.className));var r,i="actions-dropdown-".concat(s.Y.getRandomInt()),o="dropdown-toggle px-0 ".concat(m.dropdownToggle);return e.dropdownToggleClassName&&(o+=" ".concat(e.dropdownToggleClassName)),n.createElement("div",{className:a},n.createElement("button",{className:o,type:"button",id:i,"data-bs-toggle":"dropdown","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false",onClick:t?e.fetchMore:null},n.createElement(c.x,{svgName:u.vn.More,size:e.dropdownToggleSvgSize})),n.createElement("div",{className:"dropdown-menu dropdown-menu-end dropdown-menu-right","aria-labelledby":i},t?n.createElement(p,null):e.actions.map((function(e,t){var a=void 0!==r&&r!==e.group;return r=e.group,e.tooltip?n.createElement(n.Fragment,{key:t},a&&n.createElement("hr",{className:"dropdown-divider",role:"separator"}),n.createElement(d.u,{title:e.tooltip,spanHack:!0},n.createElement(b,{action:e}))):n.createElement(n.Fragment,{key:t},a&&n.createElement("hr",{className:"dropdown-divider",role:"separator"}),n.createElement(b,{action:e}))}))))}v.defaultProps={dropdownToggleClassName:"btn btn-light",dropdownToggleSvgSize:c.S.Small}}}]);
|
|
2
|
-
//# sourceMappingURL=9843-
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[9843],{69843:(e,t,a)=>{a.d(t,{c:()=>L});var n=a(32735),r=a(23481),i=a(81886),s=a(2948),o=a(49985),l=a(65858),c=a(26055),d=a(43820),u=a(86685),m=a(83345),p="userManager.ssoPasswordResetEmailNotAllowedError";function g(e){return n.createElement(u.W,null,n.createElement("p",{className:"mb-1 fw-semibold"},n.createElement(m.x,{namespace:p,phrase:"warning"})),e.helpArticle&&n.createElement("a",{href:e.helpArticle,target:"_blank",className:"info-link"},n.createElement(m.x,{namespace:p,phrase:"findMore"})))}var b=a(83657),v=a(38143),f=a(32045),h=a(12754),k=a(76881),w=a(42617);function y(e){return e&&e.groups?e.groups.map((function(e){return e.name})):[]}var E={isDev:function(e){return y(e).includes(w.j.Developer)},hasSubjectsAccess:function(e){return[w.j.Developer,w.j.Content,w.j.Curator,w.j.StreamableCurator].some((function(t){return y(e).includes(t)}))}},N=a(89961),C=a(35223),R=a(64818);function S(e){return function(e){if(Array.isArray(e))return A(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||O(e)||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.")}()}function O(e,t){if(e){if("string"==typeof e)return A(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?A(e,t):void 0}}function A(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var T=r.T.encloseNamespace("userManager.userList");function L(e){var t=function(e){var t,a,r,u,m,p,b,w,y,A=n.useContext(c.A),L=function(t){return t===e.user.status},j=null===(t=e.user.metadata)||void 0===t?void 0:t.isEmailVerified,U=e.user.id==(null===(a=e.currentUser)||void 0===a?void 0:a.id),D=(w=(0,s.D)(v.g.BULK_REMOVE_USERS),y=2,function(e){if(Array.isArray(e))return e}(w)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,i,s,o=[],l=!0,c=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;l=!1}else for(;!(l=(n=i.call(a)).done)&&(o.push(n.value),o.length!==t);l=!0);}catch(e){c=!0,r=e}finally{try{if(!l&&null!=a.return&&(s=a.return(),Object(s)!==s))return}finally{if(c)throw r}}return o}}(w,y)||O(w,y)||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.")}())[1];function x(t){o.k.logUserAction({id:e.user.id},o.k.mergeOptions({entity:l.py.User,workflowPhase:l.eu.Start,location:l.LZ[e.userType===k.Y.Learner?"StaffManagerListItem":"StudentManagerListItem"]},t))}var I=[];if(!e.isEditUserForm){var V=function(){return!(e.hasRostering||!L(f.w.Active)&&(!L(f.w.Inactive)||A!==d.a.Curator))};I.push({order:0,onClick:function(){var t;if(V()){x({actionType:l.Vw.Edit});var a=Object.assign(Object.assign({},e.appLinks.editUser),{args:[].concat(S(null!==(t=e.appLinks.editUser.args)&&void 0!==t?t:[]),[e.user.id])});i.Q.C$.trigger(a)}},svgName:C.vn.Edit,className:"btn btn-link svg-container ".concat(V()?"":"disabled"),tooltip:e.hasRostering?T("editControlledByRostering"):L(f.w.Disabled)?T("editUserDisabled"):L(f.w.Inactive)&&A!==d.a.Curator?T("editUserPending"):T("editUser"),button:!0})}return e.user.email&&L(f.w.Inactive)&&e.onClickResendActivationEmail&&I.push({order:5,disabled:e.hasRostering,tooltip:e.hasRostering?T("editControlledByRostering"):"",label:T("resendActivationEmail"),onClick:function(){x({actionType:l.Vw.SendEmail,descriptor:l.on.ActivateUser}),e.onClickResendActivationEmail(e.user)},className:e.hasRostering?"cursor-default disabled":"btn btn-link"}),e.user.email&&L(f.w.Active)&&!j&&I.push({order:5,label:T("sendVerificationEmail"),disabled:e.hasRostering,tooltip:e.hasRostering?T("editControlledByRostering"):"",onClick:function(){x({actionType:l.Vw.SendEmail,descriptor:l.on.VerifyEmail}),e.onClickSendVerificationEmail(e.user)},className:e.hasRostering?"cursor-default disabled":"btn btn-link"}),U||(j&&L(f.w.Active)&&e.onClickSendResetEmail&&I.push({order:5,label:T("sendResetEmail"),disabled:e.hasRostering,tooltip:e.hasRostering?T("editControlledByRostering"):"",onClick:function(){R.l.hasSso(e.user)?N.M.render(n.createElement(g,{helpArticle:e.ssoHelpArticle}),{title:T("sendResetEmail"),cancelButtonProps:{text:T("close"),variant:"dark"}}):(x({actionType:l.Vw.SendEmail,descriptor:l.on.ResetPasswordEmail}),e.onClickSendResetEmail(e.user))},className:e.hasRostering?"cursor-default disabled":"btn btn-link"}),L(f.w.Inactive)||I.push({order:10,label:T(L(f.w.Active)?"deactivate":"activate"),disabled:e.hasRostering,tooltip:e.hasRostering?T("editControlledByRostering"):"",className:e.hasRostering?"cursor-default disabled":"",onClick:function(){var t;x({actionType:l.Vw.Activate,descriptor:L(f.w.Active)?l.DL.Off:l.DL.On});var a=Object.assign(Object.assign({},e.appLinks.toggleStatus),{args:[].concat(S(null!==(t=e.appLinks.toggleStatus.args)&&void 0!==t?t:[]),[e.user.id])});i.Q.C$.trigger(a)}}),(A!==d.a.Primary||(null===(r=e.products)||void 0===r?void 0:r.includes(h.x.Online)))&&I.push({order:25,disabled:e.hasRostering,onClick:function(){L(f.w.Active)||(x({actionType:l.Vw.Delete,descriptor:l.yh.Single}),D({users:[e.user],totalUsers:1}),i.Q.C$.trigger(e.appLinks.deleteUser))},label:T("delete"),className:"btn btn-link text-danger ".concat(L(f.w.Active)||e.hasRostering?"cursor-default disabled":""),button:!1,tooltip:e.hasRostering?T("editControlledByRostering"):L(f.w.Active)?T("deleteDisabledTooltip"):null}),A!==d.a.Online&&!(null===(u=e.products)||void 0===u?void 0:u.includes(h.x.Online))&&I.push({order:25,disabled:e.hasRostering,onClick:function(){var t;if(!L(f.w.Active)){x({actionType:l.Vw.Remove,descriptor:l.yh.Single});var a=Object.assign(Object.assign({},e.appLinks.removeUser),{args:[].concat(S(null!==(t=e.appLinks.editUser.args)&&void 0!==t?t:[]),[e.user.id])});i.Q.C$.trigger(a)}},label:T("remove"),className:"btn btn-link text-danger ".concat(L(f.w.Active)||e.hasRostering?"cursor-default disabled":""),button:!1,tooltip:e.hasRostering?T("editControlledByRostering"):L(f.w.Active)?T("removeDisabledTooltip"):null})),A===d.a.Online&&e.userType===k.Y.Learner&&L(f.w.Active)&&I.push({order:15,label:T("viewWorkspace"),onClick:function(){return x({actionType:l.Vw.Click,descriptor:l._S.ViewStudentWorkspace})},appLink:Object.assign(Object.assign({},e.appLinks.viewStudentWorkspace),{params:{username:e.user.username}}),className:e.hasRostering?"cursor-default disabled":"btn btn-link",button:!1}),A!==d.a.Primary||e.userType!==k.Y.Learner||L(f.w.Inactive)||I.push({order:15,label:T("viewStudentsVideos"),onClick:function(){return x({actionType:l.Vw.Click,descriptor:l._S.ViewStudentWorkspace})},appLink:Object.assign(Object.assign({},e.appLinks.viewStudentWorkspace),{args:[e.user.id]}),className:"btn btn-link",button:!1}),L(f.w.Active)&&(e.userType===k.Y.Staff&&!j||e.userType===k.Y.Learner)&&I.push({order:20,disabled:e.hasRostering,label:T("changePassword"),className:e.hasRostering?"cursor-default disabled":"",onClick:function(){var t;x({actionType:l.Vw.ChangePassword});var a=Object.assign(Object.assign({},e.appLinks.changePassword),{args:[].concat(S(null!==(t=e.appLinks.changePassword.args)&&void 0!==t?t:[]),[e.user.id])});i.Q.C$.trigger(a)}}),A===d.a.Curator&&E.isDev(e.currentUser)&&I.push.apply(I,[{order:2,label:T("manageCuratorGroups"),disabled:e.hasRostering,tooltip:e.hasRostering?T("editControlledByRostering"):"",className:e.hasRostering?"cursor-default disabled":"",onClick:function(){x({actionType:l.Vw.ManageGroup}),i.Q.C$.trigger(Object.assign(Object.assign({},e.appLinks.manageUserCuratorGroups),{args:[e.user.id]}))}},{order:3,label:T("editUserOptions"),disabled:e.hasRostering,tooltip:e.hasRostering?T("editControlledByRostering"):"",className:e.hasRostering?"cursor-default disabled":"",appLink:Object.assign(Object.assign({},e.appLinks.editUserOptions),{args:[].concat(S(null!==(m=e.appLinks.editUserOptions.args)&&void 0!==m?m:[]),[e.user.id])})}]),A===d.a.Curator&&(null===(p=e.user.metadata)||void 0===p?void 0:p.isEmailVerified)&&!L(f.w.Inactive)&&I.push({order:5,label:T("unverifyEmail"),disabled:e.hasRostering,tooltip:e.hasRostering?T("editControlledByRostering"):"",className:e.hasRostering?"cursor-default disabled":"",onClick:function(){var t;x({actionType:l.Vw.VerifyEmail,descriptor:l.hY.Remove}),i.Q.C$.trigger(Object.assign(Object.assign({},e.appLinks.deleteUserEmail),{args:[].concat(S(null!==(t=e.appLinks.deleteUserEmail.args)&&void 0!==t?t:[]),[e.user.id])}))}}),A===d.a.Curator&&e.isEditUserForm&&I.push({order:6,label:T("addToAnotherCustomer"),disabled:e.hasRostering,tooltip:e.hasRostering?T("editControlledByRostering"):"",className:e.hasRostering?"cursor-default disabled":"",appLink:Object.assign(Object.assign({},e.appLinks.addToAnotherCustomer),{args:[].concat(S(null!==(b=e.appLinks.addToAnotherCustomer.args)&&void 0!==b?b:[]),[e.user.id])})}),I}(e);return n.createElement(b.e,{actions:t,className:e.isEditUserForm?"mb-2":"pe-4",actionsDropdownClassName:e.isEditUserForm?"btn btn-outline-dark":"btn btn-link ms-1"})}},86685:(e,t,a)=>{a.d(t,{W:()=>o});var n=a(32735),r=a(83914),i=a(35223);const s={icon:"eCi4v"};function o(e){return n.createElement("div",{className:"alert alert-warning d-flex align-items-center px-2 mb-3"},n.createElement(r.x,{svgName:i.vn.WarningOutline,className:"svg-container me-2 ".concat(s.icon)}),n.createElement("div",null,e.children))}},26055:(e,t,a)=>{a.d(t,{A:()=>n});var n=a(32735).createContext(null)},83657:(e,t,a)=>{a.d(t,{e:()=>c});var n=a(32735),r=a(91967),i=a(10874),s=a(76177),o=a(42735),l=a(86509);function c(e){var t=n.useMemo((function(){return e.actions.sort((function(e,t){return e.order-t.order}))}),[e.actions]),a=[],c=[];t.forEach((function(e){e.button?a.push(e):c.push(e)}));var d="d-flex";return e.className&&(d+=" ".concat(e.className)),a.length||c.length?n.createElement("div",{className:d},n.createElement(n.Fragment,null,n.createElement("span",{className:"d-flex align-items-center"},a.length?a.map((function(e,t){return n.createElement(n.Fragment,{key:t},function(){if(e.label){var t=r.q.isFunction(e.label)?e.label:function(){return n.createElement(n.Fragment,null,e.label)};return n.createElement(o.K,{appLink:e.appLink,href:e.href,onClick:e.onClick,svgName:e.svgName,className:e.className,tooltip:e.tooltip,showSpinner:e.showSpinner,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,openInNewTab:e.openInNewTab,disabled:e.disabled},t())}var a=n.createElement(i.h,{appLink:e.appLink,href:e.href,onClick:e.onClick,svgName:e.svgName,className:e.className,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,openInNewTab:e.openInNewTab,disabled:e.disabled,showBorder:e.showBorder});return e.tooltip?n.createElement(s.u,{title:e.tooltip,spanHack:!0},a):a}())})):n.createElement(n.Fragment,null),e.sortComponent&&e.sortComponent,c.length?n.createElement(l.m,{actions:c,dropdownToggleClassName:e.actionsDropdownClassName,dropdownToggleSvgSize:e.dropdownToggleSvgSize,fetchMore:e.fetchMore}):n.createElement(n.Fragment,null)))):n.createElement(n.Fragment,null)}},86509:(e,t,a)=>{a.d(t,{m:()=>v});var n=a(32735),r=a(91967),i=a(81886),s=a(45157),o=a(49985),l=a(36848),c=a(83914),d=a(76177),u=a(35223);const m={dropdownToggle:"UCAnJ"};function p(){return n.createElement(n.Fragment,null,n.createElement("div",{style:{padding:"0.53125rem 1rem"}},n.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"8rem"}})),n.createElement("div",{style:{padding:"0.53125rem 1rem"}},n.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"12rem"}})),n.createElement("div",{style:{padding:"0.53125rem 1rem"}},n.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"11rem"}})),n.createElement("div",{style:{padding:"0.53125rem 1rem"}},n.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"9rem"}})))}function g(e){var t="dropdown-item";return e&&(t+=" ".concat(e)),t}function b(e){var t=r.q.isFunction(e.action.label)?e.action.label:function(){return n.createElement(n.Fragment,null,e.action.label)};if(e.action.appLink)return n.createElement(l.F,{appLink:e.action.appLink,onClick:e.action.onClick,className:g(e.action.className),analyticsData:e.action.analyticsData,analyticsOptions:e.action.analyticsOptions,openInNewTab:e.action.openInNewTab,disabled:e.action.disabled},e.action.svgName&&n.createElement(c.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2 align-middle"}),n.createElement("span",{className:"align-middle"},t()));function a(t){t.preventDefault(),e.action.analyticsData&&e.action.analyticsOptions&&o.k.logUserAction(e.action.analyticsData,e.action.analyticsOptions),r.q.isFunction(e.action.onClick)&&e.action.onClick(),e.action.href&&i.Q.Ab.PageLoad(e.action.href,e.action.openInNewTab)}return e.action.href?n.createElement("a",{className:g(e.action.className),onClick:a,href:e.action.href},e.action.svgName&&n.createElement(c.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2 align-middle"}),n.createElement("span",{className:"align-middle"},t())):n.createElement("span",{className:"cursor-pointer ".concat(g(e.action.className)),onClick:a,role:"button",tabIndex:0,onKeyDown:function(e){return"Enter"===e.key&&a(e)}},e.action.svgName&&n.createElement(c.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2"}),t())}function v(e){if(!e.actions||!e.actions.length)return n.createElement(n.Fragment,null);var t=e.actions.some((function(e){return e.lazyPlaceholder})),a="dropdown";e.className&&(a+=" ".concat(e.className));var r,i="actions-dropdown-".concat(s.Y.getRandomInt()),o="dropdown-toggle px-0 ".concat(m.dropdownToggle);return e.dropdownToggleClassName&&(o+=" ".concat(e.dropdownToggleClassName)),n.createElement("div",{className:a},n.createElement("button",{className:o,type:"button",id:i,"data-bs-toggle":"dropdown","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false",onClick:t?e.fetchMore:null},n.createElement(c.x,{svgName:u.vn.More,size:e.dropdownToggleSvgSize})),n.createElement("div",{className:"dropdown-menu dropdown-menu-end dropdown-menu-right","aria-labelledby":i},t?n.createElement(p,null):e.actions.map((function(e,t){var a=void 0!==r&&r!==e.group;return r=e.group,e.tooltip?n.createElement(n.Fragment,{key:t},a&&n.createElement("hr",{className:"dropdown-divider",role:"separator"}),n.createElement(d.u,{title:e.tooltip,spanHack:!0},n.createElement(b,{action:e}))):n.createElement(n.Fragment,{key:t},a&&n.createElement("hr",{className:"dropdown-divider",role:"separator"}),n.createElement(b,{action:e}))}))))}v.defaultProps={dropdownToggleClassName:"btn btn-light",dropdownToggleSvgSize:c.S.Small}}}]);
|
|
2
|
+
//# sourceMappingURL=9843-ec032b6388-lite.chunk.js.map
|