@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
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[1437],{78259:(e,t,n)=>{n.d(t,{O:()=>l});var a=n(58176),r=n.n(a),o=n(39479),i={className:"info-link",defaultProtocol:"https"},l={linkifyText:function(e,t){if(e){var n=t?o.extend({},i,t):i;return r()(e,n)}}}},29711:(e,t,n)=>{n.d(t,{X:()=>N});var a=n(32735),r=n(110),o=n(23481),i=n(49439);const l={cellDate:"qcD_n",label:"sp6Gw",isHovering:"_6xWx",numberWrapper:"KZfe0"};function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var s=o.T.encloseNamespace("specialEventCalendar.calendarCellDate");function u(e){var t=r.O.isToday(e.date),n="".concat(l.cellDate," d-flex flex-nowrap");t&&(n+=" bg-dark text-white"),e.notCurrentMonth&&!e.isHovering&&(n+=" text-secondary"),e.hasEvent&&(n+=" text-white"),e.className&&(n+=" ".concat(e.className));var o,u,d=(o=(0,i.L)({delay:250}),u=2,function(e){if(Array.isArray(e))return e}(o)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=o.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw r}}return l}}(o,u)||function(e,t){if(e){if("string"==typeof e)return c(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)?c(e,t):void 0}}(o,u)||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.")}()),m=d[0],v=d[1];return a.createElement("div",{className:"".concat(n," ").concat(v?l.isHovering:""),ref:m},a.createElement("div",{className:"".concat(l.numberWrapper," ").concat("d-flex text-center justify-content-center align-items-center flex-shrink-0")},r.O.format(e.date,"D")),t&&a.createElement("div",{className:"".concat(l.label," justify-content-start align-items-center")},s("today")))}var d=n(49985),m=n(65858),v=n(84963),f=n(12324),p=n(36848),g=n(11607),y=n(36518),h=n(44435),E=n(83914),b=n(2284),O=n(35223);const D={hardcodedCover:"ByD0q",tag:"ZHW8B",date:"AKOWh",backgroundImage:"RDtch",eventCard:"YtMiS",wrapper:"ylxwf",left:"iTqxB",right:"bUUXX",noAnimation:"oZacR",cover:"kpH3Y",tagWrap:"KvlZ8",appear:"xlSdc",displayDate:"rkBJb",title:"c4_Kj",titleText:"nRMvg",circle:"wu4hg",active:"tbdFj",arrow:"omZKz",bottomBar:"hxKUP",bottomPlaceholder:"dzeZ7",multiEventFilter:"dSxjc"};function C(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function S(e){var t,n,o,i,l,c,s=e.sliderStep,S=e.setSliderStep,k=e.eventsOnDay.length>1,N=e.eventsOnDay.find((function(e,t){return t===s})),A=!!N.endDate,w=null===(t=e.getBackgroundColor)||void 0===t?void 0:t.call(e,N.content),M=null===(n=e.getHardCodedEvent)||void 0===n?void 0:n.call(e,N.content),L=null===(o=e.getIconUrl)||void 0===o?void 0:o.call(e,N.content),T=null===(i=e.getCoverUrl)||void 0===i?void 0:i.call(e,N.content),Y=N.content.status===b.W.ComingSoon,I=(l=a.useState(e.hasInitialized?D.appear:""),c=2,function(e){if(Array.isArray(e))return e}(l)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=o.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw r}}return l}}(l,c)||function(e,t){if(e){if("string"==typeof e)return C(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)?C(e,t):void 0}}(l,c)||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.")}()),x=I[0],U=I[1];a.useEffect((function(){if(!e.hasInitialized){var t=Math.floor(600*Math.random()+400);window.setTimeout((function(){U(D.appear),window.setTimeout((function(){e.setHasInitialized(!0)}),400)}),t)}}),[e.hasInitialized]),a.useEffect((function(){e.isHovering&&e.setHoveredEvent(N)}),[e.isHovering,N]),a.useEffect((function(){return function(){var t;e.isHovering&&(null===(t=e.hoveredEvent)||void 0===t?void 0:t.specialEventId)===N.specialEventId&&e.setHoveredEvent(null)}}),[e.isHovering,e.hoveredEvent,N]);var j=function(){var t={date:r.O.format(e.date,"YYYY-MM-DD"),presentationId:e.presentationId,eventCount:e.eventsOnDay.length};return k?(t.eventId=e.eventsOnDay.map((function(e){return e.specialEventId})).join(","),t.topicId=e.eventsOnDay.map((function(e){return e.content.id})).join(",")):(t.eventId=N.specialEventId,t.topicId=N.content.id,t.eventStatus=N.content.status),t}(),H={actionType:m.Vw.Click,entity:m.py.SpecialEvent,location:m.LZ.CalendarDay};function P(e){return r.O.format(e,"YYYY-MM-DD")}function _(){return"".concat(e.className," ").concat(x," ")+[M?"".concat(D.hardcodedCover," position-absolute"):D.backgroundImage,L?"my-auto":D.cover,Y?D.comingSoon:"",e.hasInitialized?D.noAnimation:"",e.isHovering?"rounded-3":"",e.isMultiEventDate?D.multiEventFilter:"","company"in N.content?"rounded-circle":""].join(" ")}return a.createElement("div",{onClick:function(){Y&&d.k.logUserAction(j,H)}},a.createElement(p.F,{appLink:function(){var t,n;return k?null===(t=e.getEventsListAppLink)||void 0===t?void 0:t.call(e):Y?null:null===(n=e.getTopicAppLink)||void 0===n?void 0:n.call(e,N.content.id,N.name)}(),className:"d-flex justify-content-end",analyticsOptions:H,analyticsData:j},a.createElement("div",{className:"".concat(D.tagWrap," p-1")},Y&&a.createElement(v.r,{className:"justify-content-center p-0 rounded-circle ".concat(D.tag," ").concat(x),onlyIcon:!0})),!e.hideDay&&a.createElement(u,{date:e.date,notCurrentMonth:e.notCurrentMonth,className:"".concat(D.date," ").concat(x),isHovering:e.isHovering,hasEvent:!0}),a.createElement("div",{className:"postion-relative ".concat(D.wrapper)},a.createElement("div",{style:{backgroundColor:w},className:"position-absolute d-flex flex-column justify-content-end align-items-center text-white px-1 pt-2 pb-1 ".concat(D.eventCard," ").concat(x," ").concat(e.isHovering?"rounded-3":""," ").concat(e.isMultiEventDate?D.multiEventFilter:""," ").concat(e.className)},L&&a.createElement(y.w,{src:L,alt:N.content.name,className:_()}),T&&!L&&a.createElement("div",{style:{backgroundImage:"url('".concat(T,"')")},className:_()}),A&&a.createElement("div",{className:"".concat(D.displayDate)},f.T.getDisplayDate(N.startDate,N.endDate)),a.createElement("div",{className:"text-center ".concat(D.title," ").concat(k?"mb-1":"mb-2")},a.createElement("div",{className:"".concat(D.titleText," ").concat(e.isHovering?"mb-0":"clamp-2"," h6"),title:N.name},N.name)),k&&0!==s&&a.createElement("div",{className:"position-absolute bg-white rounded-circle ".concat(D.left)},a.createElement(g.L,{onClick:function(t){t.stopPropagation(),t.preventDefault(),S((function(e){return e-1})),d.k.logUserAction({date:P(e.date),action:"previous",eventCount:e.eventsOnDay.length},H)}},a.createElement(E.x,{svgName:O.vn.ChevronLeft,className:"d-inline-block svg-container text-dark ".concat(D.arrow)}))),k&&s!==e.eventsOnDay.length-1&&a.createElement("div",{className:"position-absolute bg-white rounded-circle ".concat(D.right)},a.createElement(g.L,{onClick:function(t){t.stopPropagation(),t.preventDefault(),S((function(e){return e+1})),d.k.logUserAction({date:P(e.date),action:"next",eventCount:e.eventsOnDay.length},H)}},a.createElement(E.x,{svgName:O.vn.ChevronRight,className:"d-inline-block svg-container text-dark ".concat(D.arrow)}))),k&&a.createElement("div",{className:"d-flex ".concat(D.bottomBar," ").concat(k?"":D.bottomPlaceholder)},a.createElement(h.e,{sliderStep:s,sliderLength:e.eventsOnDay.length,size:"sm",className:"".concat(e.isHovering?"mb-2":"mb-1"),onSliderDotClick:function(t){S(t),d.k.logUserAction({date:P(e.date),action:"jump",eventCount:e.eventsOnDay.length},H)}}))))))}const k={cell:"nsEjO",multiEventCell:"vvFYj",fadeIn:"BX0cX"};function N(e){var t,n,o=a.useMemo((function(){var t,n,a,o;return(null===(t=e.hoveredEvent)||void 0===t?void 0:t.endDate)&&!r.O.isSame(e.date,null===(n=e.hoveredEvent)||void 0===n?void 0:n.startDate)&&r.O.isBetween(r.O.format(e.date,"YYYY-MM-DD"),null===(a=e.hoveredEvent)||void 0===a?void 0:a.startDate,null===(o=e.hoveredEvent)||void 0===o?void 0:o.endDate)}),[e.hoveredEvent]),i=e.hoveredEvent?null===(t=e.getBackgroundColor)||void 0===t?void 0:t.call(e,e.hoveredEvent.content):null;return a.createElement("div",{className:"".concat(k.cell," fw-semibold")},!e.hideDay&&a.createElement(u,{date:e.date,notCurrentMonth:e.notCurrentMonth}),o&&a.createElement("div",{style:{backgroundColor:i},className:k.multiEventCell}),(null===(n=e.eventsOnDay)||void 0===n?void 0:n.length)>0&&a.createElement(S,Object.assign({},e,{isMultiEventDate:o})))}},84963:(e,t,n)=>{n.d(t,{r:()=>u});var a=n(32735),r=n(23481),o=n(83914),i=n(76177),l=n(35223);const c={tag:"XRj8d",tooltip:"X6mLk"};var s="specialEventCalendar.comingSoonTag";function u(e){return a.createElement(i.u,{title:r.T.getPhrase(s,"tooltip"),spanHackClassName:"d-block ".concat(c.tooltip),spanHack:!0},a.createElement("div",{className:"d-flex text-dark align-items-center ".concat(c.tag," ").concat(e.className)},a.createElement(o.x,{svgName:l.vn.Timer}),!e.onlyIcon&&r.T.getPhrase(s,"comingSoon")))}},6107:(e,t,n)=>{n.d(t,{b:()=>p});var a=n(32735),r=n(110),o=n(78259),i=n(49985),l=n(65858),c=n(84963),s=n(12324),u=n(42735),d=n(36848),m=n(75163),v=n(2284);const f={modalWidth:"SgHYb",banner:"PLw1p",pill:"UNBr0",logo:"xv_tc"};function p(e){var t,n,p,g,y,h=e.getAppLink(e.event.content.id,e.event.name),E=null===(t=e.getBackgroundColor)||void 0===t?void 0:t.call(e,e.event.content),b=null===(n=e.getIconUrl)||void 0===n?void 0:n.call(e,e.event.content),O=null===(p=e.getBannerUrl)||void 0===p?void 0:p.call(e,e.event.content),D=!!e.event.endDate,C=e.event.content.status===v.W.ComingSoon,S=null===(g=e.getStartTime)||void 0===g?void 0:g.call(e,e.event.content),k=null===(y=e.getActionLabel)||void 0===y?void 0:y.call(e),N={actionType:l.Vw.Click,entity:l.py.SpecialEvent,location:e.inPopup?l.LZ.CalendarPopup:l.LZ.CalendarDay},A={topicId:e.event.content.id,eventId:e.event.specialEventId,presentationId:e.presentationId,date:r.O.format(new Date(e.event.startDate),"YYYY-MM-DD"),status:e.event.content.status};return a.createElement("div",null,S&&a.createElement("h6",null,S),a.createElement("div",{onClick:function(){C&&i.k.logUserAction(A,N)}},a.createElement(d.F,{appLink:!C&&h,className:"".concat(C?"":"cursor-pointer"," text-decoration-none"),onClick:e.onClick,analyticsOptions:N,analyticsData:A},a.createElement("div",{className:"banner rounded-3 position-relative ".concat(f.banner),style:{backgroundColor:E,backgroundImage:"url('".concat(O,"')")}},a.createElement("div",{className:"d-flex justify-content-between align-items-center w-100 h-100 px-3"},a.createElement("div",{className:"d-flex align-items-center"},b&&a.createElement("div",{className:"".concat(f.logo," rounded-circle flex-shrink-0 overflow-hidden me-2")},a.createElement(m.Z,{data:b})),a.createElement("div",{className:"text-white"},C&&a.createElement(c.r,{className:"pe-2 fw-semibold mb-1 rounded-pill justify-content-start ".concat(f.pill)}),D&&a.createElement("div",{className:"mb-1"},s.T.getDisplayDate(e.event.startDate,e.event.endDate)),a.createElement("h2",{className:"h4 text-white text-shadow ".concat(e.event.description?"clamp-2":"clamp-1"),title:e.event.name},e.event.name))),a.createElement("div",{className:"d-none d-sm-block flex-shrink-0"},!C&&a.createElement(u.K,{className:"btn btn-outline-dark fw-semibold"},k))))),a.createElement("div",{className:"mt-2 mb-3 pre-wrap text-break",dangerouslySetInnerHTML:{__html:o.O.linkifyText(e.event.description||e.event.content.description)}})))}},7870:(e,t,n)=>{n.d(t,{N:()=>l});var a=n(97395),r=n(75896),o=n(110),i=n(40424),l={calendarEvents:function(e,t,n){return{url:a._.urlBuilder("{gateway}/v1/discover/special-events/content",{from:e,to:t,presentationId:n}),publicUrl:a._.urlBuilder("/api/discover/special-events/content",{from:e,to:t,presentationId:n}),key:"presentation:".concat(n,":events:from:").concat(e,":to").concat(t)}},nextTopicSpecialEvent:function(e,t){var n={presentationId:t,limit:1,from:o.O.format(new Date,"YYYY-MM-DD"),objectType:i.VH.Classification};return{url:a._.urlBuilder("{gateway}/v1/discover/special-events/object/".concat(e,"/next-events"),n),publicUrl:a._.urlBuilder("/api/discover/special-events/object/".concat(e,"/next-events"),n),key:"presentation:".concat(t,":events:classification:").concat(e),formatData:function(e){return r.m.first(e)}}}}},12324:(e,t,n)=>{n.d(t,{T:()=>r});var a=n(110),r={getDisplayDate:function(e,t){return t?e.slice(5,7)!==t.slice(5,7)?"".concat(a.O.format(e,"D MMM")," - ").concat(a.O.format(t,"D MMM")):"".concat(a.O.format(e,"D")," - ").concat(a.O.format(t,"D")," ").concat(a.O.format(e,"MMM")):a.O.format(e,"D MMM")},getEventsInMonth:function(e,t){return e.filter((function(e){return a.O.format(e.startDate,"YYYY-MM")===a.O.format(t,"YYYY-MM")}))},getOrdinalDate:function(e){return"".concat(a.O.getLocalDateOrdinal(a.O.get(e,"date"))," ").concat(a.O.format(e,"MMMM"))}}},3278:(e,t,n)=>{n.d(t,{z:()=>m});var a=n(32735),r=n(39202),o=n(23481),i=n(65858),l=n(38502),c=n(83345),s=n(40424);const u={pillTab:"bMJM0"};var d="discover.header";function m(e){var t,n,m,v,f,p;if(!e.type)return a.createElement(a.Fragment,null);if(e.type===s.Yv.Learner||e.hasStudentExperience)return a.createElement("div",{className:"py-3"},a.createElement("h1",{className:"h2 mb-0"},a.createElement(c.x,{namespace:d,phrase:"heading"})));var g=[{name:o.T.getPhrase(d,"forYou"),appLink:null===(t=e.appLinks)||void 0===t?void 0:t.forYou,active:"forYou"===e.active,analyticsData:{name:o.T.getPhrase(d,"forYou"),url:r.C$.getHref(null===(n=e.appLinks)||void 0===n?void 0:n.forYou)},analyticsOptions:{actionType:i.Vw.Click,entity:i.py.Url,location:i.LZ.MagicTabs}},{name:o.T.getPhrase(d,"whatsNew"),appLink:null===(m=e.appLinks)||void 0===m?void 0:m.whatsNew,active:"whatsNew"===e.active,analyticsData:{name:o.T.getPhrase(d,"whatsNew"),url:r.C$.getHref(null===(v=e.appLinks)||void 0===v?void 0:v.whatsNew)},analyticsOptions:{actionType:i.Vw.Click,entity:i.py.Url,location:i.LZ.MagicTabs}}];return e.showCalendar&&g.push({name:o.T.getPhrase(d,"calendar"),appLink:null===(f=e.appLinks)||void 0===f?void 0:f.calendar,active:"calendar"===e.active,analyticsData:{name:o.T.getPhrase(d,"calendar"),url:r.C$.getHref(null===(p=e.appLinks)||void 0===p?void 0:p.calendar)},analyticsOptions:{actionType:i.Vw.Click,entity:i.py.Url,location:i.LZ.MagicTabs}}),a.createElement("div",{className:"py-3 text-center"},a.createElement(l.r,{tabs:g,className:u.pillTab}))}},38502:(e,t,n)=>{n.d(t,{r:()=>d});var a=n(32735),r=n(49985),o=n(36848),i=n(18559),l=n(11607),c=n(83914),s=n(87432);function u(e){return a.createElement(a.Fragment,null,!!e.tab.svgName&&a.createElement("div",{className:e.tab.name?"pe-1":""},a.createElement(c.x,{svgName:e.tab.svgName})),e.tab.name,"number"==typeof e.tab.count&&a.createElement("div",{className:"ps-2"},a.createElement(i.C,{type:i.g.Count,data:e.tab.count})))}function d(e){var t;return a.createElement("nav",{className:null!==(t=e.className)&&void 0!==t?t:""},a.createElement("ul",{className:"\n list-unstyled d-inline-block m-0 ".concat(s.Z.pillTabSelector,"\n ").concat(e.borderRadius?s.Z.radiusSmall:"","\n ").concat(e.listClassName,"\n ")},e.tabs.map((function(e,t){return a.createElement("li",{className:"\n p-0 ".concat(s.Z.tab," ").concat(e.active?"btn btn-dark":"btn btn-outline-dark","\n ").concat(e.name?s.Z.minWidth:""," ").concat(e.className,"\n "),key:t},e.appLink?a.createElement(o.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(s.Z.tabLink,"\n ")},a.createElement(u,{tab:e})):a.createElement(l.L,{className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset p-2 text-nowrap ".concat(s.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)}},a.createElement(u,{tab:e})))}))))}d.defaultProps={borderRadius:"lg"}},2284:(e,t,n)=>{var a;n.d(t,{W:()=>a}),function(e){e.Draft="Draft",e.ComingSoon="ComingSoon",e.Published="Published"}(a||(a={}))},91437:(e,t,n)=>{n.r(t),n.d(t,{CalendarView:()=>we});var a=n(32735),r=n(23481),o=n(81886),i=n(20354),l=n(110),c=n(80247),s=n(28400),u=n(29711),d=n(64446);const m={wrapper:"WRLhh",notCurrentMonth:"L0rbf",weekend:"mF0ka"};function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function f(e){var t,n,r,o=e.date,i=e.notCurrentMonth,c=(n=a.useState(0),r=2,function(e){if(Array.isArray(e))return e}(n)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=o.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw r}}return l}}(n,r)||function(e,t){if(e){if("string"==typeof e)return v(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)?v(e,t):void 0}}(n,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),s=c[0],f=c[1],p="position-relative border ".concat(e.theme.border," ").concat(m.wrapper);(function(e){return 0===l.O.getWeekday(e)||6===l.O.getWeekday(e)})(o)&&(p+=" ".concat(m.weekend)),i&&(p+=" ".concat(m.notCurrentMonth));var g=(null===(t=e.events)||void 0===t?void 0:t.filter((function(t){return l.O.isSame(e.date,t.startDate)})))||[],y=Object.assign(Object.assign({},e),{eventsOnDay:g,sliderStep:s,setSliderStep:f});return a.createElement("td",{className:p},(null==g?void 0:g.length)>0?a.createElement(d.K,{hoverableComponent:u.X,componentProps:y,hoverScale:1.35}):a.createElement(u.X,Object.assign({},y,{isHovering:!1})))}var p=n(12324),g=n(79967),y=n(36848),h=n(23232),E=n(83345),b="specialEvent.eventsEmptyState",O=r.T.encloseNamespace(b);function D(e){return a.createElement(E.D.Provider,{value:b},a.createElement(h.u,null,a.createElement(h.u.Image,{src:e.imageUrl,altText:O("info")}),a.createElement(h.u.Heading,null,e.heading||a.createElement(E.x,{phrase:"heading"})),e.appLink&&a.createElement(h.u.Info,null,a.createElement(a.Fragment,null,a.createElement(E.x,{namespace:b,phrase:"info"}),a.createElement(y.F,{appLink:e.appLink},a.createElement("span",{className:"text-info"},O("link")))))))}var C=n(6107);const S={date:"k2lLG",first:"E18Bv"};function k(e){var t={};e.events.forEach((function(e){var n=e.startDate;t[n]?t[n].push(e):t[n]=[e]}));var n=Object.keys(t);return n.sort((function(e,t){return l.O.isBefore(e,t)?-1:0})),a.createElement("div",{className:"py-1"},n.map((function(n,r){var o="",i="";return a.createElement("div",{key:n},a.createElement("div",{className:"h4 mt-4 ".concat(S.date," ").concat(0===r?S.first:"")},p.T.getOrdinalDate(n)),t[n].map((function(t){var n;return o=i,i=null===(n=e.getStartTime)||void 0===n?void 0:n.call(e,t.content),a.createElement(C.b,{key:t.content.id,getAppLink:function(t,n){return e.appLink(t,s.m.slugify(n))},event:t,presentationId:e.presentationId,getIconUrl:e.getIconUrl,getBannerUrl:e.getBannerUrl,getBackgroundColor:e.getBackgroundColor,getActionLabel:function(){return e.getActionLabel(t.content)},getStartTime:e.getStartTime&&o!==i?e.getStartTime:null})})))})))}const N={header:"sTIcQ",thead:"ekxZd"};function A(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 a,r,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=o.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return w(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)?w(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 w(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function M(e){var t,n=e.appLinks,r=e.imageUrls,o=(0,g.k)(),i=p.T.getEventsInMonth(e.events||[],e.viewingMonth),l=A(a.useState(!1),2),u=l[0],d=l[1],m=A(a.useState(null),2),v=m[0],y=m[1];return e.eventsLoaded&&!(null==i?void 0:i.length)?a.createElement(D,{imageUrl:r.emptyState,appLink:null===(t=n.emptyStateRedirect)||void 0===t?void 0:t.call(n),heading:e.emptyStateHeading}):"list"===e.viewMode||o.xs||o.sm||o.md?e.eventsLoaded?a.createElement(k,{events:i,presentationId:e.presentationId,appLink:e.appLinks.event,getIconUrl:e.getIconUrl,getBannerUrl:e.getBannerUrl,getBackgroundColor:e.getBackgroundColor,getActionLabel:e.getActionLabel,getStartTime:e.getStartTime}):a.createElement("div",{className:"d-flex justify-content-center align-items-center mb-4"},a.createElement(c.Z,{as:"div",animation:"border",role:"status"})):a.createElement("table",{className:"user-select-none w-100 mt-3 overflow-hidden rounded-top-lg"},a.createElement("thead",{className:"border ".concat(e.theme.border," ").concat(N.thead)},a.createElement("tr",{className:"fw-semibold ".concat(e.theme.background," ").concat(N.header)},e.weekDaysHeader.map((function(e){return a.createElement("th",{key:e,className:"px-2 h4"},e)})))),a.createElement("tbody",null,e.weekDays.map((function(t){return a.createElement("tr",{key:t[0].toString()},t.map((function(t){return a.createElement(f,{key:t.toString(),date:t,notCurrentMonth:!!t.notCurrentMonth,events:e.events,monthQuery:e.monthQuery,hasInitialized:u,setHasInitialized:d,presentationId:e.presentationId,hoveredEvent:v,theme:e.theme,setHoveredEvent:y,getEventsListAppLink:function(){return e.appLinks.eventList(e.monthQuery,t,e.presentationId)},getTopicAppLink:function(t,n){return e.appLinks.event(t,s.m.slugify(n))},getIconUrl:e.getIconUrl,getBackgroundColor:e.getBackgroundColor,getCoverUrl:e.getCoverUrl,getHardCodedEvent:e.getHardCodedEvent})})))}))))}M.defaultProps={theme:{border:"border-light-blue",background:"bg-light-blue"}};var L=n(65858),T=n(75896),Y=new Date("2023-01-01"),I=12;function x(e,t){for(var n=l.O.startOf(e,"month"),a=l.O.getWeekday(n),r=[],o=t?0===a?6:a-1:a,i=t?1:0;i<=o;i++){var c=n,s=l.O.weekday(c,a-i);r.push(Object.assign(s,{notCurrentMonth:!0}))}return r.reverse()}function U(e,t){for(var n=l.O.endOf(e,"month"),a=l.O.getWeekday(n),r=[],o=t?7-(0===a?7:a):7-a,i=1;i<=o;i+=1){var c=l.O.add(n,i,"days");r.push(Object.assign(c,{notCurrentMonth:!0}))}return r}function j(e){var t=l.O.startOf(e,"month");return 1===l.O.getWeekday(t)?t:T.m.first(x(e,!0))}function H(e){var t=l.O.endOf(e,"month");return 0===l.O.getWeekday(t)?t:T.m.last(U(e,!0))}function P(e){return[j(e),H(e)]}function _(e){return e.charAt(0).toUpperCase()+e.slice(1)}var B=new Date,R=n(11607),W=n(10874),V=n(83914),F=n(35223);const Z={chevron:"U_GAM",left:"t_wDz",right:"KgpGw",viewModeContainer:"csNfk"};var z="specialEventCalendar.calendarNav";function G(e){return a.createElement("div",{className:"".concat(Z.viewModeContainer," d-none d-lg-block")},a.createElement(W.h,{svgName:F.vn.Calendar,className:"".concat("calendar"===e.viewMode?"bg-dark text-white":""," btn btn-outline-dark rounded-start rounded-end-0 border-end-0 px-3 h-100"),onClick:function(){return e.setViewMode("calendar")},analyticsData:{},analyticsOptions:{entity:L.py.AppLink,actionType:L.Vw.Click,descriptor:L.Jf.Calendar,location:L.LZ.CalendarNav}}),a.createElement(W.h,{svgName:F.vn.TableOfContents,className:"".concat("list"===e.viewMode?"bg-dark text-white":""," btn btn-outline-dark rounded-end rounded-start-0 border-start-0 px-3 h-100"),onClick:function(){return e.setViewMode("list")},analyticsData:{},analyticsOptions:{entity:L.py.AppLink,actionType:L.Vw.Click,descriptor:L.Jf.List,location:L.LZ.CalendarNav}}))}function $(e){var t="previous"===e.action?F.vn.ChevronLeft:F.vn.ChevronRight,n="previous"===e.action?Z.left:Z.right;return a.createElement(R.L,{className:"".concat(Z.chevron," ").concat(n," border border-dark rounded-circle bg-white d-flex align-items-center justify-content-center"),onClick:e.onClick},a.createElement(V.x,{svgName:t,size:V.S.Medium,className:"svg-container d-inline-block ".concat(Z.svg)}))}var K=new Date;function J(e){var t=e.appLinks,n=(0,g.k)();function o(n){var a,r,o=l.O.format(n,"MMMM").toLocaleLowerCase(),i=t.month(o),c={};if(n){var s=(new Date).getFullYear(),u=n.getFullYear();s!==u&&(c.year=u)}return(null===(a=e.queryParams)||void 0===a?void 0:a.classification)&&(c.classification=e.queryParams.classification),(null===(r=e.queryParams)||void 0===r?void 0:r.yearGroup)&&(c.yearGroup=e.queryParams.yearGroup),i.params=c,i}var i,c,s=(i=e.monthDate,c=l.O.diffBetween(l.O.startOf(i,"month"),l.O.startOf(B,"month"),"months"),{showPrev:l.O.isAfter(i,Y,"month"),showNext:c<I}),u=s.showPrev,d=s.showNext,m={actionType:L.Vw.Click,entity:L.py.SpecialEvent,location:L.LZ.CalendarNav};function v(e){return l.O.format(e,"YYYY-MM-DD")}return a.createElement("div",{className:"d-flex flex-wrap gap-3 justify-content-end align-items-center"},a.createElement("h1",{className:"mb-0 h2 me-auto"},l.O.format(e.monthDate,n.xs?"MMM YYYY":"MMMM YYYY")),e.children,e.setViewMode&&a.createElement(G,{viewMode:e.viewMode,setViewMode:e.setViewMode}),a.createElement("div",{className:"d-flex gap-3"},u&&a.createElement(y.F,{appLink:o(l.O.startOf(l.O.subtract(e.monthDate,1,"month"),"month")),className:"d-flex",analyticsOptions:m,analyticsData:{action:"previous",date:v(l.O.startOf(l.O.add(e.monthDate,1,"month"),"month"))}},a.createElement($,{action:"previous",onClick:function(){var t=l.O.subtract(e.monthDate,1,"month");e.setViewingMonthDate(t)}})),a.createElement(y.F,{appLink:o(),className:"d-flex",analyticsOptions:m,analyticsData:{action:"today",date:v(l.O.startOf(K,"month"))}},a.createElement(R.L,{className:"".concat(Z.todayWrapper," btn btn-outline-dark fw-semibold"),onClick:function(){l.O.format(K,"M YY")!==l.O.format(e.monthDate,"M YY")&&e.setViewingMonthDate()}},r.T.getPhrase(z,"today"))),d&&a.createElement(y.F,{appLink:o(l.O.startOf(l.O.add(e.monthDate,1,"month"),"month")),className:"d-flex",analyticsOptions:m,analyticsData:{action:"next",date:v(l.O.startOf(l.O.add(e.monthDate,1,"month"),"month"))}},a.createElement($,{action:"next",onClick:function(){var t=l.O.add(e.monthDate,1,"month");e.setViewingMonthDate(t)}}))))}var Q="specialEvent.eventsErrorState",X=r.T.encloseNamespace(Q);function q(e){return a.createElement(E.D.Provider,{value:Q},a.createElement(h.u,null,a.createElement(h.u.Image,{src:e.imageUrl}),a.createElement(h.u.Heading,null,a.createElement(E.x,{phrase:"heading"})),a.createElement(h.u.Info,null,a.createElement(E.x,{namespace:Q,phrase:"info"}),a.createElement("br",null),a.createElement(y.F,{appLink:e.appLink},a.createElement("span",{className:"text-info"},X("link"))))))}var ee=n(7870);function te(e){return function(e){if(Array.isArray(e))return re(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||ae(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 ne(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 a,r,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=o.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw r}}return l}}(e,t)||ae(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 ae(e,t){if(e){if("string"==typeof e)return re(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)?re(e,t):void 0}}function re(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function oe(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var ie=new Date;function le(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ie,r=arguments.length>1?arguments[1]:void 0,i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],c=function(e){var t=e?[1,2,3,4,5,6,0]:[0,1,2,3,4,5,6],n=new Date;return t.map((function(e){return l.O.format(l.O.weekday(n,e),"ddd")}))}(i),s=a.useRef({}),u=(e=a.useState([]),t=2,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 a,r,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=o.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return oe(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)?oe(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.")}()),d=u[0],m=u[1],v=l.O.format(n,"YYYY-MM");a.useEffect((function(){var e=s.current[v];if(e)m(e.weeksTable);else{var t=function(e,t){for(var n=[],a={},r=x(e,t).concat(function(e){for(var t=l.O.daysInMonth(e),n=[],a=1;a<=t;a++){var r=l.O.set(e,"date",a);n.push(Object.assign(r,{notCurrentMonth:!1}))}return n}(e)).concat(U(e,t)),o=function(e){var t=r.slice(i,i+7);t.forEach((function(t,n){a[l.O.format(t,"YYYY-MM-DD")]={row:e,col:n}})),n.push(t),e++,c=e},i=0,c=0;i<r.length;i+=7)o(c);return{datePositionMap:a,weeksTable:n}}(n,i),a=t.weeksTable,r=t.datePositionMap;s.current[v]={weeksTable:a,datePositionMap:r},m(a)}}),[l.O.format(n,"YYYY-MM")]);var f=T.m.first(T.m.first(d)),p=T.m.last(T.m.last(d));return{weekDaysHeader:c,weekDays:d,monthDate:n,setMonthDate:function(e){if(e){if(v!==l.O.format(e,"YYYY-MM")){var t=l.O.format(e,"MMMM").toLocaleLowerCase(),a=(new Date).getFullYear(),i=n.getFullYear(),c=r.month(t);a!==i&&(c.params={year:i}),o.Q.C$.trigger(c)}}else o.Q.C$.trigger(r.calendar())},startDate:f,endDate:p}}var ce=n(3278),se=n(55171),ue=n(54610),de=n(31949),me=n(79612),ve=n(40424),fe=n(67453),pe=n(76753),ge=n(86698),ye=n(85369),he=n(30241),Ee=n(33192),be=n(93824),Oe=n(99742),De=n(14070),Ce=n(97291);function Se(e){switch(null==e?void 0:e.toLocaleLowerCase()){case be.C.AU:return{emptyState:Oe.W.EmptyStates.CALENDAR.NO_EVENTS_AU,errorState:Oe.W.EmptyStates.CALENDAR.INVALID_DATE};case be.C.US:return{emptyState:Oe.W.EmptyStates.CALENDAR.NO_EVENTS_US,errorState:Oe.W.EmptyStates.CALENDAR.INVALID_DATE};case be.C.UK:return{emptyState:Oe.W.EmptyStates.CALENDAR.NO_EVENTS_UK,errorState:Oe.W.EmptyStates.CALENDAR.INVALID_DATE};default:return{emptyState:Oe.W.EmptyStates.CALENDAR.NO_EVENTS,errorState:Oe.W.EmptyStates.CALENDAR.INVALID_DATE}}}function ke(){return{calendar:function(){return{application:Ce.O.CALENDAR,action:De.e.Calendar.CALENDAR}},month:function(e){return{application:Ce.O.CALENDAR,action:De.e.Calendar.CALENDAR_MONTH,args:[e]}},event:function(e,t){return{application:Ce.O.SUBJECT,action:De.e.Subjects.CLASSIFICATION,args:[e,t]}},eventList:function(e,t,n){return{application:Ce.O.CALENDAR,action:De.e.Calendar.SPECIAL_EVENT_LIST,params:Object.assign(Object.assign({},e),{date:t.toString(),presentationId:n})}},emptyStateRedirect:function(){return{application:Ce.O.CONTENT_UPDATES,action:De.e.ContentUpdates.CONTENT_UPDATES}}}}var Ne=n(27051),Ae=r.T.encloseNamespace("specialEventCalendar.calendarView");function we(e){var t=(0,g.k)(),n=(0,ge.y)({redirectOnError:!0}).activePresentation,r=(0,ye.N)(),c=r.showCalendar,s=r.isLoading,u=i.a.useBasicFetch(de.N.currentUser()),d=function(e){if(!e)return!0;var t=_(e);if(!l.O.formatIsValid(t,"MMMM-YYYY",!0))return!1;var n=l.O.parseDateString(t,"MMMM-YYYY");return l.O.isSame(n,Y,"month")||l.O.isAfter(n,Y,"month")}(e.month);a.useEffect((function(){s||c||o.Q.C$.trigger((0,Ne.u)().forYou,{replace:!0})}),[c,s]);var m=function(e){if(!e)return l.O.parseDateString();var t=_(e);return l.O.parseDateString(t,"MMMM-YYYY")}(e.month),v=le(m,ke()),f=v.monthDate,p=v.setMonthDate,y=v.weekDays,h=v.weekDaysHeader,E=v.startDate,b=v.endDate,O=function(e,t){var n=t,a=ne(P(e),2),r=a[0],o=a[1],c=ne(P(l.O.add(e,1,"month")),2),s=c[0],u=c[1],d=ne(P(l.O.subtract(e,1,"month")),2),m=d[0],v=d[1],f=i.a.useBasicFetch(r&&o&&n&&ee.N.calendarEvents(l.O.format(r,"YYYY-MM-DD"),l.O.format(o,"YYYY-MM-DD"),n)),p=i.a.useBasicFetch(s&&u&&n&&ee.N.calendarEvents(l.O.format(s,"YYYY-MM-DD"),l.O.format(u,"YYYY-MM-DD"),n)),g=i.a.useBasicFetch(m&&v&&n&&ee.N.calendarEvents(l.O.format(m,"YYYY-MM-DD"),l.O.format(v,"YYYY-MM-DD"),n));return{events:T.m.uniq([].concat(te(g.data||[]),te(f.data||[]),te(p.data||[])),(function(e){return e.specialEventPolicyId})),loaded:f.hasCompleted}}(m,n.id),D=O.events,C=O.loaded,S=l.O.format(f,"MMMM YYYY");if((0,me.M)(pe.CG.getDefaultMetadata({title:S,phraseContext:{phraseHandler:Ae,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"},canonicalLink:Ee.f.getCanonicalLink({allowedParams:["year"]}),allowIndexing:Ee.f.allowIndexing(),hrefLang:Ee.f.getStaticRouteHrefLang(null==n?void 0:n.learningLevel,ke().calendar,he.Bg)})),null!==e.month&&!d)return a.createElement(q,{imageUrl:Se().errorState,appLink:ke().calendar()});function k(e){return se.e.SpecialEvents[e.id]}return!s&&(null==n?void 0:n.id)&&u.data.countryCode?a.createElement("div",{className:"bg-white px-3"},a.createElement(ce.z,{type:ve.Yv.Staff,appLinks:(0,Ne.u)(),showCalendar:c,active:"calendar"}),a.createElement(J,{monthDate:f,setViewingMonthDate:p,appLinks:ke()}),a.createElement(M,{weekDays:y,weekDaysHeader:h,events:D,monthQuery:{from:null==E?void 0:E.toString(),to:null==b?void 0:b.toString()},viewingMonth:m,eventsLoaded:C,presentationId:n.id,appLinks:ke(),imageUrls:Se(u.data.countryCode),getIconUrl:function(e){return function(e,t){var n;return t?fe.j.createUrl(t.iconUrl,{size:ue.h2.Medium}):fe.j.createUrl(null===(n=e.icon)||void 0===n?void 0:n.url,{size:ue.h2.Small})}(e,k(e))},getCoverUrl:function(e){var t;return fe.j.createUrl(null===(t=e.cover)||void 0===t?void 0:t.url,{size:ue.h2.Small})},getBackgroundColor:function(e){var t;return null===(t=e.metadata)||void 0===t?void 0:t.backgroundColor},getBannerUrl:function(e){var t;return null===(t=e.banner)||void 0===t?void 0:t.url},getActionLabel:function(){return t.xs?Ae("mobileButtonLabel"):Ae("buttonLabel")},getHardCodedEvent:k})):a.createElement(a.Fragment,null)}},27051:(e,t,n)=>{n.d(t,{E:()=>v,u:()=>f});var a=n(75896),r=n(28400),o=n(17475),i=n(183),l=n(14070),c=n(97291),s=n(22490),u=n(67963),d=n(82431),m="classification-latest-releases";function v(e){return{classification:function(t){return{application:c.O.SUBJECT,action:l.e.Subjects.CLASSIFICATION,args:[null==t?void 0:t.id,r.m.slugify(null==t?void 0:t.name)],params:e||{}}},videoType:function(e,t){return s.W.getAppLink(e,Object.assign(Object.assign({},t),{context:i.Q.Widget}))},series:d.j.getSeriesAppLink,subText:function(e){return d.j.getSeriesAppLink(e.series)},playlist:function(e){return{application:c.O.PLAYLISTS,action:l.e.Playlists.PLAYLIST,args:[e.id,r.m.slugify(e.name)]}},latestReleases:function(){return{application:c.O.CONTENT_UPDATES,action:l.e.ContentUpdates.CONTENT_UPDATES}},allTopics:function(){return{application:c.O.SUBJECT,action:l.e.Subjects.CLASSIFICATION_ALL}},classificationLatestReleases:function(e){return e.id===m?{application:c.O.CONTENT_UPDATES,action:l.e.ContentUpdates.CONTENT_UPDATES}:{application:c.O.CONTENT_UPDATES,action:l.e.ContentUpdates.CLASSIFICATION_UPDATE,args:[e.id,r.m.slugify(e.name)]}},widgetVideoList:function(e,t){return{application:c.O.DASHBOARD,action:l.e.Dashboard.DASHBOARD,args:[e,r.m.slugify(t)]}},watchHistory:function(){return{application:c.O.WATCH_HISTORY,action:l.e.WatchHistory.HOME}},rating:function(e,t){return{application:c.O.SEARCH,action:l.e.Search.HOME,params:{moviesAndTv:!0,rating:o.S.getFrontendParamValue([a.m.first(t),e])}}},company:function(e){return{application:c.O.MOVIES_AND_TV,action:l.e.MoviesAndTv.COMPANY_DASHBOARD,args:[e.id,r.m.slugify(e.name)]}},discover:function(){return{application:c.O.DASHBOARD,action:l.e.Dashboard.HOME}},calendar:function(){return{application:c.O.CALENDAR,action:l.e.Calendar.CALENDAR}},calendarMonth:function(e,t){var n={application:c.O.CALENDAR,action:l.e.Calendar.CALENDAR_MONTH,args:[e.toLowerCase()]};return t&&(n.params={year:t}),n},onboardingStep:function(e){return(0,u.u)()[e]},onboardingAppLinks:function(){return(0,u.u)()},classroomGuide:s.W.getClassroomGuideAppLink,interactiveGuidance:s.W.getInteractiveGuidanceAppLink,resourceGuidance:s.W.getResourceGuidanceAppLink}}function f(){return{forYou:{application:c.O.DASHBOARD,action:l.e.Dashboard.HOME},whatsNew:{application:c.O.CONTENT_UPDATES,action:l.e.ContentUpdates.CONTENT_UPDATES},calendar:{application:c.O.CALENDAR,action:l.e.Calendar.CALENDAR}}}},85369:(e,t,n)=>{n.d(t,{N:()=>y});var a=n(32735),r=n(35242),o=n(20354),i=n(27022),l=n(72639),c=n(31949),s=n(37802),u=n(87114),d=n(86698);function m(e){return m="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},m(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 a,r,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=o.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return f(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)?f(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 f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function p(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=m(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var a=n.call(e,"string");if("object"!=m(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==m(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var g=p(p(p(p(p(p({},i.t.AU,[l.p.Level_1]),i.t.US,[l.p.Level_1]),i.t.UK,[l.p.Level_1]),i.t.SCOT,[l.p.Level_1]),i.t.NZ,[]),i.t.GLOBAL,[]);function y(){var e,t=(0,s.r)(null),n=t.hasSpecialEventCalendar,i=t.isLoadingSettings,l=(0,d.y)({redirectOnError:!0}).activePresentation,m=o.a.useBasicFetch(c.N.currentUser()),f=g[null===(e=m.data)||void 0===e?void 0:e.contentRegion],p=u.i.getMappedPresentationLevel(null==l?void 0:l.learningLevel),y=!(null==f?void 0:f.find((function(e){return e.toString()===(null==p?void 0:p.toString())}))),h=!i&&!n,E=v(a.useState(!h&&!y),2),b=E[0],O=E[1],D=v(a.useState(i||!(null==l?void 0:l.id)),2),C=D[0],S=D[1];return a.useEffect((function(){h||y?O(!1):C||O(!0),S(i||!(null==l?void 0:l.id))}),[n,null==l?void 0:l.id,C]),r.h.isDevelopment?{showCalendar:!0,isLoading:!1}:{showCalendar:b,isLoading:C}}},87432:(e,t,n)=>{n.d(t,{Z:()=>a});const a={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}}}]);
|
|
2
|
-
//# sourceMappingURL=1437-5b1889cf0d-lite.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/1437-5b1889cf0d-lite.chunk.js","mappings":"uKAIMA,EAAqB,CACzBC,UAAW,YACXC,gBAAiB,SAGNC,EAAgB,CAI3BC,YAAW,SAACC,EAAcC,GACxB,GAAKD,EAAL,CACA,IAAME,EAAMD,EAAU,SAAS,CAAC,EAAGN,EAAoBM,GAAWN,EAClE,OAAO,IAAWK,EAAME,EAFP,CAGnB,E,iFChBF,SAAgB,SAAW,QAAQ,MAAQ,QAAQ,WAAa,QAAQ,cAAgB,S,sGCQxF,IACMC,EAAYC,EAAA,mBADA,yCAWZ,SAAUC,EAAiBC,GAC/B,IAAMC,EAAUC,EAAA,UAAmBF,EAAMG,MAErCC,EAAgB,GAAH,OAAM,WAAe,uBAClCH,IACFG,GAAiB,uBACfJ,EAAMK,kBAAoBL,EAAMM,aAClCF,GAAiB,mBACfJ,EAAMO,WACRH,GAAiB,eACfJ,EAAMV,YACRc,GAAiB,IAAJ,OAAQJ,EAAMV,YAE7B,I,IAC0E,G,GAA9C,OAA+B,CAAEkB,MAAO,M,EAAM,E,o4BAAlEC,EAAG,KAAEH,EAAU,KAEvB,OACE,uBAAKhB,UAAS,UAAKc,EAAa,YAAIE,EAAa,aAAoB,IAAMG,IAAKA,GAC9E,uBAAKnB,UAAS,UAAK,gBAAoB,YALnB,+EAMjBY,EAAA,SAAkBF,EAAMG,KAAM,MAEhCF,GACC,uBAAKX,UAAS,UAAK,QAAY,8CAC5BO,EAAU,UAKrB,C,4HC/CA,SAAgB,eAAiB,QAAQ,IAAM,QAAQ,KAAO,QAAQ,gBAAkB,QAAQ,UAAY,QAAQ,QAAU,QAAQ,KAAO,QAAQ,MAAQ,QAAQ,YAAc,QAAQ,MAAQ,QAAQ,QAAU,QAAQ,OAAS,QAAQ,YAAc,QAAQ,MAAQ,QAAQ,UAAY,QAAQ,OAAS,QAAQ,OAAS,QAAQ,MAAQ,QAAQ,UAAY,QAAQ,kBAAoB,QAAQ,iBAAmB,S,sGCwBvZ,SAAUa,EAAeV,G,gBACrBW,EAA8BX,EAA9BW,WAAYC,EAAkBZ,EAAlBY,cAEdC,EAAcb,EAAMc,YAAYC,OAAS,EACzCC,EAAiBhB,EAAMc,YAAYG,MAAK,SAACC,EAAGC,GAAG,OAAKA,IAAQR,CAAU,IACtES,IAAkBJ,EAAeK,QAEjCC,EAA0C,QAAxB,EAAAtB,EAAMuB,0BAAkB,sBAAGP,EAAeQ,SAE5DC,EAAwC,QAAvB,EAAAzB,EAAM0B,yBAAiB,sBAAGV,EAAeQ,SAE1DG,EAA0B,QAAhB,EAAA3B,EAAM4B,kBAAU,sBAAGZ,EAAeQ,SAC5CK,EAA4B,QAAjB,EAAA7B,EAAM8B,mBAAW,sBAAGd,EAAeQ,SAE9CO,EAAef,EAAeQ,QAAQQ,SAAWC,EAAA,aAEuC,G,EAA1D,WAAgBjC,EAAMkC,eAAsB,SAAL,I,EAAmB,E,o4BAAtF5C,EAAS,KAAE6C,EAAY,KAE/B,aAAgB,WACd,IAAKnC,EAAMkC,eAAgB,CAEzB,IAAME,EAAeC,KAAKC,MAAsB,IAAhBD,KAAKE,SAAiB,KACtDC,OAAOC,YAAW,WAChBN,EAAa,UACbK,OAAOC,YAAW,WAChBzC,EAAM0C,mBAAkB,EAC1B,GAAG,IACL,GAAGN,EACJ,CACH,GAAG,CAACpC,EAAMkC,iBAEV,aAAgB,WACVlC,EAAMM,YACRN,EAAM2C,gBAAgB3B,EAE1B,GAAG,CAAEhB,EAAMM,WAAYU,IAEvB,aAAgB,WACd,OAAO,W,MACDhB,EAAMM,aAAgC,QAAlB,EAAAN,EAAM4C,oBAAY,eAAEC,kBAAmB7B,EAAe6B,gBAC5E7C,EAAM2C,gBAAgB,KAE1B,CACF,GAAG,CAAE3C,EAAMM,WAAYN,EAAM4C,aAAc5B,IA8B3C,IAAM8B,EAlBN,WACE,IAAMA,EAA4B,CAChC3C,KAAMD,EAAA,SAAkBF,EAAMG,KAAM,cACpC4C,eAAgB/C,EAAM+C,eACtBC,WAAYhD,EAAMc,YAAYC,QAWhC,OARIF,GACFiC,EAAcG,QAAUjD,EAAMc,YAAYoC,KAAI,SAAAhC,GAAC,OAAIA,EAAE2B,cAAc,IAAEM,KAAK,KAC1EL,EAAcM,QAAUpD,EAAMc,YAAYoC,KAAI,SAAAhC,GAAC,OAAIA,EAAEM,QAAQ6B,EAAE,IAAEF,KAAK,OAEtEL,EAAcG,QAAUjC,EAAe6B,eACvCC,EAAcM,QAAUpC,EAAeQ,QAAQ6B,GAC/CP,EAAcQ,YAActC,EAAeQ,QAAQQ,QAE9Cc,CACT,CAEsBS,GAEhBC,EAAqC,CACzCC,WAAY,WACZC,OAAQ,kBACRC,SAAU,kBAGZ,SAASC,EAAuBzD,GAC9B,OAAOD,EAAA,SAAkBC,EAAM,aACjC,CAEA,SAAS0D,IAaP,MAZyB,GAAH,OAAM7D,EAAMV,UAAS,YAAIA,EAAS,KAExC,CACdmC,EAAiB,GAAH,OAAM,iBAAqB,sBAAuB,kBAChEE,EAAU,UAAY,QACtBI,EAAe,aAAoB,GACnC/B,EAAMkC,eAAiB,cAAqB,GAC5ClC,EAAMM,WAAa,YAAc,GACjCN,EAAM8D,iBAAmB,mBAA0B,GACnD,YAAa9C,EAAeQ,QAAU,iBAAmB,IAGzB2B,KAAK,IACzC,CAEA,OACE,uBAAKY,QAAS,WACRhC,GACFiC,EAAA,gBAA8BlB,EAAeU,EACjD,GACE,gBAACS,EAAA,EAAO,CACNC,QA9DN,W,QACE,OAAIrD,EAC+B,QAA1B,EAAAb,EAAMmE,4BAAoB,uBAE/BpC,EACK,KAEmB,QAArB,EAAA/B,EAAMoE,uBAAe,sBAAGpD,EAAeQ,QAAQ6B,GAAIrC,EAAeqD,KAC3E,CAsDeC,GACThF,UAAU,6BACVkE,iBAAkBA,EAClBV,cAAeA,GAEf,uBAAKxD,UAAS,UAAK,UAAc,SAC9ByC,GACC,gBAACwC,EAAA,EAAa,CAACjF,UAAS,oDAA+C,MAAU,YAAIA,GAAakF,UAAQ,MAG5GxE,EAAMyE,SACN,gBAAC1E,EAAgB,CACfI,KAAMH,EAAMG,KACZE,gBAAiBL,EAAMK,gBACvBf,UAAS,UAAK,OAAW,YAAIA,GAC7BgB,WAAYN,EAAMM,WAClBC,UAAQ,IAIZ,uBAAKjB,UAAS,2BAAsB,YAClC,uBACEoF,MAAO,CAAEpD,gBAAAA,GACThC,UAAS,gHAA2G,YAAgB,YAAIA,EAAS,YAAIU,EAAMM,WAAa,YAAc,GAAE,YAAIN,EAAM8D,iBAAmB,mBAA0B,GAAE,YAAI9D,EAAMV,YAE1PqC,GAAW,gBAACgD,EAAA,EAAS,CAACC,IAAKjD,EAASkD,IAAK7D,EAAeQ,QAAQ6C,KAAM/E,UAAWuE,MAEjFhC,IAAaF,GACZ,uBACE+C,MAAO,CAAEI,gBAAiB,QAAF,OAAUjD,EAAQ,OAC1CvC,UAAWuE,MAIdzC,GACC,uBAAK9B,UAAS,UAAK,gBAChByF,EAAA,iBAAkC/D,EAAegE,UAAWhE,EAAeK,UAGhF,uBAAK/B,UAAS,sBAAiB,QAAY,YAAIuB,EAAc,OAAS,SACpE,uBAAKvB,UAAS,UAAK,YAAgB,YAAIU,EAAMM,WAAa,OAAS,UAAS,OAAO2E,MAAOjE,EAAeqD,MAAOrD,EAAeqD,OAG/HxD,GAA8B,IAAfF,GACf,uBAAKrB,UAAS,oDAA+C,SAC3D,gBAAC4F,EAAA,EAAS,CACRnB,QAAS,SAAA7C,GACPA,EAAEiE,kBACFjE,EAAEkE,iBACFxE,GAAc,SAAAyE,GAAC,OAAIA,EAAI,CAAC,IACxBrB,EAAA,gBAA8B,CAAE7D,KAAMyD,EAAuB5D,EAAMG,MAAOmF,OAAQ,WAAYtC,WAAYhD,EAAMc,YAAYC,QAAUyC,EACxI,GACA,gBAAC+B,EAAA,EAAY,CACXC,QAAS,iBACTlG,UAAS,iDAA4C,aAM5DuB,GAAeF,IAAeX,EAAMc,YAAYC,OAAS,GACxD,uBAAKzB,UAAS,oDAA+C,UAC3D,gBAAC4F,EAAA,EAAS,CACRnB,QAAS,SAAA7C,GACPA,EAAEiE,kBACFjE,EAAEkE,iBACFxE,GAAc,SAAAyE,GAAC,OAAIA,EAAI,CAAC,IACxBrB,EAAA,gBAA8B,CAAE7D,KAAMyD,EAAuB5D,EAAMG,MAAOmF,OAAQ,OAAQtC,WAAYhD,EAAMc,YAAYC,QAAUyC,EACpI,GACA,gBAAC+B,EAAA,EAAY,CACXC,QAAS,kBACTlG,UAAS,iDAA4C,aAM5DuB,GACC,uBAAKvB,UAAS,iBAAY,YAAgB,YAAIuB,EAAc,GAAK,sBAC/D,gBAAC4E,EAAA,EAAU,CACT9E,WAAYA,EACZ+E,aAAc1F,EAAMc,YAAYC,OAChC4E,KAAK,KACLrG,UAAS,UAAKU,EAAMM,WAAa,OAAS,QAC1CsF,iBAAkB,SAAAC,GAChBjF,EAAciF,GACd7B,EAAA,gBAA8B,CAAE7D,KAAMyD,EAAuB5D,EAAMG,MAAOmF,OAAQ,OAAQtC,WAAYhD,EAAMc,YAAYC,QAAUyC,EACpI,QASlB,CCnOA,SAAgB,KAAO,QAAQ,eAAiB,QAAQ,OAAS,SCY3D,SAAUsC,EAAY9F,G,QACpB8D,EAAmB,WACvB,W,YACE,OAAkB,QAAlB,EAAA9D,EAAM4C,oBAAY,eAAEvB,WACnBnB,EAAA,SAAkBF,EAAMG,KAAwB,QAAlB,EAAAH,EAAM4C,oBAAY,eAAEoC,YACnD9E,EAAA,YACEA,EAAA,SAAkBF,EAAMG,KAAM,cACZ,QAAlB,EAAAH,EAAM4C,oBAAY,eAAEoC,UACF,QAAlB,EAAAhF,EAAM4C,oBAAY,eAAEvB,Q,GAExB,CAACrB,EAAM4C,eAEHtB,EAAkBtB,EAAM4C,aAAuC,QAAxB,EAAA5C,EAAMuB,0BAAkB,sBAAGvB,EAAM4C,aAAapB,SAAW,KAEtG,OACE,uBAAKlC,UAAS,UAAK,OAAW,kBAC1BU,EAAMyE,SACN,gBAAC1E,EAAgB,CACfI,KAAMH,EAAMG,KACZE,gBAAiBL,EAAMK,kBAG1ByD,GACC,uBAAKY,MAAO,CAAEpD,gBAAAA,GAAmBhC,UAAW,oBAE5B,QAAjB,EAAAU,EAAMc,mBAAW,eAAEC,QAAS,GAAK,gBAACL,EAAc,iBAAKV,EAAK,CAAE8D,iBAAkBA,KAGrF,C,8FCxCA,SAAgB,IAAM,QAAQ,QAAU,SCSxC,IAAMiC,EAAY,qCAOZ,SAAUxB,EAAcvE,GAC5B,OACE,gBAACgG,EAAA,EAAO,CAACf,MAAOnF,EAAA,YAA0BiG,EAAW,WAAYE,kBAAiB,kBAAa,WAAkBC,UAAQ,GACvH,uBAAK5G,UAAS,8CAAyC,MAAU,YAAIU,EAAMV,YACzE,gBAACiG,EAAA,EAAY,CAACC,QAAS,cACrBxF,EAAMwE,UAAY1E,EAAA,YAA0BiG,EAAW,eAIjE,C,4JCzBA,SAAgB,WAAa,QAAQ,OAAS,QAAQ,KAAO,QAAQ,KAAO,SCgCtE,SAAUI,EAAqBnG,G,cAC7BkE,EAAUlE,EAAMsE,WAAWtE,EAAMoG,MAAM5E,QAAQ6B,GAAIrD,EAAMoG,MAAM/B,MAE/D/C,EAA0C,QAAxB,EAAAtB,EAAMuB,0BAAkB,sBAAGvB,EAAMoG,MAAM5E,SACzDG,EAA0B,QAAhB,EAAA3B,EAAM4B,kBAAU,sBAAG5B,EAAMoG,MAAM5E,SACzC6E,EAA8B,QAAlB,EAAArG,EAAMsG,oBAAY,sBAAGtG,EAAMoG,MAAM5E,SAC7CJ,IAAkBpB,EAAMoG,MAAM/E,QAC9BU,EAAe/B,EAAMoG,MAAM5E,QAAQQ,SAAWC,EAAA,aAC9CsE,EAA8B,QAAlB,EAAAvG,EAAMwG,oBAAY,sBAAGxG,EAAMoG,MAAM5E,SAC7CiF,EAAkC,QAApB,EAAAzG,EAAM0G,sBAAc,uBAElClD,EAAqC,CACzCC,WAAY,WACZC,OAAQ,kBACRC,SAAU3D,EAAM2G,QAAU,mBAAgC,kBAEtD7D,EAAgB,CACpBM,QAASpD,EAAMoG,MAAM5E,QAAQ6B,GAC7BJ,QAASjD,EAAMoG,MAAMvD,eACrBE,eAAgB/C,EAAM+C,eACtB5C,KAAMD,EAAA,SAAkB,IAAI0G,KAAK5G,EAAMoG,MAAMpB,WAAY,cACzDhD,OAAQhC,EAAMoG,MAAM5E,QAAQQ,QAG9B,OACE,2BACGuE,GACC,0BAAKA,GAGP,uBAAKxC,QAAS,WACRhC,GACFiC,EAAA,gBAA8BlB,EAAeU,EACjD,GACE,gBAACS,EAAA,EAAO,CACNC,SAAUnC,GAAgBmC,EAC1B5E,UAAS,UAAMyC,EAAkC,GAAnB,iBAAqB,yBACnDgC,QAAS/D,EAAM+D,QACfP,iBAAkBA,EAClBV,cAAeA,GAEf,uBACExD,UAAS,6CAAwC,UACjDoF,MAAO,CAAEpD,gBAAAA,EAAiBwD,gBAAiB,QAAF,OAAUuB,EAAS,QAE5D,uBAAK/G,UAAS,sEACZ,uBAAKA,UAAU,6BACZqC,GACC,uBAAKrC,UAAS,UAAK,OAAW,uDAC5B,gBAACuH,EAAA,EAAS,CAACC,KAAMnF,KAGrB,uBAAKrC,UAAU,cACZyC,GAAgB,gBAACwC,EAAA,EAAa,CAACjF,UAAS,mEAA8D,UAEtG8B,GACC,uBAAK9B,UAAU,QAAQyF,EAAA,iBAAkC/E,EAAMoG,MAAMpB,UAAWhF,EAAMoG,MAAM/E,UAE9F,sBAAI/B,UAAS,oCAA+BU,EAAMoG,MAAMW,YAAc,UAAY,WAAa9B,MAAOjF,EAAMoG,MAAM/B,MAAOrE,EAAMoG,MAAM/B,QAIzI,uBAAK/E,UAAU,oCACXyC,GACA,gBAACiF,EAAA,EAAY,CAAC1H,UAAU,oCACrBmH,OAOb,uBAAKnH,UAAU,gCAAgC2H,wBAAyB,CAAEC,OAAQ1H,EAAA,cAA0BQ,EAAMoG,MAAMW,aAAe/G,EAAMoG,MAAM5E,QAAQuF,iBAInK,C,gFCtGaI,EAAmB,CAC9BC,eAAc,SACZC,EACAC,EACAvE,GAEA,MAAO,CACLwE,IAAK,eAAqB,+CAAgD,CAAEF,KAAAA,EAAMC,GAAAA,EAAIvE,eAAAA,IACtFyE,UAAW,eAAqB,uCAAwC,CAAEH,KAAAA,EAAMC,GAAAA,EAAIvE,eAAAA,IACpF0E,IAAK,gBAAF,OAAkB1E,EAAc,wBAAgBsE,EAAI,cAAMC,GAEjE,EAEAI,sBAAqB,SACnBC,EACA5E,GAEA,IAAM6E,EAAS,CACb7E,eAAAA,EACA8E,MAAO,EACPR,KAAM,WAAkB,IAAIT,KAAQ,cACpCkB,WAAY,qBAGd,MAAO,CACLP,IAAK,eAAqB,+CAAD,OAAgDI,EAAgB,gBAAgBC,GACzGJ,UAAW,eAAqB,uCAAD,OAAwCG,EAAgB,gBAAgBC,GACvGH,IAAK,gBAAF,OAAkB1E,EAAc,kCAA0B4E,GAC7DI,WAAY,SAACC,GAAuB,OAAK,UAAkBA,EAAO,EAEtE,E,gDCjCWjD,EAAqB,CAChCkD,eAAc,SAACjD,EAAmB3D,GAChC,OAAKA,EAID2D,EAAUkD,MAAM,EAAG,KAAO7G,EAAQ6G,MAAM,EAAG,GAEtC,GAAP,OAAU,WAAkBlD,EAAW,SAAQ,cAAM,WAAkB3D,EAAS,UAG3E,GAAP,OAAU,WAAkB2D,EAAW,KAAI,cAAM,WAAkB3D,EAAS,KAAI,YAAI,WAAkB2D,EAAW,QAPxG,WAAkBA,EAAW,QAQxC,EAEAmD,iBAAgB,SAACf,EAAiCgB,GAChD,OAAOhB,EAAeiB,QAAO,SAAAnH,GAAC,OAAI,WAAkBA,EAAE8D,UAAW,aAAe,WAAkBoD,EAAO,UAAU,GACrH,EAEAE,eAAc,SAACnI,GACb,MAAO,GAAP,OAAU,wBAA+B,QAAeA,EAAM,SAAQ,YAAI,WAAkBA,EAAM,QACpG,E,mHCvBF,SAAgB,QAAU,SCa1B,IAAM4F,EAAY,kBAgBZ,SAAUwC,EAAevI,G,gBAC7B,IAAKA,EAAMwI,KACT,OAAO,iCAET,GAAIxI,EAAMwI,OAAS,cAA6BxI,EAAMyI,qBACpD,OACE,uBAAKnJ,UAAU,QACb,sBAAIA,UAAU,WACZ,gBAACoJ,EAAA,EAAI,CAAC3C,UAAWA,EAAW4C,OAAO,cAM3C,IAAMC,EAAO,CAAC,CACZvE,KAAMvE,EAAA,YAA0BiG,EAAW,UAC3C7B,QAAuB,QAAd,EAAAlE,EAAM6I,gBAAQ,eAAEC,OACzBC,OAAyB,WAAjB/I,EAAM+I,OACdjG,cAAe,CACbuB,KAAMvE,EAAA,YAA0BiG,EAAW,UAC3CwB,IAAK,aAAoC,QAAd,EAAAvH,EAAM6I,gBAAQ,eAAEC,SAE7CtF,iBAAkB,CAChBC,WAAY,WACZC,OAAQ,SACRC,SAAU,iBAEX,CACDU,KAAMvE,EAAA,YAA0BiG,EAAW,YAC3C7B,QAAuB,QAAd,EAAAlE,EAAM6I,gBAAQ,eAAEG,SACzBD,OAAyB,aAAjB/I,EAAM+I,OACdjG,cAAe,CACbuB,KAAMvE,EAAA,YAA0BiG,EAAW,YAC3CwB,IAAK,aAAoC,QAAd,EAAAvH,EAAM6I,gBAAQ,eAAEG,WAE7CxF,iBAAkB,CAChBC,WAAY,WACZC,OAAQ,SACRC,SAAU,kBAqBd,OAjBI3D,EAAMiJ,cACRL,EAAKM,KAAK,CACR7E,KAAMvE,EAAA,YAA0BiG,EAAW,YAC3C7B,QAAuB,QAAd,EAAAlE,EAAM6I,gBAAQ,eAAEM,SACzBJ,OAAyB,aAAjB/I,EAAM+I,OACdjG,cAAe,CACbuB,KAAMvE,EAAA,YAA0BiG,EAAW,YAC3CwB,IAAK,aAAoC,QAAd,EAAAvH,EAAM6I,gBAAQ,eAAEM,WAE7C3F,iBAAkB,CAChBC,WAAY,WACZC,OAAQ,SACRC,SAAU,kBAMd,uBAAKrE,UAAU,oBACb,gBAAC8J,EAAA,EAAe,CACdR,KAAMA,EACNtJ,UAAW,YAInB,C,oHC7EA,SAAS+J,EAAYrJ,GACnB,OACE,kCACKA,EAAMsJ,IAAI9D,SACX,uBAAKlG,UAAWU,EAAMsJ,IAAIjF,KAAO,OAAS,IACxC,gBAAC,IAAY,CAACmB,QAASxF,EAAMsJ,IAAI9D,WAIpCxF,EAAMsJ,IAAIjF,KAEmB,iBAArBrE,EAAMsJ,IAAIC,OACjB,uBAAKjK,UAAU,QACb,gBAAC,IAAK,CAACkJ,KAAM,UAAiB1B,KAAM9G,EAAMsJ,IAAIC,SAKxD,CA6BM,SAAUH,EAAgBpJ,G,MAW9B,OACE,uBAAKV,UAA0B,QAAf,EAAAU,EAAMV,iBAAS,QAAI,IACjC,sBAAIA,UAAS,qDACwB,oBAAsB,qBACvDU,EAAMwJ,aAAe,gBAAqB,GAAE,qBAC5CxJ,EAAMyJ,cAAa,aAEpBzJ,EAAM4I,KAAK1F,KAAI,SAACoG,EAAKI,GACpB,OACE,sBACEpK,UAAS,gCACD,QAAU,YAAIgK,EAAIP,OAAS,eAAiB,uBAAsB,6BACtEO,EAAIjF,KAAO,aAAkB,GAAE,YAAIiF,EAAIhK,UAAS,oBAEpDmI,IAAKiC,GAEJJ,EAAIpF,QACH,gBAAC,IAAO,CACNA,QAASoF,EAAIpF,QACbpB,cAAewG,EAAIxG,cACnBU,iBAAkB8F,EAAI9F,iBACtBlE,UAAS,sKAE4C,YAAc,yBAGnE,gBAAC+J,EAAW,CAACC,IAAKA,KAGpB,gBAAC,IAAS,CACRhK,UAAS,qKAE2C,YAAc,wBAElEyE,QAAS,kBA5CzB,SAAqBuF,IACfA,EAAIP,QAAWO,EAAIK,WAGvBL,EAAIK,WAEAL,EAAIxG,eAAiBwG,EAAI9F,kBAC3B,kBAA8B8F,EAAIxG,cAAewG,EAAI9F,kBACzD,CAoC+BoG,CAAYN,EAAI,GAE/B,gBAACD,EAAW,CAACC,IAAKA,KAK5B,KAIR,CA5DAF,EAAgBS,aAAe,CAC7BL,aAAc,K,iBC9DhB,IAAYvH,E,iBAAZ,SAAYA,GACV,gBACA,0BACA,uBACD,CAJD,CAAYA,IAAAA,EAAoB,I,2JCDhC,SAAgB,QAAU,QAAQ,gBAAkB,QAAQ,QAAU,S,sGCahE,SAAU6H,EAAa9J,G,UACnBG,EAA0BH,EAA1BG,KAAME,EAAoBL,EAApBK,gBACiD,G,EAAzB,WAAuB,G,EAAE,E,o4BAAvDM,EAAU,KAAEC,EAAa,KAE7BmJ,EAAmB,4BAAH,OAA+B/J,EAAMgK,MAAMC,OAAM,YAAI,YAR3E,SAAsB9J,GACpB,OAAuC,IAAhCD,EAAA,aAAsBC,IAA+C,IAAhCD,EAAA,aAAsBC,EACpE,EAOM+J,CAAa/J,KAAO4J,GAAoB,IAAJ,OAAQ,YAC5C1J,IAAiB0J,GAAoB,IAAJ,OAAQ,oBAE7C,IAAMjJ,GAA0B,QAAZ,EAAAd,EAAMgI,cAAM,eAAEK,QAAO,SAAAnH,GAAC,OAAIhB,EAAA,SAAkBF,EAAMG,KAAMe,EAAE8D,UAAU,MAAK,GACvFmF,EAAe,OAAH,wBAAQnK,GAAK,CAAEc,YAAAA,EAAaH,WAAAA,EAAYC,cAAAA,IAE1D,OACE,sBAAItB,UAAWyK,IACZjJ,aAAW,EAAXA,EAAaC,QAAS,EACrB,gBAACqJ,EAAA,EAAsB,CACrBC,mBAAoBvE,EAAA,EACpBwE,eAAgBH,EAChBI,WAAY,OAEZ,gBAACzE,EAAA,EAAW,iBAAKqE,EAAY,CAAE7J,YAAY,KAGrD,C,2DC3BMyF,EAAY,gCACZlG,EAAYC,EAAA,mBAAiCiG,GAQ7C,SAAUyE,EAAuBxK,GACrC,OACE,gBAAC,aAAiC,CAACyK,MAAO1E,GACxC,gBAAC2E,EAAA,EAAU,KACT,gBAACA,EAAA,QAAgB,CAAC9F,IAAK5E,EAAM2K,SAAUC,QAAS/K,EAAU,UAC1D,gBAAC6K,EAAA,UAAkB,KAAE1K,EAAM6K,SAAW,gBAACnC,EAAA,EAAI,CAACC,OAAO,aAClD3I,EAAMkE,SACP,gBAACwG,EAAA,OAAe,KACd,gCACE,gBAAChC,EAAA,EAAI,CAAC3C,UAAWA,EAAW4C,OAAO,SACnC,gBAAC1E,EAAA,EAAO,CAACC,QAASlE,EAAMkE,SACtB,wBAAM5E,UAAU,aAAaO,EAAU,aAQrD,C,cCpCA,SAAgB,KAAO,QAAQ,MAAQ,SCsBjC,SAAUiL,EAAiB9K,GAC/B,IAAM+K,EAAuE,CAAC,EAE9E/K,EAAMgI,OAAOgD,SAAQ,SAAA9J,GACnB,IAAM8D,EAAY9D,EAAE8D,UAChB+F,EAAc/F,GAChB+F,EAAc/F,GAAWkE,KAAKhI,GAE9B6J,EAAc/F,GAAa,CAAC9D,EAEhC,IAEA,IAAM+J,EAAOC,OAAOD,KAAKF,GAGzB,OAFAE,EAAKE,MAAK,SAACC,EAAGC,GAAC,OAAKnL,EAAA,WAAoBkL,EAAGC,IAAM,EAAI,CAAC,IAGpD,uBAAK/L,UAAU,QACZ2L,EAAK/H,KAAI,SAACoI,EAAGnK,GACZ,IAAIoK,EAAW,GACXC,EAAc,GAClB,OACE,uBAAK/D,IAAK6D,GACR,uBAAKhM,UAAS,kBAAa,OAAW,YAAY,IAAR6B,EAAY,QAAe,KAAO4D,EAAA,iBAAkCuG,IAC7GP,EAAcO,GAAGpI,KAAI,SAAAhC,G,MAIpB,OAHAqK,EAAWC,EACXA,EAAgC,QAAlB,EAAAxL,EAAMwG,oBAAY,sBAAGtF,EAAEM,SAGnC,gBAAC2E,EAAA,EAAoB,CACnBsB,IAAKvG,EAAEM,QAAQ6B,GACfiB,WAAY,SAACjB,EAAIgB,GACf,OAAOrE,EAAMkE,QAAQb,EAAIoI,EAAA,UAAmBpH,GAC9C,EACA+B,MAAOlF,EACP6B,eAAgB/C,EAAM+C,eACtBnB,WAAY5B,EAAM4B,WAClB0E,aAActG,EAAMsG,aACpB/E,mBAAoBvB,EAAMuB,mBAC1BmF,eAAgB,kBAAM1G,EAAM0G,eAAexF,EAAEM,QAAQ,EACrDgF,aAAcxG,EAAMwG,cAAgB+E,IAAaC,EAC7CxL,EAAMwG,aACN,MAIV,IAGN,IAGN,CCzEA,SAAgB,OAAS,QAAQ,MAAQ,S,ggCCiDnC,SAAUkF,EAAa1L,G,MACnB6I,EAAwB7I,EAAxB6I,SAAU8C,EAAc3L,EAAd2L,UAEZC,GAAc,EAAAC,EAAA,KAEdd,EAAgBhG,EAAA,mBAAoC/E,EAAMgI,QAAU,GAAIhI,EAAM8L,cAEjB,IAArB,YAAe,GAAM,GAA3D5J,EAAc,KAAEQ,EAAiB,KAC0D,IAAzD,WAAoD,MAAK,GAA3FE,EAAY,KAAED,EAAe,KAErC,OAAI3C,EAAM+L,gBAAiBhB,aAAa,EAAbA,EAAehK,QAEtC,gBAACyJ,EAAsB,CACrBG,SAAUgB,EAAUK,WACpB9H,QAAoC,QAA3B,EAAA2E,EAASoD,0BAAkB,uBACpCpB,QAAS7K,EAAMkM,oBAKE,SAAnBlM,EAAMmM,UAAuBP,EAAYQ,IAAMR,EAAYS,IAAMT,EAAYU,GAC1EtM,EAAM+L,aAST,gBAACjB,EAAgB,CACf9C,OAAQ+C,EACRhI,eAAgB/C,EAAM+C,eACtBmB,QAASlE,EAAM6I,SAASzC,MACxBxE,WAAY5B,EAAM4B,WAClB0E,aAActG,EAAMsG,aACpB/E,mBAAoBvB,EAAMuB,mBAC1BmF,eAAgB1G,EAAM0G,eACtBF,aAAcxG,EAAMwG,eAfpB,uBAAKlH,UAAU,yDACb,gBAACiN,EAAA,EAAO,CAACC,GAAG,MAAMC,UAAU,SAASC,KAAK,YAoBhD,yBAAOpN,UAAU,8DACf,yBAAOA,UAAS,iBAAYU,EAAMgK,MAAMC,OAAM,YAAI,UAChD,sBAAI3K,UAAS,sBAAiBU,EAAMgK,MAAM2C,WAAU,YAAI,WACrD3M,EAAM4M,eAAe1J,KAAI,SAAA2J,GAAC,OAAI,sBAAIpF,IAAKoF,EAAGvN,UAAU,WAAWuN,EAAO,MAI3E,6BACG7M,EAAM8M,SAAS5J,KAAI,SAAA2J,GAAC,OACnB,sBAAIpF,IAAKoF,EAAE,GAAGE,YACXF,EAAE3J,KAAI,SAAA8J,GACL,OACE,gBAAClD,EAAY,CACXrC,IAAKuF,EAAED,WACP5M,KAAM6M,EACN3M,kBAAmB2M,EAAE3M,gBACrB2H,OAAQhI,EAAMgI,OACdiF,WAAYjN,EAAMiN,WAClB/K,eAAgBA,EAChBQ,kBAAmBA,EACnBK,eAAgB/C,EAAM+C,eACtBH,aAAcA,EACdoH,MAAOhK,EAAMgK,MACbrH,gBAAiBA,EACjBwB,qBAAsB,kBAAMnE,EAAM6I,SAASqE,UAAUlN,EAAMiN,WAAYD,EAAGhN,EAAM+C,eAAe,EAC/FqB,gBAAiB,SAACnB,EAASoB,GAAI,OAAKrE,EAAM6I,SAASzC,MAAMnD,EAASwI,EAAA,UAAmBpH,GAAM,EAC3FzC,WAAY5B,EAAM4B,WAClBL,mBAAoBvB,EAAMuB,mBAC1BO,YAAa9B,EAAM8B,YACnBJ,kBAAmB1B,EAAM0B,mBAG/B,IACG,KAKf,CA/GAgK,EAAa7B,aAAe,CAC1BG,MAAO,CACLC,OAAQ,oBACR0C,WAAY,kB,0BCdVQ,EAAsB,IAAIvG,KAAK,cAC/BwG,EAAmB,GAgBzB,SAASC,EAAgClN,EAAYmN,GAMnD,IALA,IAAMC,EAAWrN,EAAA,UAAmBC,EAAM,SACpCqN,EAAetN,EAAA,aAAsBqN,GACrCE,EAAgB,GAChBC,EAAqBJ,EAA8B,IAAjBE,EAAqB,EAAIA,EAAe,EAAIA,EAE3E3H,EAAIyH,EAAa,EAAI,EAAGzH,GAAK6H,EAAoB7H,IAAK,CAC7D,IAAM8H,EAAcJ,EACdK,EAAS1N,EAAA,UAAmByN,EAAaH,EAAe3H,GAC9D4H,EAAcvE,KAAKgC,OAAO2C,OAAOD,EAAQ,CAAEvN,iBAAiB,IAC7D,CAED,OAAOoN,EAAcK,SACvB,CAGA,SAASC,EAA4B5N,EAAYmN,GAM/C,IALA,IAAMU,EAAU9N,EAAA,QAAiBC,EAAM,SACjC8N,EAAc/N,EAAA,aAAsB8N,GACpCE,EAAgB,GAChBC,EAAqBb,EAAa,GAAqB,IAAhBW,EAAoB,EAAIA,GAAe,EAAIA,EAE/EpI,EAAI,EAAGA,GAAKsI,EAAoBtI,GAAK,EAAG,CAC/C,IAAMuI,EAAUlO,EAAA,MAAe8N,EAASnI,EAAG,QAC3CqI,EAAchF,KAAKgC,OAAO2C,OAAOO,EAAS,CAAE/N,iBAAiB,IAC9D,CAED,OAAO6N,CACT,CAgCA,SAASG,EAAuBC,GAC9B,IAAMC,EAAkBrO,EAAA,UAAmBoO,EAAW,SACtD,OAA+C,IAA3CpO,EAAA,aAAsBqO,GACjBA,EAEFC,EAAA,QAAkBnB,EAAgCiB,GAAW,GACtE,CAEA,SAASG,EAAsBH,GAC7B,IAAMI,EAAiBxO,EAAA,QAAiBoO,EAAW,SACnD,OAA8C,IAA1CpO,EAAA,aAAsBwO,GACjBA,EAEFF,EAAA,OAAiBT,EAA4BO,GAAW,GACjE,CAEM,SAAUK,EAAiBL,GAC/B,MAAO,CAAED,EAAuBC,GAAYG,EAAsBH,GACpE,CAEA,SAASM,EAAsBC,GAC7B,OAAOA,EAASC,OAAO,GAAGC,cAAgBF,EAAS3G,MAAM,EAC3D,CAgBA,IAAM8G,EAAW,IAAIpI,K,4CC5HrB,SAAgB,QAAU,QAAQ,KAAO,QAAQ,MAAQ,QAAQ,kBAAoB,SCoBrF,IAAM,EAAY,mCAgBlB,SAASqI,EAAiBjP,GACxB,OACE,uBAAKV,UAAS,UAAK,oBAAwB,uBACzC,gBAAC4P,EAAA,EAAU,CACT1J,QAAS,cACTlG,UAAS,UAAwB,aAAnBU,EAAMmM,SAA0B,qBAAuB,GAAE,6EACvEpI,QAAS,kBAAM/D,EAAMmP,YAAY,WAAW,EAC5CrM,cAAe,CAAC,EAChBU,iBAAkB,CAChBE,OAAQ,aACRD,WAAY,WACZ2L,WAAY,KAAAC,SACZ1L,SAAU,oBAGd,gBAACuL,EAAA,EAAU,CACT1J,QAAS,qBACTlG,UAAS,UAAwB,SAAnBU,EAAMmM,SAAsB,qBAAuB,GAAE,+EACnEpI,QAAS,kBAAM/D,EAAMmP,YAAY,OAAO,EACxCrM,cAAe,CAAC,EAChBU,iBAAkB,CAChBE,OAAQ,aACRD,WAAY,WACZ2L,WAAY,UACZzL,SAAU,oBAKpB,CAOA,SAAS2L,EAAetP,GACtB,IAAMuP,EAA4B,aAAjBvP,EAAMsF,OAAwB,iBAA2B,kBACpEhG,EAA6B,aAAjBU,EAAMsF,OAAwB,OAAc,QAE9D,OACE,gBAACJ,EAAA,EAAS,CACR5F,UAAS,UAAK,UAAc,YAAIA,EAAS,gGACzCyE,QAAS/D,EAAM+D,SAEf,gBAACwB,EAAA,EAAY,CACXC,QAAS+J,EACT5J,KAAMJ,EAAAiK,EAAA,OACNlQ,UAAS,uCAAkC,SAInD,CAEA,IAAM,EAAW,IAAIsH,KAEf,SAAU6I,EAAYzP,GAC1B,IAAQ6I,EAAa7I,EAAb6I,SAEF+C,GAAc,EAAAC,EAAA,KAEpB,SAASvH,EAAWgK,G,QACZlG,EAAQlI,EAAA,SAAkBoO,EAAW,QAAQoB,oBAE7CxL,EAAwB2E,EAAST,MAAMA,GAEvCR,EAAqB,CAAC,EAE5B,GAAI0G,EAAW,CACb,IAAMqB,GAAc,IAAI/I,MAAOgJ,cACzBC,EAAOvB,EAAUsB,cAEnBD,IAAgBE,IAClBjI,EAAOiI,KAAOA,EACjB,CAUD,OARqB,QAAjB,EAAA7P,EAAM8P,mBAAW,eAAEC,kBACrBnI,EAAOmI,eAAiB/P,EAAM8P,YAAYC,iBAEvB,QAAjB,EAAA/P,EAAM8P,mBAAW,eAAEE,aACrBpI,EAAOoI,UAAYhQ,EAAM8P,YAAYE,WAEvC9L,EAAQ0D,OAASA,EAEV1D,CACT,CAkBA,IFdkCoK,EAC5B2B,EEaN,GFdkC3B,EEciBtO,EAAMsO,UFbnD2B,EAAY/P,EAAA,cAAuBA,EAAA,UAAmBoO,EAAW,SAAUpO,EAAA,UAAmB8O,EAAU,SAAU,UAGjH,CAAEkB,SAFQhQ,EAAA,UAAmBoO,EAAWnB,EAAqB,SAEjDgD,SADFF,EAAY7C,IEWrB8C,EAAQ,EAARA,SAAUC,EAAQ,EAARA,SAEZ3M,EAAqC,CACzCC,WAAY,WACZC,OAAQ,kBACRC,SAAU,kBAGZ,SAASC,EAAuBzD,GAC9B,OAAOD,EAAA,SAAkBC,EAAM,aACjC,CACA,OACE,uBAAKb,UAAU,iEACb,sBAAIA,UAAU,mBAAmBY,EAAA,SAAkBF,EAAMsO,UAAW1C,EAAYQ,GAAK,WAAa,cAEjGpM,EAAMoQ,SAENpQ,EAAMmP,aACL,gBAACF,EAAgB,CAAC9C,SAAUnM,EAAMmM,SAAUgD,YAAanP,EAAMmP,cAEjE,uBAAK7P,UAAU,gBACZ4Q,GACC,gBAACjM,EAAA,EAAO,CACNC,QAASI,EAAWpE,EAAA,UAAmBA,EAAA,WAAoBF,EAAMsO,UAAW,EAAG,SAAU,UACzFhP,UAAU,SACVkE,iBAAkBA,EAClBV,cAAe,CAAEwC,OAAQ,WAAYnF,KAAMyD,EAAuB1D,EAAA,UAAmBA,EAAA,MAAeF,EAAMsO,UAAW,EAAG,SAAU,YAElI,gBAACgB,EAAc,CAAChK,OAAO,WAAWvB,QAvC5C,WACE,IAAMsM,EAAYnQ,EAAA,WAAoBF,EAAMsO,UAAW,EAAG,SAC1DtO,EAAMsQ,oBAAoBD,EAC5B,KAuCM,gBAACpM,EAAA,EAAO,CACNC,QAASI,IACThF,UAAU,SACVkE,iBAAkBA,EAClBV,cAAe,CAAEwC,OAAQ,QAASnF,KAAMyD,EAAuB1D,EAAA,UAAmB,EAAU,YAE5F,gBAACgF,EAAA,EAAS,CAAC5F,UAAS,UAAK,eAAmB,qCAAqCyE,QA3CzF,WACM7D,EAAA,SAAkB,EAAU,UAAYA,EAAA,SAAkBF,EAAMsO,UAAW,SAE/EtO,EAAMsQ,qBACR,GAwCWxQ,EAAA,YAA0B,EAAW,WAGzCqQ,GACC,gBAAClM,EAAA,EAAO,CACNC,QAASI,EAAWpE,EAAA,UAAmBA,EAAA,MAAeF,EAAMsO,UAAW,EAAG,SAAU,UACpFhP,UAAU,SACVkE,iBAAkBA,EAClBV,cAAe,CAAEwC,OAAQ,OAAQnF,KAAMyD,EAAuB1D,EAAA,UAAmBA,EAAA,MAAeF,EAAMsO,UAAW,EAAG,SAAU,YAE9H,gBAACgB,EAAc,CAAChK,OAAO,OAAOvB,QAhExC,WACE,IAAMwM,EAAYrQ,EAAA,MAAeF,EAAMsO,UAAW,EAAG,SACrDtO,EAAMsQ,oBAAoBC,EAC5B,MAmEF,CCzLA,IAAM,EAAY,gCACZ,EAAYzQ,EAAA,mBAAiC,GAO7C,SAAU0Q,EAAuBxQ,GACrC,OACE,gBAAC,aAAiC,CAACyK,MAAO,GACxC,gBAACC,EAAA,EAAU,KACT,gBAACA,EAAA,QAAgB,CAAC9F,IAAK5E,EAAM2K,WAC7B,gBAACD,EAAA,UAAkB,KAAC,gBAAChC,EAAA,EAAI,CAACC,OAAO,aACjC,gBAAC+B,EAAA,OAAe,KACd,gBAAChC,EAAA,EAAI,CAAC3C,UAAW,EAAW4C,OAAO,SACnC,2BACA,gBAAC1E,EAAA,EAAO,CAACC,QAASlE,EAAMkE,SACtB,wBAAM5E,UAAU,aAAa,EAAU,YAMnD,C,6+CClBA,IAAMmR,GAAa,IAAI7J,KAEjB,SAAU8J,KAAqG,I,IAA/EvQ,EAAA,uDAAasQ,GAAY5H,EAA0B,uCAAEyE,IAAA,yDACnFV,EJuCF,SAAuBU,GAC3B,IAAMqD,EAAWrD,EAAa,CAAE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAM,CAAE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACtEnN,EAAO,IAAIyG,KACjB,OAAO+J,EAASzN,KAAI,SAAA2J,GAAC,OAAI3M,EAAA,SAAkBA,EAAA,UAAmBC,EAAM0M,GAAI,MAAM,GAChF,CI3CyB+D,CAAatD,GAE9BuD,EAAW,SAAoB,CAAC,GAE+B,G,EAAnC,WAAgC,I,EAAG,E,s4BAA7D/D,EAAQ,KAAEgE,EAAW,KACvBC,EAAkB7Q,EAAA,SAAkBC,EAAM,WAChD,aAAgB,WACd,IAAM6Q,EAASH,EAASI,QAAQF,GAChC,GAAKC,EAOHF,EAAYE,EAAOE,gBAPR,CACX,MJoCA,SAA0B/Q,EAAYmN,GAQ1C,IAPA,IAAM4D,EAAyB,GACzBC,EAAmC,CAAC,EAEpCC,EAAY/D,EAAgClN,EAAMmN,GACrD+D,OAvDL,SAAwBlR,GAKtB,IAJA,IAAMmR,EAAepR,EAAA,cAAuBC,GAEtCoR,EAAY,GAET1L,EAAI,EAAGA,GAAKyL,EAAczL,IAAK,CACtC,IAAM2L,EAAMtR,EAAA,MAAeC,EAAM,OAAQ0F,GACzC0L,EAAUrI,KAAKgC,OAAO2C,OAAO2D,EAAK,CAAEnR,iBAAiB,IACtD,CAED,OAAOkR,CACT,CA4CYE,CAAetR,IACtBkR,OAAOtD,EAA4B5N,EAAMmN,IAAa,cAGvD,IAAMoE,EAAON,EAAUlJ,MAAMyJ,EAAGA,EAAI,GACpCD,EAAK1G,SAAQ,SAACwG,EAAKI,GACjBT,EAAgBjR,EAAA,SAAkBsR,EAAK,eAAiB,CAAEK,IAAK,EAAOC,IAAKF,EAC7E,IAEAV,EAAWhI,KAAKwI,GAChB,IAAQ,G,EAPDC,EAAI,EAAGI,EAAQ,EAAGJ,EAAIP,EAAUrQ,OAAQ4Q,GAAQ,EAAC,KAU1D,MAAO,CACLR,gBAAAA,EACAD,WAAAA,EAEJ,CI1D8Cc,CAAgB7R,EAAMmN,GAAtD4D,EAAU,EAAVA,WAAYC,EAAe,EAAfA,gBAEpBN,EAASI,QAAQF,GAAmB,CAAEG,WAAAA,EAAYC,gBAAAA,GAElDL,EAAYI,E,CAIhB,GAAG,CAAChR,EAAA,SAAkBC,EAAM,aAwB5B,IAAM6E,EAAYwJ,EAAA,QAAkBA,EAAA,QAAkB1B,IAChDzL,EAAUmN,EAAA,OAAiBA,EAAA,OAAiB1B,IAElD,MAAO,CAAEF,eAAAA,EAAgBE,SAAAA,EAAUwB,UAAWnO,EAAM8R,aAzBpD,SAA6BC,GAC3B,GAAKA,GAML,GAAInB,IAAoB7Q,EAAA,SAAkBgS,EAAe,WAAY,CACnE,IAAM9J,EAAQlI,EAAA,SAAkBgS,EAAe,QAAQxC,oBAEjDC,GAAc,IAAI/I,MAAOgJ,cACzBC,EAAO1P,EAAKyP,cAEZ1L,EAAwB2E,EAAST,MAAMA,GAEzCuH,IAAgBE,IAClB3L,EAAQ0D,OAAS,CAAEiI,KAAAA,IAErB,eAA2B3L,EAC5B,OAjBC,eAA2B2E,EAASM,WAkBxC,EAKuFnE,UAAAA,EAAW3D,QAAAA,EACpG,C,mMCrDM,SAAU8Q,GAAqBC,GACnC,OAAQA,aAAW,EAAXA,EAAa1C,qBACnB,KAAK2C,GAAAC,EAAA,GACH,MAAO,CACLtG,WAAYuG,GAAA,oCACZC,WAAYD,GAAA,qCAGhB,KAAKF,GAAAC,EAAA,GACH,MAAO,CACLtG,WAAYuG,GAAA,oCACZC,WAAYD,GAAA,qCAGhB,KAAKF,GAAAC,EAAA,GACH,MAAO,CACLtG,WAAYuG,GAAA,oCACZC,WAAYD,GAAA,qCAGhB,QACE,MAAO,CACLvG,WAAYuG,GAAA,iCACZC,WAAYD,GAAA,qCAGpB,CAEM,SAAUE,KACd,MAAO,CACLtJ,SAAU,iBAAO,CAAEuJ,YAAa,cAAsBpN,OAAQ,uBAA2B,EACzF8C,MAAO,SAAC,GAAa,MAAM,CACzBsK,YAAa,cACbpN,OAAQ,6BACRqN,KAAM,CAAC,GACR,EACDvM,MAAO,SAAC/C,EAAYuP,GAAY,MAAM,CACpCF,YAAa,aACbpN,OAAQ,6BACRqN,KAAM,CAAEtP,EAAIuP,GACb,EACD1F,UAAW,SAACD,EAAwB9M,EAAmB4C,GAAsB,MAAM,CACjF2P,YAAa,cACbpN,OAAQ,iCACRsC,OAAQ,OAAF,wBACDqF,GAAU,CACb9M,KAAMA,EAAK4M,WACXhK,eAAgBA,IAEnB,EACDkJ,mBAAoB,iBAAO,CACzByG,YAAa,qBACbpN,OAAQ,oCACT,EAEL,C,gBC/BM,GAAYxF,EAAA,mBADA,qCAQZ,SAAU+S,GAAa7S,GAC3B,IAAM4L,GAAc,EAAAC,EAAA,KACZiH,GAAuB,EAAAC,GAAA,GAAgB,CAAEC,iBAAiB,IAA1DF,mBACR,GAAoC,EAAAG,GAAA,KAA5BhK,EAAY,EAAZA,aAAciK,EAAS,EAATA,UAChBC,EAAc,kBAAkCC,GAAA,iBAEhDC,ENgEF,SAA0BtC,GAC9B,IAAKA,EACH,OAAO,EACT,IAAMuC,EAAc1E,EAAsBmC,GAG1C,IAF2B7Q,EAAA,gBAAyBoT,EAAa,aAAa,GAG5E,OAAO,EAET,IAAMhF,EAAYpO,EAAA,kBAA2BoT,EAAa,aAE1D,OAAOpT,EAAA,SAAkBoO,EAAWnB,EAAqB,UAAYjN,EAAA,UAAmBoO,EAAWnB,EAAqB,QAC1H,CM5EuBoG,CAAgBvT,EAAMoI,OAE3C,aAAgB,WACT8K,GAAcjK,GACjB,gBAA2B,UAA4BH,OAAQ,CAAE0K,SAAS,GAC9E,GAAG,CAAEvK,EAAciK,IAEnB,IAAMpH,EN+EF,SAA2B+C,GAC/B,IAAKA,EACH,OAAO3O,EAAA,oBAET,IAAMoT,EAAc1E,EAAsBC,GAC1C,OAAO3O,EAAA,kBAA2BoT,EAAa,YACjD,CMrFuBG,CAAiBzT,EAAMoI,OAE5C,EAMIsI,GAAsB5E,EAAc2G,MALtCnE,EAAS,EAATA,UACA2D,EAAY,EAAZA,aACAnF,EAAQ,EAARA,SACAF,EAAc,EAAdA,eACA5H,EAAS,EAATA,UAAW3D,EAAO,EAAPA,QAGb,ECvDI,SAAgCqS,EAAiB3Q,GACrD,IAAM4Q,EAAM5Q,EAC8C,KAA3B4L,EAAiB+E,GAAU,GAAlD1O,EAAS,KAAE3D,EAAO,KAGwC,KAA3BsN,EADrBzO,EAAA,MAAewT,EAAW,EAAG,UACmB,GAA1DE,EAAa,KAAEC,EAAW,KAGgC,KAA3BlF,EADrBzO,EAAA,WAAoBwT,EAAW,EAAG,UACc,GAA1DI,EAAa,KAAEC,EAAW,KAE5B/L,EAAS,kBAAuChD,GAAa3D,GAAWsS,GACzExM,GAAA,iBAAgCjH,EAAA,SAAkB8E,EAAW,cAAe9E,EAAA,SAAkBmB,EAAS,cAAesS,IACrHK,EAAa,kBAAuCJ,GAAiBC,GAAeF,GACrFxM,GAAA,iBAAgCjH,EAAA,SAAkB0T,EAAe,cAAe1T,EAAA,SAAkB2T,EAAa,cAAeF,IAC7HM,EAAa,kBAAuCH,GAAiBC,GAAeJ,GACrFxM,GAAA,iBAAgCjH,EAAA,SAAkB4T,EAAe,cAAe5T,EAAA,SAAkB6T,EAAa,cAAeJ,IAOnI,MAAO,CAAE3L,OALewG,EAAA,OAAiB,GAAD,UACjCyF,EAAWnN,MAAQ,IAAE,GAAKkB,EAAOlB,MAAQ,IAAE,GAAKkN,EAAWlN,MAAQ,MACxE,SAAA5F,GAAC,OAAIA,EAAEgT,oBAAoB,IAGKC,OAAQnM,EAAOoM,aACnD,CDgC6BC,CAAsBvI,EAAcgH,EAAmBzP,IAA1E2E,EAAM,EAANA,OAAQmM,EAAM,EAANA,OAEVG,EAAmBpU,EAAA,SAAkBoO,EAAW,aAkBtD,IAhBA,EAAAiG,GAAA,GAAmBC,GAAA,sBAAsC,CACvDvP,MAAOqP,EACPG,cAAe,CACbC,cAAe,GACfC,YAAa,YACbC,kBAAmB,mBAErBC,cAAeC,GAAA,mBAAsD,CAAEC,cAAe,CAAC,UACvFC,cAAeF,GAAA,kBACfG,SAAUH,GAAA,yBACRhC,aAAkB,EAAlBA,EAAoBoC,cACpBzC,KAAsBtJ,SACtB,UAIgB,OAAhBnJ,EAAMoI,QAAmBiL,EAC3B,OACE,gBAAC7C,EAAsB,CACrB7F,SAAUwH,KAAuBK,WACjCtO,QAASuO,KAAsBtJ,aAmBrC,SAASzH,EAAkBqO,GACzB,OAAOoF,GAAA,gBAAwBpF,EAAe1M,GAChD,CAEA,OAAI6P,IAAcJ,aAAkB,EAAlBA,EAAoBzP,KAAO8P,EAAYrM,KAAKsL,YAI5D,uBAAK9S,UAAU,iBACb,gBAACiJ,GAAA,EAAc,CACbC,KAAM,YACNK,UAAU,UACVI,aAAcA,EACdF,OAAO,aAET,gBAAC0G,EAAW,CAACnB,UAAWA,EAAWgC,oBAAqB2B,EAAcpJ,SAAU4J,OAChF,gBAAC/G,EAAY,CACXoB,SAAUA,EACVF,eAAgBA,EAChB5E,OAAQA,EACRiF,WAAY,CAAE5F,KAAMrC,aAAS,EAATA,EAAW+H,WAAYzF,GAAIjG,aAAO,EAAPA,EAAS0L,YACxDjB,aAAcA,EACdC,aAAcoI,EACdpR,eAAgB+P,EAAmBzP,GACnCwF,SAAU4J,KACV9G,UAAWwG,GAAqBgB,EAAYrM,KAAKsL,aACjDxQ,WAAY,SAACmO,GAA8B,OAxCjD,SAAoBA,EAAgCtO,G,MAClD,OAAOA,EACH2T,GAAA,YAAuB3T,EAAeE,QAAU,CAAEgE,KAAM,eACxDyP,GAAA,YAAyC,QAAnB,EAAArF,EAAesF,YAAI,eAAE9N,IAAK,CAAE5B,KAAM,aAC9D,CAoCsD,CAAWoK,EAAgBrO,EAAkBqO,GAAgB,EAC7GjO,YAnCN,SAAqBiO,G,MACnB,OAAOqF,GAAA,YAA0C,QAApB,EAAArF,EAAeuF,aAAK,eAAE/N,IAAK,CAAE5B,KAAM,aAClE,EAkCMpE,mBAAoB,SAACwO,GAAkC,MAAC,OAAuB,QAAvB,EAAAA,EAAewF,gBAAQ,eAAEjU,eAAe,EAChGgF,aAAc,SAACyJ,GAAkC,MAAC,OAAqB,QAArB,EAAAA,EAAeyF,cAAM,eAAEjO,GAAG,EAC5Eb,eAlCN,WACE,OAAQkF,EAAYQ,GAAgC,GAAU,qBAArC,GAAU,cACrC,EAiCM1K,kBAAmBA,KA1BhB,gCA8BX,C,gJE1HM+T,EAAiC,iCAEjC,SAAUC,EACd9N,GAEA,MAAO,CACLmI,eAAgB,SAAC,GACf,MAAO,CACL2C,YAAa,YACbpN,OAAQ,4BACRqN,KAAM,CAAE,aAAc,EAAd,EAAgBtP,GAAI,YAAmB,aAAc,EAAd,EAAgBgB,OAC/DuD,OAAQA,GAAU,CAAC,EAEvB,EAEA+N,UAAW,SAACC,EAAmBC,GAA4B,OACzD,eAA8BD,EAAO,OAAF,wBAC9BC,GAAI,CACPC,QAAS,aACT,EAGJC,OAAQ,qBAERC,QAAS,SAACJ,GAAY,OAAK,qBAAqCA,EAAMG,OAAO,EAE7EE,SAAU,SAAC,GAAkB,MAAM,CACjCvD,YAAa,cACbpN,OAAQ,uBACRqN,KAAM,CAAE,EAAStP,GAAI,YAAmB,EAASgB,OAClD,EAED6R,eAAgB,iBAAO,CACrBxD,YAAa,oBACbpN,OAAQ,mCACT,EAED6Q,UAAW,iBAAO,CAChBzD,YAAa,YACbpN,OAAQ,gCACT,EAED8Q,6BAA8B,SAACrG,GAC7B,OAAIA,EAAe1M,KAAOoS,EACjB,CACL/C,YAAa,oBACbpN,OAAQ,oCAGL,CACLoN,YAAa,oBACbpN,OAAQ,yCACRqN,KAAM,CAAE5C,EAAe1M,GAAI,YAAmB0M,EAAe1L,OAEjE,EAEAgS,gBAAiB,SAACC,EAAkBC,GAAkB,MAAM,CAC1D7D,YAAa,cACbpN,OAAQ,wBACRqN,KAAM,CAAE2D,EAAU,YAAmBC,IACtC,EAEDC,aAAc,iBAAO,CACnB9D,YAAa,kBACbpN,OAAQ,sBACT,EAEDmR,OAAQ,SAAC,EAAgBC,GAAiB,MAAM,CAC9ChE,YAAa,WACbpN,OAAQ,gBACRsC,OAAQ,CACN+O,aAAa,EACbF,OAAQ,0BAAyC,CAAE,UAAkBC,GAAU,KAElF,EAEDE,QAAS,SAAC,GAAgB,MAAM,CAC9BlE,YAAa,kBACbpN,OAAQ,kCACRqN,KAAM,CAAE,EAAQtP,GAAI,YAAmB,EAAQgB,OAChD,EAEDwS,SAAU,iBAAO,CACfnE,YAAa,cACbpN,OAAQ,mBACT,EAED6D,SAAU,iBAAO,CACfuJ,YAAa,aACbpN,OAAQ,sBACT,EAEDwR,cAAe,SAAC1O,EAAeyH,GAC7B,IAAM3L,EAAwB,CAC5BwO,YAAa,aACbpN,OAAQ,4BACRqN,KAAM,CAACvK,EAAM2O,gBAMf,OAHIlH,IACF3L,EAAQ0D,OAAS,CAAEiI,KAAAA,IAEd3L,CACT,EAEA8S,eAAgB,SAACC,GAEf,OADiB,SACDA,EAClB,EAEAC,mBAAoB,WAClB,OAAO,QACT,EAEAC,eAAgB,6BAChBC,oBAAqB,kCACrBC,iBAAkB,+BAEtB,CAEM,SAAUC,IACd,MAAO,CACLxO,OAAQ,CACN4J,YAAa,cACbpN,OAAQ,oBAEV0D,SAAU,CACR0J,YAAa,oBACbpN,OAAQ,oCAEV6D,SAAU,CACRuJ,YAAa,aACbpN,OAAQ,uBAGd,C,+vDC7IA,IAAMiS,EAAiC,eACpC,OAAmB,CAElB,cAED,OAAmB,CAElB,cAED,OAAmB,CAElB,cAED,SAAqB,CAEpB,cAED,OAAmB,IACnB,WAAuB,IAGpB,SAAUtE,I,MACd,GAAuD,OAAY,MAA3DuE,EAAuB,EAAvBA,wBAAyBC,EAAiB,EAAjBA,kBAG/B3E,GACE,OAAgB,CAAEE,iBAAiB,IADrCF,mBAGIK,EAAc,kBAAkC,mBAEhDuE,EAAwBH,EAAkD,QAAhB,EAAApE,EAAYrM,YAAI,eAAE6Q,eAC5EzC,EAAgB,+BAAwCpC,aAAkB,EAAlBA,EAAoBoC,eAC5E0C,IAA2BF,aAAqB,EAArBA,EAAuBzW,MAAK,SAAA4W,GAC3D,OAAOA,EAAE9K,cAAgBmI,aAAa,EAAbA,EAA6CnI,WACxE,KAEM+K,GAAaL,IAAsBD,EAEgE,IAA/D,YAAyBM,IAAcF,GAAwB,GAAjG3O,EAAY,KAAE8O,EAAe,KAE2D,IAA5D,WAAeN,KAAsB3E,aAAkB,EAAlBA,EAAoBzP,KAAG,GAAxF6P,EAAS,KAAE8E,EAAY,KAW/B,OATA,aAAgB,WACVF,GAAaF,EACfG,GAAgB,GACN7E,GACV6E,GAAgB,GAElBC,EAAaP,KAAsB3E,aAAkB,EAAlBA,EAAoBzP,IACzD,GAAG,CAAEmU,EAAyB1E,aAAkB,EAAlBA,EAAoBzP,GAAI6P,IAElD,kBACK,CAAEjK,cAAc,EAAMiK,WAAW,GAEnC,CAAEjK,aAAAA,EAAciK,UAAAA,EACzB,C,mCCpEA,SAAgB,gBAAkB,QAAQ,IAAM,QAAQ,SAAW,QAAQ,YAAc,QAAQ,QAAU,Q","sources":["file:///app/packages/libs/common/src/react/utils/LinkifyHelper.ts","file:///app/packages/libs/shared/src/apps/calendar/components/calendar-cell-date/calendar-cell-date.scss","file:///app/packages/libs/shared/src/apps/calendar/components/calendar-cell-date/CalendarCellDate.tsx","file:///app/packages/libs/shared/src/apps/calendar/components/calendar-events/calendar-events.scss","file:///app/packages/libs/shared/src/apps/calendar/components/calendar-events/CalendarEvents.tsx","file:///app/packages/libs/shared/src/apps/calendar/components/calendar-day/calendar-day.scss","file:///app/packages/libs/shared/src/apps/calendar/components/calendar-day/CalendarDay.tsx","file:///app/packages/libs/shared/src/apps/calendar/components/coming-soon-tag/coming-soon-tag.scss","file:///app/packages/libs/shared/src/apps/calendar/components/coming-soon-tag/ComingSoonTag.tsx","file:///app/packages/libs/shared/src/apps/calendar/components/special-event-list-item/special-event-list-item.scss","file:///app/packages/libs/shared/src/apps/calendar/components/special-event-list-item/SpecialEventListItem.tsx","file:///app/packages/libs/shared/src/apps/calendar/flight-request/CalendarRequests.ts","file:///app/packages/libs/shared/src/apps/calendar/utils/SpecialEventHelper.ts","file:///app/packages/libs/shared/src/apps/discover/components/header/discover-header.scss","file:///app/packages/libs/shared/src/apps/discover/components/header/DiscoverHeader.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx","file:///app/packages/libs/shared/src/enums/ClassificationStatus.ts","file:///app/packages/libs/shared/src/apps/calendar/components/calendar-cell/calendar-cell.scss","file:///app/packages/libs/shared/src/apps/calendar/components/calendar-cell/CalendarCell.tsx","file:///app/packages/libs/shared/src/apps/calendar/components/empty-state/SpecialEventEmptyState.tsx","file:///app/packages/libs/shared/src/apps/calendar/components/special-event-list/special-event-list.scss","file:///app/packages/libs/shared/src/apps/calendar/components/special-event-list/SpecialEventList.tsx","file:///app/packages/libs/shared/src/apps/calendar/components/calendar-body/calendar-body.scss","file:///app/packages/libs/shared/src/apps/calendar/components/calendar-body/CalendarBody.tsx","file:///app/packages/libs/shared/src/apps/calendar/utils/CalendarHelper.ts","file:///app/packages/libs/shared/src/apps/calendar/components/calendar-nav/calendar-nav.scss","file:///app/packages/libs/shared/src/apps/calendar/components/calendar-nav/CalendarNav.tsx","file:///app/packages/libs/shared/src/apps/calendar/components/error-state/SpecialEventErrorState.tsx","file:///app/packages/libs/shared/src/apps/calendar/hooks/useCalendarWeeksTable.ts","file:///app/packages/projects/lite/src/apps/calendar/views/calendar-view/CalendarViewUtils.ts","file:///app/packages/projects/lite/src/apps/calendar/views/calendar-view/CalendarView.tsx","file:///app/packages/libs/shared/src/apps/calendar/hooks/useCalendarEventsData.ts","file:///app/packages/projects/lite/src/apps/dashboard/views/dashboard/DiscoverViewUtils.ts","file:///app/packages/projects/lite/src/shared/hooks/useShowCalendar.ts","file:///app/packages/libs/shared/src/components/pill-tab-selector/pill-tab-selector.scss"],"sourcesContent":["import { ObjectHash } from 'backbone';\nimport linkifyStr from 'linkifyjs/string';\nimport * as _ from 'underscore';\n\nconst BaseLinkifyOptions = {\n className: 'info-link',\n defaultProtocol: 'https'\n};\n\nexport const LinkifyHelper = {\n /**\n * The underlying linkifyStr interface escapes text within the input string\n */\n linkifyText(text: string, options?: ObjectHash): string {\n if (!text) return;\n const ops = options ? _.extend({}, BaseLinkifyOptions, options) : BaseLinkifyOptions;\n return linkifyStr(text, ops);\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"cellDate\":\"qcD_n\",\"label\":\"sp6Gw\",\"isHovering\":\"_6xWx\",\"numberWrapper\":\"KZfe0\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { useHoverIntent } from 'libs/shared/hooks/UseHover';\n\nimport styles from './calendar-cell-date.scss';\n\nconst namespace = 'specialEventCalendar.calendarCellDate';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface CalendarCellDateProps {\n date: Date;\n notCurrentMonth: boolean;\n hasEvent?: boolean;\n className?: string;\n isHovering?: boolean;\n}\n\nexport function CalendarCellDate(props: CalendarCellDateProps): JSX.Element {\n const isToday = DateHelper.isToday(props.date);\n\n let dateClassName = `${styles.cellDate} d-flex flex-nowrap`;\n if (isToday)\n dateClassName += ' bg-dark text-white';\n if (props.notCurrentMonth && !props.isHovering)\n dateClassName += ' text-secondary';\n if (props.hasEvent)\n dateClassName += ' text-white';\n if (props.className)\n dateClassName += ` ${props.className}`;\n \n const numberClassName = 'd-flex text-center justify-content-center align-items-center flex-shrink-0';\n const [ ref, isHovering ] = useHoverIntent<HTMLDivElement>({ delay: 250 });\n\n return (\n <div className={`${dateClassName} ${isHovering ? styles.isHovering : ''}`} ref={ref}>\n <div className={`${styles.numberWrapper} ${numberClassName}`}>\n {DateHelper.format(props.date, 'D')}\n </div>\n {isToday && (\n <div className={`${styles.label} justify-content-start align-items-center`}>\n {getPhrase('today')}\n </div>\n )}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"hardcodedCover\":\"ByD0q\",\"tag\":\"ZHW8B\",\"date\":\"AKOWh\",\"backgroundImage\":\"RDtch\",\"eventCard\":\"YtMiS\",\"wrapper\":\"ylxwf\",\"left\":\"iTqxB\",\"right\":\"bUUXX\",\"noAnimation\":\"oZacR\",\"cover\":\"kpH3Y\",\"tagWrap\":\"KvlZ8\",\"appear\":\"xlSdc\",\"displayDate\":\"rkBJb\",\"title\":\"c4_Kj\",\"titleText\":\"nRMvg\",\"circle\":\"wu4hg\",\"active\":\"tbdFj\",\"arrow\":\"omZKz\",\"bottomBar\":\"hxKUP\",\"bottomPlaceholder\":\"dzeZ7\",\"multiEventFilter\":\"dSxjc\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, EntityType, HashObject, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { CalendarCellDate } from 'libs/shared/apps/calendar/components/calendar-cell-date/CalendarCellDate';\nimport { ComingSoonTag } from 'libs/shared/apps/calendar/components/coming-soon-tag/ComingSoonTag';\nimport { CalendarCellProps } from 'libs/shared/apps/calendar/interfaces/CalendarCellProps';\nimport { SpecialEventHelper } from 'libs/shared/apps/calendar/utils/SpecialEventHelper';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { HoverableProps } from 'libs/shared/components/hover-to-portal-container/HoverToPortalContainer';\nimport { LazyImage } from 'libs/shared/components/lazy-image/LazyImage';\nimport { SliderDots } from 'libs/shared/components/slider-dots/SliderDots';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { ClassificationStatus } from 'libs/shared/enums/ClassificationStatus';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './calendar-events.scss';\n\ntype CalendarEventsProps = HoverableProps & CalendarCellProps;\n\nexport function CalendarEvents(props: CalendarEventsProps): JSX.Element {\n const { sliderStep, setSliderStep } = props;\n\n const multiEvents = props.eventsOnDay.length > 1;\n const displayedEvent = props.eventsOnDay.find((e, idx) => idx === sliderStep);\n const multiDayEvent = !!displayedEvent.endDate;\n\n const backgroundColor = props.getBackgroundColor?.(displayedEvent.content);\n\n const hardCodedEvent = props.getHardCodedEvent?.(displayedEvent.content);\n\n const iconUrl = props.getIconUrl?.(displayedEvent.content);\n const coverUrl = props.getCoverUrl?.(displayedEvent.content);\n\n const isComingSoon = displayedEvent.content.status === ClassificationStatus.ComingSoon;\n\n const [ className, setClassName ] = React.useState(!props.hasInitialized ? '' : styles.appear);\n\n React.useEffect(() => {\n if (!props.hasInitialized) {\n // a random number between 400 and 1000\n const randomNumber = Math.floor(Math.random() * 600 + 400);\n window.setTimeout(() => {\n setClassName(styles.appear);\n window.setTimeout(() => {\n props.setHasInitialized(true);\n }, 400);\n }, randomNumber);\n }\n }, [props.hasInitialized]);\n\n React.useEffect(() => {\n if (props.isHovering) {\n props.setHoveredEvent(displayedEvent);\n }\n }, [ props.isHovering, displayedEvent ]);\n \n React.useEffect(() => {\n return () => {\n if (props.isHovering && props.hoveredEvent?.specialEventId === displayedEvent.specialEventId) {\n props.setHoveredEvent(null);\n }\n };\n }, [ props.isHovering, props.hoveredEvent, displayedEvent ]);\n\n function getAppLink(): Core.AppLink {\n if (multiEvents)\n return props.getEventsListAppLink?.();\n\n if (isComingSoon)\n return null;\n\n return props.getTopicAppLink?.(displayedEvent.content.id, displayedEvent.name);\n }\n\n function getAnalyticsData() {\n const analyticsData: HashObject = {\n date: DateHelper.format(props.date, 'YYYY-MM-DD'),\n presentationId: props.presentationId,\n eventCount: props.eventsOnDay.length\n };\n\n if (multiEvents) {\n analyticsData.eventId = props.eventsOnDay.map(e => e.specialEventId).join(',');\n analyticsData.topicId = props.eventsOnDay.map(e => e.content.id).join(',');\n } else {\n analyticsData.eventId = displayedEvent.specialEventId;\n analyticsData.topicId = displayedEvent.content.id;\n analyticsData.eventStatus = displayedEvent.content.status;\n }\n return analyticsData;\n }\n\n const analyticsData = getAnalyticsData();\n\n const analyticsOptions: AnalyticsOptions = {\n actionType: UserAction.Click,\n entity: EntityType.SpecialEvent,\n location: LocationContext.CalendarDay\n };\n\n function formatAnalyticDataDate(date: Date): string {\n return DateHelper.format(date, 'YYYY-MM-DD');\n }\n\n function getBgImageClassName(): string {\n const defaultClassName = `${props.className} ${className} `;\n\n const classes = [\n hardCodedEvent ? `${styles.hardcodedCover} position-absolute` : styles.backgroundImage,\n iconUrl ? 'my-auto' : styles.cover,\n isComingSoon ? styles.comingSoon : '',\n props.hasInitialized ? styles.noAnimation : '',\n props.isHovering ? `rounded-3` : '',\n props.isMultiEventDate ? styles.multiEventFilter : '',\n 'company' in displayedEvent.content ? 'rounded-circle' : ''\n ];\n\n return defaultClassName + classes.join(' ');\n }\n\n return (\n <div onClick={() => {\n if (isComingSoon)\n AnalyticsHelper.logUserAction(analyticsData, analyticsOptions);\n }}>\n <AppLink\n appLink={getAppLink()}\n className='d-flex justify-content-end'\n analyticsOptions={analyticsOptions}\n analyticsData={analyticsData}\n >\n <div className={`${styles.tagWrap} p-1`}>\n {isComingSoon && (\n <ComingSoonTag className={`justify-content-center p-0 rounded-circle ${styles.tag} ${className}`} onlyIcon />\n )}\n </div>\n {!props.hideDay && (\n <CalendarCellDate\n date={props.date}\n notCurrentMonth={props.notCurrentMonth}\n className={`${styles.date} ${className}`}\n isHovering={props.isHovering}\n hasEvent\n />\n )}\n\n <div className={`postion-relative ${styles.wrapper}`}>\n <div\n style={{ backgroundColor } }\n className={`position-absolute d-flex flex-column justify-content-end align-items-center text-white px-1 pt-2 pb-1 ${styles.eventCard} ${className} ${props.isHovering ? 'rounded-3' : ''} ${props.isMultiEventDate ? styles.multiEventFilter : ''} ${props.className}`}\n >\n {iconUrl && <LazyImage src={iconUrl} alt={displayedEvent.content.name} className={getBgImageClassName()} />}\n\n {coverUrl && !iconUrl && (\n <div\n style={{ backgroundImage: `url('${coverUrl}')` }}\n className={getBgImageClassName()}\n />\n )}\n\n {multiDayEvent && (\n <div className={`${styles.displayDate}`}>\n {SpecialEventHelper.getDisplayDate(displayedEvent.startDate, displayedEvent.endDate)}\n </div>\n )}\n <div className={`text-center ${styles.title} ${multiEvents ? 'mb-1' : 'mb-2'}`}>\n <div className={`${styles.titleText} ${props.isHovering ? 'mb-0' : 'clamp-2'} h6`} title={displayedEvent.name}>{displayedEvent.name}</div>\n </div>\n\n {(multiEvents && sliderStep !== 0) && (\n <div className={`position-absolute bg-white rounded-circle ${styles.left}`}>\n <DivButton\n onClick={e => {\n e.stopPropagation();\n e.preventDefault();\n setSliderStep(s => s - 1);\n AnalyticsHelper.logUserAction({ date: formatAnalyticDataDate(props.date), action: 'previous', eventCount: props.eventsOnDay.length }, analyticsOptions);\n }}>\n <SvgContainer\n svgName={cvSvgLibrary.ChevronLeft}\n className={`d-inline-block svg-container text-dark ${styles.arrow}`}\n />\n </DivButton>\n </div>\n )}\n\n {multiEvents && sliderStep !== props.eventsOnDay.length - 1 && (\n <div className={`position-absolute bg-white rounded-circle ${styles.right}`}>\n <DivButton\n onClick={e => {\n e.stopPropagation();\n e.preventDefault();\n setSliderStep(s => s + 1);\n AnalyticsHelper.logUserAction({ date: formatAnalyticDataDate(props.date), action: 'next', eventCount: props.eventsOnDay.length }, analyticsOptions);\n }}>\n <SvgContainer\n svgName={cvSvgLibrary.ChevronRight}\n className={`d-inline-block svg-container text-dark ${styles.arrow}`}\n />\n </DivButton>\n </div>\n )}\n\n {multiEvents && (\n <div className={`d-flex ${styles.bottomBar} ${multiEvents ? '' : styles.bottomPlaceholder}`}>\n <SliderDots\n sliderStep={sliderStep}\n sliderLength={props.eventsOnDay.length}\n size='sm'\n className={`${props.isHovering ? 'mb-2' : 'mb-1'}`}\n onSliderDotClick={i => {\n setSliderStep(i);\n AnalyticsHelper.logUserAction({ date: formatAnalyticDataDate(props.date), action: 'jump', eventCount: props.eventsOnDay.length }, analyticsOptions);\n }}\n />\n </div>\n )}\n </div>\n </div>\n </AppLink>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"cell\":\"nsEjO\",\"multiEventCell\":\"vvFYj\",\"fadeIn\":\"BX0cX\"};","import React from 'react';\n\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { CalendarCellDate } from 'libs/shared/apps/calendar/components/calendar-cell-date/CalendarCellDate';\nimport { CalendarEvents } from 'libs/shared/apps/calendar/components/calendar-events/CalendarEvents';\nimport { CalendarCellProps } from 'libs/shared/apps/calendar/interfaces/CalendarCellProps';\nimport { HoverableProps } from 'libs/shared/components/hover-to-portal-container/HoverToPortalContainer';\n\nimport styles from './calendar-day.scss';\n\ntype CalendarDayProps = HoverableProps & CalendarCellProps;\n\nexport function CalendarDay(props: CalendarDayProps) {\n const isMultiEventDate = React.useMemo(\n () =>\n props.hoveredEvent?.endDate &&\n !DateHelper.isSame(props.date, props.hoveredEvent?.startDate) &&\n DateHelper.isBetween(\n DateHelper.format(props.date, 'YYYY-MM-DD'),\n props.hoveredEvent?.startDate,\n props.hoveredEvent?.endDate\n ),\n [props.hoveredEvent]\n );\n const backgroundColor = props.hoveredEvent ? props.getBackgroundColor?.(props.hoveredEvent.content) : null;\n\n return (\n <div className={`${styles.cell} fw-semibold`}>\n {!props.hideDay && (\n <CalendarCellDate\n date={props.date}\n notCurrentMonth={props.notCurrentMonth}\n />\n )}\n {isMultiEventDate && (\n <div style={{ backgroundColor }} className={styles.multiEventCell}></div>\n )}\n {props.eventsOnDay?.length > 0 && <CalendarEvents {...props} isMultiEventDate={isMultiEventDate} />}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"tag\":\"XRj8d\",\"tooltip\":\"X6mLk\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './coming-soon-tag.scss';\n\nconst namespace = 'specialEventCalendar.comingSoonTag';\n\ninterface ComingSoonProps {\n className?: string;\n onlyIcon?: boolean;\n}\n\nexport function ComingSoonTag(props: ComingSoonProps): JSX.Element {\n return (\n <Tooltip title={LanguageService.getPhrase(namespace, 'tooltip')} spanHackClassName={`d-block ${styles.tooltip}`} spanHack>\n <div className={`d-flex text-dark align-items-center ${styles.tag} ${props.className}`}>\n <SvgContainer svgName={cvSvgLibrary.Timer} />\n {!props.onlyIcon && LanguageService.getPhrase(namespace, 'comingSoon')}\n </div>\n </Tooltip>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"modalWidth\":\"SgHYb\",\"banner\":\"PLw1p\",\"pill\":\"UNBr0\",\"logo\":\"xv_tc\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\nimport { LinkifyHelper } from 'libs/common/react/utils/LinkifyHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { ComingSoonTag } from 'libs/shared/apps/calendar/components/coming-soon-tag/ComingSoonTag';\nimport { SpecialEventHelper } from 'libs/shared/apps/calendar/utils/SpecialEventHelper';\nimport { ActionButton } from 'libs/shared/components/actions/ActionButton';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ClassificationStatus } from 'libs/shared/enums/ClassificationStatus';\nimport { CalendarEvent, CalendarEventContent } from 'libs/shared/interfaces';\n\nimport styles from './special-event-list-item.scss';\n\ninterface SpecialEventListItemProps {\n getAppLink: (id: string, name: string) => Core.AppLink;\n event: CalendarEvent<CalendarEventContent>;\n onClick?: () => void;\n inPopup?: boolean;\n presentationId: string;\n headingClassName?: string;\n getIconUrl?: (content: CalendarEventContent) => string;\n getBackgroundColor?: (content: CalendarEventContent) => string;\n getBannerUrl?: (content: CalendarEventContent) => string;\n getActionLabel?: () => string;\n getStartTime?: (content: CalendarEventContent) => string;\n}\n\nexport function SpecialEventListItem(props: SpecialEventListItemProps): JSX.Element {\n const appLink = props.getAppLink(props.event.content.id, props.event.name);\n\n const backgroundColor = props.getBackgroundColor?.(props.event.content);\n const iconUrl = props.getIconUrl?.(props.event.content);\n const bannerUrl = props.getBannerUrl?.(props.event.content);\n const multiDayEvent = !!props.event.endDate;\n const isComingSoon = props.event.content.status === ClassificationStatus.ComingSoon;\n const startTime = props.getStartTime?.(props.event.content);\n const actionLabel = props.getActionLabel?.();\n\n const analyticsOptions: AnalyticsOptions = {\n actionType: UserAction.Click,\n entity: EntityType.SpecialEvent,\n location: props.inPopup ? LocationContext.CalendarPopup : LocationContext.CalendarDay\n };\n const analyticsData = {\n topicId: props.event.content.id,\n eventId: props.event.specialEventId,\n presentationId: props.presentationId,\n date: DateHelper.format(new Date(props.event.startDate), 'YYYY-MM-DD'),\n status: props.event.content.status\n };\n\n return (\n <div>\n {startTime && (\n <h6>{startTime}</h6>\n )}\n\n <div onClick={() => {\n if (isComingSoon)\n AnalyticsHelper.logUserAction(analyticsData, analyticsOptions);\n }}>\n <AppLink\n appLink={!isComingSoon && appLink}\n className={`${!isComingSoon ? 'cursor-pointer' : ''} text-decoration-none`}\n onClick={props.onClick}\n analyticsOptions={analyticsOptions}\n analyticsData={analyticsData}\n >\n <div\n className={`banner rounded-3 position-relative ${styles.banner}`}\n style={{ backgroundColor, backgroundImage: `url('${bannerUrl}')` }}\n >\n <div className={`d-flex justify-content-between align-items-center w-100 h-100 px-3`}>\n <div className='d-flex align-items-center'>\n {iconUrl && (\n <div className={`${styles.logo} rounded-circle flex-shrink-0 overflow-hidden me-2`}>\n <BaseImage data={iconUrl} />\n </div>\n )}\n <div className='text-white'>\n {isComingSoon && <ComingSoonTag className={`pe-2 fw-semibold mb-1 rounded-pill justify-content-start ${styles.pill}`}/>}\n \n {multiDayEvent && (\n <div className='mb-1'>{SpecialEventHelper.getDisplayDate(props.event.startDate, props.event.endDate)}</div>\n )}\n <h2 className={`h4 text-white text-shadow ${props.event.description ? 'clamp-2' : 'clamp-1'}`} title={props.event.name}>{props.event.name}</h2>\n \n </div>\n </div>\n <div className='d-none d-sm-block flex-shrink-0'>\n {!isComingSoon && (\n <ActionButton className='btn btn-outline-dark fw-semibold'>\n {actionLabel}\n </ActionButton>\n )}\n </div>\n </div>\n </div>\n </AppLink>\n <div className='mt-2 mb-3 pre-wrap text-break' dangerouslySetInnerHTML={{ __html: LinkifyHelper.linkifyText(props.event.description || props.event.content.description) }}/>\n </div>\n </div>\n );\n}\n","import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { CalendarEvent, CalendarEventContentType } from 'libs/shared/interfaces';\n\nexport const CalendarRequests = {\n calendarEvents(\n from: string,\n to: string,\n presentationId: string\n ): Flight.PublicRequest {\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/discover/special-events/content', { from, to, presentationId }),\n publicUrl: UrlHelper.urlBuilder(`/api/discover/special-events/content`, { from, to, presentationId }),\n key: `presentation:${presentationId}:events:from:${from}:to${to}`\n };\n },\n\n nextTopicSpecialEvent(\n classificationId: string,\n presentationId: string\n ): Flight.PublicRequest {\n const params = {\n presentationId,\n limit: 1,\n from: DateHelper.format(new Date(), 'YYYY-MM-DD'),\n objectType: CalendarEventContentType.Classification\n };\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/discover/special-events/object/${classificationId}/next-events`, params),\n publicUrl: UrlHelper.urlBuilder(`/api/discover/special-events/object/${classificationId}/next-events`, params),\n key: `presentation:${presentationId}:events:classification:${classificationId}`,\n formatData: (events: CalendarEvent[]) => ArrayHelper.first(events)\n };\n }\n};\n","import { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { CalendarEvent } from 'libs/shared/interfaces';\n\nexport const SpecialEventHelper = {\n getDisplayDate(startDate: string, endDate: string): string {\n if (!endDate)\n // one day event\n return DateHelper.format(startDate, 'D MMM');\n\n if (startDate.slice(5, 7) !== endDate.slice(5, 7))\n // span across months\n return `${DateHelper.format(startDate, 'D MMM')} - ${DateHelper.format(endDate, 'D MMM')}`;\n \n // same month event\n return `${DateHelper.format(startDate, 'D')} - ${DateHelper.format(endDate, 'D')} ${DateHelper.format(startDate, 'MMM')}`;\n },\n\n getEventsInMonth(calendarEvents: CalendarEvent[], month: Date) {\n return calendarEvents.filter(e => DateHelper.format(e.startDate, 'YYYY-MM') === DateHelper.format(month, 'YYYY-MM'));\n },\n\n getOrdinalDate(date: string): string {\n return `${DateHelper.getLocalDateOrdinal(DateHelper.get(date, 'date'))} ${DateHelper.format(date, 'MMMM')}`;\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"pillTab\":\"bMJM0\"};","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\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';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { DashboardUserType } from 'libs/shared/interfaces';\n\nimport styles from './discover-header.scss';\n\nconst namespace = 'discover.header';\n\nexport interface DiscoverHeaderAppLinks {\n forYou: Core.AppLink;\n whatsNew: Core.AppLink;\n calendar: Core.AppLink;\n}\n\ninterface DiscoverHeaderProps {\n type: DashboardUserType;\n hasStudentExperience?: boolean;\n appLinks?: DiscoverHeaderAppLinks;\n showCalendar: boolean;\n active: keyof DiscoverHeaderAppLinks;\n}\n\nexport function DiscoverHeader(props: DiscoverHeaderProps): JSX.Element {\n if (!props.type)\n return <></>;\n\n if (props.type === DashboardUserType.Learner || props.hasStudentExperience) {\n return (\n <div className='py-3'>\n <h1 className='h2 mb-0'>\n <Text namespace={namespace} phrase='heading' />\n </h1>\n </div>\n );\n }\n\n const tabs = [{\n name: LanguageService.getPhrase(namespace, 'forYou'),\n appLink: props.appLinks?.forYou,\n active: props.active === 'forYou',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'forYou'),\n url: AppLinkHelper.getHref(props.appLinks?.forYou)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }, {\n name: LanguageService.getPhrase(namespace, 'whatsNew'),\n appLink: props.appLinks?.whatsNew,\n active: props.active === 'whatsNew',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'whatsNew'),\n url: AppLinkHelper.getHref(props.appLinks?.whatsNew)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }];\n\n if (props.showCalendar) {\n tabs.push({\n name: LanguageService.getPhrase(namespace, 'calendar'),\n appLink: props.appLinks?.calendar,\n active: props.active === 'calendar',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'calendar'),\n url: AppLinkHelper.getHref(props.appLinks?.calendar)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n });\n }\n\n return (\n <div className='py-3 text-center'>\n <PillTabSelector\n tabs={tabs}\n className={styles.pillTab}\n />\n </div>\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 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 ?? ''}>\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","// Maps to enum in SubjectApi but uses the\n// key rather than the value as SubjectsApi returns the key.\nexport enum ClassificationStatus {\n Draft = 'Draft',\n ComingSoon = 'ComingSoon',\n Published = 'Published'\n}","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"WRLhh\",\"notCurrentMonth\":\"L0rbf\",\"weekend\":\"mF0ka\"};","import React from 'react';\n\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { CalendarDay } from 'libs/shared/apps/calendar/components/calendar-day/CalendarDay';\nimport { CalendarCellProps } from 'libs/shared/apps/calendar/interfaces/CalendarCellProps';\nimport { HoverToPortalContainer } from 'libs/shared/components/hover-to-portal-container/HoverToPortalContainer';\n\nimport styles from './calendar-cell.scss';\n\nfunction getIsWeekend(date: Date): boolean {\n return DateHelper.getWeekday(date) === 0 || DateHelper.getWeekday(date) === 6;\n}\n\nexport function CalendarCell(props: CalendarCellProps): JSX.Element {\n const { date, notCurrentMonth } = props;\n const [ sliderStep, setSliderStep ] = React.useState<number>(0);\n\n let wrapperClassname = `position-relative border ${props.theme.border} ${styles.wrapper}`;\n if (getIsWeekend(date)) wrapperClassname += ` ${styles.weekend}`;\n if (notCurrentMonth) wrapperClassname += ` ${styles.notCurrentMonth}`;\n\n const eventsOnDay = props.events?.filter(e => DateHelper.isSame(props.date, e.startDate)) || [];\n const updatedProps = { ...props, eventsOnDay, sliderStep, setSliderStep };\n\n return (\n <td className={wrapperClassname}>\n {eventsOnDay?.length > 0 ? (\n <HoverToPortalContainer<CalendarCellProps>\n hoverableComponent={CalendarDay}\n componentProps={updatedProps}\n hoverScale={1.35}\n />\n ) : <CalendarDay {...updatedProps} isHovering={false} />}\n </td>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'specialEvent.eventsEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface SpecialEventEmptyStateProps {\n appLink: Core.AppLink;\n imageUrl: string;\n heading?: string;\n}\n\nexport function SpecialEventEmptyState(props: SpecialEventEmptyStateProps): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={props.imageUrl} altText={getPhrase('info')} />\n <EmptyState.Heading>{props.heading || <Text phrase='heading' />}</EmptyState.Heading>\n {props.appLink &&\n <EmptyState.Info>\n <>\n <Text namespace={namespace} phrase='info' />\n <AppLink appLink={props.appLink}>\n <span className='text-info'>{getPhrase('link')}</span>\n </AppLink>\n </>\n </EmptyState.Info>\n }\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"date\":\"k2lLG\",\"first\":\"E18Bv\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { SpecialEventListItem } from 'libs/shared/apps/calendar/components/special-event-list-item/SpecialEventListItem';\nimport { SpecialEventHelper } from 'libs/shared/apps/calendar/utils/SpecialEventHelper';\nimport { CalendarEvent, CalendarEventContent } from 'libs/shared/interfaces';\n\nimport styles from './special-event-list.scss';\n\ninterface SpecialEventListProps {\n events: CalendarEvent[];\n presentationId: string;\n appLink: (id: string, slug?: string) => Core.AppLink;\n getIconUrl?: (content: CalendarEventContent) => string;\n getBannerUrl?: (content: CalendarEventContent) => string;\n getBackgroundColor?: (content: CalendarEventContent) => string;\n getActionLabel?: (content?: CalendarEventContent) => string;\n getStartTime?: (content: CalendarEventContent) => string;\n}\n\nexport function SpecialEventList(props: SpecialEventListProps): JSX.Element {\n const eventsInMonth: Record<string, CalendarEvent<CalendarEventContent>[]> = {};\n\n props.events.forEach(e => {\n const startDate = e.startDate;\n if (eventsInMonth[startDate]) {\n eventsInMonth[startDate].push(e);\n } else {\n eventsInMonth[startDate] = [e];\n }\n });\n\n const keys = Object.keys(eventsInMonth);\n keys.sort((a, b) => DateHelper.isBefore(a, b) ? -1 : 0);\n\n return (\n <div className='py-1'>\n {keys.map((k, idx) => {\n let prevTime = '';\n let currentTime = '';\n return (\n <div key={k}>\n <div className={`h4 mt-4 ${styles.date} ${idx === 0 ? styles.first : ''}`}>{SpecialEventHelper.getOrdinalDate(k)}</div>\n {eventsInMonth[k].map(e => {\n prevTime = currentTime;\n currentTime = props.getStartTime?.(e.content);\n\n return (\n <SpecialEventListItem\n key={e.content.id}\n getAppLink={(id, name) => {\n return props.appLink(id, TextHelper.slugify(name));\n }}\n event={e}\n presentationId={props.presentationId}\n getIconUrl={props.getIconUrl}\n getBannerUrl={props.getBannerUrl}\n getBackgroundColor={props.getBackgroundColor}\n getActionLabel={() => props.getActionLabel(e.content)}\n getStartTime={props.getStartTime && prevTime !== currentTime\n ? props.getStartTime\n : null\n }\n />\n );\n })}\n </div>\n );\n })}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"header\":\"sTIcQ\",\"thead\":\"ekxZd\"};","import React from 'react';\nimport { Spinner } from 'react-bootstrap';\n\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { CalendarCell } from 'libs/shared/apps/calendar/components/calendar-cell/CalendarCell';\nimport { CalendarAppLinks } from 'libs/shared/apps/calendar/interfaces/CalendarAppLinks';\nimport { CalendarImageUrls } from 'libs/shared/apps/calendar/interfaces/CalendarImageUrls';\nimport { CalendarTheme } from 'libs/shared/apps/calendar/interfaces/CalendarTheme';\nimport { MonthQuery } from 'libs/shared/apps/calendar/interfaces/MonthQuery';\nimport { PatchedDate } from 'libs/shared/apps/calendar/utils/CalendarHelper';\nimport { SpecialEventHelper } from 'libs/shared/apps/calendar/utils/SpecialEventHelper';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { CalendarEvent, CalendarEventContent } from 'libs/shared/interfaces';\n\nimport { SpecialEventEmptyState } from '../empty-state/SpecialEventEmptyState';\nimport { SpecialEventList } from '../special-event-list/SpecialEventList';\n\nimport styles from './calendar-body.scss';\n\nCalendarBody.defaultProps = {\n theme: {\n border: 'border-light-blue',\n background: 'bg-light-blue'\n }\n};\n\ninterface CalendarBodyProps {\n weekDays: PatchedDate[][];\n weekDaysHeader: string[];\n events?: CalendarEvent[];\n monthQuery: MonthQuery;\n viewingMonth: Date;\n eventsLoaded: boolean;\n presentationId: string;\n appLinks: CalendarAppLinks;\n imageUrls: CalendarImageUrls;\n viewMode?: string;\n theme?: CalendarTheme;\n emptyStateHeading?: string;\n getIconUrl?: (content: CalendarEventContent) => string;\n getBackgroundColor?: (content: CalendarEventContent) => string;\n getBannerUrl?: (content: CalendarEventContent) => string;\n getCoverUrl?: (content: CalendarEventContent) => string;\n getActionLabel?: (content?: CalendarEventContent) => string;\n getStartTime?: (content: CalendarEventContent) => string;\n getHardCodedEvent?: (content: CalendarEventContent) => HashObject;\n}\n\nexport function CalendarBody(props: CalendarBodyProps): JSX.Element {\n const { appLinks, imageUrls } = props;\n\n const breakpoints = useBreakpoints();\n\n const eventsInMonth = SpecialEventHelper.getEventsInMonth(props.events || [], props.viewingMonth);\n\n const [ hasInitialized, setHasInitialized ] = React.useState(false);\n const [ hoveredEvent, setHoveredEvent ] = React.useState<CalendarEvent<CalendarEventContent>>(null);\n\n if (props.eventsLoaded && !eventsInMonth?.length) {\n return (\n <SpecialEventEmptyState\n imageUrl={imageUrls.emptyState}\n appLink={appLinks.emptyStateRedirect?.()}\n heading={props.emptyStateHeading}\n />\n );\n }\n\n if (props.viewMode === 'list' || breakpoints.xs || breakpoints.sm || breakpoints.md) {\n if (!props.eventsLoaded) {\n return (\n <div className='d-flex justify-content-center align-items-center mb-4'>\n <Spinner as='div' animation='border' role='status' />\n </div>\n );\n }\n\n return (\n <SpecialEventList\n events={eventsInMonth}\n presentationId={props.presentationId}\n appLink={props.appLinks.event}\n getIconUrl={props.getIconUrl}\n getBannerUrl={props.getBannerUrl}\n getBackgroundColor={props.getBackgroundColor}\n getActionLabel={props.getActionLabel}\n getStartTime={props.getStartTime}\n />\n );\n }\n\n return (\n <table className='user-select-none w-100 mt-3 overflow-hidden rounded-top-lg'>\n <thead className={`border ${props.theme.border} ${styles.thead}`}>\n <tr className={`fw-semibold ${props.theme.background} ${styles.header}`}>\n {props.weekDaysHeader.map(w => <th key={w} className='px-2 h4'>{w}</th>)}\n </tr>\n </thead>\n\n <tbody>\n {props.weekDays.map(w => (\n <tr key={w[0].toString()}>\n {w.map(d => {\n return (\n <CalendarCell\n key={d.toString()}\n date={d}\n notCurrentMonth={!!d.notCurrentMonth}\n events={props.events}\n monthQuery={props.monthQuery}\n hasInitialized={hasInitialized}\n setHasInitialized={setHasInitialized}\n presentationId={props.presentationId}\n hoveredEvent={hoveredEvent}\n theme={props.theme}\n setHoveredEvent={setHoveredEvent}\n getEventsListAppLink={() => props.appLinks.eventList(props.monthQuery, d, props.presentationId)}\n getTopicAppLink={(eventId, name) => props.appLinks.event(eventId, TextHelper.slugify(name))}\n getIconUrl={props.getIconUrl}\n getBackgroundColor={props.getBackgroundColor}\n getCoverUrl={props.getCoverUrl}\n getHardCodedEvent={props.getHardCodedEvent}\n />\n );\n })}\n </tr>\n ))}\n </tbody>\n </table>\n );\n}","/**\n * Inspired by nghilevi/moment-calendar-2\n */\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nexport type PatchedDate = Date & { notCurrentMonth: boolean }\nexport type WeeksTable = PatchedDate[][]\nexport type DatePositionMap = Record<string, {row: number, col: number}>\n\nconst CALENDAR_START_DATE = new Date('2023-01-01');\nconst NEXT_MONTH_LIMIT = 12; // in month\n\nfunction getDaysOfMonth(date: Date): PatchedDate[] {\n const numberOfDays = DateHelper.daysInMonth(date);\n\n const daysArray = [];\n\n for (let i = 1; i <= numberOfDays; i++) {\n const day = DateHelper.set(date, 'date', i);\n daysArray.push(Object.assign(day, { notCurrentMonth: false }));\n }\n\n return daysArray;\n}\n\n// Get days from previous month overlapping current month\nfunction getPreviousMonthOverlappingDays(date: Date, startAtMon: boolean): PatchedDate[] {\n const firstDay = DateHelper.startOf(date, 'month');\n const firstWeekDay = DateHelper.getWeekday(firstDay);\n const prevMonthDays = [];\n const prevMonthDaysCount = startAtMon ? firstWeekDay === 0 ? 6 : firstWeekDay - 1 : firstWeekDay;\n\n for (let i = startAtMon ? 1 : 0; i <= prevMonthDaysCount; i++) {\n const originalDay = firstDay;\n const preDay = DateHelper.weekday(originalDay, firstWeekDay - i);\n prevMonthDays.push(Object.assign(preDay, { notCurrentMonth: true }));\n }\n\n return prevMonthDays.reverse();\n}\n\n// Get days from previous month overlapping current month\nfunction getNextMonthOverlappingDays(date: Date, startAtMon: boolean): PatchedDate[] {\n const lastDay = DateHelper.endOf(date, 'month');\n const lastWeekDay = DateHelper.getWeekday(lastDay);\n const nextMonthDays = [];\n const nextMonthDaysCount = startAtMon ? 7 - (lastWeekDay === 0 ? 7 : lastWeekDay) : 7 - lastWeekDay;\n\n for (let i = 1; i <= nextMonthDaysCount; i += 1) {\n const nextDay = DateHelper.add(lastDay, i, 'days');\n nextMonthDays.push(Object.assign(nextDay, { notCurrentMonth: true }));\n }\n\n return nextMonthDays;\n}\n\nexport function initWeekDays(startAtMon: boolean): string[] {\n const weekdays = startAtMon ? [ 1, 2, 3, 4, 5, 6, 0 ] : [ 0, 1, 2, 3, 4, 5, 6 ];\n const date = new Date();\n return weekdays.map(w => DateHelper.format(DateHelper.weekday(date, w), 'ddd'));\n}\n\nexport function buildWeeksTable(date: Date, startAtMon: boolean) {\n const weeksTable: WeeksTable = [];\n const datePositionMap: DatePositionMap = {};\n\n const monthDays = getPreviousMonthOverlappingDays(date, startAtMon)\n .concat(getDaysOfMonth(date))\n .concat(getNextMonthOverlappingDays(date, startAtMon));\n\n for (let j = 0, rowId = 0; j < monthDays.length; j = j + 7) {\n const week = monthDays.slice(j, j + 7);\n week.forEach((day, colId) => {\n datePositionMap[DateHelper.format(day, 'YYYY-MM-DD')] = { row: rowId, col: colId };\n });\n\n weeksTable.push(week);\n rowId++;\n }\n\n return {\n datePositionMap,\n weeksTable\n };\n}\n\nfunction getFirstDateInCalendar(monthDate: Date) {\n const firstDayOfMonth = DateHelper.startOf(monthDate, 'month');\n if (DateHelper.getWeekday(firstDayOfMonth) === 1) {\n return firstDayOfMonth;\n }\n return ArrayHelper.first(getPreviousMonthOverlappingDays(monthDate, true));\n}\n\nfunction getLastDateInCalendar(monthDate: Date) {\n const lastDayOfMonth = DateHelper.endOf(monthDate, 'month');\n if (DateHelper.getWeekday(lastDayOfMonth) === 0) {\n return lastDayOfMonth;\n }\n return ArrayHelper.last(getNextMonthOverlappingDays(monthDate, true));\n}\n\nexport function getCalendarRange(monthDate: Date) {\n return [ getFirstDateInCalendar(monthDate), getLastDateInCalendar(monthDate) ];\n}\n\nfunction capitalizeMonthString(monthStr: string) {\n return monthStr.charAt(0).toUpperCase() + monthStr.slice(1);\n}\n\nexport function getIsValidMonth(monthDateString: string) {\n if (!monthDateString)\n return true;\n const capitalized = capitalizeMonthString(monthDateString);\n const isValidMonthString = DateHelper.formatIsValid(capitalized, 'MMMM-YYYY', true);\n\n if (!isValidMonthString)\n return false;\n\n const monthDate = DateHelper.parseDateString(capitalized, 'MMMM-YYYY');\n\n return DateHelper.isSame(monthDate, CALENDAR_START_DATE, 'month') || DateHelper.isAfter(monthDate, CALENDAR_START_DATE, 'month');\n}\n\nconst CUR_DATE = new Date();\nexport function canNavToOtherMonths(monthDate: Date) {\n const monthDiff = DateHelper.diffBetween(DateHelper.startOf(monthDate, 'month'), DateHelper.startOf(CUR_DATE, 'month'), 'months');\n const showPrev = DateHelper.isAfter(monthDate, CALENDAR_START_DATE, 'month');\n const showNext = monthDiff < NEXT_MONTH_LIMIT;\n return { showPrev, showNext };\n}\n\nexport function parseMonthString(monthStr: string) {\n if (!monthStr)\n return DateHelper.parseDateString();\n\n const capitalized = capitalizeMonthString(monthStr);\n return DateHelper.parseDateString(capitalized, 'MMMM-YYYY');\n}","// extracted by mini-css-extract-plugin\nexport default {\"chevron\":\"U_GAM\",\"left\":\"t_wDz\",\"right\":\"KgpGw\",\"viewModeContainer\":\"csNfk\"};","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';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { AnalyticsOptions, CalendarDisplayModeDescriptor, EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { CalendarAppLinks } from 'libs/shared/apps/calendar/interfaces/CalendarAppLinks';\nimport { CalendarViewMode } from 'libs/shared/apps/calendar/interfaces/CalendarViewMode';\nimport { canNavToOtherMonths } from 'libs/shared/apps/calendar/utils/CalendarHelper';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './calendar-nav.scss';\n\nconst namespace = 'specialEventCalendar.calendarNav';\n\ninterface CalendarNavProps extends React.PropsWithChildren {\n monthDate: Date;\n appLinks: CalendarAppLinks;\n viewMode?: CalendarViewMode;\n queryParams?: HashObject;\n setViewingMonthDate: (date?: Date) => void;\n setViewMode?: (viewMode: CalendarViewMode) => void;\n}\n\ninterface ViewModeSwitcherProps {\n viewMode: CalendarViewMode;\n setViewMode?: (viewMode: CalendarViewMode) => void;\n}\n\nfunction ViewModeSwitcher(props: ViewModeSwitcherProps): JSX.Element {\n return (\n <div className={`${styles.viewModeContainer} d-none d-lg-block`}>\n <IconButton\n svgName={cvSvgLibrary.Calendar}\n className={`${props.viewMode === 'calendar' ? 'bg-dark text-white' : ''} btn btn-outline-dark rounded-start rounded-end-0 border-end-0 px-3 h-100`}\n onClick={() => props.setViewMode('calendar')}\n analyticsData={{}}\n analyticsOptions={{\n entity: EntityType.AppLink,\n actionType: UserAction.Click,\n descriptor: CalendarDisplayModeDescriptor.Calendar,\n location: LocationContext.CalendarNav\n }}\n />\n <IconButton\n svgName={cvSvgLibrary.TableOfContents}\n className={`${props.viewMode === 'list' ? 'bg-dark text-white' : ''} btn btn-outline-dark rounded-end rounded-start-0 border-start-0 px-3 h-100`}\n onClick={() => props.setViewMode('list')}\n analyticsData={{}}\n analyticsOptions={{\n entity: EntityType.AppLink,\n actionType: UserAction.Click,\n descriptor: CalendarDisplayModeDescriptor.List,\n location: LocationContext.CalendarNav\n }}\n />\n </div>\n );\n}\n\ninterface NavigateButtonProps {\n action: 'next' | 'previous';\n onClick: () => void;\n}\n\nfunction NavigateButton(props: NavigateButtonProps): JSX.Element {\n const arrowSvg = props.action === 'previous' ? cvSvgLibrary.ChevronLeft : cvSvgLibrary.ChevronRight;\n const className = props.action === 'previous' ? styles.left : styles.right;\n\n return (\n <DivButton\n className={`${styles.chevron} ${className} border border-dark rounded-circle bg-white d-flex align-items-center justify-content-center`}\n onClick={props.onClick}\n >\n <SvgContainer\n svgName={arrowSvg}\n size={SvgContainerSize.Medium}\n className={`svg-container d-inline-block ${styles.svg}`}\n />\n </DivButton>\n );\n}\n\nconst CUR_DATE = new Date();\n\nexport function CalendarNav(props: CalendarNavProps): JSX.Element {\n const { appLinks } = props;\n\n const breakpoints = useBreakpoints();\n \n function getAppLink(monthDate?: Date): Core.AppLink {\n const month = DateHelper.format(monthDate, 'MMMM').toLocaleLowerCase();\n\n const appLink: Core.AppLink = appLinks.month(month);\n\n const params: HashObject = {};\n\n if (monthDate) {\n const currentYear = new Date().getFullYear();\n const year = monthDate.getFullYear();\n \n if (currentYear !== year)\n params.year = year;\n }\n\n if (props.queryParams?.classification)\n params.classification = props.queryParams.classification;\n\n if (props.queryParams?.yearGroup)\n params.yearGroup = props.queryParams.yearGroup;\n\n appLink.params = params;\n\n return appLink;\n }\n\n function onClickNext () {\n const nextMonth = DateHelper.add(props.monthDate, 1, 'month');\n props.setViewingMonthDate(nextMonth);\n }\n\n function onClickPrevious() {\n const prevMonth = DateHelper.subtract(props.monthDate, 1, 'month');\n props.setViewingMonthDate(prevMonth);\n }\n\n function onClickToday() {\n if (DateHelper.format(CUR_DATE, 'M YY') === DateHelper.format(props.monthDate, 'M YY')) return;\n \n props.setViewingMonthDate();\n }\n \n const { showPrev, showNext } = canNavToOtherMonths(props.monthDate);\n\n const analyticsOptions: AnalyticsOptions = {\n actionType: UserAction.Click,\n entity: EntityType.SpecialEvent,\n location: LocationContext.CalendarNav\n };\n\n function formatAnalyticDataDate(date: Date) {\n return DateHelper.format(date, 'YYYY-MM-DD');\n }\n return (\n <div className='d-flex flex-wrap gap-3 justify-content-end align-items-center'>\n <h1 className='mb-0 h2 me-auto'>{DateHelper.format(props.monthDate, breakpoints.xs ? 'MMM YYYY' : 'MMMM YYYY')}</h1>\n\n {props.children}\n\n {props.setViewMode && (\n <ViewModeSwitcher viewMode={props.viewMode} setViewMode={props.setViewMode} />\n )}\n <div className='d-flex gap-3'>\n {showPrev && (\n <AppLink\n appLink={getAppLink(DateHelper.startOf(DateHelper.subtract(props.monthDate, 1, 'month'), 'month'))}\n className='d-flex'\n analyticsOptions={analyticsOptions}\n analyticsData={{ action: 'previous', date: formatAnalyticDataDate(DateHelper.startOf(DateHelper.add(props.monthDate, 1, 'month'), 'month')) }}\n >\n <NavigateButton action='previous' onClick={onClickPrevious}/>\n </AppLink>\n )}\n <AppLink\n appLink={getAppLink()}\n className='d-flex'\n analyticsOptions={analyticsOptions}\n analyticsData={{ action: 'today', date: formatAnalyticDataDate(DateHelper.startOf(CUR_DATE, 'month')) }}\n >\n <DivButton className={`${styles.todayWrapper} btn btn-outline-dark fw-semibold`} onClick={onClickToday}>\n {LanguageService.getPhrase(namespace, 'today')}\n </DivButton>\n </AppLink>\n {showNext && (\n <AppLink\n appLink={getAppLink(DateHelper.startOf(DateHelper.add(props.monthDate, 1, 'month'), 'month'))}\n className='d-flex'\n analyticsOptions={analyticsOptions}\n analyticsData={{ action: 'next', date: formatAnalyticDataDate(DateHelper.startOf(DateHelper.add(props.monthDate, 1, 'month'), 'month')) }}\n >\n <NavigateButton action='next' onClick={onClickNext}/>\n </AppLink>\n )}\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'specialEvent.eventsErrorState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface SpecialEventErrorStateProps {\n imageUrl: string;\n appLink: Core.AppLink;\n}\n\nexport function SpecialEventErrorState(props: SpecialEventErrorStateProps): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={props.imageUrl} />\n <EmptyState.Heading><Text phrase='heading' /></EmptyState.Heading>\n <EmptyState.Info>\n <Text namespace={namespace} phrase='info' />\n <br/>\n <AppLink appLink={props.appLink}>\n <span className='text-info'>{getPhrase('link')}</span>\n </AppLink>\n </EmptyState.Info>\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { CalendarAppLinks } from 'libs/shared/apps/calendar/interfaces/CalendarAppLinks';\n\nimport { buildWeeksTable, DatePositionMap, initWeekDays, PatchedDate, WeeksTable } from '../utils/CalendarHelper';\n\ntype Cache = Record<string, {\n datePositionMap: DatePositionMap,\n weeksTable: WeeksTable\n }>\n\nconst TODAY_DATE = new Date();\n\nexport function useCalendarWeeksTable(date: Date = TODAY_DATE, appLinks: CalendarAppLinks, startAtMon: boolean = true) {\n const weekDaysHeader = initWeekDays(startAtMon);\n\n const cacheRef = React.useRef<Cache>({});\n\n const [ weekDays, setWeekDays ] = React.useState<PatchedDate[][]>([]);\n const monthDateString = DateHelper.format(date, 'YYYY-MM');\n React.useEffect(() => {\n const cached = cacheRef.current[monthDateString];\n if (!cached) {\n const { weeksTable, datePositionMap } = buildWeeksTable(date, startAtMon);\n \n cacheRef.current[monthDateString] = { weeksTable, datePositionMap };\n\n setWeekDays(weeksTable);\n } else {\n setWeekDays(cached.weeksTable);\n }\n }, [DateHelper.format(date, 'YYYY-MM')]);\n\n function setViewingMonthDate(nextMonthDate?: Date) {\n if (!nextMonthDate) {\n Core.AppLinkHelper.trigger(appLinks.calendar());\n\n return;\n }\n\n if (monthDateString !== DateHelper.format(nextMonthDate, 'YYYY-MM')) {\n const month = DateHelper.format(nextMonthDate, 'MMMM').toLocaleLowerCase();\n\n const currentYear = new Date().getFullYear();\n const year = date.getFullYear();\n\n const appLink: Core.AppLink = appLinks.month(month);\n\n if (currentYear !== year)\n appLink.params = { year };\n\n Core.AppLinkHelper.trigger(appLink);\n }\n }\n\n const startDate = ArrayHelper.first(ArrayHelper.first(weekDays));\n const endDate = ArrayHelper.last(ArrayHelper.last(weekDays));\n\n return { weekDaysHeader, weekDays, monthDate: date, setMonthDate: setViewingMonthDate, startDate, endDate };\n}","import { CalendarAppLinks } from 'libs/shared/apps/calendar/interfaces/CalendarAppLinks';\nimport { CalendarImageUrls } from 'libs/shared/apps/calendar/interfaces/CalendarImageUrls';\nimport { MonthQuery } from 'libs/shared/apps/calendar/interfaces/MonthQuery';\nimport { PatchedDate } from 'libs/shared/apps/calendar/utils/CalendarHelper';\nimport { CountryCode } from 'libs/shared/enums/CountryCode';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nexport function getCalendarImageUrls(countryCode?: CountryCode): CalendarImageUrls {\n switch (countryCode?.toLocaleLowerCase()) {\n case CountryCode.AU:\n return {\n emptyState: ImageUrls.EmptyStates.CALENDAR.NO_EVENTS_AU,\n errorState: ImageUrls.EmptyStates.CALENDAR.INVALID_DATE\n };\n\n case CountryCode.US:\n return {\n emptyState: ImageUrls.EmptyStates.CALENDAR.NO_EVENTS_US,\n errorState: ImageUrls.EmptyStates.CALENDAR.INVALID_DATE\n };\n\n case CountryCode.UK:\n return {\n emptyState: ImageUrls.EmptyStates.CALENDAR.NO_EVENTS_UK,\n errorState: ImageUrls.EmptyStates.CALENDAR.INVALID_DATE\n };\n\n default:\n return {\n emptyState: ImageUrls.EmptyStates.CALENDAR.NO_EVENTS,\n errorState: ImageUrls.EmptyStates.CALENDAR.INVALID_DATE\n };\n }\n}\n\nexport function getCalendarAppLinks(): CalendarAppLinks {\n return {\n calendar: () => ({ application: AppChannels.CALENDAR, action: Actions.Calendar.CALENDAR }),\n month: (month: string) => ({\n application: AppChannels.CALENDAR,\n action: Actions.Calendar.CALENDAR_MONTH,\n args: [month]\n }),\n event: (id: string, slug: string) => ({\n application: AppChannels.SUBJECT,\n action: Actions.Subjects.CLASSIFICATION,\n args: [ id, slug ]\n }),\n eventList: (monthQuery: MonthQuery, date: PatchedDate, presentationId: string) => ({\n application: AppChannels.CALENDAR,\n action: Actions.Calendar.SPECIAL_EVENT_LIST,\n params: {\n ...monthQuery,\n date: date.toString(),\n presentationId: presentationId\n }\n }),\n emptyStateRedirect: () => ({\n application: AppChannels.CONTENT_UPDATES,\n action: Actions.ContentUpdates.CONTENT_UPDATES\n })\n };\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/react/index';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { CalendarBody } from 'libs/shared/apps/calendar/components/calendar-body/CalendarBody';\nimport { CalendarNav } from 'libs/shared/apps/calendar/components/calendar-nav/CalendarNav';\nimport { SpecialEventErrorState } from 'libs/shared/apps/calendar/components/error-state/SpecialEventErrorState';\nimport { useCalendarEventsData } from 'libs/shared/apps/calendar/hooks/useCalendarEventsData';\nimport { useCalendarWeeksTable } from 'libs/shared/apps/calendar/hooks/useCalendarWeeksTable';\nimport { CalendarQueryParams } from 'libs/shared/apps/calendar/interfaces/CalendarQueryParams';\nimport { getIsValidMonth, parseMonthString } from 'libs/shared/apps/calendar/utils/CalendarHelper';\nimport { DiscoverHeader } from 'libs/shared/apps/discover/components/header/DiscoverHeader';\nimport { HardCoded } from 'libs/shared/constants/HardCoded';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Classification, CurrentUser, DashboardUserType } from 'libs/shared/interfaces';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { usePresentation } from 'shared/hooks/usePresentation';\nimport { useShowCalendar } from 'shared/hooks/useShowCalendar';\nimport { REGIONAL_CALENDAR_INDEXABILITY } from 'shared/utils/LiteRegionHelper';\nimport { SeoHelper } from 'shared/utils/SeoHelper';\n\nimport { getCalendarAppLinks, getCalendarImageUrls } from 'apps/calendar/views/calendar-view/CalendarViewUtils';\nimport { getDiscoverHeaderAppLinks } from 'apps/dashboard/views/dashboard/DiscoverViewUtils';\n\nconst namespace = 'specialEventCalendar.calendarView';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface CalendarViewProps {\n month?: string\n presentationSlug?: string;\n}\n\nexport function CalendarView(props: CalendarViewProps): JSX.Element {\n const breakpoints = useBreakpoints();\n const { activePresentation } = usePresentation({ redirectOnError: true });\n const { showCalendar, isLoading } = useShowCalendar();\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const isValidMonth = getIsValidMonth(props.month);\n\n React.useEffect(() => {\n if (!isLoading && !showCalendar)\n Core.AppLinkHelper.trigger(getDiscoverHeaderAppLinks().forYou, { replace: true });\n }, [ showCalendar, isLoading ]);\n\n const viewingMonth = parseMonthString(props.month);\n \n const {\n monthDate,\n setMonthDate,\n weekDays,\n weekDaysHeader,\n startDate, endDate\n } = useCalendarWeeksTable(viewingMonth, getCalendarAppLinks());\n\n const { events, loaded } = useCalendarEventsData(viewingMonth, activePresentation.id);\n\n const currentMonthYear = DateHelper.format(monthDate, 'MMMM YYYY');\n\n useSetPageMetadata(PageMetadataHelper.getDefaultMetadata({\n title: currentMonthYear,\n phraseContext: {\n phraseHandler: getPhrase,\n titlePhrase: 'pageTitle',\n descriptionPhrase: 'pageDescription'\n },\n canonicalLink: SeoHelper.getCanonicalLink<keyof CalendarQueryParams>({ allowedParams: ['year']}),\n allowIndexing: SeoHelper.allowIndexing(),\n hrefLang: SeoHelper.getStaticRouteHrefLang(\n activePresentation?.learningLevel,\n getCalendarAppLinks().calendar,\n REGIONAL_CALENDAR_INDEXABILITY\n )\n }));\n\n if (props.month !== null && !isValidMonth) {\n return (\n <SpecialEventErrorState\n imageUrl={getCalendarImageUrls().errorState}\n appLink={getCalendarAppLinks().calendar()}\n />\n );\n }\n\n function getIconUrl(classification: Classification, hardCodedEvent?: HashObject): string {\n return hardCodedEvent\n ? ImageHelper.createUrl((hardCodedEvent.iconUrl), { size: ImageSize.Medium })\n : ImageHelper.createUrl(classification.icon?.url, { size: ImageSize.Small });\n }\n\n function getCoverUrl(classification: Classification): string {\n return ImageHelper.createUrl(classification.cover?.url, { size: ImageSize.Small });\n }\n\n function getActionLabel(): string {\n return !breakpoints.xs ? getPhrase('buttonLabel') : getPhrase('mobileButtonLabel');\n }\n\n function getHardCodedEvent(classification: Classification): HashObject {\n return HardCoded.SpecialEvents[classification.id as keyof typeof HardCoded.SpecialEvents];\n }\n\n if (isLoading || !activePresentation?.id || !currentUser.data.countryCode)\n return <></>;\n\n return (\n <div className='bg-white px-3'>\n <DiscoverHeader\n type={DashboardUserType.Staff}\n appLinks={getDiscoverHeaderAppLinks()}\n showCalendar={showCalendar}\n active='calendar'\n />\n <CalendarNav monthDate={monthDate} setViewingMonthDate={setMonthDate} appLinks={getCalendarAppLinks()} />\n <CalendarBody\n weekDays={weekDays}\n weekDaysHeader={weekDaysHeader}\n events={events}\n monthQuery={{ from: startDate?.toString(), to: endDate?.toString() }}\n viewingMonth={viewingMonth}\n eventsLoaded={loaded}\n presentationId={activePresentation.id}\n appLinks={getCalendarAppLinks()}\n imageUrls={getCalendarImageUrls(currentUser.data.countryCode)}\n getIconUrl={(classification: Classification) => getIconUrl(classification, getHardCodedEvent(classification))}\n getCoverUrl={getCoverUrl}\n getBackgroundColor={(classification: Classification) => classification.metadata?.backgroundColor}\n getBannerUrl={(classification: Classification) => classification.banner?.url}\n getActionLabel={getActionLabel}\n getHardCodedEvent={getHardCodedEvent}\n />\n </div>\n );\n}","import { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { CalendarEvent } from 'libs/shared/interfaces';\n\nimport { CalendarRequests } from '../flight-request/CalendarRequests';\nimport { getCalendarRange } from '../utils/CalendarHelper';\n\nexport function useCalendarEventsData(viewMonth: Date, presentationId: string) {\n const pid = presentationId;\n const [ startDate, endDate ] = getCalendarRange(viewMonth);\n\n const nextMonth = DateHelper.add(viewMonth, 1, 'month');\n const [ nextStartDate, nextEndDate ] = getCalendarRange(nextMonth);\n\n const prevMonth = DateHelper.subtract(viewMonth, 1, 'month');\n const [ prevStartDate, prevEndDate ] = getCalendarRange(prevMonth);\n\n const events = Flight.useBasicFetch<CalendarEvent[]>((startDate && endDate && pid)\n && CalendarRequests.calendarEvents(DateHelper.format(startDate, 'YYYY-MM-DD'), DateHelper.format(endDate, 'YYYY-MM-DD'), pid));\n const nextEvents = Flight.useBasicFetch<CalendarEvent[]>((nextStartDate && nextEndDate && pid)\n && CalendarRequests.calendarEvents(DateHelper.format(nextStartDate, 'YYYY-MM-DD'), DateHelper.format(nextEndDate, 'YYYY-MM-DD'), pid));\n const prevEvents = Flight.useBasicFetch<CalendarEvent[]>((prevStartDate && prevEndDate && pid)\n && CalendarRequests.calendarEvents(DateHelper.format(prevStartDate, 'YYYY-MM-DD'), DateHelper.format(prevEndDate, 'YYYY-MM-DD'), pid));\n\n const uniqueEventList = ArrayHelper.uniq(\n [ ...prevEvents.data || [], ...events.data || [], ...nextEvents.data || [] ],\n e => e.specialEventPolicyId\n );\n\n return { events: uniqueEventList, loaded: events.hasCompleted };\n}","import { Core } from 'libs/common/backbone/index';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { DiscoverHeaderAppLinks } from 'libs/shared/apps/discover/components/header/DiscoverHeader';\nimport { OnboardingScreenId } from 'libs/shared/apps/onboarding/interfaces/OnboardingScreenId';\nimport { RatingFilterHelper } from 'libs/shared/apps/search/utils/RatingFilterHelper';\nimport { WidgetAppLinks } from 'libs/shared/components/widgets/curated-widgets/WidgetProps';\nimport { RelatedVideosContext } from 'libs/shared/enums/RelatedVideosContext';\nimport { Classification, Company, Playlist, Rating, Video, VideoTypes } from 'libs/shared/interfaces';\nimport { GetVideoAppLinkOptions } from 'libs/shared/interfaces/VideoAppLinkOptions';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { getOnboardingAppLinks } from 'apps/onboarding/utils/OnboardingAppLinkHelper';\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nconst CLASSIFICATION_LATEST_RELEASES = 'classification-latest-releases';\n\nexport function getDiscoverWidgetAppLinks(\n params: HashObject\n): WidgetAppLinks {\n return {\n classification: (classification?: Classification) => {\n return {\n application: AppChannels.SUBJECT,\n action: Actions.Subjects.CLASSIFICATION,\n args: [ classification?.id, TextHelper.slugify(classification?.name) ],\n params: params || {}\n };\n },\n\n videoType: (video: VideoTypes, opts: GetVideoAppLinkOptions) => (\n VideoAppLinkHelper.getAppLink(video, {\n ...opts,\n context: RelatedVideosContext.Widget\n })\n ),\n\n series: SeriesAppLinkHelper.getSeriesAppLink,\n\n subText: (video: Video) => SeriesAppLinkHelper.getSeriesAppLink(video.series),\n\n playlist: (playlist: Playlist) => ({\n application: AppChannels.PLAYLISTS,\n action: Actions.Playlists.PLAYLIST,\n args: [ playlist.id, TextHelper.slugify(playlist.name) ]\n }),\n \n latestReleases: () => ({\n application: AppChannels.CONTENT_UPDATES,\n action: Actions.ContentUpdates.CONTENT_UPDATES\n }),\n\n allTopics: () => ({\n application: AppChannels.SUBJECT,\n action: Actions.Subjects.CLASSIFICATION_ALL\n }),\n\n classificationLatestReleases: (classification: Classification) => {\n if (classification.id === CLASSIFICATION_LATEST_RELEASES)\n return {\n application: AppChannels.CONTENT_UPDATES,\n action: Actions.ContentUpdates.CONTENT_UPDATES\n };\n\n return {\n application: AppChannels.CONTENT_UPDATES,\n action: Actions.ContentUpdates.CLASSIFICATION_UPDATE,\n args: [ classification.id, TextHelper.slugify(classification.name) ]\n };\n },\n\n widgetVideoList: (widgetId: string, widgetName: string) => ({\n application: AppChannels.DASHBOARD,\n action: Actions.Dashboard.DASHBOARD,\n args: [ widgetId, TextHelper.slugify(widgetName) ]\n }),\n\n watchHistory: () => ({\n application: AppChannels.WATCH_HISTORY,\n action: Actions.WatchHistory.HOME\n }),\n\n rating: (rating: Rating, ratings: Rating[]) => ({\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: {\n moviesAndTv: true,\n rating: RatingFilterHelper.getFrontendParamValue([ ArrayHelper.first(ratings), rating ])\n }\n }),\n\n company: (company: Company) => ({\n application: AppChannels.MOVIES_AND_TV,\n action: Actions.MoviesAndTv.COMPANY_DASHBOARD,\n args: [ company.id, TextHelper.slugify(company.name) ]\n }),\n\n discover: () => ({\n application: AppChannels.DASHBOARD,\n action: Actions.Dashboard.HOME\n }),\n\n calendar: () => ({\n application: AppChannels.CALENDAR,\n action: Actions.Calendar.CALENDAR\n }),\n\n calendarMonth: (month: string, year?: string) => {\n const appLink: Core.AppLink = {\n application: AppChannels.CALENDAR,\n action: Actions.Calendar.CALENDAR_MONTH,\n args: [month.toLowerCase()]\n };\n\n if (year)\n appLink.params = { year };\n\n return appLink;\n },\n\n onboardingStep: (step: OnboardingScreenId) => {\n const appLinks = getOnboardingAppLinks();\n return appLinks[step];\n },\n\n onboardingAppLinks: () => {\n return getOnboardingAppLinks();\n },\n\n classroomGuide: VideoAppLinkHelper.getClassroomGuideAppLink,\n interactiveGuidance: VideoAppLinkHelper.getInteractiveGuidanceAppLink,\n resourceGuidance: VideoAppLinkHelper.getResourceGuidanceAppLink\n };\n}\n\nexport function getDiscoverHeaderAppLinks(): DiscoverHeaderAppLinks {\n return {\n forYou: {\n application: AppChannels.DASHBOARD,\n action: Actions.Dashboard.HOME\n },\n whatsNew: {\n application: AppChannels.CONTENT_UPDATES,\n action: Actions.ContentUpdates.CONTENT_UPDATES\n },\n calendar: {\n application: AppChannels.CALENDAR,\n action: Actions.Calendar.CALENDAR\n }\n };\n}","import React from 'react';\n\nimport { EnvironmentVariables } from 'libs/common/backbone/services/EnvironmentVariables';\nimport { Flight } from 'libs/common/react/index';\n\nimport { ContentRegion } from 'libs/shared/enums/ContentRegion';\nimport { PresentationLearningLevel } from 'libs/shared/enums/PresentationLearningLevel';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { CurrentUser } from 'libs/shared/interfaces';\nimport { TopicsHelper } from 'libs/shared/utils/topics-helper/TopicsHelper';\n\nimport { usePresentation } from 'shared/hooks/usePresentation';\n\nconst ALLOWED_LEARNING_LEVELS_BY_REGION: Record<ContentRegion, PresentationLearningLevel[]> = {\n [ContentRegion.AU]: [\n // AU Primary Calendar\n PresentationLearningLevel.Level_1\n ],\n [ContentRegion.US]: [\n // US Elementary Calendar\n PresentationLearningLevel.Level_1\n ],\n [ContentRegion.UK]: [\n // UK Primary Calendar\n PresentationLearningLevel.Level_1\n ],\n [ContentRegion.SCOT]: [\n // Scotland Primary Calendar\n PresentationLearningLevel.Level_1\n ],\n [ContentRegion.NZ]: [],\n [ContentRegion.GLOBAL]: []\n};\n\nexport function useShowCalendar() {\n const { hasSpecialEventCalendar, isLoadingSettings } = useSettings(null);\n\n const {\n activePresentation\n } = usePresentation({ redirectOnError: true });\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const allowedLearningLevels = ALLOWED_LEARNING_LEVELS_BY_REGION[currentUser.data?.contentRegion];\n const learningLevel = TopicsHelper.getMappedPresentationLevel(activePresentation?.learningLevel);\n const learningLevelCantAccess = !allowedLearningLevels?.find(l => {\n return l.toString() === (learningLevel as PresentationLearningLevel)?.toString();\n });\n\n const noSetting = !isLoadingSettings && !hasSpecialEventCalendar;\n\n const [ showCalendar, setShowCalendar ] = React.useState<boolean>(!noSetting && !learningLevelCantAccess);\n\n const [ isLoading, setIsLoading ] = React.useState(isLoadingSettings || !activePresentation?.id);\n\n React.useEffect(() => {\n if (noSetting || learningLevelCantAccess) {\n setShowCalendar(false);\n } else if (!isLoading) {\n setShowCalendar(true);\n }\n setIsLoading(isLoadingSettings || !activePresentation?.id);\n }, [ hasSpecialEventCalendar, activePresentation?.id, isLoading ]);\n\n if (EnvironmentVariables.isDevelopment)\n return { showCalendar: true, isLoading: false };\n\n return { showCalendar, isLoading };\n}","// extracted by mini-css-extract-plugin\nexport default {\"pillTabSelector\":\"Hdi6o\",\"tab\":\"RvNxr\",\"minWidth\":\"GHSz9\",\"radiusSmall\":\"VhJJa\",\"tabLink\":\"WFyvo\"};"],"names":["BaseLinkifyOptions","className","defaultProtocol","LinkifyHelper","linkifyText","text","options","ops","getPhrase","LanguageService","CalendarCellDate","props","isToday","DateHelper","date","dateClassName","notCurrentMonth","isHovering","hasEvent","delay","ref","CalendarEvents","sliderStep","setSliderStep","multiEvents","eventsOnDay","length","displayedEvent","find","e","idx","multiDayEvent","endDate","backgroundColor","getBackgroundColor","content","hardCodedEvent","getHardCodedEvent","iconUrl","getIconUrl","coverUrl","getCoverUrl","isComingSoon","status","ClassificationStatus","hasInitialized","setClassName","randomNumber","Math","floor","random","window","setTimeout","setHasInitialized","setHoveredEvent","hoveredEvent","specialEventId","analyticsData","presentationId","eventCount","eventId","map","join","topicId","id","eventStatus","getAnalyticsData","analyticsOptions","actionType","entity","location","formatAnalyticDataDate","getBgImageClassName","isMultiEventDate","onClick","AnalyticsHelper","AppLink","appLink","getEventsListAppLink","getTopicAppLink","name","getAppLink","ComingSoonTag","onlyIcon","hideDay","style","LazyImage","src","alt","backgroundImage","SpecialEventHelper","startDate","title","DivButton","stopPropagation","preventDefault","s","action","SvgContainer","svgName","SliderDots","sliderLength","size","onSliderDotClick","i","CalendarDay","namespace","Tooltip","spanHackClassName","spanHack","SpecialEventListItem","event","bannerUrl","getBannerUrl","startTime","getStartTime","actionLabel","getActionLabel","inPopup","Date","BaseImage","data","description","ActionButton","dangerouslySetInnerHTML","__html","CalendarRequests","calendarEvents","from","to","url","publicUrl","key","nextTopicSpecialEvent","classificationId","params","limit","objectType","formatData","events","getDisplayDate","slice","getEventsInMonth","month","filter","getOrdinalDate","DiscoverHeader","type","hasStudentExperience","Text","phrase","tabs","appLinks","forYou","active","whatsNew","showCalendar","push","calendar","PillTabSelector","TabContents","tab","count","borderRadius","listClassName","index","onSelect","onSelectTab","defaultProps","CalendarCell","wrapperClassname","theme","border","getIsWeekend","updatedProps","HoverToPortalContainer","hoverableComponent","componentProps","hoverScale","SpecialEventEmptyState","value","EmptyState","imageUrl","altText","heading","SpecialEventList","eventsInMonth","forEach","keys","Object","sort","a","b","k","prevTime","currentTime","TextHelper","CalendarBody","imageUrls","breakpoints","useBreakpoints","viewingMonth","eventsLoaded","emptyState","emptyStateRedirect","emptyStateHeading","viewMode","xs","sm","md","Spinner","as","animation","role","background","weekDaysHeader","w","weekDays","toString","d","monthQuery","eventList","CALENDAR_START_DATE","NEXT_MONTH_LIMIT","getPreviousMonthOverlappingDays","startAtMon","firstDay","firstWeekDay","prevMonthDays","prevMonthDaysCount","originalDay","preDay","assign","reverse","getNextMonthOverlappingDays","lastDay","lastWeekDay","nextMonthDays","nextMonthDaysCount","nextDay","getFirstDateInCalendar","monthDate","firstDayOfMonth","ArrayHelper","getLastDateInCalendar","lastDayOfMonth","getCalendarRange","capitalizeMonthString","monthStr","charAt","toUpperCase","CUR_DATE","ViewModeSwitcher","IconButton","setViewMode","descriptor","Calendar","NavigateButton","arrowSvg","S","CalendarNav","toLocaleLowerCase","currentYear","getFullYear","year","queryParams","classification","yearGroup","monthDiff","showPrev","showNext","children","prevMonth","setViewingMonthDate","nextMonth","SpecialEventErrorState","TODAY_DATE","useCalendarWeeksTable","weekdays","initWeekDays","cacheRef","setWeekDays","monthDateString","cached","current","weeksTable","datePositionMap","monthDays","concat","numberOfDays","daysArray","day","getDaysOfMonth","week","j","colId","row","col","rowId","buildWeeksTable","setMonthDate","nextMonthDate","getCalendarImageUrls","countryCode","CountryCode","C","ImageUrls","errorState","getCalendarAppLinks","application","args","slug","CalendarView","activePresentation","usePresentation","redirectOnError","useShowCalendar","isLoading","currentUser","UserRequests","isValidMonth","capitalized","getIsValidMonth","replace","parseMonthString","viewMonth","pid","nextStartDate","nextEndDate","prevStartDate","prevEndDate","nextEvents","prevEvents","specialEventPolicyId","loaded","hasCompleted","useCalendarEventsData","currentMonthYear","useSetPageMetadata","PageMetadataHelper","phraseContext","phraseHandler","titlePhrase","descriptionPhrase","canonicalLink","SeoHelper","allowedParams","allowIndexing","hrefLang","learningLevel","HardCoded","ImageHelper","icon","cover","metadata","banner","CLASSIFICATION_LATEST_RELEASES","getDiscoverWidgetAppLinks","videoType","video","opts","context","series","subText","playlist","latestReleases","allTopics","classificationLatestReleases","widgetVideoList","widgetId","widgetName","watchHistory","rating","ratings","moviesAndTv","company","discover","calendarMonth","toLowerCase","onboardingStep","step","onboardingAppLinks","classroomGuide","interactiveGuidance","resourceGuidance","getDiscoverHeaderAppLinks","ALLOWED_LEARNING_LEVELS_BY_REGION","hasSpecialEventCalendar","isLoadingSettings","allowedLearningLevels","contentRegion","learningLevelCantAccess","l","noSetting","setShowCalendar","setIsLoading"],"sourceRoot":""}
|