@clickview/lite 0.52.3-dev.1 → 0.52.3-dev.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundles.json +1 -1
- package/dist/languages/en.json +1 -1
- package/dist/scripts/1063-5a732288dc-lite.chunk.js +2 -0
- package/dist/scripts/1063-5a732288dc-lite.chunk.js.map +1 -0
- package/dist/scripts/{9173-2392d447a6-lite.chunk.js → 1104-f057c6dea1-lite.chunk.js} +3 -3
- package/dist/scripts/{9173-2392d447a6-lite.chunk.js.map → 1104-f057c6dea1-lite.chunk.js.map} +1 -1
- package/dist/scripts/{1125-aac132b88f-lite.chunk.js → 1125-c5138ef662-lite.chunk.js} +2 -2
- package/dist/scripts/1125-c5138ef662-lite.chunk.js.map +1 -0
- package/dist/scripts/1169-9b7d850bab-lite.chunk.js +2 -0
- package/dist/scripts/1169-9b7d850bab-lite.chunk.js.map +1 -0
- package/dist/scripts/{1379-6f35e2e9bb-lite.chunk.js → 1379-ca519ec56b-lite.chunk.js} +3 -3
- package/dist/scripts/{1379-6f35e2e9bb-lite.chunk.js.map → 1379-ca519ec56b-lite.chunk.js.map} +1 -1
- package/dist/scripts/1672-0d1fc90529-lite.chunk.js +3 -0
- package/dist/scripts/1672-0d1fc90529-lite.chunk.js.map +1 -0
- package/dist/scripts/1725-99450ed637-lite.chunk.js +2 -0
- package/dist/scripts/1725-99450ed637-lite.chunk.js.map +1 -0
- package/dist/scripts/1891-5914c54eca-lite.chunk.js +2 -0
- package/dist/scripts/1891-5914c54eca-lite.chunk.js.map +1 -0
- package/dist/scripts/1896-399a91d18c-lite.chunk.js +2 -0
- package/dist/scripts/1896-399a91d18c-lite.chunk.js.map +1 -0
- package/dist/scripts/193-797b89797a-lite.chunk.js +2 -0
- package/dist/scripts/193-797b89797a-lite.chunk.js.map +1 -0
- package/dist/scripts/209-fe96739cb5-lite.chunk.js +2 -0
- package/dist/scripts/209-fe96739cb5-lite.chunk.js.map +1 -0
- package/dist/scripts/2134-b8d5c46887-lite.chunk.js +2 -0
- package/dist/scripts/2134-b8d5c46887-lite.chunk.js.map +1 -0
- package/dist/scripts/2142-f71cf5c71f-lite.chunk.js +2 -0
- package/dist/scripts/2142-f71cf5c71f-lite.chunk.js.map +1 -0
- package/dist/scripts/2402-ff1b4adf1a-lite.chunk.js +2 -0
- package/dist/scripts/2402-ff1b4adf1a-lite.chunk.js.map +1 -0
- package/dist/scripts/2548-c5dd2899df-lite.chunk.js +2 -0
- package/dist/scripts/2548-c5dd2899df-lite.chunk.js.map +1 -0
- package/dist/scripts/2952-c3a826b714-lite.chunk.js +2 -0
- package/dist/scripts/2952-c3a826b714-lite.chunk.js.map +1 -0
- package/dist/scripts/3404-23125f10ea-lite.chunk.js +2 -0
- package/dist/scripts/3404-23125f10ea-lite.chunk.js.map +1 -0
- package/dist/scripts/3633-f3609526a5-lite.chunk.js +2 -0
- package/dist/scripts/3633-f3609526a5-lite.chunk.js.map +1 -0
- package/dist/scripts/3728-eed9e78985-lite.chunk.js +2 -0
- package/dist/scripts/3728-eed9e78985-lite.chunk.js.map +1 -0
- package/dist/scripts/4063-5fa157657f-lite.chunk.js +2 -0
- package/dist/scripts/4063-5fa157657f-lite.chunk.js.map +1 -0
- package/dist/scripts/4182-ba03f3ce3c-lite.chunk.js +2 -0
- package/dist/scripts/4182-ba03f3ce3c-lite.chunk.js.map +1 -0
- package/dist/scripts/4273-e42f763f00-lite.chunk.js +3 -0
- package/dist/scripts/4273-e42f763f00-lite.chunk.js.map +1 -0
- package/dist/scripts/4395-d0815835c8-lite.chunk.js +2 -0
- package/dist/scripts/4395-d0815835c8-lite.chunk.js.map +1 -0
- package/dist/scripts/4502-af4903784e-lite.chunk.js +2 -0
- package/dist/scripts/4502-af4903784e-lite.chunk.js.map +1 -0
- package/dist/scripts/4850-bb9541d3ed-lite.chunk.js +2 -0
- package/dist/scripts/4850-bb9541d3ed-lite.chunk.js.map +1 -0
- package/dist/scripts/5573-4352a3537e-lite.chunk.js +2 -0
- package/dist/scripts/5573-4352a3537e-lite.chunk.js.map +1 -0
- package/dist/scripts/5595-3acc9593bf-lite.chunk.js +2 -0
- package/dist/scripts/5595-3acc9593bf-lite.chunk.js.map +1 -0
- package/dist/scripts/5606-69c0ca2b97-lite.chunk.js +2 -0
- package/dist/scripts/5606-69c0ca2b97-lite.chunk.js.map +1 -0
- package/dist/scripts/5877-628732da21-lite.chunk.js +2 -0
- package/dist/scripts/5877-628732da21-lite.chunk.js.map +1 -0
- package/dist/scripts/5936-cd98109a7b-lite.chunk.js +2 -0
- package/dist/scripts/5936-cd98109a7b-lite.chunk.js.map +1 -0
- package/dist/scripts/{5940-f335f8c290-lite.chunk.js → 5940-2767b40c40-lite.chunk.js} +2 -2
- package/dist/scripts/5940-2767b40c40-lite.chunk.js.map +1 -0
- package/dist/scripts/6054-1e9b86d631-lite.chunk.js +2 -0
- package/dist/scripts/6054-1e9b86d631-lite.chunk.js.map +1 -0
- package/dist/scripts/6138-2ef7ee071a-lite.chunk.js +2 -0
- package/dist/scripts/6138-2ef7ee071a-lite.chunk.js.map +1 -0
- package/dist/scripts/{624-575b07d922-lite.chunk.js → 624-09b51a9d32-lite.chunk.js} +3 -3
- package/dist/scripts/{624-575b07d922-lite.chunk.js.map → 624-09b51a9d32-lite.chunk.js.map} +1 -1
- package/dist/scripts/6263-8a7931bf51-lite.chunk.js +2 -0
- package/dist/scripts/6263-8a7931bf51-lite.chunk.js.map +1 -0
- package/dist/scripts/6290-28ae0e8a60-lite.chunk.js +2 -0
- package/dist/scripts/6290-28ae0e8a60-lite.chunk.js.map +1 -0
- package/dist/scripts/6470-9a700cabce-lite.chunk.js +2 -0
- package/dist/scripts/6470-9a700cabce-lite.chunk.js.map +1 -0
- package/dist/scripts/6481-035d218a77-lite.chunk.js +2 -0
- package/dist/scripts/6481-035d218a77-lite.chunk.js.map +1 -0
- package/dist/scripts/6532-59e9abf69d-lite.chunk.js +2 -0
- package/dist/scripts/6532-59e9abf69d-lite.chunk.js.map +1 -0
- package/dist/scripts/6596-f75129c039-lite.chunk.js +2 -0
- package/dist/scripts/6596-f75129c039-lite.chunk.js.map +1 -0
- package/dist/scripts/6604-9adec889c7-lite.chunk.js +2 -0
- package/dist/scripts/6604-9adec889c7-lite.chunk.js.map +1 -0
- package/dist/scripts/6746-3f501b95cf-lite.chunk.js +2 -0
- package/dist/scripts/6746-3f501b95cf-lite.chunk.js.map +1 -0
- package/dist/scripts/714-c00ad56229-lite.chunk.js +2 -0
- package/dist/scripts/714-c00ad56229-lite.chunk.js.map +1 -0
- package/dist/scripts/7163-84c2b15394-lite.chunk.js +2 -0
- package/dist/scripts/7163-84c2b15394-lite.chunk.js.map +1 -0
- package/dist/scripts/7178-ed74c33056-lite.chunk.js +2 -0
- package/dist/scripts/7178-ed74c33056-lite.chunk.js.map +1 -0
- package/dist/scripts/7223-0bfab7e57a-lite.chunk.js +2 -0
- package/dist/scripts/7223-0bfab7e57a-lite.chunk.js.map +1 -0
- package/dist/scripts/7234-84c087600e-lite.chunk.js +2 -0
- package/dist/scripts/7234-84c087600e-lite.chunk.js.map +1 -0
- package/dist/scripts/7267-fd5085f5c9-lite.chunk.js +2 -0
- package/dist/scripts/7267-fd5085f5c9-lite.chunk.js.map +1 -0
- package/dist/scripts/7633-6c1ffdd082-lite.chunk.js +2 -0
- package/dist/scripts/7633-6c1ffdd082-lite.chunk.js.map +1 -0
- package/dist/scripts/7679-8f2d6a3487-lite.chunk.js +2 -0
- package/dist/scripts/7679-8f2d6a3487-lite.chunk.js.map +1 -0
- package/dist/scripts/7757-7e293be936-lite.chunk.js +2 -0
- package/dist/scripts/7757-7e293be936-lite.chunk.js.map +1 -0
- package/dist/scripts/7795-c6d38bc3e5-lite.chunk.js +2 -0
- package/dist/scripts/7795-c6d38bc3e5-lite.chunk.js.map +1 -0
- package/dist/scripts/7818-230982fc27-lite.chunk.js +2 -0
- package/dist/scripts/7818-230982fc27-lite.chunk.js.map +1 -0
- package/dist/scripts/8323-360541a2a8-lite.chunk.js +3 -0
- package/dist/scripts/8323-360541a2a8-lite.chunk.js.map +1 -0
- package/dist/scripts/8709-c4f1068232-lite.chunk.js +2 -0
- package/dist/scripts/8709-c4f1068232-lite.chunk.js.map +1 -0
- package/dist/scripts/8982-a3dc4a6b3c-lite.chunk.js +2 -0
- package/dist/scripts/8982-a3dc4a6b3c-lite.chunk.js.map +1 -0
- package/dist/scripts/9010-024dcc8f9a-lite.chunk.js +2 -0
- package/dist/scripts/9010-024dcc8f9a-lite.chunk.js.map +1 -0
- package/dist/scripts/9016-82d7e0afb9-lite.chunk.js +3 -0
- package/dist/scripts/9016-82d7e0afb9-lite.chunk.js.map +1 -0
- package/dist/scripts/9173-f9708ec0de-lite.chunk.js +2 -0
- package/dist/scripts/9173-f9708ec0de-lite.chunk.js.map +1 -0
- package/dist/scripts/9230-ae200d2bd3-lite.chunk.js +3 -0
- package/dist/scripts/9230-ae200d2bd3-lite.chunk.js.map +1 -0
- package/dist/scripts/9359-1fb4413e0d-lite.chunk.js +2 -0
- package/dist/scripts/9359-1fb4413e0d-lite.chunk.js.map +1 -0
- package/dist/scripts/{9395-4cf6f3948e-lite.chunk.js → 9395-e1a02b01ce-lite.chunk.js} +3 -3
- package/dist/scripts/{9395-4cf6f3948e-lite.chunk.js.map → 9395-e1a02b01ce-lite.chunk.js.map} +1 -1
- package/dist/scripts/9399-d7a92ce84a-lite.chunk.js +2 -0
- package/dist/scripts/9399-d7a92ce84a-lite.chunk.js.map +1 -0
- package/dist/scripts/{9478-99486906b9-lite.chunk.js → 9478-abfa7ed3cc-lite.chunk.js} +3 -3
- package/dist/scripts/{9478-99486906b9-lite.chunk.js.map → 9478-abfa7ed3cc-lite.chunk.js.map} +1 -1
- package/dist/scripts/{953-fd31f9f016-lite.chunk.js → 953-225db845ab-lite.chunk.js} +3 -3
- package/dist/scripts/{953-fd31f9f016-lite.chunk.js.map → 953-225db845ab-lite.chunk.js.map} +1 -1
- package/dist/scripts/9719-9736913451-lite.chunk.js +3 -0
- package/dist/scripts/9719-9736913451-lite.chunk.js.map +1 -0
- package/dist/scripts/999-bdc7956050-lite.chunk.js +2 -0
- package/dist/scripts/999-bdc7956050-lite.chunk.js.map +1 -0
- package/dist/scripts/bundle-9f8729bedb.min.js +3 -0
- package/dist/scripts/bundle-9f8729bedb.min.js.map +1 -0
- package/package.json +1 -1
- package/dist/scripts/1076-10e5ee6c22-lite.chunk.js +0 -2
- package/dist/scripts/1076-10e5ee6c22-lite.chunk.js.map +0 -1
- package/dist/scripts/1125-aac132b88f-lite.chunk.js.map +0 -1
- package/dist/scripts/1169-9b1c04fd85-lite.chunk.js +0 -2
- package/dist/scripts/1169-9b1c04fd85-lite.chunk.js.map +0 -1
- package/dist/scripts/1672-672f298d82-lite.chunk.js +0 -3
- package/dist/scripts/1672-672f298d82-lite.chunk.js.map +0 -1
- package/dist/scripts/1725-075015497e-lite.chunk.js +0 -2
- package/dist/scripts/1725-075015497e-lite.chunk.js.map +0 -1
- package/dist/scripts/1818-64a145c5fe-lite.chunk.js +0 -2
- package/dist/scripts/1818-64a145c5fe-lite.chunk.js.map +0 -1
- package/dist/scripts/1820-993521951d-lite.chunk.js +0 -2
- package/dist/scripts/1820-993521951d-lite.chunk.js.map +0 -1
- package/dist/scripts/1891-e80f9f17ee-lite.chunk.js +0 -2
- package/dist/scripts/1891-e80f9f17ee-lite.chunk.js.map +0 -1
- package/dist/scripts/1896-32a6eeda5c-lite.chunk.js +0 -2
- package/dist/scripts/1896-32a6eeda5c-lite.chunk.js.map +0 -1
- package/dist/scripts/193-f08b054631-lite.chunk.js +0 -2
- package/dist/scripts/193-f08b054631-lite.chunk.js.map +0 -1
- package/dist/scripts/209-de1729d1b1-lite.chunk.js +0 -2
- package/dist/scripts/209-de1729d1b1-lite.chunk.js.map +0 -1
- package/dist/scripts/2134-bca2f4697e-lite.chunk.js +0 -2
- package/dist/scripts/2134-bca2f4697e-lite.chunk.js.map +0 -1
- package/dist/scripts/2548-b81ae38f1f-lite.chunk.js +0 -2
- package/dist/scripts/2548-b81ae38f1f-lite.chunk.js.map +0 -1
- package/dist/scripts/2703-591ccf069c-lite.chunk.js +0 -2
- package/dist/scripts/2703-591ccf069c-lite.chunk.js.map +0 -1
- package/dist/scripts/3404-171fdee802-lite.chunk.js +0 -2
- package/dist/scripts/3404-171fdee802-lite.chunk.js.map +0 -1
- package/dist/scripts/3633-66d28be6f8-lite.chunk.js +0 -2
- package/dist/scripts/3633-66d28be6f8-lite.chunk.js.map +0 -1
- package/dist/scripts/3728-d7ecfc6667-lite.chunk.js +0 -2
- package/dist/scripts/3728-d7ecfc6667-lite.chunk.js.map +0 -1
- package/dist/scripts/3922-d40b0ce5aa-lite.chunk.js +0 -2
- package/dist/scripts/3922-d40b0ce5aa-lite.chunk.js.map +0 -1
- package/dist/scripts/4182-7aecc28a6f-lite.chunk.js +0 -2
- package/dist/scripts/4182-7aecc28a6f-lite.chunk.js.map +0 -1
- package/dist/scripts/4395-64da004753-lite.chunk.js +0 -2
- package/dist/scripts/4395-64da004753-lite.chunk.js.map +0 -1
- package/dist/scripts/4502-2e30d86385-lite.chunk.js +0 -2
- package/dist/scripts/4502-2e30d86385-lite.chunk.js.map +0 -1
- package/dist/scripts/5143-b6896dad98-lite.chunk.js +0 -2
- package/dist/scripts/5143-b6896dad98-lite.chunk.js.map +0 -1
- package/dist/scripts/5573-6cd98b69f2-lite.chunk.js +0 -2
- package/dist/scripts/5573-6cd98b69f2-lite.chunk.js.map +0 -1
- package/dist/scripts/5595-c4397e12a8-lite.chunk.js +0 -2
- package/dist/scripts/5595-c4397e12a8-lite.chunk.js.map +0 -1
- package/dist/scripts/5606-6c25caedc4-lite.chunk.js +0 -2
- package/dist/scripts/5606-6c25caedc4-lite.chunk.js.map +0 -1
- package/dist/scripts/5877-ddfaf6a7f5-lite.chunk.js +0 -2
- package/dist/scripts/5877-ddfaf6a7f5-lite.chunk.js.map +0 -1
- package/dist/scripts/5936-6fe810d3cb-lite.chunk.js +0 -2
- package/dist/scripts/5936-6fe810d3cb-lite.chunk.js.map +0 -1
- package/dist/scripts/5940-f335f8c290-lite.chunk.js.map +0 -1
- package/dist/scripts/6054-14d4ceeae3-lite.chunk.js +0 -2
- package/dist/scripts/6054-14d4ceeae3-lite.chunk.js.map +0 -1
- package/dist/scripts/6138-21ae042a7b-lite.chunk.js +0 -2
- package/dist/scripts/6138-21ae042a7b-lite.chunk.js.map +0 -1
- package/dist/scripts/6263-3455286798-lite.chunk.js +0 -2
- package/dist/scripts/6263-3455286798-lite.chunk.js.map +0 -1
- package/dist/scripts/6290-56412c6663-lite.chunk.js +0 -2
- package/dist/scripts/6290-56412c6663-lite.chunk.js.map +0 -1
- package/dist/scripts/6415-b29029aa1b-lite.chunk.js +0 -2
- package/dist/scripts/6415-b29029aa1b-lite.chunk.js.map +0 -1
- package/dist/scripts/6470-6216086d63-lite.chunk.js +0 -2
- package/dist/scripts/6470-6216086d63-lite.chunk.js.map +0 -1
- package/dist/scripts/6481-899eba8b3d-lite.chunk.js +0 -2
- package/dist/scripts/6481-899eba8b3d-lite.chunk.js.map +0 -1
- package/dist/scripts/6532-a6b65c91a7-lite.chunk.js +0 -2
- package/dist/scripts/6532-a6b65c91a7-lite.chunk.js.map +0 -1
- package/dist/scripts/6604-92193d6d68-lite.chunk.js +0 -2
- package/dist/scripts/6604-92193d6d68-lite.chunk.js.map +0 -1
- package/dist/scripts/6746-b5b2739944-lite.chunk.js +0 -2
- package/dist/scripts/6746-b5b2739944-lite.chunk.js.map +0 -1
- package/dist/scripts/679-e18e7956d0-lite.chunk.js +0 -2
- package/dist/scripts/679-e18e7956d0-lite.chunk.js.map +0 -1
- package/dist/scripts/714-432082f4fa-lite.chunk.js +0 -2
- package/dist/scripts/714-432082f4fa-lite.chunk.js.map +0 -1
- package/dist/scripts/7178-e603ea6b58-lite.chunk.js +0 -2
- package/dist/scripts/7178-e603ea6b58-lite.chunk.js.map +0 -1
- package/dist/scripts/7223-135cc7d675-lite.chunk.js +0 -2
- package/dist/scripts/7223-135cc7d675-lite.chunk.js.map +0 -1
- package/dist/scripts/729-c704d587d3-lite.chunk.js +0 -2
- package/dist/scripts/729-c704d587d3-lite.chunk.js.map +0 -1
- package/dist/scripts/7679-b01da2c09d-lite.chunk.js +0 -2
- package/dist/scripts/7679-b01da2c09d-lite.chunk.js.map +0 -1
- package/dist/scripts/7757-320e868e90-lite.chunk.js +0 -2
- package/dist/scripts/7757-320e868e90-lite.chunk.js.map +0 -1
- package/dist/scripts/7795-3ca0855d3a-lite.chunk.js +0 -2
- package/dist/scripts/7795-3ca0855d3a-lite.chunk.js.map +0 -1
- package/dist/scripts/7818-2eafc5f812-lite.chunk.js +0 -2
- package/dist/scripts/7818-2eafc5f812-lite.chunk.js.map +0 -1
- package/dist/scripts/8323-99cb03891e-lite.chunk.js +0 -3
- package/dist/scripts/8323-99cb03891e-lite.chunk.js.map +0 -1
- package/dist/scripts/8478-0292f02489-lite.chunk.js +0 -2
- package/dist/scripts/8478-0292f02489-lite.chunk.js.map +0 -1
- package/dist/scripts/8766-bcc7f11eac-lite.chunk.js +0 -2
- package/dist/scripts/8766-bcc7f11eac-lite.chunk.js.map +0 -1
- package/dist/scripts/8800-335154fe11-lite.chunk.js +0 -2
- package/dist/scripts/8800-335154fe11-lite.chunk.js.map +0 -1
- package/dist/scripts/8982-63c31685bf-lite.chunk.js +0 -2
- package/dist/scripts/8982-63c31685bf-lite.chunk.js.map +0 -1
- package/dist/scripts/9016-0c078a39cb-lite.chunk.js +0 -3
- package/dist/scripts/9016-0c078a39cb-lite.chunk.js.map +0 -1
- package/dist/scripts/9226-c236c0eeb1-lite.chunk.js +0 -2
- package/dist/scripts/9226-c236c0eeb1-lite.chunk.js.map +0 -1
- package/dist/scripts/9230-6dee40b1fb-lite.chunk.js +0 -3
- package/dist/scripts/9230-6dee40b1fb-lite.chunk.js.map +0 -1
- package/dist/scripts/9308-362f86711f-lite.chunk.js +0 -3
- package/dist/scripts/9308-362f86711f-lite.chunk.js.map +0 -1
- package/dist/scripts/9359-cc085d48a4-lite.chunk.js +0 -2
- package/dist/scripts/9359-cc085d48a4-lite.chunk.js.map +0 -1
- package/dist/scripts/9399-2a314327ac-lite.chunk.js +0 -2
- package/dist/scripts/9399-2a314327ac-lite.chunk.js.map +0 -1
- package/dist/scripts/9719-cf7d4172b6-lite.chunk.js +0 -3
- package/dist/scripts/9719-cf7d4172b6-lite.chunk.js.map +0 -1
- package/dist/scripts/bundle-fcc536bb54.min.js +0 -3
- package/dist/scripts/bundle-fcc536bb54.min.js.map +0 -1
- /package/dist/css/{5143-lite-676baa8218.chunk.css → 1063-lite-676baa8218.chunk.css} +0 -0
- /package/dist/css/{9173-lite-b361d438f6.chunk.css → 1104-lite-b361d438f6.chunk.css} +0 -0
- /package/dist/css/{679-lite-00eb7dadb2.chunk.css → 2952-lite-00eb7dadb2.chunk.css} +0 -0
- /package/dist/css/{4860-lite-93d7fad455.chunk.css → 4063-lite-93d7fad455.chunk.css} +0 -0
- /package/dist/css/{9308-lite-a3c7435ba4.chunk.css → 4273-lite-a3c7435ba4.chunk.css} +0 -0
- /package/dist/css/{729-lite-93d7fad455.chunk.css → 4850-lite-93d7fad455.chunk.css} +0 -0
- /package/dist/css/{3922-lite-e22262b911.chunk.css → 6596-lite-e22262b911.chunk.css} +0 -0
- /package/dist/css/{8766-lite-8c5d7658ec.chunk.css → 7163-lite-8c5d7658ec.chunk.css} +0 -0
- /package/dist/css/{1818-lite-5ef1706d69.chunk.css → 7234-lite-5ef1706d69.chunk.css} +0 -0
- /package/dist/css/{8478-lite-e22262b911.chunk.css → 9010-lite-e22262b911.chunk.css} +0 -0
- /package/dist/css/{6415-lite-707657102b.chunk.css → 9173-lite-707657102b.chunk.css} +0 -0
- /package/dist/css/{1820-lite-c88eb54bee.chunk.css → 999-lite-c88eb54bee.chunk.css} +0 -0
- /package/dist/scripts/{1379-6f35e2e9bb-lite.chunk.js.LICENSE.txt → 1104-f057c6dea1-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{1672-672f298d82-lite.chunk.js.LICENSE.txt → 1379-ca519ec56b-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{624-575b07d922-lite.chunk.js.LICENSE.txt → 1672-0d1fc90529-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{8323-99cb03891e-lite.chunk.js.LICENSE.txt → 4273-e42f763f00-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9173-2392d447a6-lite.chunk.js.LICENSE.txt → 624-09b51a9d32-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9230-6dee40b1fb-lite.chunk.js.LICENSE.txt → 8323-360541a2a8-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9016-0c078a39cb-lite.chunk.js.LICENSE.txt → 9016-82d7e0afb9-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9308-362f86711f-lite.chunk.js.LICENSE.txt → 9230-ae200d2bd3-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9395-4cf6f3948e-lite.chunk.js.LICENSE.txt → 9395-e1a02b01ce-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9478-99486906b9-lite.chunk.js.LICENSE.txt → 9478-abfa7ed3cc-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{953-fd31f9f016-lite.chunk.js.LICENSE.txt → 953-225db845ab-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9719-cf7d4172b6-lite.chunk.js.LICENSE.txt → 9719-9736913451-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-fcc536bb54.min.js.LICENSE.txt → bundle-9f8729bedb.min.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/9010-024dcc8f9a-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/errors/handlers/HttpErrorHandlers.ts","file:///app/packages/libs/shared/src/hooks/UseHandleObjectError.ts","file:///app/packages/libs/shared/src/hooks/useBreadcrumbs.ts","file:///app/packages/libs/shared/src/utils/PartialLoadingHelper.ts","file:///app/packages/projects/lite/src/shared/hooks/usePresentationAudiences.ts","file:///app/packages/projects/lite/src/shared/views/play-clip/v2/PlayClipViewV2.tsx","file:///app/packages/projects/lite/src/shared/views/play-clip/v2/components/clipped-from/ClippedFrom.tsx","file:///app/packages/projects/lite/src/shared/views/play-clip/v2/components/play-clip/play-clip-v2.scss","file:///app/packages/projects/lite/src/shared/views/play-clip/v2/components/play-clip/PlayClipV2.tsx"],"sourcesContent":["import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}","import { useEffect } from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { handleHttpError, HttpErrorMap, IgnoreHttpErrorMap } from 'libs/shared/errors/handlers/HttpErrorHandlers';\n\nfunction generateCacheKey(flightObjs: Array<Flight.Response<any>>): string {\n return flightObjs.map(obj => obj.statusCode).join(':');\n}\n\n// TODO: Change this to just `useHandleHttpError` and only accept a status code.\nexport function useHandleObjectError(\n _flightObjs: Flight.Response<any> | Array<Flight.Response<any>>,\n customErrors?: HttpErrorMap,\n ignoreErrors?: IgnoreHttpErrorMap\n): void {\n const flightObjs = Array.isArray(_flightObjs) ? _flightObjs : [_flightObjs];\n\n useEffect(() => {\n flightObjs.forEach(obj => {\n handleHttpError(obj.statusCode, customErrors, ignoreErrors);\n });\n }, [ generateCacheKey(flightObjs), customErrors, ignoreErrors ]);\n}","import React from 'react';\n\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { BreadcrumbService } from 'libs/shared/services/BreadcrumbService';\n\nexport function useBreadcrumbs(current: Breadcrumb): Breadcrumb[] {\n const [ match, useBuilder ] = React.useMemo(() => BreadcrumbService.getBuilder(), []);\n\n const breadcrumbs = useBuilder(match);\n\n if (!breadcrumbs || !current)\n return breadcrumbs;\n\n return [ ...breadcrumbs, { ...current, active: true }];\n}\n\n","const DEFAULT_PARTIAL_LOADING_OPTIONS: PartialLoadingOptions = {\n numItems: 5,\n minWidth: 50, // px\n maxWidth: 100 // px\n};\n\nexport interface PartialLoadingOptions {\n numItems?: number;\n minWidth?: number;\n maxWidth?: number;\n}\n\ninterface PartialLoadingItem {\n width: string;\n}\n\nexport const PartialLoadingHelper = {\n getPartialLoadingItems(options: PartialLoadingOptions = {}): PartialLoadingItem[] {\n const opts = {\n ...DEFAULT_PARTIAL_LOADING_OPTIONS,\n ...options\n };\n\n const getRandomFilterWidth = () => Math.max(Math.floor(Math.random() * opts.maxWidth), opts.minWidth);\n\n return [...Array(opts.numItems)].map(() => ({ width: `${getRandomFilterWidth()}px` }));\n }\n};","import { Flight } from 'libs/common/react/index';\n\nimport { AudienceRequests } from 'libs/shared/flight-requests/AudienceRequests';\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\nimport { usePresentation } from 'shared/hooks/usePresentation';\n\nexport const usePresentationAudiences = () => {\n const { activePresentation, getFallbackPresentation } = usePresentation({ redirectOnError: true });\n\n const presentation = activePresentation || getFallbackPresentation();\n\n const audiences = Flight.useBasicFetch<PresentationAudience[]>(\n !!presentation &&\n AudienceRequests.presentationAudiences(presentation.id)\n );\n\n return audiences;\n};","import * as React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { PermissionFilterOption } from 'libs/shared/enums/PermissionFilterOption';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { VideoPrivateError } from 'libs/shared/errors/videos/video-private/VideoPrivateError';\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useBreadcrumbs } from 'libs/shared/hooks/useBreadcrumbs';\nimport { useCannotConsumeError } from 'libs/shared/hooks/useCannotConsumeError';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Clip, Config, CurrentUser, InteractiveMetadata, Video, YearGroup } from 'libs/shared/interfaces';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { useFetchPointsOfInterest } from 'shared/hooks/useFetchPointsOfInterest';\nimport { useGetRelatedVideos } from 'shared/hooks/useGetRelatedVideos';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useVideoFeatureAccess } from 'shared/hooks/useVideoFeatureAccess';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\nimport { useShouldShowSideTableOfContents } from 'shared/views/play/v2/hooks/useShouldShowTableOfContents';\n\nimport { PlayViewProps } from '../PlayClipViewContainer';\n\nimport { PlayClipV2 } from './components/play-clip/PlayClipV2';\n\nconst namespace = 'shared.playClipV2';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst clipErrors = {\n notFound: NotFoundError,\n forbidden: {\n privacy: VideoPrivateError\n }\n};\n\nPlayClipViewV2.defaultProps = {\n queryParams: {}\n};\n\nexport function PlayClipViewV2(props: PlayViewProps): JSX.Element {\n const { context, contextId, mtv } = props.queryParams;\n\n const { hasProduct } = useProducts();\n const { setFavourite, canFavourite } = useLiteFavourites(LocationContext.PlayClip);\n const { hasPermissions } = usePermissions();\n\n const { isPlugin } = usePluginHelper();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const clip = Flight.useBasicFetch<Clip>(ClipRequests.clip(props.id));\n\n const interactives = Flight.useBasicFetch<InteractiveMetadata[]>(InteractiveRequests.videoInteractives(props.id));\n const video = Flight.useBasicFetch<Video>(\n !!clip.data?._parentVideo && VideoRequests.video(clip.data._parentVideo.id)\n );\n useVideoMixin([video.data]);\n\n const childClips = Flight.useBasicFetch<Clip[]>(\n !!clip.data?._parentVideo && ClipRequests.videoClips(clip.data._parentVideo.id)\n );\n\n const strippedClip = Flight.useBasicFetch<Clip>(clip.statusCode === HttpStatus.Forbidden &&\n ClipRequests.clip(props.id, PermissionFilterOption.StripMetadata));\n const relatedVideos = useGetRelatedVideos({\n video: video.data,\n context,\n contextId,\n moviesAndTv: mtv,\n currentUser: currentUser.data\n });\n const audiences = usePresentationAudiences();\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n const shouldShowSideTableOfContents = useShouldShowSideTableOfContents();\n\n const pointsOfInterest = useFetchPointsOfInterest(props.id, true);\n \n const featureAccess = useVideoFeatureAccess();\n\n const breadcrumbs = useBreadcrumbs({ name: clip.data?.name });\n\n useSetPageMetadata(PageMetadataHelper.getClipMetadata({\n content: clip.data,\n phraseContext: {\n phraseHandler: getPhrase,\n titlePhrase: 'pageTitle',\n descriptionPhrase: 'pageDescription'\n }\n }));\n\n useHandleObjectError(clip, clipErrors, { forbidden: true });\n useVideoMixin(relatedVideos.videos ?? []);\n useCannotConsumeError(strippedClip);\n useDeepLinks({ id: props.id, app: 'clips' });\n\n const hasLoaded = (\n clip.data &&\n currentUser.hasCompleted &&\n config.hasCompleted &&\n pointsOfInterest.hasCompleted\n );\n\n if (!hasLoaded)\n return <></>;\n\n return (\n <PlayClipV2\n clip={clip.data}\n clips={childClips.data}\n interactives={interactives.data}\n originalVideo={video.data}\n currentUser={currentUser.data}\n yearGroups={yearGroups.data}\n // we only show up next videos for clips in a playlist\n relatedVideos={context === 'playlist' ? relatedVideos : { ...relatedVideos, videos: []}}\n canFavourite={canFavourite}\n setFavourite={setFavourite}\n hasProduct={hasProduct}\n queryParams={props.queryParams}\n audiences={audiences.data}\n imageCdnUrl={config.data.imageCdnUrl}\n canManageVideoAccess={hasPermissions(PermissionName.ManageVideoAccess)}\n pointsOfInterest={pointsOfInterest.items}\n featureAccess={featureAccess}\n tableOfContentsId={props.queryParams?.tocId}\n shouldShowSideTableOfContents={shouldShowSideTableOfContents}\n isPlugin={isPlugin}\n breadcrumbs={breadcrumbs}\n />\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { CanFavouriteFunc, FavouriteFunc, PresentationAudience, VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\nimport { PlayViewQueryParams } from 'libs/shared/interfaces/query-params/PlayViewQueryParams';\n\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nconst namespace = 'shared.playClipV2';\n\ninterface ClippedFromProps {\n originalVideo: VideoTypes;\n yearGroups: YearGroup[];\n setFavourite: FavouriteFunc;\n canFavourite: CanFavouriteFunc;\n queryParams: PlayViewQueryParams;\n audiences: PresentationAudience[];\n shareId?: string;\n headingRef: React.MutableRefObject<Map<PlayPageAnchor, HTMLElement>>;\n isPlugin: boolean;\n getInteractiveGuidanceAppLink: (id: string, type: MasterType) => Core.AppLink;\n getResourceGuidanceAppLink: (id: string, type: MasterType) => Core.AppLink;\n getClassroomGuideAppLink: (id: string, type: MasterType) => Core.AppLink;\n}\n\nexport function ClippedFrom(props: ClippedFromProps) {\n const { hasPermissions } = usePermissions();\n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem });\n\n return (\n <section\n className='play-page-section'\n id={PlayPageAnchor.ClippedFrom}\n ref={el => {\n (el && props.headingRef?.current) && props.headingRef.current.set(PlayPageAnchor.ClippedFrom, el);\n }}\n >\n <h2 className='h4 mb-0'><Text namespace={namespace} phrase='clippedFrom' /></h2>\n <VideoActionsContext.Provider value={videoActions}>\n <VideoList\n videos={[props.originalVideo]}\n yearGroups={props.yearGroups}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n getVideoAppLink={(v, opts) => VideoAppLinkHelper.getAppLink(v, {\n ...opts,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n playNext: props.queryParams.playNext,\n shareId: props.shareId,\n moviesAndTv: props.queryParams.mtv\n })}\n hasPermissions={hasPermissions}\n presentationAudiences={props.audiences}\n getPreviewQuestionsAppLink={interactive => InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n isPlugin={props.isPlugin}\n getClassroomGuideAppLink={props.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={props.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={props.getResourceGuidanceAppLink}\n />\n </VideoActionsContext.Provider>\n </section>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"main\":\"iQ0Ie\",\"expandedToc\":\"sIoV8\"};","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { Breadcrumb, Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { PlayPageClips } from 'libs/shared/components/play-page-v2/clips-widget/PlayPageClips';\nimport { VideoDetailsWithScrollbarV2 } from 'libs/shared/components/play-page-v2/details/VideoDetailsV2';\nimport { hasGlanceData } from 'libs/shared/components/play-page-v2/glance/VideoAtAGlanceUtilsV2';\nimport { VideoAtAGlanceV2 } from 'libs/shared/components/play-page-v2/glance/VideoAtAGlanceV2';\nimport { PlayPageInteractives } from 'libs/shared/components/play-page-v2/interactives-widget/PlayPageInteractives';\nimport { PlayPageResources } from 'libs/shared/components/play-page-v2/resources-widget/PlayPageResources';\nimport { SeoConstants } from 'libs/shared/constants/SeoConstants';\nimport { GlobalPlayerConsumer } from 'libs/shared/context/player-context/components/GlobalPlayerConsumer';\nimport { usePlayerContext } from 'libs/shared/context/player-context/PlayerContext';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { HasProductFunc } from 'libs/shared/hooks/UseProducts';\nimport { useTableOfContentsActiveHeading } from 'libs/shared/hooks/useTableOfContentsActiveHeading';\nimport { useTableOfContentsScroll } from 'libs/shared/hooks/useTableOfContentsScroll';\nimport { CanFavouriteFunc, Clip, CurrentUser, FavouriteFunc, InteractiveMetadata, Link, PointOfInterest, PresentationAudience, Resource, Video, YearGroup } from 'libs/shared/interfaces';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\nimport { PlayViewQueryParams } from 'libs/shared/interfaces/query-params/PlayViewQueryParams';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { ArchivedBanner } from 'shared/components/play-page/ArchivedBanner';\nimport { TableOfContentsContainer } from 'shared/components/play-page/components/table-of-contents/TableOfContents';\nimport { PlayPageTitleAndActions } from 'shared/components/play-page/components/title-and-actions/PlayPageTitleAndActions';\nimport { RestrictionBanner } from 'shared/components/play-page/RestrictionBanner';\nimport { PlayerPlaceholder } from 'shared/components/player-placeholder/PlayerPlaceholder';\nimport { RelatedVideos } from 'shared/components/related-videos/RelatedVideos';\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { RelatedVideosHash } from 'shared/hooks/useGetRelatedVideos';\nimport { VideoFeaturesHash } from 'shared/hooks/useVideoFeatureAccess';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\nimport { usePlayPageTableOfContent } from 'shared/views/play/v2/hooks/usePlayPageTableOfContent';\nimport { useSectionHeadings } from 'shared/views/play/v2/hooks/useSectionHeadings';\nimport { PlayPageUtils } from 'shared/views/play/v2/PlayPageUtilV2';\nimport { ClippedFrom } from 'shared/views/play-clip/v2/components/clipped-from/ClippedFrom';\n\nimport styles from './play-clip-v2.scss';\n\nconst getResourceAppLink = (videoId: string, shareId: string, canViewResource: boolean) =>\n (resource: Resource | Link) => {\n if (!canViewResource) {\n return {\n application: AppChannels.SIGN_UP,\n action: Actions.SignUp.SIGN_UP\n };\n }\n\n return {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PREVIEW_PDF,\n args: [resource.id],\n params: {\n videoId: videoId,\n shareId: shareId\n }\n };\n };\n\n\ninterface PlayClipV2Props {\n clip: Clip;\n clips: Clip[];\n interactives: InteractiveMetadata[];\n originalVideo: Video;\n currentUser: CurrentUser;\n yearGroups: YearGroup[];\n relatedVideos: RelatedVideosHash;\n setFavourite: FavouriteFunc;\n canFavourite: CanFavouriteFunc;\n queryParams: PlayViewQueryParams;\n hasProduct: HasProductFunc;\n audiences: PresentationAudience[];\n imageCdnUrl: string;\n shareId?: string;\n canManageVideoAccess: boolean;\n pointsOfInterest?: PointOfInterest[];\n featureAccess: VideoFeaturesHash;\n tableOfContentsId: string;\n shouldShowSideTableOfContents: boolean;\n isPlugin: boolean;\n breadcrumbs?: Breadcrumb[];\n}\n\nexport function PlayClipV2(props: PlayClipV2Props): JSX.Element {\n const playerContext = usePlayerContext();\n\n const { hasPermissions } = usePermissions();\n const { canConsume } = VideoHelper.getCanBeConsumed(props.clip);\n \n const {\n tableOfContentsActiveId,\n setTableOfContentsActiveId,\n controlledId,\n setControlledId,\n tableOfContentsExpanded,\n onToggleTableOfContents\n } = usePlayPageTableOfContent(props.tableOfContentsId);\n\n const hasGlance = hasGlanceData(props.clip) && props.featureAccess.canViewGlance;\n\n const { headingRef, headingElements } = useSectionHeadings(hasGlance);\n const items = headingElements.map(ele => {\n return {\n id: ele.id as PlayPageAnchor,\n name: PlayPageUtils.getSectionHeading(\n ele.id as PlayPageAnchor,\n {\n clips: props.clips,\n interactives: props.interactives,\n resources: props.clip.resources?.data,\n isPlayClipPage: true\n }\n )\n };\n });\n\n useTableOfContentsActiveHeading({\n setActiveId: setTableOfContentsActiveId,\n headingElements,\n controlledId,\n setControlledId\n });\n\n useTableOfContentsScroll(headingElements, props.tableOfContentsId);\n\n const isArchived = VideoHelper.isVideoTypeArchived(props.clip);\n const hasStudentExperience = hasPermissions(PermissionName.StudentExperience);\n /**\n * Need to use a ref because if we use state, onExitImmersiveReader will have a stale\n * reference of the state. This is because the state is changed in onLaunchImmersiveReader\n * which is passed in at the same time as onExitImmersiveReader\n */\n const shouldPlayOnExitImmersiveReader = React.useRef(false);\n\n function onLaunchImmersiveReader(): void {\n shouldPlayOnExitImmersiveReader.current = !playerContext?.playerRef?.current?.isPaused();\n playerContext?.playerRef?.current?.pause();\n }\n\n function onExitImmersiveReader(): void {\n if (!shouldPlayOnExitImmersiveReader.current)\n return;\n\n playerContext?.playerRef?.current?.play();\n }\n\n function canAccessOriginal(): boolean {\n if (!props.originalVideo || !props.clip._canBeConsumed?.value)\n return false;\n\n if (!props.currentUser?.isAuthenticated)\n return false;\n\n if (!props.hasProduct(ProductId.Primary))\n return false;\n\n if (hasStudentExperience)\n return false;\n\n return true;\n }\n\n function getOriginalVideoAppLink(): Core.AppLink {\n if (!canAccessOriginal())\n return null;\n \n return {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PLAY_VIDEO,\n args: [ props.originalVideo.id, TextHelper.slugify(props.originalVideo.name) ]\n };\n }\n\n const showPlayerPlaceholder = playerContext.mode === 'picture-in-picture' || props.featureAccess.canViewPublicLayout;\n\n const otherClips = props.clips?.filter(c => c.id.toString() !== props.clip.id.toString()) ?? [];\n\n function getMainClassName() {\n if (props.shouldShowSideTableOfContents && tableOfContentsExpanded) {\n return styles.expandedToc;\n }\n if (props.shouldShowSideTableOfContents && !tableOfContentsExpanded)\n return 'pe-4';\n }\n\n return (\n <div className='px-4 play-page-sections-container'>\n <main className={`${styles.main} ${getMainClassName()}`}>\n {!!props.breadcrumbs?.length &&\n <div className='mb-2'>\n <Breadcrumbs breadcrumbs={props.breadcrumbs} />\n </div>\n }\n\n\n <RestrictionBanner\n restrictions={props.clip._restrictions}\n yearGroups={props.yearGroups}\n objectId={props.clip.id}\n objectTypeId={MasterType.Clip}\n canManageVideoAccess={props.canManageVideoAccess}\n />\n\n {isArchived && (\n <ArchivedBanner\n typeId={props.clip.typeId}\n hasStudentExperience={hasStudentExperience}\n />\n )}\n\n <section\n id={PlayPageAnchor.Video}\n className={`mb-2 ${SeoConstants.GLOBAL_PLAYER_SELECTOR}`}\n ref={el => { (el && headingRef?.current) && headingRef.current.set(PlayPageAnchor.Video, el); }}\n >\n {canConsume && (\n <GlobalPlayerConsumer\n key={props.clip.id}\n objectId={props.clip.id}\n objectTypeId={props.clip.typeId}\n shareId={props.shareId}\n context={props.queryParams?.context}\n contextId={props.queryParams?.contextId}\n moviesAndTv={props.queryParams?.mtv}\n playNext={props.queryParams?.playNext}\n startTime={props.queryParams?.t ?? props.queryParams?.startTime}\n mode='default'\n location='play-page'\n />\n )}\n <div className={showPlayerPlaceholder ? '' : 'd-none'}>\n <PlayerPlaceholder\n video={props.clip}\n type='pip'\n />\n </div>\n </section>\n\n <PlayPageTitleAndActions\n media={props.clip}\n yearGroups={props.yearGroups}\n audiences={props.audiences}\n originalVideoAppLink={getOriginalVideoAppLink()}\n featureAccess={props.featureAccess}\n shareId={props.shareId}\n />\n\n {/* if no glance render video details here */}\n {hasGlance ? (\n <VideoAtAGlanceV2\n video={props.clip}\n pointsOfInterest={props.pointsOfInterest}\n setStartTime={(time: number) => playerContext.playerRef.current?.currentTime(time)}\n getTagAppLink={tag => ({\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: { tagOrClassification: tag.name }\n })}\n suppressInteractivity={props.featureAccess.canViewPublicLayout}\n canViewGlance={hasGlance}\n />\n ) : (\n <VideoDetailsWithScrollbarV2\n video={props.clip}\n onLaunchImmersiveReader={onLaunchImmersiveReader}\n onExitImmersiveReader={onExitImmersiveReader}\n getTagAppLink={tag => ({\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: { tagOrClassification: tag.name }\n })}\n headingRef={headingRef}\n suppressInteractivity={props.featureAccess.canViewPublicLayout}\n />\n )}\n\n <PlayPageResources\n video={props.clip}\n canViewResources={props.featureAccess.canViewResourceItems}\n imageCdnUrl={props.imageCdnUrl}\n getAppLink={\n getResourceAppLink(props.clip.id, props.shareId, props.featureAccess.canViewResourceItems)\n }\n analyticsData={{ clipId: props.clip.id, clipName: props.clip.name }}\n resourceThumbnailFallbackUrl={ImageUrls.Fallbacks.RESOURCE_THUMBNAIL}\n headingRef={headingRef}\n />\n\n <PlayPageInteractives\n video={props.clip}\n interactives={props.interactives}\n imageCdnUrl={props.imageCdnUrl}\n analyticsData={{ clipId: props.clip.id, clipName: props.clip.name }}\n canViewInteractives={props.featureAccess.canViewInteractives}\n headingRef={headingRef}\n yearGroups={props.yearGroups}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n isPlugin={props.isPlugin}\n />\n\n <PlayPageClips\n clips={otherClips || []}\n video={props.clip}\n canViewClips={props.featureAccess.canViewClips}\n yearGroups={props.yearGroups}\n audiences={props.audiences}\n imageCdnUrl={props.imageCdnUrl}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n headingRef={headingRef}\n analyticsData={{ clipId: props.clip.id, clipName: props.clip.name }}\n isPlugin={props.isPlugin}\n />\n\n {/* if has glance, render video details here */}\n {hasGlance && (\n <VideoDetailsWithScrollbarV2\n video={props.clip}\n onLaunchImmersiveReader={onLaunchImmersiveReader}\n onExitImmersiveReader={onExitImmersiveReader}\n getTagAppLink={tag => ({\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: { tagOrClassification: tag.name }\n })}\n headingRef={headingRef}\n suppressInteractivity={props.featureAccess.canViewPublicLayout}\n />\n )}\n \n {!!canAccessOriginal() && (\n <ClippedFrom\n originalVideo={props.originalVideo}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n yearGroups={props.yearGroups}\n shareId={props.shareId}\n queryParams={props.queryParams}\n audiences={props.audiences}\n headingRef={headingRef}\n isPlugin={props.isPlugin}\n getClassroomGuideAppLink={VideoAppLinkHelper.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={VideoAppLinkHelper.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={VideoAppLinkHelper.getResourceGuidanceAppLink}\n />\n )}\n\n <RelatedVideos\n currentVideo={props.clip}\n yearGroups={props.yearGroups}\n relatedVideos={props.relatedVideos}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n currentUser={props.currentUser}\n audiences={props.audiences}\n getVideoAppLink={(v, opts) => VideoAppLinkHelper.getAppLink(v, {\n ...opts,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n playNext: props.queryParams.playNext,\n shareId: props.shareId,\n moviesAndTv: props.queryParams.mtv\n })}\n moviesAndTv={props.queryParams.mtv}\n isPlugin={props.isPlugin}\n />\n\n </main>\n\n <TableOfContentsContainer\n isExpanded={tableOfContentsExpanded}\n setIsExpanded={onToggleTableOfContents}\n items={items}\n activeId={tableOfContentsActiveId}\n setControlledId={setControlledId}\n analyticsData={{ clipId: props.clip.id, clipName: props.clip.name }}\n showInSide={props.shouldShowSideTableOfContents}\n />\n \n </div>\n );\n}"],"names":["defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","generateCacheKey","flightObjs","map","obj","join","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","Array","isArray","useEffect","forEach","useBreadcrumbs","current","match","breadcrumbs","useBuilder","active","DEFAULT_PARTIAL_LOADING_OPTIONS","numItems","minWidth","maxWidth","PartialLoadingHelper","getPartialLoadingItems","options","opts","width","Math","max","floor","random","usePresentationAudiences","redirectOnError","activePresentation","getFallbackPresentation","presentation","id","getPhrase","clipErrors","PlayClipViewV2","props","queryParams","context","contextId","mtv","hasProduct","u","setFavourite","canFavourite","hasPermissions","isPlugin","currentUser","config","clip","interactives","video","data","_parentVideo","childClips","strippedClip","relatedVideos","moviesAndTv","audiences","yearGroups","isAuthenticated","customerId","shouldShowSideTableOfContents","pointsOfInterest","featureAccess","name","content","phraseContext","phraseHandler","titlePhrase","descriptionPhrase","videos","app","hasCompleted","clips","originalVideo","imageCdnUrl","canManageVideoAccess","items","tableOfContentsId","tocId","defaultProps","namespace","ClippedFrom","usePermissions","videoActions","useVideoActions","location","className","PlayPageAnchor","ref","el","headingRef","set","Text","phrase","VideoActionsContext","value","VideoList","getVideoAppLink","v","VideoAppLinkHelper","playNext","shareId","presentationAudiences","getPreviewQuestionsAppLink","interactive","InteractiveHelper","getClassroomGuideAppLink","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","getResourceAppLink","videoId","canViewResource","resource","application","action","args","params","PlayClipV2","playerContext","canConsume","VideoHelper","usePlayPageTableOfContent","tableOfContentsActiveId","setTableOfContentsActiveId","controlledId","setControlledId","tableOfContentsExpanded","onToggleTableOfContents","hasGlance","canViewGlance","useSectionHeadings","headingElements","ele","resources","isPlayClipPage","useTableOfContentsActiveHeading","setActiveId","useTableOfContentsScroll","isArchived","hasStudentExperience","PermissionName","shouldPlayOnExitImmersiveReader","onLaunchImmersiveReader","playerRef","isPaused","pause","onExitImmersiveReader","play","canAccessOriginal","_canBeConsumed","ProductId","showPlayerPlaceholder","mode","canViewPublicLayout","otherClips","filter","c","toString","length","Breadcrumbs","RestrictionBanner","restrictions","_restrictions","objectId","objectTypeId","MasterType","ArchivedBanner","typeId","SeoConstants","GlobalPlayerConsumer","key","startTime","t","PlayerPlaceholder","type","PlayPageTitleAndActions","media","originalVideoAppLink","TextHelper","VideoAtAGlanceV2","setStartTime","time","currentTime","getTagAppLink","tag","tagOrClassification","suppressInteractivity","PlayPageResources","canViewResources","canViewResourceItems","getAppLink","analyticsData","clipId","clipName","resourceThumbnailFallbackUrl","ImageUrls","PlayPageInteractives","canViewInteractives","PlayPageClips","canViewClips","RelatedVideos","currentVideo","TableOfContents","isExpanded","setIsExpanded","activeId","showInSide"],"sourceRoot":""}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! For license information please see 9016-82d7e0afb9-lite.chunk.js.LICENSE.txt */
|
|
2
|
+
(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[9016],{9826:(e,t,n)=>{"use strict";n.d(t,{e:()=>f});var r=n(32735),a=n(91967),i=n(86764),c=n(81514),o=n(10038);const l={stickyFooter:"rIUL4",nonStickyFooter:"PuC_F"};function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var s=50;function m(e){var t="justify-content-".concat(e.justify);return r.createElement("div",{className:"py-3 bg-white ".concat(l.stickyFooter)},r.createElement("div",{className:"w-75 mx-auto d-flex ".concat(t)},e.children))}function d(e){var t=(0,c.V)(),n=t===i.r.SM||t===i.r.XS?"w-100":"w-75",a="justify-content-".concat(e.justify);return r.createElement("div",{className:"".concat(n," ").concat(a," ").concat(l.nonStickyFooter," d-flex px-3")},e.children)}function f(e){var t,n,i=function(){return window.innerHeight+window.scrollY>=document.body.offsetHeight-s},c=(t=r.useState(!1),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,c,o=[],l=!0,u=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(o.push(r.value),o.length!==t);l=!0);}catch(e){u=!0,a=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(u)throw a}}return o}}(t,n)||function(e,t){if(e){if("string"==typeof e)return u(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)?u(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),l=c[0],f=c[1];r.useEffect((function(){return f(!i())}),[]);var p=a.q.throttle((function(){var e=!i();!l||e?!l&&e&&f(!0):f(!1)}),100);return r.useEffect((function(){return window.addEventListener("scroll",p),function(){return window.removeEventListener("scroll",p)}}),[l,f]),(0,o.H)(p,p,[l,f]),l?r.createElement(m,Object.assign({},e),e.children):r.createElement(d,Object.assign({},e),e.children)}f.defaultProps={justify:"between"}},49602:(e,t,n)=>{"use strict";var r;n.d(t,{b:()=>i}),function(e){e[e.None=0]="None",e[e.AllSubjects=1]="AllSubjects",e[e.AllLevels=2]="AllLevels",e[e.AllSubjectsAndAllLevels=3]="AllSubjectsAndAllLevels"}(r||(r={}));var a=n(25925),i={hasManyPresentationTypes:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=0,n=0;return null==e||e.forEach((function(e){e.type===a.R.Subject?t++:e.type===a.R.Curriculum&&n++})),{hasManySubjectPresentations:t>1,hasManyCurriculumPresentations:n>1}},getBulkPreferencesState:function(e){return e===r.AllSubjectsAndAllLevels?{levels:!0,subjects:!0}:{levels:e===r.AllLevels,subjects:e===r.AllSubjects}},hasBulkSelectedLevels:function(e){return e===r.AllLevels||e===r.AllSubjectsAndAllLevels},hasBulkSelectedTopics:function(e){return e===r.AllSubjects||e===r.AllSubjectsAndAllLevels},getNextBulkState:function(e,t){var n=r.None,a=r.AllSubjects,i=r.AllLevels,c=r.AllSubjectsAndAllLevels,o="topics"===t;switch(e){case n:default:return o?a:i;case a:return o?n:c;case i:return o?c:n;case c:return o?i:a}}}},49935:(e,t,n)=>{"use strict";n.d(t,{Oo:()=>v,b2:()=>b});var r=n(32735),a=n(23481),i=n(36848),c=n(86764),o=n(3747),l=n(5859),u=n(35223),s=n(83914);function m(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,c,o=[],l=!0,u=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(o.push(r.value),o.length!==t);l=!0);}catch(e){u=!0,a=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(u)throw a}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return d(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)?d(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 d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var f=a.T.encloseNamespace("shared.breadcrumbComponent"),p=r.forwardRef((function(e,t){var n=e.breadcrumb,a=n.name,c=n.appLink,o=n.active,l=e.withBackIcon;return r.createElement("li",{className:"breadcrumb-item".concat(o?" active":"")},o?r.createElement("strong",null,a):r.createElement(i.F,{appLink:c,ref:t},l&&r.createElement(s.x,{svgName:u.vn.ChevronLeft,size:s.S.Small}),r.createElement("span",{className:l?"ms-2":""},a)))})),v=function(e){var t=e.breadcrumbs,n=(0,o.a)(c.r.XS),a=(null==t?void 0:t.length)||0,i=m(r.useState(!1),2),l=i[0],u=i[1],s=m(r.useState(!1),2),d=s[0],v=s[1],b=r.useRef();if(r.useEffect((function(){var e,n=null!==(e=null==t?void 0:t.reduce((function(e,t){return e+t.name.length}),0))&&void 0!==e?e:0;a>3&&n>56&&u(!0)}),[null==t?void 0:t.length]),r.useLayoutEffect((function(){var e;d&&(null===(e=b.current)||void 0===e||e.focus())}),[b.current,d]),!a||n&&a<2)return r.createElement(r.Fragment,null);if(n)return r.createElement("nav",{"aria-label":"breadcrumb"},r.createElement("ol",{className:"breadcrumb m-0 p-0"},r.createElement(p,{breadcrumb:t[a-2],withBackIcon:!0})));var g=r.createElement(p,{breadcrumb:t[0]}),y=a>2?r.createElement(p,{breadcrumb:t[a-2]}):r.createElement(r.Fragment,null),h=r.createElement(p,{breadcrumb:t[a-1]}),S=t.slice(1,a-2);return r.createElement("nav",{"aria-label":"breadcrumb"},r.createElement("ol",{className:"breadcrumb m-0 p-0"},g,l?r.createElement("li",{className:"breadcrumb-item"},r.createElement("button",{className:"btn-link",onClick:function(){u(!1),v(!0)},"aria-label":f("expand")},"...")):S.map((function(e,t){return r.createElement(p,{key:t,breadcrumb:e,ref:0===t?b:null})})),y,h))},b=r.memo((function(e){var t=e.numItems,n=void 0===t?3:t;return(0,o.a)(c.r.XS)?r.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):r.createElement("nav",{"aria-label":"breadcrumb"},r.createElement("ol",{className:"breadcrumb m-0 p-0"},l.u.getPartialLoadingItems({numItems:n}).map((function(e,t){var n=e.width;return r.createElement("li",{key:t,className:"breadcrumb-item"},r.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:n},dangerouslySetInnerHTML:{__html:" "}}))}))))}))},38502:(e,t,n)=>{"use strict";n.d(t,{r:()=>m});var r=n(32735),a=n(49985),i=n(36848),c=n(18559),o=n(11607),l=n(83914),u=n(87432);function s(e){return r.createElement(r.Fragment,null,!!e.tab.svgName&&r.createElement("div",{className:e.tab.name?"pe-1":""},r.createElement(l.x,{svgName:e.tab.svgName})),e.tab.name,"number"==typeof e.tab.count&&r.createElement("div",{className:"ps-2"},r.createElement(c.C,{type:c.g.Count,data:e.tab.count})))}function m(e){var t;return r.createElement("nav",{className:null!==(t=e.className)&&void 0!==t?t:"",ref:e.containerRef},r.createElement("ul",{className:"\n list-unstyled d-inline-block m-0 ".concat(u.Z.pillTabSelector,"\n ").concat(e.borderRadius?u.Z.radiusSmall:"","\n ").concat(e.listClassName,"\n ")},e.tabs.map((function(e,t){return r.createElement("li",{className:"\n p-0 ".concat(u.Z.tab," ").concat(e.active?"btn btn-dark":"btn btn-outline-dark","\n ").concat(e.name?u.Z.minWidth:""," ").concat(e.className,"\n "),key:t},e.appLink?r.createElement(i.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(u.Z.tabLink,"\n ")},r.createElement(s,{tab:e})):r.createElement(o.L,{className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset p-2 text-nowrap ".concat(u.Z.tabLink,"\n "),onClick:function(){return function(e){!e.active&&e.onSelect&&(e.onSelect(),e.analyticsData&&e.analyticsOptions&&a.k.logUserAction(e.analyticsData,e.analyticsOptions))}(e)}},r.createElement(s,{tab:e})))}))))}m.defaultProps={borderRadius:"lg"}},81514:(e,t,n)=>{"use strict";n.d(t,{V:()=>i});var r=n(86764),a=n(3747);function i(){var e=(0,a.a)(r.r.XS),t=(0,a.a)(r.r.SM),n=(0,a.a)(r.r.MD),i=(0,a.a)(r.r.LG),c=(0,a.a)(r.r.XL),o=(0,a.a)(r.r.XXL),l=r.r.LG;return e&&(l=r.r.XS),t&&(l=r.r.SM),n&&(l=r.r.MD),i&&(l=r.r.LG),c&&(l=r.r.XL),o&&(l=r.r.XXL),l}},5859:(e,t,n)=>{"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}n.d(t,{u:()=>i});var a={numItems:5,minWidth:50,maxWidth:100},i={getPartialLoadingItems:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=Object.assign(Object.assign({},a),t);return(e=Array(n.numItems),function(e){if(Array.isArray(e))return r(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return r(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)?r(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).map((function(){return{width:"".concat(Math.max(Math.floor(Math.random()*n.maxWidth),n.minWidth),"px")}}))}}},69454:(e,t,n)=>{"use strict";n.d(t,{T:()=>d});var r=n(75896),a=n(1048),i=n(55171);function c(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,c,o=[],l=!0,u=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(o.push(r.value),o.length!==t);l=!0);}catch(e){u=!0,a=e}finally{try{if(!l&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(u)throw a}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return o(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)?o(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 o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var l=/\d/,u={yearsAndGradesBuilder:function(e){var t=e.map((function(e){return e.name})).join(" "),n=t.split(" ").filter((function(e){return!isNaN(+e)})).map((function(e){return+e}))||[],r=t.split(" ").filter((function(e){return isNaN(+e)}))||[],a=e.find((function(e){return!l.test(e.name)})),i=r.find((function(e){return e!==(null==a?void 0:a.name)}));if(e.length>1&&(i+="s"),a&&n.length)return"".concat(i," ").concat(a.name.charAt(0)," - ").concat(n.pop());var c=function(e){var t,n,r,a,i=!1,c=[];for(e=e.sort((function(e,t){return e-t})),r=0;r<e.length;r++)a=r+1,i||(t=e[r]),n=e[a],e[r]+1===n?i=!0:i?(c.push("".concat(t," - ").concat(e[r])),i=!1):(c.push("".concat(e[r])),i=!1);return c}(n);return"".concat(i," ").concat(c.join(", "))},internationalSecondaryBuilder:function(e){return u.englandSecondaryBuilder(e)},scotlandPrimaryBuilder:function(e){var t=r.m.first(e),n=r.m.last(e),a=c(t.name.split(" "),1)[0],i=c(n.name.split(" "),1)[0];return"First"===a&&(a="1st"),"First"===i&&(i="1st"),"Second"===a&&(a="2nd"),"Second"===i&&(i="2nd"),a===i?"".concat(a," Level"):"".concat(a," - ").concat(i," Level")},internationalPrimaryBuilder:function(e){var t=r.m.first(e),n=r.m.last(e);if(t.name===n.name)return t.name;var a=c(t.name.split(" "),1)[0],i=c(n.name.split(" "),1)[0];return"Lower"===a&&(a="Low"),"Lower"===i&&(i="Low"),"Middle"===a&&(a="Mid"),"Middle"===i&&(i="Mid"),"".concat(a," - ").concat(i," Pri")},englandSecondaryBuilder:function(e){var t=r.m.first(e),n=r.m.last(e);return t.name===n.name?t.name:"Advanced"===n.name?"lower"===c(t.name.split(" "),1)[0].toLowerCase()?"Lower Sec - Adv":"Upper Sec - Adv":"Lower - Upper Sec"},scotlandSecondaryBuilder:function(e){var t=r.m.first(e),n=r.m.last(e);return t.name===n.name?t.name:"Senior Phase"===n.name?"".concat(t.name," - Senior"):"Third - Fourth Level"},englandPrimaryBuilder:function(e){var t=r.m.first(e),n=r.m.last(e),a=r.m.first(t.name.split(" ")),i=r.m.first(n.name.split(" ")),c=t.name.split(" ").find((function(e){return!isNaN(+e)})),o=n.name.split(" ").find((function(e){return!isNaN(+e)}));if(t===n)return"Key"===a||"Reception"===a?t.name:"".concat(a," KS").concat(c);var l="",u="";return l="Reception"===a?"R":"KS".concat(c),u="KS".concat(o),"Lower"===a&&"Upper"===i?"L ".concat(l," - U ").concat(u):("Lower"===a&&(l="Lower ".concat(l)),"Upper"===i&&(u="Upper ".concat(u)),"Key"===i&&(u=n.name),"".concat(l," - ").concat(u))}},s=/([0-9]+)/gi,m=/\s|\+/gi,d={getSortedPresentationAudiences:function(e,t){var n=e.filter((function(e){return!!e})).map((function(e){return e.id.toString()}));return t.filter((function(e){return n.includes(e.masterId.toString())}))},getMergedPresentationAudienceString:function(e){var t="";switch(+r.m.first(e).presentationId){case i.e.PresentationIds.DEFAULT:case i.e.PresentationIds.AU_SECONDARY:case i.e.PresentationIds.US_ELEMENTARY:case i.e.PresentationIds.AU_PRIMARY:case i.e.PresentationIds.STREAMABLE_LEARNING:if(1===e.length)return e[0];t=u.yearsAndGradesBuilder(e);break;case i.e.PresentationIds.INTERNATIONAL_SECONDARY:if(1===e.length)return e[0];t=u.internationalSecondaryBuilder(e);break;case i.e.PresentationIds.INTERNATIONAL_PRIMARY:t=u.internationalPrimaryBuilder(e);break;case i.e.PresentationIds.SCOTLAND_PRIMARY:t=u.scotlandPrimaryBuilder(e);break;case i.e.PresentationIds.ENGLISH_SECONDARY:t=u.englandSecondaryBuilder(e);break;case i.e.PresentationIds.SCOTLAND_SECONDARY:t=u.scotlandSecondaryBuilder(e);break;case i.e.PresentationIds.ENGLAND_PRIMARY:t=u.englandPrimaryBuilder(e);case i.e.PresentationIds.US_MIDDLE:case i.e.PresentationIds.US_HIGH:}return t?{name:t}:null},sortMembersWithDuplicateNamesByAudience:function(e){var t=function(e){return e.length?(e.forEach((function(e){var a=+r.m.first(e.name.match(s));if(!t)return t=e,void(n=a);a<n&&(t=e)})),t):null;var t,n},n={},a=[];return e.forEach((function(e){if(!n[e.name])return n[e.name]=1,void a.push(e);a.push(e),n[e.name]++;var r=a.splice(a.length-n[e.name]).sort((function(e,n){var r=t(e.subjectPresentationAudiences.data),a=t(n.subjectPresentationAudiences.data);if(!r&&a)return 1;if(!a)return-1;var i=r.name.localeCompare(a.name);return 0===i?i:i>0?-1:1}));a=a.concat(r)})),a},getActiveAudiencesFromParams:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(a.t.isObject(t)&&!a.t.isEmpty(t)&&e&&e.length&&d.shouldShowAudiences(e)){var n=t.a;if(n){"string"==typeof n&&(n=[n]);var r=function(e){return e.replace(m,"").toLowerCase()},i=n.reduce((function(e,t){return e[r(t)]=t,e}),{});return e.filter((function(e){return i[r(e.name)]}))}}},getAudienceParams:function(e){return(null==e?void 0:e.length)?{a:e.map((function(e){return e.name}))}:null},shouldShowAudiences:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return!!e&&e.length>1}}},71164:(e,t,n)=>{"use strict";n.d(t,{T:()=>v});var r=n(32735),a=n(23481),i=n(81886),c=n(38502),o=n(75795),l=n(69454),u=n(14070),s=n(97291),m=n(81803),d=n(4312);const f={tabs:"oHDjZ"};var p=a.T.encloseNamespace("settings.preferencesLayout");function v(e){var t,n=null===(t=o.O.getCurrentRoute())||void 0===t?void 0:t.appLink,a=function(e){return e===(null==n?void 0:n.action)},v=function(e){i.Q.C$.trigger({application:s.O.SETTINGS,action:e})};function b(){var t=[{name:p("topics"),active:a(u.e.Settings.TOPIC_PREFERENCES),onSelect:function(){return v(u.e.Settings.TOPIC_PREFERENCES)}}];l.T.shouldShowAudiences(e.audiences)&&t.push({name:p("yearGroups"),active:a(u.e.Settings.AUDIENCE_PREFERENCES),onSelect:function(){return v(u.e.Settings.AUDIENCE_PREFERENCES)}});var n=d.b.hasManyPresentationTypes(e.availablePresentations),r=n.hasManyCurriculumPresentations,i=n.hasManySubjectPresentations;return r&&t.push({name:p("curriculum"),active:a(u.e.Settings.CURRICULUM),onSelect:function(){return v(u.e.Settings.CURRICULUM)}}),i&&t.push({name:p("schoolLevel"),active:a(u.e.Settings.SCHOOL_LEVEL),onSelect:function(){return v(u.e.Settings.SCHOOL_LEVEL)}}),t}var g=b();return r.createElement(m.d,{heading:p("heading"),breadcrumbs:[p("breadcrumb")]},g.length>1&&r.createElement(c.r,{tabs:b(),className:f.tabs}),e.children)}},81803:(e,t,n)=>{"use strict";n.d(t,{d:()=>p});var r=n(32735),a=n(81886),i=n(23481),c=n(49935),o=n(22902),l=n(14070),u=n(97291),s=n(96368);function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var d="settings.settingsLayout",f=function(e){var t=(0,o.T)().hasPermissions,n=(0,s.e)();if(e)return t(e);var r=a.Q.C$.getCurrentAppLink();return r.application!==u.O.SETTINGS||n.some((function(e){return e.modules.some((function(e){return"appLink"in e&&e.appLink.action===r.action}))}))};function p(e){var t,n=f(e.requiredPermissions);if(r.useEffect((function(){n||a.Q.C$.trigger({application:u.O.SETTINGS,action:l.e.Settings.HOME},{replace:!0})}),[n]),!n)return r.createElement(r.Fragment,null);var o,s=e.breadcrumbs.map((function(t,n){return{name:t,appLink:{application:u.O.SETTINGS,action:l.e.Settings.HOME},active:n===e.breadcrumbs.length-1}}));return r.createElement("div",{className:"px-3"},r.createElement("div",{className:"d-flex align-items-center justify-content-between"},r.createElement("h1",{className:"h2"},e.heading),null===(t=e.headingButton)||void 0===t?void 0:t.call(e)),r.createElement("div",{className:"pb-3"},r.createElement(c.Oo,{breadcrumbs:[{name:i.T.getPhrase(d,"settingsBreadcrumb"),appLink:{application:u.O.SETTINGS,action:l.e.Settings.HOME}}].concat((o=s,function(e){if(Array.isArray(e))return m(e)}(o)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(o)||function(e,t){if(e){if("string"==typeof e)return m(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m(e,t):void 0}}(o)||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.")}()))})),e.description&&r.createElement(r.Fragment,null,r.createElement("p",null,e.description),r.createElement("hr",null)),e.children)}},4312:(e,t,n)=>{"use strict";n.d(t,{b:()=>b});var r=n(32735),a=n(49189),i=n.n(a),c=n(81886),o=n(49602),l=n(89961),u=n(14070),s=n(97291),m=n(80247),d=n(83345),f=n(99742);var p="subjects.onboardingLoader";function v(e){return r.useEffect((function(){window.setTimeout(e.onDone,2500)}),[]),r.createElement("div",{className:"d-flex flex-column align-items-center"},r.createElement("div",{className:"py-3"},r.createElement(m.Z,{as:"span",animation:"border",role:"status",className:"SVq72"})),r.createElement("h2",{className:"iS5ZE"},r.createElement(d.x,{namespace:p,phrase:"heading"})),r.createElement("p",{className:"mb-0 pb-4 text-center ".concat("JaUIN")},r.createElement(d.x,{namespace:p,phrase:"info"})),r.createElement("div",{className:"drop-shadow mb-n5"},r.createElement("img",{src:f.W.Onboarding.LOADER,alt:"",role:"presentation",className:"img-fluid"})))}var b=Object.assign(Object.assign({},o.b),{buildAppLink:function(e,t){var n={application:s.O.SUBJECT,action:"welcome"===e?u.e.Subjects.ONBOARDING_WELCOME:"school-level"===e?u.e.Subjects.ONBOARDING_TOPIC_PRESENTATION:"curriculum"===e?u.e.Subjects.ONBOARDING_CURRICULUM_PRESENTATION:void 0};return t&&(n.params={redirectUrl:t}),n},redirect:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t={application:s.O.SUBJECT,action:u.e.Subjects.ONBOARDING};e&&(t.params={redirectUrl:e}),c.Q.C$.trigger(t,{replace:!0})},onCompleteOnboardingSuccess:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"/";i().set("_onboardingComplete",e,{expires:30});var n=function(){return c.Q.Ab.PageLoad(t)};window.setTimeout((function(){l.M.render(r.createElement(v,{onDone:n}),{size:"lg",dialogClassName:"rounded-3",hideButtons:!0,centered:!0,cancelButtonProps:{onClick:n}})}),250)}})},49189:(e,t,n)=>{var r,a,i;void 0===(a="function"==typeof(r=i=function(){function e(){for(var e=0,t={};e<arguments.length;e++){var n=arguments[e];for(var r in n)t[r]=n[r]}return t}function t(e){return e.replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent)}return function n(r){function a(){}function i(t,n,i){if("undefined"!=typeof document){"number"==typeof(i=e({path:"/"},a.defaults,i)).expires&&(i.expires=new Date(1*new Date+864e5*i.expires)),i.expires=i.expires?i.expires.toUTCString():"";try{var c=JSON.stringify(n);/^[\{\[]/.test(c)&&(n=c)}catch(e){}n=r.write?r.write(n,t):encodeURIComponent(String(n)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),t=encodeURIComponent(String(t)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,escape);var o="";for(var l in i)i[l]&&(o+="; "+l,!0!==i[l]&&(o+="="+i[l].split(";")[0]));return document.cookie=t+"="+n+o}}function c(e,n){if("undefined"!=typeof document){for(var a={},i=document.cookie?document.cookie.split("; "):[],c=0;c<i.length;c++){var o=i[c].split("="),l=o.slice(1).join("=");n||'"'!==l.charAt(0)||(l=l.slice(1,-1));try{var u=t(o[0]);if(l=(r.read||r)(l,u)||t(l),n)try{l=JSON.parse(l)}catch(e){}if(a[u]=l,e===u)break}catch(e){}}return e?a[e]:a}}return a.set=i,a.get=function(e){return c(e,!1)},a.getJSON=function(e){return c(e,!0)},a.remove=function(t,n){i(t,"",e(n,{expires:-1}))},a.defaults={},a.withConverter=n,a}((function(){}))})?r.call(t,n,t,e):r)||(e.exports=a),e.exports=i()},87432:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}}}]);
|
|
3
|
+
//# sourceMappingURL=9016-82d7e0afb9-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/9016-82d7e0afb9-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/subjects/components/preferences/footer/onboarding-footer.scss","file:///app/packages/libs/shared/src/apps/subjects/components/preferences/footer/OnboardingFooter.tsx","file:///app/packages/libs/shared/src/enums/BulkOnboardingPreferencesState.ts","file:///app/packages/libs/shared/src/apps/subjects/utils/OnboardingHelper.ts","file:///app/packages/libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx","file:///app/packages/libs/shared/src/hooks/UseGetMediaQueryString.ts","file:///app/packages/libs/shared/src/utils/PartialLoadingHelper.ts","file:///app/packages/libs/shared/src/utils/audience-helper/AudienceStringBuilders.ts","file:///app/packages/libs/shared/src/utils/audience-helper/AudienceHelper.ts","file:///app/packages/projects/lite/src/apps/settings/components/preferences/preferences-layout.scss","file:///app/packages/projects/lite/src/apps/settings/components/preferences/PreferencesLayout.tsx","file:///app/packages/projects/lite/src/apps/settings/components/settings-layout/SettingsLayout.tsx","file:///app/packages/projects/lite/src/apps/subjects/components/onboarding-loader/OnboardingLoader.tsx","file:///app/packages/projects/lite/src/apps/subjects/components/onboarding-loader/onboarding-loader.scss","file:///app/packages/projects/lite/src/apps/subjects/utils/OnboardingHelper.tsx","file:///app/node_modules/js-cookie/src/js.cookie.js","file:///app/packages/libs/shared/src/components/pill-tab-selector/pill-tab-selector.scss"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"stickyFooter\":\"rIUL4\",\"nonStickyFooter\":\"PuC_F\"};","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\n\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useGetMediaQueryString } from 'libs/shared/hooks/UseGetMediaQueryString';\nimport { useResizeListener } from 'libs/shared/hooks/UseResizeListener';\n\nimport styles from './onboarding-footer.scss';\n\nconst SCROLL_TOLERANCE = 50; // value in px\n\ninterface OnboardingFooterProps extends React.PropsWithChildren<unknown> {\n justify?: 'end' | 'center' | 'between';\n}\n\nOnboardingFooter.defaultProps = {\n justify: 'between'\n};\n\nfunction StickyFooter(props: OnboardingFooterProps): JSX.Element {\n const justifyClass = `justify-content-${props.justify}`;\n\n return (\n <div className={`py-3 bg-white ${styles.stickyFooter}`}>\n <div className={`w-75 mx-auto d-flex ${justifyClass}`}>\n {props.children}\n </div>\n </div>\n );\n}\n\nfunction NonStickyFooter(props: OnboardingFooterProps): JSX.Element {\n const mediaQuery = useGetMediaQueryString();\n const widthClass = (mediaQuery === MediaQueryStrings.SM || mediaQuery === MediaQueryStrings.XS) ? 'w-100' : 'w-75';\n\n const justifyClass = `justify-content-${props.justify}`;\n\n return (\n <div className={`${widthClass} ${justifyClass} ${styles.nonStickyFooter} d-flex px-3`}>\n {props.children}\n </div>\n );\n}\n\nexport function OnboardingFooter(props: OnboardingFooterProps): JSX.Element {\n const isScrolledToBottom = () => {\n return (window.innerHeight + window.scrollY) >= (document.body.offsetHeight - SCROLL_TOLERANCE);\n };\n\n const [ isSticky, setIsSticky ] = React.useState(false);\n\n React.useEffect(() => setIsSticky(!isScrolledToBottom()), []);\n\n function onViewportChange(): void {\n const shouldSetToSticky = !isScrolledToBottom();\n\n if (isSticky && !shouldSetToSticky) {\n setIsSticky(false);\n return;\n }\n\n if (!isSticky && shouldSetToSticky)\n setIsSticky(true);\n }\n\n const throttledOnViewportChange = FunctionHelper.throttle(onViewportChange, 100);\n\n React.useEffect(() => {\n window.addEventListener('scroll', throttledOnViewportChange);\n return () => window.removeEventListener('scroll', throttledOnViewportChange);\n }, [ isSticky, setIsSticky ]);\n\n useResizeListener(throttledOnViewportChange, throttledOnViewportChange, [ isSticky, setIsSticky ]);\n\n return isSticky\n ? <StickyFooter {...props}>{props.children}</StickyFooter>\n : <NonStickyFooter {...props}>{props.children}</NonStickyFooter>;\n}","export enum BulkOnboardingPreferencesState {\n None = 0,\n AllSubjects = 1,\n AllLevels = 2,\n AllSubjectsAndAllLevels = 3\n}","import { HashObject } from 'libs/common/react/interfaces';\n\nimport { BulkOnboardingPreferencesState } from 'libs/shared/enums/BulkOnboardingPreferencesState';\nimport { PresentationType } from 'libs/shared/enums/PresentationType';\nimport { Presentation } from 'libs/shared/interfaces';\n\n/**\n * These are all the valid preference steps in the onboarding worflow\n * Steps are displayed in full workflow order from left to right.\n * \n * Important: Not all customers/users will be required to compelete all steps.\n * \n * School-level = presentation selection for K12\n */\nexport type OnboardingStep = 'welcome' | 'school-level' | 'curriculum' | 'audiences' | 'topics' | 'summary' ;\n\nexport const OnboardingHelper = {\n hasManyPresentationTypes(presentations: Presentation[] = []): HashObject {\n let totalAvailableSubjectPresentations = 0;\n let totalAvailableCurriculumPresentations = 0;\n\n presentations?.forEach(p => {\n if (p.type === PresentationType.Subject)\n totalAvailableSubjectPresentations++;\n\n else if (p.type === PresentationType.Curriculum)\n totalAvailableCurriculumPresentations++;\n });\n\n /**\n * The checks for \"> 1\" are done because we _only_ want to display presentation selectors\n * if the user has more than 1 presentation to select from. If they only have 1 available,\n * then that will always be used by default and they don't have to make any decisions.\n */\n return {\n hasManySubjectPresentations: totalAvailableSubjectPresentations > 1,\n hasManyCurriculumPresentations: totalAvailableCurriculumPresentations > 1\n };\n },\n\n getBulkPreferencesState(state: BulkOnboardingPreferencesState): { [key in 'levels' | 'subjects']: boolean } {\n if (state === BulkOnboardingPreferencesState.AllSubjectsAndAllLevels)\n return {\n levels: true,\n subjects: true\n };\n\n return {\n levels: state === BulkOnboardingPreferencesState.AllLevels,\n subjects: state === BulkOnboardingPreferencesState.AllSubjects\n };\n },\n\n hasBulkSelectedLevels(bulkState: BulkOnboardingPreferencesState): boolean {\n return (\n bulkState === BulkOnboardingPreferencesState.AllLevels ||\n bulkState === BulkOnboardingPreferencesState.AllSubjectsAndAllLevels\n );\n },\n\n hasBulkSelectedTopics(bulkState: BulkOnboardingPreferencesState): boolean {\n return (\n bulkState === BulkOnboardingPreferencesState.AllSubjects ||\n bulkState === BulkOnboardingPreferencesState.AllSubjectsAndAllLevels\n );\n },\n\n getNextBulkState(current: BulkOnboardingPreferencesState, managing: 'topics' | 'audiences'): BulkOnboardingPreferencesState {\n const { None, AllSubjects, AllLevels, AllSubjectsAndAllLevels } = BulkOnboardingPreferencesState;\n\n const isManagingTopics = managing === 'topics';\n\n switch (current) {\n case None:\n default:\n return isManagingTopics ? AllSubjects : AllLevels;\n case AllSubjects:\n return isManagingTopics ? None : AllSubjectsAndAllLevels;\n case AllLevels:\n return isManagingTopics ? AllSubjectsAndAllLevels : None;\n case AllSubjectsAndAllLevels:\n return isManagingTopics ? AllLevels : AllSubjects;\n }\n }\n};\n","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nconst namespace = 'shared.breadcrumbComponent';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst COLLAPSE_CHARACTER_COUNT = 56;\n\nexport interface Breadcrumb {\n name: string;\n appLink?: Core.AppLink;\n active?: boolean;\n}\n\ninterface BreadcrumbItemProps {\n breadcrumb: Breadcrumb;\n withBackIcon?: boolean;\n}\n\nexport const BreadcrumbItem = React.forwardRef((\n props: BreadcrumbItemProps,\n ref: React.ForwardedRef<HTMLElement>\n) => {\n const { breadcrumb: { name, appLink, active }, withBackIcon } = props;\n return (\n <li className={`breadcrumb-item${active ? ' active' : ''}`}>\n {active\n ? <strong>{name}</strong>\n : <AppLink appLink={appLink} ref={ref}>\n {withBackIcon && <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{name}</span>\n </AppLink>\n }\n </li>\n );\n});\n\ninterface BreadcrumbsProps {\n breadcrumbs: Breadcrumb[];\n}\n\nexport const Breadcrumbs = ({ breadcrumbs }: BreadcrumbsProps) => {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n const length = breadcrumbs?.length || 0;\n \n const [ collapse, setCollapse ] = React.useState(false);\n const [ shouldFocus, setShouldFocus ] = React.useState(false);\n const expandRef = React.useRef<HTMLElement>();\n\n React.useEffect(() => {\n const characterLength = breadcrumbs?.reduce((prev, next) => prev + next.name.length, 0) ?? 0;\n\n if (length > 3 && characterLength > COLLAPSE_CHARACTER_COUNT)\n setCollapse(true);\n }, [breadcrumbs?.length]);\n\n /**\n * Focus our first expanded item the first time it appears.\n */\n React.useLayoutEffect(() => {\n if (shouldFocus)\n expandRef.current?.focus();\n }, [ expandRef.current, shouldFocus ]);\n\n function onClickExpand() {\n setCollapse(false);\n setShouldFocus(true);\n }\n\n if (!length || (isMobile && length < 2))\n return <></>;\n\n if (isMobile)\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} withBackIcon />\n </ol>\n </nav>\n );\n\n const first = <BreadcrumbItem breadcrumb={breadcrumbs[0]} />;\n const secondLast = length > 2 ? <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} /> : <></>;\n const last = <BreadcrumbItem breadcrumb={breadcrumbs[length - 1]} />;\n const rest = breadcrumbs.slice(1, length - 2);\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {first}\n {collapse ?\n <li className='breadcrumb-item'>\n <button\n className='btn-link'\n onClick={onClickExpand}\n aria-label={getPhrase('expand')}\n >\n ...\n </button>\n </li> :\n rest.map((breadcrumb, idx) => (\n <BreadcrumbItem\n key={idx}\n breadcrumb={breadcrumb}\n ref={idx === 0 ? expandRef : null}\n />\n ))\n }\n {secondLast}\n {last}\n </ol>\n </nav>\n );\n};\n\nexport const PartialBreadcrumbs = React.memo(function({ numItems = 3 }: { numItems?: number; }) {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n if (isMobile) {\n return (\n <div className='partial-loading-background' style={{ height: '1.3125rem', width: '6rem' }} />\n );\n }\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {PartialLoadingHelper.getPartialLoadingItems({ numItems }).map(({ width }, idx) => (\n <li key={idx} className='breadcrumb-item'>\n <span className='d-inline-block partial-loading-background' style={{ width }} dangerouslySetInnerHTML={{ __html: ' ' }} />\n </li>\n ))}\n </ol>\n </nav>\n );\n});","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svgName && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svgName={props.tab.svgName} />\n </div>\n )}\n\n {props.tab.name}\n\n {typeof (props.tab.count) === 'number' && (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} />\n </div>\n )}\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svgName?: string;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n containerRef?: (el: HTMLElement) => void;\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg'\n}\n\nPillTabSelector.defaultProps = {\n borderRadius: 'lg'\n};\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n\n return (\n <nav className={props.className ?? ''} ref={props.containerRef}>\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${props.borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset p-2 text-nowrap ${styles.tabLink}\n `}\n onClick={() => onSelectTab(tab)}\n >\n <TabContents tab={tab} />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n}\n","import { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\n\nimport { useMediaQuery } from './UseMediaQuery';\n\n/**\n * @deprecated Please use useBreakpoints() instead\n */\nexport function useGetMediaQueryString(): MediaQueryStrings {\n const isXS = useMediaQuery(MediaQueryStrings.XS);\n const isSM = useMediaQuery(MediaQueryStrings.SM);\n const isMD = useMediaQuery(MediaQueryStrings.MD);\n const isLG = useMediaQuery(MediaQueryStrings.LG);\n const isXL = useMediaQuery(MediaQueryStrings.XL);\n const isXXL = useMediaQuery(MediaQueryStrings.XXL);\n\n let currentString = MediaQueryStrings.LG; // default\n if (isXS) currentString = MediaQueryStrings.XS;\n if (isSM) currentString = MediaQueryStrings.SM;\n if (isMD) currentString = MediaQueryStrings.MD;\n if (isLG) currentString = MediaQueryStrings.LG;\n if (isXL) currentString = MediaQueryStrings.XL;\n if (isXXL) currentString = MediaQueryStrings.XXL;\n\n return currentString;\n}","const DEFAULT_PARTIAL_LOADING_OPTIONS: PartialLoadingOptions = {\n numItems: 5,\n minWidth: 50, // px\n maxWidth: 100 // px\n};\n\nexport interface PartialLoadingOptions {\n numItems?: number;\n minWidth?: number;\n maxWidth?: number;\n}\n\ninterface PartialLoadingItem {\n width: string;\n}\n\nexport const PartialLoadingHelper = {\n getPartialLoadingItems(options: PartialLoadingOptions = {}): PartialLoadingItem[] {\n const opts = {\n ...DEFAULT_PARTIAL_LOADING_OPTIONS,\n ...options\n };\n\n const getRandomFilterWidth = () => Math.max(Math.floor(Math.random() * opts.maxWidth), opts.minWidth);\n\n return [...Array(opts.numItems)].map(() => ({ width: `${getRandomFilterWidth()}px` }));\n }\n};","import { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\nconst HAS_NUMBER_REGEX = /\\d/;\nconst COUNT_OFFSET = 1;\n\nexport const AudienceStringBuilders = {\n /**\n * Handles audience sets like:\n * - Year 7, Year 8, etc\n * - Kindergarten, Grade 1, Grade 2, etc\n */\n yearsAndGradesBuilder(audiences: PresentationAudience[]): string {\n /**\n * Create a string with all of the audiences\n */\n const combinedNames = audiences.map(a => a.name).join(' ');\n\n /**\n * Extract all the numbers and matches from the string\n */\n const numberList = combinedNames.split(' ').filter(name => !isNaN(+name)).map(num => +num) || [];\n const wordList = combinedNames.split(' ').filter(name => isNaN(+name)) || [];\n\n // Find an audience that doesn't have a number, like \"Kindergarten\" or \"Foundation\".\n const audienceWithoutNum = audiences.find(p => {\n return !HAS_NUMBER_REGEX.test(p.name);\n });\n\n // Get audience label prefix\n let prefix = wordList.find(name => name !== audienceWithoutNum?.name);\n\n // Pluralise the prefix is there are multiple audiences\n if (audiences.length > 1)\n prefix += 's';\n\n if (audienceWithoutNum && numberList.length)\n return `${prefix} ${audienceWithoutNum.name.charAt(0)} - ${numberList.pop()}`;\n\n /**\n * Build set of logical audience ranges\n */\n const audienceRange = processAudienceRanges(numberList);\n\n return `${prefix} ${audienceRange.join(', ')}`;\n },\n\n internationalSecondaryBuilder(audiences: PresentationAudience[]): string {\n return AudienceStringBuilders.englandSecondaryBuilder(audiences);\n },\n\n scotlandPrimaryBuilder(audiences: PresentationAudience[]): string {\n const firstAudience = ArrayHelper.first(audiences);\n const lastAudience = ArrayHelper.last(audiences);\n\n let [firstAudienceLevel] = firstAudience.name.split(' ');\n let [lastAudienceLevel] = lastAudience.name.split(' ');\n\n if (firstAudienceLevel === 'First')\n firstAudienceLevel = '1st';\n\n if (lastAudienceLevel === 'First')\n lastAudienceLevel = '1st';\n\n if (firstAudienceLevel === 'Second')\n firstAudienceLevel = '2nd';\n\n if (lastAudienceLevel === 'Second')\n lastAudienceLevel = '2nd';\n\n if (firstAudienceLevel === lastAudienceLevel)\n return `${firstAudienceLevel} Level`;\n\n return `${firstAudienceLevel} - ${lastAudienceLevel} Level`;\n },\n\n internationalPrimaryBuilder(audiences: PresentationAudience[]): string {\n const firstAudience = ArrayHelper.first(audiences);\n const lastAudience = ArrayHelper.last(audiences);\n\n if (firstAudience.name === lastAudience.name)\n return firstAudience.name;\n\n let [firstAudienceLevel] = firstAudience.name.split(' ');\n let [lastAudienceLevel] = lastAudience.name.split(' ');\n\n if (firstAudienceLevel === 'Lower')\n firstAudienceLevel = 'Low';\n\n if (lastAudienceLevel === 'Lower')\n lastAudienceLevel = 'Low';\n\n if (firstAudienceLevel === 'Middle')\n firstAudienceLevel = 'Mid';\n\n if (lastAudienceLevel === 'Middle')\n lastAudienceLevel = 'Mid';\n\n return `${firstAudienceLevel} - ${lastAudienceLevel} Pri`;\n },\n\n /**\n * Handles the english secondary audiences, which can be: Lower Secondary, Upper Secondary, and Advanced\n */\n englandSecondaryBuilder(audiences: PresentationAudience[]): string {\n const firstAudience = ArrayHelper.first(audiences);\n const lastAudience = ArrayHelper.last(audiences);\n\n if (firstAudience.name === lastAudience.name)\n return firstAudience.name;\n\n if (lastAudience.name === 'Advanced') {\n const [level] = firstAudience.name.split(' ');\n\n if (level.toLowerCase() === 'lower')\n return 'Lower Sec - Adv';\n\n return 'Upper Sec - Adv';\n }\n\n return 'Lower - Upper Sec';\n },\n\n scotlandSecondaryBuilder(audiences: PresentationAudience[]): string {\n const firstAudience = ArrayHelper.first(audiences);\n const lastAudience = ArrayHelper.last(audiences);\n\n if (firstAudience.name === lastAudience.name)\n return firstAudience.name;\n\n if (lastAudience.name === 'Senior Phase')\n return `${firstAudience.name} - Senior`;\n\n return 'Third - Fourth Level';\n },\n\n /**\n * Handles the audience set: Reception, Key Stage 1, Lower Key Stage 2, and Upper Key Stage 2\n */\n englandPrimaryBuilder(audiences: PresentationAudience[]): string {\n // The first and last audience will build out the range\n const firstAudience = ArrayHelper.first(audiences);\n const lastAudience = ArrayHelper.last(audiences);\n\n // The first word in the strings will either be \"Upper\", \"Lower\", \"Key\", or \"Reception\"\n const firstAudienceFirstWord = ArrayHelper.first(firstAudience.name.split(' '));\n const lastAudienceFirstWord = ArrayHelper.first(lastAudience.name.split(' '));\n\n // Each audience in this set except for \"Reception\" has a number. Get the numbers for the first and last audiences\n const firstAudienceNumber = firstAudience.name.split(' ').find(word => !isNaN(+word));\n const lastAudienceNumber = lastAudience.name.split(' ').find(word => !isNaN(+word));\n\n // If there's only one audience on the video:\n if (firstAudience === lastAudience) {\n // For these 2 audiences, return the full name as it's short enough already\n if (firstAudienceFirstWord === 'Key' || firstAudienceFirstWord === 'Reception')\n return firstAudience.name;\n\n // For the Upper/Lower key stage audiences, abbreviate the \"key stage\" part to KS1/KS2\n return `${firstAudienceFirstWord} KS${firstAudienceNumber}`;\n }\n\n /**\n * Handle when the object has >1 audience\n */\n\n let firstAudienceString = '';\n let lastAudienceString = '';\n\n // Reception is always shortened to \"R\" when in a range\n if (firstAudienceFirstWord === 'Reception') {\n firstAudienceString = 'R';\n } else {\n // All other audiences will be abbreviated to \"KS1/KS2\"\n firstAudienceString = `KS${firstAudienceNumber}`;\n }\n\n // The last audience will always be a key stage, so abbreviate this too\n lastAudienceString = `KS${lastAudienceNumber}`;\n\n // If the audience range contains both the \"Lower\" and \"Upper\" audiences, abbreviate those and return\n if (firstAudienceFirstWord === 'Lower' && lastAudienceFirstWord === 'Upper') {\n return `L ${firstAudienceString} - U ${lastAudienceString}`;\n }\n\n // Add \"Lower\" and \"Upper\" to the strings if it's needed\n if (firstAudienceFirstWord === 'Lower') {\n firstAudienceString = `Lower ${firstAudienceString}`;\n }\n\n if (lastAudienceFirstWord === 'Upper') {\n lastAudienceString = `Upper ${lastAudienceString}`;\n }\n\n // This handles a case where the range is Reception - Key Stage 1. In which case we don't abbreviate the key stage part to KS1.\n if (lastAudienceFirstWord === 'Key') {\n lastAudienceString = lastAudience.name;\n }\n\n return `${firstAudienceString} - ${lastAudienceString}`;\n }\n};\n\nfunction processAudienceRanges(audienceValues: number[]): string[] {\n /**\n * Lookahead by increments of offset\n */\n const offset = COUNT_OFFSET;\n\n let initialVal; let nextVal;\n let isContinguous: boolean = false;\n\n const ranges: string[] = [];\n\n // Audience values need to be in ascending order\n audienceValues = audienceValues.sort((a, b) => a - b);\n\n let i; let j;\n\n for (i = 0; i < audienceValues.length; i++) {\n j = i + 1;\n\n // Set our lower boundary to compare against\n if (!isContinguous)\n initialVal = audienceValues[i];\n\n nextVal = audienceValues[j];\n\n /**\n * Where the next number is also the next incremental value\n * we're going to continue iterating until the next value\n * is no longer contiguos.\n */\n if (audienceValues[i] + offset === nextVal) {\n isContinguous = true;\n } else if (isContinguous) {\n /**\n * Where we were tracking a contiguous set, format appropriately \n * and store the vals\n */\n\n ranges.push(`${initialVal} - ${audienceValues[i]}`);\n isContinguous = false;\n } else {\n /**\n * Where the values arent contiguous, just store the current value\n */\n\n ranges.push(`${audienceValues[i]}`);\n isContinguous = false;\n }\n }\n\n return ranges;\n}","import { HashObject } from 'libs/common/react/interfaces';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { HardCoded } from 'libs/shared/constants/HardCoded';\nimport { Audience, BaseObject, PresentationAudience } from 'libs/shared/interfaces';\n\nimport { AudienceStringBuilders } from './AudienceStringBuilders';\n\nconst DIGIT_REGEX = /([0-9]+)/ig;\nconst SPACE_REGEX = /\\s|\\+/ig;\n\n/**\n * Where there is 1 or less audiences on a presentation, it provides little value to\n * the user's experience, so we'll hide audiences altogether.\n */\nconst MIN_AUDIENCE_THRESHOLD = 1;\n\nexport const AudienceHelper = {\n /**\n * This is needed to sort an object's audiences, as they are not sorted by the backend.\n * To do this, we take the presentation audiences (sorted) and filter them by the object's\n * audiences, leaving behind a sorted array of object audiences.\n */\n getSortedPresentationAudiences(\n objectAudiences: Audience[],\n presentationAudiences: PresentationAudience[]\n ): PresentationAudience[] {\n /**\n * Atm there is a bug in flight's optimize, around multiple parts of the page \n * fetching the same object with a different response. We are filtering out\n * falsey values in our object audience ids until that's fixed. - Sha\n */\n const objectAudienceIds = objectAudiences\n .filter(v => !!v)\n .map(audience => audience.id.toString());\n\n /**\n * Remove audiences that aren't relevant for the user's current presentation\n */\n const filteredAudiences = presentationAudiences.filter(presAudience => {\n return objectAudienceIds.includes(presAudience.masterId.toString());\n });\n\n return filteredAudiences;\n },\n\n /**\n * This function accepts a set of presentation audiences, and returns a single\n * audience where the name is a merged string of the names of all of the audiences passed in.\n *\n * As we add more presentations that have different audience sets, we'll need to extend the `switch`\n * statement below to either include new string builder functions, or to include new presentation IDs\n * for existing string builder functions.\n */\n getMergedPresentationAudienceString(presentationAudiences: PresentationAudience[]): PresentationAudience {\n const { presentationId } = ArrayHelper.first(presentationAudiences);\n\n let mergedAudienceString = '';\n\n switch (+presentationId) {\n // Generic `Name Number`. Sometimes has just name. Examples: Year 12, Grade 4, Kindergarten\n case HardCoded.PresentationIds.DEFAULT:\n case HardCoded.PresentationIds.AU_SECONDARY:\n case HardCoded.PresentationIds.US_ELEMENTARY:\n case HardCoded.PresentationIds.AU_PRIMARY:\n case HardCoded.PresentationIds.STREAMABLE_LEARNING:\n if (presentationAudiences.length === 1)\n return presentationAudiences[0];\n\n mergedAudienceString = AudienceStringBuilders.yearsAndGradesBuilder(presentationAudiences);\n break;\n\n case HardCoded.PresentationIds.INTERNATIONAL_SECONDARY:\n if (presentationAudiences.length === 1)\n return presentationAudiences[0];\n\n // TODO: Implement this properly\n mergedAudienceString = AudienceStringBuilders.internationalSecondaryBuilder(presentationAudiences);\n break;\n\n case HardCoded.PresentationIds.INTERNATIONAL_PRIMARY:\n mergedAudienceString = AudienceStringBuilders.internationalPrimaryBuilder(presentationAudiences);\n break;\n\n case HardCoded.PresentationIds.SCOTLAND_PRIMARY:\n mergedAudienceString = AudienceStringBuilders.scotlandPrimaryBuilder(presentationAudiences);\n break;\n\n case HardCoded.PresentationIds.ENGLISH_SECONDARY:\n mergedAudienceString = AudienceStringBuilders.englandSecondaryBuilder(presentationAudiences);\n break;\n\n \n case HardCoded.PresentationIds.SCOTLAND_SECONDARY:\n mergedAudienceString = AudienceStringBuilders.scotlandSecondaryBuilder(presentationAudiences);\n break;\n\n // Key Stage 1, Lower Key Stage 2, etc.\n case HardCoded.PresentationIds.ENGLAND_PRIMARY:\n mergedAudienceString = AudienceStringBuilders.englandPrimaryBuilder(presentationAudiences);\n break;\n\n // These presentations only have 1 audience mapped. These are never shown as badges in the product.\n case HardCoded.PresentationIds.US_MIDDLE:\n case HardCoded.PresentationIds.US_HIGH:\n default:\n break;\n }\n\n if (!mergedAudienceString)\n return null;\n\n return { name: mergedAudienceString } as PresentationAudience;\n },\n\n /**\n * This function assumes the members array passed in is ordered by `name`.\n */\n sortMembersWithDuplicateNamesByAudience(members: BaseObject[]): BaseObject[] {\n // Returns the lowest level audience out of an array of audience objects by looking at the name\n const getLowestAudience = (audiences: Audience[]) => {\n if (!audiences.length)\n return null;\n\n let lowestAudience: Audience;\n let lowestAudienceDigit: number;\n\n audiences.forEach(audience => {\n const digit = +ArrayHelper.first(audience.name.match(DIGIT_REGEX));\n\n if (!lowestAudience) {\n lowestAudience = audience;\n lowestAudienceDigit = digit;\n return;\n }\n\n if (digit < lowestAudienceDigit)\n lowestAudience = audience;\n });\n\n return lowestAudience;\n };\n\n // This is used to track how many times a member's name appears in the collection\n const nameCountMap: HashObject<number> = {};\n\n let sorted: BaseObject[] = [];\n\n members.forEach(member => {\n if (!nameCountMap[member.name]) {\n nameCountMap[member.name] = 1;\n sorted.push(member);\n return;\n }\n\n sorted.push(member);\n nameCountMap[member.name]++;\n\n // Take the slice of duplicates that we want to sort by audience\n const slice = sorted.splice(sorted.length - nameCountMap[member.name]);\n\n // Sort the slice by lowest audience\n const sortedSlice = slice.sort((a: any, b: any) => {\n const firstObjLowestAudience = getLowestAudience(a.subjectPresentationAudiences.data);\n const secondObjLowestAudience = getLowestAudience(b.subjectPresentationAudiences.data);\n\n if (!firstObjLowestAudience && secondObjLowestAudience)\n return 1;\n\n if (!secondObjLowestAudience)\n return -1;\n\n const comparison = firstObjLowestAudience.name.localeCompare(secondObjLowestAudience.name);\n\n if (comparison === 0) return comparison;\n\n return comparison > 0 ? -1 : 1;\n });\n\n sorted = sorted.concat(sortedSlice);\n });\n\n return sorted;\n },\n\n getActiveAudiencesFromParams(audiences: PresentationAudience[], params: HashObject = {}): PresentationAudience[] {\n if (!ObjectHelper.isObject(params) || ObjectHelper.isEmpty(params))\n return;\n\n if (!audiences || !audiences.length)\n return;\n\n if (!AudienceHelper.shouldShowAudiences(audiences))\n return;\n\n // 'a' is shorthand for audience\n let { a } = params;\n\n if (!a)\n return;\n\n // Only a single query param was passed, we'll wrap it in an array\n if (typeof a === 'string')\n a = [a];\n\n const normalizeAudienceName = (audienceName: string) => {\n return audienceName.replace(SPACE_REGEX, '').toLowerCase();\n };\n\n // Build an audience lookup\n const audienceLookup = a.reduce((state: HashObject, audienceStr: string) => {\n state[normalizeAudienceName(audienceStr)] = audienceStr;\n return state;\n }, {});\n\n // Filter out our active audience based on whether their name matches the lookup object\n return audiences.filter((audience: PresentationAudience) => {\n return audienceLookup[normalizeAudienceName(audience.name)];\n });\n },\n\n getAudienceParams(audiences: PresentationAudience[]): HashObject {\n if (!audiences?.length)\n return null;\n\n return { a: audiences.map(a => a.name) };\n },\n\n shouldShowAudiences(audiences: PresentationAudience[] = []): boolean {\n if (!audiences)\n return false;\n\n return audiences.length > MIN_AUDIENCE_THRESHOLD;\n }\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"tabs\":\"oHDjZ\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { PillTab, PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\nimport { Presentation, PresentationAudience } from 'libs/shared/interfaces';\nimport { ContextService } from 'libs/shared/services/ContextService';\nimport { AudienceHelper } from 'libs/shared/utils/audience-helper/AudienceHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { SettingsLayout } from 'apps/settings/components/settings-layout/SettingsLayout';\nimport { OnboardingHelper } from 'apps/subjects/utils/OnboardingHelper';\n\nimport styles from './preferences-layout.scss';\n\nconst namespace = 'settings.preferencesLayout';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype PreferencesLayoutProps = React.PropsWithChildren<{\n availablePresentations: Presentation[];\n audiences: PresentationAudience[];\n}>;\n\nexport function PreferencesLayout(props: PreferencesLayoutProps): JSX.Element {\n const currentAppLink = ContextService.getCurrentRoute()?.appLink;\n\n const isActive = (action: string) => action === currentAppLink?.action;\n\n const triggerAppLink = (action: string) => {\n Core.AppLinkHelper.trigger({\n application: AppChannels.SETTINGS,\n action\n });\n };\n\n function getTabs(): PillTab[] {\n const tabs = [{\n name: getPhrase('topics'),\n active: isActive(Actions.Settings.TOPIC_PREFERENCES),\n onSelect: () => triggerAppLink(Actions.Settings.TOPIC_PREFERENCES)\n }];\n \n const hasSelectableLevels = AudienceHelper.shouldShowAudiences(props.audiences);\n\n if (hasSelectableLevels) {\n tabs.push({\n name: getPhrase('yearGroups'),\n active: isActive(Actions.Settings.AUDIENCE_PREFERENCES),\n onSelect: () => triggerAppLink(Actions.Settings.AUDIENCE_PREFERENCES)\n });\n }\n\n const {\n hasManyCurriculumPresentations,\n hasManySubjectPresentations\n } = OnboardingHelper.hasManyPresentationTypes(props.availablePresentations);\n\n if (hasManyCurriculumPresentations) {\n tabs.push({\n name: getPhrase('curriculum'),\n active: isActive(Actions.Settings.CURRICULUM),\n onSelect: () => triggerAppLink(Actions.Settings.CURRICULUM)\n });\n }\n\n if (hasManySubjectPresentations) {\n tabs.push({\n name: getPhrase('schoolLevel'),\n active: isActive(Actions.Settings.SCHOOL_LEVEL),\n onSelect: () => triggerAppLink(Actions.Settings.SCHOOL_LEVEL)\n });\n }\n\n return tabs;\n }\n\n const tabs = getTabs();\n\n return (\n <SettingsLayout\n heading={getPhrase('heading')}\n breadcrumbs={[getPhrase('breadcrumb')]}\n >\n {tabs.length > 1 && (\n <PillTabSelector\n tabs={getTabs()}\n className={styles.tabs}\n />\n )}\n\n {props.children}\n </SettingsLayout>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { useGetSettingsGroups } from 'apps/settings/hooks/useGetSettingsGroups';\n\nconst namespace = 'settings.settingsLayout';\n\n/**\n * Checks if the current user has permission to access the settings module\n */\nexport const useCanAccessSettings = (requiredPermissions: PermissionName | PermissionName[]): boolean => {\n const { hasPermissions } = usePermissions();\n const settingsGroups = useGetSettingsGroups();\n\n /**\n * TODO: Update all settings pages to pasas required permissions, because checking the \n * `useGetSettingsGroups()` values clearly doesnt work for settings pages with multiple\n * applinks inside of them. - Sha\n */\n if (requiredPermissions)\n return hasPermissions(requiredPermissions);\n\n const currentRoute = Core.AppLinkHelper.getCurrentAppLink();\n\n /**\n * Allows us to have popups sitting in other locations be used\n * by our settings pages. For example the manage video access popup\n * in the \"videos with restricted access\" page - Sha\n */\n if (currentRoute.application !== AppChannels.SETTINGS)\n return true;\n\n return settingsGroups.some(group => {\n return group.modules.some(settingsModule => {\n if ('appLink' in settingsModule) {\n return settingsModule.appLink.action === currentRoute.action;\n }\n\n return false;\n });\n });\n};\n\ninterface SettingsLayoutProps {\n heading: string;\n breadcrumbs: string[];\n description?: string;\n requiredPermissions?: PermissionName | PermissionName[];\n headingButton?: () => JSX.Element;\n}\n\nexport function SettingsLayout(props: React.PropsWithChildren<SettingsLayoutProps>): JSX.Element {\n const canAccess = useCanAccessSettings(props.requiredPermissions);\n\n React.useEffect(() => {\n if (!canAccess) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n }, { replace: true });\n }\n }, [canAccess]);\n\n if (!canAccess)\n return <></>;\n\n const breadcrumbs = props.breadcrumbs.map((name, i) => ({\n name,\n appLink: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n },\n active: i === props.breadcrumbs.length - 1\n }));\n\n return (\n <div className='px-3'>\n <div className='d-flex align-items-center justify-content-between'>\n <h1 className='h2'>{props.heading}</h1>\n {props.headingButton?.()}\n </div>\n <div className='pb-3'>\n <Breadcrumbs\n breadcrumbs={[\n {\n name: LanguageService.getPhrase(namespace, 'settingsBreadcrumb'),\n appLink: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n }\n },\n ...breadcrumbs\n ]}\n />\n </div>\n {props.description &&\n <>\n <p>{props.description}</p>\n <hr />\n </>\n }\n\n {props.children}\n </div>\n );\n}","import React from 'react';\nimport { Spinner } from 'react-bootstrap';\n\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport styles from './onboarding-loader.scss';\n\nconst namespace = 'subjects.onboardingLoader';\n\ninterface OnboardingLoaderProps {\n onDone: () => void;\n}\n\nexport function OnboardingLoader(props: OnboardingLoaderProps): JSX.Element {\n React.useEffect(() => {\n window.setTimeout(props.onDone, 2500);\n }, []);\n\n return (\n <div className='d-flex flex-column align-items-center'>\n <div className='py-3'>\n <Spinner as='span' animation='border' role='status' className={styles.spinner} />\n </div>\n\n <h2 className={styles.heading}><Text namespace={namespace} phrase='heading' /></h2>\n <p className={`mb-0 pb-4 text-center ${styles.description}`}>\n <Text namespace={namespace} phrase='info' />\n </p>\n\n <div className='drop-shadow mb-n5'>\n <img\n src={ImageUrls.Onboarding.LOADER}\n alt=''\n role='presentation'\n className='img-fluid'\n />\n </div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"spinner\":\"SVq72\",\"heading\":\"iS5ZE\",\"description\":\"JaUIN\"};","import React from 'react';\nimport Cookies from 'js-cookie';\n\nimport { Core } from 'libs/common/core';\n\nimport { OnboardingHelper as SharedOnboardingHelper, OnboardingStep } from 'libs/shared/apps/subjects/utils/OnboardingHelper';\nimport { DialogHelper } from 'libs/shared/utils/DialogHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { OnboardingLoader } from 'apps/subjects/components/onboarding-loader/OnboardingLoader';\n\nexport const OnboardingHelper = {\n ...SharedOnboardingHelper,\n\n buildAppLink(step: OnboardingStep, redirectUrl?: string): Core.AppLink {\n const application = AppChannels.SUBJECT;\n\n const action = (() => {\n if (step === 'welcome') return Actions.Subjects.ONBOARDING_WELCOME;\n if (step === 'school-level') return Actions.Subjects.ONBOARDING_TOPIC_PRESENTATION;\n if (step === 'curriculum') return Actions.Subjects.ONBOARDING_CURRICULUM_PRESENTATION;\n })();\n\n const appLink: Core.AppLink = { application, action };\n\n if (redirectUrl)\n appLink.params = { redirectUrl };\n\n return appLink;\n },\n\n redirect(redirectUrl: string = ''): void {\n const appLink: Core.AppLink = {\n application: AppChannels.SUBJECT,\n action: Actions.Subjects.ONBOARDING\n };\n\n if (redirectUrl)\n appLink.params = { redirectUrl };\n\n Core.AppLinkHelper.trigger(appLink, { replace: true });\n },\n\n onCompleteOnboardingSuccess(userId: string, redirectUrl: string = '/'): void {\n Cookies.set('_onboardingComplete', userId, { expires: 30 });\n\n /**\n * For users just completing onboarding, we want to do a full page load so that the top nav items\n * can be loaded back in. The top nav items are hidden for new users who are forced through onboarding.\n */\n const onDone = () => Core.LocationUtils.PageLoad(redirectUrl);\n\n // Artificially make the request take longer so that the button spins for longer\n window.setTimeout(() => {\n DialogHelper.render(<OnboardingLoader onDone={onDone} />, {\n size: 'lg',\n dialogClassName: 'rounded-3',\n hideButtons: true,\n centered: true,\n cancelButtonProps: {\n onClick: onDone\n }\n });\n }, 250);\n }\n};\n","/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t// character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n","// extracted by mini-css-extract-plugin\nexport default {\"pillTabSelector\":\"Hdi6o\",\"tab\":\"RvNxr\",\"minWidth\":\"GHSz9\",\"radiusSmall\":\"VhJJa\",\"tabLink\":\"WFyvo\"};"],"names":["SCROLL_TOLERANCE","StickyFooter","props","justifyClass","justify","className","children","NonStickyFooter","mediaQuery","widthClass","OnboardingFooter","isScrolledToBottom","window","innerHeight","scrollY","document","body","offsetHeight","isSticky","setIsSticky","throttledOnViewportChange","FunctionHelper","shouldSetToSticky","addEventListener","removeEventListener","defaultProps","BulkOnboardingPreferencesState","OnboardingHelper","hasManyPresentationTypes","presentations","totalAvailableSubjectPresentations","totalAvailableCurriculumPresentations","forEach","p","type","PresentationType","hasManySubjectPresentations","hasManyCurriculumPresentations","getBulkPreferencesState","state","AllSubjectsAndAllLevels","levels","subjects","AllLevels","AllSubjects","hasBulkSelectedLevels","bulkState","hasBulkSelectedTopics","getNextBulkState","current","managing","None","isManagingTopics","getPhrase","BreadcrumbItem","ref","breadcrumb","name","appLink","active","withBackIcon","svgName","size","S","Breadcrumbs","breadcrumbs","isMobile","length","collapse","setCollapse","shouldFocus","setShouldFocus","expandRef","characterLength","reduce","prev","next","focus","first","secondLast","last","rest","slice","onClick","map","idx","key","PartialBreadcrumbs","numItems","style","height","width","dangerouslySetInnerHTML","__html","TabContents","tab","count","data","PillTabSelector","containerRef","borderRadius","listClassName","tabs","index","analyticsData","analyticsOptions","onSelect","onSelectTab","useGetMediaQueryString","isXS","isSM","isMD","isLG","isXL","isXXL","currentString","DEFAULT_PARTIAL_LOADING_OPTIONS","minWidth","maxWidth","PartialLoadingHelper","getPartialLoadingItems","options","opts","Array","Math","max","floor","random","HAS_NUMBER_REGEX","AudienceStringBuilders","yearsAndGradesBuilder","audiences","combinedNames","a","join","numberList","split","filter","isNaN","num","wordList","audienceWithoutNum","find","test","prefix","charAt","pop","audienceRange","audienceValues","initialVal","nextVal","i","j","isContinguous","ranges","sort","b","push","processAudienceRanges","internationalSecondaryBuilder","englandSecondaryBuilder","scotlandPrimaryBuilder","firstAudience","ArrayHelper","lastAudience","firstAudienceLevel","lastAudienceLevel","internationalPrimaryBuilder","toLowerCase","scotlandSecondaryBuilder","englandPrimaryBuilder","firstAudienceFirstWord","lastAudienceFirstWord","firstAudienceNumber","word","lastAudienceNumber","firstAudienceString","lastAudienceString","DIGIT_REGEX","SPACE_REGEX","AudienceHelper","getSortedPresentationAudiences","objectAudiences","presentationAudiences","objectAudienceIds","v","audience","id","toString","presAudience","includes","masterId","getMergedPresentationAudienceString","mergedAudienceString","presentationId","HardCoded","sortMembersWithDuplicateNamesByAudience","members","getLowestAudience","digit","match","lowestAudience","lowestAudienceDigit","nameCountMap","sorted","member","sortedSlice","splice","firstObjLowestAudience","subjectPresentationAudiences","secondObjLowestAudience","comparison","localeCompare","concat","getActiveAudiencesFromParams","params","ObjectHelper","shouldShowAudiences","normalizeAudienceName","audienceName","replace","audienceLookup","audienceStr","getAudienceParams","LanguageService","PreferencesLayout","currentAppLink","ContextService","isActive","action","triggerAppLink","application","getTabs","availablePresentations","SettingsLayout","heading","namespace","useCanAccessSettings","requiredPermissions","hasPermissions","settingsGroups","currentRoute","some","group","modules","settingsModule","canAccess","headingButton","description","OnboardingLoader","setTimeout","onDone","Spinner","as","animation","role","Text","phrase","src","ImageUrls","alt","buildAppLink","step","redirectUrl","redirect","onCompleteOnboardingSuccess","userId","expires","DialogHelper","dialogClassName","hideButtons","centered","cancelButtonProps","factory","extend","result","arguments","attributes","decode","s","decodeURIComponent","init","converter","api","set","value","path","defaults","Date","toUTCString","JSON","stringify","e","write","encodeURIComponent","String","escape","stringifiedAttributes","attributeName","cookie","get","json","jar","cookies","parts","read","parse","getJSON","remove","withConverter","module","exports"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[9173],{78259:(e,t,n)=>{n.d(t,{O:()=>l});var a=n(58176),r=n.n(a),i=n(39479),o={className:"info-link",defaultProtocol:"https"},l={linkifyText:function(e,t){if(e){var n=t?i.extend({},o,t):o;return r()(e,n)}}}},6107:(e,t,n)=>{n.d(t,{b:()=>g});var a=n(32735),r=n(110),i=n(78259),o=n(28400),l=n(49985),c=n(65858),s=n(84963),u=n(12324),d=n(42735),m=n(36848),p=n(75163),v=n(2284);const f={modalWidth:"SgHYb",banner:"PLw1p",pill:"UNBr0",logo:"xv_tc"};function g(e){var t,n,g,y,h,E=e.getAppLink(e.event.content,o.m.slugify(e.event.name)),b=null===(t=e.getBackgroundColor)||void 0===t?void 0:t.call(e,e.event.content),S=null===(n=e.getIconUrl)||void 0===n?void 0:n.call(e,e.event.content),k=null===(g=e.getBannerUrl)||void 0===g?void 0:g.call(e,e.event.content),L=!!e.event.endDate,C=e.event.content.status===v.W.ComingSoon,A=null===(y=e.getStartTime)||void 0===y?void 0:y.call(e,e.event.content),D=null===(h=e.getActionLabel)||void 0===h?void 0:h.call(e),O={actionType:c.Vw.Click,entity:c.py.SpecialEvent,location:e.inPopup?c.LZ.CalendarPopup:c.LZ.CalendarDay},N={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,A&&a.createElement("h6",null,A),a.createElement("div",{onClick:function(){C&&l.k.logUserAction(N,O)}},a.createElement(m.F,{appLink:!C&&E,className:"".concat(C?"":"cursor-pointer"," text-decoration-none"),onClick:e.onClick,analyticsOptions:O,analyticsData:N},a.createElement("div",{className:"banner rounded-3 position-relative ".concat(f.banner),style:{backgroundColor:b,backgroundImage:"url('".concat(k,"')")}},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"},S&&a.createElement("div",{className:"".concat(f.logo," rounded-circle flex-shrink-0 overflow-hidden me-2")},a.createElement(p.Z,{data:S})),a.createElement("div",{className:"text-white"},C&&a.createElement(s.r,{className:"pe-2 fw-semibold mb-1 rounded-pill justify-content-start ".concat(f.pill)}),L&&a.createElement("div",{className:"mb-1"},u.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(d.K,{className:"btn btn-outline-dark fw-semibold"},D))))),a.createElement("div",{className:"mt-2 mb-3 pre-wrap text-break",dangerouslySetInnerHTML:{__html:i.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),i=n(110),o=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:i.O.format(new Date,"YYYY-MM-DD"),objectType:o.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)}}}}},3278:(e,t,n)=>{n.d(t,{z:()=>m});var a=n(32735),r=n(39202),i=n(23481),o=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,p,v,f;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:i.T.getPhrase(d,"forYou"),appLink:null===(t=e.appLinks)||void 0===t?void 0:t.forYou,active:"forYou"===e.active,analyticsData:{name:i.T.getPhrase(d,"forYou"),url:r.C$.getHref(null===(n=e.appLinks)||void 0===n?void 0:n.forYou)},analyticsOptions:{actionType:o.Vw.Click,entity:o.py.Url,location:o.LZ.MagicTabs}},{name:i.T.getPhrase(d,"whatsNew"),appLink:null===(m=e.appLinks)||void 0===m?void 0:m.whatsNew,active:"whatsNew"===e.active,analyticsData:{name:i.T.getPhrase(d,"whatsNew"),url:r.C$.getHref(null===(p=e.appLinks)||void 0===p?void 0:p.whatsNew)},analyticsOptions:{actionType:o.Vw.Click,entity:o.py.Url,location:o.LZ.MagicTabs}}];return e.showCalendar&&g.push({name:i.T.getPhrase(d,"calendar"),appLink:null===(v=e.appLinks)||void 0===v?void 0:v.calendar,active:"calendar"===e.active,analyticsData:{name:i.T.getPhrase(d,"calendar"),url:r.C$.getHref(null===(f=e.appLinks)||void 0===f?void 0:f.calendar)},analyticsOptions:{actionType:o.Vw.Click,entity:o.py.Url,location:o.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),i=n(36848),o=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(o.C,{type:o.g.Count,data:e.tab.count})))}function d(e){var t;return a.createElement("nav",{className:null!==(t=e.className)&&void 0!==t?t:"",ref:e.containerRef},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(i.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(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={}))},76721:(e,t,n)=>{n.r(t),n.d(t,{CalendarView:()=>Ee});var a=n(32735),r=n(23481),i=n(81886),o=n(20354),l=n(110),c=n(80247),s=n(56752),u=n(64446);const d={wrapper:"WRLhh",weekend:"mF0ka"};function m(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){var t,n,r,i=e.date,o=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,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=i.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&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw r}}return l}}(n,r)||function(e,t){if(e){if("string"==typeof e)return m(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m(e,t):void 0}}(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.")}()),p=c[0],v=c[1],f="position-relative border ".concat(e.theme.border," ").concat(d.wrapper);(function(e){return 0===l.O.getWeekday(e)||6===l.O.getWeekday(e)})(i)&&(f+=" ".concat(d.weekend)),o&&(f+="opacity-50");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:p,setSliderStep:v});return a.createElement("td",{className:f},(null==g?void 0:g.length)>0?a.createElement(u.K,{hoverableComponent:s.X,componentProps:y,hoverScale:1.35}):a.createElement(s.X,Object.assign({},y,{isHovering:!1})))}var v=n(12324),f=n(79967),g=n(36848),y=n(23232),h=n(83345),E="specialEvent.eventsEmptyState",b=r.T.encloseNamespace(E);function S(e){return a.createElement(h.D.Provider,{value:E},a.createElement(y.u,null,a.createElement(y.u.Image,{src:e.imageUrl,altText:b("info")}),a.createElement(y.u.Heading,null,e.heading||a.createElement(h.x,{phrase:"heading"})),e.appLink&&a.createElement(y.u.Info,null,a.createElement(a.Fragment,null,a.createElement(h.x,{namespace:E,phrase:"info"}),a.createElement(g.F,{appLink:e.appLink},a.createElement("span",{className:"text-info"},b("link")))))))}var k=n(28400),L=n(6107);const C={date:"k2lLG",first:"E18Bv"};function A(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 i="",o="";return a.createElement("div",{key:n},a.createElement("div",{className:"h4 mt-4 ".concat(C.date," ").concat(0===r?C.first:"")},v.T.getOrdinalDate(n)),t[n].map((function(t){var n;return i=o,o=null===(n=e.getStartTime)||void 0===n?void 0:n.call(e,t.content),a.createElement(L.b,{key:t.content.id,getAppLink:function(t,n){return e.appLink(t,k.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&&i!==o?e.getStartTime:null,isPastEvent:e.isPastEvent})})))})))}const D={header:"sTIcQ",thead:"ekxZd"};function O(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,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=i.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&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return N(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)?N(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 N(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 w(e){var t,n=e.appLinks,r=e.imageUrls,i=(0,f.k)(),o=v.T.getEventsInMonth(e.events||[],e.viewingMonth),l=O(a.useState(!1),2),s=l[0],u=l[1],d=O(a.useState(null),2),m=d[0],g=d[1];return e.eventsLoaded&&!(null==o?void 0:o.length)?a.createElement(S,{imageUrl:r.emptyState,appLink:null===(t=n.emptyStateRedirect)||void 0===t?void 0:t.call(n),heading:e.emptyStateHeading}):"list"===e.viewMode||i.xs||i.sm||i.md?e.eventsLoaded?a.createElement(A,{events:o,presentationId:e.presentationId,appLink:e.appLinks.event,getIconUrl:e.getIconUrl,getBannerUrl:e.getBannerUrl,getBackgroundColor:e.getBackgroundColor,getActionLabel:e.getActionLabel,getStartTime:e.getStartTime,isPastEvent:e.isPastEvent}):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(D.thead)},a.createElement("tr",{className:"fw-semibold ".concat(e.theme.background," ").concat(D.header)},e.weekDaysHeader.map((function(e){return a.createElement("th",{key:e,className:"px-2 h4",scope:"col"},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(p,{key:t.toString(),date:t,notCurrentMonth:!!t.notCurrentMonth,events:e.events,monthQuery:e.monthQuery,hasInitialized:s,setHasInitialized:u,presentationId:e.presentationId,hoveredEvent:m,theme:e.theme,setHoveredEvent:g,getEventsListAppLink:function(){return e.appLinks.eventList(e.monthQuery,t,e.presentationId)},getTopicAppLink:function(t,n){return e.appLinks.event(t,n)},getIconUrl:e.getIconUrl,getBackgroundColor:e.getBackgroundColor,getCoverUrl:e.getCoverUrl,getHardCodedEvent:e.getHardCodedEvent,fadePastEvents:e.fadePastEvents,timezone:e.timezone})})))}))))}w.defaultProps={theme:{border:"border-light-blue",background:"bg-light-blue"}};var T=n(65858),M=n(57278),Y=n(10874),I=n(83914),U=n(35223);const x={chevron:"U_GAM",left:"t_wDz",right:"KgpGw",viewModeContainer:"csNfk"};var P="specialEventCalendar.calendarNav";function j(e){return a.createElement("div",{className:"".concat(x.viewModeContainer," d-none d-lg-block")},a.createElement(Y.h,{svgName:U.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:T.py.AppLink,actionType:T.Vw.Click,descriptor:T.Jf.Calendar,location:T.LZ.CalendarNav}}),a.createElement(Y.h,{svgName:U.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:T.py.AppLink,actionType:T.Vw.Click,descriptor:T.Jf.List,location:T.LZ.CalendarNav}}))}function _(e){var t="previous"===e.action?U.vn.ChevronLeft:U.vn.ChevronRight,n="previous"===e.action?x.left:x.right;return a.createElement(g.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,className:"".concat(x.chevron," ").concat(n," border border-dark rounded-circle bg-white d-flex align-items-center justify-content-center"),onClick:function(){i.Q.C$.trigger(e.appLink),e.onClick()}},a.createElement(I.x,{svgName:t,size:I.S.Medium,className:"svg-container d-inline-block ".concat(x.svg)}))}var R=new Date;function H(e){var t=e.appLinks,n=(0,f.k)();function i(n){var a,r,i=l.O.format(n,"MMMM").toLocaleLowerCase(),o=t.month(i),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),o.params=c,o}var o=(0,M.Vw)(e.monthDate),c=o.showPrev,s=o.showNext,u={actionType:T.Vw.Click,entity:T.py.SpecialEvent,location:T.LZ.CalendarNav};function d(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(j,{viewMode:e.viewMode,setViewMode:e.setViewMode}),a.createElement("div",{className:"d-flex gap-3"},c&&a.createElement(_,{appLink:i(l.O.startOf(l.O.subtract(e.monthDate,1,"month"),"month")),action:"previous",onClick:function(){var t=l.O.subtract(e.monthDate,1,"month");e.setViewingMonthDate(t)},analyticsOptions:u,analyticsData:{action:"previous",date:d(l.O.startOf(l.O.add(e.monthDate,1,"month"),"month"))}}),a.createElement(g.F,{appLink:i(),className:"".concat(x.todayWrapper," btn btn-outline-dark fw-semibold"),onClick:function(){l.O.format(R,"M YY")!==l.O.format(e.monthDate,"M YY")&&e.setViewingMonthDate()},analyticsOptions:u,analyticsData:{action:"today",date:d(l.O.startOf(R,"month"))}},r.T.getPhrase(P,"today")),s&&a.createElement(_,{appLink:i(l.O.startOf(l.O.add(e.monthDate,1,"month"),"month")),analyticsOptions:u,analyticsData:{action:"next",date:d(l.O.startOf(l.O.add(e.monthDate,1,"month"),"month"))},action:"next",onClick:function(){var t=l.O.add(e.monthDate,1,"month");e.setViewingMonthDate(t)}})))}var B="specialEvent.eventsErrorState",V=r.T.encloseNamespace(B);function W(e){return a.createElement(h.D.Provider,{value:B},a.createElement(y.u,null,a.createElement(y.u.Image,{src:e.imageUrl}),a.createElement(y.u.Heading,null,a.createElement(h.x,{phrase:"heading"})),a.createElement(y.u.Info,null,a.createElement(h.x,{namespace:B,phrase:"info"}),a.createElement("br",null),a.createElement(g.F,{appLink:e.appLink},a.createElement("span",{className:"text-info"},V("link"))))))}var F=n(75896),Z=n(7870);function G(e){return function(e){if(Array.isArray(e))return Q(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||$(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function z(e,t){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,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=i.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&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw r}}return l}}(e,t)||$(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 $(e,t){if(e){if("string"==typeof e)return Q(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Q(e,t):void 0}}function Q(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 J(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 K=new Date,q=n(3278),X=n(55171),ee=n(54610),te=n(31949),ne=n(79612),ae=n(40424),re=n(67453),ie=n(76753),oe=n(86698),le=n(85369),ce=n(30241),se=n(33192),ue=n(93824),de=n(99742),me=n(14070),pe=n(97291),ve=n(34181);function fe(e){switch(null==e?void 0:e.toLocaleLowerCase()){case ue.C.AU:return{emptyState:de.W.EmptyStates.CALENDAR.NO_EVENTS_AU,errorState:de.W.EmptyStates.CALENDAR.INVALID_DATE};case ue.C.US:return{emptyState:de.W.EmptyStates.CALENDAR.NO_EVENTS_US,errorState:de.W.EmptyStates.CALENDAR.INVALID_DATE};case ue.C.UK:return{emptyState:de.W.EmptyStates.CALENDAR.NO_EVENTS_UK,errorState:de.W.EmptyStates.CALENDAR.INVALID_DATE};default:return{emptyState:de.W.EmptyStates.CALENDAR.NO_EVENTS,errorState:de.W.EmptyStates.CALENDAR.INVALID_DATE}}}function ge(){return{calendar:function(){return{application:pe.O.CALENDAR,action:me.e.Calendar.CALENDAR}},month:function(e){return{application:pe.O.CALENDAR,action:me.e.Calendar.CALENDAR_MONTH,args:[e]}},event:function(e,t){return ve.L.getAppLink(Object.assign(Object.assign({},e),{name:t||e.name}))},eventList:function(e,t,n){return{application:pe.O.CALENDAR,action:me.e.Calendar.SPECIAL_EVENT_LIST,params:Object.assign(Object.assign({},e),{date:t.toString(),presentationId:n})}},emptyStateRedirect:function(){return{application:pe.O.CONTENT_UPDATES,action:me.e.ContentUpdates.CONTENT_UPDATES}}}}var ye=n(27051),he=r.T.encloseNamespace("specialEventCalendar.calendarView");function Ee(e){var t=(0,f.k)(),n=(0,oe.y)({redirectOnError:!0}).activePresentation,r=(0,le.N)(),c=r.showCalendar,s=r.isLoading,u=o.a.useBasicFetch(te.N.currentUser()),d=(0,M.lN)(e.month);a.useEffect((function(){s||c||i.Q.C$.trigger((0,ye.u)().forYou,{replace:!0})}),[c,s]);var m=(0,M.MP)(e.month),p=function(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:K,r=arguments.length>1?arguments[1]:void 0,o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],c=(0,M.v0)(o),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,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=i.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&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return J(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)?J(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],p=l.O.format(n,"YYYY-MM");a.useEffect((function(){var e=s.current[p];if(e)m(e.weeksTable);else{var t=(0,M.Ve)(n,o),a=t.weeksTable,r=t.datePositionMap;s.current[p]={weeksTable:a,datePositionMap:r},m(a)}}),[l.O.format(n,"YYYY-MM")]);var v=F.m.first(F.m.first(d)),f=F.m.last(F.m.last(d));return{weekDaysHeader:c,weekDays:d,monthDate:n,setMonthDate:function(e){if(e){if(p!==l.O.format(e,"YYYY-MM")){var t=l.O.format(e,"MMMM").toLocaleLowerCase(),a=(new Date).getFullYear(),o=n.getFullYear(),c=r.month(t);a!==o&&(c.params={year:o}),i.Q.C$.trigger(c)}}else i.Q.C$.trigger(r.calendar())},startDate:v,endDate:f}}(m,ge()),v=p.monthDate,g=p.setMonthDate,y=p.weekDays,h=p.weekDaysHeader,E=p.startDate,b=p.endDate,S=function(e,t){var n=t,a=z((0,M.jm)(e),2),r=a[0],i=a[1],c=l.O.add(e,1,"month"),s=z((0,M.jm)(c),2),u=s[0],d=s[1],m=l.O.subtract(e,1,"month"),p=z((0,M.jm)(m),2),v=p[0],f=p[1],g=o.a.useBasicFetch(r&&i&&n&&Z.N.calendarEvents(l.O.format(r,"YYYY-MM-DD"),l.O.format(i,"YYYY-MM-DD"),n)),y=o.a.useBasicFetch(u&&d&&n&&Z.N.calendarEvents(l.O.format(u,"YYYY-MM-DD"),l.O.format(d,"YYYY-MM-DD"),n)),h=o.a.useBasicFetch(v&&f&&n&&Z.N.calendarEvents(l.O.format(v,"YYYY-MM-DD"),l.O.format(f,"YYYY-MM-DD"),n));return{events:F.m.uniq([].concat(G(h.data||[]),G(g.data||[]),G(y.data||[])),(function(e){return e.specialEventPolicyId})),loaded:g.hasCompleted}}(m,n.id),k=S.events,L=S.loaded,C=l.O.format(v,"MMMM YYYY");if((0,ne.M)(ie.CG.getDefaultMetadata({title:C,phraseContext:{phraseHandler:he,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"},canonicalLink:se.f.getCanonicalLink({allowedParams:["year"]}),allowIndexing:se.f.allowIndexing(),hrefLang:se.f.getStaticRouteHrefLang(null==n?void 0:n.learningLevel,ge().calendar,ce.Bg)})),null!==e.month&&!d)return a.createElement(W,{imageUrl:fe().errorState,appLink:ge().calendar()});function A(e){return X.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(q.z,{type:ae.Yv.Staff,appLinks:(0,ye.u)(),showCalendar:c,active:"calendar"}),a.createElement(H,{monthDate:v,setViewingMonthDate:g,appLinks:ge()}),a.createElement(w,{weekDays:y,weekDaysHeader:h,events:k,monthQuery:{from:null==E?void 0:E.toString(),to:null==b?void 0:b.toString()},viewingMonth:m,eventsLoaded:L,presentationId:n.id,appLinks:ge(),imageUrls:fe(u.data.countryCode),getIconUrl:function(e){return function(e,t){var n;return t?re.j.createUrl(t.iconUrl,{size:ee.h2.Medium}):re.j.createUrl(null===(n=e.icon)||void 0===n?void 0:n.url,{size:ee.h2.Small})}(e,A(e))},getCoverUrl:function(e){var t;return re.j.createUrl(null===(t=e.cover)||void 0===t?void 0:t.url,{size:ee.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?he("mobileButtonLabel"):he("buttonLabel")},getHardCodedEvent:A})):a.createElement(a.Fragment,null)}},27051:(e,t,n)=>{n.d(t,{E:()=>v,u:()=>f});var a=n(75896),r=n(28400),i=n(17475),o=n(183),l=n(14070),c=n(97291),s=n(34181),u=n(22490),d=n(67963),m=n(82431),p="classification-latest-releases";function v(e){return{classification:function(t){return s.L.getAppLink(t,e||{})},videoType:function(e,t){return u.W.getAppLink(e,Object.assign(Object.assign({},t),{context:o.Q.Widget}))},series:m.j.getSeriesAppLink,subText:function(e){return m.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===p?{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:i.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,d.u)()[e]},onboardingAppLinks:function(){return(0,d.u)()},classroomGuide:u.W.getClassroomGuideAppLink,interactiveGuidance:u.W.getInteractiveGuidanceAppLink,resourceGuidance:u.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),i=n(20354),o=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 p(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,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=i.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&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw r}}return l}}(e,t)||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}}(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 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,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=f(f(f(f(f(f({},o.t.AU,[l.p.Level_1]),o.t.US,[l.p.Level_1]),o.t.UK,[l.p.Level_1]),o.t.SCOT,[l.p.Level_1]),o.t.NZ,[]),o.t.GLOBAL,[]);function y(){var e,t=(0,s.r)(null),n=t.hasSpecialEventCalendar,o=t.isLoadingSettings,l=(0,d.y)({redirectOnError:!0}).activePresentation,m=i.a.useBasicFetch(c.N.currentUser()),v=g[null===(e=m.data)||void 0===e?void 0:e.contentRegion],f=u.i.getMappedPresentationLevel(null==l?void 0:l.learningLevel),y=!(null==v?void 0:v.find((function(e){return e.toString()===(null==f?void 0:f.toString())}))),h=!o&&!n,E=p(a.useState(!h&&!y),2),b=E[0],S=E[1],k=p(a.useState(o||!(null==l?void 0:l.id)),2),L=k[0],C=k[1];return a.useEffect((function(){h||y?S(!1):L||S(!0),C(o||!(null==l?void 0:l.id))}),[n,null==l?void 0:l.id,L]),r.h.isDevelopment?{showCalendar:!0,isLoading:!1}:{showCalendar:b,isLoading:L}}},87432:(e,t,n)=>{n.d(t,{Z:()=>a});const a={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}}}]);
|
|
2
|
+
//# sourceMappingURL=9173-f9708ec0de-lite.chunk.js.map
|