@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/6948-84a5f8d76f-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/audience-label/AudienceLabel.tsx","file:///app/packages/libs/shared/src/components/badges/BadgeListContainer.tsx","file:///app/packages/libs/shared/src/components/check-mark-button/check-mark-button.scss","file:///app/packages/libs/shared/src/components/check-mark-button/CheckMarkButton.tsx","file:///app/packages/libs/shared/src/components/mask/mask.scss","file:///app/packages/libs/shared/src/components/mask/Mask.tsx","file:///app/packages/libs/shared/src/components/thumbnails/thumbnail-text/thumbnail-text.scss","file:///app/packages/libs/shared/src/components/thumbnails/thumbnail-text/ThumbnailText.tsx","file:///app/packages/libs/shared/src/components/favourite-button/favourite-button.scss","file:///app/packages/libs/shared/src/components/favourite-button/FavouriteButton.tsx","file:///app/packages/libs/shared/src/components/thumbnails/bottom-bar/videos/VideoWatchProgressBar.tsx","file:///app/packages/libs/shared/src/components/thumbnails/bottom-bar/video-thumbnail-bottom-bar.scss","file:///app/packages/libs/shared/src/components/thumbnails/bottom-bar/VideoThumbnailBottomBar.tsx","file:///app/packages/libs/shared/src/components/thumbnails/plugin-hover/plugin-hover.scss","file:///app/packages/libs/shared/src/components/thumbnails/plugin-hover/PluginHover.tsx","file:///app/packages/libs/shared/src/components/thumbnails/thumbnail-actions/padlock/thumbnail-padlock.scss","file:///app/packages/libs/shared/src/components/thumbnails/thumbnail-actions/padlock/ThumbnailPadlock.tsx","file:///app/packages/libs/shared/src/components/thumbnails/thumbnail-company/thumbnail-company-logo.scss","file:///app/packages/libs/shared/src/components/thumbnails/thumbnail-company/ThumbnailCompanyLogo.tsx","file:///app/packages/libs/shared/src/components/video-type-badge/VideoTypeBadge.tsx","file:///app/packages/libs/shared/src/components/thumbnails/video/expandable/expandable-video-thumbnail.scss","file:///app/packages/libs/shared/src/components/thumbnails/video/expandable/ExpandableVideoThumbnail.tsx","file:///app/packages/libs/shared/src/components/thumbnails/thumbnail-badges/video-thumbnail-badges.scss","file:///app/packages/libs/shared/src/components/thumbnails/thumbnail-badges/VideoThumbnailBadges.tsx","file:///app/packages/libs/shared/src/components/thumbnails/video/popout/popout-video-thumbnail.scss","file:///app/packages/libs/shared/src/components/thumbnails/video/popout/PopoutVideoThumbnail.tsx","file:///app/packages/libs/shared/src/components/thumbnails/thumbnail-actions/video-thumbnail-actions.scss","file:///app/packages/libs/shared/src/components/thumbnails/thumbnail-actions/VideoThumbnailActions.tsx","file:///app/packages/libs/shared/src/components/thumbnails/video/static/static-video-thumbnail.scss","file:///app/packages/libs/shared/src/components/thumbnails/video/static/StaticVideoThumbnail.tsx","file:///app/packages/libs/shared/src/components/thumbnails/video/VideoThumbnail.tsx","file:///app/packages/libs/shared/src/components/type-badge/type-badge.scss","file:///app/packages/libs/shared/src/components/type-badge/TypeBadge.tsx","file:///app/packages/libs/shared/src/components/video-list/components/restriction-padlock/RestrictionPadlock.tsx","file:///app/packages/libs/shared/src/components/video-guidance/tag/video-guidance-tag.scss","file:///app/packages/libs/shared/src/components/video-guidance/tag/VideoGuidanceTag.tsx","file:///app/packages/libs/shared/src/components/video-guidance/classroom-guide/ClassroomGuideTag.tsx","file:///app/packages/libs/shared/src/components/video-guidance/interactives/InteractivesTag.tsx","file:///app/packages/libs/shared/src/components/video-guidance/resources/ResourcesTag.tsx","file:///app/packages/libs/shared/src/components/video-list/components/video-guidance/VideoItemGuidance.tsx","file:///app/packages/libs/shared/src/context/player-context/components/global-player-consumer.scss","file:///app/packages/libs/shared/src/context/player-context/components/GlobalPlayerConsumer.tsx","file:///app/packages/libs/shared/src/enums/ThumbnailTextPosition.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { Audience } from 'libs/shared/interfaces';\n\nimport styles from './audience-label.scss';\n\ntype AudienceBorderColour = 'dark' | 'white';\n\ninterface AudienceLabelProps {\n audience: Audience;\n border: AudienceBorderColour;\n className?: string;\n}\n\nexport function AudienceLabel(props: AudienceLabelProps): JSX.Element {\n if (!props.audience)\n return <></>;\n\n // Note: the audience-label class is applied so that parent components can override styling, and Online can style this component\n return (\n <div\n className={`audience-label border rounded-pill d-inline-block px-2 text-nowrap \n ${'border-' + props.border} ${props.className ? props.className : ''}`}\n >\n {props.audience.name}\n </div>\n );\n}\n\ninterface AudienceLabelListProps {\n audiences: Audience[];\n border: AudienceBorderColour;\n}\n\nexport function AudienceLabelList(props: AudienceLabelListProps): JSX.Element {\n if (!props.audiences || !props.audiences.length)\n return <></>;\n\n return (\n <>\n {props.audiences.map((a, idx) => (\n <span key={idx} className={styles.audienceLabelListItem}>\n <AudienceLabel audience={a} border={props.border} />\n </span>\n ))}\n </>\n );\n}","import * as React from 'react';\n\nimport styles from './badge.scss';\n\ninterface BadgeListContainerProps {\n className?: string;\n}\n\nexport function BadgeListContainer(props: React.PropsWithChildren<BadgeListContainerProps>): JSX.Element {\n let className = `d-flex align-items-center badge-list ${styles.minHeight}`;\n\n if (props.className)\n className += ` ${props.className}`;\n\n return (\n <div className={className}>\n {props.children}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"unchecked\":\"bup9I\",\"outline\":\"ealw_\",\"checked\":\"A1Ov0\",\"checkMark\":\"c14lI\"};","import React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { DivButton } from '../div-button/DivButton';\n\nimport styles from './check-mark-button.scss';\n\nexport enum CheckMarkStatus {\n None = 'None',\n Complete = 'Complete',\n Incomplete = 'Incomplete'\n}\n\nexport type SetCheckMarkStatusFunc = (status: CheckMarkStatus) => Promise<void>;\n\ninterface CheckMarkButtonProps {\n setStatus: SetCheckMarkStatusFunc;\n status: CheckMarkStatus;\n style?: 'outline' | 'filled';\n className?: string;\n disabled?: boolean;\n}\n\nCheckMarkButton.defaultProps = {\n style: 'filled'\n};\n\nexport function CheckMarkButton(props: CheckMarkButtonProps): JSX.Element {\n // Use local state so that changes are reflected immediately.\n const [ isComplete, setIsComplete ] = React.useState(props.status === CheckMarkStatus.Complete);\n\n React.useEffect(() => {\n setIsComplete(props.status === CheckMarkStatus.Complete);\n }, [props.status]);\n\n let className = `cursor-pointer rounded-circle ${isComplete ? styles.checked : styles.unchecked}`;\n\n if (props.className)\n className += ` ${props.className}`;\n\n if (props.style === 'outline')\n className += ` ${styles.outline}`;\n\n function shouldRender(): boolean {\n return (\n !!props.status &&\n props.status !== CheckMarkStatus.None &&\n FunctionHelper.isFunction(props.setStatus)\n );\n }\n\n function onClick(): void {\n const shouldComplete = !isComplete;\n\n setIsComplete(shouldComplete);\n\n const newStatus = shouldComplete ? CheckMarkStatus.Complete : CheckMarkStatus.Incomplete;\n\n props.setStatus(newStatus).catch(() => {\n setIsComplete(!shouldComplete);\n });\n }\n\n if (!shouldRender())\n return <></>;\n\n return (\n <DivButton className={className} onClick={onClick} disabled={props.disabled}>\n <SvgContainer\n svgName={cvSvgLibrary.Tick}\n className={`svg-container ${styles.checkMark}`}\n />\n </DivButton>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"mask\":\"qpc7L\",\"small\":\"L8Oxs\",\"video\":\"b8kJW\",\"playlist\":\"eo2p2\",\"maskContainer\":\"lpwag\"};","import * as React from 'react';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './mask.scss';\n\nexport enum MaskType {\n Video,\n Playlist,\n Series\n}\n\nfunction getClassByType(type: MaskType): string {\n if (type === MaskType.Video)\n return styles.video;\n\n if (type === MaskType.Playlist)\n return styles.playlist;\n\n return '';\n}\n\nfunction getSvgType(type: MaskType): string {\n if (type === MaskType.Video)\n return cvSvgLibrary.PlayCircle;\n\n return '';\n}\n\ntype MaskSize = 'sm' | 'md';\n\ninterface MaskProps {\n type: MaskType;\n size?: MaskSize;\n}\n\nMask.defaults = {\n size: 'md'\n};\n\nexport function Mask(props: MaskProps): JSX.Element {\n const { type, size } = props;\n\n const typeClass = getClassByType(type);\n const svgType = getSvgType(type);\n\n return (\n <div className={`${styles.maskContainer} ${size === 'sm' ? styles.small : ''}`}>\n <div className={ styles.mask }></div>\n <SvgContainer svgName={svgType} className={ typeClass } />\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"r70GR\",\"titleContainer\":\"rULXI\",\"seriesTitleBox\":\"h9k1p\",\"badgeContainer\":\"QaDDX\",\"audienceBadge\":\"hvsne\"};","import React from 'react';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { PopoutVideoThumbnailProps } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { RestrictionPadlock } from 'libs/shared/components/video-list/components/restriction-padlock/RestrictionPadlock';\nimport { VideoSubText } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport styles from './thumbnail-text.scss';\n\ntype VideoThumbnailTextProps = Pick<PopoutVideoThumbnailProps, 'video'|'appLink'|'subTextAppLink'|'yearGroups'|'subTextType'>\n\nexport function ThumbnailText(props: VideoThumbnailTextProps): JSX.Element {\n const { video, appLink, subTextAppLink } = props;\n const { canNavigate } = VideoHelper.getCanBeConsumed(video);\n\n return (\n <div className={`mt-2 ${styles.container}`}>\n <div className={`d-flex flex-column ${styles.titleContainer}`}>\n {VideoHelper.isVideo(video) && (\n <VideoSubText\n type={props.subTextType}\n className={`text-truncate ${styles.seriesTitleBox}`}\n video={video}\n appLink={subTextAppLink}\n analyticsOptions={{ location: LocationContext.VideoThumbnail }}\n />\n )}\n \n <AppLink className='h6 text-reset clamp-2 align-middle' appLink={canNavigate ? appLink : null}>\n {video.name}\n <RestrictionPadlock\n video={props.video}\n yearGroups={props.yearGroups}\n size='sm'\n />\n </AppLink>\n </div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"favourited\":\"t0svX\",\"favouriteButton\":\"CFRo3\",\"heart\":\"ZMMQu\",\"heartOutline\":\"truFo\"};","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces/AnalyticsTypes';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { CanFavouriteFunc, FavouriteFunc, VideoTypes } from 'libs/shared/interfaces';\nimport { FavouriteHelper } from 'libs/shared/utils/FavouriteHelpers';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport styles from './favourite-button.scss';\n\nconst namespace = 'shared.favouriteButton';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface FavouriteButtonProps {\n video: VideoTypes;\n setFavourite: FavouriteFunc;\n canFavourite: CanFavouriteFunc;\n className?: string;\n analyticsData?: HashObject,\n analyticsOptions?: AnalyticsOptions\n}\n\nexport function FavouriteButton(props: FavouriteButtonProps): JSX.Element {\n const alerts = useAlerts();\n\n const initialState = FavouriteHelper.isFavouritedByCurrentUser(props.video);\n\n // Use local state so that changes are reflected immediately.\n const [ isFavourite, setIsFavourite ] = React.useState(initialState);\n\n React.useEffect(() => {\n setIsFavourite(initialState);\n }, [initialState]);\n\n const flexClasses = 'd-flex align-items-center justify-content-center';\n let className = `${flexClasses} cursor-pointer ${styles.favouriteButton} ${isFavourite ? styles.favourited : ''}`;\n\n if (props.className)\n className += ` ${props.className}`;\n\n function onClick(): void {\n const shouldFavourite = !isFavourite;\n\n function onError(): void {\n function getErrorPhraseKey(): string {\n if (VideoHelper.isClip(props.video))\n return shouldFavourite ? 'favouriteClipError' : 'unfavouriteClipError';\n\n if (VideoHelper.isInteractive(props.video))\n return shouldFavourite ? 'favouriteInteractiveError' : 'unfavouriteInteractiveError';\n\n return shouldFavourite ? 'favouriteVideoError' : 'unfavouriteVideoError';\n }\n\n alerts.error(getPhrase(getErrorPhraseKey()));\n setIsFavourite(!shouldFavourite);\n }\n\n setIsFavourite(shouldFavourite);\n props.setFavourite(props.video, shouldFavourite, null, onError, props.analyticsData, props.analyticsOptions);\n }\n\n if (!FunctionHelper.isFunction(props.setFavourite) || !FunctionHelper.isFunction(props.canFavourite))\n return <></>;\n\n // Don't render until we know the state of isFavourite\n if (!props.canFavourite(props.video))\n return <></>;\n\n return (\n <DivButton className={className} onClick={onClick}>\n {/* We have the two svgs because they get swapped out on hover by the styles */}\n <SvgContainer\n svgName={cvSvgLibrary.Heart}\n className={`svg-container ${styles.heart}`}\n />\n <SvgContainer\n svgName={cvSvgLibrary.HeartOutline}\n className={`svg-container ${styles.heartOutline}`}\n />\n </DivButton>\n );\n}","import * as React from 'react';\n\nimport { Video } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\ninterface VideoWatchProgressBarProps {\n video: Video;\n}\n\nexport function VideoWatchProgressBar(props: VideoWatchProgressBarProps): JSX.Element {\n const progress = VideoHelper.getVideoProgress(props.video);\n\n const watchPercentage = progress && props.video.duration\n && progress / props.video.duration * 100000;\n\n if (!watchPercentage)\n return <></>;\n\n return <div className='bg-primary h-100' style={{ width: `${watchPercentage}%` }} />;\n}","// extracted by mini-css-extract-plugin\nexport default {\"bottomBar\":\"YnXtZ\"};","import React from 'react';\n\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { VideoWatchProgressBar } from './videos/VideoWatchProgressBar';\n\nimport styles from './video-thumbnail-bottom-bar.scss';\n\ninterface VideoThumbnailBottomBarProps {\n video: VideoTypes;\n}\n\nexport function VideoThumbnailBottomBar(props: VideoThumbnailBottomBarProps): JSX.Element {\n if (!VideoHelper.isVideo(props.video)) {\n return <></>;\n }\n\n return (\n <div className={styles.bottomBar}>\n <VideoWatchProgressBar video={props.video} />\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"pluginHover\":\"h4RQa\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { AnalyticsOptions, HashObject } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport styles from './plugin-hover.scss';\n\nconst namespace = 'shared.pluginHover';\n\ninterface PluginHoverProps {\n isPlugin: boolean;\n className?: string;\n onClick?: () => void;\n appLink?: Core.AppLink;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n}\n\nexport function PluginHover(props: PluginHoverProps): JSX.Element {\n if (!props.isPlugin)\n return <></>;\n\n return (\n <AppLink\n appLink={props.appLink}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n onClick={props.onClick}\n className={`\n position-absolute top-0 start-0 end-0 bottom-0 opacity-0 cursor-pointer\n ${styles.pluginHover}\n ${props.className ? props.className : ''}\n `}\n >\n <span className='position-absolute top-50 start-50 translate-middle text-nowrap h4 text-white'>\n <Text namespace={namespace} phrase='embed' />\n </span>\n </AppLink>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"padlock\":\"w4cg8\",\"sm\":\"JpIYd\"};","import React from 'react';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { VideoItemSize } from 'libs/shared/components/video-list/BaseVideoItemProps';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './thumbnail-padlock.scss';\n\ninterface ThumbnailPadlockProps {\n size?: VideoItemSize;\n}\n\nexport function ThumbnailPadlock(props: ThumbnailPadlockProps): JSX.Element {\n const svgSize = props.size === 'sm' ? SvgContainerSize.Small : SvgContainerSize.Standard;\n\n return (\n <div className={`${styles.padlock} ${props.size === 'sm' ? styles.sm : ''} bg-white cursor-default d-flex align-items-center justify-content-center`}>\n <SvgContainer svgName={cvSvgLibrary.Lock} size={svgSize} />\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"logo\":\"OA9ft\",\"sm\":\"fyo2J\"};","import React from 'react';\n\nimport { VideoItemSize } from 'libs/shared/components/video-list/BaseVideoItemProps';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Tooltip } from '../../tooltip/Tooltip';\n\nimport styles from './thumbnail-company-logo.scss';\n\ninterface ThumbnailCompanyLogoProps {\n companyLogoFallbackUrl: string;\n video: VideoTypes;\n size?: VideoItemSize;\n}\n\nThumbnailCompanyLogo.defaultProps = {\n size: 'md'\n};\n\nexport function ThumbnailCompanyLogo(props: ThumbnailCompanyLogoProps): JSX.Element {\n if (!VideoHelper.isVideo(props.video) || !props.companyLogoFallbackUrl)\n return <></>;\n\n const company = props.video.productionCompanies?.data?.[0];\n const url = ImageHelper.createUrl(company?.logo?.url ?? props.companyLogoFallbackUrl, { size: ImageSize.Small });\n \n if (!url)\n return <></>;\n\n return (\n <div>\n <Tooltip\n title={company?.name}\n spanHack\n >\n <div\n className={`${styles.logo} ${props.size === 'sm' ? styles.sm : ''}`}\n style={{\n backgroundImage: `url(${url})`\n }}\n />\n </Tooltip>\n </div>\n );\n}","import React from 'react';\n\nimport { VideoItemSize } from 'libs/shared/components/video-list/BaseVideoItemProps';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { VideoTypes } from 'libs/shared/interfaces/VideoTypes';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { TypeBadge } from '../type-badge/TypeBadge';\n\ninterface VideoTypeBadgeProps {\n video: VideoTypes;\n size?: VideoItemSize;\n}\n\nVideoTypeBadge.default = {\n size: 'md'\n};\n\nexport function VideoTypeBadge(props: VideoTypeBadgeProps): JSX.Element {\n if (VideoHelper.isClip(props.video))\n return <TypeBadge typeId={MasterType.Clip} size={props.size} inContainer />;\n\n if (VideoHelper.isInteractive(props.video))\n return (\n <TypeBadge\n typeId={MasterType.Interactive}\n status={props.video.status}\n size={props.size}\n inContainer\n />\n );\n\n return <></>;\n}","// extracted by mini-css-extract-plugin\nexport default {\"overlayContainer\":\"qu3A3\",\"topLeftContainer\":\"gjhMe\",\"topRightContainer\":\"XAfZW\",\"overlay\":\"NTrtm\",\"downScale\":\"puKcM\",\"title\":\"_6FukN\",\"gradient\":\"rXzR8\",\"playIcon\":\"dndOA\",\"videoProgress\":\"yhWf4\",\"badgeContainer\":\"AtgmC\",\"clipProgress\":\"E2egN\",\"interactiveProgress\":\"WycwR\"};","import React from 'react';\n\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { ClickDescriptor, UserAction } from 'libs/analytics/interfaces';\n\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { BadgeListContainer } from 'libs/shared/components/badges/BadgeListContainer';\nimport { FavouriteButton } from 'libs/shared/components/favourite-button/FavouriteButton';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { VideoThumbnailBottomBar } from 'libs/shared/components/thumbnails/bottom-bar/VideoThumbnailBottomBar';\nimport { PluginHover } from 'libs/shared/components/thumbnails/plugin-hover/PluginHover';\nimport { ThumbnailPadlock } from 'libs/shared/components/thumbnails/thumbnail-actions/padlock/ThumbnailPadlock';\nimport { ThumbnailCompanyLogo } from 'libs/shared/components/thumbnails/thumbnail-company/ThumbnailCompanyLogo';\nimport { ExpandableVideoThumbnailProps } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { VideoSubText } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { VideoTypeBadge } from 'libs/shared/components/video-type-badge/VideoTypeBadge';\nimport { GlobalPlayerConsumer } from 'libs/shared/context/player-context/components/GlobalPlayerConsumer';\nimport { ImageType } from 'libs/shared/enums/Images';\nimport { useHoverIntent } from 'libs/shared/hooks/UseHover';\nimport { FavouriteHelper } from 'libs/shared/utils/FavouriteHelpers';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport styles from './expandable-video-thumbnail.scss';\n\nfunction getTitleClass(hovering: boolean): string {\n let className = 'mb-1';\n\n if (hovering) {\n className += styles.downScale;\n }\n \n return className;\n}\n\nexport function ExpandableVideoThumbnail(props: ExpandableVideoThumbnailProps): JSX.Element {\n const {\n video, appLink, imageOptions, setFavourite, canFavourite,\n preload, hovering, hoverToPlay, companyLogoFallbackUrl\n } = props;\n const { canNavigate, canConsume } = VideoHelper.getCanBeConsumed(props.video);\n\n const appLinkParams = ObjectHelper.isObject(appLink?.params) ? appLink?.params as HashObject : {};\n\n const eventAnalyticsOptions = {\n ...props.analyticsOptions,\n entity: VideoHelper.getAnalyticsEntity(video)\n };\n\n const showFavouriteButton = FavouriteHelper.showFavouriteButton(props.video, hovering);\n const isVideo = VideoHelper.isVideo(video);\n\n const rating = VideoHelper.getRating(props.video);\n\n const [ thumbnailHoverRef, isThumbnailHovering ] = useHoverIntent<HTMLDivElement>({ delay: 100 });\n\n const showThumbnailPreviewVideo = isThumbnailHovering && canConsume && hoverToPlay;\n\n const analyticsData = {\n ...props.analyticsData,\n id: video.id,\n name: video.name\n };\n const analyticsOptions = {\n ...eventAnalyticsOptions,\n actionType: UserAction.Click,\n descriptor: ClickDescriptor.Thumbnail\n };\n\n return (\n <Tooltip title={VideoHelper.getPrivacyReasoning(props.video)} spanHack spanHackClassName=''>\n <div className='position-relative rounded-3 overflow-hidden' ref={thumbnailHoverRef}>\n <PluginHover\n isPlugin={props.isPlugin}\n className='rounded-3'\n appLink={canNavigate ? appLink : null}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n />\n\n {showFavouriteButton &&\n <div className={styles.topRightContainer}>\n <FavouriteButton\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n video={video}\n analyticsData={props.analyticsData}\n analyticsOptions={eventAnalyticsOptions}\n />\n </div>\n }\n {/* top right */}\n {!canNavigate && (\n <div className={styles.topRightContainer}>\n <ThumbnailPadlock />\n </div>\n )}\n {/* top left */}\n <div className={`${styles.topLeftContainer} d-flex flex-no-wrap`}>\n {/* <LiteOwnerAvatar video={video} imageCdnUrl={props.imageCdnUrl} /> */}\n\n <VideoTypeBadge video={video} />\n\n <ThumbnailCompanyLogo video={video} companyLogoFallbackUrl={companyLogoFallbackUrl} />\n </div>\n\n <BaseImage\n data={VideoHelper.getThumbnail(video)}\n appLink={canNavigate ? appLink : null}\n imageType={ImageType.Thumbnails}\n imageOptions={imageOptions}\n preload={preload}\n className={styles.gradient}\n alt={('series' in video && video.series?.name ? `${video.series.name}: ` : '') + video.name}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n >\n {!!(hovering && canNavigate) && (\n <SvgContainer className={styles.playIcon} svgName={cvSvgLibrary.PlayCircle} />\n )}\n\n <ImageFallback type={ImageFallbackType.Video} />\n <div className={styles.overlayContainer}>\n <div className={styles.overlay}>\n <div className={`${getTitleClass(hovering)} ${styles.title}`}>\n {isVideo && (\n <VideoSubText\n type={props.subTextType}\n className='text-shadow clamp-1'\n video={video}\n appLink={null}\n analyticsOptions={null}\n />\n )}\n\n <span className='h6 text-reset text-shadow clamp-1'>\n {VideoHelper.getTitle(video)}\n </span>\n </div>\n\n <VideoThumbnailBottomBar video={video} />\n\n {hovering && (\n <BadgeListContainer className='mt-1'>\n {VideoHelper.isVideo(video) && (\n <>\n <Badge\n type={BadgeType.Rating}\n data={rating}\n />\n {video.hasSubtitle && (\n <span className='badge p-0'>\n <SvgContainer svgName={cvSvgLibrary.CloseCaptionBadge} />\n </span>\n )}\n <Badge\n type={BadgeType.Interactive}\n data={video.hasInteractives}\n />\n <Badge\n type={BadgeType.DurationExact}\n data={VideoHelper.getDuration(props.video)}\n />\n </>\n )}\n </BadgeListContainer>\n )}\n </div>\n </div>\n </BaseImage>\n {showThumbnailPreviewVideo &&\n <GlobalPlayerConsumer\n key={props.video.id}\n objectId={props.video.id}\n objectTypeId={props.video.typeId}\n mode='hover'\n context={appLinkParams.context}\n contextId={appLinkParams.contextId}\n moviesAndTv={appLinkParams.mtv}\n />\n }\n </div>\n </Tooltip>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"badgeContainer\":\"fy9Un\",\"sm\":\"Rb0TL\"};","import React from 'react';\n\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 { VideoItemSize } from 'libs/shared/components/video-list/BaseVideoItemProps';\nimport { Audience, Video } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport styles from './video-thumbnail-badges.scss';\n\ninterface VideoThumbnailBadgesProps {\n video?: Video;\n audience?: Audience;\n hideRating?: boolean;\n hideDuration?: boolean;\n newDurationStyle?: boolean;\n size?: VideoItemSize;\n duration?: number;\n}\n\nVideoThumbnailBadges.defaultProps = {\n newDurationStyle: true,\n size: 'md'\n};\n\nexport function VideoThumbnailBadges(props: VideoThumbnailBadgesProps): JSX.Element {\n const rating = VideoHelper.getRating(props.video);\n\n const showAudience = !!props.audience && props.size !== 'sm';\n const showRating = !showAudience && !props.hideRating && !!rating && props.size !== 'sm';\n\n if (props.hideDuration && !showAudience && !showRating)\n return <></>;\n\n return (\n <BadgeListContainer className={`${styles.badgeContainer} ${props.size === 'sm' ? styles.sm : ''}`}>\n {showAudience && (\n <AudienceLabel\n audience={props.audience}\n className='bg-white text-dark'\n border='dark'\n />\n )}\n {showRating && (\n <Badge\n type={BadgeType.Rating}\n data={rating}\n />\n )}\n {!props.hideDuration && (\n <Badge\n type={props.newDurationStyle ? BadgeType.DurationApproximate : BadgeType.DurationExact}\n data={props.duration || VideoHelper.getDuration(props.video)}\n />\n )}\n </BadgeListContainer>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"preview\":\"whbhf\",\"topLeftContainer\":\"wHY80\",\"details\":\"vMaXP\",\"isHovering\":\"tR1jA\",\"videoGuidanceTags\":\"KJrT1\",\"responsiveGuidance\":\"OixHb\",\"dropdown\":\"oZXV7\",\"show\":\"EiQ04\",\"topRightContainer\":\"FAuzc\"};","import React from 'react';\n\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { ClickDescriptor, UserAction } from 'libs/analytics/interfaces';\n\nimport { FavouriteButton } from 'libs/shared/components/favourite-button/FavouriteButton';\nimport { HoverableProps, HoverToPortalContainer } from 'libs/shared/components/hover-to-portal-container/HoverToPortalContainer';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { VideoThumbnailBottomBar } from 'libs/shared/components/thumbnails/bottom-bar/VideoThumbnailBottomBar';\nimport { PluginHover } from 'libs/shared/components/thumbnails/plugin-hover/PluginHover';\nimport { ThumbnailPadlock } from 'libs/shared/components/thumbnails/thumbnail-actions/padlock/ThumbnailPadlock';\nimport { VideoThumbnailBadges } from 'libs/shared/components/thumbnails/thumbnail-badges/VideoThumbnailBadges';\nimport { ThumbnailText } from 'libs/shared/components/thumbnails/thumbnail-text/ThumbnailText';\nimport { PopoutVideoThumbnailProps } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { VideoItemGuidance } from 'libs/shared/components/video-list/components/video-guidance/VideoItemGuidance';\nimport { VideoTypeBadge } from 'libs/shared/components/video-type-badge/VideoTypeBadge';\nimport { GlobalPlayerConsumer } from 'libs/shared/context/player-context/components/GlobalPlayerConsumer';\nimport { ImageType } from 'libs/shared/enums/Images';\nimport { FavouriteHelper } from 'libs/shared/utils/FavouriteHelpers';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { ThumbnailCompanyLogo } from '../../thumbnail-company/ThumbnailCompanyLogo';\n\nimport styles from './popout-video-thumbnail.scss';\n\ntype PopoutVideoProps = HoverableProps & PopoutVideoThumbnailProps;\n\nconst PopoutVideo = (props: PopoutVideoProps): JSX.Element => {\n const {\n video, appLink, imageOptions, preload, setFavourite, canFavourite,\n isHovering, hoverToPlay, companyLogoFallbackUrl\n } = props;\n const appLinkParams = ObjectHelper.isObject(appLink?.params) ? appLink?.params as HashObject : {};\n const { canNavigate, canConsume } = VideoHelper.getCanBeConsumed(video);\n\n React.useEffect(() => {\n return () => {\n props.cleanPortalNode?.();\n };\n }, []);\n\n let className = 'position-relative bg-white';\n\n if (props.extraClasses)\n className += ` ${props.extraClasses}`;\n if (isHovering)\n className += ` rounded-3 shadow-lg`;\n \n const eventAnalyticsOptions = {\n ...props.analyticsOptions,\n entity: VideoHelper.getAnalyticsEntity(video)\n };\n\n const showThumbnailPreviewVideo = props.isHovering && canConsume && hoverToPlay;\n const showFavouriteButton = FavouriteHelper.showFavouriteButton(props.video, isHovering);\n\n const analyticsData = {\n ...props.analyticsData,\n id: video.id,\n name: video.name\n };\n const analyticsOptions = {\n ...eventAnalyticsOptions,\n actionType: UserAction.Click,\n descriptor: ClickDescriptor.Thumbnail\n };\n\n return (\n <div className={className}>\n {showFavouriteButton && (\n <div className={styles.topRightContainer}>\n <FavouriteButton\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n video={video}\n analyticsData={props.analyticsData}\n analyticsOptions={eventAnalyticsOptions}\n />\n </div>\n )}\n\n {!canNavigate && (\n <div className={styles.topRightContainer}>\n <Tooltip title={VideoHelper.getPrivacyReasoning(props.video)} spanHack spanHackClassName=''>\n <ThumbnailPadlock />\n </Tooltip>\n </div>\n )}\n\n <div className='position-relative'>\n <PluginHover\n isPlugin={props.isPlugin}\n className={isHovering ? 'rounded-top-3' : 'rounded-3'}\n onClick={() => props.cleanPortalNode?.()}\n appLink={canNavigate ? appLink : null}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n />\n <BaseImage\n onClick={() => props.cleanPortalNode?.()}\n data={VideoHelper.getThumbnail(video)}\n appLink={canNavigate ? appLink : null}\n imageType={ImageType.Thumbnails}\n imageOptions={imageOptions}\n preload={preload}\n className={`overflow-hidden ${isHovering ? styles.preview : `rounded-3 ${styles.original}`}`}\n alt={('series' in video && video.series?.name ? `${video.series.name}: ` : '') + video.name}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n >\n <ImageFallback type={ImageFallbackType.Video} />\n <div className='p-absolute w-100 h-100 text-white'>\n\n {/* top left */}\n <div className={`${styles.topLeftContainer} d-flex flex-no-wrap`}>\n {/* <LiteOwnerAvatar video={video} imageCdnUrl={props.imageCdnUrl} /> */}\n \n <VideoTypeBadge video={video} />\n \n <ThumbnailCompanyLogo video={video} companyLogoFallbackUrl={companyLogoFallbackUrl} />\n </div>\n\n {/* bottom right */}\n <VideoThumbnailBadges\n video={props.video}\n audience={props.audience}\n hideRating={props.hideRating}\n hideDuration={props.hideDuration}\n />\n\n {/* bottom */}\n <VideoThumbnailBottomBar video={video} />\n </div>\n </BaseImage>\n {showThumbnailPreviewVideo &&\n <GlobalPlayerConsumer\n key={props.video.id}\n objectId={props.video.id}\n objectTypeId={props.video.typeId}\n mode='hover'\n context={appLinkParams.context}\n contextId={appLinkParams.contextId}\n moviesAndTv={appLinkParams.mtv}\n location='popout-video'\n />\n }\n </div>\n\n {!isHovering && !props.hideTitle && (\n <ThumbnailText {...props}/>\n )}\n \n <div className={`${styles.details} ${isHovering ? `${styles.isHovering} box-shadow` : ''}`}>\n {isHovering && (\n <>\n <div className={`${isHovering ? styles.videoGuidanceTags : ''}`}>\n <ThumbnailText {...props}/>\n\n {(props.showVideoGuidance && isHovering) && (\n <VideoItemGuidance\n getClassroomGuideAppLink={props.getClassroomGuideAppLink}\n getResourceGuidanceAppLink={props.getResourceGuidanceAppLink}\n getInteractiveGuidanceAppLink={props.getInteractiveGuidanceAppLink}\n video={props.video}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n responsiveClassName={styles.responsiveGuidance}\n containerClassName={`d-flex justify-content-start align-items-center pt-2`}\n />\n )}\n </div>\n </>\n )}\n </div>\n </div>\n );\n};\n\n\nexport function PopoutVideoThumbnail(props: PopoutVideoThumbnailProps): JSX.Element {\n return (\n <>\n <HoverToPortalContainer<PopoutVideoThumbnailProps>\n hoverableComponent={PopoutVideo}\n componentProps={props}\n fixedHoverWidth={400}\n minHoverWidth={400}\n analyticsData={{\n ...props.analyticsData,\n id: props.video.id,\n name: props.video.name\n }}\n analyticsOptions={{\n ...props.analyticsOptions,\n entity: VideoHelper.getAnalyticsEntity(props.video)\n }}\n />\n </>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"efxnE\",\"cvIcon\":\"OJ_ZQ\",\"action\":\"vWvGn\"};","import React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces/AnalyticsTypes';\n\nimport { CheckMarkButton, CheckMarkStatus, SetCheckMarkStatusFunc } from 'libs/shared/components/check-mark-button/CheckMarkButton';\nimport { FavouriteButton } from 'libs/shared/components/favourite-button/FavouriteButton';\nimport { VideoItemSize } from 'libs/shared/components/video-list/BaseVideoItemProps';\nimport { CanFavouriteFunc, FavouriteFunc, VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { ThumbnailPadlock } from './padlock/ThumbnailPadlock';\n\nimport styles from './video-thumbnail-actions.scss';\n\nfunction hasActions(props: VideoThumbnailActionsProps): boolean {\n if (!VideoHelper.getCanBeConsumed(props.video)?.canConsume)\n return true;\n\n if (FunctionHelper.isFunction(props.setFavourite) && FunctionHelper.isFunction(props.canFavourite))\n return true;\n\n if (FunctionHelper.isFunction(props.setCheckMarkStatus))\n return true;\n\n return false;\n}\n\ninterface VideoThumbnailActionsProps {\n video: VideoTypes;\n setFavourite?: FavouriteFunc;\n canFavourite?: CanFavouriteFunc;\n checkMarkStatus?: CheckMarkStatus;\n setCheckMarkStatus?: SetCheckMarkStatusFunc;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n size?: VideoItemSize;\n}\n\nexport function VideoThumbnailActions(props: VideoThumbnailActionsProps): JSX.Element {\n const { canNavigate } = VideoHelper.getCanBeConsumed(props.video);\n\n if (!canNavigate) {\n return (\n <div className={styles.container}>\n <ThumbnailPadlock size={props.size} />\n </div>\n );\n }\n \n if (!hasActions(props))\n return <></>;\n\n return (\n <div className={`${styles.container} d-flex align-items-center`}>\n <FavouriteButton\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n video={props.video}\n className={styles.action}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n />\n\n <CheckMarkButton\n status={props.checkMarkStatus}\n setStatus={props.setCheckMarkStatus}\n className={styles.action}\n />\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"titleOverlay\":\"krg9f\",\"clip\":\"MPRU6\",\"large\":\"g5_ww\",\"interactive\":\"Zzo3e\",\"titleBelow\":\"tZjPt\",\"overlayContainer\":\"EElm1\",\"topLeftContainer\":\"hrw3I\",\"gradient\":\"LS_EH\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { ClickDescriptor, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { Mask, MaskType } from 'libs/shared/components/mask/Mask';\nimport { VideoThumbnailBottomBar } from 'libs/shared/components/thumbnails/bottom-bar/VideoThumbnailBottomBar';\nimport { PluginHover } from 'libs/shared/components/thumbnails/plugin-hover/PluginHover';\nimport { VideoThumbnailActions } from 'libs/shared/components/thumbnails/thumbnail-actions/VideoThumbnailActions';\nimport { VideoThumbnailBadges } from 'libs/shared/components/thumbnails/thumbnail-badges/VideoThumbnailBadges';\nimport { ThumbnailCompanyLogo } from 'libs/shared/components/thumbnails/thumbnail-company/ThumbnailCompanyLogo';\nimport { StaticVideoThumbnailProps } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { VideoSubText } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { VideoTypeBadge } from 'libs/shared/components/video-type-badge/VideoTypeBadge';\nimport { GlobalPlayerConsumer } from 'libs/shared/context/player-context/components/GlobalPlayerConsumer';\nimport { ImageType } from 'libs/shared/enums/Images';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { useHover, useHoverIntent } from 'libs/shared/hooks/UseHover';\nimport { FavouriteHelper } from 'libs/shared/utils/FavouriteHelpers';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport styles from './static-video-thumbnail.scss';\n\nconst namespace = 'shared.staticVideoThumbnail';\n\nfunction ThumbnailText(props: StaticVideoThumbnailProps): JSX.Element {\n const { video, subTextAppLink, textPosition, appLink } = props;\n\n const textIsOverlayed = textPosition === ThumbnailTextPosition.Overlay;\n const { canNavigate } = VideoHelper.getCanBeConsumed(props.video);\n\n let className = '';\n\n if (textIsOverlayed) {\n className = styles.titleOverlay;\n\n if (canNavigate) {\n if (VideoHelper.isClip(video))\n className += ' ' + styles.clip;\n if (VideoHelper.isInteractive(video))\n className += ' ' + styles.interactive;\n }\n } else {\n className = styles.titleBelow;\n }\n\n return (\n <div className={className}>\n {VideoHelper.isVideo(video) &&\n <VideoSubText\n type={props.subTextType}\n className={textIsOverlayed ? 'text-shadow clamp-1' : 'clamp-2'}\n video={video}\n appLink={!textIsOverlayed ? subTextAppLink : null}\n analyticsOptions={{ location: LocationContext.VideoThumbnail }}\n />\n }\n\n {(textIsOverlayed || !canNavigate)\n ? (\n <span className={`h6 text-reset clamp-1`}>\n {video.name ?? LanguageService.getPhrase(namespace, 'videoUnavailable')}\n </span>\n ) : (\n <AppLink className='h6 text-reset clamp-2' appLink={appLink}>\n {video.name}\n </AppLink>\n )\n }\n </div>\n );\n}\n\nexport function StaticVideoThumbnail(props: StaticVideoThumbnailProps): JSX.Element {\n const { video, appLink, textPosition, imageOptions, setFavourite, preload, hoverToPlay } = props;\n\n const appLinkParams = ObjectHelper.isObject(appLink?.params) ? appLink?.params as HashObject : {};\n\n const [ hoverRef, isHovering ] = useHover<HTMLDivElement>();\n const [ hoverIntentRef, isHoveringIntentionally ] = useHoverIntent<HTMLDivElement>({ delay: 100 });\n const { canNavigate, canConsume } = VideoHelper.getCanBeConsumed(video);\n\n function setHoverRefs(r: HTMLDivElement) {\n hoverRef.current = r;\n hoverIntentRef.current = r;\n }\n\n const showThumbnailPreviewVideo = isHoveringIntentionally && canConsume && hoverToPlay;\n\n function canFavourite(): boolean {\n return props.canFavourite?.(props.video) && FavouriteHelper.showFavouriteButton(video, isHovering);\n }\n\n function getContainerClass(): string {\n let className = 'position-relative';\n\n className += (appLink && canNavigate) ? ' cursor-pointer' : '';\n\n if (props.extraClasses)\n className += ` ${props.extraClasses}`;\n\n if (textPosition === ThumbnailTextPosition.Overlay)\n className += ` rounded overflow-hidden`;\n\n return className;\n }\n\n function getThumbnailClass(): string {\n let className = `overflow-hidden ${props.size === 'sm' ? 'rounded' : 'rounded-3'}`;\n\n if (props.imageClassName)\n className += ` ${props.imageClassName}`;\n\n if (textPosition === ThumbnailTextPosition.Overlay)\n className += ` ${styles.gradient}`;\n \n return className;\n }\n\n const eventAnalyticsOptions = {\n ...props.analyticsOptions,\n entity: VideoHelper.getAnalyticsEntity(video)\n };\n\n const showMask = !!appLink && !props.hideMask && canNavigate;\n const tooltip = VideoHelper.getPrivacyReasoning(props.video, props.showSignIn);\n\n const analyticsData = {\n ...props.analyticsData,\n id: video.id,\n name: video.name\n };\n const analyticsOptions = {\n ...eventAnalyticsOptions,\n actionType: UserAction.Click,\n descriptor: ClickDescriptor.Thumbnail\n };\n\n return (\n <Tooltip title={tooltip} spanHack spanHackClassName=''>\n <div className={getContainerClass()} ref={setHoverRefs}>\n <PluginHover\n isPlugin={props.isPlugin}\n className={props.size === 'sm' ? 'rounded' : 'rounded-3'}\n appLink={canNavigate ? appLink : null}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n />\n\n <VideoThumbnailActions\n video={video}\n checkMarkStatus={props.checkMarkStatus}\n setCheckMarkStatus={props.setCheckMarkStatus}\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n analyticsData={props.analyticsData}\n analyticsOptions={eventAnalyticsOptions}\n size={props.size}\n />\n\n <BaseImage\n data={VideoHelper.getThumbnail(video)}\n appLink={canNavigate ? appLink : null}\n onClick={canNavigate ? props.onClick : undefined}\n imageType={ImageType.Thumbnails}\n imageOptions={imageOptions}\n preload={preload}\n className={getThumbnailClass()}\n alt={('series' in video && video.series?.name ? `${video.series.name}: ` : '') + video.name}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n >\n {showMask && (\n <Mask type={MaskType.Video} size={props.size} />\n )}\n <ImageFallback type={ImageFallbackType.Video} />\n <div className={styles.overlayContainer}>\n {/* overlay */}\n {textPosition === ThumbnailTextPosition.Overlay && <ThumbnailText {...props} />}\n \n {/* top left */}\n <div className={`${styles.topLeftContainer} d-flex flex-no-wrap`}>\n {/* <LiteOwnerAvatar video={video} size={props.size} imageCdnUrl={props.imageCdnUrl} /> */}\n \n <VideoTypeBadge video={video} size={props.size} />\n\n <ThumbnailCompanyLogo\n video={video}\n companyLogoFallbackUrl={props.companyLogoFallbackUrl}\n size={props.size}\n />\n </div>\n\n {/* bottom */}\n <VideoThumbnailBottomBar video={video} />\n \n {/* bottom right */}\n <VideoThumbnailBadges\n video={props.video}\n audience={props.audience}\n hideRating={props.hideRating}\n hideDuration={props.hideDuration}\n newDurationStyle={props.newDurationStyle}\n size={props.size}\n />\n </div>\n </BaseImage>\n {showThumbnailPreviewVideo &&\n <GlobalPlayerConsumer\n key={props.video.id}\n objectId={props.video.id}\n objectTypeId={props.video.typeId}\n mode='hover'\n context={appLinkParams.context}\n contextId={appLinkParams.contextId}\n moviesAndTv={appLinkParams.mtv}\n />\n }\n\n {textPosition === ThumbnailTextPosition.Below && <ThumbnailText {...props} />}\n </div>\n </Tooltip>\n );\n}\n","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AnalyticsOptions, HashObject } from 'libs/analytics/interfaces';\n\nimport { CheckMarkStatus, SetCheckMarkStatusFunc } from 'libs/shared/components/check-mark-button/CheckMarkButton';\nimport { VideoSubTextType } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { Audience, CanFavouriteFunc, FavouriteFunc, VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { ImageOptions } from 'libs/shared/utils/ImageHelper';\n\nimport { ExpandableVideoThumbnail } from './expandable/ExpandableVideoThumbnail';\nimport { PopoutVideoThumbnail } from './popout/PopoutVideoThumbnail';\nimport { StaticVideoThumbnail } from './static/StaticVideoThumbnail';\n\ninterface BaseVideoThumbnailProps {\n video: VideoTypes;\n imageOptions: ImageOptions;\n appLink: Core.AppLink;\n onClick?: () => void;\n setFavourite?: FavouriteFunc;\n canFavourite?: CanFavouriteFunc;\n preload?: boolean;\n analyticsData?: HashObject;\n analyticsOptions: AnalyticsOptions; // Location context required\n hoverToPlay?: boolean;\n companyLogoFallbackUrl?: string;\n imageCdnUrl?: string;\n isPlugin: boolean;\n \n /**\n * TODO: Fix whatever this used to do in playlists\n */\n canRemovePrivateVideos?: boolean;\n subTextType?: VideoSubTextType;\n subTextAppLink?: Core.AppLink;\n}\n\nexport interface ExpandableVideoThumbnailProps extends BaseVideoThumbnailProps {\n type: 'expandable';\n newDurationStyle?: boolean;\n hovering: boolean;\n}\n\nexport interface PopoutVideoThumbnailProps extends BaseVideoThumbnailProps {\n type: 'popout';\n hideDuration: boolean;\n extraClasses?: string;\n audience: Audience;\n imageCdnUrl: string;\n hideRating?: boolean;\n yearGroups: YearGroup[];\n hideTitle?: boolean;\n showVideoGuidance: boolean;\n getInteractiveGuidanceAppLink: (id: string, type: MasterType) => Core.AppLink;\n getResourceGuidanceAppLink: (id: string, type: MasterType) => Core.AppLink;\n getClassroomGuideAppLink: (id: string, type: MasterType) => Core.AppLink;\n}\n\ninterface BaseStaticVideoThumbnailProps extends BaseVideoThumbnailProps {\n textPosition: ThumbnailTextPosition;\n extraClasses?: string;\n imageClassName?: string;\n size: 'sm' | 'md';\n hideMask?: boolean;\n showSignIn?: boolean;\n setCheckMarkStatus?: SetCheckMarkStatusFunc;\n checkMarkStatus?: CheckMarkStatus;\n videoTypeBadgeSize?: 'sm' | 'std';\n hideDuration?: boolean;\n audience?: Audience;\n newDurationStyle?: boolean;\n hideRating?: boolean;\n}\n\ninterface PureStaticVideoThumbnailProps extends BaseStaticVideoThumbnailProps {\n type: 'static';\n}\n\n/**\n * Allows us to have loose types when we only want to display a thumbnail\n * without any of the functionality - Sha\n */\ninterface CosmeticVideoThumbnailProps extends Partial<BaseStaticVideoThumbnailProps> {\n type: 'cosmetic';\n}\n\nexport type StaticVideoThumbnailProps = PureStaticVideoThumbnailProps | CosmeticVideoThumbnailProps;\n\nexport type VideoThumbnailProps = ExpandableVideoThumbnailProps |\n StaticVideoThumbnailProps |\n PopoutVideoThumbnailProps |\n CosmeticVideoThumbnailProps;\n\nVideoThumbnail.defaultProps = {\n hideRating: true,\n size: 'md',\n hoverToPlay: true\n};\n\nexport function VideoThumbnail(props: VideoThumbnailProps): JSX.Element {\n switch (props.type) {\n case 'static':\n return <StaticVideoThumbnail {...props} />;\n case 'cosmetic':\n // No hover to play for cosmetic use of VideoThumbnail\n return <StaticVideoThumbnail {...props} hoverToPlay={false} />;\n case 'expandable':\n // Expandable thumbnails show metadata on hover. Static display the duration and don't expand on hover\n return <ExpandableVideoThumbnail {...props} />;\n case 'popout':\n return <PopoutVideoThumbnail {...props} />;\n default:\n return;\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"topLeftContainer\":\"iwBld\",\"draft\":\"QBpxh\",\"badge\":\"KcvGx\",\"svg\":\"gW733\",\"text\":\"QiH5Q\",\"sm\":\"tn2BH\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './type-badge.scss';\n\nconst namespace = 'shared.typeBadge';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getText(typeId: MasterType): string {\n switch (typeId) {\n case MasterType.Clip:\n return getPhrase('clip');\n case MasterType.Interactive:\n return getPhrase('interactive');\n case MasterType.Resource:\n return getPhrase('resource');\n default:\n return '';\n }\n}\n\nfunction getIcon(typeId: MasterType): string {\n switch (typeId) {\n case MasterType.Clip:\n return cvSvgLibrary.Clip;\n case MasterType.Interactive:\n return cvSvgLibrary.Interactive;\n case MasterType.Resource:\n return cvSvgLibrary.Resources;\n default:\n return '';\n }\n}\n\nfunction getColourClass(typeId: MasterType, status: CurationStatus): string {\n switch (typeId) {\n case MasterType.Clip:\n return 'bg-dark-blue';\n case MasterType.Interactive:\n return status === CurationStatus.Draft ? styles.draft : 'bg-green';\n case MasterType.Resource:\n return 'bg-indigo';\n default:\n return '';\n }\n}\n\ninterface TypeBadgeProps {\n typeId: MasterType;\n status?: CurationStatus;\n size?: 'sm' | 'md';\n inContainer?: boolean;\n}\n\nTypeBadge.default = {\n size: 'md'\n};\n\nexport function TypeBadge(props: TypeBadgeProps): JSX.Element {\n const baseClasses = `${styles.badge} rounded-pill text-white ps-0 ${props.size === 'sm' ? styles.sm : ''}`;\n\n return (\n <div className={props.inContainer ? '' : styles.topLeftContainer}>\n <div className={`${baseClasses} ${getColourClass(props.typeId, props.status)}`}>\n <SvgContainer\n className={`svg-container d-block ${styles.svg}`}\n size={props.size === 'sm' ? SvgContainerSize.Small : SvgContainerSize.Standard}\n svgName={getIcon(props.typeId)}\n />\n <span className={styles.text}>\n {getText(props.typeId)}\n </span>\n </div>\n </div>\n );\n}","import React from 'react';\nimport { Placement } from 'react-bootstrap/esm/types';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { VideoItemSize } from 'libs/shared/components/video-list/BaseVideoItemProps';\nimport { VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\ninterface RestrictionPadlockProps {\n tooltip?: string;\n className?: string;\n tooltipPlacement?: Placement\n size?: VideoItemSize;\n video: VideoTypes;\n yearGroups: YearGroup[];\n}\n\nexport function RestrictionPadlock(props: RestrictionPadlockProps): JSX.Element {\n if (!props.yearGroups)\n return <></>;\n\n const title = RestrictionHelper.mapRestrictionToText(props.video._restrictions, props.yearGroups);\n const { canConsume } = VideoHelper.getCanBeConsumed(props.video);\n\n if (!canConsume || !title)\n return <></>;\n\n return (\n <Tooltip\n spanHack\n spanHackClassName={props.className || 'd-inline-block ps-1'}\n title={title}\n placement={props.tooltipPlacement || 'top'}\n >\n <SvgContainer\n svgName={cvSvgLibrary.Lock}\n size={props.size === 'sm' ? SvgContainerSize.Small : SvgContainerSize.Standard}\n />\n </Tooltip>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"tag\":\"OjHQZ\",\"icon\":\"SS2zL\",\"active\":\"kD1xM\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\n\nimport { AppLink } from '../../app-link/AppLink';\n\nimport styles from './video-guidance-tag.scss';\n\ninterface VideoGuidanceTagProps {\n text: string;\n svgName: string;\n iconVariant: string;\n active?: boolean;\n appLink?: Core.AppLink;\n appLinkAnalyticsData?: HashObject;\n appLinkAnalyticsOptions?: AnalyticsOptions;\n theme?: {\n tabLabel?: string;\n container?: string;\n }\n}\n\nfunction ContainerWrapper(props: VideoGuidanceTagProps): JSX.Element {\n if (props.appLink) {\n return (\n <AppLink\n appLink={props.appLink}\n analyticsData={props.appLinkAnalyticsData}\n analyticsOptions={props.appLinkAnalyticsOptions}\n className={`\n p-1 pe-2 rounded-pill d-inline-flex align-items-center cursor-pointer\n text-decoration-none ${props.theme?.container} ${styles.tag} ${props.active ? styles.active : ''}\n `}\n >\n <VideoGuidanceTag {...props} />\n </AppLink>\n );\n }\n\n return (\n <div className={props.theme?.container}>\n <VideoGuidanceTag {...props} />\n </div>\n );\n}\n\nfunction VideoGuidanceTag(props: VideoGuidanceTagProps): JSX.Element {\n return (\n <>\n <SvgContainer\n className={`${styles.icon} rounded-circle bg-${props.iconVariant} text-white`}\n svgName={props.svgName}\n />\n\n <span className={`ps-1 text-nowrap user-select-none ${props.theme?.tabLabel}`}>\n {props.text}\n </span>\n </>\n );\n}\n\nexport { ContainerWrapper as VideoGuidanceTag };","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, UserAction } from 'libs/analytics/interfaces';\n\nimport { VideoGuidanceTag } from 'libs/shared/components/video-guidance/tag/VideoGuidanceTag';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nconst namespace = 'shared.classroomGuideTag';\n\ninterface ClassroomGuideTagProps {\n video: VideoTypes;\n appLink: Core.AppLink;\n analyticsData: HashObject;\n analyticsOptions: AnalyticsOptions;\n}\n\nexport function ClassroomGuideTag(props: ClassroomGuideTagProps): JSX.Element {\n if (!props.video || VideoHelper.isInteractive(props.video))\n return <></>;\n\n if (!props.video.glance)\n return <></>;\n\n return (\n <VideoGuidanceTag\n theme={{\n container: 'classroom-guide-tag',\n tabLabel: 'classroom-guide-tag-label'\n }}\n svgName={cvSvgLibrary.GraduationCap}\n iconVariant='navy'\n text={LanguageService.getPhrase(namespace, 'classroomGuide')}\n appLink={props.appLink}\n appLinkAnalyticsData={{\n glanceId: props.video.glance?.id,\n totalPointsOfInterest: props.video.pointsOfInterest?.data?.length,\n videoGuidanceType: 'classroom-guide',\n ...props.analyticsData\n }}\n appLinkAnalyticsOptions={{\n actionType: UserAction.Click,\n entity: VideoHelper.getAnalyticsEntity(props.video),\n ...props.analyticsOptions\n }}\n />\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions, UserAction } from 'libs/analytics/interfaces';\n\nimport { VideoGuidanceTag } from 'libs/shared/components/video-guidance/tag/VideoGuidanceTag';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nconst namespace = 'shared.interactivesTag';\n\ninterface InteractivesTagProps {\n video: VideoTypes;\n appLink: Core.AppLink;\n analyticsData: HashObject;\n analyticsOptions: AnalyticsOptions;\n}\n\nexport function InteractivesTag(props: InteractivesTagProps): JSX.Element {\n if (!VideoHelper.showInteractivesGuidance(props.video))\n return <></>;\n \n const interactiveCount = !VideoHelper.isInteractive(props.video) && (props.video.interactives?.data.length || 0);\n\n return (\n <VideoGuidanceTag\n svgName={cvSvgLibrary.Interactive}\n iconVariant='green'\n text={LanguageService.getPhrase(namespace, 'interactives', { smartCount: interactiveCount })}\n appLink={props.appLink}\n appLinkAnalyticsData={{\n videoGuidanceType: 'interactive',\n videoGuidanceTotalItems: interactiveCount,\n ...props.analyticsData\n }}\n appLinkAnalyticsOptions={{\n actionType: UserAction.Click,\n entity: VideoHelper.getAnalyticsEntity(props.video),\n ...props.analyticsOptions\n }}\n />\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions, UserAction } from 'libs/analytics/interfaces';\n\nimport { VideoGuidanceTag } from 'libs/shared/components/video-guidance/tag/VideoGuidanceTag';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nconst namespace = 'shared.resourcesTag';\n\ninterface ResourcesTagProps {\n video: VideoTypes;\n appLink: Core.AppLink;\n analyticsData: HashObject;\n analyticsOptions: AnalyticsOptions;\n}\n\nexport function ResourcesTag(props: ResourcesTagProps): JSX.Element {\n if (!VideoHelper.showResourcesGuidance(props.video))\n return <></>;\n\n const resourceCount = !VideoHelper.isInteractive(props.video) && props.video.resources?.data.length || 0;\n\n return (\n <VideoGuidanceTag\n svgName={cvSvgLibrary.Resources}\n iconVariant='indigo'\n text={LanguageService.getPhrase(namespace, 'resources', { smartCount: resourceCount })}\n appLink={props.appLink}\n appLinkAnalyticsData={{\n videoGuidanceType: 'resource',\n videoGuidanceTotalItems: resourceCount,\n ...props.analyticsData\n }}\n appLinkAnalyticsOptions={{\n actionType: UserAction.Click,\n entity: VideoHelper.getAnalyticsEntity(props.video),\n ...props.analyticsOptions\n }}\n />\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { ClassroomGuideTag } from 'libs/shared/components/video-guidance/classroom-guide/ClassroomGuideTag';\nimport { InteractivesTag } from 'libs/shared/components/video-guidance/interactives/InteractivesTag';\nimport { ResourcesTag } from 'libs/shared/components/video-guidance/resources/ResourcesTag';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { GetVideoAppLinkOptions } from 'libs/shared/interfaces/VideoAppLinkOptions';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\ninterface VideoItemGuidanceProps {\n video: VideoTypes;\n getVideoAppLink?: (video: VideoTypes, opts: GetVideoAppLinkOptions) => Core.AppLink;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n getInteractiveGuidanceAppLink: (id: string, type: MasterType) => Core.AppLink;\n getResourceGuidanceAppLink: (id: string, type: MasterType) => Core.AppLink;\n getClassroomGuideAppLink: (id: string, type: MasterType) => Core.AppLink;\n containerClassName: string;\n responsiveClassName?: string;\n}\n\nexport function VideoItemGuidance(props: VideoItemGuidanceProps): JSX.Element {\n const showingResourcesAndInteractives = (\n VideoHelper.showInteractivesGuidance(props.video) &&\n VideoHelper.showResourcesGuidance(props.video)\n );\n\n return (\n <div className={`${props.containerClassName} ${showingResourcesAndInteractives ? props.responsiveClassName : ''}`}>\n <ClassroomGuideTag\n appLink={props.getClassroomGuideAppLink?.(props.video.id, props.video.typeId)}\n video={props.video}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n />\n <ResourcesTag\n appLink={props.getResourceGuidanceAppLink?.(props.video.id, props.video.typeId)}\n video={props.video}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n />\n <InteractivesTag\n appLink={props.getInteractiveGuidanceAppLink?.(props.video.id, props.video.typeId)}\n video={props.video}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n />\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"hoverContainer\":\"TzWQw\",\"hovering\":\"gdTcW\"};","import React from 'react';\nimport { OutPortal } from 'react-reverse-portal';\n\nimport { PlayerInitializationData } from 'libs/shared/context/player-context/interfaces/PlayerContextAction';\nimport { usePlayerContext } from 'libs/shared/context/player-context/PlayerContext';\n\nimport styles from './global-player-consumer.scss';\n\ninterface GlobalPlayerConsumerOptions extends PlayerInitializationData {\n location?: 'popout-video' | 'play-page';\n}\n\nexport function GlobalPlayerConsumer(props: GlobalPlayerConsumerOptions): JSX.Element {\n const playerContext = usePlayerContext();\n\n playerContext.useInitialize?.(props);\n\n if (!playerContext.hasProvider)\n return <></>;\n\n if (playerContext.mode === 'picture-in-picture')\n return <></>;\n\n if (props.mode === 'hover' && playerContext.isOnPlayPage)\n return <></>;\n\n if (playerContext.mode === 'default' || props.location === 'play-page')\n return <OutPortal node={playerContext.portalNode} />;\n\n /**\n * When hovering, we don't want to show the player until the video has started playing.\n */\n const shouldShow = playerContext.started;\n\n let rounding = 'rounded-3';\n if (props.location === 'popout-video')\n rounding = 'rounded-top-3';\n\n const className = `${styles.hoverContainer} ${shouldShow ? styles.hovering : ''} ${rounding} overflow-hidden`;\n\n return (\n <div className={className}>\n <OutPortal node={playerContext.portalNode} />\n </div>\n );\n}","export enum ThumbnailTextPosition {\n Below = 1,\n Overlay = 2,\n Independent = 3\n}"],"names":["AudienceLabel","props","audience","className","border","name","BadgeListContainer","children","CheckMarkStatus","CheckMarkButton","status","Complete","isComplete","setIsComplete","style","None","FunctionHelper","setStatus","DivButton","onClick","shouldComplete","newStatus","Incomplete","disabled","SvgContainer","svgName","defaultProps","MaskType","Mask","type","size","typeClass","Video","Playlist","getClassByType","svgType","getSvgType","defaults","ThumbnailText","video","appLink","subTextAppLink","canNavigate","VideoHelper","VideoSubText","subTextType","analyticsOptions","location","AppLink","RestrictionPadlock","yearGroups","getPhrase","LanguageService","FavouriteButton","alerts","initialState","isFavourite","setIsFavourite","setFavourite","canFavourite","shouldFavourite","error","analyticsData","VideoWatchProgressBar","progress","watchPercentage","duration","width","VideoThumbnailBottomBar","PluginHover","isPlugin","Text","namespace","phrase","ThumbnailPadlock","svgSize","S","ThumbnailCompanyLogo","companyLogoFallbackUrl","company","productionCompanies","data","url","ImageHelper","logo","Tooltip","title","spanHack","backgroundImage","VideoTypeBadge","TypeBadge","typeId","MasterType","inContainer","getTitleClass","hovering","ExpandableVideoThumbnail","imageOptions","preload","hoverToPlay","canConsume","appLinkParams","ObjectHelper","params","eventAnalyticsOptions","entity","showFavouriteButton","isVideo","rating","delay","thumbnailHoverRef","showThumbnailPreviewVideo","id","actionType","descriptor","spanHackClassName","ref","BaseImage","imageType","alt","series","ImageFallback","Badge","hasSubtitle","hasInteractives","GlobalPlayerConsumer","key","objectId","objectTypeId","mode","context","contextId","moviesAndTv","mtv","VideoThumbnailBadges","showAudience","showRating","hideRating","hideDuration","newDurationStyle","PopoutVideo","isHovering","cleanPortalNode","extraClasses","hideTitle","showVideoGuidance","VideoItemGuidance","getClassroomGuideAppLink","getResourceGuidanceAppLink","getInteractiveGuidanceAppLink","responsiveClassName","containerClassName","PopoutVideoThumbnail","HoverToPortalContainer","hoverableComponent","componentProps","fixedHoverWidth","minHoverWidth","VideoThumbnailActions","setCheckMarkStatus","hasActions","checkMarkStatus","textPosition","textIsOverlayed","ThumbnailTextPosition","StaticVideoThumbnail","hoverRef","hoverIntentRef","isHoveringIntentionally","showMask","hideMask","tooltip","showSignIn","r","current","undefined","imageClassName","getThumbnailClass","VideoThumbnail","getIcon","getColourClass","CurationStatus","baseClasses","getText","_restrictions","placement","tooltipPlacement","ContainerWrapper","appLinkAnalyticsData","appLinkAnalyticsOptions","theme","container","active","VideoGuidanceTag","iconVariant","tabLabel","text","ClassroomGuideTag","glance","glanceId","totalPointsOfInterest","pointsOfInterest","length","videoGuidanceType","InteractivesTag","interactiveCount","interactives","smartCount","videoGuidanceTotalItems","ResourcesTag","resourceCount","resources","showingResourcesAndInteractives","playerContext","useInitialize","hasProvider","isOnPlayPage","node","portalNode","shouldShow","started","rounding"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[7097],{93251:(e,t,n)=>{n.d(t,{J:()=>H});var r=n(32735),a=n(75896),i=n(1048),o=n(34509),l=n(11607),c=n(83345),s="search.filterActions";function u(e){return r.createElement("div",{className:"d-flex justify-content-between ".concat(e.className)},e.active?r.createElement(l.L,{className:"text-secondary hover-text-underline cursor-pointer",onClick:e.onClickReset},r.createElement(c.x,{namespace:s,phrase:"reset"})):r.createElement("div",{className:"invisible"}),r.createElement(l.L,{className:"info-link",onClick:e.onClickApply},r.createElement(c.x,{namespace:s,phrase:"apply"})))}u.defaultProps={active:!1,className:""};var f=n(96675),d=n(97514),m=n(83914);const p={hideCaret:"KDq7l",filterMenu:"E9o_Q",twoColumnsWidth:"C70vU",nestedCheckboxesWidth:"kUHcg",switchWidth:"bi1FH",moreFiltersWidth:"rbr22",svgContainer:"UwDMA"};function y(e){return y="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},y(e)}function v(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return g(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?g(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function b(e){var t=r.useContext(f.f).state,n=t[e.filter.id],a="dropdown"===e.filter.type,i=v(r.useState(e.filter.name),2),l=i[0],c=i[1],s=v(r.useState(!1),2),g=s[0],b=s[1],h=v(r.useState(n),2),E=h[0],C=h[1];function w(e){C(e),a&&S(e)}function S(){var r,a,i,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:E;d.qr.applyFilter([e.filter],n,(r={},a=e.filter.id,i=o,(a=function(e){var t=function(e,t){if("object"!=y(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=y(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==y(t)?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i,r),t.appLink)}r.useEffect((function(){c(d.qr.getLabel(e.filter,n)),C(n)}),[e.filter,null==n?void 0:n.selection]);var k,x=r.useMemo((function(){return e.filter.customComponent?e.filter.customComponent:d.qr.mapTypeToComponent(e.filter.type)}),[e.filter.type]),A=e.hideCaret&&!a?p.hideCaret:"",j=(k=e.filter,d.qr.displayTwoColumns(k)?p.twoColumnsWidth:"classification"===k.id?p.classificationWidth:d.qr.displayTwoLayers(k)?p.nestedCheckboxesWidth:"switch"===k.type?p.switchWidth:"");return"button"===e.filter.type?r.createElement(x,{filter:e.filter,draftState:E,setDraftState:w}):r.createElement(o.Z,{onToggle:function(e){b(e),e||a||S()},show:g},r.createElement(o.Z.Toggle,{id:"filterButton-".concat(e.filter.id),className:"".concat("fw-semibold mx-1 btn d-flex align-items-center"," ").concat(A),variant:n.active&&!a?"dark":"outline-dark",disabled:e.filter.disabled},!!e.filter.icon&&r.createElement("div",{className:p.svgContainer},r.createElement(m.x,{svgName:e.filter.icon})),e.filter.labelPrefix," ",l),r.createElement(o.Z.Menu,null,r.createElement("div",{className:"mx-1 ".concat(p.filterMenu," ").concat(j," ").concat(a?"":"px-2 py-1")},r.createElement(x,{filter:e.filter,draftState:E,setDraftState:w}),!a&&!e.filter.disabled&&r.createElement(u,{active:E.active,onClickReset:function(){var t,n=null===(t=e.filter.options)||void 0===t?void 0:t.find((function(e){return e.default}));C({active:!1,selection:n?[n]:[]})},onClickApply:function(){S(),b(!1)}}))))}b.defaultProps={hideCaret:!0};var h=n(91967);function E(e){return E="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},E(e)}var C={getSetStateByKey:function(e,t,n){return function(r){return e((function(e){var a,i,o,l=h.q.isFunction(n)?n:h.q.useIdentity();return Object.assign(Object.assign({},e),(a={},i=t,o=l(r,e),(i=function(e){var t=function(e,t){if("object"!=E(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=E(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==E(t)?t:t+""}(i))in a?Object.defineProperty(a,i,{value:o,enumerable:!0,configurable:!0,writable:!0}):a[i]=o,a))}))}}};function w(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return S(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?S(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function S(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function k(e){return Object.keys(e).reduce((function(t,n){return e[n].active?t+1:t}),0)}function x(e){var t=r.useContext(f.f).state,n=t.moreFilters,a=w(r.useState(e.filter.name),2),i=a[0],l=a[1],c=w(r.useState(!1),2),s=c[0],m=c[1],y=w(r.useState(n),2),v=y[0],g=y[1],b=w(r.useState(k(n)),2),h=b[0],E=b[1],S=Object.keys(n).map((function(e){return"".concat(e,":").concat(n[e].active)})).join("-");function x(){d.qr.applyFilter(e.filter.filters,n,v,t.appLink)}r.useEffect((function(){g(n),E(k(n))}),[e.filter,S]),r.useEffect((function(){l(h?"".concat(e.filter.name," - ").concat(h):e.filter.name)}),[h]);var A="fw-semibold ".concat(p.hideCaret," mx-1 btn");return r.createElement(o.Z,{onToggle:function(e){m(e),e||x()},show:s},r.createElement(o.Z.Toggle,{id:e.filter.id,className:A,variant:h?"dark":"outline-dark"},i),r.createElement(o.Z.Menu,{onClick:function(e){return e.stopPropagation()}},r.createElement("div",{className:"mx-1 ".concat(p.moreFiltersWidth," ").concat("dropdown"!==e.filter.type?"px-2 py-1":"")},e.filter.filters.map((function(e){var t=e.customComponent?e.customComponent:d.qr.mapTypeToComponent(e.type);return r.createElement("div",{key:e.id,className:"mb-2"},r.createElement(t,{filter:e,draftState:v[e.id],setDraftState:C.getSetStateByKey(g,e.id),isOnMoreFilters:!0}))})),r.createElement(u,{active:!!Object.keys(v).find((function(e){return v[e].active})),onClickReset:function(){var t=Object.keys(n).reduce((function(t,n){var r,a=null===(r=e.filter.filters.find((function(e){return e.id===n})).options)||void 0===r?void 0:r.find((function(e){return e.default}));return t[n]={active:!1,selection:a?[a]:[]},t}),{});g(t)},onClickApply:function(){x(),m(!1)}}))))}var A=n(63112),j=n(16450),F=n(16035);const N={tagItem:"EcurS",selected:"FypfE"};function O(e){var t=e.selectedItems.find((function(t){return t.id===e.data.id}))?"".concat(N.selected," bg-gray-900 text-white"):"bg-light";return r.createElement(F.z,{tag:e.data,appLink:e.appLink,tagClass:"no-decoration ".concat(t," ").concat(N.tagItem),onClick:function(){return e.onClick(e.data)}})}const I={tagItem:"j84HW"};function L(e){return L="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},L(e)}function T(e){return function(e){if(Array.isArray(e))return q(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return q(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?q(e,t):void 0}}(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 q(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function P(e){var t,n,a,i,o=r.useContext(f.f).state;if(!(null===(t=e.filter)||void 0===t?void 0:t.id))return r.createElement(r.Fragment,null);var l=o[e.filter.id],c=l.selection,s=null!==(i=null===(a=null===(n=e.filter)||void 0===n?void 0:n.options)||void 0===a?void 0:a.filter((function(e){return!(null==c?void 0:c.find((function(t){return t.id===e.id})))})))&&void 0!==i?i:[];function u(t){var n,r,a,i=null,s=-1;if(c.find((function(e,n){s>-1||e.id.toString()===t.id.toString()&&(s=n)})),s>=0){var u=[].concat(T(c.slice(0,s)),T(c.slice(s+1)));i={active:!!u.length,selection:u}}else i={active:!0,selection:c.concat(t)};d.qr.applyFilter([e.filter],l,(n={},r=e.filter.id,a=i,(r=function(e){var t=function(e,t){if("object"!=L(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=L(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==L(t)?t:t+""}(r))in n?Object.defineProperty(n,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):n[r]=a,n),o.appLink)}var m,p=[].concat(T(c),T(e.isFetching?[]:s));return r.createElement("div",{className:e.isFetching||p.length?"py-2":""},r.createElement("div",{className:(m="mb-3",p.length&&e.isFetching?m+=" mt-n1":p.length||e.isFetching||(m+=" d-none"),m)},(!!p.length||e.isFetching)&&r.createElement(j.e,{collection:p,childComponent:function(e){return r.createElement(O,Object.assign({},e,{selectedItems:c,onClick:u}))},staticChildren:e.isFetching?new Array(3).fill({component:function(){return r.createElement(A.o,{tagClass:I.tagItem})},position:"end"}):[],partialLoadingComponent:function(){return r.createElement("div",{className:"me-2"},r.createElement(A.o,{tagClass:"".concat(I.tagItem)}))}})))}var D=n(81886);function M(e){var t=r.useContext(f.f).state;return r.createElement(l.L,{onClick:function(){D.Q.C$.trigger(Object.assign(Object.assign({},t.appLink),{params:e.currentQueryParam?{query:e.currentQueryParam}:null}))},className:"".concat(e.alignLeft?"order-first":""," hover-text-underline cursor-pointer d-flex align-items-center mx-2")},r.createElement(c.x,{namespace:"search.resetButton",phrase:"reset"}))}var Q=n(95245);function R(e){return function(e){if(Array.isArray(e))return B(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Z(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 Z(e,t){if(e){if("string"==typeof e)return B(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?B(e,t):void 0}}function B(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function H(e){var t,n,o=e.queryParams,l=e.appLink,s=e.hideHeading,u=e.isFetchingOptions,m=e.constantIndices,p=void 0===m?[]:m,y=r.useMemo((function(){return d.qr.deriveInitialStateFromQuery(o,e.mainFilters,e.moreFilters,l)}),[o,u]),v=(t=r.useReducer(f.O,y),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return l}}(t,n)||Z(t,n)||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.")}()),g=v[0],h=v[1];r.useEffect((function(){i.t.isEqual(y,g)||(h({type:"update",payload:y}),e.analyticsOptions&&d.qr.logFilterEvent(e.mainFilters,e.moreFilters,y,o.query,e.analyticsOptions))}),[y]);var E=a.m.uniq([].concat(R(d.qr.getAppliedIndices(o)),R(p))),C=d.qr.mixinDisabledFields(g,E,e.mainFilters,e.moreFilters),w=C.mainFilters,S=C.moreFilters,k=w.filter((function(e){return"tag"!==e.type})),A=w.find((function(e){return"tag"===e.type}));return r.createElement(f.f.Provider,{value:{state:g,dispatch:h}},r.createElement(c.D.Provider,{value:"search.searchFilters"},r.createElement("section",null,r.createElement("div",{className:"d-flex ".concat(e.hideDivider?"":"border-bottom pb-3 mb-3")},!s&&r.createElement("h2",{className:"h5 mb-0 d-inline-block pe-2 border-end d-flex align-items-center"},r.createElement(c.x,{phrase:"heading"})),r.createElement("div",{className:"d-flex flex-wrap ".concat(Q.Z.filtersContainer," ").concat(s?"":"ms-2")},k.map((function(t){return r.createElement(b,{key:t.id,filter:t,hideCaret:e.hideCaret})})),S&&r.createElement(x,{filter:S}),d.qr.hasActiveFilters(o)&&!e.hideResetButton&&r.createElement(M,{mainFilters:e.mainFilters,moreFilters:e.moreFilters,currentQueryParam:o.query,analyticsOptions:e.analyticsOptions,alignLeft:e.alignResetButtonLeft}))),r.createElement(P,{filter:A,queryParams:o,isFetching:e.isFetchingOptions}))))}},63112:(e,t,n)=>{n.d(t,{o:()=>i});var r=n(32735),a=n(91807),i=r.memo((function(e){var t=e.tagClass,n="partial-loading-background d-inline-block rounded-pill py-1 px-2 mb-1 me-1 text-nowrap ".concat(void 0===t?"":t," ").concat(a.Z.partialTag);return r.createElement("div",{className:"mt-1"},r.createElement("span",{className:n}," "))}))},16035:(e,t,n)=>{n.d(t,{z:()=>l});var r=n(32735),a=n(36848),i=n(44829),o=n(91807);function l(e){var t,n,l=e.tag,c=e.appLink,s=e.onClick,u=e.disabled,f=e.tagClass,d=void 0===f?"tag":f,m=l.name.toLowerCase(),p=null===(t=l.tagType)||void 0===t?void 0:t.toLowerCase(),y=p===i.Q.Normal&&e.themeColours&&!!(null===(n=e.themeColours)||void 0===n?void 0:n.secondary),v="rounded-pill py-1 px-2 my-1 me-1 ".concat(d," ").concat(function(e,t){switch(e){case i.Q.Pedagogy:case i.Q.Skill:return"pedagogy-tag text-white";case i.Q.Hidden:return"hidden-tag fw-normal";case i.Q.Normal:return t?"":"bg-gray-100 fw-normal";default:return""}}(p,y));y&&(v+=" text-white"),!c&&!s||u||(v+=" cursor-pointer"),u&&(v+=" "+o.Z.disabled),e.onRemove&&(v+=" "+o.Z.badge),c||(v+=" d-inline-block");var g=y?{backgroundColor:e.themeColours.secondary}:{};return c?r.createElement(a.F,{onClick:s,appLink:c,className:v,title:m,style:g},r.createElement("span",{className:"text-truncate text-nowrap"},m)):r.createElement("span",{onClick:s,className:v,title:m,style:g},r.createElement("span",{className:"text-truncate text-nowrap"},m,e.onRemove&&r.createElement("button",{onClick:e.onRemove,className:"".concat(o.Z.close," btn-close font-size-normal"),role:"button","aria-label":"Close"})))}},88513:(e,t,n)=>{n.d(t,{B:()=>u});var r=n(32735),a=n(23481),i=n(65858),o=n(36848);const l={seeMore:"yv0FS"};var c=a.T.encloseNamespace("shared.widgetHeader");function s(e){return r.createElement("div",{className:"ms-3 ".concat(l.seeMore)},r.createElement(o.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:Object.assign(Object.assign({},e.analyticsOptions),{descriptor:i._S.SeeMore}),className:"text-decoration-none ".concat(e.appLink?"curated-widget-link":"")},r.createElement("p",{className:"hover-text-underline text-dark curated-widget-heading"},c("seeMore"))))}function u(e){var t=!!e.description;return e.name||e.description?r.createElement("div",{className:"curated-widget-header"},r.createElement("div",{className:"d-flex justify-content-between"},!!e.name&&r.createElement("div",{className:l.title},r.createElement(o.F,{appLink:e.appLink,analyticsOptions:e.analyticsOptions,analyticsData:e.analyticsData,className:"text-decoration-none ".concat(e.appLink?"curated-widget-link":""),onClick:e.onClick},r.createElement("h2",{className:"h4 curated-widget-heading"},e.name))),!!e.appLink&&!t&&!!e.showSeeMoreLink&&r.createElement(s,Object.assign({},e))),t&&r.createElement("div",{className:"d-flex justify-content-between align-items-end"},r.createElement("p",{className:"description curated-widget-description ".concat(l.description)},r.createElement("span",null,e.description)),!!e.appLink&&!!e.showSeeMoreLink&&r.createElement(s,Object.assign({},e)))):r.createElement(r.Fragment,null)}},43872:(e,t,n)=>{n.d(t,{V:()=>u});var r=n(32735),a=n(82182),i=n(31069),o=n(91967),l=new Image;l.src="data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=";var c=function(e){e.dataTransfer.setDragImage&&o.q.isFunction(e.dataTransfer.setDragImage)&&e.dataTransfer.setDragImage(l,0,0)},s=a.V.isTouchScreen(),u=r.forwardRef((function(e,t){var n,a,o,l,u=e.children,f=e.positionType,d=e.onDrag,m=e.onDragEnd,p=e.onTouchMove,y=e.onTouchEnd,v=e.percentageDragged,g=e.position,b=void 0===g?0:g;return r.createElement("div",Object.assign({className:"d-flex flex-nowrap position-relative w-100",style:(a=b,o=f,l=v,o===i.C.Percentage&&l&&(a-=l),{transform:"translate3d(".concat(a).concat(o,", 0px, 0px)"),transition:"transform .4s ease-in-out"}),ref:t},(n={},d&&m&&(n.draggable=!0,n.onDragEnd=m,n.onDragStart=c,n.onDragOver=d),p&&y&&s&&(n.onTouchMoveCapture=p,n.onTouchEndCapture=y),n)),u)}))},31069:(e,t,n)=>{var r;n.d(t,{C:()=>r}),function(e){e.Percentage="%",e.Pixels="px"}(r||(r={}))},44829:(e,t,n)=>{var r,a;n.d(t,{Q:()=>r}),function(e){e.Normal="normal",e.Pedagogy="pedagogy",e.Hidden="hidden",e.Skill="skill",e.Curation="curation"}(r||(r={})),function(e){e[e.Normal=0]="Normal",e[e.Pedagogy=1]="Pedagogy",e[e.Hidden=2]="Hidden",e[e.Skill=3]="Skill",e[e.Curation=4]="Curation"}(a||(a={}))},10841:(e,t,n)=>{var r;n.d(t,{n:()=>r}),function(e){e.Init="init",e.Next="next",e.Previous="previous",e.Resize="resize",e.Drag="drag",e.Update="update",e.JumpToIndex="jump-to-index"}(r||(r={}))},94644:(e,t,n)=>{n.d(t,{r:()=>u});var r=n(50242),a=n(81886),i=n(67058),o=n(14553),l=n(49267),c=n(49075),s={notFound:i.d,forbidden:{rating:o.q,yearLevel:o.q,region:l.a,privacy:o.q},badRequest:c._};function u(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var i;i="number"==typeof e?e:e.status;var o=Object.assign(Object.assign({},s),t);i&&a.Q.Ry.isStatusCodeError(i)&&(i!==r.o.NotFound?i!==r.o.Forbidden?n.badRequest||a.Q.Ry.throw(new o.badRequest):n.forbidden||a.Q.Ry.throw(new o.forbidden.privacy):n.notFound||a.Q.Ry.throw(new o.notFound))}}},95245:(e,t,n)=>{n.d(t,{Z:()=>r});const r={partialFilterHeading:"O8f8H",partialButton:"ThKam",filtersContainer:"JIp3h"}},91807:(e,t,n)=>{n.d(t,{Z:()=>r});const r={tagList:"Zw6d9",disabled:"jlL1c",partialTag:"too_N",badge:"OjtN8",close:"X9joI"}}}]);
|
|
2
|
+
//# sourceMappingURL=7097-b9a9a0a4ce-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/7097-b9a9a0a4ce-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/search/components/filter-actions/FilterActions.tsx","file:///app/packages/libs/shared/src/apps/search/components/filter-button/filter-button.scss","file:///app/packages/libs/shared/src/apps/search/components/filter-button/FilterButton.tsx","file:///app/packages/libs/shared/src/utils/StateHelper.ts","file:///app/packages/libs/shared/src/apps/search/components/filter-button/MoreFiltersButton.tsx","file:///app/packages/libs/shared/src/components/widgets/items/tag-widget-item/tag-widget-item.scss","file:///app/packages/libs/shared/src/components/widgets/items/tag-widget-item/TagWidgetItem.tsx","file:///app/packages/libs/shared/src/apps/search/components/filter-types/tag-filter/tag-filter.scss","file:///app/packages/libs/shared/src/apps/search/components/filter-types/tag-filter/TagFilter.tsx","file:///app/packages/libs/shared/src/apps/search/components/reset-button/ResetButton.tsx","file:///app/packages/libs/shared/src/apps/search/components/search-filters/SearchFilters.tsx","file:///app/packages/libs/shared/src/components/tags/PartialTagItem.tsx","file:///app/packages/libs/shared/src/components/tags/TagItem.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/enums/CssMeasurement.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/errors/handlers/HttpErrorHandlers.ts","file:///app/packages/libs/shared/src/apps/search/components/search-filters/search-filters.scss","file:///app/packages/libs/shared/src/components/tags/tags.scss"],"sourcesContent":["import * as React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'search.filterActions';\n\ninterface FilterActionsProps {\n className?: string;\n onClickReset: () => void;\n onClickApply: () => void;\n active: boolean;\n}\n\nFilterActions.defaultProps = {\n active: false,\n className: ''\n};\n\nexport function FilterActions(props: FilterActionsProps): JSX.Element {\n return (\n <div className={`d-flex justify-content-between ${props.className}`}>\n {props.active ? (\n <DivButton className='text-secondary hover-text-underline cursor-pointer' onClick={props.onClickReset}>\n <Text namespace={namespace} phrase='reset' />\n </DivButton>\n ) : (\n <div className='invisible' />\n )}\n\n <DivButton className='info-link' onClick={props.onClickApply}>\n <Text namespace={namespace} phrase='apply' />\n </DivButton>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"hideCaret\":\"KDq7l\",\"filterMenu\":\"E9o_Q\",\"twoColumnsWidth\":\"C70vU\",\"nestedCheckboxesWidth\":\"kUHcg\",\"switchWidth\":\"bi1FH\",\"moreFiltersWidth\":\"rbr22\",\"svgContainer\":\"UwDMA\"};","import * as React from 'react';\nimport { Dropdown } from 'react-bootstrap';\n\nimport { FilterActions } from 'libs/shared/apps/search/components/filter-actions/FilterActions';\nimport { SearchFilter } from 'libs/shared/apps/search/interfaces';\nimport { FilterContext, FilterState } from 'libs/shared/apps/search/reducers';\nimport { FilterHelper } from 'libs/shared/apps/search/utils/FilterHelper';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\n\nimport styles from './filter-button.scss';\n\n/**\n * If your filter requires some customisations to the default width, add a use case here.\n */\nfunction getCustomWidthClass(filter: SearchFilter): string {\n if (FilterHelper.displayTwoColumns(filter))\n return styles.twoColumnsWidth;\n\n // Some classifications has long names, so we make them wider\n if (filter.id === 'classification')\n return styles.classificationWidth;\n \n if (FilterHelper.displayTwoLayers(filter))\n return styles.nestedCheckboxesWidth;\n\n if (filter.type === 'switch')\n return styles.switchWidth;\n\n return '';\n}\n\nFilterButton.defaultProps = {\n hideCaret: true\n};\n\ninterface FilterButtonProps {\n filter: SearchFilter;\n hideCaret?: boolean;\n}\n\nexport function FilterButton(props: FilterButtonProps): JSX.Element {\n const { state } = React.useContext(FilterContext);\n const currentFilterState = state[props.filter.id];\n\n const isDropdownFilter = props.filter.type === 'dropdown';\n\n const [ label, setLabel ] = React.useState(props.filter.name);\n const [ showDropdown, setShowDropdown ] = React.useState(false);\n const [ draftState, setDraftState ] = React.useState<FilterState>(currentFilterState);\n\n React.useEffect(() => {\n setLabel(FilterHelper.getLabel(props.filter, currentFilterState));\n setDraftState(currentFilterState);\n }, [ props.filter, currentFilterState?.selection ]);\n\n function onSelectItem(state: FilterState): void {\n setDraftState(state);\n\n if (isDropdownFilter)\n applyFilter(state);\n }\n\n function onClickReset(): void {\n const defaultOption = props.filter.options?.find(o => o.default);\n\n setDraftState({\n active: false,\n selection: defaultOption ? [defaultOption] : []\n });\n }\n\n function onClickApply(): void {\n applyFilter();\n setShowDropdown(false);\n }\n\n function applyFilter(newState: FilterState = draftState): void {\n FilterHelper.applyFilter(\n [props.filter],\n currentFilterState,\n { [props.filter.id]: newState },\n state.appLink\n );\n }\n\n function onToggleDropdown(isShowing: boolean): void {\n setShowDropdown(isShowing);\n\n if (isShowing || isDropdownFilter)\n return;\n\n // Apply the filter if the dropdown has been closed\n applyFilter();\n }\n\n const FilterComponent = React.useMemo(() => {\n return props.filter.customComponent\n ? props.filter.customComponent\n : FilterHelper.mapTypeToComponent(props.filter.type);\n }, [props.filter.type]);\n\n const baseClass = `fw-semibold mx-1 btn d-flex align-items-center`;\n const caretClass = props.hideCaret && !isDropdownFilter ? styles.hideCaret : '';\n const customWidthClass = getCustomWidthClass(props.filter);\n\n if (props.filter.type === 'button')\n return (\n <FilterComponent\n filter={props.filter}\n draftState={draftState}\n setDraftState={onSelectItem}\n />\n );\n\n return (\n <Dropdown onToggle={onToggleDropdown} show={showDropdown}>\n <Dropdown.Toggle\n id={`filterButton-${props.filter.id}`}\n className={`${baseClass} ${caretClass}`}\n variant={(currentFilterState.active && !isDropdownFilter) ? 'dark' : 'outline-dark'}\n disabled={props.filter.disabled}\n >\n {!!props.filter.icon && (\n <div className={styles.svgContainer}>\n <SvgContainer svgName={props.filter.icon} />\n </div>\n )}\n {props.filter.labelPrefix} {label}\n </Dropdown.Toggle>\n\n <Dropdown.Menu>\n <div className={`mx-1 ${styles.filterMenu} ${customWidthClass} ${!isDropdownFilter ? 'px-2 py-1' : ''}`}>\n <FilterComponent\n filter={props.filter}\n draftState={draftState}\n setDraftState={onSelectItem}\n />\n\n {(!isDropdownFilter && !props.filter.disabled) && (\n <FilterActions\n active={draftState.active}\n onClickReset={onClickReset}\n onClickApply={onClickApply}\n />\n )}\n </div>\n </Dropdown.Menu>\n </Dropdown>\n );\n}\n","import { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nexport const StateHelper = {\n /**\n * Helper function to get the setState function for an individual key in a state object.\n * \n * @param setState React setState action\n * @param key Property within the state object we're updating\n * @param callback Optional callback to modify data before setting state. Uses identity fn by default.\n * \n * @returns Newly updated state object\n */\n getSetStateByKey<T extends HashObject>(\n setState: React.Dispatch<React.SetStateAction<T>>,\n key: keyof T,\n callback?: (data: any, state?: T) => T[keyof T]\n ): (data: any) => void {\n return (data: any) => setState(state => {\n const fn = FunctionHelper.isFunction(callback) ? callback : FunctionHelper.useIdentity<T>();\n return { ...state, [key]: fn(data, state) };\n });\n }\n};","import * as React from 'react';\nimport { Dropdown } from 'react-bootstrap';\n\nimport { FilterActions } from 'libs/shared/apps/search/components/filter-actions/FilterActions';\nimport { FilterIds, MoreFilters } from 'libs/shared/apps/search/interfaces';\nimport { DraftState, FilterContext, FilterStateHash } from 'libs/shared/apps/search/reducers';\nimport { FilterHelper } from 'libs/shared/apps/search/utils/FilterHelper';\nimport { StateHelper } from 'libs/shared/utils/StateHelper';\n\nimport styles from './filter-button.scss';\n\nfunction getTotalActiveFilters(currentState: FilterStateHash): number {\n const total = Object.keys(currentState).reduce((acc: number, key: FilterIds) => {\n return currentState[key].active\n ? acc + 1\n : acc;\n }, 0);\n\n return total;\n}\n\ninterface MoreFiltersButtonProps {\n filter: MoreFilters;\n}\n\nexport function MoreFiltersButton(props: MoreFiltersButtonProps): JSX.Element {\n const { state } = React.useContext(FilterContext);\n const currentFilterState = state.moreFilters;\n\n const [ label, setLabel ] = React.useState(props.filter.name);\n const [ showDropdown, setShowDropdown ] = React.useState(false);\n const [ draftState, setDraftState ] = React.useState<DraftState>(currentFilterState);\n const [ totalActiveFilters, setTotalActiveFilters ] = React.useState(getTotalActiveFilters(currentFilterState));\n\n const currentFilterStateKey = Object.keys(currentFilterState).map((id: FilterIds) => {\n return `${id}:${currentFilterState[id].active}`;\n }).join('-');\n\n React.useEffect(() => {\n setDraftState(currentFilterState);\n setTotalActiveFilters(getTotalActiveFilters(currentFilterState));\n }, [ props.filter, currentFilterStateKey ]);\n\n React.useEffect(() => {\n setLabel(totalActiveFilters ? `${props.filter.name} - ${totalActiveFilters}` : props.filter.name);\n }, [totalActiveFilters]);\n\n function onClickReset(): void {\n const filterIds = Object.keys(currentFilterState) as FilterIds[];\n\n const newState = filterIds.reduce((acc: DraftState, filterId) => {\n const filter = props.filter.filters.find(f => f.id === filterId);\n const defaultOption = filter.options?.find(o => o.default);\n\n acc[filterId] = {\n active: false,\n selection: defaultOption ? [defaultOption] : []\n };\n\n return acc;\n }, {});\n\n setDraftState(newState);\n }\n\n function onClickApply(): void {\n applyFilter();\n setShowDropdown(false);\n }\n\n function onToggleDropdown(isShowing: boolean): void {\n setShowDropdown(isShowing);\n\n if (isShowing)\n return;\n\n // Apply the filter if the dropdown has been closed\n applyFilter();\n }\n\n function applyFilter(): void {\n FilterHelper.applyFilter(\n props.filter.filters,\n currentFilterState,\n draftState,\n state.appLink\n );\n }\n\n const baseClass = `fw-semibold ${styles.hideCaret} mx-1 btn`;\n\n return (\n <Dropdown onToggle={onToggleDropdown} show={showDropdown}>\n <Dropdown.Toggle id={props.filter.id} className={baseClass} variant={totalActiveFilters ? 'dark' : 'outline-dark'}>\n {label}\n </Dropdown.Toggle>\n\n <Dropdown.Menu onClick={(e: React.MouseEvent) => e.stopPropagation()}>\n <div className={`mx-1 ${styles.moreFiltersWidth} ${props.filter.type !== 'dropdown' ? 'px-2 py-1' : ''}`}>\n {props.filter.filters.map(filter => {\n const FilterComponent = filter.customComponent\n ? filter.customComponent\n : FilterHelper.mapTypeToComponent(filter.type);\n\n return (\n <div key={filter.id} className='mb-2'>\n <FilterComponent\n filter={filter}\n draftState={draftState[filter.id]}\n setDraftState={StateHelper.getSetStateByKey(setDraftState, filter.id)}\n isOnMoreFilters\n />\n </div>\n );\n })}\n\n <FilterActions\n active={!!Object.keys(draftState).find((key: FilterIds) => draftState[key].active)}\n onClickReset={onClickReset}\n onClickApply={onClickApply}\n />\n </div>\n </Dropdown.Menu>\n </Dropdown>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"tagItem\":\"EcurS\",\"selected\":\"FypfE\"};","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { FilterOption } from 'libs/shared/apps/search/interfaces';\nimport { TagItem } from 'libs/shared/components/tags/TagItem';\nimport { BaseObject, Tag } from 'libs/shared/interfaces';\n\nimport styles from './tag-widget-item.scss';\n\nexport interface TagWidgetItemProps {\n appLink: Core.AppLink;\n data: Tag;\n selectedItems?: BaseObject[];\n onClick?: (data: Tag | FilterOption) => void;\n}\n\nexport function TagWidgetItem(props: TagWidgetItemProps): JSX.Element {\n const isSelected = props.selectedItems.find(selection => selection.id === props.data.id);\n\n const colorClass = isSelected ? `${styles.selected} bg-gray-900 text-white` : 'bg-light';\n\n return (\n <TagItem\n tag={props.data}\n appLink={props.appLink}\n tagClass={`no-decoration ${colorClass} ${styles.tagItem}`}\n onClick={() => props.onClick(props.data)}\n />\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"tagItem\":\"j84HW\"};","import React from 'react';\n\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { FilterOption, SearchFilter } from 'libs/shared/apps/search/interfaces';\nimport { FilterContext, FilterState } from 'libs/shared/apps/search/reducers';\nimport { FilterHelper } from 'libs/shared/apps/search/utils/FilterHelper';\nimport { PartialTagItem } from 'libs/shared/components/tags/PartialTagItem';\nimport { DynamicWidget } from 'libs/shared/components/widgets/dynamic-widget/DynamicWidget';\nimport { TagWidgetItem, TagWidgetItemProps } from 'libs/shared/components/widgets/items/tag-widget-item/TagWidgetItem';\n\nimport styles from './tag-filter.scss';\n\ninterface TagFilterProps {\n filter: SearchFilter;\n queryParams: HashObject;\n isFetching?: boolean;\n}\n\nexport function TagFilter(props: TagFilterProps): JSX.Element {\n const { state } = React.useContext(FilterContext);\n\n if (!props.filter?.id)\n return <></>;\n\n const currentFilterState = state[props.filter.id];\n\n const { selection: selections } = currentFilterState;\n\n const unappliedOptions = props.filter?.options?.filter(opt => {\n return !selections?.find(selection => selection.id === opt.id);\n }) ?? [];\n\n function onClickOption(option: FilterOption): void {\n let nextFilterState: FilterState = null;\n\n let indexOfItem: number = -1;\n\n // Find the index of the selected item if it's already selected\n selections.find((selection, i) => {\n if (indexOfItem > -1)\n return;\n\n if (selection.id.toString() !== option.id.toString())\n return;\n\n indexOfItem = i;\n });\n\n if (indexOfItem >= 0) {\n const newItems = [ ...selections.slice(0, indexOfItem), ...selections.slice(indexOfItem + 1) ];\n \n nextFilterState = {\n active: !!newItems.length,\n selection: newItems\n };\n } else {\n nextFilterState = {\n active: true,\n selection: selections.concat(option)\n };\n }\n\n FilterHelper.applyFilter(\n [props.filter],\n currentFilterState,\n { [props.filter.id]: nextFilterState },\n state.appLink\n );\n }\n\n function getContainerClass(): string {\n let className = 'mb-3';\n\n if (collection.length && props.isFetching)\n className += ' mt-n1';\n else if (!collection.length && !props.isFetching)\n className += ' d-none';\n\n return className;\n }\n\n const collection = [ ...selections, ...(props.isFetching ? [] : unappliedOptions) ];\n\n return (\n <div className={(props.isFetching || collection.length) ? 'py-2' : ''}>\n <div className={getContainerClass()}>\n {(!!collection.length || props.isFetching) && (\n <DynamicWidget\n collection={collection}\n childComponent={(props: TagWidgetItemProps) => (\n <TagWidgetItem\n {...props}\n selectedItems={selections}\n onClick={onClickOption}\n />\n )}\n staticChildren={props.isFetching\n ? new Array(3).fill({\n component: () => <PartialTagItem tagClass={styles.tagItem} />,\n position: 'end'\n })\n : []\n }\n partialLoadingComponent={() => (\n <div className='me-2'>\n <PartialTagItem tagClass={`${styles.tagItem}`} />\n </div>\n )}\n />\n )}\n </div>\n </div>\n );\n}","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { MoreFilters, SearchFilter } from 'libs/shared/apps/search/interfaces';\nimport { FilterContext } from 'libs/shared/apps/search/reducers';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PropsWithAnalyticsOptions } from 'libs/shared/interfaces';\n\ntype ResetButtonProps = PropsWithAnalyticsOptions<{\n currentQueryParam: string;\n mainFilters: Array<SearchFilter>;\n moreFilters: MoreFilters;\n alignLeft?: boolean;\n}>;\n\nexport function ResetButton(props: ResetButtonProps): JSX.Element {\n const { state } = React.useContext(FilterContext);\n\n const onClickReset = () => {\n Core.AppLinkHelper.trigger({\n ...state.appLink,\n params: props.currentQueryParam ? { query: props.currentQueryParam } : null\n });\n };\n\n return (\n <DivButton\n onClick={onClickReset}\n className={`${props.alignLeft ? 'order-first' : ''} hover-text-underline cursor-pointer d-flex align-items-center mx-2`}\n >\n <Text namespace='search.resetButton' phrase='reset' />\n </DivButton>\n );\n}","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { FilterButton } from 'libs/shared/apps/search/components/filter-button/FilterButton';\nimport { MoreFiltersButton } from 'libs/shared/apps/search/components/filter-button/MoreFiltersButton';\nimport { TagFilter } from 'libs/shared/apps/search/components/filter-types/tag-filter/TagFilter';\nimport { ResetButton } from 'libs/shared/apps/search/components/reset-button/ResetButton';\nimport { MoreFilters, SearchFilter, SearchIndices } from 'libs/shared/apps/search/interfaces';\nimport { FilterContext, FilterReducer } from 'libs/shared/apps/search/reducers';\nimport { FilterHelper } from 'libs/shared/apps/search/utils/FilterHelper';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\n\nimport styles from './search-filters.scss';\n\ntype SearchFiltersProps = {\n queryParams: HashObject;\n mainFilters: SearchFilter[];\n appLink: Core.AppLink;\n moreFilters?: MoreFilters;\n isFetchingOptions?: boolean;\n constantIndices?: SearchIndices[];\n analyticsOptions?: AnalyticsOptions;\n\n hideHeading?: boolean;\n hideDivider?: boolean;\n hideResetButton?: boolean;\n alignResetButtonLeft?: boolean;\n hideCaret?: boolean;\n};\n\nexport function SearchFilters(props: SearchFiltersProps): JSX.Element {\n const { queryParams, appLink, hideHeading, isFetchingOptions, constantIndices = []} = props;\n\n const newState = React.useMemo(() => {\n return FilterHelper.deriveInitialStateFromQuery(queryParams, props.mainFilters, props.moreFilters, appLink);\n }, [ queryParams, isFetchingOptions ]);\n\n const [ state, dispatch ] = React.useReducer(FilterReducer, newState);\n\n React.useEffect(() => {\n if (ObjectHelper.isEqual(newState, state))\n return;\n\n dispatch({\n type: 'update',\n payload: newState\n });\n\n if (props.analyticsOptions) {\n FilterHelper.logFilterEvent(\n props.mainFilters,\n props.moreFilters,\n newState,\n queryParams.query,\n props.analyticsOptions\n );\n }\n }, [newState]);\n\n const indices = ArrayHelper.uniq([\n ...FilterHelper.getAppliedIndices(queryParams),\n ...constantIndices\n ]);\n\n const { mainFilters, moreFilters } = FilterHelper.mixinDisabledFields(\n state,\n indices,\n props.mainFilters,\n props.moreFilters\n );\n\n // Separate the tag filter as it's rendered differently\n const mainFiltersWithoutTags = mainFilters.filter(f => f.type !== 'tag');\n const tagFilter = mainFilters.find(f => f.type === 'tag');\n\n return (\n <FilterContext.Provider value={{ state, dispatch }}>\n <LanguageNamespaceContext.Provider value='search.searchFilters'>\n <section>\n <div className={`d-flex ${!props.hideDivider ? 'border-bottom pb-3 mb-3' : ''}`}>\n {!hideHeading && (\n <h2 className='h5 mb-0 d-inline-block pe-2 border-end d-flex align-items-center'>\n <Text phrase='heading' />\n </h2>\n )}\n\n <div className={`d-flex flex-wrap ${styles.filtersContainer} ${!hideHeading ? 'ms-2' : ''}`}>\n {mainFiltersWithoutTags.map(f => (\n <FilterButton key={f.id} filter={f} hideCaret={props.hideCaret} />\n ))}\n\n {moreFilters && <MoreFiltersButton filter={moreFilters} />}\n\n {FilterHelper.hasActiveFilters(queryParams) && !props.hideResetButton && (\n <ResetButton\n mainFilters={props.mainFilters}\n moreFilters={props.moreFilters}\n currentQueryParam={queryParams.query}\n analyticsOptions={props.analyticsOptions}\n alignLeft={props.alignResetButtonLeft}\n />\n )}\n </div>\n </div>\n \n <TagFilter\n filter={tagFilter}\n queryParams={queryParams}\n isFetching={props.isFetchingOptions}\n />\n </section>\n </LanguageNamespaceContext.Provider>\n </FilterContext.Provider>\n );\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 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}","// 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});","export enum CssMeasurement {\n Percentage = '%',\n Pixels = 'px'\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 { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}","// extracted by mini-css-extract-plugin\nexport default {\"partialFilterHeading\":\"O8f8H\",\"partialButton\":\"ThKam\",\"filtersContainer\":\"JIp3h\"};","// extracted by mini-css-extract-plugin\nexport default {\"tagList\":\"Zw6d9\",\"disabled\":\"jlL1c\",\"partialTag\":\"too_N\",\"badge\":\"OjtN8\",\"close\":\"X9joI\"};"],"names":["namespace","FilterActions","props","className","active","DivButton","onClick","onClickReset","Text","phrase","onClickApply","defaultProps","FilterButton","state","currentFilterState","filter","id","isDropdownFilter","type","name","label","setLabel","showDropdown","setShowDropdown","draftState","setDraftState","onSelectItem","applyFilter","newState","FilterHelper","appLink","selection","FilterComponent","customComponent","caretClass","hideCaret","customWidthClass","Dropdown","onToggle","isShowing","show","variant","disabled","icon","SvgContainer","svgName","labelPrefix","defaultOption","options","find","o","StateHelper","getSetStateByKey","setState","key","callback","data","fn","FunctionHelper","getTotalActiveFilters","currentState","Object","keys","reduce","acc","MoreFiltersButton","moreFilters","totalActiveFilters","setTotalActiveFilters","currentFilterStateKey","map","join","filters","baseClass","e","stopPropagation","isOnMoreFilters","filterId","f","TagWidgetItem","colorClass","selectedItems","TagItem","tag","tagClass","TagFilter","selections","unappliedOptions","opt","onClickOption","option","nextFilterState","indexOfItem","i","toString","newItems","slice","length","concat","collection","isFetching","DynamicWidget","childComponent","staticChildren","Array","fill","component","PartialTagItem","position","partialLoadingComponent","ResetButton","params","currentQueryParam","query","alignLeft","SearchFilters","queryParams","hideHeading","isFetchingOptions","constantIndices","mainFilters","dispatch","ObjectHelper","payload","analyticsOptions","indices","ArrayHelper","mainFiltersWithoutTags","tagFilter","value","hideDivider","hideResetButton","alignResetButtonLeft","classNames","toLowerCase","tagType","hasThemeColour","themeColours","secondary","getTagTypeClass","onRemove","style","backgroundColor","title","role","getPhrase","LanguageService","SeeMore","AppLink","analyticsData","descriptor","WidgetHeader","hasDescription","description","showSeeMoreLink","blankImage","Image","src","DragHelper","event","dataTransfer","setDragImage","isTouchScreen","UserAgentHelper","SlidingListContainer","ref","listenerProps","xPosition","measurement","dragPercentage","children","positionType","onDrag","onDragEnd","onTouchMove","onTouchEnd","percentageDragged","CssMeasurement","C","transform","transition","draggable","onDragStart","onDragOver","onTouchMoveCapture","onTouchEndCapture","TagType","TagTypeNumber","WidgetInteraction","defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[714],{49935:(e,t,a)=>{a.d(t,{Oo:()=>u,b2:()=>d});var n=a(32735),r=a(36848),c=a(86764),s=a(3747),i=a(5859),l=a(35223),o=a(83914),m=function(e){var t=e.breadcrumb,a=t.name,c=t.appLink,s=t.active,i=e.withBackIcon;return n.createElement("li",{className:"breadcrumb-item".concat(s?" active":"")},s?n.createElement("strong",null,a):n.createElement(r.F,{appLink:c},i&&n.createElement(o.x,{svgName:l.vn.ChevronLeft,size:o.S.Small}),n.createElement("span",{className:i?"ms-2":""},a)))},u=function(e){var t=e.breadcrumbs,a=(0,s.a)(c.r.XS),r=null==t?void 0:t.length;return!r||a&&r<2?n.createElement(n.Fragment,null):a?n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},n.createElement(m,{breadcrumb:t[r-2],withBackIcon:!0}))):n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},t.map((function(e,t){return n.createElement(m,{key:t,breadcrumb:e})}))))},d=n.memo((function(e){var t=e.numItems,a=void 0===t?3:t;return(0,s.a)(c.r.XS)?n.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},i.u.getPartialLoadingItems({numItems:a}).map((function(e,t){var a=e.width;return n.createElement("li",{key:t,className:"breadcrumb-item"},n.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:a},dangerouslySetInnerHTML:{__html:" "}}))}))))}))},38502:(e,t,a)=>{a.d(t,{r:()=>u});var n=a(32735),r=a(49985),c=a(36848),s=a(18559),i=a(11607),l=a(83914),o=a(87432);function m(e){return n.createElement(n.Fragment,null,!!e.tab.svgName&&n.createElement("div",{className:e.tab.name?"pe-1":""},n.createElement(l.x,{svgName:e.tab.svgName})),e.tab.name,"number"==typeof e.tab.count&&n.createElement("div",{className:"ps-2"},n.createElement(s.C,{type:s.g.Count,data:e.tab.count})))}function u(e){var t;return n.createElement("nav",{className:null!==(t=e.className)&&void 0!==t?t:"",ref:e.containerRef},n.createElement("ul",{className:"\n list-unstyled d-inline-block m-0 ".concat(o.Z.pillTabSelector,"\n ").concat(e.borderRadius?o.Z.radiusSmall:"","\n ").concat(e.listClassName,"\n ")},e.tabs.map((function(e,t){return n.createElement("li",{className:"\n p-0 ".concat(o.Z.tab," ").concat(e.active?"btn btn-dark":"btn btn-outline-dark","\n ").concat(e.name?o.Z.minWidth:""," ").concat(e.className,"\n "),key:t},e.appLink?n.createElement(c.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(o.Z.tabLink,"\n ")},n.createElement(m,{tab:e})):n.createElement(i.L,{className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset p-2 text-nowrap ".concat(o.Z.tabLink,"\n "),onClick:function(){return function(e){!e.active&&e.onSelect&&(e.onSelect(),e.analyticsData&&e.analyticsOptions&&r.k.logUserAction(e.analyticsData,e.analyticsOptions))}(e)}},n.createElement(m,{tab:e})))}))))}u.defaultProps={borderRadius:"lg"}},58739:(e,t,a)=>{var n;a.d(t,{K:()=>n}),function(e){e[e.Submitted=0]="Submitted",e[e.Queued=1]="Queued",e[e.Pending=2]="Pending",e[e.InProgress=3]="InProgress",e[e.Completed=4]="Completed",e[e.CompletedWithError=5]="CompletedWithError",e[e.Failed=6]="Failed"}(n||(n={}))},44538:(e,t,a)=>{a.d(t,{K:()=>i});var n=a(99940),r=a(97395),c=a(58739),s=a(38389),i={getRostering:function(){return{url:"{gateway}/v1/users/me/rostering",key:"rostering"}},getSyncList:function(e){var t={};if(e.cursor&&(t.cursor=e.cursor),e.sort&&("oldest"===e.sort?t.order="ASC":t.order="DESC"),e.jobStatus){var a=[];e.jobStatus.includes("completed")&&a.push.apply(a,[c.K.Completed,c.K.CompletedWithError]),e.jobStatus.includes("failed")&&a.push(c.K.Failed),e.jobStatus.includes("inProgress")&&a.push.apply(a,[c.K.Submitted,c.K.Queued,c.K.Pending,c.K.InProgress]),t.status=a}return t.type=s.m.Rostering,{url:r._.urlBuilder("{gateway}/v1/batch/jobs",t),key:"rostering:sync:".concat(e.cursor,":").concat(e.sort,":").concat(e.jobStatus)}},createJob:function(e,t,a){return{url:"{gateway}/v1/batch/jobs",key:"rostering:sync",type:n.k.POST,invalidationKeys:["rostering:sync"],data:e,success:t,error:a}},getJobSummary:function(e){return{url:"{gateway}/v1/batch/jobs/".concat(e,"/summary"),key:"job:summary:".concat(e)}},getSyncScheduleSettings:function(e){return{url:"{gateway}/v1/rostering/".concat(e,"/schedule"),key:"sync-settings:".concat(e)}},updateScheduleSetting:function(e,t,a,r,c){return{type:n.k.PUT,url:"{gateway}/v1/rostering/".concat(t,"/schedule"),key:"update:sync-settings:".concat(e.customerId,":").concat(t),invalidationKeys:["sync-settings:".concat(t)],data:e,success:a,error:r,always:c}}}},5859:(e,t,a)=>{function n(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}a.d(t,{u:()=>c});var r={numItems:5,minWidth:50,maxWidth:100},c={getPartialLoadingItems:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=Object.assign(Object.assign({},r),t);return(e=Array(a.numItems),function(e){if(Array.isArray(e))return n(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return n(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)?n(e,t):void 0}}(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.")}()).map((function(){return{width:"".concat(Math.max(Math.floor(Math.random()*a.maxWidth),a.minWidth),"px")}}))}}},96268:(e,t,a)=>{a.d(t,{W:()=>o});var n=a(32735),r=a(81886),c=a(65858),s=a(37802),i=a(14070),l=a(97291);function o(){var e=(0,s.r)(c.LZ.Settings),t=e.isLoadingSettings,a=e.domainSettings;n.useEffect((function(){t||a||r.Q.C$.trigger({application:l.O.SETTINGS,action:i.e.Settings.HOME},{replace:!0})}),[a,t])}},97990:(e,t,a)=>{a.d(t,{t:()=>p});var n=a(32735),r=a(81886),c=a(23481),s=a(65858),i=a(38502),l=a(14070),o=a(97291),m="settings.staffManagerTabs",u=c.T.encloseNamespace(m),d={staffManager:{application:o.O.USER_MANAGER,action:l.e.UserManager.STAFF},inviteRequests:{application:o.O.USER_MANAGER,action:l.e.UserManager.ACCESS_REQUESTS}};function p(e){var t=e.active;return n.createElement("div",{className:"mb-3"},n.createElement(i.r,{tabs:[{name:u("staffManager"),appLink:d.staffManager,active:"staff-manager"===t,analyticsData:{name:u("staffManager"),url:r.Q.C$.getHref(d.staffManager)},analyticsOptions:{actionType:s.Vw.Click,entity:s.py.Url,location:s.LZ.MagicTabs}},{name:u("inviteRequests"),appLink:d.inviteRequests,active:"invite-requests"===t,analyticsData:{name:c.T.getPhrase(m,"inviteRequests"),url:r.Q.C$.getHref(d.inviteRequests)},analyticsOptions:{actionType:s.Vw.Click,entity:s.py.Url,location:s.LZ.MagicTabs}}]}))}},81422:(e,t,a)=>{var n;a.d(t,{C:()=>n}),function(e){e.Approved="Approved",e.Denied="Denied",e.Pending="Pending"}(n||(n={}))},80714:(e,t,a)=>{a.r(t),a.d(t,{AccessRequestsView:()=>F});var n=a(32735),r=a(81886),c=a(23481),s=a(20354),i=a(36848),l=a(49935),o=a(83345),m=a(39151),u=a(44538),d=a(31949),p=a(14070),g=a(97291),b=a(96268),E=a(110),f=a(20789),v=a(19808),y=a(64818),S=a(23232),h=a(99742),N="userManager.inviteRequestsTableEmptyState",C=c.T.encloseNamespace(N);function k(){return n.createElement(S.u,null,n.createElement(S.u.Image,{src:h.W.EmptyStates.UserManager.STAFF}),n.createElement(S.u.Heading,null,n.createElement(o.x,{namespace:N,phrase:"heading"})),n.createElement(S.u.Info,null,n.createElement(o.x,{namespace:N,phrase:"info"})),n.createElement(S.u.Cta,{text:C("cta"),appLink:{application:g.O.SETTINGS,action:p.e.Settings.REQUESTING_ACCESS},className:"btn btn-dark"}))}var R=a(81422);const T={avatarContainer:"HxoMt",emailText:"ughCx"};var x="userManager.inviteRequestsTable";function M(e){var t=e.joinRequests,a=e.imageCdnUrl,r=e.currentUser,c=e.onResolveRequest;return t.length?n.createElement("table",{className:"w-100 table table-striped table-borderless"},n.createElement("thead",null,n.createElement("tr",null,n.createElement("th",{scope:"col",className:"ps-3"},n.createElement(o.x,{namespace:x,phrase:"nameTableHeading"})),n.createElement("th",{scope:"col"},n.createElement(o.x,{namespace:x,phrase:"dateTableHeading"})),n.createElement("th",null))),n.createElement("tbody",null,t.map((function(e){return n.createElement("tr",{key:e.id},n.createElement("td",{className:"align-middle ps-3"},n.createElement("div",{className:"d-flex align-items-center"},n.createElement("div",{className:"".concat(T.avatarContainer," me-2")},n.createElement(f.q,{imageCdnUrl:a,initials:y.l.getInitialsFromFullName(e.fullName)||e.email.charAt(0)})),n.createElement("div",{className:"d-flex flex-column justify-content-center"},e.fullName&&n.createElement("span",{className:"fw-semibold"},e.fullName),n.createElement("span",{className:"".concat(T.emailText)},e.email)))),n.createElement("td",{className:"align-middle"},E.O.format(e.dateCreated,r.instanceRegion===v.b.US?"MM/DD/YYYY":"DD/MM/YYYY")),n.createElement("td",{className:"text-end pe-3"},n.createElement("button",{className:"btn btn-tertiary me-1",onClick:function(){return c(e,R.C.Denied)}},n.createElement(o.x,{namespace:x,phrase:"rejectButtonLabel"})),n.createElement("button",{className:"btn btn-primary btn-dark",onClick:function(){return c(e,R.C.Approved)}},n.createElement(o.x,{namespace:x,phrase:"approveButtonLabel"}))))})))):n.createElement(k,null)}var A=a(97990),L=a(47288),w="userManager.accessRequests",U=c.T.encloseNamespace(w),I={application:g.O.SETTINGS,action:p.e.Settings.REQUESTING_ACCESS},O={application:g.O.SETTINGS,action:p.e.Settings.HOME};function F(){var e;(0,b.W)();var t=s.a.useBasicFetch(d.N.currentUser()),a=s.a.useBasicFetch(L.N.joinRequests()),c=s.a.useBasicFetch(m.L.config()),E=s.a.useBasicFetch(u.K.getRostering()),f=(null===(e=E.data)||void 0===e?void 0:e.status)&&"None"!==E.data.status;return n.useEffect((function(){if(E.hasCompleted&&f){var e={application:g.O.USER_MANAGER,action:p.e.UserManager.STAFF};r.Q.C$.trigger(e,{replace:!0})}}),[E.hasCompleted,f]),a.hasCompleted&&c.hasCompleted&&t.hasCompleted&&E.hasCompleted&&!f?n.createElement("div",{className:"px-3"},n.createElement("h1",{className:"h2"},n.createElement(o.x,{namespace:w,phrase:"heading"})),n.createElement("div",{className:"pb-3"},n.createElement(l.Oo,{breadcrumbs:[{name:U("settingsBreadcrumb"),appLink:O},{name:U("staffManagerBreadcrumb"),active:!0}]})),n.createElement(A.t,{active:"invite-requests"}),n.createElement("p",{className:"mb-3"},n.createElement(o.x,{namespace:w,phrase:"domainSettingsDescription"}),n.createElement("br",null),n.createElement(i.F,{appLink:I,className:"info-link"},n.createElement(o.x,{namespace:w,phrase:"domainSettingsLink"}))),n.createElement(M,{joinRequests:a.data,imageCdnUrl:c.data.imageCdnUrl,onResolveRequest:function(e,t){r.Q.C$.trigger({application:g.O.USER_MANAGER,action:p.e.UserManager.RESOLVE_ACCESS_REQUEST,args:[e.id],params:{status:t}})},currentUser:t.data})):n.createElement(n.Fragment,null)}},87432:(e,t,a)=>{a.d(t,{Z:()=>n});const n={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}}}]);
|
|
2
|
+
//# sourceMappingURL=714-9ab1608522-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/714-9ab1608522-lite.chunk.js","mappings":"4NAuBaA,EAAiB,SAAH,WAAMC,WAAcC,EAAI,EAAJA,KAAMC,EAAO,EAAPA,QAASC,EAAM,EAANA,OAAUC,EAAY,EAAZA,aAAY,OAClF,sBAAIC,UAAS,yBAAoBF,EAAS,UAAY,KACnDA,EACG,8BAASF,GACT,gBAAC,IAAO,CAACC,QAASA,GACjBE,GAAgB,gBAAC,IAAY,CAACE,QAAS,iBAA0BC,KAAM,EAAAC,EAAA,QACxE,wBAAMH,UAAWD,EAAe,OAAS,IAAKH,IAG/C,EAOMQ,EAAc,SAAH,GAAyC,IAAnCC,EAAW,EAAXA,YACtBC,GAAW,OAAc,QAEzBC,EAASF,aAAW,EAAXA,EAAaE,OAE5B,OAAKA,GAAWD,GAAYC,EAAS,EAC5B,iCAELD,EAEA,oCAAgB,cACd,sBAAIN,UAAU,sBACZ,gBAACN,EAAc,CAACC,WAAYU,EAAYE,EAAS,GAAIR,cAAY,MAMvE,oCAAgB,cACd,sBAAIC,UAAU,sBACXK,EAAYG,KAAI,SAACC,EAAGC,GAAG,OAAK,gBAAChB,EAAc,CAACiB,IAAKD,EAAKf,WAAYc,GAAK,KAIhF,EAEaG,EAAqB,QAAW,YAAiD,QAAtCC,SAAAA,OAAQ,IAAG,IAAC,EAGlE,OAFiB,OAAc,QAI3B,uBAAKb,UAAU,6BAA6Bc,MAAO,CAAEC,OAAQ,YAAaC,MAAO,UAKnF,oCAAgB,cACd,sBAAIhB,UAAU,sBACX,2BAA4C,CAAEa,SAAAA,IAAYL,KAAI,WAAYE,GAAG,IAAZM,EAAK,EAALA,MAAK,OACrE,sBAAIL,IAAKD,EAAKV,UAAU,mBACtB,wBAAMA,UAAU,4CAA4Cc,MAAO,CAAEE,MAAAA,GAASC,wBAAyB,CAAEC,OAAQ,WAC9G,KAKf,G,oHCjEA,SAASC,EAAYC,GACnB,OACE,kCACKA,EAAMC,IAAIpB,SACX,uBAAKD,UAAWoB,EAAMC,IAAIzB,KAAO,OAAS,IACxC,gBAAC,IAAY,CAACK,QAASmB,EAAMC,IAAIpB,WAIpCmB,EAAMC,IAAIzB,KAEmB,iBAArBwB,EAAMC,IAAIC,OACjB,uBAAKtB,UAAU,QACb,gBAAC,IAAK,CAACuB,KAAM,UAAiBC,KAAMJ,EAAMC,IAAIC,SAKxD,CA8BM,SAAUG,EAAgBL,G,MAW9B,OACE,uBAAKpB,UAA0B,QAAf,EAAAoB,EAAMpB,iBAAS,QAAI,GAAI0B,IAAKN,EAAMO,cAChD,sBAAI3B,UAAS,qDACwB,oBAAsB,qBACvDoB,EAAMQ,aAAe,gBAAqB,GAAE,qBAC5CR,EAAMS,cAAa,aAEpBT,EAAMU,KAAKtB,KAAI,SAACa,EAAKU,GACpB,OACE,sBACE/B,UAAS,gCACD,QAAU,YAAIqB,EAAIvB,OAAS,eAAiB,uBAAsB,6BACtEuB,EAAIzB,KAAO,aAAkB,GAAE,YAAIyB,EAAIrB,UAAS,oBAEpDW,IAAKoB,GAEJV,EAAIxB,QACH,gBAAC,IAAO,CACNA,QAASwB,EAAIxB,QACbmC,cAAeX,EAAIW,cACnBC,iBAAkBZ,EAAIY,iBACtBjC,UAAS,sKAE4C,YAAc,yBAGnE,gBAACmB,EAAW,CAACE,IAAKA,KAGpB,gBAAC,IAAS,CACRrB,UAAS,qKAE2C,YAAc,wBAElEkC,QAAS,kBA5CzB,SAAqBb,IACfA,EAAIvB,QAAWuB,EAAIc,WAGvBd,EAAIc,WAEAd,EAAIW,eAAiBX,EAAIY,kBAC3B,kBAA8BZ,EAAIW,cAAeX,EAAIY,kBACzD,CAoC+BG,CAAYf,EAAI,GAE/B,gBAACF,EAAW,CAACE,IAAKA,KAK5B,KAIR,CA5DAI,EAAgBY,aAAe,CAC7BT,aAAc,K,kBCjEhB,IAAYU,E,iBAAZ,SAAYA,GACV,6BACA,uBACA,yBACA,+BACA,6BACA,+CACA,sBACD,CARD,CAAYA,IAAAA,EAAc,I,mFCWbC,EAAoB,CAC/BC,aAAY,WACV,MAAO,CACLC,IAAK,kCACL9B,IAAK,YAET,EAEA+B,YAAW,SAACC,GACV,IAAMC,EAAqB,CAAC,EAW5B,GAVID,EAAYE,SACdD,EAAOC,OAASF,EAAYE,QAE1BF,EAAYG,OACW,WAArBH,EAAYG,KACdF,EAAOG,MAAQ,MAEfH,EAAOG,MAAQ,QAGfJ,EAAYK,UAAW,CACzB,IAAMC,EAAW,GACbN,EAAYK,UAAUE,SAAS,cACjCD,EAASE,KAAI,MAAbF,EAAiB,CAAE,cAA0B,yBAE3CN,EAAYK,UAAUE,SAAS,WACjCD,EAASE,KAAK,YAEZR,EAAYK,UAAUE,SAAS,eACjCD,EAASE,KAAI,MAAbF,EAAiB,CACf,cACA,WACA,YACA,iBAEJL,EAAOQ,OAASH,CACjB,CAID,OAFAL,EAAOrB,KAAO,cAEP,CACLkB,IAAK,eAAqB,0BAA2BG,GACrDjC,IAAK,kBAAF,OAAoBgC,EAAYE,OAAM,YAAIF,EAAYG,KAAI,YAAIH,EAAYK,WAEjF,EAEAK,UAAS,SACP7B,EACA8B,EACAC,GAEA,MAAO,CACLd,IAAK,0BACL9B,IAAK,iBACLY,KAAM,SACNiC,iBAAkB,CAAC,kBACnBhC,KAAAA,EACA8B,QAAAA,EACAC,MAAAA,EAEJ,EAEAE,cAAa,SAACC,GACZ,MAAO,CACLjB,IAAK,2BAAF,OAA6BiB,EAAE,YAClC/C,IAAK,eAAF,OAAiB+C,GAExB,EAEAC,wBAAuB,SAACC,GACtB,MAAO,CACLnB,IAAK,0BAAF,OAA4BmB,EAAa,aAC5CjD,IAAK,iBAAF,OAAmBiD,GAE1B,EAEAC,sBAAqB,SACnBrC,EACAoC,EACAN,EACAC,EACAO,GAEA,MAAO,CACLvC,KAAM,QACNkB,IAAK,0BAAF,OAA4BmB,EAAa,aAC5CjD,IAAK,wBAAF,OAA0Ba,EAAKuC,WAAU,YAAIH,GAChDJ,iBAAkB,CAAC,iBAAD,OAAkBI,IACpCpC,KAAAA,EACA8B,QAAAA,EACAC,MAAAA,EACAO,OAAAA,EAEJ,E,wICxGF,IAAME,EAAyD,CAC7DnD,SAAU,EACVoD,SAAU,GACVC,SAAU,KAaCC,EAAuB,CAClCC,uBAAsB,WAAoC,I,EAAnCC,EAAA,uDAAiC,CAAC,EACjDC,EAAO,OAAH,wBACLN,GACAK,GAKL,O,EAAWE,MAAMD,EAAKzD,U,omBAAWL,KAAI,iBAAO,CAAEQ,MAAO,GAAF,OAFhBwD,KAAKC,IAAID,KAAKE,MAAMF,KAAKG,SAAWL,EAAKJ,UAAWI,EAAKL,UAEd,MAAM,GACtF,E,yGCfI,SAAUW,IACd,OAA8C,OAAY,eAAlDC,EAAiB,EAAjBA,kBAAmBC,EAAc,EAAdA,eAE3B,aAAgB,WACVD,GAGCC,GACH,eAA2B,CACzBC,YAAa,aACbC,OAAQ,mBACP,CAAEC,SAAS,GAElB,GAAG,CAAEH,EAAgBD,GACvB,C,oHCXMK,EAAY,4BACZC,EAAY,qBAAiCD,GAE7CE,EAA6C,CACjDC,aAAc,CACZN,YAAa,iBACbC,OAAQ,uBAEVM,eAAgB,CACdP,YAAa,iBACbC,OAAQ,kCAQN,SAAUO,EAAiBnE,GAC/B,IAAQtB,EAAWsB,EAAXtB,OAER,OACE,uBAAKE,UAAU,QACb,gBAAC,IAAe,CACd8B,KAAM,CAAC,CACLlC,KAAMuF,EAAU,gBAChBtF,QAASuF,EAAqBC,aAC9BvF,OAAmB,kBAAXA,EACRkC,cAAe,CACbpC,KAAMuF,EAAU,gBAChB1C,IAAK,eAA2B2C,EAAqBC,eAEvDpD,iBAAkB,CAChBuD,WAAY,WACZC,OAAQ,SACRC,SAAU,iBAEX,CACD9F,KAAMuF,EAAU,kBAChBtF,QAASuF,EAAqBE,eAC9BxF,OAAmB,oBAAXA,EACRkC,cAAe,CACbpC,KAAM,cAA0BsF,EAAW,kBAC3CzC,IAAK,eAA2B2C,EAAqBE,iBAEvDrD,iBAAkB,CAChBuD,WAAY,WACZC,OAAQ,SACRC,SAAU,oBAMtB,C,kBCpEA,IAAYC,E,iBAAZ,SAAYA,GACV,sBACA,kBACA,mBACD,CAJD,CAAYA,IAAAA,EAAiB,I,8QCWvBT,EAAY,4CACZC,EAAYS,EAAA,mBAAiCV,GAE7C,SAAUW,IACd,OACE,gBAACC,EAAA,EAAU,KACT,gBAACA,EAAA,QAAgB,CAACC,IAAKC,EAAA,kCAEvB,gBAACF,EAAA,UAAkB,KAAC,gBAACG,EAAA,EAAI,CAACf,UAAWA,EAAWgB,OAAO,aAEvD,gBAACJ,EAAA,OAAe,KAAC,gBAACG,EAAA,EAAI,CAACf,UAAWA,EAAWgB,OAAO,UACpD,gBAACJ,EAAA,MAAc,CACbK,KAAMhB,EAAU,OAChBtF,QAAS,CACPkF,YAAa,aACbC,OAAQ,gCAEVhF,UAAU,iBAIlB,C,eC/BA,SAAgB,gBAAkB,QAAQ,UAAY,SCetD,IAAM,EAAY,kCASZ,SAAUoG,EAAoBhF,GAClC,IAAQiF,EAA6DjF,EAA7DiF,aAAcC,EAA+ClF,EAA/CkF,YAAaC,EAAkCnF,EAAlCmF,YAAaC,EAAqBpF,EAArBoF,iBAQhD,OAAKH,EAAa9F,OAKhB,yBAAOP,UAAU,8CACf,6BACE,0BACE,sBAAIyG,MAAM,MAAMzG,UAAU,QAAO,gBAACiG,EAAA,EAAI,CAACf,UAAW,EAAWgB,OAAO,sBACpE,sBAAIO,MAAM,OAAM,gBAACR,EAAA,EAAI,CAACf,UAAW,EAAWgB,OAAO,sBACnD,6BAGJ,6BACGG,EAAa7F,KAAI,SAAAkG,GAAW,OAC3B,sBAAI/F,IAAK+F,EAAYhD,IACnB,sBAAI1D,UAAU,qBACZ,uBAAKA,UAAU,6BACb,uBAAKA,UAAS,UAAK,kBAAsB,UACvC,gBAAC2G,EAAA,EAAM,CACLL,YAAaA,EACbM,SACEC,EAAA,0BAAmCH,EAAYI,WAAaJ,EAAYK,MAAMC,OAAO,MAI3F,uBAAKhH,UAAU,6CACZ0G,EAAYI,UAAY,wBAAM9G,UAAU,eAAe0G,EAAYI,UACpE,wBAAM9G,UAAS,UAAK,cAAqB0G,EAAYK,UAI3D,sBAAI/G,UAAU,gBAAgBiH,EAAA,SAAkBP,EAAYQ,YArChEX,EAAYY,iBAAmBC,EAAA,KAC1B,aACF,eAoCC,sBAAIpH,UAAU,iBACZ,0BACEA,UAAU,wBACVkC,QAAS,kBAAMsE,EAAiBE,EAAaf,EAAA,SAAyB,GAEtE,gBAACM,EAAA,EAAI,CAACf,UAAW,EAAWgB,OAAO,uBAErC,0BACElG,UAAU,2BACVkC,QAAS,kBAAMsE,EAAiBE,EAAaf,EAAA,WAA2B,GAExE,gBAACM,EAAA,EAAI,CAACf,UAAW,EAAWgB,OAAO,yBAGpC,MA9CJ,gBAACL,EAA6B,KAmDzC,C,0BC9DM,EAAY,6BACZ,EAAYD,EAAA,mBAAiC,GAE7CyB,EAAsC,CAC1CtC,YAAa,aACbC,OAAQ,gCAGJsC,EAAgC,CACpCvC,YAAa,aACbC,OAAQ,mBAGJ,SAAUuC,I,OACd,EAAA3C,EAAA,KAEA,IAAM2B,EAAc,kBAAkCiB,EAAA,iBAChDnB,EAAe,kBAAoCoB,EAAA,kBACnDC,EAAS,kBAA6BC,EAAA,YACtCC,EAAY,kBAAwCrF,EAAA,kBAEpDsF,GAA6B,QAAd,EAAAD,EAAUpG,YAAI,eAAE4B,SAAoC,SAA1BwE,EAAUpG,KAAK4B,OA2B9D,OAzBA,aAAgB,WAEd,GAAIwE,EAAUE,cAAgBD,EAAc,CAC1C,IAAMhI,EAAU,CACdkF,YAAa,iBACbC,OAAQ,uBAEV,eAA2BnF,EAAS,CAAEoF,SAAS,GAChD,CACH,GAAG,CAAE2C,EAAUE,aAAcD,IAWTxB,EAAayB,cAC3BJ,EAAOI,cACPvB,EAAYuB,cACZF,EAAUE,eAEED,EAKhB,uBAAK7H,UAAU,QACb,sBAAIA,UAAU,MACZ,gBAACiG,EAAA,EAAI,CAACf,UAAW,EAAWgB,OAAO,aAGrC,uBAAKlG,UAAU,QACb,gBAACI,EAAA,GAAW,CACVC,YAAa,CACX,CAAET,KAAM,EAAU,sBAAuBC,QAASyH,GAClD,CAAE1H,KAAM,EAAU,0BAA2BE,QAAQ,OAK3D,gBAACyF,EAAA,EAAgB,CAACzF,OAAO,oBAEzB,qBAAGE,UAAU,QACX,gBAACiG,EAAA,EAAI,CAACf,UAAW,EAAWgB,OAAO,8BACnC,2BACA,gBAAC6B,EAAA,EAAO,CAAClI,QAASwH,EAAuBrH,UAAU,aACjD,gBAACiG,EAAA,EAAI,CAACf,UAAW,EAAWgB,OAAQ,yBAIxC,gBAACE,EAAmB,CAClBC,aAAcA,EAAa7E,KAC3B8E,YAAaoB,EAAOlG,KAAK8E,YACzBE,iBA9CN,SAA0BE,EAA0BtD,GAClD,eAA2B,CACzB2B,YAAa,iBACbC,OAAQ,uCACRgD,KAAM,CAACtB,EAAYhD,IACnBd,OAAQ,CAAEQ,OAAAA,IAEd,EAwCMmD,YAAaA,EAAY/E,QAhCtB,gCAoCX,C,mCC5GA,SAAgB,gBAAkB,QAAQ,IAAM,QAAQ,SAAW,QAAQ,YAAc,QAAQ,QAAU,Q","sources":["file:///app/packages/libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx","file:///app/packages/libs/shared/src/enums/BatchJobStatus.ts","file:///app/packages/libs/shared/src/flight-requests/RosteringRequests.ts","file:///app/packages/libs/shared/src/utils/PartialLoadingHelper.ts","file:///app/packages/projects/lite/src/apps/settings/hooks/useDomainSettingsSwitch.ts","file:///app/packages/projects/lite/src/apps/user-manager/components/staff-manager-tabs/StaffManagerTabs.tsx","file:///app/packages/projects/lite/src/apps/user-manager/enums/JoinRequestStatus.ts","file:///app/packages/projects/lite/src/apps/user-manager/components/invite-requests-table/empty-state/InviteRequestsTableEmptyState.tsx","file:///app/packages/projects/lite/src/apps/user-manager/components/invite-requests-table/invite-requests-table.scss","file:///app/packages/projects/lite/src/apps/user-manager/components/invite-requests-table/InviteRequestsTable.tsx","file:///app/packages/projects/lite/src/apps/user-manager/views/invite-requests/AccessRequestsView.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/pill-tab-selector.scss"],"sourcesContent":["import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nexport interface Breadcrumb {\n name: string;\n appLink?: Core.AppLink;\n active?: boolean;\n}\n\ninterface BreadcrumbItemProps {\n breadcrumb: Breadcrumb;\n withBackIcon?: boolean;\n}\n\nexport const BreadcrumbItem = ({ breadcrumb: { name, appLink, active }, withBackIcon }: BreadcrumbItemProps) => (\n <li className={`breadcrumb-item${active ? ' active' : ''}`}>\n {active\n ? <strong>{name}</strong>\n : <AppLink appLink={appLink}>\n {withBackIcon && <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{name}</span>\n </AppLink>\n }\n </li>\n);\n\ninterface BreadcrumbsProps {\n breadcrumbs: Breadcrumb[];\n}\n\nexport const Breadcrumbs = ({ breadcrumbs }: BreadcrumbsProps) => {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n const length = breadcrumbs?.length;\n\n if (!length || (isMobile && length < 2))\n return <></>;\n\n if (isMobile)\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} withBackIcon />\n </ol>\n </nav>\n );\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {breadcrumbs.map((b, idx) => <BreadcrumbItem key={idx} breadcrumb={b} />)}\n </ol>\n </nav>\n );\n};\n\nexport const PartialBreadcrumbs = React.memo(function({ numItems = 3 }: { numItems?: number; }) {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n if (isMobile) {\n return (\n <div className='partial-loading-background' style={{ height: '1.3125rem', width: '6rem' }} />\n );\n }\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {PartialLoadingHelper.getPartialLoadingItems({ numItems }).map(({ width }, idx) => (\n <li key={idx} className='breadcrumb-item'>\n <span className='d-inline-block partial-loading-background' style={{ width }} dangerouslySetInnerHTML={{ __html: ' ' }} />\n </li>\n ))}\n </ol>\n </nav>\n );\n});","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svgName && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svgName={props.tab.svgName} />\n </div>\n )}\n\n {props.tab.name}\n\n {typeof (props.tab.count) === 'number' && (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} />\n </div>\n )}\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svgName?: string;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n containerRef?: (el: HTMLElement) => void;\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg'\n}\n\nPillTabSelector.defaultProps = {\n borderRadius: 'lg'\n};\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n\n return (\n <nav className={props.className ?? ''} ref={props.containerRef}>\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${props.borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset p-2 text-nowrap ${styles.tabLink}\n `}\n onClick={() => onSelectTab(tab)}\n >\n <TabContents tab={tab} />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n}\n","export enum BatchJobStatus {\n Submitted = 0,\n Queued = 1,\n Pending = 2,\n InProgress = 3,\n Completed = 4,\n CompletedWithError = 5,\n Failed = 6\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { BulkJobsQueryParams } from 'libs/shared/components/bulk-jobs-filters/BulkJobsFilters';\nimport { BatchJobStatus } from 'libs/shared/enums/BatchJobStatus';\nimport { BatchJobType } from 'libs/shared/enums/BatchJobType';\nimport { BatchJob, ScheduleSettingRequest } from 'libs/shared/interfaces';\nimport { CreateBatchJobRequest } from 'libs/shared/interfaces';\n\nexport const RosteringRequests = {\n getRostering(): Flight.Request {\n return {\n url: `{gateway}/v1/users/me/rostering`,\n key: `rostering`\n };\n },\n\n getSyncList(queryParams: BulkJobsQueryParams): Flight.Request {\n const params: HashObject = {};\n if (queryParams.cursor)\n params.cursor = queryParams.cursor;\n\n if (queryParams.sort) {\n if (queryParams.sort === 'oldest')\n params.order = 'ASC';\n else\n params.order = 'DESC';\n }\n\n if (queryParams.jobStatus) {\n const statuses = [];\n if (queryParams.jobStatus.includes('completed')) {\n statuses.push(...[ BatchJobStatus.Completed, BatchJobStatus.CompletedWithError ]);\n }\n if (queryParams.jobStatus.includes('failed')) {\n statuses.push(BatchJobStatus.Failed);\n }\n if (queryParams.jobStatus.includes('inProgress')) {\n statuses.push(...[\n BatchJobStatus.Submitted,\n BatchJobStatus.Queued,\n BatchJobStatus.Pending,\n BatchJobStatus.InProgress ]);\n }\n params.status = statuses;\n }\n\n params.type = BatchJobType.Rostering;\n\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/batch/jobs', params),\n key: `rostering:sync:${queryParams.cursor}:${queryParams.sort}:${queryParams.jobStatus}`\n };\n },\n\n createJob(\n data: CreateBatchJobRequest,\n success?: (job: BatchJob) => void,\n error?: () => void\n ): Flight.Request {\n return {\n url: '{gateway}/v1/batch/jobs',\n key: 'rostering:sync',\n type: HttpVerbs.POST,\n invalidationKeys: ['rostering:sync'],\n data,\n success,\n error\n };\n },\n\n getJobSummary(id: string): Flight.Request {\n return {\n url: `{gateway}/v1/batch/jobs/${id}/summary`,\n key: `job:summary:${id}`\n };\n },\n\n getSyncScheduleSettings(integrationId: string): Flight.SimulatedRequest {\n return {\n url: `{gateway}/v1/rostering/${integrationId}/schedule`,\n key: `sync-settings:${integrationId}`\n };\n },\n\n updateScheduleSetting(\n data: ScheduleSettingRequest,\n integrationId: string,\n success?: () => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n type: HttpVerbs.PUT,\n url: `{gateway}/v1/rostering/${integrationId}/schedule`,\n key: `update:sync-settings:${data.customerId}:${integrationId}`,\n invalidationKeys: [`sync-settings:${integrationId}`],\n data,\n success,\n error,\n always\n };\n }\n};","const DEFAULT_PARTIAL_LOADING_OPTIONS: PartialLoadingOptions = {\n numItems: 5,\n minWidth: 50, // px\n maxWidth: 100 // px\n};\n\nexport interface PartialLoadingOptions {\n numItems?: number;\n minWidth?: number;\n maxWidth?: number;\n}\n\ninterface PartialLoadingItem {\n width: string;\n}\n\nexport const PartialLoadingHelper = {\n getPartialLoadingItems(options: PartialLoadingOptions = {}): PartialLoadingItem[] {\n const opts = {\n ...DEFAULT_PARTIAL_LOADING_OPTIONS,\n ...options\n };\n\n const getRandomFilterWidth = () => Math.max(Math.floor(Math.random() * opts.maxWidth), opts.minWidth);\n\n return [...Array(opts.numItems)].map(() => ({ width: `${getRandomFilterWidth()}px` }));\n }\n};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { useSettings } from 'libs/shared/hooks/useSettings';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nexport function useDomainSettingsSwitch() {\n const { isLoadingSettings, domainSettings } = useSettings(LocationContext.Settings);\n\n React.useEffect(() => {\n if (isLoadingSettings)\n return;\n\n if (!domainSettings) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n }, { replace: true });\n }\n }, [ domainSettings, isLoadingSettings ]);\n}\n","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { StaffManagerAppLinks } from 'apps/user-manager/interfaces/StaffManagerAppLinks';\n\nconst namespace = 'settings.staffManagerTabs';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst staffManagerAppLinks: StaffManagerAppLinks = {\n staffManager: {\n application: AppChannels.USER_MANAGER,\n action: Actions.UserManager.STAFF\n },\n inviteRequests: {\n application: AppChannels.USER_MANAGER,\n action: Actions.UserManager.ACCESS_REQUESTS\n }\n};\n\ninterface StaffManagerTabsProps {\n active: 'staff-manager' | 'invite-requests'\n}\n\nexport function StaffManagerTabs(props: StaffManagerTabsProps): JSX.Element {\n const { active } = props;\n \n return (\n <div className='mb-3'>\n <PillTabSelector\n tabs={[{\n name: getPhrase('staffManager'),\n appLink: staffManagerAppLinks.staffManager,\n active: active === 'staff-manager',\n analyticsData: {\n name: getPhrase('staffManager'),\n url: Core.AppLinkHelper.getHref(staffManagerAppLinks.staffManager)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }, {\n name: getPhrase('inviteRequests'),\n appLink: staffManagerAppLinks.inviteRequests,\n active: active === 'invite-requests',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'inviteRequests'),\n url: Core.AppLinkHelper.getHref(staffManagerAppLinks.inviteRequests)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }]}\n />\n </div>\n );\n}","export enum JoinRequestStatus {\n Approved = 'Approved',\n Denied = 'Denied',\n Pending = 'Pending'\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\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'userManager.inviteRequestsTableEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function InviteRequestsTableEmptyState(): JSX.Element {\n return (\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.UserManager.STAFF} />\n\n <EmptyState.Heading><Text namespace={namespace} phrase='heading' /></EmptyState.Heading>\n\n <EmptyState.Info><Text namespace={namespace} phrase='info' /></EmptyState.Info>\n <EmptyState.Cta\n text={getPhrase('cta')}\n appLink={{\n application: AppChannels.SETTINGS,\n action: Actions.Settings.REQUESTING_ACCESS\n }}\n className='btn btn-dark'\n />\n </EmptyState>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"avatarContainer\":\"HxoMt\",\"emailText\":\"ughCx\"};","import React from 'react';\n\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { InstanceRegion } from 'libs/shared/enums/InstanceRegion';\nimport { CurrentUser } from 'libs/shared/interfaces';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport { InviteRequestsTableEmptyState } from 'apps/user-manager/components/invite-requests-table/empty-state/InviteRequestsTableEmptyState';\nimport { JoinRequestStatus } from 'apps/user-manager/enums/JoinRequestStatus';\nimport { JoinRequest } from 'apps/user-manager/interfaces/JoinRequest';\n\nimport styles from './invite-requests-table.scss';\n\nconst namespace = 'userManager.inviteRequestsTable';\n\ninterface InviteRequestsTableProps {\n joinRequests: JoinRequest[],\n imageCdnUrl: string,\n currentUser: CurrentUser;\n onResolveRequest: (request: JoinRequest, status: JoinRequestStatus) => void\n}\n\nexport function InviteRequestsTable(props: InviteRequestsTableProps) {\n const { joinRequests, imageCdnUrl, currentUser, onResolveRequest } = props;\n\n function getDateFormat(): string {\n if (currentUser.instanceRegion === InstanceRegion.US)\n return 'MM/DD/YYYY';\n return 'DD/MM/YYYY';\n }\n\n if (!joinRequests.length) {\n return <InviteRequestsTableEmptyState />;\n }\n\n return (\n <table className='w-100 table table-striped table-borderless'>\n <thead>\n <tr>\n <th scope='col' className='ps-3'><Text namespace={namespace} phrase='nameTableHeading' /></th>\n <th scope='col'><Text namespace={namespace} phrase='dateTableHeading' /></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n {joinRequests.map(joinRequest => (\n <tr key={joinRequest.id}>\n <td className='align-middle ps-3'>\n <div className='d-flex align-items-center'>\n <div className={`${styles.avatarContainer} me-2`}>\n <Avatar\n imageCdnUrl={imageCdnUrl}\n initials={\n UserHelper.getInitialsFromFullName(joinRequest.fullName) || joinRequest.email.charAt(0)\n }\n />\n </div>\n <div className='d-flex flex-column justify-content-center'>\n {joinRequest.fullName && <span className='fw-semibold'>{joinRequest.fullName}</span>}\n <span className={`${styles.emailText}`}>{joinRequest.email}</span>\n </div>\n </div>\n </td>\n <td className='align-middle'>{DateHelper.format(joinRequest.dateCreated, getDateFormat())}</td>\n <td className='text-end pe-3'>\n <button\n className='btn btn-tertiary me-1'\n onClick={() => onResolveRequest(joinRequest, JoinRequestStatus.Denied)}\n >\n <Text namespace={namespace} phrase='rejectButtonLabel' />\n </button>\n <button\n className='btn btn-primary btn-dark'\n onClick={() => onResolveRequest(joinRequest, JoinRequestStatus.Approved)}\n >\n <Text namespace={namespace} phrase='approveButtonLabel' />\n </button>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { RosteringRequests } from 'libs/shared/flight-requests/RosteringRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { Config, CurrentUser, RosteringResponse } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { useDomainSettingsSwitch } from 'apps/settings/hooks/useDomainSettingsSwitch';\nimport { InviteRequestsTable } from 'apps/user-manager/components/invite-requests-table/InviteRequestsTable';\nimport { StaffManagerTabs } from 'apps/user-manager/components/staff-manager-tabs/StaffManagerTabs';\nimport { JoinRequestStatus } from 'apps/user-manager/enums/JoinRequestStatus';\nimport { UserManagerRequests } from 'apps/user-manager/flight-requests/UserManagerRequests';\nimport { JoinRequest } from 'apps/user-manager/interfaces/JoinRequest';\n\nconst namespace = 'userManager.accessRequests';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst domainSettingsAppLink: Core.AppLink = {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.REQUESTING_ACCESS\n};\n\nconst settingsAppLink: Core.AppLink = {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n};\n\nexport function AccessRequestsView() {\n useDomainSettingsSwitch();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const joinRequests = Flight.useBasicFetch<JoinRequest[]>(UserManagerRequests.joinRequests());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const rostering = Flight.useBasicFetch<RosteringResponse>(RosteringRequests.getRostering());\n\n const hasRostering = rostering.data?.status && rostering.data.status !== 'None';\n\n React.useEffect(() => {\n // if school has rostering, redirect to staff manager\n if (rostering.hasCompleted && hasRostering) {\n const appLink = {\n application: AppChannels.USER_MANAGER,\n action: Actions.UserManager.STAFF\n };\n Core.AppLinkHelper.trigger(appLink, { replace: true });\n }\n }, [ rostering.hasCompleted, hasRostering ]);\n\n function onResolveRequest(joinRequest: JoinRequest, status: JoinRequestStatus) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.USER_MANAGER,\n action: Actions.UserManager.RESOLVE_ACCESS_REQUEST,\n args: [joinRequest.id],\n params: { status }\n });\n }\n\n const dataLoaded = !joinRequests.hasCompleted\n || !config.hasCompleted\n || !currentUser.hasCompleted\n || !rostering.hasCompleted;\n\n if (dataLoaded || hasRostering) {\n return <></>;\n }\n\n return (\n <div className='px-3'>\n <h1 className='h2'>\n <Text namespace={namespace} phrase='heading' />\n </h1>\n\n <div className='pb-3'>\n <Breadcrumbs\n breadcrumbs={[\n { name: getPhrase('settingsBreadcrumb'), appLink: settingsAppLink },\n { name: getPhrase('staffManagerBreadcrumb'), active: true }\n ]}\n />\n </div>\n\n <StaffManagerTabs active='invite-requests' />\n\n <p className='mb-3'>\n <Text namespace={namespace} phrase='domainSettingsDescription' />\n <br/>\n <AppLink appLink={domainSettingsAppLink} className='info-link'>\n <Text namespace={namespace} phrase={'domainSettingsLink'}/>\n </AppLink>\n </p>\n\n <InviteRequestsTable\n joinRequests={joinRequests.data}\n imageCdnUrl={config.data.imageCdnUrl}\n onResolveRequest={onResolveRequest}\n currentUser={currentUser.data}\n />\n </div>\n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"pillTabSelector\":\"Hdi6o\",\"tab\":\"RvNxr\",\"minWidth\":\"GHSz9\",\"radiusSmall\":\"VhJJa\",\"tabLink\":\"WFyvo\"};"],"names":["BreadcrumbItem","breadcrumb","name","appLink","active","withBackIcon","className","svgName","size","S","Breadcrumbs","breadcrumbs","isMobile","length","map","b","idx","key","PartialBreadcrumbs","numItems","style","height","width","dangerouslySetInnerHTML","__html","TabContents","props","tab","count","type","data","PillTabSelector","ref","containerRef","borderRadius","listClassName","tabs","index","analyticsData","analyticsOptions","onClick","onSelect","onSelectTab","defaultProps","BatchJobStatus","RosteringRequests","getRostering","url","getSyncList","queryParams","params","cursor","sort","order","jobStatus","statuses","includes","push","status","createJob","success","error","invalidationKeys","getJobSummary","id","getSyncScheduleSettings","integrationId","updateScheduleSetting","always","customerId","DEFAULT_PARTIAL_LOADING_OPTIONS","minWidth","maxWidth","PartialLoadingHelper","getPartialLoadingItems","options","opts","Array","Math","max","floor","random","useDomainSettingsSwitch","isLoadingSettings","domainSettings","application","action","replace","namespace","getPhrase","staffManagerAppLinks","staffManager","inviteRequests","StaffManagerTabs","actionType","entity","location","JoinRequestStatus","LanguageService","InviteRequestsTableEmptyState","EmptyState","src","ImageUrls","Text","phrase","text","InviteRequestsTable","joinRequests","imageCdnUrl","currentUser","onResolveRequest","scope","joinRequest","Avatar","initials","UserHelper","fullName","email","charAt","DateHelper","dateCreated","instanceRegion","InstanceRegion","domainSettingsAppLink","settingsAppLink","AccessRequestsView","UserRequests","UserManagerRequests","config","ConfigRequests","rostering","hasRostering","hasCompleted","AppLink","args"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[7533],{63649:(e,a,t)=>{t.d(a,{X:()=>c});var r=t(32735);const i={video:"ekpg6",notice:"lQs4F",heading:"Gt6uV",interaction:"LEfYX",button:"caHP7",edit:"de4DP",questions:"XelbS"};function c(){return r.createElement("div",{className:"px-3 w-100"},r.createElement("div",{className:"partial-loading-background ".concat(i.notice)}),r.createElement("div",{className:"partial-loading-background mb-3 ".concat(i.video)},r.createElement("div",{className:"partial-loading-background ".concat(i.questions)})),r.createElement("div",{className:"partial-loading-background mb-3 ".concat(i.heading)}),r.createElement("div",null,Array(5).fill(null).map((function(e,a){return r.createElement("div",{key:a,className:"partial-loading-background my-2 ".concat(i.interaction)})}))))}},38280:(e,a,t)=>{t.r(a),t.d(a,{SharedInteractiveView:()=>N});var r=t(32735),i=t(20354),c=t(30439),n=t(4594),d=t(60051),s=t(16714),o=t(39151),l=t(1666),u=t(20768),m=t(47812),v=t(31949),h=t(26304),b=t(91286),g=t(22902),p=t(79612),y=t(76753),k=t(51855),I=t(7179),P=t(36873),f=t(44110),E=t(53073),q=t(97816),w=t(63649),F=t(84062),C=t(25758),V=t(57426),B=t(16857),M={notFound:V.k,forbidden:{privacy:B.m}};function N(e){var a,t,V,N=(0,g.T)().hasPermissions,j=i.a.useBasicFetch(o.L.config()),x=(0,k.G)().isPlugin,G=i.a.useBasicFetch(v.N.currentUser()),S=i.a.useBasicFetch(u.b.sharedInteractiveMetadata(e.objectId,e.shareId)),A=i.a.useBasicFetch(c.o.getShareObject(e.shareId)),T=A.data&&(A.data.objectTypeId===n.E.Interactive?m.k.createViewKey(e.shareId,d.f.Share):m.k.createViewKey(e.objectId,d.f.MasterObject,e.shareId)),U=i.a.useBasicFetch(T),X=(0,f.i)(),_=i.a.useBasicFetch((null===(a=G.data)||void 0===a?void 0:a.isAuthenticated)&&l.h.yearGroups(G.data.customerId)),K=(0,E.f)(),L=i.a.useBasicFetch(K&&S.data&&u.b.interactive(S.data.interactiveId)),O=(0,P.k)({video:S.data,context:e.queryParams.context,contextId:e.queryParams.contextId,moviesAndTv:e.queryParams.mtv,currentUser:G.data});(0,b.v)(S,M),(0,h.b)(S,{private:B.m}),(0,I.P)({id:e.objectId,app:"interactives",shareId:e.shareId}),(0,q.V)(null!==(t=O.videos)&&void 0!==t?t:[]),(0,p.M)(y.CG.getInteractiveMetadata({content:S.data}));var D=S.data&&j.hasCompleted&&G.hasCompleted&&(!K||L.hasCompleted)&&A.hasCompleted&&U.hasCompleted;return K?D?r.createElement(C.x,{config:j.data,currentUser:G.data,queryParams:e.queryParams,interactive:S.data,isPreviewPreventScrubbingEnabled:L.data.preventScrubbing,yearGroups:_.data,audiences:X.data,relatedVideos:O,canManageVideoAccess:N(s.C.ManageVideoAccess),isPlugin:x}):r.createElement(w.X,null):D?r.createElement(F.M,{interactive:S.data,currentUser:G.data,config:j.data,audiences:X.data,yearGroups:_.data,queryParams:e.queryParams,viewKey:U.data,relatedVideos:O,shareLink:A.data,startTime:null===(V=e.queryParams)||void 0===V?void 0:V.t,isPlugin:x}):r.createElement(r.Fragment,null)}}}]);
|
|
2
|
+
//# sourceMappingURL=7533-e079b2af18-lite.chunk.js.map
|