@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/193-f08b054631-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/content-updates/flight-requests/ContentUpdateRequests.ts","file:///app/packages/libs/shared/src/apps/discover/components/header/discover-header.scss","file:///app/packages/libs/shared/src/apps/discover/components/header/DiscoverHeader.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx","file:///app/packages/libs/shared/src/components/video-list/partial-loading/partial-video-list.scss","file:///app/packages/libs/shared/src/components/video-list/partial-loading/PartialVideoList.tsx","file:///app/packages/libs/shared/src/hooks/UseBatchFetch.ts","file:///app/packages/projects/lite/src/apps/content-updates/components/classification-banner/classification-banner.scss","file:///app/packages/projects/lite/src/apps/content-updates/components/classification-banner/ClassificationBanner.tsx","file:///app/packages/projects/lite/src/apps/content-updates/components/classification-update-breadcrumbs/ClassificationUpdateBreadcrumbs.tsx","file:///app/packages/projects/lite/src/apps/content-updates/views/content-updates/components/ContentUpdateClassification.tsx","file:///app/packages/projects/lite/src/apps/content-updates/views/content-updates/partial-loading/partial-content-updates.scss","file:///app/packages/projects/lite/src/apps/content-updates/views/content-updates/partial-loading/PartialContentUpdatesView.tsx","file:///app/packages/projects/lite/src/apps/content-updates/views/content-updates/ContentUpdatesView.tsx","file:///app/packages/projects/lite/src/shared/hooks/usePresentationAudiences.ts","file:///app/packages/projects/lite/src/shared/hooks/useShowCalendar.ts","file:///app/packages/projects/lite/src/shared/hooks/useVideoMixin.ts","file:///app/packages/libs/shared/src/components/pill-tab-selector/pill-tab-selector.scss","file:///app/node_modules/react-bootstrap/esm/Row.js"],"sourcesContent":["import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { Video } from 'libs/shared/interfaces';\n\n// Why 6 you ask? Well, we display 5, then we also display a link to \"see all updates for classification\"\n// if there are more than 5. By fetching 6, we can tell if there are more than 5 (api doesn't tell us).\nconst CONTENT_UPDATES_VIDEO_LIMIT = 6;\n\nexport const ContentUpdateRequests = {\n getContentUpdates(presentationId: string, from: string, to: string, gatewayApiUrl?: string): Flight.PublicRequest {\n const url = UrlHelper.urlBuilder(`${gatewayApiUrl || '{gateway}'}/v1/discover/content-updates`, {\n from,\n to,\n limit: CONTENT_UPDATES_VIDEO_LIMIT,\n query: '(videoCollection)'\n });\n\n const publicUrl = UrlHelper.urlBuilder(`/api/discover/presentations/${presentationId}/content-updates`, {\n from,\n to,\n limit: CONTENT_UPDATES_VIDEO_LIMIT,\n query: '(videoCollection)'\n });\n\n return {\n url,\n publicUrl,\n key: 'content:updates',\n /**\n * The namespace here is required so that flight's normaliser doesn't override\n * fully fetched classification objects matching the IDs here.\n * \n * Without this, navigating from content updates to one of the topics in the content updates\n * list, then back to content updates will cause the page to break.\n */\n normalizeOptions: {\n namespace: 'contentupdates'\n },\n formatData: (contentUpdates: HashObject[]) => {\n return contentUpdates.map(contentUpdate => {\n // Change id field here to make normalization in Flight easier\n return {\n id: contentUpdate.classificationId,\n videos: contentUpdate.videos\n };\n });\n }\n };\n },\n\n getClassifications(ids: string[]): Flight.PublicRequest {\n const url = UrlHelper.urlBuilder('/api/domain/v1/subjects', {\n id: ids,\n query: 'banner'\n });\n\n const publicUrl = UrlHelper.urlBuilder('/api/subjects/classifications', {\n id: ids,\n query: 'banner'\n });\n\n return {\n url,\n publicUrl,\n key: `classifications:${ids.join(',')}`\n };\n },\n\n getClassification(id: string): Flight.PublicRequest {\n return {\n url: `/api/domain/v1/subjects/${id}?query=banner`,\n publicUrl: `/api/subjects/classifications/${id}?query=banner`,\n key: `classification:${id}`\n };\n },\n\n getClassificationUpdates(id: string, from: string, to: string): Flight.PublicRequest {\n const url = UrlHelper.urlBuilder(`/api/domain/v1/subjects/${id}/content-updates`, {\n from,\n to,\n query: '(videoCollection)'\n });\n\n const publicUrl = UrlHelper.urlBuilder(`/api/subjects/classifications/${id}/content-updates`, {\n from,\n to,\n query: '(videoCollection)'\n });\n\n return {\n url,\n publicUrl,\n key: `classification:update:${id}:${from}:${to}`\n };\n },\n\n getContentUpdateVideos(from: string, to: string): Flight.PublicRequest {\n return {\n url: UrlHelper.urlBuilder(`/api/domain/v1/subjects/content-updates/videos`, {\n from,\n to,\n query: '(videoCollection)'\n }),\n publicUrl: UrlHelper.urlBuilder(`/api/subjects/content-updates/videos`, {\n from,\n to,\n query: '(videoCollection)'\n }),\n key: `content:update:videos:${from}:${to}`\n };\n },\n\n /**\n * TODO: Delete thise and use the shared video requests\n */\n videos(ids: string[], success?: (data: Video[]) => void): Flight.Request {\n const url = `/api/domain/v1/videos?ids=${ids.join(',')}&with=(videoCollection)`;\n\n return {\n url,\n key: `videos:by:id:${ids.join(',')}`,\n success\n };\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"pillTab\":\"bMJM0\"};","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { DashboardUserType } from 'libs/shared/interfaces';\n\nimport styles from './discover-header.scss';\n\nconst namespace = 'discover.header';\n\nexport interface DiscoverHeaderAppLinks {\n forYou: Core.AppLink;\n whatsNew: Core.AppLink;\n calendar: Core.AppLink;\n}\n\ninterface DiscoverHeaderProps {\n type: DashboardUserType;\n hasStudentExperience?: boolean;\n appLinks?: DiscoverHeaderAppLinks;\n showCalendar: boolean;\n active: keyof DiscoverHeaderAppLinks;\n}\n\nexport function DiscoverHeader(props: DiscoverHeaderProps): JSX.Element {\n if (!props.type)\n return <></>;\n\n if (props.type === DashboardUserType.Learner || props.hasStudentExperience) {\n return (\n <div className='py-3'>\n <h1 className='h2 mb-0'>\n <Text namespace={namespace} phrase='heading' />\n </h1>\n </div>\n );\n }\n\n const tabs = [{\n name: LanguageService.getPhrase(namespace, 'forYou'),\n appLink: props.appLinks?.forYou,\n active: props.active === 'forYou',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'forYou'),\n url: AppLinkHelper.getHref(props.appLinks?.forYou)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }, {\n name: LanguageService.getPhrase(namespace, 'whatsNew'),\n appLink: props.appLinks?.whatsNew,\n active: props.active === 'whatsNew',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'whatsNew'),\n url: AppLinkHelper.getHref(props.appLinks?.whatsNew)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }];\n\n if (props.showCalendar) {\n tabs.push({\n name: LanguageService.getPhrase(namespace, 'calendar'),\n appLink: props.appLinks?.calendar,\n active: props.active === 'calendar',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'calendar'),\n url: AppLinkHelper.getHref(props.appLinks?.calendar)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n });\n }\n\n return (\n <div className='py-3 text-center'>\n <PillTabSelector\n tabs={tabs}\n className={styles.pillTab}\n />\n </div>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svgName && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svgName={props.tab.svgName} />\n </div>\n )}\n\n {props.tab.name}\n\n {typeof (props.tab.count) === 'number' && (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} />\n </div>\n )}\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svgName?: string;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n containerRef?: (el: HTMLElement) => void;\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg'\n}\n\nPillTabSelector.defaultProps = {\n borderRadius: 'lg'\n};\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n\n return (\n <nav className={props.className ?? ''} ref={props.containerRef}>\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${props.borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset p-2 text-nowrap ${styles.tabLink}\n `}\n onClick={() => onSelectTab(tab)}\n >\n <TabContents tab={tab} />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"partialOptions\":\"Gufgq\",\"partialName\":\"SicQQ\",\"partialDescription\":\"dPGMq\",\"partialThumbnail\":\"vZrnb\",\"partialDragHandle\":\"iq73R\"};","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { VideoListHelper } from 'libs/shared/components/video-list/VideoListHelper';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\n\nimport styles from './partial-video-list.scss';\n\ninterface PartialVideoListProps {\n withReordering?: boolean;\n numVideos?: number;\n allowBulkActions?: boolean;\n}\n\nPartialVideoList.defaultProps = {\n numVideos: 15\n};\n\nexport function PartialVideoList(props: PartialVideoListProps): JSX.Element {\n return (\n <div className='mx-2'>\n {Array(props.numVideos).fill(null).map((_, i) => (\n <div className='d-flex' key={i}>\n {props.allowBulkActions && <div className='form-check pe-3 pe-sm-2 mx-0 mx-md-2' />}\n <PartialVideoItem {...props} />\n </div>\n ))}\n </div>\n );\n}\n\nexport function PartialVideoItem(props: PartialVideoListProps): JSX.Element {\n const breakpoints = useBreakpoints();\n\n const size = VideoListHelper.getSize(breakpoints, 'md');\n const isSmall = size === 'sm';\n\n const withDragHandle = props.withReordering && !breakpoints.xs;\n\n return (\n <Row className={`${isSmall ? '' : 'py-2'} flex-grow-1`}>\n <Col {...VideoListHelper.getThumbnailColumns()} className={`flex-column align-items-flex-start ${isSmall ? `pb-2 pe-1` : 'mb-1 pe-3 pe-md-2'}`}>\n <Row>\n {!!withDragHandle && (\n <div className='d-flex align-items-center justify-content-center col-2'>\n <div className={`partial-loading-background ${styles.partialDragHandle}`} />\n </div>\n )}\n <Col xs={VideoListHelper.getThumbnailColSize(withDragHandle)}>\n <div className={`partial-loading-background ${isSmall ? 'rounded' : 'rounded-3'} ${styles.partialThumbnail}`} />\n </Col>\n </Row>\n </Col>\n <Col {...VideoListHelper.getDetailsColumns()} className={isSmall ? 'pb-2' : 'px-2'}>\n <div className={`partial-loading-background mb-1 ${styles.partialName}`} />\n <div className={`partial-loading-background ${styles.partialDescription}`} />\n </Col>\n </Row>\n );\n}\n\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { Flight } from 'libs/common/flight';\nimport { ApplicationState, HashObject } from 'libs/common/react/interfaces';\n\nimport { BaseObject } from 'libs/shared/interfaces';\n\nexport interface UseBatchFetchResult<T extends BaseObject> {\n items: { [key: string]: T} | null;\n isFetching: boolean;\n}\n\n/**\n * Used to fetch multiple items by id with Flight. Will fetch 25 items at a time firing off multiple\n * requests if there are more than 25 items.\n * This will return items as null until we have all our items. Items will be returned as an object with\n * their ids as they key for easy mapping\n * \n * @param itemIds \n * @param getRequest \n */\nexport function useBatchFetch<T extends BaseObject>(\n itemIds: string[],\n getRequest: (ids: string[]) => Flight.Request\n): UseBatchFetchResult<T> {\n const [ idBatches, setIdBatches ] = React.useState<string[][]>([]);\n\n React.useEffect(() => {\n if (!itemIds?.length)\n return;\n\n const newBatches = [...idBatches];\n newBatches.push([]);\n\n itemIds.forEach(id => {\n if (newBatches.find(batch => batch.find(_id => _id === id)))\n return;\n\n newBatches[newBatches.length - 1].push(id);\n });\n\n setIdBatches(newBatches.filter(batch => batch.length));\n }, [itemIds ? itemIds.join(',') : null]);\n\n const dispatch = useDispatch();\n\n const state = useSelector((state: ApplicationState) => state);\n\n React.useEffect(() => {\n idBatches.forEach(idBatch => {\n const request = getRequest(idBatch);\n const response = Flight.getResponse<T[]>(state, request.key);\n\n if (response.shouldFetch)\n Flight.fetch(dispatch, request);\n });\n }, [idBatches?.length]);\n\n if (!idBatches?.length)\n return { items: null, isFetching: false };\n \n const items: { [key: string]: T} = {};\n\n /* Used locally to only return our items if we've fetched all of them */\n const responses: HashObject<Flight.Response<T[]>> = {};\n \n idBatches.forEach((idBatch, i) => {\n const request = getRequest(idBatch);\n const response = Flight.getResponse<T[]>(state, request.key);\n responses[i] = response;\n\n if (response.data)\n response.data.forEach(v => items[v.id] = v);\n });\n\n return {\n items: Object.keys(responses).some(k => !!responses[k].data) ? items : null,\n isFetching: !!Object.keys(responses).some(k => responses[k].isFetching)\n };\n}","// extracted by mini-css-extract-plugin\nexport default {\"banner\":\"B7jhq\"};","import * as React from 'react';\nimport { Spinner } from 'react-bootstrap';\n\nimport { StorageType } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { Core } from 'libs/common/core';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { Classification, PresentationAudience } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './classification-banner.scss';\n\nconst namespace = 'contentUpdates.classificationBanner';\n\ninterface ClassificationBannerProps {\n classification: Classification;\n backgroundUrl: string;\n getClassificationAppLink: (classification: Classification, activeAudiences: PresentationAudience[]) => Core.AppLink;\n followed: boolean;\n follow: (classificationId: string, classificationName: string, follow: boolean) => void;\n showFollowSpinner: boolean;\n canFollow: boolean;\n}\n\nexport function ClassificationBanner(props: ClassificationBannerProps): JSX.Element {\n const { classification, backgroundUrl, followed, follow, showFollowSpinner } = props;\n\n const [activeAudiences] = useViewModel<PresentationAudience[]>(\n SharedViewModelKeys.AUDIENCE_FILTER,\n undefined,\n { storage: StorageType.SessionStorage }\n );\n\n return (\n <div\n className={`banner mb-2 d-flex justify-content-between align-items-center rounded ${styles.banner}`}\n style={{ backgroundImage: `url('${backgroundUrl}')` }}\n >\n <AppLink className='text-white text-shadow' appLink={props.getClassificationAppLink(classification, activeAudiences)}>\n <h2 className='h3 mb-0'>{classification.name}</h2>\n </AppLink>\n\n {props.canFollow && (\n <IconButton\n className={`btn follow-btn ${followed ? 'btn-outline-dark' : 'btn-dark'}`}\n svgName={followed ? cvSvgLibrary.BellFilled : cvSvgLibrary.Bell}\n onClick={() => follow(classification.id, classification.name, !followed)}\n >\n {showFollowSpinner\n ? <Spinner as='span' animation='border' role='status' size='sm' />\n : <Text namespace={namespace} phrase={followed ? 'following' : 'follow'} />\n }\n </IconButton>\n )}\n </div>\n );\n}\n","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { Classification } from 'libs/shared/interfaces';\n\nconst namespace = 'playlists.liteClassificationUpdateBreadcrumbs';\n\ninterface ClassificationUpdateBreadcrumbsProps {\n classification: Classification;\n contentUpdatesAppLink: Core.AppLink;\n dashboardAppLink: Core.AppLink;\n}\n\nexport function ClassificationUpdateBreadcrumbs(\n props: ClassificationUpdateBreadcrumbsProps\n): JSX.Element {\n const { classification } = props;\n\n return (\n <>\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb p-0 mb-0'>\n <li className='breadcrumb-item'>\n <AppLink appLink={props.dashboardAppLink}><Text namespace={namespace} phrase='dashboard' /></AppLink>\n </li>\n <li className='breadcrumb-item'>\n <AppLink appLink={props.contentUpdatesAppLink}><Text namespace={namespace} phrase='whatsNew' /></AppLink>\n </li>\n <li className='breadcrumb-item active' aria-current='page'>{classification.name}</li>\n </ol>\n </nav>\n </>\n );\n}","import * as React from 'react';\n\nimport { ContentUpdateAppLinks, VideoWithClassification } from 'libs/shared/apps/content-updates/interfaces';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { ImageSize, ImageType, ResizeType } from 'libs/shared/enums/Images';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { CanFavouriteFunc, Classification, FavouriteFunc, PresentationAudience, YearGroup } from 'libs/shared/interfaces';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\n\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { ClassificationBanner } from 'apps/content-updates/components';\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nconst namespace = 'contentUpdates.contentUpdatesView';\n\ninterface ClassificationProps {\n classification: Classification;\n videos: VideoWithClassification[];\n yearGroups: YearGroup[];\n imageCdnUrl: string;\n showMore: boolean;\n appLinks: ContentUpdateAppLinks;\n followed: boolean;\n follow: (classificationId: string, classificationName: string, follow: boolean) => void;\n showFollowSpinner: boolean;\n canFollow: boolean;\n setFavourite: FavouriteFunc;\n canFavourite: CanFavouriteFunc;\n audiences: PresentationAudience[];\n isPlugin: boolean;\n}\n\nexport function ContentUpdateClassification(props: ClassificationProps): JSX.Element {\n const { classification, videos, imageCdnUrl, showMore, followed } = props;\n\n const { hasPermissions } = usePermissions();\n\n if (!classification)\n return <></>;\n \n const url = ImageHelper.createBannerUrl(classification.banner, {\n fallbackBaseUrl: imageCdnUrl,\n fallbackCategoryName: classification.name,\n type: ImageType.Banners\n }, { size: ImageSize.Medium, resizeType: ResizeType.Cover });\n\n return (\n <div className='mb-3'>\n <ClassificationBanner\n classification={classification}\n backgroundUrl={url}\n getClassificationAppLink={props.appLinks.getClassificationAppLink}\n followed={followed}\n follow={props.follow}\n canFollow={props.canFollow}\n showFollowSpinner={props.showFollowSpinner}\n />\n <VideoList\n videos={videos}\n yearGroups={props.yearGroups}\n getVideoAppLink={props.appLinks.getVideoAppLink}\n getSubTextAppLink={video => SeriesAppLinkHelper.getSeriesAppLink(video.series)}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n presentationAudiences={props.audiences}\n hasPermissions={hasPermissions}\n getPreviewQuestionsAppLink={interactive => InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n isPlugin={props.isPlugin}\n getClassroomGuideAppLink={VideoAppLinkHelper.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={VideoAppLinkHelper.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={VideoAppLinkHelper.getResourceGuidanceAppLink}\n />\n {showMore &&\n <div className={'show-more'}>\n <AppLink className='info-link' appLink={props.appLinks.getClassificationUpdateAppLink(classification)}>\n <Text namespace={namespace} phrase='showMore' options={{\n classificationName: classification.name\n }} />\n </AppLink>\n </div>\n }\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"partialBanner\":\"bxaA6\"};","import React from 'react';\n\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\n\nimport styles from './partial-content-updates.scss';\n\nexport function PartialContentUpdatesView(): JSX.Element {\n return (\n <>\n {Array(4).fill(null).map((s, i) => (\n <div key={i} className='mb-3'>\n <div className={`partial-loading-background mb-2 ${styles.partialBanner}`} />\n <PartialVideoList />;\n </div>\n ))}\n </>\n );\n}","import * as React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, ToggleDescriptor, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { ContentUpdateRequests } from 'libs/shared/apps/content-updates/flight-requests/ContentUpdateRequests';\nimport { ClassificationVideosGrouping, ContentUpdate, ContentUpdateAppLinks } from 'libs/shared/apps/content-updates/interfaces';\nimport { DiscoverHeader } from 'libs/shared/apps/discover/components/header/DiscoverHeader';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { PreferenceRequests } from 'libs/shared/flight-requests/PreferenceRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useBatchFetch } from 'libs/shared/hooks/UseBatchFetch';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Classification, Config, CurrentUser, DashboardUserType, Video, YearGroup } from 'libs/shared/interfaces';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { usePresentation } from 'shared/hooks/usePresentation';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useShowCalendar } from 'shared/hooks/useShowCalendar';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\nimport { SeoHelper } from 'shared/utils/SeoHelper';\n\nimport { ContentUpdateClassification } from './components/ContentUpdateClassification';\nimport { PartialContentUpdatesView } from './partial-loading/PartialContentUpdatesView';\n\nconst INITIAL_VIDEO_COUNT = 5;\nconst namespace = 'contentUpdates.contentUpdatesView';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction map(\n contentUpdates: ClassificationVideosGrouping[],\n classifications: {[key: string]: Classification}\n): ContentUpdate[] {\n if (!contentUpdates || !classifications)\n return null;\n\n return contentUpdates.map((c): ContentUpdate => {\n return {\n showMore: c.videos.length > INITIAL_VIDEO_COUNT,\n classification: classifications[c.id],\n videos: c.videos.slice(0, INITIAL_VIDEO_COUNT).map((m: any) => {\n m.classification = classifications[m.id];\n return m;\n }).filter(v => v)\n };\n }).filter(v => v.classification);\n}\n\ninterface FollowSpinnersMap {\n [classificationId: string]: boolean;\n}\n\ninterface ContentUpdatesViewProps {\n appLinks: ContentUpdateAppLinks;\n presentationSlug?: string;\n}\n\nexport function ContentUpdatesView(props: ContentUpdatesViewProps): JSX.Element {\n const [ followSpinners, setFollowSpinners ] = React.useState<FollowSpinnersMap>({});\n\n const dispatch = useDispatch();\n const alerts = useAlerts();\n\n const { isPlugin } = usePluginHelper();\n\n const { hasPermissions } = usePermissions();\n const canFollowSubjects = hasPermissions(PermissionName.FollowSubjects);\n\n const date = new Date();\n const from = DateHelper.format(DateHelper.endOf(DateHelper.subtract(date, 1, 'year'), 'day'), 'YYYY-MM-DD');\n const to = DateHelper.format(DateHelper.endOf(date, 'day'), 'YYYY-MM-DD');\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n const { activePresentation } = usePresentation({ redirectOnError: true });\n\n useSetPageMetadata(PageMetadataHelper.getDefaultMetadata({\n title: activePresentation?.name,\n phraseContext: {\n phraseHandler: getPhrase,\n titlePhrase: 'pageTitle',\n descriptionPhrase: 'pageDescription'\n },\n canonicalLink: SeoHelper.getCanonicalLink(),\n allowIndexing: SeoHelper.allowIndexing(),\n hrefLang: SeoHelper.getStaticRouteHrefLang(\n activePresentation?.learningLevel,\n () => ({ application: AppChannels.CONTENT_UPDATES, action: Actions.ContentUpdates.CONTENT_UPDATES })\n )\n }));\n\n const contentUpdatesRequest = ContentUpdateRequests.getContentUpdates(activePresentation?.id, from, to);\n const contentUpdates = Flight.useBasicFetch<ClassificationVideosGrouping[]>(\n activePresentation && contentUpdatesRequest\n );\n const subjectPreferences = Flight.useBasicFetch<Classification[]>(canFollowSubjects &&\n PreferenceRequests.mySubjectPreferences());\n\n const audiences = usePresentationAudiences();\n\n /* Map content update response into list of video ids and classification ids*/\n const classificationIds: string[] = [];\n let videos: Video[] = [];\n contentUpdates.data && contentUpdates.data.forEach(c => {\n classificationIds.push(c.id);\n videos = videos.concat(c.videos);\n });\n\n /* Batch fetch the videos and classifications by id */\n const { items: classifications } = useBatchFetch<Classification>(\n classificationIds,\n (ids: string[]) => ContentUpdateRequests.getClassifications(ids)\n );\n\n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem });\n \n useVideoMixin(videos, {\n flightNamespace: contentUpdatesRequest.normalizeOptions?.namespace\n });\n\n const { setFavourite, canFavourite } = useLiteFavourites(\n LocationContext.VideoThumbnail,\n contentUpdatesRequest.normalizeOptions?.namespace\n );\n\n /** Callbacks */\n function onFollow(classificationId: string, classificationName: string, follow: boolean): void {\n setFollowSpinners(currentState => ({\n ...currentState,\n [classificationId]: true\n }));\n\n const onSuccess = () => {\n setFollowSpinners(currentState => ({\n ...currentState,\n [classificationId]: false\n }));\n\n AnalyticsHelper.logUserAction({\n id: classificationId,\n name: classificationName\n }, {\n location: LocationContext.ContentUpdatesClassificationBanner,\n workflowPhase: WorkflowPhase.Complete,\n descriptor: follow ? ToggleDescriptor.On : ToggleDescriptor.Off,\n actionType: UserAction.Follow,\n entity: EntityType.Classification\n });\n\n alerts.success(getPhrase(\n follow ? 'followed' : 'unfollowed',\n { classification: classifications[classificationId]?.name, escapeText: true }\n ));\n };\n\n const onError = () => {\n setFollowSpinners(currentState => ({\n ...currentState,\n [classificationId]: false\n }));\n\n alerts.error(getPhrase('error'));\n };\n\n const request = follow ?\n PreferenceRequests.followSubjects([classificationId], onSuccess, onError) :\n PreferenceRequests.unfollowSubjects([classificationId], onSuccess, onError);\n\n Flight.fetch(dispatch, request);\n }\n\n const { showCalendar, isLoading } = useShowCalendar();\n\n const dataLoaded = !!(\n contentUpdates.hasCompleted &&\n config.hasCompleted &&\n audiences.hasCompleted &&\n (!canFollowSubjects || subjectPreferences.hasCompleted) &&\n classifications &&\n !isLoading\n );\n\n /* Build out array of content updates from our lists of videos and classifications */\n const mappedUpdates = map(contentUpdates.data, classifications);\n const preferredSubjectIds = subjectPreferences.data?.map(subject => subject.id) ?? [];\n\n const managePreferences = hasPermissions(PermissionName.ManageSubjectPreferences);\n const manageVideoAccess = hasPermissions(PermissionName.ManageVideoAccess);\n\n return (\n <VideoActionsContext.Provider value={videoActions}>\n <div className='bg-white px-3'>\n {!isLoading && <DiscoverHeader\n type={DashboardUserType.Staff} // Students never see this page\n appLinks={{\n forYou: props.appLinks.dashboardAppLink,\n whatsNew: props.appLinks.whatsNewAppLink,\n calendar: props.appLinks.calendarAppLink\n }}\n showCalendar={showCalendar}\n active='whatsNew'\n />}\n <h1><Text namespace={namespace} phrase='heading' /></h1>\n {(managePreferences || manageVideoAccess) && (\n <p>\n {managePreferences &&\n <>\n <Text namespace={namespace} phrase='onlyRelevant' /> \n <AppLink\n className='info-link'\n appLink={{\n application: AppChannels.SETTINGS,\n action: Actions.Settings.TOPIC_PREFERENCES\n }}\n >\n <Text namespace={namespace} phrase='updatePreferences' />\n </AppLink>\n </>\n }\n {manageVideoAccess &&\n <span className='d-block'>\n <AppLink\n className='info-link'\n appLink={{\n application: AppChannels.SETTINGS,\n action: Actions.Settings.CONTENT_REVIEW\n }}\n >\n <Text namespace={namespace} phrase='contentReview' />\n </AppLink>\n </span>\n }\n </p>\n )}\n\n {dataLoaded ? (\n <>\n {mappedUpdates.map((c: ContentUpdate, key: number) => (\n <ContentUpdateClassification\n key={key}\n classification={c.classification}\n videos={c.videos}\n yearGroups={yearGroups.data}\n imageCdnUrl={config.data.imageCdnUrl}\n showMore={c.showMore}\n appLinks={props.appLinks}\n followed={preferredSubjectIds.includes(c.classification?.id)}\n follow={onFollow}\n showFollowSpinner={followSpinners[c.classification?.id]}\n canFollow={canFollowSubjects}\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n audiences={audiences.data}\n isPlugin={isPlugin}\n />\n ))}\n </>\n ) : (\n <PartialContentUpdatesView />\n )}\n </div>\n </VideoActionsContext.Provider>\n );\n}\n","import { Flight } from 'libs/common/react/index';\n\nimport { AudienceRequests } from 'libs/shared/flight-requests/AudienceRequests';\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\nimport { usePresentation } from 'shared/hooks/usePresentation';\n\nexport const usePresentationAudiences = () => {\n const { activePresentation, getFallbackPresentation } = usePresentation({ redirectOnError: true });\n\n const presentation = activePresentation || getFallbackPresentation();\n\n const audiences = Flight.useBasicFetch<PresentationAudience[]>(\n !!presentation &&\n AudienceRequests.presentationAudiences(presentation.id)\n );\n\n return audiences;\n};","import React from 'react';\n\nimport { EnvironmentVariables } from 'libs/common/backbone/services/EnvironmentVariables';\nimport { Flight } from 'libs/common/react/index';\n\nimport { ContentRegion } from 'libs/shared/enums/ContentRegion';\nimport { PresentationLearningLevel } from 'libs/shared/enums/PresentationLearningLevel';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { CurrentUser } from 'libs/shared/interfaces';\nimport { TopicsHelper } from 'libs/shared/utils/topics-helper/TopicsHelper';\n\nimport { usePresentation } from 'shared/hooks/usePresentation';\n\nconst ALLOWED_LEARNING_LEVELS_BY_REGION: Record<ContentRegion, PresentationLearningLevel[]> = {\n [ContentRegion.AU]: [\n // AU Primary Calendar\n PresentationLearningLevel.Level_1\n ],\n [ContentRegion.US]: [\n // US Elementary Calendar\n PresentationLearningLevel.Level_1\n ],\n [ContentRegion.UK]: [\n // UK Primary Calendar\n PresentationLearningLevel.Level_1\n ],\n [ContentRegion.SCOT]: [\n // Scotland Primary Calendar\n PresentationLearningLevel.Level_1\n ],\n [ContentRegion.NZ]: [],\n [ContentRegion.GLOBAL]: []\n};\n\nexport function useShowCalendar() {\n const { hasSpecialEventCalendar, isLoadingSettings } = useSettings(null);\n\n const {\n activePresentation\n } = usePresentation({ redirectOnError: true });\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const allowedLearningLevels = ALLOWED_LEARNING_LEVELS_BY_REGION[currentUser.data?.contentRegion];\n const learningLevel = TopicsHelper.getMappedPresentationLevel(activePresentation?.learningLevel);\n const learningLevelCantAccess = !allowedLearningLevels?.find(l => {\n return l.toString() === (learningLevel as PresentationLearningLevel)?.toString();\n });\n\n const noSetting = !isLoadingSettings && !hasSpecialEventCalendar;\n\n const [ showCalendar, setShowCalendar ] = React.useState<boolean>(!noSetting && !learningLevelCantAccess);\n\n const [ isLoading, setIsLoading ] = React.useState(isLoadingSettings || !activePresentation?.id);\n\n React.useEffect(() => {\n if (noSetting || learningLevelCantAccess) {\n setShowCalendar(false);\n } else if (!isLoading) {\n setShowCalendar(true);\n }\n setIsLoading(isLoadingSettings || !activePresentation?.id);\n }, [ hasSpecialEventCalendar, activePresentation?.id, isLoading ]);\n\n if (EnvironmentVariables.isDevelopment)\n return { showCalendar: true, isLoading: false };\n\n return { showCalendar, isLoading };\n}","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { ClassificationRequests } from 'libs/shared/flight-requests/ClassificationRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { Clip, ClipCollection, CurrentUser, Video, VideoCollection } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\ntype Types = Video[] | VideoCollection | Clip[] | ClipCollection;\n\nfunction getValidObjects(objects: Types): (Video | Clip)[] {\n if (!objects)\n return [];\n\n if (Array.isArray(objects))\n return objects.filter(o => !!o && (VideoHelper.isVideo(o) || VideoHelper.isClip(o)));\n\n if ('data' in objects)\n return objects.data.filter(o => !!o && (VideoHelper.isVideo(o) || VideoHelper.isClip(o)));\n\n return [];\n}\n\ninterface VideoMixinOptions {\n /**\n * If the videos that are having new data mixed into are sitting on an explicit Flight namespace,\n * providing that namespace here is required\n */\n flightNamespace?: string;\n}\n\nexport function useVideoMixin(objects: Types, options: VideoMixinOptions = {}): void {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const hydratedVideos = React.useRef<Set<string>>(new Set<string>());\n\n const videos = getValidObjects(objects);\n\n const videoIds = videos.map(v => v.id);\n\n const [ request, setRequest ] = React.useState<Flight.Request[]>([]);\n\n React.useEffect(() => {\n if (!videoIds?.length || !currentUser.hasCompleted)\n return;\n\n const unhydratedVideos: string[] = [];\n\n videoIds.forEach(id => {\n if (!hydratedVideos.current.has(id)) {\n unhydratedVideos.push(id);\n hydratedVideos.current.add(id);\n }\n });\n \n if (!unhydratedVideos.length)\n return;\n\n setRequest(r => {\n const newRequests = [\n ...r,\n VideoRequests.videoMixinAssocs(unhydratedVideos, options.flightNamespace)\n ];\n\n if (currentUser.data?.isAuthenticated)\n newRequests.push(ClassificationRequests.hasCurriculumLinks(unhydratedVideos, null, options.flightNamespace));\n\n return newRequests;\n });\n }, [ videoIds?.length, currentUser.hasCompleted ]);\n\n Flight.useBasicFetchAll(request);\n}","// extracted by mini-css-extract-plugin\nexport default {\"pillTabSelector\":\"Hdi6o\",\"tab\":\"RvNxr\",\"minWidth\":\"GHSz9\",\"radiusSmall\":\"VhJJa\",\"tabLink\":\"WFyvo\"};","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Row = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n const sizePrefix = `${decoratedBsPrefix}-cols`;\n const classes = [];\n breakpoints.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let cols;\n if (propValue != null && typeof propValue === 'object') {\n ({\n cols\n } = propValue);\n } else {\n cols = propValue;\n }\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n if (cols != null) classes.push(`${sizePrefix}${infix}-${cols}`);\n });\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, decoratedBsPrefix, ...classes)\n });\n});\nRow.displayName = 'Row';\nexport default Row;"],"names":["ContentUpdateRequests","getContentUpdates","presentationId","from","to","gatewayApiUrl","url","limit","query","publicUrl","key","normalizeOptions","namespace","formatData","contentUpdates","map","contentUpdate","id","classificationId","videos","getClassifications","ids","join","getClassification","getClassificationUpdates","getContentUpdateVideos","success","DiscoverHeader","props","type","hasStudentExperience","className","Text","phrase","tabs","name","LanguageService","appLink","appLinks","forYou","active","analyticsData","analyticsOptions","actionType","entity","location","whatsNew","showCalendar","push","calendar","PillTabSelector","TabContents","tab","svgName","count","data","ref","containerRef","borderRadius","listClassName","index","onClick","onSelect","onSelectTab","defaultProps","PartialVideoList","Array","numVideos","fill","_","i","allowBulkActions","PartialVideoItem","breakpoints","useBreakpoints","isSmall","VideoListHelper","withDragHandle","withReordering","xs","Row","Col","useBatchFetch","itemIds","getRequest","idBatches","setIdBatches","length","newBatches","forEach","find","batch","_id","filter","dispatch","state","idBatch","request","shouldFetch","items","isFetching","responses","response","v","Object","keys","some","k","ClassificationBanner","classification","backgroundUrl","followed","follow","showFollowSpinner","activeAudiences","SharedViewModelKeys","undefined","storage","style","backgroundImage","getClassificationAppLink","canFollow","IconButton","Spinner","as","animation","role","size","ClassificationUpdateBreadcrumbs","dashboardAppLink","contentUpdatesAppLink","ContentUpdateClassification","imageCdnUrl","showMore","hasPermissions","usePermissions","ImageHelper","banner","fallbackBaseUrl","fallbackCategoryName","resizeType","VideoList","yearGroups","getVideoAppLink","getSubTextAppLink","video","SeriesAppLinkHelper","series","setFavourite","canFavourite","presentationAudiences","audiences","getPreviewQuestionsAppLink","interactive","InteractiveHelper","isPlugin","getClassroomGuideAppLink","VideoAppLinkHelper","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","AppLink","getClassificationUpdateAppLink","options","classificationName","PartialContentUpdatesView","s","INITIAL_VIDEO_COUNT","getPhrase","ContentUpdatesView","followSpinners","setFollowSpinners","alerts","usePluginHelper","canFollowSubjects","PermissionName","date","Date","DateHelper","config","ConfigRequests","currentUser","UserRequests","isAuthenticated","CustomerRequests","customerId","activePresentation","usePresentation","redirectOnError","useSetPageMetadata","PageMetadataHelper","title","phraseContext","phraseHandler","titlePhrase","descriptionPhrase","canonicalLink","SeoHelper","allowIndexing","hrefLang","learningLevel","application","action","contentUpdatesRequest","subjectPreferences","PreferenceRequests","usePresentationAudiences","classificationIds","c","concat","classifications","videoActions","useVideoActions","useVideoMixin","flightNamespace","useLiteFavourites","u","onFollow","currentState","onSuccess","AnalyticsHelper","workflowPhase","descriptor","escapeText","onError","error","useShowCalendar","isLoading","dataLoaded","hasCompleted","mappedUpdates","slice","m","preferredSubjectIds","subject","managePreferences","manageVideoAccess","VideoActionsContext","value","whatsNewAppLink","calendarAppLink","includes","getFallbackPresentation","presentation","ALLOWED_LEARNING_LEVELS_BY_REGION","hasSpecialEventCalendar","isLoadingSettings","allowedLearningLevels","contentRegion","learningLevelCantAccess","l","toString","noSetting","setShowCalendar","setIsLoading","objects","hydratedVideos","Set","isArray","o","getValidObjects","videoIds","setRequest","unhydratedVideos","current","has","add","r","newRequests","bsPrefix","Component","decoratedBsPrefix","minBreakpoint","sizePrefix","classes","brkPoint","propValue","cols","infix","displayName"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[209],{49935:(e,t,a)=>{a.d(t,{Oo:()=>m,b2:()=>d});var n=a(32735),r=a(36848),i=a(86764),l=a(3747),c=a(5859),o=a(35223),s=a(83914),u=function(e){var t=e.breadcrumb,a=t.name,i=t.appLink,l=t.active,c=e.withBackIcon;return n.createElement("li",{className:"breadcrumb-item".concat(l?" active":"")},l?n.createElement("strong",null,a):n.createElement(r.F,{appLink:i},c&&n.createElement(s.x,{svgName:o.vn.ChevronLeft,size:s.S.Small}),n.createElement("span",{className:c?"ms-2":""},a)))},m=function(e){var t=e.breadcrumbs,a=(0,l.a)(i.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(u,{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(u,{key:t,breadcrumb:e})}))))},d=n.memo((function(e){var t=e.numItems,a=void 0===t?3:t;return(0,l.a)(i.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:" "}}))}))))}))},99705:(e,t,a)=>{var n,r;a.d(t,{b:()=>r}),function(e){e.AddToPlaylist="115005679748",e.EditSsoAccounts="8202508040345",e.LibraryEditor="360001974533",e.VideoAccess="360000153947",e.AddFromOnline="360011718234",e.UploadToLibraryEditor="360012069334",e.PBTErrorCodes="360012421153",e.ManuelReview="360020004534",e.LibraryReview="360000163788"}(n||(n={})),function(e){e.Integrations="4407268725529",e.Classrooms="4405362551833",e.MakeInteractive="4405370510873",e.EditSsoAccounts="8202605666073",e.UploadToLibraryEditor="10672936659865",e.AddFromLite="10671345281561",e.ManageSsoYearGroups="14691130889241",e.ContentReview="18525199576601",e.ContentPermissions="14692125209497",e.AccessSettings="22110291468057",e.ContentGuidelines="24133696186009",e.FoxtelFaq="24133519542169",e.ViviIntegration="23826297956377",e.AppleTvIntegration="25832373739929",e.RssFeed="32567445635097"}(r||(r={}))},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:()=>i});var r={numItems:5,minWidth:50,maxWidth:100},i={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:()=>f});var n=a(32735),r=a(81886),i=a(23481),l=a(49935),c=a(22902),o=a(14070),s=a(97291),u=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,u.e)();if(e)return t(e);var n=r.Q.C$.getCurrentAppLink();return n.application!==s.O.SETTINGS||a.some((function(e){return e.modules.some((function(e){return"appLink"in e&&e.appLink.action===n.action}))}))};function f(e){var t,a=p(e.requiredPermissions);if(n.useEffect((function(){a||r.Q.C$.trigger({application:s.O.SETTINGS,action:o.e.Settings.HOME},{replace:!0})}),[a]),!a)return n.createElement(n.Fragment,null);var c,u=e.breadcrumbs.map((function(t,a){return{name:t,appLink:{application:s.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(l.Oo,{breadcrumbs:[{name:i.T.getPhrase(d,"settingsBreadcrumb"),appLink:{application:s.O.SETTINGS,action:o.e.Settings.HOME}}].concat((c=u,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)}},61324:(e,t,a)=>{a.r(t),a.d(t,{ContentPermissionsView:()=>_});var n=a(32735),r=a(70680),i=a(23481),l=a(97395),c=a(20354),o=a(1048),s=a(98461),u=a(2102),m=a(69674),d=a(83345),p=a(99705),f=a(39151),g=a(1666),v=a(31949),b=a(69883),E=a(87348),h=a(79612),y=a(12778),S=a(24965),N=a(81803);const w={row:"jSsH6",headerCell:"OiarJ",opaqueRating:"JUpUV",partialNameColumn:"SzdZi",partialRatingColumn:"LEWRI",partialHeading:"bE8aX",partialName:"yKKFv",partialRating:"zeYNd"};function C(){return n.createElement("div",{className:"d-flex striped-row rounded py-2 ".concat(w.row)},n.createElement("div",{className:"d-flex align-items-center ps-3 me-n2 ".concat(w.partialNameColumn)},n.createElement("div",{className:"partial-loading-background ".concat(w.partialName)})),n.createElement("div",{className:"d-flex align-items-center pe-2 ".concat(w.partialRatingColumn)},n.createElement("div",{className:"partial-loading-background ".concat(w.partialRating)})))}function k(){return n.createElement("div",{className:"d-flex py-2 mb-1"},n.createElement("div",{className:"".concat(w.partialNameColumn," ps-3 me-n2")},n.createElement("div",{className:"partial-loading-background ".concat(w.partialHeading)})),n.createElement("div",{className:"".concat(w.partialRatingColumn," pe-2")},n.createElement("div",{className:"partial-loading-background ".concat(w.partialHeading)})))}function A(){return n.createElement(n.Fragment,null,n.createElement("div",{className:"mb-3"},n.createElement(k,null),n.createElement("div",{className:"striped-list no-full-width"},n.createElement(C,null),n.createElement(C,null),n.createElement(C,null),n.createElement(C,null),n.createElement(C,null),n.createElement(C,null),n.createElement(C,null),n.createElement(C,null),n.createElement(C,null),n.createElement(C,null),n.createElement(C,null),n.createElement(C,null),n.createElement(C,null),n.createElement(C,null))))}var I=a(75896),T=a(76439),x=a(76177),G=a(81993),O=i.T.encloseNamespace("settings.contentPermissions"),L="staff";function j(e,t,a){return[{Header:O("yearGroup"),id:"yearGroup",accessor:"yearGroup",Cell:function(e){var t=e.value;return n.createElement("div",{className:"w-100 ps-3"},t.name)},width:20},{Header:O("rating"),id:"ratings",accessor:"ratings",Cell:function(r){var i=r.value,l=i.yearGroup.id===L,c=n.createElement("div",{className:"me-n1"},n.createElement(T.P,{ratings:i.ratings,yearGroup:i.yearGroup,yearGroups:a,selections:e(i.yearGroup),onSelectRange:function(e){return t(i.yearGroup,I.m.last(e))},disabled:!1,isDisabled:function(){return l},getButtonClasses:function(e,t,a,n){var r="badge rating-badge text-shadow d-flex justify-content-center me-1",i=G.u.mapRatingToClass(e.value);return n&&!l||(r+=" ".concat(w.opaqueRating)),r+(l?" cursor-default ".concat(i):t||a&&n?" "+i:" bg-gray-500")}}));return l?n.createElement(x.u,{title:O("staffTooltip"),spanHack:!0},c):c},width:40}]}function M(e,t){var a=e.map((function(e){return{yearGroup:e,ratings:{yearGroup:e,ratings:t.map((function(t){var a;return(null===(a=e.rating)||void 0===a?void 0:a.code)===t.code?Object.assign(Object.assign({},t),{active:!0}):t}))}}})),n={id:L,name:O("staff")};return a.push({yearGroup:n,ratings:{yearGroup:n,ratings:t}}),a}function F(e,t){return 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,i,l,c=[],o=!0,s=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;o=!1}else for(;!(o=(n=i.call(a)).done)&&(c.push(n.value),c.length!==t);o=!0);}catch(e){s=!0,r=e}finally{try{if(!o&&null!=a.return&&(l=a.return(),Object(l)!==l))return}finally{if(s)throw r}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return R(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)?R(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function R(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 U="settings.contentPermissions",P=i.T.encloseNamespace(U);function B(e){return n.createElement(u.m,{onClick:e.onClick,showSpinner:e.showSpinner,disabled:e.isDisabled,className:"text-nowrap me-2",variant:"dark"},n.createElement(d.x,{namespace:U,phrase:"save"}))}var H={table:"striped-list no-full-width mb-3",header:"fw-semibold pb-1",headerCell:"py-2 pe-2 ".concat(w.headerCell),row:"striped-row rounded ".concat(w.row),cell:"d-flex align-items-center py-2 pe-2"};function _(){var e,t=F(n.useState(!1),2),a=t[0],i=t[1],u=(0,E.Q)().isUpgrading,w=c.a.useBasicFetch(f.L.config()),C=c.a.useBasicFetch(v.N.currentUser()),k=c.a.useBasicFetch(S.Z.ratings()),I=c.a.useBasicFetch(C.data&&g.h.yearGroups(C.data.customerId)),T=F(n.useState(null),2),x=T[0],G=T[1],O=F(n.useState(null),2),R=O[0],_=O[1],W=F(n.useState(!1),2),q=W[0],D=W[1],$=(0,r.I0)(),V=(0,b.Z)();(0,h.M)({title:P("pageTitle")}),n.useEffect((function(){I.hasCompleted&&(G(I.data),_(I.data))}),[I.hasCompleted]),n.useEffect((function(){var e;R&&D((e=R).every((function(t,a){if(0===a)return!0;var n=e[a-1];return t.rating.value>=n.rating.value})))}),[R]);var Z=n.useMemo((function(){return!(!x||!R||o.t.isEqual(x,R))}),[x,R]);function z(){i(!0);var e=R.filter((function(e){return I.data.find((function(t){var a,n;return t.id===e.id&&(null===(a=t.rating)||void 0===a?void 0:a.id)!==(null===(n=e.rating)||void 0===n?void 0:n.id)}))})),t=g.h.updateYearGroupRatings(C.data.customerId,e,Q,X);c.a.fetch($,t)}function Q(){V.success(P("success")),i(!1),G(R)}function X(){V.error(P("error")),i(!1)}var Y=!!R&&k.hasCompleted,J=y.o.getLiteArticle(p.b.ContentPermissions),K=u||!Z||!q;return n.createElement(N.d,{heading:P("heading"),breadcrumbs:[P("breadcrumb")]},u&&(null===(e=w.data)||void 0===e?void 0:e.onlineUrl)&&n.createElement("div",{className:"alert alert-danger",role:"alert"},n.createElement(d.x,{namespace:U,phrase:"upgradeWarning",options:{url:l._.safeUrlConcat(w.data.onlineUrl,"/ManageUsers/GroupAccess")}})),n.createElement("div",{className:"d-flex justify-content-between align-items-center"},n.createElement("p",null,n.createElement(d.x,{namespace:U,phrase:"description"})),n.createElement(B,{isDisabled:K,showSpinner:a,onClick:z})),n.createElement("p",null,n.createElement("small",null,n.createElement(d.x,{namespace:U,phrase:"note"}))),n.createElement("p",null,n.createElement(s.d,{href:J,className:"info-link",newTab:!0},n.createElement(d.x,{namespace:U,phrase:"learnMore"}))),Y?n.createElement(m.i,{columns:j((function(e){if(e.id===L)return k.data;var t=R.find((function(t){return t.id===e.id}));return t.rating?k.data.filter((function(e){return e.value<=t.rating.value})):[]}),(function(e,t){e.id!==L&&_((function(a){return a.map((function(a){if(a)return a.id===e.id||a.value>e.value&&a.rating.value<t.value||a.value<e.value&&a.rating.value>t.value?Object.assign(Object.assign({},a),{rating:t}):a}))}))}),R),data:M(I.data,k.data),theme:H}):n.createElement(A,null),n.createElement("div",{className:"d-flex justify-content-end pb-3"},n.createElement(B,{isDisabled:K,showSpinner:a,onClick:z})))}},24965:(e,t,a)=>{a.d(t,{Z:()=>r});var n=a(97395),r={ratings:function(e){return{url:"/api/domain/v2/me/ratings",publicUrl:n._.urlBuilder("/api/domain/v2/me/ratings",{countryCode:e}),key:"ratings",formatData:function(e){return e.sort((function(e,t){return e.value-t.value}))}}}}}}]);
|
|
2
|
-
//# sourceMappingURL=209-de1729d1b1-lite.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/209-de1729d1b1-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/enums/SupportArticle.ts","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/views/content-permissions/content-permissions.scss","file:///app/packages/projects/lite/src/apps/settings/views/content-permissions/partial-loading/PartialContentPermissionsTable.tsx","file:///app/packages/projects/lite/src/apps/settings/views/content-permissions/ContentPermissionsViewUtils.tsx","file:///app/packages/projects/lite/src/apps/settings/views/content-permissions/ContentPermissionsView.tsx","file:///app/packages/projects/lite/src/shared/flight-requests/RatingRequests.ts"],"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});","// Article name mapped to article ID on support site. Used by `ArticleHelper`\n\nexport enum OnlineSupportArticle {\n AddToPlaylist = '115005679748',\n EditSsoAccounts = '8202508040345',\n\n // LE\n LibraryEditor = '360001974533',\n VideoAccess = '360000153947',\n AddFromOnline = '360011718234',\n UploadToLibraryEditor = '360012069334',\n PBTErrorCodes = '360012421153',\n ManuelReview = '360020004534',\n LibraryReview = '360000163788',\n}\n\nexport enum LiteSupportArticle {\n Integrations = '4407268725529',\n Classrooms = '4405362551833',\n MakeInteractive = '4405370510873',\n EditSsoAccounts = '8202605666073',\n UploadToLibraryEditor = '10672936659865',\n AddFromLite = '10671345281561',\n ManageSsoYearGroups = '14691130889241',\n ContentReview = '18525199576601',\n ContentPermissions = '14692125209497',\n AccessSettings = '22110291468057',\n ContentGuidelines = '24133696186009',\n FoxtelFaq = '24133519542169',\n ViviIntegration = '23826297956377',\n AppleTvIntegration = '25832373739929',\n RssFeed = '32567445635097'\n}\n","const DEFAULT_PARTIAL_LOADING_OPTIONS: PartialLoadingOptions = {\n numItems: 5,\n minWidth: 50, // px\n maxWidth: 100 // px\n};\n\nexport interface PartialLoadingOptions {\n numItems?: number;\n minWidth?: number;\n maxWidth?: number;\n}\n\ninterface PartialLoadingItem {\n width: string;\n}\n\nexport const PartialLoadingHelper = {\n getPartialLoadingItems(options: PartialLoadingOptions = {}): PartialLoadingItem[] {\n const opts = {\n ...DEFAULT_PARTIAL_LOADING_OPTIONS,\n ...options\n };\n\n const getRandomFilterWidth = () => Math.max(Math.floor(Math.random() * opts.maxWidth), opts.minWidth);\n\n return [...Array(opts.numItems)].map(() => ({ width: `${getRandomFilterWidth()}px` }));\n }\n};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\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 {\"row\":\"jSsH6\",\"headerCell\":\"OiarJ\",\"opaqueRating\":\"JUpUV\",\"partialNameColumn\":\"SzdZi\",\"partialRatingColumn\":\"LEWRI\",\"partialHeading\":\"bE8aX\",\"partialName\":\"yKKFv\",\"partialRating\":\"zeYNd\"};","import React from 'react';\n\nimport styles from '../content-permissions.scss';\n\nfunction PartialRow(): JSX.Element {\n return (\n <div className={`d-flex striped-row rounded py-2 ${styles.row}`}>\n <div className={`d-flex align-items-center ps-3 me-n2 ${styles.partialNameColumn}`}>\n <div className={`partial-loading-background ${styles.partialName}`} />\n </div>\n <div className={`d-flex align-items-center pe-2 ${styles.partialRatingColumn}`}>\n <div className={`partial-loading-background ${styles.partialRating}`} />\n </div>\n </div>\n );\n}\n\nfunction PartialHeader(): JSX.Element {\n return (\n <div className='d-flex py-2 mb-1'>\n <div className={`${styles.partialNameColumn} ps-3 me-n2`}>\n <div className={`partial-loading-background ${styles.partialHeading}`} />\n </div>\n <div className={`${styles.partialRatingColumn} pe-2`}>\n <div className={`partial-loading-background ${styles.partialHeading}`} />\n </div>\n </div>\n );\n}\n\nexport function PartialContentPermissionsTable(): JSX.Element {\n return (\n <>\n <div className='mb-3'>\n <PartialHeader />\n\n <div className='striped-list no-full-width'>\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n </div>\n </div>\n </>\n );\n}","import React from 'react';\nimport { Column } from 'react-table';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { RatingRangeSelector } from 'libs/shared/components/rating-range-selector/RatingRangeSelector';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { Rating, YearGroup } from 'libs/shared/interfaces';\nimport { VideoDetailsHelper } from 'libs/shared/utils/VideoDetailsHelper';\n\nimport styles from './content-permissions.scss';\n\nconst namespace = 'settings.contentPermissions';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport const STAFF_YEAR_GROUP_ID = 'staff';\n\ninterface MappedRating extends Rating {\n active?: boolean;\n}\n\ninterface TableData {\n yearGroup: YearGroup;\n ratings: {\n yearGroup: YearGroup;\n ratings: MappedRating[];\n };\n}\n\nexport function getContentPermissionsTableColumns(\n getSelections: (yearGroup: YearGroup) => Rating[],\n setSelections: (yearGroup: YearGroup, maxRating: Rating) => void,\n yearGroups: YearGroup[]\n): Column<TableData>[] {\n return [\n {\n Header: getPhrase('yearGroup'),\n id: 'yearGroup',\n accessor: 'yearGroup',\n Cell: ({ value: yearGroup }) => (\n <div className='w-100 ps-3'>\n {yearGroup.name}\n </div>\n ),\n width: 20\n },\n {\n Header: getPhrase('rating'),\n id: 'ratings',\n accessor: 'ratings',\n Cell: ({ value: ratings }) => {\n const isStaff = ratings.yearGroup.id === STAFF_YEAR_GROUP_ID;\n\n const ratingsList = (\n <div className='me-n1'>\n <RatingRangeSelector\n ratings={ratings.ratings}\n yearGroup={ratings.yearGroup}\n yearGroups={yearGroups}\n selections={getSelections(ratings.yearGroup)}\n onSelectRange={range => setSelections(ratings.yearGroup, ArrayHelper.last(range))}\n disabled={false}\n isDisabled={() => isStaff}\n getButtonClasses={(rating: Rating, isActive, isHovering, isRatingValid) => {\n let className = 'badge rating-badge text-shadow d-flex justify-content-center me-1';\n\n const activeClass = VideoDetailsHelper.mapRatingToClass(rating.value);\n\n if (!isRatingValid || isStaff)\n className += ` ${styles.opaqueRating}`;\n\n if (isStaff) {\n className += ` cursor-default ${activeClass}`;\n return className;\n }\n\n if (isActive || (isHovering && isRatingValid))\n className += ' ' + activeClass;\n else\n className += ' bg-gray-500';\n \n return className;\n }}\n />\n </div>\n );\n\n if (isStaff) {\n return (\n <Tooltip title={getPhrase('staffTooltip')} spanHack>\n {ratingsList}\n </Tooltip>\n );\n }\n\n return ratingsList;\n },\n width: 40\n }\n ];\n}\n\nexport function getContentPermissionsTableData(\n yearGroups: YearGroup[],\n ratings: Rating[]\n): TableData[] {\n const rows = yearGroups.map(yearGroup => {\n return {\n yearGroup,\n ratings: {\n yearGroup,\n ratings: ratings.map(rating => {\n if (yearGroup.rating?.code === rating.code) {\n return {\n ...rating,\n active: true\n };\n }\n \n return rating;\n })\n }\n };\n });\n\n const staffYearGroup = { id: STAFF_YEAR_GROUP_ID, name: getPhrase('staff') } as YearGroup;\n\n rows.push({\n yearGroup: staffYearGroup,\n ratings: {\n yearGroup: staffYearGroup,\n ratings\n }\n });\n\n return rows;\n}","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { ExternalLink } from 'libs/shared/components/external-link/ExternalLink';\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { Table, TableTheme } from 'libs/shared/components/table/Table';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useLiteUpgrade } from 'libs/shared/hooks/UseLiteUpgrade';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Config, CurrentUser, Rating, YearGroup } from 'libs/shared/interfaces';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\n\nimport { RatingRequests } from 'shared/flight-requests/RatingRequests';\n\nimport { SettingsLayout } from 'apps/settings/components/settings-layout/SettingsLayout';\n\nimport { PartialContentPermissionsTable } from './partial-loading/PartialContentPermissionsTable';\nimport { getContentPermissionsTableColumns, getContentPermissionsTableData, STAFF_YEAR_GROUP_ID } from './ContentPermissionsViewUtils';\n\nimport styles from './content-permissions.scss';\n\nconst namespace = 'settings.contentPermissions';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface SaveButtonProps {\n onClick: () => void;\n showSpinner: boolean;\n isDisabled: boolean;\n}\n\nfunction SaveButton(props: SaveButtonProps): JSX.Element {\n return (\n <SpinnerButton\n onClick={props.onClick}\n showSpinner={props.showSpinner}\n disabled={props.isDisabled}\n className='text-nowrap me-2'\n variant='dark'\n >\n <Text namespace={namespace} phrase='save' />\n </SpinnerButton>\n );\n}\n\nconst theme: TableTheme = {\n table: 'striped-list no-full-width mb-3',\n header: 'fw-semibold pb-1',\n headerCell: `py-2 pe-2 ${styles.headerCell}`,\n row: `striped-row rounded ${styles.row}`,\n cell: 'd-flex align-items-center py-2 pe-2'\n};\n\nexport function ContentPermissionsView(): JSX.Element {\n const [ showSpinner, setShowSpinner ] = React.useState(false);\n\n const { isUpgrading } = useLiteUpgrade();\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const ratings = Flight.useBasicFetch<Rating[]>(RatingRequests.ratings());\n\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(currentUser.data &&\n CustomerRequests.yearGroups(currentUser.data.customerId));\n\n const [ initialYearGroupRatingMappings, setInitialYearGroupRatingMappings ] = React.useState<YearGroup[]>(null);\n const [ draftYearGroupRatingMappings, setDraftYearGroupRatingMappings ] = React.useState<YearGroup[]>(null);\n const [ isContentPermissionsValid, setIsContentPermissionsValid ] = React.useState(false);\n\n const dispatch = useDispatch();\n const alerts = useAlerts();\n\n useSetPageMetadata({ title: getPhrase('pageTitle') });\n\n React.useEffect(() => {\n if (!yearGroups.hasCompleted)\n return;\n\n setInitialYearGroupRatingMappings(yearGroups.data);\n setDraftYearGroupRatingMappings(yearGroups.data);\n }, [yearGroups.hasCompleted]);\n\n React.useEffect(() => {\n if (draftYearGroupRatingMappings)\n setIsContentPermissionsValid(isRatingsAscending(draftYearGroupRatingMappings));\n }, [draftYearGroupRatingMappings]);\n\n const hasChanged = React.useMemo(() => {\n if (!initialYearGroupRatingMappings || !draftYearGroupRatingMappings)\n return false;\n\n return !ObjectHelper.isEqual(initialYearGroupRatingMappings, draftYearGroupRatingMappings);\n }, [ initialYearGroupRatingMappings, draftYearGroupRatingMappings ]);\n\n function getSelections(yearGroup: YearGroup): Rating[] {\n if (yearGroup.id === STAFF_YEAR_GROUP_ID)\n return ratings.data;\n\n const mapping = draftYearGroupRatingMappings.find(y => y.id === yearGroup.id);\n\n if (!mapping.rating)\n return [];\n\n return ratings.data.filter(r => {\n return r.value <= mapping.rating.value;\n });\n }\n\n function setSelections(selectedYearGroup: YearGroup, maxRating: Rating): void {\n if (selectedYearGroup.id === STAFF_YEAR_GROUP_ID)\n return;\n \n setDraftYearGroupRatingMappings(currentVal => {\n return currentVal.map(yearGroup => {\n if (!yearGroup)\n return;\n\n if (yearGroup.id === selectedYearGroup.id)\n return {\n ...yearGroup,\n rating: maxRating\n };\n\n if (yearGroup.value > selectedYearGroup.value && yearGroup.rating.value < maxRating.value) {\n return {\n ...yearGroup,\n rating: maxRating\n };\n }\n\n if (yearGroup.value < selectedYearGroup.value && yearGroup.rating.value > maxRating.value) {\n return {\n ...yearGroup,\n rating: maxRating\n };\n }\n \n return yearGroup;\n });\n });\n }\n\n function isRatingsAscending(yearGroupRatingMappings: YearGroup[]) {\n return yearGroupRatingMappings.every((yearGroup, index) => {\n if (index === 0) {\n return true;\n }\n \n const prevYearGroup = yearGroupRatingMappings[index - 1];\n return yearGroup.rating.value >= prevYearGroup.rating.value;\n });\n }\n\n function onSave(): void {\n setShowSpinner(true);\n\n const changes = draftYearGroupRatingMappings.filter(mapping => {\n return yearGroups.data.find(y => y.id === mapping.id && y.rating?.id !== mapping.rating?.id);\n });\n\n const request = CustomerRequests.updateYearGroupRatings(\n currentUser.data.customerId,\n changes,\n onSuccess,\n onError\n );\n\n Flight.fetch(dispatch, request);\n }\n\n function onSuccess(): void {\n alerts.success(getPhrase('success'));\n setShowSpinner(false);\n setInitialYearGroupRatingMappings(draftYearGroupRatingMappings);\n }\n\n function onError(): void {\n alerts.error(getPhrase('error'));\n setShowSpinner(false);\n }\n\n const dataLoaded = !!draftYearGroupRatingMappings && ratings.hasCompleted;\n\n const href = ArticleHelper.getLiteArticle(LiteSupportArticle.ContentPermissions);\n\n const isDisabled = isUpgrading || !hasChanged || !isContentPermissionsValid;\n\n return (\n <SettingsLayout\n heading={getPhrase('heading')}\n breadcrumbs={[getPhrase('breadcrumb')]}\n >\n {isUpgrading && config.data?.onlineUrl &&\n <div className='alert alert-danger' role='alert'>\n <Text\n namespace={namespace}\n phrase='upgradeWarning'\n options={{ url: UrlHelper.safeUrlConcat(config.data.onlineUrl, '/ManageUsers/GroupAccess') }}\n />\n </div>\n }\n <div className='d-flex justify-content-between align-items-center'>\n <p><Text namespace={namespace} phrase={'description'} /></p>\n <SaveButton\n isDisabled={isDisabled}\n showSpinner={showSpinner}\n onClick={onSave}\n />\n </div>\n <p>\n <small><Text namespace={namespace} phrase={'note'} /></small>\n </p>\n <p>\n <ExternalLink\n href={href}\n className='info-link'\n newTab\n >\n <Text namespace={namespace} phrase='learnMore' />\n </ExternalLink>\n </p>\n {dataLoaded ? (\n <Table\n columns={getContentPermissionsTableColumns(getSelections, setSelections, draftYearGroupRatingMappings)}\n data={getContentPermissionsTableData(yearGroups.data, ratings.data)}\n theme={theme}\n />\n ) : <PartialContentPermissionsTable />}\n\n <div className='d-flex justify-content-end pb-3'>\n <SaveButton\n isDisabled={isDisabled}\n showSpinner={showSpinner}\n onClick={onSave}\n />\n </div>\n </SettingsLayout>\n );\n}","import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { Rating } from 'libs/shared/interfaces';\n\nexport const RatingRequests = {\n ratings(countryCode?: string): Flight.PublicRequest {\n return {\n url: '/api/domain/v2/me/ratings',\n publicUrl: UrlHelper.urlBuilder('/api/domain/v2/me/ratings', { countryCode }),\n key: 'ratings',\n // v2/me/ratings doesn't support `query={orderby:value}`. Adding this due to time constraints\n formatData: (ratings: Rating[]) => {\n return ratings.sort((a, b) => a.value - b.value);\n }\n };\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","OnlineSupportArticle","LiteSupportArticle","DEFAULT_PARTIAL_LOADING_OPTIONS","minWidth","maxWidth","PartialLoadingHelper","getPartialLoadingItems","options","opts","Array","Math","max","floor","random","namespace","useCanAccessSettings","requiredPermissions","hasPermissions","settingsGroups","currentRoute","application","some","group","modules","settingsModule","action","SettingsLayout","props","canAccess","replace","i","heading","headingButton","description","children","PartialRow","PartialHeader","PartialContentPermissionsTable","getPhrase","LanguageService","STAFF_YEAR_GROUP_ID","getContentPermissionsTableColumns","getSelections","setSelections","yearGroups","Header","id","accessor","Cell","yearGroup","value","ratings","isStaff","ratingsList","RatingRangeSelector","selections","onSelectRange","range","ArrayHelper","disabled","isDisabled","getButtonClasses","rating","isActive","isHovering","isRatingValid","activeClass","VideoDetailsHelper","Tooltip","title","spanHack","getContentPermissionsTableData","rows","code","staffYearGroup","push","SaveButton","SpinnerButton","onClick","showSpinner","variant","Text","phrase","theme","table","header","headerCell","row","cell","ContentPermissionsView","setShowSpinner","isUpgrading","config","ConfigRequests","currentUser","UserRequests","RatingRequests","data","CustomerRequests","customerId","initialYearGroupRatingMappings","setInitialYearGroupRatingMappings","draftYearGroupRatingMappings","setDraftYearGroupRatingMappings","isContentPermissionsValid","setIsContentPermissionsValid","dispatch","alerts","useSetPageMetadata","hasCompleted","yearGroupRatingMappings","every","index","prevYearGroup","hasChanged","ObjectHelper","onSave","changes","filter","mapping","find","y","request","onSuccess","onError","success","error","dataLoaded","href","ArticleHelper","onlineUrl","role","url","UrlHelper","ExternalLink","newTab","Table","columns","r","selectedYearGroup","maxRating","currentVal","countryCode","publicUrl","formatData","sort","a"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[2134],{49935:(e,a,t)=>{t.d(a,{Oo:()=>d,b2:()=>u});var n=t(32735),r=t(36848),i=t(86764),l=t(3747),s=t(5859),c=t(35223),o=t(83914),m=function(e){var a=e.breadcrumb,t=a.name,i=a.appLink,l=a.active,s=e.withBackIcon;return n.createElement("li",{className:"breadcrumb-item".concat(l?" active":"")},l?n.createElement("strong",null,t):n.createElement(r.F,{appLink:i},s&&n.createElement(o.x,{svgName:c.vn.ChevronLeft,size:o.S.Small}),n.createElement("span",{className:s?"ms-2":""},t)))},d=function(e){var a=e.breadcrumbs,t=(0,l.a)(i.r.XS),r=null==a?void 0:a.length;return!r||t&&r<2?n.createElement(n.Fragment,null):t?n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},n.createElement(m,{breadcrumb:a[r-2],withBackIcon:!0}))):n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},a.map((function(e,a){return n.createElement(m,{key:a,breadcrumb:e})}))))},u=n.memo((function(e){var a=e.numItems,t=void 0===a?3:a;return(0,l.a)(i.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"},s.u.getPartialLoadingItems({numItems:t}).map((function(e,a){var t=e.width;return n.createElement("li",{key:a,className:"breadcrumb-item"},n.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:t},dangerouslySetInnerHTML:{__html:" "}}))}))))}))},74696:(e,a,t)=>{t.d(a,{S:()=>o});var n=t(32735),r=t(68050),i=t(69111),l=t(9977),s=t(79967);const c={partialOptions:"Gufgq",partialName:"SicQQ",partialDescription:"dPGMq",partialThumbnail:"vZrnb",partialDragHandle:"iq73R"};function o(e){return n.createElement("div",{className:"mx-2"},Array(e.numVideos).fill(null).map((function(a,t){return n.createElement("div",{className:"d-flex",key:t},e.allowBulkActions&&n.createElement("div",{className:"form-check pe-3 pe-sm-2 mx-0 mx-md-2"}),n.createElement(m,Object.assign({},e)))})))}function m(e){var a=(0,s.k)(),t="sm"===l.O.getSize(a,"md"),o=e.withReordering&&!a.xs;return n.createElement(r.Z,{className:"".concat(t?"":"py-2"," flex-grow-1")},n.createElement(i.Z,Object.assign({},l.O.getThumbnailColumns(),{className:"flex-column align-items-flex-start ".concat(t?"pb-2 pe-1":"mb-1 pe-3 pe-md-2")}),n.createElement(r.Z,null,!!o&&n.createElement("div",{className:"d-flex align-items-center justify-content-center col-2"},n.createElement("div",{className:"partial-loading-background ".concat(c.partialDragHandle)})),n.createElement(i.Z,{xs:l.O.getThumbnailColSize(o)},n.createElement("div",{className:"partial-loading-background ".concat(t?"rounded":"rounded-3"," ").concat(c.partialThumbnail)})))),n.createElement(i.Z,Object.assign({},l.O.getDetailsColumns(),{className:t?"pb-2":"px-2"}),n.createElement("div",{className:"partial-loading-background mb-1 ".concat(c.partialName)}),n.createElement("div",{className:"partial-loading-background ".concat(c.partialDescription)})))}o.defaultProps={numVideos:15}},94644:(e,a,t)=>{t.d(a,{r:()=>m});var n=t(50242),r=t(81886),i=t(67058),l=t(14553),s=t(49267),c=t(49075),o={notFound:i.d,forbidden:{rating:l.q,yearLevel:l.q,region:s.a,privacy:l.q},badRequest:c._};function m(e){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=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),a);i&&r.Q.Ry.isStatusCodeError(i)&&(i!==n.o.NotFound?i!==n.o.Forbidden?t.badRequest||r.Q.Ry.throw(new l.badRequest):t.forbidden||r.Q.Ry.throw(new l.forbidden.privacy):t.notFound||r.Q.Ry.throw(new l.notFound))}}},91286:(e,a,t)=>{t.d(a,{v:()=>l});var n=t(32735),r=t(94644);function i(e){return e.map((function(e){return e.statusCode})).join(":")}function l(e,a,t){var l=Array.isArray(e)?e:[e];(0,n.useEffect)((function(){l.forEach((function(e){(0,r.r)(e.statusCode,a,t)}))}),[i(l),a,t])}},5859:(e,a,t)=>{function n(e,a){(null==a||a>e.length)&&(a=e.length);for(var t=0,n=Array(a);t<a;t++)n[t]=e[t];return n}t.d(a,{u:()=>i});var r={numItems:5,minWidth:50,maxWidth:100},i={getPartialLoadingItems:function(){var e,a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object.assign(Object.assign({},r),a);return(e=Array(t.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,a){if(e){if("string"==typeof e)return n(e,a);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?n(e,a):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()*t.maxWidth),t.minWidth),"px")}}))}}},74061:(e,a,t)=>{t.r(a),t.d(a,{StudentsVideosView:()=>I});var n=t(32735),r=t(23481),i=t(20354),l=t(65858),s=t(49935),c=t(23232),o=t(37395),m=t(83345),d=t(74696),u=t(13231),p=t(51365),g=t(91286),b=t(22902),v=t(64818),E=t(31908),f=t(99742),y=t(14070),h=t(97291),N=t(51855),k=t(10741),S=t(22490),O=t(47288),A="userManager.studentsVideos",w=r.T.encloseNamespace(A);function I(e){var a,t,I,x,T,L,R=i.a.useBasicFetch(O.N.getUser(e.id)),M=i.a.useBasicFetch(O.N.getStudentVideos(e.id,e.cursor)),G=(0,b.T)().hasPermissions,j=(0,N.G)().isPlugin;return(0,g.v)(R),R.hasCompleted&&M.hasCompleted?n.createElement(p.M.Provider,{value:{getVideoActions:function(a,t){var n;n=E.M.isVideo(a)?l.py.Video:E.M.isClip(a)?l.py.Clip:l.py.Interaction;var r=Object.assign(Object.assign({},t.analyticsOptions),{entity:n,location:l.LZ.ViewStudentVideos}),i=Object.assign(Object.assign({},t.analyticsData),{id:a.id});return[{order:1,label:w("view"),button:!0,appLink:{application:h.O.USER_MANAGER,action:y.e.UserManager.STUDENTS_VIDEO,args:[e.id,a.id],params:{typeId:a.typeId}},className:"btn btn-outline-dark me-2"},{order:2,label:w("delete"),button:!0,appLink:{application:h.O.USER_MANAGER,action:y.e.UserManager.DELETE_STUDENTS_VIDEO,args:[e.id,a.id],params:{typeId:a.typeId}},className:"btn btn-outline-dark",analyticsOptions:Object.assign(Object.assign({},r),{actionType:l.Vw.Delete,workflowPhase:l.eu.Start}),analyticsData:i}]}}},n.createElement("div",{className:"px-3"},n.createElement("h1",{className:"h2"},w("heading",{name:v.l.getFullName(R.data),yearGroup:null===(a=R.data.masterYearGroup)||void 0===a?void 0:a.name})),n.createElement("div",{className:"pb-3"},n.createElement(s.Oo,{breadcrumbs:function(){var e;return[{name:r.T.getPhrase(A,"settingsBreadcrumb"),appLink:{application:h.O.SETTINGS,action:y.e.Settings.HOME}},{name:r.T.getPhrase(A,"studentsBreadcrumb"),appLink:{application:h.O.USER_MANAGER,action:y.e.UserManager.STUDENTS}},{name:w("heading",{name:v.l.getFullName(R.data),yearGroup:null===(e=R.data.masterYearGroup)||void 0===e?void 0:e.name}),active:!0}]}()})),(null===(I=null===(t=M.data)||void 0===t?void 0:t.data)||void 0===I?void 0:I.length)?n.createElement(u.E4,{videos:null===(x=M.data)||void 0===x?void 0:x.data,getVideoAppLink:function(a){return{application:h.O.USER_MANAGER,action:y.e.UserManager.STUDENTS_VIDEO,args:[e.id,a.id],params:{typeId:a.typeId}}},hasPermissions:G,getPreviewQuestionsAppLink:function(e){return k.j.getPreviewQuestionsAppLink(e)},yearGroups:null,presentationAudiences:null,isPlugin:j,getClassroomGuideAppLink:S.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:S.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:S.W.getResourceGuidanceAppLink}):n.createElement(c.u,null,n.createElement(c.u.Image,{src:f.W.EmptyStates.MY_VIDEOS,altText:w("emptyInfo")}),n.createElement(c.u.Heading,null,n.createElement(m.x,{namespace:A,phrase:"emptyHeading"})),n.createElement(c.u.Info,null,n.createElement(m.x,{namespace:A,phrase:"emptyInfo",options:{name:R.data.name}}))),!!(null===(L=null===(T=M.data)||void 0===T?void 0:T.pagination)||void 0===L?void 0:L.cursors)&&n.createElement(o.t,{appLink:{application:h.O.USER_MANAGER,action:y.e.UserManager.STUDENTS_VIDEOS},cursors:{next:M.data.pagination.cursors.next,previous:e.cursor},buttonVariant:"outline-dark",className:"py-2 float-end",prevHack:!0}))):n.createElement("div",{className:"mx-n2"},n.createElement(d.S,{allowBulkActions:!0}))}},68050:(e,a,t)=>{t.d(a,{Z:()=>o});var n=t(95685),r=t.n(n),i=t(32735),l=t(46304),s=t(74512);const c=i.forwardRef((({bsPrefix:e,className:a,as:t="div",...n},i)=>{const c=(0,l.vE)(e,"row"),o=(0,l.pi)(),m=(0,l.zG)(),d=`${c}-cols`,u=[];return o.forEach((e=>{const a=n[e];let t;delete n[e],null!=a&&"object"==typeof a?({cols:t}=a):t=a;const r=e!==m?`-${e}`:"";null!=t&&u.push(`${d}${r}-${t}`)})),(0,s.jsx)(t,{ref:i,...n,className:r()(a,c,...u)})}));c.displayName="Row";const o=c}}]);
|
|
2
|
-
//# sourceMappingURL=2134-bca2f4697e-lite.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/2134-bca2f4697e-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/video-list/partial-loading/partial-video-list.scss","file:///app/packages/libs/shared/src/components/video-list/partial-loading/PartialVideoList.tsx","file:///app/packages/libs/shared/src/errors/handlers/HttpErrorHandlers.ts","file:///app/packages/libs/shared/src/hooks/UseHandleObjectError.ts","file:///app/packages/libs/shared/src/utils/PartialLoadingHelper.ts","file:///app/packages/projects/lite/src/apps/user-manager/views/students-videos/StudentsVideosView.tsx","file:///app/node_modules/react-bootstrap/esm/Row.js"],"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});","// extracted by mini-css-extract-plugin\nexport default {\"partialOptions\":\"Gufgq\",\"partialName\":\"SicQQ\",\"partialDescription\":\"dPGMq\",\"partialThumbnail\":\"vZrnb\",\"partialDragHandle\":\"iq73R\"};","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { VideoListHelper } from 'libs/shared/components/video-list/VideoListHelper';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\n\nimport styles from './partial-video-list.scss';\n\ninterface PartialVideoListProps {\n withReordering?: boolean;\n numVideos?: number;\n allowBulkActions?: boolean;\n}\n\nPartialVideoList.defaultProps = {\n numVideos: 15\n};\n\nexport function PartialVideoList(props: PartialVideoListProps): JSX.Element {\n return (\n <div className='mx-2'>\n {Array(props.numVideos).fill(null).map((_, i) => (\n <div className='d-flex' key={i}>\n {props.allowBulkActions && <div className='form-check pe-3 pe-sm-2 mx-0 mx-md-2' />}\n <PartialVideoItem {...props} />\n </div>\n ))}\n </div>\n );\n}\n\nexport function PartialVideoItem(props: PartialVideoListProps): JSX.Element {\n const breakpoints = useBreakpoints();\n\n const size = VideoListHelper.getSize(breakpoints, 'md');\n const isSmall = size === 'sm';\n\n const withDragHandle = props.withReordering && !breakpoints.xs;\n\n return (\n <Row className={`${isSmall ? '' : 'py-2'} flex-grow-1`}>\n <Col {...VideoListHelper.getThumbnailColumns()} className={`flex-column align-items-flex-start ${isSmall ? `pb-2 pe-1` : 'mb-1 pe-3 pe-md-2'}`}>\n <Row>\n {!!withDragHandle && (\n <div className='d-flex align-items-center justify-content-center col-2'>\n <div className={`partial-loading-background ${styles.partialDragHandle}`} />\n </div>\n )}\n <Col xs={VideoListHelper.getThumbnailColSize(withDragHandle)}>\n <div className={`partial-loading-background ${isSmall ? 'rounded' : 'rounded-3'} ${styles.partialThumbnail}`} />\n </Col>\n </Row>\n </Col>\n <Col {...VideoListHelper.getDetailsColumns()} className={isSmall ? 'pb-2' : 'px-2'}>\n <div className={`partial-loading-background mb-1 ${styles.partialName}`} />\n <div className={`partial-loading-background ${styles.partialDescription}`} />\n </Col>\n </Row>\n );\n}\n\n","import { 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}","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 { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { AnalyticsOptions, EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { Breadcrumb, Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Pagination } from 'libs/shared/components/pagination/Pagination';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoActionsContext, VideoActionsOptions } from 'libs/shared/context/VideoActionsContext';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { BasePaginatedCollection, User, VideoTypes } from 'libs/shared/interfaces';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { UserManagerRequests } from 'apps/user-manager/flight-requests/UserManagerRequests';\n\nconst namespace = 'userManager.studentsVideos';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\n\ninterface StudentsVideosViewProps {\n id: string;\n cursor: string;\n}\n\nexport function StudentsVideosView(props: StudentsVideosViewProps): JSX.Element {\n const user = Flight.useBasicFetch<User>(UserManagerRequests.getUser(props.id));\n\n const videos = Flight.useBasicFetch<BasePaginatedCollection<VideoTypes>>(\n UserManagerRequests.getStudentVideos(props.id, props.cursor)\n );\n\n const { hasPermissions } = usePermissions();\n\n const { isPlugin } = usePluginHelper();\n\n useHandleObjectError(user);\n\n function getBreadcrumbs(): Breadcrumb[] {\n return [\n {\n name: LanguageService.getPhrase(namespace, 'settingsBreadcrumb'),\n appLink: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n }\n },\n {\n name: LanguageService.getPhrase(namespace, 'studentsBreadcrumb'),\n appLink: {\n application: AppChannels.USER_MANAGER,\n action: Actions.UserManager.STUDENTS\n }\n },\n {\n name: getPhrase('heading', { name: UserHelper.getFullName(user.data), yearGroup: user.data.masterYearGroup?.name }),\n active: true\n }\n ];\n }\n\n function getVideoActions(video: VideoTypes, options: VideoActionsOptions): ActionOptions[] {\n let entity: EntityType;\n if (VideoHelper.isVideo(video))\n entity = EntityType.Video;\n else if (VideoHelper.isClip(video))\n entity = EntityType.Clip;\n else\n entity = EntityType.Interaction;\n\n const analyticsOptions: AnalyticsOptions = {\n ...options.analyticsOptions,\n entity,\n location: LocationContext.ViewStudentVideos\n };\n\n const analyticsData = {\n ...options.analyticsData,\n id: video.id\n };\n\n return [{\n order: 1,\n label: getPhrase('view'),\n button: true,\n appLink: {\n application: AppChannels.USER_MANAGER,\n action: Actions.UserManager.STUDENTS_VIDEO,\n args: [ props.id, video.id ],\n params: { typeId: video.typeId }\n },\n className: 'btn btn-outline-dark me-2'\n }, {\n order: 2,\n label: getPhrase('delete'),\n button: true,\n appLink: {\n application: AppChannels.USER_MANAGER,\n action: Actions.UserManager.DELETE_STUDENTS_VIDEO,\n args: [ props.id, video.id ],\n params: { typeId: video.typeId }\n },\n className: 'btn btn-outline-dark',\n analyticsOptions: {\n ...analyticsOptions,\n actionType: UserAction.Delete,\n workflowPhase: WorkflowPhase.Start\n },\n analyticsData\n }];\n }\n\n const dataLoaded = (\n user.hasCompleted &&\n videos.hasCompleted\n );\n\n /**\n * TODO: Flesh out with a better empty state\n */\n if (!dataLoaded)\n return <div className='mx-n2'><PartialVideoList allowBulkActions /></div>;\n\n return (\n <VideoActionsContext.Provider value={{ getVideoActions }}>\n <div className='px-3'>\n <h1 className='h2'>{getPhrase('heading', { name: UserHelper.getFullName(user.data), yearGroup: user.data.masterYearGroup?.name })}</h1>\n <div className='pb-3'>\n <Breadcrumbs\n breadcrumbs={getBreadcrumbs()}\n />\n </div>\n {videos.data?.data?.length ?\n <VideoList\n videos={videos.data?.data}\n getVideoAppLink={video => ({\n application: AppChannels.USER_MANAGER,\n action: Actions.UserManager.STUDENTS_VIDEO,\n args: [ props.id, video.id ],\n params: { typeId: video.typeId }\n })}\n hasPermissions={hasPermissions}\n getPreviewQuestionsAppLink={interactive => InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n yearGroups={null}\n presentationAudiences={null}\n isPlugin={isPlugin}\n getClassroomGuideAppLink={VideoAppLinkHelper.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={VideoAppLinkHelper.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={VideoAppLinkHelper.getResourceGuidanceAppLink}\n /> :\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.MY_VIDEOS} altText={getPhrase('emptyInfo')} />\n <EmptyState.Heading><Text namespace={namespace} phrase='emptyHeading' /></EmptyState.Heading>\n <EmptyState.Info><Text namespace={namespace} phrase='emptyInfo' options={{ name: user.data.name }} /></EmptyState.Info>\n </EmptyState>\n }\n {!!videos.data?.pagination?.cursors && (\n <Pagination\n appLink={{\n application: AppChannels.USER_MANAGER,\n action: Actions.UserManager.STUDENTS_VIDEOS\n }}\n cursors={{ next: videos.data.pagination.cursors.next, previous: props.cursor }}\n buttonVariant='outline-dark'\n className='py-2 float-end'\n prevHack\n />\n )}\n </div>\n </VideoActionsContext.Provider>\n );\n}","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Row = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n const sizePrefix = `${decoratedBsPrefix}-cols`;\n const classes = [];\n breakpoints.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let cols;\n if (propValue != null && typeof propValue === 'object') {\n ({\n cols\n } = propValue);\n } else {\n cols = propValue;\n }\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n if (cols != null) classes.push(`${sizePrefix}${infix}-${cols}`);\n });\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, decoratedBsPrefix, ...classes)\n });\n});\nRow.displayName = 'Row';\nexport default Row;"],"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","PartialVideoList","props","Array","numVideos","fill","_","i","allowBulkActions","PartialVideoItem","breakpoints","useBreakpoints","isSmall","VideoListHelper","withDragHandle","withReordering","xs","Row","Col","defaultProps","defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","generateCacheKey","flightObjs","obj","join","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","isArray","useEffect","forEach","DEFAULT_PARTIAL_LOADING_OPTIONS","minWidth","maxWidth","PartialLoadingHelper","getPartialLoadingItems","options","opts","Math","max","floor","random","namespace","getPhrase","StudentsVideosView","user","id","videos","cursor","hasPermissions","isPlugin","hasCompleted","value","getVideoActions","video","entity","analyticsOptions","location","analyticsData","order","label","button","application","action","args","params","typeId","actionType","workflowPhase","data","yearGroup","masterYearGroup","getBreadcrumbs","getVideoAppLink","getPreviewQuestionsAppLink","interactive","yearGroups","presentationAudiences","getClassroomGuideAppLink","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","src","altText","phrase","pagination","cursors","next","previous","buttonVariant","prevHack","bsPrefix","as","Component","ref","decoratedBsPrefix","minBreakpoint","sizePrefix","classes","brkPoint","propValue","cols","infix","push","displayName"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[2703],{50690:(e,t,n)=>{n.d(t,{b:()=>r});var a=n(12788),r={renderInPortalIfExists:function(e,t){return t?(0,a.createPortal)(e,t):e}}},84963:(e,t,n)=>{n.d(t,{r:()=>u});var a=n(32735),r=n(23481),o=n(83914),l=n(76177),i=n(35223);const c={tag:"XRj8d",tooltip:"X6mLk"};var s="specialEventCalendar.comingSoonTag";function u(e){return a.createElement(l.u,{title:r.T.getPhrase(s,"tooltip"),spanHackClassName:"d-block ".concat(c.tooltip),spanHack:!0},a.createElement("div",{className:"d-flex text-dark align-items-center ".concat(c.tag," ").concat(e.className)},a.createElement(o.x,{svgName:i.vn.Timer}),!e.onlyIcon&&r.T.getPhrase(s,"comingSoon")))}},73679:(e,t,n)=>{n.d(t,{s:()=>l});var a=n(32735),r=n(36848);const o={dateItem:"I3SBm",label:"PRORs",body:"RfiM_",bodyDay:"ZOVny",bodyRange:"vYhXN",bodyMonth:"mYslO",month:"EPkkQ"};function l(e){var t,n,l;return a.createElement(r.F,{appLink:null===(t=e.getAppLink)||void 0===t?void 0:t.call(e),className:"text-decoration-none text-center bg-white text-dark border border-3 ".concat(null===(n=e.theme)||void 0===n?void 0:n.border," rounded-3 d-block fw-semibold ").concat(e.className),analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions},a.createElement("div",{className:"position-relative ".concat(o.dateItem)},a.createElement("div",{className:"".concat(null===(l=e.theme)||void 0===l?void 0:l.background," py-1 ").concat(o.label," d-flex align-items-center justify-content-center")},e.label?e.label:a.createElement(a.Fragment,null," ")),a.createElement("div",{className:"".concat(function(){switch(e.body.type){case"range":return o.bodyRange;case"day":return o.bodyDay;case"month":return o.bodyMonth}}()," ").concat(o.body," my-2")},e.body.text),a.createElement("div",{className:"mb-0 ".concat(o.month)},e.month)))}},44522:(e,t,n)=>{n.d(t,{p:()=>x,v:()=>S});var a=n(32735),r=n(110),o=n(50690),l=n(84963),i=n(73679),c=n(83657),s=n(23481),u=n(36848),d=n(83914),m=n(35223),f="shared.backButton";function v(e){var t=Object.assign({textShadow:!0},e),n=t.backToName,r=t.appLink,o=t.color,l=t.extraClasses,i=t.textShadow,c=n?s.T.getPhrase(f,"backTo",{backToName:n}):s.T.getPhrase(f,"back"),v="black"===o?"":"text-white",b=i?"text-shadow":"";return a.createElement(u.F,{appLink:r,className:"d-inline-flex align-items-center h5 mb-0 ".concat(l," ").concat(v," ").concat(b)},a.createElement(d.x,{svgName:m.vn.ChevronLeft,size:d.S.Medium}),a.createElement("span",{className:"ms-1"},c))}v.defaultProps={color:"black",extraClasses:""};var b=n(36518),p=n(83345),g=n(10587),h=n(94232),y=n(54610),E=n(79967),N=n(67453);const w={bannerContent:"sSCTB",actionsContainer:"Z5WI2",bannerContentWithLogo:"rgs7Q",container:"M51HJ",logoContainer:"vkeJk",logoContainerLeft:"M3U9B",logoHeading:"EtRwC",specialEventContainer:"rOxDc",headingLarge:"_8pnV",heading:"JXVBH"};var C="".concat(g.y[y.__.Banners].width,":").concat(g.y[y.__.Banners].height);function k(e){return e.length<160?"h1":w.headingLarge}var x=a.memo((function(e){var t,n,s,u,d=e.heading,m=e.banner,f=e.imageCdnUrl,g=e.actions,x=e.sortComponent,S=e.blockColourClass,A=e.specialEvent,O=a.useContext(h.n),D=(0,E.k)().xxl?1920:1200,I=a.useMemo((function(){if(!A||e.showComingSoon)return!1;var t=r.O.format(new Date,"YYYY-MM-DD");return A.endDate?A.startDate<=t&&A.endDate>=t:A.startDate===t}),[A]),j=e.imageOptions||{width:D,ratio:C,resizeType:y.Nq.Cover},L=!!m&&!!f&&N.j.createBannerUrl(m,{fallbackBaseUrl:f,fallbackCategoryName:d,type:y.__.Banners},j),P={className:"banner banner-header ".concat(e.bannerClassName),style:L?{backgroundImage:"url('".concat(L,"')")}:{}};!m&&S&&(delete P.style,P.className+=" ".concat(S));var T=e.detailsComponent;return o.b.renderInPortalIfExists(a.createElement("header",Object.assign({},P),a.createElement("div",{className:"container ".concat(w.container," position-relative inner-banner")},e.backButtonAppLink&&a.createElement("div",{className:"pt-3"},a.createElement(v,{appLink:e.backButtonAppLink,backToName:e.backButtonText,extraClasses:e.backButtonClasses,color:"white"})),a.createElement("div",{className:"".concat(e.alignLogoLeft?"position-absolute top-50 start-0 translate-middle-y w-100 ps-4":"".concat(w.bannerContent," px-2 ").concat((null===(t=e.logo)||void 0===t?void 0:t.url)?w.bannerContentWithLogo:""))},!!A&&a.createElement("div",{className:"position-relative ".concat(w.specialEventContainer)},a.createElement(i.s,{body:{type:A.endDate?"range":"day",text:A.endDate?"".concat(r.O.format(A.startDate,"DD"),"-").concat(r.O.format(A.endDate,"DD")):r.O.format(A.startDate,"DD")},month:r.O.format(A.startDate,"MMMM"),theme:e.calendarTheme})),a.createElement("div",null,I&&a.createElement("div",{className:"rounded-pill py-1 px-2 my-1 me-1 fw-semibold bg-light-blue lh-1 d-inline-block"},a.createElement(p.x,{namespace:"shared.bannerHeader",phrase:"onToday"})),e.showComingSoon&&a.createElement(l.r,{className:"pe-2 fw-semibold mb-1 rounded-pill justify-content-start text-nowrap"}),a.createElement("div",{className:"d-flex align-items-center"},e.alignLogoLeft&&a.createElement("div",{className:"".concat(w.logoContainerLeft," d-none d-md-block partial-loading-background rounded-circle overflow-hidden me-3")},(null===(n=e.logo)||void 0===n?void 0:n.url)&&a.createElement(b.w,{src:N.j.createUrl(null===(s=e.logo)||void 0===s?void 0:s.url,{size:y.h2.Medium})})),a.createElement("h1",{className:"text-white text-shadow pe-3 position-static ".concat(w.heading," ").concat(k(d)," ").concat(e.alignLogoLeft?"w-50":"")},d,T&&a.createElement(T,null)))),!!g&&a.createElement("div",{className:w.actionsContainer},a.createElement(c.e,{actions:g,sortComponent:x,actionsDropdownClassName:e.actionsDropdownClassName}))),!e.alignLogoLeft&&!!(null===(u=e.logo)||void 0===u?void 0:u.url)&&a.createElement("div",{className:w.logoContainer},a.createElement("img",{src:N.j.createUrl(e.logo.url,{size:y.h2.Small}),className:"rounded-circle"})))),null==O?void 0:O.container)}),(function(e,t){var n,a;return e.actions===t.actions&&e.heading===t.heading&&(null===(n=e.logo)||void 0===n?void 0:n.url)===(null===(a=t.logo)||void 0===a?void 0:a.url)}));function S(){var e=a.useContext(h.n);return o.b.renderInPortalIfExists(a.createElement("div",{className:"partial-banner partial-loading-background ".concat(w.banner)}),null==e?void 0:e.container)}},49935:(e,t,n)=>{n.d(t,{Oo:()=>d,b2:()=>m});var a=n(32735),r=n(36848),o=n(86764),l=n(3747),i=n(5859),c=n(35223),s=n(83914),u=function(e){var t=e.breadcrumb,n=t.name,o=t.appLink,l=t.active,i=e.withBackIcon;return a.createElement("li",{className:"breadcrumb-item".concat(l?" active":"")},l?a.createElement("strong",null,n):a.createElement(r.F,{appLink:o},i&&a.createElement(s.x,{svgName:c.vn.ChevronLeft,size:s.S.Small}),a.createElement("span",{className:i?"ms-2":""},n)))},d=function(e){var t=e.breadcrumbs,n=(0,l.a)(o.r.XS),r=null==t?void 0:t.length;return!r||n&&r<2?a.createElement(a.Fragment,null):n?a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},a.createElement(u,{breadcrumb:t[r-2],withBackIcon:!0}))):a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},t.map((function(e,t){return a.createElement(u,{key:t,breadcrumb:e})}))))},m=a.memo((function(e){var t=e.numItems,n=void 0===t?3:t;return(0,l.a)(o.r.XS)?a.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},i.u.getPartialLoadingItems({numItems:n}).map((function(e,t){var n=e.width;return a.createElement("li",{key:t,className:"breadcrumb-item"},a.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:n},dangerouslySetInnerHTML:{__html:" "}}))}))))}))},71020:(e,t,n)=>{n.d(t,{_:()=>u});var a=n(32735),r=n(80247),o=n(34152),l=n(83914),i=n(35223);const c={container:"VwD1b",spinner:"eJ85e"};function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function u(e){var t,n,u=(t=(0,o.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 a,r,o,l,i=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=o.call(n)).done)&&(i.push(a.value),i.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(s)throw r}}return i}}(t,n)||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}}(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 a.useEffect((function(){var t;e.fetchOnScroll&&m&&!e.isFetching&&(null===(t=e.fetchNext)||void 0===t||t.call(e,e.nextCursor))}),[m,e.isFetching]),a.createElement("div",{className:"p-3 text-center ".concat(c.container),ref:d},e.isFetching?a.createElement(r.Z,{as:"span",animation:"border",role:"status",className:c.spinner}):a.createElement(l.x,{svgName:i.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}},74696:(e,t,n)=>{n.d(t,{S:()=>s});var a=n(32735),r=n(68050),o=n(69111),l=n(9977),i=n(79967);const c={partialOptions:"Gufgq",partialName:"SicQQ",partialDescription:"dPGMq",partialThumbnail:"vZrnb",partialDragHandle:"iq73R"};function s(e){return a.createElement("div",{className:"mx-2"},Array(e.numVideos).fill(null).map((function(t,n){return a.createElement("div",{className:"d-flex",key:n},e.allowBulkActions&&a.createElement("div",{className:"form-check pe-3 pe-sm-2 mx-0 mx-md-2"}),a.createElement(u,Object.assign({},e)))})))}function u(e){var t=(0,i.k)(),n="sm"===l.O.getSize(t,"md"),s=e.withReordering&&!t.xs;return a.createElement(r.Z,{className:"".concat(n?"":"py-2"," flex-grow-1")},a.createElement(o.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")}),a.createElement(r.Z,null,!!s&&a.createElement("div",{className:"d-flex align-items-center justify-content-center col-2"},a.createElement("div",{className:"partial-loading-background ".concat(c.partialDragHandle)})),a.createElement(o.Z,{xs:l.O.getThumbnailColSize(s)},a.createElement("div",{className:"partial-loading-background ".concat(n?"rounded":"rounded-3"," ").concat(c.partialThumbnail)})))),a.createElement(o.Z,Object.assign({},l.O.getDetailsColumns(),{className:n?"pb-2":"px-2"}),a.createElement("div",{className:"partial-loading-background mb-1 ".concat(c.partialName)}),a.createElement("div",{className:"partial-loading-background ".concat(c.partialDescription)})))}s.defaultProps={numVideos:15}},79718:(e,t,n)=>{n.d(t,{p:()=>m});var a=n(32735),r=n(23481),o=n(91967),l=n(36848),i=n(23788);function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}function s(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=c(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var a=n.call(e,"string");if("object"!=c(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==c(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var u="shared.videoSortSelect",d=o.q.memoize((function(){return s(s(s(s(s(s({},i.D.RecentlyAdded,{name:r.T.getPhrase(u,"recentlyAdded")}),i.D.AtoZ,{name:r.T.getPhrase(u,"atoz")}),i.D.ZtoA,{name:r.T.getPhrase(u,"ztoa")}),i.D.Newest,{name:r.T.getPhrase(u,"newest")}),i.D.Oldest,{name:r.T.getPhrase(u,"oldest")}),i.D.Series,{name:r.T.getPhrase(u,"series")})}));function m(e){var t=e.sortTypes||d();return a.createElement("div",{className:"dropdown"},a.createElement("button",{className:"btn btn-".concat(e.variant," ms-2 dropdown-toggle"),type:"button",id:"sort-select","data-bs-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},t[e.type].name),a.createElement("ul",{className:"dropdown-menu dropdown-menu-end","aria-labelledby":"sort-select"},Object.keys(t).map((function(n){var r="dropdown-item";return n===e.type&&(r+=" active"),a.createElement("li",{key:n},a.createElement(l.F,{className:r,appLink:e.getSortAppLink(n),analyticsData:{sort:t[n].name},analyticsOptions:e.analyticsOptions},t[n].name))}))))}m.defaultProps={variant:"light"}},94644:(e,t,n)=>{n.d(t,{r:()=>u});var a=n(50242),r=n(81886),o=n(67058),l=n(14553),i=n(49267),c=n(49075),s={notFound:o.d,forbidden:{rating:l.q,yearLevel:l.q,region:i.a,privacy:l.q},badRequest:c._};function u(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var o;o="number"==typeof e?e:e.status;var l=Object.assign(Object.assign({},s),t);o&&r.Q.Ry.isStatusCodeError(o)&&(o!==a.o.NotFound?o!==a.o.Forbidden?n.badRequest||r.Q.Ry.throw(new l.badRequest):n.forbidden||r.Q.Ry.throw(new l.forbidden.privacy):n.notFound||r.Q.Ry.throw(new l.notFound))}}},91286:(e,t,n)=>{n.d(t,{v:()=>l});var a=n(32735),r=n(94644);function o(e){return e.map((function(e){return e.statusCode})).join(":")}function l(e,t,n){var l=Array.isArray(e)?e:[e];(0,a.useEffect)((function(){l.forEach((function(e){(0,r.r)(e.statusCode,t,n)}))}),[o(l),t,n])}},60115:(e,t,n)=>{n.d(t,{K:()=>s});var a=n(32735),r=n(50242),o=n(91967),l=400,i=n(45719);function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function s(e,t,n,s,u,d){var m,f,v,b,p=(m=(0,a.useState)(0),f=2,function(e){if(Array.isArray(e))return e}(m)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,l,i=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=o.call(n)).done)&&(i.push(a.value),i.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(s)throw r}}return i}}(m,f)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}(m,f)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),g=p[0],h=p[1],y=t,E=(0,i.P)((function(t){if(!e)return null;var n=e(t);return n?n.key:null}),s,u);return v={fetchNextPage:function(){if(t&&e&&E)return h((function(e){return e+1})),y(E.nextCursor)},hasMore:!!(null==E?void 0:E.nextCursor),isFetching:null==E?void 0:E.isFetching,scrollContainer:d},b=function(){if(!v.isFetching){if(v.scrollContainer){var e=v.scrollContainer;if(e.getBoundingClientRect().height+e.scrollTop<e.scrollHeight-l)return}else if(window.innerHeight+document.documentElement.scrollTop<document.documentElement.scrollHeight-l)return;v.fetchNextPage()}},(0,a.useEffect)((function(){var e=o.q.throttle(b,200),t=v.scrollContainer||window;return v.hasMore&&t.addEventListener("scroll",e),function(){return t.removeEventListener("scroll",e)}}),[v.hasMore,v.fetchNextPage,v.scrollContainer]),(0,a.useEffect)((function(){E&&E.shouldInitialFetch&&t&&(y(),h((function(e){return e+1})))}),[null==E?void 0:E.shouldInitialFetch,t]),(0,a.useEffect)((function(){var e,t;if((null==E?void 0:E.statusCode)&&o.q.isFunction(n)){var a=+(null===(t=null===(e=E.statusCode)||void 0===e?void 0:e.toString())||void 0===t?void 0:t.substr(0,1));a!==r.k.ClientError&&a!==r.k.ServerError||n(g,E.statusCode)}}),[null==E?void 0:E.statusCode]),{items:null==E?void 0:E.items,hasMore:!!(null==E?void 0:E.nextCursor),nextCursor:null==E?void 0:E.nextCursor,isFetching:null==E?void 0:E.isFetching,totalItems:null==E?void 0:E.totalItems,hasFirstPageCompleted:null==E?void 0:E.hasFirstPageCompleted}}},5859:(e,t,n)=>{function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}n.d(t,{u:()=>o});var r={numItems:5,minWidth:50,maxWidth:100},o={getPartialLoadingItems:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=Object.assign(Object.assign({},r),t);return(e=Array(n.numItems),function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return a(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)?a(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")}}))}}},44110:(e,t,n)=>{n.d(t,{i:()=>l});var a=n(20354),r=n(89454),o=n(86698),l=function(){var e=(0,o.y)({redirectOnError:!0}),t=e.activePresentation,n=e.getFallbackPresentation,l=t||n();return a.a.useBasicFetch(!!l&&r.O.presentationAudiences(l.id))}},97816:(e,t,n)=>{n.d(t,{V:()=>d});var a=n(32735),r=n(20354),o=n(21750),l=n(31949),i=n(1575),c=n(31908);function s(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,a=Array(t);n<t;n++)a[n]=e[n];return a}function d(e){var t,n,d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},m=r.a.useBasicFetch(l.N.currentUser()),f=a.useRef(new Set),v=function(e){return e?Array.isArray(e)?e.filter((function(e){return!!e&&(c.M.isVideo(e)||c.M.isClip(e))})):"data"in e?e.data.filter((function(e){return!!e&&(c.M.isVideo(e)||c.M.isClip(e))})):[]:[]}(e),b=v.map((function(e){return e.id})),p=(t=a.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 a,r,o,l,i=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=o.call(n)).done)&&(i.push(a.value),i.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(s)throw r}}return i}}(t,n)||s(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),g=p[0],h=p[1];a.useEffect((function(){if((null==b?void 0:b.length)&&m.hasCompleted){var e=[];b.forEach((function(t){f.current.has(t)||(e.push(t),f.current.add(t))})),e.length&&h((function(t){var n,a=[].concat(function(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||s(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(t),[i.R.videoMixinAssocs(e,d.flightNamespace)]);return(null===(n=m.data)||void 0===n?void 0:n.isAuthenticated)&&a.push(o.x.hasCurriculumLinks(e,null,d.flightNamespace)),a}))}}),[null==b?void 0:b.length,m.hasCompleted]),r.a.useBasicFetchAll(g)}},68050:(e,t,n)=>{n.d(t,{Z:()=>s});var a=n(95685),r=n.n(a),o=n(32735),l=n(46304),i=n(74512);const c=o.forwardRef((({bsPrefix:e,className:t,as:n="div",...a},o)=>{const c=(0,l.vE)(e,"row"),s=(0,l.pi)(),u=(0,l.zG)(),d=`${c}-cols`,m=[];return s.forEach((e=>{const t=a[e];let n;delete a[e],null!=t&&"object"==typeof t?({cols:n}=t):n=t;const r=e!==u?`-${e}`:"";null!=n&&m.push(`${d}${r}-${n}`)})),(0,i.jsx)(n,{ref:o,...a,className:r()(t,c,...m)})}));c.displayName="Row";const s=c}}]);
|
|
2
|
-
//# sourceMappingURL=2703-591ccf069c-lite.chunk.js.map
|