@clickview/lite 0.52.3-dev.0 → 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/css/{1760-lite-d230b51c8b.chunk.css → 1019-lite-402889ede4.chunk.css} +2 -1
- package/dist/css/{6094-lite-d230b51c8b.chunk.css → 2548-lite-402889ede4.chunk.css} +2 -1
- package/dist/css/{6546-lite-991b6e8255.chunk.css → 6596-lite-e22262b911.chunk.css} +2 -1
- package/dist/css/{1867-lite-991b6e8255.chunk.css → 9010-lite-e22262b911.chunk.css} +2 -1
- package/dist/languages/en.json +1 -1
- package/dist/scripts/{1760-33f1791560-lite.chunk.js → 1019-8fc84c7c2e-lite.chunk.js} +2 -2
- package/dist/scripts/{1760-33f1791560-lite.chunk.js.map → 1019-8fc84c7c2e-lite.chunk.js.map} +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-082bbab71a-lite.chunk.js → 1379-ca519ec56b-lite.chunk.js} +3 -3
- package/dist/scripts/{1379-082bbab71a-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-7ab5fb3f3b-lite.chunk.js → 624-09b51a9d32-lite.chunk.js} +3 -3
- package/dist/scripts/{624-7ab5fb3f3b-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-90b87097fa-lite.chunk.js → 9395-e1a02b01ce-lite.chunk.js} +3 -3
- package/dist/scripts/{9395-90b87097fa-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-cbc7f0571e-lite.chunk.js → 953-225db845ab-lite.chunk.js} +3 -3
- package/dist/scripts/{953-cbc7f0571e-lite.chunk.js.map → 953-225db845ab-lite.chunk.js.map} +1 -1
- package/dist/scripts/9620-95e6cc7b2b-lite.chunk.js +3 -0
- package/dist/scripts/9620-95e6cc7b2b-lite.chunk.js.map +1 -0
- 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/1125-aac132b88f-lite.chunk.js.map +0 -1
- package/dist/scripts/1169-534a29a204-lite.chunk.js +0 -2
- package/dist/scripts/1169-534a29a204-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/1867-260ef9f8c2-lite.chunk.js +0 -2
- package/dist/scripts/1867-260ef9f8c2-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/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/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/6094-24c430efb3-lite.chunk.js +0 -2
- package/dist/scripts/6094-24c430efb3-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/6546-faa6f93a0e-lite.chunk.js +0 -2
- package/dist/scripts/6546-faa6f93a0e-lite.chunk.js.map +0 -1
- package/dist/scripts/6587-ba8e36be0b-lite.chunk.js +0 -2
- package/dist/scripts/6587-ba8e36be0b-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/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/9620-f1d717b02b-lite.chunk.js +0 -3
- package/dist/scripts/9620-f1d717b02b-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-724fc2e388.min.js +0 -3
- package/dist/scripts/bundle-724fc2e388.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/{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/{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-082bbab71a-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-7ab5fb3f3b-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-90b87097fa-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-cbc7f0571e-lite.chunk.js.LICENSE.txt → 953-225db845ab-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9620-f1d717b02b-lite.chunk.js.LICENSE.txt → 9620-95e6cc7b2b-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-724fc2e388.min.js.LICENSE.txt → bundle-9f8729bedb.min.js.LICENSE.txt} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/5595-c4397e12a8-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/common/src/react/utils/PortalHelper.ts","file:///app/packages/libs/shared/src/apps/calendar/components/coming-soon-tag/coming-soon-tag.scss","file:///app/packages/libs/shared/src/apps/calendar/components/coming-soon-tag/ComingSoonTag.tsx","file:///app/packages/libs/shared/src/apps/calendar/components/generic-calendar-date/generic-calendar-date.scss","file:///app/packages/libs/shared/src/apps/calendar/components/generic-calendar-date/GenericCalendarDate.tsx","file:///app/packages/libs/shared/src/components/actions/Actions.tsx","file:///app/packages/libs/shared/src/components/actions/actions.scss","file:///app/packages/libs/shared/src/components/actions/ActionsDropdown.tsx","file:///app/packages/libs/shared/src/components/back-button/BackButton.tsx","file:///app/packages/libs/shared/src/components/banner-header/banner-header.scss","file:///app/packages/libs/shared/src/components/banner-header/BannerHeader.tsx","file:///app/packages/libs/shared/src/components/caret/Caret.tsx","file:///app/packages/libs/shared/src/components/caret/caret.scss","file:///app/packages/libs/shared/src/components/drag-drop-move/DragDropMoveWrapper.tsx","file:///app/packages/libs/shared/src/components/library-folder/library-folder.scss","file:///app/packages/libs/shared/src/components/library-folder/LibraryFolder.tsx","file:///app/packages/libs/shared/src/components/folder-list/FolderList.tsx","file:///app/packages/libs/shared/src/components/folder-list/partial-loading/partial-folder-list.scss","file:///app/packages/libs/shared/src/components/folder-list/partial-loading/PartialFolderList.tsx","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/useBuildBreadcrumbs.ts","file:///app/packages/projects/lite/src/apps/libraries/hooks/UseFetchAllChildFolders.ts","file:///app/packages/projects/lite/src/apps/libraries/hooks/UseHandleLibraryType.ts","file:///app/packages/projects/lite/src/apps/libraries/views/library-folder/LibraryFolderViewUtils.ts","file:///app/packages/projects/lite/src/apps/libraries/views/library/LibraryView.tsx"],"sourcesContent":["import React from 'react';\nimport { createPortal } from 'react-dom';\n\nexport const PortalHelper = {\n renderInPortalIfExists(component: React.ReactElement, portalContainer: Element | null): React.ReactElement {\n if (portalContainer)\n return createPortal(component, portalContainer);\n\n return component;\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"tag\":\"XRj8d\",\"tooltip\":\"X6mLk\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './coming-soon-tag.scss';\n\nconst namespace = 'specialEventCalendar.comingSoonTag';\n\ninterface ComingSoonProps {\n className?: string;\n onlyIcon?: boolean;\n}\n\nexport function ComingSoonTag(props: ComingSoonProps): JSX.Element {\n return (\n <Tooltip title={LanguageService.getPhrase(namespace, 'tooltip')} spanHackClassName={`d-block ${styles.tooltip}`} spanHack>\n <div className={`d-flex text-dark align-items-center ${styles.tag} ${props.className}`}>\n <SvgContainer svgName={cvSvgLibrary.Timer} />\n {!props.onlyIcon && LanguageService.getPhrase(namespace, 'comingSoon')}\n </div>\n </Tooltip>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"dateItem\":\"I3SBm\",\"label\":\"PRORs\",\"body\":\"RfiM_\",\"bodyDay\":\"ZOVny\",\"bodyRange\":\"vYhXN\",\"bodyMonth\":\"mYslO\",\"month\":\"EPkkQ\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { CalendarTheme } from 'libs/shared/apps/calendar/interfaces/CalendarTheme';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\n\nimport styles from './generic-calendar-date.scss';\n\nexport interface GenericCalendarDateProps {\n label?: string;\n body: {\n type: 'month' | 'range' | 'day';\n text: string;\n };\n month?: string;\n getAppLink?: () => Core.AppLink;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n className?: string;\n theme?: CalendarTheme;\n}\n\nexport function GenericCalendarDate(props: GenericCalendarDateProps): JSX.Element {\n function getBodyClass(): string {\n switch (props.body.type) {\n case 'range':\n return styles.bodyRange;\n case 'day':\n return styles.bodyDay;\n case 'month':\n return styles.bodyMonth;\n }\n }\n\n return (\n <AppLink\n appLink={props.getAppLink?.()}\n className={`text-decoration-none text-center bg-white text-dark border border-3 ${props.theme?.border} rounded-3 d-block fw-semibold ${props.className}`}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n >\n <div className={`position-relative ${styles.dateItem}`}>\n <div className={`${props.theme?.background} py-1 ${styles.label} d-flex align-items-center justify-content-center`}>\n {props.label ? props.label : <> </>}\n </div>\n <div className={`${getBodyClass()} ${styles.body} my-2`}>\n {props.body.text}\n </div>\n <div className={`mb-0 ${styles.month}`}>\n {props.month}\n </div>\n </div>\n </AppLink>\n );\n}","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { BaseObject } from 'libs/shared/interfaces';\n\nimport { ActionButton } from './ActionButton';\nimport { ActionsDropdown } from './ActionsDropdown';\n\nexport interface ActionOptions {\n order?: number;\n label?: string | (() => JSX.Element);\n appLink?: Core.AppLink;\n href?: string;\n onClick?: () => void;\n svgName?: string;\n className?: string;\n button?: boolean; // If true, a button will be rendered. Otherwise the action will be rendered in the dropdown.\n tooltip?: string;\n showSpinner?: boolean;\n showBorder?: boolean; // only works for button without text label\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n disabled?: boolean;\n openInNewTab?: boolean; // Only used if appLink or href is provided\n group?: string;\n lazyPlaceholder?: boolean;\n}\n\nexport type ActionGenerator = (obj: BaseObject) => ActionOptions[];\n\ninterface ActionsProps {\n actions: ActionOptions[];\n className?: string;\n actionsDropdownClassName?: string;\n dropdownToggleSvgSize?: SvgContainerSize;\n sortComponent?: JSX.Element;\n customSize?: boolean;\n fetchMore?: () => void;\n}\n\nexport function Actions(props: ActionsProps): JSX.Element {\n const orderedActions = React.useMemo(() => props.actions.sort((a, b) => a.order - b.order), [props.actions]);\n\n const buttonActions: ActionOptions[] = [];\n const moreActions: ActionOptions[] = [];\n\n orderedActions.forEach(a => {\n if (a.button)\n buttonActions.push(a);\n else\n moreActions.push(a);\n });\n\n let className = 'd-flex';\n\n if (props.className)\n className += ` ${props.className}`;\n\n if (!buttonActions.length && !moreActions.length)\n return <></>;\n\n return (\n <div className={className}>\n {buttonActions.length ? buttonActions.map((a, idx) => (\n <React.Fragment key={idx}>\n {(() => {\n if (a.label) {\n const label = FunctionHelper.isFunction(a.label)\n ? a.label\n : () => <>{a.label}</>;\n\n return (\n <ActionButton\n appLink={a.appLink}\n href={a.href}\n onClick={a.onClick}\n svgName={a.svgName}\n svgSize={props.dropdownToggleSvgSize}\n className={a.className}\n tooltip={a.tooltip}\n showSpinner={a.showSpinner}\n analyticsData={a.analyticsData}\n analyticsOptions={a.analyticsOptions}\n openInNewTab={a.openInNewTab}\n disabled={a.disabled}\n >\n {label()}\n </ActionButton>\n );\n }\n\n const iconButton = (\n <IconButton\n appLink={a.appLink}\n href={a.href}\n onClick={a.onClick}\n svgName={a.svgName}\n className={a.className}\n analyticsData={a.analyticsData}\n analyticsOptions={a.analyticsOptions}\n openInNewTab={a.openInNewTab}\n disabled={a.disabled}\n showBorder={a.showBorder}\n customSize={props.customSize}\n />\n );\n\n return a.tooltip\n ? <Tooltip title={a.tooltip} spanHack>{iconButton}</Tooltip>\n : iconButton;\n })()}\n </React.Fragment>\n )) : <></>}\n {props.sortComponent && props.sortComponent}\n {moreActions.length ? (\n <ActionsDropdown\n actions={moreActions}\n dropdownToggleClassName={props.actionsDropdownClassName}\n dropdownToggleSvgSize={props.dropdownToggleSvgSize}\n fetchMore={props.fetchMore}\n />\n ) : <></>}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"dropdownToggle\":\"UCAnJ\"};","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { RandomHelper } from 'libs/common/react/utils/RandomHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ActionOptions } from './Actions';\n\nimport styles from './actions.scss';\n\nfunction LazyDropdownItems(): JSX.Element {\n return (\n <>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '8rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '12rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '11rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '9rem' }}></div>\n </div>\n </>\n );\n}\n\nfunction getDropdownItemClassName(actionClassName?: string): string {\n let className = 'dropdown-item';\n\n if (actionClassName)\n className += ` ${actionClassName}`;\n\n return className;\n}\n\nexport type DropdownActionOptions = Omit<ActionOptions, 'button'>;\n\ninterface ActionsDropdownItemProps {\n action: DropdownActionOptions;\n}\n\nfunction ActionsDropdownItem(props: ActionsDropdownItemProps): React.ReactElement {\n const label = FunctionHelper.isFunction(props.action.label)\n ? props.action.label\n : () => <>{props.action.label}</>;\n\n if (props.action.appLink)\n return (\n <AppLink\n appLink={props.action.appLink}\n onClick={props.action.onClick}\n className={getDropdownItemClassName(props.action.className)}\n analyticsData={props.action.analyticsData}\n analyticsOptions={props.action.analyticsOptions}\n openInNewTab={props.action.openInNewTab}\n disabled={props.action.disabled}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2 align-middle' />}\n <span className='align-middle'>{label()}</span>\n </AppLink>\n );\n\n function onClick(e: React.MouseEvent | React.KeyboardEvent): void {\n e.preventDefault();\n\n if (props.action.analyticsData && props.action.analyticsOptions)\n AnalyticsHelper.logUserAction(props.action.analyticsData, props.action.analyticsOptions);\n\n if (FunctionHelper.isFunction(props.action.onClick))\n props.action.onClick();\n\n if (props.action.href)\n Core.LocationUtils.PageLoad(props.action.href, props.action.openInNewTab);\n }\n\n if (props.action.href) {\n return (\n <a\n className={getDropdownItemClassName(props.action.className)}\n onClick={onClick}\n href={props.action.href}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2 align-middle' />}\n <span className='align-middle'>{label()}</span>\n </a>\n );\n }\n\n return (\n <span\n className={`cursor-pointer ${getDropdownItemClassName(props.action.className)}`}\n onClick={onClick}\n role='button'\n tabIndex={0}\n onKeyDown={(e: React.KeyboardEvent) => e.key === 'Enter' && onClick(e)}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2' />}\n {label()}\n </span>\n );\n}\n\ninterface ActionsDropdownProps {\n actions: DropdownActionOptions[];\n className?: string;\n dropdownToggleClassName?: string;\n dropdownToggleSvgSize?: SvgContainerSize;\n fetchMore?: () => void;\n}\n\nActionsDropdown.defaultProps = {\n dropdownToggleClassName: 'btn btn-light',\n dropdownToggleSvgSize: SvgContainerSize.Small\n};\n\nexport function ActionsDropdown(props: ActionsDropdownProps): React.ReactElement {\n if (!props.actions || !props.actions.length)\n return <></>;\n\n const isLazy = props.actions.some(a => a.lazyPlaceholder);\n\n let className = 'dropdown';\n\n if (props.className)\n className += ` ${props.className}`;\n\n // Generate unique id to avoid collisions.\n const dropdownToggleId = `actions-dropdown-${RandomHelper.getRandomInt()}`;\n\n let dropdownToggleClassName = `dropdown-toggle px-0 ${styles.dropdownToggle}`;\n\n if (props.dropdownToggleClassName)\n dropdownToggleClassName += ` ${props.dropdownToggleClassName}`;\n\n let currentGroup: string;\n\n return (\n <div className={className}>\n <button\n className={dropdownToggleClassName}\n type='button'\n id={dropdownToggleId}\n data-bs-toggle='dropdown'\n data-toggle='dropdown'\n aria-haspopup='true'\n aria-expanded='false'\n aria-label={'More actions dropdown'}\n onClick={isLazy ? props.fetchMore : null}\n >\n <SvgContainer svgName={cvSvgLibrary.More} size={props.dropdownToggleSvgSize} />\n </button>\n <ul className='dropdown-menu dropdown-menu-end dropdown-menu-right font-size-normal' aria-labelledby={dropdownToggleId}>\n {isLazy ?\n <LazyDropdownItems /> :\n props.actions.map((a, idx) => {\n const showDivider = currentGroup !== undefined && currentGroup !== a.group;\n currentGroup = a.group;\n \n if (a.tooltip) {\n return (\n <li key={idx}>\n {showDivider && <hr className='dropdown-divider' role='separator'></hr>}\n <Tooltip title={a.tooltip} spanHack>\n <ActionsDropdownItem action={a} />\n </Tooltip>\n \n </li>\n );\n }\n \n return (\n <li key={idx}>\n {showDivider && <hr className='dropdown-divider' role='separator'></hr>}\n <ActionsDropdownItem action={a} />\n </li>\n );\n })\n }\n </ul>\n </div>\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 { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'shared.backButton';\n\ninterface BackButtonProps {\n appLink: Core.AppLink;\n backToName?: string;\n color?: 'black' | 'white';\n extraClasses?: string;\n /**\n * Whether or not the button text has a text shadow. Defaults to true\n */\n textShadow?: boolean;\n}\n\nBackButton.defaultProps = {\n color: 'black',\n extraClasses: ''\n};\n\nexport function BackButton(props: BackButtonProps): React.ReactElement {\n const { backToName, appLink, color, extraClasses, textShadow } = {\n textShadow: true,\n ...props\n };\n\n const backPhrase = backToName\n ? LanguageService.getPhrase(namespace, 'backTo', { backToName })\n : LanguageService.getPhrase(namespace, 'back');\n\n const colorClass = color === 'black' ? '' : 'text-white';\n const textShadowClass = textShadow ? 'text-shadow' : '';\n\n return (\n <AppLink\n appLink={appLink}\n className={`d-inline-flex align-items-center h5 mb-0 ${extraClasses} ${colorClass} ${textShadowClass}`}\n >\n <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Medium} />\n <span className='ms-1'>{backPhrase}</span>\n </AppLink>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"bannerContent\":\"sSCTB\",\"actionsContainer\":\"Z5WI2\",\"bannerContentWithLogo\":\"rgs7Q\",\"container\":\"M51HJ\",\"logoContainer\":\"vkeJk\",\"logoContainerLeft\":\"M3U9B\",\"logoHeading\":\"EtRwC\",\"specialEventContainer\":\"rOxDc\",\"headingLarge\":\"_8pnV\",\"heading\":\"JXVBH\"};","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\nimport { PortalHelper } from 'libs/common/react/utils/PortalHelper';\n\nimport { ComingSoonTag } from 'libs/shared/apps/calendar/components/coming-soon-tag/ComingSoonTag';\nimport { GenericCalendarDate } from 'libs/shared/apps/calendar/components/generic-calendar-date/GenericCalendarDate';\nimport { CalendarTheme } from 'libs/shared/apps/calendar/interfaces/CalendarTheme';\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { BackButton } from 'libs/shared/components/back-button/BackButton';\nimport { LazyImage } from 'libs/shared/components/lazy-image/LazyImage';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ImageMinDimensions } from 'libs/shared/constants/ImageSizes';\nimport { BannerPortalContext } from 'libs/shared/context/BannerPortalContext';\nimport { ImageSize, ImageType, ResizeType } from 'libs/shared/enums/Images';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Banner, CalendarEvent, Logo } from 'libs/shared/interfaces';\nimport { ImageHelper, ImageOptions } from 'libs/shared/utils/ImageHelper';\n\nimport styles from './banner-header.scss';\n\nconst RATIO = `${ImageMinDimensions[ImageType.Banners].width}:${ImageMinDimensions[ImageType.Banners].height}`;\nconst DEFAULT_WIDTH = 1200; // This is ImageSize.Large for a Banner.\nconst LARGE_SCREEN_WIDTH = 1920;\n\nfunction useGetImageWidth(): number {\n const breakpoints = useBreakpoints();\n\n if (breakpoints.xxl)\n return LARGE_SCREEN_WIDTH;\n\n return DEFAULT_WIDTH;\n}\n\nfunction getSizeClass(heading: string): string {\n if (heading.length < 160)\n return 'h1';\n\n return styles.headingLarge;\n}\n\ninterface BannerHeaderProps {\n heading: string;\n banner?: Banner;\n bannerClassName?: string;\n imageCdnUrl?: string;\n logo?: Logo;\n actions?: ActionOptions[];\n specialEvent?: CalendarEvent;\n backButtonAppLink?: Core.AppLink;\n backButtonText?: string;\n backButtonClasses?: string;\n sortComponent?: JSX.Element;\n blockColourClass?: string;\n actionsDropdownClassName?: string;\n detailsComponent?: () => React.ReactElement;\n imageOptions?: ImageOptions;\n showComingSoon?: boolean;\n alignLogoLeft?: boolean;\n calendarTheme?: CalendarTheme;\n}\n\nconst namespace = 'shared.bannerHeader';\n\nexport const BannerHeader = React.memo(function(props: React.PropsWithChildren<BannerHeaderProps>): React.ReactElement {\n const { heading, banner, imageCdnUrl, actions, sortComponent, blockColourClass, specialEvent } = props;\n\n const portalContainerContext = React.useContext(BannerPortalContext);\n\n const imageWidth = useGetImageWidth();\n\n const specialEventIsToday = React.useMemo(() => {\n if (!specialEvent || props.showComingSoon)\n return false;\n\n const today = DateHelper.format(new Date(), 'YYYY-MM-DD');\n\n if (!specialEvent.endDate)\n return specialEvent.startDate === today;\n\n return specialEvent.startDate <= today && specialEvent.endDate >= today;\n }, [specialEvent]);\n\n const imageOptions = props.imageOptions || {\n width: imageWidth,\n ratio: RATIO,\n resizeType: ResizeType.Cover\n };\n\n const url = !!banner && !!imageCdnUrl && ImageHelper.createBannerUrl(banner, {\n fallbackBaseUrl: imageCdnUrl,\n fallbackCategoryName: heading,\n type: ImageType.Banners\n }, imageOptions);\n\n const containerProps: React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement> = {\n className: `banner banner-header ${props.bannerClassName}`,\n style: url ? { backgroundImage: `url('${url}')` } : {}\n };\n\n if (!banner && blockColourClass) {\n delete containerProps.style;\n containerProps.className += ` ${blockColourClass}`;\n }\n\n const DetailsComponent = props.detailsComponent;\n\n return PortalHelper.renderInPortalIfExists(\n // \"banner\" is used in playlists in Online. banner-header is used by all other projects\n <header {...containerProps}>\n <div className={`container ${styles.container} position-relative inner-banner`}>\n {props.backButtonAppLink && (\n <div className='pt-3'>\n <BackButton\n appLink={props.backButtonAppLink}\n backToName={props.backButtonText}\n extraClasses={props.backButtonClasses}\n color='white'\n />\n </div>\n )}\n \n <div className={`${props.alignLogoLeft ? 'position-absolute top-50 start-0 translate-middle-y w-100 ps-4' : `${styles.bannerContent} px-2 ${props.logo?.url ? styles.bannerContentWithLogo : ''}`}`}>\n {!!specialEvent && (\n <div className={`position-relative ${styles.specialEventContainer}`}>\n <GenericCalendarDate\n body={{\n type: specialEvent.endDate ? 'range' : 'day',\n text: specialEvent.endDate\n ? `${DateHelper.format(specialEvent.startDate, 'DD')}-${DateHelper.format(specialEvent.endDate, 'DD')}`\n : DateHelper.format(specialEvent.startDate, 'DD')\n }}\n month={DateHelper.format(specialEvent.startDate, 'MMMM')}\n theme={props.calendarTheme}\n />\n </div>\n )}\n <div>\n {specialEventIsToday && (\n <div className='rounded-pill py-1 px-2 my-1 me-1 fw-semibold bg-light-blue lh-1 d-inline-block'>\n <Text namespace={namespace} phrase='onToday' />\n </div>\n )}\n {props.showComingSoon && (\n <ComingSoonTag className='pe-2 fw-semibold mb-1 rounded-pill justify-content-start text-nowrap' />\n )}\n <div className='d-flex align-items-center'>\n {props.alignLogoLeft &&\n <div className={`${styles.logoContainerLeft} d-none d-md-block partial-loading-background rounded-circle overflow-hidden me-3`}>\n {props.logo?.url &&\n <LazyImage src={ImageHelper.createUrl(props.logo?.url, { size: ImageSize.Medium })} />}\n </div>\n }\n <h1 className={`text-white text-shadow pe-3 position-static ${styles.heading} ${getSizeClass(heading)} ${props.alignLogoLeft ? 'w-50' : ''}`}>\n {heading}\n {DetailsComponent && <DetailsComponent />}\n </h1>\n </div>\n </div>\n {!!actions && (\n <div className={styles.actionsContainer}>\n <Actions\n actions={actions}\n sortComponent={sortComponent}\n actionsDropdownClassName={props.actionsDropdownClassName}\n />\n </div>\n )}\n </div>\n {!props.alignLogoLeft && !!props.logo?.url &&\n <div className={styles.logoContainer}>\n <img\n src={ImageHelper.createUrl(props.logo.url, { size: ImageSize.Small })}\n className='rounded-circle'\n />\n </div>\n }\n </div>\n </header>,\n portalContainerContext?.container\n );\n}, (prevProps, nextProps): boolean => (\n prevProps.actions === nextProps.actions\n && prevProps.heading === nextProps.heading\n && prevProps.logo?.url === nextProps.logo?.url\n));\n\nexport function PartialBannerHeader(): JSX.Element {\n const portalContainerContext = React.useContext(BannerPortalContext);\n\n return PortalHelper.renderInPortalIfExists(\n <div className={`partial-banner partial-loading-background ${styles.banner}`} />,\n portalContainerContext?.container\n );\n}","import React from 'react';\n\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './caret.scss';\n\ntype CaretDirection = 'left' | 'right' | 'up' | 'down';\n\n\nconst getDirectionClass = (direction: CaretDirection) => {\n switch (direction) {\n case 'up':\n return styles.up;\n case 'down':\n return styles.down;\n case 'right':\n return styles.right;\n case 'left':\n return styles.left;\n }\n};\n\ninterface CaretProps {\n direction?: CaretDirection;\n className?: string;\n}\n\nCaret.defaultProps = {\n direction: 'right'\n};\n\nexport function Caret(props: CaretProps): JSX.Element {\n return (\n <SvgContainer\n svgName={cvSvgLibrary.Caret}\n className={`${getDirectionClass(props.direction)} svg-container d-inline-block ${props.className}`}\n />\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"up\":\"JAT0R\",\"down\":\"ld41u\",\"left\":\"jZTRR\",\"right\":\"HHkPe\"};","import React from 'react';\nimport { useDraggable, UseDraggableArguments, useDroppable, UseDroppableArguments } from '@dnd-kit/core';\n\ninterface DragDropMoveWrapperProps extends React.PropsWithChildren {\n droppable?: UseDroppableArguments,\n draggable?: UseDraggableArguments\n dragStyle?: string;\n dropStye?: string;\n setIsDragging?: React.Dispatch<React.SetStateAction<boolean>>\n isDragging?: boolean;\n}\n\nexport function DragDropMoveWrapper(props: DragDropMoveWrapperProps) {\n const {\n active: dragActive,\n isDragging,\n attributes,\n listeners,\n setNodeRef: draggableRef\n } = useDraggable({ ...props.draggable, disabled: !props.draggable, attributes: { role: 'drag', tabIndex: -1 } });\n const {\n isOver,\n over,\n active: dropActive,\n setNodeRef: droppableRef\n } = useDroppable({ ...props.droppable, disabled: !props.droppable });\n\n React.useEffect(() => {\n const data = props.draggable?.data;\n if (Array.isArray(data) && data?.includes(dragActive?.id.toString())) {\n props.setIsDragging?.(isDragging);\n } else {\n props.setIsDragging?.(false);\n }\n }, [isDragging]);\n\n function isSelected() {\n const data = props.draggable?.data;\n return Array.isArray(data) && data.includes(props.draggable.id.toString());\n }\n\n return (\n <div\n ref={draggableRef}\n {...listeners}\n {...attributes}\n className={`${props.draggable ? 'cursor-grab' : 'cursor-default'} ${(isDragging && dragActive) || (props.isDragging && isSelected()) ? props.dragStyle : null}`}\n >\n <div\n ref={droppableRef}\n className={(dropActive && isOver && dragActive?.id !== over?.id) ? props.dropStye : null}\n >\n {props.children}\n </div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"actions\":\"cN3nB\",\"actionsContainer\":\"xM37V\",\"dropStyle\":\"kvCLS\",\"dragStyle\":\"md9Na\"};","import React from 'react';\n\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Core } from 'libs/common/core';\n\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { DragDropMoveWrapper } from 'libs/shared/components/drag-drop-move/DragDropMoveWrapper';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { ImageSize, ImageType } from 'libs/shared/enums/Images';\nimport { Folder } from 'libs/shared/interfaces';\n\nimport styles from './library-folder.scss';\n\ninterface LibraryFolderProps {\n folder: Folder;\n drag?: boolean;\n drop?: boolean;\n getAppLink: (f: Folder) => Core.AppLink;\n getFolderActions?: (f: Folder) => ActionOptions[];\n}\n\nexport function LibraryFolder(props: LibraryFolderProps): JSX.Element {\n const thumbnailUrl = props.folder.thumbnail\n ? UrlHelper.urlBuilder(props.folder.thumbnail.url, { size: ImageSize.Small })\n : null;\n\n const actions = props.getFolderActions?.(props.folder);\n\n return (\n <DragDropMoveWrapper\n draggable={props.drag && { id: props.folder.id, data: props.folder }}\n droppable={props.drop && { id: props.folder.id, data: props.folder }}\n dropStye={styles.dropStyle}\n dragStyle={styles.dragStyle}\n >\n <div className='position-relative'>\n <AppLink\n className='rounded-3 d-block text-decoration-none'\n appLink={props.getAppLink(props.folder)}\n title={props.folder.name}\n >\n <BaseImage\n data={thumbnailUrl}\n imageType={ImageType.Thumbnails}\n imageClassName='rounded-top-lg'\n >\n <ImageFallback\n name={props.folder.name}\n type={ImageFallbackType.Folder}\n extraClasses='rounded-top-lg'\n />\n </BaseImage>\n <h3 className='bg-white border-start border-end border-bottom rounded-bottom-lg font-size-normal fw-semibold mb-0 p-2'>\n <span className='text-truncate d-block'>{props.folder.name}</span>\n </h3>\n </AppLink>\n {actions?.length &&\n <Actions\n actions={actions}\n className={styles.actionsContainer}\n actionsDropdownClassName={styles.actions}\n // Intentionally setting to the default SVG size\n dropdownToggleSvgSize={null}\n />\n }\n </div>\n </DragDropMoveWrapper>\n );\n}","import React from 'react';\n\nimport { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { Core } from 'libs/common/core';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { Caret } from 'libs/shared/components/caret/Caret';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { LibraryFolder } from 'libs/shared/components/library-folder/LibraryFolder';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Folder } from 'libs/shared/interfaces';\n\nconst namespace = 'libraries.folderList';\n\nconst EXPANDED_FOLDERS_KEY = 'has:expanded:library:folders';\n\nfunction useGetFolderLimit(): number {\n const breakpoints = useBreakpoints();\n\n if (breakpoints.xxl || breakpoints.xl || breakpoints.lg)\n return 6;\n\n if (breakpoints.md)\n return 4;\n\n return 3;\n}\n\ninterface FolderListProps {\n folders: Folder[];\n getAppLink: (folder: Folder) => Core.AppLink;\n expandFolders?: boolean;\n showHeading?: boolean;\n getFolderActions?: (f: Folder) => ActionOptions[];\n drag?: boolean;\n drop?: boolean;\n extraButtons?: JSX.Element;\n}\n\nFolderList.defaultProps = {\n showHeading: true\n};\n\nexport function FolderList(props: FolderListProps): JSX.Element {\n const [ _hasExpandedFolders, setHasExpandedFolders ] = React.useState(\n LocalStorageHelper.get(EXPANDED_FOLDERS_KEY) || false\n );\n\n const hasExpandedFolders = props.expandFolders || _hasExpandedFolders;\n\n const folderLimit = useGetFolderLimit();\n\n function onToggleFolderView(): void {\n setHasExpandedFolders(!hasExpandedFolders);\n LocalStorageHelper.set(EXPANDED_FOLDERS_KEY, !hasExpandedFolders);\n }\n\n const displayableFolders = hasExpandedFolders ? props.folders : props.folders.slice(0, folderLimit);\n\n const canToggleCollapsedView = props.folders.length > folderLimit && !props.expandFolders;\n\n return (\n <>\n <div className='d-flex justify-content-between align-items-center'>\n {props.showHeading &&\n <DivButton\n className={`d-inline-flex align-items-center mb-2 px-2 ${!canToggleCollapsedView ? 'cursor-default' : ''}`}\n onClick={onToggleFolderView}\n >\n {canToggleCollapsedView && (\n <Caret direction={hasExpandedFolders ? 'down' : 'right'} />\n )}\n <h2 className='h4 mb-0'>\n <Text namespace={namespace} phrase='folders' options={{ count: props.folders.length }} />\n </h2>\n </DivButton>\n }\n\n {!!(!hasExpandedFolders && canToggleCollapsedView) && (\n <div className='d-flex justify-content-end justify-self-end px-2'>\n <DivButton onClick={onToggleFolderView} className='text-dark hover-text-underline d-inline-block'>\n <Text namespace={namespace} phrase='seeAll' options={{ count: props.folders.length }} />\n </DivButton>\n </div>\n )}\n {!!(hasExpandedFolders && canToggleCollapsedView) && (\n <div className='d-flex justify-content-end justify-self-end px-2'>\n <DivButton onClick={onToggleFolderView} className='text-dark hover-text-underline d-inline-block'>\n <Text namespace={namespace} phrase='seeLess' />\n </DivButton>\n </div>\n )}\n\n {props.extraButtons ? props.extraButtons : <></>}\n </div>\n\n <div className='row mx-1'>\n {displayableFolders.map(f => (\n <div key={f.id} className='col-4 col-md-3 col-lg-2 px-1 pb-3'>\n <LibraryFolder\n folder={f}\n getAppLink={props.getAppLink}\n getFolderActions={props.getFolderActions}\n drag={props.drag}\n drop={props.drop}\n />\n </div>\n ))}\n </div>\n </>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"partialFolderHeading\":\"dhbsL\",\"partialFolderThumbnail\":\"CI9vk\",\"partialFolderName\":\"l0Nll\"};","import React from 'react';\n\nimport styles from './partial-folder-list.scss';\n\nconst PartialFolder = () => (\n <div className='col-4 col-md-3 col-lg-2 px-1 pb-3'>\n <div className={`${styles.partialFolderThumbnail} partial-loading-background rounded-top-lg`} />\n <div className={`${styles.partialFolderName} partial-loading-background border-bottom rounded-bottom-lg font-size-normal mb-0 p-2`}>\n \n </div>\n </div>\n);\n\nexport function PartialFolderList({ count = 3 }: { count?: number; }): JSX.Element {\n return (\n <>\n <div className={`${styles.partialFolderHeading} h4 mb-2 partial-loading-background`}> </div>\n <div className='row mx-n1'>\n {Array(count).fill(null).map((_, i) => <PartialFolder key={i} />)}\n </div>\n </>\n );\n}","import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}","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 { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { Folder, MasterNestedObject } from 'libs/shared/interfaces';\n\ninterface BuildOptions {\n folderId: string;\n firstItem?: Breadcrumb;\n lastItem?: Breadcrumb;\n getAppLink: (folder: MasterNestedObject<Folder>) => Core.AppLink;\n}\n\nexport function useBuildBreadcrumbs(options: BuildOptions): Breadcrumb[] {\n const { folderId, firstItem, lastItem, getAppLink } = options;\n\n const parentTree = Flight.useBasicFetch<MasterNestedObject<Folder>>(LibraryRequests.folderParentTree(folderId));\n\n if (!parentTree.data?.children?.length)\n return [];\n\n const searchStack: {\n node: MasterNestedObject<Folder>,\n path: MasterNestedObject<Folder>[]\n }[] = parentTree.data.children.map(c => ({ node: c, path: [c]}));\n\n let breadcrumbs: Breadcrumb[] = [];\n\n while (searchStack.length) {\n const { node, path } = searchStack.pop();\n \n if (node.data.id.toString() === folderId.toString())\n breadcrumbs = path.map(object => ({\n name: object.data.name,\n appLink: getAppLink(object)\n }));\n\n if (node.children)\n searchStack.push(...node.children.map(c => ({ node: c, path: [ ...path, c ]})));\n }\n\n if (firstItem) breadcrumbs.unshift(firstItem);\n if (lastItem) breadcrumbs.push(lastItem);\n\n breadcrumbs[breadcrumbs.length - 1].active = true;\n\n return breadcrumbs;\n}\n ","import { Flight } from 'libs/common/flight';\n\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { useFetchAll } from 'libs/shared/hooks/UseFetchAll';\nimport { SelectAllPagesResult, useSelectAllPages } from 'libs/shared/hooks/UseSelectAllPages';\nimport { Folder } from 'libs/shared/interfaces';\n\nexport function useFetchAllChildFolders(parentId?: string): SelectAllPagesResult<Folder> {\n const fetch = Flight.useGetFetch();\n\n function getRequest(cursor?: string): Flight.Request {\n return LibraryRequests.childFolders(parentId, cursor);\n }\n \n function fetchNext(cursor?: string): void {\n fetch(getRequest(cursor));\n }\n\n useFetchAll(!!parentId && getRequest, !!parentId && fetchNext);\n\n return (useSelectAllPages<Folder>(!!parentId && ((cursor?: string) => getRequest(cursor).key)));\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { MasterObjectTypes } from 'libs/shared/enums/MasterObjectTypes';\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { Library } from 'libs/shared/interfaces';\n\n/**\n * This hook prevents the libraries UI to be used for anything \n * other than customer libraries i.e Hosted, Exchange, Workspace etc\n */\nexport function useHandleLibraryType(request: Flight.Response<Library>): void {\n React.useEffect(() => {\n if (!request.hasCompleted || request.hasError)\n return;\n\n if (request.data.type !== MasterObjectTypes.CustomLibrary)\n Core.ErrorHelper.throw(new NotFoundError());\n }, [request.hasCompleted]);\n}","import { Core } from 'libs/common/core';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { useBuildBreadcrumbs } from 'libs/shared/hooks/useBuildBreadcrumbs';\nimport { Folder, Library } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nexport function getFolderAppLink(libraryId: string, folder: Folder, sort: string): Core.AppLink {\n if (!libraryId || !folder)\n return null;\n\n return {\n application: AppChannels.LIBRARIES,\n action: Actions.Libraries.FOLDER,\n args: [ libraryId, folder.id, TextHelper.slugify(folder.name) ],\n params: {\n sort\n }\n };\n}\n\nexport function getFolderBgColourClass(folder: Folder | Library): string {\n let charCode = 0;\n\n for (let i = 0; i < folder.name?.length ?? 0; i++) {\n charCode += folder.name.charCodeAt(i);\n }\n\n return BG_COLOUR_CLASS_NAMES[charCode % BG_COLOUR_CLASS_NAMES.length];\n}\n\nexport function useGetFolderBreadcrumbs(folderId: string, library: Library, sort: VideoSortType): Breadcrumb[] {\n return useBuildBreadcrumbs({\n folderId: library && folderId,\n getAppLink: object => getFolderAppLink(library.id, object.data, sort),\n firstItem: {\n name: library?.name,\n appLink: {\n application: AppChannels.LIBRARIES,\n action: Actions.Libraries.LIBRARY,\n args: [ library?.id, TextHelper.slugify(library?.name) ]\n }\n }\n });\n}","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { EntityType, LocationContext, SearchSourceDescriptor, UserAction } from 'libs/analytics/interfaces';\n\nimport { SourceFilterOptions } from 'libs/shared/apps/search/interfaces';\nimport { BannerHeader, PartialBannerHeader } from 'libs/shared/components/banner-header/BannerHeader';\nimport { FolderList } from 'libs/shared/components/folder-list/FolderList';\nimport { PartialFolderList } from 'libs/shared/components/folder-list/partial-loading/PartialFolderList';\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { useFocusSearchBar } from 'libs/shared/components/search-bar/SearchUtils';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { CurrentUser, Folder, Library } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoSortHelper } from 'libs/shared/utils/VideoSortHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { useFetchAllChildFolders } from 'apps/libraries/hooks/UseFetchAllChildFolders';\nimport { useHandleLibraryType } from 'apps/libraries/hooks/UseHandleLibraryType';\nimport { getFolderAppLink, getFolderBgColourClass } from 'apps/libraries/views/library-folder/LibraryFolderViewUtils';\n\nconst namespace = 'libraries.library';\n\ninterface LibraryViewProps {\n id: string;\n sort?: VideoSortType;\n}\n\nexport function LibraryView(props: LibraryViewProps): JSX.Element {\n const { focusSearchBar } = useFocusSearchBar();\n\n const libraries = Flight.useBasicFetch<Library[]>(LibraryRequests.domainLibraries([ 'customLibrary', 'sharedLibrary' ]));\n const library = Flight.useBasicFetch<Library>(LibraryRequests.library(props.id));\n const libraryFolders = useFetchAllChildFolders(library.data?.categoryTree?.id);\n const user = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const sort = !!user.data && VideoSortHelper.getOrSetSortType(user.data.id, props.sort);\n\n useSetPageMetadata({ title: library.data?.name });\n useHandleObjectError(library);\n useHandleLibraryType(library);\n\n return (\n <>\n {library.data\n ? (\n <BannerHeader\n heading={library.data.name}\n blockColourClass={getFolderBgColourClass(library.data)}\n logo={library.data.owner?.logo}\n />\n ) : <PartialBannerHeader />\n }\n\n {(() => {\n if (!libraryFolders?.items)\n return <div className='mt-3 px-3'><PartialFolderList count={10} /></div>;\n\n if (!libraryFolders.items.length)\n return <></>;\n\n return (\n <div className='mt-3 px-2'>\n <FolderList\n folders={libraryFolders.items}\n getAppLink={(f: Folder) => getFolderAppLink(props.id, f, sort)}\n expandFolders\n extraButtons={\n <IconButton\n svgName={cvSvgLibrary.Search}\n appLink={{\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: {\n source: SourceFilterOptions.School\n }\n }}\n className='btn btn-outline-dark mb-3 me-2 d-none d-sm-inline-block'\n onClick={focusSearchBar}\n analyticsData={{}}\n analyticsOptions={{\n entity: EntityType.SearchResults,\n location: LocationContext.Libraries,\n actionType: UserAction.Click,\n descriptor: SearchSourceDescriptor.School\n }}\n >\n <Text namespace={namespace} phrase='searchLibrary' options={{ smartCount: libraries.data?.length ?? 1 }} />\n </IconButton>\n }\n />\n </div>\n );\n })()}\n </>\n );\n}\n"],"names":["PortalHelper","renderInPortalIfExists","component","portalContainer","createPortal","namespace","ComingSoonTag","props","Tooltip","title","LanguageService","spanHackClassName","spanHack","className","SvgContainer","svgName","onlyIcon","GenericCalendarDate","AppLink","appLink","getAppLink","theme","border","analyticsData","analyticsOptions","background","label","body","type","getBodyClass","text","month","Actions","orderedActions","actions","sort","a","b","order","buttonActions","moreActions","forEach","button","push","length","map","idx","key","href","onClick","svgSize","dropdownToggleSvgSize","tooltip","showSpinner","openInNewTab","disabled","iconButton","showBorder","customSize","sortComponent","dropdownToggleClassName","actionsDropdownClassName","fetchMore","LazyDropdownItems","style","padding","height","width","getDropdownItemClassName","actionClassName","ActionsDropdownItem","FunctionHelper","action","e","preventDefault","AnalyticsHelper","role","tabIndex","onKeyDown","ActionsDropdown","isLazy","some","lazyPlaceholder","currentGroup","dropdownToggleId","RandomHelper","id","size","showDivider","undefined","group","defaultProps","S","BackButton","textShadow","backToName","color","extraClasses","backPhrase","colorClass","textShadowClass","RATIO","getSizeClass","heading","BannerHeader","banner","imageCdnUrl","blockColourClass","specialEvent","portalContainerContext","BannerPortalContext","imageWidth","useBreakpoints","xxl","specialEventIsToday","showComingSoon","today","DateHelper","Date","endDate","startDate","imageOptions","ratio","resizeType","url","ImageHelper","fallbackBaseUrl","fallbackCategoryName","containerProps","bannerClassName","backgroundImage","DetailsComponent","detailsComponent","backButtonAppLink","backButtonText","backButtonClasses","alignLogoLeft","logo","calendarTheme","Text","phrase","LazyImage","src","container","prevProps","nextProps","PartialBannerHeader","getDirectionClass","direction","Caret","DragDropMoveWrapper","data","draggable","attributes","dragActive","active","isDragging","listeners","draggableRef","setNodeRef","droppable","isOver","over","dropActive","droppableRef","Array","isArray","includes","toString","setIsDragging","ref","dragStyle","dropStye","children","LibraryFolder","thumbnailUrl","folder","thumbnail","UrlHelper","getFolderActions","drag","drop","name","BaseImage","imageType","imageClassName","ImageFallback","EXPANDED_FOLDERS_KEY","FolderList","breakpoints","LocalStorageHelper","_hasExpandedFolders","setHasExpandedFolders","hasExpandedFolders","expandFolders","folderLimit","xl","lg","md","onToggleFolderView","displayableFolders","folders","slice","canToggleCollapsedView","showHeading","DivButton","options","count","extraButtons","f","PartialFolder","PartialFolderList","fill","_","i","defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","generateCacheKey","flightObjs","obj","join","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","useEffect","useBuildBreadcrumbs","folderId","firstItem","lastItem","parentTree","searchStack","c","node","path","breadcrumbs","pop","object","unshift","useFetchAllChildFolders","parentId","fetch","getRequest","cursor","useHandleLibraryType","request","hasCompleted","hasError","getFolderAppLink","libraryId","application","args","params","getFolderBgColourClass","charCode","charCodeAt","useGetFolderBreadcrumbs","library","LibraryView","focusSearchBar","libraries","libraryFolders","categoryTree","user","owner","items","source","entity","location","actionType","descriptor","smartCount"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[5606],{49935:(e,t,a)=>{a.d(t,{Oo:()=>m,b2:()=>d});var n=a(32735),r=a(36848),l=a(86764),i=a(3747),c=a(5859),o=a(35223),u=a(83914),s=function(e){var t=e.breadcrumb,a=t.name,l=t.appLink,i=t.active,c=e.withBackIcon;return n.createElement("li",{className:"breadcrumb-item".concat(i?" active":"")},i?n.createElement("strong",null,a):n.createElement(r.F,{appLink:l},c&&n.createElement(u.x,{svgName:o.vn.ChevronLeft,size:u.S.Small}),n.createElement("span",{className:c?"ms-2":""},a)))},m=function(e){var t=e.breadcrumbs,a=(0,i.a)(l.r.XS),r=null==t?void 0:t.length;return!r||a&&r<2?n.createElement(n.Fragment,null):a?n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},n.createElement(s,{breadcrumb:t[r-2],withBackIcon:!0}))):n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},t.map((function(e,t){return n.createElement(s,{key:t,breadcrumb:e})}))))},d=n.memo((function(e){var t=e.numItems,a=void 0===t?3:t;return(0,i.a)(l.r.XS)?n.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},c.u.getPartialLoadingItems({numItems:a}).map((function(e,t){var a=e.width;return n.createElement("li",{key:t,className:"breadcrumb-item"},n.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:a},dangerouslySetInnerHTML:{__html:" "}}))}))))}))},23201:(e,t,a)=>{a.d(t,{A:()=>u});var n=a(32735),r=a(92802),l=a(2102),i=a(83345),c=a(33936),o="shared.formButtons";function u(e){var t=(0,r.u6)(),a=(0,c.l)(t);return n.createElement(l.m,{variant:e.variant||"primary",type:"submit",disabled:!a,size:e.size,className:e.className?e.className:"",showSpinner:t.isSubmitting},e.submitText?n.createElement(n.Fragment,null,e.submitText):n.createElement(i.x,{namespace:o,phrase:e.isNew?"create":"save"}))}},82644:(e,t,a)=>{a.d(t,{b:()=>s,n:()=>u});var n=a(32735),r=a(92802),l=a(91967),i=a(1048);function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var o=function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(a[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(a[n[r]]=e[n[r]])}return a};function u(e){var t=e.castInitialValues,a=e.castValuesOnSubmit,u=e.initialValues,s=e.onSubmit,m=o(e,["castInitialValues","castValuesOnSubmit","initialValues","onSubmit"]),d=t&&e.validationSchema?e.validationSchema.cast(function(e){if(!e)return{};var t=i.t.deepClone(e);return function e(a){Object.keys(t).forEach((function(n){t.hasOwnProperty(n)&&(i.t.isObject(a[n])?e(a[n]):null===t[n]&&delete t[n])}))}(t),t}(u)):u,p={allowInitialSubmit:e.allowInitialSubmit};return n.createElement(r.J9,Object.assign({enableReinitialize:!0},m,{initialValues:d,onSubmit:function(t,n){var r=n.setSubmitting,l=n.resetForm,i=n.setFieldError,o=a&&e.validationSchema?e.validationSchema.cast(t):t;s(o,(function(){var e,t,a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(a.reset&&l(),a.errors)for(var n=0,o=Object.entries(a.errors);n<o.length;n++){var u=(e=o[n],t=2,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,l,i,c=[],o=!0,u=!1;try{if(l=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;o=!1}else for(;!(o=(n=l.call(a)).done)&&(c.push(n.value),c.length!==t);o=!0);}catch(e){u=!0,r=e}finally{try{if(!o&&null!=a.return&&(i=a.return(),Object(i)!==i))return}finally{if(u)throw r}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?c(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.")}()),s=u[0],m=u[1];i(s,m)}r(!1)}))},initialStatus:p}),l.q.isFunction(e.children)?function(t){return e.children(t)}:n.Children.count(e.children)?e.children:null)}function s(){return(0,r.u6)()}u.defaultProps={castInitialValues:!0,castValuesOnSubmit:!0}},5859:(e,t,a)=>{function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}a.d(t,{u:()=>l});var r={numItems:5,minWidth:50,maxWidth:100},l={getPartialLoadingItems:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=Object.assign(Object.assign({},r),t);return(e=Array(a.numItems),function(e){if(Array.isArray(e))return n(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return n(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?n(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).map((function(){return{width:"".concat(Math.max(Math.floor(Math.random()*a.maxWidth),a.minWidth),"px")}}))}}},81803:(e,t,a)=>{a.d(t,{d:()=>b});var n=a(32735),r=a(81886),l=a(23481),i=a(49935),c=a(22902),o=a(14070),u=a(97291),s=a(96368);function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var d="settings.settingsLayout",p=function(e){var t=(0,c.T)().hasPermissions,a=(0,s.e)();if(e)return t(e);var n=r.Q.C$.getCurrentAppLink();return n.application!==u.O.SETTINGS||a.some((function(e){return e.modules.some((function(e){return"appLink"in e&&e.appLink.action===n.action}))}))};function b(e){var t,a=p(e.requiredPermissions);if(n.useEffect((function(){a||r.Q.C$.trigger({application:u.O.SETTINGS,action:o.e.Settings.HOME},{replace:!0})}),[a]),!a)return n.createElement(n.Fragment,null);var c,s=e.breadcrumbs.map((function(t,a){return{name:t,appLink:{application:u.O.SETTINGS,action:o.e.Settings.HOME},active:a===e.breadcrumbs.length-1}}));return n.createElement("div",{className:"px-3"},n.createElement("div",{className:"d-flex align-items-center justify-content-between"},n.createElement("h1",{className:"h2"},e.heading),null===(t=e.headingButton)||void 0===t?void 0:t.call(e)),n.createElement("div",{className:"pb-3"},n.createElement(i.Oo,{breadcrumbs:[{name:l.T.getPhrase(d,"settingsBreadcrumb"),appLink:{application:u.O.SETTINGS,action:o.e.Settings.HOME}}].concat((c=s,function(e){if(Array.isArray(e))return m(e)}(c)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(c)||function(e,t){if(e){if("string"==typeof e)return m(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?m(e,t):void 0}}(c)||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&&n.createElement(n.Fragment,null,n.createElement("p",null,e.description),n.createElement("hr",null)),e.children)}},55606:(e,t,a)=>{a.r(t),a.d(t,{VideoPlaybackSettingsView:()=>D});var n=a(32735),r=a(23481),l=a(20354),i=a(65858),c=a(77963),o=a(65728),u=a(31949),s=a(69883),m=a(37802),d=a(81803),p=a(92802),b=a(23201),f=a(82644),v=a(83345),g=a(80130);const h={radioButton:"JKFf9",description:"aVBqv"};function y(e){return n.createElement("div",null,n.createElement(g.Z.Check,{type:"radio",id:e.id,label:e.name,value:e.value,onChange:function(){return e.onSelect(e.value)},checked:e.selected,className:h.radioButton}),n.createElement("p",{className:h.description},e.description))}var E="settings.localCacheQualitySettings",S=r.T.encloseNamespace(E);function N(){var e=(0,p.u6)();function t(t){e.setFieldValue("quality",t)}return n.createElement(p.l0,null,n.createElement(y,{id:"local-cache-480",name:S("lowName"),description:S("lowDescription"),value:480,selected:480===e.values.quality,onSelect:t}),n.createElement(y,{id:"local-cache-720",name:S("standardName"),description:S("standardDescription"),value:720,selected:720===e.values.quality,onSelect:t}),n.createElement(y,{id:"local-cache-1080",name:S("highName"),description:S("highDescription"),value:1080,selected:1080===e.values.quality,onSelect:t}),n.createElement(b.A,{isNew:!1,variant:"outline-dark"}))}function k(e){return n.createElement(n.Fragment,null,n.createElement("h2",{className:"h4"},n.createElement(v.x,{namespace:E,phrase:"heading"})),n.createElement("p",null,n.createElement(v.x,{namespace:E,phrase:"description"})),n.createElement(f.n,{initialValues:{quality:e.initialValue},onSubmit:e.onSubmit},n.createElement(N,null)))}var w="settings.playbackQualitySettings",O=r.T.encloseNamespace(w);function I(){var e=(0,p.u6)();function t(t){e.setFieldValue("quality",t)}return n.createElement(p.l0,null,n.createElement(y,{id:"playback-480",name:O("lowName"),description:O("lowDescription"),value:480,selected:480===e.values.quality,onSelect:t}),n.createElement(y,{id:"playback-720",name:O("standardName"),description:O("standardDescription"),value:720,selected:720===e.values.quality,onSelect:t}),n.createElement(y,{id:"playback-1080",name:O("highName"),description:O("highDescription"),value:1080,selected:1080===e.values.quality,onSelect:t}),n.createElement(b.A,{isNew:!1,variant:"outline-dark"}))}function A(e){return n.createElement(n.Fragment,null,n.createElement("h2",{className:"h4"},n.createElement(v.x,{namespace:w,phrase:"heading"})),n.createElement("p",null,n.createElement(v.x,{namespace:w,phrase:"description"})),n.createElement(f.n,{initialValues:{quality:e.initialValue},onSubmit:e.onSubmit},n.createElement(I,null)))}var j=a(83523);function x(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var V="settings.subtitleSettings";function T(e){var t,a,r=(t=n.useState(e.initialValue),a=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,l,i,c=[],o=!0,u=!1;try{if(l=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;o=!1}else for(;!(o=(n=l.call(a)).done)&&(c.push(n.value),c.length!==t);o=!0);}catch(e){u=!0,r=e}finally{try{if(!o&&null!=a.return&&(i=a.return(),Object(i)!==i))return}finally{if(u)throw r}}return c}}(t,a)||function(e,t){if(e){if("string"==typeof e)return x(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?x(e,t):void 0}}(t,a)||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=r[0],i=r[1];return n.createElement(n.Fragment,null,n.createElement("h2",{className:"h4"},n.createElement(v.x,{namespace:V,phrase:"heading"})),n.createElement("div",{className:"d-flex"},n.createElement("p",{className:"fw-semibold me-3"},n.createElement(v.x,{namespace:V,phrase:"alwaysShowCaptions"})),n.createElement(j.Z,{on:l,onClick:function(){var t=!l;e.onChange(t),i(t)}})))}const C={partialHeading:"p1Wlx",partialDescription:"BUF8M",partialQualityOption:"vKxI0",partialLabel:"ZPM9b",partialSaveButton:"bS4wu",partialToggle:"mVsyW"};function P(){return n.createElement("div",{className:C.partialQualityOption},n.createElement("div",{className:"".concat(C.partialLabel," mb-1 partial-loading-background")}),n.createElement("div",{className:"".concat(C.partialDescription," partial-loading-background")}))}function L(){return n.createElement(n.Fragment,null,n.createElement("div",{className:"".concat(C.partialHeading," mb-2 partial-loading-background")}),n.createElement("div",{className:"".concat(C.partialDescription," partial-loading-background")}),n.createElement(P,null),n.createElement(P,null),n.createElement(P,null),n.createElement("div",{className:"".concat(C.partialSaveButton," partial-loading-background")}),n.createElement("hr",{className:"my-4"}),n.createElement("div",{className:"".concat(C.partialHeading," mb-2 partial-loading-background")}),n.createElement("div",{className:"".concat(C.partialDescription," partial-loading-background")}),n.createElement(P,null),n.createElement(P,null),n.createElement(P,null),n.createElement("div",{className:"".concat(C.partialSaveButton," partial-loading-background")}),n.createElement("hr",{className:"my-4"}),n.createElement("div",{className:"".concat(C.partialHeading," mb-2 partial-loading-background")}),n.createElement("div",{className:"".concat(C.partialToggle," partial-loading-background")}))}const F={container:"oqAZz"};var q=r.T.encloseNamespace("settings.videoPlayback");function D(){var e=(0,s.Z)(),t=l.a.useBasicFetch(u.N.currentUser()),a=(0,m.r)(i.LZ.Settings),r=a.defaultPlaybackQuality,p=a.defaultLocalCachePlaybackQuality,b=a.enableSubtitlesDefault,f=a.isLoadingSettings,v=a.updateSetting;return n.createElement(d.d,{heading:q("heading"),breadcrumbs:[q("breadcrumb")]},f?n.createElement(L,null):n.createElement("div",{className:F.container},n.createElement(A,{initialValue:r,onSubmit:function(a,n){var l=a.quality;if(l!==r){var i={name:o.E.DefaultPlaybackQuality,value:l,kind:c.g.Permanent};v(t.data.customerId,i,(function(){return e.success(q("playbackSuccess"))}),(function(){return e.error(q("playbackError"))}),n)}}}),n.createElement("hr",{className:"my-4"}),n.createElement(k,{initialValue:p,onSubmit:function(a,n){var r=a.quality;if(r!==p){var l={name:o.E.DefaultLocalCachePlaybackQuality,value:r,kind:c.g.Permanent};v(t.data.customerId,l,(function(){return e.success(q("lcSuccess"))}),(function(){return e.error(q("lcError"))}),n)}}}),n.createElement("hr",{className:"my-4"}),n.createElement(T,{initialValue:b,onChange:function(a){var n={name:o.E.EnableSubtitlesDefault,value:a,kind:c.g.Permanent};v(t.data.customerId,n,(function(){return e.success(q(a?"subtitleEnableSuccess":"subtitleDisableSuccess"))}),(function(){return e.error(q("subtitleError"))}))}})))}}}]);
|
|
2
|
-
//# sourceMappingURL=5606-6c25caedc4-lite.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/5606-6c25caedc4-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx","file:///app/packages/libs/shared/src/components/forms/form-buttons/FormButtons.tsx","file:///app/packages/libs/shared/src/components/forms/form-wrapper/FormWrapper.tsx","file:///app/packages/libs/shared/src/utils/PartialLoadingHelper.ts","file:///app/packages/projects/lite/src/apps/settings/components/settings-layout/SettingsLayout.tsx","file:///app/packages/projects/lite/src/apps/settings/components/video-playback/default-video-quality-selector/default-video-quality-selector.scss","file:///app/packages/projects/lite/src/apps/settings/components/video-playback/default-video-quality-selector/DefaultVideoQualitySelector.tsx","file:///app/packages/projects/lite/src/apps/settings/components/video-playback/local-cache-quality-settings/LocalCacheQualitySettings.tsx","file:///app/packages/projects/lite/src/apps/settings/components/video-playback/playback-quality-settings/PlaybackQualitySettings.tsx","file:///app/packages/projects/lite/src/apps/settings/components/video-playback/subtitle-settings/SubtitleSettings.tsx","file:///app/packages/projects/lite/src/apps/settings/views/video-playback/partial-loading/partial-video-playback-settings.scss","file:///app/packages/projects/lite/src/apps/settings/views/video-playback/partial-loading/PartialVideoPlaybackSettings.tsx","file:///app/packages/projects/lite/src/apps/settings/views/video-playback/video-playback-settings.scss","file:///app/packages/projects/lite/src/apps/settings/views/video-playback/VideoPlaybackSettingsView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nexport interface Breadcrumb {\n name: string;\n appLink?: Core.AppLink;\n active?: boolean;\n}\n\ninterface BreadcrumbItemProps {\n breadcrumb: Breadcrumb;\n withBackIcon?: boolean;\n}\n\nexport const BreadcrumbItem = ({ breadcrumb: { name, appLink, active }, withBackIcon }: BreadcrumbItemProps) => (\n <li className={`breadcrumb-item${active ? ' active' : ''}`}>\n {active\n ? <strong>{name}</strong>\n : <AppLink appLink={appLink}>\n {withBackIcon && <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{name}</span>\n </AppLink>\n }\n </li>\n);\n\ninterface BreadcrumbsProps {\n breadcrumbs: Breadcrumb[];\n}\n\nexport const Breadcrumbs = ({ breadcrumbs }: BreadcrumbsProps) => {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n const length = breadcrumbs?.length;\n\n if (!length || (isMobile && length < 2))\n return <></>;\n\n if (isMobile)\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} withBackIcon />\n </ol>\n </nav>\n );\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {breadcrumbs.map((b, idx) => <BreadcrumbItem key={idx} breadcrumb={b} />)}\n </ol>\n </nav>\n );\n};\n\nexport const PartialBreadcrumbs = React.memo(function({ numItems = 3 }: { numItems?: number; }) {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n if (isMobile) {\n return (\n <div className='partial-loading-background' style={{ height: '1.3125rem', width: '6rem' }} />\n );\n }\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {PartialLoadingHelper.getPartialLoadingItems({ numItems }).map(({ width }, idx) => (\n <li key={idx} className='breadcrumb-item'>\n <span className='d-inline-block partial-loading-background' style={{ width }} dangerouslySetInnerHTML={{ __html: ' ' }} />\n </li>\n ))}\n </ol>\n </nav>\n );\n});","import * as React from 'react';\nimport { ButtonProps } from 'react-bootstrap';\nimport { useFormikContext } from 'formik';\n\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { FormSize } from 'libs/shared/components/forms/form-field/FormField';\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useCanSubmitForm } from 'libs/shared/hooks/UseCanSubmitForm';\n\nconst namespace = 'shared.formButtons';\n\ninterface FormButtonsProps {\n isNew?: boolean;\n submitText?: string;\n variant?: ButtonProps['variant'];\n size?: FormSize;\n className?: string;\n}\n\nexport function FormButtons<Values extends HashObject>(props: FormButtonsProps): JSX.Element {\n const formikProps = useFormikContext<Values>();\n\n const canSubmit = useCanSubmitForm(formikProps);\n\n return (\n <SpinnerButton\n variant={props.variant || 'primary'}\n type='submit'\n disabled={!canSubmit}\n size={props.size}\n className={props.className ? props.className : ''}\n showSpinner={formikProps.isSubmitting}\n >\n {props.submitText\n ? <>{props.submitText}</>\n : <Text namespace={namespace} phrase={props.isNew ? 'create' : 'save'} />}\n </SpinnerButton>\n );\n}\n","import * as React from 'react';\nimport { Formik, FormikConfig, FormikContextType, FormikErrors, FormikHelpers, FormikProps, FormikValues, useFormikContext } from 'formik';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\n/**\n * Note: This currently doesn't support arrays, but the need for arrays as initial\n * form data has not yet come up\n */\nfunction omitNullInitialValues<Values extends FormikValues>(initialValues: Values): Values {\n if (!initialValues)\n return {} as Values;\n\n const values = ObjectHelper.deepClone(initialValues);\n\n function omitChildValues(child: Values): void {\n Object.keys(values).forEach((key: keyof Values) => {\n if (!values.hasOwnProperty(key))\n return;\n \n if (ObjectHelper.isObject(child[key]))\n omitChildValues(child[key]);\n else if (values[key] === null)\n delete values[key];\n });\n }\n\n omitChildValues(values);\n return values;\n}\n\n// Omit attributes from FormikConfig that are defined in FormWrapperProps.\ntype ModifiedFormikConfig<Values extends FormikValues> = Omit<FormikConfig<Values>, 'initialValues' | 'onSubmit'>;\n\ninterface InitialStatus {\n allowInitialSubmit: boolean;\n}\n\nexport type FormSubmissionOptions<FormValues = FormikValues> = {\n reset?: boolean;\n errors?: FormikErrors<FormValues>;\n};\n\ninterface FormWrapperProps<FormValues extends FormikValues, ApiValues extends FormikValues> {\n initialValues: Partial<FormValues | ApiValues>;\n onSubmit: (data: FormValues, onDone: (options?: FormSubmissionOptions<FormValues>) => void) => void;\n castInitialValues?: boolean; // cast to validationSchema\n castValuesOnSubmit?: boolean; // cast to validationSchema\n allowInitialSubmit?: boolean; // if true, useCanSubmitForm will allow submit without any user changes.\n}\n\nFormWrapper.defaultProps = {\n castInitialValues: true,\n castValuesOnSubmit: true\n};\n\nexport function FormWrapper<\n FormValues extends FormikValues = FormikValues,\n ApiValues extends FormikValues = FormValues,\n ExtraProps = HashObject\n>(props: ModifiedFormikConfig<FormValues> & ExtraProps & FormWrapperProps<FormValues, ApiValues>): JSX.Element {\n const { castInitialValues, castValuesOnSubmit, initialValues, onSubmit, ...formikProps } = props;\n\n /**\n * If castInitialValues is true, cast initialValues to the validationSchema.\n * This will ensure that any data fetched from the api conforms to the expected form data shape.\n */\n const formattedInitialValues: FormValues = castInitialValues && props.validationSchema\n ? props.validationSchema.cast(omitNullInitialValues(initialValues))\n : initialValues;\n\n const onSubmitHandler = (\n values: FormValues,\n { setSubmitting, resetForm, setFieldError }: FormikHelpers<FormValues>\n ) => {\n /**\n * validationSchema.cast will coerce the values to the types defined in validationSchema.\n * This is useful for trimming inputs:\n * e.g. if a value field has type Yup.string().trim(), it will be automatically trimmed.\n */\n const formattedData = castValuesOnSubmit && props.validationSchema\n ? props.validationSchema.cast(values)\n : values;\n\n onSubmit(formattedData, (options: FormSubmissionOptions<FormValues> = {}) => {\n options.reset && resetForm();\n\n if (options.errors) {\n for (const [ key, value ] of Object.entries(options.errors)) {\n setFieldError(key, value);\n }\n }\n\n setSubmitting(false);\n });\n };\n\n const initialStatus: InitialStatus = {\n allowInitialSubmit: props.allowInitialSubmit\n };\n\n return (\n <Formik<FormValues, ExtraProps>\n enableReinitialize\n {...(formikProps as ModifiedFormikConfig<FormValues> & ExtraProps)}\n initialValues={formattedInitialValues}\n onSubmit={onSubmitHandler}\n initialStatus={initialStatus}\n >\n {FunctionHelper.isFunction(props.children)\n ? (f: FormikProps<FormValues>) => (props.children as (f: FormikProps<FormValues>) => React.ReactNode)(f)\n : React.Children.count(props.children) ? props.children : null\n }\n </Formik>\n );\n}\n\nexport function useFormikContextWrapper<T>(): FormikContextType<T> {\n return useFormikContext<T>();\n}","const DEFAULT_PARTIAL_LOADING_OPTIONS: PartialLoadingOptions = {\n numItems: 5,\n minWidth: 50, // px\n maxWidth: 100 // px\n};\n\nexport interface PartialLoadingOptions {\n numItems?: number;\n minWidth?: number;\n maxWidth?: number;\n}\n\ninterface PartialLoadingItem {\n width: string;\n}\n\nexport const PartialLoadingHelper = {\n getPartialLoadingItems(options: PartialLoadingOptions = {}): PartialLoadingItem[] {\n const opts = {\n ...DEFAULT_PARTIAL_LOADING_OPTIONS,\n ...options\n };\n\n const getRandomFilterWidth = () => Math.max(Math.floor(Math.random() * opts.maxWidth), opts.minWidth);\n\n return [...Array(opts.numItems)].map(() => ({ width: `${getRandomFilterWidth()}px` }));\n }\n};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\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}","// extracted by mini-css-extract-plugin\nexport default {\"radioButton\":\"JKFf9\",\"description\":\"aVBqv\"};","import React from 'react';\nimport { Form } from 'react-bootstrap';\n\nimport { DefaultPlaybackQuality } from 'libs/shared/interfaces';\n\nimport styles from './default-video-quality-selector.scss';\n\ninterface VideoQualityOptionProps {\n id: string;\n name: string;\n description: string;\n selected: boolean;\n value: DefaultPlaybackQuality;\n onSelect: (quality: DefaultPlaybackQuality) => void;\n}\n\nexport function VideoQualityOption(props: VideoQualityOptionProps): JSX.Element {\n return (\n <div>\n <Form.Check\n type='radio'\n id={props.id}\n label={props.name}\n value={props.value}\n onChange={() => props.onSelect(props.value)}\n checked={props.selected}\n className={styles.radioButton}\n />\n <p className={styles.description}>{props.description}</p>\n </div>\n );\n}","import React from 'react';\nimport { Form, useFormikContext } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { FormButtons } from 'libs/shared/components/forms/form-buttons/FormButtons';\nimport { FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { DefaultPlaybackQuality } from 'libs/shared/interfaces';\n\nimport { VideoQualityOption } from 'apps/settings/components/video-playback/default-video-quality-selector/DefaultVideoQualitySelector';\n\ninterface QualityModel {\n quality: DefaultPlaybackQuality;\n}\n\nconst namespace = 'settings.localCacheQualitySettings';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction LocalCacheQualityForm(): JSX.Element {\n const formikProps = useFormikContext<QualityModel>();\n\n function onSelectValue(value: DefaultPlaybackQuality): void {\n formikProps.setFieldValue('quality', value);\n }\n\n return (\n <Form>\n <VideoQualityOption\n id='local-cache-480'\n name={getPhrase('lowName')}\n description={getPhrase('lowDescription')}\n value={480}\n selected={formikProps.values.quality === 480}\n onSelect={onSelectValue}\n />\n <VideoQualityOption\n id='local-cache-720'\n name={getPhrase('standardName')}\n description={getPhrase('standardDescription')}\n value={720}\n selected={formikProps.values.quality === 720}\n onSelect={onSelectValue}\n />\n <VideoQualityOption\n id='local-cache-1080'\n name={getPhrase('highName')}\n description={getPhrase('highDescription')}\n value={1080}\n selected={formikProps.values.quality === 1080}\n onSelect={onSelectValue}\n />\n\n <FormButtons\n isNew={false}\n variant='outline-dark'\n />\n </Form>\n );\n}\n\ninterface LocalCacheQualitySettingsProps {\n initialValue: DefaultPlaybackQuality;\n onSubmit: (data: QualityModel, onDone: () => void) => void;\n}\n\nexport function LocalCacheQualitySettings(props: LocalCacheQualitySettingsProps): JSX.Element {\n return (\n <>\n <h2 className='h4'><Text namespace={namespace} phrase='heading' /></h2>\n <p><Text namespace={namespace} phrase='description' /></p>\n\n <FormWrapper<QualityModel>\n initialValues={{ quality: props.initialValue }}\n onSubmit={props.onSubmit}\n >\n <LocalCacheQualityForm />\n </FormWrapper>\n </>\n );\n}","import React from 'react';\nimport { Form, useFormikContext } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { FormButtons } from 'libs/shared/components/forms/form-buttons/FormButtons';\nimport { FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { DefaultPlaybackQuality } from 'libs/shared/interfaces';\n\nimport { VideoQualityOption } from 'apps/settings/components/video-playback/default-video-quality-selector/DefaultVideoQualitySelector';\n\ninterface QualityModel {\n quality: DefaultPlaybackQuality;\n}\n\nconst namespace = 'settings.playbackQualitySettings';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction PlaybackQualityForm(): JSX.Element {\n const formikProps = useFormikContext<QualityModel>();\n\n function onSelectValue(value: DefaultPlaybackQuality): void {\n formikProps.setFieldValue('quality', value);\n }\n\n return (\n <Form>\n <VideoQualityOption\n id='playback-480'\n name={getPhrase('lowName')}\n description={getPhrase('lowDescription')}\n value={480}\n selected={formikProps.values.quality === 480}\n onSelect={onSelectValue}\n />\n <VideoQualityOption\n id='playback-720'\n name={getPhrase('standardName')}\n description={getPhrase('standardDescription')}\n value={720}\n selected={formikProps.values.quality === 720}\n onSelect={onSelectValue}\n />\n <VideoQualityOption\n id='playback-1080'\n name={getPhrase('highName')}\n description={getPhrase('highDescription')}\n value={1080}\n selected={formikProps.values.quality === 1080}\n onSelect={onSelectValue}\n />\n\n <FormButtons<QualityModel>\n isNew={false}\n variant='outline-dark'\n />\n </Form>\n );\n}\n\ninterface PlaybackQualitySettingsProps {\n initialValue: DefaultPlaybackQuality;\n onSubmit: (data: QualityModel, onDone: () => void) => void;\n}\n\nexport function PlaybackQualitySettings(props: PlaybackQualitySettingsProps): JSX.Element {\n return (\n <>\n <h2 className='h4'><Text namespace={namespace} phrase='heading' /></h2>\n <p><Text namespace={namespace} phrase='description' /></p>\n\n <FormWrapper<QualityModel>\n initialValues={{ quality: props.initialValue }}\n onSubmit={props.onSubmit}\n >\n <PlaybackQualityForm />\n </FormWrapper>\n </>\n );\n}","import React from 'react';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ToggleSwitch } from 'libs/shared/components/toggle-switch/ToggleSwitch';\n\nconst namespace = 'settings.subtitleSettings';\n\ninterface SubtitleSettingsProps {\n initialValue: boolean;\n onChange: (value: boolean) => void;\n}\n\nexport function SubtitleSettings(props: SubtitleSettingsProps): JSX.Element {\n const [ enabled, setEnabled ] = React.useState(props.initialValue);\n\n function onChange(): void {\n const newValue = !enabled;\n\n props.onChange(newValue);\n setEnabled(newValue);\n }\n \n return (\n <>\n <h2 className='h4'><Text namespace={namespace} phrase='heading' /></h2>\n <div className='d-flex'>\n <p className='fw-semibold me-3'>\n <Text namespace={namespace} phrase='alwaysShowCaptions' />\n </p>\n <ToggleSwitch on={enabled} onClick={onChange} />\n </div>\n </>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"partialHeading\":\"p1Wlx\",\"partialDescription\":\"BUF8M\",\"partialQualityOption\":\"vKxI0\",\"partialLabel\":\"ZPM9b\",\"partialSaveButton\":\"bS4wu\",\"partialToggle\":\"mVsyW\"};","import React from 'react';\n\nimport styles from './partial-video-playback-settings.scss';\n\nfunction PartialQualityOption(): JSX.Element {\n return (\n <div className={styles.partialQualityOption}>\n <div className={`${styles.partialLabel} mb-1 partial-loading-background`} />\n <div className={`${styles.partialDescription} partial-loading-background`} />\n </div>\n );\n}\n\nexport function PartialVideoPlaybackSettings(): JSX.Element {\n return (\n <>\n <div className={`${styles.partialHeading} mb-2 partial-loading-background`} />\n <div className={`${styles.partialDescription} partial-loading-background`} />\n\n <PartialQualityOption />\n <PartialQualityOption />\n <PartialQualityOption />\n\n <div className={`${styles.partialSaveButton} partial-loading-background`} />\n \n <hr className='my-4' />\n\n <div className={`${styles.partialHeading} mb-2 partial-loading-background`} />\n <div className={`${styles.partialDescription} partial-loading-background`} />\n\n <PartialQualityOption />\n <PartialQualityOption />\n <PartialQualityOption />\n \n <div className={`${styles.partialSaveButton} partial-loading-background`} />\n\n <hr className='my-4' />\n\n <div className={`${styles.partialHeading} mb-2 partial-loading-background`} />\n <div className={`${styles.partialToggle} partial-loading-background`} />\n </>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"oqAZz\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { SettingKind } from 'libs/shared/enums/SettingKind';\nimport { SettingName } from 'libs/shared/enums/SettingName';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { CurrentUser } from 'libs/shared/interfaces';\n\nimport { SettingsLayout } from 'apps/settings/components/settings-layout/SettingsLayout';\nimport { LocalCacheQualitySettings } from 'apps/settings/components/video-playback/local-cache-quality-settings/LocalCacheQualitySettings';\nimport { PlaybackQualitySettings } from 'apps/settings/components/video-playback/playback-quality-settings/PlaybackQualitySettings';\nimport { SubtitleSettings } from 'apps/settings/components/video-playback/subtitle-settings/SubtitleSettings';\n\nimport { PartialVideoPlaybackSettings } from './partial-loading/PartialVideoPlaybackSettings';\n\nimport styles from './video-playback-settings.scss';\n\nconst namespace = 'settings.videoPlayback';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function VideoPlaybackSettingsView(): JSX.Element {\n const alerts = useAlerts();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const {\n defaultPlaybackQuality,\n defaultLocalCachePlaybackQuality,\n enableSubtitlesDefault,\n isLoadingSettings,\n updateSetting\n } = useSettings(LocationContext.Settings);\n\n function onSavePlaybackQuality({ quality }: HashObject, onDone: () => void): void {\n if (quality === defaultPlaybackQuality)\n return;\n\n const newSetting = {\n name: SettingName.DefaultPlaybackQuality,\n value: quality,\n kind: SettingKind.Permanent\n };\n\n updateSetting(\n currentUser.data.customerId,\n newSetting,\n () => alerts.success(getPhrase('playbackSuccess')),\n () => alerts.error(getPhrase('playbackError')),\n onDone\n );\n }\n\n function onSaveLocalCacheQuality({ quality }: HashObject, onDone: () => void): void {\n if (quality === defaultLocalCachePlaybackQuality)\n return;\n\n const newSetting = {\n name: SettingName.DefaultLocalCachePlaybackQuality,\n value: quality,\n kind: SettingKind.Permanent\n };\n\n updateSetting(\n currentUser.data.customerId,\n newSetting,\n () => alerts.success(getPhrase('lcSuccess')),\n () => alerts.error(getPhrase('lcError')),\n onDone\n );\n }\n\n function onSaveDefaultSubtitleState(value: boolean): void {\n const newSetting = {\n name: SettingName.EnableSubtitlesDefault,\n value,\n kind: SettingKind.Permanent\n };\n\n updateSetting(\n currentUser.data.customerId,\n newSetting,\n () => alerts.success(getPhrase(value ? 'subtitleEnableSuccess' : 'subtitleDisableSuccess')),\n () => alerts.error(getPhrase('subtitleError'))\n );\n }\n\n return (\n <SettingsLayout\n heading={getPhrase('heading')}\n breadcrumbs={[getPhrase('breadcrumb')]}\n >\n {!isLoadingSettings\n ? (\n <div className={styles.container}>\n <PlaybackQualitySettings\n initialValue={defaultPlaybackQuality}\n onSubmit={onSavePlaybackQuality}\n />\n\n <hr className='my-4' />\n\n <LocalCacheQualitySettings\n initialValue={defaultLocalCachePlaybackQuality}\n onSubmit={onSaveLocalCacheQuality}\n />\n\n <hr className='my-4' />\n\n <SubtitleSettings\n initialValue={enableSubtitlesDefault}\n onChange={onSaveDefaultSubtitleState}\n />\n </div>\n ) : (\n <PartialVideoPlaybackSettings />\n )\n }\n </SettingsLayout>\n );\n}"],"names":["BreadcrumbItem","breadcrumb","name","appLink","active","withBackIcon","className","svgName","size","S","Breadcrumbs","breadcrumbs","isMobile","length","map","b","idx","key","PartialBreadcrumbs","numItems","style","height","width","dangerouslySetInnerHTML","__html","namespace","FormButtons","props","formikProps","canSubmit","variant","type","disabled","showSpinner","isSubmitting","submitText","phrase","isNew","FormWrapper","castInitialValues","castValuesOnSubmit","initialValues","onSubmit","formattedInitialValues","validationSchema","cast","values","omitChildValues","child","Object","keys","forEach","hasOwnProperty","omitNullInitialValues","initialStatus","allowInitialSubmit","enableReinitialize","setSubmitting","resetForm","setFieldError","formattedData","options","reset","errors","entries","value","children","f","useFormikContextWrapper","defaultProps","DEFAULT_PARTIAL_LOADING_OPTIONS","minWidth","maxWidth","PartialLoadingHelper","getPartialLoadingItems","opts","Array","Math","max","floor","random","useCanAccessSettings","requiredPermissions","hasPermissions","settingsGroups","currentRoute","application","some","group","modules","settingsModule","action","SettingsLayout","canAccess","replace","i","heading","headingButton","description","VideoQualityOption","Form","id","label","onChange","onSelect","checked","selected","getPhrase","LanguageService","LocalCacheQualityForm","onSelectValue","setFieldValue","quality","LocalCacheQualitySettings","Text","initialValue","PlaybackQualityForm","PlaybackQualitySettings","SubtitleSettings","enabled","setEnabled","ToggleSwitch","on","onClick","newValue","PartialQualityOption","PartialVideoPlaybackSettings","VideoPlaybackSettingsView","alerts","currentUser","UserRequests","useSettings","defaultPlaybackQuality","defaultLocalCachePlaybackQuality","enableSubtitlesDefault","isLoadingSettings","updateSetting","onDone","newSetting","SettingName","kind","SettingKind","data","customerId","success","error"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[5877],{49935:(e,t,n)=>{n.d(t,{Oo:()=>m,b2:()=>d});var r=n(32735),a=n(36848),i=n(86764),u=n(3747),s=n(5859),l=n(35223),c=n(83914),o=function(e){var t=e.breadcrumb,n=t.name,i=t.appLink,u=t.active,s=e.withBackIcon;return r.createElement("li",{className:"breadcrumb-item".concat(u?" active":"")},u?r.createElement("strong",null,n):r.createElement(a.F,{appLink:i},s&&r.createElement(c.x,{svgName:l.vn.ChevronLeft,size:c.S.Small}),r.createElement("span",{className:s?"ms-2":""},n)))},m=function(e){var t=e.breadcrumbs,n=(0,u.a)(i.r.XS),a=null==t?void 0:t.length;return!a||n&&a<2?r.createElement(r.Fragment,null):n?r.createElement("nav",{"aria-label":"breadcrumb"},r.createElement("ol",{className:"breadcrumb m-0 p-0"},r.createElement(o,{breadcrumb:t[a-2],withBackIcon:!0}))):r.createElement("nav",{"aria-label":"breadcrumb"},r.createElement("ol",{className:"breadcrumb m-0 p-0"},t.map((function(e,t){return r.createElement(o,{key:t,breadcrumb:e})}))))},d=r.memo((function(e){var t=e.numItems,n=void 0===t?3:t;return(0,u.a)(i.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"},s.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:" "}}))}))))}))},82644:(e,t,n)=>{n.d(t,{b:()=>o,n:()=>c});var r=n(32735),a=n(92802),i=n(91967),u=n(1048);function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var l=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n};function c(e){var t=e.castInitialValues,n=e.castValuesOnSubmit,c=e.initialValues,o=e.onSubmit,m=l(e,["castInitialValues","castValuesOnSubmit","initialValues","onSubmit"]),d=t&&e.validationSchema?e.validationSchema.cast(function(e){if(!e)return{};var t=u.t.deepClone(e);return function e(n){Object.keys(t).forEach((function(r){t.hasOwnProperty(r)&&(u.t.isObject(n[r])?e(n[r]):null===t[r]&&delete t[r])}))}(t),t}(c)):c,f={allowInitialSubmit:e.allowInitialSubmit};return r.createElement(a.J9,Object.assign({enableReinitialize:!0},m,{initialValues:d,onSubmit:function(t,r){var a=r.setSubmitting,i=r.resetForm,u=r.setFieldError,l=n&&e.validationSchema?e.validationSchema.cast(t):t;o(l,(function(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(n.reset&&i(),n.errors)for(var r=0,l=Object.entries(n.errors);r<l.length;r++){var c=(e=l[r],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 r,a,i,u,s=[],l=!0,c=!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)&&(s.push(r.value),s.length!==t);l=!0);}catch(e){c=!0,a=e}finally{try{if(!l&&null!=n.return&&(u=n.return(),Object(u)!==u))return}finally{if(c)throw a}}return s}}(e,t)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),o=c[0],m=c[1];u(o,m)}a(!1)}))},initialStatus:f}),i.q.isFunction(e.children)?function(t){return e.children(t)}:r.Children.count(e.children)?e.children:null)}function o(){return(0,a.u6)()}c.defaultProps={castInitialValues:!0,castValuesOnSubmit:!0}},5859:(e,t,n)=>{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")}}))}}},81803:(e,t,n)=>{n.d(t,{d:()=>g});var r=n(32735),a=n(81886),i=n(23481),u=n(49935),s=n(22902),l=n(14070),c=n(97291),o=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,s.T)().hasPermissions,n=(0,o.e)();if(e)return t(e);var r=a.Q.C$.getCurrentAppLink();return r.application!==c.O.SETTINGS||n.some((function(e){return e.modules.some((function(e){return"appLink"in e&&e.appLink.action===r.action}))}))};function g(e){var t,n=f(e.requiredPermissions);if(r.useEffect((function(){n||a.Q.C$.trigger({application:c.O.SETTINGS,action:l.e.Settings.HOME},{replace:!0})}),[n]),!n)return r.createElement(r.Fragment,null);var s,o=e.breadcrumbs.map((function(t,n){return{name:t,appLink:{application:c.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(u.Oo,{breadcrumbs:[{name:i.T.getPhrase(d,"settingsBreadcrumb"),appLink:{application:c.O.SETTINGS,action:l.e.Settings.HOME}}].concat((s=o,function(e){if(Array.isArray(e))return m(e)}(s)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(s)||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}}(s)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()))})),e.description&&r.createElement(r.Fragment,null,r.createElement("p",null,e.description),r.createElement("hr",null)),e.children)}},706:(e,t,n)=>{n.d(t,{F:()=>a});var r=n(99940),a={getCustomerSecuritySettings:function(e,t,n){return{url:"{gateway}/v1/customers/".concat(e,"/settings/security"),key:"customers:security:settings",normalize:!1,success:t,error:n}},setCustomerSecuritySettings:function(e,t,n,a){return{url:"{gateway}/v1/customers/".concat(e,"/settings/security"),key:"update:security:settings",invalidationKeys:"customers:security:settings",type:r.k.PUT,normalize:!1,data:t,success:n,error:a}}}},55877:(e,t,n)=>{n.r(t),n.d(t,{SecuritySettingsView:()=>T});var r=n(32735),a=n(70680),i=n(23481),u=n(20354),s=n(39739),l=n(82644),c=n(76881),o=n(86613),m=n(31949),d=n(69883),f=n(92802),g=n(2102),h=n(33936),b=[5,6,7,8,9,10,11,12];function p(e){function t(t){var n="btn border";return t===e.currentValue?n+=" btn-dark":n+=" btn-outline-dark",t<e.minLength&&(n+=" disabled"),n}return r.createElement("div",{className:"pb-2"},r.createElement("h3",{className:"h6"},e.headingText),r.createElement("div",{className:"btn-group mb-1"},b.map((function(n){return r.createElement("button",{key:n,className:t(n),onClick:function(t){return function(t,n){t.preventDefault(),n<e.minLength||e.setMinimumPasswordLength(n)}(t,n)},type:"button"},n)}))),r.createElement("p",{dangerouslySetInnerHTML:{__html:e.minPasswordLengthText}}))}var S=i.T.encloseNamespace("settings.passwordSecuritySettings"),v=5,y=8,E=8;function L(){var e=(0,f.u6)(),t=(0,h.l)(e);return r.createElement(f.l0,null,r.createElement("h2",{className:"h4"},S("heading")),r.createElement(p,{currentValue:e.values.minStudentLength,headingText:S("studentSubheading"),minLength:v,minPasswordLengthText:S("minimumStudentLength",{length:e.values.minStudentLength}),setMinimumPasswordLength:function(t){return e.setFieldValue("minStudentLength",t)}}),r.createElement(p,{currentValue:e.values.minStaffLength,headingText:S("staffSubheading"),minLength:y,minPasswordLengthText:S("minimumStaffLength",{length:e.values.minStaffLength}),setMinimumPasswordLength:function(t){return e.setFieldValue("minStaffLength",t)}}),r.createElement(p,{currentValue:e.values.minAdminLength,headingText:S("adminSubheading"),minLength:E,minPasswordLengthText:S("minimumAdminLength",{length:e.values.minAdminLength}),setMinimumPasswordLength:function(t){return e.setFieldValue("minAdminLength",t)}}),r.createElement("div",{className:"d-flex"},r.createElement(g.m,{type:"submit",variant:"dark",disabled:!t,showSpinner:e.isSubmitting},S("saveChanges"))))}var w=n(81803),O=n(706),A=n(5173),I=(0,A.Ry)().shape({minStudentLength:(0,A.Rx)().required(),minStaffLength:(0,A.Rx)().required(),minAdminLength:(0,A.Rx)().required()}).noUnknown(),k=i.T.encloseNamespace("settings.securitySettings");function T(){var e=(0,a.I0)(),t=(0,d.Z)(),n=u.a.useBasicFetch(m.N.currentUser()),i=u.a.useBasicFetch(n.data&&O.F.getCustomerSecuritySettings(n.data.customerId)),f=s.P.getMinimumPasswordLength,g=f(i.data,c.Y.Learner,o.i.User),h=f(i.data,c.Y.Staff,o.i.User),b=f(i.data,c.Y.Staff,o.i.Admin);return n.data&&i.data?r.createElement(w.d,{heading:k("heading"),breadcrumbs:[k("breadcrumb")]},r.createElement(l.n,{initialValues:{minStudentLength:g,minStaffLength:h,minAdminLength:b},validationSchema:I,onSubmit:function(r,a){var i={securitySettings:[]};g!==r.minStudentLength&&i.securitySettings.push({userType:c.Y.Learner,userRole:o.i.User,minPasswordLength:r.minStudentLength}),h!==r.minStaffLength&&i.securitySettings.push({userType:c.Y.Staff,userRole:o.i.User,minPasswordLength:r.minStaffLength}),b!==r.minAdminLength&&i.securitySettings.push({userType:c.Y.Staff,userRole:o.i.Admin,minPasswordLength:r.minAdminLength}),u.a.fetch(e,O.F.setCustomerSecuritySettings(n.data.customerId,i,(function(){t.success(k("success"))}),(function(){t.error(k("error")),a({reset:!0})})))}},r.createElement(L,null))):r.createElement(r.Fragment,null)}}}]);
|
|
2
|
-
//# sourceMappingURL=5877-ddfaf6a7f5-lite.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/5877-ddfaf6a7f5-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx","file:///app/packages/libs/shared/src/components/forms/form-wrapper/FormWrapper.tsx","file:///app/packages/libs/shared/src/utils/PartialLoadingHelper.ts","file:///app/packages/projects/lite/src/apps/settings/components/settings-layout/SettingsLayout.tsx","file:///app/packages/projects/lite/src/apps/settings/flight-request/SecuritySettingsRequests.ts","file:///app/packages/projects/lite/src/apps/settings/components/edit-password-length/EditPasswordLength.tsx","file:///app/packages/projects/lite/src/apps/settings/components/password-security-settings/PasswordSecuritySettingsForm.tsx","file:///app/packages/projects/lite/src/apps/settings/utils/validation/EditPasswordSecuritySettingsValidationSchema.ts","file:///app/packages/projects/lite/src/apps/settings/views/security-settings/SecuritySettingsView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nexport interface Breadcrumb {\n name: string;\n appLink?: Core.AppLink;\n active?: boolean;\n}\n\ninterface BreadcrumbItemProps {\n breadcrumb: Breadcrumb;\n withBackIcon?: boolean;\n}\n\nexport const BreadcrumbItem = ({ breadcrumb: { name, appLink, active }, withBackIcon }: BreadcrumbItemProps) => (\n <li className={`breadcrumb-item${active ? ' active' : ''}`}>\n {active\n ? <strong>{name}</strong>\n : <AppLink appLink={appLink}>\n {withBackIcon && <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{name}</span>\n </AppLink>\n }\n </li>\n);\n\ninterface BreadcrumbsProps {\n breadcrumbs: Breadcrumb[];\n}\n\nexport const Breadcrumbs = ({ breadcrumbs }: BreadcrumbsProps) => {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n const length = breadcrumbs?.length;\n\n if (!length || (isMobile && length < 2))\n return <></>;\n\n if (isMobile)\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} withBackIcon />\n </ol>\n </nav>\n );\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {breadcrumbs.map((b, idx) => <BreadcrumbItem key={idx} breadcrumb={b} />)}\n </ol>\n </nav>\n );\n};\n\nexport const PartialBreadcrumbs = React.memo(function({ numItems = 3 }: { numItems?: number; }) {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n if (isMobile) {\n return (\n <div className='partial-loading-background' style={{ height: '1.3125rem', width: '6rem' }} />\n );\n }\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {PartialLoadingHelper.getPartialLoadingItems({ numItems }).map(({ width }, idx) => (\n <li key={idx} className='breadcrumb-item'>\n <span className='d-inline-block partial-loading-background' style={{ width }} dangerouslySetInnerHTML={{ __html: ' ' }} />\n </li>\n ))}\n </ol>\n </nav>\n );\n});","import * as React from 'react';\nimport { Formik, FormikConfig, FormikContextType, FormikErrors, FormikHelpers, FormikProps, FormikValues, useFormikContext } from 'formik';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\n/**\n * Note: This currently doesn't support arrays, but the need for arrays as initial\n * form data has not yet come up\n */\nfunction omitNullInitialValues<Values extends FormikValues>(initialValues: Values): Values {\n if (!initialValues)\n return {} as Values;\n\n const values = ObjectHelper.deepClone(initialValues);\n\n function omitChildValues(child: Values): void {\n Object.keys(values).forEach((key: keyof Values) => {\n if (!values.hasOwnProperty(key))\n return;\n \n if (ObjectHelper.isObject(child[key]))\n omitChildValues(child[key]);\n else if (values[key] === null)\n delete values[key];\n });\n }\n\n omitChildValues(values);\n return values;\n}\n\n// Omit attributes from FormikConfig that are defined in FormWrapperProps.\ntype ModifiedFormikConfig<Values extends FormikValues> = Omit<FormikConfig<Values>, 'initialValues' | 'onSubmit'>;\n\ninterface InitialStatus {\n allowInitialSubmit: boolean;\n}\n\nexport type FormSubmissionOptions<FormValues = FormikValues> = {\n reset?: boolean;\n errors?: FormikErrors<FormValues>;\n};\n\ninterface FormWrapperProps<FormValues extends FormikValues, ApiValues extends FormikValues> {\n initialValues: Partial<FormValues | ApiValues>;\n onSubmit: (data: FormValues, onDone: (options?: FormSubmissionOptions<FormValues>) => void) => void;\n castInitialValues?: boolean; // cast to validationSchema\n castValuesOnSubmit?: boolean; // cast to validationSchema\n allowInitialSubmit?: boolean; // if true, useCanSubmitForm will allow submit without any user changes.\n}\n\nFormWrapper.defaultProps = {\n castInitialValues: true,\n castValuesOnSubmit: true\n};\n\nexport function FormWrapper<\n FormValues extends FormikValues = FormikValues,\n ApiValues extends FormikValues = FormValues,\n ExtraProps = HashObject\n>(props: ModifiedFormikConfig<FormValues> & ExtraProps & FormWrapperProps<FormValues, ApiValues>): JSX.Element {\n const { castInitialValues, castValuesOnSubmit, initialValues, onSubmit, ...formikProps } = props;\n\n /**\n * If castInitialValues is true, cast initialValues to the validationSchema.\n * This will ensure that any data fetched from the api conforms to the expected form data shape.\n */\n const formattedInitialValues: FormValues = castInitialValues && props.validationSchema\n ? props.validationSchema.cast(omitNullInitialValues(initialValues))\n : initialValues;\n\n const onSubmitHandler = (\n values: FormValues,\n { setSubmitting, resetForm, setFieldError }: FormikHelpers<FormValues>\n ) => {\n /**\n * validationSchema.cast will coerce the values to the types defined in validationSchema.\n * This is useful for trimming inputs:\n * e.g. if a value field has type Yup.string().trim(), it will be automatically trimmed.\n */\n const formattedData = castValuesOnSubmit && props.validationSchema\n ? props.validationSchema.cast(values)\n : values;\n\n onSubmit(formattedData, (options: FormSubmissionOptions<FormValues> = {}) => {\n options.reset && resetForm();\n\n if (options.errors) {\n for (const [ key, value ] of Object.entries(options.errors)) {\n setFieldError(key, value);\n }\n }\n\n setSubmitting(false);\n });\n };\n\n const initialStatus: InitialStatus = {\n allowInitialSubmit: props.allowInitialSubmit\n };\n\n return (\n <Formik<FormValues, ExtraProps>\n enableReinitialize\n {...(formikProps as ModifiedFormikConfig<FormValues> & ExtraProps)}\n initialValues={formattedInitialValues}\n onSubmit={onSubmitHandler}\n initialStatus={initialStatus}\n >\n {FunctionHelper.isFunction(props.children)\n ? (f: FormikProps<FormValues>) => (props.children as (f: FormikProps<FormValues>) => React.ReactNode)(f)\n : React.Children.count(props.children) ? props.children : null\n }\n </Formik>\n );\n}\n\nexport function useFormikContextWrapper<T>(): FormikContextType<T> {\n return useFormikContext<T>();\n}","const DEFAULT_PARTIAL_LOADING_OPTIONS: PartialLoadingOptions = {\n numItems: 5,\n minWidth: 50, // px\n maxWidth: 100 // px\n};\n\nexport interface PartialLoadingOptions {\n numItems?: number;\n minWidth?: number;\n maxWidth?: number;\n}\n\ninterface PartialLoadingItem {\n width: string;\n}\n\nexport const PartialLoadingHelper = {\n getPartialLoadingItems(options: PartialLoadingOptions = {}): PartialLoadingItem[] {\n const opts = {\n ...DEFAULT_PARTIAL_LOADING_OPTIONS,\n ...options\n };\n\n const getRandomFilterWidth = () => Math.max(Math.floor(Math.random() * opts.maxWidth), opts.minWidth);\n\n return [...Array(opts.numItems)].map(() => ({ width: `${getRandomFilterWidth()}px` }));\n }\n};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\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 { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Flight } from 'libs/common/flight';\n\nimport { UpdateSecuritySettingsRequest } from 'apps/settings/interfaces/security/requests/UpdateSecuritySettingsRequest';\n\nexport const SecuritySettingsRequests = {\n getCustomerSecuritySettings(\n customerId: string,\n success?: () => void,\n error?: () => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/customers/${customerId}/settings/security`,\n key: `customers:security:settings`,\n normalize: false,\n success,\n error\n };\n },\n\n setCustomerSecuritySettings(\n customerId: string,\n data: UpdateSecuritySettingsRequest,\n success?: () => void,\n error?: () => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/customers/${customerId}/settings/security`,\n key: `update:security:settings`,\n invalidationKeys: `customers:security:settings`,\n type: HttpVerbs.PUT,\n normalize: false,\n data,\n success,\n error\n };\n }\n};","import React from 'react';\n\nconst PASSWORD_LENGTHS = [ 5, 6, 7, 8, 9, 10, 11, 12 ];\n\ninterface EditPasswordLengthProps {\n currentValue: number;\n setMinimumPasswordLength: (length: number) => void;\n minLength: number;\n\n headingText: string;\n minPasswordLengthText: string;\n}\n\nexport function EditPasswordLength(props: EditPasswordLengthProps): JSX.Element {\n function onClick(e: React.MouseEvent, option: number): void {\n e.preventDefault();\n\n if (option < props.minLength)\n return;\n\n props.setMinimumPasswordLength(option);\n }\n\n function getButtonClassName(option: number): string {\n let className = 'btn border';\n\n if (option === props.currentValue)\n className += ' btn-dark';\n else\n className += ' btn-outline-dark';\n\n if (option < props.minLength)\n className += ' disabled';\n\n return className;\n }\n\n return (\n <div className='pb-2'>\n <h3 className='h6'>{props.headingText}</h3>\n <div className='btn-group mb-1'>\n {PASSWORD_LENGTHS.map(option => (\n <button\n key={option}\n className={getButtonClassName(option)}\n onClick={e => onClick(e, option)}\n type='button'\n >\n {option}\n </button>\n ))}\n </div>\n <p dangerouslySetInnerHTML={{ __html: props.minPasswordLengthText }}/>\n </div>\n );\n}","import React from 'react';\nimport { Form, useFormikContext } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { useCanSubmitForm } from 'libs/shared/hooks/UseCanSubmitForm';\n\nimport { EditPasswordLength } from 'apps/settings/components/edit-password-length/EditPasswordLength';\nimport { EditSecuritySettings } from 'apps/settings/interfaces/security/EditSecuritySettings';\n\nconst namespace = 'settings.passwordSecuritySettings';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst MINIMUM_ALLOWED_STUDENT_LENGTH = 5;\nconst MINIMUM_ALLOWED_STAFF_LENGTH = 8;\nconst MINIMUM_ALLOWED_ADMIN_LENGTH = 8;\n\nexport function PasswordSecuritySettingsForm(): JSX.Element {\n const formikProps = useFormikContext<EditSecuritySettings>();\n const canSubmit = useCanSubmitForm(formikProps);\n\n return (\n <Form>\n <h2 className='h4'>{getPhrase('heading')}</h2>\n <EditPasswordLength\n currentValue={formikProps.values.minStudentLength}\n headingText={getPhrase('studentSubheading')}\n minLength={MINIMUM_ALLOWED_STUDENT_LENGTH}\n minPasswordLengthText={getPhrase('minimumStudentLength', { length: formikProps.values.minStudentLength })}\n setMinimumPasswordLength={(length: number) => formikProps.setFieldValue('minStudentLength', length)}\n />\n\n <EditPasswordLength\n currentValue={formikProps.values.minStaffLength}\n headingText={getPhrase('staffSubheading')}\n minLength={MINIMUM_ALLOWED_STAFF_LENGTH}\n minPasswordLengthText={getPhrase('minimumStaffLength', { length: formikProps.values.minStaffLength })}\n setMinimumPasswordLength={(length: number) => formikProps.setFieldValue('minStaffLength', length)}\n />\n\n <EditPasswordLength\n currentValue={formikProps.values.minAdminLength}\n headingText={getPhrase('adminSubheading')}\n minLength={MINIMUM_ALLOWED_ADMIN_LENGTH}\n minPasswordLengthText={getPhrase('minimumAdminLength', { length: formikProps.values.minAdminLength })}\n setMinimumPasswordLength={(length: number) => formikProps.setFieldValue('minAdminLength', length)}\n />\n\n <div className='d-flex'>\n <SpinnerButton\n type='submit'\n variant='dark'\n disabled={!canSubmit}\n showSpinner={formikProps.isSubmitting}\n >\n {getPhrase('saveChanges')}\n </SpinnerButton>\n </div>\n </Form>\n );\n}","import { number, object } from 'yup';\n\nimport { EditSecuritySettings } from 'apps/settings/interfaces/security/EditSecuritySettings';\n\nexport const EditPasswordSecuritySettingsValidationSchema = object().shape<EditSecuritySettings>({\n minStudentLength: number()\n .required(),\n \n minStaffLength: number()\n .required(),\n \n minAdminLength: number()\n .required()\n \n}).noUnknown();","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { SecuritySettingsResponse } from 'libs/shared/apps/user-manager/interfaces/SecuritySettingsResponse';\nimport { UserManagerHelper } from 'libs/shared/apps/user-manager/utils/UserManagerHelper';\nimport { FormSubmissionOptions, FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { UserRole } from 'libs/shared/enums/UserRole';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { CurrentUser } from 'libs/shared/interfaces';\n\nimport { PasswordSecuritySettingsForm } from 'apps/settings/components/password-security-settings/PasswordSecuritySettingsForm';\nimport { SettingsLayout } from 'apps/settings/components/settings-layout/SettingsLayout';\nimport { SecuritySettingsRequests } from 'apps/settings/flight-request/SecuritySettingsRequests';\nimport { EditSecuritySettings } from 'apps/settings/interfaces/security/EditSecuritySettings';\nimport { UpdateSecuritySettingsRequest } from 'apps/settings/interfaces/security/requests/UpdateSecuritySettingsRequest';\nimport { EditPasswordSecuritySettingsValidationSchema } from 'apps/settings/utils/validation/EditPasswordSecuritySettingsValidationSchema';\n\nconst namespace = 'settings.securitySettings';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function SecuritySettingsView(): JSX.Element {\n const dispatch = useDispatch();\n const alerts = useAlerts();\n \n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const securitySettings = Flight.useBasicFetch<SecuritySettingsResponse>(\n currentUser.data && SecuritySettingsRequests.getCustomerSecuritySettings(currentUser.data.customerId)\n );\n\n const { getMinimumPasswordLength } = UserManagerHelper;\n const initialStudentLength = getMinimumPasswordLength(securitySettings.data, UserGroup.Learner, UserRole.User);\n const initialStaffLength = getMinimumPasswordLength(securitySettings.data, UserGroup.Staff, UserRole.User);\n const initialAdminLength = getMinimumPasswordLength(securitySettings.data, UserGroup.Staff, UserRole.Admin);\n\n function saveSettings(data: EditSecuritySettings, onDone: (options: FormSubmissionOptions) => void): void {\n const updatedSecuritySettings: UpdateSecuritySettingsRequest = {\n securitySettings: []\n };\n\n if (initialStudentLength !== data.minStudentLength) {\n updatedSecuritySettings.securitySettings.push({\n userType: UserGroup.Learner,\n userRole: UserRole.User,\n minPasswordLength: data.minStudentLength\n });\n }\n\n if (initialStaffLength !== data.minStaffLength) {\n updatedSecuritySettings.securitySettings.push({\n userType: UserGroup.Staff,\n userRole: UserRole.User,\n minPasswordLength: data.minStaffLength\n });\n }\n\n if (initialAdminLength !== data.minAdminLength) {\n updatedSecuritySettings.securitySettings.push({\n userType: UserGroup.Staff,\n userRole: UserRole.Admin,\n minPasswordLength: data.minAdminLength\n });\n }\n\n Flight.fetch(dispatch, SecuritySettingsRequests.setCustomerSecuritySettings(\n currentUser.data.customerId,\n updatedSecuritySettings,\n () => {\n alerts.success(getPhrase('success'));\n },\n () => {\n alerts.error(getPhrase('error'));\n onDone({ reset: true });\n }\n ));\n }\n\n const dataLoaded = !!currentUser.data && !!securitySettings.data;\n\n if (!dataLoaded)\n return <></>;\n\n return (\n <SettingsLayout\n heading={getPhrase('heading')}\n breadcrumbs={[getPhrase('breadcrumb')]}\n >\n <FormWrapper<EditSecuritySettings>\n initialValues={{\n minStudentLength: initialStudentLength,\n minStaffLength: initialStaffLength,\n minAdminLength: initialAdminLength\n }}\n validationSchema={EditPasswordSecuritySettingsValidationSchema}\n onSubmit={saveSettings}\n >\n <PasswordSecuritySettingsForm />\n </FormWrapper>\n </SettingsLayout>\n );\n}"],"names":["BreadcrumbItem","breadcrumb","name","appLink","active","withBackIcon","className","svgName","size","S","Breadcrumbs","breadcrumbs","isMobile","length","map","b","idx","key","PartialBreadcrumbs","numItems","style","height","width","dangerouslySetInnerHTML","__html","FormWrapper","props","castInitialValues","castValuesOnSubmit","initialValues","onSubmit","formikProps","formattedInitialValues","validationSchema","cast","values","omitChildValues","child","Object","keys","forEach","hasOwnProperty","omitNullInitialValues","initialStatus","allowInitialSubmit","enableReinitialize","setSubmitting","resetForm","setFieldError","formattedData","options","reset","errors","entries","value","children","f","useFormikContextWrapper","defaultProps","DEFAULT_PARTIAL_LOADING_OPTIONS","minWidth","maxWidth","PartialLoadingHelper","getPartialLoadingItems","opts","Array","Math","max","floor","random","namespace","useCanAccessSettings","requiredPermissions","hasPermissions","settingsGroups","currentRoute","application","some","group","modules","settingsModule","action","SettingsLayout","canAccess","replace","i","heading","headingButton","description","SecuritySettingsRequests","getCustomerSecuritySettings","customerId","success","error","url","normalize","setCustomerSecuritySettings","data","invalidationKeys","type","PASSWORD_LENGTHS","EditPasswordLength","getButtonClassName","option","currentValue","minLength","headingText","onClick","e","preventDefault","setMinimumPasswordLength","minPasswordLengthText","getPhrase","LanguageService","MINIMUM_ALLOWED_STUDENT_LENGTH","MINIMUM_ALLOWED_STAFF_LENGTH","MINIMUM_ALLOWED_ADMIN_LENGTH","PasswordSecuritySettingsForm","canSubmit","minStudentLength","setFieldValue","minStaffLength","minAdminLength","SpinnerButton","variant","disabled","showSpinner","isSubmitting","EditPasswordSecuritySettingsValidationSchema","shape","required","noUnknown","SecuritySettingsView","dispatch","alerts","currentUser","UserRequests","securitySettings","getMinimumPasswordLength","UserManagerHelper","initialStudentLength","UserGroup","UserRole","User","initialStaffLength","initialAdminLength","onDone","updatedSecuritySettings","push","userType","userRole","minPasswordLength"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[5936],{71020:(e,t,n)=>{n.d(t,{_:()=>u});var r=n(32735),a=n(80247),i=n(34152),l=n(83914),c=n(35223);const s={container:"VwD1b",spinner:"eJ85e"};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}function u(e){var t,n,u=(t=(0,i.YD)(),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,l,c=[],s=!0,o=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);s=!0);}catch(e){o=!0,a=e}finally{try{if(!s&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(o)throw a}}return c}}(t,n)||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}}(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.")}()),d=u[0],m=u[1];return r.useEffect((function(){var t;e.fetchOnScroll&&m&&!e.isFetching&&(null===(t=e.fetchNext)||void 0===t||t.call(e,e.nextCursor))}),[m,e.isFetching]),r.createElement("div",{className:"p-3 text-center ".concat(s.container),ref:d},e.isFetching?r.createElement(a.Z,{as:"span",animation:"border",role:"status",className:s.spinner}):r.createElement(l.x,{svgName:c.vn.ChevronDown,className:"svg-container cursor-pointer",size:l.S.Large,onClick:function(){var t;return null===(t=e.fetchNext)||void 0===t?void 0:t.call(e,e.nextCursor)}}))}u.defaultProps={fetchOnScroll:!1}},17997:(e,t,n)=>{n.d(t,{H:()=>o});var r=n(32735),a=n(36848),i=n(83345),l=n(22843),c=n(84591),s=n(68626),o=r.memo((function(e){var t,n,o=e.data,u=e.thumbnailSize,d=e.preloadImage,m=Object.assign(Object.assign({},e.questionsAppLink),{args:[e.data.id]}),v=null===(n=null===(t=o._timepoints)||void 0===t?void 0:t.value)||void 0===n?void 0:n.length;return r.createElement("div",{className:"flex-shrink-0 px-1 col-6 col-sm-4"},r.createElement(c.u,{type:"static",textPosition:s.z.Independent,video:o,appLink:e.getAppLink(o),imageOptions:{size:u},preload:d,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,setFavourite:e.setFavourite,canFavourite:e.canFavourite,hideDuration:!1,imageCdnUrl:e.imageCdnUrl,isPlugin:e.isPlugin,showOwner:e.showOwner}),r.createElement("div",{className:"mt-2"},r.createElement(l.h,Object.assign({},e,{video:o,appLink:e.getAppLink(o)}))),r.createElement("div",{className:"mt-1"},r.createElement(a.F,{appLink:m,className:"cursor-pointer"},r.createElement(i.x,{namespace:"shared.interactiveWidgetItemV2",phrase:"previewQuestions",options:{count:v,smartCount:v}}))))}))},74696:(e,t,n)=>{n.d(t,{S:()=>o});var r=n(32735),a=n(68050),i=n(69111),l=n(9977),c=n(79967);const s={partialOptions:"Gufgq",partialName:"SicQQ",partialDescription:"dPGMq",partialThumbnail:"vZrnb",partialDragHandle:"iq73R"};function o(e){return r.createElement("div",{className:"mx-2"},Array(e.numVideos).fill(null).map((function(t,n){return r.createElement("div",{className:"d-flex",key:n},e.allowBulkActions&&r.createElement("div",{className:"form-check pe-3 pe-sm-2 mx-0 mx-md-2"}),r.createElement(u,Object.assign({},e)))})))}function u(e){var t=(0,c.k)(),n="sm"===l.O.getSize(t,"md"),o=e.withReordering&&!t.xs;return r.createElement(a.Z,{className:"".concat(n?"":"py-2"," flex-grow-1")},r.createElement(i.Z,Object.assign({},l.O.getThumbnailColumns(),{className:"flex-column align-items-flex-start ".concat(n?"pb-2 pe-1":"mb-1 pe-3 pe-md-2")}),r.createElement(a.Z,null,!!o&&r.createElement("div",{className:"d-flex align-items-center justify-content-center col-2"},r.createElement("div",{className:"partial-loading-background ".concat(s.partialDragHandle)})),r.createElement(i.Z,{xs:l.O.getThumbnailColSize(o)},r.createElement("div",{className:"partial-loading-background ".concat(n?"rounded":"rounded-3"," ").concat(s.partialThumbnail)})))),r.createElement(i.Z,Object.assign({},l.O.getDetailsColumns(),{className:n?"pb-2":"px-2"}),r.createElement("div",{className:"partial-loading-background mb-1 ".concat(s.partialName)}),r.createElement("div",{className:"partial-loading-background ".concat(s.partialDescription)})))}o.defaultProps={numVideos:15}},3133:(e,t,n)=>{n.d(t,{R:()=>o});var r=n(32735),a=n(20789),i=n(86794),l=n(2786),c=n(64818);const s={avatarContainer:"kd18L",cvIcon:"smUBc"};function o(e){var t;if(!e.owner&&!e.isClickViewCurated)return r.createElement(r.Fragment,null);if(e.isClickViewCurated)return r.createElement("div",{className:"clamp-1 d-flex align-items-center"},r.createElement("div",{className:"".concat(s.avatarContainer," me-1 border rounded-circle position-relative")},r.createElement(i.b,{className:"me-1 ".concat(s.cvIcon)},r.createElement(l.Sd,null))),"ClickView");var n=c.l.getCommunityName(e.owner);return n?r.createElement("div",{className:"d-flex align-items-center"},r.createElement("div",{className:"".concat(s.avatarContainer," me-1")},r.createElement(a.q,{imageCdnUrl:e.imageCdnUrl,initials:c.l.getInitials(e.owner.name,e.owner.surname),imageUrl:null===(t=e.owner.avatar)||void 0===t?void 0:t.url})),r.createElement("div",{className:"clamp-1"},n)):r.createElement(r.Fragment,null)}},47862:(e,t,n)=>{n.d(t,{K:()=>d});var r=n(32735),a=n(65858),i=n(36848),l=n(83345),c=n(84591),s=n(3133),o=n(54610),u=n(68626);var d=r.memo((function(e){var t,n=Object.assign(Object.assign({},e.questionsAppLink),{args:[e.data.id]});return r.createElement("div",{className:"flex-shrink-0 px-1 ".concat("rXatl")},r.createElement("div",{className:"row m-0 border rounded p-2 h-100"},r.createElement("div",{className:"col-6 p-0"},r.createElement(c.u,{video:e.data,appLink:e.getAppLink(e.data),type:"cosmetic",imageOptions:{size:o.h2.Small},textPosition:u.z.Independent,preload:!0,analyticsOptions:{location:a.LZ.SlidingListItem}})),r.createElement("div",{className:"col-6 p-0"},r.createElement("div",{className:"ps-2"},r.createElement(i.F,{appLink:e.getAppLink(e.data)},r.createElement("h3",{className:"h6 mb-1"},r.createElement("span",{className:"clamp-2"},e.data.name))),r.createElement(s.R,{owner:e.data.owner,isClickViewCurated:null===(t=e.data._isClickViewCurated)||void 0===t?void 0:t.value,imageCdnUrl:e.imageCdnUrl}),r.createElement(i.F,{className:"info-link",appLink:n},r.createElement(l.x,{namespace:"shared.interactiveWidgetItem",phrase:"previewQuestions"}))))))}))},94644:(e,t,n)=>{n.d(t,{r:()=>u});var r=n(50242),a=n(81886),i=n(67058),l=n(14553),c=n(49267),s=n(49075),o={notFound:i.d,forbidden:{rating:l.q,yearLevel:l.q,region:c.a,privacy:l.q},badRequest:s._};function u(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var i;i="number"==typeof e?e:e.status;var l=Object.assign(Object.assign({},o),t);i&&a.Q.Ry.isStatusCodeError(i)&&(i!==r.o.NotFound?i!==r.o.Forbidden?n.badRequest||a.Q.Ry.throw(new l.badRequest):n.forbidden||a.Q.Ry.throw(new l.forbidden.privacy):n.notFound||a.Q.Ry.throw(new l.notFound))}}},91286:(e,t,n)=>{n.d(t,{v:()=>l});var r=n(32735),a=n(94644);function i(e){return e.map((function(e){return e.statusCode})).join(":")}function l(e,t,n){var l=Array.isArray(e)?e:[e];(0,r.useEffect)((function(){l.forEach((function(e){(0,a.r)(e.statusCode,t,n)}))}),[i(l),t,n])}},59598:(e,t,n)=>{var r;n.d(t,{K:()=>r}),function(e){e.Resources="resources",e.Interactives="interactives",e.Video="video",e.Clips="clips",e.CurriculumLinks="curriculum-links",e.VideoDetails="video-details",e.RelatedVideos="related-videos",e.ClippedFrom="clipped-from"}(r||(r={}))},84062:(e,t,n)=>{n.d(t,{M:()=>g});var r=n(32735),a=n(17082),i=n(65858),l=n(38647),c=n(16714),s=n(22902),o=n(31908),u=n(26492),d=n(78166),m=n(27638),v=n(22490),p=n(57245);function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function g(e){var t,n,g=e.shareLink?i.LZ.PlaySharedInteractive:i.LZ.PlayInteractive,h=(t=r.useState(!0),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,l,c=[],s=!0,o=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);s=!0);}catch(e){o=!0,a=e}finally{try{if(!s&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(o)throw a}}return c}}(t,n)||function(e,t){if(e){if("string"==typeof e)return f(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?f(e,t):void 0}}(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.")}()),y=h[0],E=h[1],b=o.M.isVideoTypeArchived(e.interactive),N=r.useMemo((function(){return(0,a.oD)()}),[]),I=(0,m.u)(g),A=I.setFavourite,w=I.canFavourite,x=(0,s.T)().hasPermissions;return r.createElement("div",{className:"px-3"},b&&r.createElement(u.T,{typeId:e.interactive.typeId,hasStudentExperience:!0}),r.createElement("div",{className:"mb-3"},r.createElement(p._,{config:e.config,video:e.interactive,currentUser:e.currentUser,shareLink:e.shareLink,viewKey:e.viewKey,startTime:e.startTime,onShowSummary:function(e){E(!e)},summaryPortalNode:N})),r.createElement("div",null,y&&r.createElement("h1",{className:"h3 d-flex"},e.interactive.name,r.createElement(l.m,{tooltipPlacement:"right",className:"ps-1",video:e.interactive,yearGroups:e.yearGroups}))),r.createElement(a.t0,{node:N}),!x(c.C.StudentExperience)&&r.createElement(d.Z,{currentVideo:e.interactive,yearGroups:e.yearGroups,currentUser:e.currentUser,setFavourite:A,canFavourite:w,relatedVideos:e.relatedVideos,audiences:e.audiences,getVideoAppLink:function(t,n){var r;return v.W.getAppLink(t,Object.assign(Object.assign({},n),{context:e.queryParams.context,contextId:e.queryParams.contextId,playNext:e.queryParams.playNext,shareId:null===(r=e.shareLink)||void 0===r?void 0:r.id,moviesAndTv:e.queryParams.mtv}))},moviesAndTv:e.queryParams.mtv,isPlugin:e.isPlugin}))}},25758:(e,t,n)=>{n.d(t,{x:()=>U});var r=n(32735),a=n(17082),i=n(23481),l=n(28400),c=n(65858),s=n(83657),o=n(36848),u=n(17997),d=n(83345),m=n(38647),v=n(11518),p=n(47862),f=n(10439),g=n(35429),h=n(5960),y=n(4594),E=n(58704),b=n(37802),N=n(31908),I=n(47938),A=n(78166),w=n(14070),x=n(97291),C=n(10671),S=n(27638),P=n(22490),k=n(83914),V=n(83523),O=n(76177),L=n(35223),T=i.T.encloseNamespace("interactives.previewInteractive");function j(e){return r.createElement("div",{className:"alert text-dark bg-light-blue px-2 rounded d-flex flex-column flex-lg-row justify-content-between mb-3 align-items-center",role:"alert"},e.isArchived?r.createElement("div",{className:"d-flex align-items-center"},r.createElement(k.x,{svgName:L.vn.Archive,size:k.S.Standard,className:"me-2 svg-container"}),r.createElement("div",{className:"w-100"},r.createElement("p",{className:"fw-semibold mb-0"},T("archivedInfoTitle")),r.createElement("p",{className:"mb-1"},T("archivedInfo")))):r.createElement(d.x,{phrase:"alert"}),e.isPreviewPreventScrubbingEnabled&&r.createElement(O.u,{title:T("previewPreventScrubbingExplain"),trigger:"hover",spanHack:!0},r.createElement("div",{className:"d-flex mt-1 mt-lg-0"},r.createElement("div",{className:"me-2"},r.createElement(d.x,{phrase:"previewPreventScrubbing"})),r.createElement(V.Z,{on:e.isPreviewingPreventScrubbing,onClick:e.toggleStudentMode}))))}function F(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 R="interactives.previewInteractive",M=i.T.encloseNamespace(R);function U(e){var t,n,i,k,V,O,L,T,U,q=e.shareId?c.LZ.PreviewSharedInteractive:c.LZ.PreviewInteractive,G=(0,g.g)(),D=(T=r.useState(!1),U=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,l,c=[],s=!0,o=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);s=!0);}catch(e){o=!0,a=e}finally{try{if(!s&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(o)throw a}}return c}}(T,U)||function(e,t){if(e){if("string"==typeof e)return F(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?F(e,t):void 0}}(T,U)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),_=D[0],Z=D[1],z=N.M.getCanBeConsumed(e.interactive).canConsume,W=(0,C._)({location:C.i.PlayPage,shareId:e.shareId}),Q=(0,S.u)(q),$=Q.setFavourite,B=Q.canFavourite,K=(0,b.r)(null).hasPlayPageV2;O=_,L=function(){var e,t,n;null===(n=null===(t=null===(e=G.playerRef)||void 0===e?void 0:e.current)||void 0===t?void 0:t.togglePreviewPreventScrubbing)||void 0===n||n.call(t)},r.useEffect((function(){L()}),[O]);var H,Y,X,J,ee=(H=e.interactive)._parentClip||H._parentVideo;N.M.isClip(ee)?(Y=null===(n=null===(t=ee.interactives)||void 0===t?void 0:t.data)||void 0===n?void 0:n.filter((function(t){return t.id.toString()!==e.interactive.id.toString()})),X=ee.name,J={application:x.O.CLIPS,action:w.e.Clips.PLAY_CLIP,args:[ee.id,l.m.slugify(ee.name)]}):(Y=null===(k=null===(i=ee.interactives)||void 0===i?void 0:i.data)||void 0===k?void 0:k.filter((function(t){return t.id.toString()!==e.interactive.id.toString()})),X=ee.name,J={application:x.O.VIDEOS,action:w.e.Videos.PLAY_VIDEO,args:[ee.id,l.m.slugify(ee.name)]});var te=e.interactive.status===h.X.Draft;return r.createElement(d.D.Provider,{value:R},r.createElement("div",{className:"px-4"},r.createElement(I.W,{restrictions:e.interactive._restrictions,yearGroups:e.yearGroups,objectId:e.interactive.id,objectTypeId:y.E.Interactive,canManageVideoAccess:e.canManageVideoAccess}),r.createElement(j,{isPreviewPreventScrubbingEnabled:e.isPreviewPreventScrubbingEnabled,isPreviewingPreventScrubbing:_,toggleStudentMode:function(){Z(!_)},isArchived:N.M.isVideoTypeArchived(e.interactive)}),r.createElement("div",{className:"mb-3"},z&&r.createElement(f.r,{key:e.interactive.id,objectId:e.interactive.id,objectTypeId:e.interactive.typeId,shareId:e.shareId,startTime:null!==(V=e.queryParams.t)&&void 0!==V?V:e.queryParams.startTime,mode:"default",location:"play-page"})),r.createElement("div",{className:"d-flex justify-content-between align-items-center"},r.createElement("div",{className:"inline-block w-100"},r.createElement("div",{className:"ms-2 float-end"},r.createElement(s.e,{actions:W.getVideoActions(e.interactive),actionsDropdownClassName:"btn btn-outline-dark",fetchMore:function(){return W.fetchMoreActions(e.interactive)}})),r.createElement("h1",{className:"h3 mb-2"},te&&r.createElement("div",{className:"badge draft-badge me-2 align-bottom flex-shrink-0 h-auto lh-base"},r.createElement(d.x,{phrase:"draft"})),e.interactive.name,r.createElement(m.m,{tooltipPlacement:"right",className:"ps-1",video:e.interactive,yearGroups:e.yearGroups})),N.M.canViewOriginalVideo(e.interactive)&&r.createElement("div",{className:"mb-1 me-3 clamp-1"},r.createElement(d.x,{phrase:"viewOriginal"})," ",r.createElement(o.F,{appLink:J,className:"text-info"},X)))),e.interactive.description&&r.createElement("p",null,e.interactive.description),r.createElement("div",{className:"mb-3"},r.createElement(a.t0,{node:G.questionListPortalNode})),!!(null==Y?void 0:Y.length)&&r.createElement("div",{className:"pb-3"},K?r.createElement(v.kM,{name:M("otherInteractives",{count:Y.length}),contents:E.z.Interactives,collection:Y,prefetched:!0,getChildAppLink:function(e){return{application:x.O.INTERACTIVES,action:w.e.Interactives.VIEW_INTERACTIVE,args:[e.id,l.m.slugify(e.name)]}},childComponent:u.H,extraChildComponentProps:{yearGroups:e.yearGroups,questionsAppLink:{application:x.O.INTERACTIVES,action:w.e.Interactives.PREVIEW_QUESTIONS},imageCdnUrl:e.config.imageCdnUrl,isPlugin:e.isPlugin},analyticsData:{widgetId:"interactives"}}):r.createElement(v.kM,{name:M("otherInteractives",{count:Y.length}),contents:E.z.Interactives,collection:Y,prefetched:!0,getChildAppLink:function(e){return{application:x.O.INTERACTIVES,action:w.e.Interactives.VIEW_INTERACTIVE,args:[e.id,l.m.slugify(e.name)]}},childComponent:p.K,extraChildComponentProps:{video:ee,questionsAppLink:{application:x.O.INTERACTIVES,action:w.e.Interactives.PREVIEW_QUESTIONS},imageCdnUrl:e.config.imageCdnUrl},analyticsData:{widgetId:"interactives"}})),r.createElement(A.Z,{currentVideo:e.interactive,yearGroups:e.yearGroups,setFavourite:$,canFavourite:B,currentUser:e.currentUser,audiences:e.audiences,relatedVideos:e.relatedVideos,getVideoAppLink:function(t,n){return P.W.getAppLink(t,Object.assign(Object.assign({},n),{context:e.queryParams.context,contextId:e.queryParams.contextId,playNext:e.queryParams.playNext,shareId:e.shareId,moviesAndTv:e.queryParams.mtv}))},moviesAndTv:e.queryParams.mtv,isPlugin:e.isPlugin})))}},26492:(e,t,n)=>{n.d(t,{T:()=>u});var r=n(32735),a=n(23481),i=n(65858),l=n(83914),c=n(4594),s=n(35223),o="shared.playPage";function u(e){var t=a.T.encloseNamespace(o),n=function(e){switch(e){case c.E.Video:return"video";case c.E.Clip:return"clip";case c.E.Interactive:return"interactive";default:return""}}(e.typeId);return r.createElement("div",{className:"alert bg-light-blue p-3 rounded-3 d-flex justify-content-between align-items-center"},r.createElement(l.x,{svgName:s.vn.Archive,size:l.S.Standard,className:"me-2 svg-container"}),r.createElement("div",{className:"w-100"},r.createElement("p",{className:"fw-semibold mb-0"},t("archivedInfoTitle",{type:n})),(!e.hasStudentExperience||n===i.py.Video)&&r.createElement("p",{className:"mb-1"},t("archivedInfo",{type:"".concat(n,"s")}))))}},47938:(e,t,n)=>{n.d(t,{W:()=>m});var r=n(32735),a=n(36848),i=n(83914),l=n(83345),c=n(5345),s=n(26361),o=n(14070),u=n(97291),d="shared.playPage";function m(e){var t,n;if(!(null===(n=null===(t=e.restrictions)||void 0===t?void 0:t.value)||void 0===n?void 0:n.length)||!e.yearGroups||!e.canManageVideoAccess)return r.createElement(r.Fragment,null);if(s.l.getWeightedRestriction(e.restrictions.value).type!==c.c.Custom)return r.createElement(r.Fragment,null);var m=s.l.mapRestrictionToClass(e.restrictions),v="".concat(m," fw-semibold p-2 rounded mb-3 d-flex justify-content-between align-items-center");return r.createElement("div",{className:v},r.createElement("div",{className:"d-flex align-items-center"},r.createElement(i.x,{svgName:s.l.mapRestrictionToSvg(e.restrictions),size:i.S.Large}),r.createElement("span",{className:"ps-1"},s.l.mapRestrictionToText(e.restrictions,e.yearGroups))),r.createElement(a.F,{appLink:{application:u.O.DEFAULT,action:o.e.Default.APPROVE_VIDEO,params:{objectId:e.objectId,objectTypeId:e.objectTypeId}},className:"btn btn-outline-dark"},r.createElement(l.x,{namespace:d,phrase:"approve"})))}},78166:(e,t,n)=>{n.d(t,{Z:()=>h});var r=n(32735),a=n(71020),i=n(83345),l=n(74696),c=n(13231),s=n(51365),o=n(22902),u=n(59598),d=n(31908),m=n(10671),v=n(10741),p=n(22490),f=n(82431),g="shared.relatedVideos";function h(e){var t,n,h=(0,m._)({location:m.i.VideoItem}),y=(0,o.T)().hasPermissions;if(!(null===(t=e.currentUser)||void 0===t?void 0:t.isAuthenticated))return r.createElement(r.Fragment,null);if(e.relatedVideos.hasError)return r.createElement(r.Fragment,null);if(e.relatedVideos.hasCompleted&&!(null===(n=e.relatedVideos.videos)||void 0===n?void 0:n.length))return r.createElement(r.Fragment,null);if(!e.relatedVideos.isFetching&&!e.relatedVideos.hasCompleted)return r.createElement(r.Fragment,null);var E=!d.M.isInteractive(e.currentVideo);return r.createElement("section",{id:u.K.RelatedVideos,className:"play-page-section",ref:function(t){var n,r;t&&(null===(n=e.headingRef)||void 0===n?void 0:n.current)&&(null===(r=e.relatedVideos.videos)||void 0===r?void 0:r.length)&&e.headingRef.current.set(u.K.RelatedVideos,t)}},r.createElement(s.M.Provider,{value:h},r.createElement("h2",{className:"h4 mb-0"},r.createElement(i.x,{namespace:g,phrase:E?"upNext":"relatedVideos"})),e.relatedVideos.hasCompleted?r.createElement(c.E4,{videos:e.relatedVideos.videos,yearGroups:e.yearGroups,getSubTextAppLink:function(t){return f.j.getSeriesAppLink(t.series,e.moviesAndTv?{mtv:!0}:null)},getVideoAppLink:e.getVideoAppLink,hasPermissions:y,setFavourite:e.setFavourite,canFavourite:e.canFavourite,presentationAudiences:e.audiences,getPreviewQuestionsAppLink:function(e){return v.j.getPreviewQuestionsAppLink(e)},isPlugin:e.isPlugin,getClassroomGuideAppLink:p.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:p.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:p.W.getResourceGuidanceAppLink}):r.createElement(l.S,null),e.relatedVideos.hasMore&&r.createElement(a._,{isFetching:e.relatedVideos.isFetching,fetchNext:e.relatedVideos.fetchNext})))}},44110:(e,t,n)=>{n.d(t,{i:()=>l});var r=n(20354),a=n(89454),i=n(86698),l=function(){var e=(0,i.y)({redirectOnError:!0}),t=e.activePresentation,n=e.getFallbackPresentation,l=t||n();return r.a.useBasicFetch(!!l&&a.O.presentationAudiences(l.id))}},53073:(e,t,n)=>{n.d(t,{f:()=>o});var r=n(20354),a=n(16714),i=n(12754),l=n(31949),c=n(22902),s=n(15311);function o(){var e=(0,c.T)().hasPermissions,t=(0,s.r)().hasProduct,n=r.a.useBasicFetch(l.N.currentUser());return!e(a.C.StudentExperience)&&t(i.x.Primary)&&n.data.isAuthenticated}},97816:(e,t,n)=>{n.d(t,{V:()=>d});var r=n(32735),a=n(20354),i=n(21750),l=n(31949),c=n(1575),s=n(31908);function o(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}}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}function d(e){var t,n,d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},m=a.a.useBasicFetch(l.N.currentUser()),v=r.useRef(new Set),p=function(e){return e?Array.isArray(e)?e.filter((function(e){return!!e&&(s.M.isVideo(e)||s.M.isClip(e))})):"data"in e?e.data.filter((function(e){return!!e&&(s.M.isVideo(e)||s.M.isClip(e))})):[]:[]}(e),f=p.map((function(e){return e.id})),g=(t=r.useState([]),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,l,c=[],s=!0,o=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);s=!0);}catch(e){o=!0,a=e}finally{try{if(!s&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(o)throw a}}return c}}(t,n)||o(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.")}()),h=g[0],y=g[1];r.useEffect((function(){if((null==f?void 0:f.length)&&m.hasCompleted){var e=[];f.forEach((function(t){v.current.has(t)||(e.push(t),v.current.add(t))})),e.length&&y((function(t){var n,r=[].concat(function(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||o(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(t),[c.R.videoMixinAssocs(e,d.flightNamespace)]);return(null===(n=m.data)||void 0===n?void 0:n.isAuthenticated)&&r.push(i.x.hasCurriculumLinks(e,null,d.flightNamespace)),r}))}}),[null==f?void 0:f.length,m.hasCompleted]),a.a.useBasicFetchAll(h)}},68050:(e,t,n)=>{n.d(t,{Z:()=>o});var r=n(95685),a=n.n(r),i=n(32735),l=n(46304),c=n(74512);const s=i.forwardRef((({bsPrefix:e,className:t,as:n="div",...r},i)=>{const s=(0,l.vE)(e,"row"),o=(0,l.pi)(),u=(0,l.zG)(),d=`${s}-cols`,m=[];return o.forEach((e=>{const t=r[e];let n;delete r[e],null!=t&&"object"==typeof t?({cols:n}=t):n=t;const a=e!==u?`-${e}`:"";null!=n&&m.push(`${d}${a}-${n}`)})),(0,c.jsx)(n,{ref:i,...r,className:a()(t,s,...m)})}));s.displayName="Row";const o=s}}]);
|
|
2
|
-
//# sourceMappingURL=5936-6fe810d3cb-lite.chunk.js.map
|